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