mbox series

[v3,0/2] ASoC: nau8325: Modify driver code and dtschema.

Message ID 20240304101523.538989-1-wtli@nuvoton.com
Headers show
Series ASoC: nau8325: Modify driver code and dtschema. | expand

Message

WTLI March 4, 2024, 10:15 a.m. UTC
Modify properties of "nuvoton,dac-vref" in dtschema.
For driver code, changed dev_err() to dev_dbg().

Change:
V1 -> V2:
- Revise the driver description part for the C++ comment.
- In the nau8325_clkdet_put function, modify the max variable to hard code.
- Removed "Clock Detection" switch control.
- modify the "ALC Enable" switch name.
- Revise the dtschema for "nuvoton,dac-vref".

V2 -> V3:
- Properties use standard unit suffixes.
- Modify the enum definition.
- Driver code should be used dev_dbg().

Seven Lee (2):
  ASoC: dt-bindings: Added schema for "nuvoton,nau8325"
  ASoC: nau8325: new driver

 .../bindings/sound/nuvoton,nau8325.yaml       |  74 ++
 sound/soc/codecs/nau8325.c                    | 856 ++++++++++++++++++
 sound/soc/codecs/nau8325.h                    | 391 ++++++++
 3 files changed, 1321 insertions(+)
 create mode 100755 Documentation/devicetree/bindings/sound/nuvoton,nau8325.yaml
 create mode 100755 sound/soc/codecs/nau8325.c
 create mode 100644 sound/soc/codecs/nau8325.h

Comments

WTLI March 11, 2024, 6:43 a.m. UTC | #1
Rob Herring 於 3/4/2024 9:37 PM 寫道:
> CAUTION - External Email: Do not click links or open attachments unless you acknowledge the sender and content.
>
>
> On Mon, Mar 04, 2024 at 06:15:22PM +0800, Seven Lee wrote:
>> Added a DT schema for describing nau8325 audio amplifiers.
> Present tense: Add a ...
>
> Please say more about this device. Features, link to datasheet, etc.

okay. I will.

>
>> Signed-off-by: Seven Lee <wtli@nuvoton.com>
>> ---
>>   .../bindings/sound/nuvoton,nau8325.yaml       | 74 +++++++++++++++++++
>>   1 file changed, 74 insertions(+)
>>   create mode 100755 Documentation/devicetree/bindings/sound/nuvoton,nau8325.yaml
> Schemas aren't executable. checkpatch.pl will tell you this.

okay, I will use the checkpatch.pl.

>
>> diff --git a/Documentation/devicetree/bindings/sound/nuvoton,nau8325.yaml b/Documentation/devicetree/bindings/sound/nuvoton,nau8325.yaml
>> new file mode 100755
>> index 000000000000..297d29462812
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/sound/nuvoton,nau8325.yaml
>> @@ -0,0 +1,74 @@
>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/sound/nuvoton,nau8325.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: NAU8325 audio Amplifier
>> +
>> +maintainers:
>> +  - Seven Lee <WTLI@nuvoton.com>
>> +
>> +allOf:
>> +  - $ref: dai-common.yaml#
>> +
>> +properties:
>> +  compatible:
>> +    const: nuvoton,nau8325
>> +
>> +  reg:
>> +    maxItems: 1
>> +
>> +  nuvoton,vref-impedance:
>> +    description:
>> +      VREF impedance selection.
>> +    enum: ["Open", "25kOhm", "125kOhm", "2.5kOhm"]
> Use standard units (-ohms), not strings. For "open", just omit the
> property.

okay, I will.

>
>> +
>> +
>> +  nuvoton,dac-vref:
>> +    description: DAC Reference Voltage Setting.
>> +    enum: ["External VDDA", "1.5V", "1.6V", "1.7V"]
> Use standard units.

okay, I will use standard units.

>
>> +
>> +
>> +  nuvoton,alc-enable:
>> +    description:
>> +      Enable digital automatic level control (ALC) function.
>> +    type: boolean
>> +
>> +  nuvoton,clock-detection-disable:
>> +    description:
>> +      When clock detection is enabled, it will detect whether MCLK
>> +      and FS are within the range. MCLK range is from 2.048MHz to 24.576MHz.
>> +      FS range is from 8kHz to 96kHz. And also needs to detect the ratio
>> +      MCLK_SRC/LRCK of 256, 400 or 500, and needs to detect the BCLK
>> +      to make sure data is present. There needs to be at least 8 BCLK
>> +      cycles per Frame Sync.
>> +    type: boolean
>> +
>> +  nuvoton,clock-det-data:
>> +    description:
>> +      Request clock detection to require 2048 non-zero samples before enabling
>> +      the audio paths. If set then non-zero samples is required, otherwise it
>> +      doesn't matter.
>> +    type: boolean
>> +
>> +required:
>> +  - compatible
>> +  - reg
>> +
>> +unevaluatedProperties: false
>> +
>> +examples:
>> +  - |
>> +    i2c {
>> +        #address-cells = <1>;
>> +        #size-cells = <0>;
>> +        codec@21 {
>> +            compatible = "nuvoton,nau8325";
>> +            reg = <0x21>;
>> +            nuvoton,vref-impedance = "125kOhm";
>> +            nuvoton,dac-vref = "1.6V";
>> +            nuvoton,alc-enable;
>> +            nuvoton,clock-det-data;
>> +        };
>> +    };
>> --
>> 2.25.1
>>
WTLI March 12, 2024, 5:47 a.m. UTC | #2
Rob Herring 於 3/4/2024 9:37 PM 寫道:
> CAUTION - External Email: Do not click links or open attachments unless you acknowledge the sender and content.
>
>
> On Mon, Mar 04, 2024 at 06:15:22PM +0800, Seven Lee wrote:
>> Added a DT schema for describing nau8325 audio amplifiers.
> Present tense: Add a ...
>
> Please say more about this device. Features, link to datasheet, etc.

