Message ID | 20170816235058.GA173745@google.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Matthias, On 08/17/2017 07:50 AM, Matthias Kaehlcke wrote: > El Thu, Aug 17, 2017 at 06:55:20AM +0800 jeffy ha dit: > >> hi matthias, >> >> thanks for your suggestion. >> >> On 08/17/2017 05:59 AM, Matthias Kaehlcke wrote: >>> El Thu, Aug 10, 2017 at 12:54:56PM +0800 Jeffy Chen ha dit: >>> >>>>> Refactor rockchip_sound_probe, parse dai links from dts instead of >>>>> hard coding them. >>> Mark doesn't seem to be overly convinced that 'rockchip,codec-names' >>> is a good idea (https://lkml.org/lkml/2017/8/10/511). >>> >>> How about using something like this instead: >>> >>> static const char *dailink_compat[] = { >>> [DAILINK_MAX98357A] = "maxim,max98357a", >>> [DAILINK_RT5514] = "realtek,rt5514", >>> [DAILINK_DA7219] = "dlg,da7219", >>> }; >> i've thought about this too, but i'm working on converting rt5514 >> dsp(spi) from codec name matching to of_node, and it would have the >> same compatible with rt5514(i2c) > > Bummer! > > I wonder if a relatively inoffensive DT hack would be an appropriate > solution in this case, since the conflicting compatible string is a > somewhat special case and this change only affects the DT and the > driver/glue of a specific device (family). > > The hack would consist in adding an additional 'compatible' entry to > the DT entry of the codec, which is ignored by the rt5514 driver, and > only used by the sound glue to identify it: > > --- a/arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi > +++ b/arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi > @@ -671,7 +671,7 @@ ap_i2c_mic: &i2c1 { > i2c-scl-rising-time-ns = <300>; > > headsetcodec: rt5514@57 { > - compatible = "realtek,rt5514"; > + compatible = "realtek,rt5514", "realtek,rt5514-i2c"; > > > And then use "realtek,rt5514-i2c" in dailink_compat. this should work, i'll do that in new version, thanks. > > Mark, would you prefer a hack like this over the list of codec names > or do you have any other suggestions? > > Matthias > > >
--- a/arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi @@ -671,7 +671,7 @@ ap_i2c_mic: &i2c1 { i2c-scl-rising-time-ns = <300>; headsetcodec: rt5514@57 { - compatible = "realtek,rt5514"; + compatible = "realtek,rt5514", "realtek,rt5514-i2c"; And then use "realtek,rt5514-i2c" in dailink_compat.