Re: [PATCH] phy: rcar-gen3-usb2: add sysfs for usb role swap

From: Geert Uytterhoeven
Date: Mon Oct 17 2016 - 08:28:12 EST


Hi Shimoda-san,

On Mon, Oct 17, 2016 at 9:10 AM, Yoshihiro Shimoda
<yoshihiro.shimoda.uh@xxxxxxxxxxx> wrote:
> This patch adds sysfs "otg_inputs" for usb role swap. This parameter
> is write-only and if you use them as the following, you can swap
> the usb role.

Thank you for your patch!

> For example:
> 1) connect a usb cable using 2 salvator-x boards
> 2) On A-device (as host), you input the following command:
> # echo a_bus_req/ > /sys/devices/platform/soc/ee080200.usb-phy/otg_inputs
> 3) On B-device (as peripheral), you input the following command:
> # echo b_bus_req > /sys/devices/platform/soc/ee080200.usb-phy/otg_inputs

At first, I thought the trailing "/" was a typo...

> --- /dev/null
> +++ b/Documentation/ABI/testing/sysfs-platform-phy-rcar-gen3-usb2
> @@ -0,0 +1,11 @@
> +What: /sys/devices/platform/<phy-name>/otg-inputs
> +Date: October 2016
> +KernelVersion: 4.10
> +Contact: Yoshihiro Shimoda <yoshihiro.shimoda.uh@xxxxxxxxxxx>
> +Description:
> + This write-only file changes the phy mode for role swap of usb.
> + This file accepts the following strings:
> + "a_bus_req/" - switching from A-Host to A-Peripheral
> + "a_bus_drop" - switching from A-Peripheral to A-Host
> + "b_bus_req" - switching from B-Peripheral to B-Host
> + "b_bus_req/" - switching from B-Host to B-Peripheral

... until I read the above.

What's the rationale of doing it like this? I.e.
1. Why differentiate by trailing "/"?
2. Why the asymmetry ("a_bus_drop" vs. "a_bus_req")?

I do not really follow USB development, so I please accepty my apologies if
I missed the discussion and valid arguments that lead to this.

I did find Documentation/ABI/testing/sysfs-platform-chipidea-usb-otg,
which uses similar naming, but a slightly different mechanism (multiple
sysfs virtual files with 0/1 states).

Thanks!

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds