All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lee Jones <lee.jones@linaro.org>
To: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: linux-kernel@vger.kernel.org, linux-input@vger.kernel.org
Subject: [PATCH 3/5 v2] Input: bu21013_ts - Add support for Device Tree booting
Date: Mon, 26 Nov 2012 10:50:45 +0000	[thread overview]
Message-ID: <20121126105045.GF12782@gmail.com> (raw)
In-Reply-To: <20121124075009.GB24711@core.coreip.homeip.net>

Author: Lee Jones <lee.jones@linaro.org>
Date:   Fri Sep 28 14:35:43 2012 +0100

    Input: bu21013_ts - Add support for Device Tree booting
    
    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.torokhov@gmail.com>
    Cc: linux-input@vger.kernel.org
    Acked-by: Arnd Bergmann <arnd@arndb.de>
    Acked-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Lee Jones <lee.jones@linaro.org>

diff --git a/drivers/input/touchscreen/bu21013_ts.c b/drivers/input/touchscreen/bu21013_ts.c
index 08ffb19..7d240f0 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>
 
 #define PEN_DOWN_INTR	0
 #define MAX_FINGERS	2
@@ -478,13 +480,30 @@ 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;
+
+	pdata->x_flip = of_property_read_bool(np, "rohm,flip-x");
+	pdata->y_flip = of_property_read_bool(np, "rohm,flip-y");
+
+	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,
@@ -494,8 +513,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);

  parent reply	other threads:[~2012-11-26 10:50 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-14 13:47 [PATCH 0/5] Input related patches Lee Jones
2012-11-14 13:47 ` [PATCH 1/5] Input: bu21013_ts - Request a regulator that actually exists Lee Jones
2012-11-23 15:50   ` Lee Jones
2012-11-23 15:50     ` Lee Jones
2012-11-26 12:16   ` Lee Jones
2012-11-26 12:16     ` Lee Jones
2012-11-26 16:47     ` Dmitry Torokhov
2012-11-27  9:05       ` Lee Jones
2012-11-27  9:05         ` Lee Jones
2012-11-14 13:47 ` [PATCH 2/5] Input: bu21013_ts - Move GPIO init and exit functions into the driver Lee Jones
2012-11-21 18:42   ` Dmitry Torokhov
2012-11-22 11:28     ` Lee Jones
2012-11-22 11:28       ` Lee Jones
2012-11-22 12:10   ` Lee Jones
2012-11-23 15:52     ` Lee Jones
2012-11-23 15:52       ` Lee Jones
2012-11-24  7:43     ` Dmitry Torokhov
2012-11-26 10:43       ` Lee Jones
2012-11-26 10:43         ` Lee Jones
2012-11-26 12:01       ` [PATCH 2/5 v2] " Lee Jones
2012-11-26 16:46         ` Dmitry Torokhov
2012-11-27  9:07           ` Lee Jones
2012-11-27  9:07             ` Lee Jones
2012-11-14 13:47 ` [PATCH 3/5] Input: bu21013_ts - Add support for Device Tree booting Lee Jones
2012-11-23 15:52   ` Lee Jones
2012-11-23 15:52     ` Lee Jones
2012-11-24  7:50     ` Dmitry Torokhov
2012-11-26  9:07       ` Lee Jones
2012-11-26  9:07         ` Lee Jones
2012-11-26  9:31         ` Dmitry Torokhov
2012-11-26 10:50       ` Lee Jones [this message]
2012-11-27 11:38   ` [PATCH 3/5 v3] " Lee Jones
2012-11-27 11:38     ` Lee Jones
2012-11-14 13:47 ` [PATCH 4/5] Input: Enable STMPE keypad driver for Device Tree Lee Jones
2012-11-23 15:53   ` Lee Jones
2012-11-23 15:53     ` Lee Jones
2013-01-08  8:38   ` Lee Jones
2013-01-08  8:38     ` Lee Jones
2013-01-08  9:26     ` Dmitry Torokhov
2013-01-08  9:30       ` Dmitry Torokhov
2013-01-08  9:53         ` Lee Jones
2013-01-08  9:53           ` Lee Jones
2012-11-14 13:47 ` [PATCH 5/5] Documentation: Describe bindings for STMPE Keypad driver Lee Jones
2012-11-23 15:54   ` Lee Jones
2012-11-23 15:54     ` Lee Jones
2012-11-24  8:23   ` Dmitry Torokhov

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=20121126105045.GF12782@gmail.com \
    --to=lee.jones@linaro.org \
    --cc=dmitry.torokhov@gmail.com \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /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.