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 | } |
