Hi, This patchset introduces entire infrastructure for using GPIO on Marvell devices. Finally the USB ports are properly power-supplied on all currently supported boards.
Main changes are as follows: - New GPIO protocol for handling basic pins operations. It allows very easy usage from consumer perspective. - An example of it is enabling USB ports' VBUS via newly introduced NonDiscoverableInitLib, that abstracts the initialization required for non-discoverable devices (see last commit). - Also Board/SoC description is added for both embedded SoC controllers, as well as I2C IO expanders. - This description is utilized by two new drivers - Armada7k8k GPIO controllers and PCA95xx I2C IO expander family. More detailed explanation can be found in the commit logs. Patches are available in the github: https://github.com/MarvellEmbeddedProcessors/edk2-open-platform/commits/gpio-upstream-r20181020 The diffstat may be overwhelming at the first sight, but I made a really big effort to minimize a risk it turns out to be painful for reviewers :) I'm looking forward to the comments and remarks. Best regards, Marcin Marcin Wojtas (10): Marvell/Library: ArmadaSoCDescLib: Add GPIO information Marvell/Library: ArmadaBoardDescLib: Add GPIO information SolidRun/Armada80x0McBin: Introduce board description library Marvell/Armada70x0Db: Introduce board description library Marvell/Armada80x0Db: Introduce board description library Marvell/Drivers: MvBoardDesc: Extend protocol with GPIO support Marvell/Drivers: I2c: Use common header for macros Marvell/Drivers: MvPca95xxDxe: Introduce I2C GPIO driver Marvell/Armada7k8k: Enable GPIO drivers compilation Marvell/Armada7k8k: Introduce NonDiscoverable device init routines jinghua (2): Marvell/Protocol: Introduce MARVELL_GPIO_PROTOCOL Marvell/Drivers: MvGpioDxe: Introduce platform GPIO driver Silicon/Marvell/Marvell.dec | 2 + Silicon/Marvell/Armada7k8k/Armada7k8k.dsc.inc | 2 + Platform/Marvell/Armada70x0Db/Armada70x0Db.dsc | 10 +- Platform/Marvell/Armada80x0Db/Armada80x0Db.dsc | 6 + Platform/SolidRun/Armada80x0McBin/Armada80x0McBin.dsc | 6 + Platform/Marvell/Armada70x0Db/Armada70x0DbBoardDescLib/Armada70x0DbBoardDescLib.inf | 34 ++ Platform/Marvell/Armada70x0Db/NonDiscoverableInitLib/NonDiscoverableInitLib.inf | 47 ++ Platform/Marvell/Armada80x0Db/Armada80x0DbBoardDescLib/Armada80x0DbBoardDescLib.inf | 34 ++ Platform/Marvell/Armada80x0Db/NonDiscoverableInitLib/NonDiscoverableInitLib.inf | 48 ++ Platform/SolidRun/Armada80x0McBin/Armada80x0McBinBoardDescLib/Armada80x0McBinBoardDescLib.inf | 34 ++ Platform/SolidRun/Armada80x0McBin/NonDiscoverableInitLib/NonDiscoverableInitLib.inf | 48 ++ Silicon/Marvell/Drivers/BoardDesc/MvBoardDescDxe.inf | 1 + Silicon/Marvell/Drivers/Gpio/MvGpioDxe/MvGpioDxe.inf | 43 ++ Silicon/Marvell/Drivers/Gpio/MvPca95xxDxe/MvPca95xxDxe.inf | 44 ++ Silicon/Marvell/Drivers/NonDiscoverableDxe/NonDiscoverableDxe.inf | 1 + Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.h | 10 + Silicon/Marvell/Drivers/Gpio/MvGpioDxe/MvGpioDxe.h | 52 ++ Silicon/Marvell/Drivers/Gpio/MvPca95xxDxe/MvPca95xxDxe.h | 74 +++ Silicon/Marvell/Drivers/I2c/MvEepromDxe/MvEepromDxe.h | 10 - Silicon/Marvell/Drivers/I2c/MvI2cDxe/MvI2cDxe.h | 17 +- Silicon/Marvell/Include/Library/ArmadaBoardDescLib.h | 23 + Silicon/Marvell/Include/Library/ArmadaSoCDescLib.h | 15 + Silicon/Marvell/Include/Library/NonDiscoverableInitLib.h | 28 + Silicon/Marvell/Include/Protocol/BoardDesc.h | 8 + Silicon/Marvell/Include/Protocol/MvGpio.h | 199 +++++++ Silicon/Marvell/Include/Protocol/MvI2c.h | 31 + Platform/Marvell/Armada70x0Db/Armada70x0DbBoardDescLib/Armada70x0DbBoardDescLib.c | 43 ++ Platform/Marvell/Armada70x0Db/NonDiscoverableInitLib/NonDiscoverableInitLib.c | 99 ++++ Platform/Marvell/Armada80x0Db/Armada80x0DbBoardDescLib/Armada80x0DbBoardDescLib.c | 50 ++ Platform/Marvell/Armada80x0Db/NonDiscoverableInitLib/NonDiscoverableInitLib.c | 113 ++++ Platform/SolidRun/Armada80x0McBin/Armada80x0McBinBoardDescLib/Armada80x0McBinBoardDescLib.c | 36 ++ Platform/SolidRun/Armada80x0McBin/NonDiscoverableInitLib/NonDiscoverableInitLib.c | 73 +++ Silicon/Marvell/Applications/EepromCmd/EepromCmd.c | 5 +- Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.c | 39 ++ Silicon/Marvell/Drivers/BoardDesc/MvBoardDescDxe.c | 48 ++ Silicon/Marvell/Drivers/Gpio/MvGpioDxe/MvGpioDxe.c | 298 ++++++++++ Silicon/Marvell/Drivers/Gpio/MvPca95xxDxe/MvPca95xxDxe.c | 592 ++++++++++++++++++++ Silicon/Marvell/Drivers/I2c/MvEepromDxe/MvEepromDxe.c | 3 +- Silicon/Marvell/Drivers/I2c/MvI2cDxe/MvI2cDxe.c | 4 +- Silicon/Marvell/Drivers/NonDiscoverableDxe/NonDiscoverableDxe.c | 7 +- Platform/Marvell/Armada70x0Db/Armada70x0Db.fdf.inc | 2 + Platform/Marvell/Armada80x0Db/Armada80x0Db.fdf.inc | 2 + Platform/SolidRun/Armada80x0McBin/Armada80x0McBin.fdf.inc | 2 + 43 files changed, 2205 insertions(+), 38 deletions(-) create mode 100644 Platform/Marvell/Armada70x0Db/Armada70x0DbBoardDescLib/Armada70x0DbBoardDescLib.inf create mode 100644 Platform/Marvell/Armada70x0Db/NonDiscoverableInitLib/NonDiscoverableInitLib.inf create mode 100644 Platform/Marvell/Armada80x0Db/Armada80x0DbBoardDescLib/Armada80x0DbBoardDescLib.inf create mode 100644 Platform/Marvell/Armada80x0Db/NonDiscoverableInitLib/NonDiscoverableInitLib.inf create mode 100644 Platform/SolidRun/Armada80x0McBin/Armada80x0McBinBoardDescLib/Armada80x0McBinBoardDescLib.inf create mode 100644 Platform/SolidRun/Armada80x0McBin/NonDiscoverableInitLib/NonDiscoverableInitLib.inf create mode 100644 Silicon/Marvell/Drivers/Gpio/MvGpioDxe/MvGpioDxe.inf create mode 100644 Silicon/Marvell/Drivers/Gpio/MvPca95xxDxe/MvPca95xxDxe.inf create mode 100644 Silicon/Marvell/Drivers/Gpio/MvGpioDxe/MvGpioDxe.h create mode 100644 Silicon/Marvell/Drivers/Gpio/MvPca95xxDxe/MvPca95xxDxe.h create mode 100644 Silicon/Marvell/Include/Library/NonDiscoverableInitLib.h create mode 100644 Silicon/Marvell/Include/Protocol/MvGpio.h create mode 100644 Silicon/Marvell/Include/Protocol/MvI2c.h create mode 100644 Platform/Marvell/Armada70x0Db/Armada70x0DbBoardDescLib/Armada70x0DbBoardDescLib.c create mode 100644 Platform/Marvell/Armada70x0Db/NonDiscoverableInitLib/NonDiscoverableInitLib.c create mode 100644 Platform/Marvell/Armada80x0Db/Armada80x0DbBoardDescLib/Armada80x0DbBoardDescLib.c create mode 100644 Platform/Marvell/Armada80x0Db/NonDiscoverableInitLib/NonDiscoverableInitLib.c create mode 100644 Platform/SolidRun/Armada80x0McBin/Armada80x0McBinBoardDescLib/Armada80x0McBinBoardDescLib.c create mode 100644 Platform/SolidRun/Armada80x0McBin/NonDiscoverableInitLib/NonDiscoverableInitLib.c create mode 100644 Silicon/Marvell/Drivers/Gpio/MvGpioDxe/MvGpioDxe.c create mode 100644 Silicon/Marvell/Drivers/Gpio/MvPca95xxDxe/MvPca95xxDxe.c -- 2.7.4 _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

