From: Peter Chen Date: Tue, 19 Aug 2014 01:51:56 +0000 (+0800) Subject: usb: chipidea: add TPL support for targeted hosts X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=f6a9ff07832a9d30d457e976e6233b4351cd4cdf;p=linux.git usb: chipidea: add TPL support for targeted hosts For OTG and Embedded hosts, they may need TPL (Targeted Peripheral List) for usb certification and other vender specific requirements, the platform can tell chipidea core driver if it supports tpl through DT or platform data. Signed-off-by: Peter Chen Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/usb/chipidea/core.c b/drivers/usb/chipidea/core.c index 619d13e29995d..41d45a16dd308 100644 --- a/drivers/usb/chipidea/core.c +++ b/drivers/usb/chipidea/core.c @@ -473,6 +473,10 @@ static int ci_get_platdata(struct device *dev, PTR_ERR(platdata->reg_vbus)); return PTR_ERR(platdata->reg_vbus); } + /* Get TPL support */ + if (!platdata->tpl_support) + platdata->tpl_support = + of_usb_host_tpl_support(dev->of_node); } if (of_usb_get_maximum_speed(dev->of_node) == USB_SPEED_FULL) diff --git a/drivers/usb/chipidea/host.c b/drivers/usb/chipidea/host.c index a93d950e9468b..0d6b24cb22705 100644 --- a/drivers/usb/chipidea/host.c +++ b/drivers/usb/chipidea/host.c @@ -60,6 +60,7 @@ static int host_start(struct ci_hdrc *ci) hcd->power_budget = ci->platdata->power_budget; hcd->phy = ci->transceiver; + hcd->tpl_support = ci->platdata->tpl_support; ehci = hcd_to_ehci(hcd); ehci->caps = ci->hw_bank.cap; diff --git a/include/linux/usb/chipidea.h b/include/linux/usb/chipidea.h index bbe779f640bed..e14c09a45c5ac 100644 --- a/include/linux/usb/chipidea.h +++ b/include/linux/usb/chipidea.h @@ -31,6 +31,7 @@ struct ci_hdrc_platform_data { #define CI_HDRC_CONTROLLER_STOPPED_EVENT 1 void (*notify_event) (struct ci_hdrc *ci, unsigned event); struct regulator *reg_vbus; + bool tpl_support; }; /* Default offset of capability registers */