diff options
-rw-r--r-- | drivers/pinctrl/sh-pfc/pfc-r8a77990.c | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a77990.c b/drivers/pinctrl/sh-pfc/pfc-r8a77990.c index 9cd4d0799652..a68fd658aada 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a77990.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a77990.c | |||
@@ -1299,6 +1299,78 @@ static const struct sh_pfc_pin pinmux_pins[] = { | |||
1299 | SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('D'), 3, PRESETOUT_N, CFG_FLAGS), | 1299 | SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('D'), 3, PRESETOUT_N, CFG_FLAGS), |
1300 | }; | 1300 | }; |
1301 | 1301 | ||
1302 | /* - EtherAVB --------------------------------------------------------------- */ | ||
1303 | static const unsigned int avb_link_pins[] = { | ||
1304 | /* AVB_LINK */ | ||
1305 | RCAR_GP_PIN(2, 23), | ||
1306 | }; | ||
1307 | |||
1308 | static const unsigned int avb_link_mux[] = { | ||
1309 | AVB_LINK_MARK, | ||
1310 | }; | ||
1311 | |||
1312 | static const unsigned int avb_magic_pins[] = { | ||
1313 | /* AVB_MAGIC */ | ||
1314 | RCAR_GP_PIN(2, 22), | ||
1315 | }; | ||
1316 | |||
1317 | static const unsigned int avb_magic_mux[] = { | ||
1318 | AVB_MAGIC_MARK, | ||
1319 | }; | ||
1320 | |||
1321 | static const unsigned int avb_phy_int_pins[] = { | ||
1322 | /* AVB_PHY_INT */ | ||
1323 | RCAR_GP_PIN(2, 21), | ||
1324 | }; | ||
1325 | |||
1326 | static const unsigned int avb_phy_int_mux[] = { | ||
1327 | AVB_PHY_INT_MARK, | ||
1328 | }; | ||
1329 | |||
1330 | static const unsigned int avb_mii_pins[] = { | ||
1331 | /* | ||
1332 | * AVB_RX_CTL, AVB_RXC, AVB_RD0, | ||
1333 | * AVB_RD1, AVB_RD2, AVB_RD3, | ||
1334 | * AVB_TXCREFCLK | ||
1335 | */ | ||
1336 | RCAR_GP_PIN(2, 14), RCAR_GP_PIN(2, 15), RCAR_GP_PIN(2, 16), | ||
1337 | RCAR_GP_PIN(2, 17), RCAR_GP_PIN(2, 18), RCAR_GP_PIN(2, 19), | ||
1338 | RCAR_GP_PIN(2, 20), | ||
1339 | }; | ||
1340 | |||
1341 | static const unsigned int avb_mii_mux[] = { | ||
1342 | AVB_RX_CTL_MARK, AVB_RXC_MARK, AVB_RD0_MARK, | ||
1343 | AVB_RD1_MARK, AVB_RD2_MARK, AVB_RD3_MARK, | ||
1344 | AVB_TXCREFCLK_MARK, | ||
1345 | }; | ||
1346 | |||
1347 | static const unsigned int avb_avtp_pps_pins[] = { | ||
1348 | /* AVB_AVTP_PPS */ | ||
1349 | RCAR_GP_PIN(1, 2), | ||
1350 | }; | ||
1351 | |||
1352 | static const unsigned int avb_avtp_pps_mux[] = { | ||
1353 | AVB_AVTP_PPS_MARK, | ||
1354 | }; | ||
1355 | |||
1356 | static const unsigned int avb_avtp_match_a_pins[] = { | ||
1357 | /* AVB_AVTP_MATCH_A */ | ||
1358 | RCAR_GP_PIN(2, 24), | ||
1359 | }; | ||
1360 | |||
1361 | static const unsigned int avb_avtp_match_a_mux[] = { | ||
1362 | AVB_AVTP_MATCH_A_MARK, | ||
1363 | }; | ||
1364 | |||
1365 | static const unsigned int avb_avtp_capture_a_pins[] = { | ||
1366 | /* AVB_AVTP_CAPTURE_A */ | ||
1367 | RCAR_GP_PIN(2, 25), | ||
1368 | }; | ||
1369 | |||
1370 | static const unsigned int avb_avtp_capture_a_mux[] = { | ||
1371 | AVB_AVTP_CAPTURE_A_MARK, | ||
1372 | }; | ||
1373 | |||
1302 | /* - I2C -------------------------------------------------------------------- */ | 1374 | /* - I2C -------------------------------------------------------------------- */ |
1303 | static const unsigned int i2c1_a_pins[] = { | 1375 | static const unsigned int i2c1_a_pins[] = { |
1304 | /* SCL, SDA */ | 1376 | /* SCL, SDA */ |
@@ -1713,6 +1785,13 @@ static const unsigned int scif_clk_b_mux[] = { | |||
1713 | }; | 1785 | }; |
1714 | 1786 | ||
1715 | static const struct sh_pfc_pin_group pinmux_groups[] = { | 1787 | static const struct sh_pfc_pin_group pinmux_groups[] = { |
1788 | SH_PFC_PIN_GROUP(avb_link), | ||
1789 | SH_PFC_PIN_GROUP(avb_magic), | ||
1790 | SH_PFC_PIN_GROUP(avb_phy_int), | ||
1791 | SH_PFC_PIN_GROUP(avb_mii), | ||
1792 | SH_PFC_PIN_GROUP(avb_avtp_pps), | ||
1793 | SH_PFC_PIN_GROUP(avb_avtp_match_a), | ||
1794 | SH_PFC_PIN_GROUP(avb_avtp_capture_a), | ||
1716 | SH_PFC_PIN_GROUP(i2c1_a), | 1795 | SH_PFC_PIN_GROUP(i2c1_a), |
1717 | SH_PFC_PIN_GROUP(i2c1_b), | 1796 | SH_PFC_PIN_GROUP(i2c1_b), |
1718 | SH_PFC_PIN_GROUP(i2c1_c), | 1797 | SH_PFC_PIN_GROUP(i2c1_c), |
@@ -1760,6 +1839,16 @@ static const struct sh_pfc_pin_group pinmux_groups[] = { | |||
1760 | SH_PFC_PIN_GROUP(scif_clk_b), | 1839 | SH_PFC_PIN_GROUP(scif_clk_b), |
1761 | }; | 1840 | }; |
1762 | 1841 | ||
1842 | static const char * const avb_groups[] = { | ||
1843 | "avb_link", | ||
1844 | "avb_magic", | ||
1845 | "avb_phy_int", | ||
1846 | "avb_mii", | ||
1847 | "avb_avtp_pps", | ||
1848 | "avb_avtp_match_a", | ||
1849 | "avb_avtp_capture_a", | ||
1850 | }; | ||
1851 | |||
1763 | static const char * const i2c1_groups[] = { | 1852 | static const char * const i2c1_groups[] = { |
1764 | "i2c1_a", | 1853 | "i2c1_a", |
1765 | "i2c1_b", | 1854 | "i2c1_b", |
@@ -1845,6 +1934,7 @@ static const char * const scif_clk_groups[] = { | |||
1845 | }; | 1934 | }; |
1846 | 1935 | ||
1847 | static const struct sh_pfc_function pinmux_functions[] = { | 1936 | static const struct sh_pfc_function pinmux_functions[] = { |
1937 | SH_PFC_FUNCTION(avb), | ||
1848 | SH_PFC_FUNCTION(i2c1), | 1938 | SH_PFC_FUNCTION(i2c1), |
1849 | SH_PFC_FUNCTION(i2c2), | 1939 | SH_PFC_FUNCTION(i2c2), |
1850 | SH_PFC_FUNCTION(i2c4), | 1940 | SH_PFC_FUNCTION(i2c4), |