Skip to contentSkip to conversation

Enable Power Modes Support for SAMA7D65 SoC

PATCH Applied [email protected] 5 participants 39 messages Feb 27, 2025 – Mar 21, 2025

Subsystems (9)

v3 of 5 Applied Latest is v5 →

lore
Share & tools
lore
#0 lore raw

v3 cover Enable Power Modes Support for SAMA7D65 SoC

From: Ryan Wanner <[email protected]>

This patch set adds support for low power modes for the SAMA7D65 SoC and the required components and changes for low power modes.

The series includes changes in the asm code to account for the addtional clocks that are in this SoC.

The Device tree additions are to enable all the components needed to keep the SoC in low power mode.

There are some DTB check warnings but that is due to the dt-binding not in the correct .yaml file format.

Changes v1 -> v2:
- Add missing compatible for ddr3phy, it is now in both syscon sets.
- Fix alphabetical ordering for sama7d65.
- Remove the incorrect reorganizing patch.
- Remove sama7g5-rtt as a compatible for sama7d65-rtt and add sama7d65-rtt as a compatible wake up source in the pm driver.

Changes from v2 -> v3:
- Correct mistake in v2 sfrbu dt-binding patch.
- Correct incorrect dt-binding addition and formatting for rtc and rtt bindings.
- Add missing SoB tag.
- Cleaned up commit message for Backup mode to describe SHDWC is status register is cleared for this SoC.
- Cleaned up variable naming and usage for mcks. Changed the mcks number to the correct number of clocks needed to be saved and corrected the ASM code accordingly.
- Removed the SHDWC from ULP0 wake-up source as it is not configured as a valid wake-up source for ULP0.
- Separated all the DTSI and DTS changes into individual patches.

Li Bin (1):
ARM: at91: pm: fix at91_suspend_finish for ZQ calibration

Ryan Wanner (20):
dt-bindings: mfd: syscon: add microchip,sama7d65-ddr3phy
dt-bindings: mfd: syscon: add microchip,sama7d65-sfrbu
dt-bindings: sram: Add microchip,sama7d65-sram
dt-bindings: power: reset: atmel,sama5d2-shdwc: Add
microchip,sama7d65-shdwc
dt-bindings: reset: atmel,at91sam9260-reset: add
microchip,sama7d65-rstc
dt-bindings: rtc: at91rm9200: add microchip,sama7d65-rtc
dt-bindings: at91rm9260-rtt: add microchip,sama7d65-rtt
ARM: at91: Add PM support to sama7d65
ARM: at91: pm: add DT compatible support for sama7d65
ARM: at91: PM: Add Backup mode for SAMA7D65
ARM: at91: pm: Enable ULP0/ULP1 for SAMA7D65
power: reset: at91-sama5d2_shdwc: Add sama7d65 PMC
ARM: dts: microchip: sama7d65: Add SRAM and DRAM components support
ARM: dts: microchip: sama7d65: Add Reset Controller to sama7d65 SoC
ARM: dts: microchip: sama7d65: Add Shutdown controller support
ARM: dts: microchip: sama7d65: Add RTT and GPBR Support for sama7d65
SoC
ARM: dts: microchip: sama7d65: Add RTC support for sama7d65
ARM: dts: microchip: sama7d65: Add SFRBU support to sama7d65
ARM: dts: microchip: sama7d65: Enable shutdown controller
ARM: dts: microchip: sama7d65: Add RTT timer to curiosity board

 .../devicetree/bindings/mfd/syscon.yaml       |   4 +
 .../power/reset/atmel,sama5d2-shdwc.yaml      |   5 +
 .../reset/atmel,at91sam9260-reset.yaml        |   3 +
 .../bindings/rtc/atmel,at91rm9200-rtc.yaml    |   4 +-
 .../bindings/rtc/atmel,at91sam9260-rtt.yaml   |   1 +
 .../devicetree/bindings/sram/sram.yaml        |   1 +
 .../dts/microchip/at91-sama7d65_curiosity.dts |  13 +++
 arch/arm/boot/dts/microchip/sama7d65.dtsi     |  77 +++++++++++++
 arch/arm/mach-at91/Kconfig                    |   1 +
 arch/arm/mach-at91/pm.c                       |  47 +++++---
 arch/arm/mach-at91/pm.h                       |   1 +
 arch/arm/mach-at91/pm_data-offsets.c          |   2 +
 arch/arm/mach-at91/pm_suspend.S               | 101 ++++++++++++++++--
 drivers/power/reset/at91-sama5d2_shdwc.c      |   1 +
 14 files changed, 238 insertions(+), 23 deletions(-)
Signature · 1 line
2.43.0
#1 lore raw

PATCH v3 1/21 dt-bindings: mfd: syscon: add microchip,sama7d65-ddr3phy

From: Ryan Wanner <[email protected]>

Add SAMA7D65 DDR3phy compatible to DT bindings documentation

---
 Documentation/devicetree/bindings/mfd/syscon.yaml | 2 ++
 1 file changed, 2 insertions(+)
Documentation/devicetree/bindings/mfd/syscon.yaml +2 -0
index 4d67ff26d445..769dcb096186 100644
@@ -90,6 +90,7 @@ select:
           - microchip,lan966x-cpu-syscon
           - microchip,mpfs-sysreg-scb
           - microchip,sam9x60-sfr
+          - microchip,sama7d65-ddr3phy
           - microchip,sama7g5-ddr3phy
           - mscc,ocelot-cpu-syscon
           - mstar,msc313-pmsleep
@@ -189,6 +190,7 @@ properties:
           - microchip,lan966x-cpu-syscon
           - microchip,mpfs-sysreg-scb
           - microchip,sam9x60-sfr
+          - microchip,sama7d65-ddr3phy
           - microchip,sama7g5-ddr3phy
           - mscc,ocelot-cpu-syscon
           - mstar,msc313-pmsleep
Signature · 1 line
2.43.0
maintainer Applied
#2 lore raw

Re: (subset) [PATCH v3 01/21] dt-bindings: mfd: syscon: add microchip,sama7d65-ddr3phy

Quoted 3 lines · On Thu, 27 Feb 2025 08:51:48 -0700, [email protected] wrote:

Add SAMA7D65 DDR3phy compatible to DT bindings documentation

Applied, thanks!

[01/21] dt-bindings: mfd: syscon: add microchip,sama7d65-ddr3phy

        commit: 2b4d2bdc07a152b3869f7888f64f37d4b09ae58e

--
Lee Jones [李琼斯]

#3 lore raw

PATCH v3 2/21 dt-bindings: mfd: syscon: add microchip,sama7d65-sfrbu

In reply to [email protected]

From: Ryan Wanner <[email protected]>

Add SAMA7D65 SFRBU compatible string to DT bindings documentation

---
 Documentation/devicetree/bindings/mfd/syscon.yaml | 2 ++
 1 file changed, 2 insertions(+)
Documentation/devicetree/bindings/mfd/syscon.yaml +2 -0
index 769dcb096186..05ef01f24ac4 100644
@@ -91,6 +91,7 @@ select:
           - microchip,mpfs-sysreg-scb
           - microchip,sam9x60-sfr
           - microchip,sama7d65-ddr3phy
+          - microchip,sama7d65-sfrbu
           - microchip,sama7g5-ddr3phy
           - mscc,ocelot-cpu-syscon
           - mstar,msc313-pmsleep
@@ -191,6 +192,7 @@ properties:
           - microchip,mpfs-sysreg-scb
           - microchip,sam9x60-sfr
           - microchip,sama7d65-ddr3phy
+          - microchip,sama7d65-sfrbu
           - microchip,sama7g5-ddr3phy
           - mscc,ocelot-cpu-syscon
           - mstar,msc313-pmsleep
Signature · 1 line
2.43.0
maintainer Acked-by on v3 2/21
#4 lore raw

Re: [PATCH v3 02/21] dt-bindings: mfd: syscon: add microchip,sama7d65-sfrbu

Quoted 9 lines · On Thu, 27 Feb 2025 08:51:49 -0700, [email protected] wrote:

From: Ryan Wanner <[email protected]>

Add SAMA7D65 SFRBU compatible string to DT bindings documentation

---
 Documentation/devicetree/bindings/mfd/syscon.yaml | 2 ++
 1 file changed, 2 insertions(+)
maintainer Applied
#5 lore raw

Re: (subset) [PATCH v3 02/21] dt-bindings: mfd: syscon: add microchip,sama7d65-sfrbu

In reply to [email protected]
Quoted 3 lines · On Thu, 27 Feb 2025 08:51:49 -0700, [email protected] wrote:

Add SAMA7D65 SFRBU compatible string to DT bindings documentation

Applied, thanks!

[02/21] dt-bindings: mfd: syscon: add microchip,sama7d65-sfrbu

        commit: 7e3ff6785039796728a515ea6e07378823e71be1

--
Lee Jones [李琼斯]

#6 lore raw

PATCH v3 3/21 dt-bindings: sram: Add microchip,sama7d65-sram

In reply to [email protected]

From: Ryan Wanner <[email protected]>

Add microchip,sama7d65-sram compatibility to DT binding documentation.

---
 Documentation/devicetree/bindings/sram/sram.yaml | 1 +
 1 file changed, 1 insertion(+)
Documentation/devicetree/bindings/sram/sram.yaml +1 -0
index 7c1337e159f2..3071c5075ee4 100644
@@ -31,6 +31,7 @@ properties:
         - amlogic,meson-gxbb-sram
         - arm,juno-sram-ns
         - atmel,sama5d2-securam
+        - microchip,sama7d65-securam
         - nvidia,tegra186-sysram
         - nvidia,tegra194-sysram
         - nvidia,tegra234-sysram
Signature · 1 line
2.43.0
#7 lore raw

PATCH v3 4/21 dt-bindings: power: reset: atmel,sama5d2-shdwc: Add microchip,sama7d65-shdwc

In reply to [email protected]

From: Ryan Wanner <[email protected]>

Add SAMA7D65 SHDWC compatible to DT bindings documentation

---
 .../devicetree/bindings/power/reset/atmel,sama5d2-shdwc.yaml | 5 +++++
 1 file changed, 5 insertions(+)
Documentation/devicetree/bindings/power/reset/atmel,sama5d2-shdwc.yaml +5 -0
index 0735ceb7c103..9c34249b2d6d 100644
@@ -16,6 +16,11 @@ description: |
 properties:
   compatible:
     oneOf:
