understanding GPIO registers

vichy vichy.kuo at gmail.com
Sun Aug 28 02:59:10 EDT 2011


hi:

2011/8/26 OrazioPirataDelloSpazio (Lorenzo) <ziducaixao at autistici.org>:
> Hi there,
> I have a motherbord (VIA EPIA LT) with a digital I/O port composed by 4
> GPI and 4 GPO (chip: SMSC SCH3114).
>
> I want to provide voltage to GPO and read the input value of GPI with a
> software.
>
> Using the generic gpio kernel module, I tried to export pins without
> success :
>
> echo N > /sys/class/gpio/export
> write error : invalid argument
>
> I tried for several values of N (from 1 to 1000 !) then I gave up
> thinking I would have needed some information from the hardware producer.
> Now I have got this information that is the following offsets and addresses.
>
> How can I use these registers to fix the export problem or alternatively
> how to write a simple userspace C program to read and write these GPIO?
>
> I read gpio.txt but I'm still confused on how to pass from GPIO numbers
> to registers.
>
> Thanks
>
>
> Lorenzo
>
>
> #define sGPIOBaseAddr   0A00
> #define GPI1_CTRL_REG   0x6E
> #define GPI2_CTRL_REG   0x6F
> #define GPI3_CTRL_REG   0x72
> #define GPI4_CTRL_REG   0x73
> #define GPO1_CTRL_REG   0x2C
> #define GPO2_CTRL_REG   0x2D
> #define GPO3_CTRL_REG   0x35
> #define GPO4_CTRL_REG   0x36
>
does the base address of gpio in kernel you use is the same or you
have modified for your board?
BR



More information about the Kernelnewbies mailing list