On Tue, 2009-06-23 at 14:33 +0200, Hans Verkuil wrote:
> > On Tue, 2009-06-23 at 11:39 +0800, Terry Wu wrote:
> >

> There is already an s_gpio in the core ops. It would be simple to add a
> g_gpio as well if needed.

Hans,

As you probably know

        int (*s_gpio)(v4l2_subdev *sd, u32 val);

is a little too simple for initial setup of GPIO pins.  With the
collection of chips & cores supported by cx25840 module, setting the
GPIO configuration also requires:

        direction: In or Out
        multiplexed pins: GPIO or some other function

I could tack on direction as an argument to s_gpio(), but I think that
is a bit inconvenient..  I'd rather have a 

        int (*s_gpio_config)(v4l2_subdev *sd, u32 dir, u32 initval);

but that leaves out the method for multiplexed pin/pad configuration.
Perhaps explicity setting a GPIO direction to OUT could be an implicit
indication that a multiplexed pin should be set to it's GPIO function.
However, that doesn't help for GPIO inputs that might have their pins
multiplexed with other functions.

Here's an idea on how to specify multiplexed pin configuration
information and it could involve pins that multiplex functions other
than GPIO (the CX25843 is quite flexible in this regard):

        int (*s_pin_function)(v4l2_subdev *sd, u32 pin_id, u32 function);

The type checking ends up pretty weak, but I figured it was better than
a 'void *config' that had a subdev specific collection of pin
configuration information.

Comments?

Regards,
Andy


--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to