Skip to contentSkip to conversation

ARM: dts: Add PMU support for OMAP2+

PATCH RESEND Superseded Jon Hunter 3 participants 6 messages Dec 14, 2012 – Dec 17, 2012

Subsystems (5)

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore

Jon Hunter

author
#0 lore raw

cover ARM: dts: Add PMU support for OMAP2+

Add device-tree PMU support for OMAP2, OMAP3 and OMAP4460.

Tested with PERF on OMAP3430 Beagle Board and OMAP4460 Panda Board. Boot tested only on OMAP2420 H4.

Jon Hunter (2):
ARM: OMAP2+: Prepare for device-tree PMU support
ARM: dts: OMAP2+: Add PMU nodes

 arch/arm/boot/dts/omap2.dtsi         |    5 +++++
 arch/arm/boot/dts/omap3.dtsi         |    6 ++++++
 arch/arm/boot/dts/omap4-panda-es.dts |    2 ++
 arch/arm/boot/dts/omap4460.dtsi      |   18 ++++++++++++++++++
 arch/arm/mach-omap2/pmu.c            |   14 +++++++++++---
 5 files changed, 42 insertions(+), 3 deletions(-)
 create mode 100644 arch/arm/boot/dts/omap4460.dtsi
Signature · 1 line
1.7.10.4
author
#1 lore raw

PATCH RESEND 1/2 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.

---
 arch/arm/mach-omap2/pmu.c |   14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)
arch/arm/mach-omap2/pmu.c +11 -3
index eb78ae7..1a0799c 100644
@@ -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"
@@ -64,6 +66,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.
@@ -76,9 +87,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;
Signature · 1 line
1.7.10.4
author
#2 lore raw

PATCH RESEND 2/2 ARM: dts: OMAP2+: Add PMU nodes

In reply to Jon Hunter

Add PMU nodes for OMAP2, OMAP3 and OMAP4460 devices.

Please note that the node for OMAP4460 has been placed in a separate header file for OMAP4460, because the node is not compatible with OMAP4430.

---
 arch/arm/boot/dts/omap2.dtsi         |    5 +++++
 arch/arm/boot/dts/omap3.dtsi         |    6 ++++++
 arch/arm/boot/dts/omap4-panda-es.dts |    2 ++
 arch/arm/boot/dts/omap4460.dtsi      |   18 ++++++++++++++++++
 4 files changed, 31 insertions(+)
 create mode 100644 arch/arm/boot/dts/omap4460.dtsi
arch/arm/boot/dts/omap2.dtsi +5 -0
index 761c4b6..27f5ea1 100644
@@ -26,6 +26,11 @@
 		};
 	};
 
+	pmu {
+		compatible = "arm,arm1136-pmu";
+		interrupts = <3>;
+	};
+
 	soc {
 		compatible = "ti,omap-infra";
 		mpu {
arch/arm/boot/dts/omap3.dtsi +6 -0
index 1acc261..6c63118 100644
@@ -26,6 +26,12 @@
 		};
 	};
 
+	pmu {
+		compatible = "arm,cortex-a8-pmu";
+		interrupts = <3>;
+		ti,hwmods = "debugss";
+	};
+
 	/*
 	 * The soc node represents the soc top level view. It is uses for IPs
 	 * that are not memory mapped in the MPU view or for the MPU itself.
arch/arm/boot/dts/omap4-panda-es.dts +2 -0
index 73bc1a6..2a6e344 100644
@@ -5,7 +5,9 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
+
 /include/ "omap4-panda.dts"
+/include/ "omap4460.dtsi"
 
 /* Audio routing is differnet between PandaBoard4430 and PandaBoardES */
 &sound {
arch/arm/boot/dts/omap4460.dtsi new file +18 -0
new file mode 100644
index 0000000..1270890
@@ -0,0 +1,18 @@
+/*
+ * Device Tree Source for OMAP4460 SoC
+ *
+ * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * This file is licensed under the terms of the GNU General Public License
+ * version 2.  This program is licensed "as is" without any warranty of any
+ * kind, whether express or implied.
+ */
+
+/ {
+	pmu {
+		compatible = "arm,cortex-a9-pmu";
+		interrupts = <0 54 0x4
+			      0 55 0x4>;
+		ti,hwmods = "debugss";
+	};
+};
Signature · 1 line
1.7.10.4
#3 lore raw

PATCH RESEND 2/2 ARM: dts: OMAP2+: Add PMU nodes

Quoted 73 lines · Jon Hunter

Add PMU nodes for OMAP2, OMAP3 and OMAP4460 devices.

Please note that the node for OMAP4460 has been placed in a separate header file for OMAP4460, because the node is not compatible with OMAP4430.

---
 arch/arm/boot/dts/omap2.dtsi         |    5 +++++
 arch/arm/boot/dts/omap3.dtsi         |    6 ++++++
 arch/arm/boot/dts/omap4-panda-es.dts |    2 ++
 arch/arm/boot/dts/omap4460.dtsi      |   18 ++++++++++++++++++
 4 files changed, 31 insertions(+)
 create mode 100644 arch/arm/boot/dts/omap4460.dtsi
arch/arm/boot/dts/omap2.dtsi +5 -0
index 761c4b6..27f5ea1 100644
@@ -26,6 +26,11 @@
 		};
 	};
 
