[RFC PATCH 1/2] usb: doc: Add bindings for ULPI platform driver

Subbaraya Sundeep Bhatta subbaraya.sundeep.bhatta at xilinx.com
Wed Oct 28 04:55:07 PDT 2015


Hi Kishon,

> -----Original Message-----
> From: Kishon Vijay Abraham I [mailto:kishon at ti.com]
> Sent: Sunday, October 11, 2015 8:11 PM
> To: Punnaiah Choudary Kalluri; balbi at ti.com
> Cc: Rob Herring; Subbaraya Sundeep Bhatta; Peter Chen;
> devicetree at vger.kernel.org; gregkh at linuxfoundation.org; linux-
> usb at vger.kernel.org; linux-kernel at vger.kernel.org; linux-arm-
> kernel at lists.infradead.org
> Subject: Re: [RFC PATCH 1/2] usb: doc: Add bindings for ULPI platform driver
> 
> Hi,
> 
> On Sunday 11 October 2015 04:45 PM, punnaiah choudary kalluri wrote:
> > On Wed, Sep 30, 2015 at 9:48 PM, Felipe Balbi <balbi at ti.com> wrote:
> >> On Thu, Sep 24, 2015 at 11:18:01AM -0500, Rob Herring wrote:
> >>> On Thu, Sep 24, 2015 at 4:26 AM, Subbaraya Sundeep Bhatta
> >>> <subbaraya.sundeep.bhatta at xilinx.com> wrote:
> >>>> Hi Peter,
> >>>>
> >>>>> -----Original Message-----
> >>>>> From: Peter Chen [mailto:peter.chen at freescale.com]
> >>>>> Sent: Thursday, September 24, 2015 2:41 PM
> >>>>> To: Subbaraya Sundeep Bhatta
> >>>>> Cc: balbi at ti.com; devicetree at vger.kernel.org; kishon at ti.com;
> >>>>> gregkh at linuxfoundation.org; linux-usb at vger.kernel.org; linux-
> >>>>> kernel at vger.kernel.org; Punnaiah Choudary Kalluri; Subbaraya
> >>>>> Sundeep Bhatta; linux-arm-kernel at lists.infradead.org
> >>>>> Subject: Re: [RFC PATCH 1/2] usb: doc: Add bindings for ULPI
> >>>>> platform driver
> >>>>>
> >>>>> On Wed, Sep 23, 2015 at 06:24:01PM +0530, Subbaraya Sundeep
> Bhatta
> >>>>> wrote:
> >>>>>> This patch adds binding doc info for generic ULPI PHYs platform
> >>>>>> driver.
> >>>>>>
> >>>>>> Signed-off-by: Subbaraya Sundeep Bhatta <sbhatta at xilinx.com>
> >>>>>> ---
> >>>>>>  .../devicetree/bindings/usb/ulpi-platform-phy.txt  |   34
> >>>>> ++++++++++++++++++++
> >>>>>>  1 files changed, 34 insertions(+), 0 deletions(-)  create mode
> >>>>>> 100644
> >>>>>> Documentation/devicetree/bindings/usb/ulpi-platform-phy.txt
> >>>>>>
> >>>>>> diff --git
> >>>>>> a/Documentation/devicetree/bindings/usb/ulpi-platform-phy.txt
> >>>>>> b/Documentation/devicetree/bindings/usb/ulpi-platform-phy.txt
> >>>>>> new file mode 100644
> >>>>>> index 0000000..7b8cbb4
> >>>>>> --- /dev/null
> >>>>>> +++ b/Documentation/devicetree/bindings/usb/ulpi-platform-phy.txt
> >>>>>> @@ -0,0 +1,34 @@
> >>>>>> +Platform driver for generic ULPI PHYs
> >>>>>> +
> >>>>>> +Required properties:
> >>>>>> +- compatible               : Should be "ulpi-phy"
> >>>>>> +- reg                      : Physical base address and size of the USB
> >>>>>> +                     controller registers map to which this PHY
> >>>>>> +                     is connected.
> >>>>>> +- view-port                : Should contain viewport register offset of the
> >>>>>> +                     USB controller to which this PHY is
> >>>>>> +connected Optional
> >>>>>> +properties:
> >>>>>> +- drv-vbus         : required if turning VBUS on/off has to be driven
> >>>>>> +                     by writing to PHY. This feature depends on board
> >>>>>> +                     design.
> >>>>>> +
> >>>>>> +Example:
> >>>>>> +Below example shows the PHY binding for Chipidea USB controller
> >>>>>> +which has ulpi viewport register at 0x0170
> >>>>>> +
> >>>>>> +           usb_phy0: phy0 {
> >>>>>> +                   compatible = "ulpi-phy";
> >>>>>> +                   reg = <0xe0002000 0x1000>;
> >>>>>> +                   view-port = <0x0170>;
> >>>>>> +                   drv-vbus;
> >>>>>> +           };
> >>>>>> +
> >>>>>> +           usb0: usb at e0002000 {
> >>>>>> +                        compatible = "chipidea,usb2";
> >>>>>> +                        interrupt-parent = <&intc>;
> >>>>>> +                        interrupts = <0 21 4>;
> >>>>>> +                        reg = <0xe0002000 0x1000>;
> >>>>>
> >>>>> Although just call devm_ioremap twice for the same register region
> >>>>> does not cause any errors, I am not sure if it will has other
> >>>>> potential problems. Cc: arm list.
> >>>>
> >>>> Yes Peter I was also in doubt to call devm_ioremap twice for same register
> region.
> >>>> devm_ioremap_resource complained hence modified to devm_ioremap.
> >>>> Thanks for adding arm-list.
> >>>
> >>> Don't put overlapping resources in the DT. Having 2 drivers
> >>> accessing the same registers is not a clean or safe design.
> >>
> >> thanks, saves me the trouble of saying the same thing.
> >>
> >> Bottom line, if devm_ioremap_resource() fails, you're wrong. Just fix
> >> your driver and move on.
> >
> > Any suggestions on how to move further?
> > Chipidea controller provides ulpi view port register for accessing the
> > usb phy registers. Now we want to add new driver for ulpi phy
> > configuration and that obviously it need of ulpi view port register
> > access. So, sharing the register space between these two drivers is necessary
> here.
> 
> Why not program ULPI the same way as DWC3 does?

Sorry for delay in response, back from long vacation.
Can we call generic PHY phy->power_on and power_off functions to do similar function as usb2_phy->set_vbus?
I assume it is to power on whole PHY chip but not to enable 5V on VBUS line.


Thanks,
Sundeep
> 
> Thanks
> Kishon


More information about the linux-arm-kernel mailing list