MIPS: RB532: GPIO register offsets are relative to GPIOBASE

This patch fixes the wrong use of GPIO register offsets
in devices.c. To avoid further problems, use gpio_get_value
to return the NAND status instead of our own expanded code.

Also define the zero offset of the alternate function register to allow
consistent access.

Signed-off-by: Florian Fainelli <florian@openwrt.org>
Signed-off-by: Phil Sutter <n0-1@freewrt.org>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

authored by Florian Fainelli and committed by Ralf Baechle 1b432840 9e86786a

+9 -7
+8 -6
arch/mips/include/asm/mach-rc32434/rb.h
··· 40 #define BTCS 0x010040 41 #define BTCOMPARE 0x010044 42 #define GPIOBASE 0x050000 43 - #define GPIOCFG 0x050004 44 - #define GPIOD 0x050008 45 - #define GPIOILEVEL 0x05000C 46 - #define GPIOISTAT 0x050010 47 - #define GPIONMIEN 0x050014 48 - #define IMASK6 0x038038 49 #define LO_WPX (1 << 0) 50 #define LO_ALE (1 << 1) 51 #define LO_CLE (1 << 2)
··· 40 #define BTCS 0x010040 41 #define BTCOMPARE 0x010044 42 #define GPIOBASE 0x050000 43 + /* Offsets relative to GPIOBASE */ 44 + #define GPIOFUNC 0x00 45 + #define GPIOCFG 0x04 46 + #define GPIOD 0x08 47 + #define GPIOILEVEL 0x0C 48 + #define GPIOISTAT 0x10 49 + #define GPIONMIEN 0x14 50 + #define IMASK6 0x38 51 #define LO_WPX (1 << 0) 52 #define LO_ALE (1 << 1) 53 #define LO_CLE (1 << 2)
+1 -1
arch/mips/rb532/devices.c
··· 118 /* Resources and device for NAND */ 119 static int rb532_dev_ready(struct mtd_info *mtd) 120 { 121 - return readl(IDT434_REG_BASE + GPIOD) & GPIO_RDY; 122 } 123 124 static void rb532_cmd_ctrl(struct mtd_info *mtd, int cmd, unsigned int ctrl)
··· 118 /* Resources and device for NAND */ 119 static int rb532_dev_ready(struct mtd_info *mtd) 120 { 121 + return gpio_get_value(GPIO_RDY); 122 } 123 124 static void rb532_cmd_ctrl(struct mtd_info *mtd, int cmd, unsigned int ctrl)