]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Merge remote-tracking branch 'mips/mips-for-linux-next'
authorStephen Rothwell <sfr@canb.auug.org.au>
Fri, 4 Nov 2011 01:27:45 +0000 (12:27 +1100)
committerStephen Rothwell <sfr@canb.auug.org.au>
Fri, 4 Nov 2011 01:27:45 +0000 (12:27 +1100)
1  2 
arch/mips/include/asm/mach-bcm47xx/gpio.h

index 76961cabeedfe1cdac4caaef7e9989ca04a345be,edb765e4ed9c9dfe63a8333108083a5bbc3fd3af..26cc815fe066816f980d15978d4b05546e961536
@@@ -22,54 -21,33 +22,69 @@@ extern int gpio_to_irq(unsigned gpio)
  
  static inline int gpio_get_value(unsigned gpio)
  {
 -      return ssb_gpio_in(&ssb_bcm47xx, 1 << gpio);
 +      switch (bcm47xx_bus_type) {
 +#ifdef CONFIG_BCM47XX_SSB
 +      case BCM47XX_BUS_TYPE_SSB:
 +              return ssb_gpio_in(&bcm47xx_bus.ssb, 1 << gpio);
 +#endif
 +#ifdef CONFIG_BCM47XX_BCMA
 +      case BCM47XX_BUS_TYPE_BCMA:
 +              return bcma_chipco_gpio_in(&bcm47xx_bus.bcma.bus.drv_cc,
 +                                         1 << gpio);
 +#endif
 +      }
 +      return -EINVAL;
  }
  
+ #define gpio_get_value_cansleep       gpio_get_value
  static inline void gpio_set_value(unsigned gpio, int value)
  {
 -      ssb_gpio_out(&ssb_bcm47xx, 1 << gpio, value ? 1 << gpio : 0);
 +      switch (bcm47xx_bus_type) {
 +#ifdef CONFIG_BCM47XX_SSB
 +      case BCM47XX_BUS_TYPE_SSB:
 +              ssb_gpio_out(&bcm47xx_bus.ssb, 1 << gpio,
 +                           value ? 1 << gpio : 0);
 +              return;
 +#endif
 +#ifdef CONFIG_BCM47XX_BCMA
 +      case BCM47XX_BUS_TYPE_BCMA:
 +              bcma_chipco_gpio_out(&bcm47xx_bus.bcma.bus.drv_cc, 1 << gpio,
 +                                   value ? 1 << gpio : 0);
 +              return;
 +#endif
 +      }
  }
  
+ #define gpio_set_value_cansleep gpio_set_value
+ static inline int gpio_cansleep(unsigned gpio)
+ {
+       return 0;
+ }
+ static inline int gpio_is_valid(unsigned gpio)
+ {
+       return gpio < (BCM47XX_EXTIF_GPIO_LINES + BCM47XX_EXTIF_GPIO_LINES);
+ }
  static inline int gpio_direction_input(unsigned gpio)
  {
 -      ssb_gpio_outen(&ssb_bcm47xx, 1 << gpio, 0);
 -      return 0;
 +      switch (bcm47xx_bus_type) {
 +#ifdef CONFIG_BCM47XX_SSB
 +      case BCM47XX_BUS_TYPE_SSB:
 +              ssb_gpio_outen(&bcm47xx_bus.ssb, 1 << gpio, 0);
 +              return 0;
 +#endif
 +#ifdef CONFIG_BCM47XX_BCMA
 +      case BCM47XX_BUS_TYPE_BCMA:
 +              bcma_chipco_gpio_outen(&bcm47xx_bus.bcma.bus.drv_cc, 1 << gpio,
 +                                     0);
 +              return 0;
 +#endif
 +      }
 +      return -EINVAL;
  }
  
  static inline int gpio_direction_output(unsigned gpio, int value)