On Tue, Feb 11, 2014 at 02:10:50PM +0100, Christian Gmeiner wrote: > Hi Dmitry > > 2014-01-31 18:16 GMT+01:00 Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>: > > On Fri, Jan 31, 2014 at 09:15:21AM -0800, Dmitry Torokhov wrote: > >> Hi Chrisitian, > >> > >> On Fri, Jan 31, 2014 at 12:40:19PM +0100, Christian Gmeiner wrote: > >> > >> --- /dev/null > >> > >> +++ b/drivers/input/touchscreen/ar1021_i2c.c > >> > >> @@ -0,0 +1,201 @@ > >> > >> +/* > >> > >> + * Microchip AR1021 driver for I2C > >> > >> + * > >> > >> + * Author: Christian Gmeiner <christian.gmeiner@xxxxxxxxx> > >> > >> + * > >> > >> + * License: GPL as published by the FSF. > >> > >> By the way, you probably do not want GPL v1 to apply... Maybe say GPL v2 > >> or GPL v2 and later (depending on your preference and the license of the > >> code you used as a base)? > >> > >> > >> + > >> > >> +static int ar1021_i2c_resume(struct device *dev) > >> > >> +{ > >> > >> + struct i2c_client *client = to_i2c_client(dev); > >> > >> + > >> > >> + enable_irq(client->irq); > >> > > > >> > > You do not want to enable IRQ if there are no users (nobody opened > >> > > device). > >> > > > >> > > >> > Okay.. but then I also do not need the disable_irq(..) call in > >> > ar1021_i2c_suspend > >> > and can totally remove the PM stuff - or? > >> > >> No, I think you still need the PM methods, you just need to check if > >> device is opened (take dev->mutex, check dev->users) and decide if you > >> need to enable/disable IRQ or not. > > > > Hmm, on the other hand enable/disable does the counting for you so maybe > > you should leave it all as it was. > > ok > > At the moment I am doing the final tests of the driver and it fails to > load via device tree :( > I changed the compatible string from "mc,ar1021-i2c" to "microchip,ar1021-i2c". > > and this is how my dts looks like on an imx6d board: > > &i2c2 { > status = "okay"; > clock-frequency = <100000>; > pinctrl-names = "default"; > pinctrl-0 = <&pinctrl_i2c2_1>; > > ar1021@4d { > compatible = "microchip,ar1021-i2c"; > reg = <0x4d>; > interrupt-parent = <&gpio3>; > interrupts = <26 0x2>; > }; > }; > > > Any hints? Not really. Does the driver bind to the device if you define I2C device in the board code? Are there any errors reported by the kernel? Thanks. -- Dmitry -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html