Commit cca0355a authored by Nicolas Ferre's avatar Nicolas Ferre

ARM: at91/USB host: specify and handle properly vbus_pin_active_low

Due to an error while handling vbus_pin_active_low in ohci-at91 driver,
the specification of this property was not good in devices/board files.
Signed-off-by: default avatarNicolas Ferre <nicolas.ferre@atmel.com>
Acked-by: default avatarJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Cc: stable <stable@vger.kernel.org>         [3.2+]
parent 1e7caf8b
...@@ -72,7 +72,8 @@ void __init at91_add_device_usbh(struct at91_usbh_data *data) ...@@ -72,7 +72,8 @@ void __init at91_add_device_usbh(struct at91_usbh_data *data)
/* Enable VBus control for UHP ports */ /* Enable VBus control for UHP ports */
for (i = 0; i < data->ports; i++) { for (i = 0; i < data->ports; i++) {
if (gpio_is_valid(data->vbus_pin[i])) if (gpio_is_valid(data->vbus_pin[i]))
at91_set_gpio_output(data->vbus_pin[i], 0); at91_set_gpio_output(data->vbus_pin[i],
data->vbus_pin_active_low[i]);
} }
/* Enable overcurrent notification */ /* Enable overcurrent notification */
......
...@@ -127,7 +127,8 @@ void __init at91_add_device_usbh_ohci(struct at91_usbh_data *data) ...@@ -127,7 +127,8 @@ void __init at91_add_device_usbh_ohci(struct at91_usbh_data *data)
/* Enable VBus control for UHP ports */ /* Enable VBus control for UHP ports */
for (i = 0; i < data->ports; i++) { for (i = 0; i < data->ports; i++) {
if (gpio_is_valid(data->vbus_pin[i])) if (gpio_is_valid(data->vbus_pin[i]))
at91_set_gpio_output(data->vbus_pin[i], 0); at91_set_gpio_output(data->vbus_pin[i],
data->vbus_pin_active_low[i]);
} }
/* Enable overcurrent notification */ /* Enable overcurrent notification */
...@@ -188,7 +189,8 @@ void __init at91_add_device_usbh_ehci(struct at91_usbh_data *data) ...@@ -188,7 +189,8 @@ void __init at91_add_device_usbh_ehci(struct at91_usbh_data *data)
/* Enable VBus control for UHP ports */ /* Enable VBus control for UHP ports */
for (i = 0; i < data->ports; i++) { for (i = 0; i < data->ports; i++) {
if (gpio_is_valid(data->vbus_pin[i])) if (gpio_is_valid(data->vbus_pin[i]))
at91_set_gpio_output(data->vbus_pin[i], 0); at91_set_gpio_output(data->vbus_pin[i],
data->vbus_pin_active_low[i]);
} }
usbh_ehci_data = *data; usbh_ehci_data = *data;
......
...@@ -74,6 +74,7 @@ static void __init ek_init_early(void) ...@@ -74,6 +74,7 @@ static void __init ek_init_early(void)
static struct at91_usbh_data __initdata ek_usbh_data = { static struct at91_usbh_data __initdata ek_usbh_data = {
.ports = 2, .ports = 2,
.vbus_pin = { AT91_PIN_PA24, AT91_PIN_PA21 }, .vbus_pin = { AT91_PIN_PA24, AT91_PIN_PA21 },
.vbus_pin_active_low = {1, 1},
.overcurrent_pin= {-EINVAL, -EINVAL}, .overcurrent_pin= {-EINVAL, -EINVAL},
}; };
......
...@@ -71,6 +71,7 @@ static void __init ek_init_early(void) ...@@ -71,6 +71,7 @@ static void __init ek_init_early(void)
static struct at91_usbh_data __initdata ek_usbh_hs_data = { static struct at91_usbh_data __initdata ek_usbh_hs_data = {
.ports = 2, .ports = 2,
.vbus_pin = {AT91_PIN_PD1, AT91_PIN_PD3}, .vbus_pin = {AT91_PIN_PD1, AT91_PIN_PD3},
.vbus_pin_active_low = {1, 1},
.overcurrent_pin= {-EINVAL, -EINVAL}, .overcurrent_pin= {-EINVAL, -EINVAL},
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment