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
408142500eSPeter Ujfalusi    allOf:
418142500eSPeter Ujfalusi      - $ref: /schemas/types.yaml#/definitions/phandle
428142500eSPeter Ujfalusi
438142500eSPeter Ujfalusi  ti,cpb-codec:
448142500eSPeter Ujfalusi    description: phandle to the pcm3168a codec used on the CPB
458142500eSPeter Ujfalusi    allOf:
468142500eSPeter Ujfalusi      - $ref: /schemas/types.yaml#/definitions/phandle
478142500eSPeter Ujfalusi
488142500eSPeter Ujfalusi  clocks:
498142500eSPeter Ujfalusi    items:
508142500eSPeter Ujfalusi      - description: AUXCLK clock for McASP used by CPB audio
518142500eSPeter Ujfalusi      - description: Parent for CPB_McASP auxclk (for 48KHz)
528142500eSPeter Ujfalusi      - description: Parent for CPB_McASP auxclk (for 44.1KHz)
538142500eSPeter Ujfalusi      - description: SCKI clock for the pcm3168a codec on CPB
548142500eSPeter Ujfalusi      - description: Parent for CPB_SCKI clock (for 48KHz)
558142500eSPeter Ujfalusi      - description: Parent for CPB_SCKI clock (for 44.1KHz)
568142500eSPeter Ujfalusi
578142500eSPeter Ujfalusi  clock-names:
588142500eSPeter Ujfalusi    items:
598142500eSPeter Ujfalusi      - const: cpb-mcasp-auxclk
608142500eSPeter Ujfalusi      - const: cpb-mcasp-auxclk-48000
618142500eSPeter Ujfalusi      - const: cpb-mcasp-auxclk-44100
628142500eSPeter Ujfalusi      - const: cpb-codec-scki
638142500eSPeter Ujfalusi      - const: cpb-codec-scki-48000
648142500eSPeter Ujfalusi      - const: cpb-codec-scki-44100
658142500eSPeter Ujfalusi
668142500eSPeter Ujfalusirequired:
678142500eSPeter Ujfalusi  - compatible
688142500eSPeter Ujfalusi  - model
698142500eSPeter Ujfalusi  - ti,cpb-mcasp
708142500eSPeter Ujfalusi  - ti,cpb-codec
718142500eSPeter Ujfalusi  - clocks
728142500eSPeter Ujfalusi  - clock-names
738142500eSPeter Ujfalusi
748142500eSPeter UjfalusiadditionalProperties: false
758142500eSPeter Ujfalusi
768142500eSPeter Ujfalusiexamples:
778142500eSPeter Ujfalusi  - |+
788142500eSPeter Ujfalusi    sound {
798142500eSPeter Ujfalusi        compatible = "ti,j721e-cpb-audio";
808142500eSPeter Ujfalusi        model = "j721e-cpb";
818142500eSPeter Ujfalusi
828142500eSPeter Ujfalusi        status = "okay";
838142500eSPeter Ujfalusi
848142500eSPeter Ujfalusi        ti,cpb-mcasp = <&mcasp10>;
858142500eSPeter Ujfalusi        ti,cpb-codec = <&pcm3168a_1>;
868142500eSPeter Ujfalusi
878142500eSPeter Ujfalusi        clocks = <&k3_clks 184 1>,
888142500eSPeter Ujfalusi                 <&k3_clks 184 2>, <&k3_clks 184 4>,
898142500eSPeter Ujfalusi                 <&k3_clks 157 371>,
908142500eSPeter Ujfalusi                 <&k3_clks 157 400>, <&k3_clks 157 401>;
918142500eSPeter Ujfalusi        clock-names = "cpb-mcasp-auxclk",
928142500eSPeter Ujfalusi                      "cpb-mcasp-auxclk-48000", "cpb-mcasp-auxclk-44100",
938142500eSPeter Ujfalusi                      "cpb-codec-scki",
948142500eSPeter Ujfalusi                      "cpb-codec-scki-48000", "cpb-codec-scki-44100";
958142500eSPeter Ujfalusi    };
96