drivers: mfd: wcd9xxx: Add support to configure dmic clock
DMIC clock on ECPP(Echo Cancellation Ping-Pong) path can be set to lower clock rate to avoid power consumption. Change configures the DMIC clock rate on ECPP path based on device tree settings. CRs-fixed: 1022917 Change-Id: I03e1a7f5ef3cf1b1907c03a3d38965ce3a611bc4 Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org> Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
This commit is contained in:
parent
4966222ae1
commit
c5ee57ee2b
3 changed files with 19 additions and 0 deletions
|
@ -92,6 +92,14 @@ Optional properties:
|
|||
involving DMIC will use the rate defined by
|
||||
cdc-dmic-sample-rate.
|
||||
|
||||
- qcom,cdc-ecpp-dmic-rate: Specifies the sample rate of digital mic in HZ to be
|
||||
used by ECPP (Echo Cancellation Ping Pong) block
|
||||
on the codec. The valid set of values are same
|
||||
as that of cdc-dmic-sample-rate, but this rate will
|
||||
only be used by ECPP and all other audio use cases
|
||||
involving DMIC will use the rate defined by
|
||||
cdc-dmic-sample-rate.
|
||||
|
||||
- qcom,cdc-dmic-clk-drv-strength: Specifies the drive strength for digital microphone
|
||||
clock in the codec. Accepted values are 2,4,8 and 16.
|
||||
The clock drive strentgh is in uA. Codec driver will
|
||||
|
|
|
@ -298,6 +298,7 @@ struct wcd9xxx_pdata *wcd9xxx_populate_dt_data(struct device *dev)
|
|||
struct wcd9xxx_pdata *pdata;
|
||||
u32 dmic_sample_rate = WCD9XXX_DMIC_SAMPLE_RATE_UNDEFINED;
|
||||
u32 mad_dmic_sample_rate = WCD9XXX_DMIC_SAMPLE_RATE_UNDEFINED;
|
||||
u32 ecpp_dmic_sample_rate = WCD9XXX_DMIC_SAMPLE_RATE_UNDEFINED;
|
||||
u32 dmic_clk_drive = WCD9XXX_DMIC_CLK_DRIVE_UNDEFINED;
|
||||
u32 prop_val;
|
||||
|
||||
|
@ -358,6 +359,15 @@ struct wcd9xxx_pdata *wcd9xxx_populate_dt_data(struct device *dev)
|
|||
pdata->mclk_rate,
|
||||
"mad_dmic_rate");
|
||||
|
||||
if (!(wcd9xxx_read_of_property_u32(dev, "qcom,cdc-ecpp-dmic-rate",
|
||||
&prop_val)))
|
||||
ecpp_dmic_sample_rate = prop_val;
|
||||
|
||||
pdata->ecpp_dmic_sample_rate = wcd9xxx_validate_dmic_sample_rate(dev,
|
||||
ecpp_dmic_sample_rate,
|
||||
pdata->mclk_rate,
|
||||
"ecpp_dmic_rate");
|
||||
|
||||
if (!(of_property_read_u32(dev->of_node,
|
||||
"qcom,cdc-dmic-clk-drv-strength",
|
||||
&prop_val)))
|
||||
|
|
|
@ -189,6 +189,7 @@ struct wcd9xxx_pdata {
|
|||
u32 mclk_rate;
|
||||
u32 dmic_sample_rate;
|
||||
u32 mad_dmic_sample_rate;
|
||||
u32 ecpp_dmic_sample_rate;
|
||||
u32 dmic_clk_drv;
|
||||
u16 use_pinctrl;
|
||||
};
|
||||
|
|
Loading…
Add table
Reference in a new issue