mirror of https://gitee.com/openkylin/linux.git
7043e311a5
The pullup does not need to be enabled at below situations: - For platforms which the hardware pullup starts after setting register even they do not see the VBUS. If the pullup is always enabled for these platforms, it will consume more power and break the USB IF compliance tests [1]. - For platforms which need to do BC 1.2 charger detection after seeing the VBUS. Pullup D+ will break the charger detection flow. - For platforms which the system suspend is allowed when the connection with host is there but the bus is not at suspend. For these platforms, it is better to disable pullup when entering the system suspend otherwise the host may confuse the device behavior after controller is in low power mode. Disable pullup is considered as a disconnection event from host side. [1] USB-IF Full and Low Speed Compliance Test Procedure F Back-voltage Testing Section 7.2.1 of the USB specification requires that no device shall supply (source) current on VBUS at its upstream facing port at any time. From VBUS on its upstream facing port, a device may only draw (sink) current. They may not provide power to the pull-up resistor on D+/D- unless VBUS is present (see Section 7.1.5). Signed-off-by: Peter Chen <peter.chen@nxp.com> Link: https://lore.kernel.org/r/20201230051114.21370-1-peter.chen@nxp.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
||
---|---|---|
.. | ||
aspeed-vhub | ||
bdc | ||
Kconfig | ||
Makefile | ||
amd5536udc.h | ||
amd5536udc_pci.c | ||
at91_udc.c | ||
at91_udc.h | ||
atmel_usba_udc.c | ||
atmel_usba_udc.h | ||
bcm63xx_udc.c | ||
core.c | ||
dummy_hcd.c | ||
fotg210-udc.c | ||
fotg210.h | ||
fsl_qe_udc.c | ||
fsl_qe_udc.h | ||
fsl_udc_core.c | ||
fsl_usb2_udc.h | ||
fusb300_udc.c | ||
fusb300_udc.h | ||
goku_udc.c | ||
goku_udc.h | ||
gr_udc.c | ||
gr_udc.h | ||
lpc32xx_udc.c | ||
m66592-udc.c | ||
m66592-udc.h | ||
max3420_udc.c | ||
mv_u3d.h | ||
mv_u3d_core.c | ||
mv_udc.h | ||
mv_udc_core.c | ||
net2272.c | ||
net2272.h | ||
net2280.c | ||
net2280.h | ||
omap_udc.c | ||
omap_udc.h | ||
pch_udc.c | ||
pxa25x_udc.c | ||
pxa25x_udc.h | ||
pxa27x_udc.c | ||
pxa27x_udc.h | ||
r8a66597-udc.c | ||
r8a66597-udc.h | ||
renesas_usb3.c | ||
s3c-hsudc.c | ||
s3c2410_udc.c | ||
s3c2410_udc.h | ||
s3c2410_udc_regs.h | ||
snps_udc_core.c | ||
snps_udc_plat.c | ||
tegra-xudc.c | ||
trace.c | ||
trace.h | ||
udc-xilinx.c |