static struct max14688_jack_match max14688_jack_matches[] = { JACK_MATCH("3P", Z(0, 50000), Z(0, 4), false, LOW, LOW, SWITCH_NAME, LGE_HEADSET_NO_MIC, EV_SW, SW_HEADPHONE_INSERT, NONE), JACK_MATCH("4P", Z(120000, 2600000), Z(0, 4), true, HIGH, LOW, SWITCH_NAME, LGE_HEADSET, EV_SW, SW_HEADPHONE_INSERT, SW_MICROPHONE_INSERT), #if MAX14688_ADVANCED_JACK_DET JACK_MATCH("3P/ADV", Z(0, 50000), Z(4, 11), false, LOW, LOW, SWITCH_NAME_ADVANCED, LGE_HEADSET_NO_MIC, EV_SW, SW_ADVANCED_HEADPHONE_INSERT, NONE), JACK_MATCH("4P/ADV", Z(120000, 2600000), Z(4, 11), true, HIGH, LOW, SWITCH_NAME_ADVANCED, LGE_HEADSET, EV_SW, SW_ADVANCED_HEADPHONE_INSERT, SW_MICROPHONE_INSERT), JACK_MATCH("ACC/AUX", Z(0, 50000), Z(11, 64), false, LOW, LOW, SWITCH_NAME_AUX, LGE_HEADSET_NO_MIC, EV_SW, SW_AUX_ACCESSORY_INSERT, NONE), JACK_MATCH("ACC/AUX", Z(120000, 2600000), Z(11, 64), true, HIGH, LOW, SWITCH_NAME_AUX, LGE_HEADSET, EV_SW, SW_AUX_ACCESSORY_INSERT, SW_MICROPHONE_INSERT), #else #endif }; static struct max14688_button_match max14688_button_matches[] = { /* name mic left event event impedence impedence type code */ BUTTON_MATCH("MEDIA", Z(0, 150000), DONTCARE, EV_KEY, KEY_MEDIA), BUTTON_MATCH("VOLUP", Z(150000, 400000), DONTCARE, EV_KEY, KEY_VOLUMEUP), BUTTON_MATCH("VOLDN", Z(400000, 650000), DONTCARE, EV_KEY, KEY_VOLUMEDOWN), }; static int max14688_log_level = 1; static struct wake_lock ear_key_wake_lock; struct max14688 { struct switch_dev sdev; struct mutex lock; struct device *dev; struct kobject *kobj; struct attribute_group *attr_grp; struct input_dev *input_dev; unsigned int gpio_detect;
static struct max14688_jack_match max14688_jack_matches[] = { JACK_MATCH("3P", Z(0, 50000), Z(0, 4), false, LOW, LOW, SWITCH_NAME, LGE_HEADSET_NO_MIC, EV_SW, SW_HEADPHONE_INSERT, NONE), JACK_MATCH("4P", Z(120000, 2600000), Z(0, 4), true, HIGH, LOW, SWITCH_NAME, LGE_HEADSET, EV_SW, SW_HEADPHONE_INSERT, SW_MICROPHONE_INSERT), #if MAX14688_ADVANCED_JACK_DET JACK_MATCH("3P/ADV", Z(0, 50000), Z(4, 11), false, LOW, LOW, SWITCH_NAME_ADVANCED, LGE_HEADSET_NO_MIC, EV_SW, SW_ADVANCED_HEADPHONE_INSERT, NONE), JACK_MATCH("4P/ADV", Z(120000, 2600000), Z(4, 11), true, HIGH, LOW, SWITCH_NAME_ADVANCED, LGE_HEADSET, EV_SW, SW_ADVANCED_HEADPHONE_INSERT, SW_MICROPHONE_INSERT), JACK_MATCH("ACC/AUX", Z(0, 50000), Z(11, 64), false, LOW, LOW, SWITCH_NAME_AUX, LGE_HEADSET_NO_MIC, EV_SW, SW_AUX_ACCESSORY_INSERT, NONE), JACK_MATCH("ACC/AUX", Z(120000, 2600000), Z(11, 64), true, HIGH, LOW, SWITCH_NAME_AUX, LGE_HEADSET, EV_SW, SW_AUX_ACCESSORY_INSERT, SW_MICROPHONE_INSERT), #else #endif }; static struct max14688_button_match max14688_button_matches[] = { /* name mic left event event impedence impedence type code */ BUTTON_MATCH("MEDIA", Z(0, 125000), DONTCARE, EV_KEY, KEY_MEDIA), BUTTON_MATCH("ASSIST", Z(125000, 220000), DONTCARE, EV_KEY, 582), BUTTON_MATCH("VOLUP", Z(220000, 360000), DONTCARE, EV_KEY, KEY_VOLUMEUP), BUTTON_MATCH("VOLDN", Z(360000, 750000), DONTCARE, EV_KEY, KEY_VOLUMEDOWN), }; static int max14688_log_level = 1; static struct wake_lock ear_key_wake_lock; struct max14688 { struct switch_dev sdev; struct mutex lock; struct device *dev; struct kobject *kobj; struct attribute_group *attr_grp; struct input_dev *input_dev;