162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/sound/nuvoton,nau8825.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: NAU8825 audio CODEC 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - John Hsu <KCHSU0@nuvoton.com> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ciallOf: 1362306a36Sopenharmony_ci - $ref: dai-common.yaml# 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ciproperties: 1662306a36Sopenharmony_ci compatible: 1762306a36Sopenharmony_ci enum: 1862306a36Sopenharmony_ci - nuvoton,nau8825 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci reg: 2162306a36Sopenharmony_ci maxItems: 1 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci interrupts: 2462306a36Sopenharmony_ci maxItems: 1 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci nuvoton,jkdet-enable: 2762306a36Sopenharmony_ci description: 2862306a36Sopenharmony_ci Enable jack detection via JKDET pin. 2962306a36Sopenharmony_ci type: boolean 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci nuvoton,jkdet-pull-enable: 3262306a36Sopenharmony_ci description: 3362306a36Sopenharmony_ci Enable JKDET pin pull. 3462306a36Sopenharmony_ci If set - pin pull enabled, otherwise pin in high impedance state. 3562306a36Sopenharmony_ci type: boolean 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci nuvoton,jkdet-pull-up: 3862306a36Sopenharmony_ci description: 3962306a36Sopenharmony_ci Pull-up JKDET pin. 4062306a36Sopenharmony_ci If set then JKDET pin is pull up, otherwise pull down. 4162306a36Sopenharmony_ci type: boolean 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ci nuvoton,jkdet-polarity: 4462306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 4562306a36Sopenharmony_ci description: 4662306a36Sopenharmony_ci JKDET pin polarity. 4762306a36Sopenharmony_ci enum: 4862306a36Sopenharmony_ci - 0 # active high 4962306a36Sopenharmony_ci - 1 # active low 5062306a36Sopenharmony_ci default: 1 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ci nuvoton,vref-impedance: 5362306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 5462306a36Sopenharmony_ci description: 5562306a36Sopenharmony_ci VREF Impedance selection. 5662306a36Sopenharmony_ci enum: 5762306a36Sopenharmony_ci - 0 # Open 5862306a36Sopenharmony_ci - 1 # 25 kOhm 5962306a36Sopenharmony_ci - 2 # 125 kOhm 6062306a36Sopenharmony_ci - 3 # 2.5 kOhm 6162306a36Sopenharmony_ci default: 2 6262306a36Sopenharmony_ci 6362306a36Sopenharmony_ci nuvoton,micbias-voltage: 6462306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 6562306a36Sopenharmony_ci description: 6662306a36Sopenharmony_ci Micbias voltage level. 6762306a36Sopenharmony_ci enum: 6862306a36Sopenharmony_ci - 0 # VDDA 6962306a36Sopenharmony_ci - 1 # VDDA 7062306a36Sopenharmony_ci - 2 # VDDA * 1.1 7162306a36Sopenharmony_ci - 3 # VDDA * 1.2 7262306a36Sopenharmony_ci - 4 # VDDA * 1.3 7362306a36Sopenharmony_ci - 5 # VDDA * 1.4 7462306a36Sopenharmony_ci - 6 # VDDA * 1.53 7562306a36Sopenharmony_ci - 7 # VDDA * 1.53 7662306a36Sopenharmony_ci default: 6 7762306a36Sopenharmony_ci 7862306a36Sopenharmony_ci nuvoton,sar-threshold-num: 7962306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 8062306a36Sopenharmony_ci description: 8162306a36Sopenharmony_ci Number of buttons supported. 8262306a36Sopenharmony_ci minimum: 1 8362306a36Sopenharmony_ci maximum: 4 8462306a36Sopenharmony_ci default: 4 8562306a36Sopenharmony_ci 8662306a36Sopenharmony_ci nuvoton,sar-threshold: 8762306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32-array 8862306a36Sopenharmony_ci description: 8962306a36Sopenharmony_ci Impedance threshold for each button. Array that contains up to 8 buttons 9062306a36Sopenharmony_ci configuration. SAR value is calculated as 9162306a36Sopenharmony_ci SAR = 255 * MICBIAS / SAR_VOLTAGE * R / (2000 + R) where MICBIAS is 9262306a36Sopenharmony_ci configured by 'nuvoton,micbias-voltage', SAR_VOLTAGE is configured by 9362306a36Sopenharmony_ci 'nuvoton,sar-voltage', R - button impedance. 9462306a36Sopenharmony_ci Refer datasheet section 10.2 for more information about threshold 9562306a36Sopenharmony_ci calculation. 9662306a36Sopenharmony_ci minItems: 1 9762306a36Sopenharmony_ci maxItems: 4 9862306a36Sopenharmony_ci items: 9962306a36Sopenharmony_ci minimum: 0 10062306a36Sopenharmony_ci maximum: 255 10162306a36Sopenharmony_ci 10262306a36Sopenharmony_ci nuvoton,sar-hysteresis: 10362306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 10462306a36Sopenharmony_ci description: 10562306a36Sopenharmony_ci Button impedance measurement hysteresis. 10662306a36Sopenharmony_ci default: 0 10762306a36Sopenharmony_ci 10862306a36Sopenharmony_ci nuvoton,sar-voltage: 10962306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 11062306a36Sopenharmony_ci description: 11162306a36Sopenharmony_ci Reference voltage for button impedance measurement. 11262306a36Sopenharmony_ci enum: 11362306a36Sopenharmony_ci - 0 # VDDA 11462306a36Sopenharmony_ci - 1 # VDDA 11562306a36Sopenharmony_ci - 2 # VDDA * 1.1 11662306a36Sopenharmony_ci - 3 # VDDA * 1.2 11762306a36Sopenharmony_ci - 4 # VDDA * 1.3 11862306a36Sopenharmony_ci - 5 # VDDA * 1.4 11962306a36Sopenharmony_ci - 6 # VDDA * 1.53 12062306a36Sopenharmony_ci - 7 # VDDA * 1.53 12162306a36Sopenharmony_ci default: 6 12262306a36Sopenharmony_ci 12362306a36Sopenharmony_ci nuvoton,sar-compare-time: 12462306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 12562306a36Sopenharmony_ci description: 12662306a36Sopenharmony_ci SAR compare time. 12762306a36Sopenharmony_ci enum: 12862306a36Sopenharmony_ci - 0 # 500 ns 12962306a36Sopenharmony_ci - 1 # 1 us 13062306a36Sopenharmony_ci - 2 # 2 us 13162306a36Sopenharmony_ci - 3 # 4 us 13262306a36Sopenharmony_ci default: 1 13362306a36Sopenharmony_ci 13462306a36Sopenharmony_ci nuvoton,sar-sampling-time: 13562306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 13662306a36Sopenharmony_ci description: 13762306a36Sopenharmony_ci SAR sampling time. 13862306a36Sopenharmony_ci enum: 13962306a36Sopenharmony_ci - 0 # 2 us 14062306a36Sopenharmony_ci - 1 # 4 us 14162306a36Sopenharmony_ci - 2 # 8 us 14262306a36Sopenharmony_ci - 3 # 16 us 14362306a36Sopenharmony_ci default: 1 14462306a36Sopenharmony_ci 14562306a36Sopenharmony_ci nuvoton,short-key-debounce: 14662306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 14762306a36Sopenharmony_ci description: 14862306a36Sopenharmony_ci Button short key press debounce time. 14962306a36Sopenharmony_ci enum: 15062306a36Sopenharmony_ci - 0 # 30 ms 15162306a36Sopenharmony_ci - 1 # 50 ms 15262306a36Sopenharmony_ci - 2 # 100 ms 15362306a36Sopenharmony_ci - 3 # 30 ms 15462306a36Sopenharmony_ci default: 3 15562306a36Sopenharmony_ci 15662306a36Sopenharmony_ci nuvoton,jack-insert-debounce: 15762306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 15862306a36Sopenharmony_ci description: 15962306a36Sopenharmony_ci number from 0 to 7 that sets debounce time to 2^(n+2) ms. 16062306a36Sopenharmony_ci maximum: 7 16162306a36Sopenharmony_ci default: 7 16262306a36Sopenharmony_ci 16362306a36Sopenharmony_ci nuvoton,jack-eject-debounce: 16462306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 16562306a36Sopenharmony_ci description: 16662306a36Sopenharmony_ci number from 0 to 7 that sets debounce time to 2^(n+2) ms 16762306a36Sopenharmony_ci maximum: 7 16862306a36Sopenharmony_ci default: 0 16962306a36Sopenharmony_ci 17062306a36Sopenharmony_ci nuvoton,crosstalk-enable: 17162306a36Sopenharmony_ci description: 17262306a36Sopenharmony_ci make crosstalk function enable if set. 17362306a36Sopenharmony_ci type: boolean 17462306a36Sopenharmony_ci 17562306a36Sopenharmony_ci nuvoton,adcout-drive-strong: 17662306a36Sopenharmony_ci description: 17762306a36Sopenharmony_ci make the drive strength of ADCOUT IO PIN strong if set. 17862306a36Sopenharmony_ci Otherwise, the drive keeps normal strength. 17962306a36Sopenharmony_ci type: boolean 18062306a36Sopenharmony_ci 18162306a36Sopenharmony_ci nuvoton,adc-delay-ms: 18262306a36Sopenharmony_ci description: 18362306a36Sopenharmony_ci Delay (in ms) to make input path stable and avoid pop noise. 18462306a36Sopenharmony_ci The default value is 125 and range between 125 to 500 ms. 18562306a36Sopenharmony_ci minimum: 125 18662306a36Sopenharmony_ci maximum: 500 18762306a36Sopenharmony_ci default: 125 18862306a36Sopenharmony_ci 18962306a36Sopenharmony_ci clocks: 19062306a36Sopenharmony_ci maxItems: 1 19162306a36Sopenharmony_ci 19262306a36Sopenharmony_ci clock-names: 19362306a36Sopenharmony_ci items: 19462306a36Sopenharmony_ci - const: mclk 19562306a36Sopenharmony_ci 19662306a36Sopenharmony_ci '#sound-dai-cells': 19762306a36Sopenharmony_ci const: 0 19862306a36Sopenharmony_ci 19962306a36Sopenharmony_cirequired: 20062306a36Sopenharmony_ci - compatible 20162306a36Sopenharmony_ci - reg 20262306a36Sopenharmony_ci 20362306a36Sopenharmony_ciunevaluatedProperties: false 20462306a36Sopenharmony_ci 20562306a36Sopenharmony_ciexamples: 20662306a36Sopenharmony_ci - | 20762306a36Sopenharmony_ci #include <dt-bindings/gpio/gpio.h> 20862306a36Sopenharmony_ci #include <dt-bindings/interrupt-controller/irq.h> 20962306a36Sopenharmony_ci i2c { 21062306a36Sopenharmony_ci #address-cells = <1>; 21162306a36Sopenharmony_ci #size-cells = <0>; 21262306a36Sopenharmony_ci codec@1a { 21362306a36Sopenharmony_ci #sound-dai-cells = <0>; 21462306a36Sopenharmony_ci compatible = "nuvoton,nau8825"; 21562306a36Sopenharmony_ci reg = <0x1a>; 21662306a36Sopenharmony_ci interrupt-parent = <&gpio>; 21762306a36Sopenharmony_ci interrupts = <38 IRQ_TYPE_LEVEL_LOW>; 21862306a36Sopenharmony_ci nuvoton,jkdet-enable; 21962306a36Sopenharmony_ci nuvoton,jkdet-pull-enable; 22062306a36Sopenharmony_ci nuvoton,jkdet-pull-up; 22162306a36Sopenharmony_ci nuvoton,jkdet-polarity = <GPIO_ACTIVE_LOW>; 22262306a36Sopenharmony_ci nuvoton,vref-impedance = <2>; 22362306a36Sopenharmony_ci nuvoton,micbias-voltage = <6>; 22462306a36Sopenharmony_ci // Setup 4 buttons impedance according to Android specification 22562306a36Sopenharmony_ci nuvoton,sar-threshold-num = <4>; 22662306a36Sopenharmony_ci nuvoton,sar-threshold = <0xc 0x1e 0x38 0x60>; 22762306a36Sopenharmony_ci nuvoton,sar-hysteresis = <1>; 22862306a36Sopenharmony_ci nuvoton,sar-voltage = <0>; 22962306a36Sopenharmony_ci nuvoton,sar-compare-time = <0>; 23062306a36Sopenharmony_ci nuvoton,sar-sampling-time = <0>; 23162306a36Sopenharmony_ci nuvoton,short-key-debounce = <2>; 23262306a36Sopenharmony_ci nuvoton,jack-insert-debounce = <7>; 23362306a36Sopenharmony_ci nuvoton,jack-eject-debounce = <7>; 23462306a36Sopenharmony_ci nuvoton,crosstalk-enable; 23562306a36Sopenharmony_ci 23662306a36Sopenharmony_ci clock-names = "mclk"; 23762306a36Sopenharmony_ci clocks = <&tegra_pmc 1>; 23862306a36Sopenharmony_ci }; 23962306a36Sopenharmony_ci }; 240