summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/sound/samsung,midas-audio.yaml
blob: 69ddfd4afdcdf2cc62e294da3f65eadf109d3a94 (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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/samsung,midas-audio.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Samsung Midas audio complex with WM1811 codec

maintainers:
  - Sylwester Nawrocki <s.nawrocki@samsung.com>

allOf:
  - $ref: sound-card-common.yaml#

properties:
  compatible:
    const: samsung,midas-audio

  cpu:
    type: object
    additionalProperties: false
    properties:
      sound-dai:
        maxItems: 1
        description: phandle to the I2S controller
    required:
      - sound-dai

  codec:
    type: object
    additionalProperties: false
    properties:
      sound-dai:
        maxItems: 1
        description: phandle to the WM1811 CODEC
    required:
      - sound-dai

  samsung,audio-routing:
    deprecated: true
    $ref: /schemas/types.yaml#/definitions/non-unique-string-array
    description: |
      List of the connections between audio components; each entry is
      a pair of strings, the first being the connection's sink, the second
      being the connection's source; valid names for sources and sinks are
      the WM1811's pins (as documented in its binding), and the jacks
      on the board: HP, SPK, Main Mic, Sub Mic, Headset Mic.
      Deprecated, use audio-routing.

  mic-bias-supply:
    description: Supply for the micbias on the Main microphone

  submic-bias-supply:
    description: Supply for the micbias on the Sub microphone

  headset-mic-bias-supply:
    description: Supply for the micbias on the Headset microphone

  fm-sel-gpios:
    maxItems: 1
    description: GPIO pin for FM selection

  lineout-sel-gpios:
    maxItems: 1
    description: GPIO pin for line out selection

  headset-detect-gpios:
    maxItems: 1
    description: GPIO for detection of headset insertion

  headset-key-gpios:
    maxItems: 1
    description: GPIO for detection of headset key press

  io-channels:
    maxItems: 1
    description: IO channel to read micbias voltage for headset detection

  io-channel-names:
    const: headset-detect

  samsung,headset-4pole-threshold-microvolt:
    minItems: 2
    maxItems: 2
    description:
      Array containing minimum and maximum IO channel value for 4-pole
      (with microphone/button) headsets. If the IO channel value is
      outside of this range, a 3-pole headset is assumed.

  samsung,headset-button-threshold-microvolt:
    minItems: 3
    maxItems: 3
    description: |
      Array of minimum (inclusive) IO channel values for headset button
      detection, in order: "Media", "Volume Up" and "Volume Down".

required:
  - compatible
  - cpu
  - codec
  - audio-routing
  - mic-bias-supply
  - submic-bias-supply

unevaluatedProperties: false

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

    sound {
        compatible = "samsung,midas-audio";
        model = "Midas";

        fm-sel-gpios = <&gpaa0 3 GPIO_ACTIVE_HIGH>;

        mic-bias-supply = <&mic_bias_reg>;
        submic-bias-supply = <&submic_bias_reg>;

        audio-routing =
                "HP", "HPOUT1L",
                "HP", "HPOUT1R",

                "SPK", "SPKOUTLN",
                "SPK", "SPKOUTLP",
                "SPK", "SPKOUTRN",
                "SPK", "SPKOUTRP",

                "RCV", "HPOUT2N",
                "RCV", "HPOUT2P",

                "IN1LP", "Main Mic",
                "IN1LN", "Main Mic",
                "IN1RP", "Sub Mic",
                "IN1LP", "Sub Mic";

        cpu {
            sound-dai = <&i2s0>;
        };

        codec {
            sound-dai = <&wm1811>;
        };

    };