Re: [PATCH v1 07/11] drivers: usb: twl4030: Add device tree support for twl4030 usb

2012-07-10 Thread Rajendra Nayak

On Thursday 28 June 2012 05:21 PM, Kishon Vijay Abraham I wrote:

Add device tree support for twl6030 usb driver.


twl4030?


Update the Documentation with device tree binding information.

Signed-off-by: Kishon Vijay Abraham Ikis...@ti.com
---
  .../devicetree/bindings/usb/twl-usb.txt|   19 +
  drivers/usb/otg/twl4030-usb.c  |   28 +++
  2 files changed, 41 insertions(+), 6 deletions(-)

diff --git a/Documentation/devicetree/bindings/usb/twl-usb.txt 
b/Documentation/devicetree/bindings/usb/twl-usb.txt
index f293271..2d069e4 100644
--- a/Documentation/devicetree/bindings/usb/twl-usb.txt
+++ b/Documentation/devicetree/bindings/usb/twl-usb.txt
@@ -16,3 +16,22 @@ twl6030-usb {
regulator = vusb;
vusb-supply =vusb;
  };
+
+TWL4030 USB PHY AND COMPARATOR
+ - compatible : Should be ti,twl4030-usb
+ - interrupts : The interrupt numbers to the cpu should be specified. First
+   interrupt number is the otg interrupt number that raises ID interrupts
+   and VBUS interrupts. The second interrupt number is optional.
+ -supply-name-supply : phandle to the regulator device tree node.
+supply-name  should be vusb1v5, vusb1v8 and vusb3v1
+ - usb_mode : The mode used by the phy to connect to the controller. 1
+   specifies ULPI mode and 2 specifies CEA2011_3PIN mode.


Are these standard usb phy modes or something specific to the twl4030
usb phy?


+
+twl4030-usb {
+   compatible = ti,twl4030-usb;
+   interrupts =  10 4;
+   vusb1v5-supply =vusb1v5;
+   vusb1v8-supply =vusb1v8;
+   vusb3v1-supply =vusb3v1;
+   usb_mode =1;
+};
diff --git a/drivers/usb/otg/twl4030-usb.c b/drivers/usb/otg/twl4030-usb.c
index 523cad5..a4e7434 100644
--- a/drivers/usb/otg/twl4030-usb.c
+++ b/drivers/usb/otg/twl4030-usb.c
@@ -585,23 +585,28 @@ static int __devinit twl4030_usb_probe(struct 
platform_device *pdev)
struct twl4030_usb  *twl;
int status, err;
struct usb_otg  *otg;
-
-   if (!pdata) {
-   dev_dbg(pdev-dev, platform_data not available\n);
-   return -EINVAL;
-   }
+   struct device_node  *np = pdev-dev.of_node;

twl = devm_kzalloc(pdev-dev, sizeof *twl, GFP_KERNEL);
if (!twl)
return -ENOMEM;

+   if (np)
+   of_property_read_u32(np, usb_mode,
+   (enum twl4030_usb_mode *)twl-usb_mode);
+   else if (pdata)
+   twl-usb_mode = pdata-usb_mode;
+   else {
+   dev_err(pdev-dev, twl4030 initialized without pdata\n);
+   return -EINVAL;
+   }
+
otg = devm_kzalloc(pdev-dev, sizeof *otg, GFP_KERNEL);
if (!otg)
return -ENOMEM;

twl-dev =pdev-dev;
twl-irq = platform_get_irq(pdev, 0);
-   twl-usb_mode= pdata-usb_mode;
twl-vbus_supplied   = false;
twl-asleep  = 1;
twl-linkstat= OMAP_MUSB_UNKNOWN;
@@ -690,12 +695,23 @@ static int __exit twl4030_usb_remove(struct 
platform_device *pdev)
return 0;
  }

+#ifdef CONFIG_OF
+static const struct of_device_id twl4030_usb_id_table[] = {
+   { .compatible = ti,twl4030-usb },
+   {}
+};
+MODULE_DEVICE_TABLE(of, twl4030_usb_id_table);
+#else
+#define twl4030_usb_id_table NULL
+#endif
+
  static struct platform_driver twl4030_usb_driver = {
.probe  = twl4030_usb_probe,
.remove = __exit_p(twl4030_usb_remove),
.driver = {
.name   = twl4030_usb,
.owner  = THIS_MODULE,
+   .of_match_table = twl4030_usb_id_table,


use of_match_ptr().


},
  };



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


Re: [PATCH v1 07/11] drivers: usb: twl4030: Add device tree support for twl4030 usb

2012-07-10 Thread ABRAHAM, KISHON VIJAY
Hi,

On Tue, Jul 10, 2012 at 11:32 AM, Rajendra Nayak rna...@ti.com wrote:
 On Thursday 28 June 2012 05:21 PM, Kishon Vijay Abraham I wrote:

 Add device tree support for twl6030 usb driver.


 twl4030?
