Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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 <peter.chen@freescale.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Peter Chen and committed by
Greg Kroah-Hartman
f6a9ff07 05f8b35a

+6
+4
drivers/usb/chipidea/core.c
··· 473 473 PTR_ERR(platdata->reg_vbus)); 474 474 return PTR_ERR(platdata->reg_vbus); 475 475 } 476 + /* Get TPL support */ 477 + if (!platdata->tpl_support) 478 + platdata->tpl_support = 479 + of_usb_host_tpl_support(dev->of_node); 476 480 } 477 481 478 482 if (of_usb_get_maximum_speed(dev->of_node) == USB_SPEED_FULL)
+1
drivers/usb/chipidea/host.c
··· 60 60 61 61 hcd->power_budget = ci->platdata->power_budget; 62 62 hcd->phy = ci->transceiver; 63 + hcd->tpl_support = ci->platdata->tpl_support; 63 64 64 65 ehci = hcd_to_ehci(hcd); 65 66 ehci->caps = ci->hw_bank.cap;
+1
include/linux/usb/chipidea.h
··· 31 31 #define CI_HDRC_CONTROLLER_STOPPED_EVENT 1 32 32 void (*notify_event) (struct ci_hdrc *ci, unsigned event); 33 33 struct regulator *reg_vbus; 34 + bool tpl_support; 34 35 }; 35 36 36 37 /* Default offset of capability registers */