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
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/realtek,rt5659.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: RT5659/RT5658 audio CODEC

maintainers:
  - Animesh Agarwal <animeshagarwal28@gmail.com>

description: |
  This device supports I2C only.

  Pins on the device (for linking into audio routes) for RT5659/RT5658:
    * DMIC L1
    * DMIC R1
    * DMIC L2
    * DMIC R2
    * IN1P
    * IN1N
    * IN2P
    * IN2N
    * IN3P
    * IN3N
    * IN4P
    * IN4N
    * HPOL
    * HPOR
    * SPOL
    * SPOR
    * LOUTL
    * LOUTR
    * MONOOUT
    * PDML
    * PDMR
    * SPDIF

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

properties:
  compatible:
    enum:
      - realtek,rt5659
      - realtek,rt5658

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    maxItems: 1

  clock-names:
    const: mclk

  realtek,dmic1-data-pin:
    $ref: /schemas/types.yaml#/definitions/uint32
    enum:
      - 0 # dmic1 is not used
      - 1 # using IN2N pin as dmic1 data pin
      - 2 # using GPIO5 pin as dmic1 data pin
      - 3 # using GPIO9 pin as dmic1 data pin
      - 4 # using GPIO11 pin as dmic1 data pin
    description: Specify which pin to be used as DMIC1 data pin.
    default: 0

  realtek,dmic2-data-pin:
    $ref: /schemas/types.yaml#/definitions/uint32
    enum:
      - 0 # dmic2 is not used
      - 1 # using IN2P pin as dmic2 data pin
      - 2 # using GPIO6 pin as dmic2 data pin
      - 3 # using GPIO10 pin as dmic2 data pin
      - 4 # using GPIO12 pin as dmic2 data pin
    description: Specify which pin to be used as DMIC2 data pin.
    default: 0

  realtek,jd-src:
    $ref: /schemas/types.yaml#/definitions/uint32
    enum:
      - 0 # No JD is used
      - 1 # using JD3 as JD source
      - 2 # JD source for Intel HDA header
    description: Specify which JD source be used.
    default: 0

  realtek,ldo1-en-gpios:
    maxItems: 1
    description: CODEC's LDO1_EN pin.

  realtek,reset-gpios:
    maxItems: 1
    description: CODEC's RESET pin.

  ports:
    $ref: /schemas/graph.yaml#/properties/ports

  port:
    $ref: audio-graph-port.yaml#
    unevaluatedProperties: false

required:
  - compatible
  - reg
  - interrupts

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 = "realtek,rt5659";
            reg = <0x1b>;
            interrupt-parent = <&gpio>;
            interrupts = <3 IRQ_TYPE_LEVEL_HIGH>;
            realtek,ldo1-en-gpios = <&gpio 3 GPIO_ACTIVE_HIGH>;
        };
    };
在山腰間飄逸的紅雨 隨著北風凋零 我輕輕搖曳風鈴