understanding GPIO registers

OrazioPirataDelloSpazio (Lorenzo) ziducaixao at autistici.org
Thu Aug 25 14:50:19 EDT 2011


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



More information about the Kernelnewbies mailing list