* [PATCH 0/4] sunxi: R40: Enable USB and Ethernet
@ 2020-01-01 23:44 Andre Przywara
2020-01-01 23:44 ` [PATCH 1/4] sunxi: dts: R40: Update Bananapi M2 Berry .dts Andre Przywara
` (4 more replies)
0 siblings, 5 replies; 7+ messages in thread
From: Andre Przywara @ 2020-01-01 23:44 UTC (permalink / raw)
To: u-boot
This series enables the USB ports on boards with the Allwinner R40 SoC,
also updates the Bananapi M2 Berry board support.
Patch 1/4 updates the M2 Berry .dts file, so that we get the USB and
Ethernet nodes that we need to enable Ethernet in patch 2/4.
Patch 3/4 adds support for the USB PHY in the R40 SoC, so that the final
patch can enable USB for the two R40 boards that U-Boot supports.
Tested on the Bananapi M2 Berry. I don't have the M2 Ultra, but USB
should work there with this series too. Ethernet was already enabled.
Cheers,
Andre.
Andre Przywara (4):
sunxi: dts: R40: Update Bananapi M2 Berry .dts
sunxi: defconfig: Bananapi M2 Berry: enable Ethernet
phy: sun4i-usb: Add Allwinner R40 support
sunxi: defconfig: R40 boards: enable USB
arch/arm/dts/sun8i-v40-bananapi-m2-berry.dts | 135 ++++++++++++++++++++++++---
arch/arm/mach-sunxi/Kconfig | 1 +
configs/Bananapi_M2_Ultra_defconfig | 4 +
configs/bananapi_m2_berry_defconfig | 6 ++
drivers/phy/allwinner/phy-sun4i-usb.c | 12 +++
5 files changed, 143 insertions(+), 15 deletions(-)
--
2.14.5
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/4] sunxi: dts: R40: Update Bananapi M2 Berry .dts
2020-01-01 23:44 [PATCH 0/4] sunxi: R40: Enable USB and Ethernet Andre Przywara
@ 2020-01-01 23:44 ` Andre Przywara
2020-01-21 8:35 ` Jagan Teki
2020-01-01 23:44 ` [PATCH 2/4] sunxi: defconfig: Bananapi M2 Berry: enable Ethernet Andre Przywara
` (3 subsequent siblings)
4 siblings, 1 reply; 7+ messages in thread
From: Andre Przywara @ 2020-01-01 23:44 UTC (permalink / raw)
To: u-boot
Update the .dts file from the kernel, which carries much more nodes,
some of them we need to enable USB and Ethernet support for the board.
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
---
arch/arm/dts/sun8i-v40-bananapi-m2-berry.dts | 135 ++++++++++++++++++++++++---
1 file changed, 120 insertions(+), 15 deletions(-)
diff --git a/arch/arm/dts/sun8i-v40-bananapi-m2-berry.dts b/arch/arm/dts/sun8i-v40-bananapi-m2-berry.dts
index 54ad4db468..15c22b06fc 100644
--- a/arch/arm/dts/sun8i-v40-bananapi-m2-berry.dts
+++ b/arch/arm/dts/sun8i-v40-bananapi-m2-berry.dts
@@ -50,6 +50,7 @@
compatible = "sinovoip,bpi-m2-berry", "allwinner,sun8i-r40";
aliases {
+ ethernet0 = &gmac;
serial0 = &uart0;
};
@@ -57,6 +58,17 @@
stdout-path = "serial0:115200n8";
};
+ connector {
+ compatible = "hdmi-connector";
+ type = "a";
+
+ port {
+ hdmi_con_in: endpoint {
+ remote-endpoint = <&hdmi_out_con>;
+ };
+ };
+ };
+
leds {
compatible = "gpio-leds";
@@ -84,12 +96,18 @@
wifi_pwrseq: wifi_pwrseq {
compatible = "mmc-pwrseq-simple";
reset-gpios = <&pio 6 10 GPIO_ACTIVE_LOW>; /* PG10 WIFI_EN */
+ clocks = <&ccu CLK_OUTA>;
+ clock-names = "ext_clock";
};
};
&ahci {
- phy-supply = <®_eldo3>; /* VDD12-SATA */
- ahci-supply = <®_dldo4>; /* VDD25-SATA */
+ ahci-supply = <®_dldo4>;
+ phy-supply = <®_eldo3>;
+ status = "okay";
+};
+
+&de {
status = "okay";
};
@@ -98,6 +116,32 @@
status = "okay";
};
+&gmac {
+ pinctrl-names = "default";
+ pinctrl-0 = <&gmac_rgmii_pins>;
+ phy-handle = <&phy1>;
+ phy-mode = "rgmii";
+ phy-supply = <®_dc1sw>;
+ status = "okay";
+};
+
+&gmac_mdio {
+ phy1: ethernet-phy at 1 {
+ compatible = "ethernet-phy-ieee802.3-c22";
+ reg = <1>;
+ };
+};
+
+&hdmi {
+ status = "okay";
+};
+
+&hdmi_out {
+ hdmi_out_con: endpoint {
+ remote-endpoint = <&hdmi_con_in>;
+ };
+};
+
&i2c0 {
status = "okay";
@@ -111,6 +155,41 @@
#include "axp22x.dtsi"
+&mmc0 {
+ vmmc-supply = <®_dcdc1>;
+ bus-width = <4>;
+ cd-gpios = <&pio 7 13 GPIO_ACTIVE_LOW>; /* PH13 */
+ status = "okay";
+};
+
+&mmc1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&mmc1_pg_pins>;
+ vmmc-supply = <®_dldo2>;
+ vqmmc-supply = <®_dldo1>;
+ mmc-pwrseq = <&wifi_pwrseq>;
+ bus-width = <4>;
+ non-removable;
+ status = "okay";
+};
+
+&pio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&clk_out_a_pin>;
+ vcc-pa-supply = <®_aldo2>;
+ vcc-pc-supply = <®_dcdc1>;
+ vcc-pd-supply = <®_dcdc1>;
+ vcc-pe-supply = <®_eldo1>;
+ vcc-pf-supply = <®_dcdc1>;
+ vcc-pg-supply = <®_dldo1>;
+};
+
+®_aldo2 {
+ regulator-min-microvolt = <2500000>;
+ regulator-max-microvolt = <2500000>;
+ regulator-name = "vcc-pa";
+};
+
®_aldo3 {
regulator-always-on;
regulator-min-microvolt = <2700000>;
@@ -118,6 +197,12 @@
regulator-name = "avcc";
};
+®_dc1sw {
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <3000000>;
+ regulator-name = "vcc-gmac-phy";
+};
+
®_dcdc1 {
regulator-always-on;
regulator-min-microvolt = <3000000>;
@@ -152,12 +237,27 @@
regulator-name = "vcc-wifi-io";
};
+/*
+ * Our WiFi chip needs both DLDO2 and DLDO3 to be powered at the same
+ * time, with the two being in sync, to be able to meet maximum power
+ * consumption during transmits. Since this is not really supported
+ * right now, just use the two as always on, and we will fix it later.
+ */
+
®_dldo2 {
+ regulator-always-on;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-name = "vcc-wifi";
};
+®_dldo3 {
+ regulator-always-on;
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-name = "vcc-wifi-2";
+};
+
®_dldo4 {
regulator-min-microvolt = <2500000>;
regulator-max-microvolt = <2500000>;
@@ -170,28 +270,33 @@
regulator-name = "vdd1v2-sata";
};
-&mmc0 {
- vmmc-supply = <®_dcdc1>;
- bus-width = <4>;
- cd-gpios = <&pio 7 13 GPIO_ACTIVE_LOW>; /* PH13 */
+&tcon_tv0 {
status = "okay";
};
-&mmc1 {
+&uart0 {
pinctrl-names = "default";
- pinctrl-0 = <&mmc1_pg_pins>;
- vmmc-supply = <®_dldo2>;
- vqmmc-supply = <®_dldo1>;
- mmc-pwrseq = <&wifi_pwrseq>;
- bus-width = <4>;
- non-removable;
+ pinctrl-0 = <&uart0_pb_pins>;
status = "okay";
};
-&uart0 {
+&uart3 {
pinctrl-names = "default";
- pinctrl-0 = <&uart0_pb_pins>;
+ pinctrl-0 = <&uart3_pg_pins>, <&uart3_rts_cts_pg_pins>;
+ uart-has-rtscts;
status = "okay";
+
+ bluetooth {
+ compatible = "brcm,bcm43438-bt";
+ clocks = <&ccu CLK_OUTA>;
+ clock-names = "lpo";
+ vbat-supply = <®_dldo2>;
+ vddio-supply = <®_dldo1>;
+ device-wakeup-gpios = <&pio 6 11 GPIO_ACTIVE_HIGH>; /* PG11 */
+ /* TODO host wake line connected to PMIC GPIO pins */
+ shutdown-gpios = <&pio 7 12 GPIO_ACTIVE_HIGH>; /* PH12 */
+ max-speed = <1500000>;
+ };
};
&usbphy {
--
2.14.5
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/4] sunxi: defconfig: Bananapi M2 Berry: enable Ethernet
2020-01-01 23:44 [PATCH 0/4] sunxi: R40: Enable USB and Ethernet Andre Przywara
2020-01-01 23:44 ` [PATCH 1/4] sunxi: dts: R40: Update Bananapi M2 Berry .dts Andre Przywara
@ 2020-01-01 23:44 ` Andre Przywara
2020-01-01 23:44 ` [PATCH 3/4] phy: sun4i-usb: Add Allwinner R40 support Andre Przywara
` (2 subsequent siblings)
4 siblings, 0 replies; 7+ messages in thread
From: Andre Przywara @ 2020-01-01 23:44 UTC (permalink / raw)
To: u-boot
The M2 Berry features the normal Gigabit PHY connected to the SoC's MAC,
so enable the sun8i-emac driver to support Ethernet on the board.
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
---
configs/bananapi_m2_berry_defconfig | 2 ++
1 file changed, 2 insertions(+)
diff --git a/configs/bananapi_m2_berry_defconfig b/configs/bananapi_m2_berry_defconfig
index a5b8632ef6..a97be06188 100644
--- a/configs/bananapi_m2_berry_defconfig
+++ b/configs/bananapi_m2_berry_defconfig
@@ -15,3 +15,5 @@ CONFIG_SCSI_AHCI=y
CONFIG_AXP_DLDO4_VOLT=2500
CONFIG_AXP_ELDO3_VOLT=1200
CONFIG_SCSI=y
+CONFIG_SUN8I_EMAC=y
+CONFIG_RGMII=y
--
2.14.5
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 3/4] phy: sun4i-usb: Add Allwinner R40 support
2020-01-01 23:44 [PATCH 0/4] sunxi: R40: Enable USB and Ethernet Andre Przywara
2020-01-01 23:44 ` [PATCH 1/4] sunxi: dts: R40: Update Bananapi M2 Berry .dts Andre Przywara
2020-01-01 23:44 ` [PATCH 2/4] sunxi: defconfig: Bananapi M2 Berry: enable Ethernet Andre Przywara
@ 2020-01-01 23:44 ` Andre Przywara
2020-01-01 23:44 ` [PATCH 4/4] sunxi: defconfig: R40 boards: enable USB Andre Przywara
2020-01-24 17:47 ` [PATCH 0/4] sunxi: R40: Enable USB and Ethernet Jagan Teki
4 siblings, 0 replies; 7+ messages in thread
From: Andre Przywara @ 2020-01-01 23:44 UTC (permalink / raw)
To: u-boot
Since every Allwinner USB PHY seems to be slightly different from each
other, we need to add the compatible string and the respective data
structure to make it work on the R40/V40 SoC.
Nothing spectacular this time, just one less USB controller than the H3.
Copied from the Linux kernel.
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
---
arch/arm/mach-sunxi/Kconfig | 1 +
drivers/phy/allwinner/phy-sun4i-usb.c | 12 ++++++++++++
2 files changed, 13 insertions(+)
diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig
index 16d41b83af..3a3b673430 100644
--- a/arch/arm/mach-sunxi/Kconfig
+++ b/arch/arm/mach-sunxi/Kconfig
@@ -250,6 +250,7 @@ config MACH_SUN8I_R40
select SUPPORT_SPL
select SUNXI_DRAM_DW
select SUNXI_DRAM_DW_32BIT
+ select PHY_SUN4I_USB
config MACH_SUN8I_V3S
bool "sun8i (Allwinner V3s)"
diff --git a/drivers/phy/allwinner/phy-sun4i-usb.c b/drivers/phy/allwinner/phy-sun4i-usb.c
index 5e8f87717f..f7309057b9 100644
--- a/drivers/phy/allwinner/phy-sun4i-usb.c
+++ b/drivers/phy/allwinner/phy-sun4i-usb.c
@@ -73,6 +73,7 @@ enum sun4i_usb_phy_type {
sun8i_a33_phy,
sun8i_a83t_phy,
sun8i_h3_phy,
+ sun8i_r40_phy,
sun8i_v3s_phy,
sun50i_a64_phy,
sun50i_h6_phy,
@@ -571,6 +572,16 @@ static const struct sun4i_usb_phy_cfg sun8i_h3_cfg = {
.phy0_dual_route = true,
};
+static const struct sun4i_usb_phy_cfg sun8i_r40_cfg = {
+ .num_phys = 3,
+ .type = sun8i_r40_phy,
+ .disc_thresh = 3,
+ .phyctl_offset = REG_PHYCTL_A33,
+ .dedicated_clocks = true,
+ .enable_pmu_unk1 = true,
+ .phy0_dual_route = true,
+};
+
static const struct sun4i_usb_phy_cfg sun8i_v3s_cfg = {
.num_phys = 1,
.type = sun8i_v3s_phy,
@@ -611,6 +622,7 @@ static const struct udevice_id sun4i_usb_phy_ids[] = {
{ .compatible = "allwinner,sun8i-a33-usb-phy", .data = (ulong)&sun8i_a33_cfg },
{ .compatible = "allwinner,sun8i-a83t-usb-phy", .data = (ulong)&sun8i_a83t_cfg },
{ .compatible = "allwinner,sun8i-h3-usb-phy", .data = (ulong)&sun8i_h3_cfg },
+ { .compatible = "allwinner,sun8i-r40-usb-phy", .data = (ulong)&sun8i_r40_cfg },
{ .compatible = "allwinner,sun8i-v3s-usb-phy", .data = (ulong)&sun8i_v3s_cfg },
{ .compatible = "allwinner,sun50i-a64-usb-phy", .data = (ulong)&sun50i_a64_cfg},
{ .compatible = "allwinner,sun50i-h6-usb-phy", .data = (ulong)&sun50i_h6_cfg},
--
2.14.5
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 4/4] sunxi: defconfig: R40 boards: enable USB
2020-01-01 23:44 [PATCH 0/4] sunxi: R40: Enable USB and Ethernet Andre Przywara
` (2 preceding siblings ...)
2020-01-01 23:44 ` [PATCH 3/4] phy: sun4i-usb: Add Allwinner R40 support Andre Przywara
@ 2020-01-01 23:44 ` Andre Przywara
2020-01-24 17:47 ` [PATCH 0/4] sunxi: R40: Enable USB and Ethernet Jagan Teki
4 siblings, 0 replies; 7+ messages in thread
From: Andre Przywara @ 2020-01-01 23:44 UTC (permalink / raw)
To: u-boot
Now that the USB PHY on the Allwinner R40 SoC is supported, enable USB
support for the two R40 boards U-Boot supports.
For this we need to add the GPIO pin that powers the USB port(s), also
enable the usual suspects (OHCI/EHCI support).
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
---
configs/Bananapi_M2_Ultra_defconfig | 4 ++++
configs/bananapi_m2_berry_defconfig | 4 ++++
2 files changed, 8 insertions(+)
diff --git a/configs/Bananapi_M2_Ultra_defconfig b/configs/Bananapi_M2_Ultra_defconfig
index 7a30dd7f7f..bbf931329c 100644
--- a/configs/Bananapi_M2_Ultra_defconfig
+++ b/configs/Bananapi_M2_Ultra_defconfig
@@ -19,4 +19,8 @@ CONFIG_SUN8I_EMAC=y
CONFIG_AXP_DLDO4_VOLT=2500
CONFIG_AXP_ELDO3_VOLT=1200
CONFIG_SCSI=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_OHCI_HCD=y
+CONFIG_USB1_VBUS_PIN="PH23"
+CONFIG_USB2_VBUS_PIN="PH23"
CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/bananapi_m2_berry_defconfig b/configs/bananapi_m2_berry_defconfig
index a97be06188..654974e47d 100644
--- a/configs/bananapi_m2_berry_defconfig
+++ b/configs/bananapi_m2_berry_defconfig
@@ -17,3 +17,7 @@ CONFIG_AXP_ELDO3_VOLT=1200
CONFIG_SCSI=y
CONFIG_SUN8I_EMAC=y
CONFIG_RGMII=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_OHCI_HCD=y
+CONFIG_USB1_VBUS_PIN="PH23"
+CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
--
2.14.5
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 1/4] sunxi: dts: R40: Update Bananapi M2 Berry .dts
2020-01-01 23:44 ` [PATCH 1/4] sunxi: dts: R40: Update Bananapi M2 Berry .dts Andre Przywara
@ 2020-01-21 8:35 ` Jagan Teki
0 siblings, 0 replies; 7+ messages in thread
From: Jagan Teki @ 2020-01-21 8:35 UTC (permalink / raw)
To: u-boot
On Thu, Jan 2, 2020 at 5:15 AM Andre Przywara <andre.przywara@arm.com> wrote:
>
> Update the .dts file from the kernel, which carries much more nodes,
> some of them we need to enable USB and Ethernet support for the board.
>
> Signed-off-by: Andre Przywara <andre.przywara@arm.com>
> ---
Would be better to have all R40 files to sync at the same time?
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 0/4] sunxi: R40: Enable USB and Ethernet
2020-01-01 23:44 [PATCH 0/4] sunxi: R40: Enable USB and Ethernet Andre Przywara
` (3 preceding siblings ...)
2020-01-01 23:44 ` [PATCH 4/4] sunxi: defconfig: R40 boards: enable USB Andre Przywara
@ 2020-01-24 17:47 ` Jagan Teki
4 siblings, 0 replies; 7+ messages in thread
From: Jagan Teki @ 2020-01-24 17:47 UTC (permalink / raw)
To: u-boot
On Thu, Jan 2, 2020 at 5:15 AM Andre Przywara <andre.przywara@arm.com> wrote:
>
> This series enables the USB ports on boards with the Allwinner R40 SoC,
> also updates the Bananapi M2 Berry board support.
> Patch 1/4 updates the M2 Berry .dts file, so that we get the USB and
> Ethernet nodes that we need to enable Ethernet in patch 2/4.
> Patch 3/4 adds support for the USB PHY in the R40 SoC, so that the final
> patch can enable USB for the two R40 boards that U-Boot supports.
>
> Tested on the Bananapi M2 Berry. I don't have the M2 Ultra, but USB
> should work there with this series too. Ethernet was already enabled.
>
> Cheers,
> Andre.
>
> Andre Przywara (4):
> sunxi: dts: R40: Update Bananapi M2 Berry .dts
> sunxi: defconfig: Bananapi M2 Berry: enable Ethernet
> phy: sun4i-usb: Add Allwinner R40 support
> sunxi: defconfig: R40 boards: enable USB
>
> arch/arm/dts/sun8i-v40-bananapi-m2-berry.dts | 135 ++++++++++++++++++++++++---
> arch/arm/mach-sunxi/Kconfig | 1 +
> configs/Bananapi_M2_Ultra_defconfig | 4 +
> configs/bananapi_m2_berry_defconfig | 6 ++
> drivers/phy/allwinner/phy-sun4i-usb.c | 12 +++
> 5 files changed, 143 insertions(+), 15 deletions(-)
Applied all to u-boot-sunxi/master
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2020-01-24 17:47 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-01 23:44 [PATCH 0/4] sunxi: R40: Enable USB and Ethernet Andre Przywara
2020-01-01 23:44 ` [PATCH 1/4] sunxi: dts: R40: Update Bananapi M2 Berry .dts Andre Przywara
2020-01-21 8:35 ` Jagan Teki
2020-01-01 23:44 ` [PATCH 2/4] sunxi: defconfig: Bananapi M2 Berry: enable Ethernet Andre Przywara
2020-01-01 23:44 ` [PATCH 3/4] phy: sun4i-usb: Add Allwinner R40 support Andre Przywara
2020-01-01 23:44 ` [PATCH 4/4] sunxi: defconfig: R40 boards: enable USB Andre Przywara
2020-01-24 17:47 ` [PATCH 0/4] sunxi: R40: Enable USB and Ethernet Jagan Teki
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.