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