On Tue, 5 May 2020 18:13:15 +0200, Nicolas Saenz Julienne wrote: > The Raspberry Pi 4 gets its USB functionality from VL805, a PCIe chip > that implements xHCI. After a PCI reset, VL805's firmware may either be > loaded directly from an EEPROM or, if not present, by the SoC's > co-processor, VideoCore. RPi4's VideoCore OS contains both the non public > firmware load logic and the VL805 firmware blob. The function this patch > introduces triggers the aforementioned process. > > Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@xxxxxxx> > > --- > > Change since v7: > - Use usleep_delay() > - Add comment about PCI errors > - Don't wait on error > - Typos > > Change since v6: > - Add test to avoid loading the firmware when not needed > - Since we have it around, print VL805's firmware version, it'll make > debugging easier in the future > - Correct typos > - Add a clearer view of HW topology in patch description > > Changes since v4: > - Inline function definition when RASPBERRYPI_FIRMWARE is not defined > > Changes since v1: > - Move include into .c file and add forward declaration to .h > > drivers/firmware/raspberrypi.c | 61 ++++++++++++++++++++++ > include/soc/bcm2835/raspberrypi-firmware.h | 7 +++ > 2 files changed, 68 insertions(+) > Reviewed-by: Rob Herring <robh@xxxxxxxxxx>