+      - items:
+          - enum:
+              - microchip,sama7d65-shdwc
+          - const: microchip,sama7g5-shdwc
+          - const: syscon
       - items:
           - const: microchip,sama7g5-shdwc
           - const: syscon
Signature · 1 line
2.43.0
#8 lore raw

PATCH v3 5/21 dt-bindings: reset: atmel,at91sam9260-reset: add microchip,sama7d65-rstc

In reply to [email protected]

From: Ryan Wanner <[email protected]>

Add SAMA7D65 RSTC compatible to DT bindings documentation. The sama7d65-rstc is compatible with the sama7g5-rstc.

---
 .../devicetree/bindings/reset/atmel,at91sam9260-reset.yaml     | 3 +++
 1 file changed, 3 insertions(+)
Documentation/devicetree/bindings/reset/atmel,at91sam9260-reset.yaml +3 -0
index 98465d26949e..a2ab7f8a11f8 100644
@@ -23,6 +23,9 @@ properties:
               - atmel,sama5d3-rstc
               - microchip,sam9x60-rstc
               - microchip,sama7g5-rstc
+      - items:
+          - const: microchip,sama7d65-rstc
+          - const: microchip,sama7g5-rstc
       - items:
           - const: atmel,sama5d3-rstc
           - const: atmel,at91sam9g45-rstc
Signature · 1 line
2.43.0
#9 lore raw

PATCH v3 6/21 dt-bindings: rtc: at91rm9200: add microchip,sama7d65-rtc

In reply to [email protected]

From: Ryan Wanner <[email protected]>

Add SAMA7D65 RTC compatible to DT bindings documentation.

---
 .../devicetree/bindings/rtc/atmel,at91rm9200-rtc.yaml         | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
Documentation/devicetree/bindings/rtc/atmel,at91rm9200-rtc.yaml +3 -1
index c8bb2eef442d..7c5b13caa40b 100644
@@ -23,7 +23,9 @@ properties:
           - microchip,sam9x60-rtc
           - microchip,sama7g5-rtc
       - items:
-          - const: microchip,sam9x7-rtc
+          - enum:
+              - microchip,sam9x7-rtc
+              - microchip,sama7d65-rtc
           - const: microchip,sam9x60-rtc
 
   reg:
Signature · 1 line
2.43.0
maintainer Acked-by on v3 6/21
#10 lore raw

Re: [PATCH v3 06/21] dt-bindings: rtc: at91rm9200: add microchip,sama7d65-rtc

Quoted 9 lines · On Thu, 27 Feb 2025 08:51:53 -0700, [email protected] wrote:

From: Ryan Wanner <[email protected]>

Add SAMA7D65 RTC compatible to DT bindings documentation.

---
 .../devicetree/bindings/rtc/atmel,at91rm9200-rtc.yaml         | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
#11 lore raw

PATCH v3 7/21 dt-bindings: at91rm9260-rtt: add microchip,sama7d65-rtt

In reply to [email protected]

From: Ryan Wanner <[email protected]>

Add SAMA7D65 RTT compatible to DT bindings documentation.

---
 Documentation/devicetree/bindings/rtc/atmel,at91sam9260-rtt.yaml | 1 +
 1 file changed, 1 insertion(+)
Documentation/devicetree/bindings/rtc/atmel,at91sam9260-rtt.yaml +1 -0
index a7f6c1d1a08a..9c9b981fe38b 100644
@@ -22,6 +22,7 @@ properties:
           - enum:
               - microchip,sam9x60-rtt
               - microchip,sam9x7-rtt
+              - microchip,sama7d65-rtt
           - const: atmel,at91sam9260-rtt
       - items:
           - const: microchip,sama7g5-rtt
Signature · 1 line
2.43.0
maintainer Acked-by on v3 7/21
#12 lore raw

Re: [PATCH v3 07/21] dt-bindings: at91rm9260-rtt: add microchip,sama7d65-rtt

Quoted 9 lines · On Thu, 27 Feb 2025 08:51:54 -0700, [email protected] wrote:

From: Ryan Wanner <[email protected]>

Add SAMA7D65 RTT compatible to DT bindings documentation.

---
 Documentation/devicetree/bindings/rtc/atmel,at91sam9260-rtt.yaml | 1 +
 1 file changed, 1 insertion(+)
#13 lore raw

PATCH v3 8/21 ARM: at91: Add PM support to sama7d65

In reply to [email protected]

From: Ryan Wanner <[email protected]>

Add PM support to SAMA7D65 SoC.

---
 arch/arm/mach-at91/Kconfig | 1 +
 1 file changed, 1 insertion(+)
arch/arm/mach-at91/Kconfig +1 -0
index 04bd91c72521..f3ff1220c0fb 100644
@@ -65,6 +65,7 @@ config SOC_SAMA7D65
 	select HAVE_AT91_SAM9X60_PLL
 	select HAVE_AT91_USB_CLK
 	select HAVE_AT91_UTMI
+	select PM_OPP
 	select SOC_SAMA7
 	help
 	  Select this if you are using one of Microchip's SAMA7D65 family SoC.
Signature · 1 line
2.43.0
maintainer
#14 lore raw

Re: [PATCH v3 08/21] ARM: at91: Add PM support to sama7d65

Hi, Ryan,

Quoted 14 lines · On 27.02.2025 17:51, [email protected] wrote:

From: Ryan Wanner <[email protected]>

Add PM support to SAMA7D65 SoC.

---
 arch/arm/mach-at91/Kconfig | 1 +
 1 file changed, 1 insertion(+)
arch/arm/mach-at91/Kconfig +0 -0
index 04bd91c72521..f3ff1220c0fb 100644

arch/arm/mach-at91/Kconfig config SOC_SAMA7D65 · line 68

Quoted 4 lines
arch/arm/mach-at91/Kconfig +1 -0
@@ -65,6 +65,7 @@ config SOC_SAMA7D65
 	select HAVE_AT91_SAM9X60_PLL
 	select HAVE_AT91_USB_CLK
 	select HAVE_AT91_UTMI
+	select PM_OPP

This is for OPP not PM support. For this series this should not be needed.

Quoted 3 lines
arch/arm/mach-at91/Kconfig +0 -0
 	select SOC_SAMA7
 	help
 	  Select this if you are using one of Microchip's SAMA7D65 family SoC.
#15 lore raw

PATCH v3 9/21 ARM: at91: pm: fix at91_suspend_finish for ZQ calibration

In reply to [email protected]

From: Li Bin <[email protected]>

For sama7g5 and sama7d65 backup mode, we encountered a "ZQ calibrate error" during recalibrating the impedance in BootStrap.
We found that the impedance value saved in at91_suspend_finish() before the DDR entered self-refresh mode did not match the resistor values. The ZDATA field in the DDR3PHY_ZQ0CR0 register uses a modified gray code to select the different impedance setting.
But these gray code are incorrect, a workaournd from design team fixed the bug in the calibration logic. The ZDATA contains four independent impedance elements, but the algorithm combined the four elements into one. The elements were fixed using properly shifted offsets.

---
 arch/arm/mach-at91/pm.c | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)
arch/arm/mach-at91/pm.c +11 -10
index 05a1547642b6..6c3e6aa22606 100644
@@ -545,11 +545,12 @@ extern u32 at91_pm_suspend_in_sram_sz;
 
 static int at91_suspend_finish(unsigned long val)
 {
-	unsigned char modified_gray_code[] = {
-		0x00, 0x01, 0x02, 0x03, 0x06, 0x07, 0x04, 0x05, 0x0c, 0x0d,
-		0x0e, 0x0f, 0x0a, 0x0b, 0x08, 0x09, 0x18, 0x19, 0x1a, 0x1b,
-		0x1e, 0x1f, 0x1c, 0x1d, 0x14, 0x15, 0x16, 0x17, 0x12, 0x13,
-		0x10, 0x11,
+	/* SYNOPSYS workaround to fix a bug in the calibration logic */
+	unsigned char modified_fix_code[] = {
+		0x00, 0x01, 0x01, 0x06, 0x07, 0x0c, 0x06, 0x07, 0x0b, 0x18,
+		0x0a, 0x0b, 0x0c, 0x0d, 0x0d, 0x0a, 0x13, 0x13, 0x12, 0x13,
+		0x14, 0x15, 0x15, 0x12, 0x18, 0x19, 0x19, 0x1e, 0x1f, 0x14,
+		0x1e, 0x1f,
 	};
 	unsigned int tmp, index;
 	int i;
@@ -560,25 +561,25 @@ static int at91_suspend_finish(unsigned long val)
 		 * restore the ZQ0SR0 with the value saved here. But the
 		 * calibration is buggy and restoring some values from ZQ0SR0
 		 * is forbidden and risky thus we need to provide processed
-		 * values for these (modified gray code values).
+		 * values for these.
 		 */
 		tmp = readl(soc_pm.data.ramc_phy + DDR3PHY_ZQ0SR0);
 
 		/* Store pull-down output impedance select. */
 		index = (tmp >> DDR3PHY_ZQ0SR0_PDO_OFF) & 0x1f;
-		soc_pm.bu->ddr_phy_calibration[0] = modified_gray_code[index];
+		soc_pm.bu->ddr_phy_calibration[0] = modified_fix_code[index] << DDR3PHY_ZQ0SR0_PDO_OFF;
 
 		/* Store pull-up output impedance select. */
 		index = (tmp >> DDR3PHY_ZQ0SR0_PUO_OFF) & 0x1f;
-		soc_pm.bu->ddr_phy_calibration[0] |= modified_gray_code[index];
+		soc_pm.bu->ddr_phy_calibration[0] |= modified_fix_code[index] << DDR3PHY_ZQ0SR0_PUO_OFF;
 
 		/* Store pull-down on-die termination impedance select. */
 		index = (tmp >> DDR3PHY_ZQ0SR0_PDODT_OFF) & 0x1f;
-		soc_pm.bu->ddr_phy_calibration[0] |= modified_gray_code[index];
+		soc_pm.bu->ddr_phy_calibration[0] |= modified_fix_code[index] << DDR3PHY_ZQ0SR0_PDODT_OFF;
 
 		/* Store pull-up on-die termination impedance select. */
 		index = (tmp >> DDR3PHY_ZQ0SRO_PUODT_OFF) & 0x1f;
-		soc_pm.bu->ddr_phy_calibration[0] |= modified_gray_code[index];
+		soc_pm.bu->ddr_phy_calibration[0] |= modified_fix_code[index] << DDR3PHY_ZQ0SRO_PUODT_OFF;
 
 		/*
 		 * The 1st 8 words of memory might get corrupted in the process
Signature · 1 line
2.43.0
#16 lore raw

PATCH v3 10/21 ARM: at91: pm: add DT compatible support for sama7d65

In reply to [email protected]

From: Ryan Wanner <[email protected]>

Add support for SAMA7D65 new compatible strings in pm.c file for wakeup source IDs and PMC.
This is the first bits of PM for this new SoC. PM depends on other patches.

[[email protected]: split patch and address only the pm.c changes]
---
 arch/arm/mach-at91/pm.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
arch/arm/mach-at91/pm.c +6 -2
index 6c3e6aa22606..39644703244d 100644
@@ -222,13 +222,16 @@ static const struct of_device_id sam9x60_ws_ids[] = {
 	{ /* sentinel */ }
 };
 
