1*4882a593SmuzhiyunAmlogic AXG sound card: 2*4882a593Smuzhiyun 3*4882a593SmuzhiyunRequired properties: 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun- compatible: "amlogic,axg-sound-card" 6*4882a593Smuzhiyun- model : User specified audio sound card name, one string 7*4882a593Smuzhiyun 8*4882a593SmuzhiyunOptional properties: 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun- audio-aux-devs : List of phandles pointing to auxiliary devices 11*4882a593Smuzhiyun- audio-widgets : Please refer to widgets.txt. 12*4882a593Smuzhiyun- audio-routing : A list of the connections between audio components. 13*4882a593Smuzhiyun 14*4882a593SmuzhiyunSubnodes: 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun- dai-link: Container for dai-link level properties and the CODEC 17*4882a593Smuzhiyun sub-nodes. There should be at least one (and probably more) 18*4882a593Smuzhiyun subnode of this type. 19*4882a593Smuzhiyun 20*4882a593SmuzhiyunRequired dai-link properties: 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun- sound-dai: phandle and port of the CPU DAI. 23*4882a593Smuzhiyun 24*4882a593SmuzhiyunRequired TDM Backend dai-link properties: 25*4882a593Smuzhiyun- dai-format : CPU/CODEC common audio format 26*4882a593Smuzhiyun 27*4882a593SmuzhiyunOptional TDM Backend dai-link properties: 28*4882a593Smuzhiyun- dai-tdm-slot-rx-mask-{0,1,2,3}: Receive direction slot masks 29*4882a593Smuzhiyun- dai-tdm-slot-tx-mask-{0,1,2,3}: Transmit direction slot masks 30*4882a593Smuzhiyun When omitted, mask is assumed to have to no 31*4882a593Smuzhiyun slots. A valid must have at one slot, so at 32*4882a593Smuzhiyun least one these mask should be provided with 33*4882a593Smuzhiyun an enabled slot. 34*4882a593Smuzhiyun- dai-tdm-slot-num : Please refer to tdm-slot.txt. 35*4882a593Smuzhiyun If omitted, slot number is set to accommodate the largest 36*4882a593Smuzhiyun mask provided. 37*4882a593Smuzhiyun- dai-tdm-slot-width : Please refer to tdm-slot.txt. default to 32 if omitted. 38*4882a593Smuzhiyun- mclk-fs : Multiplication factor between stream rate and mclk 39*4882a593Smuzhiyun 40*4882a593SmuzhiyunBackend dai-link subnodes: 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun- codec: dai-link representing backend links should have at least one subnode. 43*4882a593Smuzhiyun One subnode for each codec of the dai-link. 44*4882a593Smuzhiyun dai-link representing frontend links have no codec, therefore have no 45*4882a593Smuzhiyun subnodes 46*4882a593Smuzhiyun 47*4882a593SmuzhiyunRequired codec subnodes properties: 48*4882a593Smuzhiyun 49*4882a593Smuzhiyun- sound-dai: phandle and port of the CODEC DAI. 50*4882a593Smuzhiyun 51*4882a593SmuzhiyunOptional codec subnodes properties: 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun- dai-tdm-slot-tx-mask : Please refer to tdm-slot.txt. 54*4882a593Smuzhiyun- dai-tdm-slot-rx-mask : Please refer to tdm-slot.txt. 55*4882a593Smuzhiyun 56*4882a593SmuzhiyunExample: 57*4882a593Smuzhiyun 58*4882a593Smuzhiyunsound { 59*4882a593Smuzhiyun compatible = "amlogic,axg-sound-card"; 60*4882a593Smuzhiyun model = "AXG-S420"; 61*4882a593Smuzhiyun audio-aux-devs = <&tdmin_a>, <&tdmout_c>; 62*4882a593Smuzhiyun audio-widgets = "Line", "Lineout", 63*4882a593Smuzhiyun "Line", "Linein", 64*4882a593Smuzhiyun "Speaker", "Speaker1 Left", 65*4882a593Smuzhiyun "Speaker", "Speaker1 Right"; 66*4882a593Smuzhiyun "Speaker", "Speaker2 Left", 67*4882a593Smuzhiyun "Speaker", "Speaker2 Right"; 68*4882a593Smuzhiyun audio-routing = "TDMOUT_C IN 0", "FRDDR_A OUT 2", 69*4882a593Smuzhiyun "SPDIFOUT IN 0", "FRDDR_A OUT 3", 70*4882a593Smuzhiyun "TDM_C Playback", "TDMOUT_C OUT", 71*4882a593Smuzhiyun "TDMIN_A IN 2", "TDM_C Capture", 72*4882a593Smuzhiyun "TDMIN_A IN 5", "TDM_C Loopback", 73*4882a593Smuzhiyun "TODDR_A IN 0", "TDMIN_A OUT", 74*4882a593Smuzhiyun "Lineout", "Lineout AOUTL", 75*4882a593Smuzhiyun "Lineout", "Lineout AOUTR", 76*4882a593Smuzhiyun "Speaker1 Left", "SPK1 OUT_A", 77*4882a593Smuzhiyun "Speaker2 Left", "SPK2 OUT_A", 78*4882a593Smuzhiyun "Speaker1 Right", "SPK1 OUT_B", 79*4882a593Smuzhiyun "Speaker2 Right", "SPK2 OUT_B", 80*4882a593Smuzhiyun "Linein AINL", "Linein", 81*4882a593Smuzhiyun "Linein AINR", "Linein"; 82*4882a593Smuzhiyun 83*4882a593Smuzhiyun dai-link@0 { 84*4882a593Smuzhiyun sound-dai = <&frddr_a>; 85*4882a593Smuzhiyun }; 86*4882a593Smuzhiyun 87*4882a593Smuzhiyun dai-link@1 { 88*4882a593Smuzhiyun sound-dai = <&toddr_a>; 89*4882a593Smuzhiyun }; 90*4882a593Smuzhiyun 91*4882a593Smuzhiyun dai-link@2 { 92*4882a593Smuzhiyun sound-dai = <&tdmif_c>; 93*4882a593Smuzhiyun dai-format = "i2s"; 94*4882a593Smuzhiyun dai-tdm-slot-tx-mask-2 = <1 1>; 95*4882a593Smuzhiyun dai-tdm-slot-tx-mask-3 = <1 1>; 96*4882a593Smuzhiyun dai-tdm-slot-rx-mask-1 = <1 1>; 97*4882a593Smuzhiyun mclk-fs = <256>; 98*4882a593Smuzhiyun 99*4882a593Smuzhiyun codec@0 { 100*4882a593Smuzhiyun sound-dai = <&lineout>; 101*4882a593Smuzhiyun }; 102*4882a593Smuzhiyun 103*4882a593Smuzhiyun codec@1 { 104*4882a593Smuzhiyun sound-dai = <&speaker_amp1>; 105*4882a593Smuzhiyun }; 106*4882a593Smuzhiyun 107*4882a593Smuzhiyun codec@2 { 108*4882a593Smuzhiyun sound-dai = <&speaker_amp2>; 109*4882a593Smuzhiyun }; 110*4882a593Smuzhiyun 111*4882a593Smuzhiyun codec@3 { 112*4882a593Smuzhiyun sound-dai = <&linein>; 113*4882a593Smuzhiyun }; 114*4882a593Smuzhiyun 115*4882a593Smuzhiyun }; 116*4882a593Smuzhiyun 117*4882a593Smuzhiyun dai-link@3 { 118*4882a593Smuzhiyun sound-dai = <&spdifout>; 119*4882a593Smuzhiyun 120*4882a593Smuzhiyun codec { 121*4882a593Smuzhiyun sound-dai = <&spdif_dit>; 122*4882a593Smuzhiyun }; 123*4882a593Smuzhiyun }; 124*4882a593Smuzhiyun}; 125