aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/plat-mxc/3ds_debugboard.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/plat-mxc/3ds_debugboard.c')
-rw-r--r--arch/arm/plat-mxc/3ds_debugboard.c28
1 files changed, 14 insertions, 14 deletions
diff --git a/arch/arm/plat-mxc/3ds_debugboard.c b/arch/arm/plat-mxc/3ds_debugboard.c
index 639c54a07992..c856fa397606 100644
--- a/arch/arm/plat-mxc/3ds_debugboard.c
+++ b/arch/arm/plat-mxc/3ds_debugboard.c
@@ -60,7 +60,6 @@
60#define EXPIO_INT_BUTTON_B (MXC_BOARD_IRQ_START + 4) 60#define EXPIO_INT_BUTTON_B (MXC_BOARD_IRQ_START + 4)
61 61
62static void __iomem *brd_io; 62static void __iomem *brd_io;
63static void expio_ack_irq(u32 irq);
64 63
65static struct resource smsc911x_resources[] = { 64static struct resource smsc911x_resources[] = {
66 { 65 {
@@ -93,7 +92,8 @@ static void mxc_expio_irq_handler(u32 irq, struct irq_desc *desc)
93 u32 int_valid; 92 u32 int_valid;
94 u32 expio_irq; 93 u32 expio_irq;
95 94
96 desc->chip->mask(irq); /* irq = gpio irq number */ 95 /* irq = gpio irq number */
96 desc->irq_data.chip->irq_mask(&desc->irq_data);
97 97
98 imr_val = __raw_readw(brd_io + INTR_MASK_REG); 98 imr_val = __raw_readw(brd_io + INTR_MASK_REG);
99 int_valid = __raw_readw(brd_io + INTR_STATUS_REG) & ~imr_val; 99 int_valid = __raw_readw(brd_io + INTR_STATUS_REG) & ~imr_val;
@@ -110,37 +110,37 @@ static void mxc_expio_irq_handler(u32 irq, struct irq_desc *desc)
110 d->handle_irq(expio_irq, d); 110 d->handle_irq(expio_irq, d);
111 } 111 }
112 112
113 desc->chip->ack(irq); 113 desc->irq_data.chip->irq_ack(&desc->irq_data);
114 desc->chip->unmask(irq); 114 desc->irq_data.chip->irq_unmask(&desc->irq_data);
115} 115}
116 116
117/* 117/*
118 * Disable an expio pin's interrupt by setting the bit in the imr. 118 * Disable an expio pin's interrupt by setting the bit in the imr.
119 * Irq is an expio virtual irq number 119 * Irq is an expio virtual irq number
120 */ 120 */
121static void expio_mask_irq(u32 irq) 121static void expio_mask_irq(struct irq_data *d)
122{ 122{
123 u16 reg; 123 u16 reg;
124 u32 expio = MXC_IRQ_TO_EXPIO(irq); 124 u32 expio = MXC_IRQ_TO_EXPIO(d->irq);
125 125
126 reg = __raw_readw(brd_io + INTR_MASK_REG); 126 reg = __raw_readw(brd_io + INTR_MASK_REG);
127 reg |= (1 << expio); 127 reg |= (1 << expio);
128 __raw_writew(reg, brd_io + INTR_MASK_REG); 128 __raw_writew(reg, brd_io + INTR_MASK_REG);
129} 129}
130 130
131static void expio_ack_irq(u32 irq) 131static void expio_ack_irq(struct irq_data *d)
132{ 132{
133 u32 expio = MXC_IRQ_TO_EXPIO(irq); 133 u32 expio = MXC_IRQ_TO_EXPIO(d->irq);
134 134
135 __raw_writew(1 << expio, brd_io + INTR_RESET_REG); 135 __raw_writew(1 << expio, brd_io + INTR_RESET_REG);
136 __raw_writew(0, brd_io + INTR_RESET_REG); 136 __raw_writew(0, brd_io + INTR_RESET_REG);
137 expio_mask_irq(irq); 137 expio_mask_irq(d);
138} 138}
139 139
140static void expio_unmask_irq(u32 irq) 140static void expio_unmask_irq(struct irq_data *d)
141{ 141{
142 u16 reg; 142 u16 reg;
143 u32 expio = MXC_IRQ_TO_EXPIO(irq); 143 u32 expio = MXC_IRQ_TO_EXPIO(d->irq);
144 144
145 reg = __raw_readw(brd_io + INTR_MASK_REG); 145 reg = __raw_readw(brd_io + INTR_MASK_REG);
146 reg &= ~(1 << expio); 146 reg &= ~(1 << expio);
@@ -148,9 +148,9 @@ static void expio_unmask_irq(u32 irq)
148} 148}
149 149
150static struct irq_chip expio_irq_chip = { 150static struct irq_chip expio_irq_chip = {
151 .ack = expio_ack_irq, 151 .irq_ack = expio_ack_irq,
152 .mask = expio_mask_irq, 152 .irq_mask = expio_mask_irq,
153 .unmask = expio_unmask_irq, 153 .irq_unmask = expio_unmask_irq,
154}; 154};
155 155
156int __init mxc_expio_init(u32 base, u32 p_irq) 156int __init mxc_expio_init(u32 base, u32 p_irq)