[PATCH u-boot-marvell 10/11] arm64: mvebu: armada-37xx: convert to use new generic-phy drivers
Marek Behún
marek.behun at nic.cz
Sun Apr 19 17:48:49 CEST 2020
This patch converts device trees and defconfigs of Armada 37xx boards
(EspressoBIN, A37xx DB, uDPU and Turris MOX) to use the newly ported
comphy and utmi generic-phy drivers.
For Turris Mox also remove the comphy_update_map implementation, since
it is no longer needed.
Signed-off-by: Marek Behún <marek.behun at nic.cz>
---
arch/arm/dts/armada-3720-db.dts | 12 ----
arch/arm/dts/armada-3720-espressobin.dts | 18 ------
arch/arm/dts/armada-3720-turris-mox.dts | 19 +-----
arch/arm/dts/armada-3720-uDPU.dts | 18 +-----
arch/arm/dts/armada-37xx.dtsi | 72 ++++++++++++++++++---
board/CZ.NIC/turris_mox/turris_mox.c | 33 ----------
configs/mvebu_db-88f3720_defconfig | 6 +-
configs/mvebu_espressobin-88f3720_defconfig | 6 +-
configs/turris_mox_defconfig | 6 +-
configs/uDPU_defconfig | 6 +-
10 files changed, 86 insertions(+), 110 deletions(-)
diff --git a/arch/arm/dts/armada-3720-db.dts b/arch/arm/dts/armada-3720-db.dts
index 1b219c423b..5724311eaf 100644
--- a/arch/arm/dts/armada-3720-db.dts
+++ b/arch/arm/dts/armada-3720-db.dts
@@ -68,18 +68,6 @@
};
};
-&comphy {
- phy0 {
- phy-type = <PHY_TYPE_PEX0>;
- phy-speed = <PHY_SPEED_2_5G>;
- };
-
- phy1 {
- phy-type = <PHY_TYPE_USB3_HOST0>;
- phy-speed = <PHY_SPEED_5G>;
- };
-};
-
ð0 {
pinctrl-names = "default";
pinctrl-0 = <&rgmii_pins>, <&smi_pins>;
diff --git a/arch/arm/dts/armada-3720-espressobin.dts b/arch/arm/dts/armada-3720-espressobin.dts
index 84e2c2adba..109378b38b 100644
--- a/arch/arm/dts/armada-3720-espressobin.dts
+++ b/arch/arm/dts/armada-3720-espressobin.dts
@@ -69,24 +69,6 @@
};
};
-&comphy {
- max-lanes = <3>;
- phy0 {
- phy-type = <PHY_TYPE_PEX0>;
- phy-speed = <PHY_SPEED_2_5G>;
- };
-
- phy1 {
- phy-type = <PHY_TYPE_USB3_HOST0>;
- phy-speed = <PHY_SPEED_5G>;
- };
-
- phy2 {
- phy-type = <PHY_TYPE_SATA0>;
- phy-speed = <PHY_SPEED_5G>;
- };
-};
-
ð0 {
status = "okay";
pinctrl-names = "default";
diff --git a/arch/arm/dts/armada-3720-turris-mox.dts b/arch/arm/dts/armada-3720-turris-mox.dts
index ae8ab4f86e..d023c76fc0 100644
--- a/arch/arm/dts/armada-3720-turris-mox.dts
+++ b/arch/arm/dts/armada-3720-turris-mox.dts
@@ -91,24 +91,6 @@
};
};
-&comphy {
- max-lanes = <3>;
- phy0 {
- phy-type = <PHY_TYPE_SGMII1>;
- phy-speed = <PHY_SPEED_3_125G>;
- };
-
- phy1 {
- phy-type = <PHY_TYPE_PEX0>;
- phy-speed = <PHY_SPEED_5G>;
- };
-
- phy2 {
- phy-type = <PHY_TYPE_USB3_HOST0>;
- phy-speed = <PHY_SPEED_5G>;
- };
-};
-
ð0 {
status = "okay";
pinctrl-names = "default";
@@ -216,6 +198,7 @@
&usb3 {
vbus-supply = <®_usb3_vbus>;
+ phys = <&comphy2 0>;
status = "okay";
};
diff --git a/arch/arm/dts/armada-3720-uDPU.dts b/arch/arm/dts/armada-3720-uDPU.dts
index 683dac2a7c..d4c018dc29 100644
--- a/arch/arm/dts/armada-3720-uDPU.dts
+++ b/arch/arm/dts/armada-3720-uDPU.dts
@@ -106,27 +106,12 @@
};
};
-&comphy {
- phy0 {
- phy-type = <PHY_TYPE_SGMII1>;
- phy-speed = <PHY_SPEED_1_25G>;
- };
- phy1 {
- phy-type = <PHY_TYPE_SGMII0>;
- phy-speed = <PHY_SPEED_1_25G>;
- };
-
- phy2 {
- phy-type = <PHY_TYPE_USB3_HOST1>;
- phy-speed = <PHY_SPEED_5G>;
- };
-};
-
ð0 {
pinctrl-0 = <&pcie_pins>;
status = "okay";
phy-mode = "sgmii";
phy = <ðphy0>;
+ phys = <&comphy1 0>;
fixed-link {
speed = <1000>;
full-duplex;
@@ -137,6 +122,7 @@
status = "okay";
phy-mode = "sgmii";
phy = <ðphy1>;
+ phys = <&comphy0 1>;
fixed-link {
speed = <1000>;
full-duplex;
diff --git a/arch/arm/dts/armada-37xx.dtsi b/arch/arm/dts/armada-37xx.dtsi
index a1052add0c..0fe81bc932 100644
--- a/arch/arm/dts/armada-37xx.dtsi
+++ b/arch/arm/dts/armada-37xx.dtsi
@@ -188,6 +188,35 @@
};
};
+ comphy: phy at 18300 {
+ compatible = "marvell,comphy-a3700";
+ reg = <0x18300 0x300>,
+ <0x1F000 0x400>,
+ <0x5C000 0x400>,
+ <0xe0178 0x8>;
+ reg-names = "comphy",
+ "lane1_pcie_gbe",
+ "lane0_usb3_gbe",
+ "lane2_sata_usb3";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ comphy0: phy at 0 {
+ reg = <0>;
+ #phy-cells = <1>;
+ };
+
+ comphy1: phy at 1 {
+ reg = <1>;
+ #phy-cells = <1>;
+ };
+
+ comphy2: phy at 2 {
+ reg = <2>;
+ #phy-cells = <1>;
+ };
+ };
+
pinctrl_sb: pinctrl-sb at 18800 {
compatible = "marvell,armada3710-sb-pinctrl",
"syscon", "simple-mfd";
@@ -229,16 +258,48 @@
compatible = "marvell,armada3700-xhci",
"generic-xhci";
reg = <0x58000 0x4000>;
+ marvell,usb-misc-reg = <&usb32_syscon>;
interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
+ phys = <&comphy0 0>, <&usb2_utmi_otg_phy>;
+ phy-names = "usb3-phy", "usb2-utmi-otg-phy";
status = "disabled";
};
+ usb2_utmi_otg_phy: phy at 5d000 {
+ compatible = "marvell,a3700-utmi-otg-phy";
+ reg = <0x5d000 0x800>;
+ marvell,usb-misc-reg = <&usb32_syscon>;
+ #phy-cells = <0>;
+ };
+
+ usb32_syscon: system-controller at 5d800 {
+ compatible = "marvell,armada-3700-usb2-host-device-misc",
+ "syscon";
+ reg = <0x5d800 0x800>;
+ };
+
usb2: usb at 5e000 {
compatible = "marvell,armada3700-ehci";
reg = <0x5e000 0x450>;
+ marvell,usb-misc-reg = <&usb2_syscon>;
+ phys = <&usb2_utmi_host_phy>;
+ phy-names = "usb2-utmi-host-phy";
status = "disabled";
};
+ usb2_utmi_host_phy: phy at 5f000 {
+ compatible = "marvell,a3700-utmi-host-phy";
+ reg = <0x5f000 0x800>;
+ marvell,usb-misc-reg = <&usb2_syscon>;
+ #phy-cells = <0>;
+ };
+
+ usb2_syscon: system-controller at 5f800 {
+ compatible = "marvell,armada-3700-usb2-host-misc",
+ "syscon";
+ reg = <0x5f800 0x800>;
+ };
+
xor at 60900 {
compatible = "marvell,armada-3700-xor";
reg = <0x60900 0x100
@@ -272,6 +333,7 @@
compatible = "marvell,armada-3700-ahci";
reg = <0xe0000 0x2000>;
interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
+ phys = <&comphy2 0>;
status = "disabled";
};
@@ -311,15 +373,6 @@
clocks = <&nb_periph_clk 7>;
status = "disabled";
};
-
- comphy: comphy at 18300 {
- compatible = "marvell,mvebu-comphy", "marvell,comphy-armada-3700";
- reg = <0x18300 0x28>,
- <0x1f300 0x3d000>;
- mux-bitcount = <4>;
- mux-lane-order = <1 0 2>;
- max-lanes = <3>;
- };
};
pcie0: pcie at d0070000 {
@@ -329,6 +382,7 @@
#size-cells = <2>;
device_type = "pci";
num-lanes = <1>;
+ phys = <&comphy1 0>;
status = "disabled";
bus-range = <0 0xff>;
diff --git a/board/CZ.NIC/turris_mox/turris_mox.c b/board/CZ.NIC/turris_mox/turris_mox.c
index 3524821101..ea1dd09e5c 100644
--- a/board/CZ.NIC/turris_mox/turris_mox.c
+++ b/board/CZ.NIC/turris_mox/turris_mox.c
@@ -17,7 +17,6 @@
#include <linux/libfdt.h>
#include <linux/string.h>
#include <miiphy.h>
-#include <mvebu/comphy.h>
#include <spi.h>
#include "mox_sp.h"
@@ -207,38 +206,6 @@ static int mox_get_topology(const u8 **ptopology, int *psize, int *pis_sd)
return 0;
}
-int comphy_update_map(struct comphy_map *serdes_map, int count)
-{
- int ret, i, size, sfpindex = -1, swindex = -1;
- const u8 *topology;
-
- ret = mox_get_topology(&topology, &size, NULL);
- if (ret)
- return ret;
-
- for (i = 0; i < size; ++i) {
- if (topology[i] == MOX_MODULE_SFP && sfpindex == -1)
- sfpindex = i;
- else if ((topology[i] == MOX_MODULE_TOPAZ ||
- topology[i] == MOX_MODULE_PERIDOT) &&
- swindex == -1)
- swindex = i;
- }
-
- if (sfpindex >= 0 && swindex >= 0) {
- if (sfpindex < swindex)
- serdes_map[0].speed = PHY_SPEED_1_25G;
- else
- serdes_map[0].speed = PHY_SPEED_3_125G;
- } else if (sfpindex >= 0) {
- serdes_map[0].speed = PHY_SPEED_1_25G;
- } else if (swindex >= 0) {
- serdes_map[0].speed = PHY_SPEED_3_125G;
- }
-
- return 0;
-}
-
#define SW_SMI_CMD_R(d, r) (0x9800 | (((d) & 0x1f) << 5) | ((r) & 0x1f))
#define SW_SMI_CMD_W(d, r) (0x9400 | (((d) & 0x1f) << 5) | ((r) & 0x1f))
diff --git a/configs/mvebu_db-88f3720_defconfig b/configs/mvebu_db-88f3720_defconfig
index e5284fad02..e7b0237e5c 100644
--- a/configs/mvebu_db-88f3720_defconfig
+++ b/configs/mvebu_db-88f3720_defconfig
@@ -39,6 +39,8 @@ CONFIG_MAC_PARTITION=y
CONFIG_DEFAULT_DEVICE_TREE="armada-3720-db"
CONFIG_ENV_IS_IN_SPI_FLASH=y
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
+CONFIG_REGMAP=y
+CONFIG_SYSCON=y
CONFIG_AHCI_MVEBU=y
CONFIG_CLK=y
CONFIG_CLK_MVEBU=y
@@ -61,9 +63,11 @@ CONFIG_E1000=y
CONFIG_PCI=y
CONFIG_DM_PCI=y
CONFIG_PCI_AARDVARK=y
-CONFIG_MVEBU_COMPHY_SUPPORT=y
CONFIG_PINCTRL=y
CONFIG_PINCTRL_ARMADA_37XX=y
+CONFIG_PHY=y
+CONFIG_PHY_MVEBU_A3700_COMPHY=y
+CONFIG_PHY_MVEBU_A3700_UTMI=y
CONFIG_DEBUG_MVEBU_A3700_UART=y
CONFIG_DEBUG_UART_SHIFT=2
CONFIG_DEBUG_UART_ANNOUNCE=y
diff --git a/configs/mvebu_espressobin-88f3720_defconfig b/configs/mvebu_espressobin-88f3720_defconfig
index 8e6c08b23d..488d594476 100644
--- a/configs/mvebu_espressobin-88f3720_defconfig
+++ b/configs/mvebu_espressobin-88f3720_defconfig
@@ -39,6 +39,8 @@ CONFIG_MAC_PARTITION=y
CONFIG_DEFAULT_DEVICE_TREE="armada-3720-espressobin"
CONFIG_ENV_IS_IN_SPI_FLASH=y
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
+CONFIG_REGMAP=y
+CONFIG_SYSCON=y
CONFIG_AHCI_MVEBU=y
CONFIG_CLK=y
CONFIG_CLK_MVEBU=y
@@ -61,9 +63,11 @@ CONFIG_E1000=y
CONFIG_PCI=y
CONFIG_DM_PCI=y
CONFIG_PCI_AARDVARK=y
-CONFIG_MVEBU_COMPHY_SUPPORT=y
CONFIG_PINCTRL=y
CONFIG_PINCTRL_ARMADA_37XX=y
+CONFIG_PHY=y
+CONFIG_PHY_MVEBU_A3700_COMPHY=y
+CONFIG_PHY_MVEBU_A3700_UTMI=y
CONFIG_DEBUG_MVEBU_A3700_UART=y
CONFIG_DEBUG_UART_SHIFT=2
CONFIG_DEBUG_UART_ANNOUNCE=y
diff --git a/configs/turris_mox_defconfig b/configs/turris_mox_defconfig
index 2b4f256479..a5c38ae16f 100644
--- a/configs/turris_mox_defconfig
+++ b/configs/turris_mox_defconfig
@@ -54,6 +54,8 @@ CONFIG_DEFAULT_DEVICE_TREE="armada-3720-turris-mox"
CONFIG_ENV_IS_IN_SPI_FLASH=y
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_BOOTCOMMAND="sf probe; sf read ${fdt_addr_r} 0x7f0000 0x10000; run distro_bootcmd"
+CONFIG_REGMAP=y
+CONFIG_SYSCON=y
CONFIG_CLK=y
CONFIG_CLK_MVEBU=y
# CONFIG_MVEBU_GPIO is not set
@@ -78,9 +80,11 @@ CONFIG_PCI=y
CONFIG_DM_PCI=y
CONFIG_PCI_AARDVARK=y
# CONFIG_PCI_PNP is not set
-CONFIG_MVEBU_COMPHY_SUPPORT=y
CONFIG_PINCTRL=y
CONFIG_PINCTRL_ARMADA_37XX=y
+CONFIG_PHY=y
+CONFIG_PHY_MVEBU_A3700_COMPHY=y
+CONFIG_PHY_MVEBU_A3700_UTMI=y
CONFIG_DM_REGULATOR_FIXED=y
CONFIG_DM_RTC=y
CONFIG_RTC_DS1307=y
diff --git a/configs/uDPU_defconfig b/configs/uDPU_defconfig
index 1878182819..e7ee68927c 100644
--- a/configs/uDPU_defconfig
+++ b/configs/uDPU_defconfig
@@ -49,6 +49,8 @@ CONFIG_DEFAULT_DEVICE_TREE="armada-3720-uDPU"
CONFIG_ENV_IS_IN_SPI_FLASH=y
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_NET_RANDOM_ETHADDR=y
+CONFIG_REGMAP=y
+CONFIG_SYSCON=y
CONFIG_AHCI_MVEBU=y
CONFIG_CLK=y
CONFIG_CLK_MVEBU=y
@@ -76,9 +78,11 @@ CONFIG_MVNETA=y
CONFIG_PCI=y
CONFIG_DM_PCI=y
CONFIG_PCI_AARDVARK=y
-CONFIG_MVEBU_COMPHY_SUPPORT=y
CONFIG_PINCTRL=y
CONFIG_PINCTRL_ARMADA_37XX=y
+CONFIG_PHY=y
+CONFIG_PHY_MVEBU_A3700_COMPHY=y
+CONFIG_PHY_MVEBU_A3700_UTMI=y
CONFIG_DM_REGULATOR_FIXED=y
CONFIG_DM_REGULATOR_GPIO=y
CONFIG_DEBUG_MVEBU_A3700_UART=y
--
2.24.1
More information about the U-Boot
mailing list