18142500eSPeter Ujfalusi# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
28142500eSPeter Ujfalusi%YAML 1.2
38142500eSPeter Ujfalusi---
48142500eSPeter Ujfalusi$id: http://devicetree.org/schemas/sound/ti,j721e-cpb-audio.yaml#
58142500eSPeter Ujfalusi$schema: http://devicetree.org/meta-schemas/core.yaml#
68142500eSPeter Ujfalusi
78142500eSPeter Ujfalusititle: Texas Instruments J721e Common Processor Board Audio Support
88142500eSPeter Ujfalusi
98142500eSPeter Ujfalusimaintainers:
108142500eSPeter Ujfalusi  - Peter Ujfalusi <peter.ujfalusi@ti.com>
118142500eSPeter Ujfalusi
128142500eSPeter Ujfalusidescription: |
138142500eSPeter Ujfalusi  The audio support on the board is using pcm3168a codec connected to McASP10
148142500eSPeter Ujfalusi  serializers in parallel setup.
158142500eSPeter Ujfalusi  The pcm3168a SCKI clock is sourced from j721e AUDIO_REFCLK2 pin.
168142500eSPeter Ujfalusi  In order to support 48KHz and 44.1KHz family of sampling rates the parent
178142500eSPeter Ujfalusi  clock for AUDIO_REFCLK2 needs to be changed between PLL4 (for 48KHz) and
188142500eSPeter Ujfalusi  PLL15 (for 44.1KHz). The same PLLs are used for McASP10's AUXCLK clock via
198142500eSPeter Ujfalusi  different HSDIVIDER.
208142500eSPeter Ujfalusi
218142500eSPeter Ujfalusi  Clocking setup for 48KHz family:
228142500eSPeter Ujfalusi  PLL4 ---> PLL4_HSDIV0 ---> MCASP10_AUXCLK ---> McASP10.auxclk
238142500eSPeter Ujfalusi        |-> PLL4_HSDIV2 ---> AUDIO_REFCLK2  ---> pcm3168a.SCKI
248142500eSPeter Ujfalusi
258142500eSPeter Ujfalusi  Clocking setup for 44.1KHz family:
268142500eSPeter Ujfalusi  PLL15 ---> PLL15_HSDIV0 ---> MCASP10_AUXCLK ---> McASP10.auxclk
278142500eSPeter Ujfalusi         |-> PLL15_HSDIV2 ---> AUDIO_REFCLK2  ---> pcm3168a.SCKI
288142500eSPeter Ujfalusi
298142500eSPeter Ujfalusiproperties:
308142500eSPeter Ujfalusi  compatible:
318142500eSPeter Ujfalusi    items:
328142500eSPeter Ujfalusi      - const: ti,j721e-cpb-audio
338142500eSPeter Ujfalusi
348142500eSPeter Ujfalusi  model:
358142500eSPeter Ujfalusi    $ref: /schemas/types.yaml#/definitions/string
368142500eSPeter Ujfalusi    description: User specified audio sound card name
378142500eSPeter Ujfalusi
388142500eSPeter Ujfalusi  ti,cpb-mcasp:
398142500eSPeter Ujfalusi    description: phandle to McASP used on CPB
405f0b06daSRob Herring    $ref: /schemas/types.yaml#/definitions/phandle
418142500eSPeter Ujfalusi
428142500eSPeter Ujfalusi  ti,cpb-codec:
438142500eSPeter Ujfalusi    description: phandle to the pcm3168a codec used on the CPB
445f0b06daSRob Herring    $ref: /schemas/types.yaml#/definitions/phandle
458142500eSPeter Ujfalusi
468142500eSPeter Ujfalusi  clocks:
478142500eSPeter Ujfalusi    items:
488142500eSPeter Ujfalusi      - description: AUXCLK clock for McASP used by CPB audio
498142500eSPeter Ujfalusi      - description: Parent for CPB_McASP auxclk (for 48KHz)
508142500eSPeter Ujfalusi      - description: Parent for CPB_McASP auxclk (for 44.1KHz)
518142500eSPeter Ujfalusi      - description: SCKI clock for the pcm3168a codec on CPB
528142500eSPeter Ujfalusi      - description: Parent for CPB_SCKI clock (for 48KHz)
538142500eSPeter Ujfalusi      - description: Parent for CPB_SCKI clock (for 44.1KHz)
548142500eSPeter Ujfalusi
558142500eSPeter Ujfalusi  clock-names:
568142500eSPeter Ujfalusi    items:
578142500eSPeter Ujfalusi      - const: cpb-mcasp-auxclk
588142500eSPeter Ujfalusi      - const: cpb-mcasp-auxclk-48000
598142500eSPeter Ujfalusi      - const: cpb-mcasp-auxclk-44100
608142500eSPeter Ujfalusi      - const: cpb-codec-scki
618142500eSPeter Ujfalusi      - const: cpb-codec-scki-48000
628142500eSPeter Ujfalusi      - const: cpb-codec-scki-44100
638142500eSPeter Ujfalusi
648142500eSPeter Ujfalusirequired:
658142500eSPeter Ujfalusi  - compatible
668142500eSPeter Ujfalusi  - model
678142500eSPeter Ujfalusi  - ti,cpb-mcasp
688142500eSPeter Ujfalusi  - ti,cpb-codec
698142500eSPeter Ujfalusi  - clocks
708142500eSPeter Ujfalusi  - clock-names
718142500eSPeter Ujfalusi
728142500eSPeter UjfalusiadditionalProperties: false
738142500eSPeter Ujfalusi
748142500eSPeter Ujfalusiexamples:
758142500eSPeter Ujfalusi  - |+
768142500eSPeter Ujfalusi    sound {
778142500eSPeter Ujfalusi        compatible = "ti,j721e-cpb-audio";
788142500eSPeter Ujfalusi        model = "j721e-cpb";
798142500eSPeter Ujfalusi
808142500eSPeter Ujfalusi        status = "okay";
818142500eSPeter Ujfalusi
828142500eSPeter Ujfalusi        ti,cpb-mcasp = <&mcasp10>;
838142500eSPeter Ujfalusi        ti,cpb-codec = <&pcm3168a_1>;
848142500eSPeter Ujfalusi
858142500eSPeter Ujfalusi        clocks = <&k3_clks 184 1>,
868142500eSPeter Ujfalusi                 <&k3_clks 184 2>, <&k3_clks 184 4>,
878142500eSPeter Ujfalusi                 <&k3_clks 157 371>,
888142500eSPeter Ujfalusi                 <&k3_clks 157 400>, <&k3_clks 157 401>;
898142500eSPeter Ujfalusi        clock-names = "cpb-mcasp-auxclk",
908142500eSPeter Ujfalusi                      "cpb-mcasp-auxclk-48000", "cpb-mcasp-auxclk-44100",
918142500eSPeter Ujfalusi                      "cpb-codec-scki",
928142500eSPeter Ujfalusi                      "cpb-codec-scki-48000", "cpb-codec-scki-44100";
938142500eSPeter Ujfalusi    };
94