My bad. Will fix it.


 Update the Documentation with device tree binding information.

 Signed-off-by: Kishon Vijay Abraham Ikis...@ti.com
 ---
   .../devicetree/bindings/usb/twl-usb.txt|   19 +
   drivers/usb/otg/twl4030-usb.c  |   28
 +++
   2 files changed, 41 insertions(+), 6 deletions(-)

 diff --git a/Documentation/devicetree/bindings/usb/twl-usb.txt
 b/Documentation/devicetree/bindings/usb/twl-usb.txt
 index f293271..2d069e4 100644
 --- a/Documentation/devicetree/bindings/usb/twl-usb.txt
 +++ b/Documentation/devicetree/bindings/usb/twl-usb.txt
 @@ -16,3 +16,22 @@ twl6030-usb {
 regulator = vusb;
 vusb-supply =vusb;
   };
 +
 +TWL4030 USB PHY AND COMPARATOR
 + - compatible : Should be ti,twl4030-usb
 + - interrupts : The interrupt numbers to the cpu should be specified.
 First
 +   interrupt number is the otg interrupt number that raises ID interrupts
 +   and VBUS interrupts. The second interrupt number is optional.
 + -supply-name-supply : phandle to the regulator device tree node.
 +supply-name  should be vusb1v5, vusb1v8 and vusb3v1
 + - usb_mode : The mode used by the phy to connect to the controller. 1
 +   specifies ULPI mode and 2 specifies CEA2011_3PIN mode.


 Are these standard usb phy modes or something specific to the twl4030
 usb phy?

These are standard modes used to connect the phy to the controller. I
think it's used by other chips other than twl4030 (Something in
am35xx??).

 +
 +twl4030-usb {
 +   compatible = ti,twl4030-usb;
 +   interrupts =  10 4;
 +   vusb1v5-supply =vusb1v5;
 +   vusb1v8-supply =vusb1v8;
 +   vusb3v1-supply =vusb3v1;
 +   usb_mode =1;
 +};
 diff --git a/drivers/usb/otg/twl4030-usb.c b/drivers/usb/otg/twl4030-usb.c
 index 523cad5..a4e7434 100644
 --- a/drivers/usb/otg/twl4030-usb.c
 +++ b/drivers/usb/otg/twl4030-usb.c
 @@ -585,23 +585,28 @@ static int __devinit twl4030_usb_probe(struct
 platform_device *pdev)
 struct twl4030_usb  *twl;
 int status, err;
 struct usb_otg  *otg;
 -
 -   if (!pdata) {
 -   dev_dbg(pdev-dev, platform_data not available\n);
 -   return -EINVAL;
 -   }
 +   struct device_node  *np = pdev-dev.of_node;

 twl = devm_kzalloc(pdev-dev, sizeof *twl, GFP_KERNEL);
 if (!twl)
 return -ENOMEM;

 +   if (np)
 +   of_property_read_u32(np, usb_mode,
 +   (enum twl4030_usb_mode *)twl-usb_mode);
 +   else if (pdata)
 +   twl-usb_mode = pdata-usb_mode;
 +   else {
 +   dev_err(pdev-dev, twl4030 initialized without
 pdata\n);
 +   return -EINVAL;
 +   }
 +
 otg = devm_kzalloc(pdev-dev, sizeof *otg, GFP_KERNEL);
 if (!otg)
 return -ENOMEM;

 twl-dev=pdev-dev;

 twl-irq= platform_get_irq(pdev, 0);
 -   twl-usb_mode   = pdata-usb_mode;
 twl-vbus_supplied  = false;
 twl-asleep = 1;
 twl-linkstat   = OMAP_MUSB_UNKNOWN;
 @@ -690,12 +695,23 @@ static int __exit twl4030_usb_remove(struct
 platform_device *pdev)
 return 0;
   }

 +#ifdef CONFIG_OF
 +static const struct of_device_id twl4030_usb_id_table[] = {
 +   { .compatible = ti,twl4030-usb },
 +   {}
 +};
 +MODULE_DEVICE_TABLE(of, twl4030_usb_id_table);
 +#else
 +#define twl4030_usb_id_table NULL
 +#endif
 +
   static struct platform_driver twl4030_usb_driver = {
 .probe  = twl4030_usb_probe,
 .remove = __exit_p(twl4030_usb_remove),
 .driver = {
 .name   = twl4030_usb,
 .owner  = THIS_MODULE,
 +   .of_match_table = twl4030_usb_id_table,


 use of_match_ptr().

Ok. Will change it that way.

Thanks
Kishon
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v1 07/11] drivers: usb: twl4030: Add device tree support for twl4030 usb

2012-07-10 Thread Rajendra Nayak

On Tuesday 10 July 2012 12:22 PM, ABRAHAM, KISHON VIJAY wrote:

+TWL4030 USB PHY AND COMPARATOR
  + - compatible : Should be ti,twl4030-usb
  + - interrupts : The interrupt numbers to the cpu should be specified.
  First
  +   interrupt number is the otg interrupt number that raises ID interrupts
  +   and VBUS interrupts. The second interrupt number is optional.
  + -supply-name-supply : phandle to the regulator device tree node.
  +supply-name   should be vusb1v5, vusb1v8 and vusb3v1
  + - usb_mode : The mode used by the phy to connect to the controller. 1
  +   specifies ULPI mode and 2 specifies CEA2011_3PIN mode.



  Are these standard usb phy modes or something specific to the twl4030
  usb phy?

These are standard modes used to connect the phy to the controller. I
think it's used by other chips other than twl4030 (Something in
am35xx??).