-static const struct of_device_id sama7g5_ws_ids[] = {
+static const struct of_device_id sama7_ws_ids[] = {
+	{ .compatible = "microchip,sama7d65-rtc",	.data = &ws_info[1] },
 	{ .compatible = "microchip,sama7g5-rtc",	.data = &ws_info[1] },
 	{ .compatible = "microchip,sama7g5-ohci",	.data = &ws_info[2] },
 	{ .compatible = "usb-ohci",			.data = &ws_info[2] },
 	{ .compatible = "atmel,at91sam9g45-ehci",	.data = &ws_info[2] },
 	{ .compatible = "usb-ehci",			.data = &ws_info[2] },
+	{ .compatible = "microchip,sama7d65-sdhci",	.data = &ws_info[3] },
 	{ .compatible = "microchip,sama7g5-sdhci",	.data = &ws_info[3] },
+	{ .compatible = "microchip,sama7d65-rtt",	.data = &ws_info[4] },
 	{ .compatible = "microchip,sama7g5-rtt",	.data = &ws_info[4] },
 	{ /* sentinel */ }
 };
@@ -1379,6 +1382,7 @@ static const struct of_device_id atmel_pmc_ids[] __initconst = {
 	{ .compatible = "atmel,sama5d2-pmc", .data = &pmc_infos[1] },
 	{ .compatible = "microchip,sam9x60-pmc", .data = &pmc_infos[4] },
 	{ .compatible = "microchip,sam9x7-pmc", .data = &pmc_infos[4] },
+	{ .compatible = "microchip,sama7d65-pmc", .data = &pmc_infos[4] },
 	{ .compatible = "microchip,sama7g5-pmc", .data = &pmc_infos[5] },
 	{ /* sentinel */ },
 };
@@ -1672,7 +1676,7 @@ void __init sama7_pm_init(void)
 	at91_pm_modes_init(iomaps, ARRAY_SIZE(iomaps));
 	at91_pm_init(NULL);
 
-	soc_pm.ws_ids = sama7g5_ws_ids;
+	soc_pm.ws_ids = sama7_ws_ids;
 	soc_pm.config_pmc_ws = at91_sam9x60_config_pmc_ws;
 
 	soc_pm.sfrbu_regs.pswbu.key = (0x4BD20C << 8);
Signature · 1 line
2.43.0
#17 lore raw

Re: [PATCH v3 10/21] ARM: at91: pm: add DT compatible support for sama7d65

Quoted 36 lines · On 2/27/25 17:51, [email protected] wrote:

From: Ryan Wanner <[email protected]>

Add support for SAMA7D65 new compatible strings in pm.c file for wakeup source IDs and PMC.
This is the first bits of PM for this new SoC. PM depends on other patches.

[[email protected]: split patch and address only the pm.c changes]
---
  arch/arm/mach-at91/pm.c | 8 ++++++--
  1 file changed, 6 insertions(+), 2 deletions(-)
arch/arm/mach-at91/pm.c +4 -1
index 6c3e6aa22606..39644703244d 100644
@@ -222,13 +222,16 @@ static const struct of_device_id sam9x60_ws_ids[] = {
  	{ /* sentinel */ }
  };
 
-static const struct of_device_id sama7g5_ws_ids[] = {
+static const struct of_device_id sama7_ws_ids[] = {
+	{ .compatible = "microchip,sama7d65-rtc",	.data = &ws_info[1] },
  	{ .compatible = "microchip,sama7g5-rtc",	.data = &ws_info[1] },
  	{ .compatible = "microchip,sama7g5-ohci",	.data = &ws_info[2] },
  	{ .compatible = "usb-ohci",			.data = &ws_info[2] },
  	{ .compatible = "atmel,at91sam9g45-ehci",	.data = &ws_info[2] },
  	{ .compatible = "usb-ehci",			.data = &ws_info[2] },
+	{ .compatible = "microchip,sama7d65-sdhci",	.data = &ws_info[3] },
  	{ .compatible = "microchip,sama7g5-sdhci",	.data = &ws_info[3] },
+	{ .compatible = "microchip,sama7d65-rtt",	.data = &ws_info[4] },
  	{ .compatible = "microchip,sama7g5-rtt",	.data = &ws_info[4] },
  	{ /* sentinel */ }
  };

arch/arm/mach-at91/pm.c static const struct of_device_id atmel_pmc_ids[] __initconst = { · line 1385

Quoted 4 lines
arch/arm/mach-at91/pm.c +1 -0
@@ -1379,6 +1382,7 @@ static const struct of_device_id atmel_pmc_ids[] __initconst = {
  	{ .compatible = "atmel,sama5d2-pmc", .data = &pmc_infos[1] },
  	{ .compatible = "microchip,sam9x60-pmc", .data = &pmc_infos[4] },
  	{ .compatible = "microchip,sam9x7-pmc", .data = &pmc_infos[4] },
+	{ .compatible = "microchip,sama7d65-pmc", .data = &pmc_infos[4] },

According to the chapter 42.18.3. PMC System Clock Status Register at [1] there is no AT91SAM926x_PMC_UDP for SAMA7D65 (which you are dropping in the next patch). This patch would have to reflect what the documentation say instead of fixing it in patch 12/21.

Thank you,
Claudiu

[1] https://ww1.microchip.com/downloads/aemDocuments/documents/MPU32/ProductDocuments/DataSheets/SAMA7D6-Series-Data-Sheet-DS60001851.pdf

Quoted 12 lines
arch/arm/mach-at91/pm.c +1 -1
  	{ .compatible = "microchip,sama7g5-pmc", .data = &pmc_infos[5] },
  	{ /* sentinel */ },
  };
@@ -1672,7 +1676,7 @@ void __init sama7_pm_init(void)
  	at91_pm_modes_init(iomaps, ARRAY_SIZE(iomaps));
  	at91_pm_init(NULL);
 
-	soc_pm.ws_ids = sama7g5_ws_ids;
+	soc_pm.ws_ids = sama7_ws_ids;
  	soc_pm.config_pmc_ws = at91_sam9x60_config_pmc_ws;
 
  	soc_pm.sfrbu_regs.pswbu.key = (0x4BD20C << 8);
#18 lore raw

PATCH v3 11/21 ARM: at91: PM: Add Backup mode for SAMA7D65

In reply to [email protected]

From: Ryan Wanner <[email protected]>

Add config check that enables Backup mode for SAMA7D65 SoC.

Add SHDWC_SR read to clear the status bits once finished exiting backup mode. This is only for SAMA7D65 SoCs. The SHDWC status register needs to be cleared after exiting backup mode to clear the wake up pin status.

---
 arch/arm/mach-at91/pm.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
arch/arm/mach-at91/pm.c +8 -1
index 39644703244d..d82a507bc8da 100644
@@ -647,6 +647,11 @@ static void at91_pm_suspend(suspend_state_t state)
 		at91_suspend_sram_fn = fncpy(at91_suspend_sram_fn,
 					     &at91_pm_suspend_in_sram,
 					     at91_pm_suspend_in_sram_sz);
+
+		if (IS_ENABLED(CONFIG_SOC_SAMA7D65))
+			/* SHDWC.SR */
+			readl(soc_pm.data.shdwc + 0x08);
+
 	} else {
 		at91_suspend_finish(0);
 	}
@@ -707,6 +712,7 @@ static int at91_pm_enter(suspend_state_t state)
 static void at91_pm_end(void)
 {
 	at91_pm_config_ws(soc_pm.data.mode, false);
+
 }
 
 
@@ -1065,7 +1071,8 @@ static int __init at91_pm_backup_init(void)
 	int ret = -ENODEV, located = 0;
 
 	if (!IS_ENABLED(CONFIG_SOC_SAMA5D2) &&
-	    !IS_ENABLED(CONFIG_SOC_SAMA7G5))
+	    !IS_ENABLED(CONFIG_SOC_SAMA7G5) &&
+	    !IS_ENABLED(CONFIG_SOC_SAMA7D65))
 		return -EPERM;
 
 	if (!at91_is_pm_mode_active(AT91_PM_BACKUP))
Signature · 1 line
2.43.0
#19 lore raw

Re: [PATCH v3 11/21] ARM: at91: PM: Add Backup mode for SAMA7D65

Quoted 31 lines · On 2/27/25 17:51, [email protected] wrote:

From: Ryan Wanner <[email protected]>

Add config check that enables Backup mode for SAMA7D65 SoC.

Add SHDWC_SR read to clear the status bits once finished exiting backup mode. This is only for SAMA7D65 SoCs. The SHDWC status register needs to be cleared after exiting backup mode to clear the wake up pin status.

---
  arch/arm/mach-at91/pm.c | 9 ++++++++-
  1 file changed, 8 insertions(+), 1 deletion(-)
arch/arm/mach-at91/pm.c +5 -0
index 39644703244d..d82a507bc8da 100644
@@ -647,6 +647,11 @@ static void at91_pm_suspend(suspend_state_t state)
  		at91_suspend_sram_fn = fncpy(at91_suspend_sram_fn,
  					     &at91_pm_suspend_in_sram,
  					     at91_pm_suspend_in_sram_sz);
+
+		if (IS_ENABLED(CONFIG_SOC_SAMA7D65))
+			/* SHDWC.SR */
+			readl(soc_pm.data.shdwc + 0x08);
+
  	} else {
  		at91_suspend_finish(0);
  	}

