aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mfd
diff options
context:
space:
mode:
authorRuslan Bilovol <ruslan.bilovol@ti.com>2012-07-23 18:22:53 +0300
committerZiyann <jaraidaniel@gmail.com>2014-10-01 12:59:06 +0200
commit689d519cb5f2e9e064c5e253e176569709800769 (patch)
treee4a56168a00263966fde155e59a5c2348855d773 /drivers/mfd
parentc809d9d563852ca2e971dda6a30685e39c39f3b9 (diff)
downloadkernel_samsung_tuna-689d519cb5f2e9e064c5e253e176569709800769.zip
kernel_samsung_tuna-689d519cb5f2e9e064c5e253e176569709800769.tar.gz
kernel_samsung_tuna-689d519cb5f2e9e064c5e253e176569709800769.tar.bz2
mfd: omap: remove hardcoding in usbhs
Change-Id: If4b4b9365424282abb623329d094706a52bc777f Signed-off-by: Ruslan Bilovol <ruslan.bilovol@ti.com>
Diffstat (limited to 'drivers/mfd')
-rw-r--r--drivers/mfd/omap-usb-host.c51
1 files changed, 27 insertions, 24 deletions
diff --git a/drivers/mfd/omap-usb-host.c b/drivers/mfd/omap-usb-host.c
index 86f88a7..ada743a 100644
--- a/drivers/mfd/omap-usb-host.c
+++ b/drivers/mfd/omap-usb-host.c
@@ -833,18 +833,19 @@ static void omap_usbhs_init(struct device *dev)
spin_lock_irqsave(&omap->lock, flags);
if (pdata->ehci_data->phy_reset) {
- if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[0])) {
- gpio_request(pdata->ehci_data->reset_gpio_port[0],
- "USB1 PHY reset");
- gpio_direction_output
- (pdata->ehci_data->reset_gpio_port[0], 0);
- }
-
- if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[1])) {
- gpio_request(pdata->ehci_data->reset_gpio_port[1],
- "USB2 PHY reset");
- gpio_direction_output
- (pdata->ehci_data->reset_gpio_port[1], 0);
+ int i;
+
+ static char gpio_label[ARRAY_SIZE(pdata->ehci_data->reset_gpio_port)][20];
+
+ for (i = 0; i < ARRAY_SIZE(pdata->ehci_data->reset_gpio_port); i++) {
+ if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[i])) {
+ snprintf(gpio_label[i], ARRAY_SIZE(gpio_label[i]),
+ "USB%d PHY reset", i);
+ gpio_request(pdata->ehci_data->reset_gpio_port[i],
+ gpio_label[i]);
+ gpio_direction_output
+ (pdata->ehci_data->reset_gpio_port[i], 0);
+ }
}
/* Hold the PHY in RESET for enough time till DIR is high */
@@ -949,18 +950,19 @@ static void omap_usbhs_init(struct device *dev)
}
if (pdata->ehci_data->phy_reset) {
- /* Hold the PHY in RESET for enough time till
+ int i;
+
+ /*
+ * Hold the PHY in RESET for enough time till
* PHY is settled and ready
*/
udelay(10);
- if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[0]))
- gpio_set_value
- (pdata->ehci_data->reset_gpio_port[0], 1);
-
- if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[1]))
- gpio_set_value
- (pdata->ehci_data->reset_gpio_port[1], 1);
+ for (i = 0; i < ARRAY_SIZE(pdata->ehci_data->reset_gpio_port); i++) {
+ if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[i]))
+ gpio_set_value
+ (pdata->ehci_data->reset_gpio_port[i], 1);
+ }
}
spin_unlock_irqrestore(&omap->lock, flags);
@@ -975,11 +977,12 @@ static void omap_usbhs_deinit(struct device *dev)
dev_dbg(dev, "stopping TI HSUSB Controller\n");
if (pdata->ehci_data->phy_reset) {
- if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[0]))
- gpio_free(pdata->ehci_data->reset_gpio_port[0]);
+ int i;
- if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[1]))
- gpio_free(pdata->ehci_data->reset_gpio_port[1]);
+ for (i = 0; i < ARRAY_SIZE(pdata->ehci_data->reset_gpio_port); i++) {
+ if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[i]))
+ gpio_free(pdata->ehci_data->reset_gpio_port[i]);
+ }
}
}