Messages in this thread | | | Date | Fri, 28 Oct 2022 10:33:03 +0100 | Subject | Re: [PATCH 04/11] arm64: tegra: Enable XUSB host and device on Jetson AGX Orin | From | Jon Hunter <> |
| |
On 28/10/2022 03:23, Krzysztof Kozlowski wrote: > On 24/10/2022 03:41, Wayne Chang wrote: >> This commit enables XUSB host, device, and pad controller on >> Jetson AGX Orin. >> >> Signed-off-by: Wayne Chang <waynec@nvidia.com> >> --- >> .../boot/dts/nvidia/tegra234-p3701-0000.dtsi | 48 +++++ >> .../nvidia/tegra234-p3737-0000+p3701-0000.dts | 184 ++++++++++++++++++ >> arch/arm64/boot/dts/nvidia/tegra234.dtsi | 170 ++++++++++++++++ >> 3 files changed, 402 insertions(+) >> >> diff --git a/arch/arm64/boot/dts/nvidia/tegra234-p3701-0000.dtsi b/arch/arm64/boot/dts/nvidia/tegra234-p3701-0000.dtsi >> index 9e4d72cfa69f..8acef87a5398 100644 >> --- a/arch/arm64/boot/dts/nvidia/tegra234-p3701-0000.dtsi >> +++ b/arch/arm64/boot/dts/nvidia/tegra234-p3701-0000.dtsi >> @@ -61,6 +61,29 @@ mmc@3460000 { >> non-removable; >> }; >> >> + padctl@3520000 { >> + vclamp-usb-supply = <&vdd_ao_1v8>; >> + avdd-usb-supply = <&vdd_ao_3v3>; >> + >> + ports { >> + usb2-0 { >> + vbus-supply = <&vdd_5v0_sys>; >> + }; >> + >> + usb2-1 { >> + vbus-supply = <&vdd_5v0_sys>; >> + }; >> + >> + usb2-2 { >> + vbus-supply = <&vdd_5v0_sys>; >> + }; >> + >> + usb2-3 { >> + vbus-supply = <&vdd_5v0_sys>; >> + }; >> + }; >> + }; >> + >> rtc@c2a0000 { >> status = "okay"; >> }; >> @@ -69,4 +92,29 @@ pmc@c360000 { >> nvidia,invert-interrupt; >> }; >> }; >> + >> + vdd_5v0_sys: regulator@0 { >> + compatible = "regulator-fixed"; >> + regulator-name = "VIN_SYS_5V0"; >> + regulator-min-microvolt = <5000000>; >> + regulator-max-microvolt = <5000000>; >> + regulator-always-on; >> + regulator-boot-on; >> + }; >> + >> + vdd_ao_1v8: regulator@1 { >> + compatible = "regulator-fixed"; >> + regulator-name = "vdd-AO-1v8"; >> + regulator-min-microvolt = <1800000>; >> + regulator-max-microvolt = <1800000>; >> + regulator-always-on; >> + }; >> + >> + vdd_ao_3v3: regulator@2 { >> + compatible = "regulator-fixed"; >> + regulator-name = "vdd-AO-3v3"; >> + regulator-min-microvolt = <3300000>; >> + regulator-max-microvolt = <3300000>; >> + regulator-always-on; >> + }; >> }; >> diff --git a/arch/arm64/boot/dts/nvidia/tegra234-p3737-0000+p3701-0000.dts b/arch/arm64/boot/dts/nvidia/tegra234-p3737-0000+p3701-0000.dts >> index 57ab75328814..b4630280bb32 100644 >> --- a/arch/arm64/boot/dts/nvidia/tegra234-p3737-0000+p3701-0000.dts >> +++ b/arch/arm64/boot/dts/nvidia/tegra234-p3737-0000+p3701-0000.dts >> @@ -2011,6 +2011,190 @@ hda@3510000 { >> nvidia,model = "NVIDIA Jetson AGX Orin HDA"; >> status = "okay"; >> }; >> + >> + padctl@3520000 { >> + status = "okay"; >> + >> + pads { >> + usb2 { >> + lanes { >> + usb2-0 { >> + status = "okay"; >> + }; >> + >> + usb2-1 { >> + status = "okay"; >> + }; >> + >> + usb2-2 { >> + status = "okay"; >> + }; >> + >> + usb2-3 { >> + status = "okay"; >> + }; >> + }; >> + }; >> + >> + usb3 { >> + lanes { >> + usb3-0 { >> + status = "okay"; >> + }; >> + >> + usb3-1 { >> + status = "okay"; >> + }; >> + >> + usb3-2 { >> + status = "okay"; >> + }; >> + }; >> + }; >> + }; >> + >> + ports { >> + usb2-0 { >> + mode = "otg"; >> + usb-role-switch; >> + status = "okay"; >> + port { >> + hs_typec_p1: endpoint { >> + remote-endpoint = <&hs_ucsi_ccg_p1>; >> + }; >> + }; >> + }; >> + >> + usb2-1 { >> + mode = "host"; >> + status = "okay"; >> + port { >> + hs_typec_p0: endpoint { >> + remote-endpoint = <&hs_ucsi_ccg_p0>; >> + }; >> + }; >> + }; >> + >> + usb2-2 { >> + mode = "host"; >> + status = "okay"; >> + }; >> + >> + usb2-3 { >> + mode = "host"; >> + status = "okay"; >> + }; >> + >> + usb3-0 { >> + nvidia,usb2-companion = <1>; >> + status = "okay"; >> + port { >> + ss_typec_p0: endpoint { >> + remote-endpoint = <&ss_ucsi_ccg_p0>; >> + }; >> + }; >> + }; >> + >> + usb3-1 { >> + nvidia,usb2-companion = <0>; >> + status = "okay"; >> + port { >> + ss_typec_p1: endpoint { >> + remote-endpoint = <&ss_ucsi_ccg_p1>; >> + }; >> + }; >> + }; >> + >> + usb3-2 { >> + nvidia,usb2-companion = <3>; >> + status = "okay"; >> + }; >> + }; >> + }; >> + >> + usb@3550000 { >> + status = "okay"; >> + >> + phys = <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-0}>, >> + <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-1}>; >> + phy-names = "usb2-0", "usb3-1"; >> + }; >> + >> + usb@3610000 { >> + status = "okay"; >> + >> + phys = <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-0}>, >> + <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-1}>, >> + <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-2}>, >> + <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-3}>, >> + <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-0}>, >> + <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-1}>, >> + <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-2}>; >> + phy-names = "usb2-0", "usb2-1", "usb2-2", "usb2-3", >> + "usb3-0", "usb3-1", "usb3-2"; >> + }; >> + >> + i2c@c240000 { >> + status = "okay"; >> + ucsi_ccg: ucsi_ccg@8 { > > No underscores in node names. > >> + compatible = "cypress,cypd4226"; >> + cypress,firmware-build = "gn"; >> + interrupt-parent = <&gpio>; >> + interrupts = <TEGRA234_MAIN_GPIO(Y, 4) IRQ_TYPE_LEVEL_LOW>; >> + reg = <0x08>; >> + status = "okay"; > > The pattern of redefining full path in Tegra is confusing - I have no > clue which of these status=okay are correct which are redundant. > > Do you?
I understand you may not like this approach, however, this comment is not really relevant to just this patch, but a general comment. But yes we will ensure that this is correct.
> > >> + #address-cells = <1>; >> + #size-cells = <0>; >> + ccg_typec_con0: connector@0 { >> + compatible = "usb-c-connector"; >> + reg = <0>; >> + label = "USB-C"; >> + data-role = "host"; >> + #address-cells = <1>; >> + #size-cells = <0>; >> + port@0 { >> + reg = <0>; >> + #address-cells = <1>; >> + #size-cells = <0>; > > Hm, why do you have here cells? > > Did you test the DTS with dtbs_check?
That does not look correct and so we will correct.
Thanks! Jon
-- nvpublic
| |