Re: Adding new function to existing driver ops

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Asha,

On Fri, Jul 8, 2011 at 2:25 AM, Asha R <rd.asha22@xxxxxxxxx> wrote:
> Hi,
>
> I would like to know how to add new function to a driver in Linux Framework?
>
> For eg: In GPIO driver, there is gpio_chip structure defined.
>
> static struct gpio_chip mygpio_chip = {
>         .label                         = "mygpio",
>         .owner                        = THIS_MODULE,
>         .direction_input           = mygpio_direction_input,
>         .get                            = mygpio_get,
>         .direction_output         = mygpio_direction_output,
>         .set                            = mygpio_set,
>         .to_irq                        = mygpio_to_irq,
> };
> If i want to add mygpio_pulldown or mygpio_altfunc to support few more gpio
> functionalities, how and where can i add these functions in the structure?

It depends on whether you're trying to do it by modifying the
gpio_chip structure, or want to "make an extension".

If you want to modify the structure itself, you would do so here:
http://lxr.linux.no/linux+v2.6.39/include/asm-generic/gpio.h#L90

If you want to make an extension, then you'd make your own structure
which includes the gpio_chip structure as its first member. I often
use this technique to add say an I/O address for the gpio bank, when
there are multiple banks of gpio registers on a chip.

-- 
Dave Hylands
Shuswap, BC, Canada
http://www.davehylands.com

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies



[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux