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,nau8821.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: NAU88L21 audio codec
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Seven Lee <wtli@nuvoton.com>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ciallOf:
1362306a36Sopenharmony_ci  - $ref: dai-common.yaml#
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ciproperties:
1662306a36Sopenharmony_ci  compatible:
1762306a36Sopenharmony_ci    const: nuvoton,nau8821
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci  reg:
2062306a36Sopenharmony_ci    maxItems: 1
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci  interrupts:
2362306a36Sopenharmony_ci    maxItems: 1
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci  nuvoton,jkdet-enable:
2662306a36Sopenharmony_ci    description: Enable jack detection via JKDET pin.
2762306a36Sopenharmony_ci    type: boolean
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci  nuvoton,jkdet-pull-enable:
3062306a36Sopenharmony_ci    description: Enable JKDET pin pull. If set - pin pull enabled,
3162306a36Sopenharmony_ci      otherwise pin in high impedance state.
3262306a36Sopenharmony_ci    type: boolean
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci  nuvoton,jkdet-pull-up:
3562306a36Sopenharmony_ci    description: Pull-up JKDET pin. If set then JKDET pin is pull up,
3662306a36Sopenharmony_ci      otherwise pull down.
3762306a36Sopenharmony_ci    type: boolean
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci  nuvoton,key-enable:
4062306a36Sopenharmony_ci    description: handles key press detection.
4162306a36Sopenharmony_ci    type: boolean
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci  nuvoton,jkdet-polarity:
4462306a36Sopenharmony_ci    description: JKDET pin polarity.
4562306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
4662306a36Sopenharmony_ci    enum:
4762306a36Sopenharmony_ci      - 0 # active high
4862306a36Sopenharmony_ci      - 1 # active low
4962306a36Sopenharmony_ci    default: 1
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci  nuvoton,micbias-voltage:
5262306a36Sopenharmony_ci    description: MICBIAS output level select.
5362306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
5462306a36Sopenharmony_ci    enum:
5562306a36Sopenharmony_ci      - 0 # VDDA
5662306a36Sopenharmony_ci      - 1 # VDDA * 1
5762306a36Sopenharmony_ci      - 2 # VDDA * 1.1
5862306a36Sopenharmony_ci      - 3 # VDDA * 1.2
5962306a36Sopenharmony_ci      - 4 # VDDA * 1.3
6062306a36Sopenharmony_ci      - 5 # VDDA * 1.4
6162306a36Sopenharmony_ci      - 6 # VDDA * 1.53
6262306a36Sopenharmony_ci      - 7 # VDDA * 1.53
6362306a36Sopenharmony_ci    default: 6
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ci  nuvoton,vref-impedance:
6662306a36Sopenharmony_ci    description: VMID Tie-off impedance select.
6762306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
6862306a36Sopenharmony_ci    enum:
6962306a36Sopenharmony_ci      - 0 # open
7062306a36Sopenharmony_ci      - 1 # 25KOhms
7162306a36Sopenharmony_ci      - 2 # 125KOhms
7262306a36Sopenharmony_ci      - 3 # 2.5KOhms
7362306a36Sopenharmony_ci    default: 2
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ci  nuvoton,jack-insert-debounce:
7662306a36Sopenharmony_ci    description: number from 0 to 7 that sets debounce time to 2^(n+2)ms.
7762306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
7862306a36Sopenharmony_ci    maximum: 7
7962306a36Sopenharmony_ci    default: 7
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ci  nuvoton,jack-eject-debounce:
8262306a36Sopenharmony_ci    description: number from 0 to 7 that sets debounce time to 2^(n+2)ms.
8362306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
8462306a36Sopenharmony_ci    maximum: 7
8562306a36Sopenharmony_ci    default: 0
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ci  nuvoton,dmic-clk-threshold:
8862306a36Sopenharmony_ci    description: DMIC clock speed expected value. Unit is Hz.
8962306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
9062306a36Sopenharmony_ci    default: 3072000
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ci  nuvoton,left-input-single-end:
9362306a36Sopenharmony_ci    description: Enable left input with single-ended settings if set.
9462306a36Sopenharmony_ci        For the headset mic application, the single-ended control is
9562306a36Sopenharmony_ci        just limited to the left adc for design demand.
9662306a36Sopenharmony_ci    type: boolean
9762306a36Sopenharmony_ci
9862306a36Sopenharmony_ci  '#sound-dai-cells':
9962306a36Sopenharmony_ci    const: 0
10062306a36Sopenharmony_ci
10162306a36Sopenharmony_cirequired:
10262306a36Sopenharmony_ci  - compatible
10362306a36Sopenharmony_ci  - reg
10462306a36Sopenharmony_ci
10562306a36Sopenharmony_ciunevaluatedProperties: false
10662306a36Sopenharmony_ci
10762306a36Sopenharmony_ciexamples:
10862306a36Sopenharmony_ci  - |
10962306a36Sopenharmony_ci    #include <dt-bindings/gpio/gpio.h>
11062306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/irq.h>
11162306a36Sopenharmony_ci    i2c {
11262306a36Sopenharmony_ci        #address-cells = <1>;
11362306a36Sopenharmony_ci        #size-cells = <0>;
11462306a36Sopenharmony_ci        codec@1b {
11562306a36Sopenharmony_ci            compatible = "nuvoton,nau8821";
11662306a36Sopenharmony_ci            reg = <0x1b>;
11762306a36Sopenharmony_ci            interrupt-parent = <&gpio>;
11862306a36Sopenharmony_ci            interrupts = <23 IRQ_TYPE_LEVEL_LOW>;
11962306a36Sopenharmony_ci            nuvoton,jkdet-enable;
12062306a36Sopenharmony_ci            nuvoton,jkdet-pull-enable;
12162306a36Sopenharmony_ci            nuvoton,jkdet-pull-up;
12262306a36Sopenharmony_ci            nuvoton,key-enable;
12362306a36Sopenharmony_ci            nuvoton,left-input-single-end;
12462306a36Sopenharmony_ci            nuvoton,jkdet-polarity = <GPIO_ACTIVE_LOW>;
12562306a36Sopenharmony_ci            nuvoton,micbias-voltage = <6>;
12662306a36Sopenharmony_ci            nuvoton,vref-impedance = <2>;
12762306a36Sopenharmony_ci            nuvoton,jack-insert-debounce = <7>;
12862306a36Sopenharmony_ci            nuvoton,jack-eject-debounce = <0>;
12962306a36Sopenharmony_ci            nuvoton,dmic-clk-threshold = <3072000>;
13062306a36Sopenharmony_ci            #sound-dai-cells = <0>;
13162306a36Sopenharmony_ci        };
13262306a36Sopenharmony_ci    };
133