|
|
@ -10,12 +10,16 @@ |
|
|
|
#include "ar531x.h" |
|
|
|
#include "ar531x.h" |
|
|
|
#include "ar5315/ar5315.h" |
|
|
|
#include "ar5315/ar5315.h" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define AR531X_RESET_GPIO_IRQ (AR531X_GPIO_IRQ_BASE + bcfg->resetConfigGpio) |
|
|
|
|
|
|
|
|
|
|
|
struct event_t { |
|
|
|
struct event_t { |
|
|
|
struct work_struct wq; |
|
|
|
struct work_struct wq; |
|
|
|
int set; |
|
|
|
int set; |
|
|
|
long int jiffies; |
|
|
|
long int jiffies; |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static struct ar531x_boarddata *bcfg; |
|
|
|
|
|
|
|
|
|
|
|
extern struct sock *uevent_sock; |
|
|
|
extern struct sock *uevent_sock; |
|
|
|
extern u64 uevent_next_seqnum(void); |
|
|
|
extern u64 uevent_next_seqnum(void); |
|
|
|
static int seen; |
|
|
|
static int seen; |
|
|
@ -94,15 +98,24 @@ static irqreturn_t button_handler(int irq, void *dev_id) |
|
|
|
return IRQ_HANDLED; |
|
|
|
return IRQ_HANDLED; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void ar531x_disable_reset_button(void) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
disable_irq(AR531X_RESET_GPIO_IRQ);
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
EXPORT_SYMBOL(ar531x_disable_reset_button); |
|
|
|
|
|
|
|
|
|
|
|
int __init ar531x_init_reset(void) |
|
|
|
int __init ar531x_init_reset(void) |
|
|
|
{ |
|
|
|
{ |
|
|
|
struct ar531x_boarddata *bcfg; |
|
|
|
|
|
|
|
bcfg = (struct ar531x_boarddata *) board_config; |
|
|
|
bcfg = (struct ar531x_boarddata *) board_config; |
|
|
|
|
|
|
|
|
|
|
|
seen = jiffies; |
|
|
|
seen = jiffies; |
|
|
|
request_irq(AR531X_GPIO_IRQ_BASE + bcfg->resetConfigGpio, &button_handler, IRQF_SAMPLE_RANDOM, "ar531x_reset", NULL); |
|
|
|
|
|
|
|
|
|
|
|
request_irq(AR531X_RESET_GPIO_IRQ, &button_handler, IRQF_SAMPLE_RANDOM, "ar531x_reset", NULL); |
|
|
|
|
|
|
|
|
|
|
|
return 0; |
|
|
|
return 0; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
module_init(ar531x_init_reset); |
|
|
|
module_init(ar531x_init_reset); |
|
|
|