TODO:

From the initial code review:

The main thing you need to do is to implement all the controls using the
control framework (see Documentation/media/kapi/v4l2-controls.rst).
Most drivers are by now converted to the control framework, so you will
find many examples of how to do this in drivers/media/radio.

The sysfs stuff should be replaced by controls as well. A lot of the RDS
support is now available as controls (although there may well be some
missing features, but that is easy enough to add). Since the RDS data is
actually read() from the device I am not sure whether the RDS
properties/controls should be there at all.

Correct Coding Style, as this driver also violates several Style
rules, and do evil tricks, like returning from a function inside a
macro.

Finally this driver should probably be split up into two parts: one
v4l2_subdev-based core driver and one platform driver. See e.g.
radio-si4713/si4713-i2c.c as a good example. But I would wait with that
until the rest of the driver is cleaned up. Then I have a better idea of
whether this is necessary or not.
