blob: 565ff36a11195d993b4b3315e8f7536cc1830d7e [file] [log] [blame]
Maxime Bizone7300d02009-08-18 13:23:37 +01001#ifndef BCM63XX_GPIO_H
2#define BCM63XX_GPIO_H
3
4#include <linux/init.h>
Jonas Gorski442209f2012-05-15 17:47:52 +02005#include <bcm63xx_cpu.h>
Maxime Bizone7300d02009-08-18 13:23:37 +01006
7int __init bcm63xx_gpio_init(void);
8
9static inline unsigned long bcm63xx_gpio_count(void)
10{
11 switch (bcm63xx_get_cpu_id()) {
Jonas Gorskie5766ae2012-07-24 16:33:12 +020012 case BCM6328_CPU_ID:
13 return 32;
Florian Fainelli7b933422013-06-18 16:55:40 +000014 case BCM3368_CPU_ID:
Maxime Bizone7300d02009-08-18 13:23:37 +010015 case BCM6358_CPU_ID:
16 return 40;
Florian Fainellid1b28752010-03-01 23:36:32 +010017 case BCM6338_CPU_ID:
18 return 8;
19 case BCM6345_CPU_ID:
20 return 16;
Jonas Gorski2c8aaf72013-03-21 14:03:17 +000021 case BCM6362_CPU_ID:
22 return 48;
Maxime Bizon04712f32011-11-04 19:09:35 +010023 case BCM6368_CPU_ID:
24 return 38;
Maxime Bizone7300d02009-08-18 13:23:37 +010025 case BCM6348_CPU_ID:
26 default:
27 return 37;
28 }
29}
30
Florian Fainelli3e1bf292010-05-04 10:38:57 +020031#define BCM63XX_GPIO_DIR_OUT 0x0
32#define BCM63XX_GPIO_DIR_IN 0x1
Maxime Bizone7300d02009-08-18 13:23:37 +010033
34#endif /* !BCM63XX_GPIO_H */