arch/arm64/boot/dts/nvidia/tegra210-smaug.dts | 13 +++++++++++++ drivers/phy/tegra/xusb-tegra210.c | 5 +++-- drivers/phy/tegra/xusb.c | 23 +++++++++++++++++++++++ drivers/phy/tegra/xusb.h | 1 + drivers/usb/gadget/udc/tegra-xudc.c | 4 ++++ drivers/usb/host/xhci-tegra.c | 17 ++++++++++------- include/linux/phy/tegra/xusb.h | 1 + 7 files changed, 55 insertions(+), 9 deletions(-)
Hello,
This patch series contains two fixes for USB role switching on the
Tegra210 SoC, as well as enabling this feature on the Pixel C.
The first patch addresses a wrong check on the logic that disables the
VBUS regulator.
The second patch guarantees proper ordering of events when switching PHY
roles.
The third and fourth patches then add the necessary nodes and properties
in the Smaug DT in order for role switching to work. Currently with this
patch series this feature can only be controlled from userspace by writing
the desired role to sysfs as
echo "role" > /sys/class/usb_role/usb2-0-role-switch/role
with role being one of {device, host, none}.
Further patches will enable automatic role switching via the 'cros_ec_typec'
driver which is currently broken on Smaug.
N.B: This series does not add a 'connector' node under the 'usb-role-switch'
property added on patch 04/04 because for Smaug the connector should instead
be under the node for 'cros_ec_typec' node and as stated above this
driver is currently broken for this device. If it is deemed better to
describe it but explicitly disable the node let me know and I will send
out a v2.
Signed-off-by: Diogo Ivo <diogo.ivo@tecnico.ulisboa.pt>
---
Diogo Ivo (5):
usb: host: tegra: Remove redundant pm_runtime_mark_last_busy() call
phy: tegra: xusb: Fix USB2 port regulator disable logic
phy: tegra: xusb: Fix ordering issue when switching roles on USB2 ports
arm64: tegra: smaug: Complete and enable tegra-udc node
arm64: tegra: smaug: Add usb-role-switch support
arch/arm64/boot/dts/nvidia/tegra210-smaug.dts | 13 +++++++++++++
drivers/phy/tegra/xusb-tegra210.c | 5 +++--
drivers/phy/tegra/xusb.c | 23 +++++++++++++++++++++++
drivers/phy/tegra/xusb.h | 1 +
drivers/usb/gadget/udc/tegra-xudc.c | 4 ++++
drivers/usb/host/xhci-tegra.c | 17 ++++++++++-------
include/linux/phy/tegra/xusb.h | 1 +
7 files changed, 55 insertions(+), 9 deletions(-)
---
base-commit: a8817ff3b5cd99b0a5af57a92d1a3a7980612550
change-id: 20251201-diogo-tegra_phy-86c89cab7377
Best regards,
--
Diogo Ivo <diogo.ivo@tecnico.ulisboa.pt>
Hello,
On 12/4/25 21:27, Diogo Ivo wrote:
> Hello,
>
> This patch series contains two fixes for USB role switching on the
> Tegra210 SoC, as well as enabling this feature on the Pixel C.
>
> The first patch addresses a wrong check on the logic that disables the
> VBUS regulator.
>
> The second patch guarantees proper ordering of events when switching PHY
> roles.
>
> The third and fourth patches then add the necessary nodes and properties
> in the Smaug DT in order for role switching to work. Currently with this
> patch series this feature can only be controlled from userspace by writing
> the desired role to sysfs as
>
> echo "role" > /sys/class/usb_role/usb2-0-role-switch/role
>
> with role being one of {device, host, none}.
>
> Further patches will enable automatic role switching via the 'cros_ec_typec'
> driver which is currently broken on Smaug.
>
> N.B: This series does not add a 'connector' node under the 'usb-role-switch'
> property added on patch 04/04 because for Smaug the connector should instead
> be under the node for 'cros_ec_typec' node and as stated above this
> driver is currently broken for this device. If it is deemed better to
> describe it but explicitly disable the node let me know and I will send
> out a v2.
>
> Signed-off-by: Diogo Ivo <diogo.ivo@tecnico.ulisboa.pt>
> ---
> Diogo Ivo (5):
> usb: host: tegra: Remove redundant pm_runtime_mark_last_busy() call
> phy: tegra: xusb: Fix USB2 port regulator disable logic
> phy: tegra: xusb: Fix ordering issue when switching roles on USB2 ports
> arm64: tegra: smaug: Complete and enable tegra-udc node
> arm64: tegra: smaug: Add usb-role-switch support
>
> arch/arm64/boot/dts/nvidia/tegra210-smaug.dts | 13 +++++++++++++
> drivers/phy/tegra/xusb-tegra210.c | 5 +++--
> drivers/phy/tegra/xusb.c | 23 +++++++++++++++++++++++
> drivers/phy/tegra/xusb.h | 1 +
> drivers/usb/gadget/udc/tegra-xudc.c | 4 ++++
> drivers/usb/host/xhci-tegra.c | 17 ++++++++++-------
> include/linux/phy/tegra/xusb.h | 1 +
> 7 files changed, 55 insertions(+), 9 deletions(-)
> ---
> base-commit: a8817ff3b5cd99b0a5af57a92d1a3a7980612550
> change-id: 20251201-diogo-tegra_phy-86c89cab7377
Gentle ping on this series.
Thank you,
Diogo
On Thu, 04 Dec 2025 21:27:16 +0000, Diogo Ivo wrote:
> Hello,
>
> This patch series contains two fixes for USB role switching on the
> Tegra210 SoC, as well as enabling this feature on the Pixel C.
>
> The first patch addresses a wrong check on the logic that disables the
> VBUS regulator.
>
> The second patch guarantees proper ordering of events when switching PHY
> roles.
>
> The third and fourth patches then add the necessary nodes and properties
> in the Smaug DT in order for role switching to work. Currently with this
> patch series this feature can only be controlled from userspace by writing
> the desired role to sysfs as
>
> echo "role" > /sys/class/usb_role/usb2-0-role-switch/role
>
> with role being one of {device, host, none}.
>
> Further patches will enable automatic role switching via the 'cros_ec_typec'
> driver which is currently broken on Smaug.
>
> N.B: This series does not add a 'connector' node under the 'usb-role-switch'
> property added on patch 04/04 because for Smaug the connector should instead
> be under the node for 'cros_ec_typec' node and as stated above this
> driver is currently broken for this device. If it is deemed better to
> describe it but explicitly disable the node let me know and I will send
> out a v2.
>
> Signed-off-by: Diogo Ivo <diogo.ivo@tecnico.ulisboa.pt>
> ---
> Diogo Ivo (5):
> usb: host: tegra: Remove redundant pm_runtime_mark_last_busy() call
> phy: tegra: xusb: Fix USB2 port regulator disable logic
> phy: tegra: xusb: Fix ordering issue when switching roles on USB2 ports
> arm64: tegra: smaug: Complete and enable tegra-udc node
> arm64: tegra: smaug: Add usb-role-switch support
>
> arch/arm64/boot/dts/nvidia/tegra210-smaug.dts | 13 +++++++++++++
> drivers/phy/tegra/xusb-tegra210.c | 5 +++--
> drivers/phy/tegra/xusb.c | 23 +++++++++++++++++++++++
> drivers/phy/tegra/xusb.h | 1 +
> drivers/usb/gadget/udc/tegra-xudc.c | 4 ++++
> drivers/usb/host/xhci-tegra.c | 17 ++++++++++-------
> include/linux/phy/tegra/xusb.h | 1 +
> 7 files changed, 55 insertions(+), 9 deletions(-)
> ---
> base-commit: a8817ff3b5cd99b0a5af57a92d1a3a7980612550
> change-id: 20251201-diogo-tegra_phy-86c89cab7377
>
> Best regards,
> --
> Diogo Ivo <diogo.ivo@tecnico.ulisboa.pt>
>
>
>
My bot found new DTB warnings on the .dts files added or changed in this
series.
Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings
are fixed by another series. Ultimately, it is up to the platform
maintainer whether these warnings are acceptable or not. No need to reply
unless the platform maintainer has comments.
If you already ran DT checks and didn't see these error(s), then
make sure dt-schema is up to date:
pip3 install dtschema --upgrade
This patch series was applied (using b4) to base:
Base: base-commit a8817ff3b5cd99b0a5af57a92d1a3a7980612550 not known, ignoring
Base: attempting to guess base-commit...
Base: tags/v6.18-rc7-8-gf402ecd7a8b6 (exact match)
Base: tags/v6.18-rc7-8-gf402ecd7a8b6 (use --merge-base to override)
If this is not the correct base, please add 'base-commit' tag
(or use b4 which does this automatically)
New warnings running 'make CHECK_DTBS=y for arch/arm64/boot/dts/nvidia/' for 20251204-diogo-tegra_phy-v1-0-51a2016d0be8@tecnico.ulisboa.pt:
arch/arm64/boot/dts/nvidia/tegra210-smaug.dtb: padctl@7009f000 (nvidia,tegra210-xusb-padctl): ports:usb2-0: 'role-switch-default-mode' does not match any of the regexes: '^pinctrl-[0-9]+$'
from schema $id: http://devicetree.org/schemas/phy/nvidia,tegra210-xusb-padctl.yaml
arch/arm64/boot/dts/nvidia/tegra210-smaug.dtb: padctl@7009f000 (nvidia,tegra210-xusb-padctl): ports:usb2-0: 'connector' is a dependency of 'usb-role-switch'
from schema $id: http://devicetree.org/schemas/phy/nvidia,tegra210-xusb-padctl.yaml
Hi Diogo,
On 05/12/2025 22:36, Rob Herring wrote:
>
> On Thu, 04 Dec 2025 21:27:16 +0000, Diogo Ivo wrote:
>> Hello,
>>
>> This patch series contains two fixes for USB role switching on the
>> Tegra210 SoC, as well as enabling this feature on the Pixel C.
>>
>> The first patch addresses a wrong check on the logic that disables the
>> VBUS regulator.
>>
>> The second patch guarantees proper ordering of events when switching PHY
>> roles.
>>
>> The third and fourth patches then add the necessary nodes and properties
>> in the Smaug DT in order for role switching to work. Currently with this
>> patch series this feature can only be controlled from userspace by writing
>> the desired role to sysfs as
>>
>> echo "role" > /sys/class/usb_role/usb2-0-role-switch/role
>>
>> with role being one of {device, host, none}.
>>
>> Further patches will enable automatic role switching via the 'cros_ec_typec'
>> driver which is currently broken on Smaug.
>>
>> N.B: This series does not add a 'connector' node under the 'usb-role-switch'
>> property added on patch 04/04 because for Smaug the connector should instead
>> be under the node for 'cros_ec_typec' node and as stated above this
>> driver is currently broken for this device. If it is deemed better to
>> describe it but explicitly disable the node let me know and I will send
>> out a v2.
>>
>> Signed-off-by: Diogo Ivo <diogo.ivo@tecnico.ulisboa.pt>
>> ---
>> Diogo Ivo (5):
>> usb: host: tegra: Remove redundant pm_runtime_mark_last_busy() call
>> phy: tegra: xusb: Fix USB2 port regulator disable logic
>> phy: tegra: xusb: Fix ordering issue when switching roles on USB2 ports
>> arm64: tegra: smaug: Complete and enable tegra-udc node
>> arm64: tegra: smaug: Add usb-role-switch support
>>
>> arch/arm64/boot/dts/nvidia/tegra210-smaug.dts | 13 +++++++++++++
>> drivers/phy/tegra/xusb-tegra210.c | 5 +++--
>> drivers/phy/tegra/xusb.c | 23 +++++++++++++++++++++++
>> drivers/phy/tegra/xusb.h | 1 +
>> drivers/usb/gadget/udc/tegra-xudc.c | 4 ++++
>> drivers/usb/host/xhci-tegra.c | 17 ++++++++++-------
>> include/linux/phy/tegra/xusb.h | 1 +
>> 7 files changed, 55 insertions(+), 9 deletions(-)
>> ---
>> base-commit: a8817ff3b5cd99b0a5af57a92d1a3a7980612550
>> change-id: 20251201-diogo-tegra_phy-86c89cab7377
>>
>> Best regards,
>> --
>> Diogo Ivo <diogo.ivo@tecnico.ulisboa.pt>
>>
>>
>>
>
>
> My bot found new DTB warnings on the .dts files added or changed in this
> series.
>
> Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings
> are fixed by another series. Ultimately, it is up to the platform
> maintainer whether these warnings are acceptable or not. No need to reply
> unless the platform maintainer has comments.
>
> If you already ran DT checks and didn't see these error(s), then
> make sure dt-schema is up to date:
>
> pip3 install dtschema --upgrade
>
>
> This patch series was applied (using b4) to base:
> Base: base-commit a8817ff3b5cd99b0a5af57a92d1a3a7980612550 not known, ignoring
> Base: attempting to guess base-commit...
> Base: tags/v6.18-rc7-8-gf402ecd7a8b6 (exact match)
> Base: tags/v6.18-rc7-8-gf402ecd7a8b6 (use --merge-base to override)
>
> If this is not the correct base, please add 'base-commit' tag
> (or use b4 which does this automatically)
>
> New warnings running 'make CHECK_DTBS=y for arch/arm64/boot/dts/nvidia/' for 20251204-diogo-tegra_phy-v1-0-51a2016d0be8@tecnico.ulisboa.pt:
>
> arch/arm64/boot/dts/nvidia/tegra210-smaug.dtb: padctl@7009f000 (nvidia,tegra210-xusb-padctl): ports:usb2-0: 'role-switch-default-mode' does not match any of the regexes: '^pinctrl-[0-9]+$'
> from schema $id: http://devicetree.org/schemas/phy/nvidia,tegra210-xusb-padctl.yaml
> arch/arm64/boot/dts/nvidia/tegra210-smaug.dtb: padctl@7009f000 (nvidia,tegra210-xusb-padctl): ports:usb2-0: 'connector' is a dependency of 'usb-role-switch'
> from schema $id: http://devicetree.org/schemas/phy/nvidia,tegra210-xusb-padctl.yaml
Per the report above and my other email, this series adds more warnings
and we are trying to avoid that, even if such warnings are seen on other
Tegra platforms.
Jon
--
nvpublic
From: Thierry Reding <treding@nvidia.com>
On Thu, 04 Dec 2025 21:27:16 +0000, Diogo Ivo wrote:
> This patch series contains two fixes for USB role switching on the
> Tegra210 SoC, as well as enabling this feature on the Pixel C.
>
> The first patch addresses a wrong check on the logic that disables the
> VBUS regulator.
>
> The second patch guarantees proper ordering of events when switching PHY
> roles.
>
> [...]
Applied, thanks!
[4/5] arm64: tegra: smaug: Complete and enable tegra-udc node
(no commit info)
[5/5] arm64: tegra: smaug: Add usb-role-switch support
(no commit info)
Best regards,
--
Thierry Reding <treding@nvidia.com>
© 2016 - 2026 Red Hat, Inc.