b1c82cbd51
Ethernet support was initial added in kernel 4.13, but deactivated before the final release. This is backports the changes which are activating it again from kernel 4.15. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
184 lines
4.4 KiB
Diff
184 lines
4.4 KiB
Diff
From 94f442886711c6c4f4383a1c5a6994a788ba05d8 Mon Sep 17 00:00:00 2001
|
|
From: Corentin Labbe <clabbe.montjoie@gmail.com>
|
|
Date: Tue, 31 Oct 2017 09:19:13 +0100
|
|
Subject: [PATCH] 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>
|
|
---
|
|
.../boot/dts/allwinner/sun50i-a64-bananapi-m64.dts | 16 ++++++++++++++++
|
|
.../boot/dts/allwinner/sun50i-a64-pine64-plus.dts | 15 +++++++++++++++
|
|
arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts | 17 +++++++++++++++++
|
|
.../dts/allwinner/sun50i-a64-sopine-baseboard.dts | 16 ++++++++++++++++
|
|
arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 20 ++++++++++++++++++++
|
|
5 files changed, 84 insertions(+)
|
|
|
|
--- 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 @@
|
|
compatible = "sinovoip,bananapi-m64", "allwinner,sun50i-a64";
|
|
|
|
aliases {
|
|
+ ethernet0 = &emac;
|
|
serial0 = &uart0;
|
|
serial1 = &uart1;
|
|
};
|
|
@@ -69,6 +70,14 @@
|
|
status = "okay";
|
|
};
|
|
|
|
+&emac {
|
|
+ pinctrl-names = "default";
|
|
+ pinctrl-0 = <&rgmii_pins>;
|
|
+ phy-mode = "rgmii";
|
|
+ phy-handle = <&ext_rgmii_phy>;
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
&i2c1 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&i2c1_pins>;
|
|
@@ -79,6 +88,13 @@
|
|
bias-pull-up;
|
|
};
|
|
|
|
+&mdio {
|
|
+ ext_rgmii_phy: ethernet-phy@1 {
|
|
+ compatible = "ethernet-phy-ieee802.3-c22";
|
|
+ reg = <1>;
|
|
+ };
|
|
+};
|
|
+
|
|
&mmc0 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&mmc0_pins>;
|
|
--- 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 @@
|
|
|
|
/* TODO: Camera, touchscreen, etc. */
|
|
};
|
|
+
|
|
+&emac {
|
|
+ pinctrl-names = "default";
|
|
+ pinctrl-0 = <&rgmii_pins>;
|
|
+ phy-mode = "rgmii";
|
|
+ phy-handle = <&ext_rgmii_phy>;
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&mdio {
|
|
+ ext_rgmii_phy: ethernet-phy@1 {
|
|
+ compatible = "ethernet-phy-ieee802.3-c22";
|
|
+ reg = <1>;
|
|
+ };
|
|
+};
|
|
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts
|
|
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts
|
|
@@ -51,6 +51,7 @@
|
|
compatible = "pine64,pine64", "allwinner,sun50i-a64";
|
|
|
|
aliases {
|
|
+ ethernet0 = &emac;
|
|
serial0 = &uart0;
|
|
serial1 = &uart1;
|
|
serial2 = &uart2;
|
|
@@ -71,6 +72,15 @@
|
|
status = "okay";
|
|
};
|
|
|
|
+&emac {
|
|
+ pinctrl-names = "default";
|
|
+ pinctrl-0 = <&rmii_pins>;
|
|
+ phy-mode = "rmii";
|
|
+ phy-handle = <&ext_rmii_phy1>;
|
|
+ status = "okay";
|
|
+
|
|
+};
|
|
+
|
|
&i2c1 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&i2c1_pins>;
|
|
@@ -81,6 +91,13 @@
|
|
bias-pull-up;
|
|
};
|
|
|
|
+&mdio {
|
|
+ ext_rmii_phy1: ethernet-phy@1 {
|
|
+ compatible = "ethernet-phy-ieee802.3-c22";
|
|
+ reg = <1>;
|
|
+ };
|
|
+};
|
|
+
|
|
&mmc0 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&mmc0_pins>;
|
|
--- 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 @@
|
|
"allwinner,sun50i-a64";
|
|
|
|
aliases {
|
|
+ ethernet0 = &emac;
|
|
serial0 = &uart0;
|
|
};
|
|
|
|
@@ -76,6 +77,21 @@
|
|
status = "okay";
|
|
};
|
|
|
|
+&emac {
|
|
+ pinctrl-names = "default";
|
|
+ pinctrl-0 = <&rgmii_pins>;
|
|
+ phy-mode = "rgmii";
|
|
+ phy-handle = <&ext_rgmii_phy>;
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&mdio {
|
|
+ ext_rgmii_phy: ethernet-phy@1 {
|
|
+ compatible = "ethernet-phy-ieee802.3-c22";
|
|
+ reg = <1>;
|
|
+ };
|
|
+};
|
|
+
|
|
&mmc2 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&mmc2_pins>;
|
|
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
|
|
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
|
|
@@ -449,6 +449,26 @@
|
|
#size-cells = <0>;
|
|
};
|
|
|
|
+ emac: ethernet@1c30000 {
|
|
+ compatible = "allwinner,sun50i-a64-emac";
|
|
+ syscon = <&syscon>;
|
|
+ reg = <0x01c30000 0x10000>;
|
|
+ interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
|
|
+ interrupt-names = "macirq";
|
|
+ resets = <&ccu RST_BUS_EMAC>;
|
|
+ reset-names = "stmmaceth";
|
|
+ clocks = <&ccu CLK_BUS_EMAC>;
|
|
+ clock-names = "stmmaceth";
|
|
+ status = "disabled";
|
|
+ #address-cells = <1>;
|
|
+ #size-cells = <0>;
|
|
+
|
|
+ mdio: mdio {
|
|
+ #address-cells = <1>;
|
|
+ #size-cells = <0>;
|
|
+ };
|
|
+ };
|
|
+
|
|
gic: interrupt-controller@1c81000 {
|
|
compatible = "arm,gic-400";
|
|
reg = <0x01c81000 0x1000>,
|