All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rajendra Nayak <rnayak@ti.com>
To: "ABRAHAM, KISHON VIJAY" <kishon@ti.com>
Cc: grant.likely@secretlab.ca, rob.herring@calxeda.com,
	rob@landley.net, linux@arm.linux.org.uk,
	gregkh@linuxfoundation.org, b-cousson@ti.com, tony@atomide.com,
	devicetree-discuss@lists.ozlabs.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, balbi@ti.com,
	linux-omap@vger.kernel.org, linux-usb@vger.kernel.org,
	hvaibhav@ti.com
Subject: Re: [PATCH v1 05/11] drivers: usb: twl6030: Add dt support for twl6030 usb
Date: Tue, 10 Jul 2012 12:14:21 +0530	[thread overview]
Message-ID: <4FFBCF45.7000304@ti.com> (raw)
In-Reply-To: <CAAe_U6LXHvPxHLA1Zhx9Gx8DMM7k4rTpvEAzNzLGrRKOXvBwSA@mail.gmail.com>

On Tuesday 10 July 2012 11:58 AM, ABRAHAM, KISHON VIJAY wrote:
> Hi,
>
> On Tue, Jul 10, 2012 at 11:28 AM, Rajendra Nayak<rnayak@ti.com>  wrote:
>> On Thursday 28 June 2012 05:21 PM, Kishon Vijay Abraham I wrote:
>>>
>>> Add device tree support for twl6030 usb driver.
>>> Update the Documentation with device tree binding information.
>>>
>>> Signed-off-by: Kishon Vijay Abraham I<kishon@ti.com>
>>> ---
>>>    .../devicetree/bindings/usb/twlxxxx-usb.txt        |   18 ++++++++
>>>    drivers/usb/otg/twl6030-usb.c                      |   45
>>> ++++++++++++++------
>>>    2 files changed, 50 insertions(+), 13 deletions(-)
>>>    create mode 100644 Documentation/devicetree/bindings/usb/twlxxxx-usb.txt
>>>
>>> diff --git a/Documentation/devicetree/bindings/usb/twlxxxx-usb.txt
>>> b/Documentation/devicetree/bindings/usb/twlxxxx-usb.txt
>>> new file mode 100644
>>> index 0000000..f293271
>>> --- /dev/null
>>> +++ b/Documentation/devicetree/bindings/usb/twlxxxx-usb.txt
>>> @@ -0,0 +1,18 @@
>>> +USB COMPARATOR OF TWL CHIPS
>>> +
>>> +TWL6030 USB COMPARATOR
>>> + - compatible : Should be "ti,twl6030-usb"
>>> + - interrupts : Two interrupt numbers to the cpu should be specified.
>>> First
>>> +   interrupt number is the otg interrupt number that raises ID interrupts
>>> when
>>> +   the controller has to act as host and the second interrupt number is
>>> the
>>> +   usb interrupt number that raises VBUS interrupts when the controller
>>> has to
>>> +   act as device
>>> + - regulator :<supply-name>   can be "vusb" or "ldousb"
>>> + -<supply-name>-supply : phandle to the regulator device tree node
>>> +
>>> +twl6030-usb {
>>> +       compatible = "ti,twl6030-usb";
>>> +       interrupts =<   4 10>;
>>> +       regulator = "vusb";
>>> +       vusb-supply =<&vusb>;
>>
>>
>> This doesn't seem right. Why do you ned a 'regulator' string along
>> with the phandle?
>
> The original code was something like
> 	if (twl->features&  TWL6025_SUBCLASS)
> 		regulator_name = "ldousb";
> 	else
> 		regulator_name = "vusb";
>
> I wasn't sure how to handle this *TWL6025_SUBCLASS* stuff.
>
>>
>>> +};
>>> diff --git a/drivers/usb/otg/twl6030-usb.c b/drivers/usb/otg/twl6030-usb.c
>>> index 6a361d2..20b7abe 100644
>>> --- a/drivers/usb/otg/twl6030-usb.c
>>> +++ b/drivers/usb/otg/twl6030-usb.c
>>> @@ -105,7 +105,7 @@ struct twl6030_usb {
>>>          u8                      asleep;
>>>          bool                    irq_enabled;
>>>          bool                    vbus_enable;
>>> -       unsigned long           features;
>>> +       const char              *regulator;
>>>    };
>>>
>>>    #define       comparator_to_twl(x) container_of((x), struct twl6030_usb,
>>> comparator)
>>> @@ -153,13 +153,6 @@ static int twl6030_start_srp(struct phy_companion
>>> *comparator)
>>>
>>>    static int twl6030_usb_ldo_init(struct twl6030_usb *twl)
>>>    {
>>> -       char *regulator_name;
>>> -
>>> -       if (twl->features&   TWL6025_SUBCLASS)
>>>
>>> -               regulator_name = "ldousb";
>>> -       else
>>> -               regulator_name = "vusb";
>>> -
>>>          /* Set to OTG_REV 1.3 and turn on the ID_WAKEUP_COMP */
>>>          twl6030_writeb(twl, TWL6030_MODULE_ID0 , 0x1, TWL6030_BACKUP_REG);
>>>
>>> @@ -169,7 +162,7 @@ static int twl6030_usb_ldo_init(struct twl6030_usb
>>> *twl)
>>>          /* Program MISC2 register and set bit VUSB_IN_VBAT */
>>>          twl6030_writeb(twl, TWL6030_MODULE_ID0 , 0x10, TWL6030_MISC2);
>>>
>>> -       twl->usb3v3 = regulator_get(twl->dev, regulator_name);
>>> +       twl->usb3v3 = regulator_get(twl->dev, twl->regulator);
>>>          if (IS_ERR(twl->usb3v3))
>>>                  return -ENODEV;
>>>
>>> @@ -324,9 +317,9 @@ static int __devinit twl6030_usb_probe(struct
>>> platform_device *pdev)
>>>    {
>>>          struct twl6030_usb      *twl;
>>>          int                     status, err;
>>> -       struct twl4030_usb_data *pdata;
>>> -       struct device *dev =&pdev->dev;
>>>
>>> -       pdata = dev->platform_data;
>>> +       struct device_node      *np = pdev->dev.of_node;
>>> +       struct device           *dev =&pdev->dev;
>>>
>>> +       struct twl4030_usb_data *pdata = dev->platform_data;
>>>
>>>          twl = devm_kzalloc(dev, sizeof *twl, GFP_KERNEL);
>>>          if (!twl)
>>> @@ -335,13 +328,28 @@ static int __devinit twl6030_usb_probe(struct
>>> platform_device *pdev)
>>>          twl->dev                =&pdev->dev;
>>>
>>>          twl->irq1               = platform_get_irq(pdev, 0);
>>>          twl->irq2               = platform_get_irq(pdev, 1);
>>> -       twl->features           = pdata->features;
>>>          twl->linkstat           = OMAP_MUSB_UNKNOWN;
>>>
>>>          twl->comparator.set_vbus        = twl6030_set_vbus;
>>>          twl->comparator.start_srp       = twl6030_start_srp;
>>>          omap_usb2_set_comparator(&twl->comparator);
>>>
>>> +       if (np) {
>>> +               err = of_property_read_string(np,
>>> "regulator",&twl->regulator);
>>>
>>> +               if (err<   0) {
>>> +                       dev_err(&pdev->dev, "unable to get regulator\n");
>>> +                       return err;
>>> +               }
>>
>>
>> Isn't there a better way for the driver to know which supply to use instead
>> of DT passing the supply name?
>
> The problem I see is this same driver is used for twl6030 and twl6025
> and the regulator used is different for these two chips (And I think

hmm, so based on what chip is used on a board, shouldn't the board dts
file just map the right regulator with a supply name?
This doesn't look like something the driver should be bothered about.

> twl6025 will also use the same dt file as twl6030 as I don't see a
> different file for 6025).
>
> Thanks
> Kishon


WARNING: multiple messages have this Message-ID (diff)
From: rnayak@ti.com (Rajendra Nayak)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v1 05/11] drivers: usb: twl6030: Add dt support for twl6030 usb
Date: Tue, 10 Jul 2012 12:14:21 +0530	[thread overview]
Message-ID: <4FFBCF45.7000304@ti.com> (raw)
In-Reply-To: <CAAe_U6LXHvPxHLA1Zhx9Gx8DMM7k4rTpvEAzNzLGrRKOXvBwSA@mail.gmail.com>

On Tuesday 10 July 2012 11:58 AM, ABRAHAM, KISHON VIJAY wrote:
> Hi,
>
> On Tue, Jul 10, 2012 at 11:28 AM, Rajendra Nayak<rnayak@ti.com>  wrote:
>> On Thursday 28 June 2012 05:21 PM, Kishon Vijay Abraham I wrote:
>>>
>>> Add device tree support for twl6030 usb driver.
>>> Update the Documentation with device tree binding information.
>>>
>>> Signed-off-by: Kishon Vijay Abraham I<kishon@ti.com>
>>> ---
>>>    .../devicetree/bindings/usb/twlxxxx-usb.txt        |   18 ++++++++
>>>    drivers/usb/otg/twl6030-usb.c                      |   45
>>> ++++++++++++++------
>>>    2 files changed, 50 insertions(+), 13 deletions(-)
>>>    create mode 100644 Documentation/devicetree/bindings/usb/twlxxxx-usb.txt
>>>
>>> diff --git a/Documentation/devicetree/bindings/usb/twlxxxx-usb.txt
>>> b/Documentation/devicetree/bindings/usb/twlxxxx-usb.txt
>>> new file mode 100644
>>> index 0000000..f293271
>>> --- /dev/null
>>> +++ b/Documentation/devicetree/bindings/usb/twlxxxx-usb.txt
>>> @@ -0,0 +1,18 @@
>>> +USB COMPARATOR OF TWL CHIPS
>>> +
>>> +TWL6030 USB COMPARATOR
>>> + - compatible : Should be "ti,twl6030-usb"
>>> + - interrupts : Two interrupt numbers to the cpu should be specified.
>>> First
>>> +   interrupt number is the otg interrupt number that raises ID interrupts
>>> when
>>> +   the controller has to act as host and the second interrupt number is
>>> the
>>> +   usb interrupt number that raises VBUS interrupts when the controller
>>> has to
>>> +   act as device
>>> + - regulator :<supply-name>   can be "vusb" or "ldousb"
>>> + -<supply-name>-supply : phandle to the regulator device tree node
>>> +
>>> +twl6030-usb {
>>> +       compatible = "ti,twl6030-usb";
>>> +       interrupts =<   4 10>;
>>> +       regulator = "vusb";
>>> +       vusb-supply =<&vusb>;
>>
>>
>> This doesn't seem right. Why do you ned a 'regulator' string along
>> with the phandle?
>
> The original code was something like
> 	if (twl->features&  TWL6025_SUBCLASS)
> 		regulator_name = "ldousb";
> 	else
> 		regulator_name = "vusb";
>
> I wasn't sure how to handle this *TWL6025_SUBCLASS* stuff.
>
>>
>>> +};
>>> diff --git a/drivers/usb/otg/twl6030-usb.c b/drivers/usb/otg/twl6030-usb.c
>>> index 6a361d2..20b7abe 100644
>>> --- a/drivers/usb/otg/twl6030-usb.c
>>> +++ b/drivers/usb/otg/twl6030-usb.c
>>> @@ -105,7 +105,7 @@ struct twl6030_usb {
>>>          u8                      asleep;
>>>          bool                    irq_enabled;
>>>          bool                    vbus_enable;
>>> -       unsigned long           features;
>>> +       const char              *regulator;
>>>    };
>>>
>>>    #define       comparator_to_twl(x) container_of((x), struct twl6030_usb,
>>> comparator)
>>> @@ -153,13 +153,6 @@ static int twl6030_start_srp(struct phy_companion
>>> *comparator)
>>>
>>>    static int twl6030_usb_ldo_init(struct twl6030_usb *twl)
>>>    {
>>> -       char *regulator_name;
>>> -
>>> -       if (twl->features&   TWL6025_SUBCLASS)
>>>
>>> -               regulator_name = "ldousb";
>>> -       else
>>> -               regulator_name = "vusb";
>>> -
>>>          /* Set to OTG_REV 1.3 and turn on the ID_WAKEUP_COMP */
>>>          twl6030_writeb(twl, TWL6030_MODULE_ID0 , 0x1, TWL6030_BACKUP_REG);
>>>
>>> @@ -169,7 +162,7 @@ static int twl6030_usb_ldo_init(struct twl6030_usb
>>> *twl)
>>>          /* Program MISC2 register and set bit VUSB_IN_VBAT */
>>>          twl6030_writeb(twl, TWL6030_MODULE_ID0 , 0x10, TWL6030_MISC2);
>>>
>>> -       twl->usb3v3 = regulator_get(twl->dev, regulator_name);
>>> +       twl->usb3v3 = regulator_get(twl->dev, twl->regulator);
>>>          if (IS_ERR(twl->usb3v3))
>>>                  return -ENODEV;
>>>
>>> @@ -324,9 +317,9 @@ static int __devinit twl6030_usb_probe(struct
>>> platform_device *pdev)
>>>    {
>>>          struct twl6030_usb      *twl;
>>>          int                     status, err;
>>> -       struct twl4030_usb_data *pdata;
>>> -       struct device *dev =&pdev->dev;
>>>
>>> -       pdata = dev->platform_data;
>>> +       struct device_node      *np = pdev->dev.of_node;
>>> +       struct device           *dev =&pdev->dev;
>>>
>>> +       struct twl4030_usb_data *pdata = dev->platform_data;
>>>
>>>          twl = devm_kzalloc(dev, sizeof *twl, GFP_KERNEL);
>>>          if (!twl)
>>> @@ -335,13 +328,28 @@ static int __devinit twl6030_usb_probe(struct
>>> platform_device *pdev)
>>>          twl->dev                =&pdev->dev;
>>>
>>>          twl->irq1               = platform_get_irq(pdev, 0);
>>>          twl->irq2               = platform_get_irq(pdev, 1);
>>> -       twl->features           = pdata->features;
>>>          twl->linkstat           = OMAP_MUSB_UNKNOWN;
>>>
>>>          twl->comparator.set_vbus        = twl6030_set_vbus;
>>>          twl->comparator.start_srp       = twl6030_start_srp;
>>>          omap_usb2_set_comparator(&twl->comparator);
>>>
>>> +       if (np) {
>>> +               err = of_property_read_string(np,
>>> "regulator",&twl->regulator);
>>>
>>> +               if (err<   0) {
>>> +                       dev_err(&pdev->dev, "unable to get regulator\n");
>>> +                       return err;
>>> +               }
>>
>>
>> Isn't there a better way for the driver to know which supply to use instead
>> of DT passing the supply name?
>
> The problem I see is this same driver is used for twl6030 and twl6025
> and the regulator used is different for these two chips (And I think

hmm, so based on what chip is used on a board, shouldn't the board dts
file just map the right regulator with a supply name?
This doesn't look like something the driver should be bothered about.

> twl6025 will also use the same dt file as twl6030 as I don't see a
> different file for 6025).
>
> Thanks
> Kishon

  reply	other threads:[~2012-07-10  6:44 UTC|newest]

Thread overview: 90+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-28 11:50 [PATCH v1 00/11] omap: musb: Add device tree support Kishon Vijay Abraham I
2012-06-28 11:50 ` Kishon Vijay Abraham I
2012-06-28 11:50 ` Kishon Vijay Abraham I
2012-06-28 11:50 ` [PATCH v1 01/11] drivers: usb: otg: add a new driver for omap usb2 phy Kishon Vijay Abraham I
2012-06-28 11:50   ` Kishon Vijay Abraham I
2012-06-28 11:50   ` Kishon Vijay Abraham I
2012-07-10  5:46   ` Rajendra Nayak
2012-07-10  5:46     ` Rajendra Nayak
2012-07-10  6:03     ` Venu Byravarasu
2012-07-10  6:03       ` Venu Byravarasu
     [not found]       ` <D958900912E20642BCBC71664EFECE3E6DDAD9FF96-QZ+emBqkIFBDw2glCA4ptUEOCMrvLtNR@public.gmane.org>
2012-07-10  6:48         ` ABRAHAM, KISHON VIJAY
2012-07-10  6:48           ` ABRAHAM, KISHON VIJAY
2012-07-10  6:48           ` ABRAHAM, KISHON VIJAY
2012-07-10  7:05           ` Rajendra Nayak
2012-07-10  7:05             ` Rajendra Nayak
2012-07-10  7:05           ` Venu Byravarasu
2012-07-10  7:05             ` Venu Byravarasu
     [not found]     ` <4FFBC1D0.5030506-l0cyMroinI0@public.gmane.org>
2012-07-10  6:37       ` ABRAHAM, KISHON VIJAY
2012-07-10  6:37         ` ABRAHAM, KISHON VIJAY
2012-07-10  6:37         ` ABRAHAM, KISHON VIJAY
     [not found]         ` <CAAe_U6L9qiBMXWeS2POeBod8uASCtmqDc4DigwBx1bJ-hhaNRQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-07-10  6:49           ` Rajendra Nayak
2012-07-10  6:49             ` Rajendra Nayak
2012-07-10  6:49             ` Rajendra Nayak
2012-06-28 11:50 ` [PATCH v1 02/11] arm/dts: omap: Add omap-usb2 dt data Kishon Vijay Abraham I
2012-06-28 11:50   ` Kishon Vijay Abraham I
2012-06-28 11:50   ` Kishon Vijay Abraham I
2012-06-28 11:50 ` [PATCH v1 03/11] drivers: usb: otg: make twl6030_usb as a comparator driver to omap_usb2 Kishon Vijay Abraham I
2012-06-28 11:50   ` Kishon Vijay Abraham I
2012-06-28 11:50   ` Kishon Vijay Abraham I
2012-06-28 11:51 ` [PATCH v1 04/11] arm: omap: hwmod: add a new addr space in otg for writing to control module Kishon Vijay Abraham I
2012-06-28 11:51   ` Kishon Vijay Abraham I
2012-06-28 11:51   ` Kishon Vijay Abraham I
2012-06-28 11:51 ` [PATCH v1 05/11] drivers: usb: twl6030: Add dt support for twl6030 usb Kishon Vijay Abraham I
2012-06-28 11:51   ` Kishon Vijay Abraham I
2012-06-28 11:51   ` Kishon Vijay Abraham I
     [not found]   ` <1340884267-28908-6-git-send-email-kishon-l0cyMroinI0@public.gmane.org>
2012-07-10  5:58     ` Rajendra Nayak
2012-07-10  5:58       ` Rajendra Nayak
2012-07-10  5:58       ` Rajendra Nayak
2012-07-10  6:28       ` ABRAHAM, KISHON VIJAY
2012-07-10  6:28         ` ABRAHAM, KISHON VIJAY
2012-07-10  6:44         ` Rajendra Nayak [this message]
2012-07-10  6:44           ` Rajendra Nayak
     [not found]           ` <4FFBCF45.7000304-l0cyMroinI0@public.gmane.org>
2012-07-10  8:18             ` ABRAHAM, KISHON VIJAY
2012-07-10  8:18               ` ABRAHAM, KISHON VIJAY
2012-07-10  8:18               ` ABRAHAM, KISHON VIJAY
2012-06-28 11:51 ` [PATCH v1 06/11] arm/dts: Add twl6030-usb data Kishon Vijay Abraham I
2012-06-28 11:51   ` Kishon Vijay Abraham I
2012-06-28 11:51   ` Kishon Vijay Abraham I
2012-06-28 11:51 ` [PATCH v1 07/11] drivers: usb: twl4030: Add device tree support for twl4030 usb Kishon Vijay Abraham I
2012-06-28 11:51   ` Kishon Vijay Abraham I
2012-06-28 11:51   ` Kishon Vijay Abraham I
2012-07-10  6:02   ` Rajendra Nayak
2012-07-10  6:02     ` Rajendra Nayak
2012-07-10  6:52     ` ABRAHAM, KISHON VIJAY
2012-07-10  6:52       ` ABRAHAM, KISHON VIJAY
2012-07-10  7:02       ` Rajendra Nayak
2012-07-10  7:02         ` Rajendra Nayak
2012-06-28 11:51 ` [PATCH v1 08/11] arm/dts: Add twl4030-usb data Kishon Vijay Abraham I
2012-06-28 11:51   ` Kishon Vijay Abraham I
2012-06-28 11:51   ` Kishon Vijay Abraham I
2012-07-10  6:13   ` Rajendra Nayak
2012-07-10  6:13     ` Rajendra Nayak
2012-07-10  6:55     ` ABRAHAM, KISHON VIJAY
2012-07-10  6:55       ` ABRAHAM, KISHON VIJAY
2012-06-28 11:51 ` [PATCH v1 09/11] drivers: usb: musb: Add device tree support for omap musb glue Kishon Vijay Abraham I
2012-06-28 11:51   ` Kishon Vijay Abraham I
2012-06-28 11:51   ` Kishon Vijay Abraham I
2012-07-10  7:14   ` Gupta, Ajay Kumar
2012-07-10  7:14     ` Gupta, Ajay Kumar
2012-06-28 11:51 ` [PATCH v1 10/11] arm/dts: omap: Add usb_otg and glue data Kishon Vijay Abraham I
2012-06-28 11:51   ` Kishon Vijay Abraham I
2012-06-28 11:51   ` Kishon Vijay Abraham I
     [not found]   ` <1340884267-28908-11-git-send-email-kishon-l0cyMroinI0@public.gmane.org>
2012-07-10  6:27     ` Rajendra Nayak
2012-07-10  6:27       ` Rajendra Nayak
2012-07-10  6:27       ` Rajendra Nayak
2012-07-10  8:13       ` ABRAHAM, KISHON VIJAY
2012-07-10  8:13         ` ABRAHAM, KISHON VIJAY
2012-07-10  8:13         ` ABRAHAM, KISHON VIJAY
2012-07-10  8:32         ` Rajendra Nayak
2012-07-10  8:32           ` Rajendra Nayak
2012-06-28 11:51 ` [PATCH v1 11/11] arm: omap: phy: remove unused functions from omap-phy-internal.c Kishon Vijay Abraham I
2012-06-28 11:51   ` Kishon Vijay Abraham I
2012-06-28 11:51   ` Kishon Vijay Abraham I
2012-07-10  6:29   ` Rajendra Nayak
2012-07-10  6:29     ` Rajendra Nayak
2012-07-10  8:16     ` ABRAHAM, KISHON VIJAY
2012-07-10  8:16       ` ABRAHAM, KISHON VIJAY
2012-07-10  8:33       ` Rajendra Nayak
2012-07-10  8:33         ` Rajendra Nayak
2012-07-10  8:33         ` Rajendra Nayak

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4FFBCF45.7000304@ti.com \
    --to=rnayak@ti.com \
    --cc=b-cousson@ti.com \
    --cc=balbi@ti.com \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=grant.likely@secretlab.ca \
    --cc=gregkh@linuxfoundation.org \
    --cc=hvaibhav@ti.com \
    --cc=kishon@ti.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=rob.herring@calxeda.com \
    --cc=rob@landley.net \
    --cc=tony@atomide.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.