Skip to content

Commit

Permalink
at91: at91-ohci: configure overcurrent pins as input GPIOs
Browse files Browse the repository at this point in the history
As a new overcurrent_pin[] array has been added to the at91_usbh_data
structure, those pins must be muxed to work properly. This commit
implements this muxing for all AT91 SoCs that support the AT91 OHCI.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
[nicolas.ferre@atmel.com: added i variable declaration for the loop]
Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
  • Loading branch information
Thomas Petazzoni authored and Arnd Bergmann committed Sep 10, 2011
1 parent aa6e52a commit 1fcaea7
Show file tree
Hide file tree
Showing 6 changed files with 42 additions and 0 deletions.
6 changes: 6 additions & 0 deletions arch/arm/mach-at91/at91cap9_devices.c
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,12 @@ void __init at91_add_device_usbh(struct at91_usbh_data *data)
at91_set_gpio_output(data->vbus_pin[i], 0);
}

/* Enable overcurrent notification */
for (i = 0; i < data->ports; i++) {
if (data->overcurrent_pin[i])
at91_set_gpio_input(data->overcurrent_pin[i], 1);
}

usbh_data = *data;
platform_device_register(&at91_usbh_device);
}
Expand Down
8 changes: 8 additions & 0 deletions arch/arm/mach-at91/at91rm9200_devices.c
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,17 @@ static struct platform_device at91rm9200_usbh_device = {

void __init at91_add_device_usbh(struct at91_usbh_data *data)
{
int i;

if (!data)
return;

/* Enable overcurrent notification */
for (i = 0; i < data->ports; i++) {
if (data->overcurrent_pin[i])
at91_set_gpio_input(data->overcurrent_pin[i], 1);
}

usbh_data = *data;
platform_device_register(&at91rm9200_usbh_device);
}
Expand Down
8 changes: 8 additions & 0 deletions arch/arm/mach-at91/at91sam9260_devices.c
Original file line number Diff line number Diff line change
Expand Up @@ -61,9 +61,17 @@ static struct platform_device at91_usbh_device = {

void __init at91_add_device_usbh(struct at91_usbh_data *data)
{
int i;

if (!data)
return;

/* Enable overcurrent notification */
for (i = 0; i < data->ports; i++) {
if (data->overcurrent_pin[i])
at91_set_gpio_input(data->overcurrent_pin[i], 1);
}

usbh_data = *data;
platform_device_register(&at91_usbh_device);
}
Expand Down
8 changes: 8 additions & 0 deletions arch/arm/mach-at91/at91sam9261_devices.c
Original file line number Diff line number Diff line change
Expand Up @@ -64,9 +64,17 @@ static struct platform_device at91sam9261_usbh_device = {

void __init at91_add_device_usbh(struct at91_usbh_data *data)
{
int i;

if (!data)
return;

/* Enable overcurrent notification */
for (i = 0; i < data->ports; i++) {
if (data->overcurrent_pin[i])
at91_set_gpio_input(data->overcurrent_pin[i], 1);
}

usbh_data = *data;
platform_device_register(&at91sam9261_usbh_device);
}
Expand Down
6 changes: 6 additions & 0 deletions arch/arm/mach-at91/at91sam9263_devices.c
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,12 @@ void __init at91_add_device_usbh(struct at91_usbh_data *data)
at91_set_gpio_output(data->vbus_pin[i], 0);
}

/* Enable overcurrent notification */
for (i = 0; i < data->ports; i++) {
if (data->overcurrent_pin[i])
at91_set_gpio_input(data->overcurrent_pin[i], 1);
}

usbh_data = *data;
platform_device_register(&at91_usbh_device);
}
Expand Down
6 changes: 6 additions & 0 deletions arch/arm/mach-at91/at91sam9g45_devices.c
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,12 @@ void __init at91_add_device_usbh_ohci(struct at91_usbh_data *data)
at91_set_gpio_output(data->vbus_pin[i], 0);
}

/* Enable overcurrent notification */
for (i = 0; i < data->ports; i++) {
if (data->overcurrent_pin[i])
at91_set_gpio_input(data->overcurrent_pin[i], 1);
}

usbh_ohci_data = *data;
platform_device_register(&at91_usbh_ohci_device);
}
Expand Down

0 comments on commit 1fcaea7

Please sign in to comment.