PPC440EPx GPIO control help
Josh Boyer
jwboyer at linux.vnet.ibm.com
Wed Oct 17 20:49:54 EST 2007
On Tue, 2007-10-16 at 23:21 -0700, Jeff Mock wrote:
> David Hawkins wrote:
> >> I have a PPC440EPx Sequoia Evaluation board that runs on Linux 2.6.21.
> >> What I would want to do is to control (write and read values to) its
> >> GPIO. Perhaps similar to Turbo C's outputb(0x378,0x01) to write and
> >> inportb(0x378) to read. I read the PPC440EPx manual but I find it
> >> difficult to understand.
> >>
> >> Could anyone show me any tutorial or some sample codes?
> >
> > I copied the code below from some test code I wrote for a TS7300
> > board (uses an ARM EP9302 processor). However, since its user-space
> > code it should work fine.
> >
>
> I might be a little out of date, but I think you must write your own
> driver to wiggle the GPIO pins on a 440 processor. I just finished a
> project using a 440GX with a 2.6.15 kernel (we froze the code about 8
> months ago).
>
> The 440 powerPC core is a 32-bit processor with 36-bit physical
> addresses. The physical address for the GPIO pins is someplace above
> 4GB. An mmap() of /dev/mem only lets you map the lower 4GB of the
> address space, as a result you can't write a user space program on the
> 440 to wiggle the GPIO pins. (This was true with 2.6.15, I can't speak
> for later kernels).
This depends on the 440 chip itself. If I recall correctly, the
440EP(x) chips don't have I/O above 4GB.
josh
More information about the Linuxppc-embedded
mailing list