How to use mpc8xxx_gpio.c device driver
MJ embd
mj.embd at gmail.com
Thu Aug 12 02:15:58 EST 2010
u can directly access GPIO registers in kernel, by ioremap of GPIO
memory mapped registers.
you might need to check
- muxing of gpio
-mj
On Wed, Aug 11, 2010 at 6:57 PM, Ravi Gupta <dceravigupta at gmail.com> wrote:
> Hi,
>
> I am new to device driver development. I am trying to access the GPIO of
> MPC837xERDB eval board. I have upgraded its kernel to linux-2.6.28.9 and
> enable support for mpc8xxx_gpio.c. On boot up, it successfully detect two
> gpio controllers. Now my question is how I am going to use it to communicate
> with the gpio pins? Do I have to modify the code in mpc8xxx_gpio.c file to
> do whatever I want to do with gpios or I can use the standard gpio API
> provided in kernel ( gpio_request()/gpio_free() ). I also tries the standard
> kernel API, but it fails. Here is my code :
>
> #include <linux/module.h>
> #include <linux/errno.h> /* error codes */
> #include <linux/gpio.h>
>
> static __init int sample_module_init(void)
> {
> int ret;
>
> int i;
> for (i=1; i<32; i++) {
> ret = gpio_request(i, "Sample Driver");
> if (ret) {
> printk(KERN_WARNING "sample_driver: unable to request GPIO_PG%d\n",
> i);
> //return ret;
> }
> }
>
> return 0;
> }
>
> static __exit void sample_module_exit(void)
> {
> gpio_free(9);
> }
>
> MODULE_LICENSE("GPL");
>
> module_init(sample_module_init);
> module_exit(sample_module_exit);
>
> It give the following O/P:
>
> [ 617.075329] sample_driver: unable to request GPIO_PG1
> [ 617.080418] sample_driver: unable to request GPIO_PG2
> [ 617.085470] sample_driver: unable to request GPIO_PG3
> [ 617.090522] sample_driver: unable to request GPIO_PG4
> [ 617.095574] sample_driver: unable to request GPIO_PG5
> [ 617.100625] sample_driver: unable to request GPIO_PG6
> [ 617.105676] sample_driver: unable to request GPIO_PG7
> [ 617.110727] sample_driver: unable to request GPIO_PG8
> [ 617.115779] sample_driver: unable to request GPIO_PG9
> [ 617.120830] sample_driver: unable to request GPIO_PG10
> [ 617.125968] sample_driver: unable to request GPIO_PG11
> [ 617.131106] sample_driver: unable to request GPIO_PG12
> [ 617.136245] sample_driver: unable to request GPIO_PG13
> [ 617.141383] sample_driver: unable to request GPIO_PG14
> [ 617.146521] sample_driver: unable to request GPIO_PG15
> [ 617.151660] sample_driver: unable to request GPIO_PG16
> [ 617.156798] sample_driver: unable to request GPIO_PG17
> [ 617.161936] sample_driver: unable to request GPIO_PG18
> [ 617.167074] sample_driver: unable to request GPIO_PG19
> [ 617.172213] sample_driver: unable to request GPIO_PG20
> [ 617.177351] sample_driver: unable to request GPIO_PG21
> [ 617.182489] sample_driver: unable to request GPIO_PG22
> [ 617.187628] sample_driver: unable to request GPIO_PG23
> [ 617.192767] sample_driver: unable to request GPIO_PG24
> [ 617.197905] sample_driver: unable to request GPIO_PG25
> [ 617.203042] sample_driver: unable to request GPIO_PG26
> [ 617.208182] sample_driver: unable to request GPIO_PG27
> [ 617.213319] sample_driver: unable to request GPIO_PG28
> [ 617.218458] sample_driver: unable to request GPIO_PG29
> [ 617.223597] sample_driver: unable to request GPIO_PG30
> [ 617.228735] sample_driver: unable to request GPIO_PG31
> [ 617.233873] sample_driver: unable to request GPIO_PG32
>
> Can someone provide me a sample code or something else. Actually I am trying
> to set the GPIO pin no. 9 to active low as it is connected to a LED on
> board.
>
> Thanks in advance
> Ravi Gupta
>
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev at lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/linuxppc-dev
>
--
-mj
More information about the Linuxppc-dev
mailing list