Searched hist:d93eb4467a0ca09d359f242b19f584a58e4e805b (Results 1 – 1 of 1) sorted by relevance
| /rk3399_ARM-atf/plat/allwinner/sun50i_a64/ |
| H A D | sunxi_power.c | d93eb4467a0ca09d359f242b19f584a58e4e805b Mon Nov 05 00:52:06 UTC 2018 Andre Przywara <andre.przywara@arm.com> allwinner: power: fix DRIVEVBUS pin setup
The DRIVEVBUS pin setup was broken in two ways: - To configure this pin as an output pin, one has to *clear* the bit in register 0x8f. It is 0 by default, but rebooting from Linux might have left this bit set. - Doing this just configures the pin as an output pin, but doesn't actually drive power to it. This is done via bit 2 in register 0x30.
Fix the routine to both properly configure the pin and drive power to it. Add an axp_clrsetbits() helper on the way.
Now this isn't really perfect, still: We only need to setup the PMIC power rails that are needed for U-Boot. DRIVEVBUS typically controls the VBUS voltage for the host function of an USB-OTG port, something we typically don't want in U-Boot (fastboot, using the USB *device* functionality, is much more common). The BananaPi-M64 uses the regulator in this way, but the Remix Mini PC actually controls the power of both its USB ports via this line.
Technically we should differentiate here: if DRIVEVBUS controls a microUSB-B socket, the power should stay off, any host-type A sockets should be supplied, though. For now just always enable the power, that shouldn't really hurt the USB-OTG functionality anyway.
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
|