[PATCH v3 0/2] Add DMIC slew rate controls
Determine DMIC slew rate via property setup.
Change: 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 | 8 ++++++++ sound/soc/codecs/nau8821.c | 7 +++++++ sound/soc/codecs/nau8821.h | 3 +++ 3 files changed, 18 insertions(+)
Add input with DMIC slew rate controls
Signed-off-by: Seven Lee wtli@nuvoton.com --- .../devicetree/bindings/sound/nuvoton,nau8821.yaml | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/Documentation/devicetree/bindings/sound/nuvoton,nau8821.yaml b/Documentation/devicetree/bindings/sound/nuvoton,nau8821.yaml index 3e54abd4ca74..48c389276a15 100644 --- a/Documentation/devicetree/bindings/sound/nuvoton,nau8821.yaml +++ b/Documentation/devicetree/bindings/sound/nuvoton,nau8821.yaml @@ -89,6 +89,13 @@ 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 + 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 +134,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>; }; };
On Wed, Nov 01, 2023 at 02:35:13PM +0800, Seven Lee wrote:
Add input with DMIC slew rate controls
Signed-off-by: Seven Lee wtli@nuvoton.com
.../devicetree/bindings/sound/nuvoton,nau8821.yaml | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/Documentation/devicetree/bindings/sound/nuvoton,nau8821.yaml b/Documentation/devicetree/bindings/sound/nuvoton,nau8821.yaml index 3e54abd4ca74..48c389276a15 100644 --- a/Documentation/devicetree/bindings/sound/nuvoton,nau8821.yaml +++ b/Documentation/devicetree/bindings/sound/nuvoton,nau8821.yaml @@ -89,6 +89,13 @@ 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
- default: 0
Don't write constraints in prose:
maximum: 7
- 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 +134,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>; };
-- 2.25.1
On 11/6/2023 10:41 PM, Rob Herring wrote:
CAUTION - External Email: Do not click links or open attachments unless you acknowledge the sender and content.
On Wed, Nov 01, 2023 at 02:35:13PM +0800, Seven Lee wrote:
Add input with DMIC slew rate controls
Signed-off-by: Seven Lee wtli@nuvoton.com
.../devicetree/bindings/sound/nuvoton,nau8821.yaml | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/Documentation/devicetree/bindings/sound/nuvoton,nau8821.yaml b/Documentation/devicetree/bindings/sound/nuvoton,nau8821.yaml index 3e54abd4ca74..48c389276a15 100644 --- a/Documentation/devicetree/bindings/sound/nuvoton,nau8821.yaml +++ b/Documentation/devicetree/bindings/sound/nuvoton,nau8821.yaml @@ -89,6 +89,13 @@ 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
- default: 0
Don't write constraints in prose:
maximum: 7
okay, I will add maximum: 7 description. Thanks.
- 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 +134,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>; }; };
-- 2.25.1
________________________________ ________________________________ The privileged confidential information contained in this email is intended for use only by the addressees as indicated by the original sender of this email. If you are not the addressee indicated in this email or are not responsible for delivery of the email to such a person, please kindly reply to the sender indicating this fact and delete all copies of it from your computer and network server immediately. Your cooperation is highly appreciated. It is advised that any unauthorized use of confidential information of Nuvoton is strictly prohibited; and any information in this email irrelevant to the official business of Nuvoton shall be deemed as neither given nor endorsed by Nuvoton.
The patch supports DMIC clock slew rate controls.
Signed-off-by: Seven Lee wtli@nuvoton.com --- sound/soc/codecs/nau8821.c | 7 +++++++ sound/soc/codecs/nau8821.h | 3 +++ 2 files changed, 10 insertions(+)
diff --git a/sound/soc/codecs/nau8821.c b/sound/soc/codecs/nau8821.c index 6e1b6b26298a..012e347e6391 100644 --- a/sound/soc/codecs/nau8821.c +++ b/sound/soc/codecs/nau8821.c @@ -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); diff --git a/sound/soc/codecs/nau8821.h b/sound/soc/codecs/nau8821.h index 00a888ed07ce..62eaad130b2e 100644 --- a/sound/soc/codecs/nau8821.h +++ b/sound/soc/codecs/nau8821.h @@ -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; };
participants (3)
-
AS50 WTLi
-
Rob Herring
-
Seven Lee