mirror of https://github.com/hak5/openwrt-owl.git
parent
e7b01c6aa1
commit
3a95badb10
|
@ -919,14 +919,14 @@ static void register_buttons(struct button_t *b)
|
||||||
gpio_control(platform.button_mask, 0);
|
gpio_control(platform.button_mask, 0);
|
||||||
platform.button_polarity = gpio_in() & platform.button_mask;
|
platform.button_polarity = gpio_in() & platform.button_mask;
|
||||||
gpio_intpolarity(platform.button_mask, platform.button_polarity);
|
gpio_intpolarity(platform.button_mask, platform.button_polarity);
|
||||||
gpio_intmask(platform.button_mask, platform.button_mask);
|
gpio_setintmask(platform.button_mask, platform.button_mask);
|
||||||
|
|
||||||
gpio_set_irqenable(1, button_handler);
|
gpio_set_irqenable(1, button_handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void unregister_buttons(struct button_t *b)
|
static void unregister_buttons(struct button_t *b)
|
||||||
{
|
{
|
||||||
gpio_intmask(platform.button_mask, 0);
|
gpio_setintmask(platform.button_mask, 0);
|
||||||
|
|
||||||
gpio_set_irqenable(0, button_handler);
|
gpio_set_irqenable(0, button_handler);
|
||||||
}
|
}
|
||||||
|
@ -1101,7 +1101,7 @@ static void register_leds(struct led_t *l)
|
||||||
gpio_outen(mask, oe_mask);
|
gpio_outen(mask, oe_mask);
|
||||||
gpio_control(mask, 0);
|
gpio_control(mask, 0);
|
||||||
gpio_out(mask, val);
|
gpio_out(mask, val);
|
||||||
gpio_intmask(mask, 0);
|
gpio_setintmask(mask, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void unregister_leds(struct led_t *l)
|
static void unregister_leds(struct led_t *l)
|
||||||
|
|
|
@ -32,12 +32,10 @@ static inline u32 gpio_control(u32 mask, u32 value)
|
||||||
return ssb_gpio_control(&ssb, mask, value);
|
return ssb_gpio_control(&ssb, mask, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28)
|
static inline u32 gpio_setintmask(u32 mask, u32 value)
|
||||||
static inline u32 gpio_intmask(u32 mask, u32 value)
|
|
||||||
{
|
{
|
||||||
return ssb_gpio_intmask(&ssb, mask, value);
|
return ssb_gpio_intmask(&ssb, mask, value);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
static inline u32 gpio_intpolarity(u32 mask, u32 value)
|
static inline u32 gpio_intpolarity(u32 mask, u32 value)
|
||||||
{
|
{
|
||||||
|
@ -105,7 +103,7 @@ extern spinlock_t sbh_lock;
|
||||||
#define gpio_out(mask, value) sb_gpioout(sbh, mask, ((value) & (mask)), GPIO_DRV_PRIORITY)
|
#define gpio_out(mask, value) sb_gpioout(sbh, mask, ((value) & (mask)), GPIO_DRV_PRIORITY)
|
||||||
#define gpio_outen(mask, value) sb_gpioouten(sbh, mask, value, GPIO_DRV_PRIORITY)
|
#define gpio_outen(mask, value) sb_gpioouten(sbh, mask, value, GPIO_DRV_PRIORITY)
|
||||||
#define gpio_control(mask, value) sb_gpiocontrol(sbh, mask, value, GPIO_DRV_PRIORITY)
|
#define gpio_control(mask, value) sb_gpiocontrol(sbh, mask, value, GPIO_DRV_PRIORITY)
|
||||||
#define gpio_intmask(mask, value) sb_gpiointmask(sbh, mask, value, GPIO_DRV_PRIORITY)
|
#define gpio_setintmask(mask, value) sb_gpiointmask(sbh, mask, value, GPIO_DRV_PRIORITY)
|
||||||
#define gpio_intpolarity(mask, value) sb_gpiointpolarity(sbh, mask, value, GPIO_DRV_PRIORITY)
|
#define gpio_intpolarity(mask, value) sb_gpiointpolarity(sbh, mask, value, GPIO_DRV_PRIORITY)
|
||||||
|
|
||||||
static void gpio_set_irqenable(int enabled, irqreturn_t (*handler)(int, void *, struct pt_regs *))
|
static void gpio_set_irqenable(int enabled, irqreturn_t (*handler)(int, void *, struct pt_regs *))
|
||||||
|
|
Loading…
Reference in New Issue