arch/arm/mach-at91/pm.c static int at91_pm_enter(suspend_state_t state) · line 715

Quoted 4 lines
arch/arm/mach-at91/pm.c +1 -0
@@ -707,6 +712,7 @@ static int at91_pm_enter(suspend_state_t state)
  static void at91_pm_end(void)
  {
  	at91_pm_config_ws(soc_pm.data.mode, false);
+

Not needed. I'll drop it while applying.

Quoted 13 lines
arch/arm/mach-at91/pm.c +2 -1
  }
 
 
@@ -1065,7 +1071,8 @@ static int __init at91_pm_backup_init(void)
  	int ret = -ENODEV, located = 0;
 
  	if (!IS_ENABLED(CONFIG_SOC_SAMA5D2) &&
-	    !IS_ENABLED(CONFIG_SOC_SAMA7G5))
+	    !IS_ENABLED(CONFIG_SOC_SAMA7G5) &&
+	    !IS_ENABLED(CONFIG_SOC_SAMA7D65))
  		return -EPERM;
 
  	if (!at91_is_pm_mode_active(AT91_PM_BACKUP))
#20 lore raw

PATCH v3 12/21 ARM: at91: pm: Enable ULP0/ULP1 for SAMA7D65

In reply to [email protected]

From: Ryan Wanner <[email protected]>

New clocks are saved to enable ULP0/ULP1 for SAMA7D65 because this SoC has a total of 9 main clocks that need to be saved for ULP0/ULP1 mode.

Add mcks member to at91_pm_data, this will be used to determine how many main clocks need to be saved. In the pm_mcks variable will also make sure that no unnecessary clock settings are written during mck_ps_restore.

---
 arch/arm/mach-at91/pm.c              |  11 ++-
 arch/arm/mach-at91/pm.h              |   1 +
 arch/arm/mach-at91/pm_data-offsets.c |   2 +
 arch/arm/mach-at91/pm_suspend.S      | 101 ++++++++++++++++++++++++---
 4 files changed, 105 insertions(+), 10 deletions(-)
arch/arm/mach-at91/pm.c +10 -1
index d82a507bc8da..ab51ca03632b 100644
@@ -1340,6 +1340,7 @@ struct pmc_info {
 	unsigned long uhp_udp_mask;
 	unsigned long mckr;
 	unsigned long version;
+	unsigned long mcks;
 };
 
 static const struct pmc_info pmc_infos[] __initconst = {
@@ -1371,6 +1372,13 @@ static const struct pmc_info pmc_infos[] __initconst = {
 	{
 		.mckr = 0x28,
 		.version = AT91_PMC_V2,
+		.mcks = 4,
+	},
+	{
+		.uhp_udp_mask = AT91SAM926x_PMC_UHP,
+		.mckr = 0x28,
+		.version = AT91_PMC_V2,
+		.mcks = 9,
 	},
 
 };
@@ -1389,7 +1397,7 @@ static const struct of_device_id atmel_pmc_ids[] __initconst = {
 	{ .compatible = "atmel,sama5d2-pmc", .data = &pmc_infos[1] },
 	{ .compatible = "microchip,sam9x60-pmc", .data = &pmc_infos[4] },
 	{ .compatible = "microchip,sam9x7-pmc", .data = &pmc_infos[4] },
-	{ .compatible = "microchip,sama7d65-pmc", .data = &pmc_infos[4] },
+	{ .compatible = "microchip,sama7d65-pmc", .data = &pmc_infos[6] },
 	{ .compatible = "microchip,sama7g5-pmc", .data = &pmc_infos[5] },
 	{ /* sentinel */ },
 };
@@ -1460,6 +1468,7 @@ static void __init at91_pm_init(void (*pm_idle)(void))
 	soc_pm.data.uhp_udp_mask = pmc->uhp_udp_mask;
 	soc_pm.data.pmc_mckr_offset = pmc->mckr;
 	soc_pm.data.pmc_version = pmc->version;
+	soc_pm.data.pmc_mcks = pmc->mcks;
 
 	if (pm_idle)
 		arm_pm_idle = pm_idle;
arch/arm/mach-at91/pm.h +1 -0
index 53bdc9000e44..50c3a425d140 100644
@@ -39,6 +39,7 @@ struct at91_pm_data {
 	unsigned int suspend_mode;
 	unsigned int pmc_mckr_offset;
 	unsigned int pmc_version;
+	unsigned int pmc_mcks;
 };
 #endif
 
arch/arm/mach-at91/pm_data-offsets.c +2 -0
index 40bd4e8fe40a..0ca5da66dc26 100644
@@ -18,6 +18,8 @@ int main(void)
 						 pmc_mckr_offset));
 	DEFINE(PM_DATA_PMC_VERSION,	offsetof(struct at91_pm_data,
 						 pmc_version));
+	DEFINE(PM_DATA_PMC_MCKS,	offsetof(struct at91_pm_data,
+						 pmc_mcks));
 
 	return 0;
 }
arch/arm/mach-at91/pm_suspend.S +92 -9

166 lines not on this page · raw message

Signature · 1 line
2.43.0
#21 lore raw

PATCH v3 13/21 power: reset: at91-sama5d2_shdwc: Add sama7d65 PMC

In reply to [email protected]

From: Ryan Wanner <[email protected]>

Add sama7d65-pmc compatible string to the list of valid PMC IDs.

---
 drivers/power/reset/at91-sama5d2_shdwc.c | 1 +
 1 file changed, 1 insertion(+)
drivers/power/reset/at91-sama5d2_shdwc.c +1 -0
index c2801bd6384d..e9fe08ee3812 100644
@@ -327,6 +327,7 @@ static const struct of_device_id at91_pmc_ids[] = {
 	{ .compatible = "microchip,sam9x60-pmc" },
 	{ .compatible = "microchip,sama7g5-pmc" },
 	{ .compatible = "microchip,sam9x7-pmc" },
+	{ .compatible = "microchip,sama7d65-pmc" },
 	{ /* Sentinel. */ }
 };
 
Signature · 1 line
2.43.0
#22 lore raw

PATCH v3 14/21 ARM: dts: microchip: sama7d65: Add SRAM and DRAM components support

In reply to [email protected]

From: Ryan Wanner <[email protected]>

Add SRAM, secumod, UDDRC, and DDR3phy to enable support for low power modes.

---
 arch/arm/boot/dts/microchip/sama7d65.dtsi | 35 +++++++++++++++++++++++
 1 file changed, 35 insertions(+)
arch/arm/boot/dts/microchip/sama7d65.dtsi +35 -0
index 92a5347e35b5..c10cc3558efd 100644
@@ -47,12 +47,37 @@ slow_xtal: clock-slowxtal {
 		};
 	};
 
