Browse Source

Marvell/Library: MvGpioLib: Extend GPIO pin description

In order to avoid hardcoding the controller type when using
MV_GPIO_PIN, extend this structure with new according field.
This patch is required to properly handle PCIE slot reset
with the GPIO pin.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Marcin Wojtas <mw@semihalf.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Marcin Wojtas 5 years ago
parent
commit
dfbfdbbf4d

+ 4 - 0
Platform/Marvell/Armada70x0Db/NonDiscoverableInitLib/NonDiscoverableInitLib.c

@@ -23,21 +23,25 @@
 
 STATIC CONST MV_GPIO_PIN mXhciVbusPins[] = {
   {
+    MV_GPIO_DRIVER_TYPE_PCA95XX,
     ARMADA_70x0_DB_IO_EXPANDER0,
     ARMADA_70x0_DB_VBUS0_PIN,
     TRUE,
   },
   {
+    MV_GPIO_DRIVER_TYPE_PCA95XX,
     ARMADA_70x0_DB_IO_EXPANDER0,
     ARMADA_70x0_DB_VBUS0_LIMIT_PIN,
     TRUE,
   },
   {
+    MV_GPIO_DRIVER_TYPE_PCA95XX,
     ARMADA_70x0_DB_IO_EXPANDER0,
     ARMADA_70x0_DB_VBUS1_PIN,
     TRUE,
   },
   {
+    MV_GPIO_DRIVER_TYPE_PCA95XX,
     ARMADA_70x0_DB_IO_EXPANDER0,
     ARMADA_70x0_DB_VBUS1_LIMIT_PIN,
     TRUE,

+ 6 - 0
Platform/Marvell/Armada80x0Db/NonDiscoverableInitLib/NonDiscoverableInitLib.c

@@ -23,31 +23,37 @@
 
 STATIC CONST MV_GPIO_PIN mXhciVbusPins[] = {
   {
+    MV_GPIO_DRIVER_TYPE_PCA95XX,
     ARMADA_80x0_DB_IO_EXPANDER0,
     ARMADA_80x0_DB_VBUS0_PIN,
     TRUE,
   },
   {
+    MV_GPIO_DRIVER_TYPE_PCA95XX,
     ARMADA_80x0_DB_IO_EXPANDER0,
     ARMADA_80x0_DB_VBUS0_LIMIT_PIN,
     TRUE,
   },
   {
+    MV_GPIO_DRIVER_TYPE_PCA95XX,
     ARMADA_80x0_DB_IO_EXPANDER0,
     ARMADA_80x0_DB_VBUS1_PIN,
     TRUE,
   },
   {
+    MV_GPIO_DRIVER_TYPE_PCA95XX,
     ARMADA_80x0_DB_IO_EXPANDER0,
     ARMADA_80x0_DB_VBUS1_LIMIT_PIN,
     TRUE,
   },
   {
+    MV_GPIO_DRIVER_TYPE_PCA95XX,
     ARMADA_80x0_DB_IO_EXPANDER1,
     ARMADA_80x0_DB_VBUS2_PIN,
     TRUE,
   },
   {
+    MV_GPIO_DRIVER_TYPE_PCA95XX,
     ARMADA_80x0_DB_IO_EXPANDER1,
     ARMADA_80x0_DB_VBUS2_LIMIT_PIN,
     TRUE,

+ 1 - 0
Platform/SolidRun/Armada80x0McBin/NonDiscoverableInitLib/NonDiscoverableInitLib.c

@@ -22,6 +22,7 @@
 #include "NonDiscoverableInitLib.h"
 
 STATIC CONST MV_GPIO_PIN mXhciVbusPin = {
+  MV_GPIO_DRIVER_TYPE_SOC_CONTROLLER,
   MV_GPIO_CP0_CONTROLLER1,
   ARMADA_80x0_MCBIN_VBUS0_PIN,
   TRUE,

+ 1 - 0
Silicon/Marvell/Include/Library/MvGpioLib.h

@@ -47,6 +47,7 @@ typedef struct {
 } MV_GPIO_DEVICE_PATH;
 
 typedef struct {
+  MV_GPIO_DRIVER_TYPE  ControllerType;
   UINTN    ControllerId;
   UINTN    PinNumber;
   BOOLEAN  ActiveHigh;