[RFC] What is the preferred way to share ADC unit between hwmon and input(ts) drivers?
Kurt Van Dijck
kurt.van.dijck at eia.be
Mon Apr 25 01:25:12 EDT 2011
On Mon, Apr 25, 2011 at 04:37:38AM +0400, Ilya Yanok wrote:
> Hello,
>
> we are working with Freescale i.MX25 SoC which has the same register
> space for ADC and touch-screen controller (AFAIK, that's pretty common
> situation).
> So, to add both input and hwmon drivers we need to serialize the
> register accesses.
1 physical device may contain several 'class_device's, even if they're of
different types. So in a single platform_device probe function, you can do
both 'input_register_device' and 'hwmon_register_device'.
This way of working actually puts 2 drivers in 1 file, and let those
share 1 lock (mutex or so). A peripheral with 2 functions mixed together
should IMHO be addressed this way. Your driver is the coupling
between hardware (mixed functions) and Linux device model (clean seperation).
> I was thinking about adding some middle-layer to
> perform the actual conversion. The question is what is the preferred way
> to add such a middle layer?
IMHO a middle layer for this type of problem is a bit overkill.
> Should we use a multi-function device driver
> for this or just some platform-specific code (as S3C does)? Or maybe
> there is another way?
AFAIK MFD is a solution when multiple devices have sequential register maps.
MFD does no locking.
Just my ideas...
Maybe I don't understand your problem exactly...
Kurt
More information about the linux-arm-kernel
mailing list