Skip to contentSkip to conversation

ARM: DRA7: Add support for DRA72x devices

PATCH Superseded Rajendra Nayak 3 participants 11 messages Apr 24, 2014 – Apr 28, 2014

Subsystems (5)

v3 of 4 Superseded Latest is v4 →

lore
Share & tools
lore
#0 lore raw

v3 cover ARM: DRA7: Add support for DRA72x devices

changes in v3:
Removed wildcards from compatible strings and duplicates from .dt_compat strings as suggested by Arnd

DRA72x devices are single core Cortex A15 devices belonging to the DRA7 family (Similar to the DRA74x devices which are dual core Cortex A15 based)

The patches (based off 3.15-rc2) add minimal DT/kernel modifications to add boot support for DRA72x devices reusing all the kernel data for DRA74x devices.

Rajendra Nayak (4):
ARM: dts: dra7-evm: Remove the wrong and undocumented compatible
ARM: dts: Add support for DRA72x family of devices
ARM: OMAP2+: Add machine entry for dra72x devices
ARM: DRA7: Add support for soc_is_dra74x() and soc_is_dra72x()
varients

 .../devicetree/bindings/arm/omap/omap.txt          |   14 ++++--
 arch/arm/boot/dts/Makefile                         |    3 +-
 arch/arm/boot/dts/dra7-evm.dts                     |    6 +--
 arch/arm/boot/dts/dra7.dtsi                        |   27 ------------
 arch/arm/boot/dts/dra72-evm.dts                    |   24 +++++++++++
 arch/arm/boot/dts/dra72x.dtsi                      |   25 +++++++++++
 arch/arm/boot/dts/dra74x.dtsi                      |   41 ++++++++++++++++++
 arch/arm/mach-omap2/board-generic.c                |   45 ++++++++++++++------
 arch/arm/mach-omap2/soc.h                          |    7 +++
 9 files changed, 143 insertions(+), 49 deletions(-)
 create mode 100644 arch/arm/boot/dts/dra72-evm.dts
 create mode 100644 arch/arm/boot/dts/dra72x.dtsi
 create mode 100644 arch/arm/boot/dts/dra74x.dtsi
Signature · 1 line
1.7.9.5
#1 lore raw

PATCH v3 1/4 ARM: dts: dra7-evm: Remove the wrong and undocumented compatible

"ti,dra752" is neither documented nor correct, since the device is actually a dra742 device as rightly documented in dt bindings.

Cc devicetree at vger.kernel.org
---
 arch/arm/boot/dts/dra7-evm.dts |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm/boot/dts/dra7-evm.dts +1 -1
