Re: [PATCH v6] arm64: dts: qcom: lemans-evk: Add OTG support for primary USB controller
From: Krzysztof Kozlowski
Date: Thu Nov 27 2025 - 03:19:09 EST
On 27/11/2025 08:35, Krishna Kurapati wrote:
> Enable OTG support for primary USB controller on EVK Platform. Add
> HD3SS3220 Type-C port controller present between Type-C port and SoC
> that provides role switch notifications to controller.
>
> Signed-off-by: Krishna Kurapati <krishna.kurapati@xxxxxxxxxxxxxxxx>
> ---
> Changes in v6:
> - Renamed remote endpoints in controller node
>
> Link to v5:
> https://lore.kernel.org/all/20251125110420.2192971-1-krishna.kurapati@xxxxxxxxxxxxxxxx/
>
> Changes in v5:
> - Re-organised pmic gpio node to maintain alphanumeric order
>
> Link to v4:
> https://lore.kernel.org/all/20251102165126.2799143-1-krishna.kurapati@xxxxxxxxxxxxxxxx/
>
> Changes in v4:
> - Moved remote endpoints to SoC file.
> - Renamed vbus regulator name.
> - Moved usb-role-swich property to SoC file.
>
> Link to v3:
> https://lore.kernel.org/all/20251024182138.2744861-1-krishna.kurapati@xxxxxxxxxxxxxxxx/
>
> Changes in v3:
> - Moved "usb-role-switch" to lemans dtsi file
> - Moved vbus supply to connector node
>
> Link to v2:
> https://lore.kernel.org/all/20251008180036.1770735-1-krishna.kurapati@xxxxxxxxxxxxxxxx/
>
> Changes in v2:
> - Removed redundant property of dr_mode setting.
> - Added power-role property in connector node.
>
> Link to v1:
> https://lore.kernel.org/all/20251002172946.589061-1-krishna.kurapati@xxxxxxxxxxxxxxxx/
>
> arch/arm64/boot/dts/qcom/lemans-evk.dts | 108 +++++++++++++++++++++++-
> arch/arm64/boot/dts/qcom/lemans.dtsi | 20 +++++
> 2 files changed, 126 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> index b40fa203e4a2..f4a8f853e0ca 100644
> --- a/arch/arm64/boot/dts/qcom/lemans-evk.dts
> +++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> @@ -38,6 +38,35 @@ chosen {
> stdout-path = "serial0:115200n8";
> };
>
> + connector-0 {
> + compatible = "usb-c-connector";
> + label = "USB0-Type-C";
> + data-role = "dual";
> + power-role = "dual";
> +
> + vbus-supply = <&vbus_supply_regulator_0>;
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> +
> + usb0_con_hs_ep: endpoint {
> + remote-endpoint = <&usb_0_dwc3_hs>;
> + };
> + };
> + port@1 {
> + reg = <1>;
> +
> + usb0_con_ss_ep: endpoint {
> + remote-endpoint = <&hd3ss3220_in_ep>;
> + };
> + };
> + };
> + };
> +
> edp0-connector {
> compatible = "dp-connector";
> label = "EDP0";
> @@ -102,6 +131,15 @@ platform {
> };
> };
>
> + vbus_supply_regulator_0: regulator-vbus-supply-0 {
> + compatible = "regulator-fixed";
> + regulator-name = "vbus_supply_0";
> + gpio = <&expander1 2 GPIO_ACTIVE_HIGH>;
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + enable-active-high;
> + };
> +
> vmmc_sdc: regulator-vmmc-sdc {
> compatible = "regulator-fixed";
>
> @@ -454,6 +492,43 @@ &gpi_dma2 {
> status = "okay";
> };
>
> +&i2c11 {
> + status = "okay";
> +
> + hd3ss3220@67 {
Node names should be generic. See also an explanation and list of
examples (not exhaustive) in DT specification:
https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation
If you cannot find a name matching your device, please check in kernel
sources for similar cases or you can grow the spec (via pull request to
DT spec repo).
Best regards,
Krzysztof