projects
/
openwrt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added support for 2.6.27 kernel
[openwrt.git]
/
package
/
broadcom-diag
/
src
/
gpio.h
diff --git
a/package/broadcom-diag/src/gpio.h
b/package/broadcom-diag/src/gpio.h
index
22f20c9
..
6b1b2ad
100644
(file)
--- a/
package/broadcom-diag/src/gpio.h
+++ b/
package/broadcom-diag/src/gpio.h
@@
-3,54
+3,43
@@
#include <linux/interrupt.h>
#ifndef BCMDRIVER
#include <linux/interrupt.h>
#ifndef BCMDRIVER
-#include <linux/ssb/ssb.h>
-#include <linux/ssb/ssb_driver_chipcommon.h>
-#include <linux/ssb/ssb_driver_extif.h>
+#include <linux/ssb/ssb_embedded.h>
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25)
+#include <linux/gpio.h>
+#define ssb ssb_bcm47xx
+#endif
extern struct ssb_bus ssb;
extern struct ssb_bus ssb;
-#define gpio_op(op, param...) \
- do { \
- if (ssb.chipco.dev) \
- return ssb_chipco_gpio_##op(&ssb.chipco, param); \
- else if (ssb.extif.dev) \
- return ssb_extif_gpio_##op(&ssb.extif, param); \
- else \
- return 0; \
- } while (0);
-
static inline u32 gpio_in(void)
{
static inline u32 gpio_in(void)
{
-
gpio_op(in
, ~0);
+
return ssb_gpio_in(&ssb
, ~0);
}
static inline u32 gpio_out(u32 mask, u32 value)
{
}
static inline u32 gpio_out(u32 mask, u32 value)
{
-
gpio_op(out
, mask, value);
+
return ssb_gpio_out(&ssb
, mask, value);
}
static inline u32 gpio_outen(u32 mask, u32 value)
{
}
static inline u32 gpio_outen(u32 mask, u32 value)
{
-
gpio_op(outen
, mask, value);
+
return ssb_gpio_outen(&ssb
, mask, value);
}
static inline u32 gpio_control(u32 mask, u32 value)
{
}
static inline u32 gpio_control(u32 mask, u32 value)
{
- if (ssb.chipco.dev)
- return ssb_chipco_gpio_control(&ssb.chipco, mask, value);
- else
- return 0;
+ return ssb_gpio_control(&ssb, mask, value);
}
static inline u32 gpio_intmask(u32 mask, u32 value)
{
}
static inline u32 gpio_intmask(u32 mask, u32 value)
{
-
gpio_op(intmask
, mask, value);
+
return ssb_gpio_intmask(&ssb
, mask, value);
}
static inline u32 gpio_intpolarity(u32 mask, u32 value)
{
}
static inline u32 gpio_intpolarity(u32 mask, u32 value)
{
-
gpio_op(polarity
, mask, value);
+
return ssb_gpio_polarity(&ssb
, mask, value);
}
static inline u32 __ssb_write32_masked(struct ssb_device *dev, u16 offset,
}
static inline u32 __ssb_write32_masked(struct ssb_device *dev, u16 offset,
@@
-66,11
+55,16
@@
static void gpio_set_irqenable(int enabled, irqreturn_t (*handler)(int, void *))
{
int irq;
{
int irq;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25)
+ irq = gpio_to_irq(0);
+ if (irq == -EINVAL) return;
+#else
if (ssb.chipco.dev)
irq = ssb_mips_irq(ssb.chipco.dev) + 2;
else if (ssb.extif.dev)
irq = ssb_mips_irq(ssb.extif.dev) + 2;
else return;
if (ssb.chipco.dev)
irq = ssb_mips_irq(ssb.chipco.dev) + 2;
else if (ssb.extif.dev)
irq = ssb_mips_irq(ssb.extif.dev) + 2;
else return;
+#endif
if (enabled) {
if (request_irq(irq, handler, IRQF_SHARED | IRQF_SAMPLE_RANDOM, "gpio", handler))
if (enabled) {
if (request_irq(irq, handler, IRQF_SHARED | IRQF_SAMPLE_RANDOM, "gpio", handler))
This page took
0.026847 seconds
and
4
git commands to generate.