aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/plat-samsung
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/plat-samsung')
-rw-r--r--arch/arm/plat-samsung/gpio-config.c32
-rw-r--r--arch/arm/plat-samsung/include/plat/gpio-cfg-helpers.h11
2 files changed, 43 insertions, 0 deletions
diff --git a/arch/arm/plat-samsung/gpio-config.c b/arch/arm/plat-samsung/gpio-config.c
index c5832824e198..8aca88d6c486 100644
--- a/arch/arm/plat-samsung/gpio-config.c
+++ b/arch/arm/plat-samsung/gpio-config.c
@@ -164,3 +164,35 @@ s3c_gpio_pull_t s3c_gpio_getpull_updown(struct s3c_gpio_chip *chip,
164 return (__force s3c_gpio_pull_t)pup; 164 return (__force s3c_gpio_pull_t)pup;
165} 165}
166#endif 166#endif
167
168#ifdef CONFIG_S3C_GPIO_PULL_UP
169int s3c_gpio_setpull_1up(struct s3c_gpio_chip *chip,
170 unsigned int off, s3c_gpio_pull_t pull)
171{
172 void __iomem *reg = chip->base + 0x08;
173 u32 pup = __raw_readl(reg);
174
175 pup = __raw_readl(reg);
176
177 if (pup == S3C_GPIO_PULL_UP)
178 pup &= ~(1 << off);
179 else if (pup == S3C_GPIO_PULL_NONE)
180 pup |= (1 << off);
181 else
182 return -EINVAL;
183
184 __raw_writel(pup, reg);
185 return 0;
186}
187
188s3c_gpio_pull_t s3c_gpio_getpull_1up(struct s3c_gpio_chip *chip,
189 unsigned int off)
190{
191 void __iomem *reg = chip->base + 0x08;
192 u32 pup = __raw_readl(reg);
193
194 pup &= (1 << off);
195 return pup ? S3C_GPIO_PULL_NONE : S3C_GPIO_PULL_UP;
196}
197#endif /* CONFIG_S3C_GPIO_PULL_UP */
198
diff --git a/arch/arm/plat-samsung/include/plat/gpio-cfg-helpers.h b/arch/arm/plat-samsung/include/plat/gpio-cfg-helpers.h
index dda19da037ad..885e9ac642d3 100644
--- a/arch/arm/plat-samsung/include/plat/gpio-cfg-helpers.h
+++ b/arch/arm/plat-samsung/include/plat/gpio-cfg-helpers.h
@@ -146,6 +146,17 @@ extern s3c_gpio_pull_t s3c_gpio_getpull_updown(struct s3c_gpio_chip *chip,
146 unsigned int off); 146 unsigned int off);
147 147
148/** 148/**
149 * s3c_gpio_getpull_1up() - Get configuration for choice of up or none
150 * @chip: The gpio chip that the GPIO pin belongs to
151 * @off: The offset to the pin to get the configuration of.
152 *
153 * This helper function reads the state of the pull-up resistor for the
154 * given GPIO in the same case as s3c_gpio_setpull_1up.
155*/
156extern s3c_gpio_pull_t s3c_gpio_getpull_1up(struct s3c_gpio_chip *chip,
157 unsigned int off);
158
159/**
149 * s3c_gpio_setpull_s3c2443() - Pull configuration for s3c2443. 160 * s3c_gpio_setpull_s3c2443() - Pull configuration for s3c2443.
150 * @chip: The gpio chip that is being configured. 161 * @chip: The gpio chip that is being configured.
151 * @off: The offset for the GPIO being configured. 162 * @off: The offset for the GPIO being configured.