|
|
@ -81,7 +81,8 @@ static void rotary_gpio_custom_cleanup(void) |
|
|
|
platform_device_put(devices[i]); |
|
|
|
platform_device_put(devices[i]); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static int __init rotary_gpio_custom_add_one(unsigned int id, unsigned int *params) |
|
|
|
static int __init rotary_gpio_custom_add_one(unsigned int id, |
|
|
|
|
|
|
|
unsigned int *params) |
|
|
|
{ |
|
|
|
{ |
|
|
|
struct platform_device *pdev; |
|
|
|
struct platform_device *pdev; |
|
|
|
struct rotary_encoder_platform_data pdata; |
|
|
|
struct rotary_encoder_platform_data pdata; |
|
|
@ -108,7 +109,7 @@ static int __init rotary_gpio_custom_add_one(unsigned int id, unsigned int *para |
|
|
|
pdata.rollover = false; |
|
|
|
pdata.rollover = false; |
|
|
|
pdata.gpio_a = params[3]; |
|
|
|
pdata.gpio_a = params[3]; |
|
|
|
pdata.gpio_b = params[4]; |
|
|
|
pdata.gpio_b = params[4]; |
|
|
|
|
|
|
|
|
|
|
|
if (params[5] == 1) { |
|
|
|
if (params[5] == 1) { |
|
|
|
pdata.inverted_a = 1; |
|
|
|
pdata.inverted_a = 1; |
|
|
|
pdata.inverted_b = 1; |
|
|
|
pdata.inverted_b = 1; |
|
|
@ -141,16 +142,20 @@ static int __init rotary_gpio_custom_probe(void) |
|
|
|
printk(KERN_INFO DRV_DESC " version " DRV_VERSION "\n"); |
|
|
|
printk(KERN_INFO DRV_DESC " version " DRV_VERSION "\n"); |
|
|
|
|
|
|
|
|
|
|
|
err = rotary_gpio_custom_add_one(0, bus0); |
|
|
|
err = rotary_gpio_custom_add_one(0, bus0); |
|
|
|
if (err) goto err; |
|
|
|
if (err) |
|
|
|
|
|
|
|
goto err; |
|
|
|
|
|
|
|
|
|
|
|
err = rotary_gpio_custom_add_one(1, bus1); |
|
|
|
err = rotary_gpio_custom_add_one(1, bus1); |
|
|
|
if (err) goto err; |
|
|
|
if (err) |
|
|
|
|
|
|
|
goto err; |
|
|
|
|
|
|
|
|
|
|
|
err = rotary_gpio_custom_add_one(2, bus2); |
|
|
|
err = rotary_gpio_custom_add_one(2, bus2); |
|
|
|
if (err) goto err; |
|
|
|
if (err) |
|
|
|
|
|
|
|
goto err; |
|
|
|
|
|
|
|
|
|
|
|
err = rotary_gpio_custom_add_one(3, bus3); |
|
|
|
err = rotary_gpio_custom_add_one(3, bus3); |
|
|
|
if (err) goto err; |
|
|
|
if (err) |
|
|
|
|
|
|
|
goto err; |
|
|
|
|
|
|
|
|
|
|
|
if (!nr_devices) { |
|
|
|
if (!nr_devices) { |
|
|
|
printk(KERN_ERR PFX "no bus parameter(s) specified\n"); |
|
|
|
printk(KERN_ERR PFX "no bus parameter(s) specified\n"); |
|
|
|