LPC bus access howto

Andre Haupt andre at bitwigglers.org
Tue Nov 22 05:01:03 EST 2011


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 at 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



More information about the Kernelnewbies mailing list