xref: /linux/Documentation/devicetree/bindings/sound/cirrus,cs35l45.yaml (revision ef9226cd56b718c79184a3466d32984a51cb449c)
1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/sound/cirrus,cs35l45.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Cirrus Logic CS35L45 Speaker Amplifier
8
9maintainers:
10  - Ricardo Rivera-Matos <rriveram@opensource.cirrus.com>
11  - Richard Fitzgerald <rf@opensource.cirrus.com>
12
13description: |
14  CS35L45 is a Boosted Mono Class D Amplifier with DSP
15  Speaker Protection and Adaptive Battery Management.
16
17allOf:
18  - $ref: dai-common.yaml#
19
20properties:
21  compatible:
22    enum:
23      - cirrus,cs35l45
24
25  reg:
26    maxItems: 1
27
28  interrupts:
29    maxItems: 1
30
31  '#sound-dai-cells':
32    const: 1
33
34  reset-gpios:
35    maxItems: 1
36
37  vdd-a-supply:
38    description: voltage regulator phandle for the VDD_A supply
39
40  vdd-batt-supply:
41    description: voltage regulator phandle for the VDD_BATT supply
42
43  spi-max-frequency:
44    maximum: 5000000
45
46  cirrus,asp-sdout-hiz-ctrl:
47    description:
48      Audio serial port SDOUT Hi-Z control. Sets the Hi-Z
49      configuration for SDOUT pin of amplifier. Logical OR of
50      CS35L45_ASP_TX_HIZ_xxx values.
51    $ref: /schemas/types.yaml#/definitions/uint32
52    minimum: 0
53    maximum: 3
54    default: 2
55
56patternProperties:
57  "^cirrus,gpio-ctrl[1-3]$":
58    description:
59      GPIO pins configuration.
60    type: object
61    additionalProperties: false
62    properties:
63      gpio-dir:
64        description:
65          GPIO pin direction. Valid only when 'gpio-ctrl' is 1
66            0 = Output
67            1 = Input
68        $ref: /schemas/types.yaml#/definitions/uint32
69        minimum: 0
70        maximum: 1
71        default: 1
72      gpio-lvl:
73        description:
74          GPIO level. Valid only when 'gpio-ctrl' is 1 and 'gpio-dir' is 0
75            0 = Low
76            1 = High
77        $ref: /schemas/types.yaml#/definitions/uint32
78        minimum: 0
79        maximum: 1
80        default: 0
81      gpio-op-cfg:
82        description:
83          GPIO level. Valid only when 'gpio-ctrl' is 1 and 'gpio-dir' is 0
84            0 = CMOS
85            1 = Open Drain
86        $ref: /schemas/types.yaml#/definitions/uint32
87        minimum: 0
88        maximum: 1
89        default: 0
90      gpio-pol:
91        description:
92          GPIO output polarity select. Valid only when 'gpio-ctrl' is 1
93          and 'gpio-dir' is 0
94            0 = Non-inverted, Active High
95            1 = Inverted, Active Low
96        $ref: /schemas/types.yaml#/definitions/uint32
97        minimum: 0
98        maximum: 1
99        default: 0
100      gpio-ctrl:
101        description:
102          Defines the function of the GPIO pin.
103          GPIO1
104            0 = High impedance input
105            1 = Pin acts as a GPIO, direction controlled by 'gpio-dir'
106            2 = Pin acts as MDSYNC, direction controlled by MDSYNC
107            3-7 = Reserved
108          GPIO2
109            0 = High impedance input
110            1 = Pin acts as a GPIO, direction controlled by 'gpio-dir'
111            2 = Pin acts as open drain INT
112            3 = Reserved
113            4 = Pin acts as push-pull output INT. Active low.
114            5 = Pin acts as push-pull output INT. Active high.
115            6,7 = Reserved
116          GPIO3
117            0 = High impedance input
118            1 = Pin acts as a GPIO, direction controlled by 'gpio-dir'
119            2-7 = Reserved
120        $ref: /schemas/types.yaml#/definitions/uint32
121        minimum: 0
122        maximum: 7
123        default: 0
124required:
125  - compatible
126  - reg
127  - "#sound-dai-cells"
128
129unevaluatedProperties: false
130
131examples:
132  - |
133    #include <dt-bindings/sound/cs35l45.h>
134    spi {
135        #address-cells = <1>;
136        #size-cells = <0>;
137
138        cs35l45: cs35l45@2 {
139          #sound-dai-cells = <1>;
140          compatible = "cirrus,cs35l45";
141          reg = <2>;
142          spi-max-frequency = <5000000>;
143          vdd-a-supply = <&dummy_vreg>;
144          vdd-batt-supply = <&dummy_vreg>;
145          reset-gpios = <&gpio 110 0>;
146          cirrus,asp-sdout-hiz-ctrl = <(CS35L45_ASP_TX_HIZ_UNUSED |
147                                        CS35L45_ASP_TX_HIZ_DISABLED)>;
148          cirrus,gpio-ctrl1 {
149             gpio-ctrl = <0x2>;
150          };
151          cirrus,gpio-ctrl2 {
152             gpio-ctrl = <0x2>;
153          };
154          cirrus,gpio-ctrl3 {
155             gpio-ctrl = <0x1>;
156             gpio-dir = <0x1>;
157          };
158        };
159    };
160