[PATCH 1/2] Documentation: dt: OMAP: standardize SoC naming definition
Tony Lindgren
tony at atomide.com
Mon Oct 7 15:17:01 EDT 2013
Hi,
Few comments below.
* Nishanth Menon <nm at 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 at 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
More information about the linux-arm-kernel
mailing list