public inbox for linux-tegra@vger.kernel.org
 help / color / mirror / Atom feed
From: Jon Hunter <jonathanh@nvidia.com>
To: Wayne Chang <waynec@nvidia.com>,
	gregkh@linuxfoundation.org, robh+dt@kernel.org,
	krzysztof.kozlowski+dt@linaro.org, treding@nvidia.com,
	thierry.reding@gmail.com, heikki.krogerus@linux.intel.com,
	ajayg@nvidia.com, vkoul@kernel.org, p.zabel@pengutronix.de,
	balbi@kernel.org, mathias.nyman@intel.com, jckuo@nvidia.com
Cc: linux-usb@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, singhanc@nvidia.com,
	linux-i2c@vger.kernel.org, linux-phy@lists.infradead.org,
	linux-tegra@vger.kernel.org
Subject: Re: [PATCH v3 04/13] arm64: tegra: Enable XUSB host and device on Jetson AGX Orin
Date: Tue, 15 Nov 2022 12:17:03 +0000	[thread overview]
Message-ID: <b12b57ba-6b81-792e-cee8-e3e0c6d88066@nvidia.com> (raw)
In-Reply-To: <20221114124053.1873316-5-waynec@nvidia.com>



On 14/11/2022 12:40, Wayne Chang wrote:
> This commit enables XUSB host, device, and pad controller on
> Jetson AGX Orin.
> 
> Signed-off-by: Wayne Chang <waynec@nvidia.com>
> ---
> depends on the following change
> https://lore.kernel.org/all/20221003125141.123759-1-jonathanh@nvidia.com/
> V2 -> V3:nothing has changed but added the dependency here
> V1 -> V2:removed the redundant cells and status in ucsi-ccg.
> Using dash instead of underscore in the ucsi-ccg node name.
> Using representive name in cypress,firmware-build property.
>   .../boot/dts/nvidia/tegra234-p3701-0000.dtsi  |  48 +++++
>   .../nvidia/tegra234-p3737-0000+p3701-0000.dts | 175 ++++++++++++++++++
>   arch/arm64/boot/dts/nvidia/tegra234.dtsi      | 170 +++++++++++++++++
>   3 files changed, 393 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..58baedbd0f93 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,181 @@ 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@8 {
> +				compatible = "cypress,cypd4226";
> +				cypress,firmware-build = "nvidia,jetson-agx-xavier";
> +				interrupt-parent = <&gpio>;
> +				interrupts = <TEGRA234_MAIN_GPIO(Y, 4) IRQ_TYPE_LEVEL_LOW>;
> +				reg = <0x08>;
> +				#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>;
> +						hs_ucsi_ccg_p0: endpoint {
> +							remote-endpoint = <&hs_typec_p0>;
> +						};
> +					};
> +					port@1 {
> +						reg = <1>;
> +						ss_ucsi_ccg_p0: endpoint {
> +							remote-endpoint = <&ss_typec_p0>;
> +						};
> +					};
> +				};
> +				ccg_typec_con1: connector@1 {
> +					compatible = "usb-c-connector";
> +					reg = <1>;
> +					label = "USB-C";
> +					data-role = "dual";
> +					#address-cells = <1>;
> +					#size-cells = <0>;
> +					port@0 {
> +						reg = <0>;
> +						hs_ucsi_ccg_p1: endpoint {
> +							remote-endpoint = <&hs_typec_p1>;
> +						};
> +					};
> +					port@1 {
> +						reg = <1>;
> +						ss_ucsi_ccg_p1: endpoint {
> +							remote-endpoint = <&ss_typec_p1>;
> +						};
> +					};
> +				};
> +			};
> +		};
>   	};
>   
>   	chosen {
> diff --git a/arch/arm64/boot/dts/nvidia/tegra234.dtsi b/arch/arm64/boot/dts/nvidia/tegra234.dtsi
> index 0170bfa8a467..27635d459e4c 100644
> --- a/arch/arm64/boot/dts/nvidia/tegra234.dtsi
> +++ b/arch/arm64/boot/dts/nvidia/tegra234.dtsi
> @@ -942,6 +942,174 @@ hda@3510000 {
>   			status = "disabled";
>   		};
>   
> +		xusb_padctl: padctl@3520000 {
> +			compatible = "nvidia,tegra234-xusb-padctl";
> +			reg = <0x03520000 0x20000>,
> +			      <0x03540000 0x10000>;
> +			reg-names = "padctl", "ao";
> +			interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
> +
> +			resets = <&bpmp TEGRA234_RESET_XUSB_PADCTL>;
> +			reset-names = "padctl";
> +
> +			status = "disabled";
> +
> +			pads {
> +				usb2 {
> +					clocks = <&bpmp TEGRA234_CLK_USB2_TRK>;
> +					clock-names = "trk";
> +
> +					lanes {
> +						usb2-0 {
> +							nvidia,function = "xusb";
> +							status = "disabled";
> +							#phy-cells = <0>;
> +						};
> +
> +						usb2-1 {
> +							nvidia,function = "xusb";
> +							status = "disabled";
> +							#phy-cells = <0>;
> +						};
> +
> +						usb2-2 {
> +							nvidia,function = "xusb";
> +							status = "disabled";
> +							#phy-cells = <0>;
> +						};
> +
> +						usb2-3 {
> +							nvidia,function = "xusb";
> +							status = "disabled";
> +							#phy-cells = <0>;
> +						};
> +					};
> +				};
> +
> +				usb3 {
> +					lanes {
> +						usb3-0 {
> +							nvidia,function = "xusb";
> +							status = "disabled";
> +							#phy-cells = <0>;
> +						};
> +
> +						usb3-1 {
> +							nvidia,function = "xusb";
> +							status = "disabled";
> +							#phy-cells = <0>;
> +						};
> +
> +						usb3-2 {
> +							nvidia,function = "xusb";
> +							status = "disabled";
> +							#phy-cells = <0>;
> +						};
> +
> +						usb3-3 {
> +							nvidia,function = "xusb";
> +							status = "disabled";
> +							#phy-cells = <0>;
> +						};
> +					};
> +				};
> +			};
> +
> +			ports {
> +				usb2-0 {
> +					status = "disabled";
> +				};
> +
> +				usb2-1 {
> +					status = "disabled";
> +				};
> +
> +				usb2-2 {
> +					status = "disabled";
> +				};
> +
> +				usb2-3 {
> +					status = "disabled";
> +				};
> +
> +				usb3-0 {
> +					status = "disabled";
> +				};
> +
> +				usb3-1 {
> +					status = "disabled";
> +				};
> +
> +				usb3-2 {
> +					status = "disabled";
> +				};
> +
> +				usb3-3 {
> +					status = "disabled";
> +				};
> +			};
> +		};
> +
> +		usb@3550000 {
> +			compatible = "nvidia,tegra234-xudc";
> +			reg = <0x03550000 0x8000>,
> +			      <0x03558000 0x8000>;
> +			reg-names = "base", "fpci";
> +			interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>;
> +			clocks = <&bpmp TEGRA234_CLK_XUSB_CORE_DEV>,
> +				 <&bpmp TEGRA234_CLK_XUSB_CORE_SS>,
> +				 <&bpmp TEGRA234_CLK_XUSB_SS>,
> +				 <&bpmp TEGRA234_CLK_XUSB_FS>;
> +			clock-names = "dev", "ss", "ss_src", "fs_src";
> +			interconnects = <&mc TEGRA234_MEMORY_CLIENT_XUSB_DEVR &emc>,
> +					<&mc TEGRA234_MEMORY_CLIENT_XUSB_DEVW &emc>;
> +			interconnect-names = "dma-mem", "write";
> +			iommus = <&smmu_niso1 TEGRA234_SID_XUSB_DEV>;
> +			power-domains = <&bpmp TEGRA234_POWER_DOMAIN_XUSBB>,
> +					<&bpmp TEGRA234_POWER_DOMAIN_XUSBA>;
> +			power-domain-names = "dev", "ss";
> +			nvidia,xusb-padctl = <&xusb_padctl>;
> +			dma-coherent;
> +			status = "disabled";
> +		};
> +
> +		usb@3610000 {
> +			compatible = "nvidia,tegra234-xusb";
> +			reg = <0x03610000 0x40000>,
> +			      <0x03600000 0x10000>,
> +			      <0x03650000 0x10000>;
> +			reg-names = "hcd", "fpci", "bar2";
> +
> +			interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
> +				     <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
> +
> +			clocks = <&bpmp TEGRA234_CLK_XUSB_CORE_HOST>,
> +				 <&bpmp TEGRA234_CLK_XUSB_FALCON>,
> +				 <&bpmp TEGRA234_CLK_XUSB_CORE_SS>,
> +				 <&bpmp TEGRA234_CLK_XUSB_SS>,
> +				 <&bpmp TEGRA234_CLK_CLK_M>,
> +				 <&bpmp TEGRA234_CLK_XUSB_FS>,
> +				 <&bpmp TEGRA234_CLK_UTMIP_PLL>,
> +				 <&bpmp TEGRA234_CLK_CLK_M>,
> +				 <&bpmp TEGRA234_CLK_PLLE>;
> +			clock-names = "xusb_host", "xusb_falcon_src",
> +				      "xusb_ss", "xusb_ss_src", "xusb_hs_src",
> +				      "xusb_fs_src", "pll_u_480m", "clk_m",
> +				      "pll_e";
> +			interconnects = <&mc TEGRA234_MEMORY_CLIENT_XUSB_HOSTR &emc>,
> +					<&mc TEGRA234_MEMORY_CLIENT_XUSB_HOSTW &emc>;
> +			interconnect-names = "dma-mem", "write";
> +			iommus = <&smmu_niso1 TEGRA234_SID_XUSB_HOST>;
> +
> +			power-domains = <&bpmp TEGRA234_POWER_DOMAIN_XUSBC>,
> +					<&bpmp TEGRA234_POWER_DOMAIN_XUSBA>;
> +			power-domain-names = "xusb_host", "xusb_ss";
> +
> +			nvidia,xusb-padctl = <&xusb_padctl>;
> +			dma-coherent;
> +			status = "disabled";
> +		};
> +
>   		fuse@3810000 {
>   			compatible = "nvidia,tegra234-efuse";
>   			reg = <0x03810000 0x10000>;
> @@ -1470,6 +1638,8 @@ gen2_i2c: i2c@c240000 {
>   			compatible = "nvidia,tegra194-i2c";
>   			reg = <0xc240000 0x100>;
>   			interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
>   			status = "disabled";
>   			clock-frequency = <100000>;
>   			clocks = <&bpmp TEGRA234_CLK_I2C2


Reviewed-by: Jon Hunter <jonathanh@nvidia.com>

Thanks
Jon

-- 
nvpublic

  reply	other threads:[~2022-11-15 12:17 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-14 12:40 [PATCH v3 00/13] Enable USB host and device functions on Jetson Wayne Chang
2022-11-14 12:40 ` [PATCH v3 01/13] dt-bindings: usb: tegra-xudc: Add Tegra234 XUSB controller support Wayne Chang
2022-11-15 12:14   ` Jon Hunter
2022-11-16 21:05   ` Rob Herring
2022-11-17 12:05     ` Jon Hunter
2022-11-14 12:40 ` [PATCH v3 02/13] dt-bindings: usb: Add NVIDIA Tegra234 XUSB host controller binding Wayne Chang
2022-11-14 19:16   ` Rob Herring
2022-11-18 11:47     ` Jon Hunter
2022-11-18 14:20       ` Thierry Reding
2022-11-15 12:14   ` Jon Hunter
2022-11-14 12:40 ` [PATCH v3 03/13] dt-bindings: usb: Add binding for Cypress cypd4226 I2C driver Wayne Chang
2022-11-15 12:15   ` Jon Hunter
2022-11-16 21:14   ` Rob Herring
2022-11-14 12:40 ` [PATCH v3 04/13] arm64: tegra: Enable XUSB host and device on Jetson AGX Orin Wayne Chang
2022-11-15 12:17   ` Jon Hunter [this message]
2022-11-14 12:40 ` [PATCH v3 05/13] usb: typec: ucsi_ccg: Add OF support Wayne Chang
2022-11-15 12:17   ` Jon Hunter
2022-11-16 12:37   ` Heikki Krogerus
2022-11-16 12:54   ` Heikki Krogerus
2022-11-14 12:40 ` [PATCH v3 06/13] usb: typec: ucsi_ccg: Add cypress,firmware-build as a well-known regex Wayne Chang
2022-11-15 12:18   ` Jon Hunter
2022-11-17 19:45   ` Jon Hunter
2022-11-14 12:40 ` [PATCH v3 07/13] i2c: nvidia-gpu: " Wayne Chang
2022-11-15 12:18   ` Jon Hunter
2022-11-15 20:52   ` Wolfram Sang
2022-11-14 12:40 ` [PATCH v3 08/13] usb: typec: ucsi_ccg: Remove ccgx,firmware-build property Wayne Chang
2022-11-15 12:19   ` Jon Hunter
2022-11-14 12:40 ` [PATCH v3 09/13] i2c: nvidia-gpu: " Wayne Chang
2022-11-15 12:19   ` Jon Hunter
2022-11-15 20:53   ` Wolfram Sang
2022-11-14 12:40 ` [PATCH v3 10/13] phy: tegra: xusb: Disable trk clk when not in use Wayne Chang
2022-11-15 12:19   ` Jon Hunter
2023-01-12 17:23   ` Vinod Koul
2022-11-14 12:40 ` [PATCH v3 11/13] phy: tegra: xusb: Add Tegra234 support Wayne Chang
2022-11-15 12:22   ` Jon Hunter
2022-11-14 12:40 ` [PATCH v3 12/13] usb: host: xhci-tegra: Add Tegra234 XHCI support Wayne Chang
2022-11-15 12:23   ` Jon Hunter
2022-11-14 12:40 ` [PATCH v3 13/13] usb: gadget: tegra-xudc: Add Tegra234 support Wayne Chang
2022-11-15 12:23   ` Jon Hunter
2022-11-18 15:44 ` [PATCH v3 00/13] Enable USB host and device functions on Jetson Jon Hunter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=b12b57ba-6b81-792e-cee8-e3e0c6d88066@nvidia.com \
    --to=jonathanh@nvidia.com \
    --cc=ajayg@nvidia.com \
    --cc=balbi@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=heikki.krogerus@linux.intel.com \
    --cc=jckuo@nvidia.com \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-phy@lists.infradead.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=mathias.nyman@intel.com \
    --cc=p.zabel@pengutronix.de \
    --cc=robh+dt@kernel.org \
    --cc=singhanc@nvidia.com \
    --cc=thierry.reding@gmail.com \
    --cc=treding@nvidia.com \
    --cc=vkoul@kernel.org \
    --cc=waynec@nvidia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox