Message ID | 1365083144-16085-4-git-send-email-hechtb+renesas@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Hi Bastian, Thanks for the patch. On Thursday 04 April 2013 15:45:42 Bastian Hecht wrote: > We need two steps to prepare for the new Armadillo reference DT board code: > - Split the device list into r8a7740_early_devices used by the old platform > data setup (board-armadillo.c) and r8a7740_devices_dt used by both setup > variants. > - Introduce new r8a7740_init_delay() to be more flexible about calling > shmobile_setup_delay(). > > This is similar to commit 3b00f9342623a5ebc > "ARM: shmobile: sh73a0: Do not use early devices with DT reference" > > Signed-off-by: Bastian Hecht <hechtb+renesas@gmail.com> > --- > arch/arm/mach-shmobile/include/mach/r8a7740.h | 2 ++ > arch/arm/mach-shmobile/setup-r8a7740.c | 41 +++++++++++----------- > 2 files changed, 23 insertions(+), 20 deletions(-) > > diff --git a/arch/arm/mach-shmobile/include/mach/r8a7740.h > b/arch/arm/mach-shmobile/include/mach/r8a7740.h index abdc4d4..61df082 > 100644 > --- a/arch/arm/mach-shmobile/include/mach/r8a7740.h > +++ b/arch/arm/mach-shmobile/include/mach/r8a7740.h > @@ -533,10 +533,12 @@ enum { > }; > > extern void r8a7740_meram_workaround(void); > +extern void r8a7740_init_delay(void); > extern void r8a7740_init_irq(void); > extern void r8a7740_map_io(void); > extern void r8a7740_add_early_devices(void); > extern void r8a7740_add_standard_devices(void); > +extern void r8a7740_add_standard_devices_dt(void); > extern void r8a7740_clock_init(u8 md_ck); > extern void r8a7740_pinmux_init(void); > extern void r8a7740_pm_init(void); > diff --git a/arch/arm/mach-shmobile/setup-r8a7740.c > b/arch/arm/mach-shmobile/setup-r8a7740.c index 228d7ab..ce0d2e6 100644 > --- a/arch/arm/mach-shmobile/setup-r8a7740.c > +++ b/arch/arm/mach-shmobile/setup-r8a7740.c > @@ -531,11 +531,7 @@ static struct platform_device ipmmu_device = { > .num_resources = ARRAY_SIZE(ipmmu_resources), > }; > > -static struct platform_device *r8a7740_early_devices[] __initdata = { > - &irqpin0_device, > - &irqpin1_device, > - &irqpin2_device, > - &irqpin3_device, > +static struct platform_device *r8a7740_devices_dt[] __initdata = { > &scif0_device, > &scif1_device, > &scif2_device, > @@ -546,6 +542,13 @@ static struct platform_device *r8a7740_early_devices[] > __initdata = { &scif7_device, > &scifb_device, > &cmt10_device, > +}; > + > +static struct platform_device *r8a7740_early_devices[] __initdata = { > + &irqpin0_device, > + &irqpin1_device, > + &irqpin2_device, > + &irqpin3_device, > &tmu00_device, > &tmu01_device, > &tmu02_device, > @@ -965,6 +968,8 @@ void __init r8a7740_add_standard_devices(void) > /* add devices */ > platform_add_devices(r8a7740_early_devices, > ARRAY_SIZE(r8a7740_early_devices)); > + platform_add_devices(r8a7740_devices_dt, > + ARRAY_SIZE(r8a7740_devices_dt)); > platform_add_devices(r8a7740_late_devices, > ARRAY_SIZE(r8a7740_late_devices)); > > @@ -991,31 +996,27 @@ void __init r8a7740_add_early_devices(void) > shmobile_setup_console(); > } > > -#ifdef CONFIG_USE_OF > - > -void __init r8a7740_add_early_devices_dt(void) > +void __init r8a7740_init_delay(void) > { > shmobile_setup_delay(800, 1, 3); /* Cortex-A9 @ 800MHz */ > +}; > > - early_platform_add_devices(r8a7740_early_devices, > - ARRAY_SIZE(r8a7740_early_devices)); > - > - /* setup early console here as well */ > - shmobile_setup_console(); > +void __init r8a7740_generic_init_early(void) static void ? > +{ > + r8a7740_clock_init(0); > + r8a7740_init_delay(); > } > > +#ifdef CONFIG_USE_OF > + > static const struct of_dev_auxdata r8a7740_auxdata_lookup[] __initconst = { > { } > }; > > void __init r8a7740_add_standard_devices_dt(void) > { > - /* clocks are setup late during boot in the case of DT */ > - r8a7740_clock_init(0); > - > - platform_add_devices(r8a7740_early_devices, > - ARRAY_SIZE(r8a7740_early_devices)); > - > + platform_add_devices(r8a7740_devices_dt, > + ARRAY_SIZE(r8a7740_devices_dt)); > of_platform_populate(NULL, of_default_bus_match_table, > r8a7740_auxdata_lookup, NULL); > } > @@ -1027,7 +1028,7 @@ static const char *r8a7740_boards_compat_dt[] > __initdata = { > > DT_MACHINE_START(R8A7740_DT, "Generic R8A7740 (Flattened Device Tree)") > .map_io = r8a7740_map_io, > - .init_early = r8a7740_add_early_devices_dt, > + .init_early = r8a7740_generic_init_early, > .init_irq = r8a7740_init_irq, > .init_machine = r8a7740_add_standard_devices_dt, > .init_time = shmobile_timer_init,
Hi Laurent, 2013/4/4 Laurent Pinchart <laurent.pinchart@ideasonboard.com>: > Hi Bastian, > > Thanks for the patch. > > On Thursday 04 April 2013 15:45:42 Bastian Hecht wrote: >> We need two steps to prepare for the new Armadillo reference DT board code: >> - Split the device list into r8a7740_early_devices used by the old platform >> data setup (board-armadillo.c) and r8a7740_devices_dt used by both setup >> variants. >> - Introduce new r8a7740_init_delay() to be more flexible about calling >> shmobile_setup_delay(). >> >> This is similar to commit 3b00f9342623a5ebc >> "ARM: shmobile: sh73a0: Do not use early devices with DT reference" >> >> Signed-off-by: Bastian Hecht <hechtb+renesas@gmail.com> >> --- >> arch/arm/mach-shmobile/include/mach/r8a7740.h | 2 ++ >> arch/arm/mach-shmobile/setup-r8a7740.c | 41 +++++++++++----------- >> 2 files changed, 23 insertions(+), 20 deletions(-) >> >> diff --git a/arch/arm/mach-shmobile/include/mach/r8a7740.h >> b/arch/arm/mach-shmobile/include/mach/r8a7740.h index abdc4d4..61df082 >> 100644 >> --- a/arch/arm/mach-shmobile/include/mach/r8a7740.h >> +++ b/arch/arm/mach-shmobile/include/mach/r8a7740.h >> @@ -533,10 +533,12 @@ enum { >> }; >> >> extern void r8a7740_meram_workaround(void); >> +extern void r8a7740_init_delay(void); >> extern void r8a7740_init_irq(void); >> extern void r8a7740_map_io(void); >> extern void r8a7740_add_early_devices(void); >> extern void r8a7740_add_standard_devices(void); >> +extern void r8a7740_add_standard_devices_dt(void); >> extern void r8a7740_clock_init(u8 md_ck); >> extern void r8a7740_pinmux_init(void); >> extern void r8a7740_pm_init(void); >> diff --git a/arch/arm/mach-shmobile/setup-r8a7740.c >> b/arch/arm/mach-shmobile/setup-r8a7740.c index 228d7ab..ce0d2e6 100644 >> --- a/arch/arm/mach-shmobile/setup-r8a7740.c >> +++ b/arch/arm/mach-shmobile/setup-r8a7740.c >> @@ -531,11 +531,7 @@ static struct platform_device ipmmu_device = { >> .num_resources = ARRAY_SIZE(ipmmu_resources), >> }; >> >> -static struct platform_device *r8a7740_early_devices[] __initdata = { >> - &irqpin0_device, >> - &irqpin1_device, >> - &irqpin2_device, >> - &irqpin3_device, >> +static struct platform_device *r8a7740_devices_dt[] __initdata = { >> &scif0_device, >> &scif1_device, >> &scif2_device, >> @@ -546,6 +542,13 @@ static struct platform_device *r8a7740_early_devices[] >> __initdata = { &scif7_device, >> &scifb_device, >> &cmt10_device, >> +}; >> + >> +static struct platform_device *r8a7740_early_devices[] __initdata = { >> + &irqpin0_device, >> + &irqpin1_device, >> + &irqpin2_device, >> + &irqpin3_device, >> &tmu00_device, >> &tmu01_device, >> &tmu02_device, >> @@ -965,6 +968,8 @@ void __init r8a7740_add_standard_devices(void) >> /* add devices */ >> platform_add_devices(r8a7740_early_devices, >> ARRAY_SIZE(r8a7740_early_devices)); >> + platform_add_devices(r8a7740_devices_dt, >> + ARRAY_SIZE(r8a7740_devices_dt)); >> platform_add_devices(r8a7740_late_devices, >> ARRAY_SIZE(r8a7740_late_devices)); >> >> @@ -991,31 +996,27 @@ void __init r8a7740_add_early_devices(void) >> shmobile_setup_console(); >> } >> >> -#ifdef CONFIG_USE_OF >> - >> -void __init r8a7740_add_early_devices_dt(void) >> +void __init r8a7740_init_delay(void) >> { >> shmobile_setup_delay(800, 1, 3); /* Cortex-A9 @ 800MHz */ >> +}; >> >> - early_platform_add_devices(r8a7740_early_devices, >> - ARRAY_SIZE(r8a7740_early_devices)); >> - >> - /* setup early console here as well */ >> - shmobile_setup_console(); >> +void __init r8a7740_generic_init_early(void) > > static void ? I'm not sure, other people might want to use that in their board code when they don't have the need to set up the clocks with some special flags like we need it for Armadillo. Thanks, Bastian >> +{ >> + r8a7740_clock_init(0); >> + r8a7740_init_delay(); >> } >> >> +#ifdef CONFIG_USE_OF >> + >> static const struct of_dev_auxdata r8a7740_auxdata_lookup[] __initconst = { >> { } >> }; >> >> void __init r8a7740_add_standard_devices_dt(void) >> { >> - /* clocks are setup late during boot in the case of DT */ >> - r8a7740_clock_init(0); >> - >> - platform_add_devices(r8a7740_early_devices, >> - ARRAY_SIZE(r8a7740_early_devices)); >> - >> + platform_add_devices(r8a7740_devices_dt, >> + ARRAY_SIZE(r8a7740_devices_dt)); >> of_platform_populate(NULL, of_default_bus_match_table, >> r8a7740_auxdata_lookup, NULL); >> } >> @@ -1027,7 +1028,7 @@ static const char *r8a7740_boards_compat_dt[] >> __initdata = { >> >> DT_MACHINE_START(R8A7740_DT, "Generic R8A7740 (Flattened Device Tree)") >> .map_io = r8a7740_map_io, >> - .init_early = r8a7740_add_early_devices_dt, >> + .init_early = r8a7740_generic_init_early, >> .init_irq = r8a7740_init_irq, >> .init_machine = r8a7740_add_standard_devices_dt, >> .init_time = shmobile_timer_init, > -- > Regards, > > Laurent Pinchart > -- To unsubscribe from this list: send the line "unsubscribe linux-sh" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi Bastian, On Thursday 04 April 2013 18:04:40 Bastian Hecht wrote: > 2013/4/4 Laurent Pinchart <laurent.pinchart@ideasonboard.com>: > > Hi Bastian, > > > > Thanks for the patch. > > > > On Thursday 04 April 2013 15:45:42 Bastian Hecht wrote: > >> We need two steps to prepare for the new Armadillo reference DT board > >> code: > >> - Split the device list into r8a7740_early_devices used by the old > >> platform data setup (board-armadillo.c) and r8a7740_devices_dt used by > >> both setup variants. > >> > >> - Introduce new r8a7740_init_delay() to be more flexible about calling > >> shmobile_setup_delay(). > >> > >> This is similar to commit 3b00f9342623a5ebc > >> "ARM: shmobile: sh73a0: Do not use early devices with DT reference" > >> > >> Signed-off-by: Bastian Hecht <hechtb+renesas@gmail.com> > >> --- > >> > >> arch/arm/mach-shmobile/include/mach/r8a7740.h | 2 ++ > >> arch/arm/mach-shmobile/setup-r8a7740.c | 41 +++++++++-------- > >> 2 files changed, 23 insertions(+), 20 deletions(-) [snip] > >> diff --git a/arch/arm/mach-shmobile/setup-r8a7740.c > >> b/arch/arm/mach-shmobile/setup-r8a7740.c index 228d7ab..ce0d2e6 100644 > >> --- a/arch/arm/mach-shmobile/setup-r8a7740.c > >> +++ b/arch/arm/mach-shmobile/setup-r8a7740.c [snip] > >> +void __init r8a7740_generic_init_early(void) > > > > static void ? > > I'm not sure, other people might want to use that in their board code > when they don't have the need to set up the clocks with some special > flags like we need it for Armadillo. In that case they will need to patch the header file to declare r8a7740_generic_init_early, so they could as well remove the static at that point. > >> +{ > >> + r8a7740_clock_init(0); > >> + r8a7740_init_delay(); > >> > >> }
Hi Bastian Thank you for your patch > We need two steps to prepare for the new Armadillo reference DT board code: > - Split the device list into r8a7740_early_devices used by the old platform > data setup (board-armadillo.c) and r8a7740_devices_dt used by both > setup variants. > - Introduce new r8a7740_init_delay() to be more flexible about calling > shmobile_setup_delay(). > > This is similar to commit 3b00f9342623a5ebc > "ARM: shmobile: sh73a0: Do not use early devices with DT reference" > > Signed-off-by: Bastian Hecht <hechtb+renesas@gmail.com> > --- Unfortunately, setup-xxx.c DT style between existing chip (= H1/sh73a0/A1) and new chip (= APE6/M1/H2) are different now. I know A1 setup.c already have DT support, so, I think that it is not easy to make it completely the same style as APE6/M1/H1/H2 style. And, I'm not sure when/who/how do it, (do it or doesn't it ?) but we will try to exchange H1/sh73a0/A1 setup.c DT style in the future. So, this is just information Could you please check below my comments, and Magnus <--> Arnd email thread on this patch series ? [PATCH x/x] ARM: shmobile: r8a73a4 xxxx > arch/arm/mach-shmobile/include/mach/r8a7740.h | 2 ++ > arch/arm/mach-shmobile/setup-r8a7740.c | 41 +++++++++++++------------ > 2 files changed, 23 insertions(+), 20 deletions(-) > > diff --git a/arch/arm/mach-shmobile/include/mach/r8a7740.h b/arch/arm/mach-shmobile/include/mach/r8a7740.h > index abdc4d4..61df082 100644 > --- a/arch/arm/mach-shmobile/include/mach/r8a7740.h > +++ b/arch/arm/mach-shmobile/include/mach/r8a7740.h > @@ -533,10 +533,12 @@ enum { > }; > > extern void r8a7740_meram_workaround(void); > +extern void r8a7740_init_delay(void); > extern void r8a7740_init_irq(void); > extern void r8a7740_map_io(void); > extern void r8a7740_add_early_devices(void); > extern void r8a7740_add_standard_devices(void); > +extern void r8a7740_add_standard_devices_dt(void); > extern void r8a7740_clock_init(u8 md_ck); > extern void r8a7740_pinmux_init(void); > extern void r8a7740_pm_init(void); > diff --git a/arch/arm/mach-shmobile/setup-r8a7740.c b/arch/arm/mach-shmobile/setup-r8a7740.c > index 228d7ab..ce0d2e6 100644 > --- a/arch/arm/mach-shmobile/setup-r8a7740.c > +++ b/arch/arm/mach-shmobile/setup-r8a7740.c > @@ -531,11 +531,7 @@ static struct platform_device ipmmu_device = { > .num_resources = ARRAY_SIZE(ipmmu_resources), > }; > > -static struct platform_device *r8a7740_early_devices[] __initdata = { > - &irqpin0_device, > - &irqpin1_device, > - &irqpin2_device, > - &irqpin3_device, > +static struct platform_device *r8a7740_devices_dt[] __initdata = { > &scif0_device, > &scif1_device, > &scif2_device, > @@ -546,6 +542,13 @@ static struct platform_device *r8a7740_early_devices[] __initdata = { > &scif7_device, > &scifb_device, > &cmt10_device, > +}; > + > +static struct platform_device *r8a7740_early_devices[] __initdata = { > + &irqpin0_device, > + &irqpin1_device, > + &irqpin2_device, > + &irqpin3_device, > &tmu00_device, > &tmu01_device, > &tmu02_device, > @@ -965,6 +968,8 @@ void __init r8a7740_add_standard_devices(void) > /* add devices */ > platform_add_devices(r8a7740_early_devices, > ARRAY_SIZE(r8a7740_early_devices)); > + platform_add_devices(r8a7740_devices_dt, > + ARRAY_SIZE(r8a7740_devices_dt)); > platform_add_devices(r8a7740_late_devices, > ARRAY_SIZE(r8a7740_late_devices)); This is for our note. We will not use platform_add_devices() in the future. But, I think, these could be changed collectively later. > @@ -991,31 +996,27 @@ void __init r8a7740_add_early_devices(void) > shmobile_setup_console(); > } > > -#ifdef CONFIG_USE_OF > - > -void __init r8a7740_add_early_devices_dt(void) > +void __init r8a7740_init_delay(void) > { > shmobile_setup_delay(800, 1, 3); /* Cortex-A9 @ 800MHz */ > +}; > > - early_platform_add_devices(r8a7740_early_devices, > - ARRAY_SIZE(r8a7740_early_devices)); > - > - /* setup early console here as well */ > - shmobile_setup_console(); > +void __init r8a7740_generic_init_early(void) > +{ > + r8a7740_clock_init(0); > + r8a7740_init_delay(); > } Current APE6/M1/H1/H2 doesn't call {CPU}_clock_init() from setup.c It will be called from board.c now > +#ifdef CONFIG_USE_OF > + > static const struct of_dev_auxdata r8a7740_auxdata_lookup[] __initconst = { > { } > }; > > void __init r8a7740_add_standard_devices_dt(void) > { > - /* clocks are setup late during boot in the case of DT */ > - r8a7740_clock_init(0); > - > - platform_add_devices(r8a7740_early_devices, > - ARRAY_SIZE(r8a7740_early_devices)); > - > + platform_add_devices(r8a7740_devices_dt, > + ARRAY_SIZE(r8a7740_devices_dt)); > of_platform_populate(NULL, of_default_bus_match_table, > r8a7740_auxdata_lookup, NULL); > } This is just information. I'm not sure r8a7740 / armadillo case, but, current {CPU}_add_standard_devices_dt() on APE6/M1/H1/H2 only have of_platform_populate(), and it will be removed in the future (?). Thank you Best regards --- Kuninori Morimoto -- To unsubscribe from this list: send the line "unsubscribe linux-sh" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi Morimoto-san, thanks for pointing out the differences of the board codes, I will have a look and see if it's appropriate to apply (partially) the new style or go with the old one. Cheers, Bastian 2013/4/5 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>: > > Hi Bastian > > Thank you for your patch > >> We need two steps to prepare for the new Armadillo reference DT board code: >> - Split the device list into r8a7740_early_devices used by the old platform >> data setup (board-armadillo.c) and r8a7740_devices_dt used by both >> setup variants. >> - Introduce new r8a7740_init_delay() to be more flexible about calling >> shmobile_setup_delay(). >> >> This is similar to commit 3b00f9342623a5ebc >> "ARM: shmobile: sh73a0: Do not use early devices with DT reference" >> >> Signed-off-by: Bastian Hecht <hechtb+renesas@gmail.com> >> --- > > Unfortunately, setup-xxx.c DT style between existing chip (= H1/sh73a0/A1) > and new chip (= APE6/M1/H2) are different now. > > I know A1 setup.c already have DT support, > so, I think that it is not easy to make it completely > the same style as APE6/M1/H1/H2 style. > > And, I'm not sure when/who/how do it, > (do it or doesn't it ?) > but we will try to exchange > H1/sh73a0/A1 setup.c DT style in the future. > > So, this is just information > > Could you please check below my comments, > and Magnus <--> Arnd email thread on this patch series ? > > [PATCH x/x] ARM: shmobile: r8a73a4 xxxx > > >> arch/arm/mach-shmobile/include/mach/r8a7740.h | 2 ++ >> arch/arm/mach-shmobile/setup-r8a7740.c | 41 +++++++++++++------------ >> 2 files changed, 23 insertions(+), 20 deletions(-) >> >> diff --git a/arch/arm/mach-shmobile/include/mach/r8a7740.h b/arch/arm/mach-shmobile/include/mach/r8a7740.h >> index abdc4d4..61df082 100644 >> --- a/arch/arm/mach-shmobile/include/mach/r8a7740.h >> +++ b/arch/arm/mach-shmobile/include/mach/r8a7740.h >> @@ -533,10 +533,12 @@ enum { >> }; >> >> extern void r8a7740_meram_workaround(void); >> +extern void r8a7740_init_delay(void); >> extern void r8a7740_init_irq(void); >> extern void r8a7740_map_io(void); >> extern void r8a7740_add_early_devices(void); >> extern void r8a7740_add_standard_devices(void); >> +extern void r8a7740_add_standard_devices_dt(void); >> extern void r8a7740_clock_init(u8 md_ck); >> extern void r8a7740_pinmux_init(void); >> extern void r8a7740_pm_init(void); >> diff --git a/arch/arm/mach-shmobile/setup-r8a7740.c b/arch/arm/mach-shmobile/setup-r8a7740.c >> index 228d7ab..ce0d2e6 100644 >> --- a/arch/arm/mach-shmobile/setup-r8a7740.c >> +++ b/arch/arm/mach-shmobile/setup-r8a7740.c >> @@ -531,11 +531,7 @@ static struct platform_device ipmmu_device = { >> .num_resources = ARRAY_SIZE(ipmmu_resources), >> }; >> >> -static struct platform_device *r8a7740_early_devices[] __initdata = { >> - &irqpin0_device, >> - &irqpin1_device, >> - &irqpin2_device, >> - &irqpin3_device, >> +static struct platform_device *r8a7740_devices_dt[] __initdata = { >> &scif0_device, >> &scif1_device, >> &scif2_device, >> @@ -546,6 +542,13 @@ static struct platform_device *r8a7740_early_devices[] __initdata = { >> &scif7_device, >> &scifb_device, >> &cmt10_device, >> +}; >> + >> +static struct platform_device *r8a7740_early_devices[] __initdata = { >> + &irqpin0_device, >> + &irqpin1_device, >> + &irqpin2_device, >> + &irqpin3_device, >> &tmu00_device, >> &tmu01_device, >> &tmu02_device, >> @@ -965,6 +968,8 @@ void __init r8a7740_add_standard_devices(void) >> /* add devices */ >> platform_add_devices(r8a7740_early_devices, >> ARRAY_SIZE(r8a7740_early_devices)); >> + platform_add_devices(r8a7740_devices_dt, >> + ARRAY_SIZE(r8a7740_devices_dt)); >> platform_add_devices(r8a7740_late_devices, >> ARRAY_SIZE(r8a7740_late_devices)); > > This is for our note. > We will not use platform_add_devices() in the future. > But, I think, these could be changed collectively later. > >> @@ -991,31 +996,27 @@ void __init r8a7740_add_early_devices(void) >> shmobile_setup_console(); >> } >> >> -#ifdef CONFIG_USE_OF >> - >> -void __init r8a7740_add_early_devices_dt(void) >> +void __init r8a7740_init_delay(void) >> { >> shmobile_setup_delay(800, 1, 3); /* Cortex-A9 @ 800MHz */ >> +}; >> >> - early_platform_add_devices(r8a7740_early_devices, >> - ARRAY_SIZE(r8a7740_early_devices)); >> - >> - /* setup early console here as well */ >> - shmobile_setup_console(); >> +void __init r8a7740_generic_init_early(void) >> +{ >> + r8a7740_clock_init(0); >> + r8a7740_init_delay(); >> } > > Current APE6/M1/H1/H2 doesn't call {CPU}_clock_init() from setup.c > It will be called from board.c now > >> +#ifdef CONFIG_USE_OF >> + >> static const struct of_dev_auxdata r8a7740_auxdata_lookup[] __initconst = { >> { } >> }; >> >> void __init r8a7740_add_standard_devices_dt(void) >> { >> - /* clocks are setup late during boot in the case of DT */ >> - r8a7740_clock_init(0); >> - >> - platform_add_devices(r8a7740_early_devices, >> - ARRAY_SIZE(r8a7740_early_devices)); >> - >> + platform_add_devices(r8a7740_devices_dt, >> + ARRAY_SIZE(r8a7740_devices_dt)); >> of_platform_populate(NULL, of_default_bus_match_table, >> r8a7740_auxdata_lookup, NULL); >> } > > This is just information. > I'm not sure r8a7740 / armadillo case, > but, current {CPU}_add_standard_devices_dt() on APE6/M1/H1/H2 > only have of_platform_populate(), > and it will be removed in the future (?). > > Thank you > > Best regards > --- > Kuninori Morimoto -- To unsubscribe from this list: send the line "unsubscribe linux-sh" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi Bastian > thanks for pointing out the differences of the board codes, I will > have a look and see if it's appropriate to apply (partially) the new > style or go with the old one. Thank you for your help !! > 2013/4/5 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>: > > > > Hi Bastian > > > > Thank you for your patch > > > >> We need two steps to prepare for the new Armadillo reference DT board code: > >> - Split the device list into r8a7740_early_devices used by the old platform > >> data setup (board-armadillo.c) and r8a7740_devices_dt used by both > >> setup variants. > >> - Introduce new r8a7740_init_delay() to be more flexible about calling > >> shmobile_setup_delay(). > >> > >> This is similar to commit 3b00f9342623a5ebc > >> "ARM: shmobile: sh73a0: Do not use early devices with DT reference" > >> > >> Signed-off-by: Bastian Hecht <hechtb+renesas@gmail.com> > >> --- > > > > Unfortunately, setup-xxx.c DT style between existing chip (= H1/sh73a0/A1) > > and new chip (= APE6/M1/H2) are different now. > > > > I know A1 setup.c already have DT support, > > so, I think that it is not easy to make it completely > > the same style as APE6/M1/H1/H2 style. > > > > And, I'm not sure when/who/how do it, > > (do it or doesn't it ?) > > but we will try to exchange > > H1/sh73a0/A1 setup.c DT style in the future. > > > > So, this is just information > > > > Could you please check below my comments, > > and Magnus <--> Arnd email thread on this patch series ? > > > > [PATCH x/x] ARM: shmobile: r8a73a4 xxxx > > > > > >> arch/arm/mach-shmobile/include/mach/r8a7740.h | 2 ++ > >> arch/arm/mach-shmobile/setup-r8a7740.c | 41 +++++++++++++------------ > >> 2 files changed, 23 insertions(+), 20 deletions(-) > >> > >> diff --git a/arch/arm/mach-shmobile/include/mach/r8a7740.h b/arch/arm/mach-shmobile/include/mach/r8a7740.h > >> index abdc4d4..61df082 100644 > >> --- a/arch/arm/mach-shmobile/include/mach/r8a7740.h > >> +++ b/arch/arm/mach-shmobile/include/mach/r8a7740.h > >> @@ -533,10 +533,12 @@ enum { > >> }; > >> > >> extern void r8a7740_meram_workaround(void); > >> +extern void r8a7740_init_delay(void); > >> extern void r8a7740_init_irq(void); > >> extern void r8a7740_map_io(void); > >> extern void r8a7740_add_early_devices(void); > >> extern void r8a7740_add_standard_devices(void); > >> +extern void r8a7740_add_standard_devices_dt(void); > >> extern void r8a7740_clock_init(u8 md_ck); > >> extern void r8a7740_pinmux_init(void); > >> extern void r8a7740_pm_init(void); > >> diff --git a/arch/arm/mach-shmobile/setup-r8a7740.c b/arch/arm/mach-shmobile/setup-r8a7740.c > >> index 228d7ab..ce0d2e6 100644 > >> --- a/arch/arm/mach-shmobile/setup-r8a7740.c > >> +++ b/arch/arm/mach-shmobile/setup-r8a7740.c > >> @@ -531,11 +531,7 @@ static struct platform_device ipmmu_device = { > >> .num_resources = ARRAY_SIZE(ipmmu_resources), > >> }; > >> > >> -static struct platform_device *r8a7740_early_devices[] __initdata = { > >> - &irqpin0_device, > >> - &irqpin1_device, > >> - &irqpin2_device, > >> - &irqpin3_device, > >> +static struct platform_device *r8a7740_devices_dt[] __initdata = { > >> &scif0_device, > >> &scif1_device, > >> &scif2_device, > >> @@ -546,6 +542,13 @@ static struct platform_device *r8a7740_early_devices[] __initdata = { > >> &scif7_device, > >> &scifb_device, > >> &cmt10_device, > >> +}; > >> + > >> +static struct platform_device *r8a7740_early_devices[] __initdata = { > >> + &irqpin0_device, > >> + &irqpin1_device, > >> + &irqpin2_device, > >> + &irqpin3_device, > >> &tmu00_device, > >> &tmu01_device, > >> &tmu02_device, > >> @@ -965,6 +968,8 @@ void __init r8a7740_add_standard_devices(void) > >> /* add devices */ > >> platform_add_devices(r8a7740_early_devices, > >> ARRAY_SIZE(r8a7740_early_devices)); > >> + platform_add_devices(r8a7740_devices_dt, > >> + ARRAY_SIZE(r8a7740_devices_dt)); > >> platform_add_devices(r8a7740_late_devices, > >> ARRAY_SIZE(r8a7740_late_devices)); > > > > This is for our note. > > We will not use platform_add_devices() in the future. > > But, I think, these could be changed collectively later. > > > >> @@ -991,31 +996,27 @@ void __init r8a7740_add_early_devices(void) > >> shmobile_setup_console(); > >> } > >> > >> -#ifdef CONFIG_USE_OF > >> - > >> -void __init r8a7740_add_early_devices_dt(void) > >> +void __init r8a7740_init_delay(void) > >> { > >> shmobile_setup_delay(800, 1, 3); /* Cortex-A9 @ 800MHz */ > >> +}; > >> > >> - early_platform_add_devices(r8a7740_early_devices, > >> - ARRAY_SIZE(r8a7740_early_devices)); > >> - > >> - /* setup early console here as well */ > >> - shmobile_setup_console(); > >> +void __init r8a7740_generic_init_early(void) > >> +{ > >> + r8a7740_clock_init(0); > >> + r8a7740_init_delay(); > >> } > > > > Current APE6/M1/H1/H2 doesn't call {CPU}_clock_init() from setup.c > > It will be called from board.c now > > > >> +#ifdef CONFIG_USE_OF > >> + > >> static const struct of_dev_auxdata r8a7740_auxdata_lookup[] __initconst = { > >> { } > >> }; > >> > >> void __init r8a7740_add_standard_devices_dt(void) > >> { > >> - /* clocks are setup late during boot in the case of DT */ > >> - r8a7740_clock_init(0); > >> - > >> - platform_add_devices(r8a7740_early_devices, > >> - ARRAY_SIZE(r8a7740_early_devices)); > >> - > >> + platform_add_devices(r8a7740_devices_dt, > >> + ARRAY_SIZE(r8a7740_devices_dt)); > >> of_platform_populate(NULL, of_default_bus_match_table, > >> r8a7740_auxdata_lookup, NULL); > >> } > > > > This is just information. > > I'm not sure r8a7740 / armadillo case, > > but, current {CPU}_add_standard_devices_dt() on APE6/M1/H1/H2 > > only have of_platform_populate(), > > and it will be removed in the future (?). > > > > Thank you > > > > Best regards > > --- > > Kuninori Morimoto Best regards --- Kuninori Morimoto -- To unsubscribe from this list: send the line "unsubscribe linux-sh" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hello Morimoto-san, 2013/4/9 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>: > > Hi Bastian > >> thanks for pointing out the differences of the board codes, I will >> have a look and see if it's appropriate to apply (partially) the new >> style or go with the old one. > > Thank you for your help !! I've decided to repost the patch series more or less at it is as I've got limited resources for it and if I would need to convert both board files to use the new style we would never get it. So better old style then nothing. Sorry, Bastian > >> 2013/4/5 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>: >> > >> > Hi Bastian >> > >> > Thank you for your patch >> > >> >> We need two steps to prepare for the new Armadillo reference DT board code: >> >> - Split the device list into r8a7740_early_devices used by the old platform >> >> data setup (board-armadillo.c) and r8a7740_devices_dt used by both >> >> setup variants. >> >> - Introduce new r8a7740_init_delay() to be more flexible about calling >> >> shmobile_setup_delay(). >> >> >> >> This is similar to commit 3b00f9342623a5ebc >> >> "ARM: shmobile: sh73a0: Do not use early devices with DT reference" >> >> >> >> Signed-off-by: Bastian Hecht <hechtb+renesas@gmail.com> >> >> --- >> > >> > Unfortunately, setup-xxx.c DT style between existing chip (= H1/sh73a0/A1) >> > and new chip (= APE6/M1/H2) are different now. >> > >> > I know A1 setup.c already have DT support, >> > so, I think that it is not easy to make it completely >> > the same style as APE6/M1/H1/H2 style. >> > >> > And, I'm not sure when/who/how do it, >> > (do it or doesn't it ?) >> > but we will try to exchange >> > H1/sh73a0/A1 setup.c DT style in the future. >> > >> > So, this is just information >> > >> > Could you please check below my comments, >> > and Magnus <--> Arnd email thread on this patch series ? >> > >> > [PATCH x/x] ARM: shmobile: r8a73a4 xxxx >> > >> > >> >> arch/arm/mach-shmobile/include/mach/r8a7740.h | 2 ++ >> >> arch/arm/mach-shmobile/setup-r8a7740.c | 41 +++++++++++++------------ >> >> 2 files changed, 23 insertions(+), 20 deletions(-) >> >> >> >> diff --git a/arch/arm/mach-shmobile/include/mach/r8a7740.h b/arch/arm/mach-shmobile/include/mach/r8a7740.h >> >> index abdc4d4..61df082 100644 >> >> --- a/arch/arm/mach-shmobile/include/mach/r8a7740.h >> >> +++ b/arch/arm/mach-shmobile/include/mach/r8a7740.h >> >> @@ -533,10 +533,12 @@ enum { >> >> }; >> >> >> >> extern void r8a7740_meram_workaround(void); >> >> +extern void r8a7740_init_delay(void); >> >> extern void r8a7740_init_irq(void); >> >> extern void r8a7740_map_io(void); >> >> extern void r8a7740_add_early_devices(void); >> >> extern void r8a7740_add_standard_devices(void); >> >> +extern void r8a7740_add_standard_devices_dt(void); >> >> extern void r8a7740_clock_init(u8 md_ck); >> >> extern void r8a7740_pinmux_init(void); >> >> extern void r8a7740_pm_init(void); >> >> diff --git a/arch/arm/mach-shmobile/setup-r8a7740.c b/arch/arm/mach-shmobile/setup-r8a7740.c >> >> index 228d7ab..ce0d2e6 100644 >> >> --- a/arch/arm/mach-shmobile/setup-r8a7740.c >> >> +++ b/arch/arm/mach-shmobile/setup-r8a7740.c >> >> @@ -531,11 +531,7 @@ static struct platform_device ipmmu_device = { >> >> .num_resources = ARRAY_SIZE(ipmmu_resources), >> >> }; >> >> >> >> -static struct platform_device *r8a7740_early_devices[] __initdata = { >> >> - &irqpin0_device, >> >> - &irqpin1_device, >> >> - &irqpin2_device, >> >> - &irqpin3_device, >> >> +static struct platform_device *r8a7740_devices_dt[] __initdata = { >> >> &scif0_device, >> >> &scif1_device, >> >> &scif2_device, >> >> @@ -546,6 +542,13 @@ static struct platform_device *r8a7740_early_devices[] __initdata = { >> >> &scif7_device, >> >> &scifb_device, >> >> &cmt10_device, >> >> +}; >> >> + >> >> +static struct platform_device *r8a7740_early_devices[] __initdata = { >> >> + &irqpin0_device, >> >> + &irqpin1_device, >> >> + &irqpin2_device, >> >> + &irqpin3_device, >> >> &tmu00_device, >> >> &tmu01_device, >> >> &tmu02_device, >> >> @@ -965,6 +968,8 @@ void __init r8a7740_add_standard_devices(void) >> >> /* add devices */ >> >> platform_add_devices(r8a7740_early_devices, >> >> ARRAY_SIZE(r8a7740_early_devices)); >> >> + platform_add_devices(r8a7740_devices_dt, >> >> + ARRAY_SIZE(r8a7740_devices_dt)); >> >> platform_add_devices(r8a7740_late_devices, >> >> ARRAY_SIZE(r8a7740_late_devices)); >> > >> > This is for our note. >> > We will not use platform_add_devices() in the future. >> > But, I think, these could be changed collectively later. >> > >> >> @@ -991,31 +996,27 @@ void __init r8a7740_add_early_devices(void) >> >> shmobile_setup_console(); >> >> } >> >> >> >> -#ifdef CONFIG_USE_OF >> >> - >> >> -void __init r8a7740_add_early_devices_dt(void) >> >> +void __init r8a7740_init_delay(void) >> >> { >> >> shmobile_setup_delay(800, 1, 3); /* Cortex-A9 @ 800MHz */ >> >> +}; >> >> >> >> - early_platform_add_devices(r8a7740_early_devices, >> >> - ARRAY_SIZE(r8a7740_early_devices)); >> >> - >> >> - /* setup early console here as well */ >> >> - shmobile_setup_console(); >> >> +void __init r8a7740_generic_init_early(void) >> >> +{ >> >> + r8a7740_clock_init(0); >> >> + r8a7740_init_delay(); >> >> } >> > >> > Current APE6/M1/H1/H2 doesn't call {CPU}_clock_init() from setup.c >> > It will be called from board.c now >> > >> >> +#ifdef CONFIG_USE_OF >> >> + >> >> static const struct of_dev_auxdata r8a7740_auxdata_lookup[] __initconst = { >> >> { } >> >> }; >> >> >> >> void __init r8a7740_add_standard_devices_dt(void) >> >> { >> >> - /* clocks are setup late during boot in the case of DT */ >> >> - r8a7740_clock_init(0); >> >> - >> >> - platform_add_devices(r8a7740_early_devices, >> >> - ARRAY_SIZE(r8a7740_early_devices)); >> >> - >> >> + platform_add_devices(r8a7740_devices_dt, >> >> + ARRAY_SIZE(r8a7740_devices_dt)); >> >> of_platform_populate(NULL, of_default_bus_match_table, >> >> r8a7740_auxdata_lookup, NULL); >> >> } >> > >> > This is just information. >> > I'm not sure r8a7740 / armadillo case, >> > but, current {CPU}_add_standard_devices_dt() on APE6/M1/H1/H2 >> > only have of_platform_populate(), >> > and it will be removed in the future (?). >> > >> > Thank you >> > >> > Best regards >> > --- >> > Kuninori Morimoto > > > Best regards > --- > Kuninori Morimoto -- To unsubscribe from this list: send the line "unsubscribe linux-sh" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi Bastian > >> thanks for pointing out the differences of the board codes, I will > >> have a look and see if it's appropriate to apply (partially) the new > >> style or go with the old one. > > > > Thank you for your help !! > > I've decided to repost the patch series more or less at it is as I've > got limited resources for it and if I would need to convert both board > files to use the new style we would never get it. So better old style > then nothing. Thank you for your report. OK, no problem for me Best regards --- Kuninori Morimoto -- To unsubscribe from this list: send the line "unsubscribe linux-sh" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/arch/arm/mach-shmobile/include/mach/r8a7740.h b/arch/arm/mach-shmobile/include/mach/r8a7740.h index abdc4d4..61df082 100644 --- a/arch/arm/mach-shmobile/include/mach/r8a7740.h +++ b/arch/arm/mach-shmobile/include/mach/r8a7740.h @@ -533,10 +533,12 @@ enum { }; extern void r8a7740_meram_workaround(void); +extern void r8a7740_init_delay(void); extern void r8a7740_init_irq(void); extern void r8a7740_map_io(void); extern void r8a7740_add_early_devices(void); extern void r8a7740_add_standard_devices(void); +extern void r8a7740_add_standard_devices_dt(void); extern void r8a7740_clock_init(u8 md_ck); extern void r8a7740_pinmux_init(void); extern void r8a7740_pm_init(void); diff --git a/arch/arm/mach-shmobile/setup-r8a7740.c b/arch/arm/mach-shmobile/setup-r8a7740.c index 228d7ab..ce0d2e6 100644 --- a/arch/arm/mach-shmobile/setup-r8a7740.c +++ b/arch/arm/mach-shmobile/setup-r8a7740.c @@ -531,11 +531,7 @@ static struct platform_device ipmmu_device = { .num_resources = ARRAY_SIZE(ipmmu_resources), }; -static struct platform_device *r8a7740_early_devices[] __initdata = { - &irqpin0_device, - &irqpin1_device, - &irqpin2_device, - &irqpin3_device, +static struct platform_device *r8a7740_devices_dt[] __initdata = { &scif0_device, &scif1_device, &scif2_device, @@ -546,6 +542,13 @@ static struct platform_device *r8a7740_early_devices[] __initdata = { &scif7_device, &scifb_device, &cmt10_device, +}; + +static struct platform_device *r8a7740_early_devices[] __initdata = { + &irqpin0_device, + &irqpin1_device, + &irqpin2_device, + &irqpin3_device, &tmu00_device, &tmu01_device, &tmu02_device, @@ -965,6 +968,8 @@ void __init r8a7740_add_standard_devices(void) /* add devices */ platform_add_devices(r8a7740_early_devices, ARRAY_SIZE(r8a7740_early_devices)); + platform_add_devices(r8a7740_devices_dt, + ARRAY_SIZE(r8a7740_devices_dt)); platform_add_devices(r8a7740_late_devices, ARRAY_SIZE(r8a7740_late_devices)); @@ -991,31 +996,27 @@ void __init r8a7740_add_early_devices(void) shmobile_setup_console(); } -#ifdef CONFIG_USE_OF - -void __init r8a7740_add_early_devices_dt(void) +void __init r8a7740_init_delay(void) { shmobile_setup_delay(800, 1, 3); /* Cortex-A9 @ 800MHz */ +}; - early_platform_add_devices(r8a7740_early_devices, - ARRAY_SIZE(r8a7740_early_devices)); - - /* setup early console here as well */ - shmobile_setup_console(); +void __init r8a7740_generic_init_early(void) +{ + r8a7740_clock_init(0); + r8a7740_init_delay(); } +#ifdef CONFIG_USE_OF + static const struct of_dev_auxdata r8a7740_auxdata_lookup[] __initconst = { { } }; void __init r8a7740_add_standard_devices_dt(void) { - /* clocks are setup late during boot in the case of DT */ - r8a7740_clock_init(0); - - platform_add_devices(r8a7740_early_devices, - ARRAY_SIZE(r8a7740_early_devices)); - + platform_add_devices(r8a7740_devices_dt, + ARRAY_SIZE(r8a7740_devices_dt)); of_platform_populate(NULL, of_default_bus_match_table, r8a7740_auxdata_lookup, NULL); } @@ -1027,7 +1028,7 @@ static const char *r8a7740_boards_compat_dt[] __initdata = { DT_MACHINE_START(R8A7740_DT, "Generic R8A7740 (Flattened Device Tree)") .map_io = r8a7740_map_io, - .init_early = r8a7740_add_early_devices_dt, + .init_early = r8a7740_generic_init_early, .init_irq = r8a7740_init_irq, .init_machine = r8a7740_add_standard_devices_dt, .init_time = shmobile_timer_init,
We need two steps to prepare for the new Armadillo reference DT board code: - Split the device list into r8a7740_early_devices used by the old platform data setup (board-armadillo.c) and r8a7740_devices_dt used by both setup variants. - Introduce new r8a7740_init_delay() to be more flexible about calling shmobile_setup_delay(). This is similar to commit 3b00f9342623a5ebc "ARM: shmobile: sh73a0: Do not use early devices with DT reference" Signed-off-by: Bastian Hecht <hechtb+renesas@gmail.com> --- arch/arm/mach-shmobile/include/mach/r8a7740.h | 2 ++ arch/arm/mach-shmobile/setup-r8a7740.c | 41 +++++++++++++------------ 2 files changed, 23 insertions(+), 20 deletions(-)