1 // SPDX-License-Identifier: GPL-2.0 2 /* 3 * SH7786 Pinmux 4 * 5 * Copyright (C) 2008, 2009 Renesas Solutions Corp. 6 * Kuninori Morimoto <morimoto.kuninori@renesas.com> 7 * 8 * Based on SH7785 pinmux 9 * 10 * Copyright (C) 2008 Magnus Damm 11 */ 12 13 #include <linux/init.h> 14 #include <linux/kernel.h> 15 #include <cpu/sh7786.h> 16 17 #include "sh_pfc.h" 18 19 enum { 20 PINMUX_RESERVED = 0, 21 22 PINMUX_DATA_BEGIN, 23 PA7_DATA, PA6_DATA, PA5_DATA, PA4_DATA, 24 PA3_DATA, PA2_DATA, PA1_DATA, PA0_DATA, 25 PB7_DATA, PB6_DATA, PB5_DATA, PB4_DATA, 26 PB3_DATA, PB2_DATA, PB1_DATA, PB0_DATA, 27 PC7_DATA, PC6_DATA, PC5_DATA, PC4_DATA, 28 PC3_DATA, PC2_DATA, PC1_DATA, PC0_DATA, 29 PD7_DATA, PD6_DATA, PD5_DATA, PD4_DATA, 30 PD3_DATA, PD2_DATA, PD1_DATA, PD0_DATA, 31 PE7_DATA, PE6_DATA, 32 PF7_DATA, PF6_DATA, PF5_DATA, PF4_DATA, 33 PF3_DATA, PF2_DATA, PF1_DATA, PF0_DATA, 34 PG7_DATA, PG6_DATA, PG5_DATA, 35 PH7_DATA, PH6_DATA, PH5_DATA, PH4_DATA, 36 PH3_DATA, PH2_DATA, PH1_DATA, PH0_DATA, 37 PJ7_DATA, PJ6_DATA, PJ5_DATA, PJ4_DATA, 38 PJ3_DATA, PJ2_DATA, PJ1_DATA, 39 PINMUX_DATA_END, 40 41 PINMUX_INPUT_BEGIN, 42 PA7_IN, PA6_IN, PA5_IN, PA4_IN, 43 PA3_IN, PA2_IN, PA1_IN, PA0_IN, 44 PB7_IN, PB6_IN, PB5_IN, PB4_IN, 45 PB3_IN, PB2_IN, PB1_IN, PB0_IN, 46 PC7_IN, PC6_IN, PC5_IN, PC4_IN, 47 PC3_IN, PC2_IN, PC1_IN, PC0_IN, 48 PD7_IN, PD6_IN, PD5_IN, PD4_IN, 49 PD3_IN, PD2_IN, PD1_IN, PD0_IN, 50 PE7_IN, PE6_IN, 51 PF7_IN, PF6_IN, PF5_IN, PF4_IN, 52 PF3_IN, PF2_IN, PF1_IN, PF0_IN, 53 PG7_IN, PG6_IN, PG5_IN, 54 PH7_IN, PH6_IN, PH5_IN, PH4_IN, 55 PH3_IN, PH2_IN, PH1_IN, PH0_IN, 56 PJ7_IN, PJ6_IN, PJ5_IN, PJ4_IN, 57 PJ3_IN, PJ2_IN, PJ1_IN, 58 PINMUX_INPUT_END, 59 60 PINMUX_OUTPUT_BEGIN, 61 PA7_OUT, PA6_OUT, PA5_OUT, PA4_OUT, 62 PA3_OUT, PA2_OUT, PA1_OUT, PA0_OUT, 63 PB7_OUT, PB6_OUT, PB5_OUT, PB4_OUT, 64 PB3_OUT, PB2_OUT, PB1_OUT, PB0_OUT, 65 PC7_OUT, PC6_OUT, PC5_OUT, PC4_OUT, 66 PC3_OUT, PC2_OUT, PC1_OUT, PC0_OUT, 67 PD7_OUT, PD6_OUT, PD5_OUT, PD4_OUT, 68 PD3_OUT, PD2_OUT, PD1_OUT, PD0_OUT, 69 PE7_OUT, PE6_OUT, 70 PF7_OUT, PF6_OUT, PF5_OUT, PF4_OUT, 71 PF3_OUT, PF2_OUT, PF1_OUT, PF0_OUT, 72 PG7_OUT, PG6_OUT, PG5_OUT, 73 PH7_OUT, PH6_OUT, PH5_OUT, PH4_OUT, 74 PH3_OUT, PH2_OUT, PH1_OUT, PH0_OUT, 75 PJ7_OUT, PJ6_OUT, PJ5_OUT, PJ4_OUT, 76 PJ3_OUT, PJ2_OUT, PJ1_OUT, 77 PINMUX_OUTPUT_END, 78 79 PINMUX_FUNCTION_BEGIN, 80 PA7_FN, PA6_FN, PA5_FN, PA4_FN, 81 PA3_FN, PA2_FN, PA1_FN, PA0_FN, 82 PB7_FN, PB6_FN, PB5_FN, PB4_FN, 83 PB3_FN, PB2_FN, PB1_FN, PB0_FN, 84 PC7_FN, PC6_FN, PC5_FN, PC4_FN, 85 PC3_FN, PC2_FN, PC1_FN, PC0_FN, 86 PD7_FN, PD6_FN, PD5_FN, PD4_FN, 87 PD3_FN, PD2_FN, PD1_FN, PD0_FN, 88 PE7_FN, PE6_FN, 89 PF7_FN, PF6_FN, PF5_FN, PF4_FN, 90 PF3_FN, PF2_FN, PF1_FN, PF0_FN, 91 PG7_FN, PG6_FN, PG5_FN, 92 PH7_FN, PH6_FN, PH5_FN, PH4_FN, 93 PH3_FN, PH2_FN, PH1_FN, PH0_FN, 94 PJ7_FN, PJ6_FN, PJ5_FN, PJ4_FN, 95 PJ3_FN, PJ2_FN, PJ1_FN, 96 P1MSEL14_0, P1MSEL14_1, 97 P1MSEL13_0, P1MSEL13_1, 98 P1MSEL12_0, P1MSEL12_1, 99 P1MSEL11_0, P1MSEL11_1, 100 P1MSEL10_0, P1MSEL10_1, 101 P1MSEL9_0, P1MSEL9_1, 102 P1MSEL8_0, P1MSEL8_1, 103 P1MSEL7_0, P1MSEL7_1, 104 P1MSEL6_0, P1MSEL6_1, 105 P1MSEL5_0, P1MSEL5_1, 106 P1MSEL4_0, P1MSEL4_1, 107 P1MSEL3_0, P1MSEL3_1, 108 P1MSEL2_0, P1MSEL2_1, 109 P1MSEL1_0, P1MSEL1_1, 110 P1MSEL0_0, P1MSEL0_1, 111 112 P2MSEL15_0, P2MSEL15_1, 113 P2MSEL14_0, P2MSEL14_1, 114 P2MSEL13_0, P2MSEL13_1, 115 P2MSEL12_0, P2MSEL12_1, 116 P2MSEL11_0, P2MSEL11_1, 117 P2MSEL10_0, P2MSEL10_1, 118 P2MSEL9_0, P2MSEL9_1, 119 P2MSEL8_0, P2MSEL8_1, 120 P2MSEL7_0, P2MSEL7_1, 121 P2MSEL6_0, P2MSEL6_1, 122 P2MSEL5_0, P2MSEL5_1, 123 P2MSEL4_0, P2MSEL4_1, 124 P2MSEL3_0, P2MSEL3_1, 125 P2MSEL2_0, P2MSEL2_1, 126 P2MSEL1_0, P2MSEL1_1, 127 P2MSEL0_0, P2MSEL0_1, 128 PINMUX_FUNCTION_END, 129 130 PINMUX_MARK_BEGIN, 131 DCLKIN_MARK, DCLKOUT_MARK, ODDF_MARK, 132 VSYNC_MARK, HSYNC_MARK, CDE_MARK, DISP_MARK, 133 DR0_MARK, DR1_MARK, DR2_MARK, DR3_MARK, DR4_MARK, DR5_MARK, 134 DG0_MARK, DG1_MARK, DG2_MARK, DG3_MARK, DG4_MARK, DG5_MARK, 135 DB0_MARK, DB1_MARK, DB2_MARK, DB3_MARK, DB4_MARK, DB5_MARK, 136 ETH_MAGIC_MARK, ETH_LINK_MARK, ETH_TX_ER_MARK, ETH_TX_EN_MARK, 137 ETH_MDIO_MARK, ETH_RX_CLK_MARK, ETH_MDC_MARK, ETH_COL_MARK, 138 ETH_TX_CLK_MARK, ETH_CRS_MARK, ETH_RX_DV_MARK, ETH_RX_ER_MARK, 139 ETH_TXD3_MARK, ETH_TXD2_MARK, ETH_TXD1_MARK, ETH_TXD0_MARK, 140 ETH_RXD3_MARK, ETH_RXD2_MARK, ETH_RXD1_MARK, ETH_RXD0_MARK, 141 HSPI_CLK_MARK, HSPI_CS_MARK, HSPI_RX_MARK, HSPI_TX_MARK, 142 SCIF0_CTS_MARK, SCIF0_RTS_MARK, 143 SCIF0_SCK_MARK, SCIF0_RXD_MARK, SCIF0_TXD_MARK, 144 SCIF1_SCK_MARK, SCIF1_RXD_MARK, SCIF1_TXD_MARK, 145 SCIF3_SCK_MARK, SCIF3_RXD_MARK, SCIF3_TXD_MARK, 146 SCIF4_SCK_MARK, SCIF4_RXD_MARK, SCIF4_TXD_MARK, 147 SCIF5_SCK_MARK, SCIF5_RXD_MARK, SCIF5_TXD_MARK, 148 BREQ_MARK, IOIS16_MARK, CE2B_MARK, CE2A_MARK, BACK_MARK, 149 FALE_MARK, FRB_MARK, FSTATUS_MARK, 150 FSE_MARK, FCLE_MARK, 151 DACK0_MARK, DACK1_MARK, DACK2_MARK, DACK3_MARK, 152 DREQ0_MARK, DREQ1_MARK, DREQ2_MARK, DREQ3_MARK, 153 DRAK0_MARK, DRAK1_MARK, DRAK2_MARK, DRAK3_MARK, 154 USB_OVC1_MARK, USB_OVC0_MARK, 155 USB_PENC1_MARK, USB_PENC0_MARK, 156 HAC_RES_MARK, 157 HAC1_SDOUT_MARK, HAC1_SDIN_MARK, HAC1_SYNC_MARK, HAC1_BITCLK_MARK, 158 HAC0_SDOUT_MARK, HAC0_SDIN_MARK, HAC0_SYNC_MARK, HAC0_BITCLK_MARK, 159 SSI0_SDATA_MARK, SSI0_SCK_MARK, SSI0_WS_MARK, SSI0_CLK_MARK, 160 SSI1_SDATA_MARK, SSI1_SCK_MARK, SSI1_WS_MARK, SSI1_CLK_MARK, 161 SSI2_SDATA_MARK, SSI2_SCK_MARK, SSI2_WS_MARK, 162 SSI3_SDATA_MARK, SSI3_SCK_MARK, SSI3_WS_MARK, 163 SDIF1CMD_MARK, SDIF1CD_MARK, SDIF1WP_MARK, SDIF1CLK_MARK, 164 SDIF1D3_MARK, SDIF1D2_MARK, SDIF1D1_MARK, SDIF1D0_MARK, 165 SDIF0CMD_MARK, SDIF0CD_MARK, SDIF0WP_MARK, SDIF0CLK_MARK, 166 SDIF0D3_MARK, SDIF0D2_MARK, SDIF0D1_MARK, SDIF0D0_MARK, 167 TCLK_MARK, 168 IRL7_MARK, IRL6_MARK, IRL5_MARK, IRL4_MARK, 169 PINMUX_MARK_END, 170 }; 171 172 static const u16 pinmux_data[] = { 173 /* PA GPIO */ 174 PINMUX_DATA(PA7_DATA, PA7_IN, PA7_OUT), 175 PINMUX_DATA(PA6_DATA, PA6_IN, PA6_OUT), 176 PINMUX_DATA(PA5_DATA, PA5_IN, PA5_OUT), 177 PINMUX_DATA(PA4_DATA, PA4_IN, PA4_OUT), 178 PINMUX_DATA(PA3_DATA, PA3_IN, PA3_OUT), 179 PINMUX_DATA(PA2_DATA, PA2_IN, PA2_OUT), 180 PINMUX_DATA(PA1_DATA, PA1_IN, PA1_OUT), 181 PINMUX_DATA(PA0_DATA, PA0_IN, PA0_OUT), 182 183 /* PB GPIO */ 184 PINMUX_DATA(PB7_DATA, PB7_IN, PB7_OUT), 185 PINMUX_DATA(PB6_DATA, PB6_IN, PB6_OUT), 186 PINMUX_DATA(PB5_DATA, PB5_IN, PB5_OUT), 187 PINMUX_DATA(PB4_DATA, PB4_IN, PB4_OUT), 188 PINMUX_DATA(PB3_DATA, PB3_IN, PB3_OUT), 189 PINMUX_DATA(PB2_DATA, PB2_IN, PB2_OUT), 190 PINMUX_DATA(PB1_DATA, PB1_IN, PB1_OUT), 191 PINMUX_DATA(PB0_DATA, PB0_IN, PB0_OUT), 192 193 /* PC GPIO */ 194 PINMUX_DATA(PC7_DATA, PC7_IN, PC7_OUT), 195 PINMUX_DATA(PC6_DATA, PC6_IN, PC6_OUT), 196 PINMUX_DATA(PC5_DATA, PC5_IN, PC5_OUT), 197 PINMUX_DATA(PC4_DATA, PC4_IN, PC4_OUT), 198 PINMUX_DATA(PC3_DATA, PC3_IN, PC3_OUT), 199 PINMUX_DATA(PC2_DATA, PC2_IN, PC2_OUT), 200 PINMUX_DATA(PC1_DATA, PC1_IN, PC1_OUT), 201 PINMUX_DATA(PC0_DATA, PC0_IN, PC0_OUT), 202 203 /* PD GPIO */ 204 PINMUX_DATA(PD7_DATA, PD7_IN, PD7_OUT), 205 PINMUX_DATA(PD6_DATA, PD6_IN, PD6_OUT), 206 PINMUX_DATA(PD5_DATA, PD5_IN, PD5_OUT), 207 PINMUX_DATA(PD4_DATA, PD4_IN, PD4_OUT), 208 PINMUX_DATA(PD3_DATA, PD3_IN, PD3_OUT), 209 PINMUX_DATA(PD2_DATA, PD2_IN, PD2_OUT), 210 PINMUX_DATA(PD1_DATA, PD1_IN, PD1_OUT), 211 PINMUX_DATA(PD0_DATA, PD0_IN, PD0_OUT), 212 213 /* PE GPIO */ 214 PINMUX_DATA(PE7_DATA, PE7_IN, PE7_OUT), 215 PINMUX_DATA(PE6_DATA, PE6_IN, PE6_OUT), 216 217 /* PF GPIO */ 218 PINMUX_DATA(PF7_DATA, PF7_IN, PF7_OUT), 219 PINMUX_DATA(PF6_DATA, PF6_IN, PF6_OUT), 220 PINMUX_DATA(PF5_DATA, PF5_IN, PF5_OUT), 221 PINMUX_DATA(PF4_DATA, PF4_IN, PF4_OUT), 222 PINMUX_DATA(PF3_DATA, PF3_IN, PF3_OUT), 223 PINMUX_DATA(PF2_DATA, PF2_IN, PF2_OUT), 224 PINMUX_DATA(PF1_DATA, PF1_IN, PF1_OUT), 225 PINMUX_DATA(PF0_DATA, PF0_IN, PF0_OUT), 226 227 /* PG GPIO */ 228 PINMUX_DATA(PG7_DATA, PG7_IN, PG7_OUT), 229 PINMUX_DATA(PG6_DATA, PG6_IN, PG6_OUT), 230 PINMUX_DATA(PG5_DATA, PG5_IN, PG5_OUT), 231 232 /* PH GPIO */ 233 PINMUX_DATA(PH7_DATA, PH7_IN, PH7_OUT), 234 PINMUX_DATA(PH6_DATA, PH6_IN, PH6_OUT), 235 PINMUX_DATA(PH5_DATA, PH5_IN, PH5_OUT), 236 PINMUX_DATA(PH4_DATA, PH4_IN, PH4_OUT), 237 PINMUX_DATA(PH3_DATA, PH3_IN, PH3_OUT), 238 PINMUX_DATA(PH2_DATA, PH2_IN, PH2_OUT), 239 PINMUX_DATA(PH1_DATA, PH1_IN, PH1_OUT), 240 PINMUX_DATA(PH0_DATA, PH0_IN, PH0_OUT), 241 242 /* PJ GPIO */ 243 PINMUX_DATA(PJ7_DATA, PJ7_IN, PJ7_OUT), 244 PINMUX_DATA(PJ6_DATA, PJ6_IN, PJ6_OUT), 245 PINMUX_DATA(PJ5_DATA, PJ5_IN, PJ5_OUT), 246 PINMUX_DATA(PJ4_DATA, PJ4_IN, PJ4_OUT), 247 PINMUX_DATA(PJ3_DATA, PJ3_IN, PJ3_OUT), 248 PINMUX_DATA(PJ2_DATA, PJ2_IN, PJ2_OUT), 249 PINMUX_DATA(PJ1_DATA, PJ1_IN, PJ1_OUT), 250 251 /* PA FN */ 252 PINMUX_DATA(CDE_MARK, P1MSEL2_0, PA7_FN), 253 PINMUX_DATA(DISP_MARK, P1MSEL2_0, PA6_FN), 254 PINMUX_DATA(DR5_MARK, P1MSEL2_0, PA5_FN), 255 PINMUX_DATA(DR4_MARK, P1MSEL2_0, PA4_FN), 256 PINMUX_DATA(DR3_MARK, P1MSEL2_0, PA3_FN), 257 PINMUX_DATA(DR2_MARK, P1MSEL2_0, PA2_FN), 258 PINMUX_DATA(DR1_MARK, P1MSEL2_0, PA1_FN), 259 PINMUX_DATA(DR0_MARK, P1MSEL2_0, PA0_FN), 260 PINMUX_DATA(ETH_MAGIC_MARK, P1MSEL2_1, PA7_FN), 261 PINMUX_DATA(ETH_LINK_MARK, P1MSEL2_1, PA6_FN), 262 PINMUX_DATA(ETH_TX_ER_MARK, P1MSEL2_1, PA5_FN), 263 PINMUX_DATA(ETH_TX_EN_MARK, P1MSEL2_1, PA4_FN), 264 PINMUX_DATA(ETH_TXD3_MARK, P1MSEL2_1, PA3_FN), 265 PINMUX_DATA(ETH_TXD2_MARK, P1MSEL2_1, PA2_FN), 266 PINMUX_DATA(ETH_TXD1_MARK, P1MSEL2_1, PA1_FN), 267 PINMUX_DATA(ETH_TXD0_MARK, P1MSEL2_1, PA0_FN), 268 269 /* PB FN */ 270 PINMUX_DATA(VSYNC_MARK, P1MSEL3_0, PB7_FN), 271 PINMUX_DATA(ODDF_MARK, P1MSEL3_0, PB6_FN), 272 PINMUX_DATA(DG5_MARK, P1MSEL2_0, PB5_FN), 273 PINMUX_DATA(DG4_MARK, P1MSEL2_0, PB4_FN), 274 PINMUX_DATA(DG3_MARK, P1MSEL2_0, PB3_FN), 275 PINMUX_DATA(DG2_MARK, P1MSEL2_0, PB2_FN), 276 PINMUX_DATA(DG1_MARK, P1MSEL2_0, PB1_FN), 277 PINMUX_DATA(DG0_MARK, P1MSEL2_0, PB0_FN), 278 PINMUX_DATA(HSPI_CLK_MARK, P1MSEL3_1, PB7_FN), 279 PINMUX_DATA(HSPI_CS_MARK, P1MSEL3_1, PB6_FN), 280 PINMUX_DATA(ETH_MDIO_MARK, P1MSEL2_1, PB5_FN), 281 PINMUX_DATA(ETH_RX_CLK_MARK, P1MSEL2_1, PB4_FN), 282 PINMUX_DATA(ETH_MDC_MARK, P1MSEL2_1, PB3_FN), 283 PINMUX_DATA(ETH_COL_MARK, P1MSEL2_1, PB2_FN), 284 PINMUX_DATA(ETH_TX_CLK_MARK, P1MSEL2_1, PB1_FN), 285 PINMUX_DATA(ETH_CRS_MARK, P1MSEL2_1, PB0_FN), 286 287 /* PC FN */ 288 PINMUX_DATA(DCLKIN_MARK, P1MSEL3_0, PC7_FN), 289 PINMUX_DATA(HSYNC_MARK, P1MSEL3_0, PC6_FN), 290 PINMUX_DATA(DB5_MARK, P1MSEL2_0, PC5_FN), 291 PINMUX_DATA(DB4_MARK, P1MSEL2_0, PC4_FN), 292 PINMUX_DATA(DB3_MARK, P1MSEL2_0, PC3_FN), 293 PINMUX_DATA(DB2_MARK, P1MSEL2_0, PC2_FN), 294 PINMUX_DATA(DB1_MARK, P1MSEL2_0, PC1_FN), 295 PINMUX_DATA(DB0_MARK, P1MSEL2_0, PC0_FN), 296 297 PINMUX_DATA(HSPI_RX_MARK, P1MSEL3_1, PC7_FN), 298 PINMUX_DATA(HSPI_TX_MARK, P1MSEL3_1, PC6_FN), 299 PINMUX_DATA(ETH_RXD3_MARK, P1MSEL2_1, PC5_FN), 300 PINMUX_DATA(ETH_RXD2_MARK, P1MSEL2_1, PC4_FN), 301 PINMUX_DATA(ETH_RXD1_MARK, P1MSEL2_1, PC3_FN), 302 PINMUX_DATA(ETH_RXD0_MARK, P1MSEL2_1, PC2_FN), 303 PINMUX_DATA(ETH_RX_DV_MARK, P1MSEL2_1, PC1_FN), 304 PINMUX_DATA(ETH_RX_ER_MARK, P1MSEL2_1, PC0_FN), 305 306 /* PD FN */ 307 PINMUX_DATA(DCLKOUT_MARK, PD7_FN), 308 PINMUX_DATA(SCIF1_SCK_MARK, PD6_FN), 309 PINMUX_DATA(SCIF1_RXD_MARK, PD5_FN), 310 PINMUX_DATA(SCIF1_TXD_MARK, PD4_FN), 311 PINMUX_DATA(DACK1_MARK, P1MSEL13_1, P1MSEL12_0, PD3_FN), 312 PINMUX_DATA(BACK_MARK, P1MSEL13_0, P1MSEL12_1, PD3_FN), 313 PINMUX_DATA(FALE_MARK, P1MSEL13_0, P1MSEL12_0, PD3_FN), 314 PINMUX_DATA(DACK0_MARK, P1MSEL14_1, PD2_FN), 315 PINMUX_DATA(FCLE_MARK, P1MSEL14_0, PD2_FN), 316 PINMUX_DATA(DREQ1_MARK, P1MSEL10_0, P1MSEL9_1, PD1_FN), 317 PINMUX_DATA(BREQ_MARK, P1MSEL10_1, P1MSEL9_0, PD1_FN), 318 PINMUX_DATA(USB_OVC1_MARK, P1MSEL10_0, P1MSEL9_0, PD1_FN), 319 PINMUX_DATA(DREQ0_MARK, P1MSEL11_1, PD0_FN), 320 PINMUX_DATA(USB_OVC0_MARK, P1MSEL11_0, PD0_FN), 321 322 /* PE FN */ 323 PINMUX_DATA(USB_PENC1_MARK, PE7_FN), 324 PINMUX_DATA(USB_PENC0_MARK, PE6_FN), 325 326 /* PF FN */ 327 PINMUX_DATA(HAC1_SDOUT_MARK, P2MSEL15_0, P2MSEL14_0, PF7_FN), 328 PINMUX_DATA(HAC1_SDIN_MARK, P2MSEL15_0, P2MSEL14_0, PF6_FN), 329 PINMUX_DATA(HAC1_SYNC_MARK, P2MSEL15_0, P2MSEL14_0, PF5_FN), 330 PINMUX_DATA(HAC1_BITCLK_MARK, P2MSEL15_0, P2MSEL14_0, PF4_FN), 331 PINMUX_DATA(HAC0_SDOUT_MARK, P2MSEL13_0, P2MSEL12_0, PF3_FN), 332 PINMUX_DATA(HAC0_SDIN_MARK, P2MSEL13_0, P2MSEL12_0, PF2_FN), 333 PINMUX_DATA(HAC0_SYNC_MARK, P2MSEL13_0, P2MSEL12_0, PF1_FN), 334 PINMUX_DATA(HAC0_BITCLK_MARK, P2MSEL13_0, P2MSEL12_0, PF0_FN), 335 PINMUX_DATA(SSI1_SDATA_MARK, P2MSEL15_0, P2MSEL14_1, PF7_FN), 336 PINMUX_DATA(SSI1_SCK_MARK, P2MSEL15_0, P2MSEL14_1, PF6_FN), 337 PINMUX_DATA(SSI1_WS_MARK, P2MSEL15_0, P2MSEL14_1, PF5_FN), 338 PINMUX_DATA(SSI1_CLK_MARK, P2MSEL15_0, P2MSEL14_1, PF4_FN), 339 PINMUX_DATA(SSI0_SDATA_MARK, P2MSEL13_0, P2MSEL12_1, PF3_FN), 340 PINMUX_DATA(SSI0_SCK_MARK, P2MSEL13_0, P2MSEL12_1, PF2_FN), 341 PINMUX_DATA(SSI0_WS_MARK, P2MSEL13_0, P2MSEL12_1, PF1_FN), 342 PINMUX_DATA(SSI0_CLK_MARK, P2MSEL13_0, P2MSEL12_1, PF0_FN), 343 PINMUX_DATA(SDIF1CMD_MARK, P2MSEL15_1, P2MSEL14_0, PF7_FN), 344 PINMUX_DATA(SDIF1CD_MARK, P2MSEL15_1, P2MSEL14_0, PF6_FN), 345 PINMUX_DATA(SDIF1WP_MARK, P2MSEL15_1, P2MSEL14_0, PF5_FN), 346 PINMUX_DATA(SDIF1CLK_MARK, P2MSEL15_1, P2MSEL14_0, PF4_FN), 347 PINMUX_DATA(SDIF1D3_MARK, P2MSEL13_1, P2MSEL12_0, PF3_FN), 348 PINMUX_DATA(SDIF1D2_MARK, P2MSEL13_1, P2MSEL12_0, PF2_FN), 349 PINMUX_DATA(SDIF1D1_MARK, P2MSEL13_1, P2MSEL12_0, PF1_FN), 350 PINMUX_DATA(SDIF1D0_MARK, P2MSEL13_1, P2MSEL12_0, PF0_FN), 351 352 /* PG FN */ 353 PINMUX_DATA(SCIF3_SCK_MARK, P1MSEL8_0, PG7_FN), 354 PINMUX_DATA(SSI2_SDATA_MARK, P1MSEL8_1, PG7_FN), 355 PINMUX_DATA(SCIF3_RXD_MARK, P1MSEL7_0, P1MSEL6_0, PG6_FN), 356 PINMUX_DATA(SSI2_SCK_MARK, P1MSEL7_1, P1MSEL6_0, PG6_FN), 357 PINMUX_DATA(TCLK_MARK, P1MSEL7_0, P1MSEL6_1, PG6_FN), 358 PINMUX_DATA(SCIF3_TXD_MARK, P1MSEL5_0, P1MSEL4_0, PG5_FN), 359 PINMUX_DATA(SSI2_WS_MARK, P1MSEL5_1, P1MSEL4_0, PG5_FN), 360 PINMUX_DATA(HAC_RES_MARK, P1MSEL5_0, P1MSEL4_1, PG5_FN), 361 362 /* PH FN */ 363 PINMUX_DATA(DACK3_MARK, P2MSEL4_0, PH7_FN), 364 PINMUX_DATA(SDIF0CMD_MARK, P2MSEL4_1, PH7_FN), 365 PINMUX_DATA(DACK2_MARK, P2MSEL4_0, PH6_FN), 366 PINMUX_DATA(SDIF0CD_MARK, P2MSEL4_1, PH6_FN), 367 PINMUX_DATA(DREQ3_MARK, P2MSEL4_0, PH5_FN), 368 PINMUX_DATA(SDIF0WP_MARK, P2MSEL4_1, PH5_FN), 369 PINMUX_DATA(DREQ2_MARK, P2MSEL3_0, P2MSEL2_1, PH4_FN), 370 PINMUX_DATA(SDIF0CLK_MARK, P2MSEL3_1, P2MSEL2_0, PH4_FN), 371 PINMUX_DATA(SCIF0_CTS_MARK, P2MSEL3_0, P2MSEL2_0, PH4_FN), 372 PINMUX_DATA(SDIF0D3_MARK, P2MSEL1_1, P2MSEL0_0, PH3_FN), 373 PINMUX_DATA(SCIF0_RTS_MARK, P2MSEL1_0, P2MSEL0_0, PH3_FN), 374 PINMUX_DATA(IRL7_MARK, P2MSEL1_0, P2MSEL0_1, PH3_FN), 375 PINMUX_DATA(SDIF0D2_MARK, P2MSEL1_1, P2MSEL0_0, PH2_FN), 376 PINMUX_DATA(SCIF0_SCK_MARK, P2MSEL1_0, P2MSEL0_0, PH2_FN), 377 PINMUX_DATA(IRL6_MARK, P2MSEL1_0, P2MSEL0_1, PH2_FN), 378 PINMUX_DATA(SDIF0D1_MARK, P2MSEL1_1, P2MSEL0_0, PH1_FN), 379 PINMUX_DATA(SCIF0_RXD_MARK, P2MSEL1_0, P2MSEL0_0, PH1_FN), 380 PINMUX_DATA(IRL5_MARK, P2MSEL1_0, P2MSEL0_1, PH1_FN), 381 PINMUX_DATA(SDIF0D0_MARK, P2MSEL1_1, P2MSEL0_0, PH0_FN), 382 PINMUX_DATA(SCIF0_TXD_MARK, P2MSEL1_0, P2MSEL0_0, PH0_FN), 383 PINMUX_DATA(IRL4_MARK, P2MSEL1_0, P2MSEL0_1, PH0_FN), 384 385 /* PJ FN */ 386 PINMUX_DATA(SCIF5_SCK_MARK, P2MSEL11_1, PJ7_FN), 387 PINMUX_DATA(FRB_MARK, P2MSEL11_0, PJ7_FN), 388 PINMUX_DATA(SCIF5_RXD_MARK, P2MSEL10_0, PJ6_FN), 389 PINMUX_DATA(IOIS16_MARK, P2MSEL10_1, PJ6_FN), 390 PINMUX_DATA(SCIF5_TXD_MARK, P2MSEL10_0, PJ5_FN), 391 PINMUX_DATA(CE2B_MARK, P2MSEL10_1, PJ5_FN), 392 PINMUX_DATA(DRAK3_MARK, P2MSEL7_0, PJ4_FN), 393 PINMUX_DATA(CE2A_MARK, P2MSEL7_1, PJ4_FN), 394 PINMUX_DATA(SCIF4_SCK_MARK, P2MSEL9_0, P2MSEL8_0, PJ3_FN), 395 PINMUX_DATA(DRAK2_MARK, P2MSEL9_0, P2MSEL8_1, PJ3_FN), 396 PINMUX_DATA(SSI3_WS_MARK, P2MSEL9_1, P2MSEL8_0, PJ3_FN), 397 PINMUX_DATA(SCIF4_RXD_MARK, P2MSEL6_1, P2MSEL5_0, PJ2_FN), 398 PINMUX_DATA(DRAK1_MARK, P2MSEL6_0, P2MSEL5_1, PJ2_FN), 399 PINMUX_DATA(FSTATUS_MARK, P2MSEL6_0, P2MSEL5_0, PJ2_FN), 400 PINMUX_DATA(SSI3_SDATA_MARK, P2MSEL6_1, P2MSEL5_1, PJ2_FN), 401 PINMUX_DATA(SCIF4_TXD_MARK, P2MSEL6_1, P2MSEL5_0, PJ1_FN), 402 PINMUX_DATA(DRAK0_MARK, P2MSEL6_0, P2MSEL5_1, PJ1_FN), 403 PINMUX_DATA(FSE_MARK, P2MSEL6_0, P2MSEL5_0, PJ1_FN), 404 PINMUX_DATA(SSI3_SCK_MARK, P2MSEL6_1, P2MSEL5_1, PJ1_FN), 405 }; 406 407 static const struct sh_pfc_pin pinmux_pins[] = { 408 /* PA */ 409 PINMUX_GPIO(PA7), 410 PINMUX_GPIO(PA6), 411 PINMUX_GPIO(PA5), 412 PINMUX_GPIO(PA4), 413 PINMUX_GPIO(PA3), 414 PINMUX_GPIO(PA2), 415 PINMUX_GPIO(PA1), 416 PINMUX_GPIO(PA0), 417 418 /* PB */ 419 PINMUX_GPIO(PB7), 420 PINMUX_GPIO(PB6), 421 PINMUX_GPIO(PB5), 422 PINMUX_GPIO(PB4), 423 PINMUX_GPIO(PB3), 424 PINMUX_GPIO(PB2), 425 PINMUX_GPIO(PB1), 426 PINMUX_GPIO(PB0), 427 428 /* PC */ 429 PINMUX_GPIO(PC7), 430 PINMUX_GPIO(PC6), 431 PINMUX_GPIO(PC5), 432 PINMUX_GPIO(PC4), 433 PINMUX_GPIO(PC3), 434 PINMUX_GPIO(PC2), 435 PINMUX_GPIO(PC1), 436 PINMUX_GPIO(PC0), 437 438 /* PD */ 439 PINMUX_GPIO(PD7), 440 PINMUX_GPIO(PD6), 441 PINMUX_GPIO(PD5), 442 PINMUX_GPIO(PD4), 443 PINMUX_GPIO(PD3), 444 PINMUX_GPIO(PD2), 445 PINMUX_GPIO(PD1), 446 PINMUX_GPIO(PD0), 447 448 /* PE */ 449 PINMUX_GPIO(PE7), 450 PINMUX_GPIO(PE6), 451 452 /* PF */ 453 PINMUX_GPIO(PF7), 454 PINMUX_GPIO(PF6), 455 PINMUX_GPIO(PF5), 456 PINMUX_GPIO(PF4), 457 PINMUX_GPIO(PF3), 458 PINMUX_GPIO(PF2), 459 PINMUX_GPIO(PF1), 460 PINMUX_GPIO(PF0), 461 462 /* PG */ 463 PINMUX_GPIO(PG7), 464 PINMUX_GPIO(PG6), 465 PINMUX_GPIO(PG5), 466 467 /* PH */ 468 PINMUX_GPIO(PH7), 469 PINMUX_GPIO(PH6), 470 PINMUX_GPIO(PH5), 471 PINMUX_GPIO(PH4), 472 PINMUX_GPIO(PH3), 473 PINMUX_GPIO(PH2), 474 PINMUX_GPIO(PH1), 475 PINMUX_GPIO(PH0), 476 477 /* PJ */ 478 PINMUX_GPIO(PJ7), 479 PINMUX_GPIO(PJ6), 480 PINMUX_GPIO(PJ5), 481 PINMUX_GPIO(PJ4), 482 PINMUX_GPIO(PJ3), 483 PINMUX_GPIO(PJ2), 484 PINMUX_GPIO(PJ1), 485 }; 486 487 #define PINMUX_FN_BASE ARRAY_SIZE(pinmux_pins) 488 489 static const struct pinmux_func pinmux_func_gpios[] = { 490 /* FN */ 491 GPIO_FN(CDE), 492 GPIO_FN(ETH_MAGIC), 493 GPIO_FN(DISP), 494 GPIO_FN(ETH_LINK), 495 GPIO_FN(DR5), 496 GPIO_FN(ETH_TX_ER), 497 GPIO_FN(DR4), 498 GPIO_FN(ETH_TX_EN), 499 GPIO_FN(DR3), 500 GPIO_FN(ETH_TXD3), 501 GPIO_FN(DR2), 502 GPIO_FN(ETH_TXD2), 503 GPIO_FN(DR1), 504 GPIO_FN(ETH_TXD1), 505 GPIO_FN(DR0), 506 GPIO_FN(ETH_TXD0), 507 GPIO_FN(VSYNC), 508 GPIO_FN(HSPI_CLK), 509 GPIO_FN(ODDF), 510 GPIO_FN(HSPI_CS), 511 GPIO_FN(DG5), 512 GPIO_FN(ETH_MDIO), 513 GPIO_FN(DG4), 514 GPIO_FN(ETH_RX_CLK), 515 GPIO_FN(DG3), 516 GPIO_FN(ETH_MDC), 517 GPIO_FN(DG2), 518 GPIO_FN(ETH_COL), 519 GPIO_FN(DG1), 520 GPIO_FN(ETH_TX_CLK), 521 GPIO_FN(DG0), 522 GPIO_FN(ETH_CRS), 523 GPIO_FN(DCLKIN), 524 GPIO_FN(HSPI_RX), 525 GPIO_FN(HSYNC), 526 GPIO_FN(HSPI_TX), 527 GPIO_FN(DB5), 528 GPIO_FN(ETH_RXD3), 529 GPIO_FN(DB4), 530 GPIO_FN(ETH_RXD2), 531 GPIO_FN(DB3), 532 GPIO_FN(ETH_RXD1), 533 GPIO_FN(DB2), 534 GPIO_FN(ETH_RXD0), 535 GPIO_FN(DB1), 536 GPIO_FN(ETH_RX_DV), 537 GPIO_FN(DB0), 538 GPIO_FN(ETH_RX_ER), 539 GPIO_FN(DCLKOUT), 540 GPIO_FN(SCIF1_SCK), 541 GPIO_FN(SCIF1_RXD), 542 GPIO_FN(SCIF1_TXD), 543 GPIO_FN(DACK1), 544 GPIO_FN(BACK), 545 GPIO_FN(FALE), 546 GPIO_FN(DACK0), 547 GPIO_FN(FCLE), 548 GPIO_FN(DREQ1), 549 GPIO_FN(BREQ), 550 GPIO_FN(USB_OVC1), 551 GPIO_FN(DREQ0), 552 GPIO_FN(USB_OVC0), 553 GPIO_FN(USB_PENC1), 554 GPIO_FN(USB_PENC0), 555 GPIO_FN(HAC1_SDOUT), 556 GPIO_FN(SSI1_SDATA), 557 GPIO_FN(SDIF1CMD), 558 GPIO_FN(HAC1_SDIN), 559 GPIO_FN(SSI1_SCK), 560 GPIO_FN(SDIF1CD), 561 GPIO_FN(HAC1_SYNC), 562 GPIO_FN(SSI1_WS), 563 GPIO_FN(SDIF1WP), 564 GPIO_FN(HAC1_BITCLK), 565 GPIO_FN(SSI1_CLK), 566 GPIO_FN(SDIF1CLK), 567 GPIO_FN(HAC0_SDOUT), 568 GPIO_FN(SSI0_SDATA), 569 GPIO_FN(SDIF1D3), 570 GPIO_FN(HAC0_SDIN), 571 GPIO_FN(SSI0_SCK), 572 GPIO_FN(SDIF1D2), 573 GPIO_FN(HAC0_SYNC), 574 GPIO_FN(SSI0_WS), 575 GPIO_FN(SDIF1D1), 576 GPIO_FN(HAC0_BITCLK), 577 GPIO_FN(SSI0_CLK), 578 GPIO_FN(SDIF1D0), 579 GPIO_FN(SCIF3_SCK), 580 GPIO_FN(SSI2_SDATA), 581 GPIO_FN(SCIF3_RXD), 582 GPIO_FN(TCLK), 583 GPIO_FN(SSI2_SCK), 584 GPIO_FN(SCIF3_TXD), 585 GPIO_FN(HAC_RES), 586 GPIO_FN(SSI2_WS), 587 GPIO_FN(DACK3), 588 GPIO_FN(SDIF0CMD), 589 GPIO_FN(DACK2), 590 GPIO_FN(SDIF0CD), 591 GPIO_FN(DREQ3), 592 GPIO_FN(SDIF0WP), 593 GPIO_FN(SCIF0_CTS), 594 GPIO_FN(DREQ2), 595 GPIO_FN(SDIF0CLK), 596 GPIO_FN(SCIF0_RTS), 597 GPIO_FN(IRL7), 598 GPIO_FN(SDIF0D3), 599 GPIO_FN(SCIF0_SCK), 600 GPIO_FN(IRL6), 601 GPIO_FN(SDIF0D2), 602 GPIO_FN(SCIF0_RXD), 603 GPIO_FN(IRL5), 604 GPIO_FN(SDIF0D1), 605 GPIO_FN(SCIF0_TXD), 606 GPIO_FN(IRL4), 607 GPIO_FN(SDIF0D0), 608 GPIO_FN(SCIF5_SCK), 609 GPIO_FN(FRB), 610 GPIO_FN(SCIF5_RXD), 611 GPIO_FN(IOIS16), 612 GPIO_FN(SCIF5_TXD), 613 GPIO_FN(CE2B), 614 GPIO_FN(DRAK3), 615 GPIO_FN(CE2A), 616 GPIO_FN(SCIF4_SCK), 617 GPIO_FN(DRAK2), 618 GPIO_FN(SSI3_WS), 619 GPIO_FN(SCIF4_RXD), 620 GPIO_FN(DRAK1), 621 GPIO_FN(SSI3_SDATA), 622 GPIO_FN(FSTATUS), 623 GPIO_FN(SCIF4_TXD), 624 GPIO_FN(DRAK0), 625 GPIO_FN(SSI3_SCK), 626 GPIO_FN(FSE), 627 }; 628 629 static const struct pinmux_cfg_reg pinmux_config_regs[] = { 630 { PINMUX_CFG_REG("PACR", 0xffcc0000, 16, 2, GROUP( 631 PA7_FN, PA7_OUT, PA7_IN, 0, 632 PA6_FN, PA6_OUT, PA6_IN, 0, 633 PA5_FN, PA5_OUT, PA5_IN, 0, 634 PA4_FN, PA4_OUT, PA4_IN, 0, 635 PA3_FN, PA3_OUT, PA3_IN, 0, 636 PA2_FN, PA2_OUT, PA2_IN, 0, 637 PA1_FN, PA1_OUT, PA1_IN, 0, 638 PA0_FN, PA0_OUT, PA0_IN, 0 )) 639 }, 640 { PINMUX_CFG_REG("PBCR", 0xffcc0002, 16, 2, GROUP( 641 PB7_FN, PB7_OUT, PB7_IN, 0, 642 PB6_FN, PB6_OUT, PB6_IN, 0, 643 PB5_FN, PB5_OUT, PB5_IN, 0, 644 PB4_FN, PB4_OUT, PB4_IN, 0, 645 PB3_FN, PB3_OUT, PB3_IN, 0, 646 PB2_FN, PB2_OUT, PB2_IN, 0, 647 PB1_FN, PB1_OUT, PB1_IN, 0, 648 PB0_FN, PB0_OUT, PB0_IN, 0 )) 649 }, 650 { PINMUX_CFG_REG("PCCR", 0xffcc0004, 16, 2, GROUP( 651 PC7_FN, PC7_OUT, PC7_IN, 0, 652 PC6_FN, PC6_OUT, PC6_IN, 0, 653 PC5_FN, PC5_OUT, PC5_IN, 0, 654 PC4_FN, PC4_OUT, PC4_IN, 0, 655 PC3_FN, PC3_OUT, PC3_IN, 0, 656 PC2_FN, PC2_OUT, PC2_IN, 0, 657 PC1_FN, PC1_OUT, PC1_IN, 0, 658 PC0_FN, PC0_OUT, PC0_IN, 0 )) 659 }, 660 { PINMUX_CFG_REG("PDCR", 0xffcc0006, 16, 2, GROUP( 661 PD7_FN, PD7_OUT, PD7_IN, 0, 662 PD6_FN, PD6_OUT, PD6_IN, 0, 663 PD5_FN, PD5_OUT, PD5_IN, 0, 664 PD4_FN, PD4_OUT, PD4_IN, 0, 665 PD3_FN, PD3_OUT, PD3_IN, 0, 666 PD2_FN, PD2_OUT, PD2_IN, 0, 667 PD1_FN, PD1_OUT, PD1_IN, 0, 668 PD0_FN, PD0_OUT, PD0_IN, 0 )) 669 }, 670 { PINMUX_CFG_REG("PECR", 0xffcc0008, 16, 2, GROUP( 671 PE7_FN, PE7_OUT, PE7_IN, 0, 672 PE6_FN, PE6_OUT, PE6_IN, 0, 673 0, 0, 0, 0, 674 0, 0, 0, 0, 675 0, 0, 0, 0, 676 0, 0, 0, 0, 677 0, 0, 0, 0, 678 0, 0, 0, 0, )) 679 }, 680 { PINMUX_CFG_REG("PFCR", 0xffcc000a, 16, 2, GROUP( 681 PF7_FN, PF7_OUT, PF7_IN, 0, 682 PF6_FN, PF6_OUT, PF6_IN, 0, 683 PF5_FN, PF5_OUT, PF5_IN, 0, 684 PF4_FN, PF4_OUT, PF4_IN, 0, 685 PF3_FN, PF3_OUT, PF3_IN, 0, 686 PF2_FN, PF2_OUT, PF2_IN, 0, 687 PF1_FN, PF1_OUT, PF1_IN, 0, 688 PF0_FN, PF0_OUT, PF0_IN, 0 )) 689 }, 690 { PINMUX_CFG_REG("PGCR", 0xffcc000c, 16, 2, GROUP( 691 PG7_FN, PG7_OUT, PG7_IN, 0, 692 PG6_FN, PG6_OUT, PG6_IN, 0, 693 PG5_FN, PG5_OUT, PG5_IN, 0, 694 0, 0, 0, 0, 695 0, 0, 0, 0, 696 0, 0, 0, 0, 697 0, 0, 0, 0, 698 0, 0, 0, 0, )) 699 }, 700 { PINMUX_CFG_REG("PHCR", 0xffcc000e, 16, 2, GROUP( 701 PH7_FN, PH7_OUT, PH7_IN, 0, 702 PH6_FN, PH6_OUT, PH6_IN, 0, 703 PH5_FN, PH5_OUT, PH5_IN, 0, 704 PH4_FN, PH4_OUT, PH4_IN, 0, 705 PH3_FN, PH3_OUT, PH3_IN, 0, 706 PH2_FN, PH2_OUT, PH2_IN, 0, 707 PH1_FN, PH1_OUT, PH1_IN, 0, 708 PH0_FN, PH0_OUT, PH0_IN, 0 )) 709 }, 710 { PINMUX_CFG_REG("PJCR", 0xffcc0010, 16, 2, GROUP( 711 PJ7_FN, PJ7_OUT, PJ7_IN, 0, 712 PJ6_FN, PJ6_OUT, PJ6_IN, 0, 713 PJ5_FN, PJ5_OUT, PJ5_IN, 0, 714 PJ4_FN, PJ4_OUT, PJ4_IN, 0, 715 PJ3_FN, PJ3_OUT, PJ3_IN, 0, 716 PJ2_FN, PJ2_OUT, PJ2_IN, 0, 717 PJ1_FN, PJ1_OUT, PJ1_IN, 0, 718 0, 0, 0, 0, )) 719 }, 720 { PINMUX_CFG_REG("P1MSELR", 0xffcc0080, 16, 1, GROUP( 721 0, 0, 722 P1MSEL14_0, P1MSEL14_1, 723 P1MSEL13_0, P1MSEL13_1, 724 P1MSEL12_0, P1MSEL12_1, 725 P1MSEL11_0, P1MSEL11_1, 726 P1MSEL10_0, P1MSEL10_1, 727 P1MSEL9_0, P1MSEL9_1, 728 P1MSEL8_0, P1MSEL8_1, 729 P1MSEL7_0, P1MSEL7_1, 730 P1MSEL6_0, P1MSEL6_1, 731 P1MSEL5_0, P1MSEL5_1, 732 P1MSEL4_0, P1MSEL4_1, 733 P1MSEL3_0, P1MSEL3_1, 734 P1MSEL2_0, P1MSEL2_1, 735 P1MSEL1_0, P1MSEL1_1, 736 P1MSEL0_0, P1MSEL0_1 )) 737 }, 738 { PINMUX_CFG_REG("P2MSELR", 0xffcc0082, 16, 1, GROUP( 739 P2MSEL15_0, P2MSEL15_1, 740 P2MSEL14_0, P2MSEL14_1, 741 P2MSEL13_0, P2MSEL13_1, 742 P2MSEL12_0, P2MSEL12_1, 743 P2MSEL11_0, P2MSEL11_1, 744 P2MSEL10_0, P2MSEL10_1, 745 P2MSEL9_0, P2MSEL9_1, 746 P2MSEL8_0, P2MSEL8_1, 747 P2MSEL7_0, P2MSEL7_1, 748 P2MSEL6_0, P2MSEL6_1, 749 P2MSEL5_0, P2MSEL5_1, 750 P2MSEL4_0, P2MSEL4_1, 751 P2MSEL3_0, P2MSEL3_1, 752 P2MSEL2_0, P2MSEL2_1, 753 P2MSEL1_0, P2MSEL1_1, 754 P2MSEL0_0, P2MSEL0_1 )) 755 }, 756 {} 757 }; 758 759 static const struct pinmux_data_reg pinmux_data_regs[] = { 760 { PINMUX_DATA_REG("PADR", 0xffcc0020, 8, GROUP( 761 PA7_DATA, PA6_DATA, PA5_DATA, PA4_DATA, 762 PA3_DATA, PA2_DATA, PA1_DATA, PA0_DATA )) 763 }, 764 { PINMUX_DATA_REG("PBDR", 0xffcc0022, 8, GROUP( 765 PB7_DATA, PB6_DATA, PB5_DATA, PB4_DATA, 766 PB3_DATA, PB2_DATA, PB1_DATA, PB0_DATA )) 767 }, 768 { PINMUX_DATA_REG("PCDR", 0xffcc0024, 8, GROUP( 769 PC7_DATA, PC6_DATA, PC5_DATA, PC4_DATA, 770 PC3_DATA, PC2_DATA, PC1_DATA, PC0_DATA )) 771 }, 772 { PINMUX_DATA_REG("PDDR", 0xffcc0026, 8, GROUP( 773 PD7_DATA, PD6_DATA, PD5_DATA, PD4_DATA, 774 PD3_DATA, PD2_DATA, PD1_DATA, PD0_DATA )) 775 }, 776 { PINMUX_DATA_REG("PEDR", 0xffcc0028, 8, GROUP( 777 PE7_DATA, PE6_DATA, 778 0, 0, 0, 0, 0, 0 )) 779 }, 780 { PINMUX_DATA_REG("PFDR", 0xffcc002a, 8, GROUP( 781 PF7_DATA, PF6_DATA, PF5_DATA, PF4_DATA, 782 PF3_DATA, PF2_DATA, PF1_DATA, PF0_DATA )) 783 }, 784 { PINMUX_DATA_REG("PGDR", 0xffcc002c, 8, GROUP( 785 PG7_DATA, PG6_DATA, PG5_DATA, 0, 786 0, 0, 0, 0 )) 787 }, 788 { PINMUX_DATA_REG("PHDR", 0xffcc002e, 8, GROUP( 789 PH7_DATA, PH6_DATA, PH5_DATA, PH4_DATA, 790 PH3_DATA, PH2_DATA, PH1_DATA, PH0_DATA )) 791 }, 792 { PINMUX_DATA_REG("PJDR", 0xffcc0030, 8, GROUP( 793 PJ7_DATA, PJ6_DATA, PJ5_DATA, PJ4_DATA, 794 PJ3_DATA, PJ2_DATA, PJ1_DATA, 0 )) 795 }, 796 { }, 797 }; 798 799 const struct sh_pfc_soc_info sh7786_pinmux_info = { 800 .name = "sh7786_pfc", 801 .input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END }, 802 .output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END }, 803 .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, 804 805 .pins = pinmux_pins, 806 .nr_pins = ARRAY_SIZE(pinmux_pins), 807 .func_gpios = pinmux_func_gpios, 808 .nr_func_gpios = ARRAY_SIZE(pinmux_func_gpios), 809 810 .cfg_regs = pinmux_config_regs, 811 .data_regs = pinmux_data_regs, 812 813 .pinmux_data = pinmux_data, 814 .pinmux_data_size = ARRAY_SIZE(pinmux_data), 815 }; 816