Merge tag 'u-boot-atmel-fixes-2021.01-b' of https://gitlab.denx.de/u-boot/custodians...
[platform/kernel/u-boot.git] / arch / arm / include / asm / arch-sunxi / gpio.h
index f743a73..f817d32 100644 (file)
@@ -1,9 +1,8 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
 /*
  * (C) Copyright 2007-2012
  * Allwinner Technology Co., Ltd. <www.allwinnertech.com>
  * Tom Cubie <tangliang@allwinnertech.com>
- *
- * SPDX-License-Identifier:    GPL-2.0+
  */
 
 #ifndef _SUNXI_GPIO_H
@@ -74,6 +73,9 @@ struct sunxi_gpio_reg {
        struct sunxi_gpio_int gpio_int;
 };
 
+#define SUN50I_H6_GPIO_POW_MOD_SEL     0x340
+#define SUN50I_H6_GPIO_POW_MOD_VAL     0x348
+
 #define BANK_TO_GPIO(bank)     (((bank) < SUNXI_GPIO_L) ? \
        &((struct sunxi_gpio_reg *)SUNXI_PIO_BASE)->gpio_bank[bank] : \
        &((struct sunxi_gpio_reg *)SUNXI_R_PIO_BASE)->gpio_bank[(bank) - SUNXI_GPIO_L])
@@ -141,30 +143,44 @@ enum sunxi_gpio_number {
 /* GPIO pin function config */
 #define SUNXI_GPIO_INPUT       0
 #define SUNXI_GPIO_OUTPUT      1
+#define SUNXI_GPIO_DISABLE     7
 
 #define SUNXI_GPA_EMAC         2
 #define SUN6I_GPA_GMAC         2
 #define SUN7I_GPA_GMAC         5
 #define SUN6I_GPA_SDC2         5
 #define SUN6I_GPA_SDC3         4
+#define SUN8I_H3_GPA_UART0     2
 
+#define SUN4I_GPB_PWM          2
 #define SUN4I_GPB_TWI0         2
 #define SUN4I_GPB_TWI1         2
 #define SUN5I_GPB_TWI1         2
 #define SUN4I_GPB_TWI2         2
 #define SUN5I_GPB_TWI2         2
+#define SUN8I_V3S_GPB_TWI0     2
 #define SUN4I_GPB_UART0                2
 #define SUN5I_GPB_UART0                2
-
+#define SUN8I_GPB_UART2                2
+#define SUN8I_A33_GPB_UART0    3
+#define SUN8I_A83T_GPB_UART0   2
+#define SUN8I_V3S_GPB_UART0    3
+#define SUN50I_GPB_UART0       4
+
+#define SUNXI_GPC_NAND         2
+#define SUNXI_GPC_SPI0         3
 #define SUNXI_GPC_SDC2         3
 #define SUN6I_GPC_SDC3         4
+#define SUN50I_GPC_SPI0                4
 
 #define SUN8I_GPD_SDC1         3
 #define SUNXI_GPD_LCD0         2
 #define SUNXI_GPD_LVDS0                3
+#define SUNXI_GPD_PWM          2
 
 #define SUN5I_GPE_SDC2         3
 #define SUN8I_GPE_TWI2         3
+#define SUN50I_GPE_TWI2                3
 
 #define SUNXI_GPF_SDC0         2
 #define SUNXI_GPF_UART0                4
@@ -177,13 +193,19 @@ enum sunxi_gpio_number {
 #define SUN6I_GPG_TWI3         2
 #define SUN5I_GPG_UART1                4
 
+#define SUN6I_GPH_PWM          2
+#define SUN8I_GPH_PWM          2
 #define SUN4I_GPH_SDC1         5
 #define SUN6I_GPH_TWI0         2
 #define SUN8I_GPH_TWI0         2
+#define SUN50I_GPH_TWI0                2
 #define SUN6I_GPH_TWI1         2
 #define SUN8I_GPH_TWI1         2
+#define SUN50I_GPH_TWI1                2
 #define SUN6I_GPH_TWI2         2
 #define SUN6I_GPH_UART0                2
+#define SUN9I_GPH_UART0                2
+#define SUN50I_H6_GPH_UART0    2
 
 #define SUNXI_GPI_SDC3         2
 #define SUN7I_GPI_TWI3         3
@@ -193,7 +215,10 @@ enum sunxi_gpio_number {
 #define SUN6I_GPL1_R_P2WI_SDA  3
 
 #define SUN8I_GPL_R_RSB                2
+#define SUN8I_H3_GPL_R_TWI     2
+#define SUN8I_A23_GPL_R_TWI    3
 #define SUN8I_GPL_R_UART       2
+#define SUN50I_GPL_R_TWI       2
 
 #define SUN9I_GPN_R_RSB                3
 
@@ -203,8 +228,10 @@ enum sunxi_gpio_number {
 #define SUNXI_GPIO_PULL_DOWN   2
 
 /* Virtual AXP0 GPIOs */
-#define SUNXI_GPIO_AXP0_VBUS_DETECT    8
-#define SUNXI_GPIO_AXP0_VBUS_ENABLE    9
+#define SUNXI_GPIO_AXP0_PREFIX "AXP0-"
+#define SUNXI_GPIO_AXP0_VBUS_DETECT    4
+#define SUNXI_GPIO_AXP0_VBUS_ENABLE    5
+#define SUNXI_GPIO_AXP0_GPIO_COUNT     6
 
 void sunxi_gpio_set_cfgbank(struct sunxi_gpio *pio, int bank_offset, u32 val);
 void sunxi_gpio_set_cfgpin(u32 pin, u32 val);
@@ -222,11 +249,4 @@ int axp_gpio_init(void);
 static inline int axp_gpio_init(void) { return 0; }
 #endif
 
-struct udevice;
-
-int axp_gpio_direction_input(struct udevice *dev, unsigned offset);
-int axp_gpio_direction_output(struct udevice *dev, unsigned offset, int val);
-int axp_gpio_get_value(struct udevice *dev, unsigned offset);
-int axp_gpio_set_value(struct udevice *dev, unsigned offset, int val);
-
 #endif /* _SUNXI_GPIO_H */