static int __init mapphone_init_keypad(void) { int status; int is_slider_found = 0; #ifdef CONFIG_ARM_OF int slider_gpio, i; int array_size = 0; /* * For those h/w don't have slider, there will be no slider_data * in devtree. All other h/w should provide slider_data. * There is no default gpio for it */ slider_gpio = get_gpio_by_name("slider_data"); if (slider_gpio > 0) for (i = 0; i < ARRAY_SIZE(mapphone_switch_map); i++) if (SW_LID == mapphone_switch_map[i].code) { mapphone_switch_map[i].gpio = slider_gpio; is_slider_found = 1; break; } if (is_slider_found) { mapphone_switch_info[0] = &mapphone_keypad_matrix_info.info; mapphone_switch_info[1] = &mapphone_switch_input_info.info; array_size = 2; mapphone_switch_data.info = mapphone_switch_info; mapphone_switch_data.info_count = array_size; } if (mapphone_dt_kp_init() != 0) printk(KERN_INFO "Keypad: using non-dt configuration\n"); #ifdef CONFIG_INPUT_KEYRESET if (mapphone_dt_kpreset_init()) printk(KERN_INFO "Keypadreset init failed\n"); #endif #endif platform_device_register(&mapphone_reset_keys_device); if (is_slider_found) platform_device_register(&mapphone_switch_device); status = omap4_keypad_initialization(&omap_kp_data); if (status) pr_err("Keypad initialization failed: %d\n", status); return status; }
static int __init mapphone_init_keypad(void) { #ifdef CONFIG_ARM_OF if (mapphone_dt_kp_init()) printk(KERN_INFO "Keypad: using non-dt configuration\n"); #endif #ifdef CONFIG_INPUT_KEYRESET if (mapphone_dt_kpreset_init()) printk(KERN_INFO "Keypadreset init failed\n"); #endif /* keypad rows */ omap_cfg_reg(N4_34XX_GPIO34); omap_cfg_reg(M4_34XX_GPIO35); omap_cfg_reg(L4_34XX_GPIO36); omap_cfg_reg(K4_34XX_GPIO37); omap_cfg_reg(T3_34XX_GPIO38); omap_cfg_reg(R3_34XX_GPIO39); omap_cfg_reg(N3_34XX_GPIO40); omap_cfg_reg(M3_34XX_GPIO41); /* keypad columns */ omap_cfg_reg(K3_34XX_GPIO43_OUT); omap_cfg_reg(V8_34XX_GPIO53_OUT); omap_cfg_reg(U8_34XX_GPIO54_OUT); omap_cfg_reg(T8_34XX_GPIO55_OUT); omap_cfg_reg(R8_34XX_GPIO56_OUT); omap_cfg_reg(P8_34XX_GPIO57_OUT); omap_cfg_reg(N8_34XX_GPIO58_OUT); omap_cfg_reg(L8_34XX_GPIO63_OUT); /* switches */ omap_cfg_reg(AB2_34XX_GPIO177); /*omap_cfg_reg(AH17_34XX_GPIO100);*/ #ifdef CONFIG_KEYBOARD_ADP5588 adp5588_reset(); platform_device_register(&mapphone_adp5588_leds_dev); #endif platform_device_register(&mapphone_reset_keys_device); return platform_device_register(&mapphone_keypad_device); }