aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMasahiro Yamada <yamada.masahiro@socionext.com>2016-07-06 11:12:11 -0400
committerLinus Walleij <linus.walleij@linaro.org>2016-07-11 03:53:25 -0400
commit1e359ab1285eaa7ce4018746d53058ab256d6092 (patch)
tree694b31dce26d304f5eb2eb19611ab4bde3e5117c
parentf7973d8ba01648bb878fa30dffe3a18c41081c44 (diff)
pinctrl: uniphier: add Ethernet pin-mux settings
Add the following Ethernet interfaces: PH1-LD4: MII, RMII PH1-Pro4: MII, RMII, RGMII PH1-sLD8: MII, RMII (Built-in PHY is also supported) ProXstream2: MII, RMII, RGMII PH1-LD6b: RMII, RGMII PH1-LD11: RMII (Built-in PHY is also supported) PH1-LD20: RMII, RGMII Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-rw-r--r--drivers/pinctrl/uniphier/pinctrl-uniphier-ld11.c6
-rw-r--r--drivers/pinctrl/uniphier/pinctrl-uniphier-ld20.c13
-rw-r--r--drivers/pinctrl/uniphier/pinctrl-uniphier-ld4.c14
-rw-r--r--drivers/pinctrl/uniphier/pinctrl-uniphier-ld6b.c14
-rw-r--r--drivers/pinctrl/uniphier/pinctrl-uniphier-pro4.c26
-rw-r--r--drivers/pinctrl/uniphier/pinctrl-uniphier-pxs2.c22
-rw-r--r--drivers/pinctrl/uniphier/pinctrl-uniphier-sld8.c14
7 files changed, 109 insertions, 0 deletions
diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-ld11.c b/drivers/pinctrl/uniphier/pinctrl-uniphier-ld11.c
index 89a260e60431..77a0236ee781 100644
--- a/drivers/pinctrl/uniphier/pinctrl-uniphier-ld11.c
+++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-ld11.c
@@ -474,6 +474,9 @@ static const unsigned emmc_pins[] = {18, 19, 20, 21, 22, 23, 24, 25};
474static const int emmc_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0}; 474static const int emmc_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0};
475static const unsigned emmc_dat8_pins[] = {26, 27, 28, 29}; 475static const unsigned emmc_dat8_pins[] = {26, 27, 28, 29};
476static const int emmc_dat8_muxvals[] = {0, 0, 0, 0}; 476static const int emmc_dat8_muxvals[] = {0, 0, 0, 0};
477static const unsigned ether_rmii_pins[] = {6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
478 16, 17};
479static const int ether_rmii_muxvals[] = {4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4};
477static const unsigned i2c0_pins[] = {63, 64}; 480static const unsigned i2c0_pins[] = {63, 64};
478static const int i2c0_muxvals[] = {0, 0}; 481static const int i2c0_muxvals[] = {0, 0};
479static const unsigned i2c1_pins[] = {65, 66}; 482static const unsigned i2c1_pins[] = {65, 66};
@@ -589,6 +592,7 @@ static const int xirq_alternatives_muxvals[] = {
589static const struct uniphier_pinctrl_group uniphier_ld11_groups[] = { 592static const struct uniphier_pinctrl_group uniphier_ld11_groups[] = {
590 UNIPHIER_PINCTRL_GROUP(emmc), 593 UNIPHIER_PINCTRL_GROUP(emmc),
591 UNIPHIER_PINCTRL_GROUP(emmc_dat8), 594 UNIPHIER_PINCTRL_GROUP(emmc_dat8),
595 UNIPHIER_PINCTRL_GROUP(ether_rmii),
592 UNIPHIER_PINCTRL_GROUP(i2c0), 596 UNIPHIER_PINCTRL_GROUP(i2c0),
593 UNIPHIER_PINCTRL_GROUP(i2c1), 597 UNIPHIER_PINCTRL_GROUP(i2c1),
594 UNIPHIER_PINCTRL_GROUP(i2c3), 598 UNIPHIER_PINCTRL_GROUP(i2c3),
@@ -815,6 +819,7 @@ static const struct uniphier_pinctrl_group uniphier_ld11_groups[] = {
815}; 819};
816 820
817static const char * const emmc_groups[] = {"emmc", "emmc_dat8"}; 821static const char * const emmc_groups[] = {"emmc", "emmc_dat8"};
822static const char * const ether_rmii_groups[] = {"ether_rmii"};
818static const char * const i2c0_groups[] = {"i2c0"}; 823static const char * const i2c0_groups[] = {"i2c0"};
819static const char * const i2c1_groups[] = {"i2c1"}; 824static const char * const i2c1_groups[] = {"i2c1"};
820static const char * const i2c3_groups[] = {"i2c3"}; 825static const char * const i2c3_groups[] = {"i2c3"};
@@ -894,6 +899,7 @@ static const char * const xirq_groups[] = {
894 899
895static const struct uniphier_pinmux_function uniphier_ld11_functions[] = { 900static const struct uniphier_pinmux_function uniphier_ld11_functions[] = {
896 UNIPHIER_PINMUX_FUNCTION(emmc), 901 UNIPHIER_PINMUX_FUNCTION(emmc),
902 UNIPHIER_PINMUX_FUNCTION(ether_rmii),
897 UNIPHIER_PINMUX_FUNCTION(i2c0), 903 UNIPHIER_PINMUX_FUNCTION(i2c0),
898 UNIPHIER_PINMUX_FUNCTION(i2c1), 904 UNIPHIER_PINMUX_FUNCTION(i2c1),
899 UNIPHIER_PINMUX_FUNCTION(i2c3), 905 UNIPHIER_PINMUX_FUNCTION(i2c3),
diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-ld20.c b/drivers/pinctrl/uniphier/pinctrl-uniphier-ld20.c
index 7311453b5b79..aa8bd9794683 100644
--- a/drivers/pinctrl/uniphier/pinctrl-uniphier-ld20.c
+++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-ld20.c
@@ -555,6 +555,13 @@ static const unsigned emmc_pins[] = {18, 19, 20, 21, 22, 23, 24, 25};
555static const int emmc_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0}; 555static const int emmc_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0};
556static const unsigned emmc_dat8_pins[] = {26, 27, 28, 29}; 556static const unsigned emmc_dat8_pins[] = {26, 27, 28, 29};
557static const int emmc_dat8_muxvals[] = {0, 0, 0, 0}; 557static const int emmc_dat8_muxvals[] = {0, 0, 0, 0};
558static const unsigned ether_rgmii_pins[] = {30, 31, 32, 33, 34, 35, 36, 37, 38,
559 39, 40, 41, 42, 43, 44, 45};
560static const int ether_rgmii_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
561 0, 0, 0, 0};
562static const unsigned ether_rmii_pins[] = {30, 31, 32, 33, 34, 35, 36, 37, 39,
563 41, 42, 45};
564static const int ether_rmii_muxvals[] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
558static const unsigned i2c0_pins[] = {63, 64}; 565static const unsigned i2c0_pins[] = {63, 64};
559static const int i2c0_muxvals[] = {0, 0}; 566static const int i2c0_muxvals[] = {0, 0};
560static const unsigned i2c1_pins[] = {65, 66}; 567static const unsigned i2c1_pins[] = {65, 66};
@@ -670,6 +677,8 @@ static const int xirq_alternatives_muxvals[] = {
670static const struct uniphier_pinctrl_group uniphier_ld20_groups[] = { 677static const struct uniphier_pinctrl_group uniphier_ld20_groups[] = {
671 UNIPHIER_PINCTRL_GROUP(emmc), 678 UNIPHIER_PINCTRL_GROUP(emmc),
672 UNIPHIER_PINCTRL_GROUP(emmc_dat8), 679 UNIPHIER_PINCTRL_GROUP(emmc_dat8),
680 UNIPHIER_PINCTRL_GROUP(ether_rgmii),
681 UNIPHIER_PINCTRL_GROUP(ether_rmii),
673 UNIPHIER_PINCTRL_GROUP(i2c0), 682 UNIPHIER_PINCTRL_GROUP(i2c0),
674 UNIPHIER_PINCTRL_GROUP(i2c1), 683 UNIPHIER_PINCTRL_GROUP(i2c1),
675 UNIPHIER_PINCTRL_GROUP(i2c3), 684 UNIPHIER_PINCTRL_GROUP(i2c3),
@@ -903,6 +912,8 @@ static const struct uniphier_pinctrl_group uniphier_ld20_groups[] = {
903}; 912};
904 913
905static const char * const emmc_groups[] = {"emmc", "emmc_dat8"}; 914static const char * const emmc_groups[] = {"emmc", "emmc_dat8"};
915static const char * const ether_rgmii_groups[] = {"ether_rgmii"};
916static const char * const ether_rmii_groups[] = {"ether_rmii"};
906static const char * const i2c0_groups[] = {"i2c0"}; 917static const char * const i2c0_groups[] = {"i2c0"};
907static const char * const i2c1_groups[] = {"i2c1"}; 918static const char * const i2c1_groups[] = {"i2c1"};
908static const char * const i2c3_groups[] = {"i2c3"}; 919static const char * const i2c3_groups[] = {"i2c3"};
@@ -983,6 +994,8 @@ static const char * const xirq_groups[] = {
983 994
984static const struct uniphier_pinmux_function uniphier_ld20_functions[] = { 995static const struct uniphier_pinmux_function uniphier_ld20_functions[] = {
985 UNIPHIER_PINMUX_FUNCTION(emmc), 996 UNIPHIER_PINMUX_FUNCTION(emmc),
997 UNIPHIER_PINMUX_FUNCTION(ether_rgmii),
998 UNIPHIER_PINMUX_FUNCTION(ether_rmii),
986 UNIPHIER_PINMUX_FUNCTION(i2c0), 999 UNIPHIER_PINMUX_FUNCTION(i2c0),
987 UNIPHIER_PINMUX_FUNCTION(i2c1), 1000 UNIPHIER_PINMUX_FUNCTION(i2c1),
988 UNIPHIER_PINMUX_FUNCTION(i2c3), 1001 UNIPHIER_PINMUX_FUNCTION(i2c3),
diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-ld4.c b/drivers/pinctrl/uniphier/pinctrl-uniphier-ld4.c
index 98044bcd493e..3edfb6f9d6df 100644
--- a/drivers/pinctrl/uniphier/pinctrl-uniphier-ld4.c
+++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-ld4.c
@@ -552,6 +552,14 @@ static const unsigned emmc_pins[] = {21, 22, 23, 24, 25, 26, 27};
552static const int emmc_muxvals[] = {0, 1, 1, 1, 1, 1, 1}; 552static const int emmc_muxvals[] = {0, 1, 1, 1, 1, 1, 1};
553static const unsigned emmc_dat8_pins[] = {28, 29, 30, 31}; 553static const unsigned emmc_dat8_pins[] = {28, 29, 30, 31};
554static const int emmc_dat8_muxvals[] = {1, 1, 1, 1}; 554static const int emmc_dat8_muxvals[] = {1, 1, 1, 1};
555static const unsigned ether_mii_pins[] = {32, 33, 34, 35, 36, 37, 38, 39, 40,
556 41, 42, 43, 136, 137, 138, 139, 140,
557 141, 142};
558static const int ether_mii_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
559 4, 4, 4, 4, 4, 4, 4};
560static const unsigned ether_rmii_pins[] = {32, 33, 34, 35, 36, 37, 38, 39, 40,
561 41, 42, 43};
562static const int ether_rmii_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
555static const unsigned i2c0_pins[] = {102, 103}; 563static const unsigned i2c0_pins[] = {102, 103};
556static const int i2c0_muxvals[] = {0, 0}; 564static const int i2c0_muxvals[] = {0, 0};
557static const unsigned i2c1_pins[] = {104, 105}; 565static const unsigned i2c1_pins[] = {104, 105};
@@ -655,6 +663,8 @@ static const int xirq_range1_muxvals[] = {
655static const struct uniphier_pinctrl_group uniphier_ld4_groups[] = { 663static const struct uniphier_pinctrl_group uniphier_ld4_groups[] = {
656 UNIPHIER_PINCTRL_GROUP(emmc), 664 UNIPHIER_PINCTRL_GROUP(emmc),
657 UNIPHIER_PINCTRL_GROUP(emmc_dat8), 665 UNIPHIER_PINCTRL_GROUP(emmc_dat8),
666 UNIPHIER_PINCTRL_GROUP(ether_mii),
667 UNIPHIER_PINCTRL_GROUP(ether_rmii),
658 UNIPHIER_PINCTRL_GROUP(i2c0), 668 UNIPHIER_PINCTRL_GROUP(i2c0),
659 UNIPHIER_PINCTRL_GROUP(i2c1), 669 UNIPHIER_PINCTRL_GROUP(i2c1),
660 UNIPHIER_PINCTRL_GROUP(i2c2), 670 UNIPHIER_PINCTRL_GROUP(i2c2),
@@ -819,6 +829,8 @@ static const struct uniphier_pinctrl_group uniphier_ld4_groups[] = {
819}; 829};
820 830
821static const char * const emmc_groups[] = {"emmc", "emmc_dat8"}; 831static const char * const emmc_groups[] = {"emmc", "emmc_dat8"};
832static const char * const ether_mii_groups[] = {"ether_mii"};
833static const char * const ether_rmii_groups[] = {"ether_rmii"};
822static const char * const i2c0_groups[] = {"i2c0"}; 834static const char * const i2c0_groups[] = {"i2c0"};
823static const char * const i2c1_groups[] = {"i2c1"}; 835static const char * const i2c1_groups[] = {"i2c1"};
824static const char * const i2c2_groups[] = {"i2c2"}; 836static const char * const i2c2_groups[] = {"i2c2"};
@@ -880,6 +892,8 @@ static const char * const xirq_groups[] = {
880 892
881static const struct uniphier_pinmux_function uniphier_ld4_functions[] = { 893static const struct uniphier_pinmux_function uniphier_ld4_functions[] = {
882 UNIPHIER_PINMUX_FUNCTION(emmc), 894 UNIPHIER_PINMUX_FUNCTION(emmc),
895 UNIPHIER_PINMUX_FUNCTION(ether_mii),
896 UNIPHIER_PINMUX_FUNCTION(ether_rmii),
883 UNIPHIER_PINMUX_FUNCTION(i2c0), 897 UNIPHIER_PINMUX_FUNCTION(i2c0),
884 UNIPHIER_PINMUX_FUNCTION(i2c1), 898 UNIPHIER_PINMUX_FUNCTION(i2c1),
885 UNIPHIER_PINMUX_FUNCTION(i2c2), 899 UNIPHIER_PINMUX_FUNCTION(i2c2),
diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-ld6b.c b/drivers/pinctrl/uniphier/pinctrl-uniphier-ld6b.c
index 6c0d66c23632..708e5100cf34 100644
--- a/drivers/pinctrl/uniphier/pinctrl-uniphier-ld6b.c
+++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-ld6b.c
@@ -745,6 +745,14 @@ static const unsigned emmc_pins[] = {36, 37, 38, 39, 40, 41, 42};
745static const int emmc_muxvals[] = {1, 1, 1, 1, 1, 1, 1}; 745static const int emmc_muxvals[] = {1, 1, 1, 1, 1, 1, 1};
746static const unsigned emmc_dat8_pins[] = {43, 44, 45, 46}; 746static const unsigned emmc_dat8_pins[] = {43, 44, 45, 46};
747static const int emmc_dat8_muxvals[] = {1, 1, 1, 1}; 747static const int emmc_dat8_muxvals[] = {1, 1, 1, 1};
748static const unsigned ether_rgmii_pins[] = {143, 144, 145, 146, 147, 148, 149,
749 150, 151, 152, 153, 154, 155, 156,
750 157, 158};
751static const int ether_rgmii_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
752 0, 0, 0, 0};
753static const unsigned ether_rmii_pins[] = {143, 144, 145, 146, 147, 148, 149,
754 150, 152, 154, 155, 158};
755static const int ether_rmii_muxvals[] = {0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1};
748static const unsigned i2c0_pins[] = {109, 110}; 756static const unsigned i2c0_pins[] = {109, 110};
749static const int i2c0_muxvals[] = {0, 0}; 757static const int i2c0_muxvals[] = {0, 0};
750static const unsigned i2c1_pins[] = {111, 112}; 758static const unsigned i2c1_pins[] = {111, 112};
@@ -873,6 +881,8 @@ static const struct uniphier_pinctrl_group uniphier_ld6b_groups[] = {
873 UNIPHIER_PINCTRL_GROUP(adinter), 881 UNIPHIER_PINCTRL_GROUP(adinter),
874 UNIPHIER_PINCTRL_GROUP(emmc), 882 UNIPHIER_PINCTRL_GROUP(emmc),
875 UNIPHIER_PINCTRL_GROUP(emmc_dat8), 883 UNIPHIER_PINCTRL_GROUP(emmc_dat8),
884 UNIPHIER_PINCTRL_GROUP(ether_rgmii),
885 UNIPHIER_PINCTRL_GROUP(ether_rmii),
876 UNIPHIER_PINCTRL_GROUP(i2c0), 886 UNIPHIER_PINCTRL_GROUP(i2c0),
877 UNIPHIER_PINCTRL_GROUP(i2c1), 887 UNIPHIER_PINCTRL_GROUP(i2c1),
878 UNIPHIER_PINCTRL_GROUP(i2c2), 888 UNIPHIER_PINCTRL_GROUP(i2c2),
@@ -1151,6 +1161,8 @@ static const struct uniphier_pinctrl_group uniphier_ld6b_groups[] = {
1151 1161
1152static const char * const adinter_groups[] = {"adinter"}; 1162static const char * const adinter_groups[] = {"adinter"};
1153static const char * const emmc_groups[] = {"emmc", "emmc_dat8"}; 1163static const char * const emmc_groups[] = {"emmc", "emmc_dat8"};
1164static const char * const ether_rgmii_groups[] = {"ether_rgmii"};
1165static const char * const ether_rmii_groups[] = {"ether_rmii"};
1154static const char * const i2c0_groups[] = {"i2c0"}; 1166static const char * const i2c0_groups[] = {"i2c0"};
1155static const char * const i2c1_groups[] = {"i2c1"}; 1167static const char * const i2c1_groups[] = {"i2c1"};
1156static const char * const i2c2_groups[] = {"i2c2"}; 1168static const char * const i2c2_groups[] = {"i2c2"};
@@ -1241,6 +1253,8 @@ static const char * const xirq_groups[] = {
1241static const struct uniphier_pinmux_function uniphier_ld6b_functions[] = { 1253static const struct uniphier_pinmux_function uniphier_ld6b_functions[] = {
1242 UNIPHIER_PINMUX_FUNCTION(adinter), /* Achip-Dchip interconnect */ 1254 UNIPHIER_PINMUX_FUNCTION(adinter), /* Achip-Dchip interconnect */
1243 UNIPHIER_PINMUX_FUNCTION(emmc), 1255 UNIPHIER_PINMUX_FUNCTION(emmc),
1256 UNIPHIER_PINMUX_FUNCTION(ether_rgmii),
1257 UNIPHIER_PINMUX_FUNCTION(ether_rmii),
1244 UNIPHIER_PINMUX_FUNCTION(i2c0), 1258 UNIPHIER_PINMUX_FUNCTION(i2c0),
1245 UNIPHIER_PINMUX_FUNCTION(i2c1), 1259 UNIPHIER_PINMUX_FUNCTION(i2c1),
1246 UNIPHIER_PINMUX_FUNCTION(i2c2), 1260 UNIPHIER_PINMUX_FUNCTION(i2c2),
diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-pro4.c b/drivers/pinctrl/uniphier/pinctrl-uniphier-pro4.c
index 002bd6e60b9a..c306e844f584 100644
--- a/drivers/pinctrl/uniphier/pinctrl-uniphier-pro4.c
+++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-pro4.c
@@ -1013,6 +1013,22 @@ static const unsigned emmc_pins[] = {40, 41, 42, 43, 51, 52, 53};
1013static const int emmc_muxvals[] = {1, 1, 1, 1, 1, 1, 1}; 1013static const int emmc_muxvals[] = {1, 1, 1, 1, 1, 1, 1};
1014static const unsigned emmc_dat8_pins[] = {44, 45, 46, 47}; 1014static const unsigned emmc_dat8_pins[] = {44, 45, 46, 47};
1015static const int emmc_dat8_muxvals[] = {1, 1, 1, 1}; 1015static const int emmc_dat8_muxvals[] = {1, 1, 1, 1};
1016static const unsigned ether_mii_pins[] = {160, 161, 162, 163, 164, 165, 166,
1017 167, 168, 169, 170, 171, 172, 173,
1018 174, 175, 176, 177, 178, 179};
1019static const int ether_mii_muxvals[] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1020 0, 0, 0, 0, 0, 0, 0};
1021static const unsigned ether_rgmii_pins[] = {160, 161, 162, 163, 164, 165, 167,
1022 168, 169, 170, 171, 172, 176, 177,
1023 178, 179};
1024static const int ether_rgmii_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1025 0, 0, 0, 0};
1026static const unsigned ether_rmii_pins[] = {160, 161, 162, 165, 168, 169, 172,
1027 173, 176, 177, 178, 179};
1028static const int ether_rmii_muxvals[] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
1029static const unsigned ether_rmiib_pins[] = {161, 162, 165, 167, 168, 169, 172,
1030 173, 176, 177, 178, 179};
1031static const int ether_rmiib_muxvals[] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0};
1016static const unsigned i2c0_pins[] = {142, 143}; 1032static const unsigned i2c0_pins[] = {142, 143};
1017static const int i2c0_muxvals[] = {0, 0}; 1033static const int i2c0_muxvals[] = {0, 0};
1018static const unsigned i2c1_pins[] = {144, 145}; 1034static const unsigned i2c1_pins[] = {144, 145};
@@ -1155,6 +1171,10 @@ static const int xirq_alternatives_muxvals[] = {
1155static const struct uniphier_pinctrl_group uniphier_pro4_groups[] = { 1171static const struct uniphier_pinctrl_group uniphier_pro4_groups[] = {
1156 UNIPHIER_PINCTRL_GROUP(emmc), 1172 UNIPHIER_PINCTRL_GROUP(emmc),
1157 UNIPHIER_PINCTRL_GROUP(emmc_dat8), 1173 UNIPHIER_PINCTRL_GROUP(emmc_dat8),
1174 UNIPHIER_PINCTRL_GROUP(ether_mii),
1175 UNIPHIER_PINCTRL_GROUP(ether_rgmii),
1176 UNIPHIER_PINCTRL_GROUP(ether_rmii),
1177 UNIPHIER_PINCTRL_GROUP(ether_rmiib),
1158 UNIPHIER_PINCTRL_GROUP(i2c0), 1178 UNIPHIER_PINCTRL_GROUP(i2c0),
1159 UNIPHIER_PINCTRL_GROUP(i2c1), 1179 UNIPHIER_PINCTRL_GROUP(i2c1),
1160 UNIPHIER_PINCTRL_GROUP(i2c2), 1180 UNIPHIER_PINCTRL_GROUP(i2c2),
@@ -1439,6 +1459,9 @@ static const struct uniphier_pinctrl_group uniphier_pro4_groups[] = {
1439}; 1459};
1440 1460
1441static const char * const emmc_groups[] = {"emmc", "emmc_dat8"}; 1461static const char * const emmc_groups[] = {"emmc", "emmc_dat8"};
1462static const char * const ether_mii_groups[] = {"ether_mii"};
1463static const char * const ether_rgmii_groups[] = {"ether_rgmii"};
1464static const char * const ether_rmii_groups[] = {"ether_rgmii", "ether_rgmiib"};
1442static const char * const i2c0_groups[] = {"i2c0"}; 1465static const char * const i2c0_groups[] = {"i2c0"};
1443static const char * const i2c1_groups[] = {"i2c1"}; 1466static const char * const i2c1_groups[] = {"i2c1"};
1444static const char * const i2c2_groups[] = {"i2c2"}; 1467static const char * const i2c2_groups[] = {"i2c2"};
@@ -1536,6 +1559,9 @@ static const char * const xirq_groups[] = {
1536 1559
1537static const struct uniphier_pinmux_function uniphier_pro4_functions[] = { 1560static const struct uniphier_pinmux_function uniphier_pro4_functions[] = {
1538 UNIPHIER_PINMUX_FUNCTION(emmc), 1561 UNIPHIER_PINMUX_FUNCTION(emmc),
1562 UNIPHIER_PINMUX_FUNCTION(ether_mii),
1563 UNIPHIER_PINMUX_FUNCTION(ether_rgmii),
1564 UNIPHIER_PINMUX_FUNCTION(ether_rmii),
1539 UNIPHIER_PINMUX_FUNCTION(i2c0), 1565 UNIPHIER_PINMUX_FUNCTION(i2c0),
1540 UNIPHIER_PINMUX_FUNCTION(i2c1), 1566 UNIPHIER_PINMUX_FUNCTION(i2c1),
1541 UNIPHIER_PINMUX_FUNCTION(i2c2), 1567 UNIPHIER_PINMUX_FUNCTION(i2c2),
diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-pxs2.c b/drivers/pinctrl/uniphier/pinctrl-uniphier-pxs2.c
index 8e1d73ea4ff0..85ca5e2d8a9c 100644
--- a/drivers/pinctrl/uniphier/pinctrl-uniphier-pxs2.c
+++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-pxs2.c
@@ -731,6 +731,19 @@ static const unsigned emmc_pins[] = {36, 37, 38, 39, 40, 41, 42};
731static const int emmc_muxvals[] = {9, 9, 9, 9, 9, 9, 9}; 731static const int emmc_muxvals[] = {9, 9, 9, 9, 9, 9, 9};
732static const unsigned emmc_dat8_pins[] = {43, 44, 45, 46}; 732static const unsigned emmc_dat8_pins[] = {43, 44, 45, 46};
733static const int emmc_dat8_muxvals[] = {9, 9, 9, 9}; 733static const int emmc_dat8_muxvals[] = {9, 9, 9, 9};
734static const unsigned ether_mii_pins[] = {143, 144, 145, 146, 147, 148, 149,
735 150, 151, 152, 153, 154, 155, 156,
736 158, 159, 199, 200, 201, 202};
737static const int ether_mii_muxvals[] = {8, 8, 8, 8, 10, 10, 10, 10, 10, 10, 10,
738 10, 10, 10, 10, 10, 12, 12, 12, 12};
739static const unsigned ether_rgmii_pins[] = {143, 144, 145, 146, 147, 148, 149,
740 150, 151, 152, 153, 154, 155, 156,
741 157, 158};
742static const int ether_rgmii_muxvals[] = {8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
743 8, 8, 8, 8};
744static const unsigned ether_rmii_pins[] = {143, 144, 145, 146, 147, 148, 149,
745 150, 152, 154, 155, 158};
746static const int ether_rmii_muxvals[] = {8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9};
734static const unsigned i2c0_pins[] = {109, 110}; 747static const unsigned i2c0_pins[] = {109, 110};
735static const int i2c0_muxvals[] = {8, 8}; 748static const int i2c0_muxvals[] = {8, 8};
736static const unsigned i2c1_pins[] = {111, 112}; 749static const unsigned i2c1_pins[] = {111, 112};
@@ -854,6 +867,9 @@ static const int xirq_muxvals[] = {
854static const struct uniphier_pinctrl_group uniphier_pxs2_groups[] = { 867static const struct uniphier_pinctrl_group uniphier_pxs2_groups[] = {
855 UNIPHIER_PINCTRL_GROUP(emmc), 868 UNIPHIER_PINCTRL_GROUP(emmc),
856 UNIPHIER_PINCTRL_GROUP(emmc_dat8), 869 UNIPHIER_PINCTRL_GROUP(emmc_dat8),
870 UNIPHIER_PINCTRL_GROUP(ether_mii),
871 UNIPHIER_PINCTRL_GROUP(ether_rgmii),
872 UNIPHIER_PINCTRL_GROUP(ether_rmii),
857 UNIPHIER_PINCTRL_GROUP(i2c0), 873 UNIPHIER_PINCTRL_GROUP(i2c0),
858 UNIPHIER_PINCTRL_GROUP(i2c1), 874 UNIPHIER_PINCTRL_GROUP(i2c1),
859 UNIPHIER_PINCTRL_GROUP(i2c2), 875 UNIPHIER_PINCTRL_GROUP(i2c2),
@@ -1129,6 +1145,9 @@ static const struct uniphier_pinctrl_group uniphier_pxs2_groups[] = {
1129}; 1145};
1130 1146
1131static const char * const emmc_groups[] = {"emmc", "emmc_dat8"}; 1147static const char * const emmc_groups[] = {"emmc", "emmc_dat8"};
1148static const char * const ether_mii_groups[] = {"ether_mii"};
1149static const char * const ether_rgmii_groups[] = {"ether_rgmii"};
1150static const char * const ether_rmii_groups[] = {"ether_rmii"};
1132static const char * const i2c0_groups[] = {"i2c0"}; 1151static const char * const i2c0_groups[] = {"i2c0"};
1133static const char * const i2c1_groups[] = {"i2c1"}; 1152static const char * const i2c1_groups[] = {"i2c1"};
1134static const char * const i2c2_groups[] = {"i2c2"}; 1153static const char * const i2c2_groups[] = {"i2c2"};
@@ -1217,6 +1236,9 @@ static const char * const xirq_groups[] = {
1217 1236
1218static const struct uniphier_pinmux_function uniphier_pxs2_functions[] = { 1237static const struct uniphier_pinmux_function uniphier_pxs2_functions[] = {
1219 UNIPHIER_PINMUX_FUNCTION(emmc), 1238 UNIPHIER_PINMUX_FUNCTION(emmc),
1239 UNIPHIER_PINMUX_FUNCTION(ether_mii),
1240 UNIPHIER_PINMUX_FUNCTION(ether_rgmii),
1241 UNIPHIER_PINMUX_FUNCTION(ether_rmii),
1220 UNIPHIER_PINMUX_FUNCTION(i2c0), 1242 UNIPHIER_PINMUX_FUNCTION(i2c0),
1221 UNIPHIER_PINMUX_FUNCTION(i2c1), 1243 UNIPHIER_PINMUX_FUNCTION(i2c1),
1222 UNIPHIER_PINMUX_FUNCTION(i2c2), 1244 UNIPHIER_PINMUX_FUNCTION(i2c2),
diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-sld8.c b/drivers/pinctrl/uniphier/pinctrl-uniphier-sld8.c
index 8ea740df9e6b..da689d880f46 100644
--- a/drivers/pinctrl/uniphier/pinctrl-uniphier-sld8.c
+++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-sld8.c
@@ -480,6 +480,14 @@ static const unsigned emmc_pins[] = {21, 22, 23, 24, 25, 26, 27};
480static const int emmc_muxvals[] = {1, 1, 1, 1, 1, 1, 1}; 480static const int emmc_muxvals[] = {1, 1, 1, 1, 1, 1, 1};
481static const unsigned emmc_dat8_pins[] = {28, 29, 30, 31}; 481static const unsigned emmc_dat8_pins[] = {28, 29, 30, 31};
482static const int emmc_dat8_muxvals[] = {1, 1, 1, 1}; 482static const int emmc_dat8_muxvals[] = {1, 1, 1, 1};
483static const unsigned ether_mii_pins[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13, 14,
484 61, 63, 64, 65, 66, 67, 68};
485static const int ether_mii_muxvals[] = {13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
486 13, 13, 27, 27, 27, 27, 27, 27, 27};
487static const unsigned ether_rmii_pins[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13,
488 14};
489static const int ether_rmii_muxvals[] = {13, 13, 13, 13, 13, 13, 13, 13, 13,
490 13, 13, 13};
483static const unsigned i2c0_pins[] = {102, 103}; 491static const unsigned i2c0_pins[] = {102, 103};
484static const int i2c0_muxvals[] = {0, 0}; 492static const int i2c0_muxvals[] = {0, 0};
485static const unsigned i2c1_pins[] = {104, 105}; 493static const unsigned i2c1_pins[] = {104, 105};
@@ -589,6 +597,8 @@ static const int xirq_range1_muxvals[] = {
589static const struct uniphier_pinctrl_group uniphier_sld8_groups[] = { 597static const struct uniphier_pinctrl_group uniphier_sld8_groups[] = {
590 UNIPHIER_PINCTRL_GROUP(emmc), 598 UNIPHIER_PINCTRL_GROUP(emmc),
591 UNIPHIER_PINCTRL_GROUP(emmc_dat8), 599 UNIPHIER_PINCTRL_GROUP(emmc_dat8),
600 UNIPHIER_PINCTRL_GROUP(ether_mii),
601 UNIPHIER_PINCTRL_GROUP(ether_rmii),
592 UNIPHIER_PINCTRL_GROUP(i2c0), 602 UNIPHIER_PINCTRL_GROUP(i2c0),
593 UNIPHIER_PINCTRL_GROUP(i2c1), 603 UNIPHIER_PINCTRL_GROUP(i2c1),
594 UNIPHIER_PINCTRL_GROUP(i2c2), 604 UNIPHIER_PINCTRL_GROUP(i2c2),
@@ -745,6 +755,8 @@ static const struct uniphier_pinctrl_group uniphier_sld8_groups[] = {
745}; 755};
746 756
747static const char * const emmc_groups[] = {"emmc", "emmc_dat8"}; 757static const char * const emmc_groups[] = {"emmc", "emmc_dat8"};
758static const char * const ether_mii_groups[] = {"ether_mii"};
759static const char * const ether_rmii_groups[] = {"ether_rmii"};
748static const char * const i2c0_groups[] = {"i2c0"}; 760static const char * const i2c0_groups[] = {"i2c0"};
749static const char * const i2c1_groups[] = {"i2c1"}; 761static const char * const i2c1_groups[] = {"i2c1"};
750static const char * const i2c2_groups[] = {"i2c2"}; 762static const char * const i2c2_groups[] = {"i2c2"};
@@ -807,6 +819,8 @@ static const char * const xirq_groups[] = {
807 819
808static const struct uniphier_pinmux_function uniphier_sld8_functions[] = { 820static const struct uniphier_pinmux_function uniphier_sld8_functions[] = {
809 UNIPHIER_PINMUX_FUNCTION(emmc), 821 UNIPHIER_PINMUX_FUNCTION(emmc),
822 UNIPHIER_PINMUX_FUNCTION(ether_mii),
823 UNIPHIER_PINMUX_FUNCTION(ether_rmii),
810 UNIPHIER_PINMUX_FUNCTION(i2c0), 824 UNIPHIER_PINMUX_FUNCTION(i2c0),
811 UNIPHIER_PINMUX_FUNCTION(i2c1), 825 UNIPHIER_PINMUX_FUNCTION(i2c1),
812 UNIPHIER_PINMUX_FUNCTION(i2c2), 826 UNIPHIER_PINMUX_FUNCTION(i2c2),