forked from rubenslte/android_kernel_samsung_msm8226
mfd: wcd9xxx: Get micbias cap mode config from device tree
Parse device tree to get micbias external capacitor mode to fill it into platform data. External capacitor mode needs to be passed to codec drvier so that codec driver can configure it. Change-Id: I5a2137d7ede96a324ad43e48b8642bbf8ed2118e Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
This commit is contained in:
@@ -28,6 +28,10 @@ Required properties:
|
||||
- qcom,cdc-micbias2-cfilt-sel = cfilt to use for micbias2 (should be from 1 to 3).
|
||||
- qcom,cdc-micbias3-cfilt-sel = cfilt to use for micbias3 (should be from 1 to 3).
|
||||
- qcom,cdc-micbias4-cfilt-sel = cfilt to use for micbias4 (should be from 1 to 3).
|
||||
- qcom,cdc-micbias1-ext-cap: Boolean. Enable micbias 1 external capacitor mode.
|
||||
- qcom,cdc-micbias2-ext-cap: Boolean. Enable micbias 2 external capacitor mode.
|
||||
- qcom,cdc-micbias3-ext-cap: Boolean. Enable micbias 3 external capacitor mode.
|
||||
- qcom,cdc-micbias4-ext-cap: Boolean. Enable micbias 4 external capacitor mode.
|
||||
|
||||
- qcom,cdc-slim-ifd-dev - namme of the codec slim interface device.
|
||||
- qcom,cdc-slim-ifd-elemental-addr - codec slimbus slave interface device
|
||||
@@ -76,6 +80,10 @@ taiko_codec {
|
||||
qcom,cdc-micbias2-cfilt-sel = <0x1>;
|
||||
qcom,cdc-micbias3-cfilt-sel = <0x2>;
|
||||
qcom,cdc-micbias4-cfilt-sel = <0x2>;
|
||||
qcom,cdc-micbias1-ext-cap;
|
||||
qcom,cdc-micbias2-ext-cap;
|
||||
qcom,cdc-micbias3-ext-cap;
|
||||
qcom,cdc-micbias4-ext-cap;
|
||||
|
||||
qcom,cdc-slim-ifd = "taiko-slim-ifd";
|
||||
qcom,cdc-slim-ifd-elemental-addr = [00 00 A0 00 17 02];
|
||||
|
||||
@@ -988,6 +988,20 @@ static int wcd9xxx_dt_parse_micbias_info(struct device *dev,
|
||||
}
|
||||
micbias->bias4_cfilt_sel = (u8)prop_val;
|
||||
|
||||
/* micbias external cap */
|
||||
micbias->bias1_cap_mode =
|
||||
(of_property_read_bool(dev->of_node, "qcom,cdc-micbias1-ext-cap") ?
|
||||
MICBIAS_EXT_BYP_CAP : MICBIAS_NO_EXT_BYP_CAP);
|
||||
micbias->bias2_cap_mode =
|
||||
(of_property_read_bool(dev->of_node, "qcom,cdc-micbias2-ext-cap") ?
|
||||
MICBIAS_EXT_BYP_CAP : MICBIAS_NO_EXT_BYP_CAP);
|
||||
micbias->bias3_cap_mode =
|
||||
(of_property_read_bool(dev->of_node, "qcom,cdc-micbias3-ext-cap") ?
|
||||
MICBIAS_EXT_BYP_CAP : MICBIAS_NO_EXT_BYP_CAP);
|
||||
micbias->bias4_cap_mode =
|
||||
(of_property_read_bool(dev->of_node, "qcom,cdc-micbias4-ext-cap") ?
|
||||
MICBIAS_EXT_BYP_CAP : MICBIAS_NO_EXT_BYP_CAP);
|
||||
|
||||
dev_dbg(dev, "ldoh_v %u cfilt1_mv %u cfilt2_mv %u cfilt3_mv %u",
|
||||
(u32)micbias->ldoh_v, (u32)micbias->cfilt1_mv,
|
||||
(u32)micbias->cfilt2_mv, (u32)micbias->cfilt3_mv);
|
||||
@@ -998,6 +1012,11 @@ static int wcd9xxx_dt_parse_micbias_info(struct device *dev,
|
||||
dev_dbg(dev, "bias3_cfilt_sel %u bias4_cfilt_sel %u\n",
|
||||
(u32)micbias->bias3_cfilt_sel, (u32)micbias->bias4_cfilt_sel);
|
||||
|
||||
dev_dbg(dev, "bias1_ext_cap %d bias2_ext_cap %d\n",
|
||||
micbias->bias1_cap_mode, micbias->bias2_cap_mode);
|
||||
dev_dbg(dev, "bias3_ext_cap %d bias4_ext_cap %d\n",
|
||||
micbias->bias3_cap_mode, micbias->bias4_cap_mode);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user