1754d1ce3SSeven Lee# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2754d1ce3SSeven Lee%YAML 1.2
3754d1ce3SSeven Lee---
4754d1ce3SSeven Lee$id: http://devicetree.org/schemas/sound/nuvoton,nau8821.yaml#
5754d1ce3SSeven Lee$schema: http://devicetree.org/meta-schemas/core.yaml#
6754d1ce3SSeven Lee
7754d1ce3SSeven Leetitle: NAU88L21 audio codec
8754d1ce3SSeven Lee
9754d1ce3SSeven Leemaintainers:
10754d1ce3SSeven Lee  - Seven Lee <wtli@nuvoton.com>
11754d1ce3SSeven Lee
12754d1ce3SSeven LeeallOf:
13754d1ce3SSeven Lee  - $ref: dai-common.yaml#
14754d1ce3SSeven Lee
15754d1ce3SSeven Leeproperties:
16754d1ce3SSeven Lee  compatible:
17754d1ce3SSeven Lee    const: nuvoton,nau8821
18754d1ce3SSeven Lee
19754d1ce3SSeven Lee  reg:
20754d1ce3SSeven Lee    maxItems: 1
21754d1ce3SSeven Lee
22754d1ce3SSeven Lee  interrupts:
23754d1ce3SSeven Lee    maxItems: 1
24754d1ce3SSeven Lee
25754d1ce3SSeven Lee  nuvoton,jkdet-enable:
26754d1ce3SSeven Lee    description: Enable jack detection via JKDET pin.
27754d1ce3SSeven Lee    type: boolean
28754d1ce3SSeven Lee
29754d1ce3SSeven Lee  nuvoton,jkdet-pull-enable:
30754d1ce3SSeven Lee    description: Enable JKDET pin pull. If set - pin pull enabled,
31754d1ce3SSeven Lee      otherwise pin in high impedance state.
32754d1ce3SSeven Lee    type: boolean
33754d1ce3SSeven Lee
34754d1ce3SSeven Lee  nuvoton,jkdet-pull-up:
35754d1ce3SSeven Lee    description: Pull-up JKDET pin. If set then JKDET pin is pull up,
36754d1ce3SSeven Lee      otherwise pull down.
37754d1ce3SSeven Lee    type: boolean
38754d1ce3SSeven Lee
39754d1ce3SSeven Lee  nuvoton,key-enable:
40754d1ce3SSeven Lee    description: handles key press detection.
41754d1ce3SSeven Lee    type: boolean
42754d1ce3SSeven Lee
43754d1ce3SSeven Lee  nuvoton,jkdet-polarity:
44754d1ce3SSeven Lee    description: JKDET pin polarity.
45754d1ce3SSeven Lee    $ref: /schemas/types.yaml#/definitions/uint32
46754d1ce3SSeven Lee    enum:
47754d1ce3SSeven Lee      - 0 # active high
48754d1ce3SSeven Lee      - 1 # active low
49754d1ce3SSeven Lee    default: 1
50754d1ce3SSeven Lee
51754d1ce3SSeven Lee  nuvoton,micbias-voltage:
52754d1ce3SSeven Lee    description: MICBIAS output level select.
53754d1ce3SSeven Lee    $ref: /schemas/types.yaml#/definitions/uint32
54754d1ce3SSeven Lee    enum:
55754d1ce3SSeven Lee      - 0 # VDDA
56754d1ce3SSeven Lee      - 1 # VDDA * 1
57754d1ce3SSeven Lee      - 2 # VDDA * 1.1
58754d1ce3SSeven Lee      - 3 # VDDA * 1.2
59754d1ce3SSeven Lee      - 4 # VDDA * 1.3
60754d1ce3SSeven Lee      - 5 # VDDA * 1.4
61754d1ce3SSeven Lee      - 6 # VDDA * 1.53
62754d1ce3SSeven Lee      - 7 # VDDA * 1.53
63754d1ce3SSeven Lee    default: 6
64754d1ce3SSeven Lee
65754d1ce3SSeven Lee  nuvoton,vref-impedance:
66754d1ce3SSeven Lee    description: VMID Tie-off impedance select.
67754d1ce3SSeven Lee    $ref: /schemas/types.yaml#/definitions/uint32
68754d1ce3SSeven Lee    enum:
69754d1ce3SSeven Lee      - 0 # open
70754d1ce3SSeven Lee      - 1 # 25KOhms
71754d1ce3SSeven Lee      - 2 # 125KOhms
72754d1ce3SSeven Lee      - 3 # 2.5KOhms
73754d1ce3SSeven Lee    default: 2
74754d1ce3SSeven Lee
75754d1ce3SSeven Lee  nuvoton,jack-insert-debounce:
76754d1ce3SSeven Lee    description: number from 0 to 7 that sets debounce time to 2^(n+2)ms.
77754d1ce3SSeven Lee    $ref: /schemas/types.yaml#/definitions/uint32
78754d1ce3SSeven Lee    maximum: 7
79754d1ce3SSeven Lee    default: 7
80754d1ce3SSeven Lee
81754d1ce3SSeven Lee  nuvoton,jack-eject-debounce:
82754d1ce3SSeven Lee    description: number from 0 to 7 that sets debounce time to 2^(n+2)ms.
83754d1ce3SSeven Lee    $ref: /schemas/types.yaml#/definitions/uint32
84754d1ce3SSeven Lee    maximum: 7
85754d1ce3SSeven Lee    default: 0
86754d1ce3SSeven Lee
87754d1ce3SSeven Lee  nuvoton,dmic-clk-threshold:
88754d1ce3SSeven Lee    description: DMIC clock speed expected value. Unit is Hz.
89754d1ce3SSeven Lee    $ref: /schemas/types.yaml#/definitions/uint32
90754d1ce3SSeven Lee    default: 3072000
91754d1ce3SSeven Lee
92*91e28d0bSSeven Lee  nuvoton,left-input-single-end:
93*91e28d0bSSeven Lee    description: Enable left input with single-ended settings if set.
94*91e28d0bSSeven Lee        For the headset mic application, the single-ended control is
95*91e28d0bSSeven Lee        just limited to the left adc for design demand.
96*91e28d0bSSeven Lee    type: boolean
97*91e28d0bSSeven Lee
98754d1ce3SSeven Lee  '#sound-dai-cells':
99754d1ce3SSeven Lee    const: 0
100754d1ce3SSeven Lee
101754d1ce3SSeven Leerequired:
102754d1ce3SSeven Lee  - compatible
103754d1ce3SSeven Lee  - reg
104754d1ce3SSeven Lee
105754d1ce3SSeven LeeunevaluatedProperties: false
106754d1ce3SSeven Lee
107754d1ce3SSeven Leeexamples:
108754d1ce3SSeven Lee  - |
109754d1ce3SSeven Lee    #include <dt-bindings/gpio/gpio.h>
110754d1ce3SSeven Lee    #include <dt-bindings/interrupt-controller/irq.h>
111754d1ce3SSeven Lee    i2c {
112754d1ce3SSeven Lee        #address-cells = <1>;
113754d1ce3SSeven Lee        #size-cells = <0>;
114754d1ce3SSeven Lee        codec@1b {
115754d1ce3SSeven Lee            compatible = "nuvoton,nau8821";
116754d1ce3SSeven Lee            reg = <0x1b>;
117754d1ce3SSeven Lee            interrupt-parent = <&gpio>;
118754d1ce3SSeven Lee            interrupts = <23 IRQ_TYPE_LEVEL_LOW>;
119754d1ce3SSeven Lee            nuvoton,jkdet-enable;
120754d1ce3SSeven Lee            nuvoton,jkdet-pull-enable;
121754d1ce3SSeven Lee            nuvoton,jkdet-pull-up;
122754d1ce3SSeven Lee            nuvoton,key-enable;
123*91e28d0bSSeven Lee            nuvoton,left-input-single-end;
124754d1ce3SSeven Lee            nuvoton,jkdet-polarity = <GPIO_ACTIVE_LOW>;
125754d1ce3SSeven Lee            nuvoton,micbias-voltage = <6>;
126754d1ce3SSeven Lee            nuvoton,vref-impedance = <2>;
127754d1ce3SSeven Lee            nuvoton,jack-insert-debounce = <7>;
128754d1ce3SSeven Lee            nuvoton,jack-eject-debounce = <0>;
129754d1ce3SSeven Lee            nuvoton,dmic-clk-threshold = <3072000>;
130754d1ce3SSeven Lee            #sound-dai-cells = <0>;
131754d1ce3SSeven Lee        };
132754d1ce3SSeven Lee    };
133