+	pmu {
+		compatible = "arm,arm1136-pmu";
+		interrupts = <3>;
+	};
+
 	soc {
 		compatible = "ti,omap-infra";
 		mpu {
arch/arm/boot/dts/omap3.dtsi +6 -0
index 1acc261..6c63118 100644
@@ -26,6 +26,12 @@
 		};
 	};
 
+	pmu {
+		compatible = "arm,cortex-a8-pmu";
+		interrupts = <3>;
+		ti,hwmods = "debugss";
+	};
+
 	/*
 	 * The soc node represents the soc top level view. It is uses for IPs
 	 * that are not memory mapped in the MPU view or for the MPU itself.
arch/arm/boot/dts/omap4-panda-es.dts +2 -0
index 73bc1a6..2a6e344 100644
@@ -5,7 +5,9 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
+
 /include/ "omap4-panda.dts"
+/include/ "omap4460.dtsi"
 
 /* Audio routing is differnet between PandaBoard4430 and PandaBoardES */
 &sound {
arch/arm/boot/dts/omap4460.dtsi new file +5 -0
new file mode 100644
index 0000000..1270890
@@ -0,0 +1,18 @@
+/*
+ * Device Tree Source for OMAP4460 SoC
+ *
+ * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
+ *

arch/arm/boot/dts/omap4460.dtsi line 15

Quoted 10 lines
arch/arm/boot/dts/omap4460.dtsi new file +10 -0
+ * This file is licensed under the terms of the GNU General Public License
+ * version 2.  This program is licensed "as is" without any warranty of any
+ * kind, whether express or implied.
+ */
+
+/ {
+	pmu {
+		compatible = "arm,cortex-a9-pmu";
+		interrupts = <0 54 0x4
+			      0 55 0x4>;

In other places I've seen interrupts properties written as:

interrupts = < irq1... >,

             < irq2... >,
	     < irqN... >;

Where each individual interrupt is surrounded by angle brackets. This produces the exact same dtb, but may appear easier to read.

This might not be the right time and place to raise it, but it'd be nice if we used one style consistently.

Quoted 11 lines
arch/arm/boot/dts/omap4460.dtsi new file +3 -0
+		ti,hwmods = "debugss";
+	};
+};
Signature · 6 lines
1.7.10.4

_______________________________________________
devicetree-discuss mailing list
devicetree-discuss at lists.ozlabs.org
https://lists.ozlabs.org/listinfo/devicetree-discuss

Thanks,
Mark.

author
#4 lore raw

PATCH RESEND 2/2 ARM: dts: OMAP2+: Add PMU nodes

Quoted 88 lines · Mark Rutland
Quoted 73 lines · Jon Hunter

Add PMU nodes for OMAP2, OMAP3 and OMAP4460 devices.

Please note that the node for OMAP4460 has been placed in a separate header file for OMAP4460, because the node is not compatible with OMAP4430.

---
 arch/arm/boot/dts/omap2.dtsi         |    5 +++++
 arch/arm/boot/dts/omap3.dtsi         |    6 ++++++
 arch/arm/boot/dts/omap4-panda-es.dts |    2 ++
 arch/arm/boot/dts/omap4460.dtsi      |   18 ++++++++++++++++++
 4 files changed, 31 insertions(+)
 create mode 100644 arch/arm/boot/dts/omap4460.dtsi
arch/arm/boot/dts/omap2.dtsi +5 -0
index 761c4b6..27f5ea1 100644
@@ -26,6 +26,11 @@
 		};
 	};
 
+	pmu {
+		compatible = "arm,arm1136-pmu";
+		interrupts = <3>;
+	};
+
 	soc {
 		compatible = "ti,omap-infra";
 		mpu {
arch/arm/boot/dts/omap3.dtsi +6 -0
index 1acc261..6c63118 100644
@@ -26,6 +26,12 @@
 		};
 	};
 