+	ns_sram: sram@100000 {
+		compatible = "mmio-sram";
+		reg = <0x100000 0x20000>;
+		ranges;
+		#address-cells = <1>;
+		#size-cells = <1>;
+	};
+
 	soc {
 		compatible = "simple-bus";
 		ranges;
 		#address-cells = <1>;
 		#size-cells = <1>;
 
+		securam: sram@e0000800 {
+			compatible = "microchip,sama7d65-securam", "atmel,sama5d2-securam", "mmio-sram";
+			reg = <0xe0000800 0x4000>;
+			ranges = <0 0xe0000800 0x4000>;
+			clocks = <&pmc PMC_TYPE_PERIPHERAL 17>;
+			#address-cells = <1>;
+			#size-cells = <1>;
+			no-memory-wc;
+		};
+
+		secumod: secumod@e0004000 {
+			compatible = "microchip,sama7d65-secumod", "atmel,sama5d2-secumod", "syscon";
+			reg = <0xe0004000 0x4000>;
+			gpio-controller;
+			#gpio-cells = <2>;
+		};
+
 		pioa: pinctrl@e0014000 {
 			compatible = "microchip,sama7d65-pinctrl", "microchip,sama7g5-pinctrl";
 			reg = <0xe0014000 0x800>;
@@ -190,6 +215,16 @@ i2c10: i2c@600 {
 			};
 		};
 
+		uddrc: uddrc@e3800000 {
+			compatible = "microchip,sama7d65-uddrc", "microchip,sama7g5-uddrc";
+			reg = <0xe3800000 0x4000>;
+		};
+
+		ddr3phy: ddr3phy@e3804000 {
+			compatible = "microchip,sama7d65-ddr3phy", "microchip,sama7g5-ddr3phy";
+			reg = <0xe3804000 0x1000>;
+		};
+
 		gic: interrupt-controller@e8c11000 {
 			compatible = "arm,cortex-a7-gic";
 			reg = <0xe8c11000 0x1000>,
Signature · 1 line
2.43.0
maintainer
#23 lore raw

Re: [PATCH v3 14/21] ARM: dts: microchip: sama7d65: Add SRAM and DRAM components support

Hi, Ryan,

Quoted 33 lines · On 27.02.2025 17:52, [email protected] wrote:

From: Ryan Wanner <[email protected]>

Add SRAM, secumod, UDDRC, and DDR3phy to enable support for low power modes.

---
 arch/arm/boot/dts/microchip/sama7d65.dtsi | 35 +++++++++++++++++++++++
 1 file changed, 35 insertions(+)
arch/arm/boot/dts/microchip/sama7d65.dtsi +10 -0
index 92a5347e35b5..c10cc3558efd 100644
@@ -47,12 +47,37 @@ slow_xtal: clock-slowxtal {
 		};
 	};
 
+	ns_sram: sram@100000 {
+		compatible = "mmio-sram";
+		reg = <0x100000 0x20000>;
+		ranges;
+		#address-cells = <1>;
+		#size-cells = <1>;
+	};
+
 	soc {
 		compatible = "simple-bus";
 		ranges;
 		#address-cells = <1>;
 		#size-cells = <1>;
 
+		securam: sram@e0000800 {
+			compatible = "microchip,sama7d65-securam", "atmel,sama5d2-securam", "mmio-sram";

arch/arm/boot/dts/microchip/sama7d65.dtsi slow_xtal: clock-slowxtal { · line 75

Quoted 10 lines
arch/arm/boot/dts/microchip/sama7d65.dtsi +10 -0
+			reg = <0xe0000800 0x4000>;
+			ranges = <0 0xe0000800 0x4000>;
+			clocks = <&pmc PMC_TYPE_PERIPHERAL 17>;
+			#address-cells = <1>;
+			#size-cells = <1>;
+			no-memory-wc;
+		};
+
+		secumod: secumod@e0004000 {
+			compatible = "microchip,sama7d65-secumod", "atmel,sama5d2-secumod", "syscon";

microchip,sama7d65-secumod is undocumented. I'll postpone this until a documentation a patch will be posted.

Quoted 25 lines
arch/arm/boot/dts/microchip/sama7d65.dtsi +15 -0
+			reg = <0xe0004000 0x4000>;
+			gpio-controller;
+			#gpio-cells = <2>;
+		};
+
 		pioa: pinctrl@e0014000 {
 			compatible = "microchip,sama7d65-pinctrl", "microchip,sama7g5-pinctrl";
 			reg = <0xe0014000 0x800>;
@@ -190,6 +215,16 @@ i2c10: i2c@600 {
 			};
 		};
 
+		uddrc: uddrc@e3800000 {
+			compatible = "microchip,sama7d65-uddrc", "microchip,sama7g5-uddrc";
+			reg = <0xe3800000 0x4000>;
+		};
+
+		ddr3phy: ddr3phy@e3804000 {
+			compatible = "microchip,sama7d65-ddr3phy", "microchip,sama7g5-ddr3phy";
+			reg = <0xe3804000 0x1000>;
+		};
+
 		gic: interrupt-controller@e8c11000 {
 			compatible = "arm,cortex-a7-gic";
 			reg = <0xe8c11000 0x1000>,
#24 lore raw

PATCH v3 15/21 ARM: dts: microchip: sama7d65: Add Reset Controller to sama7d65 SoC

In reply to [email protected]

From: Ryan Wanner <[email protected]>

Add Reset Controller support to SAMA7D65 SoC.

---
 arch/arm/boot/dts/microchip/sama7d65.dtsi | 7 +++++++
 1 file changed, 7 insertions(+)
arch/arm/boot/dts/microchip/sama7d65.dtsi +7 -0
index c10cc3558efd..5165259fb926 100644
@@ -102,6 +102,13 @@ pmc: clock-controller@e0018000 {
 			clock-names = "td_slck", "md_slck", "main_xtal";
 		};
 
+		reset_controller: reset-controller@e001d100 {
+			compatible = "microchip,sama7d65-rstc", "microchip,sama7g5-rstc";
+			reg = <0xe001d100 0xc>, <0xe001d1e4 0x4>;
+			#reset-cells = <1>;
+			clocks = <&clk32k 0>;
+		};
+
 		clk32k: clock-controller@e001d500 {
 			compatible = "microchip,sama7d65-sckc", "microchip,sam9x60-sckc";
 			reg = <0xe001d500 0x4>;
Signature · 1 line
2.43.0
#25 lore raw

PATCH v3 16/21 ARM: dts: microchip: sama7d65: Add Shutdown controller support

In reply to [email protected]

From: Ryan Wanner <[email protected]>

Add shutdown controller support for SAMA7D65 SoC.

---
 arch/arm/boot/dts/microchip/sama7d65.dtsi | 11 +++++++++++
 1 file changed, 11 insertions(+)
arch/arm/boot/dts/microchip/sama7d65.dtsi +11 -0
index 5165259fb926..b0a676623100 100644
@@ -109,6 +109,17 @@ reset_controller: reset-controller@e001d100 {
 			clocks = <&clk32k 0>;
 		};
 
+		shdwc: poweroff@e001d200 {
+			compatible = "microchip,sama7d65-shdwc", "microchip,sama7g5-shdwc", "syscon";
+			reg = <0xe001d200 0x20>;
+			clocks = <&clk32k 0>;
+			#address-cells = <1>;
+			#size-cells = <0>;
+			atmel,wakeup-rtc-timer;
+			atmel,wakeup-rtt-timer;
+			status = "disabled";
+		};
+
 		clk32k: clock-controller@e001d500 {
 			compatible = "microchip,sama7d65-sckc", "microchip,sam9x60-sckc";
 			reg = <0xe001d500 0x4>;
Signature · 1 line
2.43.0
#26 lore raw

PATCH v3 17/21 ARM: dts: microchip: sama7d65: Add RTT and GPBR Support for sama7d65 SoC

In reply to [email protected]

From: Ryan Wanner <[email protected]>

Add RTT support for SAMA7D65 SoC. The GPBR is added so the SoC is able to store the RTT time data.

---
 arch/arm/boot/dts/microchip/sama7d65.dtsi | 12 ++++++++++++
 1 file changed, 12 insertions(+)
arch/arm/boot/dts/microchip/sama7d65.dtsi +12 -0
index b0a676623100..aadeea132289 100644
@@ -120,6 +120,13 @@ shdwc: poweroff@e001d200 {
 			status = "disabled";
 		};
 
+		rtt: rtc@e001d300 {
+			compatible = "microchip,sama7d65-rtt", "atmel,at91sam9260-rtt";
+			reg = <0xe001d300 0x30>;
+			interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&clk32k 0>;
+		};
+
 		clk32k: clock-controller@e001d500 {
 			compatible = "microchip,sama7d65-sckc", "microchip,sam9x60-sckc";
 			reg = <0xe001d500 0x4>;
@@ -132,6 +139,11 @@ chipid@e0020000 {
 			reg = <0xe0020000 0x8>;
 		};
 
+		gpbr: gpbr@e001d700 {
+			compatible = "microchip,sama7d65-gpbr", "syscon";
+			reg = <0xe001d700 0x48>;
+		};
+
 		dma2: dma-controller@e1200000 {
 			compatible = "microchip,sama7d65-dma", "microchip,sama7g5-dma";
 			reg = <0xe1200000 0x1000>;
Signature · 1 line
2.43.0
maintainer
#27 lore raw

Re: [PATCH v3 17/21] ARM: dts: microchip: sama7d65: Add RTT and GPBR Support for sama7d65 SoC

Hi, Ryan,

Quoted 29 lines · On 27.02.2025 17:52, [email protected] wrote:

From: Ryan Wanner <[email protected]>

Add RTT support for SAMA7D65 SoC. The GPBR is added so the SoC is able to store the RTT time data.

---
 arch/arm/boot/dts/microchip/sama7d65.dtsi | 12 ++++++++++++
 1 file changed, 12 insertions(+)
arch/arm/boot/dts/microchip/sama7d65.dtsi +7 -0
index b0a676623100..aadeea132289 100644
@@ -120,6 +120,13 @@ shdwc: poweroff@e001d200 {
 			status = "disabled";
 		};
 
+		rtt: rtc@e001d300 {
+			compatible = "microchip,sama7d65-rtt", "atmel,at91sam9260-rtt";
+			reg = <0xe001d300 0x30>;
+			interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&clk32k 0>;
+		};
+
 		clk32k: clock-controller@e001d500 {
 			compatible = "microchip,sama7d65-sckc", "microchip,sam9x60-sckc";
 			reg = <0xe001d500 0x4>;

arch/arm/boot/dts/microchip/sama7d65.dtsi chipid@e0020000 { · line 143

Quoted 5 lines
arch/arm/boot/dts/microchip/sama7d65.dtsi +2 -0
@@ -132,6 +139,11 @@ chipid@e0020000 {
 			reg = <0xe0020000 0x8>;
 		};
 
+		gpbr: gpbr@e001d700 {
+			compatible = "microchip,sama7d65-gpbr", "syscon";

This is not documented. I'll postpone this until a documentation patch will be posted.

Quoted 6 lines
arch/arm/boot/dts/microchip/sama7d65.dtsi +3 -0
+			reg = <0xe001d700 0x48>;
+		};
+
 		dma2: dma-controller@e1200000 {
 			compatible = "microchip,sama7d65-dma", "microchip,sama7g5-dma";
 			reg = <0xe1200000 0x1000>;
#28 lore raw

Re: [PATCH v3 17/21] ARM: dts: microchip: sama7d65: Add RTT and GPBR Support for sama7d65 SoC

In reply to [email protected]
Quoted 29 lines · On 2/27/25 17:52, [email protected] wrote:

From: Ryan Wanner <[email protected]>

Add RTT support for SAMA7D65 SoC. The GPBR is added so the SoC is able to store the RTT time data.

---
  arch/arm/boot/dts/microchip/sama7d65.dtsi | 12 ++++++++++++
  1 file changed, 12 insertions(+)
arch/arm/boot/dts/microchip/sama7d65.dtsi +7 -0
index b0a676623100..aadeea132289 100644
@@ -120,6 +120,13 @@ shdwc: poweroff@e001d200 {
  			status = "disabled";
  		};
 
+		rtt: rtc@e001d300 {
+			compatible = "microchip,sama7d65-rtt", "atmel,at91sam9260-rtt";
+			reg = <0xe001d300 0x30>;
+			interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&clk32k 0>;
+		};
+
  		clk32k: clock-controller@e001d500 {
  			compatible = "microchip,sama7d65-sckc", "microchip,sam9x60-sckc";
  			reg = <0xe001d500 0x4>;

arch/arm/boot/dts/microchip/sama7d65.dtsi chipid@e0020000 { · line 145

Quoted 7 lines
arch/arm/boot/dts/microchip/sama7d65.dtsi +4 -0
@@ -132,6 +139,11 @@ chipid@e0020000 {
  			reg = <0xe0020000 0x8>;
  		};
 
+		gpbr: gpbr@e001d700 {
+			compatible = "microchip,sama7d65-gpbr", "syscon";
+			reg = <0xe001d700 0x48>;
+		};

This node should be before chipid one to have them sorted by node address.

Quoted 4 lines
arch/arm/boot/dts/microchip/sama7d65.dtsi +1 -0
+
  		dma2: dma-controller@e1200000 {
  			compatible = "microchip,sama7d65-dma", "microchip,sama7g5-dma";
  			reg = <0xe1200000 0x1000>;
#29 lore raw

PATCH v3 18/21 ARM: dts: microchip: sama7d65: Add RTC support for sama7d65

In reply to [email protected]

From: Ryan Wanner <[email protected]>

Add RTC support for the SAMA7D65 SoC.

---
 arch/arm/boot/dts/microchip/sama7d65.dtsi | 7 +++++++
 1 file changed, 7 insertions(+)
arch/arm/boot/dts/microchip/sama7d65.dtsi +7 -0
index aadeea132289..e623f9d22f36 100644
@@ -144,6 +144,13 @@ gpbr: gpbr@e001d700 {
 			reg = <0xe001d700 0x48>;
 		};
 
+		rtc: rtc@e001d800 {
+			compatible = "microchip,sama7d65-rtc", "microchip,sam9x60-rtc";
+			reg = <0xe001d800 0x30>;
+			interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&clk32k 1>;
+		};
+
 		dma2: dma-controller@e1200000 {
 			compatible = "microchip,sama7d65-dma", "microchip,sama7g5-dma";
 			reg = <0xe1200000 0x1000>;
Signature · 1 line
2.43.0
#30 lore raw

PATCH v3 19/21 ARM: dts: microchip: sama7d65: Add SFRBU support to sama7d65

In reply to [email protected]

From: Ryan Wanner <[email protected]>

Add SFRBU support to the SAMA7D65 SoC. This is required to change the power source for backup mode for the SoC.

---
 arch/arm/boot/dts/microchip/sama7d65.dtsi | 5 +++++
 1 file changed, 5 insertions(+)
arch/arm/boot/dts/microchip/sama7d65.dtsi +5 -0
index e623f9d22f36..45037fc95adf 100644
@@ -78,6 +78,11 @@ secumod: secumod@e0004000 {
 			#gpio-cells = <2>;
 		};
 
+		sfrbu: sfr@e0008000 {
+			compatible ="microchip,sama7d65-sfrbu", "atmel,sama5d2-sfrbu", "syscon";
+			reg = <0xe0008000 0x20>;
+		};
+
 		pioa: pinctrl@e0014000 {
 			compatible = "microchip,sama7d65-pinctrl", "microchip,sama7g5-pinctrl";
 			reg = <0xe0014000 0x800>;
Signature · 1 line
2.43.0
#31 lore raw

PATCH v3 20/21 ARM: dts: microchip: sama7d65: Enable shutdown controller

In reply to [email protected]

From: Ryan Wanner <[email protected]>

Enable shutdown controller to support shutdown and wake up.

---
 arch/arm/boot/dts/microchip/at91-sama7d65_curiosity.dts | 9 +++++++++
 1 file changed, 9 insertions(+)
arch/arm/boot/dts/microchip/at91-sama7d65_curiosity.dts +9 -0
index 93a1b0684eb9..30fdc4f55a3b 100644
@@ -148,6 +148,15 @@ &sdmmc1 {
 	status = "okay";
 };
 
+&shdwc {
+	debounce-delay-us = <976>;
+	status = "okay";
+
+	input@0 {
+		reg = <0>;
+	};
+};
+
 &slow_xtal {
 	clock-frequency = <32768>;
 };
Signature · 1 line
2.43.0
#32 lore raw

PATCH v3 21/21 ARM: dts: microchip: sama7d65: Add RTT timer to curiosity board

In reply to [email protected]

From: Ryan Wanner <[email protected]>

Add RTT timer with backup register for SAMA7D65_Curiosity board.

---
 arch/arm/boot/dts/microchip/at91-sama7d65_curiosity.dts | 4 ++++
 1 file changed, 4 insertions(+)
arch/arm/boot/dts/microchip/at91-sama7d65_curiosity.dts +4 -0
index 30fdc4f55a3b..3105fe1766c3 100644
@@ -141,6 +141,10 @@ pinctrl_uart6_default: uart6-default {
 	};
 };
 
+&rtt {
+	atmel,rtt-rtc-time-reg = <&gpbr 0x0>;
+};
+
 &sdmmc1 {
 	bus-width = <4>;
 	pinctrl-names = "default";
Signature · 1 line
2.43.0
#33 lore raw
In reply to [email protected]
Quoted 79 lines · On Thu, 27 Feb 2025 08:51:47 -0700, [email protected] wrote:

From: Ryan Wanner <[email protected]>

This patch set adds support for low power modes for the SAMA7D65 SoC and the required components and changes for low power modes.

The series includes changes in the asm code to account for the addtional clocks that are in this SoC.

The Device tree additions are to enable all the components needed to keep the SoC in low power mode.

There are some DTB check warnings but that is due to the dt-binding not in the correct .yaml file format.

Changes v1 -> v2:
- Add missing compatible for ddr3phy, it is now in both syscon sets.
- Fix alphabetical ordering for sama7d65.
- Remove the incorrect reorganizing patch.
- Remove sama7g5-rtt as a compatible for sama7d65-rtt and add sama7d65-rtt as a compatible wake up source in the pm driver.

Changes from v2 -> v3:
- Correct mistake in v2 sfrbu dt-binding patch.
- Correct incorrect dt-binding addition and formatting for rtc and rtt bindings.
- Add missing SoB tag.
- Cleaned up commit message for Backup mode to describe SHDWC is status register is cleared for this SoC.
- Cleaned up variable naming and usage for mcks. Changed the mcks number to the correct number of clocks needed to be saved and corrected the ASM code accordingly.
- Removed the SHDWC from ULP0 wake-up source as it is not configured as a valid wake-up source for ULP0.
- Separated all the DTSI and DTS changes into individual patches.

Li Bin (1):
ARM: at91: pm: fix at91_suspend_finish for ZQ calibration

Ryan Wanner (20):
dt-bindings: mfd: syscon: add microchip,sama7d65-ddr3phy
dt-bindings: mfd: syscon: add microchip,sama7d65-sfrbu
dt-bindings: sram: Add microchip,sama7d65-sram
dt-bindings: power: reset: atmel,sama5d2-shdwc: Add
microchip,sama7d65-shdwc
dt-bindings: reset: atmel,at91sam9260-reset: add
microchip,sama7d65-rstc
dt-bindings: rtc: at91rm9200: add microchip,sama7d65-rtc
dt-bindings: at91rm9260-rtt: add microchip,sama7d65-rtt
ARM: at91: Add PM support to sama7d65
ARM: at91: pm: add DT compatible support for sama7d65
ARM: at91: PM: Add Backup mode for SAMA7D65
ARM: at91: pm: Enable ULP0/ULP1 for SAMA7D65
power: reset: at91-sama5d2_shdwc: Add sama7d65 PMC
ARM: dts: microchip: sama7d65: Add SRAM and DRAM components support
ARM: dts: microchip: sama7d65: Add Reset Controller to sama7d65 SoC
ARM: dts: microchip: sama7d65: Add Shutdown controller support
ARM: dts: microchip: sama7d65: Add RTT and GPBR Support for sama7d65
SoC
ARM: dts: microchip: sama7d65: Add RTC support for sama7d65
ARM: dts: microchip: sama7d65: Add SFRBU support to sama7d65
ARM: dts: microchip: sama7d65: Enable shutdown controller
ARM: dts: microchip: sama7d65: Add RTT timer to curiosity board

 .../devicetree/bindings/mfd/syscon.yaml       |   4 +
 .../power/reset/atmel,sama5d2-shdwc.yaml      |   5 +
 .../reset/atmel,at91sam9260-reset.yaml        |   3 +
 .../bindings/rtc/atmel,at91rm9200-rtc.yaml    |   4 +-
 .../bindings/rtc/atmel,at91sam9260-rtt.yaml   |   1 +
 .../devicetree/bindings/sram/sram.yaml        |   1 +
 .../dts/microchip/at91-sama7d65_curiosity.dts |  13 +++
 arch/arm/boot/dts/microchip/sama7d65.dtsi     |  77 +++++++++++++
 arch/arm/mach-at91/Kconfig                    |   1 +
 arch/arm/mach-at91/pm.c                       |  47 +++++---
 arch/arm/mach-at91/pm.h                       |   1 +
 arch/arm/mach-at91/pm_data-offsets.c          |   2 +
 arch/arm/mach-at91/pm_suspend.S               | 101 ++++++++++++++++--
 drivers/power/reset/at91-sama5d2_shdwc.c      |   1 +
 14 files changed, 238 insertions(+), 23 deletions(-)
Quoted 5 lines

--
2.43.0

My bot found new DTB warnings on the .dts files added or changed in this series.

Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings are fixed by another series. Ultimately, it is up to the platform maintainer whether these warnings are acceptable or not. No need to reply unless the platform maintainer has comments.

If you already ran DT checks and didn't see these error(s), then make sure dt-schema is up to date:

  pip3 install dtschema --upgrade

New warnings running 'make CHECK_DTBS=y for arch/arm/boot/dts/microchip/' for [email protected]:

arch/arm/boot/dts/microchip/at91-sama7d65_curiosity.dtb: /soc/secumod@e0004000: failed to match any schema with compatible: ['microchip,sama7d65-secumod', 'atmel,sama5d2-secumod', 'syscon']
arch/arm/boot/dts/microchip/at91-sama7d65_curiosity.dtb: /soc/secumod@e0004000: failed to match any schema with compatible: ['microchip,sama7d65-secumod', 'atmel,sama5d2-secumod', 'syscon']
arch/arm/boot/dts/microchip/at91-sama7d65_curiosity.dtb: sfr@e0008000: compatible:1: 'syscon' was expected
from schema $id: http://devicetree.org/schemas/mfd/syscon.yaml#
arch/arm/boot/dts/microchip/at91-sama7d65_curiosity.dtb: sfr@e0008000: compatible: ['microchip,sama7d65-sfrbu', 'atmel,sama5d2-sfrbu', 'syscon'] is too long
from schema $id: http://devicetree.org/schemas/mfd/syscon.yaml#
arch/arm/boot/dts/microchip/at91-sama7d65_curiosity.dtb: /soc/gpbr@e001d700: failed to match any schema with compatible: ['microchip,sama7d65-gpbr', 'syscon']
arch/arm/boot/dts/microchip/at91-sama7d65_curiosity.dtb: /soc/uddrc@e3800000: failed to match any schema with compatible: ['microchip,sama7d65-uddrc', 'microchip,sama7g5-uddrc']
arch/arm/boot/dts/microchip/at91-sama7d65_curiosity.dtb: /soc/uddrc@e3800000: failed to match any schema with compatible: ['microchip,sama7d65-uddrc', 'microchip,sama7g5-uddrc']
arch/arm/boot/dts/microchip/at91-sama7d65_curiosity.dtb: ddr3phy@e3804000: compatible:1: 'syscon' was expected
from schema $id: http://devicetree.org/schemas/mfd/syscon.yaml#
arch/arm/boot/dts/microchip/at91-sama7d65_curiosity.dtb: ddr3phy@e3804000: compatible: ['microchip,sama7d65-ddr3phy', 'microchip,sama7g5-ddr3phy'] does not contain items matching the given schema
from schema $id: http://devicetree.org/schemas/mfd/syscon.yaml#
arch/arm/boot/dts/microchip/at91-sama7d65_curiosity.dtb: ddr3phy@e3804000: Unevaluated properties are not allowed ('compatible' was unexpected)
from schema $id: http://devicetree.org/schemas/mfd/syscon.yaml#
arch/arm/boot/dts/microchip/at91-sama7g5ek.dtb: sfr@e0008000: compatible:0: 'microchip,sama7g5-sfrbu' is not one of ['al,alpine-sysfabric-service', 'allwinner,sun8i-a83t-system-controller', 'allwinner,sun8i-h3-system-controller', 'allwinner,sun8i-v3s-system-controller', 'allwinner,sun50i-a64-system-controller', 'altr,l3regs', 'altr,sdr-ctl', 'amd,pensando-elba-syscon', 'amlogic,meson-mx-assist', 'amlogic,meson-mx-bootrom', 'amlogic,meson8-analog-top', 'amlogic,meson8b-analog-top', 'amlogic,meson8-pmu', 'amlogic,meson8b-pmu', 'apm,merlin-poweroff-mailbox', 'apm,mustang-poweroff-mailbox', 'apm,xgene-csw', 'apm,xgene-efuse', 'apm,xgene-mcb', 'apm,xgene-rb', 'apm,xgene-scu', 'atmel,sama5d2-sfrbu', 'atmel,sama5d3-nfc-io', 'atmel,sama5d3-sfrbu', 'atmel,sama5d4-sfrbu', 'axis,artpec6-syscon', 'brcm,cru-clkset', 'brcm,sr-cdru', 'brcm,sr-mhb', 'cirrus,ep7209-syscon1', 'cirrus,ep7209-syscon2', 'cirrus,ep7209-syscon3', 'cnxt,cx92755-uc', 'freecom,fsg-cs2-system-controller', 'fsl,imx93-aonmix-ns-syscfg', 'fsl,imx93-wakeupmix-syscfg', 'fsl,ls1088a-reset', 'fsl,vf610-anatop', 'fsl,vf610-mscm-cpucfg', 'hisilicon,dsa-subctrl', 'hisilicon,hi6220-sramctrl', 'hisilicon,hip04-ppe', 'hisilicon,pcie-sas-subctrl', 'hisilicon,peri-subctrl', 'hpe,gxp-sysreg', 'loongson,ls1b-syscon', 'loongson,ls1c-syscon', 'lsi,axxia-syscon', 'marvell,armada-3700-cpu-misc', 'marvell,armada-3700-nb-pm', 'marvell,armada-3700-avs', 'marvell,armada-3700-usb2-host-misc', 'marvell,dove-global-config', 'mediatek,mt2701-pctl-a-syscfg', 'mediatek,mt2712-pctl-a-syscfg', 'mediatek,mt6397-pctl-pmic-syscfg', 'mediatek,mt8135-pctl-a-syscfg', 'mediatek,mt8135-pctl-b-syscfg', 'mediatek,mt8173-pctl-a-syscfg', 'mediatek,mt8365-syscfg', 'microchip,lan966x-cpu-syscon', 'microchip,mpfs-sysreg-scb', 'microchip,sam9x60-sfr', 'microchip,sama7d65-ddr3phy', 'microchip,sama7d65-sfrbu', 'microchip,sama7g5-ddr3phy', 'mscc,ocelot-cpu-syscon', 'mstar,msc313-pmsleep', 'nuvoton,ma35d1-sys', 'nuvoton,wpcm450-shm', 'rockchip,px30-qos', 'rockchip,rk3036-qos', 'rockchip,rk3066-qos', 'rockchip,rk3128-qos', 'rockchip,rk3228-qos', 'rockchip,rk3288-qos', 'rockchip,rk3368-qos', 'rockchip,rk3399-qos', 'rockchip,rk3562-qos', 'rockchip,rk3568-qos', 'rockchip,rk3576-qos', 'rockchip,rk3588-qos', 'rockchip,rv1126-qos', 'st,spear1340-misc', 'stericsson,nomadik-pmu', 'starfive,jh7100-sysmain', 'ti,am62-opp-efuse-table', 'ti,am62-usb-phy-ctrl', 'ti,am625-dss-oldi-io-ctrl', 'ti,am62p-cpsw-mac-efuse', 'ti,am654-dss-oldi-io-ctrl', 'ti,j784s4-acspcie-proxy-ctrl', 'ti,j784s4-pcie-ctrl', 'ti,keystone-pllctrl']
from schema $id: http://devicetree.org/schemas/mfd/syscon.yaml#
arch/arm/boot/dts/microchip/at91-sama7g54_curiosity.dtb: sfr@e0008000: compatible:0: 'microchip,sama7g5-sfrbu' is not one of ['al,alpine-sysfabric-service', 'allwinner,sun8i-a83t-system-controller', 'allwinner,sun8i-h3-system-controller', 'allwinner,sun8i-v3s-system-controller', 'allwinner,sun50i-a64-system-controller', 'altr,l3regs', 'altr,sdr-ctl', 'amd,pensando-elba-syscon', 'amlogic,meson-mx-assist', 'amlogic,meson-mx-bootrom', 'amlogic,meson8-analog-top', 'amlogic,meson8b-analog-top', 'amlogic,meson8-pmu', 'amlogic,meson8b-pmu', 'apm,merlin-poweroff-mailbox', 'apm,mustang-poweroff-mailbox', 'apm,xgene-csw', 'apm,xgene-efuse', 'apm,xgene-mcb', 'apm,xgene-rb', 'apm,xgene-scu', 'atmel,sama5d2-sfrbu', 'atmel,sama5d3-nfc-io', 'atmel,sama5d3-sfrbu', 'atmel,sama5d4-sfrbu', 'axis,artpec6-syscon', 'brcm,cru-clkset', 'brcm,sr-cdru', 'brcm,sr-mhb', 'cirrus,ep7209-syscon1', 'cirrus,ep7209-syscon2', 'cirrus,ep7209-syscon3', 'cnxt,cx92755-uc', 'freecom,fsg-cs2-system-controller', 'fsl,imx93-aonmix-ns-syscfg', 'fsl,imx93-wakeupmix-syscfg', 'fsl,ls1088a-reset', 'fsl,vf610-anatop', 'fsl,vf610-mscm-cpucfg', 'hisilicon,dsa-subctrl', 'hisilicon,hi6220-sramctrl', 'hisilicon,hip04-ppe', 'hisilicon,pcie-sas-subctrl', 'hisilicon,peri-subctrl', 'hpe,gxp-sysreg', 'loongson,ls1b-syscon', 'loongson,ls1c-syscon', 'lsi,axxia-syscon', 'marvell,armada-3700-cpu-misc', 'marvell,armada-3700-nb-pm', 'marvell,armada-3700-avs', 'marvell,armada-3700-usb2-host-misc', 'marvell,dove-global-config', 'mediatek,mt2701-pctl-a-syscfg', 'mediatek,mt2712-pctl-a-syscfg', 'mediatek,mt6397-pctl-pmic-syscfg', 'mediatek,mt8135-pctl-a-syscfg', 'mediatek,mt8135-pctl-b-syscfg', 'mediatek,mt8173-pctl-a-syscfg', 'mediatek,mt8365-syscfg', 'microchip,lan966x-cpu-syscon', 'microchip,mpfs-sysreg-scb', 'microchip,sam9x60-sfr', 'microchip,sama7d65-ddr3phy', 'microchip,sama7d65-sfrbu', 'microchip,sama7g5-ddr3phy', 'mscc,ocelot-cpu-syscon', 'mstar,msc313-pmsleep', 'nuvoton,ma35d1-sys', 'nuvoton,wpcm450-shm', 'rockchip,px30-qos', 'rockchip,rk3036-qos', 'rockchip,rk3066-qos', 'rockchip,rk3128-qos', 'rockchip,rk3228-qos', 'rockchip,rk3288-qos', 'rockchip,rk3368-qos', 'rockchip,rk3399-qos', 'rockchip,rk3562-qos', 'rockchip,rk3568-qos', 'rockchip,rk3576-qos', 'rockchip,rk3588-qos', 'rockchip,rv1126-qos', 'st,spear1340-misc', 'stericsson,nomadik-pmu', 'starfive,jh7100-sysmain', 'ti,am62-opp-efuse-table', 'ti,am62-usb-phy-ctrl', 'ti,am625-dss-oldi-io-ctrl', 'ti,am62p-cpsw-mac-efuse', 'ti,am654-dss-oldi-io-ctrl', 'ti,j784s4-acspcie-proxy-ctrl', 'ti,j784s4-pcie-ctrl', 'ti,keystone-pllctrl']
from schema $id: http://devicetree.org/schemas/mfd/syscon.yaml#

maintainer Applied
#34 lore raw
In reply to [email protected]
Quoted 5 lines · On 27.02.2025 17:51, [email protected] wrote:

Ryan Wanner (20):
ARM: at91: Add PM support to sama7d65
ARM: at91: pm: add DT compatible support for sama7d65
ARM: at91: PM: Add Backup mode for SAMA7D65
ARM: at91: pm: Enable ULP0/ULP1 for SAMA7D65

Applied to at91-soc with some adjustments, please check!

Quoted 5 lines

ARM: dts: microchip: sama7d65: Add Reset Controller to sama7d65 SoC
ARM: dts: microchip: sama7d65: Add Shutdown controller support
ARM: dts: microchip: sama7d65: Add RTC support for sama7d65
ARM: dts: microchip: sama7d65: Add SFRBU support to sama7d65
ARM: dts: microchip: sama7d65: Enable shutdown controller

Applied to at91-dt with some adjustments, please check!

Thank you!

#35 lore raw
Quoted 10 lines · Claudiu Beznea

EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe

Quoted 5 lines · On 27.02.2025 17:51, [email protected] wrote:

Ryan Wanner (20):
ARM: at91: Add PM support to sama7d65
ARM: at91: pm: add DT compatible support for sama7d65
ARM: at91: PM: Add Backup mode for SAMA7D65
ARM: at91: pm: Enable ULP0/ULP1 for SAMA7D65

Applied to at91-soc with some adjustments, please check!

Checked! This is correct.

Quoted 8 lines
Quoted 6 lines

ARM: dts: microchip: sama7d65: Add Reset Controller to sama7d65 SoC
ARM: dts: microchip: sama7d65: Add Shutdown controller support
ARM: dts: microchip: sama7d65: Add RTC support for sama7d65
ARM: dts: microchip: sama7d65: Add SFRBU support to sama7d65
ARM: dts: microchip: sama7d65: Enable shutdown controller

Applied to at91-dt with some adjustments, please check!

Same here

Thank you!

Quoted 2 lines

Thank you!

#36 lore raw

Re: (subset) [PATCH v3 00/21] Enable Power Modes Support for SAMA7D65 SoC

In reply to [email protected]
Quoted 9 lines · On Thu, 27 Feb 2025 08:51:47 -0700, [email protected] wrote:

From: Ryan Wanner <[email protected]>

This patch set adds support for low power modes for the SAMA7D65 SoC and the required components and changes for low power modes.

The series includes changes in the asm code to account for the addtional clocks that are in this SoC.

[...]

Applied, thanks!

[13/21] power: reset: at91-sama5d2_shdwc: Add sama7d65 PMC

        commit: 2fc78cd0a3c3013543e5f540eff61e9696138f83

Best regards,

Signature · 1 line
Sebastian Reichel <[email protected]>
maintainer
#37 lore raw
In reply to [email protected]
Quoted 35 lines · On Thu, 27 Feb 2025, [email protected] wrote:

From: Ryan Wanner <[email protected]>

This patch set adds support for low power modes for the SAMA7D65 SoC and the required components and changes for low power modes.

The series includes changes in the asm code to account for the addtional clocks that are in this SoC.

The Device tree additions are to enable all the components needed to keep the SoC in low power mode.

There are some DTB check warnings but that is due to the dt-binding not in the correct .yaml file format.

Changes v1 -> v2:
- Add missing compatible for ddr3phy, it is now in both syscon sets.
- Fix alphabetical ordering for sama7d65.
- Remove the incorrect reorganizing patch.
- Remove sama7g5-rtt as a compatible for sama7d65-rtt and add sama7d65-rtt as a compatible wake up source in the pm driver.

Changes from v2 -> v3:
- Correct mistake in v2 sfrbu dt-binding patch.
- Correct incorrect dt-binding addition and formatting for rtc and rtt bindings.
- Add missing SoB tag.
- Cleaned up commit message for Backup mode to describe SHDWC is status register is cleared for this SoC.
- Cleaned up variable naming and usage for mcks. Changed the mcks number to the correct number of clocks needed to be saved and corrected the ASM code accordingly.
- Removed the SHDWC from ULP0 wake-up source as it is not configured as a valid wake-up source for ULP0.
- Separated all the DTSI and DTS changes into individual patches.

Quoted 6 lines

Li Bin (1):
ARM: at91: pm: fix at91_suspend_finish for ZQ calibration

Ryan Wanner (20):
dt-bindings: mfd: syscon: add microchip,sama7d65-ddr3phy
dt-bindings: mfd: syscon: add microchip,sama7d65-sfrbu

Ping me when these are ready to take.

Quoted 41 lines

dt-bindings: sram: Add microchip,sama7d65-sram
dt-bindings: power: reset: atmel,sama5d2-shdwc: Add
microchip,sama7d65-shdwc
dt-bindings: reset: atmel,at91sam9260-reset: add
microchip,sama7d65-rstc
dt-bindings: rtc: at91rm9200: add microchip,sama7d65-rtc
dt-bindings: at91rm9260-rtt: add microchip,sama7d65-rtt
ARM: at91: Add PM support to sama7d65
ARM: at91: pm: add DT compatible support for sama7d65
ARM: at91: PM: Add Backup mode for SAMA7D65
ARM: at91: pm: Enable ULP0/ULP1 for SAMA7D65
power: reset: at91-sama5d2_shdwc: Add sama7d65 PMC
ARM: dts: microchip: sama7d65: Add SRAM and DRAM components support
ARM: dts: microchip: sama7d65: Add Reset Controller to sama7d65 SoC
ARM: dts: microchip: sama7d65: Add Shutdown controller support
ARM: dts: microchip: sama7d65: Add RTT and GPBR Support for sama7d65
SoC
ARM: dts: microchip: sama7d65: Add RTC support for sama7d65
ARM: dts: microchip: sama7d65: Add SFRBU support to sama7d65
ARM: dts: microchip: sama7d65: Enable shutdown controller
ARM: dts: microchip: sama7d65: Add RTT timer to curiosity board

 .../devicetree/bindings/mfd/syscon.yaml       |   4 +
 .../power/reset/atmel,sama5d2-shdwc.yaml      |   5 +
 .../reset/atmel,at91sam9260-reset.yaml        |   3 +
 .../bindings/rtc/atmel,at91rm9200-rtc.yaml    |   4 +-
 .../bindings/rtc/atmel,at91sam9260-rtt.yaml   |   1 +
 .../devicetree/bindings/sram/sram.yaml        |   1 +
 .../dts/microchip/at91-sama7d65_curiosity.dts |  13 +++
 arch/arm/boot/dts/microchip/sama7d65.dtsi     |  77 +++++++++++++
 arch/arm/mach-at91/Kconfig                    |   1 +
 arch/arm/mach-at91/pm.c                       |  47 +++++---
 arch/arm/mach-at91/pm.h                       |   1 +
 arch/arm/mach-at91/pm_data-offsets.c          |   2 +
 arch/arm/mach-at91/pm_suspend.S               | 101 ++++++++++++++++--
 drivers/power/reset/at91-sama5d2_shdwc.c      |   1 +
 14 files changed, 238 insertions(+), 23 deletions(-)
Signature · 1 line
2.43.0
Signature · 1 line
Lee Jones [李琼斯]
#38 lore raw
Quoted 39 lines · Lee Jones

EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe

Quoted 35 lines · On Thu, 27 Feb 2025, [email protected] wrote:

From: Ryan Wanner <[email protected]>

This patch set adds support for low power modes for the SAMA7D65 SoC and the required components and changes for low power modes.

The series includes changes in the asm code to account for the addtional clocks that are in this SoC.

The Device tree additions are to enable all the components needed to keep the SoC in low power mode.

There are some DTB check warnings but that is due to the dt-binding not in the correct .yaml file format.

Changes v1 -> v2:
- Add missing compatible for ddr3phy, it is now in both syscon sets.
- Fix alphabetical ordering for sama7d65.
- Remove the incorrect reorganizing patch.
- Remove sama7g5-rtt as a compatible for sama7d65-rtt and add sama7d65-rtt as a compatible wake up source in the pm driver.

Changes from v2 -> v3:
- Correct mistake in v2 sfrbu dt-binding patch.
- Correct incorrect dt-binding addition and formatting for rtc and rtt bindings.
- Add missing SoB tag.
- Cleaned up commit message for Backup mode to describe SHDWC is status register is cleared for this SoC.
- Cleaned up variable naming and usage for mcks. Changed the mcks number to the correct number of clocks needed to be saved and corrected the ASM code accordingly.
- Removed the SHDWC from ULP0 wake-up source as it is not configured as a valid wake-up source for ULP0.
- Separated all the DTSI and DTS changes into individual patches.

Quoted 8 lines
Quoted 6 lines

Li Bin (1):
ARM: at91: pm: fix at91_suspend_finish for ZQ calibration

Ryan Wanner (20):
dt-bindings: mfd: syscon: add microchip,sama7d65-ddr3phy
dt-bindings: mfd: syscon: add microchip,sama7d65-sfrbu

Ping me when these are ready to take.

I would say they are ready to take since they have been acked and the SHDWC, RTC, SFRBU, and Reset controller have all been applied to the DTSI file.

Quoted 39 lines
Quoted 39 lines

dt-bindings: sram: Add microchip,sama7d65-sram
dt-bindings: power: reset: atmel,sama5d2-shdwc: Add
microchip,sama7d65-shdwc
dt-bindings: reset: atmel,at91sam9260-reset: add
microchip,sama7d65-rstc
dt-bindings: rtc: at91rm9200: add microchip,sama7d65-rtc
dt-bindings: at91rm9260-rtt: add microchip,sama7d65-rtt
ARM: at91: Add PM support to sama7d65
ARM: at91: pm: add DT compatible support for sama7d65
ARM: at91: PM: Add Backup mode for SAMA7D65
ARM: at91: pm: Enable ULP0/ULP1 for SAMA7D65
power: reset: at91-sama5d2_shdwc: Add sama7d65 PMC
ARM: dts: microchip: sama7d65: Add SRAM and DRAM components support
ARM: dts: microchip: sama7d65: Add Reset Controller to sama7d65 SoC
ARM: dts: microchip: sama7d65: Add Shutdown controller support
ARM: dts: microchip: sama7d65: Add RTT and GPBR Support for sama7d65
SoC
ARM: dts: microchip: sama7d65: Add RTC support for sama7d65
ARM: dts: microchip: sama7d65: Add SFRBU support to sama7d65
ARM: dts: microchip: sama7d65: Enable shutdown controller
ARM: dts: microchip: sama7d65: Add RTT timer to curiosity board

 .../devicetree/bindings/mfd/syscon.yaml       |   4 +
 .../power/reset/atmel,sama5d2-shdwc.yaml      |   5 +
 .../reset/atmel,at91sam9260-reset.yaml        |   3 +
 .../bindings/rtc/atmel,at91rm9200-rtc.yaml    |   4 +-
 .../bindings/rtc/atmel,at91sam9260-rtt.yaml   |   1 +
 .../devicetree/bindings/sram/sram.yaml        |   1 +
 .../dts/microchip/at91-sama7d65_curiosity.dts |  13 +++
 arch/arm/boot/dts/microchip/sama7d65.dtsi     |  77 +++++++++++++
 arch/arm/mach-at91/Kconfig                    |   1 +
 arch/arm/mach-at91/pm.c                       |  47 +++++---
 arch/arm/mach-at91/pm.h                       |   1 +
 arch/arm/mach-at91/pm_data-offsets.c          |   2 +
 arch/arm/mach-at91/pm_suspend.S               | 101 ++++++++++++++++--
 drivers/power/reset/at91-sama5d2_shdwc.c      |   1 +
 14 files changed, 238 insertions(+), 23 deletions(-)
Quoted 6 lines
Quoted 3 lines

--
2.43.0

--
Lee Jones [李琼斯]

Ryan Wanner