xref: /freebsd/sys/contrib/device-tree/Bindings/sound/wlf,wm8962.yaml (revision 734e82fe33aa764367791a7d603b383996c6b40b)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/sound/wlf,wm8962.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Wolfson WM8962 Ultra-Low Power Stereo CODEC
8
9maintainers:
10  - patches@opensource.cirrus.com
11
12allOf:
13  - $ref: dai-common.yaml#
14
15properties:
16  compatible:
17    const: wlf,wm8962
18
19  reg:
20    maxItems: 1
21
22  clocks:
23    maxItems: 1
24
25  interrupts:
26    maxItems: 1
27
28  "#sound-dai-cells":
29    const: 0
30
31  AVDD-supply:
32    description: Analogue supply.
33
34  CPVDD-supply:
35    description: Charge pump power supply.
36
37  DBVDD-supply:
38    description: Digital Buffer Supply.
39
40  DCVDD-supply:
41    description: Digital Core Supply.
42
43  MICVDD-supply:
44    description: Microphone bias amp supply.
45
46  PLLVDD-supply:
47    description: PLL Supply
48
49  SPKVDD1-supply:
50    description: Supply for left speaker drivers.
51
52  SPKVDD2-supply:
53    description: Supply for right speaker drivers.
54
55  spk-mono:
56    $ref: /schemas/types.yaml#/definitions/flag
57    description:
58      If present, the SPK_MONO bit of R51 (Class D Control 2) gets set,
59      indicating that the speaker is in mono mode.
60
61  mic-cfg:
62    $ref: /schemas/types.yaml#/definitions/uint32
63    description:
64      Default register value for R48 (Additional Control 4).
65      If absent, the default should be the register default.
66
67  gpio-cfg:
68    $ref: /schemas/types.yaml#/definitions/uint32-array
69    minItems: 6
70    maxItems: 6
71    description:
72      A list of GPIO configuration register values.  If absent, no
73      configuration of these registers is performed.  Note that only values
74      within [0x0, 0xffff] are valid.  Any other value is regarded as setting
75      the GPIO register to its reset value 0x0.
76
77  port:
78    $ref: audio-graph-port.yaml#
79    unevaluatedProperties: false
80
81required:
82  - compatible
83  - reg
84  - AVDD-supply
85  - CPVDD-supply
86  - DBVDD-supply
87  - DCVDD-supply
88  - MICVDD-supply
89  - PLLVDD-supply
90  - SPKVDD1-supply
91  - SPKVDD2-supply
92
93unevaluatedProperties: false
94
95examples:
96  - |
97    #include <dt-bindings/clock/imx6qdl-clock.h>
98
99    i2c {
100          #address-cells = <1>;
101          #size-cells = <0>;
102
103          wm8962: codec@1a {
104                  compatible = "wlf,wm8962";
105                  reg = <0x1a>;
106                  clocks = <&clks IMX6QDL_CLK_CKO>;
107                  DCVDD-supply = <&reg_audio>;
108                  DBVDD-supply = <&reg_audio>;
109                  AVDD-supply = <&reg_audio>;
110                  CPVDD-supply = <&reg_audio>;
111                  MICVDD-supply = <&reg_audio>;
112                  PLLVDD-supply = <&reg_audio>;
113                  SPKVDD1-supply = <&reg_audio>;
114                  SPKVDD2-supply = <&reg_audio>;
115                  gpio-cfg = <
116                          0x0000 /* 0:Default */
117                          0x0000 /* 1:Default */
118                          0x0013 /* 2:FN_DMICCLK */
119                          0x0000 /* 3:Default */
120                          0x8014 /* 4:FN_DMICCDAT */
121                          0x0000 /* 5:Default */
122                  >;
123          };
124    };
125