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