summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/sound/realtek,rt5645.yaml
blob: 0a698798c22be2b06056d8f998ac13a4f09a3f47 (plain)
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
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/realtek,rt5645.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: RT5650/RT5645 audio CODEC

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

description: |
  This device supports I2C only.

  Pins on the device (for linking into audio routes) for RT5645/RT5650:
    * DMIC L1
    * DMIC R1
    * DMIC L2
    * DMIC R2
    * IN1P
    * IN1N
    * IN2P
    * IN2N
    * Haptic Generator
    * HPOL
    * HPOR
    * LOUTL
    * LOUTR
    * PDM1L
    * PDM1R
    * SPOL
    * SPOR

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

properties:
  compatible:
    enum:
      - realtek,rt5645
      - realtek,rt5650

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1
    description: The CODEC's interrupt output.

  avdd-supply:
    description: Power supply for AVDD, providing 1.8V.

  cpvdd-supply:
    description: Power supply for CPVDD, providing 1.8V.

  hp-detect-gpios:
    description: 
      A GPIO spec for the external headphone detect pin. If jd-mode = 0, we
      will get the JD status by getting the value of hp-detect-gpios.
    maxItems: 1

  cbj-sleeve-gpios:
    description:
      A GPIO spec to control the external combo jack circuit to tie the
      sleeve/ring2 contacts to the ground or floating. It could avoid some
      electric noise from the active speaker jacks.
    maxItems: 1

  realtek,in2-differential:
    description:
      Indicate MIC2 input are differential, rather than single-ended.
    type: boolean

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

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

  realtek,jd-mode:
    description: The JD mode of rt5645/rt5650.
    $ref: /schemas/types.yaml#/definitions/uint32
    enum:
      - 0 # rt5645/rt5650 JD function is not used
      - 1 # Mode-0 (VDD=3.3V), two port jack detection
      - 2 # Mode-1 (VDD=3.3V), one port jack detection
      - 3 # Mode-2 (VDD=1.8V), one port jack detection

required:
  - compatible
  - reg
  - interrupts
  - avdd-supply
  - cpvdd-supply

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/irq.h>

    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

        codec@1a {
            compatible = "realtek,rt5650";
            reg = <0x1a>;
            hp-detect-gpios = <&gpio 19 0>;
            cbj-sleeve-gpios = <&gpio 20 0>;
            interrupt-parent = <&gpio>;
            interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
            avdd-supply = <&avdd_reg>;
            cpvdd-supply = <&cpvdd_supply>;
            realtek,jd-mode = <3>;
        };
    };