• Lennert Buytenhek's avatar
    [ARM] 2911/1: ixp2000_reg_{read,write} accessors · 917afce1
    Lennert Buytenhek authored
    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: default avatarLennert Buytenhek <buytenh@wantstofly.org>
    Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
    917afce1
platform.h 4.65 KB