Add DMIC slew rate controls
Merge series from Seven Lee <wtli@nuvoton.com>: Determine DMIC slew rate via property setup. Change: V3 -> V4: - add "maximum: 7" description. V2 -> V3: - Update description of DMIC slew rate and remove "selection" key words from property name - Corrected variable name of DMIC slew rate from c file V1 -> V2: - Corrected description of DMIC slew rate. Seven Lee (2): ASoC: dt-bindings: nau8821: Add DMIC slew rate. ASoC: nau8821: Add slew rate controls. .../devicetree/bindings/sound/nuvoton,nau8821.yaml | 9 +++++++++ sound/soc/codecs/nau8821.c | 7 +++++++ sound/soc/codecs/nau8821.h | 3 +++ 3 files changed, 19 insertions(+) -- 2.25.1
This commit is contained in:
commit
42186bae06
@ -89,6 +89,14 @@ properties:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
default: 3072000
|
||||
|
||||
nuvoton,dmic-slew-rate:
|
||||
description: The range 0 to 7 represents the speed of DMIC slew rate.
|
||||
The lowest value 0 means the slowest rate and the highest value
|
||||
7 means the fastest rate.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
maximum: 7
|
||||
default: 0
|
||||
|
||||
nuvoton,left-input-single-end:
|
||||
description: Enable left input with single-ended settings if set.
|
||||
For the headset mic application, the single-ended control is
|
||||
@ -127,6 +135,7 @@ examples:
|
||||
nuvoton,jack-insert-debounce = <7>;
|
||||
nuvoton,jack-eject-debounce = <0>;
|
||||
nuvoton,dmic-clk-threshold = <3072000>;
|
||||
nuvoton,dmic-slew-rate= <0>;
|
||||
#sound-dai-cells = <0>;
|
||||
};
|
||||
};
|
||||
|
@ -1738,6 +1738,10 @@ static int nau8821_read_device_properties(struct device *dev,
|
||||
&nau8821->dmic_clk_threshold);
|
||||
if (ret)
|
||||
nau8821->dmic_clk_threshold = 3072000;
|
||||
ret = device_property_read_u32(dev, "nuvoton,dmic-slew-rate",
|
||||
&nau8821->dmic_slew_rate);
|
||||
if (ret)
|
||||
nau8821->dmic_slew_rate = 0;
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -1797,6 +1801,9 @@ static void nau8821_init_regs(struct nau8821 *nau8821)
|
||||
NAU8821_ADC_SYNC_DOWN_MASK, NAU8821_ADC_SYNC_DOWN_64);
|
||||
regmap_update_bits(regmap, NAU8821_R2C_DAC_CTRL1,
|
||||
NAU8821_DAC_OVERSAMPLE_MASK, NAU8821_DAC_OVERSAMPLE_64);
|
||||
regmap_update_bits(regmap, NAU8821_R13_DMIC_CTRL,
|
||||
NAU8821_DMIC_SLEW_MASK, nau8821->dmic_slew_rate <<
|
||||
NAU8821_DMIC_SLEW_SFT);
|
||||
if (nau8821->left_input_single_end) {
|
||||
regmap_update_bits(regmap, NAU8821_R6B_PGA_MUTE,
|
||||
NAU8821_MUTE_MICNL_EN, NAU8821_MUTE_MICNL_EN);
|
||||
|
@ -236,6 +236,8 @@
|
||||
#define NAU8821_DMIC_SRC_MASK (0x3 << NAU8821_DMIC_SRC_SFT)
|
||||
#define NAU8821_CLK_DMIC_SRC (0x2 << NAU8821_DMIC_SRC_SFT)
|
||||
#define NAU8821_DMIC_EN_SFT 0
|
||||
#define NAU8821_DMIC_SLEW_SFT 8
|
||||
#define NAU8821_DMIC_SLEW_MASK (0x7 << NAU8821_DMIC_SLEW_SFT)
|
||||
|
||||
/* GPIO12_CTRL (0x1a) */
|
||||
#define NAU8821_JKDET_PULL_UP (0x1 << 11) /* 0 - pull down, 1 - pull up */
|
||||
@ -573,6 +575,7 @@ struct nau8821 {
|
||||
int jack_eject_debounce;
|
||||
int fs;
|
||||
int dmic_clk_threshold;
|
||||
int dmic_slew_rate;
|
||||
int key_enable;
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user