xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/sound/ti,j721e-cpb-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-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 audio support on the board is using pcm3168a codec connected to McASP10
14*4882a593Smuzhiyun  serializers in parallel setup.
15*4882a593Smuzhiyun  The pcm3168a SCKI clock is sourced from j721e AUDIO_REFCLK2 pin.
16*4882a593Smuzhiyun  In order to support 48KHz and 44.1KHz family of sampling rates the parent
17*4882a593Smuzhiyun  clock for AUDIO_REFCLK2 needs to be changed between PLL4 (for 48KHz) and
18*4882a593Smuzhiyun  PLL15 (for 44.1KHz). The same PLLs are used for McASP10's AUXCLK clock via
19*4882a593Smuzhiyun  different HSDIVIDER.
20*4882a593Smuzhiyun
21*4882a593Smuzhiyun  Clocking setup for j721e:
22*4882a593Smuzhiyun    48KHz family:
23*4882a593Smuzhiyun    PLL4 ---> PLL4_HSDIV0 ---> MCASP10_AUXCLK ---> McASP10.auxclk
24*4882a593Smuzhiyun          |-> PLL4_HSDIV2 ---> AUDIO_REFCLK2  ---> pcm3168a.SCKI
25*4882a593Smuzhiyun
26*4882a593Smuzhiyun    44.1KHz family:
27*4882a593Smuzhiyun    PLL15 ---> PLL15_HSDIV0 ---> MCASP10_AUXCLK ---> McASP10.auxclk
28*4882a593Smuzhiyun           |-> PLL15_HSDIV2 ---> AUDIO_REFCLK2  ---> pcm3168a.SCKI
29*4882a593Smuzhiyun
30*4882a593Smuzhiyun  Clocking setup for j7200:
31*4882a593Smuzhiyun    48KHz family:
32*4882a593Smuzhiyun    PLL4 ---> PLL4_HSDIV0 ---> MCASP0_AUXCLK ---> McASP0.auxclk
33*4882a593Smuzhiyun          |-> PLL4_HSDIV2 ---> AUDIO_REFCLK2  ---> pcm3168a.SCKI
34*4882a593Smuzhiyun
35*4882a593Smuzhiyunproperties:
36*4882a593Smuzhiyun  compatible:
37*4882a593Smuzhiyun    enum:
38*4882a593Smuzhiyun      - ti,j721e-cpb-audio
39*4882a593Smuzhiyun      - ti,j7200-cpb-audio
40*4882a593Smuzhiyun
41*4882a593Smuzhiyun  model:
42*4882a593Smuzhiyun    $ref: /schemas/types.yaml#/definitions/string
43*4882a593Smuzhiyun    description: User specified audio sound card name
44*4882a593Smuzhiyun
45*4882a593Smuzhiyun  ti,cpb-mcasp:
46*4882a593Smuzhiyun    description: phandle to McASP used on CPB
47*4882a593Smuzhiyun    $ref: /schemas/types.yaml#/definitions/phandle
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun  ti,cpb-codec:
50*4882a593Smuzhiyun    description: phandle to the pcm3168a codec used on the CPB
51*4882a593Smuzhiyun    $ref: /schemas/types.yaml#/definitions/phandle
52*4882a593Smuzhiyun
53*4882a593Smuzhiyun  clocks:
54*4882a593Smuzhiyun    minItems: 4
55*4882a593Smuzhiyun    maxItems: 6
56*4882a593Smuzhiyun
57*4882a593Smuzhiyun  clock-names:
58*4882a593Smuzhiyun    minItems: 4
59*4882a593Smuzhiyun    maxItems: 6
60*4882a593Smuzhiyun
61*4882a593Smuzhiyunrequired:
62*4882a593Smuzhiyun  - compatible
63*4882a593Smuzhiyun  - model
64*4882a593Smuzhiyun  - ti,cpb-mcasp
65*4882a593Smuzhiyun  - ti,cpb-codec
66*4882a593Smuzhiyun  - clocks
67*4882a593Smuzhiyun  - clock-names
68*4882a593Smuzhiyun
69*4882a593SmuzhiyunadditionalProperties: false
70*4882a593Smuzhiyun
71*4882a593SmuzhiyunallOf:
72*4882a593Smuzhiyun  - if:
73*4882a593Smuzhiyun      properties:
74*4882a593Smuzhiyun        compatible:
75*4882a593Smuzhiyun          contains:
76*4882a593Smuzhiyun            const: ti,j721e-cpb-audio
77*4882a593Smuzhiyun
78*4882a593Smuzhiyun    then:
79*4882a593Smuzhiyun      properties:
80*4882a593Smuzhiyun        clocks:
81*4882a593Smuzhiyun          minItems: 6
82*4882a593Smuzhiyun          items:
83*4882a593Smuzhiyun            - description: AUXCLK clock for McASP used by CPB audio
84*4882a593Smuzhiyun            - description: Parent for CPB_McASP auxclk (for 48KHz)
85*4882a593Smuzhiyun            - description: Parent for CPB_McASP auxclk (for 44.1KHz)
86*4882a593Smuzhiyun            - description: SCKI clock for the pcm3168a codec on CPB
87*4882a593Smuzhiyun            - description: Parent for CPB_SCKI clock (for 48KHz)
88*4882a593Smuzhiyun            - description: Parent for CPB_SCKI clock (for 44.1KHz)
89*4882a593Smuzhiyun
90*4882a593Smuzhiyun        clock-names:
91*4882a593Smuzhiyun          items:
92*4882a593Smuzhiyun            - const: cpb-mcasp-auxclk
93*4882a593Smuzhiyun            - const: cpb-mcasp-auxclk-48000
94*4882a593Smuzhiyun            - const: cpb-mcasp-auxclk-44100
95*4882a593Smuzhiyun            - const: cpb-codec-scki
96*4882a593Smuzhiyun            - const: cpb-codec-scki-48000
97*4882a593Smuzhiyun            - const: cpb-codec-scki-44100
98*4882a593Smuzhiyun
99*4882a593Smuzhiyun  - if:
100*4882a593Smuzhiyun      properties:
101*4882a593Smuzhiyun        compatible:
102*4882a593Smuzhiyun          contains:
103*4882a593Smuzhiyun            const: ti,j7200-cpb-audio
104*4882a593Smuzhiyun
105*4882a593Smuzhiyun    then:
106*4882a593Smuzhiyun      properties:
107*4882a593Smuzhiyun        clocks:
108*4882a593Smuzhiyun          maxItems: 4
109*4882a593Smuzhiyun          items:
110*4882a593Smuzhiyun            - description: AUXCLK clock for McASP used by CPB audio
111*4882a593Smuzhiyun            - description: Parent for CPB_McASP auxclk (for 48KHz)
112*4882a593Smuzhiyun            - description: SCKI clock for the pcm3168a codec on CPB
113*4882a593Smuzhiyun            - description: Parent for CPB_SCKI clock (for 48KHz)
114*4882a593Smuzhiyun
115*4882a593Smuzhiyun        clock-names:
116*4882a593Smuzhiyun          items:
117*4882a593Smuzhiyun            - const: cpb-mcasp-auxclk
118*4882a593Smuzhiyun            - const: cpb-mcasp-auxclk-48000
119*4882a593Smuzhiyun            - const: cpb-codec-scki
120*4882a593Smuzhiyun            - const: cpb-codec-scki-48000
121*4882a593Smuzhiyun
122*4882a593Smuzhiyunexamples:
123*4882a593Smuzhiyun  - |+
124*4882a593Smuzhiyun    sound {
125*4882a593Smuzhiyun        compatible = "ti,j721e-cpb-audio";
126*4882a593Smuzhiyun        model = "j721e-cpb";
127*4882a593Smuzhiyun
128*4882a593Smuzhiyun        status = "okay";
129*4882a593Smuzhiyun
130*4882a593Smuzhiyun        ti,cpb-mcasp = <&mcasp10>;
131*4882a593Smuzhiyun        ti,cpb-codec = <&pcm3168a_1>;
132*4882a593Smuzhiyun
133*4882a593Smuzhiyun        clocks = <&k3_clks 184 1>,
134*4882a593Smuzhiyun                 <&k3_clks 184 2>, <&k3_clks 184 4>,
135*4882a593Smuzhiyun                 <&k3_clks 157 371>,
136*4882a593Smuzhiyun                 <&k3_clks 157 400>, <&k3_clks 157 401>;
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    };
142