Amlogic AXG sound card: Required properties: - compatible: "amlogic,axg-sound-card" - model : User specified audio sound card name, one string Optional properties: - audio-aux-devs : List of phandles pointing to auxiliary devices - audio-widgets : Please refer to widgets.txt. - audio-routing : A list of the connections between audio components. Subnodes: - dai-link: Container for dai-link level properties and the CODEC sub-nodes. There should be at least one (and probably more) subnode of this type. Required dai-link properties: - sound-dai: phandle and port of the CPU DAI. Required TDM Backend dai-link properties: - dai-format : CPU/CODEC common audio format Optional TDM Backend dai-link properties: - dai-tdm-slot-rx-mask-{0,1,2,3}: Receive direction slot masks - dai-tdm-slot-tx-mask-{0,1,2,3}: Transmit direction slot masks When omitted, mask is assumed to have to no slots. A valid must have at one slot, so at least one these mask should be provided with an enabled slot. - dai-tdm-slot-num : Please refer to tdm-slot.txt. If omitted, slot number is set to accommodate the largest mask provided. - dai-tdm-slot-width : Please refer to tdm-slot.txt. default to 32 if omitted. - mclk-fs : Multiplication factor between stream rate and mclk Backend dai-link subnodes: - codec: 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 Required codec subnodes properties: - sound-dai: phandle and port of the CODEC DAI. Optional codec subnodes properties: - dai-tdm-slot-tx-mask : Please refer to tdm-slot.txt. - dai-tdm-slot-rx-mask : Please refer to tdm-slot.txt. Example: 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>; }; }; };