+	pmu {
+		compatible = "arm,cortex-a8-pmu";
+		interrupts = <3>;
+		ti,hwmods = "debugss";
+	};
+
 	/*
 	 * The soc node represents the soc top level view. It is uses for IPs
 	 * that are not memory mapped in the MPU view or for the MPU itself.
arch/arm/boot/dts/omap4-panda-es.dts +2 -0
index 73bc1a6..2a6e344 100644
@@ -5,7 +5,9 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
+
 /include/ "omap4-panda.dts"
+/include/ "omap4460.dtsi"
 
 /* Audio routing is differnet between PandaBoard4430 and PandaBoardES */
 &sound {
arch/arm/boot/dts/omap4460.dtsi new file +5 -0
new file mode 100644
index 0000000..1270890
@@ -0,0 +1,18 @@
+/*
+ * Device Tree Source for OMAP4460 SoC
+ *
+ * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
+ *

arch/arm/boot/dts/omap4460.dtsi line 15

Quoted 10 lines
arch/arm/boot/dts/omap4460.dtsi new file +10 -0
+ * This file is licensed under the terms of the GNU General Public License
+ * version 2.  This program is licensed "as is" without any warranty of any
+ * kind, whether express or implied.
+ */
+
+/ {
+	pmu {
+		compatible = "arm,cortex-a9-pmu";
+		interrupts = <0 54 0x4
+			      0 55 0x4>;

In other places I've seen interrupts properties written as:

interrupts = < irq1... >,

Quoted 8 lines
             < irq2... >,
	     < irqN... >;

Where each individual interrupt is surrounded by angle brackets. This produces the exact same dtb, but may appear easier to read.

This might not be the right time and place to raise it, but it'd be nice if we used one style consistently.

I see that we do define interrupts like that for other OMAP devices and so I can update this to be consistent.

Benoit, let me know if you want me to resend or if you want to update locally.

Cheers
Jon

#5 lore raw

PATCH RESEND 2/2 ARM: dts: OMAP2+: Add PMU nodes

Quoted 96 lines · Jon Hunter
Quoted 94 lines · Mark Rutland
Quoted 73 lines · Jon Hunter

Add PMU nodes for OMAP2, OMAP3 and OMAP4460 devices.

Please note that the node for OMAP4460 has been placed in a separate header file for OMAP4460, because the node is not compatible with OMAP4430.

---
 arch/arm/boot/dts/omap2.dtsi         |    5 +++++
 arch/arm/boot/dts/omap3.dtsi         |    6 ++++++
 arch/arm/boot/dts/omap4-panda-es.dts |    2 ++
 arch/arm/boot/dts/omap4460.dtsi      |   18 ++++++++++++++++++
 4 files changed, 31 insertions(+)
 create mode 100644 arch/arm/boot/dts/omap4460.dtsi
arch/arm/boot/dts/omap2.dtsi +5 -0
index 761c4b6..27f5ea1 100644
@@ -26,6 +26,11 @@
 		};
 	};
 
+	pmu {
+		compatible = "arm,arm1136-pmu";
+		interrupts = <3>;
+	};
+
 	soc {
 		compatible = "ti,omap-infra";
 		mpu {
arch/arm/boot/dts/omap3.dtsi +6 -0
index 1acc261..6c63118 100644
@@ -26,6 +26,12 @@
 		};
 	};
 
+	pmu {
+		compatible = "arm,cortex-a8-pmu";
+		interrupts = <3>;
+		ti,hwmods = "debugss";
+	};
+
 	/*
 	 * The soc node represents the soc top level view. It is uses for IPs
 	 * that are not memory mapped in the MPU view or for the MPU itself.
arch/arm/boot/dts/omap4-panda-es.dts +2 -0
index 73bc1a6..2a6e344 100644
@@ -5,7 +5,9 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
+
 /include/ "omap4-panda.dts"
+/include/ "omap4460.dtsi"
 
 /* Audio routing is differnet between PandaBoard4430 and PandaBoardES */
 &sound {
arch/arm/boot/dts/omap4460.dtsi new file +5 -0
new file mode 100644
index 0000000..1270890
@@ -0,0 +1,18 @@
+/*
+ * Device Tree Source for OMAP4460 SoC
+ *
+ * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
+ *

arch/arm/boot/dts/omap4460.dtsi line 15

Quoted 10 lines
arch/arm/boot/dts/omap4460.dtsi new file +10 -0
+ * This file is licensed under the terms of the GNU General Public License
+ * version 2.  This program is licensed "as is" without any warranty of any
+ * kind, whether express or implied.
+ */
+
+/ {
+	pmu {
+		compatible = "arm,cortex-a9-pmu";
+		interrupts = <0 54 0x4
+			      0 55 0x4>;

In other places I've seen interrupts properties written as:

interrupts = < irq1... >,

             < irq2... >,
	     < irqN... >;

Where each individual interrupt is surrounded by angle brackets. This produces the exact same dtb, but may appear easier to read.

Quoted 8 lines
Quoted 2 lines

This might not be the right time and place to raise it, but it'd be nice if we used one style consistently.

I see that we do define interrupts like that for other OMAP devices and so I can update this to be consistent.

Benoit, let me know if you want me to resend or if you want to update locally.

Yep, I agree with Mark, I don't like this style either.

If you don't mind, I'd prefer you resend the series...

Thanks,
Benoit