1Simple-Card: 2 3Simple-Card specifies audio DAI connections of SoC <-> codec. 4 5Required properties: 6 7- compatible : "simple-audio-card" 8 9Optional properties: 10 11- simple-audio-card,name : User specified audio sound card name, one string 12 property. 13- simple-audio-card,widgets : Please refer to widgets.txt. 14- simple-audio-card,routing : A list of the connections between audio components. 15 Each entry is a pair of strings, the first being the 16 connection's sink, the second being the connection's 17 source. 18- simple-audio-card,mclk-fs : Multiplication factor between stream rate and codec 19 mclk. 20- simple-audio-card,hp-det-gpio : Reference to GPIO that signals when 21 headphones are attached. 22- simple-audio-card,mic-det-gpio : Reference to GPIO that signals when 23 a microphone is attached. 24 25Optional subnodes: 26 27- simple-audio-card,dai-link : Container for dai-link level 28 properties and the CPU and CODEC 29 sub-nodes. This container may be 30 omitted when the card has only one 31 DAI link. See the examples and the 32 section bellow. 33 34Dai-link subnode properties and subnodes: 35 36If dai-link subnode is omitted and the subnode properties are directly 37under "sound"-node the subnode property and subnode names have to be 38prefixed with "simple-audio-card,"-prefix. 39 40Required dai-link subnodes: 41 42- cpu : CPU sub-node 43- codec : CODEC sub-node 44 45Optional dai-link subnode properties: 46 47- format : CPU/CODEC common audio format. 48 "i2s", "right_j", "left_j" , "dsp_a" 49 "dsp_b", "ac97", "pdm", "msb", "lsb" 50- frame-master : Indicates dai-link frame master. 51 phandle to a cpu or codec subnode. 52- bitclock-master : Indicates dai-link bit clock master. 53 phandle to a cpu or codec subnode. 54- bitclock-inversion : bool property. Add this if the 55 dai-link uses bit clock inversion. 56- frame-inversion : bool property. Add this if the 57 dai-link uses frame clock inversion. 58 59For backward compatibility the frame-master and bitclock-master 60properties can be used as booleans in codec subnode to indicate if the 61codec is the dai-link frame or bit clock master. In this case there 62should be no dai-link node, the same properties should not be present 63at sound-node level, and the bitclock-inversion and frame-inversion 64properties should also be placed in the codec node if needed. 65 66Required CPU/CODEC subnodes properties: 67 68- sound-dai : phandle and port of CPU/CODEC 69 70Optional CPU/CODEC subnodes properties: 71 72- dai-tdm-slot-num : Please refer to tdm-slot.txt. 73- dai-tdm-slot-width : Please refer to tdm-slot.txt. 74- clocks / system-clock-frequency : specify subnode's clock if needed. 75 it can be specified via "clocks" if system has 76 clock node (= common clock), or "system-clock-frequency" 77 (if system doens't support common clock) 78 If a clock is specified, it is 79 enabled with clk_prepare_enable() 80 in dai startup() and disabled with 81 clk_disable_unprepare() in dai 82 shutdown(). 83 84Example 1 - single DAI link: 85 86sound { 87 compatible = "simple-audio-card"; 88 simple-audio-card,name = "VF610-Tower-Sound-Card"; 89 simple-audio-card,format = "left_j"; 90 simple-audio-card,bitclock-master = <&dailink0_master>; 91 simple-audio-card,frame-master = <&dailink0_master>; 92 simple-audio-card,widgets = 93 "Microphone", "Microphone Jack", 94 "Headphone", "Headphone Jack", 95 "Speaker", "External Speaker"; 96 simple-audio-card,routing = 97 "MIC_IN", "Microphone Jack", 98 "Headphone Jack", "HP_OUT", 99 "External Speaker", "LINE_OUT"; 100 101 simple-audio-card,cpu { 102 sound-dai = <&sh_fsi2 0>; 103 }; 104 105 dailink0_master: simple-audio-card,codec { 106 sound-dai = <&ak4648>; 107 clocks = <&osc>; 108 }; 109}; 110 111&i2c0 { 112 ak4648: ak4648@12 { 113 #sound-dai-cells = <0>; 114 compatible = "asahi-kasei,ak4648"; 115 reg = <0x12>; 116 }; 117}; 118 119sh_fsi2: sh_fsi2@ec230000 { 120 #sound-dai-cells = <1>; 121 compatible = "renesas,sh_fsi2"; 122 reg = <0xec230000 0x400>; 123 interrupt-parent = <&gic>; 124 interrupts = <0 146 0x4>; 125}; 126 127Example 2 - many DAI links: 128 129sound { 130 compatible = "simple-audio-card"; 131 simple-audio-card,name = "Cubox Audio"; 132 133 simple-audio-card,dai-link@0 { /* I2S - HDMI */ 134 format = "i2s"; 135 cpu { 136 sound-dai = <&audio1 0>; 137 }; 138 codec { 139 sound-dai = <&tda998x 0>; 140 }; 141 }; 142 143 simple-audio-card,dai-link@1 { /* S/PDIF - HDMI */ 144 cpu { 145 sound-dai = <&audio1 1>; 146 }; 147 codec { 148 sound-dai = <&tda998x 1>; 149 }; 150 }; 151 152 simple-audio-card,dai-link@2 { /* S/PDIF - S/PDIF */ 153 cpu { 154 sound-dai = <&audio1 1>; 155 }; 156 codec { 157 sound-dai = <&spdif_codec>; 158 }; 159 }; 160}; 161