On Mon, Nov 21, 2011 at 05:53:30PM +0100, Guillaume Knispel wrote:
On Mon, 21 Nov 2011 17:01:29 +0100 Andre Haupt <andre@bitwigglers.org> wrote:
Hi all,
We have a FPGA which will be connected to the LPC bus. This FPGA will provide some GPIO functionality, a rotary encoder, etc.
Now i want to write a kernel driver to talk to this FPGA. I am unsure how to get access to the LPC bus in the first place. What kernel APIs should i use? How to get the memory mapping right, etc?
The LPC is typically automatically mapped by the hardware (southbridge) for some fixed ranges, various configurable ranges and might also use PCI substractive decoding.
LPC is indeed an ISA bus with the physical layer replaced by something with fewer signals, but from the point of view of the software there is almost no difference, so look for how to program ISA drivers and you will probably have your answer.
So request_mem_region(), ioremap(), ioread*() and iowrite*() are my friends here right? Still unsure how to obtain the LPC base address. Is this mapped to 0xA0000-0xFFFFF as with ISA? cheers, Andre