| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/sound/amlogic,axg-sound-card.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Amlogic AXG sound card |
| |
| maintainers: |
| - Jerome Brunet <jbrunet@baylibre.com> |
| |
| allOf: |
| - $ref: sound-card-common.yaml# |
| |
| properties: |
| compatible: |
| const: amlogic,axg-sound-card |
| |
| audio-aux-devs: |
| $ref: /schemas/types.yaml#/definitions/phandle-array |
| description: list of auxiliary devices |
| |
| audio-widgets: |
| $ref: /schemas/types.yaml#/definitions/non-unique-string-array |
| description: |
| A list off component DAPM widget. Each entry is a pair of strings, |
| the first being the widget type, the second being the widget name |
| |
| clocks: |
| minItems: 1 |
| maxItems: 3 |
| description: |
| Base PLL clocks of audio susbsytem, used to configure base clock |
| frequencies for different audio use-cases. |
| |
| patternProperties: |
| "^dai-link-[0-9]+$": |
| type: object |
| additionalProperties: false |
| description: |
| Container for dai-link level properties and the CODEC sub-nodes. |
| There should be at least one (and probably more) subnode of this type |
| |
| properties: |
| dai-format: |
| $ref: /schemas/types.yaml#/definitions/string |
| enum: [ i2s, left-j, dsp_a ] |
| |
| dai-tdm-slot-num: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| description: |
| Number of slots in use. If omitted, slot number is set to |
| accommodate the largest mask provided. |
| maximum: 32 |
| |
| dai-tdm-slot-width: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| description: Width in bits for each slot |
| enum: [ 8, 16, 20, 24, 32 ] |
| default: 32 |
| |
| mclk-fs: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| description: |
| Multiplication factor between the frame rate and master clock |
| rate |
| |
| sound-dai: |
| maxItems: 1 |
| description: phandle of the CPU DAI |
| |
| patternProperties: |
| "^dai-tdm-slot-(t|r)x-mask-[0-3]$": |
| $ref: /schemas/types.yaml#/definitions/uint32-array |
| minItems: 1 |
| maxItems: 32 |
| description: |
| Transmit and receive cpu slot masks of each TDM lane |
| When omitted, mask is assumed to have to no slots. A valid |
| interface must have at least one slot, so at least one these |
| mask should be provided with an enabled slot. |
| |
| "^codec(-[0-9]+)?$": |
| type: object |
| additionalProperties: false |
| description: |
| dai-link representing backend links should have at least one subnode. |
| One subnode for each codec of the dai-link. dai-link representing |
| frontend links have no codec, therefore have no subnodes |
| |
| properties: |
| sound-dai: |
| maxItems: 1 |
| description: phandle of the codec DAI |
| |
| patternProperties: |
| "^dai-tdm-slot-(t|r)x-mask$": |
| $ref: /schemas/types.yaml#/definitions/uint32-array |
| minItems: 1 |
| maxItems: 32 |
| description: Transmit and receive codec slot masks |
| |
| required: |
| - sound-dai |
| |
| required: |
| - sound-dai |
| |
| required: |
| - dai-link-0 |
| |
| unevaluatedProperties: false |
| |
| examples: |
| - | |
| sound { |
| compatible = "amlogic,axg-sound-card"; |
| model = "AXG-S420"; |
| audio-aux-devs = <&tdmin_a>, <&tdmout_c>; |
| audio-widgets = "Line", "Lineout", |
| "Line", "Linein", |
| "Speaker", "Speaker1 Left", |
| "Speaker", "Speaker1 Right", |
| "Speaker", "Speaker2 Left", |
| "Speaker", "Speaker2 Right"; |
| audio-routing = "TDMOUT_C IN 0", "FRDDR_A OUT 2", |
| "SPDIFOUT IN 0", "FRDDR_A OUT 3", |
| "TDM_C Playback", "TDMOUT_C OUT", |
| "TDMIN_A IN 2", "TDM_C Capture", |
| "TDMIN_A IN 5", "TDM_C Loopback", |
| "TODDR_A IN 0", "TDMIN_A OUT", |
| "Lineout", "Lineout AOUTL", |
| "Lineout", "Lineout AOUTR", |
| "Speaker1 Left", "SPK1 OUT_A", |
| "Speaker2 Left", "SPK2 OUT_A", |
| "Speaker1 Right", "SPK1 OUT_B", |
| "Speaker2 Right", "SPK2 OUT_B", |
| "Linein AINL", "Linein", |
| "Linein AINR", "Linein"; |
| |
| dai-link-0 { |
| sound-dai = <&frddr_a>; |
| }; |
| |
| dai-link-1 { |
| sound-dai = <&toddr_a>; |
| }; |
| |
| dai-link-2 { |
| sound-dai = <&tdmif_c>; |
| dai-format = "i2s"; |
| dai-tdm-slot-tx-mask-2 = <1 1>; |
| dai-tdm-slot-tx-mask-3 = <1 1>; |
| dai-tdm-slot-rx-mask-1 = <1 1>; |
| mclk-fs = <256>; |
| |
| codec-0 { |
| sound-dai = <&lineout>; |
| }; |
| |
| codec-1 { |
| sound-dai = <&speaker_amp1>; |
| }; |
| |
| codec-2 { |
| sound-dai = <&speaker_amp2>; |
| }; |
| |
| codec-3 { |
| sound-dai = <&linein>; |
| }; |
| }; |
| |
| dai-link-3 { |
| sound-dai = <&spdifout>; |
| |
| codec { |
| sound-dai = <&spdif_dit>; |
| }; |
| }; |
| }; |