gpio/samsung: Fix incorrect gpio pull up/down callback for EXYNOS4

Some of the gpio chips of exynos4 are assigned a default gpio config without
the exynos4 specific pull up/down callbacks which resulted in incorrect
setting of pull up/down configuration.

Fix this by adding two new exynos4 specific entries in the array of default
configs with set_pull and get_pull callbacks set to exynos4 specific callbacks
The new default gpio configs can then be used for exynos4 gpio chips.

Signed-off-by: Thomas Abraham <thomas.abraham@linaro.org>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
This commit is contained in:
Thomas Abraham 2011-10-12 20:11:17 +09:00 committed by Kukjin Kim
parent 6700397a81
commit b82cee2436

View File

@ -482,7 +482,14 @@ static struct samsung_gpio_cfg samsung_gpio_cfgs[] = {
}, { }, {
.set_config = samsung_gpio_setcfg_2bit, .set_config = samsung_gpio_setcfg_2bit,
.get_config = samsung_gpio_getcfg_2bit, .get_config = samsung_gpio_getcfg_2bit,
}, }, {
.set_pull = exynos4_gpio_setpull,
.get_pull = exynos4_gpio_getpull,
}, {
.cfg_eint = 0x3,
.set_pull = exynos4_gpio_setpull,
.get_pull = exynos4_gpio_getpull,
}
}; };
/* /*
@ -2253,49 +2260,49 @@ static struct samsung_gpio_chip exynos4_gpios_2[] = {
.label = "GPL2", .label = "GPL2",
}, },
}, { }, {
.config = &samsung_gpio_cfgs[0], .config = &samsung_gpio_cfgs[8],
.chip = { .chip = {
.base = EXYNOS4_GPY0(0), .base = EXYNOS4_GPY0(0),
.ngpio = EXYNOS4_GPIO_Y0_NR, .ngpio = EXYNOS4_GPIO_Y0_NR,
.label = "GPY0", .label = "GPY0",
}, },
}, { }, {
.config = &samsung_gpio_cfgs[0], .config = &samsung_gpio_cfgs[8],
.chip = { .chip = {
.base = EXYNOS4_GPY1(0), .base = EXYNOS4_GPY1(0),
.ngpio = EXYNOS4_GPIO_Y1_NR, .ngpio = EXYNOS4_GPIO_Y1_NR,
.label = "GPY1", .label = "GPY1",
}, },
}, { }, {
.config = &samsung_gpio_cfgs[0], .config = &samsung_gpio_cfgs[8],
.chip = { .chip = {
.base = EXYNOS4_GPY2(0), .base = EXYNOS4_GPY2(0),
.ngpio = EXYNOS4_GPIO_Y2_NR, .ngpio = EXYNOS4_GPIO_Y2_NR,
.label = "GPY2", .label = "GPY2",
}, },
}, { }, {
.config = &samsung_gpio_cfgs[0], .config = &samsung_gpio_cfgs[8],
.chip = { .chip = {
.base = EXYNOS4_GPY3(0), .base = EXYNOS4_GPY3(0),
.ngpio = EXYNOS4_GPIO_Y3_NR, .ngpio = EXYNOS4_GPIO_Y3_NR,
.label = "GPY3", .label = "GPY3",
}, },
}, { }, {
.config = &samsung_gpio_cfgs[0], .config = &samsung_gpio_cfgs[8],
.chip = { .chip = {
.base = EXYNOS4_GPY4(0), .base = EXYNOS4_GPY4(0),
.ngpio = EXYNOS4_GPIO_Y4_NR, .ngpio = EXYNOS4_GPIO_Y4_NR,
.label = "GPY4", .label = "GPY4",
}, },
}, { }, {
.config = &samsung_gpio_cfgs[0], .config = &samsung_gpio_cfgs[8],
.chip = { .chip = {
.base = EXYNOS4_GPY5(0), .base = EXYNOS4_GPY5(0),
.ngpio = EXYNOS4_GPIO_Y5_NR, .ngpio = EXYNOS4_GPIO_Y5_NR,
.label = "GPY5", .label = "GPY5",
}, },
}, { }, {
.config = &samsung_gpio_cfgs[0], .config = &samsung_gpio_cfgs[8],
.chip = { .chip = {
.base = EXYNOS4_GPY6(0), .base = EXYNOS4_GPY6(0),
.ngpio = EXYNOS4_GPIO_Y6_NR, .ngpio = EXYNOS4_GPIO_Y6_NR,
@ -2303,7 +2310,7 @@ static struct samsung_gpio_chip exynos4_gpios_2[] = {
}, },
}, { }, {
.base = (S5P_VA_GPIO2 + 0xC00), .base = (S5P_VA_GPIO2 + 0xC00),
.config = &samsung_gpio_cfgs[3], .config = &samsung_gpio_cfgs[9],
.irq_base = IRQ_EINT(0), .irq_base = IRQ_EINT(0),
.chip = { .chip = {
.base = EXYNOS4_GPX0(0), .base = EXYNOS4_GPX0(0),
@ -2313,7 +2320,7 @@ static struct samsung_gpio_chip exynos4_gpios_2[] = {
}, },
}, { }, {
.base = (S5P_VA_GPIO2 + 0xC20), .base = (S5P_VA_GPIO2 + 0xC20),
.config = &samsung_gpio_cfgs[3], .config = &samsung_gpio_cfgs[9],
.irq_base = IRQ_EINT(8), .irq_base = IRQ_EINT(8),
.chip = { .chip = {
.base = EXYNOS4_GPX1(0), .base = EXYNOS4_GPX1(0),
@ -2323,7 +2330,7 @@ static struct samsung_gpio_chip exynos4_gpios_2[] = {
}, },
}, { }, {
.base = (S5P_VA_GPIO2 + 0xC40), .base = (S5P_VA_GPIO2 + 0xC40),
.config = &samsung_gpio_cfgs[3], .config = &samsung_gpio_cfgs[9],
.irq_base = IRQ_EINT(16), .irq_base = IRQ_EINT(16),
.chip = { .chip = {
.base = EXYNOS4_GPX2(0), .base = EXYNOS4_GPX2(0),
@ -2333,7 +2340,7 @@ static struct samsung_gpio_chip exynos4_gpios_2[] = {
}, },
}, { }, {
.base = (S5P_VA_GPIO2 + 0xC60), .base = (S5P_VA_GPIO2 + 0xC60),
.config = &samsung_gpio_cfgs[3], .config = &samsung_gpio_cfgs[9],
.irq_base = IRQ_EINT(24), .irq_base = IRQ_EINT(24),
.chip = { .chip = {
.base = EXYNOS4_GPX3(0), .base = EXYNOS4_GPX3(0),