1 /* 2 * Copyright (c) 2019-2025 Allwinner Technology Co., Ltd. ALL rights reserved. 3 * 4 * Allwinner is a trademark of Allwinner Technology Co.,Ltd., registered in 5 * the the People's Republic of China and other countries. 6 * All Allwinner Technology Co.,Ltd. trademarks are used with permission. 7 * 8 * DISCLAIMER 9 * THIRD PARTY LICENCES MAY BE REQUIRED TO IMPLEMENT THE SOLUTION/PRODUCT. 10 * IF YOU NEED TO INTEGRATE THIRD PARTY’S TECHNOLOGY (SONY, DTS, DOLBY, AVS OR MPEGLA, ETC.) 11 * IN ALLWINNERS’SDK OR PRODUCTS, YOU SHALL BE SOLELY RESPONSIBLE TO OBTAIN 12 * ALL APPROPRIATELY REQUIRED THIRD PARTY LICENCES. 13 * ALLWINNER SHALL HAVE NO WARRANTY, INDEMNITY OR OTHER OBLIGATIONS WITH RESPECT TO MATTERS 14 * COVERED UNDER ANY REQUIRED THIRD PARTY LICENSE. 15 * YOU ARE SOLELY RESPONSIBLE FOR YOUR USAGE OF THIRD PARTY’S TECHNOLOGY. 16 * 17 * 18 * THIS SOFTWARE IS PROVIDED BY ALLWINNER"AS IS" AND TO THE MAXIMUM EXTENT 19 * PERMITTED BY LAW, ALLWINNER EXPRESSLY DISCLAIMS ALL WARRANTIES OF ANY KIND, 20 * WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING WITHOUT LIMITATION REGARDING 21 * THE TITLE, NON-INFRINGEMENT, ACCURACY, CONDITION, COMPLETENESS, PERFORMANCE 22 * OR MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 23 * IN NO EVENT SHALL ALLWINNER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 24 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 25 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 26 * LOSS OF USE, DATA, OR PROFITS, OR BUSINESS INTERRUPTION) 27 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 28 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 29 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 30 * OF THE POSSIBILITY OF SUCH DAMAGE. 31 */ 32 33 #ifndef __PLATFORM_GPIO_H__ 34 #define __PLATFORM_GPIO_H__ 35 36 #ifdef __cplusplus 37 extern "C" { 38 #endif 39 40 #define GPIO_MAX_BANK PL_BASE 41 #define BANK_BOUNDARY PL_BASE 42 #define SUNXI_GPIO_PBASE 0x0300B000 43 #define SUXNI_GPIO_R_PBASE 0x07022000 44 45 /* sunxi gpio irq*/ 46 #define SUNXI_GIC_START 32 47 #define SUNXI_IRQ_GPIOC (SUNXI_GIC_START + 67) 48 #define SUNXI_IRQ_GPIOD (SUNXI_GIC_START + 68) 49 #define SUNXI_IRQ_GPIOE (SUNXI_GIC_START + 69) 50 #define SUNXI_IRQ_GPIOF (SUNXI_GIC_START + 70) 51 #define SUNXI_IRQ_GPIOG (SUNXI_GIC_START + 71) 52 #define SUNXI_IRQ_GPIOH (SUNXI_GIC_START + 72) 53 #define SUNXI_IRQ_GPIOI (SUNXI_GIC_START + 73) 54 #define SUNXI_IRQ_R_GPIOL (SUNXI_GIC_START + 106) 55 56 typedef enum 57 { 58 GPIO_PC0 = GPIOC(0), 59 GPIO_PC1 = GPIOC(1), 60 GPIO_PC2 = GPIOC(2), 61 GPIO_PC3 = GPIOC(3), 62 GPIO_PC4 = GPIOC(4), 63 GPIO_PC5 = GPIOC(5), 64 GPIO_PC6 = GPIOC(6), 65 GPIO_PC7 = GPIOC(7), 66 GPIO_PC8 = GPIOC(8), 67 GPIO_PC9 = GPIOC(9), 68 GPIO_PC10 = GPIOC(10), 69 GPIO_PC11 = GPIOC(11), 70 71 GPIO_PD0 = GPIOD(0), 72 GPIO_PD1 = GPIOD(1), 73 GPIO_PD2 = GPIOD(2), 74 GPIO_PD3 = GPIOD(3), 75 GPIO_PD4 = GPIOD(4), 76 GPIO_PD5 = GPIOD(5), 77 GPIO_PD6 = GPIOD(6), 78 GPIO_PD7 = GPIOD(7), 79 GPIO_PD8 = GPIOD(8), 80 GPIO_PD9 = GPIOD(9), 81 GPIO_PD10 = GPIOD(10), 82 GPIO_PD11 = GPIOD(11), 83 GPIO_PD12 = GPIOD(12), 84 GPIO_PD13 = GPIOD(13), 85 GPIO_PD14 = GPIOD(14), 86 GPIO_PD15 = GPIOD(15), 87 GPIO_PD16 = GPIOD(16), 88 GPIO_PD17 = GPIOD(17), 89 GPIO_PD18 = GPIOD(18), 90 GPIO_PD19 = GPIOD(19), 91 GPIO_PD20 = GPIOD(20), 92 GPIO_PD21 = GPIOD(21), 93 GPIO_PD22 = GPIOD(22), 94 95 GPIO_PE0 = GPIOE(0), 96 GPIO_PE1 = GPIOE(1), 97 GPIO_PE2 = GPIOE(2), 98 GPIO_PE3 = GPIOE(3), 99 GPIO_PE4 = GPIOE(4), 100 GPIO_PE5 = GPIOE(5), 101 GPIO_PE6 = GPIOE(6), 102 GPIO_PE7 = GPIOE(7), 103 GPIO_PE8 = GPIOE(8), 104 GPIO_PE9 = GPIOE(9), 105 GPIO_PE10 = GPIOE(10), 106 GPIO_PE11 = GPIOE(11), 107 GPIO_PE12 = GPIOE(12), 108 GPIO_PE13 = GPIOE(13), 109 GPIO_PE14 = GPIOE(14), 110 GPIO_PE15 = GPIOE(15), 111 GPIO_PE16 = GPIOE(16), 112 GPIO_PE17 = GPIOE(17), 113 GPIO_PE18 = GPIOE(18), 114 GPIO_PE19 = GPIOE(19), 115 GPIO_PE20 = GPIOE(20), 116 GPIO_PE21 = GPIOE(21), 117 118 GPIO_PF0 = GPIOF(0), 119 GPIO_PF1 = GPIOF(1), 120 GPIO_PF2 = GPIOF(2), 121 GPIO_PF3 = GPIOF(3), 122 GPIO_PF4 = GPIOF(4), 123 GPIO_PF5 = GPIOF(5), 124 GPIO_PF6 = GPIOF(6), 125 126 GPIO_PG0 = GPIOG(0), 127 GPIO_PG1 = GPIOG(1), 128 GPIO_PG2 = GPIOG(2), 129 GPIO_PG3 = GPIOG(3), 130 GPIO_PG4 = GPIOG(4), 131 GPIO_PG5 = GPIOG(5), 132 GPIO_PG6 = GPIOG(6), 133 GPIO_PG7 = GPIOG(7), 134 135 GPIO_PH0 = GPIOH(0), 136 GPIO_PH1 = GPIOH(1), 137 GPIO_PH2 = GPIOH(2), 138 GPIO_PH3 = GPIOH(3), 139 GPIO_PH4 = GPIOH(4), 140 GPIO_PH5 = GPIOH(5), 141 GPIO_PH6 = GPIOH(6), 142 GPIO_PH7 = GPIOH(7), 143 GPIO_PH8 = GPIOH(8), 144 GPIO_PH9 = GPIOH(9), 145 GPIO_PH10 = GPIOH(10), 146 GPIO_PH11 = GPIOH(11), 147 GPIO_PH12 = GPIOH(12), 148 GPIO_PH13 = GPIOH(13), 149 GPIO_PH14 = GPIOH(14), 150 GPIO_PH15 = GPIOH(15), 151 152 GPIO_PI0 = GPIOI(0), 153 GPIO_PI1 = GPIOI(1), 154 GPIO_PI2 = GPIOI(2), 155 GPIO_PI3 = GPIOI(3), 156 GPIO_PI4 = GPIOI(4), 157 GPIO_PI5 = GPIOI(5), 158 159 GPIO_PL0 = GPIOL(0), 160 GPIO_PL1 = GPIOL(1), 161 GPIO_PL2 = GPIOL(2), 162 GPIO_PL3 = GPIOL(3), 163 GPIO_PL4 = GPIOL(4), 164 GPIO_PL5 = GPIOL(5), 165 } gpio_pin_t; 166 167 #ifdef __cplusplus 168 } 169 #endif 170 #endif /* __PLATFORM_GPIO_H__ */ 171