# 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: 8 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: 8 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>; }; };