xref: /freebsd/sys/contrib/device-tree/Bindings/sound/wlf,wm8960.yaml (revision aa1a8ff2d6dbc51ef058f46f3db5a8bb77967145)
1fac71e4eSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2fac71e4eSEmmanuel Vadot%YAML 1.2
3fac71e4eSEmmanuel Vadot---
4fac71e4eSEmmanuel Vadot$id: http://devicetree.org/schemas/sound/wlf,wm8960.yaml#
5fac71e4eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6fac71e4eSEmmanuel Vadot
7fac71e4eSEmmanuel Vadottitle: Wolfson WM8960 audio codec
8fac71e4eSEmmanuel Vadot
9fac71e4eSEmmanuel Vadotmaintainers:
10fac71e4eSEmmanuel Vadot  - patches@opensource.cirrus.com
11fac71e4eSEmmanuel Vadot
12fac71e4eSEmmanuel Vadotproperties:
13fac71e4eSEmmanuel Vadot  compatible:
14fac71e4eSEmmanuel Vadot    const: wlf,wm8960
15fac71e4eSEmmanuel Vadot
16fac71e4eSEmmanuel Vadot  reg:
17fac71e4eSEmmanuel Vadot    maxItems: 1
18fac71e4eSEmmanuel Vadot
19fac71e4eSEmmanuel Vadot  clocks:
20fac71e4eSEmmanuel Vadot    maxItems: 1
21fac71e4eSEmmanuel Vadot
22fac71e4eSEmmanuel Vadot  clock-names:
23fac71e4eSEmmanuel Vadot    items:
24fac71e4eSEmmanuel Vadot      - const: mclk
25fac71e4eSEmmanuel Vadot
26fac71e4eSEmmanuel Vadot  '#sound-dai-cells':
27fac71e4eSEmmanuel Vadot    const: 0
28fac71e4eSEmmanuel Vadot
29*aa1a8ff2SEmmanuel Vadot  AVDD-supply:
30*aa1a8ff2SEmmanuel Vadot    description: Analogue supply.
31*aa1a8ff2SEmmanuel Vadot
32*aa1a8ff2SEmmanuel Vadot  DBVDD-supply:
33*aa1a8ff2SEmmanuel Vadot    description: Digital Buffer Supply.
34*aa1a8ff2SEmmanuel Vadot
35*aa1a8ff2SEmmanuel Vadot  DCVDD-supply:
36*aa1a8ff2SEmmanuel Vadot    description: Digital Core Supply.
37*aa1a8ff2SEmmanuel Vadot
38*aa1a8ff2SEmmanuel Vadot  SPKVDD1-supply:
39*aa1a8ff2SEmmanuel Vadot    description: Supply for speaker drivers 1.
40*aa1a8ff2SEmmanuel Vadot
41*aa1a8ff2SEmmanuel Vadot  SPKVDD2-supply:
42*aa1a8ff2SEmmanuel Vadot    description: Supply for speaker drivers 2.
43*aa1a8ff2SEmmanuel Vadot
44fac71e4eSEmmanuel Vadot  wlf,capless:
45fac71e4eSEmmanuel Vadot    type: boolean
46fac71e4eSEmmanuel Vadot    description:
47fac71e4eSEmmanuel Vadot      If present, OUT3 pin will be enabled and disabled together with HP_L and
48fac71e4eSEmmanuel Vadot      HP_R pins in response to jack detect events.
49fac71e4eSEmmanuel Vadot
50fac71e4eSEmmanuel Vadot  wlf,gpio-cfg:
51fac71e4eSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32-array
52fac71e4eSEmmanuel Vadot    maxItems: 2
53fac71e4eSEmmanuel Vadot    description: |
54fac71e4eSEmmanuel Vadot      A list of GPIO configuration register values.
55fac71e4eSEmmanuel Vadot       - gpio-cfg[0]: ALRCGPIO of R9 (Audio interface)
56fac71e4eSEmmanuel Vadot       - gpio-cfg[1]: {GPIOPOL:GPIOSEL[2:0]} of R48 (Additional Control 4).
57fac71e4eSEmmanuel Vadot
58fac71e4eSEmmanuel Vadot  wlf,hp-cfg:
59fac71e4eSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32-array
60fac71e4eSEmmanuel Vadot    maxItems: 3
61fac71e4eSEmmanuel Vadot    description: |
62fac71e4eSEmmanuel Vadot      A list of headphone jack detect configuration register values:
63fac71e4eSEmmanuel Vadot       - hp-cfg[0]: HPSEL[1:0] of R48 (Additional Control 4).
64fac71e4eSEmmanuel Vadot       - hp-cfg[1]: {HPSWEN:HPSWPOL} of R24 (Additional Control 2).
65fac71e4eSEmmanuel Vadot       - hp-cfg[2]: {TOCLKSEL:TOEN} of R23 (Additional Control 1).
66fac71e4eSEmmanuel Vadot
67fac71e4eSEmmanuel Vadot  wlf,shared-lrclk:
68fac71e4eSEmmanuel Vadot    type: boolean
69fac71e4eSEmmanuel Vadot    description:
70fac71e4eSEmmanuel Vadot      If present, the LRCM bit of R24 (Additional control 2) gets set,
71fac71e4eSEmmanuel Vadot      indicating that ADCLRC and DACLRC pins will be disabled only when ADC
72fac71e4eSEmmanuel Vadot      (Left and Right) and DAC (Left and Right) are disabled.
73fac71e4eSEmmanuel Vadot      When WM8960 works on synchronize mode and DACLRC pin is used to supply
74fac71e4eSEmmanuel Vadot      frame clock, it will no frame clock for captrue unless enable DAC to
75fac71e4eSEmmanuel Vadot      enable DACLRC pin. If shared-lrclk is present, no need to enable DAC for
76fac71e4eSEmmanuel Vadot      captrue.
77fac71e4eSEmmanuel Vadot
78fac71e4eSEmmanuel Vadotrequired:
79fac71e4eSEmmanuel Vadot  - compatible
80fac71e4eSEmmanuel Vadot  - reg
81fac71e4eSEmmanuel Vadot
82fac71e4eSEmmanuel VadotallOf:
83fac71e4eSEmmanuel Vadot  - $ref: dai-common.yaml#
84fac71e4eSEmmanuel Vadot
85fac71e4eSEmmanuel VadotunevaluatedProperties: false
86fac71e4eSEmmanuel Vadot
87fac71e4eSEmmanuel Vadotexamples:
88fac71e4eSEmmanuel Vadot  - |
89fac71e4eSEmmanuel Vadot    i2c {
90fac71e4eSEmmanuel Vadot        #address-cells = <1>;
91fac71e4eSEmmanuel Vadot        #size-cells = <0>;
92fac71e4eSEmmanuel Vadot
93fac71e4eSEmmanuel Vadot        audio-codec@1a {
94fac71e4eSEmmanuel Vadot            compatible = "wlf,wm8960";
95fac71e4eSEmmanuel Vadot            reg = <0x1a>;
96fac71e4eSEmmanuel Vadot            clocks = <&clks 0>;
97fac71e4eSEmmanuel Vadot            clock-names = "mclk";
98fac71e4eSEmmanuel Vadot            #sound-dai-cells = <0>;
99fac71e4eSEmmanuel Vadot            wlf,hp-cfg = <3 2 3>;
100fac71e4eSEmmanuel Vadot            wlf,gpio-cfg = <1 3>;
101fac71e4eSEmmanuel Vadot            wlf,shared-lrclk;
102*aa1a8ff2SEmmanuel Vadot            DCVDD-supply = <&reg_audio>;
103*aa1a8ff2SEmmanuel Vadot            DBVDD-supply = <&reg_audio>;
104*aa1a8ff2SEmmanuel Vadot            AVDD-supply = <&reg_audio>;
105*aa1a8ff2SEmmanuel Vadot            SPKVDD1-supply = <&reg_audio>;
106*aa1a8ff2SEmmanuel Vadot            SPKVDD2-supply = <&reg_audio>;
107fac71e4eSEmmanuel Vadot        };
108fac71e4eSEmmanuel Vadot    };
109