aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/sound/cirrus,cs35l45.yaml
blob: 4c9acb8d4c4c6174a0b4f84f05e36550c5c92792 (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
146
147
148
149
150
151
152
153
154
155
156
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/cirrus,cs35l45.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Cirrus Logic CS35L45 Speaker Amplifier

maintainers:
  - Ricardo Rivera-Matos <rriveram@opensource.cirrus.com>
  - Richard Fitzgerald <rf@opensource.cirrus.com>

description: |
  CS35L45 is a Boosted Mono Class D Amplifier with DSP
  Speaker Protection and Adaptive Battery Management.

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

properties:
  compatible:
    enum:
      - cirrus,cs35l45

  reg:
    maxItems: 1

  '#sound-dai-cells':
    const: 1

  reset-gpios:
    maxItems: 1

  vdd-a-supply:
    description: voltage regulator phandle for the VDD_A supply

  vdd-batt-supply:
    description: voltage regulator phandle for the VDD_BATT supply

  spi-max-frequency:
    maximum: 5000000

  cirrus,asp-sdout-hiz-ctrl:
    description:
      Audio serial port SDOUT Hi-Z control. Sets the Hi-Z
      configuration for SDOUT pin of amplifier. Logical OR of
      CS35L45_ASP_TX_HIZ_xxx values.
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 3
    default: 2

patternProperties:
  "^cirrus,gpio-ctrl[1-3]$":
    description:
      GPIO pins configuration.
    type: object
    additionalProperties: false
    properties:
      gpio-dir:
        description:
          GPIO pin direction. Valid only when 'gpio-ctrl' is 1
            0 = Output
            1 = Input
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 1
        default: 1
      gpio-lvl:
        description:
          GPIO level. Valid only when 'gpio-ctrl' is 1 and 'gpio-dir' is 0
            0 = Low
            1 = High
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 1
        default: 0
      gpio-op-cfg:
        description:
          GPIO level. Valid only when 'gpio-ctrl' is 1 and 'gpio-dir' is 0
            0 = CMOS
            1 = Open Drain
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 1
        default: 0
      gpio-pol:
        description:
          GPIO output polarity select. Valid only when 'gpio-ctrl' is 1
          and 'gpio-dir' is 0
            0 = Non-inverted, Active High
            1 = Inverted, Active Low
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 1
        default: 0
      gpio-ctrl:
        description:
          Defines the function of the GPIO pin.
          GPIO1
            0 = High impedance input
            1 = Pin acts as a GPIO, direction controlled by 'gpio-dir'
            2 = Pin acts as MDSYNC, direction controlled by MDSYNC
            3-7 = Reserved
          GPIO2
            0 = High impedance input
            1 = Pin acts as a GPIO, direction controlled by 'gpio-dir'
            2 = Pin acts as open drain INT
            3 = Reserved
            4 = Pin acts as push-pull output INT. Active low.
            5 = Pin acts as push-pull output INT. Active high.
            6,7 = Reserved
          GPIO3
            0 = High impedance input
            1 = Pin acts as a GPIO, direction controlled by 'gpio-dir'
            2-7 = Reserved
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 7
        default: 0
required:
  - compatible
  - reg
  - "#sound-dai-cells"

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/sound/cs35l45.h>
    spi {
        #address-cells = <1>;
        #size-cells = <0>;

        cs35l45: cs35l45@2 {
          #sound-dai-cells = <1>;
          compatible = "cirrus,cs35l45";
          reg = <2>;
          spi-max-frequency = <5000000>;
          vdd-a-supply = <&dummy_vreg>;
          vdd-batt-supply = <&dummy_vreg>;
          reset-gpios = <&gpio 110 0>;
          cirrus,asp-sdout-hiz-ctrl = <(CS35L45_ASP_TX_HIZ_UNUSED |
                                        CS35L45_ASP_TX_HIZ_DISABLED)>;
          cirrus,gpio-ctrl1 {
             gpio-ctrl = <0x2>;
          };
          cirrus,gpio-ctrl2 {
             gpio-ctrl = <0x2>;
          };
          cirrus,gpio-ctrl3 {
             gpio-ctrl = <0x1>;
             gpio-dir = <0x1>;
          };
        };
    };