1 // SPDX-License-Identifier: GPL-2.0 2 /* 3 * Sophgo SG2042 SoC pinctrl driver. 4 * 5 * Copyright (C) 2024 Inochi Amaoto <inochiama@outlook.com> 6 */ 7 8 #include <linux/module.h> 9 #include <linux/platform_device.h> 10 #include <linux/of.h> 11 12 #include <linux/pinctrl/pinctrl.h> 13 #include <linux/pinctrl/pinmux.h> 14 15 #include <dt-bindings/pinctrl/pinctrl-sg2042.h> 16 17 #include "pinctrl-sg2042.h" 18 19 static int sg2042_get_pull_up(const struct sophgo_pin *sp, const u32 *psmap) 20 { 21 return 35000; 22 } 23 24 static int sg2042_get_pull_down(const struct sophgo_pin *sp, const u32 *psmap) 25 { 26 return 28000; 27 } 28 29 static const u32 sg2042_oc_map[] = { 30 5400, 8100, 10700, 13400, 31 16100, 18800, 21400, 24100, 32 26800, 29400, 32100, 34800, 33 37400, 40100, 42800, 45400 34 }; 35 36 static int sg2042_get_oc_map(const struct sophgo_pin *sp, const u32 *psmap, 37 const u32 **map) 38 { 39 *map = sg2042_oc_map; 40 return ARRAY_SIZE(sg2042_oc_map); 41 } 42 43 static const struct sophgo_vddio_cfg_ops sg2042_vddio_cfg_ops = { 44 .get_pull_up = sg2042_get_pull_up, 45 .get_pull_down = sg2042_get_pull_down, 46 .get_oc_map = sg2042_get_oc_map, 47 }; 48 49 static const struct pinctrl_pin_desc sg2042_pins[] = { 50 PINCTRL_PIN(PIN_LPC_LCLK, "lpc_lclk"), 51 PINCTRL_PIN(PIN_LPC_LFRAME, "lpc_lframe"), 52 PINCTRL_PIN(PIN_LPC_LAD0, "lpc_lad0"), 53 PINCTRL_PIN(PIN_LPC_LAD1, "lpc_lad1"), 54 PINCTRL_PIN(PIN_LPC_LAD2, "lpc_lad2"), 55 PINCTRL_PIN(PIN_LPC_LAD3, "lpc_lad3"), 56 PINCTRL_PIN(PIN_LPC_LDRQ0, "lpc_ldrq0"), 57 PINCTRL_PIN(PIN_LPC_LDRQ1, "lpc_ldrq1"), 58 PINCTRL_PIN(PIN_LPC_SERIRQ, "lpc_serirq"), 59 PINCTRL_PIN(PIN_LPC_CLKRUN, "lpc_clkrun"), 60 PINCTRL_PIN(PIN_LPC_LPME, "lpc_lpme"), 61 PINCTRL_PIN(PIN_LPC_LPCPD, "lpc_lpcpd"), 62 PINCTRL_PIN(PIN_LPC_LSMI, "lpc_lsmi"), 63 PINCTRL_PIN(PIN_PCIE0_L0_RESET, "pcie0_l0_reset"), 64 PINCTRL_PIN(PIN_PCIE0_L1_RESET, "pcie0_l1_reset"), 65 PINCTRL_PIN(PIN_PCIE0_L0_WAKEUP, "pcie0_l0_wakeup"), 66 PINCTRL_PIN(PIN_PCIE0_L1_WAKEUP, "pcie0_l1_wakeup"), 67 PINCTRL_PIN(PIN_PCIE0_L0_CLKREQ_IN, "pcie0_l0_clkreq_in"), 68 PINCTRL_PIN(PIN_PCIE0_L1_CLKREQ_IN, "pcie0_l1_clkreq_in"), 69 PINCTRL_PIN(PIN_PCIE1_L0_RESET, "pcie1_l0_reset"), 70 PINCTRL_PIN(PIN_PCIE1_L1_RESET, "pcie1_l1_reset"), 71 PINCTRL_PIN(PIN_PCIE1_L0_WAKEUP, "pcie1_l0_wakeup"), 72 PINCTRL_PIN(PIN_PCIE1_L1_WAKEUP, "pcie1_l1_wakeup"), 73 PINCTRL_PIN(PIN_PCIE1_L0_CLKREQ_IN, "pcie1_l0_clkreq_in"), 74 PINCTRL_PIN(PIN_PCIE1_L1_CLKREQ_IN, "pcie1_l1_clkreq_in"), 75 PINCTRL_PIN(PIN_SPIF0_CLK_SEL1, "spif0_clk_sel1"), 76 PINCTRL_PIN(PIN_SPIF0_CLK_SEL0, "spif0_clk_sel0"), 77 PINCTRL_PIN(PIN_SPIF0_WP, "spif0_wp"), 78 PINCTRL_PIN(PIN_SPIF0_HOLD, "spif0_hold"), 79 PINCTRL_PIN(PIN_SPIF0_SDI, "spif0_sdi"), 80 PINCTRL_PIN(PIN_SPIF0_CS, "spif0_cs"), 81 PINCTRL_PIN(PIN_SPIF0_SCK, "spif0_sck"), 82 PINCTRL_PIN(PIN_SPIF0_SDO, "spif0_sdo"), 83 PINCTRL_PIN(PIN_SPIF1_CLK_SEL1, "spif1_clk_sel1"), 84 PINCTRL_PIN(PIN_SPIF1_CLK_SEL0, "spif1_clk_sel0"), 85 PINCTRL_PIN(PIN_SPIF1_WP, "spif1_wp"), 86 PINCTRL_PIN(PIN_SPIF1_HOLD, "spif1_hold"), 87 PINCTRL_PIN(PIN_SPIF1_SDI, "spif1_sdi"), 88 PINCTRL_PIN(PIN_SPIF1_CS, "spif1_cs"), 89 PINCTRL_PIN(PIN_SPIF1_SCK, "spif1_sck"), 90 PINCTRL_PIN(PIN_SPIF1_SDO, "spif1_sdo"), 91 PINCTRL_PIN(PIN_EMMC_WP, "emmc_wp"), 92 PINCTRL_PIN(PIN_EMMC_CD, "emmc_cd"), 93 PINCTRL_PIN(PIN_EMMC_RST, "emmc_rst"), 94 PINCTRL_PIN(PIN_EMMC_PWR_EN, "emmc_pwr_en"), 95 PINCTRL_PIN(PIN_SDIO_CD, "sdio_cd"), 96 PINCTRL_PIN(PIN_SDIO_WP, "sdio_wp"), 97 PINCTRL_PIN(PIN_SDIO_RST, "sdio_rst"), 98 PINCTRL_PIN(PIN_SDIO_PWR_EN, "sdio_pwr_en"), 99 PINCTRL_PIN(PIN_RGMII0_TXD0, "rgmii0_txd0"), 100 PINCTRL_PIN(PIN_RGMII0_TXD1, "rgmii0_txd1"), 101 PINCTRL_PIN(PIN_RGMII0_TXD2, "rgmii0_txd2"), 102 PINCTRL_PIN(PIN_RGMII0_TXD3, "rgmii0_txd3"), 103 PINCTRL_PIN(PIN_RGMII0_TXCTRL, "rgmii0_txctrl"), 104 PINCTRL_PIN(PIN_RGMII0_RXD0, "rgmii0_rxd0"), 105 PINCTRL_PIN(PIN_RGMII0_RXD1, "rgmii0_rxd1"), 106 PINCTRL_PIN(PIN_RGMII0_RXD2, "rgmii0_rxd2"), 107 PINCTRL_PIN(PIN_RGMII0_RXD3, "rgmii0_rxd3"), 108 PINCTRL_PIN(PIN_RGMII0_RXCTRL, "rgmii0_rxctrl"), 109 PINCTRL_PIN(PIN_RGMII0_TXC, "rgmii0_txc"), 110 PINCTRL_PIN(PIN_RGMII0_RXC, "rgmii0_rxc"), 111 PINCTRL_PIN(PIN_RGMII0_REFCLKO, "rgmii0_refclko"), 112 PINCTRL_PIN(PIN_RGMII0_IRQ, "rgmii0_irq"), 113 PINCTRL_PIN(PIN_RGMII0_MDC, "rgmii0_mdc"), 114 PINCTRL_PIN(PIN_RGMII0_MDIO, "rgmii0_mdio"), 115 PINCTRL_PIN(PIN_PWM0, "pwm0"), 116 PINCTRL_PIN(PIN_PWM1, "pwm1"), 117 PINCTRL_PIN(PIN_PWM2, "pwm2"), 118 PINCTRL_PIN(PIN_PWM3, "pwm3"), 119 PINCTRL_PIN(PIN_FAN0, "fan0"), 120 PINCTRL_PIN(PIN_FAN1, "fan1"), 121 PINCTRL_PIN(PIN_FAN2, "fan2"), 122 PINCTRL_PIN(PIN_FAN3, "fan3"), 123 PINCTRL_PIN(PIN_IIC0_SDA, "iic0_sda"), 124 PINCTRL_PIN(PIN_IIC0_SCL, "iic0_scl"), 125 PINCTRL_PIN(PIN_IIC1_SDA, "iic1_sda"), 126 PINCTRL_PIN(PIN_IIC1_SCL, "iic1_scl"), 127 PINCTRL_PIN(PIN_IIC2_SDA, "iic2_sda"), 128 PINCTRL_PIN(PIN_IIC2_SCL, "iic2_scl"), 129 PINCTRL_PIN(PIN_IIC3_SDA, "iic3_sda"), 130 PINCTRL_PIN(PIN_IIC3_SCL, "iic3_scl"), 131 PINCTRL_PIN(PIN_UART0_TX, "uart0_tx"), 132 PINCTRL_PIN(PIN_UART0_RX, "uart0_rx"), 133 PINCTRL_PIN(PIN_UART0_RTS, "uart0_rts"), 134 PINCTRL_PIN(PIN_UART0_CTS, "uart0_cts"), 135 PINCTRL_PIN(PIN_UART1_TX, "uart1_tx"), 136 PINCTRL_PIN(PIN_UART1_RX, "uart1_rx"), 137 PINCTRL_PIN(PIN_UART1_RTS, "uart1_rts"), 138 PINCTRL_PIN(PIN_UART1_CTS, "uart1_cts"), 139 PINCTRL_PIN(PIN_UART2_TX, "uart2_tx"), 140 PINCTRL_PIN(PIN_UART2_RX, "uart2_rx"), 141 PINCTRL_PIN(PIN_UART2_RTS, "uart2_rts"), 142 PINCTRL_PIN(PIN_UART2_CTS, "uart2_cts"), 143 PINCTRL_PIN(PIN_UART3_TX, "uart3_tx"), 144 PINCTRL_PIN(PIN_UART3_RX, "uart3_rx"), 145 PINCTRL_PIN(PIN_UART3_RTS, "uart3_rts"), 146 PINCTRL_PIN(PIN_UART3_CTS, "uart3_cts"), 147 PINCTRL_PIN(PIN_SPI0_CS0, "spi0_cs0"), 148 PINCTRL_PIN(PIN_SPI0_CS1, "spi0_cs1"), 149 PINCTRL_PIN(PIN_SPI0_SDI, "spi0_sdi"), 150 PINCTRL_PIN(PIN_SPI0_SDO, "spi0_sdo"), 151 PINCTRL_PIN(PIN_SPI0_SCK, "spi0_sck"), 152 PINCTRL_PIN(PIN_SPI1_CS0, "spi1_cs0"), 153 PINCTRL_PIN(PIN_SPI1_CS1, "spi1_cs1"), 154 PINCTRL_PIN(PIN_SPI1_SDI, "spi1_sdi"), 155 PINCTRL_PIN(PIN_SPI1_SDO, "spi1_sdo"), 156 PINCTRL_PIN(PIN_SPI1_SCK, "spi1_sck"), 157 PINCTRL_PIN(PIN_JTAG0_TDO, "jtag0_tdo"), 158 PINCTRL_PIN(PIN_JTAG0_TCK, "jtag0_tck"), 159 PINCTRL_PIN(PIN_JTAG0_TDI, "jtag0_tdi"), 160 PINCTRL_PIN(PIN_JTAG0_TMS, "jtag0_tms"), 161 PINCTRL_PIN(PIN_JTAG0_TRST, "jtag0_trst"), 162 PINCTRL_PIN(PIN_JTAG0_SRST, "jtag0_srst"), 163 PINCTRL_PIN(PIN_JTAG1_TDO, "jtag1_tdo"), 164 PINCTRL_PIN(PIN_JTAG1_TCK, "jtag1_tck"), 165 PINCTRL_PIN(PIN_JTAG1_TDI, "jtag1_tdi"), 166 PINCTRL_PIN(PIN_JTAG1_TMS, "jtag1_tms"), 167 PINCTRL_PIN(PIN_JTAG1_TRST, "jtag1_trst"), 168 PINCTRL_PIN(PIN_JTAG1_SRST, "jtag1_srst"), 169 PINCTRL_PIN(PIN_JTAG2_TDO, "jtag2_tdo"), 170 PINCTRL_PIN(PIN_JTAG2_TCK, "jtag2_tck"), 171 PINCTRL_PIN(PIN_JTAG2_TDI, "jtag2_tdi"), 172 PINCTRL_PIN(PIN_JTAG2_TMS, "jtag2_tms"), 173 PINCTRL_PIN(PIN_JTAG2_TRST, "jtag2_trst"), 174 PINCTRL_PIN(PIN_JTAG2_SRST, "jtag2_srst"), 175 PINCTRL_PIN(PIN_GPIO0, "gpio0"), 176 PINCTRL_PIN(PIN_GPIO1, "gpio1"), 177 PINCTRL_PIN(PIN_GPIO2, "gpio2"), 178 PINCTRL_PIN(PIN_GPIO3, "gpio3"), 179 PINCTRL_PIN(PIN_GPIO4, "gpio4"), 180 PINCTRL_PIN(PIN_GPIO5, "gpio5"), 181 PINCTRL_PIN(PIN_GPIO6, "gpio6"), 182 PINCTRL_PIN(PIN_GPIO7, "gpio7"), 183 PINCTRL_PIN(PIN_GPIO8, "gpio8"), 184 PINCTRL_PIN(PIN_GPIO9, "gpio9"), 185 PINCTRL_PIN(PIN_GPIO10, "gpio10"), 186 PINCTRL_PIN(PIN_GPIO11, "gpio11"), 187 PINCTRL_PIN(PIN_GPIO12, "gpio12"), 188 PINCTRL_PIN(PIN_GPIO13, "gpio13"), 189 PINCTRL_PIN(PIN_GPIO14, "gpio14"), 190 PINCTRL_PIN(PIN_GPIO15, "gpio15"), 191 PINCTRL_PIN(PIN_GPIO16, "gpio16"), 192 PINCTRL_PIN(PIN_GPIO17, "gpio17"), 193 PINCTRL_PIN(PIN_GPIO18, "gpio18"), 194 PINCTRL_PIN(PIN_GPIO19, "gpio19"), 195 PINCTRL_PIN(PIN_GPIO20, "gpio20"), 196 PINCTRL_PIN(PIN_GPIO21, "gpio21"), 197 PINCTRL_PIN(PIN_GPIO22, "gpio22"), 198 PINCTRL_PIN(PIN_GPIO23, "gpio23"), 199 PINCTRL_PIN(PIN_GPIO24, "gpio24"), 200 PINCTRL_PIN(PIN_GPIO25, "gpio25"), 201 PINCTRL_PIN(PIN_GPIO26, "gpio26"), 202 PINCTRL_PIN(PIN_GPIO27, "gpio27"), 203 PINCTRL_PIN(PIN_GPIO28, "gpio28"), 204 PINCTRL_PIN(PIN_GPIO29, "gpio29"), 205 PINCTRL_PIN(PIN_GPIO30, "gpio30"), 206 PINCTRL_PIN(PIN_GPIO31, "gpio31"), 207 PINCTRL_PIN(PIN_MODE_SEL0, "mode_sel0"), 208 PINCTRL_PIN(PIN_MODE_SEL1, "mode_sel1"), 209 PINCTRL_PIN(PIN_MODE_SEL2, "mode_sel2"), 210 PINCTRL_PIN(PIN_BOOT_SEL0, "boot_sel0"), 211 PINCTRL_PIN(PIN_BOOT_SEL1, "boot_sel1"), 212 PINCTRL_PIN(PIN_BOOT_SEL2, "boot_sel2"), 213 PINCTRL_PIN(PIN_BOOT_SEL3, "boot_sel3"), 214 PINCTRL_PIN(PIN_BOOT_SEL4, "boot_sel4"), 215 PINCTRL_PIN(PIN_BOOT_SEL5, "boot_sel5"), 216 PINCTRL_PIN(PIN_BOOT_SEL6, "boot_sel6"), 217 PINCTRL_PIN(PIN_BOOT_SEL7, "boot_sel7"), 218 PINCTRL_PIN(PIN_MULTI_SCKT, "multi_sckt"), 219 PINCTRL_PIN(PIN_SCKT_ID0, "sckt_id0"), 220 PINCTRL_PIN(PIN_SCKT_ID1, "sckt_id1"), 221 PINCTRL_PIN(PIN_PLL_CLK_IN_MAIN, "pll_clk_in_main"), 222 PINCTRL_PIN(PIN_PLL_CLK_IN_DDR_L, "pll_clk_in_ddr_l"), 223 PINCTRL_PIN(PIN_PLL_CLK_IN_DDR_R, "pll_clk_in_ddr_r"), 224 PINCTRL_PIN(PIN_XTAL_32K, "xtal_32k"), 225 PINCTRL_PIN(PIN_SYS_RST, "sys_rst"), 226 PINCTRL_PIN(PIN_PWR_BUTTON, "pwr_button"), 227 PINCTRL_PIN(PIN_TEST_EN, "test_en"), 228 PINCTRL_PIN(PIN_TEST_MODE_MBIST, "test_mode_mbist"), 229 PINCTRL_PIN(PIN_TEST_MODE_SCAN, "test_mode_scan"), 230 PINCTRL_PIN(PIN_TEST_MODE_BSD, "test_mode_bsd"), 231 PINCTRL_PIN(PIN_BISR_BYP, "bisr_byp"), 232 }; 233 234 static const struct sg2042_pin sg2042_pin_data[ARRAY_SIZE(sg2042_pins)] = { 235 SG2042_GENERAL_PIN(PIN_LPC_LCLK, 0x000, 236 PIN_FLAG_ONLY_ONE_PULL), 237 SG2042_GENERAL_PIN(PIN_LPC_LFRAME, 0x000, 238 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 239 SG2042_GENERAL_PIN(PIN_LPC_LAD0, 0x004, 240 PIN_FLAG_ONLY_ONE_PULL), 241 SG2042_GENERAL_PIN(PIN_LPC_LAD1, 0x004, 242 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 243 SG2042_GENERAL_PIN(PIN_LPC_LAD2, 0x008, 244 PIN_FLAG_ONLY_ONE_PULL), 245 SG2042_GENERAL_PIN(PIN_LPC_LAD3, 0x008, 246 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 247 SG2042_GENERAL_PIN(PIN_LPC_LDRQ0, 0x00c, 248 PIN_FLAG_ONLY_ONE_PULL), 249 SG2042_GENERAL_PIN(PIN_LPC_LDRQ1, 0x00c, 250 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 251 SG2042_GENERAL_PIN(PIN_LPC_SERIRQ, 0x010, 252 PIN_FLAG_ONLY_ONE_PULL), 253 SG2042_GENERAL_PIN(PIN_LPC_CLKRUN, 0x010, 254 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 255 SG2042_GENERAL_PIN(PIN_LPC_LPME, 0x014, 256 PIN_FLAG_ONLY_ONE_PULL), 257 SG2042_GENERAL_PIN(PIN_LPC_LPCPD, 0x014, 258 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 259 SG2042_GENERAL_PIN(PIN_LPC_LSMI, 0x018, 260 PIN_FLAG_ONLY_ONE_PULL), 261 SG2042_GENERAL_PIN(PIN_PCIE0_L0_RESET, 0x018, 262 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 263 SG2042_GENERAL_PIN(PIN_PCIE0_L1_RESET, 0x01c, 264 PIN_FLAG_ONLY_ONE_PULL), 265 SG2042_GENERAL_PIN(PIN_PCIE0_L0_WAKEUP, 0x01c, 266 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 267 SG2042_GENERAL_PIN(PIN_PCIE0_L1_WAKEUP, 0x020, 268 PIN_FLAG_ONLY_ONE_PULL), 269 SG2042_GENERAL_PIN(PIN_PCIE0_L0_CLKREQ_IN, 0x020, 270 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 271 SG2042_GENERAL_PIN(PIN_PCIE0_L1_CLKREQ_IN, 0x024, 272 PIN_FLAG_ONLY_ONE_PULL), 273 SG2042_GENERAL_PIN(PIN_PCIE1_L0_RESET, 0x024, 274 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 275 SG2042_GENERAL_PIN(PIN_PCIE1_L1_RESET, 0x028, 276 PIN_FLAG_ONLY_ONE_PULL), 277 SG2042_GENERAL_PIN(PIN_PCIE1_L0_WAKEUP, 0x028, 278 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 279 SG2042_GENERAL_PIN(PIN_PCIE1_L1_WAKEUP, 0x02c, 280 PIN_FLAG_ONLY_ONE_PULL), 281 SG2042_GENERAL_PIN(PIN_PCIE1_L0_CLKREQ_IN, 0x02c, 282 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 283 SG2042_GENERAL_PIN(PIN_PCIE1_L1_CLKREQ_IN, 0x030, 284 PIN_FLAG_ONLY_ONE_PULL), 285 SG2042_GENERAL_PIN(PIN_SPIF0_CLK_SEL1, 0x030, 286 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 287 SG2042_GENERAL_PIN(PIN_SPIF0_CLK_SEL0, 0x034, 288 PIN_FLAG_ONLY_ONE_PULL), 289 SG2042_GENERAL_PIN(PIN_SPIF0_WP, 0x034, 290 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 291 SG2042_GENERAL_PIN(PIN_SPIF0_HOLD, 0x038, 292 PIN_FLAG_ONLY_ONE_PULL), 293 SG2042_GENERAL_PIN(PIN_SPIF0_SDI, 0x038, 294 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 295 SG2042_GENERAL_PIN(PIN_SPIF0_CS, 0x03c, 296 PIN_FLAG_ONLY_ONE_PULL), 297 SG2042_GENERAL_PIN(PIN_SPIF0_SCK, 0x03c, 298 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 299 SG2042_GENERAL_PIN(PIN_SPIF0_SDO, 0x040, 300 PIN_FLAG_ONLY_ONE_PULL), 301 SG2042_GENERAL_PIN(PIN_SPIF1_CLK_SEL1, 0x040, 302 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 303 SG2042_GENERAL_PIN(PIN_SPIF1_CLK_SEL0, 0x044, 304 PIN_FLAG_ONLY_ONE_PULL), 305 SG2042_GENERAL_PIN(PIN_SPIF1_WP, 0x044, 306 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 307 SG2042_GENERAL_PIN(PIN_SPIF1_HOLD, 0x048, 308 PIN_FLAG_ONLY_ONE_PULL), 309 SG2042_GENERAL_PIN(PIN_SPIF1_SDI, 0x048, 310 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 311 SG2042_GENERAL_PIN(PIN_SPIF1_CS, 0x04c, 312 PIN_FLAG_ONLY_ONE_PULL), 313 SG2042_GENERAL_PIN(PIN_SPIF1_SCK, 0x04c, 314 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 315 SG2042_GENERAL_PIN(PIN_SPIF1_SDO, 0x050, 316 PIN_FLAG_ONLY_ONE_PULL), 317 SG2042_GENERAL_PIN(PIN_EMMC_WP, 0x050, 318 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 319 SG2042_GENERAL_PIN(PIN_EMMC_CD, 0x054, 320 PIN_FLAG_ONLY_ONE_PULL), 321 SG2042_GENERAL_PIN(PIN_EMMC_RST, 0x054, 322 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 323 SG2042_GENERAL_PIN(PIN_EMMC_PWR_EN, 0x058, 324 PIN_FLAG_ONLY_ONE_PULL), 325 SG2042_GENERAL_PIN(PIN_SDIO_CD, 0x058, 326 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 327 SG2042_GENERAL_PIN(PIN_SDIO_WP, 0x05c, 328 PIN_FLAG_ONLY_ONE_PULL), 329 SG2042_GENERAL_PIN(PIN_SDIO_RST, 0x05c, 330 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 331 SG2042_GENERAL_PIN(PIN_SDIO_PWR_EN, 0x060, 332 PIN_FLAG_ONLY_ONE_PULL), 333 SG2042_GENERAL_PIN(PIN_RGMII0_TXD0, 0x060, 334 PIN_FLAG_WRITE_HIGH), 335 SG2042_GENERAL_PIN(PIN_RGMII0_TXD1, 0x064, 336 PIN_FLAG_DEFAULT), 337 SG2042_GENERAL_PIN(PIN_RGMII0_TXD2, 0x064, 338 PIN_FLAG_WRITE_HIGH), 339 SG2042_GENERAL_PIN(PIN_RGMII0_TXD3, 0x068, 340 PIN_FLAG_DEFAULT), 341 SG2042_GENERAL_PIN(PIN_RGMII0_TXCTRL, 0x068, 342 PIN_FLAG_WRITE_HIGH), 343 SG2042_GENERAL_PIN(PIN_RGMII0_RXD0, 0x06c, 344 PIN_FLAG_DEFAULT), 345 SG2042_GENERAL_PIN(PIN_RGMII0_RXD1, 0x06c, 346 PIN_FLAG_WRITE_HIGH), 347 SG2042_GENERAL_PIN(PIN_RGMII0_RXD2, 0x070, 348 PIN_FLAG_DEFAULT), 349 SG2042_GENERAL_PIN(PIN_RGMII0_RXD3, 0x070, 350 PIN_FLAG_WRITE_HIGH), 351 SG2042_GENERAL_PIN(PIN_RGMII0_RXCTRL, 0x074, 352 PIN_FLAG_DEFAULT), 353 SG2042_GENERAL_PIN(PIN_RGMII0_TXC, 0x074, 354 PIN_FLAG_WRITE_HIGH), 355 SG2042_GENERAL_PIN(PIN_RGMII0_RXC, 0x078, 356 PIN_FLAG_DEFAULT), 357 SG2042_GENERAL_PIN(PIN_RGMII0_REFCLKO, 0x078, 358 PIN_FLAG_WRITE_HIGH), 359 SG2042_GENERAL_PIN(PIN_RGMII0_IRQ, 0x07c, 360 PIN_FLAG_DEFAULT), 361 SG2042_GENERAL_PIN(PIN_RGMII0_MDC, 0x07c, 362 PIN_FLAG_WRITE_HIGH), 363 SG2042_GENERAL_PIN(PIN_RGMII0_MDIO, 0x080, 364 PIN_FLAG_DEFAULT), 365 SG2042_GENERAL_PIN(PIN_PWM0, 0x080, 366 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 367 SG2042_GENERAL_PIN(PIN_PWM1, 0x084, 368 PIN_FLAG_ONLY_ONE_PULL), 369 SG2042_GENERAL_PIN(PIN_PWM2, 0x084, 370 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 371 SG2042_GENERAL_PIN(PIN_PWM3, 0x088, 372 PIN_FLAG_ONLY_ONE_PULL), 373 SG2042_GENERAL_PIN(PIN_FAN0, 0x088, 374 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 375 SG2042_GENERAL_PIN(PIN_FAN1, 0x08c, 376 PIN_FLAG_ONLY_ONE_PULL), 377 SG2042_GENERAL_PIN(PIN_FAN2, 0x08c, 378 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 379 SG2042_GENERAL_PIN(PIN_FAN3, 0x090, 380 PIN_FLAG_ONLY_ONE_PULL), 381 SG2042_GENERAL_PIN(PIN_IIC0_SDA, 0x090, 382 PIN_FLAG_WRITE_HIGH), 383 SG2042_GENERAL_PIN(PIN_IIC0_SCL, 0x094, 384 PIN_FLAG_DEFAULT), 385 SG2042_GENERAL_PIN(PIN_IIC1_SDA, 0x094, 386 PIN_FLAG_WRITE_HIGH), 387 SG2042_GENERAL_PIN(PIN_IIC1_SCL, 0x098, 388 PIN_FLAG_DEFAULT), 389 SG2042_GENERAL_PIN(PIN_IIC2_SDA, 0x098, 390 PIN_FLAG_WRITE_HIGH), 391 SG2042_GENERAL_PIN(PIN_IIC2_SCL, 0x09c, 392 PIN_FLAG_DEFAULT), 393 SG2042_GENERAL_PIN(PIN_IIC3_SDA, 0x09c, 394 PIN_FLAG_WRITE_HIGH), 395 SG2042_GENERAL_PIN(PIN_IIC3_SCL, 0x0a0, 396 PIN_FLAG_DEFAULT), 397 SG2042_GENERAL_PIN(PIN_UART0_TX, 0x0a0, 398 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 399 SG2042_GENERAL_PIN(PIN_UART0_RX, 0x0a4, 400 PIN_FLAG_ONLY_ONE_PULL), 401 SG2042_GENERAL_PIN(PIN_UART0_RTS, 0x0a4, 402 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 403 SG2042_GENERAL_PIN(PIN_UART0_CTS, 0x0a8, 404 PIN_FLAG_ONLY_ONE_PULL), 405 SG2042_GENERAL_PIN(PIN_UART1_TX, 0x0a8, 406 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 407 SG2042_GENERAL_PIN(PIN_UART1_RX, 0x0ac, 408 PIN_FLAG_ONLY_ONE_PULL), 409 SG2042_GENERAL_PIN(PIN_UART1_RTS, 0x0ac, 410 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 411 SG2042_GENERAL_PIN(PIN_UART1_CTS, 0x0b0, 412 PIN_FLAG_ONLY_ONE_PULL), 413 SG2042_GENERAL_PIN(PIN_UART2_TX, 0x0b0, 414 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 415 SG2042_GENERAL_PIN(PIN_UART2_RX, 0x0b4, 416 PIN_FLAG_ONLY_ONE_PULL), 417 SG2042_GENERAL_PIN(PIN_UART2_RTS, 0x0b4, 418 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 419 SG2042_GENERAL_PIN(PIN_UART2_CTS, 0x0b8, 420 PIN_FLAG_ONLY_ONE_PULL), 421 SG2042_GENERAL_PIN(PIN_UART3_TX, 0x0b8, 422 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 423 SG2042_GENERAL_PIN(PIN_UART3_RX, 0x0bc, 424 PIN_FLAG_ONLY_ONE_PULL), 425 SG2042_GENERAL_PIN(PIN_UART3_RTS, 0x0bc, 426 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 427 SG2042_GENERAL_PIN(PIN_UART3_CTS, 0x0c0, 428 PIN_FLAG_ONLY_ONE_PULL), 429 SG2042_GENERAL_PIN(PIN_SPI0_CS0, 0x0c0, 430 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 431 SG2042_GENERAL_PIN(PIN_SPI0_CS1, 0x0c4, 432 PIN_FLAG_ONLY_ONE_PULL), 433 SG2042_GENERAL_PIN(PIN_SPI0_SDI, 0x0c4, 434 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 435 SG2042_GENERAL_PIN(PIN_SPI0_SDO, 0x0c8, 436 PIN_FLAG_ONLY_ONE_PULL), 437 SG2042_GENERAL_PIN(PIN_SPI0_SCK, 0x0c8, 438 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 439 SG2042_GENERAL_PIN(PIN_SPI1_CS0, 0x0cc, 440 PIN_FLAG_ONLY_ONE_PULL), 441 SG2042_GENERAL_PIN(PIN_SPI1_CS1, 0x0cc, 442 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 443 SG2042_GENERAL_PIN(PIN_SPI1_SDI, 0x0d0, 444 PIN_FLAG_ONLY_ONE_PULL), 445 SG2042_GENERAL_PIN(PIN_SPI1_SDO, 0x0d0, 446 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 447 SG2042_GENERAL_PIN(PIN_SPI1_SCK, 0x0d4, 448 PIN_FLAG_ONLY_ONE_PULL), 449 SG2042_GENERAL_PIN(PIN_JTAG0_TDO, 0x0d4, 450 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 451 SG2042_GENERAL_PIN(PIN_JTAG0_TCK, 0x0d8, 452 PIN_FLAG_ONLY_ONE_PULL), 453 SG2042_GENERAL_PIN(PIN_JTAG0_TDI, 0x0d8, 454 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 455 SG2042_GENERAL_PIN(PIN_JTAG0_TMS, 0x0dc, 456 PIN_FLAG_ONLY_ONE_PULL), 457 SG2042_GENERAL_PIN(PIN_JTAG0_TRST, 0x0dc, 458 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 459 SG2042_GENERAL_PIN(PIN_JTAG0_SRST, 0x0e0, 460 PIN_FLAG_ONLY_ONE_PULL), 461 SG2042_GENERAL_PIN(PIN_JTAG1_TDO, 0x0e0, 462 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 463 SG2042_GENERAL_PIN(PIN_JTAG1_TCK, 0x0e4, 464 PIN_FLAG_ONLY_ONE_PULL), 465 SG2042_GENERAL_PIN(PIN_JTAG1_TDI, 0x0e4, 466 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 467 SG2042_GENERAL_PIN(PIN_JTAG1_TMS, 0x0e8, 468 PIN_FLAG_ONLY_ONE_PULL), 469 SG2042_GENERAL_PIN(PIN_JTAG1_TRST, 0x0e8, 470 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 471 SG2042_GENERAL_PIN(PIN_JTAG1_SRST, 0x0ec, 472 PIN_FLAG_ONLY_ONE_PULL), 473 SG2042_GENERAL_PIN(PIN_JTAG2_TDO, 0x0ec, 474 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 475 SG2042_GENERAL_PIN(PIN_JTAG2_TCK, 0x0f0, 476 PIN_FLAG_ONLY_ONE_PULL), 477 SG2042_GENERAL_PIN(PIN_JTAG2_TDI, 0x0f0, 478 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 479 SG2042_GENERAL_PIN(PIN_JTAG2_TMS, 0x0f4, 480 PIN_FLAG_ONLY_ONE_PULL), 481 SG2042_GENERAL_PIN(PIN_JTAG2_TRST, 0x0f4, 482 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 483 SG2042_GENERAL_PIN(PIN_JTAG2_SRST, 0x0f8, 484 PIN_FLAG_ONLY_ONE_PULL), 485 SG2042_GENERAL_PIN(PIN_GPIO0, 0x0f8, 486 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 487 SG2042_GENERAL_PIN(PIN_GPIO1, 0x0fc, 488 PIN_FLAG_ONLY_ONE_PULL), 489 SG2042_GENERAL_PIN(PIN_GPIO2, 0x0fc, 490 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 491 SG2042_GENERAL_PIN(PIN_GPIO3, 0x100, 492 PIN_FLAG_ONLY_ONE_PULL), 493 SG2042_GENERAL_PIN(PIN_GPIO4, 0x100, 494 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 495 SG2042_GENERAL_PIN(PIN_GPIO5, 0x104, 496 PIN_FLAG_ONLY_ONE_PULL), 497 SG2042_GENERAL_PIN(PIN_GPIO6, 0x104, 498 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 499 SG2042_GENERAL_PIN(PIN_GPIO7, 0x108, 500 PIN_FLAG_ONLY_ONE_PULL), 501 SG2042_GENERAL_PIN(PIN_GPIO8, 0x108, 502 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 503 SG2042_GENERAL_PIN(PIN_GPIO9, 0x10c, 504 PIN_FLAG_ONLY_ONE_PULL), 505 SG2042_GENERAL_PIN(PIN_GPIO10, 0x10c, 506 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 507 SG2042_GENERAL_PIN(PIN_GPIO11, 0x110, 508 PIN_FLAG_ONLY_ONE_PULL), 509 SG2042_GENERAL_PIN(PIN_GPIO12, 0x110, 510 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 511 SG2042_GENERAL_PIN(PIN_GPIO13, 0x114, 512 PIN_FLAG_ONLY_ONE_PULL), 513 SG2042_GENERAL_PIN(PIN_GPIO14, 0x114, 514 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 515 SG2042_GENERAL_PIN(PIN_GPIO15, 0x118, 516 PIN_FLAG_ONLY_ONE_PULL), 517 SG2042_GENERAL_PIN(PIN_GPIO16, 0x118, 518 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 519 SG2042_GENERAL_PIN(PIN_GPIO17, 0x11c, 520 PIN_FLAG_ONLY_ONE_PULL), 521 SG2042_GENERAL_PIN(PIN_GPIO18, 0x11c, 522 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 523 SG2042_GENERAL_PIN(PIN_GPIO19, 0x120, 524 PIN_FLAG_ONLY_ONE_PULL), 525 SG2042_GENERAL_PIN(PIN_GPIO20, 0x120, 526 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 527 SG2042_GENERAL_PIN(PIN_GPIO21, 0x124, 528 PIN_FLAG_ONLY_ONE_PULL), 529 SG2042_GENERAL_PIN(PIN_GPIO22, 0x124, 530 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 531 SG2042_GENERAL_PIN(PIN_GPIO23, 0x128, 532 PIN_FLAG_ONLY_ONE_PULL), 533 SG2042_GENERAL_PIN(PIN_GPIO24, 0x128, 534 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 535 SG2042_GENERAL_PIN(PIN_GPIO25, 0x12c, 536 PIN_FLAG_ONLY_ONE_PULL), 537 SG2042_GENERAL_PIN(PIN_GPIO26, 0x12c, 538 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 539 SG2042_GENERAL_PIN(PIN_GPIO27, 0x130, 540 PIN_FLAG_ONLY_ONE_PULL), 541 SG2042_GENERAL_PIN(PIN_GPIO28, 0x130, 542 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 543 SG2042_GENERAL_PIN(PIN_GPIO29, 0x134, 544 PIN_FLAG_ONLY_ONE_PULL), 545 SG2042_GENERAL_PIN(PIN_GPIO30, 0x134, 546 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL), 547 SG2042_GENERAL_PIN(PIN_GPIO31, 0x138, 548 PIN_FLAG_ONLY_ONE_PULL), 549 SG2042_GENERAL_PIN(PIN_MODE_SEL0, 0x138, 550 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL | 551 PIN_FLAG_NO_PINMUX | PIN_FLAG_NO_OEX_EN), 552 SG2042_GENERAL_PIN(PIN_MODE_SEL1, 0x13c, 553 PIN_FLAG_ONLY_ONE_PULL | PIN_FLAG_NO_PINMUX | 554 PIN_FLAG_NO_OEX_EN), 555 SG2042_GENERAL_PIN(PIN_MODE_SEL2, 0x13c, 556 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL | 557 PIN_FLAG_NO_PINMUX | PIN_FLAG_NO_OEX_EN), 558 SG2042_GENERAL_PIN(PIN_BOOT_SEL0, 0x140, 559 PIN_FLAG_ONLY_ONE_PULL | PIN_FLAG_NO_PINMUX | 560 PIN_FLAG_NO_OEX_EN), 561 SG2042_GENERAL_PIN(PIN_BOOT_SEL1, 0x140, 562 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL | 563 PIN_FLAG_NO_PINMUX | PIN_FLAG_NO_OEX_EN), 564 SG2042_GENERAL_PIN(PIN_BOOT_SEL2, 0x144, 565 PIN_FLAG_ONLY_ONE_PULL | PIN_FLAG_NO_PINMUX | 566 PIN_FLAG_NO_OEX_EN), 567 SG2042_GENERAL_PIN(PIN_BOOT_SEL3, 0x144, 568 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL | 569 PIN_FLAG_NO_PINMUX | PIN_FLAG_NO_OEX_EN), 570 SG2042_GENERAL_PIN(PIN_BOOT_SEL4, 0x148, 571 PIN_FLAG_ONLY_ONE_PULL | PIN_FLAG_NO_PINMUX | 572 PIN_FLAG_NO_OEX_EN), 573 SG2042_GENERAL_PIN(PIN_BOOT_SEL5, 0x148, 574 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL | 575 PIN_FLAG_NO_PINMUX | PIN_FLAG_NO_OEX_EN), 576 SG2042_GENERAL_PIN(PIN_BOOT_SEL6, 0x14c, 577 PIN_FLAG_ONLY_ONE_PULL | PIN_FLAG_NO_PINMUX | 578 PIN_FLAG_NO_OEX_EN), 579 SG2042_GENERAL_PIN(PIN_BOOT_SEL7, 0x14c, 580 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL | 581 PIN_FLAG_NO_PINMUX | PIN_FLAG_NO_OEX_EN), 582 SG2042_GENERAL_PIN(PIN_MULTI_SCKT, 0x150, 583 PIN_FLAG_ONLY_ONE_PULL | PIN_FLAG_NO_PINMUX | 584 PIN_FLAG_NO_OEX_EN), 585 SG2042_GENERAL_PIN(PIN_SCKT_ID0, 0x150, 586 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL | 587 PIN_FLAG_NO_PINMUX | PIN_FLAG_NO_OEX_EN), 588 SG2042_GENERAL_PIN(PIN_SCKT_ID1, 0x154, 589 PIN_FLAG_ONLY_ONE_PULL | PIN_FLAG_NO_PINMUX | 590 PIN_FLAG_NO_OEX_EN), 591 SG2042_GENERAL_PIN(PIN_PLL_CLK_IN_MAIN, 0x154, 592 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL | 593 PIN_FLAG_NO_PINMUX | PIN_FLAG_NO_OEX_EN), 594 SG2042_GENERAL_PIN(PIN_PLL_CLK_IN_DDR_L, 0x158, 595 PIN_FLAG_ONLY_ONE_PULL | PIN_FLAG_NO_PINMUX | 596 PIN_FLAG_NO_OEX_EN), 597 SG2042_GENERAL_PIN(PIN_PLL_CLK_IN_DDR_R, 0x158, 598 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL | 599 PIN_FLAG_NO_PINMUX | PIN_FLAG_NO_OEX_EN), 600 SG2042_GENERAL_PIN(PIN_XTAL_32K, 0x15c, 601 PIN_FLAG_ONLY_ONE_PULL | PIN_FLAG_NO_PINMUX | 602 PIN_FLAG_NO_OEX_EN), 603 SG2042_GENERAL_PIN(PIN_SYS_RST, 0x15c, 604 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL | 605 PIN_FLAG_NO_PINMUX | PIN_FLAG_NO_OEX_EN), 606 SG2042_GENERAL_PIN(PIN_PWR_BUTTON, 0x160, 607 PIN_FLAG_ONLY_ONE_PULL | PIN_FLAG_NO_PINMUX | 608 PIN_FLAG_NO_OEX_EN), 609 SG2042_GENERAL_PIN(PIN_TEST_EN, 0x160, 610 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL | 611 PIN_FLAG_NO_PINMUX | PIN_FLAG_NO_OEX_EN), 612 SG2042_GENERAL_PIN(PIN_TEST_MODE_MBIST, 0x164, 613 PIN_FLAG_ONLY_ONE_PULL | PIN_FLAG_NO_PINMUX | 614 PIN_FLAG_NO_OEX_EN), 615 SG2042_GENERAL_PIN(PIN_TEST_MODE_SCAN, 0x164, 616 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL | 617 PIN_FLAG_NO_PINMUX | PIN_FLAG_NO_OEX_EN), 618 SG2042_GENERAL_PIN(PIN_TEST_MODE_BSD, 0x168, 619 PIN_FLAG_ONLY_ONE_PULL | PIN_FLAG_NO_PINMUX | 620 PIN_FLAG_NO_OEX_EN), 621 SG2042_GENERAL_PIN(PIN_BISR_BYP, 0x168, 622 PIN_FLAG_WRITE_HIGH | PIN_FLAG_ONLY_ONE_PULL | 623 PIN_FLAG_NO_PINMUX | PIN_FLAG_NO_OEX_EN), 624 }; 625 626 static const struct sophgo_pinctrl_data sg2042_pindata = { 627 .pins = sg2042_pins, 628 .pindata = sg2042_pin_data, 629 .vddio_ops = &sg2042_vddio_cfg_ops, 630 .cfg_ops = &sg2042_cfg_ops, 631 .pctl_ops = &sg2042_pctrl_ops, 632 .pmx_ops = &sg2042_pmx_ops, 633 .pconf_ops = &sg2042_pconf_ops, 634 .npins = ARRAY_SIZE(sg2042_pins), 635 .pinsize = sizeof(struct sg2042_pin), 636 }; 637 638 static const struct of_device_id sg2042_pinctrl_ids[] = { 639 { .compatible = "sophgo,sg2042-pinctrl", .data = &sg2042_pindata }, 640 { } 641 }; 642 MODULE_DEVICE_TABLE(of, sg2042_pinctrl_ids); 643 644 static struct platform_driver sg2042_pinctrl_driver = { 645 .probe = sophgo_pinctrl_probe, 646 .driver = { 647 .name = "sg2042-pinctrl", 648 .suppress_bind_attrs = true, 649 .of_match_table = sg2042_pinctrl_ids, 650 }, 651 }; 652 module_platform_driver(sg2042_pinctrl_driver); 653 654 MODULE_DESCRIPTION("Pinctrl driver for the SG2002 series SoC"); 655 MODULE_LICENSE("GPL"); 656