From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: None (no SPF record) identity=mailfrom; client-ip=2a00:1450:4864:20::141; helo=mail-lf1-x141.google.com; envelope-from=mw@semihalf.com; receiver=edk2-devel@lists.01.org Received: from mail-lf1-x141.google.com (mail-lf1-x141.google.com [IPv6:2a00:1450:4864:20::141]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id BE0A621962301 for ; Thu, 17 Jan 2019 03:15:37 -0800 (PST) Received: by mail-lf1-x141.google.com with SMTP id a8so7481815lfk.5 for ; Thu, 17 Jan 2019 03:15:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=semihalf-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=K8kbESQOCwlOOJXl1dBBtcK2A2DoSjQQTyOfeI+8UFY=; b=b9u566IZQRA9QTYZwj5Cu/cQMmbHjfekjXasaHOD1sP9fB4uQeCq52iaQQXfJZFDTV G4LfhJ7PGHwWE/rZIM+nLdR/aymeDdlD5fj/DoBFyYP3dlvM1/780CCEfLt/kCRLc1L9 s06I2r0dCcwrJymRJPL555K+8rSNPbz5KcfOHEVOHX6rz1I1Sjbgf01Vm/W/M4xEouxB OEshL0543ZNWCNdnm599nyDiSO2fRa1b5yAvEvIzmEcbv16DvcQBZNgpllA3fLeLrltP ESS+O8Q5/DDGruUb33RzzRX+dmY+iPHOmzxCrwppHLUpv36h1BYVDtmP55Ult2Z3JkKD bVRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=K8kbESQOCwlOOJXl1dBBtcK2A2DoSjQQTyOfeI+8UFY=; b=B8Gio0CMx2UlpihBHIzY00TQ3TWm08SvS5utt2MXuIgQM+Y/WNAdnJ3na8wC712W23 Jyb3lT6T/+ryOe4UMS+QeDOJstXxw1/db23yJ2iuVXl2ZTq6QxhfVCPtN0Q6EVyNRM6v IHNRcvqr3KlBCZ5QRm6MO1qI6tiKM9c179EVhUWefEkhxthrfpkgDlIT29xLHdVNEUvF Dn1TDa5piH7FB0Rp8AhjNc5yoDWQ8BfUI+VIu28cJ7WehLj/IssH/rs3ghcf1qQPKUYp /Ge0k0cBmhCoBq3pd8fyDhUIAnD7XwhVEW3Mc1N26CbR6tWJwbE8+g2HenZV5HHXpK+Y QC8A== X-Gm-Message-State: AJcUukc11GPaX6d3ExWanScdEI25IU5chJkjVJQQMH903qD3Talp+Zuf xFk+u1rEN1wmbx+yL0puIWhcenlpXg4= X-Google-Smtp-Source: ALg8bN4fPufRShAuLUT/PkdgaBpG6Qkw8O57qT27Weg2FSWz6ufprpLGjOypxmheCFWoIFw5m2pbFg== X-Received: by 2002:a19:5f1e:: with SMTP id t30mr9657818lfb.76.1547723735552; Thu, 17 Jan 2019 03:15:35 -0800 (PST) Received: from gilgamesh.semihalf.com (31-172-191-173.noc.fibertech.net.pl. [31.172.191.173]) by smtp.gmail.com with ESMTPSA id d23sm238003lfc.11.2019.01.17.03.15.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 17 Jan 2019 03:15:34 -0800 (PST) From: Marcin Wojtas To: edk2-devel@lists.01.org Cc: leif.lindholm@linaro.org, ard.biesheuvel@linaro.org, nadavh@marvell.com, mw@semihalf.com, jsd@semihalf.com, jaz@semihalf.com, kostap@marvell.com Date: Thu, 17 Jan 2019 12:15:04 +0100 Message-Id: <1547723715-4562-2-git-send-email-mw@semihalf.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1547723715-4562-1-git-send-email-mw@semihalf.com> References: <1547723715-4562-1-git-send-email-mw@semihalf.com> Subject: [platforms: PATCH v3 01/12] Marvell/Library: ArmadaSoCDescLib: Add GPIO information X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 X-List-Received-Date: Thu, 17 Jan 2019 11:15:38 -0000 This patch introduces new library callback (ArmadaSoCGpioGet ()), which dynamically allocates and fills EmbeddedGpio's GPIO_CONTROLLER structure with the SoC description of GPIO controllers. Because the library header is indirectly used in many modules, update all dependencies after including EmbeddedGpio.h. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Marcin Wojtas Reviewed-by: Leif Lindholm --- Platform/Marvell/Armada70x0Db/Armada70x0DbBoardDescLib/Armada70x0DbBoardDescLib.inf | 1 + Platform/Marvell/Armada80x0Db/Armada80x0DbBoardDescLib/Armada80x0DbBoardDescLib.inf | 1 + Silicon/Marvell/Armada7k8k/Drivers/PlatInitDxe/PlatInitDxe.inf | 1 + Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.inf | 1 + Silicon/Marvell/Drivers/BoardDesc/MvBoardDescDxe.inf | 1 + Silicon/Marvell/Drivers/I2c/MvI2cDxe/MvI2cDxe.inf | 1 + Silicon/Marvell/Drivers/Net/MvMdioDxe/MvMdioDxe.inf | 1 + Silicon/Marvell/Drivers/SdMmc/XenonDxe/XenonDxe.inf | 1 + Silicon/Marvell/Library/ComPhyLib/ComPhyLib.inf | 1 + Silicon/Marvell/Library/IcuLib/IcuLib.inf | 1 + Silicon/Marvell/Library/UtmiPhyLib/UtmiPhyLib.inf | 1 + Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.h | 10 +++++ Silicon/Marvell/Include/Library/ArmadaSoCDescLib.h | 12 ++++++ Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.c | 39 ++++++++++++++++++++ 14 files changed, 72 insertions(+) diff --git a/Platform/Marvell/Armada70x0Db/Armada70x0DbBoardDescLib/Armada70x0DbBoardDescLib.inf b/Platform/Marvell/Armada70x0Db/Armada70x0DbBoardDescLib/Armada70x0DbBoardDescLib.inf index b26f55b..c995515 100644 --- a/Platform/Marvell/Armada70x0Db/Armada70x0DbBoardDescLib/Armada70x0DbBoardDescLib.inf +++ b/Platform/Marvell/Armada70x0Db/Armada70x0DbBoardDescLib/Armada70x0DbBoardDescLib.inf @@ -25,6 +25,7 @@ Armada70x0DbBoardDescLib.c [Packages] + EmbeddedPkg/EmbeddedPkg.dec MdeModulePkg/MdeModulePkg.dec MdePkg/MdePkg.dec Silicon/Marvell/Marvell.dec diff --git a/Platform/Marvell/Armada80x0Db/Armada80x0DbBoardDescLib/Armada80x0DbBoardDescLib.inf b/Platform/Marvell/Armada80x0Db/Armada80x0DbBoardDescLib/Armada80x0DbBoardDescLib.inf index 2d39d96..786b7f0 100644 --- a/Platform/Marvell/Armada80x0Db/Armada80x0DbBoardDescLib/Armada80x0DbBoardDescLib.inf +++ b/Platform/Marvell/Armada80x0Db/Armada80x0DbBoardDescLib/Armada80x0DbBoardDescLib.inf @@ -25,6 +25,7 @@ Armada80x0DbBoardDescLib.c [Packages] + EmbeddedPkg/EmbeddedPkg.dec MdeModulePkg/MdeModulePkg.dec MdePkg/MdePkg.dec Silicon/Marvell/Marvell.dec diff --git a/Silicon/Marvell/Armada7k8k/Drivers/PlatInitDxe/PlatInitDxe.inf b/Silicon/Marvell/Armada7k8k/Drivers/PlatInitDxe/PlatInitDxe.inf index 5503463..e707fe9 100644 --- a/Silicon/Marvell/Armada7k8k/Drivers/PlatInitDxe/PlatInitDxe.inf +++ b/Silicon/Marvell/Armada7k8k/Drivers/PlatInitDxe/PlatInitDxe.inf @@ -25,6 +25,7 @@ PlatInitDxe.c [Packages] + EmbeddedPkg/EmbeddedPkg.dec MdeModulePkg/MdeModulePkg.dec MdePkg/MdePkg.dec Silicon/Marvell/Marvell.dec diff --git a/Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.inf b/Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.inf index 2b73b73..48a320c 100644 --- a/Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.inf +++ b/Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.inf @@ -24,6 +24,7 @@ Armada7k8kSoCDescLib.c [Packages] + EmbeddedPkg/EmbeddedPkg.dec MdeModulePkg/MdeModulePkg.dec MdePkg/MdePkg.dec Silicon/Marvell/Marvell.dec diff --git a/Silicon/Marvell/Drivers/BoardDesc/MvBoardDescDxe.inf b/Silicon/Marvell/Drivers/BoardDesc/MvBoardDescDxe.inf index 0b93948..0b641fe 100644 --- a/Silicon/Marvell/Drivers/BoardDesc/MvBoardDescDxe.inf +++ b/Silicon/Marvell/Drivers/BoardDesc/MvBoardDescDxe.inf @@ -42,6 +42,7 @@ MvBoardDescDxe.h [Packages] + EmbeddedPkg/EmbeddedPkg.dec MdeModulePkg/MdeModulePkg.dec MdePkg/MdePkg.dec Silicon/Marvell/Marvell.dec diff --git a/Silicon/Marvell/Drivers/I2c/MvI2cDxe/MvI2cDxe.inf b/Silicon/Marvell/Drivers/I2c/MvI2cDxe/MvI2cDxe.inf index 0eef350..e5bd370 100755 --- a/Silicon/Marvell/Drivers/I2c/MvI2cDxe/MvI2cDxe.inf +++ b/Silicon/Marvell/Drivers/I2c/MvI2cDxe/MvI2cDxe.inf @@ -41,6 +41,7 @@ MvI2cDxe.c [Packages] + EmbeddedPkg/EmbeddedPkg.dec MdePkg/MdePkg.dec MdeModulePkg/MdeModulePkg.dec ArmPlatformPkg/ArmPlatformPkg.dec diff --git a/Silicon/Marvell/Drivers/Net/MvMdioDxe/MvMdioDxe.inf b/Silicon/Marvell/Drivers/Net/MvMdioDxe/MvMdioDxe.inf index 739576f..8a877da 100644 --- a/Silicon/Marvell/Drivers/Net/MvMdioDxe/MvMdioDxe.inf +++ b/Silicon/Marvell/Drivers/Net/MvMdioDxe/MvMdioDxe.inf @@ -45,6 +45,7 @@ [Packages] ArmPkg/ArmPkg.dec ArmPlatformPkg/ArmPlatformPkg.dec + EmbeddedPkg/EmbeddedPkg.dec MdeModulePkg/MdeModulePkg.dec MdePkg/MdePkg.dec Silicon/Marvell/Marvell.dec diff --git a/Silicon/Marvell/Drivers/SdMmc/XenonDxe/XenonDxe.inf b/Silicon/Marvell/Drivers/SdMmc/XenonDxe/XenonDxe.inf index 00c738a..09c5842 100644 --- a/Silicon/Marvell/Drivers/SdMmc/XenonDxe/XenonDxe.inf +++ b/Silicon/Marvell/Drivers/SdMmc/XenonDxe/XenonDxe.inf @@ -35,6 +35,7 @@ XenonSdMmcOverride.h [Packages] + EmbeddedPkg/EmbeddedPkg.dec MdePkg/MdePkg.dec MdeModulePkg/MdeModulePkg.dec Silicon/Marvell/Marvell.dec diff --git a/Silicon/Marvell/Library/ComPhyLib/ComPhyLib.inf b/Silicon/Marvell/Library/ComPhyLib/ComPhyLib.inf index 36f498b..c360edd 100644 --- a/Silicon/Marvell/Library/ComPhyLib/ComPhyLib.inf +++ b/Silicon/Marvell/Library/ComPhyLib/ComPhyLib.inf @@ -41,6 +41,7 @@ [Packages] MdePkg/MdePkg.dec MdeModulePkg/MdeModulePkg.dec + EmbeddedPkg/EmbeddedPkg.dec ArmPkg/ArmPkg.dec ArmPlatformPkg/ArmPlatformPkg.dec Silicon/Marvell/Marvell.dec diff --git a/Silicon/Marvell/Library/IcuLib/IcuLib.inf b/Silicon/Marvell/Library/IcuLib/IcuLib.inf index 0010141..ea662be 100644 --- a/Silicon/Marvell/Library/IcuLib/IcuLib.inf +++ b/Silicon/Marvell/Library/IcuLib/IcuLib.inf @@ -24,6 +24,7 @@ IcuLib.c [Packages] + EmbeddedPkg/EmbeddedPkg.dec MdeModulePkg/MdeModulePkg.dec MdePkg/MdePkg.dec Silicon/Marvell/Marvell.dec diff --git a/Silicon/Marvell/Library/UtmiPhyLib/UtmiPhyLib.inf b/Silicon/Marvell/Library/UtmiPhyLib/UtmiPhyLib.inf index e2381f4..805a057 100644 --- a/Silicon/Marvell/Library/UtmiPhyLib/UtmiPhyLib.inf +++ b/Silicon/Marvell/Library/UtmiPhyLib/UtmiPhyLib.inf @@ -41,6 +41,7 @@ [Packages] ArmPkg/ArmPkg.dec ArmPlatformPkg/ArmPlatformPkg.dec + EmbeddedPkg/EmbeddedPkg.dec MdeModulePkg/MdeModulePkg.dec MdePkg/MdePkg.dec Silicon/Marvell/Marvell.dec diff --git a/Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.h b/Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.h index c14b985..bfc8639 100644 --- a/Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.h +++ b/Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.h @@ -22,6 +22,7 @@ // Common macros // #define MV_SOC_CP_BASE(Cp) (0xF2000000 + ((Cp) * 0x2000000)) +#define MV_SOC_AP806_COUNT 1 // // Platform description of AHCI controllers @@ -38,6 +39,15 @@ #define MV_SOC_COMPHY_MUX_BITS 4 // +// Platform description of GPIO controllers +// +#define MV_SOC_AP806_GPIO_BASE 0xF06F5040 +#define MV_SOC_AP806_GPIO_PIN_COUNT 20 +#define MV_SOC_GPIO_PER_CP_COUNT 2 +#define MV_SOC_CP_GPIO_BASE(Gpio) (0x440100 + ((Gpio) * 0x40)) +#define MV_SOC_CP_GPIO_PIN_COUNT(Gpio) ((Gpio) == 0 ? 32 : 31) + +// // Platform description of I2C controllers // #define MV_SOC_I2C_PER_CP_COUNT 2 diff --git a/Silicon/Marvell/Include/Library/ArmadaSoCDescLib.h b/Silicon/Marvell/Include/Library/ArmadaSoCDescLib.h index cdfb51b..26b075a 100644 --- a/Silicon/Marvell/Include/Library/ArmadaSoCDescLib.h +++ b/Silicon/Marvell/Include/Library/ArmadaSoCDescLib.h @@ -17,6 +17,8 @@ #include #include +#include + // // ComPhy SoC description // @@ -46,6 +48,16 @@ ArmadaSoCDescCpBaseGet ( ); // +// GPIO devices description template definition +// +EFI_STATUS +EFIAPI +ArmadaSoCGpioGet ( + IN OUT GPIO_CONTROLLER **SoCGpioDescription, + IN OUT UINTN *Count + ); + +// // I2C // typedef struct { diff --git a/Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.c b/Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.c index 6902fda..5b72c20 100644 --- a/Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.c +++ b/Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.c @@ -74,6 +74,45 @@ ArmadaSoCDescCpBaseGet ( EFI_STATUS EFIAPI +ArmadaSoCGpioGet ( + IN OUT GPIO_CONTROLLER **SoCGpioDescription, + IN OUT UINTN *Count + ) +{ + GPIO_CONTROLLER *GpioInstance; + UINTN CpCount, CpIndex, Index; + + CpCount = FixedPcdGet8 (PcdMaxCpCount); + + *Count = CpCount * MV_SOC_GPIO_PER_CP_COUNT + MV_SOC_AP806_COUNT; + GpioInstance = AllocateZeroPool (*Count * sizeof (GPIO_CONTROLLER)); + if (GpioInstance == NULL) { + DEBUG ((DEBUG_ERROR, "%a: Cannot allocate memory\n", __FUNCTION__)); + return EFI_OUT_OF_RESOURCES; + } + + *SoCGpioDescription = GpioInstance; + + /* AP806 GPIO controller */ + GpioInstance->RegisterBase = MV_SOC_AP806_GPIO_BASE; + GpioInstance->InternalGpioCount = MV_SOC_AP806_GPIO_PIN_COUNT; + GpioInstance++; + + /* CP110 GPIO controllers */ + for (CpIndex = 0; CpIndex < CpCount; CpIndex++) { + for (Index = 0; Index < MV_SOC_GPIO_PER_CP_COUNT; Index++) { + GpioInstance->RegisterBase = MV_SOC_CP_BASE (CpIndex) + + MV_SOC_CP_GPIO_BASE (Index); + GpioInstance->InternalGpioCount = MV_SOC_CP_GPIO_PIN_COUNT (Index); + GpioInstance++; + } + } + + return EFI_SUCCESS; +} + +EFI_STATUS +EFIAPI ArmadaSoCDescI2cGet ( IN OUT MV_SOC_I2C_DESC **I2cDesc, IN OUT UINTN *DescCount -- 2.7.4