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