diff mbox

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

Message ID 1443012841-13673-1-git-send-email-sbhatta@xilinx.com
State Under Review, archived
Headers show

Commit Message

Subbaraya Sundeep Bhatta Sept. 23, 2015, 12:54 p.m. UTC
This patch adds binding doc info for generic ULPI PHYs
platform driver.

Signed-off-by: Subbaraya Sundeep Bhatta <sbhatta@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

Comments

Peter Chen Sept. 24, 2015, 9:10 a.m. UTC | #1
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@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@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.

> +                        phy_type = "ulpi";
> +			dr_mode = "host";
> +			usb-phy = <&usb_phy0>;
> +                };
> -- 
> 1.7.1
>
Subbaraya Sundeep Bhatta Sept. 24, 2015, 9:26 a.m. UTC | #2
Hi Peter,

> -----Original Message-----
> From: Peter Chen [mailto:peter.chen@freescale.com]
> Sent: Thursday, September 24, 2015 2:41 PM
> To: Subbaraya Sundeep Bhatta
> Cc: balbi@ti.com; devicetree@vger.kernel.org; kishon@ti.com;
> gregkh@linuxfoundation.org; linux-usb@vger.kernel.org; linux-
> kernel@vger.kernel.org; Punnaiah Choudary Kalluri; Subbaraya Sundeep Bhatta;
> linux-arm-kernel@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@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@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.

Sundeep
> 
> > +                        phy_type = "ulpi";
> > +			dr_mode = "host";
> > +			usb-phy = <&usb_phy0>;
> > +                };
> > --
> > 1.7.1
> >
> 
> --
> 
> Best Regards,
> Peter Chen
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Rob Herring (Arm) Sept. 24, 2015, 4:14 p.m. UTC | #3
On Wed, Sep 23, 2015 at 7:54 AM, Subbaraya Sundeep Bhatta
<subbaraya.sundeep.bhatta@xilinx.com> wrote:
> This patch adds binding doc info for generic ULPI PHYs
> platform driver.
>
> Signed-off-by: Subbaraya Sundeep Bhatta <sbhatta@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

Platform driver has nothing to do with DT bindings.

> +
> +Required properties:
> +- compatible           : Should be "ulpi-phy"

This needs a more specific compatible in addition.

> +- 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

This is a property of the controller, not the phy.

> +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@e0002000 {
> +                        compatible = "chipidea,usb2";
> +                        interrupt-parent = <&intc>;
> +                        interrupts = <0 21 4>;
> +                        reg = <0xe0002000 0x1000>;
> +                        phy_type = "ulpi";
> +                       dr_mode = "host";
> +                       usb-phy = <&usb_phy0>;

usb-phy is deprecated. Use phys and the generic phy binding instead.

> +                };
> --
> 1.7.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe devicetree" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Rob Herring (Arm) Sept. 24, 2015, 4:18 p.m. UTC | #4
On Thu, Sep 24, 2015 at 4:26 AM, Subbaraya Sundeep Bhatta
<subbaraya.sundeep.bhatta@xilinx.com> wrote:
> Hi Peter,
>
>> -----Original Message-----
>> From: Peter Chen [mailto:peter.chen@freescale.com]
>> Sent: Thursday, September 24, 2015 2:41 PM
>> To: Subbaraya Sundeep Bhatta
>> Cc: balbi@ti.com; devicetree@vger.kernel.org; kishon@ti.com;
>> gregkh@linuxfoundation.org; linux-usb@vger.kernel.org; linux-
>> kernel@vger.kernel.org; Punnaiah Choudary Kalluri; Subbaraya Sundeep Bhatta;
>> linux-arm-kernel@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@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@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.

