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@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev