[ARM] 2911/1: ixp2000_reg_{read,write} accessors
authorLennert Buytenhek <buytenh@wantstofly.org>
Thu, 15 Sep 2005 12:00:25 +0000 (13:00 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 15 Sep 2005 12:00:25 +0000 (13:00 +0100)
commit917afce1000d978dfd3f07da5da9d864bc49c77e
treefd8487f4cf64dc5be9559820a1f4c3e6c759aad2
parentfea2efe3bba15f0aa8f840fbe052699808187cb6
[ARM] 2911/1: ixp2000_reg_{read,write} accessors

Patch from Lennert Buytenhek

This patch:
- changes the ixp2000_reg_write accessor to take a 'volatile void *'
  instead of a 'volatile unsigned long *', which then allows passing in
  a u32 * as first argument without being greeted with a warning; and
- adds an ixp2000_reg_read accessor.
We can then use these accessors in ixp2000 code to access on-chip
peripherals, instead of directly dereferencing pointers.  This is for
use by the ixp2000 microengine driver which was recently announced on
netdev.  We can't use readl/writel on the ixp2000 since it is usually
run in big-endian mode, and on big-endian platforms, readl/writel
perform byteswapping.
A future patch will remove the readback from ixp2000_reg_write, since
it's not needed to prevent erratum #66, and add manual readbacks to the
places that need them (writes are not synchronous since we map in device
space using XCB=101 nowadays), such as interrupt disabling and GPIO
manipulation.  See also:
http://lists.arm.linux.org.uk/pipermail/linux-arm-kernel/2005-February/027084.html
Patch has been ACKed by Jeff Garzik.

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
include/asm-arm/arch-ixp2000/platform.h