Re: [PATCH 3/5] Input: bu21013_ts - Add support for Device Tree booting

2012-11-26 Thread Dmitry Torokhov
On Mon, Nov 26, 2012 at 09:07:36AM +, Lee Jones wrote:
> On Fri, 23 Nov 2012, Dmitry Torokhov wrote:
> 
> > On Fri, Nov 23, 2012 at 03:52:58PM +, Lee Jones wrote:
> > > On Wed, 14 Nov 2012, Lee Jones wrote:
> > > 
> > > > Now we can register the BU21013_ts touch screen when booting with
> > > > Device Tree enabled. Here we parse all the necessary components
> > > > previously expected to be passed from platform data.
> > > > 
> > > > Cc: Dmitry Torokhov 
> > > > Cc: linux-in...@vger.kernel.org
> > > > Acked-by: Arnd Bergmann 
> > > > Acked-by: Linus Walleij 
> > > > Signed-off-by: Lee Jones 
> > > > ---
> > > >  drivers/input/touchscreen/bu21013_ts.c |   39 
> > > > 
> > > >  1 file changed, 35 insertions(+), 4 deletions(-)
> > > > 
> > > > diff --git a/drivers/input/touchscreen/bu21013_ts.c 
> > > > b/drivers/input/touchscreen/bu21013_ts.c
> > > > index 5d8fc75..afef874 100644
> > > > --- a/drivers/input/touchscreen/bu21013_ts.c
> > > > +++ b/drivers/input/touchscreen/bu21013_ts.c
> > > > @@ -15,6 +15,8 @@
> > > >  #include 
> > > >  #include 
> > > >  #include 
> > > > +#include 
> > > > +#include 
> > > >  
> > > >  /* Reference tracking for multiple displays. */
> > > >  static int bu21013_devices = 0;
> > > > @@ -487,13 +489,33 @@ static void bu21013_free_irq(struct 
> > > > bu21013_ts_data *bu21013_data)
> > > >   * This function used to initializes the i2c-client touchscreen
> > > >   * driver and returns integer.
> > > >   */
> > > > +static void __devinit bu21013_of_probe(struct device_node *np,
> > > > +   struct bu21013_platform_device *pdata)
> > > > +{
> > > > +   pdata->y_flip = pdata->x_flip = false;
> > > > +
> > > > +   if (of_get_property(np, "rohm,flip-x", NULL))
> > > > +   pdata->x_flip = true;
> > 
> > pdata->x_flip = of_property_read_bool(np, "rohm,flip-x");
> > 
> > ?
> 
> Yes, we can do this now it exists.
> 
> > Can I also get patch documenting the DT properties?
> 
> Sure. As a follow-up? I'll resubmit this first, right away.

No preference but I am going to fold documentation with the patch
implementing DT support anyway.

Thanks.

-- 
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 3/5] Input: bu21013_ts - Add support for Device Tree booting

2012-11-26 Thread Lee Jones
On Fri, 23 Nov 2012, Dmitry Torokhov wrote:

> On Fri, Nov 23, 2012 at 03:52:58PM +, Lee Jones wrote:
> > On Wed, 14 Nov 2012, Lee Jones wrote:
> > 
> > > Now we can register the BU21013_ts touch screen when booting with
> > > Device Tree enabled. Here we parse all the necessary components
> > > previously expected to be passed from platform data.
> > > 
> > > Cc: Dmitry Torokhov 
> > > Cc: linux-in...@vger.kernel.org
> > > Acked-by: Arnd Bergmann 
> > > Acked-by: Linus Walleij 
> > > Signed-off-by: Lee Jones 
> > > ---
> > >  drivers/input/touchscreen/bu21013_ts.c |   39 
> > > 
> > >  1 file changed, 35 insertions(+), 4 deletions(-)
> > > 
> > > diff --git a/drivers/input/touchscreen/bu21013_ts.c 
> > > b/drivers/input/touchscreen/bu21013_ts.c
> > > index 5d8fc75..afef874 100644
> > > --- a/drivers/input/touchscreen/bu21013_ts.c
> > > +++ b/drivers/input/touchscreen/bu21013_ts.c
> > > @@ -15,6 +15,8 @@
> > >  #include 
> > >  #include 
> > >  #include 
> > > +#include 
> > > +#include 
> > >  
> > >  /* Reference tracking for multiple displays. */
> > >  static int bu21013_devices = 0;
> > > @@ -487,13 +489,33 @@ static void bu21013_free_irq(struct bu21013_ts_data 
> > > *bu21013_data)
> > >   * This function used to initializes the i2c-client touchscreen
> > >   * driver and returns integer.
> > >   */
> > > +static void __devinit bu21013_of_probe(struct device_node *np,
> > > + struct bu21013_platform_device *pdata)
> > > +{
> > > + pdata->y_flip = pdata->x_flip = false;
> > > +
> > > + if (of_get_property(np, "rohm,flip-x", NULL))
> > > + pdata->x_flip = true;
> 
>   pdata->x_flip = of_property_read_bool(np, "rohm,flip-x");
> 
> ?

Yes, we can do this now it exists.

> Can I also get patch documenting the DT properties?

Sure. As a follow-up? I'll resubmit this first, right away.

-- 
Lee Jones
Linaro ST-Ericsson Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 3/5] Input: bu21013_ts - Add support for Device Tree booting

2012-11-26 Thread Lee Jones
On Fri, 23 Nov 2012, Dmitry Torokhov wrote:

 On Fri, Nov 23, 2012 at 03:52:58PM +, Lee Jones wrote:
  On Wed, 14 Nov 2012, Lee Jones wrote:
  
   Now we can register the BU21013_ts touch screen when booting with
   Device Tree enabled. Here we parse all the necessary components
   previously expected to be passed from platform data.
   
   Cc: Dmitry Torokhov dmitry.torok...@gmail.com
   Cc: linux-in...@vger.kernel.org
   Acked-by: Arnd Bergmann a...@arndb.de
   Acked-by: Linus Walleij linus.wall...@linaro.org
   Signed-off-by: Lee Jones lee.jo...@linaro.org
   ---
drivers/input/touchscreen/bu21013_ts.c |   39 
   
1 file changed, 35 insertions(+), 4 deletions(-)
   
   diff --git a/drivers/input/touchscreen/bu21013_ts.c 
   b/drivers/input/touchscreen/bu21013_ts.c
   index 5d8fc75..afef874 100644
   --- a/drivers/input/touchscreen/bu21013_ts.c
   +++ b/drivers/input/touchscreen/bu21013_ts.c
   @@ -15,6 +15,8 @@
#include linux/regulator/consumer.h
#include linux/module.h
#include linux/gpio.h
   +#include linux/of.h
   +#include linux/of_gpio.h

/* Reference tracking for multiple displays. */
static int bu21013_devices = 0;
   @@ -487,13 +489,33 @@ static void bu21013_free_irq(struct bu21013_ts_data 
   *bu21013_data)
 * This function used to initializes the i2c-client touchscreen
 * driver and returns integer.
 */
   +static void __devinit bu21013_of_probe(struct device_node *np,
   + struct bu21013_platform_device *pdata)
   +{
   + pdata-y_flip = pdata-x_flip = false;
   +
   + if (of_get_property(np, rohm,flip-x, NULL))
   + pdata-x_flip = true;
 
   pdata-x_flip = of_property_read_bool(np, rohm,flip-x);
 
 ?

Yes, we can do this now it exists.

 Can I also get patch documenting the DT properties?

Sure. As a follow-up? I'll resubmit this first, right away.

-- 
Lee Jones
Linaro ST-Ericsson Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 3/5] Input: bu21013_ts - Add support for Device Tree booting

2012-11-26 Thread Dmitry Torokhov
On Mon, Nov 26, 2012 at 09:07:36AM +, Lee Jones wrote:
 On Fri, 23 Nov 2012, Dmitry Torokhov wrote:
 
  On Fri, Nov 23, 2012 at 03:52:58PM +, Lee Jones wrote:
   On Wed, 14 Nov 2012, Lee Jones wrote:
   
