diff options
-rw-r--r-- | drivers/w1/masters/ds1wm.c | 9 | ||||
-rw-r--r-- | include/linux/ds1wm.h | 1 |
2 files changed, 6 insertions, 4 deletions
diff --git a/drivers/w1/masters/ds1wm.c b/drivers/w1/masters/ds1wm.c index 5747997f8d7d..688e435b4d9a 100644 --- a/drivers/w1/masters/ds1wm.c +++ b/drivers/w1/masters/ds1wm.c | |||
@@ -361,11 +361,12 @@ static int ds1wm_probe(struct platform_device *pdev) | |||
361 | goto err1; | 361 | goto err1; |
362 | } | 362 | } |
363 | ds1wm_data->irq = res->start; | 363 | ds1wm_data->irq = res->start; |
364 | ds1wm_data->active_high = (res->flags & IORESOURCE_IRQ_HIGHEDGE) ? | 364 | ds1wm_data->active_high = plat->active_high; |
365 | 1 : 0; | ||
366 | 365 | ||
367 | set_irq_type(ds1wm_data->irq, ds1wm_data->active_high ? | 366 | if (res->flags & IORESOURCE_IRQ_HIGHEDGE) |
368 | IRQ_TYPE_EDGE_RISING : IRQ_TYPE_EDGE_FALLING); | 367 | set_irq_type(ds1wm_data->irq, IRQ_TYPE_EDGE_RISING); |
368 | if (res->flags & IORESOURCE_IRQ_LOWEDGE) | ||
369 | set_irq_type(ds1wm_data->irq, IRQ_TYPE_EDGE_FALLING); | ||
369 | 370 | ||
370 | ret = request_irq(ds1wm_data->irq, ds1wm_isr, IRQF_DISABLED, | 371 | ret = request_irq(ds1wm_data->irq, ds1wm_isr, IRQF_DISABLED, |
371 | "ds1wm", ds1wm_data); | 372 | "ds1wm", ds1wm_data); |
diff --git a/include/linux/ds1wm.h b/include/linux/ds1wm.h index 31f6e3c427fb..d3c65e48a2e7 100644 --- a/include/linux/ds1wm.h +++ b/include/linux/ds1wm.h | |||
@@ -6,6 +6,7 @@ struct ds1wm_platform_data { | |||
6 | * e.g. on h5xxx and h2200 this is 2 | 6 | * e.g. on h5xxx and h2200 this is 2 |
7 | * (registers aligned to 4-byte boundaries), | 7 | * (registers aligned to 4-byte boundaries), |
8 | * while on hx4700 this is 1 */ | 8 | * while on hx4700 this is 1 */ |
9 | int active_high; | ||
9 | void (*enable)(struct platform_device *pdev); | 10 | void (*enable)(struct platform_device *pdev); |
10 | void (*disable)(struct platform_device *pdev); | 11 | void (*disable)(struct platform_device *pdev); |
11 | }; | 12 | }; |