1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/sound/nuvoton,nau8825.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: NAU8825 audio CODEC 8 9maintainers: 10 - John Hsu <KCHSU0@nuvoton.com> 11 12allOf: 13 - $ref: dai-common.yaml# 14 15properties: 16 compatible: 17 enum: 18 - nuvoton,nau8825 19 20 reg: 21 maxItems: 1 22 23 interrupts: 24 maxItems: 1 25 26 nuvoton,jkdet-enable: 27 description: 28 Enable jack detection via JKDET pin. 29 type: boolean 30 31 nuvoton,jkdet-pull-enable: 32 description: 33 Enable JKDET pin pull. 34 If set - pin pull enabled, otherwise pin in high impedance state. 35 type: boolean 36 37 nuvoton,jkdet-pull-up: 38 description: 39 Pull-up JKDET pin. 40 If set then JKDET pin is pull up, otherwise pull down. 41 type: boolean 42 43 nuvoton,jkdet-polarity: 44 $ref: /schemas/types.yaml#/definitions/uint32 45 description: 46 JKDET pin polarity. 47 enum: 48 - 0 # active high 49 - 1 # active low 50 default: 1 51 52 nuvoton,vref-impedance: 53 $ref: /schemas/types.yaml#/definitions/uint32 54 description: 55 VREF Impedance selection. 56 enum: 57 - 0 # Open 58 - 1 # 25 kOhm 59 - 2 # 125 kOhm 60 - 3 # 2.5 kOhm 61 default: 2 62 63 nuvoton,micbias-voltage: 64 $ref: /schemas/types.yaml#/definitions/uint32 65 description: 66 Micbias voltage level. 67 enum: 68 - 0 # VDDA 69 - 1 # VDDA 70 - 2 # VDDA * 1.1 71 - 3 # VDDA * 1.2 72 - 4 # VDDA * 1.3 73 - 5 # VDDA * 1.4 74 - 6 # VDDA * 1.53 75 - 7 # VDDA * 1.53 76 default: 6 77 78 nuvoton,sar-threshold-num: 79 $ref: /schemas/types.yaml#/definitions/uint32 80 description: 81 Number of buttons supported. 82 minimum: 1 83 maximum: 4 84 default: 4 85 86 nuvoton,sar-threshold: 87 $ref: /schemas/types.yaml#/definitions/uint32-array 88 description: 89 Impedance threshold for each button. Array that contains up to 8 buttons 90 configuration. SAR value is calculated as 91 SAR = 255 * MICBIAS / SAR_VOLTAGE * R / (2000 + R) where MICBIAS is 92 configured by 'nuvoton,micbias-voltage', SAR_VOLTAGE is configured by 93 'nuvoton,sar-voltage', R - button impedance. 94 Refer datasheet section 10.2 for more information about threshold 95 calculation. 96 minItems: 1 97 maxItems: 4 98 items: 99 minimum: 0 100 maximum: 255 101 102 nuvoton,sar-hysteresis: 103 $ref: /schemas/types.yaml#/definitions/uint32 104 description: 105 Button impedance measurement hysteresis. 106 default: 0 107 108 nuvoton,sar-voltage: 109 $ref: /schemas/types.yaml#/definitions/uint32 110 description: 111 Reference voltage for button impedance measurement. 112 enum: 113 - 0 # VDDA 114 - 1 # VDDA 115 - 2 # VDDA * 1.1 116 - 3 # VDDA * 1.2 117 - 4 # VDDA * 1.3 118 - 5 # VDDA * 1.4 119 - 6 # VDDA * 1.53 120 - 7 # VDDA * 1.53 121 default: 6 122 123 nuvoton,sar-compare-time: 124 $ref: /schemas/types.yaml#/definitions/uint32 125 description: 126 SAR compare time. 127 enum: 128 - 0 # 500 ns 129 - 1 # 1 us 130 - 2 # 2 us 131 - 3 # 4 us 132 default: 1 133 134 nuvoton,sar-sampling-time: 135 $ref: /schemas/types.yaml#/definitions/uint32 136 description: 137 SAR sampling time. 138 enum: 139 - 0 # 2 us 140 - 1 # 4 us 141 - 2 # 8 us 142 - 3 # 16 us 143 default: 1 144 145 nuvoton,short-key-debounce: 146 $ref: /schemas/types.yaml#/definitions/uint32 147 description: 148 Button short key press debounce time. 149 enum: 150 - 0 # 30 ms 151 - 1 # 50 ms 152 - 2 # 100 ms 153 - 3 # 30 ms 154 default: 3 155 156 nuvoton,jack-insert-debounce: 157 $ref: /schemas/types.yaml#/definitions/uint32 158 description: 159 number from 0 to 7 that sets debounce time to 2^(n+2) ms. 160 maximum: 7 161 default: 7 162 163 nuvoton,jack-eject-debounce: 164 $ref: /schemas/types.yaml#/definitions/uint32 165 description: 166 number from 0 to 7 that sets debounce time to 2^(n+2) ms 167 maximum: 7 168 default: 0 169 170 nuvoton,crosstalk-enable: 171 description: 172 make crosstalk function enable if set. 173 type: boolean 174 175 nuvoton,adcout-drive-strong: 176 description: 177 make the drive strength of ADCOUT IO PIN strong if set. 178 Otherwise, the drive keeps normal strength. 179 type: boolean 180 181 nuvoton,adc-delay-ms: 182 description: 183 Delay (in ms) to make input path stable and avoid pop noise. 184 The default value is 125 and range between 125 to 500 ms. 185 minimum: 125 186 maximum: 500 187 default: 125 188 189 clocks: 190 maxItems: 1 191 192 clock-names: 193 items: 194 - const: mclk 195 196 '#sound-dai-cells': 197 const: 0 198 199required: 200 - compatible 201 - reg 202 203unevaluatedProperties: false 204 205examples: 206 - | 207 #include <dt-bindings/gpio/gpio.h> 208 #include <dt-bindings/interrupt-controller/irq.h> 209 i2c { 210 #address-cells = <1>; 211 #size-cells = <0>; 212 codec@1a { 213 #sound-dai-cells = <0>; 214 compatible = "nuvoton,nau8825"; 215 reg = <0x1a>; 216 interrupt-parent = <&gpio>; 217 interrupts = <38 IRQ_TYPE_LEVEL_LOW>; 218 nuvoton,jkdet-enable; 219 nuvoton,jkdet-pull-enable; 220 nuvoton,jkdet-pull-up; 221 nuvoton,jkdet-polarity = <GPIO_ACTIVE_LOW>; 222 nuvoton,vref-impedance = <2>; 223 nuvoton,micbias-voltage = <6>; 224 // Setup 4 buttons impedance according to Android specification 225 nuvoton,sar-threshold-num = <4>; 226 nuvoton,sar-threshold = <0xc 0x1e 0x38 0x60>; 227 nuvoton,sar-hysteresis = <1>; 228 nuvoton,sar-voltage = <0>; 229 nuvoton,sar-compare-time = <0>; 230 nuvoton,sar-sampling-time = <0>; 231 nuvoton,short-key-debounce = <2>; 232 nuvoton,jack-insert-debounce = <7>; 233 nuvoton,jack-eject-debounce = <7>; 234 nuvoton,crosstalk-enable; 235 236 clock-names = "mclk"; 237 clocks = <&tegra_pmc 1>; 238 }; 239 }; 240