Now we can register the BU21013_ts touch screen when booting with
Device Tree enabled. Here we parse all the necessary components
previously expected to be passed from platform data.

Cc: Dmitry Torokhov dmitry.torok...@gmail.com
Cc: linux-in...@vger.kernel.org
Acked-by: Arnd Bergmann a...@arndb.de
Acked-by: Linus Walleij linus.wall...@linaro.org
Signed-off-by: Lee Jones lee.jo...@linaro.org
---
 drivers/input/touchscreen/bu21013_ts.c |   39 

 1 file changed, 35 insertions(+), 4 deletions(-)

diff --git a/drivers/input/touchscreen/bu21013_ts.c 
b/drivers/input/touchscreen/bu21013_ts.c
index 5d8fc75..afef874 100644
--- a/drivers/input/touchscreen/bu21013_ts.c
+++ b/drivers/input/touchscreen/bu21013_ts.c
@@ -15,6 +15,8 @@
 #include linux/regulator/consumer.h
 #include linux/module.h
 #include linux/gpio.h
+#include linux/of.h
+#include linux/of_gpio.h
 
 /* Reference tracking for multiple displays. */
 static int bu21013_devices = 0;
@@ -487,13 +489,33 @@ static void bu21013_free_irq(struct 
bu21013_ts_data *bu21013_data)
  * This function used to initializes the i2c-client touchscreen
  * driver and returns integer.
  */
+static void __devinit bu21013_of_probe(struct device_node *np,
+   struct bu21013_platform_device *pdata)
+{
+   pdata-y_flip = pdata-x_flip = false;
+
+   if (of_get_property(np, rohm,flip-x, NULL))
+   pdata-x_flip = true;
  
  pdata-x_flip = of_property_read_bool(np, rohm,flip-x);
  
  ?
 
 Yes, we can do this now it exists.
 
  Can I also get patch documenting the DT properties?
 
 Sure. As a follow-up? I'll resubmit this first, right away.

No preference but I am going to fold documentation with the patch
implementing DT support anyway.

Thanks.

-- 
Dmitry
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 3/5] Input: bu21013_ts - Add support for Device Tree booting

2012-11-23 Thread Dmitry Torokhov
On Fri, Nov 23, 2012 at 03:52:58PM +, Lee Jones wrote:
> On Wed, 14 Nov 2012, Lee Jones wrote:
> 
> > Now we can register the BU21013_ts touch screen when booting with
> > Device Tree enabled. Here we parse all the necessary components
> > previously expected to be passed from platform data.
> > 
> > Cc: Dmitry Torokhov 
> > Cc: linux-in...@vger.kernel.org
> > Acked-by: Arnd Bergmann 
> > Acked-by: Linus Walleij 
> > Signed-off-by: Lee Jones 
> > ---
> >  drivers/input/touchscreen/bu21013_ts.c |   39 
> > 
> >  1 file changed, 35 insertions(+), 4 deletions(-)
> > 
> > diff --git a/drivers/input/touchscreen/bu21013_ts.c 
> > b/drivers/input/touchscreen/bu21013_ts.c
> > index 5d8fc75..afef874 100644
> > --- a/drivers/input/touchscreen/bu21013_ts.c
> > +++ b/drivers/input/touchscreen/bu21013_ts.c
> > @@ -15,6 +15,8 @@
> >  #include 
> >  #include 
> >  #include 
> > +#include 
> > +#include 
> >  
> >  /* Reference tracking for multiple displays. */
> >  static int bu21013_devices = 0;
> > @@ -487,13 +489,33 @@ static void bu21013_free_irq(struct bu21013_ts_data 
> > *bu21013_data)
> >   * This function used to initializes the i2c-client touchscreen
> >   * driver and returns integer.
> >   */
> > +static void __devinit bu21013_of_probe(struct device_node *np,
> > +   struct bu21013_platform_device *pdata)
> > +{
> > +   pdata->y_flip = pdata->x_flip = false;
> > +
> > +   if (of_get_property(np, "rohm,flip-x", NULL))
> > +   pdata->x_flip = true;

pdata->x_flip = of_property_read_bool(np, "rohm,flip-x");

?

Can I also get patch documenting the DT properties?

Thanks.

-- 
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 3/5] Input: bu21013_ts - Add support for Device Tree booting

