From: Leif Lindholm <leif.lindholm@linaro.org>
To: Marcin Wojtas <mw@semihalf.com>
Cc: edk2-devel@lists.01.org, ard.biesheuvel@linaro.org,
nadavh@marvell.com, jsd@semihalf.com, jaz@semihalf.com,
kostap@marvell.com
Subject: Re: [platforms: PATCH 01/12] Marvell/Library: ArmadaSoCDescLib: Add GPIO information
Date: Wed, 14 Nov 2018 01:10:44 +0000 [thread overview]
Message-ID: <20181114011044.inajftqy7qmfq7n3@bivouac.eciton.net> (raw)
In-Reply-To: <1540000661-1956-2-git-send-email-mw@semihalf.com>
On Sat, Oct 20, 2018 at 03:57:30AM +0200, Marcin Wojtas wrote:
> This patch introduces new library callback (ArmadaSoCDescGpioGet ()),
> which dynamically allocates and fills MV_SOC_GPIO_DESC structure with
> the SoC description of GPIO controllers.
>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Marcin Wojtas <mw@semihalf.com>
> ---
> Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.h | 10 +++++
> Silicon/Marvell/Include/Library/ArmadaSoCDescLib.h | 15 ++++++++
> Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.c | 39 ++++++++++++++++++++
> 3 files changed, 64 insertions(+)
>
> diff --git a/Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.h b/Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.h
> index c14b985..85dd67c 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_AP_COUNT 1
I think all of my comments on this patch can be summarised as "what is
an AP in this context"?
The term either needs explicit documenting, or expansion in the macro
names such that documentation is not required.
/
Leif
>
> //
> // Platform description of AHCI controllers
> @@ -38,6 +39,15 @@
> #define MV_SOC_COMPHY_MUX_BITS 4
>
> //
> +// Platform description of GPIO controllers
> +//
> +#define MV_SOC_AP_GPIO_BASE 0xF06F5040
> +#define MV_SOC_AP_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..f3d4f80 100644
> --- a/Silicon/Marvell/Include/Library/ArmadaSoCDescLib.h
> +++ b/Silicon/Marvell/Include/Library/ArmadaSoCDescLib.h
> @@ -46,6 +46,21 @@ ArmadaSoCDescCpBaseGet (
> );
>
> //
> +// GPIO devices description template definition
> +//
> +typedef struct {
> + UINTN GpioBaseAddress;
> + UINTN GpioPinCount;
> +} MV_SOC_GPIO_DESC;
> +
> +EFI_STATUS
> +EFIAPI
> +ArmadaSoCDescGpioGet (
> + IN OUT MV_SOC_GPIO_DESC **GpioDesc,
> + IN OUT UINTN *DescCount
> + );
> +
> +//
> // I2C
> //
> typedef struct {
> diff --git a/Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.c b/Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.c
> index 6902fda..7db4ec7 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
> +ArmadaSoCDescGpioGet (
> + IN OUT MV_SOC_GPIO_DESC **GpioDesc,
> + IN OUT UINTN *DescCount
> + )
> +{
> + MV_SOC_GPIO_DESC *Desc;
> + UINTN CpCount, CpIndex, Index;
> +
> + CpCount = FixedPcdGet8 (PcdMaxCpCount);
> +
> + *DescCount = CpCount * MV_SOC_GPIO_PER_CP_COUNT + MV_SOC_AP_COUNT;
> + Desc = AllocateZeroPool (*DescCount * sizeof (MV_SOC_GPIO_DESC));
> + if (Desc == NULL) {
> + DEBUG ((DEBUG_ERROR, "%a: Cannot allocate memory\n", __FUNCTION__));
> + return EFI_OUT_OF_RESOURCES;
> + }
> +
> + *GpioDesc = Desc;
> +
> + /* AP GPIO controller */
> + Desc->GpioBaseAddress = MV_SOC_AP_GPIO_BASE;
> + Desc->GpioPinCount = MV_SOC_AP_GPIO_PIN_COUNT;
> + Desc++;
> +
> + /* CP GPIO controllers */
> + for (CpIndex = 0; CpIndex < CpCount; CpIndex++) {
> + for (Index = 0; Index < MV_SOC_GPIO_PER_CP_COUNT; Index++) {
> + Desc->GpioBaseAddress = MV_SOC_CP_BASE (CpIndex) +
> + MV_SOC_CP_GPIO_BASE (Index);
> + Desc->GpioPinCount = MV_SOC_CP_GPIO_PIN_COUNT (Index);
> + Desc++;
> + }
> + }
> +
> + return EFI_SUCCESS;
> +}
> +
> +EFI_STATUS
> +EFIAPI
> ArmadaSoCDescI2cGet (
> IN OUT MV_SOC_I2C_DESC **I2cDesc,
> IN OUT UINTN *DescCount
> --
> 2.7.4
>
next prev parent reply other threads:[~2018-11-14 1:10 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-20 1:57 [platforms: PATCH 00/12] Armada7k8k GPIO support Marcin Wojtas
2018-10-20 1:57 ` [platforms: PATCH 01/12] Marvell/Library: ArmadaSoCDescLib: Add GPIO information Marcin Wojtas
2018-11-14 1:10 ` Leif Lindholm [this message]
2018-11-14 6:05 ` Marcin Wojtas
2018-11-14 17:33 ` Leif Lindholm
2018-11-21 1:26 ` Marcin Wojtas
2018-11-26 14:49 ` Leif Lindholm
2018-10-20 1:57 ` [platforms: PATCH 02/12] Marvell/Library: ArmadaBoardDescLib: " Marcin Wojtas
2018-11-14 1:12 ` Leif Lindholm
2018-11-14 6:16 ` Marcin Wojtas
2018-11-14 17:29 ` Leif Lindholm
2018-12-04 15:18 ` Leif Lindholm
2018-10-20 1:57 ` [platforms: PATCH 03/12] SolidRun/Armada80x0McBin: Introduce board description library Marcin Wojtas
2018-12-04 15:23 ` Leif Lindholm
2018-10-20 1:57 ` [platforms: PATCH 04/12] Marvell/Armada70x0Db: " Marcin Wojtas
2018-12-04 15:27 ` Leif Lindholm
2018-10-20 1:57 ` [platforms: PATCH 05/12] Marvell/Armada80x0Db: " Marcin Wojtas
2018-12-04 15:31 ` Leif Lindholm
2018-10-20 1:57 ` [platforms: PATCH 06/12] Marvell/Drivers: MvBoardDesc: Extend protocol with GPIO support Marcin Wojtas
2018-12-04 15:42 ` Leif Lindholm
2018-10-20 1:57 ` [platforms: PATCH 07/12] Marvell/Protocol: Introduce MARVELL_GPIO_PROTOCOL Marcin Wojtas
2018-12-04 16:00 ` Leif Lindholm
2018-10-20 1:57 ` [platforms: PATCH 08/12] Marvell/Drivers: MvGpioDxe: Introduce platform GPIO driver Marcin Wojtas
2018-12-04 16:37 ` Leif Lindholm
2018-12-04 16:40 ` Ard Biesheuvel
2018-12-04 17:19 ` Leif Lindholm
2018-12-04 17:20 ` Ard Biesheuvel
2018-10-20 1:57 ` [platforms: PATCH 09/12] Marvell/Drivers: I2c: Use common header for macros Marcin Wojtas
2018-12-04 16:38 ` Leif Lindholm
2018-10-20 1:57 ` [platforms: PATCH 10/12] Marvell/Drivers: MvPca95xxDxe: Introduce I2C GPIO driver Marcin Wojtas
2018-12-04 17:02 ` Leif Lindholm
2018-10-20 1:57 ` [platforms: PATCH 11/12] Marvell/Armada7k8k: Enable GPIO drivers compilation Marcin Wojtas
2018-12-04 17:06 ` Leif Lindholm
2018-10-20 1:57 ` [platforms: PATCH 12/12] Marvell/Armada7k8k: Introduce NonDiscoverable device init routines Marcin Wojtas
2018-12-04 17:16 ` Leif Lindholm
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181114011044.inajftqy7qmfq7n3@bivouac.eciton.net \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox