1*754d1ce3SSeven Lee# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*754d1ce3SSeven Lee%YAML 1.2
3*754d1ce3SSeven Lee---
4*754d1ce3SSeven Lee$id: http://devicetree.org/schemas/sound/nuvoton,nau8821.yaml#
5*754d1ce3SSeven Lee$schema: http://devicetree.org/meta-schemas/core.yaml#
6*754d1ce3SSeven Lee
7*754d1ce3SSeven Leetitle: NAU88L21 audio codec
8*754d1ce3SSeven Lee
9*754d1ce3SSeven Leemaintainers:
10*754d1ce3SSeven Lee  - Seven Lee <wtli@nuvoton.com>
11*754d1ce3SSeven Lee
12*754d1ce3SSeven LeeallOf:
13*754d1ce3SSeven Lee  - $ref: dai-common.yaml#
14*754d1ce3SSeven Lee
15*754d1ce3SSeven Leeproperties:
16*754d1ce3SSeven Lee  compatible:
17*754d1ce3SSeven Lee    const: nuvoton,nau8821
18*754d1ce3SSeven Lee
19*754d1ce3SSeven Lee  reg:
20*754d1ce3SSeven Lee    maxItems: 1
21*754d1ce3SSeven Lee
22*754d1ce3SSeven Lee  interrupts:
23*754d1ce3SSeven Lee    maxItems: 1
24*754d1ce3SSeven Lee
25*754d1ce3SSeven Lee  nuvoton,jkdet-enable:
26*754d1ce3SSeven Lee    description: Enable jack detection via JKDET pin.
27*754d1ce3SSeven Lee    type: boolean
28*754d1ce3SSeven Lee
29*754d1ce3SSeven Lee  nuvoton,jkdet-pull-enable:
30*754d1ce3SSeven Lee    description: Enable JKDET pin pull. If set - pin pull enabled,
31*754d1ce3SSeven Lee      otherwise pin in high impedance state.
32*754d1ce3SSeven Lee    type: boolean
33*754d1ce3SSeven Lee
34*754d1ce3SSeven Lee  nuvoton,jkdet-pull-up:
35*754d1ce3SSeven Lee    description: Pull-up JKDET pin. If set then JKDET pin is pull up,
36*754d1ce3SSeven Lee      otherwise pull down.
37*754d1ce3SSeven Lee    type: boolean
38*754d1ce3SSeven Lee
39*754d1ce3SSeven Lee  nuvoton,key-enable:
40*754d1ce3SSeven Lee    description: handles key press detection.
41*754d1ce3SSeven Lee    type: boolean
42*754d1ce3SSeven Lee
43*754d1ce3SSeven Lee  nuvoton,jkdet-polarity:
44*754d1ce3SSeven Lee    description: JKDET pin polarity.
45*754d1ce3SSeven Lee    $ref: /schemas/types.yaml#/definitions/uint32
46*754d1ce3SSeven Lee    enum:
47*754d1ce3SSeven Lee      - 0 # active high
48*754d1ce3SSeven Lee      - 1 # active low
49*754d1ce3SSeven Lee    default: 1
50*754d1ce3SSeven Lee
51*754d1ce3SSeven Lee  nuvoton,micbias-voltage:
52*754d1ce3SSeven Lee    description: MICBIAS output level select.
53*754d1ce3SSeven Lee    $ref: /schemas/types.yaml#/definitions/uint32
54*754d1ce3SSeven Lee    enum:
55*754d1ce3SSeven Lee      - 0 # VDDA
56*754d1ce3SSeven Lee      - 1 # VDDA * 1
57*754d1ce3SSeven Lee      - 2 # VDDA * 1.1
58*754d1ce3SSeven Lee      - 3 # VDDA * 1.2
59*754d1ce3SSeven Lee      - 4 # VDDA * 1.3
60*754d1ce3SSeven Lee      - 5 # VDDA * 1.4
61*754d1ce3SSeven Lee      - 6 # VDDA * 1.53
62*754d1ce3SSeven Lee      - 7 # VDDA * 1.53
63*754d1ce3SSeven Lee    default: 6
64*754d1ce3SSeven Lee
65*754d1ce3SSeven Lee  nuvoton,vref-impedance:
66*754d1ce3SSeven Lee    description: VMID Tie-off impedance select.
67*754d1ce3SSeven Lee    $ref: /schemas/types.yaml#/definitions/uint32
68*754d1ce3SSeven Lee    enum:
69*754d1ce3SSeven Lee      - 0 # open
70*754d1ce3SSeven Lee      - 1 # 25KOhms
71*754d1ce3SSeven Lee      - 2 # 125KOhms
72*754d1ce3SSeven Lee      - 3 # 2.5KOhms
73*754d1ce3SSeven Lee    default: 2
74*754d1ce3SSeven Lee
75*754d1ce3SSeven Lee  nuvoton,jack-insert-debounce:
76*754d1ce3SSeven Lee    description: number from 0 to 7 that sets debounce time to 2^(n+2)ms.
77*754d1ce3SSeven Lee    $ref: /schemas/types.yaml#/definitions/uint32
78*754d1ce3SSeven Lee    maximum: 7
79*754d1ce3SSeven Lee    default: 7
80*754d1ce3SSeven Lee
81*754d1ce3SSeven Lee  nuvoton,jack-eject-debounce:
82*754d1ce3SSeven Lee    description: number from 0 to 7 that sets debounce time to 2^(n+2)ms.
83*754d1ce3SSeven Lee    $ref: /schemas/types.yaml#/definitions/uint32
84*754d1ce3SSeven Lee    maximum: 7
85*754d1ce3SSeven Lee    default: 0
86*754d1ce3SSeven Lee
87*754d1ce3SSeven Lee  nuvoton,dmic-clk-threshold:
88*754d1ce3SSeven Lee    description: DMIC clock speed expected value. Unit is Hz.
89*754d1ce3SSeven Lee    $ref: /schemas/types.yaml#/definitions/uint32
90*754d1ce3SSeven Lee    default: 3072000
91*754d1ce3SSeven Lee
92*754d1ce3SSeven Lee  '#sound-dai-cells':
93*754d1ce3SSeven Lee    const: 0
94*754d1ce3SSeven Lee
95*754d1ce3SSeven Leerequired:
96*754d1ce3SSeven Lee  - compatible
97*754d1ce3SSeven Lee  - reg
98*754d1ce3SSeven Lee
99*754d1ce3SSeven LeeunevaluatedProperties: false
100*754d1ce3SSeven Lee
101*754d1ce3SSeven Leeexamples:
102*754d1ce3SSeven Lee  - |
103*754d1ce3SSeven Lee    #include <dt-bindings/gpio/gpio.h>
104*754d1ce3SSeven Lee    #include <dt-bindings/interrupt-controller/irq.h>
105*754d1ce3SSeven Lee    i2c {
106*754d1ce3SSeven Lee        #address-cells = <1>;
107*754d1ce3SSeven Lee        #size-cells = <0>;
108*754d1ce3SSeven Lee        codec@1b {
109*754d1ce3SSeven Lee            compatible = "nuvoton,nau8821";
110*754d1ce3SSeven Lee            reg = <0x1b>;
111*754d1ce3SSeven Lee            interrupt-parent = <&gpio>;
112*754d1ce3SSeven Lee            interrupts = <23 IRQ_TYPE_LEVEL_LOW>;
113*754d1ce3SSeven Lee            nuvoton,jkdet-enable;
114*754d1ce3SSeven Lee            nuvoton,jkdet-pull-enable;
115*754d1ce3SSeven Lee            nuvoton,jkdet-pull-up;
116*754d1ce3SSeven Lee            nuvoton,key-enable;
117*754d1ce3SSeven Lee            nuvoton,jkdet-polarity = <GPIO_ACTIVE_LOW>;
118*754d1ce3SSeven Lee            nuvoton,micbias-voltage = <6>;
119*754d1ce3SSeven Lee            nuvoton,vref-impedance = <2>;
120*754d1ce3SSeven Lee            nuvoton,jack-insert-debounce = <7>;
121*754d1ce3SSeven Lee            nuvoton,jack-eject-debounce = <0>;
122*754d1ce3SSeven Lee            nuvoton,dmic-clk-threshold = <3072000>;
123*754d1ce3SSeven Lee            #sound-dai-cells = <0>;
124*754d1ce3SSeven Lee        };
125*754d1ce3SSeven Lee    };
126