[PATCH v3 3/7] extcon: arizona: Add basic microphone detection DT/ACPI bindings

Charles Keepax
2015-06-19T10:48:56Z

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

Signed-off-by: Charles Keepax <ckeepax@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 {