diff options
Diffstat (limited to 'drivers/pinctrl/pinctrl-sirf.c')
-rw-r--r-- | drivers/pinctrl/pinctrl-sirf.c | 35 |
1 files changed, 0 insertions, 35 deletions
diff --git a/drivers/pinctrl/pinctrl-sirf.c b/drivers/pinctrl/pinctrl-sirf.c index 675497c15149..9ecacf3d0a75 100644 --- a/drivers/pinctrl/pinctrl-sirf.c +++ b/drivers/pinctrl/pinctrl-sirf.c | |||
@@ -1323,41 +1323,6 @@ static inline struct sirfsoc_gpio_bank *sirfsoc_gpio_to_bank(unsigned int gpio) | |||
1323 | return &sgpio_bank[gpio / SIRFSOC_GPIO_BANK_SIZE]; | 1323 | return &sgpio_bank[gpio / SIRFSOC_GPIO_BANK_SIZE]; |
1324 | } | 1324 | } |
1325 | 1325 | ||
1326 | void sirfsoc_gpio_set_pull(unsigned gpio, unsigned mode) | ||
1327 | { | ||
1328 | struct sirfsoc_gpio_bank *bank = sirfsoc_gpio_to_bank(gpio); | ||
1329 | int idx = sirfsoc_gpio_to_offset(gpio); | ||
1330 | u32 val, offset; | ||
1331 | unsigned long flags; | ||
1332 | |||
1333 | offset = SIRFSOC_GPIO_CTRL(bank->id, idx); | ||
1334 | |||
1335 | spin_lock_irqsave(&sgpio_lock, flags); | ||
1336 | |||
1337 | val = readl(bank->chip.regs + offset); | ||
1338 | |||
1339 | switch (mode) { | ||
1340 | case SIRFSOC_GPIO_PULL_NONE: | ||
1341 | val &= ~SIRFSOC_GPIO_CTL_PULL_MASK; | ||
1342 | break; | ||
1343 | case SIRFSOC_GPIO_PULL_UP: | ||
1344 | val |= SIRFSOC_GPIO_CTL_PULL_MASK; | ||
1345 | val |= SIRFSOC_GPIO_CTL_PULL_HIGH; | ||
1346 | break; | ||
1347 | case SIRFSOC_GPIO_PULL_DOWN: | ||
1348 | val |= SIRFSOC_GPIO_CTL_PULL_MASK; | ||
1349 | val &= ~SIRFSOC_GPIO_CTL_PULL_HIGH; | ||
1350 | break; | ||
1351 | default: | ||
1352 | break; | ||
1353 | } | ||
1354 | |||
1355 | writel(val, bank->chip.regs + offset); | ||
1356 | |||
1357 | spin_unlock_irqrestore(&sgpio_lock, flags); | ||
1358 | } | ||
1359 | EXPORT_SYMBOL(sirfsoc_gpio_set_pull); | ||
1360 | |||
1361 | static inline struct sirfsoc_gpio_bank *sirfsoc_irqchip_to_bank(struct gpio_chip *chip) | 1326 | static inline struct sirfsoc_gpio_bank *sirfsoc_irqchip_to_bank(struct gpio_chip *chip) |
1362 | { | 1327 | { |
1363 | return container_of(to_of_mm_gpio_chip(chip), struct sirfsoc_gpio_bank, chip); | 1328 | return container_of(to_of_mm_gpio_chip(chip), struct sirfsoc_gpio_bank, chip); |