From c1cadac7933cbc3f81e9096843bffff8751baff9 Mon Sep 17 00:00:00 2001
From: Mihai Sain <mihai.sain@microchip.com>
Date: Wed, 25 May 2022 13:32:08 +0300
Subject: [PATCH] gpio: atmel_pio4: add support for PIO_PORTE

Add support for gpio PORT E, which is available on e.g. sama7g5 SoC.

Signed-off-by: Mihai Sain <mihai.sain@microchip.com>
---
 arch/arm/mach-at91/include/mach/atmel_pio4.h | 1 +
 drivers/gpio/atmel_pio4.c                    | 5 +++++
 2 files changed, 6 insertions(+)

diff --git a/arch/arm/mach-at91/include/mach/atmel_pio4.h b/arch/arm/mach-at91/include/mach/atmel_pio4.h
index c3bd9140df..b712be8051 100644
--- a/arch/arm/mach-at91/include/mach/atmel_pio4.h
+++ b/arch/arm/mach-at91/include/mach/atmel_pio4.h
@@ -74,6 +74,7 @@ struct atmel_pio4_port {
 #define AT91_PIO_PORTB		0x1
 #define AT91_PIO_PORTC		0x2
 #define AT91_PIO_PORTD		0x3
+#define AT91_PIO_PORTE		0x4
 
 int atmel_pio4_set_gpio(u32 port, u32 pin, u32 config);
 int atmel_pio4_set_a_periph(u32 port, u32 pin, u32 config);
diff --git a/drivers/gpio/atmel_pio4.c b/drivers/gpio/atmel_pio4.c
index bea609db9d..77a76c1d50 100644
--- a/drivers/gpio/atmel_pio4.c
+++ b/drivers/gpio/atmel_pio4.c
@@ -36,6 +36,11 @@ static struct atmel_pio4_port *atmel_pio4_port_base(u32 port)
 	case AT91_PIO_PORTD:
 		base = (struct atmel_pio4_port *)ATMEL_BASE_PIOD;
 		break;
+#if (ATMEL_PIO_PORTS > 4)
+	case AT91_PIO_PORTE:
+		base = (struct atmel_pio4_port *)ATMEL_BASE_PIOE;
+		break;
+#endif
 	default:
 		printf("Error: Atmel PIO4: Failed to get PIO base of port#%d!\n",
 		       port);
-- 
2.39.5