2012-11-23 Thread Lee Jones
On Wed, 14 Nov 2012, Lee Jones wrote:

> Now we can register the BU21013_ts touch screen when booting with
> Device Tree enabled. Here we parse all the necessary components
> previously expected to be passed from platform data.
> 
> Cc: Dmitry Torokhov 
> Cc: linux-in...@vger.kernel.org
> Acked-by: Arnd Bergmann 
> Acked-by: Linus Walleij 
> Signed-off-by: Lee Jones 
> ---
>  drivers/input/touchscreen/bu21013_ts.c |   39 
> 
>  1 file changed, 35 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/input/touchscreen/bu21013_ts.c 
> b/drivers/input/touchscreen/bu21013_ts.c
> index 5d8fc75..afef874 100644
> --- a/drivers/input/touchscreen/bu21013_ts.c
> +++ b/drivers/input/touchscreen/bu21013_ts.c
> @@ -15,6 +15,8 @@
>  #include 
>  #include 
>  #include 
> +#include 
> +#include 
>  
>  /* Reference tracking for multiple displays. */
>  static int bu21013_devices = 0;
> @@ -487,13 +489,33 @@ static void bu21013_free_irq(struct bu21013_ts_data 
> *bu21013_data)
>   * This function used to initializes the i2c-client touchscreen
>   * driver and returns integer.
>   */
> +static void __devinit bu21013_of_probe(struct device_node *np,
> + struct bu21013_platform_device *pdata)
> +{
> + pdata->y_flip = pdata->x_flip = false;
> +
> + if (of_get_property(np, "rohm,flip-x", NULL))
> + pdata->x_flip = true;
> +
> + if (of_get_property(np, "rohm,flip-y", NULL))
> + pdata->y_flip = true;
> +
> + of_property_read_u32(np, "rohm,touch-max-x", >touch_x_max);
> + of_property_read_u32(np, "rohm,touch-max-y", >touch_y_max);
> +
> + pdata->touch_pin = of_get_named_gpio(np, "touch-gpio", 0);
> + pdata->cs_pin = of_get_named_gpio(np, "reset-gpio", 0);
> +
> + pdata->ext_clk = false;
> +}
> +
>  static int __devinit bu21013_probe(struct i2c_client *client,
>   const struct i2c_device_id *id)
>  {
>   struct bu21013_ts_data *bu21013_data;
>   struct input_dev *in_dev;
> - const struct bu21013_platform_device *pdata =
> - client->dev.platform_data;
> + struct device_node *np = client->dev.of_node;
> + struct bu21013_platform_device *pdata = client->dev.platform_data;
>   int error;
>  
>   if (!i2c_check_functionality(client->adapter,
> @@ -503,8 +525,17 @@ static int __devinit bu21013_probe(struct i2c_client 
> *client,
>   }
>  
>   if (!pdata) {
> - dev_err(>dev, "platform data not defined\n");
> - return -EINVAL;
> + if (np) {
> + pdata = devm_kzalloc(>dev, sizeof(*pdata),
> + GFP_KERNEL);
> + if (!pdata)
> + return -ENOMEM;
> +
> + bu21013_of_probe(np, pdata);
> + } else {
> + dev_err(>dev, "no device tree or platform 
> data\n");
> + return -EINVAL;
> + }
>   }
>  
>   pdata->irq = gpio_to_irq(pdata->touch_pin);
> -- 
> 1.7.9.5
> 

Friendly poke for Dmitry.

-- 
Lee Jones
Linaro ST-Ericsson Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 3/5] Input: bu21013_ts - Add support for Device Tree booting

2012-11-23 Thread Lee Jones
On Wed, 14 Nov 2012, Lee Jones wrote:

 Now we can register the BU21013_ts touch screen when booting with
 Device Tree enabled. Here we parse all the necessary components
 previously expected to be passed from platform data.
 
 Cc: Dmitry Torokhov dmitry.torok...@gmail.com
 Cc: linux-in...@vger.kernel.org
 Acked-by: Arnd Bergmann a...@arndb.de
 Acked-by: Linus Walleij linus.wall...@linaro.org
 Signed-off-by: Lee Jones lee.jo...@linaro.org
 ---
  drivers/input/touchscreen/bu21013_ts.c |   39 
 
  1 file changed, 35 insertions(+), 4 deletions(-)
 
 diff --git a/drivers/input/touchscreen/bu21013_ts.c 
 b/drivers/input/touchscreen/bu21013_ts.c
 index 5d8fc75..afef874 100644
 --- a/drivers/input/touchscreen/bu21013_ts.c
 +++ b/drivers/input/touchscreen/bu21013_ts.c
 @@ -15,6 +15,8 @@
  #include linux/regulator/consumer.h
  #include linux/module.h
  #include linux/gpio.h
 +#include linux/of.h
 +#include linux/of_gpio.h
  
  /* Reference tracking for multiple displays. */
  static int bu21013_devices = 0;
 @@ -487,13 +489,33 @@ static void bu21013_free_irq(struct bu21013_ts_data 
 *bu21013_data)
   * This function used to initializes the i2c-client touchscreen
   * driver and returns integer.
   */
 +static void __devinit bu21013_of_probe(struct device_node *np,
 + struct bu21013_platform_device *pdata)
 +{
 + pdata-y_flip = pdata-x_flip = false;
 +
 + if (of_get_property(np, rohm,flip-x, NULL))
 + pdata-x_flip = true;
 +
 + if (of_get_property(np, rohm,flip-y, NULL))
 + pdata-y_flip = true;
 +
 + of_property_read_u32(np, rohm,touch-max-x, pdata-touch_x_max);
 + of_property_read_u32(np, rohm,touch-max-y, pdata-touch_y_max);
 +
 + pdata-touch_pin = of_get_named_gpio(np, touch-gpio, 0);
 + pdata-cs_pin = of_get_named_gpio(np, reset-gpio, 0);
 +
 + pdata-ext_clk = false;
 +}
 +
  static int __devinit bu21013_probe(struct i2c_client *client,
   const struct i2c_device_id *id)
  {
   struct bu21013_ts_data *bu21013_data;
   struct input_dev *in_dev;
 - const struct bu21013_platform_device *pdata =
 - client-dev.platform_data;
 + struct device_node *np = client-dev.of_node;
 + struct bu21013_platform_device *pdata = client-dev.platform_data;
   int error;
  
   if (!i2c_check_functionality(client-adapter,
 @@ -503,8 +525,17 @@ static int __devinit bu21013_probe(struct i2c_client 
 *client,
   }
  
   if (!pdata) {
 - dev_err(client-dev, platform data not defined\n);
 - return -EINVAL;
 + if (np) {
 + pdata = devm_kzalloc(client-dev, sizeof(*pdata),
 + GFP_KERNEL);
 + if (!pdata)
 + return -ENOMEM;
 +
 + bu21013_of_probe(np, pdata);
 + } else {
 + dev_err(client-dev, no device tree or platform 
 data\n);
 + return -EINVAL;
 + }
   }
  
   pdata-irq = gpio_to_irq(pdata-touch_pin);
 -- 
 1.7.9.5
 

Friendly poke for Dmitry.

-- 
Lee Jones
Linaro ST-Ericsson Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 3/5] Input: bu21013_ts - Add support for Device Tree booting

2012-11-23 Thread Dmitry Torokhov
On Fri, Nov 23, 2012 at 03:52:58PM +, Lee Jones wrote:
 On Wed, 14 Nov 2012, Lee Jones wrote:
 
  Now we can register the BU21013_ts touch screen when booting with
  Device Tree enabled. Here we parse all the necessary components
  previously expected to be passed from platform data.
  
  Cc: Dmitry Torokhov dmitry.torok...@gmail.com
  Cc: linux-in...@vger.kernel.org
  Acked-by: Arnd Bergmann a...@arndb.de
  Acked-by: Linus Walleij linus.wall...@linaro.org
  Signed-off-by: Lee Jones lee.jo...@linaro.org
  ---
   drivers/input/touchscreen/bu21013_ts.c |   39 
  
   1 file changed, 35 insertions(+), 4 deletions(-)
  
  diff --git a/drivers/input/touchscreen/bu21013_ts.c 
  b/drivers/input/touchscreen/bu21013_ts.c
  index 5d8fc75..afef874 100644
  --- a/drivers/input/touchscreen/bu21013_ts.c
  +++ b/drivers/input/touchscreen/bu21013_ts.c
  @@ -15,6 +15,8 @@
   #include linux/regulator/consumer.h
   #include linux/module.h
   #include linux/gpio.h
  +#include linux/of.h
  +#include linux/of_gpio.h
   
   /* Reference tracking for multiple displays. */
   static int bu21013_devices = 0;
  @@ -487,13 +489,33 @@ static void bu21013_free_irq(struct bu21013_ts_data 
  *bu21013_data)
* This function used to initializes the i2c-client touchscreen
* driver and returns integer.
*/
  +static void __devinit bu21013_of_probe(struct device_node *np,
  +   struct bu21013_platform_device *pdata)
  +{
  +   pdata-y_flip = pdata-x_flip = false;
  +
  +   if (of_get_property(np, rohm,flip-x, NULL))
  +   pdata-x_flip = true;

pdata-x_flip = of_property_read_bool(np, rohm,flip-x);

?

Can I also get patch documenting the DT properties?

Thanks.

-- 
Dmitry
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH 3/5] Input: bu21013_ts - Add support for Device Tree booting

2012-11-14 Thread Lee Jones
Now we can register the BU21013_ts touch screen when booting with
Device Tree enabled. Here we parse all the necessary components
previously expected to be passed from platform data.

Cc: Dmitry Torokhov 
Cc: linux-in...@vger.kernel.org
Acked-by: Arnd Bergmann 
Acked-by: Linus Walleij 
Signed-off-by: Lee Jones 
---
 drivers/input/touchscreen/bu21013_ts.c |   39 
 1 file changed, 35 insertions(+), 4 deletions(-)

diff --git a/drivers/input/touchscreen/bu21013_ts.c 
b/drivers/input/touchscreen/bu21013_ts.c
index 5d8fc75..afef874 100644
--- a/drivers/input/touchscreen/bu21013_ts.c
+++ b/drivers/input/touchscreen/bu21013_ts.c
@@ -15,6 +15,8 @@
 #include 
 #include 
 #include 
+#include 
+#include 
 
 /* Reference tracking for multiple displays. */
 static int bu21013_devices = 0;
@@ -487,13 +489,33 @@ static void bu21013_free_irq(struct bu21013_ts_data 
*bu21013_data)
  * This function used to initializes the i2c-client touchscreen
  * driver and returns integer.
  */
+static void __devinit bu21013_of_probe(struct device_node *np,
+   struct bu21013_platform_device *pdata)
+{
+   pdata->y_flip = pdata->x_flip = false;
+
+   if (of_get_property(np, "rohm,flip-x", NULL))
+   pdata->x_flip = true;
+
+   if (of_get_property(np, "rohm,flip-y", NULL))
+   pdata->y_flip = true;
+
+   of_property_read_u32(np, "rohm,touch-max-x", >touch_x_max);
+   of_property_read_u32(np, "rohm,touch-max-y", >touch_y_max);
+
+   pdata->touch_pin = of_get_named_gpio(np, "touch-gpio", 0);
+   pdata->cs_pin = of_get_named_gpio(np, "reset-gpio", 0);
+
+   pdata->ext_clk = false;
+}
+
 static int __devinit bu21013_probe(struct i2c_client *client,
const struct i2c_device_id *id)
 {
struct bu21013_ts_data *bu21013_data;
struct input_dev *in_dev;
-   const struct bu21013_platform_device *pdata =
-   client->dev.platform_data;
+   struct device_node *np = client->dev.of_node;
+   struct bu21013_platform_device *pdata = client->dev.platform_data;
int error;
 
if (!i2c_check_functionality(client->adapter,
@@ -503,8 +525,17 @@ static int __devinit bu21013_probe(struct i2c_client 
*client,
}
 
if (!pdata) {
-   dev_err(>dev, "platform data not defined\n");
-   return -EINVAL;
+   if (np) {
+   pdata = devm_kzalloc(>dev, sizeof(*pdata),
+   GFP_KERNEL);
+   if (!pdata)
+   return -ENOMEM;
+
+   bu21013_of_probe(np, pdata);
+   } else {
+   dev_err(>dev, "no device tree or platform 
data\n");
+   return -EINVAL;
+   }
}
 
pdata->irq = gpio_to_irq(pdata->touch_pin);
-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH 3/5] Input: bu21013_ts - Add support for Device Tree booting

2012-11-14 Thread Lee Jones
Now we can register the BU21013_ts touch screen when booting with
Device Tree enabled. Here we parse all the necessary components
previously expected to be passed from platform data.

Cc: Dmitry Torokhov dmitry.torok...@gmail.com
Cc: linux-in...@vger.kernel.org
Acked-by: Arnd Bergmann a...@arndb.de
Acked-by: Linus Walleij linus.wall...@linaro.org
Signed-off-by: Lee Jones lee.jo...@linaro.org
---
 drivers/input/touchscreen/bu21013_ts.c |   39 
 1 file changed, 35 insertions(+), 4 deletions(-)

diff --git a/drivers/input/touchscreen/bu21013_ts.c 
b/drivers/input/touchscreen/bu21013_ts.c
index 5d8fc75..afef874 100644
--- a/drivers/input/touchscreen/bu21013_ts.c
+++ b/drivers/input/touchscreen/bu21013_ts.c
@@ -15,6 +15,8 @@
 #include linux/regulator/consumer.h
 #include linux/module.h
 #include linux/gpio.h
+#include linux/of.h
+#include linux/of_gpio.h
 
 /* Reference tracking for multiple displays. */
 static int bu21013_devices = 0;
@@ -487,13 +489,33 @@ static void bu21013_free_irq(struct bu21013_ts_data 
*bu21013_data)
  * This function used to initializes the i2c-client touchscreen
  * driver and returns integer.
  */
+static void __devinit bu21013_of_probe(struct device_node *np,
+   struct bu21013_platform_device *pdata)
+{
+   pdata-y_flip = pdata-x_flip = false;
+
+   if (of_get_property(np, rohm,flip-x, NULL))
+   pdata-x_flip = true;
+
+   if (of_get_property(np, rohm,flip-y, NULL))
+   pdata-y_flip = true;
+
+   of_property_read_u32(np, rohm,touch-max-x, pdata-touch_x_max);
+   of_property_read_u32(np, rohm,touch-max-y, pdata-touch_y_max);
+
+   pdata-touch_pin = of_get_named_gpio(np, touch-gpio, 0);
+   pdata-cs_pin = of_get_named_gpio(np, reset-gpio, 0);
+
+   pdata-ext_clk = false;
+}
+
 static int __devinit bu21013_probe(struct i2c_client *client,
const struct i2c_device_id *id)
 {
struct bu21013_ts_data *bu21013_data;
struct input_dev *in_dev;
-   const struct bu21013_platform_device *pdata =
-   client-dev.platform_data;
+   struct device_node *np = client-dev.of_node;
+   struct bu21013_platform_device *pdata = client-dev.platform_data;
int error;
 
if (!i2c_check_functionality(client-adapter,
@@ -503,8 +525,17 @@ static int __devinit bu21013_probe(struct i2c_client 
*client,
}
 
if (!pdata) {
-   dev_err(client-dev, platform data not defined\n);
-   return -EINVAL;
+   if (np) {
+   pdata = devm_kzalloc(client-dev, sizeof(*pdata),
+   GFP_KERNEL);
+   if (!pdata)
+   return -ENOMEM;
+
+   bu21013_of_probe(np, pdata);
+   } else {
+   dev_err(client-dev, no device tree or platform 
data\n);
+   return -EINVAL;
+   }
}
 
pdata-irq = gpio_to_irq(pdata-touch_pin);
-- 
1.7.9.5

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