arm-trusted-firmware/drivers
Andre Przywara 93fa305c0a plat/allwinner: Only enable DRIVEVBUS if really needed
The DRIVEVBUS power rail of the AXP803 PMIC is mostly used to supply
the USB bus power on micro USB sockets, when used in host mode. As this
is a dynamic operation, and mostly we want micro USB sockets to act in
client mode initially, BL31 should not actually enable this power line.
However, on some boards DRIVEVBUS is used to supply power to normal
USB-A sockets. Failing to activate this line there results in
non-functional USB in U-Boot on those boards.

For that reason we were enabling DRIVEVBUS so far, as it did not seem to
cause any harm to the other boards. However it turns out that on the
Pinephone (and other systems with a battery), actually enabling DRIVEVBUS
unconditionally causes serious problems (reboot loop).

To accommodate both use cases, without reverting to a build time option,
check the default OTG configuration in the devicetree. For boards with
USB-A sockets this is set to "host", on boards with micro-B sockets to
"otg". Depending on this setting, we either enable DRIVEVBUS or leave it
alone.

This fixes TF-A on the Pinephone and potentially other battery powered
devices.

Change-Id: Iec0e07f218b2b4393bf4e05c3386261f8ed19e9f
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2020-08-17 11:13:59 +01:00
..
allwinner plat/allwinner: Only enable DRIVEVBUS if really needed 2020-08-17 11:13:59 +01:00
amlogic meson: Use generic console_t data structure 2020-02-25 09:34:38 +00:00
arm GIC-600: Fix MISRA-2012 defects 2020-07-29 16:51:05 +00:00
auth dualroot: add chain of trust for Platform owned SPs 2020-08-12 14:30:31 +01:00
brcm driver: brcm: add RNG driver 2020-07-13 18:01:19 +05:30
cadence/uart/aarch64 cdns: Use generic console_t data structure 2020-02-25 09:34:38 +00:00
cfi/v2m coverity: fix MISRA violations 2020-02-18 10:47:46 -06:00
console skeletton: Use generic console_t data structure 2020-02-25 09:34:38 +00:00
coreboot/cbmem_console/aarch64 coreboot: Use generic base address 2020-02-25 09:34:38 +00:00
delay_timer include: move MHZ_TICKS_PER_SEC to utils_def.h 2020-02-20 09:25:45 -08:00
gpio Sanitise includes across codebase 2019-01-04 10:43:17 +00:00
imx imx: Use generic console_t data structure 2020-02-25 09:34:38 +00:00
intel/soc/stratix10/io io: change seek offset to signed long long 2020-01-10 21:14:57 +01:00
io Merge "io_fip: return -ENFILE when a file is already open" into integration 2020-07-21 21:41:51 +00:00
marvell drivers: marvell: Fix the LLC SRAM driver 2020-07-10 10:55:33 +00:00
measured_boot TF-A: Add Event Log for Measured Boot 2020-07-21 20:33:15 +00:00
mentor/i2c Enable -Wlogical-op always 2019-11-19 08:53:21 -06:00
mmc mmc: increase delay between ACMD41 retries 2019-10-03 11:17:31 +02:00
mtd Add SPI-NOR framework 2020-01-20 11:32:59 +01:00
partition drivers: partition: support different block size 2019-09-18 18:18:20 +08:00
renesas/rcar rcar: Use generic console_t data structure 2020-02-25 09:34:38 +00:00
rpi3 rpi3: gpio: Simplify GPIO setup 2020-03-17 12:44:09 +00:00
st drivers/stm32_hash: register resources as secure or not 2020-07-08 12:56:23 +02:00
synopsys Merge changes from topic "jc/shift-overflow" into integration 2019-07-16 10:11:27 +00:00
ti/uart 16550: Use generic console_t data structure 2020-02-25 09:34:38 +00:00
ufs drivers: ufs: Extend the delay after reset to wait for some slower chips 2019-05-13 17:11:07 -07:00