On 2015?05?14? 07:11, Dylan Reid wrote: > On Wed, May 13, 2015 at 10:21 AM, Dylan Reid<dgreid at chromium.org> wrote: >> On Wed, May 13, 2015 at 9:42 AM, Mark Brown<broonie at kernel.org> wrote: >>> On Wed, May 13, 2015 at 09:23:01PM +0800, zhengxing wrote: >>>> On 2015?05?13? 03:22, Mark Brown wrote: >>>>> Is it not possible to extend simple card to handle your use cases? >>>>> Given the very generic naming and the fact that things like jack >>>>> detection and so on should depend on the CODEC and board usually rather >>>>> than on the SoC it doesn't sound like this is Rockchip specific. >>>>> This also looks like you're reimplementing some device model enumeration >>>>> stuff which probably shouldn't be happening but let's understand the >>>>> problem you're trying to solve here before going too far into the code. >>>> Because we are trying to bring rt5650 in the project, so we intend to >>>> describe supported codecs with DTS via only a rockchip machine driver file, >>>> others remain pre-implement(like max98090 / rt5645 that vendor machine >>>> driver). >>> I don't undertand what you're saying here, sorry - why is this not just >>> a case of writing multiple machine drivers? >> I don't understand this either. I'd think the best solution is >> simple-card, configured through DTS for each device. Hi Mark, Dylan, I tried to use simple-card and had some trouble that jack detection. So my idea is simply: /-- rockchip_max98090 (to configure max98090, and no need to via DTS) rockchip_machine_driver |-- rockchip_rt5645 (to configure rt5650/rt5645, and no need to via DTS) (supported codecs via DTS) \-- rockchip_(maybe other codecs) It is right that it is base on original rockchip_max98090, but the old rockchip_max98090 used DTS. I tried to explain my ideas. Your kind suggestions will be highly appreciated. Thanks.