|
@@ -708,7 +708,7 @@ static void msm_otg_start_host(struct usb_phy *phy, int on)
|
|
|
|
|
|
static int msm_otg_set_host(struct usb_otg *otg, struct usb_bus *host)
|
|
|
{
|
|
|
- struct msm_otg *motg = container_of(otg->phy, struct msm_otg, phy);
|
|
|
+ struct msm_otg *motg = container_of(otg->usb_phy, struct msm_otg, phy);
|
|
|
struct usb_hcd *hcd;
|
|
|
|
|
|
/*
|
|
@@ -716,14 +716,14 @@ static int msm_otg_set_host(struct usb_otg *otg, struct usb_bus *host)
|
|
|
* only peripheral configuration.
|
|
|
*/
|
|
|
if (motg->pdata->mode == USB_DR_MODE_PERIPHERAL) {
|
|
|
- dev_info(otg->phy->dev, "Host mode is not supported\n");
|
|
|
+ dev_info(otg->usb_phy->dev, "Host mode is not supported\n");
|
|
|
return -ENODEV;
|
|
|
}
|
|
|
|
|
|
if (!host) {
|
|
|
if (otg->state == OTG_STATE_A_HOST) {
|
|
|
- pm_runtime_get_sync(otg->phy->dev);
|
|
|
- msm_otg_start_host(otg->phy, 0);
|
|
|
+ pm_runtime_get_sync(otg->usb_phy->dev);
|
|
|
+ msm_otg_start_host(otg->usb_phy, 0);
|
|
|
otg->host = NULL;
|
|
|
otg->state = OTG_STATE_UNDEFINED;
|
|
|
schedule_work(&motg->sm_work);
|
|
@@ -738,14 +738,14 @@ static int msm_otg_set_host(struct usb_otg *otg, struct usb_bus *host)
|
|
|
hcd->power_budget = motg->pdata->power_budget;
|
|
|
|
|
|
otg->host = host;
|
|
|
- dev_dbg(otg->phy->dev, "host driver registered w/ tranceiver\n");
|
|
|
+ dev_dbg(otg->usb_phy->dev, "host driver registered w/ tranceiver\n");
|
|
|
|
|
|
/*
|
|
|
* Kick the state machine work, if peripheral is not supported
|
|
|
* or peripheral is already registered with us.
|
|
|
*/
|
|
|
if (motg->pdata->mode == USB_DR_MODE_HOST || otg->gadget) {
|
|
|
- pm_runtime_get_sync(otg->phy->dev);
|
|
|
+ pm_runtime_get_sync(otg->usb_phy->dev);
|
|
|
schedule_work(&motg->sm_work);
|
|
|
}
|
|
|
|
|
@@ -782,21 +782,21 @@ static void msm_otg_start_peripheral(struct usb_phy *phy, int on)
|
|
|
static int msm_otg_set_peripheral(struct usb_otg *otg,
|
|
|
struct usb_gadget *gadget)
|
|
|
{
|
|
|
- struct msm_otg *motg = container_of(otg->phy, struct msm_otg, phy);
|
|
|
+ struct msm_otg *motg = container_of(otg->usb_phy, struct msm_otg, phy);
|
|
|
|
|
|
/*
|
|
|
* Fail peripheral registration if this board can support
|
|
|
* only host configuration.
|
|
|
*/
|
|
|
if (motg->pdata->mode == USB_DR_MODE_HOST) {
|
|
|
- dev_info(otg->phy->dev, "Peripheral mode is not supported\n");
|
|
|
+ dev_info(otg->usb_phy->dev, "Peripheral mode is not supported\n");
|
|
|
return -ENODEV;
|
|
|
}
|
|
|
|
|
|
if (!gadget) {
|
|
|
if (otg->state == OTG_STATE_B_PERIPHERAL) {
|
|
|
- pm_runtime_get_sync(otg->phy->dev);
|
|
|
- msm_otg_start_peripheral(otg->phy, 0);
|
|
|
+ pm_runtime_get_sync(otg->usb_phy->dev);
|
|
|
+ msm_otg_start_peripheral(otg->usb_phy, 0);
|
|
|
otg->gadget = NULL;
|
|
|
otg->state = OTG_STATE_UNDEFINED;
|
|
|
schedule_work(&motg->sm_work);
|
|
@@ -807,14 +807,15 @@ static int msm_otg_set_peripheral(struct usb_otg *otg,
|
|
|
return 0;
|
|
|
}
|
|
|
otg->gadget = gadget;
|
|
|
- dev_dbg(otg->phy->dev, "peripheral driver registered w/ tranceiver\n");
|
|
|
+ dev_dbg(otg->usb_phy->dev,
|
|
|
+ "peripheral driver registered w/ tranceiver\n");
|
|
|
|
|
|
/*
|
|
|
* Kick the state machine work, if host is not supported
|
|
|
* or host is already registered with us.
|
|
|
*/
|
|
|
if (motg->pdata->mode == USB_DR_MODE_PERIPHERAL || otg->host) {
|
|
|
- pm_runtime_get_sync(otg->phy->dev);
|
|
|
+ pm_runtime_get_sync(otg->usb_phy->dev);
|
|
|
schedule_work(&motg->sm_work);
|
|
|
}
|
|
|
|
|
@@ -1172,17 +1173,17 @@ static void msm_otg_sm_work(struct work_struct *w)
|
|
|
|
|
|
switch (otg->state) {
|
|
|
case OTG_STATE_UNDEFINED:
|
|
|
- dev_dbg(otg->phy->dev, "OTG_STATE_UNDEFINED state\n");
|
|
|
- msm_otg_reset(otg->phy);
|
|
|
+ dev_dbg(otg->usb_phy->dev, "OTG_STATE_UNDEFINED state\n");
|
|
|
+ msm_otg_reset(otg->usb_phy);
|
|
|
msm_otg_init_sm(motg);
|
|
|
otg->state = OTG_STATE_B_IDLE;
|
|
|
/* FALL THROUGH */
|
|
|
case OTG_STATE_B_IDLE:
|
|
|
- dev_dbg(otg->phy->dev, "OTG_STATE_B_IDLE state\n");
|
|
|
+ dev_dbg(otg->usb_phy->dev, "OTG_STATE_B_IDLE state\n");
|
|
|
if (!test_bit(ID, &motg->inputs) && otg->host) {
|
|
|
/* disable BSV bit */
|
|
|
writel(readl(USB_OTGSC) & ~OTGSC_BSVIE, USB_OTGSC);
|
|
|
- msm_otg_start_host(otg->phy, 1);
|
|
|
+ msm_otg_start_host(otg->usb_phy, 1);
|
|
|
otg->state = OTG_STATE_A_HOST;
|
|
|
} else if (test_bit(B_SESS_VLD, &motg->inputs)) {
|
|
|
switch (motg->chg_state) {
|
|
@@ -1198,13 +1199,15 @@ static void msm_otg_sm_work(struct work_struct *w)
|
|
|
case USB_CDP_CHARGER:
|
|
|
msm_otg_notify_charger(motg,
|
|
|
IDEV_CHG_MAX);
|
|
|
- msm_otg_start_peripheral(otg->phy, 1);
|
|
|
+ msm_otg_start_peripheral(otg->usb_phy,
|
|
|
+ 1);
|
|
|
otg->state
|
|
|
= OTG_STATE_B_PERIPHERAL;
|
|
|
break;
|
|
|
case USB_SDP_CHARGER:
|
|
|
msm_otg_notify_charger(motg, IUNIT);
|
|
|
- msm_otg_start_peripheral(otg->phy, 1);
|
|
|
+ msm_otg_start_peripheral(otg->usb_phy,
|
|
|
+ 1);
|
|
|
otg->state
|
|
|
= OTG_STATE_B_PERIPHERAL;
|
|
|
break;
|
|
@@ -1222,8 +1225,8 @@ static void msm_otg_sm_work(struct work_struct *w)
|
|
|
* is incremented in charger detection work.
|
|
|
*/
|
|
|
if (cancel_delayed_work_sync(&motg->chg_work)) {
|
|
|
- pm_runtime_put_sync(otg->phy->dev);
|
|
|
- msm_otg_reset(otg->phy);
|
|
|
+ pm_runtime_put_sync(otg->usb_phy->dev);
|
|
|
+ msm_otg_reset(otg->usb_phy);
|
|
|
}
|
|
|
msm_otg_notify_charger(motg, 0);
|
|
|
motg->chg_state = USB_CHG_STATE_UNDEFINED;
|
|
@@ -1231,27 +1234,27 @@ static void msm_otg_sm_work(struct work_struct *w)
|
|
|
}
|
|
|
|
|
|
if (otg->state == OTG_STATE_B_IDLE)
|
|
|
- pm_runtime_put_sync(otg->phy->dev);
|
|
|
+ pm_runtime_put_sync(otg->usb_phy->dev);
|
|
|
break;
|
|
|
case OTG_STATE_B_PERIPHERAL:
|
|
|
- dev_dbg(otg->phy->dev, "OTG_STATE_B_PERIPHERAL state\n");
|
|
|
+ dev_dbg(otg->usb_phy->dev, "OTG_STATE_B_PERIPHERAL state\n");
|
|
|
if (!test_bit(B_SESS_VLD, &motg->inputs) ||
|
|
|
!test_bit(ID, &motg->inputs)) {
|
|
|
msm_otg_notify_charger(motg, 0);
|
|
|
- msm_otg_start_peripheral(otg->phy, 0);
|
|
|
+ msm_otg_start_peripheral(otg->usb_phy, 0);
|
|
|
motg->chg_state = USB_CHG_STATE_UNDEFINED;
|
|
|
motg->chg_type = USB_INVALID_CHARGER;
|
|
|
otg->state = OTG_STATE_B_IDLE;
|
|
|
- msm_otg_reset(otg->phy);
|
|
|
+ msm_otg_reset(otg->usb_phy);
|
|
|
schedule_work(w);
|
|
|
}
|
|
|
break;
|
|
|
case OTG_STATE_A_HOST:
|
|
|
- dev_dbg(otg->phy->dev, "OTG_STATE_A_HOST state\n");
|
|
|
+ dev_dbg(otg->usb_phy->dev, "OTG_STATE_A_HOST state\n");
|
|
|
if (test_bit(ID, &motg->inputs)) {
|
|
|
- msm_otg_start_host(otg->phy, 0);
|
|
|
+ msm_otg_start_host(otg->usb_phy, 0);
|
|
|
otg->state = OTG_STATE_B_IDLE;
|
|
|
- msm_otg_reset(otg->phy);
|
|
|
+ msm_otg_reset(otg->usb_phy);
|
|
|
schedule_work(w);
|
|
|
}
|
|
|
break;
|
|
@@ -1388,7 +1391,7 @@ static ssize_t msm_otg_mode_write(struct file *file, const char __user *ubuf,
|
|
|
goto out;
|
|
|
}
|
|
|
|
|
|
- pm_runtime_get_sync(otg->phy->dev);
|
|
|
+ pm_runtime_get_sync(otg->usb_phy->dev);
|
|
|
schedule_work(&motg->sm_work);
|
|
|
out:
|
|
|
return status;
|
|
@@ -1668,7 +1671,7 @@ static int msm_otg_probe(struct platform_device *pdev)
|
|
|
|
|
|
phy->io_ops = &msm_otg_io_ops;
|
|
|
|
|
|
- phy->otg->phy = &motg->phy;
|
|
|
+ phy->otg->usb_phy = &motg->phy;
|
|
|
phy->otg->set_host = msm_otg_set_host;
|
|
|
phy->otg->set_peripheral = msm_otg_set_peripheral;
|
|
|
|