[edk2-devel] [edk2-platforms v2 2/6] Platform/NXP/LS1046aFrwyPkg: MUX changes for USB
Leif Lindholm
leif at nuviainc.com
Thu Oct 8 12:13:56 UTC 2020
On Wed, Oct 07, 2020 at 21:40:37 +0530, Meenakshi Aggarwal wrote:
> Second USB controller is muxed with I2c through GPIO.
> Setting GPIO bit to configure for second USB controller.
>
> Co-authored-by: Pramod Kumar <pramod.kumar_1 at nxp.com>
> Signed-off-by: Meenakshi Aggarwal <meenakshi.aggarwal at nxp.com>
Reviewed-by: Leif Lindholm <leif at nuviainc.com>
> ---
> Silicon/NXP/NxpQoriqLs.dec | 8 ++++++++
> Silicon/NXP/LS1046A/LS1046A.dsc.inc | 5 +++++
> Silicon/NXP/NxpQoriqLs.dsc.inc | 2 ++
> .../Library/ArmPlatformLib/ArmPlatformLib.inf | 1 +
> .../Library/ArmPlatformLib/ArmPlatformLib.c | 21 +++++++++++++++++++++
> 5 files changed, 37 insertions(+)
(But please remember --stat=1000 --stat-graph-width=20 on git
format-patch command line to get rid of ...)
> diff --git a/Silicon/NXP/NxpQoriqLs.dec b/Silicon/NXP/NxpQoriqLs.dec
> index 0c3608696569..3a568c0437e7 100644
> --- a/Silicon/NXP/NxpQoriqLs.dec
> +++ b/Silicon/NXP/NxpQoriqLs.dec
> @@ -29,6 +29,7 @@ [PcdsFeatureFlag]
> gNxpQoriqLsTokenSpaceGuid.PcdDcfgBigEndian|FALSE|BOOLEAN|0x00000316
> gNxpQoriqLsTokenSpaceGuid.PcdPciLutBigEndian|FALSE|BOOLEAN|0x00000317
> gNxpQoriqLsTokenSpaceGuid.PcdSataErratumA009185|FALSE|BOOLEAN|0x00000318
> + gNxpQoriqLsTokenSpaceGuid.PcdGpioControllerBigEndian|FALSE|BOOLEAN|0x00000319
>
> [PcdsFixedAtBuild.common]
> # Pcds for PCI Express
> @@ -48,6 +49,13 @@ [PcdsFixedAtBuild.common]
> gNxpQoriqLsTokenSpaceGuid.PcdSataSize|0x0|UINT32|0x00000351
> gNxpQoriqLsTokenSpaceGuid.PcdNumSataController|0x0|UINT32|0x00000352
>
> + #
> + # Pcds for Gpio
> + #
> + gNxpQoriqLsTokenSpaceGuid.PcdNumGpioController|0|UINT32|0x00000355
> + gNxpQoriqLsTokenSpaceGuid.PcdGpioModuleBaseAddress|0|UINT64|0x00000356
> + gNxpQoriqLsTokenSpaceGuid.PcdGpioControllerOffset|0|UINT64|0x00000357
> +
> [PcdsDynamic.common]
> gNxpQoriqLsTokenSpaceGuid.PcdPciCfgShiftEnable|FALSE|BOOLEAN|0x00000600
> gNxpQoriqLsTokenSpaceGuid.PcdPciLsGen4Ctrl|FALSE|BOOLEAN|0x00000601
> diff --git a/Silicon/NXP/LS1046A/LS1046A.dsc.inc b/Silicon/NXP/LS1046A/LS1046A.dsc.inc
> index dbe7f408fce9..db110553605f 100644
> --- a/Silicon/NXP/LS1046A/LS1046A.dsc.inc
> +++ b/Silicon/NXP/LS1046A/LS1046A.dsc.inc
> @@ -27,9 +27,14 @@ [PcdsDynamicDefault.common]
>
> [PcdsFixedAtBuild.common]
> gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x021c0500
> + gNxpQoriqLsTokenSpaceGuid.PcdNumGpioController|0x04
> + gNxpQoriqLsTokenSpaceGuid.PcdGpioModuleBaseAddress|0x02300000
> + gNxpQoriqLsTokenSpaceGuid.PcdGpioControllerOffset|0x10000
> +
>
> [PcdsFeatureFlag]
> gNxpQoriqLsTokenSpaceGuid.PcdDcfgBigEndian|TRUE
> + gNxpQoriqLsTokenSpaceGuid.PcdGpioControllerBigEndian|TRUE
>
> ################################################################################
> #
> diff --git a/Silicon/NXP/NxpQoriqLs.dsc.inc b/Silicon/NXP/NxpQoriqLs.dsc.inc
> index fc600de01d74..21c87df73220 100644
> --- a/Silicon/NXP/NxpQoriqLs.dsc.inc
> +++ b/Silicon/NXP/NxpQoriqLs.dsc.inc
> @@ -103,6 +103,8 @@ [LibraryClasses.common]
> MemoryInitPeiLib|Silicon/NXP/Library/MemoryInitPeiLib/MemoryInitPeiLib.inf
> UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
>
> + GpioLib|Silicon/NXP/Library/GpioLib/GpioLib.inf
> +
> [LibraryClasses.common.SEC]
> PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
> DebugAgentLib|ArmPkg/Library/DebugAgentSymbolsBaseLib/DebugAgentSymbolsBaseLib.inf
> diff --git a/Platform/NXP/LS1046aFrwyPkg/Library/ArmPlatformLib/ArmPlatformLib.inf b/Platform/NXP/LS1046aFrwyPkg/Library/ArmPlatformLib/ArmPlatformLib.inf
> index 7802696bf39b..2e755842a714 100644
> --- a/Platform/NXP/LS1046aFrwyPkg/Library/ArmPlatformLib/ArmPlatformLib.inf
> +++ b/Platform/NXP/LS1046aFrwyPkg/Library/ArmPlatformLib/ArmPlatformLib.inf
> @@ -25,6 +25,7 @@ [Packages]
> [LibraryClasses]
> ArmLib
> DebugLib
> + GpioLib
> SocLib
>
> [Sources.common]
> diff --git a/Platform/NXP/LS1046aFrwyPkg/Library/ArmPlatformLib/ArmPlatformLib.c b/Platform/NXP/LS1046aFrwyPkg/Library/ArmPlatformLib/ArmPlatformLib.c
> index e1f20da09337..ef404991add8 100644
> --- a/Platform/NXP/LS1046aFrwyPkg/Library/ArmPlatformLib/ArmPlatformLib.c
> +++ b/Platform/NXP/LS1046aFrwyPkg/Library/ArmPlatformLib/ArmPlatformLib.c
> @@ -8,11 +8,18 @@
>
> #include <Library/ArmLib.h>
> #include <Library/ArmPlatformLib.h>
> +#include <Library/GpioLib.h>
> #include <Library/SocLib.h>
>
> #include <Ppi/ArmMpCoreInfo.h>
> #include <Ppi/NxpPlatformGetClock.h>
>
> +/**
> + Documents use bit number as per Power PC notation,
> + so need to convert it to support ARMv8 architecture
> +**/
> +#define USB2_MUX_SEL_GPIO (31 - 23)
> +
> ARM_CORE_INFO mLS1046aMpCoreInfoTable[] = {
> {
> // Cluster 0, Core 0
> @@ -89,6 +96,19 @@ NxpPlatformGetClock(
> }
>
> /**
> + FRWY-LS1046A GPIO 23 use for USB2
> + mux seclection
> +**/
> +STATIC VOID MuxSelectUsb2 (VOID)
> +{
> +
> + GpioSetDirection (GPIO3, USB2_MUX_SEL_GPIO, OUTPUT);
> + GpioSetData (GPIO3, USB2_MUX_SEL_GPIO, HIGH);
> +
> + return;
> +}
> +
> +/**
> Initialize controllers that must setup in the normal world
>
> This function is called by the ArmPlatformPkg/PrePi or ArmPlatformPkg/PlatformPei
> @@ -101,6 +121,7 @@ ArmPlatformInitialize (
> )
> {
> SocInit ();
> + MuxSelectUsb2 ();
>
> return EFI_SUCCESS;
> }
> --
> 1.9.1
>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#66015): https://edk2.groups.io/g/devel/message/66015
Mute This Topic: https://groups.io/mt/77359492/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-
More information about the edk2-devel-archive
mailing list