Documentation / devicetree / bindings / sound / nuvoton,nau8821.yaml


Based on kernel version 6.9. Page generated on 2024-05-14 10:02 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/nuvoton,nau8821.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: NAU88L21 audio codec

maintainers:
  - Seven Lee <wtli@nuvoton.com>

allOf:
  - $ref: dai-common.yaml#

properties:
  compatible:
    const: nuvoton,nau8821

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  nuvoton,jkdet-enable:
    description: Enable jack detection via JKDET pin.
    type: boolean

  nuvoton,jkdet-pull-enable:
    description: Enable JKDET pin pull. If set - pin pull enabled,
      otherwise pin in high impedance state.
    type: boolean

  nuvoton,jkdet-pull-up:
    description: Pull-up JKDET pin. If set then JKDET pin is pull up,
      otherwise pull down.
    type: boolean

  nuvoton,key-enable:
    description: handles key press detection.
    type: boolean

  nuvoton,jkdet-polarity:
    description: JKDET pin polarity.
    $ref: /schemas/types.yaml#/definitions/uint32
    enum:
      - 0 # active high
      - 1 # active low
    default: 1

  nuvoton,micbias-voltage:
    description: MICBIAS output level select.
    $ref: /schemas/types.yaml#/definitions/uint32
    enum:
      - 0 # VDDA
      - 1 # VDDA * 1
      - 2 # VDDA * 1.1
      - 3 # VDDA * 1.2
      - 4 # VDDA * 1.3
      - 5 # VDDA * 1.4
      - 6 # VDDA * 1.53
      - 7 # VDDA * 1.53
    default: 6

  nuvoton,vref-impedance:
    description: VMID Tie-off impedance select.
    $ref: /schemas/types.yaml#/definitions/uint32
    enum:
      - 0 # open
      - 1 # 25KOhms
      - 2 # 125KOhms
      - 3 # 2.5KOhms
    default: 2

  nuvoton,jack-insert-debounce:
    description: number from 0 to 7 that sets debounce time to 2^(n+2)ms.
    $ref: /schemas/types.yaml#/definitions/uint32
    maximum: 7
    default: 7

  nuvoton,jack-eject-debounce:
    description: number from 0 to 7 that sets debounce time to 2^(n+2)ms.
    $ref: /schemas/types.yaml#/definitions/uint32
    maximum: 7
    default: 0

  nuvoton,dmic-clk-threshold:
    description: DMIC clock speed expected value. Unit is Hz.
    $ref: /schemas/types.yaml#/definitions/uint32
    default: 3072000

  nuvoton,dmic-slew-rate:
    description: The range 0 to 7 represents the speed of DMIC slew rate.
        The lowest value 0 means the slowest rate and the highest value
        7 means the fastest rate.
    $ref: /schemas/types.yaml#/definitions/uint32
    maximum: 7
    default: 0

  nuvoton,left-input-single-end:
    description: Enable left input with single-ended settings if set.
        For the headset mic application, the single-ended control is
        just limited to the left adc for design demand.
    type: boolean
 
  '#sound-dai-cells':
    const: 0

required:
  - compatible
  - reg

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;
        codec@1b {
            compatible = "nuvoton,nau8821";
            reg = <0x1b>;
            interrupt-parent = <&gpio>;
            interrupts = <23 IRQ_TYPE_LEVEL_LOW>;
            nuvoton,jkdet-enable;
            nuvoton,jkdet-pull-enable;
            nuvoton,jkdet-pull-up;
            nuvoton,key-enable;
            nuvoton,left-input-single-end;
            nuvoton,jkdet-polarity = <GPIO_ACTIVE_LOW>;
            nuvoton,micbias-voltage = <6>;
            nuvoton,vref-impedance = <2>;
            nuvoton,jack-insert-debounce = <7>;
            nuvoton,jack-eject-debounce = <0>;
            nuvoton,dmic-clk-threshold = <3072000>;
            nuvoton,dmic-slew-rate = <0>;
            #sound-dai-cells = <0>;
        };
    };