Re: [PATCH 22/24] ARM: at91: sama7: introduce sama7 SoC family

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 01/04/2021 at 12:24, Claudiu Beznea - M18063 wrote:
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

Okay, so we can't afford removing these calls to sama5d2 and upcoming sama7g5 right now.

Is it a common pattern to have to reach DT content in the early stages that explicit call to of_platform_default_populate() tries to solve?

Best regards,
  Nicolas


+}
+
+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





--
Nicolas Ferre



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux