# 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 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>; }; }; };