On Wed, Jan 9, 2019 at 1:24 PM Marcel Holtmann <marcel@xxxxxxxxxxxx> wrote: > > Hi Sebastian, > > >>> +static int ll_register_fm(struct ll_device *lldev) > >>> +{ > >>> + struct device *dev = &lldev->serdev->dev; > >>> + int err; > >>> + > >>> + if (!of_device_is_compatible(dev->of_node, "ti,wl1281-st") && > >>> + !of_device_is_compatible(dev->of_node, "ti,wl1283-st") && > >>> + !of_device_is_compatible(dev->of_node, "ti,wl1285-st")) > >>> + return -ENODEV; > >> > >> do we really want to hardcode this here? Isn't there some HCI > >> vendor command or some better DT description that we can use to > >> decide when to register this platform device. > > > > I don't know if there is some way to identify the availability > > based on some HCI vendor command. The public documentation from > > the WiLink chips is pretty bad. > > can we have some boolean property in the DT file then instead of hardcoding this in the driver. Implying the feature based on the compatible is how this is normally done for DT. Though typically we'd put the flag in driver match data rather than code it like this. However, I'd assume that FM radio depends on an antenna connection (to the headphone) which a board may or may not have even though the chip supports it. For that reason, I'm okay with a boolean here. Rob