diff options
author | Corentin Labbe <clabbe.montjoie@gmail.com> | 2017-10-31 04:19:13 -0400 |
---|---|---|
committer | Maxime Ripard <maxime.ripard@free-electrons.com> | 2017-10-31 09:32:06 -0400 |
commit | 94f442886711c6c4f4383a1c5a6994a788ba05d8 (patch) | |
tree | 2c1d6127f5d6c8af2beab6e9164a93f09f4f4b26 | |
parent | d25d41827fee2b489518eee99ef156b005c0c01e (diff) |
arm64: dts: allwinner: A64: Restore EMAC changes
The original dwmac-sun8i DT bindings have some issue on how to handle
integrated PHY and was reverted in last RC of 4.13.
But now we have a solution so we need to get back that was reverted.
This patch restore arm64 DT about dwmac-sun8i for A64
This reverts commit 87e1f5e8bb4b ("arm64: dts: allwinner: Revert EMAC changes")
Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
5 files changed, 84 insertions, 0 deletions
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts index d347f52e27f6..45bdbfb96126 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts | |||
@@ -51,6 +51,7 @@ | |||
51 | compatible = "sinovoip,bananapi-m64", "allwinner,sun50i-a64"; | 51 | compatible = "sinovoip,bananapi-m64", "allwinner,sun50i-a64"; |
52 | 52 | ||
53 | aliases { | 53 | aliases { |
54 | ethernet0 = &emac; | ||
54 | serial0 = &uart0; | 55 | serial0 = &uart0; |
55 | serial1 = &uart1; | 56 | serial1 = &uart1; |
56 | }; | 57 | }; |
@@ -69,6 +70,14 @@ | |||
69 | status = "okay"; | 70 | status = "okay"; |
70 | }; | 71 | }; |
71 | 72 | ||
73 | &emac { | ||
74 | pinctrl-names = "default"; | ||
75 | pinctrl-0 = <&rgmii_pins>; | ||
76 | phy-mode = "rgmii"; | ||
77 | phy-handle = <&ext_rgmii_phy>; | ||
78 | status = "okay"; | ||
79 | }; | ||
80 | |||
72 | &i2c1 { | 81 | &i2c1 { |
73 | pinctrl-names = "default"; | 82 | pinctrl-names = "default"; |
74 | pinctrl-0 = <&i2c1_pins>; | 83 | pinctrl-0 = <&i2c1_pins>; |
@@ -79,6 +88,13 @@ | |||
79 | bias-pull-up; | 88 | bias-pull-up; |
80 | }; | 89 | }; |
81 | 90 | ||
91 | &mdio { | ||
92 | ext_rgmii_phy: ethernet-phy@1 { | ||
93 | compatible = "ethernet-phy-ieee802.3-c22"; | ||
94 | reg = <1>; | ||
95 | }; | ||
96 | }; | ||
97 | |||
82 | &mmc0 { | 98 | &mmc0 { |
83 | pinctrl-names = "default"; | 99 | pinctrl-names = "default"; |
84 | pinctrl-0 = <&mmc0_pins>; | 100 | pinctrl-0 = <&mmc0_pins>; |
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-plus.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-plus.dts index f82ccf332c0f..24f1aac366d6 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-plus.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-plus.dts | |||
@@ -48,3 +48,18 @@ | |||
48 | 48 | ||
49 | /* TODO: Camera, touchscreen, etc. */ | 49 | /* TODO: Camera, touchscreen, etc. */ |
50 | }; | 50 | }; |
51 | |||
52 | &emac { | ||
53 | pinctrl-names = "default"; | ||
54 | pinctrl-0 = <&rgmii_pins>; | ||
55 | phy-mode = "rgmii"; | ||
56 | phy-handle = <&ext_rgmii_phy>; | ||
57 | status = "okay"; | ||
58 | }; | ||
59 | |||
60 | &mdio { | ||
61 | ext_rgmii_phy: ethernet-phy@1 { | ||
62 | compatible = "ethernet-phy-ieee802.3-c22"; | ||
63 | reg = <1>; | ||
64 | }; | ||
65 | }; | ||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts index caf8b6fbe5e3..6f209bb10a2f 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts | |||
@@ -51,6 +51,7 @@ | |||
51 | compatible = "pine64,pine64", "allwinner,sun50i-a64"; | 51 | compatible = "pine64,pine64", "allwinner,sun50i-a64"; |
52 | 52 | ||
53 | aliases { | 53 | aliases { |
54 | ethernet0 = &emac; | ||
54 | serial0 = &uart0; | 55 | serial0 = &uart0; |
55 | serial1 = &uart1; | 56 | serial1 = &uart1; |
56 | serial2 = &uart2; | 57 | serial2 = &uart2; |
@@ -78,6 +79,15 @@ | |||
78 | status = "okay"; | 79 | status = "okay"; |
79 | }; | 80 | }; |
80 | 81 | ||
82 | &emac { | ||
83 | pinctrl-names = "default"; | ||
84 | pinctrl-0 = <&rmii_pins>; | ||
85 | phy-mode = "rmii"; | ||
86 | phy-handle = <&ext_rmii_phy1>; | ||
87 | status = "okay"; | ||
88 | |||
89 | }; | ||
90 | |||
81 | &i2c1 { | 91 | &i2c1 { |
82 | pinctrl-names = "default"; | 92 | pinctrl-names = "default"; |
83 | pinctrl-0 = <&i2c1_pins>; | 93 | pinctrl-0 = <&i2c1_pins>; |
@@ -88,6 +98,13 @@ | |||
88 | bias-pull-up; | 98 | bias-pull-up; |
89 | }; | 99 | }; |
90 | 100 | ||
101 | &mdio { | ||
102 | ext_rmii_phy1: ethernet-phy@1 { | ||
103 | compatible = "ethernet-phy-ieee802.3-c22"; | ||
104 | reg = <1>; | ||
105 | }; | ||
106 | }; | ||
107 | |||
91 | &mmc0 { | 108 | &mmc0 { |
92 | pinctrl-names = "default"; | 109 | pinctrl-names = "default"; |
93 | pinctrl-0 = <&mmc0_pins>; | 110 | pinctrl-0 = <&mmc0_pins>; |
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts index 17ccc12b58df..0eb2acedf8c3 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts | |||
@@ -53,6 +53,7 @@ | |||
53 | "allwinner,sun50i-a64"; | 53 | "allwinner,sun50i-a64"; |
54 | 54 | ||
55 | aliases { | 55 | aliases { |
56 | ethernet0 = &emac; | ||
56 | serial0 = &uart0; | 57 | serial0 = &uart0; |
57 | }; | 58 | }; |
58 | 59 | ||
@@ -76,6 +77,21 @@ | |||
76 | status = "okay"; | 77 | status = "okay"; |
77 | }; | 78 | }; |
78 | 79 | ||
80 | &emac { | ||
81 | pinctrl-names = "default"; | ||
82 | pinctrl-0 = <&rgmii_pins>; | ||
83 | phy-mode = "rgmii"; | ||
84 | phy-handle = <&ext_rgmii_phy>; | ||
85 | status = "okay"; | ||
86 | }; | ||
87 | |||
88 | &mdio { | ||
89 | ext_rgmii_phy: ethernet-phy@1 { | ||
90 | compatible = "ethernet-phy-ieee802.3-c22"; | ||
91 | reg = <1>; | ||
92 | }; | ||
93 | }; | ||
94 | |||
79 | &mmc2 { | 95 | &mmc2 { |
80 | pinctrl-names = "default"; | 96 | pinctrl-names = "default"; |
81 | pinctrl-0 = <&mmc2_pins>; | 97 | pinctrl-0 = <&mmc2_pins>; |
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi index 062040ec2fed..ed24daeadb93 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | |||
@@ -505,6 +505,26 @@ | |||
505 | #size-cells = <0>; | 505 | #size-cells = <0>; |
506 | }; | 506 | }; |
507 | 507 | ||
508 | emac: ethernet@1c30000 { | ||
509 | compatible = "allwinner,sun50i-a64-emac"; | ||
510 | syscon = <&syscon>; | ||
511 | reg = <0x01c30000 0x10000>; | ||
512 | interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; | ||
513 | interrupt-names = "macirq"; | ||
514 | resets = <&ccu RST_BUS_EMAC>; | ||
515 | reset-names = "stmmaceth"; | ||
516 | clocks = <&ccu CLK_BUS_EMAC>; | ||
517 | clock-names = "stmmaceth"; | ||
518 | status = "disabled"; | ||
519 | #address-cells = <1>; | ||
520 | #size-cells = <0>; | ||
521 | |||
522 | mdio: mdio { | ||
523 | #address-cells = <1>; | ||
524 | #size-cells = <0>; | ||
525 | }; | ||
526 | }; | ||
527 | |||
508 | gic: interrupt-controller@1c81000 { | 528 | gic: interrupt-controller@1c81000 { |
509 | compatible = "arm,gic-400"; | 529 | compatible = "arm,gic-400"; |
510 | reg = <0x01c81000 0x1000>, | 530 | reg = <0x01c81000 0x1000>, |