105 lines
2.6 KiB
Diff
105 lines
2.6 KiB
Diff
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||
|
From: Christian Hewitt <christianshewitt@gmail.com>
|
||
|
Date: Tue, 17 Aug 2021 16:16:43 +0000
|
||
|
Subject: arm64: dts: meson: radxa-zero: add support for the usb type-c
|
||
|
controller
|
||
|
|
||
|
Radxa Zero uses an FUSB302 type-c controller, so lets enable it.
|
||
|
|
||
|
NB: Polarity swapping via GPIO is not implemented in the current driver
|
||
|
(see drivers/usb/typec/tcpm/fusb302.c) so it is not possible to handle
|
||
|
GPIOAO_6 for USB3 polarity control.
|
||
|
|
||
|
Includes:
|
||
|
- arm64: dts: amlogic: fix interrupt storm from fusb302 on Radxa Zero
|
||
|
it makes load average >1. use correct pin for interrupt from fusb302.
|
||
|
|
||
|
Signed-off-by: FUKAUMI Naoki <naoki@radxa.com>
|
||
|
Suggested-by: Neil Armstrong <narmstrong@baylibre.com>
|
||
|
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||
|
Signed-off-by: Yuntian Zhang <yt@radxa.com>
|
||
|
---
|
||
|
arch/arm64/boot/dts/amlogic/meson-g12a-radxa-zero.dts | 48 ++++++++++
|
||
|
1 file changed, 48 insertions(+)
|
||
|
|
||
|
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12a-radxa-zero.dts b/arch/arm64/boot/dts/amlogic/meson-g12a-radxa-zero.dts
|
||
|
index cf0a9be83fc4..29cfcc045bea 100644
|
||
|
--- a/arch/arm64/boot/dts/amlogic/meson-g12a-radxa-zero.dts
|
||
|
+++ b/arch/arm64/boot/dts/amlogic/meson-g12a-radxa-zero.dts
|
||
|
@@ -60,6 +60,14 @@ sdio_pwrseq: sdio-pwrseq {
|
||
|
clock-names = "ext_clock";
|
||
|
};
|
||
|
|
||
|
+ typec2_vbus: regulator-typec2_vbus {
|
||
|
+ compatible = "regulator-fixed";
|
||
|
+ regulator-name = "TYPEC2_VBUS";
|
||
|
+ regulator-min-microvolt = <5000000>;
|
||
|
+ regulator-max-microvolt = <5000000>;
|
||
|
+ vin-supply = <&ao_5v>;
|
||
|
+ };
|
||
|
+
|
||
|
ao_5v: regulator-ao_5v {
|
||
|
compatible = "regulator-fixed";
|
||
|
regulator-name = "AO_5V";
|
||
|
@@ -191,6 +199,18 @@ wifi32k: wifi32k {
|
||
|
};
|
||
|
};
|
||
|
|
||
|
+&ao_pinctrl {
|
||
|
+ /* Ensure the TYPE C controller irq pin is not driven by the SoC */
|
||
|
+ fusb302_irq_pins: fusb302_irq {
|
||
|
+ mux {
|
||
|
+ groups = "GPIOAO_5";
|
||
|
+ function = "gpio_aobus";
|
||
|
+ bias-pull-up;
|
||
|
+ output-disable;
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
+
|
||
|
&arb {
|
||
|
status = "okay";
|
||
|
};
|
||
|
@@ -278,6 +298,26 @@ &ir {
|
||
|
pinctrl-names = "default";
|
||
|
};
|
||
|
|
||
|
+&i2c3 {
|
||
|
+ pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>;
|
||
|
+ pinctrl-names = "default";
|
||
|
+ status = "okay";
|
||
|
+
|
||
|
+ fusb302@22 {
|
||
|
+ compatible = "fcs,fusb302";
|
||
|
+ reg = <0x22>;
|
||
|
+
|
||
|
+ pinctrl-0 = <&fusb302_irq_pins>;
|
||
|
+ pinctrl-names = "default";
|
||
|
+ interrupt-parent = <&gpio_intc>;
|
||
|
+ interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
|
||
|
+
|
||
|
+ vbus-supply = <&typec2_vbus>;
|
||
|
+
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+};
|
||
|
+
|
||
|
&pwm_AO_cd {
|
||
|
pinctrl-0 = <&pwm_ao_d_e_pins>;
|
||
|
pinctrl-names = "default";
|
||
|
@@ -402,3 +442,11 @@ &uart_AO {
|
||
|
&usb {
|
||
|
status = "okay";
|
||
|
};
|
||
|
+
|
||
|
+&usb2_phy0 {
|
||
|
+ phy-supply = <&typec2_vbus>;
|
||
|
+};
|
||
|
+
|
||
|
+&usb3_pcie_phy {
|
||
|
+ phy-supply = <&typec2_vbus>;
|
||
|
+};
|
||
|
--
|
||
|
Armbian
|
||
|
|