.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);
}
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
#include <bcm63xx_gpio.h>
-#define NR_BUILTIN_GPIO BCM63XX_GPIO_COUNT
-
#define gpio_to_irq(gpio) NULL
#define gpio_get_value __gpio_get_value