summaryrefslogtreecommitdiff
path: root/arch/arm/plat-samsung/gpio-config.c
AgeCommit message (Collapse)AuthorFilesLines
2011-01-06ARM: S3C2443: Implement GPIO pull-up/down configuration methodsYauhen Kharuzhy1-0/+42
S3C2443 has two-bits pull-up/pull-down configuration fields in GPIO registers, but values are differ from other SoCs with two-bits configuration. gpio-cfg-helpers.h already has prototypes for s3c2443-style pull-up/down methods, so implement them. Signed-off-by: Yauhen Kharuzhy <yauhen.kharuzhy@promwad.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2010-12-08ARM: S3C24XX: Fix mess with gpio {set,get}_pull callbacksVasily Khoruzhick1-10/+37
Currently the {set,get}_pull callbacks of the s3c24xx_gpiocfg_default structure are initalized via s3c_gpio_{get,set}pull_1up. This results in a linker error when only CONFIG_CPU_S3C2442 is selected: arch/arm/plat-s3c24xx/built-in.o:(.data+0x13f4): undefined reference to `s3c_gpio_getpull_1up' arch/arm/plat-s3c24xx/built-in.o:(.data+0x13f8): undefined reference to `s3c_gpio_setpull_1up' The s3c2442 has pulldowns instead of pullups compared to the s3c2440. The method of controlling them is the same though. So this patch modifies the existing s3c_gpio_{get,set}pull_1up helper functions to take an additional parameter deciding whether the pin has a pullup or pulldown. The s3c_gpio_{get,set}pull_1{down,up} functions then wrap that functions passing either S3C_GPIO_PULL_UP or S3C_GPIO_PULL_DOWN. Furthermore this patch sets up the s3c24xx_gpiocfg_default.{get,set}_pull fields in the s3c244{0,2}_map_io function to the new pulldown helper functions. Based on patch from "Lars-Peter Clausen" <lars@metafoo.de> Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-10-26ARM: SAMSUNG: Add the missed s3c_gpio_getpull() APIDaein Moon1-0/+19
This patch adds the s3c_gpio_getpull() API that has been missed in the plat-samsung/gpio-config.c and actullay there is its extern declaration in plat/gpio-cfg.h. Signed-off-by: Daein Moon <moon9124@samsung.com> Cc: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2010-10-23ARM: SAMSUNG: Add s3c_gpio_cfgall_range() functionBen Dooks1-0/+16
Add a function to configure a range of GPIOs function and pull in one go, mainly for the SDHCI and framebuffer helpers which tend to do this. Signed-off-by: Ben Dooks <ben-linux@fluff.org> [kgene.kim@samsung.com: Fix small comments] Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2010-10-23ARM: SAMSUNG: Add GPIO configuration for a range of pinsBen Dooks1-0/+15
Add s3c_gpio_cfgpin_range() to configure a range of pins to the given value. This is useful for a number of blocks where the pins are in order and saves multiple calls to s3c_gpio_cfgpin(). Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2010-09-14ARM: SAMSUNG: Fix on s5p_gpio_[get,set]_drvstrKukjin Kim1-3/+4
This patch fixes bug on gpio drive strength helper function. The offset should be like follwoing. - off = chip->chip.base - pin; + off = pin - chip->chip.base; In the s5p_gpio_get_drvstr(), the second line is unnecessary, because overwrite drvstr. drvstr = __raw_readl(reg); - drvstr = 0xffff & (0x3 << shift); And need 2bit masking before return the drvstr value. drvstr = drvstr >> shift; + drvstr &= 0x3; In the s5p_gpio_set_drvstr(), need relevant bit clear. tmp = __raw_readl(reg); + tmp &= ~(0x3 << shift); tmp |= drvstr << shift; Reported-by: Jaecheol Lee <jc.lee@samsung.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2010-05-19ARM: SAMSUNG: move driver strength gpio configuration helper to common dirMarek Szyprowski1-0/+48
Driver strength parameter can be changed not only on S5PC100 but also on S5PV210/S5PC110 platforms, so move the helper functions to the common plat-samsung directory. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-05-11ARM: SAMSUNG: Add spinlock locking to GPIO banksBen Dooks1-6/+6
Add locking to each GPIO bank to allow for SMP capable code to use the gpiolib functions. See the gpio-core.h header file for more information. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-05-06ARM: S3C24XX: Remove s3c2410_gpio_getcfg(), implement s3c_gpio_getcfg()Ben Dooks1-0/+20
Add s3c_gpio_getcfg() and change anything using s3c2410_gpio_getcfg() to use this instead. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-05-06ARM: SAMSUNG: Add GPIO configuration read callsBen Dooks1-1/+46
Add the necessary 1,2 and 4 bit configuration read calls for the new gpio code to allow removal of the old s3c24xx gpio code. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-05-06ARM: S3C24XX: Add the gpio pull configuration for pull-upBen Dooks1-0/+32
Add the necessary gpio configuration helper for the devices which have a single-bit pull-up resistor disabled. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-05-06ARM: S3C24XX: Add initial s3c_gpio configuration codeBen Dooks1-2/+2
Add support for s3c_gpio_setcfg() and s3c_gpio_setpull() implementations to get ready for removal of the specific code being used by s3c24xx. Also rename the s3c_gpio_setcfg_s3c24xx_banka to s3c_gpio_setcfg_s3c24xx_a as seen in the header file to correct a build warning. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-01-19ARM: SAMSUNG: Remove empty gpio-core.h and use central plat/gpio-core.hBen Dooks1-1/+1
Rename mach-s3c2410/include/mach/gpio-core.h to mach/gpio-track.h so that it can be included by <plat/gpio-core.h> when needed. Eliminate all other empty gpio-core.h files and just include the <plat/gpio-core.h> as necessary. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-01-15ARM: SAMSUNG: Move gpio-config.c into plat-samsungBen Dooks1-0/+166
The arch/arm/plat-s3c/gpio-config.c file is common to pretty much all the Samsung SoCs, so move it to arch/arm/plat-samsung Signed-off-by: Ben Dooks <ben-linux@fluff.org>