diff mbox

[1/2] Documentation: dt: OMAP: standardize SoC naming definition

Message ID 1381164584-4008-2-git-send-email-nm@ti.com (mailing list archive)
State New, archived
Headers show

Commit Message

Nishanth Menon Oct. 7, 2013, 4:49 p.m. UTC
SoC family definitions at the moment are reactive to board needs
as a result, beagle-xm would matchup with ti,omap3 which invokes
omap3430_init_early instead of omap3630_init_early. Obviously, this is
the wrong behavior.

Eventually, we will have descriptors match only with SoC types and
should not contain anything specific to board handling.

Signed-off-by: Nishanth Menon <nm@ti.com>
---
 .../devicetree/bindings/arm/omap/omap.txt          |   45 ++++++++++++++++++++
 arch/arm/mach-omap2/board-generic.c                |   23 ++++++++++
 2 files changed, 68 insertions(+)

Comments

Tony Lindgren Oct. 7, 2013, 7:17 p.m. UTC | #1
Hi,

Few comments below.

* Nishanth Menon <nm@ti.com> [131007 09:57]:
> SoC family definitions at the moment are reactive to board needs
> as a result, beagle-xm would matchup with ti,omap3 which invokes
> omap3430_init_early instead of omap3630_init_early. Obviously, this is
> the wrong behavior.

It seems that we should try to queue this as a fix to avoid
debugging it multiple times as it's actually quite easy to hit this
one.

So maybe use a subject along lines of:

"ARM: OMAP3: Fix hardware detection for omap3630 when booted with device tree"

And also include these warnings you can get:

omap_hwmod: uart4: cannot clk_get main_clk uart4_fck
omap_hwmod: uart4: cannot _init_clocks

WARNING: CPU: 0 PID: 1 at arch/arm/mach-omap2/omap_hwmod.c:2434 _init+0x6c/0x80()
omap_hwmod: uart4: couldn't init clocks
...

WARNING: CPU: 0 PID: 1 at arch/arm/mach-omap2/omap_hwmod.c:2126 _enable+0x254/0x280()
omap_hwmod: timer12: enabled state can only be entered from initialized, idle, or disabled state
...

WARNING: CPU: 0 PID: 46 at arch/arm/mach-omap2/omap_hwmod.c:2224 _idle+0xd4/0xf8()
omap_hwmod: timer12: idle state can only be entered from enabled state

WARNING: CPU: 0 PID: 1 at arch/arm/mach-omap2/omap_hwmod.c:2126 _enable+0x254/0x280()
omap_hwmod: uart4: enabled state can only be entered from initialized, idle, or disabled state

And also describe that the outcome is that the system fails to boot.
 
> --- a/Documentation/devicetree/bindings/arm/omap/omap.txt
> +++ b/Documentation/devicetree/bindings/arm/omap/omap.txt
> @@ -30,6 +30,51 @@ spinlock@1 {
>      ti,hwmods = "spinlock";
>  };
>  
> +SoC Type(optional):
> +- ti,gp	- General Purpose devices
> +- ti,hs	- High Security devices
> +
> +SoC Families:
> +
> +- OMAP2 generic - defaults to OMAP2420
> +  compatible = "ti,omap2"
> +- OMAP3 generic - defaults to OMAP3430
> +  compatible = "ti,omap3"
> +- OMAP4 generic - defaults to OMAP4430
> +  compatible = "ti,omap4"
> +- OMAP5 generic - defaults to OMAP5430
> +  compatible = "ti,omap5"
> +- DRA7 generic - defaults to DRA742
> +  compatible = "ti,dra7"
> +- AM43x generic - defaults to AM437x
> +  compatible = "ti,am43"
> +
> +SoCs:
> +
> +- OMAP2420
> +  compatible = "ti,omap2420", "ti,omap2"
> +- OMAP2430
> +  compatible = "ti,omap2430", "ti,omap2"
> +
> +- OMAP3430
> +  compatible = "ti,omap343x", "ti,omap3"
> +- OMAP3630
> +  compatible = "ti,omap363x", "ti,omap3"
> +- AM33xx
> +  compatible = "ti,am33xx", "ti,omap3"
> +
> +- OMAP4430
> +  compatible = "ti,omap443x", "ti,omap4"
> +- OMAP4460
> +  compatible = "ti,omap446x", "ti,omap4"
> +
> +- OMAP5430
> +  compatible = "ti,omap5430", "ti,omap5"
> +- OMAP5432
> +  compatible = "ti,omap5432", "ti,omap5"
> +
> +- DRA742
> +  compatible = "ti,dra7xx", "ti,dra7"
>  
>  Boards:

And I would leave the documentation parts out of the fix as
we're pretty late into the -rc cycle.
  
> +++ b/arch/arm/mach-omap2/board-generic.c
> @@ -113,6 +113,7 @@ MACHINE_END
>  #ifdef CONFIG_ARCH_OMAP3
>  static const char *omap3_boards_compat[] __initdata = {
>  	"ti,omap3",
> +	"ti,omap343x",
>  	NULL,
>  };
>  
> @@ -129,6 +130,24 @@ DT_MACHINE_START(OMAP3_DT, "Generic OMAP3 (Flattened Device Tree)")
>  	.restart	= omap3xxx_restart,
>  MACHINE_END
>  
> +static const char *omap36xx_boards_compat[] __initdata = {
> +	"ti,omap363x",
> +	NULL,
> +};

Why not make it just "ti,omap36xx"? This also applies to 3703
where the 3 is missing as it does not have the DSP.

> +DT_MACHINE_START(OMAP36xx_DT, "Generic OMAP363x (Flattened Device Tree)")

