diff options
Diffstat (limited to 'arch/arm/mach-s5pv210/gpiolib.c')
-rw-r--r-- | arch/arm/mach-s5pv210/gpiolib.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/arch/arm/mach-s5pv210/gpiolib.c b/arch/arm/mach-s5pv210/gpiolib.c index 0d459112d039..ab673effd767 100644 --- a/arch/arm/mach-s5pv210/gpiolib.c +++ b/arch/arm/mach-s5pv210/gpiolib.c | |||
@@ -150,6 +150,7 @@ static struct s3c_gpio_chip s5pv210_gpio_4bit[] = { | |||
150 | .label = "GPG3", | 150 | .label = "GPG3", |
151 | }, | 151 | }, |
152 | }, { | 152 | }, { |
153 | .config = &gpio_cfg_noint, | ||
153 | .chip = { | 154 | .chip = { |
154 | .base = S5PV210_GPI(0), | 155 | .base = S5PV210_GPI(0), |
155 | .ngpio = S5PV210_GPIO_I_NR, | 156 | .ngpio = S5PV210_GPIO_I_NR, |
@@ -223,34 +224,42 @@ static struct s3c_gpio_chip s5pv210_gpio_4bit[] = { | |||
223 | }, { | 224 | }, { |
224 | .base = (S5P_VA_GPIO + 0xC00), | 225 | .base = (S5P_VA_GPIO + 0xC00), |
225 | .config = &gpio_cfg_noint, | 226 | .config = &gpio_cfg_noint, |
227 | .irq_base = IRQ_EINT(0), | ||
226 | .chip = { | 228 | .chip = { |
227 | .base = S5PV210_GPH0(0), | 229 | .base = S5PV210_GPH0(0), |
228 | .ngpio = S5PV210_GPIO_H0_NR, | 230 | .ngpio = S5PV210_GPIO_H0_NR, |
229 | .label = "GPH0", | 231 | .label = "GPH0", |
232 | .to_irq = samsung_gpiolib_to_irq, | ||
230 | }, | 233 | }, |
231 | }, { | 234 | }, { |
232 | .base = (S5P_VA_GPIO + 0xC20), | 235 | .base = (S5P_VA_GPIO + 0xC20), |
233 | .config = &gpio_cfg_noint, | 236 | .config = &gpio_cfg_noint, |
237 | .irq_base = IRQ_EINT(8), | ||
234 | .chip = { | 238 | .chip = { |
235 | .base = S5PV210_GPH1(0), | 239 | .base = S5PV210_GPH1(0), |
236 | .ngpio = S5PV210_GPIO_H1_NR, | 240 | .ngpio = S5PV210_GPIO_H1_NR, |
237 | .label = "GPH1", | 241 | .label = "GPH1", |
242 | .to_irq = samsung_gpiolib_to_irq, | ||
238 | }, | 243 | }, |
239 | }, { | 244 | }, { |
240 | .base = (S5P_VA_GPIO + 0xC40), | 245 | .base = (S5P_VA_GPIO + 0xC40), |
241 | .config = &gpio_cfg_noint, | 246 | .config = &gpio_cfg_noint, |
247 | .irq_base = IRQ_EINT(16), | ||
242 | .chip = { | 248 | .chip = { |
243 | .base = S5PV210_GPH2(0), | 249 | .base = S5PV210_GPH2(0), |
244 | .ngpio = S5PV210_GPIO_H2_NR, | 250 | .ngpio = S5PV210_GPIO_H2_NR, |
245 | .label = "GPH2", | 251 | .label = "GPH2", |
252 | .to_irq = samsung_gpiolib_to_irq, | ||
246 | }, | 253 | }, |
247 | }, { | 254 | }, { |
248 | .base = (S5P_VA_GPIO + 0xC60), | 255 | .base = (S5P_VA_GPIO + 0xC60), |
249 | .config = &gpio_cfg_noint, | 256 | .config = &gpio_cfg_noint, |
257 | .irq_base = IRQ_EINT(24), | ||
250 | .chip = { | 258 | .chip = { |
251 | .base = S5PV210_GPH3(0), | 259 | .base = S5PV210_GPH3(0), |
252 | .ngpio = S5PV210_GPIO_H3_NR, | 260 | .ngpio = S5PV210_GPIO_H3_NR, |
253 | .label = "GPH3", | 261 | .label = "GPH3", |
262 | .to_irq = samsung_gpiolib_to_irq, | ||
254 | }, | 263 | }, |
255 | }, | 264 | }, |
256 | }; | 265 | }; |
@@ -259,11 +268,14 @@ static __init int s5pv210_gpiolib_init(void) | |||
259 | { | 268 | { |
260 | struct s3c_gpio_chip *chip = s5pv210_gpio_4bit; | 269 | struct s3c_gpio_chip *chip = s5pv210_gpio_4bit; |
261 | int nr_chips = ARRAY_SIZE(s5pv210_gpio_4bit); | 270 | int nr_chips = ARRAY_SIZE(s5pv210_gpio_4bit); |
271 | int gpioint_group = 0; | ||
262 | int i = 0; | 272 | int i = 0; |
263 | 273 | ||
264 | for (i = 0; i < nr_chips; i++, chip++) { | 274 | for (i = 0; i < nr_chips; i++, chip++) { |
265 | if (chip->config == NULL) | 275 | if (chip->config == NULL) { |
266 | chip->config = &gpio_cfg; | 276 | chip->config = &gpio_cfg; |
277 | chip->group = gpioint_group++; | ||
278 | } | ||
267 | if (chip->base == NULL) | 279 | if (chip->base == NULL) |
268 | chip->base = S5PV210_BANK_BASE(i); | 280 | chip->base = S5PV210_BANK_BASE(i); |
269 | } | 281 | } |