1*4882a593SmuzhiyunROCKCHIP multicodecs audio 2*4882a593Smuzhiyun 3*4882a593SmuzhiyunRequired properties: 4*4882a593Smuzhiyun- compatible: "rockchip,multicodecs-card" 5*4882a593Smuzhiyun- rockchip,cpu: The phandle of the Rockchip I2S/PDM controller that's 6*4882a593Smuzhiyun connected to the CODEC 7*4882a593Smuzhiyun- rockchip,codec: The phandle of audio codecs 8*4882a593Smuzhiyun 9*4882a593SmuzhiyunOptional properties: 10*4882a593Smuzhiyun- rockchip,card-name: User specified audio sound card name, one string property. 11*4882a593Smuzhiyun- rockchip,codec-hp-det : Detect the headphone via internal codec. 12*4882a593Smuzhiyun- rockchip,wait-card-locked : This is a variable length array, user specified 13*4882a593Smuzhiyun these sound cards need to be prepared and locked, 14*4882a593Smuzhiyun otherwise the local slave card can be probed. 15*4882a593Smuzhiyun- rockchip,audio-routing : sound card dapm routing. 16*4882a593Smuzhiyun- hp-det-gpio : headphone detect gpio. 17*4882a593Smuzhiyun- io-channels : headset mic/key detect adc channel. 18*4882a593Smuzhiyun- io-channel-names : headset mic/key adc channel name. 19*4882a593Smuzhiyun- spk-con-gpio : speaker enable/disabled gpio. 20*4882a593Smuzhiyun- hp-con-gpio : headphone enable/disabled gpio. 21*4882a593Smuzhiyun- keyup-threshold-microvolt: keyup-threshold-microvolt uV. 22*4882a593Smuzhiyun- poll-interval : headset adc key poller internal ms. 23*4882a593Smuzhiyun- play-pause-key : PLAYPAUSE key, can define the other key like vol+/vol- and so on. 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun 26*4882a593SmuzhiyunOptional dai-link subnode properties: 27*4882a593Smuzhiyun- rockchip,format : CPU/CODEC common audio format. 28*4882a593Smuzhiyun "i2s", "right_j", "left_j" , "dsp_a" 29*4882a593Smuzhiyun "dsp_b", "ac97", "pdm", "msb", "lsb". 30*4882a593Smuzhiyun- rockchip,frame-master : Indicates dai-link frame master. 31*4882a593Smuzhiyun phandle to a cpu or codec subnode. 32*4882a593Smuzhiyun- rockchip,bitclock-master : Indicates dai-link bit clock master. 33*4882a593Smuzhiyun phandle to a cpu or codec subnode. 34*4882a593Smuzhiyun- rockchip,bitclock-inversion : bool property. Add this if the 35*4882a593Smuzhiyun dai-link uses bit clock inversion. 36*4882a593Smuzhiyun- rockchip,frame-inversion : bool property. Add this if the 37*4882a593Smuzhiyun dai-link uses frame clock inversion. 38*4882a593Smuzhiyun- rockchip,mclk-fs : Multiplication factor between stream 39*4882a593Smuzhiyun rate and codec mclk, applied only for 40*4882a593Smuzhiyun the dai-link. 41*4882a593Smuzhiyun 42*4882a593SmuzhiyunExample: 43*4882a593Smuzhiyun 44*4882a593Smuzhiyunsound { 45*4882a593Smuzhiyun compatible = "rockchip,multicodecs-card"; 46*4882a593Smuzhiyun rockchip,mclk-fs = <256>; 47*4882a593Smuzhiyun rockchip,cpu = <&i2s0_8ch>; 48*4882a593Smuzhiyun rockchip,codec = <&codec>, <&vad>; 49*4882a593Smuzhiyun}; 50*4882a593Smuzhiyun 51*4882a593SmuzhiyunExample 2 : 52*4882a593Smuzhiyun 53*4882a593Smuzhiyunes8388_sound: es8388-sound { 54*4882a593Smuzhiyun status = "okay"; 55*4882a593Smuzhiyun compatible = "rockchip,multicodecs-card"; 56*4882a593Smuzhiyun rockchip,card-name = "rockchip-es8388"; 57*4882a593Smuzhiyun hp-det-gpio = <&gpio1 RK_PD5 GPIO_ACTIVE_LOW>; 58*4882a593Smuzhiyun io-channels = <&saradc 3>; 59*4882a593Smuzhiyun io-channel-names = "adc-detect"; 60*4882a593Smuzhiyun spk-con-gpio = <&gpio1 RK_PD3 GPIO_ACTIVE_HIGH>; 61*4882a593Smuzhiyun hp-con-gpio = <&gpio1 RK_PD2 GPIO_ACTIVE_HIGH>; 62*4882a593Smuzhiyun rockchip,format = "i2s"; 63*4882a593Smuzhiyun rockchip,mclk-fs = <256>; 64*4882a593Smuzhiyun rockchip,cpu = <&i2s0_8ch>; 65*4882a593Smuzhiyun rockchip,codec = <&es8388>; 66*4882a593Smuzhiyun rockchip,audio-routing = 67*4882a593Smuzhiyun "Headphone", "LOUT1", 68*4882a593Smuzhiyun "Headphone", "ROUT1", 69*4882a593Smuzhiyun "Speaker", "LOUT2", 70*4882a593Smuzhiyun "Speaker", "ROUT2", 71*4882a593Smuzhiyun "Headphone", "Headphone Power", 72*4882a593Smuzhiyun "Headphone", "Headphone Power", 73*4882a593Smuzhiyun "Speaker", "Speaker Power", 74*4882a593Smuzhiyun "Speaker", "Speaker Power", 75*4882a593Smuzhiyun "LINPUT1", "Main Mic", 76*4882a593Smuzhiyun "LINPUT2", "Main Mic", 77*4882a593Smuzhiyun "RINPUT1", "Headset Mic", 78*4882a593Smuzhiyun "RINPUT2", "Headset Mic"; 79*4882a593Smuzhiyun pinctrl-names = "default"; 80*4882a593Smuzhiyun pinctrl-0 = <&hp_det>; 81*4882a593Smuzhiyun keyup-threshold-microvolt = <1800000>; 82*4882a593Smuzhiyun poll-interval = <100>; 83*4882a593Smuzhiyun play-pause-key{ 84*4882a593Smuzhiyun label = "playpause"; 85*4882a593Smuzhiyun linux,code = <KEY_PLAYPAUSE>; 86*4882a593Smuzhiyun press-threshold-microvolt = <2000>; 87*4882a593Smuzhiyun }; 88*4882a593Smuzhiyun}; 89