1Nuvoton NAU8825 audio codec 2 3This device supports I2C only. 4 5Required properties: 6 - compatible : Must be "nuvoton,nau8825" 7 8 - reg : the I2C address of the device. This is either 0x1a (CSB=0) or 0x1b (CSB=1). 9 10Optional properties: 11 - nuvoton,jkdet-enable: Enable jack detection via JKDET pin. 12 - nuvoton,jkdet-pull-enable: Enable JKDET pin pull. If set - pin pull enabled, 13 otherwise pin in high impedance state. 14 - nuvoton,jkdet-pull-up: Pull-up JKDET pin. If set then JKDET pin is pull up, otherwise pull down. 15 - nuvoton,jkdet-polarity: JKDET pin polarity. 0 - active high, 1 - active low. 16 17 - nuvoton,vref-impedance: VREF Impedance selection 18 0 - Open 19 1 - 25 kOhm 20 2 - 125 kOhm 21 3 - 2.5 kOhm 22 23 - nuvoton,micbias-voltage: Micbias voltage level. 24 0 - VDDA 25 1 - VDDA 26 2 - VDDA * 1.1 27 3 - VDDA * 1.2 28 4 - VDDA * 1.3 29 5 - VDDA * 1.4 30 6 - VDDA * 1.53 31 7 - VDDA * 1.53 32 33 - nuvoton,sar-threshold-num: Number of buttons supported 34 - nuvoton,sar-threshold: Impedance threshold for each button. Array that contains up to 8 buttons configuration. SAR value is calculated as 35 SAR = 255 * MICBIAS / SAR_VOLTAGE * R / (2000 + R) 36 where MICBIAS is configured by 'nuvoton,micbias-voltage', SAR_VOLTAGE is configured by 'nuvoton,sar-voltage', R - button impedance. 37 Refer datasheet section 10.2 for more information about threshold calculation. 38 39 - nuvoton,sar-hysteresis: Button impedance measurement hysteresis. 40 41 - nuvoton,sar-voltage: Reference voltage for button impedance measurement. 42 0 - VDDA 43 1 - VDDA 44 2 - VDDA * 1.1 45 3 - VDDA * 1.2 46 4 - VDDA * 1.3 47 5 - VDDA * 1.4 48 6 - VDDA * 1.53 49 7 - VDDA * 1.53 50 51 - nuvoton,sar-compare-time: SAR compare time 52 0 - 500 ns 53 1 - 1 us 54 2 - 2 us 55 3 - 4 us 56 57 - nuvoton,sar-sampling-time: SAR sampling time 58 0 - 2 us 59 1 - 4 us 60 2 - 8 us 61 3 - 16 us 62 63 - nuvoton,short-key-debounce: Button short key press debounce time. 64 0 - 30 ms 65 1 - 50 ms 66 2 - 100 ms 67 3 - 30 ms 68 69 - nuvoton,jack-insert-debounce: number from 0 to 7 that sets debounce time to 2^(n+2) ms 70 - nuvoton,jack-eject-debounce: number from 0 to 7 that sets debounce time to 2^(n+2) ms 71 72 - nuvoton,crosstalk-enable: make crosstalk function enable if set. 73 74 - clocks: list of phandle and clock specifier pairs according to common clock bindings for the 75 clocks described in clock-names 76 - clock-names: should include "mclk" for the MCLK master clock 77 78Example: 79 80 headset: nau8825@1a { 81 compatible = "nuvoton,nau8825"; 82 reg = <0x1a>; 83 interrupt-parent = <&gpio>; 84 interrupts = <TEGRA_GPIO(E, 6) IRQ_TYPE_LEVEL_LOW>; 85 nuvoton,jkdet-enable; 86 nuvoton,jkdet-pull-enable; 87 nuvoton,jkdet-pull-up; 88 nuvoton,jkdet-polarity = <GPIO_ACTIVE_LOW>; 89 nuvoton,vref-impedance = <2>; 90 nuvoton,micbias-voltage = <6>; 91 // Setup 4 buttons impedance according to Android specification 92 nuvoton,sar-threshold-num = <4>; 93 nuvoton,sar-threshold = <0xc 0x1e 0x38 0x60>; 94 nuvoton,sar-hysteresis = <1>; 95 nuvoton,sar-voltage = <0>; 96 nuvoton,sar-compare-time = <0>; 97 nuvoton,sar-sampling-time = <0>; 98 nuvoton,short-key-debounce = <2>; 99 nuvoton,jack-insert-debounce = <7>; 100 nuvoton,jack-eject-debounce = <7>; 101 nuvoton,crosstalk-enable; 102 103 clock-names = "mclk"; 104 clocks = <&tegra_car TEGRA210_CLK_CLK_OUT_2>; 105 }; 106