The USB PHY in the Allwinner R40 SoC seems to rely on voltage on the
VCC-TVIN/OUT supply pins for proper operation, on top of its own supply
voltage on VCC-USB. Without a 3.3V voltage supplied to VCC-TV*, USB
operation becomes unstable and can result in disconnects.
The Forlinx FETA40i-C SoM connects both the VCC-TVOUT and VCC-TVIN pins
to the ALDO1 rail of the PMIC, so we need to enable that rail for USB
operation. Since there is no supply property in the DT bindings for
the USB core, we need to always enable the regulator.
This fixes unstable USB operation on boards using the Forlinx FETA40i-C
module.
Signed-off-by: Fuyao Kashizuku <[email protected]>
---
Changes in v2:
- Subject include board name.
- regulator name changed to vcc-3v3-tv-usb.
- explain why we need to enable the regulator.
- use full name of the commiter
- Link to v1: https://lore.kernel.org/lkml/[email protected]/
arch/arm/boot/dts/allwinner/sun8i-r40-feta40i.dtsi | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/arch/arm/boot/dts/allwinner/sun8i-r40-feta40i.dtsi b/arch/arm/boot/dts/allwinner/sun8i-r40-feta40i.dtsi
index 9f39b5a2bb35..c12361d0317f 100644
--- a/arch/arm/boot/dts/allwinner/sun8i-r40-feta40i.dtsi
+++ b/arch/arm/boot/dts/allwinner/sun8i-r40-feta40i.dtsi
@@ -42,6 +42,13 @@ &pio {
vcc-pg-supply = <®_dldo1>;
};
+®_aldo1 {
+ regulator-always-on;
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-name = "vcc-3v3-tv-usb";
+};
+
®_aldo2 {
regulator-always-on;
regulator-min-microvolt = <1800000>;
--
2.39.2
On Tue, 26 Dec 2023 16:40:05 +0800
Fuyao Kashizuku <[email protected]> wrote:
Hi,
many thanks for the quick turnaround!
> The USB PHY in the Allwinner R40 SoC seems to rely on voltage on the
> VCC-TVIN/OUT supply pins for proper operation, on top of its own supply
> voltage on VCC-USB. Without a 3.3V voltage supplied to VCC-TV*, USB
> operation becomes unstable and can result in disconnects.
>
> The Forlinx FETA40i-C SoM connects both the VCC-TVOUT and VCC-TVIN pins
> to the ALDO1 rail of the PMIC, so we need to enable that rail for USB
> operation. Since there is no supply property in the DT bindings for
> the USB core, we need to always enable the regulator.
>
> This fixes unstable USB operation on boards using the Forlinx FETA40i-C
> module.
>
> Signed-off-by: Fuyao Kashizuku <[email protected]>
Perfect, looks good to me now!
Reviewed-by: Andre Przywara <[email protected]>
Thanks!
Andre
> ---
> Changes in v2:
> - Subject include board name.
> - regulator name changed to vcc-3v3-tv-usb.
> - explain why we need to enable the regulator.
> - use full name of the commiter
> - Link to v1: https://lore.kernel.org/lkml/[email protected]/
>
> arch/arm/boot/dts/allwinner/sun8i-r40-feta40i.dtsi | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/arch/arm/boot/dts/allwinner/sun8i-r40-feta40i.dtsi b/arch/arm/boot/dts/allwinner/sun8i-r40-feta40i.dtsi
> index 9f39b5a2bb35..c12361d0317f 100644
> --- a/arch/arm/boot/dts/allwinner/sun8i-r40-feta40i.dtsi
> +++ b/arch/arm/boot/dts/allwinner/sun8i-r40-feta40i.dtsi
> @@ -42,6 +42,13 @@ &pio {
> vcc-pg-supply = <®_dldo1>;
> };
>
> +®_aldo1 {
> + regulator-always-on;
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-name = "vcc-3v3-tv-usb";
> +};
> +
> ®_aldo2 {
> regulator-always-on;
> regulator-min-microvolt = <1800000>;
Dne torek, 26. december 2023 ob 09:40:05 CET je Fuyao Kashizuku napisal(a):
> The USB PHY in the Allwinner R40 SoC seems to rely on voltage on the
> VCC-TVIN/OUT supply pins for proper operation, on top of its own supply
> voltage on VCC-USB. Without a 3.3V voltage supplied to VCC-TV*, USB
> operation becomes unstable and can result in disconnects.
>
> The Forlinx FETA40i-C SoM connects both the VCC-TVOUT and VCC-TVIN pins
> to the ALDO1 rail of the PMIC, so we need to enable that rail for USB
> operation. Since there is no supply property in the DT bindings for
> the USB core, we need to always enable the regulator.
>
> This fixes unstable USB operation on boards using the Forlinx FETA40i-C
> module.
>
> Signed-off-by: Fuyao Kashizuku <[email protected]>
Reviewed-by: Jernej Skrabec <[email protected]>
Best regards,
Jernej
> ---
> Changes in v2:
> - Subject include board name.
> - regulator name changed to vcc-3v3-tv-usb.
> - explain why we need to enable the regulator.
> - use full name of the commiter
> - Link to v1: https://lore.kernel.org/lkml/[email protected]/
>
> arch/arm/boot/dts/allwinner/sun8i-r40-feta40i.dtsi | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/arch/arm/boot/dts/allwinner/sun8i-r40-feta40i.dtsi b/arch/arm/boot/dts/allwinner/sun8i-r40-feta40i.dtsi
> index 9f39b5a2bb35..c12361d0317f 100644
> --- a/arch/arm/boot/dts/allwinner/sun8i-r40-feta40i.dtsi
> +++ b/arch/arm/boot/dts/allwinner/sun8i-r40-feta40i.dtsi
> @@ -42,6 +42,13 @@ &pio {
> vcc-pg-supply = <®_dldo1>;
> };
>
> +®_aldo1 {
> + regulator-always-on;
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-name = "vcc-3v3-tv-usb";
> +};
> +
> ®_aldo2 {
> regulator-always-on;
> regulator-min-microvolt = <1800000>;
>
Dne torek, 26. december 2023 ob 09:40:05 CET je Fuyao Kashizuku napisal(a):
> The USB PHY in the Allwinner R40 SoC seems to rely on voltage on the
> VCC-TVIN/OUT supply pins for proper operation, on top of its own supply
> voltage on VCC-USB. Without a 3.3V voltage supplied to VCC-TV*, USB
> operation becomes unstable and can result in disconnects.
>
> The Forlinx FETA40i-C SoM connects both the VCC-TVOUT and VCC-TVIN pins
> to the ALDO1 rail of the PMIC, so we need to enable that rail for USB
> operation. Since there is no supply property in the DT bindings for
> the USB core, we need to always enable the regulator.
>
> This fixes unstable USB operation on boards using the Forlinx FETA40i-C
> module.
>
> Signed-off-by: Fuyao Kashizuku <[email protected]>
Merged, thanks!
Best regards,
Jernej