Hi Lothar, On Thu, Jan 16, 2014 at 09:02:18AM +0100, Lothar Waßmann wrote: > > Signed-off-by: Lothar Waßmann <LW@xxxxxxxxxxxxxxxxxxx> > --- > .../bindings/input/touchscreen/edt-ft5x06.txt | 29 +++++ > drivers/input/touchscreen/edt-ft5x06.c | 121 +++++++++++++++++--- > 2 files changed, 132 insertions(+), 18 deletions(-) > create mode 100644 Documentation/devicetree/bindings/input/touchscreen/edt-ft5x06.txt > > diff --git a/Documentation/devicetree/bindings/input/touchscreen/edt-ft5x06.txt b/Documentation/devicetree/bindings/input/touchscreen/edt-ft5x06.txt > new file mode 100644 > index 0000000..8d94cdc > --- /dev/null > +++ b/Documentation/devicetree/bindings/input/touchscreen/edt-ft5x06.txt > @@ -0,0 +1,29 @@ > +* EDT FT5x06 Multiple Touch Controller > + > +Required properties: > +- compatible: must be "edt,ft5x06" > +- reg: i2c slave address > +- interrupt-parent: the phandle for the interrupt controller > +- interrupts: touch controller interrupt > + > +Optional properties: > +- reset-gpios: the gpio pin to be used for resetting the controller > +- wake-gpios: the gpio pin to be used for waking up the controller > + > + The following properties provide default values for the > + corresponding parameters (see Documentation/input/edt-ft5x06.txt) > +- edt,threshold: allows setting the "click"-threshold in the range from 20 to 80. > +- edt,gain: sensitivity (0..31) (lower value -> higher sensitivity) > +- edt,offset: edge compensation (0..31) > +- edt,report-rate: report rate (3..14) I wonder if we really need to have it in device tree? Can users needing top tweak the settings do it via udev rules? > + > +Example: > + > + edt_ft5x06@38 { > + compatible = "edt,ft5x06"; > + reg = <0x38>; > + interrupt-parent = <&gpio2>; > + interrupts = <5 0>; > + reset-gpios = <&gpio2 6 1>; > + wake-gpios = <&gpio4 9 0>; > + }; > diff --git a/drivers/input/touchscreen/edt-ft5x06.c b/drivers/input/touchscreen/edt-ft5x06.c > index acb6b9f..0467591 100644 > --- a/drivers/input/touchscreen/edt-ft5x06.c > +++ b/drivers/input/touchscreen/edt-ft5x06.c > @@ -33,6 +33,7 @@ > #include <linux/debugfs.h> > #include <linux/slab.h> > #include <linux/gpio.h> > +#include <linux/of_gpio.h> > #include <linux/input/mt.h> > #include <linux/input/edt-ft5x06.h> > > @@ -65,6 +66,10 @@ struct edt_ft5x06_ts_data { > u16 num_x; > u16 num_y; > > + int reset_pin; > + int irq_pin; > + int wake_pin; > + > #if defined(CONFIG_DEBUG_FS) > struct dentry *debug_dir; > u8 *raw_buffer; > @@ -617,25 +622,38 @@ edt_ft5x06_ts_teardown_debugfs(struct edt_ft5x06_ts_data *tsdata) > > > static int edt_ft5x06_ts_reset(struct i2c_client *client, > - int reset_pin) > + struct edt_ft5x06_ts_data *tsdata) > { > int error; > > - if (gpio_is_valid(reset_pin)) { > + if (gpio_is_valid(tsdata->wake_pin)) { > + error = devm_gpio_request_one(&client->dev, tsdata->wake_pin, > + GPIOF_OUT_INIT_LOW, "edt-ft5x06 wake"); > + if (error) { > + dev_err(&client->dev, > + "Failed to request GPIO %d as wake pin, error %d\n", > + tsdata->wake_pin, error); > + return error; > + } > + > + mdelay(5); > + gpio_set_value(tsdata->wake_pin, 1); > + } > + if (gpio_is_valid(tsdata->reset_pin)) { > /* this pulls reset down, enabling the low active reset */ > - error = devm_gpio_request_one(&client->dev, reset_pin, > + error = devm_gpio_request_one(&client->dev, tsdata->reset_pin, > GPIOF_OUT_INIT_LOW, > "edt-ft5x06 reset"); > if (error) { > dev_err(&client->dev, > "Failed to request GPIO %d as reset pin, error %d\n", > - reset_pin, error); > + tsdata->reset_pin, error); > return error; > } > > - mdelay(50); > - gpio_set_value(reset_pin, 1); > - mdelay(100); > + mdelay(5); > + gpio_set_value(tsdata->reset_pin, 1); > + mdelay(300); Hmm, this change seems unrelated to DT support. Thanks. -- Dmitry -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html