On Thu, Nov 19, 2009 at 10:32:21AM -0600, Miguel Aguilar wrote: > Hi Dmitry, > >>> + if (pdata->device_enable) { >>> + error = pdata->device_enable(dev); >>> + if (error < 0) { >>> + dev_dbg(dev, "device enable function failed\n"); >>> + return error; >>> + } >>> + } >>> + >> >> Hi Miguel, >> >> Does this need to live in the driver? Why can't platform code do this >> for us? >> >> Thanks. >> > > The reason to invoke the device_enable function in the driver is because > in the testing process of the key scan driver a issue was found when the > key scan is built as a module. > > There is a specific PINMUX configuration that only should be set if the > key scan driver is loaded in the kernel to avoid pin conflicts. So when > the key scan is built as a module the board file (or platform code) > doesn't know if the key scan is loaded or not, so that's why the driver > is the one who must invoke the device_enable function in the probe > function. > I see... What happens if PINMUX is set but there isn't a driver? Also, what happens when you unload the module? Don't you need a similar call to disable PINMUX configuration? -- 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