Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / sound / ti,j721e-cpb-audio.yaml
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/sound/ti,j721e-cpb-audio.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Texas Instruments J721e Common Processor Board Audio Support
8
9 maintainers:
10   - Peter Ujfalusi <peter.ujfalusi@ti.com>
11
12 description: |
13   The audio support on the board is using pcm3168a codec connected to McASP10
14   serializers in parallel setup.
15   The pcm3168a SCKI clock is sourced from j721e AUDIO_REFCLK2 pin.
16   In order to support 48KHz and 44.1KHz family of sampling rates the parent
17   clock for AUDIO_REFCLK2 needs to be changed between PLL4 (for 48KHz) and
18   PLL15 (for 44.1KHz). The same PLLs are used for McASP10's AUXCLK clock via
19   different HSDIVIDER.
20
21   Clocking setup for j721e:
22     48KHz family:
23     PLL4 ---> PLL4_HSDIV0 ---> MCASP10_AUXCLK ---> McASP10.auxclk
24           |-> PLL4_HSDIV2 ---> AUDIO_REFCLK2  ---> pcm3168a.SCKI
25
26     44.1KHz family:
27     PLL15 ---> PLL15_HSDIV0 ---> MCASP10_AUXCLK ---> McASP10.auxclk
28            |-> PLL15_HSDIV2 ---> AUDIO_REFCLK2  ---> pcm3168a.SCKI
29
30   Clocking setup for j7200:
31     48KHz family:
32     PLL4 ---> PLL4_HSDIV0 ---> MCASP0_AUXCLK ---> McASP0.auxclk
33           |-> PLL4_HSDIV2 ---> AUDIO_REFCLK2  ---> pcm3168a.SCKI
34
35 properties:
36   compatible:
37     enum:
38       - ti,j721e-cpb-audio
39       - ti,j7200-cpb-audio
40
41   model:
42     $ref: /schemas/types.yaml#/definitions/string
43     description: User specified audio sound card name
44
45   ti,cpb-mcasp:
46     description: phandle to McASP used on CPB
47     $ref: /schemas/types.yaml#/definitions/phandle
48
49   ti,cpb-codec:
50     description: phandle to the pcm3168a codec used on the CPB
51     $ref: /schemas/types.yaml#/definitions/phandle
52
53   clocks:
54     minItems: 4
55     maxItems: 6
56
57   clock-names:
58     minItems: 4
59     maxItems: 6
60
61 required:
62   - compatible
63   - model
64   - ti,cpb-mcasp
65   - ti,cpb-codec
66   - clocks
67   - clock-names
68
69 additionalProperties: false
70
71 allOf:
72   - if:
73       properties:
74         compatible:
75           contains:
76             const: ti,j721e-cpb-audio
77
78     then:
79       properties:
80         clocks:
81           minItems: 6
82           items:
83             - description: AUXCLK clock for McASP used by CPB audio
84             - description: Parent for CPB_McASP auxclk (for 48KHz)
85             - description: Parent for CPB_McASP auxclk (for 44.1KHz)
86             - description: SCKI clock for the pcm3168a codec on CPB
87             - description: Parent for CPB_SCKI clock (for 48KHz)
88             - description: Parent for CPB_SCKI clock (for 44.1KHz)
89
90         clock-names:
91           items:
92             - const: cpb-mcasp-auxclk
93             - const: cpb-mcasp-auxclk-48000
94             - const: cpb-mcasp-auxclk-44100
95             - const: cpb-codec-scki
96             - const: cpb-codec-scki-48000
97             - const: cpb-codec-scki-44100
98
99   - if:
100       properties:
101         compatible:
102           contains:
103             const: ti,j7200-cpb-audio
104
105     then:
106       properties:
107         clocks:
108           maxItems: 4
109           items:
110             - description: AUXCLK clock for McASP used by CPB audio
111             - description: Parent for CPB_McASP auxclk (for 48KHz)
112             - description: SCKI clock for the pcm3168a codec on CPB
113             - description: Parent for CPB_SCKI clock (for 48KHz)
114
115         clock-names:
116           items:
117             - const: cpb-mcasp-auxclk
118             - const: cpb-mcasp-auxclk-48000
119             - const: cpb-codec-scki
120             - const: cpb-codec-scki-48000
121
122 examples:
123   - |+
124     sound {
125         compatible = "ti,j721e-cpb-audio";
126         model = "j721e-cpb";
127
128         status = "okay";
129
130         ti,cpb-mcasp = <&mcasp10>;
131         ti,cpb-codec = <&pcm3168a_1>;
132
133         clocks = <&k3_clks 184 1>,
134                  <&k3_clks 184 2>, <&k3_clks 184 4>,
135                  <&k3_clks 157 371>,
136                  <&k3_clks 157 400>, <&k3_clks 157 401>;
137         clock-names = "cpb-mcasp-auxclk",
138                       "cpb-mcasp-auxclk-48000", "cpb-mcasp-auxclk-44100",
139                       "cpb-codec-scki",
140                       "cpb-codec-scki-48000", "cpb-codec-scki-44100";
141     };