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:
8318790b1bSPeter Ujfalusi          minItems: 6
848142500eSPeter Ujfalusi          items:
858142500eSPeter Ujfalusi            - description: AUXCLK clock for McASP used by CPB audio
868142500eSPeter Ujfalusi            - description: Parent for CPB_McASP auxclk (for 48KHz)
878142500eSPeter Ujfalusi            - description: Parent for CPB_McASP auxclk (for 44.1KHz)
888142500eSPeter Ujfalusi            - description: SCKI clock for the pcm3168a codec on CPB
898142500eSPeter Ujfalusi            - description: Parent for CPB_SCKI clock (for 48KHz)
908142500eSPeter Ujfalusi            - description: Parent for CPB_SCKI clock (for 44.1KHz)
918142500eSPeter Ujfalusi
928142500eSPeter Ujfalusi        clock-names:
938142500eSPeter Ujfalusi          items:
948142500eSPeter Ujfalusi            - const: cpb-mcasp-auxclk
958142500eSPeter Ujfalusi            - const: cpb-mcasp-auxclk-48000
968142500eSPeter Ujfalusi            - const: cpb-mcasp-auxclk-44100
978142500eSPeter Ujfalusi            - const: cpb-codec-scki
988142500eSPeter Ujfalusi            - const: cpb-codec-scki-48000
998142500eSPeter Ujfalusi            - const: cpb-codec-scki-44100
1008142500eSPeter Ujfalusi
10118790b1bSPeter Ujfalusi  - if:
10218790b1bSPeter Ujfalusi      properties:
10318790b1bSPeter Ujfalusi        compatible:
10418790b1bSPeter Ujfalusi          contains:
10518790b1bSPeter Ujfalusi            const: ti,j7200-cpb-audio
1068142500eSPeter Ujfalusi
10718790b1bSPeter Ujfalusi    then:
10818790b1bSPeter Ujfalusi      properties:
10918790b1bSPeter Ujfalusi        clocks:
11018790b1bSPeter Ujfalusi          maxItems: 4
11118790b1bSPeter Ujfalusi          items:
11218790b1bSPeter Ujfalusi            - description: AUXCLK clock for McASP used by CPB audio
11318790b1bSPeter Ujfalusi            - description: Parent for CPB_McASP auxclk (for 48KHz)
11418790b1bSPeter Ujfalusi            - description: SCKI clock for the pcm3168a codec on CPB
11518790b1bSPeter Ujfalusi            - description: Parent for CPB_SCKI clock (for 48KHz)
11618790b1bSPeter Ujfalusi
11718790b1bSPeter Ujfalusi        clock-names:
11818790b1bSPeter Ujfalusi          items:
11918790b1bSPeter Ujfalusi            - const: cpb-mcasp-auxclk
12018790b1bSPeter Ujfalusi            - const: cpb-mcasp-auxclk-48000
12118790b1bSPeter Ujfalusi            - const: cpb-codec-scki
12218790b1bSPeter Ujfalusi            - const: cpb-codec-scki-48000
1238142500eSPeter Ujfalusi
1248142500eSPeter Ujfalusiexamples:
1258142500eSPeter Ujfalusi  - |+
1268142500eSPeter Ujfalusi    sound {
1278142500eSPeter Ujfalusi        compatible = "ti,j721e-cpb-audio";
1288142500eSPeter Ujfalusi        model = "j721e-cpb";
1298142500eSPeter Ujfalusi
1308142500eSPeter Ujfalusi        status = "okay";
1318142500eSPeter Ujfalusi
1328142500eSPeter Ujfalusi        ti,cpb-mcasp = <&mcasp10>;
1338142500eSPeter Ujfalusi        ti,cpb-codec = <&pcm3168a_1>;
1348142500eSPeter Ujfalusi
1358142500eSPeter Ujfalusi        clocks = <&k3_clks 184 1>,
1368142500eSPeter Ujfalusi                 <&k3_clks 184 2>, <&k3_clks 184 4>,
1378142500eSPeter Ujfalusi                 <&k3_clks 157 371>,
1388142500eSPeter Ujfalusi                 <&k3_clks 157 400>, <&k3_clks 157 401>;
1398142500eSPeter Ujfalusi        clock-names = "cpb-mcasp-auxclk",
1408142500eSPeter Ujfalusi                      "cpb-mcasp-auxclk-48000", "cpb-mcasp-auxclk-44100",
1418142500eSPeter Ujfalusi                      "cpb-codec-scki",
1428142500eSPeter Ujfalusi                      "cpb-codec-scki-48000", "cpb-codec-scki-44100";
1438142500eSPeter Ujfalusi    };
144