Hi Mark, On 2016?06?07? 18:47, Mark Brown wrote: > On Tue, Jun 07, 2016 at 10:49:35AM +0800, Xing Zheng wrote: >> On 2016?06?07? 07:50, Mark Brown wrote: >>> It should probably be three compatibles, one per CODEC, if the driver >>> needs to handle each separately. >> Do you mean like this: >> -------- >> sound { >> compatible = "rockchip,rk3399-max98357a-rt5514-da7219"; >> >> dailink-0 { >> compatible = "rockchip,rk3399-max98357a"; >> rockchip,cpu =<&i2s0>; >> rockchip,codec =<&max98357a>; >> }; >> >> dailink-1 { >> compatible = "rockchip,rk3399-rt5514"; >> rockchip,cpu =<&i2s0>; >> rockchip,codec =<&headsetcodec>; >> }; >> >> dailink-2 { >> compatible = "rockchip,rk3399-da7219"; >> rockchip,cpu =<&i2s0>; >> rockchip,codec =<&codec>; >> }; >> }; >> -------- >> Above, the machine drvier will handle them. Please correct me if I >> misunderstand. > No, that'd be one card with all three CODECs on the same board which I'm > guessing isn't the intention? Yes, because on our board, the audio connection by hardware really is such: |-- max98357a i2s0 <==> |-- rt5514 | -- da7219 We do need to support max98357a / rt5514 / da7219 via i2s0 on the same board for RK3399. I remember that it will be failed if we register card with i2s0 more times. Therefore, I chose this mothod that create 3 dai-links on one machine driver. Thanks. -- - Xing Zheng