]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - arch/arm/include/asm/arch-at91/gpio.h
at91 gpio: fix typo in compatibility macro
[karo-tx-uboot.git] / arch / arm / include / asm / arch-at91 / gpio.h
index 716f81fa3c2f821a72363ddc08c7b78c19ea7a41..71213883d7b7098c52bc22564a41552967932e94 100644 (file)
@@ -3,11 +3,7 @@
  *
  *  Copyright (C) 2005 HP Labs
  *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
+ * SPDX-License-Identifier:    GPL-2.0+
  */
 
 #ifndef __ASM_ARCH_AT91_GPIO_H
@@ -18,9 +14,9 @@
 #include <asm/arch/at91_pio.h>
 #include <asm/arch/hardware.h>
 
-#ifdef CONFIG_AT91_LEGACY
+#ifdef CONFIG_ATMEL_LEGACY
 
-#define PIN_BASE               32
+#define PIN_BASE               0
 
 #define MAX_GPIO_BANKS         5
 
 #define        AT91_PIN_PE31   (PIN_BASE + 0x80 + 31)
 
 static unsigned long at91_pios[] = {
-       AT91_PIOA,
-       AT91_PIOB,
-       AT91_PIOC,
-#ifdef AT91_PIOD
-       AT91_PIOD,
-#ifdef AT91_PIOE
-       AT91_PIOE
+       ATMEL_BASE_PIOA,
+       ATMEL_BASE_PIOB,
+       ATMEL_BASE_PIOC,
+#ifdef ATMEL_BASE_PIOD
+       ATMEL_BASE_PIOD,
+#ifdef ATMEL_BASE_PIOE
+       ATMEL_BASE_PIOE
 #endif
 #endif
 };
@@ -207,7 +203,7 @@ static inline void *pin_to_controller(unsigned pin)
 {
        pin -= PIN_BASE;
        pin /= 32;
-       return (void *)(AT91_BASE_SYS + at91_pios[pin]);
+       return (void *)(at91_pios[pin]);
 }
 
 static inline unsigned pin_to_mask(unsigned pin)
@@ -218,7 +214,7 @@ static inline unsigned pin_to_mask(unsigned pin)
 
 /* The following macros are need for backward compatibility */
 #define at91_set_GPIO_periph(x, y) \
-       at91_set_gpio_periph((x - PIN_BASE) / 32,(x % 32), y)
+       at91_set_pio_periph((x - PIN_BASE) / 32,(x % 32), y)
 #define at91_set_A_periph(x, y) \
        at91_set_a_periph((x - PIN_BASE) / 32,(x % 32), y)
 #define at91_set_B_periph(x, y) \
@@ -235,4 +231,26 @@ static inline unsigned pin_to_mask(unsigned pin)
 #define at91_set_gpio_value(x, y)      at91_set_pio_value(x, y)
 #define at91_get_gpio_value(x)         at91_get_pio_value(x)
 #endif
-#endif
+
+#define GPIO_PIOA_BASE  (0)
+#define GPIO_PIOB_BASE  (GPIO_PIOA_BASE + 32)
+#define GPIO_PIOC_BASE  (GPIO_PIOB_BASE + 32)
+#define GPIO_PIOD_BASE  (GPIO_PIOC_BASE + 32)
+#define GPIO_PIOE_BASE  (GPIO_PIOD_BASE + 32)
+#define GPIO_PIN_PA(x)  (GPIO_PIOA_BASE + (x))
+#define GPIO_PIN_PB(x)  (GPIO_PIOB_BASE + (x))
+#define GPIO_PIN_PC(x)  (GPIO_PIOC_BASE + (x))
+#define GPIO_PIN_PD(x)  (GPIO_PIOD_BASE + (x))
+#define GPIO_PIN_PE(x)  (GPIO_PIOE_BASE + (x))
+
+static inline unsigned at91_gpio_to_port(unsigned gpio)
+{
+       return gpio / 32;
+}
+
+static inline unsigned at91_gpio_to_pin(unsigned gpio)
+{
+       return gpio % 32;
+}
+
+#endif /* __ASM_ARCH_AT91_GPIO_H */