|
@@ -172,45 +172,13 @@ static int imx_iomuxv1_setup_multiple(const int *list, unsigned count)
|
|
|
int mxc_gpio_setup_multiple_pins(const int *pin_list, unsigned count,
|
|
|
const char *label)
|
|
|
{
|
|
|
- size_t i;
|
|
|
int ret;
|
|
|
|
|
|
- for (i = 0; i < count; ++i) {
|
|
|
- unsigned gpio = pin_list[i] & (GPIO_PIN_MASK | GPIO_PORT_MASK);
|
|
|
-
|
|
|
- ret = gpio_request(gpio, label);
|
|
|
- if (ret)
|
|
|
- goto err_gpio_request;
|
|
|
- }
|
|
|
-
|
|
|
ret = imx_iomuxv1_setup_multiple(pin_list, count);
|
|
|
- if (ret)
|
|
|
- goto err_setup;
|
|
|
-
|
|
|
- return 0;
|
|
|
-
|
|
|
-err_setup:
|
|
|
- BUG_ON(i != count);
|
|
|
-
|
|
|
-err_gpio_request:
|
|
|
- mxc_gpio_release_multiple_pins(pin_list, i);
|
|
|
-
|
|
|
return ret;
|
|
|
}
|
|
|
EXPORT_SYMBOL(mxc_gpio_setup_multiple_pins);
|
|
|
|
|
|
-void mxc_gpio_release_multiple_pins(const int *pin_list, int count)
|
|
|
-{
|
|
|
- size_t i;
|
|
|
-
|
|
|
- for (i = 0; i < count; ++i) {
|
|
|
- unsigned gpio = pin_list[i] & (GPIO_PIN_MASK | GPIO_PORT_MASK);
|
|
|
-
|
|
|
- gpio_free(gpio);
|
|
|
- }
|
|
|
-}
|
|
|
-EXPORT_SYMBOL(mxc_gpio_release_multiple_pins);
|
|
|
-
|
|
|
int __init imx_iomuxv1_init(void __iomem *base, int numports)
|
|
|
{
|
|
|
imx_iomuxv1_baseaddr = base;
|