Message ID | 1404399697-26484-5-git-send-email-nick.dyer@itdev.co.uk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 07/03/2014 09:01 AM, nick.dyer@itdev.co.uk wrote: > From: Stephen Warren <swarren@nvidia.com> > diff --git a/Documentation/devicetree/bindings/input/atmel,maxtouch.txt b/Documentation/devicetree/bindings/input/atmel,maxtouch.txt > + touch@4b { > + compatible = "atmel,maxtouch"; > + reg = <0x4b>; > + interrupt-parent = <&gpio>; > + interrupts = <TEGRA_GPIO(W, 3) GPIO_ACTIVE_HIGH>; Oops. s/GPIO_ACTIVE_HIGH/IRQ_TYPE_LEVEL_LOW/ there; I evidently typed something stupid into the doc when I wrote it! -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 22/07/14 21:37, Stephen Warren wrote: > On 07/03/2014 09:01 AM, nick.dyer@itdev.co.uk wrote: >> From: Stephen Warren <swarren@nvidia.com> > >> diff --git a/Documentation/devicetree/bindings/input/atmel,maxtouch.txt b/Documentation/devicetree/bindings/input/atmel,maxtouch.txt > >> + touch@4b { >> + compatible = "atmel,maxtouch"; >> + reg = <0x4b>; >> + interrupt-parent = <&gpio>; >> + interrupts = <TEGRA_GPIO(W, 3) GPIO_ACTIVE_HIGH>; > > Oops. s/GPIO_ACTIVE_HIGH/IRQ_TYPE_LEVEL_LOW/ there; I evidently typed > something stupid into the doc when I wrote it! OK, fixed this. I thought it was some tegra quirk I wasn't aware of! -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 07/03/2014 09:01 AM, nick.dyer@itdev.co.uk wrote: > From: Stephen Warren <swarren@nvidia.com> > > Signed-off-by: Stephen Warren <swarren@nvidia.com> > Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Hmm. It looks like the version of this patch that was actually applied varies quite a bit from what was posted, in particular in the implementation and call site of mxt_parse_dt(). It'd be nice if the commit log had been adjusted to mention this, so it didn't look like *I* caused all those compile errors and warnings that the 0-day builder just found:-( -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 23/07/14 22:36, Stephen Warren wrote: > Hmm. It looks like the version of this patch that was actually applied > varies quite a bit from what was posted, in particular in the > implementation and call site of mxt_parse_dt(). It'd be nice if the > commit log had been adjusted to mention this, so it didn't look like *I* > caused all those compile errors and warnings that the 0-day builder just > found:-( Apologies for my part in this. It doesn't help that this patch went through several revisions. Is there a best practice for when to remove signed-off-by or change authorship documented anywhere? -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 07/24/2014 09:10 AM, Nick Dyer wrote: > On 23/07/14 22:36, Stephen Warren wrote: >> Hmm. It looks like the version of this patch that was actually applied >> varies quite a bit from what was posted, in particular in the >> implementation and call site of mxt_parse_dt(). It'd be nice if the >> commit log had been adjusted to mention this, so it didn't look like *I* >> caused all those compile errors and warnings that the 0-day builder just >> found:-( > > Apologies for my part in this. It doesn't help that this patch went through > several revisions. Is there a best practice for when to remove > signed-off-by or change authorship documented anywhere? My comment was more directed at the diff between what you posted and what was applied. I believe the usual practice is: * If completely re-writing a patch using another as inspiration, change the author and credit them in free-form text, or perhaps with a Based-on-work-by: tag. * If generally keeping the patch, but just changing a few things, make a note of it in between the s-o-b lines, e.g.: Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> [assign directly to pdata->t19_keymap to avoid a temporary, description of other changes ...] Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/Documentation/devicetree/bindings/input/atmel,maxtouch.txt b/Documentation/devicetree/bindings/input/atmel,maxtouch.txt new file mode 100644 index 0000000..60d6339 --- /dev/null +++ b/Documentation/devicetree/bindings/input/atmel,maxtouch.txt @@ -0,0 +1,25 @@ +Atmel maXTouch touchscreen/touchpad + +Required properties: +- compatible: + atmel,maxtouch + +- reg: The I2C address of the device + +- interrupts: The sink for the touchpad's IRQ output + See ../interrupt-controller/interrupts.txt + +Optional properties for main touchpad device: + +- linux,gpio-keymap: An array of up to 4 entries indicating the Linux + keycode generated by each GPIO. Linux keycodes are defined in + <dt-bindings/input/input.h>. + +Example: + + touch@4b { + compatible = "atmel,maxtouch"; + reg = <0x4b>; + interrupt-parent = <&gpio>; + interrupts = <TEGRA_GPIO(W, 3) GPIO_ACTIVE_HIGH>; + }; diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c index 31113c3..5a095f6 100644 --- a/drivers/input/touchscreen/atmel_mxt_ts.c +++ b/drivers/input/touchscreen/atmel_mxt_ts.c @@ -22,6 +22,7 @@ #include <linux/i2c/atmel_mxt_ts.h> #include <linux/input/mt.h> #include <linux/interrupt.h> +#include <linux/of.h> #include <linux/slab.h> /* Version */ @@ -1527,6 +1528,42 @@ static void mxt_input_close(struct input_dev *dev) mxt_stop(data); } +#ifdef CONFIG_OF +static struct mxt_platform_data *mxt_parse_dt(struct i2c_client *client) +{ + struct mxt_platform_data *pdata; + struct property *prop; + unsigned int *keymap; + int proplen, i, ret; + u32 keycode; + + pdata = devm_kzalloc(&client->dev, sizeof(*pdata), GFP_KERNEL); + if (!pdata) + return NULL; + + prop = of_find_property(client->dev.of_node, "linux,gpio-keymap", + &proplen); + if (prop) { + pdata->t19_num_keys = proplen / sizeof(u32); + + keymap = devm_kzalloc(&client->dev, + pdata->t19_num_keys * sizeof(u32), GFP_KERNEL); + if (!keymap) + return NULL; + pdata->t19_keymap = keymap; + for (i = 0; i < pdata->t19_num_keys; i++) { + ret = of_property_read_u32_index(client->dev.of_node, + "linux,gpio-keymap", i, &keycode); + if (ret) + keycode = 0; + keymap[i] = keycode; + } + } + + return pdata; +} +#endif + static int mxt_probe(struct i2c_client *client, const struct i2c_device_id *id) { @@ -1534,6 +1571,10 @@ static int mxt_probe(struct i2c_client *client, const struct mxt_platform_data *pdata = dev_get_platdata(&client->dev); int error; +#ifdef CONFIG_OF + if (!pdata && client->dev.of_node) + pdata = mxt_parse_dt(client); +#endif if (!pdata) return -EINVAL; @@ -1638,6 +1679,12 @@ static int mxt_resume(struct device *dev) static SIMPLE_DEV_PM_OPS(mxt_pm_ops, mxt_suspend, mxt_resume); +static const struct of_device_id mxt_of_match[] = { + { .compatible = "atmel,maxtouch", }, + {}, +}; +MODULE_DEVICE_TABLE(of, mxt_of_match); + static const struct i2c_device_id mxt_id[] = { { "qt602240_ts", 0 }, { "atmel_mxt_ts", 0 }, @@ -1651,6 +1698,7 @@ static struct i2c_driver mxt_driver = { .driver = { .name = "atmel_mxt_ts", .owner = THIS_MODULE, + .of_match_table = of_match_ptr(mxt_of_match), .pm = &mxt_pm_ops, }, .probe = mxt_probe,