Re: passing function pointers through platform devices?

David Brownell
2007-03-07T17:56:05Z

> I'm developing an SPI- bus >MMC/SD block driver translation layer.

Another one? There's already been significant work in that area. See for
example

http://marc.theaimsgroup.com/?l=linux-kernel&m=117000652529003&w=2

Which admittedly didn't behave when I just put it onto my test rig,
but seems nonetheless to be a significant step forward. It's not like
everyone has hardware that can use such a driver after all!

> As part of this layer the write protect and card detect lines need to be read.
> The method for determining the state of these lines will be board specific.

Example, one usually wants card detect to be an IRQ, to avoid polling...

> Is it appropriate to pass a function pointer through a platform device
> (declared in the mach initialization) to implement card_available and
> write_protect function calls?

That's how it's done in that patch. The model being what the PXA MMC/SD
card driver does, since that's the most generic model I found ... handling
for example systems which need to poll for card detect, as well as ones
that can use real gpio based IRQs. The mmc_spi driver doesn't need to know
which kind of platform it's got.

- Dave