Merge tag 'block-6.13-20242901' of git://git.kernel.dk/linux
[drm/drm-misc.git] / Documentation / devicetree / bindings / sound / cirrus,cs35l45.yaml
blob70f6c62aedca84920b8f50cc20c90e53e44b6011
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#
7 title: Cirrus Logic CS35L45 Speaker Amplifier
9 maintainers:
10   - Ricardo Rivera-Matos <rriveram@opensource.cirrus.com>
11   - Richard Fitzgerald <rf@opensource.cirrus.com>
13 description: |
14   CS35L45 is a Boosted Mono Class D Amplifier with DSP
15   Speaker Protection and Adaptive Battery Management.
17 allOf:
18   - $ref: dai-common.yaml#
20 properties:
21   compatible:
22     enum:
23       - cirrus,cs35l45
25   reg:
26     maxItems: 1
28   interrupts:
29     maxItems: 1
31   '#sound-dai-cells':
32     const: 1
34   reset-gpios:
35     maxItems: 1
37   vdd-a-supply:
38     description: voltage regulator phandle for the VDD_A supply
40   vdd-batt-supply:
41     description: voltage regulator phandle for the VDD_BATT supply
43   spi-max-frequency:
44     maximum: 5000000
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
56 patternProperties:
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
124 required:
125   - compatible
126   - reg
127   - "#sound-dai-cells"
129 unevaluatedProperties: false
131 examples:
132   - |
133     #include <dt-bindings/sound/cs35l45.h>
134     spi {
135         #address-cells = <1>;
136         #size-cells = <0>;
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     };