Re: [PATCH v2 1/2] Input: Add device_enable handler to DaVinci Keyscan platform data
From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date: 2009-11-19 02:59:43
On Fri, Nov 13, 2009 at 01:43:54PM -0600, miguel.aguilar@ridgerun.com wrote:
quoted hunk ↗ jump to hunk
From: Miguel Aguilar <redacted> Add a function pointer in the platform data of the DaVinci Keyscan driver called device_enabled, in order to perform board specific actions when the device is initialized, like setup the PINMUX configuration. Signed-off-by: Miguel Aguilar <redacted> --- arch/arm/mach-davinci/include/mach/keyscan.h | 1 + drivers/input/keyboard/davinci_keyscan.c | 8 ++++++++ 2 files changed, 9 insertions(+), 0 deletions(-)diff --git a/arch/arm/mach-davinci/include/mach/keyscan.h b/arch/arm/mach-davinci/include/mach/keyscan.h index b4e21a2..7a560e0 100644 --- a/arch/arm/mach-davinci/include/mach/keyscan.h +++ b/arch/arm/mach-davinci/include/mach/keyscan.h@@ -29,6 +29,7 @@ enum davinci_matrix_types { }; struct davinci_ks_platform_data { + int (*device_enable)(struct device *dev); unsigned short *keymap; u32 keymapsize; u8 rep:1;diff --git a/drivers/input/keyboard/davinci_keyscan.c b/drivers/input/keyboard/davinci_keyscan.c index 6e52d85..d410d7a 100644 --- a/drivers/input/keyboard/davinci_keyscan.c +++ b/drivers/input/keyboard/davinci_keyscan.c@@ -174,6 +174,14 @@ static int __init davinci_ks_probe(struct platform_device *pdev) struct davinci_ks_platform_data *pdata = pdev->dev.platform_data; int error, i; + 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. -- Dmitry