On 01.04.2021 12:38, Claudiu Beznea - M18063 wrote: > On 31.03.2021 19:01, Alexandre Belloni wrote: >> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe >> >> On 31/03/2021 13:59:06+0300, Claudiu Beznea wrote: >>> From: Eugen Hristev <eugen.hristev@xxxxxxxxxxxxx> >>> >>> Introduce new family of SoCs, sama7, and first SoC, sama7g5. >>> >>> Signed-off-by: Eugen Hristev <eugen.hristev@xxxxxxxxxxxxx> >>> Signed-off-by: Claudiu Beznea <claudiu.beznea@xxxxxxxxxxxxx> >>> --- >>> arch/arm/mach-at91/Makefile | 1 + >>> arch/arm/mach-at91/sama7.c | 48 +++++++++++++++++++++++++++++++++++++ >>> 2 files changed, 49 insertions(+) >>> create mode 100644 arch/arm/mach-at91/sama7.c >>> >>> diff --git a/arch/arm/mach-at91/Makefile b/arch/arm/mach-at91/Makefile >>> index f565490f1b70..6cc6624cddac 100644 >>> --- a/arch/arm/mach-at91/Makefile >>> +++ b/arch/arm/mach-at91/Makefile >>> @@ -9,6 +9,7 @@ obj-$(CONFIG_SOC_AT91SAM9) += at91sam9.o >>> obj-$(CONFIG_SOC_SAM9X60) += sam9x60.o >>> obj-$(CONFIG_SOC_SAMA5) += sama5.o >>> obj-$(CONFIG_SOC_SAMV7) += samv7.o >>> +obj-$(CONFIG_SOC_SAMA7) += sama7.o >>> >>> # Power Management >>> obj-$(CONFIG_ATMEL_PM) += pm.o pm_suspend.o >>> diff --git a/arch/arm/mach-at91/sama7.c b/arch/arm/mach-at91/sama7.c >>> new file mode 100644 >>> index 000000000000..e04cadb569ad >>> --- /dev/null >>> +++ b/arch/arm/mach-at91/sama7.c >>> @@ -0,0 +1,48 @@ >>> +// SPDX-License-Identifier: GPL-2.0-or-later >>> +/* >>> + * Setup code for SAMA7 >>> + * >>> + * Copyright (C) 2021 Microchip Technology, Inc. and its subsidiaries >>> + * >>> + */ >>> + >>> +#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 sama7_common_init(void) >>> +{ >>> + of_platform_default_populate(NULL, NULL, NULL); >> >> Is this necessary? This is left as a workaround for the old SoCs using >> pinctrl-at91. I guess this will be using pio4 so this has to be removed. > > OK, I'll have a look. BTW, SAMA5D2 which is also using PIO4 calls > of_platform_default_populate(NULL, NULL, NULL); Without this call the PM code (arch/arm/mach-at/pm.c) is not able to locate proper DT nodes: [ 0.194615] at91_pm_backup_init: failed to find securam device! [ 0.201393] at91_pm_sram_init: failed to find sram device! [ 0.207449] AT91: PM not supported, due to no SRAM allocated > >> >>> +} >>> + >>> +static void __init sama7_dt_device_init(void) >>> +{ >>> + sama7_common_init(); >>> +} >>> + >>> +static const char *const sama7_dt_board_compat[] __initconst = { >>> + "microchip,sama7", >>> + NULL >>> +}; >>> + >>> +DT_MACHINE_START(sama7_dt, "Microchip SAMA7") >>> + /* Maintainer: Microchip */ >>> + .init_machine = sama7_dt_device_init, >>> + .dt_compat = sama7_dt_board_compat, >>> +MACHINE_END >>> + >>> +static const char *const sama7g5_dt_board_compat[] __initconst = { >>> + "microchip,sama7g5", >>> + NULL >>> +}; >>> + >>> +DT_MACHINE_START(sama7g5_dt, "Microchip SAMA7G5") >>> + /* Maintainer: Microchip */ >>> + .init_machine = sama7_dt_device_init, >>> + .dt_compat = sama7g5_dt_board_compat, >>> +MACHINE_END >>> + >>> -- >>> 2.25.1 >>> >> >> -- >> Alexandre Belloni, co-owner and COO, Bootlin >> Embedded Linux and Kernel engineering >> https://bootlin.com >> >