index 5babba0..7807429 100644
@@ -11,7 +11,7 @@
 
 / {
 	model = "TI DRA7";
-	compatible = "ti,dra7-evm", "ti,dra752", "ti,dra7";
+	compatible = "ti,dra7-evm", "ti,dra7";
 
 	memory {
 		device_type = "memory";
Signature · 1 line
1.7.9.5
#2 lore raw

PATCH v3 2/4 ARM: dts: Add support for DRA72x family of devices

In reply to Rajendra Nayak

DRA72x is a single core cortex A15 device with most infrastructure IPs otherwise same as whats on the DRA74x devices.

So move the cpu nodes into dra74x.dtsi and dra72x.dtsi respectively.

Also add a minimal dra72-evm dts file.

Cc linux-doc at vger.kernel.org
Cc devicetree at vger.kernel.org
---
 .../devicetree/bindings/arm/omap/omap.txt          |   14 +++++--
 arch/arm/boot/dts/Makefile                         |    3 +-
 arch/arm/boot/dts/dra7-evm.dts                     |    6 +--
 arch/arm/boot/dts/dra7.dtsi                        |   27 -------------
 arch/arm/boot/dts/dra72-evm.dts                    |   24 ++++++++++++
 arch/arm/boot/dts/dra72x.dtsi                      |   25 ++++++++++++
 arch/arm/boot/dts/dra74x.dtsi                      |   41 ++++++++++++++++++++
 7 files changed, 105 insertions(+), 35 deletions(-)
 create mode 100644 arch/arm/boot/dts/dra72-evm.dts
 create mode 100644 arch/arm/boot/dts/dra72x.dtsi
 create mode 100644 arch/arm/boot/dts/dra74x.dtsi
Documentation/devicetree/bindings/arm/omap/omap.txt +10 -4
index 36ede19..1bc2338 100644
@@ -79,8 +79,11 @@ SoCs:
 - OMAP5432
   compatible = "ti,omap5432", "ti,omap5"
 
-- DRA742
-  compatible = "ti,dra7xx", "ti,dra7"
+- DRA74x
+  compatible = "ti,dra74", "ti,dra7"
+
+- DRA72x
+  compatible = "ti,dra72", "ti,dra7"
 
 - AM4372
   compatible = "ti,am4372", "ti,am43"
@@ -120,5 +123,8 @@ Boards:
 - AM437x GP EVM
   compatible = "ti,am437x-gp-evm", "ti,am4372", "ti,am43"
 
-- DRA7 EVM:  Software Developement Board for DRA7XX
-  compatible = "ti,dra7-evm", "ti,dra7"
+- DRA74 EVM:  Software Developement Board for DRA74x
+  compatible = "ti,dra7-evm", "ti,dra74", "ti,dra7"
+
+- DRA72 EVM: Software Development Board for DRA72x
+  compatible = "ti,dra72-evm", "ti,dra72", "ti,dra7"
arch/arm/boot/dts/Makefile +2 -1
index 35c146f..ff98a97 100644
@@ -288,7 +288,8 @@ dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \
 	am3517_mt_ventoux.dtb \
 	am43x-epos-evm.dtb \
 	am437x-gp-evm.dtb \
-	dra7-evm.dtb
+	dra7-evm.dtb \
+	dra72-evm.dtb
 dtb-$(CONFIG_ARCH_ORION5X) += orion5x-lacie-ethernet-disk-mini-v2.dtb
 dtb-$(CONFIG_ARCH_PRIMA2) += prima2-evb.dtb
 dtb-$(CONFIG_ARCH_QCOM) += qcom-msm8660-surf.dtb \
arch/arm/boot/dts/dra7-evm.dts +3 -3
index 7807429..df6a6db 100644
@@ -7,11 +7,11 @@
  */
 /dts-v1/;
 
-#include "dra7.dtsi"
+#include "dra74x.dtsi"
 
 / {
-	model = "TI DRA7";
-	compatible = "ti,dra7-evm", "ti,dra7";
+	model = "TI DRA74x";
+	compatible = "ti,dra7-evm", "ti,dra74", "ti,dra7";
 
 	memory {
 		device_type = "memory";
arch/arm/boot/dts/dra7.dtsi +0 -27
index 1c0f8e1..e27fec7 100644
@@ -33,33 +33,6 @@
 		serial5 = &uart6;
 	};
 
-	cpus {
-		#address-cells = <1>;
-		#size-cells = <0>;
-
-		cpu0: cpu at 0 {
-			device_type = "cpu";
-			compatible = "arm,cortex-a15";
-			reg = <0>;
-
-			operating-points = <
-				/* kHz    uV */
-				1000000	1060000
-				1176000	1160000
-				>;
-
-			clocks = <&dpll_mpu_ck>;
-			clock-names = "cpu";
-
-			clock-latency = <300000>; /* From omap-cpufreq driver */
-		};
-		cpu at 1 {
-			device_type = "cpu";
-			compatible = "arm,cortex-a15";
-			reg = <1>;
-		};
-	};
-
 	timer {
 		compatible = "arm,armv7-timer";
 		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
arch/arm/boot/dts/dra72-evm.dts new file +24 -0
new file mode 100644
index 0000000..ead6440
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+/dts-v1/;
+
+#include "dra72x.dtsi"
+
+/ {
+	model = "TI DRA72x";
+	compatible = "ti,dra72-evm", "ti,dra72", "ti,dra7";
+
+	memory {
+		device_type = "memory";
+		reg = <0x80000000 0x40000000>; /* 1024 MB */
+	};
+};
+
+&uart1 {
+	status = "okay";
+};
arch/arm/boot/dts/dra72x.dtsi new file +25 -0
new file mode 100644
index 0000000..236e5e3
@@ -0,0 +1,25 @@
+/*
+ * Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ * Based on "omap4.dtsi"
+ */
+
+#include "dra7.dtsi"
+
+/ {
+	compatible = "ti,dra72", "ti,dra7";
+
+	cpus {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		cpu0: cpu at 0 {
+			device_type = "cpu";
+			compatible = "arm,cortex-a15";
+			reg = <0>;
+		};
+	};
+};
arch/arm/boot/dts/dra74x.dtsi new file +41 -0

41 lines not on this page · raw message

Signature · 1 line
1.7.9.5
maintainer
#3 lore raw

PATCH v3 2/4 ARM: dts: Add support for DRA72x family of devices

Documentation/devicetree/bindings/arm/omap/omap.txt SoCs: · line 86

Quoted 8 lines · Rajendra Nayak

-- DRA742

Documentation/devicetree/bindings/arm/omap/omap.txt +5 -1
-  compatible = "ti,dra7xx", "ti,dra7"
+- DRA74x
+  compatible = "ti,dra74", "ti,dra7"
+
+- DRA72x
+  compatible = "ti,dra72", "ti,dra7"

Actually, what I meant was that you should list the fill name of the SoC, e.g. "ti,dra742", not just "ti,dra74". Leaving out the 'x' is not going to prevent this from breaking when you have a new dra745 that is incompatible.

You can always list more strings, e.g.

	compatible = "ti,dra745", "ti,dra742", "ti,dra74", "ti,dra7";

if you have a dra745 product that is fully compatible with dra742, but the important part here is that the first string must be the full name.

Arnd

#4 lore raw

PATCH v3 2/4 ARM: dts: Add support for DRA72x family of devices

Quoted 14 lines · Arnd Bergmann

Documentation/devicetree/bindings/arm/omap/omap.txt SoCs: · line 86

Quoted 8 lines · Rajendra Nayak

-- DRA742

Documentation/devicetree/bindings/arm/omap/omap.txt +5 -1
-  compatible = "ti,dra7xx", "ti,dra7"
+- DRA74x
+  compatible = "ti,dra74", "ti,dra7"
+
+- DRA72x
+  compatible = "ti,dra72", "ti,dra7"

Actually, what I meant was that you should list the fill name of the SoC, e.g. "ti,dra742", not just "ti,dra74". Leaving out the 'x' is not going to prevent this from breaking when you have a new dra745 that is incompatible.

Quoted 6 lines

You can always list more strings, e.g.

	compatible = "ti,dra745", "ti,dra742", "ti,dra74", "ti,dra7";

if you have a dra745 product that is fully compatible with dra742, but the important part here is that the first string must be the full name.

Okay, I will update the device compatibles to something like this..

DRA742
compatible = "ti,dra742", "ti,dra74", "ti,dra7"
DRA722
compatible = "ti,dra722", "ti,dra72", "ti,dra7"

And the evm compatibles as

DRA742 EVM: Software Developement Board for DRA742 compatible = "ti,dra7-evm", "ti,dra742", "ti,dra74", "ti,dra7" DRA722 EVM: Software Development Board for DRA722 compatible = "ti,dra72-evm", "ti,dra722", "ti,dra72", "ti,dra7"

I was also calling the .dtsi files as dra72x.dtsi and dra74x.dtsi, do you suggest I call them dra742.dtsi and dra722.dtsi instead? Just that if we end up with a dra745 which is fully compatible with dra742, as you mentioned above, we would be using a dra742.dtsi for a dra745 device which could be a little confusing.

Quoted 3 lines

Arnd

maintainer
#5 lore raw

PATCH v3 2/4 ARM: dts: Add support for DRA72x family of devices

Quoted 10 lines · On Monday 28 April 2014 11:39:22 Rajendra Nayak wrote:

DRA742 EVM: Software Developement Board for DRA742 compatible = "ti,dra7-evm", "ti,dra742", "ti,dra74", "ti,dra7" DRA722 EVM: Software Development Board for DRA722 compatible = "ti,dra72-evm", "ti,dra722", "ti,dra72", "ti,dra7"

I was also calling the .dtsi files as dra72x.dtsi and dra74x.dtsi, do you suggest I call them dra742.dtsi and dra722.dtsi instead? Just that if we end up with a dra745 which is fully compatible with dra742, as you mentioned above, we would be using a dra742.dtsi for a dra745 device which could be a little confusing.

For the file names, wildcards are ok. Alternatively you could have a dra745.dtsi that does nothing but include dra752.dtsi and override the compatible string (if there is one to start with).

Arnd

#6 lore raw

PATCH v3 2/4 ARM: dts: Add support for DRA72x family of devices

Quoted 7 lines · Arnd Bergmann
Quoted 6 lines · On Monday 28 April 2014 11:39:22 Rajendra Nayak wrote:

DRA742 EVM: Software Developement Board for DRA742 compatible = "ti,dra7-evm", "ti,dra742", "ti,dra74", "ti,dra7" DRA722 EVM: Software Development Board for DRA722 compatible = "ti,dra72-evm", "ti,dra722", "ti,dra72", "ti,dra7"

Quoted 8 lines
Quoted 4 lines

I was also calling the .dtsi files as dra72x.dtsi and dra74x.dtsi, do you suggest I call them dra742.dtsi and dra722.dtsi instead? Just that if we end up with a dra745 which is fully compatible with dra742, as you mentioned above, we would be using a dra742.dtsi for a dra745 device which could be a little confusing.

For the file names, wildcards are ok. Alternatively you could have a dra745.dtsi that does nothing but include dra752.dtsi and override the compatible string (if there is one to start with).

Okay, thanks.

Quoted 3 lines

Arnd

#7 lore raw

PATCH v3 3/4 ARM: OMAP2+: Add machine entry for dra72x devices

In reply to Rajendra Nayak

The only difference from the dra74x devices is the missing .smp entry.

While at it, also fix the use of __initdata (across the file) and replace them with __initconst as reported by checkpatch

ERROR: Use of const init definition must use __initconst +static const char *dra72x_boards_compat[] __initdata = {

---
 arch/arm/mach-omap2/board-generic.c |   45 ++++++++++++++++++++++++-----------
 1 file changed, 31 insertions(+), 14 deletions(-)
arch/arm/mach-omap2/board-generic.c +31 -14
index b8920b6..dabb9f6 100644
@@ -43,7 +43,7 @@ static void __init omap_generic_init(void)
 }
 
 #ifdef CONFIG_SOC_OMAP2420
-static const char *omap242x_boards_compat[] __initdata = {
+static const char *omap242x_boards_compat[] __initconst = {
 	"ti,omap2420",
 	NULL,
 };
@@ -62,7 +62,7 @@ MACHINE_END
 #endif
 
 #ifdef CONFIG_SOC_OMAP2430
-static const char *omap243x_boards_compat[] __initdata = {
+static const char *omap243x_boards_compat[] __initconst = {
 	"ti,omap2430",
 	NULL,
 };
@@ -81,7 +81,7 @@ MACHINE_END
 #endif
 
 #ifdef CONFIG_ARCH_OMAP3
-static const char *omap3_boards_compat[] __initdata = {
+static const char *omap3_boards_compat[] __initconst = {
 	"ti,omap3430",
 	"ti,omap3",
 	NULL,
@@ -100,7 +100,7 @@ DT_MACHINE_START(OMAP3_DT, "Generic OMAP3 (Flattened Device Tree)")
 	.restart	= omap3xxx_restart,
 MACHINE_END
 
-static const char *omap36xx_boards_compat[] __initdata = {
+static const char *omap36xx_boards_compat[] __initconst = {
 	"ti,omap36xx",
 	NULL,
 };
@@ -118,7 +118,7 @@ DT_MACHINE_START(OMAP36XX_DT, "Generic OMAP36xx (Flattened Device Tree)")
 	.restart	= omap3xxx_restart,
 MACHINE_END
 
-static const char *omap3_gp_boards_compat[] __initdata = {
+static const char *omap3_gp_boards_compat[] __initconst = {
 	"ti,omap3-beagle",
 	"timll,omap3-devkit8000",
 	NULL,
@@ -137,7 +137,7 @@ DT_MACHINE_START(OMAP3_GP_DT, "Generic OMAP3-GP (Flattened Device Tree)")
 	.restart	= omap3xxx_restart,
 MACHINE_END
 
-static const char *am3517_boards_compat[] __initdata = {
+static const char *am3517_boards_compat[] __initconst = {
 	"ti,am3517",
 	NULL,
 };
@@ -157,7 +157,7 @@ MACHINE_END
 #endif
 
 #ifdef CONFIG_SOC_AM33XX
-static const char *am33xx_boards_compat[] __initdata = {
+static const char *am33xx_boards_compat[] __initconst = {
 	"ti,am33xx",
 	NULL,
 };
@@ -177,7 +177,7 @@ MACHINE_END
 #endif
 
 #ifdef CONFIG_ARCH_OMAP4
-static const char *omap4_boards_compat[] __initdata = {
+static const char *omap4_boards_compat[] __initconst = {
 	"ti,omap4460",
 	"ti,omap4430",
 	"ti,omap4",
@@ -199,7 +199,7 @@ MACHINE_END
 #endif
 
 #ifdef CONFIG_SOC_OMAP5
-static const char *omap5_boards_compat[] __initdata = {
+static const char *omap5_boards_compat[] __initconst = {
 	"ti,omap5432",
 	"ti,omap5430",
 	"ti,omap5",
@@ -221,7 +221,7 @@ MACHINE_END
 #endif
 
 #ifdef CONFIG_SOC_AM43XX
-static const char *am43_boards_compat[] __initdata = {
+static const char *am43_boards_compat[] __initconst = {
 	"ti,am4372",
 	"ti,am43",
 	NULL,
@@ -240,13 +240,13 @@ MACHINE_END
 #endif
 
 #ifdef CONFIG_SOC_DRA7XX
-static const char *dra7xx_boards_compat[] __initdata = {
-	"ti,dra7xx",
+static const char *dra74x_boards_compat[] __initconst = {
+	"ti,dra74",
 	"ti,dra7",
 	NULL,
 };
 
-DT_MACHINE_START(DRA7XX_DT, "Generic DRA7XX (Flattened Device Tree)")
+DT_MACHINE_START(DRA74X_DT, "Generic DRA74X (Flattened Device Tree)")
 	.reserve	= omap_reserve,
 	.smp		= smp_ops(omap4_smp_ops),
 	.map_io		= omap5_map_io,
@@ -255,7 +255,24 @@ DT_MACHINE_START(DRA7XX_DT, "Generic DRA7XX (Flattened Device Tree)")
 	.init_irq	= omap_gic_of_init,
 	.init_machine	= omap_generic_init,
 	.init_time	= omap5_realtime_timer_init,
-	.dt_compat	= dra7xx_boards_compat,
+	.dt_compat	= dra74x_boards_compat,
+	.restart	= omap44xx_restart,
+MACHINE_END
+
+static const char *dra72x_boards_compat[] __initconst = {
+	"ti,dra72",
+	NULL,
+};
+
+DT_MACHINE_START(DRA72_DT, "Generic DRA72X (Flattened Device Tree)")
+	.reserve	= omap_reserve,
+	.map_io		= omap5_map_io,
+	.init_early	= dra7xx_init_early,
+	.init_late	= dra7xx_init_late,
+	.init_irq	= omap_gic_of_init,
+	.init_machine	= omap_generic_init,
+	.init_time	= omap5_realtime_timer_init,
+	.dt_compat	= dra72x_boards_compat,
 	.restart	= omap44xx_restart,
 MACHINE_END
 #endif
Signature · 1 line
1.7.9.5
#8 lore raw

PATCH v3 3/4 ARM: OMAP2+: Add machine entry for dra72x devices

Hi Rajendra,

Quoted 7 lines · Rajendra

The only difference from the dra74x devices is the missing .smp entry.

While at it, also fix the use of __initdata (across the file) and replace them with __initconst as reported by checkpatch

ERROR: Use of const init definition must use __initconst +static const char *dra72x_boards_compat[] __initdata = {

Since it looks like you are gonna do another respin, care to separate out the __initdata to __initconst change for existing ones into a different patch, and limit this patch to just what the patch subject says.

regards
Suman

Quoted 144 lines
---
 arch/arm/mach-omap2/board-generic.c |   45 ++++++++++++++++++++++++-----------
 1 file changed, 31 insertions(+), 14 deletions(-)
arch/arm/mach-omap2/board-generic.c +31 -14
index b8920b6..dabb9f6 100644
@@ -43,7 +43,7 @@ static void __init omap_generic_init(void)
 }
 
 #ifdef CONFIG_SOC_OMAP2420
-static const char *omap242x_boards_compat[] __initdata = {
+static const char *omap242x_boards_compat[] __initconst = {
 	"ti,omap2420",
 	NULL,
 };
@@ -62,7 +62,7 @@ MACHINE_END
 #endif
 
 #ifdef CONFIG_SOC_OMAP2430
-static const char *omap243x_boards_compat[] __initdata = {
+static const char *omap243x_boards_compat[] __initconst = {
 	"ti,omap2430",
 	NULL,
 };
@@ -81,7 +81,7 @@ MACHINE_END
 #endif
 
 #ifdef CONFIG_ARCH_OMAP3
-static const char *omap3_boards_compat[] __initdata = {
+static const char *omap3_boards_compat[] __initconst = {
 	"ti,omap3430",
 	"ti,omap3",
 	NULL,
@@ -100,7 +100,7 @@ DT_MACHINE_START(OMAP3_DT, "Generic OMAP3 (Flattened Device Tree)")
 	.restart	= omap3xxx_restart,
 MACHINE_END
 
-static const char *omap36xx_boards_compat[] __initdata = {
+static const char *omap36xx_boards_compat[] __initconst = {
 	"ti,omap36xx",
 	NULL,
 };
@@ -118,7 +118,7 @@ DT_MACHINE_START(OMAP36XX_DT, "Generic OMAP36xx (Flattened Device Tree)")
 	.restart	= omap3xxx_restart,
 MACHINE_END
 
-static const char *omap3_gp_boards_compat[] __initdata = {
+static const char *omap3_gp_boards_compat[] __initconst = {
 	"ti,omap3-beagle",
 	"timll,omap3-devkit8000",
 	NULL,
@@ -137,7 +137,7 @@ DT_MACHINE_START(OMAP3_GP_DT, "Generic OMAP3-GP (Flattened Device Tree)")
 	.restart	= omap3xxx_restart,
 MACHINE_END
 
-static const char *am3517_boards_compat[] __initdata = {
+static const char *am3517_boards_compat[] __initconst = {
 	"ti,am3517",
 	NULL,
 };
@@ -157,7 +157,7 @@ MACHINE_END
 #endif
 
 #ifdef CONFIG_SOC_AM33XX
-static const char *am33xx_boards_compat[] __initdata = {
+static const char *am33xx_boards_compat[] __initconst = {
 	"ti,am33xx",
 	NULL,
 };
@@ -177,7 +177,7 @@ MACHINE_END
 #endif
 
 #ifdef CONFIG_ARCH_OMAP4
-static const char *omap4_boards_compat[] __initdata = {
+static const char *omap4_boards_compat[] __initconst = {
 	"ti,omap4460",
 	"ti,omap4430",
 	"ti,omap4",
@@ -199,7 +199,7 @@ MACHINE_END
 #endif
 
 #ifdef CONFIG_SOC_OMAP5
-static const char *omap5_boards_compat[] __initdata = {
+static const char *omap5_boards_compat[] __initconst = {
 	"ti,omap5432",
 	"ti,omap5430",
 	"ti,omap5",
@@ -221,7 +221,7 @@ MACHINE_END
 #endif
 
 #ifdef CONFIG_SOC_AM43XX
-static const char *am43_boards_compat[] __initdata = {
+static const char *am43_boards_compat[] __initconst = {
 	"ti,am4372",
 	"ti,am43",
 	NULL,
@@ -240,13 +240,13 @@ MACHINE_END
 #endif
 
 #ifdef CONFIG_SOC_DRA7XX
-static const char *dra7xx_boards_compat[] __initdata = {
-	"ti,dra7xx",
+static const char *dra74x_boards_compat[] __initconst = {
+	"ti,dra74",
 	"ti,dra7",
 	NULL,
 };
 
-DT_MACHINE_START(DRA7XX_DT, "Generic DRA7XX (Flattened Device Tree)")
+DT_MACHINE_START(DRA74X_DT, "Generic DRA74X (Flattened Device Tree)")
 	.reserve	= omap_reserve,
 	.smp		= smp_ops(omap4_smp_ops),
 	.map_io		= omap5_map_io,
@@ -255,7 +255,24 @@ DT_MACHINE_START(DRA7XX_DT, "Generic DRA7XX (Flattened Device Tree)")
 	.init_irq	= omap_gic_of_init,
 	.init_machine	= omap_generic_init,
 	.init_time	= omap5_realtime_timer_init,
-	.dt_compat	= dra7xx_boards_compat,
+	.dt_compat	= dra74x_boards_compat,
+	.restart	= omap44xx_restart,
+MACHINE_END
+
+static const char *dra72x_boards_compat[] __initconst = {
+	"ti,dra72",
+	NULL,
+};
+
+DT_MACHINE_START(DRA72_DT, "Generic DRA72X (Flattened Device Tree)")
+	.reserve	= omap_reserve,
+	.map_io		= omap5_map_io,
+	.init_early	= dra7xx_init_early,
+	.init_late	= dra7xx_init_late,
+	.init_irq	= omap_gic_of_init,
+	.init_machine	= omap_generic_init,
+	.init_time	= omap5_realtime_timer_init,
+	.dt_compat	= dra72x_boards_compat,
 	.restart	= omap44xx_restart,
 MACHINE_END
 #endif
#9 lore raw

PATCH v3 3/4 ARM: OMAP2+: Add machine entry for dra72x devices

Quoted 8 lines · Suman Anna

Hi Rajendra,

Quoted 5 lines · Rajendra

The only difference from the dra74x devices is the missing .smp entry.

While at it, also fix the use of __initdata (across the file) and replace them with __initconst as reported by checkpatch

Quoted 6 lines
Quoted 2 lines

ERROR: Use of const init definition must use __initconst +static const char *dra72x_boards_compat[] __initdata = {

Since it looks like you are gonna do another respin, care to separate out the __initdata to __initconst change for existing ones into a different patch, and limit this patch to just what the patch subject says.

Sure, I will, if that helps.

Quoted 149 lines

regards
Suman

Quoted 144 lines
---
 arch/arm/mach-omap2/board-generic.c |   45 ++++++++++++++++++++++++-----------
 1 file changed, 31 insertions(+), 14 deletions(-)
arch/arm/mach-omap2/board-generic.c +31 -14
index b8920b6..dabb9f6 100644
@@ -43,7 +43,7 @@ static void __init omap_generic_init(void)
 }
 
 #ifdef CONFIG_SOC_OMAP2420
-static const char *omap242x_boards_compat[] __initdata = {
+static const char *omap242x_boards_compat[] __initconst = {
 	"ti,omap2420",
 	NULL,
 };
@@ -62,7 +62,7 @@ MACHINE_END
 #endif
 
 #ifdef CONFIG_SOC_OMAP2430
-static const char *omap243x_boards_compat[] __initdata = {
+static const char *omap243x_boards_compat[] __initconst = {
 	"ti,omap2430",
 	NULL,
 };
@@ -81,7 +81,7 @@ MACHINE_END
 #endif
 
 #ifdef CONFIG_ARCH_OMAP3
-static const char *omap3_boards_compat[] __initdata = {
+static const char *omap3_boards_compat[] __initconst = {
 	"ti,omap3430",
 	"ti,omap3",
 	NULL,
@@ -100,7 +100,7 @@ DT_MACHINE_START(OMAP3_DT, "Generic OMAP3 (Flattened Device Tree)")
 	.restart	= omap3xxx_restart,
 MACHINE_END
 
-static const char *omap36xx_boards_compat[] __initdata = {
+static const char *omap36xx_boards_compat[] __initconst = {
 	"ti,omap36xx",
 	NULL,
 };
@@ -118,7 +118,7 @@ DT_MACHINE_START(OMAP36XX_DT, "Generic OMAP36xx (Flattened Device Tree)")
 	.restart	= omap3xxx_restart,
 MACHINE_END
 
-static const char *omap3_gp_boards_compat[] __initdata = {
+static const char *omap3_gp_boards_compat[] __initconst = {
 	"ti,omap3-beagle",
 	"timll,omap3-devkit8000",
 	NULL,
@@ -137,7 +137,7 @@ DT_MACHINE_START(OMAP3_GP_DT, "Generic OMAP3-GP (Flattened Device Tree)")
 	.restart	= omap3xxx_restart,
 MACHINE_END
 
-static const char *am3517_boards_compat[] __initdata = {
+static const char *am3517_boards_compat[] __initconst = {
 	"ti,am3517",
 	NULL,
 };
@@ -157,7 +157,7 @@ MACHINE_END
 #endif
 
 #ifdef CONFIG_SOC_AM33XX
-static const char *am33xx_boards_compat[] __initdata = {
+static const char *am33xx_boards_compat[] __initconst = {
 	"ti,am33xx",
 	NULL,
 };
@@ -177,7 +177,7 @@ MACHINE_END
 #endif
 
 #ifdef CONFIG_ARCH_OMAP4
-static const char *omap4_boards_compat[] __initdata = {
+static const char *omap4_boards_compat[] __initconst = {
 	"ti,omap4460",
 	"ti,omap4430",
 	"ti,omap4",
@@ -199,7 +199,7 @@ MACHINE_END
 #endif
 
 #ifdef CONFIG_SOC_OMAP5
-static const char *omap5_boards_compat[] __initdata = {
+static const char *omap5_boards_compat[] __initconst = {
 	"ti,omap5432",
 	"ti,omap5430",
 	"ti,omap5",
@@ -221,7 +221,7 @@ MACHINE_END
 #endif
 
 #ifdef CONFIG_SOC_AM43XX
-static const char *am43_boards_compat[] __initdata = {
+static const char *am43_boards_compat[] __initconst = {
 	"ti,am4372",
 	"ti,am43",
 	NULL,
@@ -240,13 +240,13 @@ MACHINE_END
 #endif
 
 #ifdef CONFIG_SOC_DRA7XX
-static const char *dra7xx_boards_compat[] __initdata = {
-	"ti,dra7xx",
+static const char *dra74x_boards_compat[] __initconst = {
+	"ti,dra74",
 	"ti,dra7",
 	NULL,
 };
 
-DT_MACHINE_START(DRA7XX_DT, "Generic DRA7XX (Flattened Device Tree)")
+DT_MACHINE_START(DRA74X_DT, "Generic DRA74X (Flattened Device Tree)")
 	.reserve	= omap_reserve,
 	.smp		= smp_ops(omap4_smp_ops),
 	.map_io		= omap5_map_io,
@@ -255,7 +255,24 @@ DT_MACHINE_START(DRA7XX_DT, "Generic DRA7XX (Flattened Device Tree)")
 	.init_irq	= omap_gic_of_init,
 	.init_machine	= omap_generic_init,
 	.init_time	= omap5_realtime_timer_init,
-	.dt_compat	= dra7xx_boards_compat,
+	.dt_compat	= dra74x_boards_compat,
+	.restart	= omap44xx_restart,
+MACHINE_END
+
+static const char *dra72x_boards_compat[] __initconst = {
+	"ti,dra72",
+	NULL,
+};
+
+DT_MACHINE_START(DRA72_DT, "Generic DRA72X (Flattened Device Tree)")
+	.reserve	= omap_reserve,
+	.map_io		= omap5_map_io,
+	.init_early	= dra7xx_init_early,
+	.init_late	= dra7xx_init_late,
+	.init_irq	= omap_gic_of_init,
+	.init_machine	= omap_generic_init,
+	.init_time	= omap5_realtime_timer_init,
+	.dt_compat	= dra72x_boards_compat,
 	.restart	= omap44xx_restart,
 MACHINE_END
 #endif
#10 lore raw

PATCH v3 4/4 ARM: DRA7: Add support for soc_is_dra74x() and soc_is_dra72x() varients

In reply to Rajendra Nayak

Use the corresponding compatibles to identify the devices.

---
 arch/arm/mach-omap2/soc.h |    7 +++++++
 1 file changed, 7 insertions(+)
arch/arm/mach-omap2/soc.h +7 -0
index 30abcc8..5ff724e 100644
@@ -245,6 +245,8 @@ IS_AM_SUBCLASS(437x, 0x437)
 #define soc_is_omap54xx()		0
 #define soc_is_omap543x()		0
 #define soc_is_dra7xx()			0
+#define soc_is_dra74x()			0
+#define soc_is_dra72x()			0
 
 #if defined(MULTI_OMAP2)
 # if defined(CONFIG_ARCH_OMAP2)
@@ -393,7 +395,12 @@ IS_OMAP_TYPE(3430, 0x3430)
 
 #if defined(CONFIG_SOC_DRA7XX)
 #undef soc_is_dra7xx
+#undef soc_is_dra74x
+#undef soc_is_dra72x
 #define soc_is_dra7xx()	(of_machine_is_compatible("ti,dra7"))
+#define soc_is_dra74x()	(of_machine_is_compatible("ti,dra74"))
+#define soc_is_dra72x()	(of_machine_is_compatible("ti,dra72"))
+
 #endif
 
 /* Various silicon revisions for omap2 */
Signature · 1 line
1.7.9.5