Upper case OMAP36XX_DT here please like the others have.

> +	.reserve	= omap_reserve,
> +	.map_io		= omap3_map_io,
> +	.init_early	= omap3630_init_early,
> +	.init_irq	= omap_intc_of_init,
> +	.handle_irq	= omap3_intc_handle_irq,
> +	.init_machine	= omap_generic_init,
> +	.init_late	= omap3_init_late,
> +	.init_time	= omap3_sync32k_timer_init,

Looks like this version has the correct init_time function too :)

> +	.dt_compat	= omap36xx_boards_compat,
> +	.restart	= omap3xxx_restart,
> +MACHINE_END

This looks correct to me.

>  static const char *omap3_gp_boards_compat[] __initdata = {
>  	"ti,omap3-beagle",
>  	"timll,omap3-devkit8000",
> @@ -171,6 +190,8 @@ MACHINE_END
>  #ifdef CONFIG_ARCH_OMAP4
>  static const char *omap4_boards_compat[] __initdata = {
>  	"ti,omap4",
> +	"ti,omap4430",
> +	"ti,omap4460",
>  	NULL,
>  };
>  
> @@ -191,6 +212,8 @@ MACHINE_END
>  #ifdef CONFIG_SOC_OMAP5
>  static const char *omap5_boards_compat[] __initdata = {
>  	"ti,omap5",
> +	"ti,omap5430",
> +	"ti,omap5432",
>  	NULL,
>  };

I would leave these parts for later, maybe with the documentation
changes?

Regards,

Tony
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/arm/omap/omap.txt b/Documentation/devicetree/bindings/arm/omap/omap.txt
index 91b7049..28b20a2 100644
--- a/Documentation/devicetree/bindings/arm/omap/omap.txt
+++ b/Documentation/devicetree/bindings/arm/omap/omap.txt
@@ -30,6 +30,51 @@  spinlock@1 {
     ti,hwmods = "spinlock";
 };
 
+SoC Type(optional):
+- ti,gp	- General Purpose devices
+- ti,hs	- High Security devices
+
+SoC Families:
+
+- OMAP2 generic - defaults to OMAP2420
+  compatible = "ti,omap2"
+- OMAP3 generic - defaults to OMAP3430
+  compatible = "ti,omap3"
+- OMAP4 generic - defaults to OMAP4430
+  compatible = "ti,omap4"
+- OMAP5 generic - defaults to OMAP5430
+  compatible = "ti,omap5"
+- DRA7 generic - defaults to DRA742
+  compatible = "ti,dra7"
+- AM43x generic - defaults to AM437x
+  compatible = "ti,am43"
+
+SoCs:
+
+- OMAP2420
+  compatible = "ti,omap2420", "ti,omap2"
+- OMAP2430
+  compatible = "ti,omap2430", "ti,omap2"
+
+- OMAP3430
+  compatible = "ti,omap343x", "ti,omap3"
+- OMAP3630
+  compatible = "ti,omap363x", "ti,omap3"
+- AM33xx
+  compatible = "ti,am33xx", "ti,omap3"
+
+- OMAP4430
+  compatible = "ti,omap443x", "ti,omap4"
+- OMAP4460
+  compatible = "ti,omap446x", "ti,omap4"
+
+- OMAP5430
+  compatible = "ti,omap5430", "ti,omap5"
+- OMAP5432
+  compatible = "ti,omap5432", "ti,omap5"
+
+- DRA742
+  compatible = "ti,dra7xx", "ti,dra7"
 
 Boards:
 
diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-omap2/board-generic.c
index 39c7838..c78b070 100644
--- a/arch/arm/mach-omap2/board-generic.c
+++ b/arch/arm/mach-omap2/board-generic.c
@@ -113,6 +113,7 @@  MACHINE_END
 #ifdef CONFIG_ARCH_OMAP3
 static const char *omap3_boards_compat[] __initdata = {
 	"ti,omap3",
+	"ti,omap343x",
 	NULL,
 };
 
@@ -129,6 +130,24 @@  DT_MACHINE_START(OMAP3_DT, "Generic OMAP3 (Flattened Device Tree)")
 	.restart	= omap3xxx_restart,
 MACHINE_END
 
+static const char *omap36xx_boards_compat[] __initdata = {
+	"ti,omap363x",
+	NULL,
+};
+
+DT_MACHINE_START(OMAP36xx_DT, "Generic OMAP363x (Flattened Device Tree)")
+	.reserve	= omap_reserve,
+	.map_io		= omap3_map_io,
+	.init_early	= omap3630_init_early,
+	.init_irq	= omap_intc_of_init,
+	.handle_irq	= omap3_intc_handle_irq,
+	.init_machine	= omap_generic_init,
+	.init_late	= omap3_init_late,
+	.init_time	= omap3_sync32k_timer_init,
+	.dt_compat	= omap36xx_boards_compat,
+	.restart	= omap3xxx_restart,
+MACHINE_END
+
 static const char *omap3_gp_boards_compat[] __initdata = {
 	"ti,omap3-beagle",
 	"timll,omap3-devkit8000",
@@ -171,6 +190,8 @@  MACHINE_END
 #ifdef CONFIG_ARCH_OMAP4
 static const char *omap4_boards_compat[] __initdata = {
 	"ti,omap4",
+	"ti,omap4430",
+	"ti,omap4460",
 	NULL,
 };
 
@@ -191,6 +212,8 @@  MACHINE_END
 #ifdef CONFIG_SOC_OMAP5
 static const char *omap5_boards_compat[] __initdata = {
 	"ti,omap5",
+	"ti,omap5430",
+	"ti,omap5432",
 	NULL,
 };