diff options
author | Ben Dooks <ben-linux@fluff.org> | 2010-05-19 05:04:08 -0400 |
---|---|---|
committer | Ben Dooks <ben-linux@fluff.org> | 2010-05-19 05:04:08 -0400 |
commit | ff1b8ba01dc80da338890a187c112fdd3c0b9202 (patch) | |
tree | 415999aa2c3ac52e48c2b6f690bba393e3d7a00c /arch/arm/mach-s3c2412 | |
parent | 5fcdb16bd04fdeb313ee33bb269b04e59a9abf91 (diff) | |
parent | 32b6cb3872883861f3a2669cce880f3a7ef8979a (diff) |
ARM: Merge for-2635/gpio2
Merge branch 'for-2635/gpio2' into for-linus/samsung2
Diffstat (limited to 'arch/arm/mach-s3c2412')
-rw-r--r-- | arch/arm/mach-s3c2412/gpio.c | 20 | ||||
-rw-r--r-- | arch/arm/mach-s3c2412/mach-jive.c | 26 | ||||
-rw-r--r-- | arch/arm/mach-s3c2412/mach-smdk2413.c | 8 |
3 files changed, 28 insertions, 26 deletions
diff --git a/arch/arm/mach-s3c2412/gpio.c b/arch/arm/mach-s3c2412/gpio.c index f7afece7fc38..3404a876b33e 100644 --- a/arch/arm/mach-s3c2412/gpio.c +++ b/arch/arm/mach-s3c2412/gpio.c | |||
@@ -16,41 +16,43 @@ | |||
16 | #include <linux/types.h> | 16 | #include <linux/types.h> |
17 | #include <linux/module.h> | 17 | #include <linux/module.h> |
18 | #include <linux/interrupt.h> | 18 | #include <linux/interrupt.h> |
19 | #include <linux/gpio.h> | ||
19 | 20 | ||
20 | #include <asm/mach/arch.h> | 21 | #include <asm/mach/arch.h> |
21 | #include <asm/mach/map.h> | 22 | #include <asm/mach/map.h> |
22 | 23 | ||
23 | #include <mach/regs-gpio.h> | 24 | #include <mach/regs-gpio.h> |
24 | |||
25 | #include <mach/hardware.h> | 25 | #include <mach/hardware.h> |
26 | 26 | ||
27 | #include <plat/gpio-core.h> | ||
28 | |||
27 | int s3c2412_gpio_set_sleepcfg(unsigned int pin, unsigned int state) | 29 | int s3c2412_gpio_set_sleepcfg(unsigned int pin, unsigned int state) |
28 | { | 30 | { |
29 | void __iomem *base = S3C24XX_GPIO_BASE(pin); | 31 | struct s3c_gpio_chip *chip = s3c_gpiolib_getchip(pin); |
30 | unsigned long offs = S3C2410_GPIO_OFFSET(pin); | 32 | unsigned long offs = pin - chip->chip.base; |
31 | unsigned long flags; | 33 | unsigned long flags; |
32 | unsigned long slpcon; | 34 | unsigned long slpcon; |
33 | 35 | ||
34 | offs *= 2; | 36 | offs *= 2; |
35 | 37 | ||
36 | if (pin < S3C2410_GPIO_BANKB) | 38 | if (pin < S3C2410_GPB(0)) |
37 | return -EINVAL; | 39 | return -EINVAL; |
38 | 40 | ||
39 | if (pin >= S3C2410_GPIO_BANKF && | 41 | if (pin >= S3C2410_GPF(0) && |
40 | pin <= S3C2410_GPIO_BANKG) | 42 | pin <= S3C2410_GPG(16)) |
41 | return -EINVAL; | 43 | return -EINVAL; |
42 | 44 | ||
43 | if (pin > (S3C2410_GPIO_BANKH + 32)) | 45 | if (pin > S3C2410_GPH(16)) |
44 | return -EINVAL; | 46 | return -EINVAL; |
45 | 47 | ||
46 | local_irq_save(flags); | 48 | local_irq_save(flags); |
47 | 49 | ||
48 | slpcon = __raw_readl(base + 0x0C); | 50 | slpcon = __raw_readl(chip->base + 0x0C); |
49 | 51 | ||
50 | slpcon &= ~(3 << offs); | 52 | slpcon &= ~(3 << offs); |
51 | slpcon |= state << offs; | 53 | slpcon |= state << offs; |
52 | 54 | ||
53 | __raw_writel(slpcon, base + 0x0C); | 55 | __raw_writel(slpcon, chip->base + 0x0C); |
54 | 56 | ||
55 | local_irq_restore(flags); | 57 | local_irq_restore(flags); |
56 | 58 | ||
diff --git a/arch/arm/mach-s3c2412/mach-jive.c b/arch/arm/mach-s3c2412/mach-jive.c index 20647f09aed6..478f4b4606c2 100644 --- a/arch/arm/mach-s3c2412/mach-jive.c +++ b/arch/arm/mach-s3c2412/mach-jive.c | |||
@@ -48,6 +48,7 @@ | |||
48 | #include <linux/mtd/nand_ecc.h> | 48 | #include <linux/mtd/nand_ecc.h> |
49 | #include <linux/mtd/partitions.h> | 49 | #include <linux/mtd/partitions.h> |
50 | 50 | ||
51 | #include <plat/gpio-cfg.h> | ||
51 | #include <plat/clock.h> | 52 | #include <plat/clock.h> |
52 | #include <plat/devs.h> | 53 | #include <plat/devs.h> |
53 | #include <plat/cpu.h> | 54 | #include <plat/cpu.h> |
@@ -357,8 +358,7 @@ static void jive_lcm_reset(unsigned int set) | |||
357 | { | 358 | { |
358 | printk(KERN_DEBUG "%s(%d)\n", __func__, set); | 359 | printk(KERN_DEBUG "%s(%d)\n", __func__, set); |
359 | 360 | ||
360 | s3c2410_gpio_setpin(S3C2410_GPG(13), set); | 361 | gpio_set_value(S3C2410_GPG(13), set); |
361 | s3c2410_gpio_cfgpin(S3C2410_GPG(13), S3C2410_GPIO_OUTPUT); | ||
362 | } | 362 | } |
363 | 363 | ||
364 | #undef LCD_UPPER_MARGIN | 364 | #undef LCD_UPPER_MARGIN |
@@ -391,7 +391,7 @@ static struct ili9320_platdata jive_lcm_config = { | |||
391 | 391 | ||
392 | static void jive_lcd_spi_chipselect(struct s3c2410_spigpio_info *spi, int cs) | 392 | static void jive_lcd_spi_chipselect(struct s3c2410_spigpio_info *spi, int cs) |
393 | { | 393 | { |
394 | s3c2410_gpio_setpin(S3C2410_GPB(7), cs ? 0 : 1); | 394 | gpio_set_value(S3C2410_GPB(7), cs ? 0 : 1); |
395 | } | 395 | } |
396 | 396 | ||
397 | static struct s3c2410_spigpio_info jive_lcd_spi = { | 397 | static struct s3c2410_spigpio_info jive_lcd_spi = { |
@@ -413,7 +413,7 @@ static struct platform_device jive_device_lcdspi = { | |||
413 | 413 | ||
414 | static void jive_wm8750_chipselect(struct s3c2410_spigpio_info *spi, int cs) | 414 | static void jive_wm8750_chipselect(struct s3c2410_spigpio_info *spi, int cs) |
415 | { | 415 | { |
416 | s3c2410_gpio_setpin(S3C2410_GPH(10), cs ? 0 : 1); | 416 | gpio_set_value(S3C2410_GPH(10), cs ? 0 : 1); |
417 | } | 417 | } |
418 | 418 | ||
419 | static struct s3c2410_spigpio_info jive_wm8750_spi = { | 419 | static struct s3c2410_spigpio_info jive_wm8750_spi = { |
@@ -531,7 +531,7 @@ static void jive_power_off(void) | |||
531 | printk(KERN_INFO "powering system down...\n"); | 531 | printk(KERN_INFO "powering system down...\n"); |
532 | 532 | ||
533 | s3c2410_gpio_setpin(S3C2410_GPC(5), 1); | 533 | s3c2410_gpio_setpin(S3C2410_GPC(5), 1); |
534 | s3c2410_gpio_cfgpin(S3C2410_GPC(5), S3C2410_GPIO_OUTPUT); | 534 | s3c_gpio_cfgpin(S3C2410_GPC(5), S3C2410_GPIO_OUTPUT); |
535 | } | 535 | } |
536 | 536 | ||
537 | static void __init jive_machine_init(void) | 537 | static void __init jive_machine_init(void) |
@@ -636,22 +636,22 @@ static void __init jive_machine_init(void) | |||
636 | 636 | ||
637 | /* initialise the spi */ | 637 | /* initialise the spi */ |
638 | 638 | ||
639 | s3c2410_gpio_setpin(S3C2410_GPG(13), 0); | 639 | gpio_request(S3C2410_GPG(13), "lcm reset"); |
640 | s3c2410_gpio_cfgpin(S3C2410_GPG(13), S3C2410_GPIO_OUTPUT); | 640 | gpio_direction_output(S3C2410_GPG(13), 0); |
641 | 641 | ||
642 | s3c2410_gpio_setpin(S3C2410_GPB(7), 1); | 642 | gpio_request(S3C2410_GPB(7), "jive spi"); |
643 | s3c2410_gpio_cfgpin(S3C2410_GPB(7), S3C2410_GPIO_OUTPUT); | 643 | gpio_direction_output(S3C2410_GPB(7), 1); |
644 | 644 | ||
645 | s3c2410_gpio_setpin(S3C2410_GPB(6), 0); | 645 | s3c2410_gpio_setpin(S3C2410_GPB(6), 0); |
646 | s3c2410_gpio_cfgpin(S3C2410_GPB(6), S3C2410_GPIO_OUTPUT); | 646 | s3c_gpio_cfgpin(S3C2410_GPB(6), S3C2410_GPIO_OUTPUT); |
647 | 647 | ||
648 | s3c2410_gpio_setpin(S3C2410_GPG(8), 1); | 648 | s3c2410_gpio_setpin(S3C2410_GPG(8), 1); |
649 | s3c2410_gpio_cfgpin(S3C2410_GPG(8), S3C2410_GPIO_OUTPUT); | 649 | s3c_gpio_cfgpin(S3C2410_GPG(8), S3C2410_GPIO_OUTPUT); |
650 | 650 | ||
651 | /* initialise the WM8750 spi */ | 651 | /* initialise the WM8750 spi */ |
652 | 652 | ||
653 | s3c2410_gpio_setpin(S3C2410_GPH(10), 1); | 653 | gpio_request(S3C2410_GPH(10), "jive wm8750 spi"); |
654 | s3c2410_gpio_cfgpin(S3C2410_GPH(10), S3C2410_GPIO_OUTPUT); | 654 | gpio_direction_output(S3C2410_GPH(10), 1); |
655 | 655 | ||
656 | /* Turn off suspend on both USB ports, and switch the | 656 | /* Turn off suspend on both USB ports, and switch the |
657 | * selectable USB port to USB device mode. */ | 657 | * selectable USB port to USB device mode. */ |
diff --git a/arch/arm/mach-s3c2412/mach-smdk2413.c b/arch/arm/mach-s3c2412/mach-smdk2413.c index 3d41aa74c362..ba93a356a839 100644 --- a/arch/arm/mach-s3c2412/mach-smdk2413.c +++ b/arch/arm/mach-s3c2412/mach-smdk2413.c | |||
@@ -85,10 +85,10 @@ static void smdk2413_udc_pullup(enum s3c2410_udc_cmd_e cmd) | |||
85 | switch (cmd) | 85 | switch (cmd) |
86 | { | 86 | { |
87 | case S3C2410_UDC_P_ENABLE : | 87 | case S3C2410_UDC_P_ENABLE : |
88 | s3c2410_gpio_setpin(S3C2410_GPF(2), 1); | 88 | gpio_set_value(S3C2410_GPF(2), 1); |
89 | break; | 89 | break; |
90 | case S3C2410_UDC_P_DISABLE : | 90 | case S3C2410_UDC_P_DISABLE : |
91 | s3c2410_gpio_setpin(S3C2410_GPF(2), 0); | 91 | gpio_set_value(S3C2410_GPF(2), 0); |
92 | break; | 92 | break; |
93 | case S3C2410_UDC_P_RESET : | 93 | case S3C2410_UDC_P_RESET : |
94 | break; | 94 | break; |
@@ -134,8 +134,8 @@ static void __init smdk2413_machine_init(void) | |||
134 | { /* Turn off suspend on both USB ports, and switch the | 134 | { /* Turn off suspend on both USB ports, and switch the |
135 | * selectable USB port to USB device mode. */ | 135 | * selectable USB port to USB device mode. */ |
136 | 136 | ||
137 | s3c2410_gpio_setpin(S3C2410_GPF(2), 0); | 137 | WARN_ON(gpio_request(S3C2410_GPF(2), "udc pull")); |
138 | s3c2410_gpio_cfgpin(S3C2410_GPF(2), S3C2410_GPIO_OUTPUT); | 138 | gpio_direction_output(S3C2410_GPF(2), 0); |
139 | 139 | ||
140 | s3c2410_modify_misccr(S3C2410_MISCCR_USBHOST | | 140 | s3c2410_modify_misccr(S3C2410_MISCCR_USBHOST | |
141 | S3C2410_MISCCR_USBSUSPND0 | | 141 | S3C2410_MISCCR_USBSUSPND0 | |