xref: /openbmc/linux/Documentation/devicetree/bindings/sound/cirrus,cs35l45.yaml (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
172661ff7SRichard Fitzgerald# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
272661ff7SRichard Fitzgerald%YAML 1.2
372661ff7SRichard Fitzgerald---
472661ff7SRichard Fitzgerald$id: http://devicetree.org/schemas/sound/cirrus,cs35l45.yaml#
572661ff7SRichard Fitzgerald$schema: http://devicetree.org/meta-schemas/core.yaml#
672661ff7SRichard Fitzgerald
772661ff7SRichard Fitzgeraldtitle: Cirrus Logic CS35L45 Speaker Amplifier
872661ff7SRichard Fitzgerald
972661ff7SRichard Fitzgeraldmaintainers:
1072661ff7SRichard Fitzgerald  - Ricardo Rivera-Matos <rriveram@opensource.cirrus.com>
1172661ff7SRichard Fitzgerald  - Richard Fitzgerald <rf@opensource.cirrus.com>
1272661ff7SRichard Fitzgerald
1372661ff7SRichard Fitzgeralddescription: |
1472661ff7SRichard Fitzgerald  CS35L45 is a Boosted Mono Class D Amplifier with DSP
1572661ff7SRichard Fitzgerald  Speaker Protection and Adaptive Battery Management.
1672661ff7SRichard Fitzgerald
1758ae9a2aSKrzysztof KozlowskiallOf:
1858ae9a2aSKrzysztof Kozlowski  - $ref: dai-common.yaml#
1958ae9a2aSKrzysztof Kozlowski
2072661ff7SRichard Fitzgeraldproperties:
2172661ff7SRichard Fitzgerald  compatible:
2272661ff7SRichard Fitzgerald    enum:
2372661ff7SRichard Fitzgerald      - cirrus,cs35l45
2472661ff7SRichard Fitzgerald
2572661ff7SRichard Fitzgerald  reg:
2672661ff7SRichard Fitzgerald    maxItems: 1
2772661ff7SRichard Fitzgerald
2872661ff7SRichard Fitzgerald  '#sound-dai-cells':
2972661ff7SRichard Fitzgerald    const: 1
3072661ff7SRichard Fitzgerald
3172661ff7SRichard Fitzgerald  reset-gpios:
3272661ff7SRichard Fitzgerald    maxItems: 1
3372661ff7SRichard Fitzgerald
3472661ff7SRichard Fitzgerald  vdd-a-supply:
3572661ff7SRichard Fitzgerald    description: voltage regulator phandle for the VDD_A supply
3672661ff7SRichard Fitzgerald
3772661ff7SRichard Fitzgerald  vdd-batt-supply:
3872661ff7SRichard Fitzgerald    description: voltage regulator phandle for the VDD_BATT supply
3972661ff7SRichard Fitzgerald
4072661ff7SRichard Fitzgerald  spi-max-frequency:
4172661ff7SRichard Fitzgerald    maximum: 5000000
4272661ff7SRichard Fitzgerald
4372661ff7SRichard Fitzgerald  cirrus,asp-sdout-hiz-ctrl:
4472661ff7SRichard Fitzgerald    description:
4572661ff7SRichard Fitzgerald      Audio serial port SDOUT Hi-Z control. Sets the Hi-Z
4672661ff7SRichard Fitzgerald      configuration for SDOUT pin of amplifier. Logical OR of
4772661ff7SRichard Fitzgerald      CS35L45_ASP_TX_HIZ_xxx values.
48d9e909e2SRob Herring    $ref: /schemas/types.yaml#/definitions/uint32
4972661ff7SRichard Fitzgerald    minimum: 0
5072661ff7SRichard Fitzgerald    maximum: 3
5172661ff7SRichard Fitzgerald    default: 2
5272661ff7SRichard Fitzgerald
53*c6cec088SVlad.KarpovichpatternProperties:
54*c6cec088SVlad.Karpovich  "^cirrus,gpio-ctrl[1-3]$":
55*c6cec088SVlad.Karpovich    description:
56*c6cec088SVlad.Karpovich      GPIO pins configuration.
57*c6cec088SVlad.Karpovich    type: object
58*c6cec088SVlad.Karpovich    additionalProperties: false
59*c6cec088SVlad.Karpovich    properties:
60*c6cec088SVlad.Karpovich      gpio-dir:
61*c6cec088SVlad.Karpovich        description:
62*c6cec088SVlad.Karpovich          GPIO pin direction. Valid only when 'gpio-ctrl' is 1
63*c6cec088SVlad.Karpovich            0 = Output
64*c6cec088SVlad.Karpovich            1 = Input
65*c6cec088SVlad.Karpovich        $ref: /schemas/types.yaml#/definitions/uint32
66*c6cec088SVlad.Karpovich        minimum: 0
67*c6cec088SVlad.Karpovich        maximum: 1
68*c6cec088SVlad.Karpovich        default: 1
69*c6cec088SVlad.Karpovich      gpio-lvl:
70*c6cec088SVlad.Karpovich        description:
71*c6cec088SVlad.Karpovich          GPIO level. Valid only when 'gpio-ctrl' is 1 and 'gpio-dir' is 0
72*c6cec088SVlad.Karpovich            0 = Low
73*c6cec088SVlad.Karpovich            1 = High
74*c6cec088SVlad.Karpovich        $ref: /schemas/types.yaml#/definitions/uint32
75*c6cec088SVlad.Karpovich        minimum: 0
76*c6cec088SVlad.Karpovich        maximum: 1
77*c6cec088SVlad.Karpovich        default: 0
78*c6cec088SVlad.Karpovich      gpio-op-cfg:
79*c6cec088SVlad.Karpovich        description:
80*c6cec088SVlad.Karpovich          GPIO level. Valid only when 'gpio-ctrl' is 1 and 'gpio-dir' is 0
81*c6cec088SVlad.Karpovich            0 = CMOS
82*c6cec088SVlad.Karpovich            1 = Open Drain
83*c6cec088SVlad.Karpovich        $ref: /schemas/types.yaml#/definitions/uint32
84*c6cec088SVlad.Karpovich        minimum: 0
85*c6cec088SVlad.Karpovich        maximum: 1
86*c6cec088SVlad.Karpovich        default: 0
87*c6cec088SVlad.Karpovich      gpio-pol:
88*c6cec088SVlad.Karpovich        description:
89*c6cec088SVlad.Karpovich          GPIO output polarity select. Valid only when 'gpio-ctrl' is 1
90*c6cec088SVlad.Karpovich          and 'gpio-dir' is 0
91*c6cec088SVlad.Karpovich            0 = Non-inverted, Active High
92*c6cec088SVlad.Karpovich            1 = Inverted, Active Low
93*c6cec088SVlad.Karpovich        $ref: /schemas/types.yaml#/definitions/uint32
94*c6cec088SVlad.Karpovich        minimum: 0
95*c6cec088SVlad.Karpovich        maximum: 1
96*c6cec088SVlad.Karpovich        default: 0
97*c6cec088SVlad.Karpovich      gpio-ctrl:
98*c6cec088SVlad.Karpovich        description:
99*c6cec088SVlad.Karpovich          Defines the function of the GPIO pin.
100*c6cec088SVlad.Karpovich          GPIO1
101*c6cec088SVlad.Karpovich            0 = High impedance input
102*c6cec088SVlad.Karpovich            1 = Pin acts as a GPIO, direction controlled by 'gpio-dir'
103*c6cec088SVlad.Karpovich            2 = Pin acts as MDSYNC, direction controlled by MDSYNC
104*c6cec088SVlad.Karpovich            3-7 = Reserved
105*c6cec088SVlad.Karpovich          GPIO2
106*c6cec088SVlad.Karpovich            0 = High impedance input
107*c6cec088SVlad.Karpovich            1 = Pin acts as a GPIO, direction controlled by 'gpio-dir'
108*c6cec088SVlad.Karpovich            2 = Pin acts as open drain INT
109*c6cec088SVlad.Karpovich            3 = Reserved
110*c6cec088SVlad.Karpovich            4 = Pin acts as push-pull output INT. Active low.
111*c6cec088SVlad.Karpovich            5 = Pin acts as push-pull output INT. Active high.
112*c6cec088SVlad.Karpovich            6,7 = Reserved
113*c6cec088SVlad.Karpovich          GPIO3
114*c6cec088SVlad.Karpovich            0 = High impedance input
115*c6cec088SVlad.Karpovich            1 = Pin acts as a GPIO, direction controlled by 'gpio-dir'
116*c6cec088SVlad.Karpovich            2-7 = Reserved
117*c6cec088SVlad.Karpovich        $ref: /schemas/types.yaml#/definitions/uint32
118*c6cec088SVlad.Karpovich        minimum: 0
119*c6cec088SVlad.Karpovich        maximum: 7
120*c6cec088SVlad.Karpovich        default: 0
12172661ff7SRichard Fitzgeraldrequired:
12272661ff7SRichard Fitzgerald  - compatible
12372661ff7SRichard Fitzgerald  - reg
12472661ff7SRichard Fitzgerald  - "#sound-dai-cells"
12572661ff7SRichard Fitzgerald
12658ae9a2aSKrzysztof KozlowskiunevaluatedProperties: false
12772661ff7SRichard Fitzgerald
12872661ff7SRichard Fitzgeraldexamples:
12972661ff7SRichard Fitzgerald  - |
13072661ff7SRichard Fitzgerald    #include <dt-bindings/sound/cs35l45.h>
13172661ff7SRichard Fitzgerald    spi {
13272661ff7SRichard Fitzgerald        #address-cells = <1>;
13372661ff7SRichard Fitzgerald        #size-cells = <0>;
13472661ff7SRichard Fitzgerald
13572661ff7SRichard Fitzgerald        cs35l45: cs35l45@2 {
13672661ff7SRichard Fitzgerald          #sound-dai-cells = <1>;
13772661ff7SRichard Fitzgerald          compatible = "cirrus,cs35l45";
13872661ff7SRichard Fitzgerald          reg = <2>;
13972661ff7SRichard Fitzgerald          spi-max-frequency = <5000000>;
14072661ff7SRichard Fitzgerald          vdd-a-supply = <&dummy_vreg>;
14172661ff7SRichard Fitzgerald          vdd-batt-supply = <&dummy_vreg>;
14272661ff7SRichard Fitzgerald          reset-gpios = <&gpio 110 0>;
14372661ff7SRichard Fitzgerald          cirrus,asp-sdout-hiz-ctrl = <(CS35L45_ASP_TX_HIZ_UNUSED |
14472661ff7SRichard Fitzgerald                                        CS35L45_ASP_TX_HIZ_DISABLED)>;
145*c6cec088SVlad.Karpovich          cirrus,gpio-ctrl1 {
146*c6cec088SVlad.Karpovich             gpio-ctrl = <0x2>;
147*c6cec088SVlad.Karpovich          };
148*c6cec088SVlad.Karpovich          cirrus,gpio-ctrl2 {
149*c6cec088SVlad.Karpovich             gpio-ctrl = <0x2>;
150*c6cec088SVlad.Karpovich          };
151*c6cec088SVlad.Karpovich          cirrus,gpio-ctrl3 {
152*c6cec088SVlad.Karpovich             gpio-ctrl = <0x1>;
153*c6cec088SVlad.Karpovich             gpio-dir = <0x1>;
154*c6cec088SVlad.Karpovich          };
15572661ff7SRichard Fitzgerald        };
15672661ff7SRichard Fitzgerald    };
157