Are the following revisions correct?
Add a DT schema for describing nau8325 audio amplifiers. The key
features are as follows:
  - Low SPK_VDD Quiescent Current
  - Gain Setting with 2-wire interface
  - Powerful Stereo Class-D Amplifier
  - Low Output Noise
  - Low Current Shutdown Mode
  - Click-and Pop Suppression

More resources :
https://www.nuvoton.com/products/smart-home-audio/audio-amplifiers/class-d-series/nau8325yg/

>
>> Signed-off-by: Seven Lee <wtli@nuvoton.com>
>> ---
>>   .../bindings/sound/nuvoton,nau8325.yaml       | 74 +++++++++++++++++++
>>   1 file changed, 74 insertions(+)
>>   create mode 100755 Documentation/devicetree/bindings/sound/nuvoton,nau8325.yaml
> Schemas aren't executable. checkpatch.pl will tell you this.

yes, I will.

>
>> diff --git a/Documentation/devicetree/bindings/sound/nuvoton,nau8325.yaml b/Documentation/devicetree/bindings/sound/nuvoton,nau8325.yaml
>> new file mode 100755
>> index 000000000000..297d29462812
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/sound/nuvoton,nau8325.yaml
>> @@ -0,0 +1,74 @@
>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/sound/nuvoton,nau8325.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: NAU8325 audio Amplifier
>> +
>> +maintainers:
>> +  - Seven Lee <WTLI@nuvoton.com>
>> +
>> +allOf:
>> +  - $ref: dai-common.yaml#
>> +
>> +properties:
>> +  compatible:
>> +    const: nuvoton,nau8325
>> +
>> +  reg:
>> +    maxItems: 1
>> +
>> +  nuvoton,vref-impedance:
>> +    description:
>> +      VREF impedance selection.
>> +    enum: ["Open", "25kOhm", "125kOhm", "2.5kOhm"]
> Use standard units (-ohms), not strings. For "open", just omit the
> property.

Is the description of the following modification correct?
nuvoton,vref-impedance:
   $ref: /schemas/types.yaml#/definitions/uint32
   description:
       The vref impedance to be used in KOhms. Voltage Reference impedance
       selection. VREF impedance selection.
   enum:
       - 0 # Disable tie off resistance
       - 1 # 25KOhms
       - 2 # 125KOhms
       - 3 # 2.5kOhms
     default: 2

>
>> +
>> +
>> +  nuvoton,dac-vref:
>> +    description: DAC Reference Voltage Setting.
>> +    enum: ["External VDDA", "1.5V", "1.6V", "1.7V"]
> Use standard units.

Is the description of the following modification correct?
   nuvoton,dac-vref:
     $ref: /schemas/types.yaml#/definitions/uint32
     description:
         The dac vref to be used in voltage. DAC reference voltage setting.
     enum:
         - 0 # VDDA
         - 1 # VDDA*1.5
         - 2 # VDDA*1.6
         - 3 # VDDA*1.7
     default: 2

>
>> +
>> +
>> +  nuvoton,alc-enable:
>> +    description:
>> +      Enable digital automatic level control (ALC) function.
>> +    type: boolean
>> +
>> +  nuvoton,clock-detection-disable:
>> +    description:
>> +      When clock detection is enabled, it will detect whether MCLK
>> +      and FS are within the range. MCLK range is from 2.048MHz to 24.576MHz.
>> +      FS range is from 8kHz to 96kHz. And also needs to detect the ratio
>> +      MCLK_SRC/LRCK of 256, 400 or 500, and needs to detect the BCLK
>> +      to make sure data is present. There needs to be at least 8 BCLK
>> +      cycles per Frame Sync.
>> +    type: boolean
>> +
>> +  nuvoton,clock-det-data:
>> +    description:
>> +      Request clock detection to require 2048 non-zero samples before enabling
>> +      the audio paths. If set then non-zero samples is required, otherwise it
>> +      doesn't matter.
>> +    type: boolean
>> +
>> +required:
>> +  - compatible
>> +  - reg
>> +
>> +unevaluatedProperties: false
>> +
>> +examples:
>> +  - |
>> +    i2c {
>> +        #address-cells = <1>;
>> +        #size-cells = <0>;
>> +        codec@21 {
>> +            compatible = "nuvoton,nau8325";
>> +            reg = <0x21>;
>> +            nuvoton,vref-impedance = "125kOhm";
>> +            nuvoton,dac-vref = "1.6V";
>> +            nuvoton,alc-enable;
>> +            nuvoton,clock-det-data;
>> +        };
>> +    };
>> --
>> 2.25.1
>>