Message ID | 20230512120146.600128-1-CTLIN0@nuvoton.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | ASoC: dt-bindings: nau8824: Convert to dtschema | expand |
On 12/05/2023 14:01, David Lin wrote: > Convert the NAU8824 audio CODEC bindings to DT schema. > > Signed-off-by: David Lin <CTLIN0@nuvoton.com> > --- Thank you for your patch. There is something to discuss/improve. > + > + nuvoton,sar-threshold-num: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: > + Number of buttons supported. > + minimum: 1 > + maximum: 4 > + default: 4 > + > + nuvoton,sar-threshold: > + $ref: /schemas/types.yaml#/definitions/uint32-array > + description: > + Impedance threshold for each button. Array that contains up to 8 buttons > + configuration. SAR value is calculated as > + SAR = 255 * MICBIAS / SAR_VOLTAGE * R / (2000 + R) where MICBIAS is > + configured by 'nuvoton,micbias-voltage', SAR_VOLTAGE is configured by > + 'nuvoton,sar-voltage', R - button impedance. > + Refer datasheet section 10.2 for more information about threshold > + calculation. > + minItems: 1 > + maxItems: 4 Your description mentions 8 buttons, so maybe it should be 8 here? Or description needs a fix? > + items: > + minimum: 0 > + maximum: 255 > + > + nuvoton,sar-hysteresis: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: > + Button impedance measurement hysteresis. > + default: 0 Best regards, Krzysztof
On 5/14/2023 2:38 AM, Krzysztof Kozlowski wrote: > On 12/05/2023 14:01, David Lin wrote: >> Convert the NAU8824 audio CODEC bindings to DT schema. >> >> Signed-off-by: David Lin <CTLIN0@nuvoton.com> >> --- > Thank you for your patch. There is something to discuss/improve. > >> + >> + nuvoton,sar-threshold-num: >> + $ref: /schemas/types.yaml#/definitions/uint32 >> + description: >> + Number of buttons supported. >> + minimum: 1 >> + maximum: 4 >> + default: 4 >> + >> + nuvoton,sar-threshold: >> + $ref: /schemas/types.yaml#/definitions/uint32-array >> + description: >> + Impedance threshold for each button. Array that contains up to 8 buttons >> + configuration. SAR value is calculated as >> + SAR = 255 * MICBIAS / SAR_VOLTAGE * R / (2000 + R) where MICBIAS is >> + configured by 'nuvoton,micbias-voltage', SAR_VOLTAGE is configured by >> + 'nuvoton,sar-voltage', R - button impedance. >> + Refer datasheet section 10.2 for more information about threshold >> + calculation. >> + minItems: 1 >> + maxItems: 4 > Your description mentions 8 buttons, so maybe it should be 8 here? Or > description needs a fix? Driver just handle maxima 4 buttons for general application, but the the above description is truly hardware capability with 8 buttons support. >> + items: >> + minimum: 0 >> + maximum: 255 >> + >> + nuvoton,sar-hysteresis: >> + $ref: /schemas/types.yaml#/definitions/uint32 >> + description: >> + Button impedance measurement hysteresis. >> + default: 0 > > > Best regards, > Krzysztof >
On 15/05/2023 04:47, AS50 CTLin0 wrote: > On 5/14/2023 2:38 AM, Krzysztof Kozlowski wrote: >> On 12/05/2023 14:01, David Lin wrote: >>> Convert the NAU8824 audio CODEC bindings to DT schema. >>> >>> Signed-off-by: David Lin <CTLIN0@nuvoton.com> >>> --- >> Thank you for your patch. There is something to discuss/improve. >> >>> + >>> + nuvoton,sar-threshold-num: >>> + $ref: /schemas/types.yaml#/definitions/uint32 >>> + description: >>> + Number of buttons supported. >>> + minimum: 1 >>> + maximum: 4 >>> + default: 4 >>> + >>> + nuvoton,sar-threshold: >>> + $ref: /schemas/types.yaml#/definitions/uint32-array >>> + description: >>> + Impedance threshold for each button. Array that contains up to 8 buttons >>> + configuration. SAR value is calculated as >>> + SAR = 255 * MICBIAS / SAR_VOLTAGE * R / (2000 + R) where MICBIAS is >>> + configured by 'nuvoton,micbias-voltage', SAR_VOLTAGE is configured by >>> + 'nuvoton,sar-voltage', R - button impedance. >>> + Refer datasheet section 10.2 for more information about threshold >>> + calculation. >>> + minItems: 1 >>> + maxItems: 4 >> Your description mentions 8 buttons, so maybe it should be 8 here? Or >> description needs a fix? > Driver just handle maxima 4 buttons for general application, but the the > above description is truly hardware capability with 8 buttons support. Then it should be 8. Best regards, Krzysztof
On 5/15/2023 2:20 PM, Krzysztof Kozlowski wrote: > On 15/05/2023 04:47, AS50 CTLin0 wrote: >> On 5/14/2023 2:38 AM, Krzysztof Kozlowski wrote: >>> On 12/05/2023 14:01, David Lin wrote: >>>> Convert the NAU8824 audio CODEC bindings to DT schema. >>>> >>>> Signed-off-by: David Lin <CTLIN0@nuvoton.com> >>>> --- >>> Thank you for your patch. There is something to discuss/improve. >>> >>>> + >>>> + nuvoton,sar-threshold-num: >>>> + $ref: /schemas/types.yaml#/definitions/uint32 >>>> + description: >>>> + Number of buttons supported. >>>> + minimum: 1 >>>> + maximum: 4 >>>> + default: 4 >>>> + >>>> + nuvoton,sar-threshold: >>>> + $ref: /schemas/types.yaml#/definitions/uint32-array >>>> + description: >>>> + Impedance threshold for each button. Array that contains up to 8 buttons >>>> + configuration. SAR value is calculated as >>>> + SAR = 255 * MICBIAS / SAR_VOLTAGE * R / (2000 + R) where MICBIAS is >>>> + configured by 'nuvoton,micbias-voltage', SAR_VOLTAGE is configured by >>>> + 'nuvoton,sar-voltage', R - button impedance. >>>> + Refer datasheet section 10.2 for more information about threshold >>>> + calculation. >>>> + minItems: 1 >>>> + maxItems: 4 >>> Your description mentions 8 buttons, so maybe it should be 8 here? Or >>> description needs a fix? >> Driver just handle maxima 4 buttons for general application, but the the >> above description is truly hardware capability with 8 buttons support. > Then it should be 8. > > Best regards, > Krzysztof Thanks. I will revise it in v2 patch. >
diff --git a/Documentation/devicetree/bindings/sound/nau8824.txt b/Documentation/devicetree/bindings/sound/nau8824.txt deleted file mode 100644 index e0058b97e49a..000000000000 --- a/Documentation/devicetree/bindings/sound/nau8824.txt +++ /dev/null @@ -1,88 +0,0 @@ -Nuvoton NAU8824 audio codec - -This device supports I2C only. - -Required properties: - - compatible : Must be "nuvoton,nau8824" - - - reg : the I2C address of the device. This is either 0x1a (CSB=0) or 0x1b (CSB=1). - -Optional properties: - - nuvoton,jkdet-polarity: JKDET pin polarity. 0 - active high, 1 - active low. - - - nuvoton,vref-impedance: VREF Impedance selection - 0 - Open - 1 - 25 kOhm - 2 - 125 kOhm - 3 - 2.5 kOhm - - - nuvoton,micbias-voltage: Micbias voltage level. - 0 - VDDA - 1 - VDDA - 2 - VDDA * 1.1 - 3 - VDDA * 1.2 - 4 - VDDA * 1.3 - 5 - VDDA * 1.4 - 6 - VDDA * 1.53 - 7 - VDDA * 1.53 - - - nuvoton,sar-threshold-num: Number of buttons supported - - nuvoton,sar-threshold: Impedance threshold for each button. Array that contains up to 8 buttons configuration. SAR value is calculated as - SAR = 255 * MICBIAS / SAR_VOLTAGE * R / (2000 + R) - where MICBIAS is configured by 'nuvoton,micbias-voltage', SAR_VOLTAGE is configured by 'nuvoton,sar-voltage', R - button impedance. - Refer datasheet section 10.2 for more information about threshold calculation. - - - nuvoton,sar-hysteresis: Button impedance measurement hysteresis. - - - nuvoton,sar-voltage: Reference voltage for button impedance measurement. - 0 - VDDA - 1 - VDDA - 2 - VDDA * 1.1 - 3 - VDDA * 1.2 - 4 - VDDA * 1.3 - 5 - VDDA * 1.4 - 6 - VDDA * 1.53 - 7 - VDDA * 1.53 - - - nuvoton,sar-compare-time: SAR compare time - 0 - 500 ns - 1 - 1 us - 2 - 2 us - 3 - 4 us - - - nuvoton,sar-sampling-time: SAR sampling time - 0 - 2 us - 1 - 4 us - 2 - 8 us - 3 - 16 us - - - nuvoton,short-key-debounce: Button short key press debounce time. - 0 - 30 ms - 1 - 50 ms - 2 - 100 ms - - - nuvoton,jack-eject-debounce: Jack ejection debounce time. - 0 - 0 ms - 1 - 1 ms - 2 - 10 ms - - -Example: - - headset: nau8824@1a { - compatible = "nuvoton,nau8824"; - reg = <0x1a>; - interrupt-parent = <&gpio>; - interrupts = <TEGRA_GPIO(E, 6) IRQ_TYPE_LEVEL_LOW>; - nuvoton,vref-impedance = <2>; - nuvoton,micbias-voltage = <6>; - // Setup 4 buttons impedance according to Android specification - nuvoton,sar-threshold-num = <4>; - nuvoton,sar-threshold = <0xc 0x1e 0x38 0x60>; - nuvoton,sar-hysteresis = <0>; - nuvoton,sar-voltage = <6>; - nuvoton,sar-compare-time = <1>; - nuvoton,sar-sampling-time = <1>; - nuvoton,short-key-debounce = <0>; - nuvoton,jack-eject-debounce = <1>; - }; diff --git a/Documentation/devicetree/bindings/sound/nuvoton,nau8824.yaml b/Documentation/devicetree/bindings/sound/nuvoton,nau8824.yaml new file mode 100644 index 000000000000..e03d7e2704b4 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/nuvoton,nau8824.yaml @@ -0,0 +1,182 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/sound/nuvoton,nau8824.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: NAU8824 audio CODEC + +maintainers: + - John Hsu <KCHSU0@nuvoton.com> + +allOf: + - $ref: dai-common.yaml# + +properties: + compatible: + enum: + - nuvoton,nau8824 + + reg: + maxItems: 1 + + '#sound-dai-cells': + const: 0 + + interrupts: + maxItems: 1 + + nuvoton,jkdet-polarity: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + JKDET pin polarity. + enum: + - 0 # active high + - 1 # active low + default: 1 + + nuvoton,vref-impedance: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + VREF Impedance selection. + enum: + - 0 # Open + - 1 # 25 kOhm + - 2 # 125 kOhm + - 3 # 2.5 kOhm + default: 2 + + nuvoton,micbias-voltage: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + Micbias voltage level. + enum: + - 0 # VDDA + - 1 # VDDA + - 2 # VDDA * 1.1 + - 3 # VDDA * 1.2 + - 4 # VDDA * 1.3 + - 5 # VDDA * 1.4 + - 6 # VDDA * 1.53 + - 7 # VDDA * 1.53 + default: 6 + + nuvoton,sar-threshold-num: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + Number of buttons supported. + minimum: 1 + maximum: 4 + default: 4 + + nuvoton,sar-threshold: + $ref: /schemas/types.yaml#/definitions/uint32-array + description: + Impedance threshold for each button. Array that contains up to 8 buttons + configuration. SAR value is calculated as + SAR = 255 * MICBIAS / SAR_VOLTAGE * R / (2000 + R) where MICBIAS is + configured by 'nuvoton,micbias-voltage', SAR_VOLTAGE is configured by + 'nuvoton,sar-voltage', R - button impedance. + Refer datasheet section 10.2 for more information about threshold + calculation. + minItems: 1 + maxItems: 4 + items: + minimum: 0 + maximum: 255 + + nuvoton,sar-hysteresis: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + Button impedance measurement hysteresis. + default: 0 + + nuvoton,sar-voltage: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + Reference voltage for button impedance measurement. + enum: + - 0 # VDDA + - 1 # VDDA + - 2 # VDDA * 1.1 + - 3 # VDDA * 1.2 + - 4 # VDDA * 1.3 + - 5 # VDDA * 1.4 + - 6 # VDDA * 1.53 + - 7 # VDDA * 1.53 + default: 6 + + nuvoton,sar-compare-time: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + SAR compare time. + enum: + - 0 # 500ns + - 1 # 1us + - 2 # 2us + - 3 # 4us + default: 1 + + nuvoton,sar-sampling-time: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + SAR sampling time. + enum: + - 0 # 2us + - 1 # 4us + - 2 # 8us + - 3 # 16us + default: 1 + + nuvoton,short-key-debounce: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + Button short key press debounce time. + enum: + - 0 # 30 ms + - 1 # 50 ms + - 2 # 100 ms + default: 0 + + nuvoton,jack-eject-debounce: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + Jack ejection debounce time. + enum: + - 0 # 0 ms + - 1 # 1 ms + - 2 # 10 ms + default: 1 + +required: + - compatible + - reg + +unevaluatedProperties: false + +examples: + - | + #include <dt-bindings/gpio/gpio.h> + #include <dt-bindings/interrupt-controller/irq.h> + i2c { + #address-cells = <1>; + #size-cells = <0>; + codec@1a { + #sound-dai-cells = <0>; + compatible = "nuvoton,nau8824"; + reg = <0x1a>; + interrupt-parent = <&gpio>; + interrupts = <38 IRQ_TYPE_LEVEL_LOW>; + nuvoton,vref-impedance = <2>; + nuvoton,micbias-voltage = <6>; + nuvoton,sar-threshold-num = <4>; + // Setup 4 buttons impedance according to Android specification + nuvoton,sar-threshold = <0xc 0x1e 0x38 0x60>; + nuvoton,sar-hysteresis = <0>; + nuvoton,sar-voltage = <6>; + nuvoton,sar-compare-time = <1>; + nuvoton,sar-sampling-time = <1>; + nuvoton,short-key-debounce = <0>; + nuvoton,jack-eject-debounce = <1>; + }; + };
Convert the NAU8824 audio CODEC bindings to DT schema. Signed-off-by: David Lin <CTLIN0@nuvoton.com> --- .../devicetree/bindings/sound/nau8824.txt | 88 --------- .../bindings/sound/nuvoton,nau8824.yaml | 182 ++++++++++++++++++ 2 files changed, 182 insertions(+), 88 deletions(-) delete mode 100644 Documentation/devicetree/bindings/sound/nau8824.txt create mode 100644 Documentation/devicetree/bindings/sound/nuvoton,nau8824.yaml