Rob
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Felipe Balbi Sept. 30, 2015, 4:18 p.m. UTC | #5
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@xilinx.com> wrote:
> > Hi Peter,
> >
> >> -----Original Message-----
> >> From: Peter Chen [mailto:peter.chen@freescale.com]
> >> Sent: Thursday, September 24, 2015 2:41 PM
> >> To: Subbaraya Sundeep Bhatta
> >> Cc: balbi@ti.com; devicetree@vger.kernel.org; kishon@ti.com;
> >> gregkh@linuxfoundation.org; linux-usb@vger.kernel.org; linux-
> >> kernel@vger.kernel.org; Punnaiah Choudary Kalluri; Subbaraya Sundeep Bhatta;
> >> linux-arm-kernel@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@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@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.
punnaiah choudary kalluri Oct. 11, 2015, 11:15 a.m. UTC | #6
On Wed, Sep 30, 2015 at 9:48 PM, Felipe Balbi <balbi@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@xilinx.com> wrote:
>> > Hi Peter,
>> >
>> >> -----Original Message-----
>> >> From: Peter Chen [mailto:peter.chen@freescale.com]
>> >> Sent: Thursday, September 24, 2015 2:41 PM
>> >> To: Subbaraya Sundeep Bhatta
>> >> Cc: balbi@ti.com; devicetree@vger.kernel.org; kishon@ti.com;
>> >> gregkh@linuxfoundation.org; linux-usb@vger.kernel.org; linux-
>> >> kernel@vger.kernel.org; Punnaiah Choudary Kalluri; Subbaraya Sundeep Bhatta;
>> >> linux-arm-kernel@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@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@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.


Regards,
Punnaiah

>
> --
> balbi
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Kishon Vijay Abraham I Oct. 11, 2015, 2:40 p.m. UTC | #7
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@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@xilinx.com> wrote:
>>>> Hi Peter,
>>>>
>>>>> -----Original Message-----
>>>>> From: Peter Chen [mailto:peter.chen@freescale.com]
>>>>> Sent: Thursday, September 24, 2015 2:41 PM
>>>>> To: Subbaraya Sundeep Bhatta
>>>>> Cc: balbi@ti.com; devicetree@vger.kernel.org; kishon@ti.com;
>>>>> gregkh@linuxfoundation.org; linux-usb@vger.kernel.org; linux-
>>>>> kernel@vger.kernel.org; Punnaiah Choudary Kalluri; Subbaraya Sundeep Bhatta;
>>>>> linux-arm-kernel@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@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@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?

Thanks
Kishon
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Subbaraya Sundeep Bhatta Oct. 28, 2015, 11:55 a.m. UTC | #8
Hi Kishon,

> -----Original Message-----

> From: Kishon Vijay Abraham I [mailto:kishon@ti.com]

> Sent: Sunday, October 11, 2015 8:11 PM

> To: Punnaiah Choudary Kalluri; balbi@ti.com

> Cc: Rob Herring; Subbaraya Sundeep Bhatta; Peter Chen;

> devicetree@vger.kernel.org; gregkh@linuxfoundation.org; linux-

> usb@vger.kernel.org; linux-kernel@vger.kernel.org; linux-arm-

> kernel@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@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@xilinx.com> wrote:

> >>>> Hi Peter,

> >>>>

> >>>>> -----Original Message-----

> >>>>> From: Peter Chen [mailto:peter.chen@freescale.com]

> >>>>> Sent: Thursday, September 24, 2015 2:41 PM

> >>>>> To: Subbaraya Sundeep Bhatta

> >>>>> Cc: balbi@ti.com; devicetree@vger.kernel.org; kishon@ti.com;

> >>>>> gregkh@linuxfoundation.org; linux-usb@vger.kernel.org; linux-

> >>>>> kernel@vger.kernel.org; Punnaiah Choudary Kalluri; Subbaraya

> >>>>> Sundeep Bhatta; linux-arm-kernel@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@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@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
diff mbox

Patch

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@e0002000 {
+                        compatible = "chipidea,usb2";
+                        interrupt-parent = <&intc>;
+                        interrupts = <0 21 4>;
+                        reg = <0xe0002000 0x1000>;
+                        phy_type = "ulpi";
+			dr_mode = "host";
+			usb-phy = <&usb_phy0>;
+                };