This patch adds bindings for the basic microphone detection platform
data.

Signed-off-by: Charles Keepax <ckee...@opensource.wolfsonmicro.com>
---
 drivers/extcon/extcon-arizona.c   |   30 ++++++++++++++++++++++++++++++
 include/linux/mfd/arizona/pdata.h |    3 +++
 2 files changed, 33 insertions(+), 0 deletions(-)

diff --git a/drivers/extcon/extcon-arizona.c b/drivers/extcon/extcon-arizona.c
index d990495..6826d99 100644
--- a/drivers/extcon/extcon-arizona.c
+++ b/drivers/extcon/extcon-arizona.c
@@ -1115,6 +1115,7 @@ static int arizona_extcon_device_get_pdata(struct arizona 
*arizona)
 {
        struct arizona_pdata *pdata = &arizona->pdata;
        unsigned int val = ARIZONA_ACCDET_MODE_HPL;
+       unsigned int num_debounces;
 
        device_property_read_u32(arizona->dev, "wlf,hpdet-channel", &val);
        switch (val) {
@@ -1128,6 +1129,35 @@ static int arizona_extcon_device_get_pdata(struct 
arizona *arizona)
                pdata->hpdet_channel = ARIZONA_ACCDET_MODE_HPL;
        }
 
+       device_property_read_u32(arizona->dev, "wlf,micd-detect-debounce",
+                                &pdata->micd_detect_debounce);
+
+       device_property_read_u32(arizona->dev, "wlf,micd-bias-start-time",
+                                &pdata->micd_bias_start_time);
+
+       device_property_read_u32(arizona->dev, "wlf,micd-rate",
+                                &pdata->micd_rate);
+
+       num_debounces = 0;
+       device_property_read_u32(arizona->dev, "wlf,micd-dbtime",
+                                &num_debounces);
+       switch (num_debounces) {
+       case 2:
+               pdata->micd_dbtime = ARIZONA_MICD_DBTIME_TWO_DEBOUNCES;
+               break;
+       case 4:
+               pdata->micd_dbtime = ARIZONA_MICD_DBTIME_FOUR_DEBOUNCES;
+               break;
+       default:
+               break;
+       }
+
+       device_property_read_u32(arizona->dev, "wlf,micd-timeout",
+                                &pdata->micd_timeout);
+
+       pdata->micd_force_micbias = device_property_read_bool(arizona->dev,
+                                               "wlf,micd-force-micbias");
+
        return 0;
 }
 
diff --git a/include/linux/mfd/arizona/pdata.h 
b/include/linux/mfd/arizona/pdata.h
index aa5c48b..af44081 100644
--- a/include/linux/mfd/arizona/pdata.h
+++ b/include/linux/mfd/arizona/pdata.h
@@ -53,6 +53,9 @@
 
 #define ARIZONA_MAX_PDM_SPK 2
 
+#define ARIZONA_MICD_DBTIME_TWO_DEBOUNCES 0x10000
+#define ARIZONA_MICD_DBTIME_FOUR_DEBOUNCES 0x0001
+
 struct regulator_init_data;
 
 struct arizona_micbias {
-- 
1.7.2.5

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in

Reply via email to