From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mail-wr1-f68.google.com (mail-wr1-f68.google.com [209.85.221.68])
 by mx.groups.io with SMTP id smtpd.web11.10505.1602159245658557827
 for <devel@edk2.groups.io>;
 Thu, 08 Oct 2020 05:14:06 -0700
Authentication-Results: mx.groups.io;
 dkim=pass header.i=@nuviainc-com.20150623.gappssmtp.com header.s=20150623 header.b=r+3t8BjB;
 spf=pass (domain: nuviainc.com, ip: 209.85.221.68, mailfrom: leif@nuviainc.com)
Received: by mail-wr1-f68.google.com with SMTP id e17so6319803wru.12
        for <devel@edk2.groups.io>; Thu, 08 Oct 2020 05:14:05 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=nuviainc-com.20150623.gappssmtp.com; s=20150623;
        h=date:from:to:cc:subject:message-id:references:mime-version
         :content-disposition:in-reply-to:user-agent;
        bh=W1lqRUK2wKGoCXs0aj+XXDBRRUxqoB0KQJABDoY3pxE=;
        b=r+3t8BjBV7bt4EAzqLVXeldegnsQwbBrBg2uPAc1/VgvlD9wkVvQmIZerdyYY2XYxp
         NUEa9bfCKWXY8KEyamo2OogaMQ/X5cCxQvYQKbMiUhadRICIPfZEym2puOGqRGCM8DbJ
         BAiv6N9Gl6DtHLKd+7LS6x/8FNULeb9qr+vr4l0uWz7m5C50kvn4l4GBR2GwtuMUKQGo
         HM6H5VfR1WWEqucFojhmJle7S2E3oh/hWwXhAR7lSKDOeg/T/i5Mg/LqhOnwsxudV17z
         NSzUoY/ydn5ouJFJFK6oEEJeDqWJjLZgMGvlL0nRrl/YY+lRUFl2+q6OaBRbuEiupl/8
         Q4AA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:date:from:to:cc:subject:message-id:references
         :mime-version:content-disposition:in-reply-to:user-agent;
        bh=W1lqRUK2wKGoCXs0aj+XXDBRRUxqoB0KQJABDoY3pxE=;
        b=K8qfNzxqYffjVpKLmVBoV4sV5ZdxBs09NHsmw9/+CVVDZk/G1Tlw2uqTZAVb/1aKAZ
         lR5QCF3Y6YaenXv9lcLOH+bJTJdNshY2AZVSTGu+HaBk7AGOTxI820kaz1H7lJTsOWs9
         yHQv6CK60RiVw+i0Y46hE3naQgT7OlFoFPqW0GcP6xlYjUzjqePSX0KX9/Zbylpp7V1D
         +SBZDXgerdMQTxBHw7Tiv7hlFO/sPn1VM6W7anxNCJGqfoYnw0tUHNwfuZL+tC857tL5
         QY77WOXTMEoXg+nxa06p1Z92izVYy1fQfUUr4YTrA9CzxZppgZdqA/edqgNahQFOWMR7
         EIuQ==
X-Gm-Message-State: AOAM532OJ8nYwIR+P298SwMMo1y0ElSY7PL3b77C4onjo7LFyedhOyeV
	AEJ4aJwAWqrYSkG7R93ZfnxUtw==
X-Google-Smtp-Source: ABdhPJwf68ShHH4Gzpc/Jy0Z1rFCLUOWz31upBN7Q/qfSdpNcVk1VWoQ+T6TKfl+g6YlK6AVEmOyHw==
X-Received: by 2002:adf:fb0d:: with SMTP id c13mr9031285wrr.19.1602159244129;
        Thu, 08 Oct 2020 05:14:04 -0700 (PDT)
Return-Path: <leif@nuviainc.com>
Received: from vanye (cpc92302-cmbg19-2-0-cust304.5-4.cable.virginm.net. [82.1.209.49])
        by smtp.gmail.com with ESMTPSA id b8sm6543447wmb.4.2020.10.08.05.14.03
        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
        Thu, 08 Oct 2020 05:14:03 -0700 (PDT)
Date: Thu, 8 Oct 2020 13:13:56 +0100
From: "Leif Lindholm" <leif@nuviainc.com>
To: Meenakshi Aggarwal <meenakshi.aggarwal@oss.nxp.com>
Cc: ard.biesheuvel@arm.com, michael.d.kinney@intel.com,
	devel@edk2.groups.io, v.sethi@nxp.com,
	Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com>
Subject: Re: [edk2-platforms v2 2/6] Platform/NXP/LS1046aFrwyPkg: MUX changes for USB
Message-ID: <20201008121356.GY5623@vanye>
References: <1600187343-18732-1-git-send-email-meenakshi.aggarwal@oss.nxp.com>
 <1602087041-8009-1-git-send-email-meenakshi.aggarwal@oss.nxp.com>
 <1602087041-8009-3-git-send-email-meenakshi.aggarwal@oss.nxp.com>
MIME-Version: 1.0
In-Reply-To: <1602087041-8009-3-git-send-email-meenakshi.aggarwal@oss.nxp.com>
User-Agent: Mutt/1.10.1 (2018-07-13)
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

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@nxp.com>
> Signed-off-by: Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com>

Reviewed-by: Leif Lindholm <leif@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
>