mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-03 22:44:27 -05:00 
			
		
		
		
	Add kernel support for SAMA7G5 by back-porting mainline kernel patches. Among SAMA7G5 features could be remembered: - ARM Cortex-A7 - double data rate multi-port dynamic RAM controller supporting DDR2, DDR3, DDR3L, LPDDR2, LPDDR3 up to 533MHz - peripherals for audio, video processing - 1 gigabit + 1 megabit Ethernet controllers - 6 CAN controllers - trust zone support - DVFS for CPU - criptography IPs Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
		
			
				
	
	
		
			60 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From 62be32b56ff31b2cd048a53fac40a165c5bc66cd Mon Sep 17 00:00:00 2001
 | 
						|
From: Claudiu Beznea <claudiu.beznea@microchip.com>
 | 
						|
Date: Thu, 15 Apr 2021 13:50:06 +0300
 | 
						|
Subject: [PATCH 215/247] ARM: at91: pm: add backup mode support for SAMA7G5
 | 
						|
 | 
						|
Adapt at91_pm_backup_init() to work for SAMA7G5. Also, set the LPM pin
 | 
						|
to shutdown controller. This will signal to PMIC that it needs to switch
 | 
						|
to the state corresponding to backup mode.
 | 
						|
 | 
						|
Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
 | 
						|
Signed-off-by: Nicolas Ferre <nicolas.ferre@microchip.com>
 | 
						|
Link: https://lore.kernel.org/r/20210415105010.569620-21-claudiu.beznea@microchip.com
 | 
						|
---
 | 
						|
 arch/arm/mach-at91/pm.c         | 3 ++-
 | 
						|
 arch/arm/mach-at91/pm_suspend.S | 7 +++++++
 | 
						|
 2 files changed, 9 insertions(+), 1 deletion(-)
 | 
						|
 | 
						|
diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c
 | 
						|
index fd3beaeec17d..653350eec9b6 100644
 | 
						|
--- a/arch/arm/mach-at91/pm.c
 | 
						|
+++ b/arch/arm/mach-at91/pm.c
 | 
						|
@@ -744,7 +744,8 @@ static int __init at91_pm_backup_init(void)
 | 
						|
 	struct platform_device *pdev;
 | 
						|
 	int ret = -ENODEV, located = 0;
 | 
						|
 
 | 
						|
-	if (!IS_ENABLED(CONFIG_SOC_SAMA5D2))
 | 
						|
+	if (!IS_ENABLED(CONFIG_SOC_SAMA5D2) &&
 | 
						|
+	    !IS_ENABLED(CONFIG_SOC_SAMA7G5))
 | 
						|
 		return -EPERM;
 | 
						|
 
 | 
						|
 	if (!at91_is_pm_mode_active(AT91_PM_BACKUP))
 | 
						|
diff --git a/arch/arm/mach-at91/pm_suspend.S b/arch/arm/mach-at91/pm_suspend.S
 | 
						|
index 7396e18dd7e5..cbd61a3bcab1 100644
 | 
						|
--- a/arch/arm/mach-at91/pm_suspend.S
 | 
						|
+++ b/arch/arm/mach-at91/pm_suspend.S
 | 
						|
@@ -106,6 +106,12 @@ lp_done_\ena:
 | 
						|
 #endif
 | 
						|
 	.endm
 | 
						|
 
 | 
						|
+	.macro at91_backup_set_lpm reg
 | 
						|
+#ifdef CONFIG_SOC_SAMA7
 | 
						|
+	orr	\reg, \reg, #0x200000
 | 
						|
+#endif
 | 
						|
+	.endm
 | 
						|
+
 | 
						|
 	.text
 | 
						|
 
 | 
						|
 	.arm
 | 
						|
@@ -989,6 +995,7 @@ ulp_exit:
 | 
						|
 	ldr	r0, .shdwc
 | 
						|
 	mov	tmp1, #0xA5000000
 | 
						|
 	add	tmp1, tmp1, #0x1
 | 
						|
+	at91_backup_set_lpm tmp1
 | 
						|
 	str	tmp1, [r0, #0]
 | 
						|
 .endm
 | 
						|
 
 | 
						|
-- 
 | 
						|
2.32.0
 | 
						|
 |