xref: /linux/Documentation/devicetree/bindings/sound/realtek,rt5640.yaml (revision c771600c6af14749609b49565ffb4cac2959710d)
1*eba5a0baSNeil Armstrong# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2*eba5a0baSNeil Armstrong%YAML 1.2
3*eba5a0baSNeil Armstrong---
4*eba5a0baSNeil Armstrong$id: http://devicetree.org/schemas/sound/realtek,rt5640.yaml#
5*eba5a0baSNeil Armstrong$schema: http://devicetree.org/meta-schemas/core.yaml#
6*eba5a0baSNeil Armstrong
7*eba5a0baSNeil Armstrongtitle: RT5640/RT5639 audio CODEC
8*eba5a0baSNeil Armstrong
9*eba5a0baSNeil Armstrongmaintainers:
10*eba5a0baSNeil Armstrong  - Neil Armstrong <neil.armstrong@linaro.org>
11*eba5a0baSNeil Armstrong
12*eba5a0baSNeil Armstrongdescription: |
13*eba5a0baSNeil Armstrong  This device supports I2C only.
14*eba5a0baSNeil Armstrong
15*eba5a0baSNeil Armstrong  Pins on the device (for linking into audio routes) for RT5639/RT5640:
16*eba5a0baSNeil Armstrong    * DMIC1
17*eba5a0baSNeil Armstrong    * DMIC2
18*eba5a0baSNeil Armstrong    * MICBIAS1
19*eba5a0baSNeil Armstrong    * IN1P
20*eba5a0baSNeil Armstrong    * IN1N
21*eba5a0baSNeil Armstrong    * IN2P
22*eba5a0baSNeil Armstrong    * IN2N
23*eba5a0baSNeil Armstrong    * IN3P
24*eba5a0baSNeil Armstrong    * IN3N
25*eba5a0baSNeil Armstrong    * HPOL
26*eba5a0baSNeil Armstrong    * HPOR
27*eba5a0baSNeil Armstrong    * LOUTL
28*eba5a0baSNeil Armstrong    * LOUTR
29*eba5a0baSNeil Armstrong    * SPOLP
30*eba5a0baSNeil Armstrong    * SPOLN
31*eba5a0baSNeil Armstrong    * SPORP
32*eba5a0baSNeil Armstrong    * SPORN
33*eba5a0baSNeil Armstrong
34*eba5a0baSNeil Armstrong  Additional pins on the device for RT5640:
35*eba5a0baSNeil Armstrong    * MONOP
36*eba5a0baSNeil Armstrong    * MONON
37*eba5a0baSNeil Armstrong
38*eba5a0baSNeil ArmstrongallOf:
39*eba5a0baSNeil Armstrong  - $ref: dai-common.yaml#
40*eba5a0baSNeil Armstrong
41*eba5a0baSNeil Armstrongproperties:
42*eba5a0baSNeil Armstrong  compatible:
43*eba5a0baSNeil Armstrong    enum:
44*eba5a0baSNeil Armstrong      - realtek,rt5640
45*eba5a0baSNeil Armstrong      - realtek,rt5639
46*eba5a0baSNeil Armstrong
47*eba5a0baSNeil Armstrong  reg:
48*eba5a0baSNeil Armstrong    maxItems: 1
49*eba5a0baSNeil Armstrong
50*eba5a0baSNeil Armstrong  interrupts:
51*eba5a0baSNeil Armstrong    maxItems: 1
52*eba5a0baSNeil Armstrong    description: The CODEC's interrupt output.
53*eba5a0baSNeil Armstrong
54*eba5a0baSNeil Armstrong  realtek,in1-differential:
55*eba5a0baSNeil Armstrong    description:
56*eba5a0baSNeil Armstrong      Indicate MIC1 input is differential, rather than single-ended.
57*eba5a0baSNeil Armstrong    type: boolean
58*eba5a0baSNeil Armstrong
59*eba5a0baSNeil Armstrong  realtek,in2-differential:
60*eba5a0baSNeil Armstrong    description:
61*eba5a0baSNeil Armstrong      Indicate MIC2 input is differential, rather than single-ended.
62*eba5a0baSNeil Armstrong    type: boolean
63*eba5a0baSNeil Armstrong
64*eba5a0baSNeil Armstrong  realtek,in3-differential:
65*eba5a0baSNeil Armstrong    description:
66*eba5a0baSNeil Armstrong      Indicate MIC3 input is differential, rather than single-ended.
67*eba5a0baSNeil Armstrong    type: boolean
68*eba5a0baSNeil Armstrong
69*eba5a0baSNeil Armstrong  realtek,lout-differential:
70*eba5a0baSNeil Armstrong    description:
71*eba5a0baSNeil Armstrong      Indicate LOUT output is differential, rather than single-ended.
72*eba5a0baSNeil Armstrong    type: boolean
73*eba5a0baSNeil Armstrong
74*eba5a0baSNeil Armstrong  realtek,dmic1-data-pin:
75*eba5a0baSNeil Armstrong    description: Specify which pin to be used as DMIC1 data pin.
76*eba5a0baSNeil Armstrong    $ref: /schemas/types.yaml#/definitions/uint32
77*eba5a0baSNeil Armstrong    enum:
78*eba5a0baSNeil Armstrong      - 0 # dmic1 is not used
79*eba5a0baSNeil Armstrong      - 1 # using IN2P pin as dmic1 data pin
80*eba5a0baSNeil Armstrong      - 2 # using GPIO3 pin as dmic1 data pin
81*eba5a0baSNeil Armstrong
82*eba5a0baSNeil Armstrong  realtek,dmic2-data-pin:
83*eba5a0baSNeil Armstrong    description: Specify which pin to be used as DMIC2 data pin.
84*eba5a0baSNeil Armstrong    $ref: /schemas/types.yaml#/definitions/uint32
85*eba5a0baSNeil Armstrong    enum:
86*eba5a0baSNeil Armstrong      - 0 # dmic2 is not used
87*eba5a0baSNeil Armstrong      - 1 # using IN2N pin as dmic2 data pin
88*eba5a0baSNeil Armstrong      - 2 # using GPIO4 pin as dmic2 data pin
89*eba5a0baSNeil Armstrong
90*eba5a0baSNeil Armstrong  realtek,jack-detect-source:
91*eba5a0baSNeil Armstrong    description: The Jack Detect source.
92*eba5a0baSNeil Armstrong    $ref: /schemas/types.yaml#/definitions/uint32
93*eba5a0baSNeil Armstrong    enum:
94*eba5a0baSNeil Armstrong      - 0 # Jack Detect function is not used
95*eba5a0baSNeil Armstrong      - 1 # Use GPIO1 for jack-detect
96*eba5a0baSNeil Armstrong      - 2 # Use JD1_IN4P for jack-detect
97*eba5a0baSNeil Armstrong      - 3 # Use JD2_IN4N for jack-detect
98*eba5a0baSNeil Armstrong      - 4 # Use GPIO2 for jack-detect
99*eba5a0baSNeil Armstrong      - 5 # Use GPIO3 for jack-detect
100*eba5a0baSNeil Armstrong      - 6 # Use GPIO4 for jack-detect
101*eba5a0baSNeil Armstrong
102*eba5a0baSNeil Armstrong  realtek,jack-detect-not-inverted:
103*eba5a0baSNeil Armstrong    description:
104*eba5a0baSNeil Armstrong      Normal jack-detect switches give an inverted signal, set this bool
105*eba5a0baSNeil Armstrong      in the rare case you've a jack-detect switch which is not inverted.
106*eba5a0baSNeil Armstrong    type: boolean
107*eba5a0baSNeil Armstrong
108*eba5a0baSNeil Armstrong  realtek,over-current-threshold-microamp:
109*eba5a0baSNeil Armstrong    description: micbias over-current detection threshold in µA
110*eba5a0baSNeil Armstrong    enum:
111*eba5a0baSNeil Armstrong      - 600
112*eba5a0baSNeil Armstrong      - 1500
113*eba5a0baSNeil Armstrong      - 2000
114*eba5a0baSNeil Armstrong
115*eba5a0baSNeil Armstrong  realtek,over-current-scale-factor:
116*eba5a0baSNeil Armstrong    description: micbias over-current detection scale-factor
117*eba5a0baSNeil Armstrong    $ref: /schemas/types.yaml#/definitions/uint32
118*eba5a0baSNeil Armstrong    enum:
119*eba5a0baSNeil Armstrong      - 0 # Scale current by 0.5
120*eba5a0baSNeil Armstrong      - 1 # Scale current by 0.75
121*eba5a0baSNeil Armstrong      - 2 # Scale current by 1.0
122*eba5a0baSNeil Armstrong      - 3 # Scale current by 1.5
123*eba5a0baSNeil Armstrong
124*eba5a0baSNeil Armstrongrequired:
125*eba5a0baSNeil Armstrong  - compatible
126*eba5a0baSNeil Armstrong  - reg
127*eba5a0baSNeil Armstrong  - interrupts
128*eba5a0baSNeil Armstrong
129*eba5a0baSNeil ArmstrongunevaluatedProperties: false
130*eba5a0baSNeil Armstrong
131*eba5a0baSNeil Armstrongexamples:
132*eba5a0baSNeil Armstrong  - |
133*eba5a0baSNeil Armstrong    #include <dt-bindings/gpio/gpio.h>
134*eba5a0baSNeil Armstrong    #include <dt-bindings/interrupt-controller/irq.h>
135*eba5a0baSNeil Armstrong
136*eba5a0baSNeil Armstrong    i2c {
137*eba5a0baSNeil Armstrong        #address-cells = <1>;
138*eba5a0baSNeil Armstrong        #size-cells = <0>;
139*eba5a0baSNeil Armstrong
140*eba5a0baSNeil Armstrong        codec@1a {
141*eba5a0baSNeil Armstrong            compatible = "realtek,rt5640";
142*eba5a0baSNeil Armstrong            reg = <0x1a>;
143*eba5a0baSNeil Armstrong            interrupt-parent = <&gpio>;
144*eba5a0baSNeil Armstrong            interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
145*eba5a0baSNeil Armstrong        };
146*eba5a0baSNeil Armstrong    };
147