So would it make sense to document these bindings independent of a given
phy and a given controller, so it could be reused and not duplicated in
various forms for various different controllers.
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v1 07/11] drivers: usb: twl4030: Add device tree support for twl4030 usb

2012-06-28 Thread Kishon Vijay Abraham I
Add device tree support for twl6030 usb driver.
Update the Documentation with device tree binding information.

Signed-off-by: Kishon Vijay Abraham I kis...@ti.com
---
 .../devicetree/bindings/usb/twl-usb.txt|   19 +
 drivers/usb/otg/twl4030-usb.c  |   28 +++
 2 files changed, 41 insertions(+), 6 deletions(-)

diff --git a/Documentation/devicetree/bindings/usb/twl-usb.txt 
b/Documentation/devicetree/bindings/usb/twl-usb.txt
index f293271..2d069e4 100644
--- a/Documentation/devicetree/bindings/usb/twl-usb.txt
+++ b/Documentation/devicetree/bindings/usb/twl-usb.txt
@@ -16,3 +16,22 @@ twl6030-usb {
regulator = vusb;
vusb-supply = vusb;
 };
+
+TWL4030 USB PHY AND COMPARATOR
+ - compatible : Should be ti,twl4030-usb
+ - interrupts : The interrupt numbers to the cpu should be specified. First
+   interrupt number is the otg interrupt number that raises ID interrupts
+   and VBUS interrupts. The second interrupt number is optional.
+ - supply-name-supply : phandle to the regulator device tree node.
+   supply-name should be vusb1v5, vusb1v8 and vusb3v1
+ - usb_mode : The mode used by the phy to connect to the controller. 1
+   specifies ULPI mode and 2 specifies CEA2011_3PIN mode.
+
+twl4030-usb {
+   compatible = ti,twl4030-usb;
+   interrupts =  10 4 ;
+   vusb1v5-supply = vusb1v5;
+   vusb1v8-supply = vusb1v8;
+   vusb3v1-supply = vusb3v1;
+   usb_mode = 1;
+};
diff --git a/drivers/usb/otg/twl4030-usb.c b/drivers/usb/otg/twl4030-usb.c
index 523cad5..a4e7434 100644
--- a/drivers/usb/otg/twl4030-usb.c
+++ b/drivers/usb/otg/twl4030-usb.c
@@ -585,23 +585,28 @@ static int __devinit twl4030_usb_probe(struct 
platform_device *pdev)
struct twl4030_usb  *twl;
int status, err;
struct usb_otg  *otg;
-
-   if (!pdata) {
-   dev_dbg(pdev-dev, platform_data not available\n);
-   return -EINVAL;
-   }
+   struct device_node  *np = pdev-dev.of_node;
 
twl = devm_kzalloc(pdev-dev, sizeof *twl, GFP_KERNEL);
if (!twl)
return -ENOMEM;
 
+   if (np)
+   of_property_read_u32(np, usb_mode,
+   (enum twl4030_usb_mode *)twl-usb_mode);
+   else if (pdata)
+   twl-usb_mode = pdata-usb_mode;
+   else {
+   dev_err(pdev-dev, twl4030 initialized without pdata\n);
+   return -EINVAL;
+   }
+
otg = devm_kzalloc(pdev-dev, sizeof *otg, GFP_KERNEL);
if (!otg)
return -ENOMEM;
 
twl-dev= pdev-dev;
twl-irq= platform_get_irq(pdev, 0);
-   twl-usb_mode   = pdata-usb_mode;
twl-vbus_supplied  = false;
twl-asleep = 1;
twl-linkstat   = OMAP_MUSB_UNKNOWN;
@@ -690,12 +695,23 @@ static int __exit twl4030_usb_remove(struct 
platform_device *pdev)
return 0;
 }
 
+#ifdef CONFIG_OF
+static const struct of_device_id twl4030_usb_id_table[] = {
+   { .compatible = ti,twl4030-usb },
+   {}
+};
+MODULE_DEVICE_TABLE(of, twl4030_usb_id_table);
+#else
+#define twl4030_usb_id_table NULL
+#endif
+
 static struct platform_driver twl4030_usb_driver = {
.probe  = twl4030_usb_probe,
.remove = __exit_p(twl4030_usb_remove),
.driver = {
.name   = twl4030_usb,
.owner  = THIS_MODULE,
+   .of_match_table = twl4030_usb_id_table,
},
 };
 
-- 
1.7.5.4

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