Documentation / devicetree / bindings / sound / ti,j721e-cpb-ivi-audio.yaml


Based on kernel version 6.10. Page generated on 2024-07-16 09:00 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (C) 2020 Texas Instruments Incorporated
# Author: Peter Ujfalusi <peter.ujfalusi@ti.com>
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/ti,j721e-cpb-ivi-audio.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Texas Instruments J721e Common Processor Board Audio Support

maintainers:
  - Peter Ujfalusi <peter.ujfalusi@gmail.com>

description: |
  The Infotainment board plugs into the Common Processor Board, the support of the
  extension board is extending the CPB audio support, described in:
  sound/ti,j721e-cpb-audio.txt
 
  The audio support on the Infotainment Expansion Board consists of McASP0
  connected to two pcm3168a codecs with dedicated set of serializers to each.
  The SCKI for pcm3168a is sourced from j721e AUDIO_REFCLK0 pin.
 
  In order to support 48KHz and 44.1KHz family of sampling rates the parent clock
  for AUDIO_REFCLK0 needs to be changed between PLL4 (for 48KHz) and PLL15 (for
  44.1KHz). The same PLLs are used for McASP0's AUXCLK clock via different
  HSDIVIDER.
 
  Note: the same PLL4 and PLL15 is used by the audio support on the CPB!
 
  Clocking setup for 48KHz family:
  PLL4 ---> PLL4_HSDIV0 ---> MCASP10_AUXCLK ---> McASP10.auxclk
        |                |-> MCASP0_AUXCLK  ---> McASP0.auxclk
        |
        |-> PLL4_HSDIV2 ---> AUDIO_REFCLK2  ---> pcm3168a.SCKI
                         |-> AUDIO_REFCLK0  ---> pcm3168a_a/b.SCKI
 
  Clocking setup for 44.1KHz family:
  PLL15 ---> PLL15_HSDIV0 ---> MCASP10_AUXCLK ---> McASP10.auxclk
        |                  |-> MCASP0_AUXCLK  ---> McASP0.auxclk
        |
        |-> PLL15_HSDIV2 ---> AUDIO_REFCLK2   ---> pcm3168a.SCKI
                          |-> AUDIO_REFCLK0   ---> pcm3168a_a/b.SCKI

properties:
  compatible:
    items:
      - const: ti,j721e-cpb-ivi-audio

  model:
    $ref: /schemas/types.yaml#/definitions/string
    description: User specified audio sound card name

  ti,cpb-mcasp:
    description: phandle to McASP used on CPB
    $ref: /schemas/types.yaml#/definitions/phandle

  ti,cpb-codec:
    description: phandle to the pcm3168a codec used on the CPB
    $ref: /schemas/types.yaml#/definitions/phandle

  ti,ivi-mcasp:
    description: phandle to McASP used on IVI
    $ref: /schemas/types.yaml#/definitions/phandle

  ti,ivi-codec-a:
    description: phandle to the pcm3168a-A codec on the expansion board
    $ref: /schemas/types.yaml#/definitions/phandle

  ti,ivi-codec-b:
    description: phandle to the pcm3168a-B codec on the expansion board
    $ref: /schemas/types.yaml#/definitions/phandle

  clocks:
    items:
      - description: AUXCLK clock for McASP used by CPB audio
      - description: Parent for CPB_McASP auxclk (for 48KHz)
      - description: Parent for CPB_McASP auxclk (for 44.1KHz)
      - description: SCKI clock for the pcm3168a codec on CPB
      - description: Parent for CPB_SCKI clock (for 48KHz)
      - description: Parent for CPB_SCKI clock (for 44.1KHz)
      - description: AUXCLK clock for McASP used by IVI audio
      - description: Parent for IVI_McASP auxclk (for 48KHz)
      - description: Parent for IVI_McASP auxclk (for 44.1KHz)
      - description: SCKI clock for the pcm3168a codec on IVI
      - description: Parent for IVI_SCKI clock (for 48KHz)
      - description: Parent for IVI_SCKI clock (for 44.1KHz)

  clock-names:
    items:
      - const: cpb-mcasp-auxclk
      - const: cpb-mcasp-auxclk-48000
      - const: cpb-mcasp-auxclk-44100
      - const: cpb-codec-scki
      - const: cpb-codec-scki-48000
      - const: cpb-codec-scki-44100
      - const: ivi-mcasp-auxclk
      - const: ivi-mcasp-auxclk-48000
      - const: ivi-mcasp-auxclk-44100
      - const: ivi-codec-scki
      - const: ivi-codec-scki-48000
      - const: ivi-codec-scki-44100

required:
  - compatible
  - model
  - ti,cpb-mcasp
  - ti,cpb-codec
  - ti,ivi-mcasp
  - ti,ivi-codec-a
  - ti,ivi-codec-b
  - clocks
  - clock-names

additionalProperties: false

examples:
  - |+
    sound {
        compatible = "ti,j721e-cpb-ivi-audio";
        model = "j721e-cpb-ivi";
 
        ti,cpb-mcasp = <&mcasp10>;
        ti,cpb-codec = <&pcm3168a_1>;
 
        ti,ivi-mcasp = <&mcasp0>;
        ti,ivi-codec-a = <&pcm3168a_a>;
        ti,ivi-codec-b = <&pcm3168a_b>;
 
        clocks = <&k3_clks 184 1>,
                 <&k3_clks 184 2>, <&k3_clks 184 4>,
                 <&k3_clks 157 371>,
                 <&k3_clks 157 400>, <&k3_clks 157 401>,
                 <&k3_clks 174 1>,
                 <&k3_clks 174 2>, <&k3_clks 174 4>,
                 <&k3_clks 157 301>,
                 <&k3_clks 157 330>, <&k3_clks 157 331>;
        clock-names = "cpb-mcasp-auxclk",
                      "cpb-mcasp-auxclk-48000", "cpb-mcasp-auxclk-44100",
                      "cpb-codec-scki",
                      "cpb-codec-scki-48000", "cpb-codec-scki-44100",
                      "ivi-mcasp-auxclk",
                      "ivi-mcasp-auxclk-48000", "ivi-mcasp-auxclk-44100",
                      "ivi-codec-scki",
                      "ivi-codec-scki-48000", "ivi-codec-scki-44100";
    };