ASoC: nau8821: Add slew rate controls.
authorSeven Lee <wtli@nuvoton.com>
Tue, 7 Nov 2023 03:52:30 +0000 (11:52 +0800)
committerMark Brown <broonie@kernel.org>
Mon, 13 Nov 2023 00:44:24 +0000 (00:44 +0000)
The patch supports DMIC clock slew rate controls.

Signed-off-by: Seven Lee <wtli@nuvoton.com>
Link: https://lore.kernel.org/r/20231107035230.1241683-3-wtli@nuvoton.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/nau8821.c
sound/soc/codecs/nau8821.h

index 6e1b6b26298aecdb51be453e9e77dbc487ca1d8c..012e347e63913f27b0c05bd7da749b7657b4b8a5 100644 (file)
@@ -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);
index 00a888ed07ceb93fc2ff10e800789340060c886e..62eaad130b2ec54e7923b0218a838eb792583551 100644 (file)
 #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;
 };