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