aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/extcon
diff options
context:
space:
mode:
authorCharles Keepax <ckeepax@opensource.wolfsonmicro.com>2013-11-14 11:18:21 -0500
committerChanwoo Choi <cw00.choi@samsung.com>2014-01-06 21:54:28 -0500
commitffae24fed8a83afd5682865e0262731eac369a5b (patch)
treeb70c6c57694ca58050fba81241de7973b4dac469 /drivers/extcon
parentb7d2d5be3c910fddd19cafa0861016712c665168 (diff)
extcon: arizona: Add defines for microphone detection levels
Improve readability by creating a define for each microphone detection level. Acked-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Diffstat (limited to 'drivers/extcon')
-rw-r--r--drivers/extcon/extcon-arizona.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/drivers/extcon/extcon-arizona.c b/drivers/extcon/extcon-arizona.c
index a287cece0593..5775f055bd02 100644
--- a/drivers/extcon/extcon-arizona.c
+++ b/drivers/extcon/extcon-arizona.c
@@ -44,6 +44,15 @@
44#define HPDET_DEBOUNCE 500 44#define HPDET_DEBOUNCE 500
45#define DEFAULT_MICD_TIMEOUT 2000 45#define DEFAULT_MICD_TIMEOUT 2000
46 46
47#define MICD_LVL_1_TO_7 (ARIZONA_MICD_LVL_1 | ARIZONA_MICD_LVL_2 | \
48 ARIZONA_MICD_LVL_3 | ARIZONA_MICD_LVL_4 | \
49 ARIZONA_MICD_LVL_5 | ARIZONA_MICD_LVL_6 | \
50 ARIZONA_MICD_LVL_7)
51
52#define MICD_LVL_0_TO_7 (ARIZONA_MICD_LVL_0 | MICD_LVL_1_TO_7)
53
54#define MICD_LVL_0_TO_8 (MICD_LVL_0_TO_7 | ARIZONA_MICD_LVL_8)
55
47struct arizona_extcon_info { 56struct arizona_extcon_info {
48 struct device *dev; 57 struct device *dev;
49 struct arizona *arizona; 58 struct arizona *arizona;
@@ -765,7 +774,7 @@ static void arizona_micd_detect(struct work_struct *work)
765 774
766 mutex_lock(&info->lock); 775 mutex_lock(&info->lock);
767 776
768 for (i = 0; i < 10 && !(val & 0x7fc); i++) { 777 for (i = 0; i < 10 && !(val & MICD_LVL_0_TO_8); i++) {
769 ret = regmap_read(arizona->regmap, ARIZONA_MIC_DETECT_3, &val); 778 ret = regmap_read(arizona->regmap, ARIZONA_MIC_DETECT_3, &val);
770 if (ret != 0) { 779 if (ret != 0) {
771 dev_err(arizona->dev, 780 dev_err(arizona->dev,
@@ -784,7 +793,7 @@ static void arizona_micd_detect(struct work_struct *work)
784 } 793 }
785 } 794 }
786 795
787 if (i == 10 && !(val & 0x7fc)) { 796 if (i == 10 && !(val & MICD_LVL_0_TO_8)) {
788 dev_err(arizona->dev, "Failed to get valid MICDET value\n"); 797 dev_err(arizona->dev, "Failed to get valid MICDET value\n");
789 mutex_unlock(&info->lock); 798 mutex_unlock(&info->lock);
790 return; 799 return;
@@ -798,7 +807,7 @@ static void arizona_micd_detect(struct work_struct *work)
798 } 807 }
799 808
800 /* If we got a high impedence we should have a headset, report it. */ 809 /* If we got a high impedence we should have a headset, report it. */
801 if (info->detecting && (val & 0x400)) { 810 if (info->detecting && (val & ARIZONA_MICD_LVL_8)) {
802 arizona_identify_headphone(info); 811 arizona_identify_headphone(info);
803 812
804 ret = extcon_update_state(&info->edev, 813 ret = extcon_update_state(&info->edev,
@@ -827,7 +836,7 @@ static void arizona_micd_detect(struct work_struct *work)
827 * plain headphones. If both polarities report a low 836 * plain headphones. If both polarities report a low
828 * impedence then give up and report headphones. 837 * impedence then give up and report headphones.
829 */ 838 */
830 if (info->detecting && (val & 0x3f8)) { 839 if (info->detecting && (val & MICD_LVL_1_TO_7)) {
831 if (info->jack_flips >= info->micd_num_modes * 10) { 840 if (info->jack_flips >= info->micd_num_modes * 10) {
832 dev_dbg(arizona->dev, "Detected HP/line\n"); 841 dev_dbg(arizona->dev, "Detected HP/line\n");
833 arizona_identify_headphone(info); 842 arizona_identify_headphone(info);
@@ -851,7 +860,7 @@ static void arizona_micd_detect(struct work_struct *work)
851 * If we're still detecting and we detect a short then we've 860 * If we're still detecting and we detect a short then we've
852 * got a headphone. Otherwise it's a button press. 861 * got a headphone. Otherwise it's a button press.
853 */ 862 */
854 if (val & 0x3fc) { 863 if (val & MICD_LVL_0_TO_7) {
855 if (info->mic) { 864 if (info->mic) {
856 dev_dbg(arizona->dev, "Mic button detected\n"); 865 dev_dbg(arizona->dev, "Mic button detected\n");
857 866