diff options
author | Florian Fainelli <florian@openwrt.org> | 2009-06-04 10:01:03 +0000 |
---|---|---|
committer | Florian Fainelli <florian@openwrt.org> | 2009-06-04 10:01:03 +0000 |
commit | b904d677824bcf73a1b2f3ebc2d49e8ad3c2ad07 (patch) | |
tree | 4428f716e457fc1b4db15975aa237b41b81e3a87 /target/linux/brcm63xx | |
parent | b86d85140fac67279221bfdac1d85fdbb0254f97 (diff) | |
download | upstream-b904d677824bcf73a1b2f3ebc2d49e8ad3c2ad07.tar.gz upstream-b904d677824bcf73a1b2f3ebc2d49e8ad3c2ad07.tar.bz2 upstream-b904d677824bcf73a1b2f3ebc2d49e8ad3c2ad07.zip |
[brcm63xx] use the correct number of GPIOs for bcm6358
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@16329 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/brcm63xx')
3 files changed, 12 insertions, 6 deletions
diff --git a/target/linux/brcm63xx/files/arch/mips/bcm63xx/gpio.c b/target/linux/brcm63xx/files/arch/mips/bcm63xx/gpio.c index 997fcaa439..97e3730c34 100644 --- a/target/linux/brcm63xx/files/arch/mips/bcm63xx/gpio.c +++ b/target/linux/brcm63xx/files/arch/mips/bcm63xx/gpio.c @@ -117,11 +117,11 @@ static struct gpio_chip bcm63xx_gpio_chip = { .get = bcm63xx_gpio_get, .set = bcm63xx_gpio_set, .base = 0, - .ngpio = BCM63XX_GPIO_COUNT, }; int __init bcm63xx_gpio_init(void) { - printk(KERN_INFO "registering %d GPIOs\n", BCM63XX_GPIO_COUNT); + bcm63xx_gpio_chip.ngpio = bcm63xx_gpio_count(); + printk(KERN_INFO "registering %d GPIOs\n", bcm63xx_gpio_chip.ngpio); return gpiochip_add(&bcm63xx_gpio_chip); } diff --git a/target/linux/brcm63xx/files/include/asm-mips/mach-bcm63xx/bcm63xx_gpio.h b/target/linux/brcm63xx/files/include/asm-mips/mach-bcm63xx/bcm63xx_gpio.h index 7f5d8e87d0..76a0b7216a 100644 --- a/target/linux/brcm63xx/files/include/asm-mips/mach-bcm63xx/bcm63xx_gpio.h +++ b/target/linux/brcm63xx/files/include/asm-mips/mach-bcm63xx/bcm63xx_gpio.h @@ -5,8 +5,16 @@ int __init bcm63xx_gpio_init(void); -/* all helpers will BUG() if gpio count is >= 37. */ -#define BCM63XX_GPIO_COUNT 37 +static inline unsigned long bcm63xx_gpio_count(void) +{ + switch (bcm63xx_get_cpu_id()) { + case BCM6358_CPU_ID: + return 40; + case BCM6348_CPU_ID: + default: + return 37; + } +} #define GPIO_DIR_OUT 0x0 #define GPIO_DIR_IN 0x1 diff --git a/target/linux/brcm63xx/files/include/asm-mips/mach-bcm63xx/gpio.h b/target/linux/brcm63xx/files/include/asm-mips/mach-bcm63xx/gpio.h index 033c997afc..7cda8c0a39 100644 --- a/target/linux/brcm63xx/files/include/asm-mips/mach-bcm63xx/gpio.h +++ b/target/linux/brcm63xx/files/include/asm-mips/mach-bcm63xx/gpio.h @@ -3,8 +3,6 @@ #include <bcm63xx_gpio.h> -#define NR_BUILTIN_GPIO BCM63XX_GPIO_COUNT - #define gpio_to_irq(gpio) NULL #define gpio_get_value __gpio_get_value |