Commit eeb7ba21 authored by Jon Hunter's avatar Jon Hunter Committed by Benoit Cousson
Browse files

ARM: OMAP2+: Prepare for device-tree PMU support



If device-tree is present, then do not create the PMU device from within
the OMAP specific PMU code. This is required to allow device-tree to
create the PMU device from the PMU device-tree node.

PMU is not currently supported for OMAP4430 (due to a dependency on
having a cross-trigger interface driver) and so ensure that this
indicated on boot with or without device-tree.

Signed-off-by: default avatarJon Hunter <jon-hunter@ti.com>
Acked-by: default avatarTony Lindgren <tony@atomide.com>
Signed-off-by: default avatarBenoit Cousson <benoit.cousson@linaro.org>
parent 72f6f957
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -11,6 +11,8 @@
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 */
#include <linux/of.h>

#include <asm/pmu.h>

#include "soc.h"
@@ -63,6 +65,15 @@ static int __init omap_init_pmu(void)
	unsigned oh_num;
	char **oh_names;

	/* XXX Remove this check when the CTI driver is available */
	if (cpu_is_omap443x()) {
		pr_info("ARM PMU: not yet supported on OMAP4430 due to missing CTI driver\n");
		return 0;
	}

	if (of_have_populated_dt())
		return 0;

	/*
	 * To create an ARM-PMU device the following HWMODs
	 * are required for the various OMAP2+ devices.
@@ -75,9 +86,6 @@ static int __init omap_init_pmu(void)
	if (cpu_is_omap443x()) {
		oh_num = ARRAY_SIZE(omap4430_pmu_oh_names);
		oh_names = omap4430_pmu_oh_names;
		/* XXX Remove the next two lines when CTI driver available */
		pr_info("ARM PMU: not yet supported on OMAP4430 due to missing CTI driver\n");
		return 0;
	} else if (cpu_is_omap34xx() || cpu_is_omap44xx()) {
		oh_num = ARRAY_SIZE(omap3_pmu_oh_names);
		oh_names = omap3_pmu_oh_names;