Re: [Dragonboard-aosp] [PATCH 2/4] usb: chipidea: Hook into mux framework to toggle usb switch

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2018-03-06 16:16, Yossi Mansharoff wrote:
>> On Wed, Feb 21, 2018 at 09:44:59AM +0200, Yossi Mansharoff wrote:
>>> On the db410c 96boards platform we have a TC7USB40MU on the board
>>> to mux the D+/D- lines coming from the controller between a micro
>>> usb "device" port and a USB hub for "host" roles[1]. During a
>>> role switch, we need to toggle this mux to forward the D+/D-
>>> lines to either the port or the hub. Add the necessary code to do
>>> the role switch in chipidea core via the generic mux framework.
>>> Board configurations like on db410c are expected to change roles
>>> via the sysfs API described in
>>> Documentation/ABI/testing/sysfs-platform-chipidea-usb2.
>>>
>>> [1] https://github.com/96boards/documentation/raw/master/ConsumerEdition/DragonBoard-410c/HardwareDocs/Schematics_DragonBoard.pdf
>>>
>>> Cc: Peter Rosin <peda@xxxxxxxxxx>
>>> Cc: Peter Chen <peter.chen@xxxxxxx>
>>> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
>>> Cc: <devicetree@xxxxxxxxxxxxxxx>
>>> Signed-off-by: Stephen Boyd <stephen.boyd@xxxxxxxxxx>
>>>
>>> Signed-off-by: Yossi Mansharoff <yossim@xxxxxxxxxxxxxx>
>>> ---
>>>  Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt |  6 ++++++
>>
>> Please make bindings a separate patch.
> sure
>>
>>>  drivers/usb/chipidea/Kconfig                           |  2 ++
>>>  drivers/usb/chipidea/core.c                            |  6 ++++++
>>>  drivers/usb/chipidea/host.c                            |  7 +++++++
>>>  drivers/usb/chipidea/udc.c                             | 13 ++++++++++++-
>>>  include/linux/usb/chipidea.h                           |  2 ++
>>>  6 files changed, 35 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt b/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt
>>> index 0e03344..2e93181 100644
>>> --- a/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt
>>> +++ b/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt
>>> @@ -76,6 +76,10 @@ Optional properties:
>>>    needs to make sure it does not send more than 90%
>>>    maximum_periodic_data_per_frame. The use case is multiple transactions, but
>>>    less frame rate.
>>> +- mux-controls: The mux control for toggling host/device output of this
>>> +  controller. It's expected that a mux state of 0 indicates device mode and a
>>> +  mux state of 1 indicates host mode.
>>> +- mux-control-names: Shall be "usb_switch" if mux-controls is specified.
>>
>> -names is pointless when there is only 1.
> the names  is used to find the attached mux in the dt .
> it is used in the following lines in mux/core.c
> if (mux_name) {
> 		index = of_property_match_string(np, "mux-control-names",
> 						 mux_name);
> so I think iwe need to keep it, agreed?

If mux_name is NULL, index defaults to 0, i.e. the first (and presumably
only) mux control is grabbed from the mux-controls list.

So, you should be able to call mux_control_get_optional with a NULL
mux_name argument for this to work. But please try it...

Cheers,
Peter

>>
>>>  
>>>  i.mx specific properties
>>>  - fsl,usbmisc: phandler of non-core register device, with one
>>> @@ -102,4 +106,6 @@ Example:
>>>  		rx-burst-size-dword = <0x10>;
>>>  		extcon = <0>, <&usb_id>;
>>>  		phy-clkgate-delay-us = <400>;
>>> +		mux-controls = <&usb_switch>;
>>> +		mux-control-names = "usb_switch";
>>>  	};
> _______________________________________________
> Dragonboard-aosp mailing list
> Dragonboard-aosp@xxxxxxxxxxxxxxxxxx
> https://lists.96boards.org/mailman/listinfo/dragonboard-aosp
> 

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux