1 /* 2 * Copyright (c) 2018-2019, Intel Corporation 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7 /** 8 * @file 9 * @brief GPIO macros for the Apollo Lake SoC 10 * 11 * This header file is used to specify the GPIO pins and macros for 12 * the Apollo Lake SoC. 13 */ 14 15 #ifndef __SOC_GPIO_H_ 16 #define __SOC_GPIO_H_ 17 18 #define REG_PAD_OWNER_BASE 0x0020 19 #define REG_GPI_INT_STS_BASE 0x0100 20 #define PAD_CFG0_PMODE_MASK (0x0F << 10) 21 22 #define APL_GPIO_DEV_N_0 DT_NODELABEL(gpio_n_000_031) 23 #define APL_GPIO_0 0 24 #define APL_GPIO_1 1 25 #define APL_GPIO_2 2 26 #define APL_GPIO_3 3 27 #define APL_GPIO_4 4 28 #define APL_GPIO_5 5 29 #define APL_GPIO_6 6 30 #define APL_GPIO_7 7 31 #define APL_GPIO_8 8 32 #define APL_GPIO_9 9 33 #define APL_GPIO_10 10 34 #define APL_GPIO_11 11 35 #define APL_GPIO_12 12 36 #define APL_GPIO_13 13 37 #define APL_GPIO_14 14 38 #define APL_GPIO_15 15 39 #define APL_GPIO_16 16 40 #define APL_GPIO_17 17 41 #define APL_GPIO_18 18 42 #define APL_GPIO_19 19 43 #define APL_GPIO_20 20 44 #define APL_GPIO_21 21 45 #define APL_GPIO_22 22 46 #define APL_GPIO_23 23 47 #define APL_GPIO_24 24 48 #define APL_GPIO_25 25 49 #define APL_GPIO_26 26 50 #define APL_GPIO_27 27 51 #define APL_GPIO_28 28 52 #define APL_GPIO_29 29 53 #define APL_GPIO_30 30 54 #define APL_GPIO_31 31 55 56 #define APL_GPIO_DEV_N_1 DT_NODELABEL(gpio_n_032_063) 57 #define APL_GPIO_32 0 58 #define APL_GPIO_33 1 59 #define APL_GPIO_34 2 60 #define APL_GPIO_35 3 61 #define APL_GPIO_36 4 62 #define APL_GPIO_37 5 63 #define APL_GPIO_38 6 64 #define APL_GPIO_39 7 65 #define APL_GPIO_40 8 66 #define APL_GPIO_41 9 67 #define APL_GPIO_42 10 68 #define APL_GPIO_43 11 69 #define APL_GPIO_44 12 70 #define APL_GPIO_45 13 71 #define APL_GPIO_46 14 72 #define APL_GPIO_47 15 73 #define APL_GPIO_48 16 74 #define APL_GPIO_49 17 75 #define APL_GPIO_62 18 76 #define APL_GPIO_63 19 77 #define APL_GPIO_64 20 78 #define APL_GPIO_65 21 79 #define APL_GPIO_66 22 80 #define APL_GPIO_67 23 81 #define APL_GPIO_68 24 82 #define APL_GPIO_69 25 83 #define APL_GPIO_70 26 84 #define APL_GPIO_71 27 85 #define APL_GPIO_72 28 86 #define APL_GPIO_73 29 87 #define APL_GPIO_TCK 30 88 #define APL_GPIO_TRST_B 31 89 90 #define APL_GPIO_DEV_N_2 DT_NODELABEL(gpio_n_064_077) 91 #define APL_GPIO_TMS 0 92 #define APL_GPIO_TDI 1 93 #define APL_GPIO_CX_PMODE 2 94 #define APL_GPIO_CX_PREQ_B 3 95 #define APL_GPIO_JTAGX 4 96 #define APL_GPIO_CX_PRDY_B 5 97 #define APL_GPIO_TDO 6 98 #define APL_GPIO_CNV_BRI_DT 7 99 #define APL_GPIO_CNV_BRI_RSP 8 100 #define APL_GPIO_CNV_RGI_DT 9 101 #define APL_GPIO_CNV_RGI_RSP 10 102 #define APL_GPIO_SVID0_ALERT_B 11 103 #define APL_GPIO_SVOD0_DATA 12 104 #define APL_GPIO_SVOD0_CLK 13 105 106 #define APL_GPIO_DEV_NW_0 DT_NODELABEL(gpio_nw_000_031) 107 #define APL_GPIO_187 0 108 #define APL_GPIO_188 1 109 #define APL_GPIO_189 2 110 #define APL_GPIO_190 3 111 #define APL_GPIO_191 4 112 #define APL_GPIO_192 5 113 #define APL_GPIO_193 6 114 #define APL_GPIO_194 7 115 #define APL_GPIO_195 8 116 #define APL_GPIO_196 9 117 #define APL_GPIO_197 10 118 #define APL_GPIO_198 11 119 #define APL_GPIO_199 12 120 #define APL_GPIO_200 13 121 #define APL_GPIO_201 14 122 #define APL_GPIO_202 15 123 #define APL_GPIO_203 16 124 #define APL_GPIO_204 17 125 #define APL_GPIO_PMC_SPI_FS0 18 126 #define APL_GPIO_PMC_SPI_FS1 19 127 #define APL_GPIO_PMC_SPI_FS2 20 128 #define APL_GPIO_PMC_SPI_RXD 21 129 #define APL_GPIO_PMC_SPI_TXC 22 130 #define APL_GPIO_PMC_SPI_CLK 23 131 #define APL_GPIO_PMIC_PWRGOOD 24 132 #define APL_GPIO_PMIC_RESET_B 25 133 #define APL_GPIO_213 26 134 #define APL_GPIO_214 27 135 #define APL_GPIO_215 28 136 #define APL_GPIO_PMIC_THERMTRIP_B 29 137 #define APL_GPIO_PMIC_STDBY 30 138 #define APL_GPIO_PROCHOT_B 31 139 140 #define APL_GPIO_DEV_NW_1 DT_NODELABEL(gpio_nw_032_063) 141 #define APL_GPIO_PMIC_I2C_SCL 0 142 #define APL_GPIO_PMIC_I2C_SDA 1 143 #define APL_GPIO_74 2 144 #define APL_GPIO_75 3 145 #define APL_GPIO_76 4 146 #define APL_GPIO_77 5 147 #define APL_GPIO_78 6 148 #define APL_GPIO_79 7 149 #define APL_GPIO_80 8 150 #define APL_GPIO_81 9 151 #define APL_GPIO_82 10 152 #define APL_GPIO_83 11 153 #define APL_GPIO_84 12 154 #define APL_GPIO_85 13 155 #define APL_GPIO_86 14 156 #define APL_GPIO_87 15 157 #define APL_GPIO_88 16 158 #define APL_GPIO_89 17 159 #define APL_GPIO_90 18 160 #define APL_GPIO_91 19 161 #define APL_GPIO_92 20 162 #define APL_GPIO_97 21 163 #define APL_GPIO_98 22 164 #define APL_GPIO_99 23 165 #define APL_GPIO_100 24 166 #define APL_GPIO_101 25 167 #define APL_GPIO_102 26 168 #define APL_GPIO_103 27 169 #define APL_GPIO_FST_SPI_CLK_FB 28 170 #define APL_GPIO_104 29 171 #define APL_GPIO_105 30 172 #define APL_GPIO_106 31 173 174 #define APL_GPIO_DEV_NW_2 DT_NODELABEL(gpio_nw_064_076) 175 #define APL_GPIO_109 0 176 #define APL_GPIO_110 1 177 #define APL_GPIO_111 2 178 #define APL_GPIO_112 3 179 #define APL_GPIO_113 4 180 #define APL_GPIO_116 5 181 #define APL_GPIO_117 6 182 #define APL_GPIO_118 7 183 #define APL_GPIO_119 8 184 #define APL_GPIO_120 9 185 #define APL_GPIO_121 10 186 #define APL_GPIO_122 11 187 #define APL_GPIO_123 12 188 189 #define APL_GPIO_DEV_W_0 DT_NODELABEL(gpio_w_000_031) 190 #define APL_GPIO_124 0 191 #define APL_GPIO_125 1 192 #define APL_GPIO_126 2 193 #define APL_GPIO_127 3 194 #define APL_GPIO_128 4 195 #define APL_GPIO_129 5 196 #define APL_GPIO_130 6 197 #define APL_GPIO_131 7 198 #define APL_GPIO_132 8 199 #define APL_GPIO_133 9 200 #define APL_GPIO_134 10 201 #define APL_GPIO_135 11 202 #define APL_GPIO_136 12 203 #define APL_GPIO_137 13 204 #define APL_GPIO_138 14 205 #define APL_GPIO_139 15 206 #define APL_GPIO_146 16 207 #define APL_GPIO_147 17 208 #define APL_GPIO_148 18 209 #define APL_GPIO_149 19 210 #define APL_GPIO_150 20 211 #define APL_GPIO_151 21 212 #define APL_GPIO_152 22 213 #define APL_GPIO_153 23 214 #define APL_GPIO_154 24 215 #define APL_GPIO_155 25 216 #define APL_GPIO_209 26 217 #define APL_GPIO_210 27 218 #define APL_GPIO_211 28 219 #define APL_GPIO_212 29 220 #define APL_GPIO_OSC_CLK_OUT_0 30 221 #define APL_GPIO_OSC_CLK_OUT_1 31 222 223 #define APL_GPIO_DEV_W_1 DT_NODELABEL(gpio_w_032_046) 224 #define APL_GPIO_OSC_CLK_OUT_2 0 225 #define APL_GPIO_OSC_CLK_OUT_3 1 226 #define APL_GPIO_OSC_CLK_OUT_4 2 227 #define APL_GPIO_PMU_AC_PRESENT 3 228 #define APL_GPIO_PMU_BATLOW_B 4 229 #define APL_GPIO_PMU_PLTRST_B 5 230 #define APL_GPIO_PMU_PWRBTN_B 6 231 #define APL_GPIO_PMU_RESETBUTTON_B 7 232 #define APL_GPIO_PMU_SLP_S0_B 8 233 #define APL_GPIO_PMU_SLP_S3_B 9 234 #define APL_GPIO_PMU_SLP_S4_B 10 235 #define APL_GPIO_PMU_SUSCLK 11 236 #define APL_GPIO_PMU_WAKE_B 12 237 #define APL_GPIO_SUS_STAT_B 13 238 #define APL_GPIO_SUSPWRDNACK 14 239 240 #define APL_GPIO_DEV_SW_0 DT_NODELABEL(gpio_sw_000_031) 241 #define APL_GPIO_205 0 242 #define APL_GPIO_206 1 243 #define APL_GPIO_207 2 244 #define APL_GPIO_208 3 245 #define APL_GPIO_156 4 246 #define APL_GPIO_157 5 247 #define APL_GPIO_158 6 248 #define APL_GPIO_159 7 249 #define APL_GPIO_160 8 250 #define APL_GPIO_161 9 251 #define APL_GPIO_162 10 252 #define APL_GPIO_163 11 253 #define APL_GPIO_164 12 254 #define APL_GPIO_165 13 255 #define APL_GPIO_166 14 256 #define APL_GPIO_167 15 257 #define APL_GPIO_168 16 258 #define APL_GPIO_169 17 259 #define APL_GPIO_170 18 260 #define APL_GPIO_171 19 261 #define APL_GPIO_172 20 262 #define APL_GPIO_179 21 263 #define APL_GPIO_173 22 264 #define APL_GPIO_174 23 265 #define APL_GPIO_175 24 266 #define APL_GPIO_176 25 267 #define APL_GPIO_177 26 268 #define APL_GPIO_178 27 269 #define APL_GPIO_186 28 270 #define APL_GPIO_182 29 271 #define APL_GPIO_183 30 272 #define APL_GPIO_SMB_ALERTB 31 273 274 #define APL_GPIO_DEV_SW_1 DT_NODELABEL(gpio_sw_032_042) 275 #define APL_GPIO_SMB_CLK 0 276 #define APL_GPIO_SMB_DATA 1 277 #define APL_GPIO_LPC_ILB_SERIRQ 2 278 #define APL_GPIO_LPC_CLKOUT0 3 279 #define APL_GPIO_LPC_CLKOUT1 4 280 #define APL_GPIO_LPC_AD0 5 281 #define APL_GPIO_LPC_AD1 6 282 #define APL_GPIO_LPC_AD2 7 283 #define APL_GPIO_LPC_AD3 8 284 #define APL_GPIO_LPC_CLKRUNB 9 285 #define APL_GPIO_LPC_FRAMEB 10 286 287 #define GPIO_INTEL_NR_SUBDEVS 10 288 289 #define REG_PAD_BASE_ADDR 0x000C 290 #define REG_GPI_INT_EN_BASE 0x0110 291 #define REG_PAD_HOST_SW_OWNER 0x0080 292 293 #define GPIO_REG_BASE(reg_base) reg_base 294 295 #define GPIO_PAD_BASE(reg_base) \ 296 (sys_read32(reg_base + REG_PAD_BASE_ADDR)) 297 298 #define GPIO_PAD_OWNERSHIP(raw_pin, pin_offset) \ 299 REG_PAD_OWNER_BASE + ((raw_pin >> 3) << 2) 300 301 #define GPIO_OWNERSHIP_BIT(raw_pin) (raw_pin % 8) 302 303 #define GPIO_RAW_PIN(pin, pin_offset) (pin_offset + pin) 304 305 #define GPIO_INTERRUPT_BASE(cfg) \ 306 ((cfg->pin_offset >> 5) << 2) 307 308 #define GPIO_BASE(cfg) 0 309 310 #define PIN_OFFSET 8U 311 312 #endif /* __SOC_GPIO_H_ */ 313