Message ID | 1574773941-20649-3-git-send-email-claudiu.beznea@microchip.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
Series | SoC and defconfig support for SAM9X60 | expand |
On 26/11/2019 15:12:06+0200, Claudiu Beznea wrote: > Move SAM9X60's PM part under SoC config flag. This allows the building > of SAM9X60 platform withouth depending on CONFIG_SOC_AT91SAM9 flag, > allowing us to select only necessary config flags for SAM9X60. > I'm really wondering, how much space does that really save? The net benefit seems to be very small... > Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com> > --- > arch/arm/mach-at91/Makefile | 1 + > arch/arm/mach-at91/at91sam9.c | 18 ------------------ > arch/arm/mach-at91/pm.c | 2 +- > arch/arm/mach-at91/sam9x60.c | 34 ++++++++++++++++++++++++++++++++++ > 4 files changed, 36 insertions(+), 19 deletions(-) > create mode 100644 arch/arm/mach-at91/sam9x60.c > > diff --git a/arch/arm/mach-at91/Makefile b/arch/arm/mach-at91/Makefile > index de64301dcff2..f565490f1b70 100644 > --- a/arch/arm/mach-at91/Makefile > +++ b/arch/arm/mach-at91/Makefile > @@ -6,6 +6,7 @@ > # CPU-specific support > obj-$(CONFIG_SOC_AT91RM9200) += at91rm9200.o > obj-$(CONFIG_SOC_AT91SAM9) += at91sam9.o > +obj-$(CONFIG_SOC_SAM9X60) += sam9x60.o > obj-$(CONFIG_SOC_SAMA5) += sama5.o > obj-$(CONFIG_SOC_SAMV7) += samv7.o > > diff --git a/arch/arm/mach-at91/at91sam9.c b/arch/arm/mach-at91/at91sam9.c > index bf629c90c758..7e572189a5eb 100644 > --- a/arch/arm/mach-at91/at91sam9.c > +++ b/arch/arm/mach-at91/at91sam9.c > @@ -31,21 +31,3 @@ DT_MACHINE_START(at91sam_dt, "Atmel AT91SAM9") > .init_machine = at91sam9_init, > .dt_compat = at91_dt_board_compat, > MACHINE_END > - > -static void __init sam9x60_init(void) > -{ > - of_platform_default_populate(NULL, NULL, NULL); > - > - sam9x60_pm_init(); > -} > - > -static const char *const sam9x60_dt_board_compat[] __initconst = { > - "microchip,sam9x60", > - NULL > -}; > - > -DT_MACHINE_START(sam9x60_dt, "Microchip SAM9X60") > - /* Maintainer: Microchip */ > - .init_machine = sam9x60_init, > - .dt_compat = sam9x60_dt_board_compat, > -MACHINE_END > diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c > index d5af6aedc02c..56a6a49b19e2 100644 > --- a/arch/arm/mach-at91/pm.c > +++ b/arch/arm/mach-at91/pm.c > @@ -805,7 +805,7 @@ void __init at91rm9200_pm_init(void) > > void __init sam9x60_pm_init(void) > { > - if (!IS_ENABLED(CONFIG_SOC_AT91SAM9)) > + if (!IS_ENABLED(CONFIG_SOC_SAM9X60)) > return; > > at91_pm_modes_init(); > diff --git a/arch/arm/mach-at91/sam9x60.c b/arch/arm/mach-at91/sam9x60.c > new file mode 100644 > index 000000000000..d8c739d25458 > --- /dev/null > +++ b/arch/arm/mach-at91/sam9x60.c > @@ -0,0 +1,34 @@ > +// SPDX-License-Identifier: GPL-2.0+ > +/* > + * Setup code for SAM9X60. > + * > + * Copyright (C) 2019 Microchip Technology Inc. and its subsidiaries > + * > + * Author: Claudiu Beznea <claudiu.beznea@microchip.com> > + */ > + > +#include <linux/of.h> > +#include <linux/of_platform.h> > + > +#include <asm/mach/arch.h> > +#include <asm/system_misc.h> > + > +#include "generic.h" > + > +static void __init sam9x60_init(void) > +{ > + of_platform_default_populate(NULL, NULL, NULL); > + > + sam9x60_pm_init(); > +} > + > +static const char *const sam9x60_dt_board_compat[] __initconst = { > + "microchip,sam9x60", > + NULL > +}; > + > +DT_MACHINE_START(sam9x60_dt, "Microchip SAM9X60") > + /* Maintainer: Microchip */ > + .init_machine = sam9x60_init, > + .dt_compat = sam9x60_dt_board_compat, > +MACHINE_END > -- > 2.7.4 >
On 26.11.2019 23:28, Alexandre Belloni wrote: > EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe > > On 26/11/2019 15:12:06+0200, Claudiu Beznea wrote: >> Move SAM9X60's PM part under SoC config flag. This allows the building >> of SAM9X60 platform withouth depending on CONFIG_SOC_AT91SAM9 flag, >> allowing us to select only necessary config flags for SAM9X60. >> > > I'm really wondering, how much space does that really save? > > The net benefit seems to be very small... Not that much, indeed. We want to be independent of SOC_AT91SAM9. > >> Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com> >> --- >> arch/arm/mach-at91/Makefile | 1 + >> arch/arm/mach-at91/at91sam9.c | 18 ------------------ >> arch/arm/mach-at91/pm.c | 2 +- >> arch/arm/mach-at91/sam9x60.c | 34 ++++++++++++++++++++++++++++++++++ >> 4 files changed, 36 insertions(+), 19 deletions(-) >> create mode 100644 arch/arm/mach-at91/sam9x60.c >> >> diff --git a/arch/arm/mach-at91/Makefile b/arch/arm/mach-at91/Makefile >> index de64301dcff2..f565490f1b70 100644 >> --- a/arch/arm/mach-at91/Makefile >> +++ b/arch/arm/mach-at91/Makefile >> @@ -6,6 +6,7 @@ >> # CPU-specific support >> obj-$(CONFIG_SOC_AT91RM9200) += at91rm9200.o >> obj-$(CONFIG_SOC_AT91SAM9) += at91sam9.o >> +obj-$(CONFIG_SOC_SAM9X60) += sam9x60.o >> obj-$(CONFIG_SOC_SAMA5) += sama5.o >> obj-$(CONFIG_SOC_SAMV7) += samv7.o >> >> diff --git a/arch/arm/mach-at91/at91sam9.c b/arch/arm/mach-at91/at91sam9.c >> index bf629c90c758..7e572189a5eb 100644 >> --- a/arch/arm/mach-at91/at91sam9.c >> +++ b/arch/arm/mach-at91/at91sam9.c >> @@ -31,21 +31,3 @@ DT_MACHINE_START(at91sam_dt, "Atmel AT91SAM9") >> .init_machine = at91sam9_init, >> .dt_compat = at91_dt_board_compat, >> MACHINE_END >> - >> -static void __init sam9x60_init(void) >> -{ >> - of_platform_default_populate(NULL, NULL, NULL); >> - >> - sam9x60_pm_init(); >> -} >> - >> -static const char *const sam9x60_dt_board_compat[] __initconst = { >> - "microchip,sam9x60", >> - NULL >> -}; >> - >> -DT_MACHINE_START(sam9x60_dt, "Microchip SAM9X60") >> - /* Maintainer: Microchip */ >> - .init_machine = sam9x60_init, >> - .dt_compat = sam9x60_dt_board_compat, >> -MACHINE_END >> diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c >> index d5af6aedc02c..56a6a49b19e2 100644 >> --- a/arch/arm/mach-at91/pm.c >> +++ b/arch/arm/mach-at91/pm.c >> @@ -805,7 +805,7 @@ void __init at91rm9200_pm_init(void) >> >> void __init sam9x60_pm_init(void) >> { >> - if (!IS_ENABLED(CONFIG_SOC_AT91SAM9)) >> + if (!IS_ENABLED(CONFIG_SOC_SAM9X60)) >> return; >> >> at91_pm_modes_init(); >> diff --git a/arch/arm/mach-at91/sam9x60.c b/arch/arm/mach-at91/sam9x60.c >> new file mode 100644 >> index 000000000000..d8c739d25458 >> --- /dev/null >> +++ b/arch/arm/mach-at91/sam9x60.c >> @@ -0,0 +1,34 @@ >> +// SPDX-License-Identifier: GPL-2.0+ >> +/* >> + * Setup code for SAM9X60. >> + * >> + * Copyright (C) 2019 Microchip Technology Inc. and its subsidiaries >> + * >> + * Author: Claudiu Beznea <claudiu.beznea@microchip.com> >> + */ >> + >> +#include <linux/of.h> >> +#include <linux/of_platform.h> >> + >> +#include <asm/mach/arch.h> >> +#include <asm/system_misc.h> >> + >> +#include "generic.h" >> + >> +static void __init sam9x60_init(void) >> +{ >> + of_platform_default_populate(NULL, NULL, NULL); >> + >> + sam9x60_pm_init(); >> +} >> + >> +static const char *const sam9x60_dt_board_compat[] __initconst = { >> + "microchip,sam9x60", >> + NULL >> +}; >> + >> +DT_MACHINE_START(sam9x60_dt, "Microchip SAM9X60") >> + /* Maintainer: Microchip */ >> + .init_machine = sam9x60_init, >> + .dt_compat = sam9x60_dt_board_compat, >> +MACHINE_END >> -- >> 2.7.4 >> > > -- > Alexandre Belloni, Bootlin > Embedded Linux and Kernel engineering > https://bootlin.com >
On 27/11/2019 08:06:47+0000, Claudiu.Beznea@microchip.com wrote: > > > On 26.11.2019 23:28, Alexandre Belloni wrote: > > EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe > > > > On 26/11/2019 15:12:06+0200, Claudiu Beznea wrote: > >> Move SAM9X60's PM part under SoC config flag. This allows the building > >> of SAM9X60 platform withouth depending on CONFIG_SOC_AT91SAM9 flag, > >> allowing us to select only necessary config flags for SAM9X60. > >> > > > > I'm really wondering, how much space does that really save? > > > > The net benefit seems to be very small... > > Not that much, indeed. We want to be independent of SOC_AT91SAM9. > The question is why? I don't see the technical benefit but I definitively see the maintenance burden of having two separate configs doing almost the same thing. > > > >> Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com> > >> --- > >> arch/arm/mach-at91/Makefile | 1 + > >> arch/arm/mach-at91/at91sam9.c | 18 ------------------ > >> arch/arm/mach-at91/pm.c | 2 +- > >> arch/arm/mach-at91/sam9x60.c | 34 ++++++++++++++++++++++++++++++++++ > >> 4 files changed, 36 insertions(+), 19 deletions(-) > >> create mode 100644 arch/arm/mach-at91/sam9x60.c > >> > >> diff --git a/arch/arm/mach-at91/Makefile b/arch/arm/mach-at91/Makefile > >> index de64301dcff2..f565490f1b70 100644 > >> --- a/arch/arm/mach-at91/Makefile > >> +++ b/arch/arm/mach-at91/Makefile > >> @@ -6,6 +6,7 @@ > >> # CPU-specific support > >> obj-$(CONFIG_SOC_AT91RM9200) += at91rm9200.o > >> obj-$(CONFIG_SOC_AT91SAM9) += at91sam9.o > >> +obj-$(CONFIG_SOC_SAM9X60) += sam9x60.o > >> obj-$(CONFIG_SOC_SAMA5) += sama5.o > >> obj-$(CONFIG_SOC_SAMV7) += samv7.o > >> > >> diff --git a/arch/arm/mach-at91/at91sam9.c b/arch/arm/mach-at91/at91sam9.c > >> index bf629c90c758..7e572189a5eb 100644 > >> --- a/arch/arm/mach-at91/at91sam9.c > >> +++ b/arch/arm/mach-at91/at91sam9.c > >> @@ -31,21 +31,3 @@ DT_MACHINE_START(at91sam_dt, "Atmel AT91SAM9") > >> .init_machine = at91sam9_init, > >> .dt_compat = at91_dt_board_compat, > >> MACHINE_END > >> - > >> -static void __init sam9x60_init(void) > >> -{ > >> - of_platform_default_populate(NULL, NULL, NULL); > >> - > >> - sam9x60_pm_init(); > >> -} > >> - > >> -static const char *const sam9x60_dt_board_compat[] __initconst = { > >> - "microchip,sam9x60", > >> - NULL > >> -}; > >> - > >> -DT_MACHINE_START(sam9x60_dt, "Microchip SAM9X60") > >> - /* Maintainer: Microchip */ > >> - .init_machine = sam9x60_init, > >> - .dt_compat = sam9x60_dt_board_compat, > >> -MACHINE_END > >> diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c > >> index d5af6aedc02c..56a6a49b19e2 100644 > >> --- a/arch/arm/mach-at91/pm.c > >> +++ b/arch/arm/mach-at91/pm.c > >> @@ -805,7 +805,7 @@ void __init at91rm9200_pm_init(void) > >> > >> void __init sam9x60_pm_init(void) > >> { > >> - if (!IS_ENABLED(CONFIG_SOC_AT91SAM9)) > >> + if (!IS_ENABLED(CONFIG_SOC_SAM9X60)) > >> return; > >> > >> at91_pm_modes_init(); > >> diff --git a/arch/arm/mach-at91/sam9x60.c b/arch/arm/mach-at91/sam9x60.c > >> new file mode 100644 > >> index 000000000000..d8c739d25458 > >> --- /dev/null > >> +++ b/arch/arm/mach-at91/sam9x60.c > >> @@ -0,0 +1,34 @@ > >> +// SPDX-License-Identifier: GPL-2.0+ > >> +/* > >> + * Setup code for SAM9X60. > >> + * > >> + * Copyright (C) 2019 Microchip Technology Inc. and its subsidiaries > >> + * > >> + * Author: Claudiu Beznea <claudiu.beznea@microchip.com> > >> + */ > >> + > >> +#include <linux/of.h> > >> +#include <linux/of_platform.h> > >> + > >> +#include <asm/mach/arch.h> > >> +#include <asm/system_misc.h> > >> + > >> +#include "generic.h" > >> + > >> +static void __init sam9x60_init(void) > >> +{ > >> + of_platform_default_populate(NULL, NULL, NULL); > >> + > >> + sam9x60_pm_init(); > >> +} > >> + > >> +static const char *const sam9x60_dt_board_compat[] __initconst = { > >> + "microchip,sam9x60", > >> + NULL > >> +}; > >> + > >> +DT_MACHINE_START(sam9x60_dt, "Microchip SAM9X60") > >> + /* Maintainer: Microchip */ > >> + .init_machine = sam9x60_init, > >> + .dt_compat = sam9x60_dt_board_compat, > >> +MACHINE_END > >> -- > >> 2.7.4 > >> > > > > -- > > Alexandre Belloni, Bootlin > > Embedded Linux and Kernel engineering > > https://bootlin.com > >
On 27/11/2019 at 11:07, Alexandre Belloni wrote: > On 27/11/2019 08:06:47+0000, Claudiu.Beznea@microchip.com wrote: >> >> >> On 26.11.2019 23:28, Alexandre Belloni wrote: >>> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe >>> >>> On 26/11/2019 15:12:06+0200, Claudiu Beznea wrote: >>>> Move SAM9X60's PM part under SoC config flag. This allows the building >>>> of SAM9X60 platform withouth depending on CONFIG_SOC_AT91SAM9 flag, >>>> allowing us to select only necessary config flags for SAM9X60. >>>> >>> >>> I'm really wondering, how much space does that really save? >>> >>> The net benefit seems to be very small... >> >> Not that much, indeed. We want to be independent of SOC_AT91SAM9. >> > > The question is why? I don't see the technical benefit but I > definitively see the maintenance burden of having two separate configs > doing almost the same thing. The AT91SAM9 config embeds a bunch of earlier drivers/clock definitions that are not needed anymore in the new SAM9X60. Likewise, some sam9x60 new things are not needed at all for the older sam9 series. There is somehow a generation gap between them... I would like that we preserve the possibility to only embed the sam9x60 alone in a tailored kernel configuration, basically how it is done for our SAMA5s. I know that we're talking about ~100s of KB here, but however, it's easy to do now and it could make a difference when targeting low spec systems. Maintaining the SAMA5 as separate config options never proved us to be difficult to do. Best regards, Nicolas >>>> Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com> >>>> --- >>>> arch/arm/mach-at91/Makefile | 1 + >>>> arch/arm/mach-at91/at91sam9.c | 18 ------------------ >>>> arch/arm/mach-at91/pm.c | 2 +- >>>> arch/arm/mach-at91/sam9x60.c | 34 ++++++++++++++++++++++++++++++++++ >>>> 4 files changed, 36 insertions(+), 19 deletions(-) >>>> create mode 100644 arch/arm/mach-at91/sam9x60.c >>>> >>>> diff --git a/arch/arm/mach-at91/Makefile b/arch/arm/mach-at91/Makefile >>>> index de64301dcff2..f565490f1b70 100644 >>>> --- a/arch/arm/mach-at91/Makefile >>>> +++ b/arch/arm/mach-at91/Makefile >>>> @@ -6,6 +6,7 @@ >>>> # CPU-specific support >>>> obj-$(CONFIG_SOC_AT91RM9200) += at91rm9200.o >>>> obj-$(CONFIG_SOC_AT91SAM9) += at91sam9.o >>>> +obj-$(CONFIG_SOC_SAM9X60) += sam9x60.o >>>> obj-$(CONFIG_SOC_SAMA5) += sama5.o >>>> obj-$(CONFIG_SOC_SAMV7) += samv7.o >>>> >>>> diff --git a/arch/arm/mach-at91/at91sam9.c b/arch/arm/mach-at91/at91sam9.c >>>> index bf629c90c758..7e572189a5eb 100644 >>>> --- a/arch/arm/mach-at91/at91sam9.c >>>> +++ b/arch/arm/mach-at91/at91sam9.c >>>> @@ -31,21 +31,3 @@ DT_MACHINE_START(at91sam_dt, "Atmel AT91SAM9") >>>> .init_machine = at91sam9_init, >>>> .dt_compat = at91_dt_board_compat, >>>> MACHINE_END >>>> - >>>> -static void __init sam9x60_init(void) >>>> -{ >>>> - of_platform_default_populate(NULL, NULL, NULL); >>>> - >>>> - sam9x60_pm_init(); >>>> -} >>>> - >>>> -static const char *const sam9x60_dt_board_compat[] __initconst = { >>>> - "microchip,sam9x60", >>>> - NULL >>>> -}; >>>> - >>>> -DT_MACHINE_START(sam9x60_dt, "Microchip SAM9X60") >>>> - /* Maintainer: Microchip */ >>>> - .init_machine = sam9x60_init, >>>> - .dt_compat = sam9x60_dt_board_compat, >>>> -MACHINE_END >>>> diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c >>>> index d5af6aedc02c..56a6a49b19e2 100644 >>>> --- a/arch/arm/mach-at91/pm.c >>>> +++ b/arch/arm/mach-at91/pm.c >>>> @@ -805,7 +805,7 @@ void __init at91rm9200_pm_init(void) >>>> >>>> void __init sam9x60_pm_init(void) >>>> { >>>> - if (!IS_ENABLED(CONFIG_SOC_AT91SAM9)) >>>> + if (!IS_ENABLED(CONFIG_SOC_SAM9X60)) >>>> return; >>>> >>>> at91_pm_modes_init(); >>>> diff --git a/arch/arm/mach-at91/sam9x60.c b/arch/arm/mach-at91/sam9x60.c >>>> new file mode 100644 >>>> index 000000000000..d8c739d25458 >>>> --- /dev/null >>>> +++ b/arch/arm/mach-at91/sam9x60.c >>>> @@ -0,0 +1,34 @@ >>>> +// SPDX-License-Identifier: GPL-2.0+ >>>> +/* >>>> + * Setup code for SAM9X60. >>>> + * >>>> + * Copyright (C) 2019 Microchip Technology Inc. and its subsidiaries >>>> + * >>>> + * Author: Claudiu Beznea <claudiu.beznea@microchip.com> >>>> + */ >>>> + >>>> +#include <linux/of.h> >>>> +#include <linux/of_platform.h> >>>> + >>>> +#include <asm/mach/arch.h> >>>> +#include <asm/system_misc.h> >>>> + >>>> +#include "generic.h" >>>> + >>>> +static void __init sam9x60_init(void) >>>> +{ >>>> + of_platform_default_populate(NULL, NULL, NULL); >>>> + >>>> + sam9x60_pm_init(); >>>> +} >>>> + >>>> +static const char *const sam9x60_dt_board_compat[] __initconst = { >>>> + "microchip,sam9x60", >>>> + NULL >>>> +}; >>>> + >>>> +DT_MACHINE_START(sam9x60_dt, "Microchip SAM9X60") >>>> + /* Maintainer: Microchip */ >>>> + .init_machine = sam9x60_init, >>>> + .dt_compat = sam9x60_dt_board_compat, >>>> +MACHINE_END >>>> -- >>>> 2.7.4 >>>> >>> >>> -- >>> Alexandre Belloni, Bootlin >>> Embedded Linux and Kernel engineering >>> https://bootlin.com >>> > > -- > Alexandre Belloni, Bootlin > Embedded Linux and Kernel engineering > https://bootlin.com >
On 27.11.2019 12:07, Alexandre Belloni wrote: > EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe > > On 27/11/2019 08:06:47+0000, Claudiu.Beznea@microchip.com wrote: >> >> >> On 26.11.2019 23:28, Alexandre Belloni wrote: >>> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe >>> >>> On 26/11/2019 15:12:06+0200, Claudiu Beznea wrote: >>>> Move SAM9X60's PM part under SoC config flag. This allows the building >>>> of SAM9X60 platform withouth depending on CONFIG_SOC_AT91SAM9 flag, >>>> allowing us to select only necessary config flags for SAM9X60. >>>> >>> >>> I'm really wondering, how much space does that really save? >>> >>> The net benefit seems to be very small... >> >> Not that much, indeed. We want to be independent of SOC_AT91SAM9. >> > > The question is why? I don't see the technical benefit but I > definitively see the maintenance burden of having two separate configs > doing almost the same thing. As I said above: to be able to build SAM9X60 without depending on SOC_AT91SAM9 and to limit the legacy (in term of drivers) coming with SOC_AT91SAM9. Would you prefer the other way around like I had in the 1st version: +config SOC_SAM9X60 + bool "SAM9X60" + depends on SOC_AT91SAM9 + select ATMEL_AIC5_IRQ + select HAVE_AT91_GENERATED_CLK + select HAVE_AT91_SAM9X60_PLL + help + Select this if you are using Microchip's SAM9X60 SoC > >>> >>>> Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com> >>>> --- >>>> arch/arm/mach-at91/Makefile | 1 + >>>> arch/arm/mach-at91/at91sam9.c | 18 ------------------ >>>> arch/arm/mach-at91/pm.c | 2 +- >>>> arch/arm/mach-at91/sam9x60.c | 34 ++++++++++++++++++++++++++++++++++ >>>> 4 files changed, 36 insertions(+), 19 deletions(-) >>>> create mode 100644 arch/arm/mach-at91/sam9x60.c >>>> >>>> diff --git a/arch/arm/mach-at91/Makefile b/arch/arm/mach-at91/Makefile >>>> index de64301dcff2..f565490f1b70 100644 >>>> --- a/arch/arm/mach-at91/Makefile >>>> +++ b/arch/arm/mach-at91/Makefile >>>> @@ -6,6 +6,7 @@ >>>> # CPU-specific support >>>> obj-$(CONFIG_SOC_AT91RM9200) += at91rm9200.o >>>> obj-$(CONFIG_SOC_AT91SAM9) += at91sam9.o >>>> +obj-$(CONFIG_SOC_SAM9X60) += sam9x60.o >>>> obj-$(CONFIG_SOC_SAMA5) += sama5.o >>>> obj-$(CONFIG_SOC_SAMV7) += samv7.o >>>> >>>> diff --git a/arch/arm/mach-at91/at91sam9.c b/arch/arm/mach-at91/at91sam9.c >>>> index bf629c90c758..7e572189a5eb 100644 >>>> --- a/arch/arm/mach-at91/at91sam9.c >>>> +++ b/arch/arm/mach-at91/at91sam9.c >>>> @@ -31,21 +31,3 @@ DT_MACHINE_START(at91sam_dt, "Atmel AT91SAM9") >>>> .init_machine = at91sam9_init, >>>> .dt_compat = at91_dt_board_compat, >>>> MACHINE_END >>>> - >>>> -static void __init sam9x60_init(void) >>>> -{ >>>> - of_platform_default_populate(NULL, NULL, NULL); >>>> - >>>> - sam9x60_pm_init(); >>>> -} >>>> - >>>> -static const char *const sam9x60_dt_board_compat[] __initconst = { >>>> - "microchip,sam9x60", >>>> - NULL >>>> -}; >>>> - >>>> -DT_MACHINE_START(sam9x60_dt, "Microchip SAM9X60") >>>> - /* Maintainer: Microchip */ >>>> - .init_machine = sam9x60_init, >>>> - .dt_compat = sam9x60_dt_board_compat, >>>> -MACHINE_END >>>> diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c >>>> index d5af6aedc02c..56a6a49b19e2 100644 >>>> --- a/arch/arm/mach-at91/pm.c >>>> +++ b/arch/arm/mach-at91/pm.c >>>> @@ -805,7 +805,7 @@ void __init at91rm9200_pm_init(void) >>>> >>>> void __init sam9x60_pm_init(void) >>>> { >>>> - if (!IS_ENABLED(CONFIG_SOC_AT91SAM9)) >>>> + if (!IS_ENABLED(CONFIG_SOC_SAM9X60)) >>>> return; >>>> >>>> at91_pm_modes_init(); >>>> diff --git a/arch/arm/mach-at91/sam9x60.c b/arch/arm/mach-at91/sam9x60.c >>>> new file mode 100644 >>>> index 000000000000..d8c739d25458 >>>> --- /dev/null >>>> +++ b/arch/arm/mach-at91/sam9x60.c >>>> @@ -0,0 +1,34 @@ >>>> +// SPDX-License-Identifier: GPL-2.0+ >>>> +/* >>>> + * Setup code for SAM9X60. >>>> + * >>>> + * Copyright (C) 2019 Microchip Technology Inc. and its subsidiaries >>>> + * >>>> + * Author: Claudiu Beznea <claudiu.beznea@microchip.com> >>>> + */ >>>> + >>>> +#include <linux/of.h> >>>> +#include <linux/of_platform.h> >>>> + >>>> +#include <asm/mach/arch.h> >>>> +#include <asm/system_misc.h> >>>> + >>>> +#include "generic.h" >>>> + >>>> +static void __init sam9x60_init(void) >>>> +{ >>>> + of_platform_default_populate(NULL, NULL, NULL); >>>> + >>>> + sam9x60_pm_init(); >>>> +} >>>> + >>>> +static const char *const sam9x60_dt_board_compat[] __initconst = { >>>> + "microchip,sam9x60", >>>> + NULL >>>> +}; >>>> + >>>> +DT_MACHINE_START(sam9x60_dt, "Microchip SAM9X60") >>>> + /* Maintainer: Microchip */ >>>> + .init_machine = sam9x60_init, >>>> + .dt_compat = sam9x60_dt_board_compat, >>>> +MACHINE_END >>>> -- >>>> 2.7.4 >>>> >>> >>> -- >>> Alexandre Belloni, Bootlin >>> Embedded Linux and Kernel engineering >>> https://bootlin.com >>> > > -- > Alexandre Belloni, Bootlin > Embedded Linux and Kernel engineering > https://bootlin.com >
diff --git a/arch/arm/mach-at91/Makefile b/arch/arm/mach-at91/Makefile index de64301dcff2..f565490f1b70 100644 --- a/arch/arm/mach-at91/Makefile +++ b/arch/arm/mach-at91/Makefile @@ -6,6 +6,7 @@ # CPU-specific support obj-$(CONFIG_SOC_AT91RM9200) += at91rm9200.o obj-$(CONFIG_SOC_AT91SAM9) += at91sam9.o +obj-$(CONFIG_SOC_SAM9X60) += sam9x60.o obj-$(CONFIG_SOC_SAMA5) += sama5.o obj-$(CONFIG_SOC_SAMV7) += samv7.o diff --git a/arch/arm/mach-at91/at91sam9.c b/arch/arm/mach-at91/at91sam9.c index bf629c90c758..7e572189a5eb 100644 --- a/arch/arm/mach-at91/at91sam9.c +++ b/arch/arm/mach-at91/at91sam9.c @@ -31,21 +31,3 @@ DT_MACHINE_START(at91sam_dt, "Atmel AT91SAM9") .init_machine = at91sam9_init, .dt_compat = at91_dt_board_compat, MACHINE_END - -static void __init sam9x60_init(void) -{ - of_platform_default_populate(NULL, NULL, NULL); - - sam9x60_pm_init(); -} - -static const char *const sam9x60_dt_board_compat[] __initconst = { - "microchip,sam9x60", - NULL -}; - -DT_MACHINE_START(sam9x60_dt, "Microchip SAM9X60") - /* Maintainer: Microchip */ - .init_machine = sam9x60_init, - .dt_compat = sam9x60_dt_board_compat, -MACHINE_END diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c index d5af6aedc02c..56a6a49b19e2 100644 --- a/arch/arm/mach-at91/pm.c +++ b/arch/arm/mach-at91/pm.c @@ -805,7 +805,7 @@ void __init at91rm9200_pm_init(void) void __init sam9x60_pm_init(void) { - if (!IS_ENABLED(CONFIG_SOC_AT91SAM9)) + if (!IS_ENABLED(CONFIG_SOC_SAM9X60)) return; at91_pm_modes_init(); diff --git a/arch/arm/mach-at91/sam9x60.c b/arch/arm/mach-at91/sam9x60.c new file mode 100644 index 000000000000..d8c739d25458 --- /dev/null +++ b/arch/arm/mach-at91/sam9x60.c @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Setup code for SAM9X60. + * + * Copyright (C) 2019 Microchip Technology Inc. and its subsidiaries + * + * Author: Claudiu Beznea <claudiu.beznea@microchip.com> + */ + +#include <linux/of.h> +#include <linux/of_platform.h> + +#include <asm/mach/arch.h> +#include <asm/system_misc.h> + +#include "generic.h" + +static void __init sam9x60_init(void) +{ + of_platform_default_populate(NULL, NULL, NULL); + + sam9x60_pm_init(); +} + +static const char *const sam9x60_dt_board_compat[] __initconst = { + "microchip,sam9x60", + NULL +}; + +DT_MACHINE_START(sam9x60_dt, "Microchip SAM9X60") + /* Maintainer: Microchip */ + .init_machine = sam9x60_init, + .dt_compat = sam9x60_dt_board_compat, +MACHINE_END
Move SAM9X60's PM part under SoC config flag. This allows the building of SAM9X60 platform withouth depending on CONFIG_SOC_AT91SAM9 flag, allowing us to select only necessary config flags for SAM9X60. Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com> --- arch/arm/mach-at91/Makefile | 1 + arch/arm/mach-at91/at91sam9.c | 18 ------------------ arch/arm/mach-at91/pm.c | 2 +- arch/arm/mach-at91/sam9x60.c | 34 ++++++++++++++++++++++++++++++++++ 4 files changed, 36 insertions(+), 19 deletions(-) create mode 100644 arch/arm/mach-at91/sam9x60.c