18142500eSPeter Ujfalusi# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*61fc03b6SPeter Ujfalusi# Copyright (C) 2020 Texas Instruments Incorporated
3*61fc03b6SPeter Ujfalusi# Author: Peter Ujfalusi <peter.ujfalusi@ti.com>
48142500eSPeter Ujfalusi%YAML 1.2
58142500eSPeter Ujfalusi---
68142500eSPeter Ujfalusi$id: http://devicetree.org/schemas/sound/ti,j721e-cpb-audio.yaml#
78142500eSPeter Ujfalusi$schema: http://devicetree.org/meta-schemas/core.yaml#
88142500eSPeter Ujfalusi
98142500eSPeter Ujfalusititle: Texas Instruments J721e Common Processor Board Audio Support
108142500eSPeter Ujfalusi
118142500eSPeter Ujfalusimaintainers:
12*61fc03b6SPeter Ujfalusi  - Peter Ujfalusi <peter.ujfalusi@gmail.com>
138142500eSPeter Ujfalusi
148142500eSPeter Ujfalusidescription: |
158142500eSPeter Ujfalusi  The audio support on the board is using pcm3168a codec connected to McASP10
168142500eSPeter Ujfalusi  serializers in parallel setup.
178142500eSPeter Ujfalusi  The pcm3168a SCKI clock is sourced from j721e AUDIO_REFCLK2 pin.
188142500eSPeter Ujfalusi  In order to support 48KHz and 44.1KHz family of sampling rates the parent
198142500eSPeter Ujfalusi  clock for AUDIO_REFCLK2 needs to be changed between PLL4 (for 48KHz) and
208142500eSPeter Ujfalusi  PLL15 (for 44.1KHz). The same PLLs are used for McASP10's AUXCLK clock via
218142500eSPeter Ujfalusi  different HSDIVIDER.
228142500eSPeter Ujfalusi
2318790b1bSPeter Ujfalusi  Clocking setup for j721e:
2418790b1bSPeter Ujfalusi    48KHz family:
258142500eSPeter Ujfalusi    PLL4 ---> PLL4_HSDIV0 ---> MCASP10_AUXCLK ---> McASP10.auxclk
268142500eSPeter Ujfalusi          |-> PLL4_HSDIV2 ---> AUDIO_REFCLK2  ---> pcm3168a.SCKI
278142500eSPeter Ujfalusi
2818790b1bSPeter Ujfalusi    44.1KHz family:
298142500eSPeter Ujfalusi    PLL15 ---> PLL15_HSDIV0 ---> MCASP10_AUXCLK ---> McASP10.auxclk
308142500eSPeter Ujfalusi           |-> PLL15_HSDIV2 ---> AUDIO_REFCLK2  ---> pcm3168a.SCKI
318142500eSPeter Ujfalusi
3218790b1bSPeter Ujfalusi  Clocking setup for j7200:
3318790b1bSPeter Ujfalusi    48KHz family:
3418790b1bSPeter Ujfalusi    PLL4 ---> PLL4_HSDIV0 ---> MCASP0_AUXCLK ---> McASP0.auxclk
3518790b1bSPeter Ujfalusi          |-> PLL4_HSDIV2 ---> AUDIO_REFCLK2  ---> pcm3168a.SCKI
3618790b1bSPeter Ujfalusi
378142500eSPeter Ujfalusiproperties:
388142500eSPeter Ujfalusi  compatible:
3918790b1bSPeter Ujfalusi    enum:
4018790b1bSPeter Ujfalusi      - ti,j721e-cpb-audio
4118790b1bSPeter Ujfalusi      - ti,j7200-cpb-audio
428142500eSPeter Ujfalusi
438142500eSPeter Ujfalusi  model:
448142500eSPeter Ujfalusi    $ref: /schemas/types.yaml#/definitions/string
458142500eSPeter Ujfalusi    description: User specified audio sound card name
468142500eSPeter Ujfalusi
478142500eSPeter Ujfalusi  ti,cpb-mcasp:
488142500eSPeter Ujfalusi    description: phandle to McASP used on CPB
495f0b06daSRob Herring    $ref: /schemas/types.yaml#/definitions/phandle
508142500eSPeter Ujfalusi
518142500eSPeter Ujfalusi  ti,cpb-codec:
528142500eSPeter Ujfalusi    description: phandle to the pcm3168a codec used on the CPB
535f0b06daSRob Herring    $ref: /schemas/types.yaml#/definitions/phandle
548142500eSPeter Ujfalusi
558142500eSPeter Ujfalusi  clocks:
5618790b1bSPeter Ujfalusi    minItems: 4
5718790b1bSPeter Ujfalusi    maxItems: 6
5818790b1bSPeter Ujfalusi
5918790b1bSPeter Ujfalusi  clock-names:
6018790b1bSPeter Ujfalusi    minItems: 4
6118790b1bSPeter Ujfalusi    maxItems: 6
6218790b1bSPeter Ujfalusi
6318790b1bSPeter Ujfalusirequired:
6418790b1bSPeter Ujfalusi  - compatible
6518790b1bSPeter Ujfalusi  - model
6618790b1bSPeter Ujfalusi  - ti,cpb-mcasp
6718790b1bSPeter Ujfalusi  - ti,cpb-codec
6818790b1bSPeter Ujfalusi  - clocks
6918790b1bSPeter Ujfalusi  - clock-names
7018790b1bSPeter Ujfalusi
7118790b1bSPeter UjfalusiadditionalProperties: false
7218790b1bSPeter Ujfalusi
7318790b1bSPeter UjfalusiallOf:
7418790b1bSPeter Ujfalusi  - if:
7518790b1bSPeter Ujfalusi      properties:
7618790b1bSPeter Ujfalusi        compatible:
7718790b1bSPeter Ujfalusi          contains:
7818790b1bSPeter Ujfalusi            const: ti,j721e-cpb-audio
7918790b1bSPeter Ujfalusi
8018790b1bSPeter Ujfalusi    then:
8118790b1bSPeter Ujfalusi      properties:
8218790b1bSPeter Ujfalusi        clocks:
838142500eSPeter Ujfalusi          items:
848142500eSPeter Ujfalusi            - description: AUXCLK clock for McASP used by CPB audio
858142500eSPeter Ujfalusi            - description: Parent for CPB_McASP auxclk (for 48KHz)
868142500eSPeter Ujfalusi            - description: Parent for CPB_McASP auxclk (for 44.1KHz)
878142500eSPeter Ujfalusi            - description: SCKI clock for the pcm3168a codec on CPB
888142500eSPeter Ujfalusi            - description: Parent for CPB_SCKI clock (for 48KHz)
898142500eSPeter Ujfalusi            - description: Parent for CPB_SCKI clock (for 44.1KHz)
908142500eSPeter Ujfalusi
918142500eSPeter Ujfalusi        clock-names:
928142500eSPeter Ujfalusi          items:
938142500eSPeter Ujfalusi            - const: cpb-mcasp-auxclk
948142500eSPeter Ujfalusi            - const: cpb-mcasp-auxclk-48000
958142500eSPeter Ujfalusi            - const: cpb-mcasp-auxclk-44100
968142500eSPeter Ujfalusi            - const: cpb-codec-scki
978142500eSPeter Ujfalusi            - const: cpb-codec-scki-48000
988142500eSPeter Ujfalusi            - const: cpb-codec-scki-44100
998142500eSPeter Ujfalusi
10018790b1bSPeter Ujfalusi  - if:
10118790b1bSPeter Ujfalusi      properties:
10218790b1bSPeter Ujfalusi        compatible:
10318790b1bSPeter Ujfalusi          contains:
10418790b1bSPeter Ujfalusi            const: ti,j7200-cpb-audio
1058142500eSPeter Ujfalusi
10618790b1bSPeter Ujfalusi    then:
10718790b1bSPeter Ujfalusi      properties:
10818790b1bSPeter Ujfalusi        clocks:
10918790b1bSPeter Ujfalusi          items:
11018790b1bSPeter Ujfalusi            - description: AUXCLK clock for McASP used by CPB audio
11118790b1bSPeter Ujfalusi            - description: Parent for CPB_McASP auxclk (for 48KHz)
11218790b1bSPeter Ujfalusi            - description: SCKI clock for the pcm3168a codec on CPB
11318790b1bSPeter Ujfalusi            - description: Parent for CPB_SCKI clock (for 48KHz)
11418790b1bSPeter Ujfalusi
11518790b1bSPeter Ujfalusi        clock-names:
11618790b1bSPeter Ujfalusi          items:
11718790b1bSPeter Ujfalusi            - const: cpb-mcasp-auxclk
11818790b1bSPeter Ujfalusi            - const: cpb-mcasp-auxclk-48000
11918790b1bSPeter Ujfalusi            - const: cpb-codec-scki
12018790b1bSPeter Ujfalusi            - const: cpb-codec-scki-48000
1218142500eSPeter Ujfalusi
1228142500eSPeter Ujfalusiexamples:
1238142500eSPeter Ujfalusi  - |+
1248142500eSPeter Ujfalusi    sound {
1258142500eSPeter Ujfalusi        compatible = "ti,j721e-cpb-audio";
1268142500eSPeter Ujfalusi        model = "j721e-cpb";
1278142500eSPeter Ujfalusi
1288142500eSPeter Ujfalusi        ti,cpb-mcasp = <&mcasp10>;
1298142500eSPeter Ujfalusi        ti,cpb-codec = <&pcm3168a_1>;
1308142500eSPeter Ujfalusi
1318142500eSPeter Ujfalusi        clocks = <&k3_clks 184 1>,
1328142500eSPeter Ujfalusi                 <&k3_clks 184 2>, <&k3_clks 184 4>,
1338142500eSPeter Ujfalusi                 <&k3_clks 157 371>,
1348142500eSPeter Ujfalusi                 <&k3_clks 157 400>, <&k3_clks 157 401>;
1358142500eSPeter Ujfalusi        clock-names = "cpb-mcasp-auxclk",
1368142500eSPeter Ujfalusi                      "cpb-mcasp-auxclk-48000", "cpb-mcasp-auxclk-44100",
1378142500eSPeter Ujfalusi                      "cpb-codec-scki",
1388142500eSPeter Ujfalusi                      "cpb-codec-scki-48000", "cpb-codec-scki-44100";
1398142500eSPeter Ujfalusi    };
140