/** @file
This file contains GPIO name library implementation
Copyright (c) 2019 Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#include
#include
#include
#include
#include
#include
#include
#include
STATIC CONST CHAR8* mGpioGppaNames[] = {
"ESPI_CLK_LOOPBK"
};
STATIC CONST CHAR8* mGpioGppbNames[] = {
"GSPI0_CLK_LOOPBK",
"GSPI1_CLK_LOOPBK"
};
STATIC CONST CHAR8* mGpioGpdNames[] = {
"SLP_LANB",
"SLP_SUSB",
"SLP_WAKEB",
"SLP_DRAM_RESETB"
};
STATIC CONST CHAR8* mGpioGppiNames[] = {
"SYS_PWROK",
"SYS_RESETB",
"MLK_RSTB"
};
STATIC CONST CHAR8* mGpioSpiNames[] = {
"SPI0_IO_2",
"SPI0_IO_3",
"SPI0_MOSI_IO_0",
"SPI0_MOSI_IO_1",
"SPI0_TPM_CSB",
"SPI0_FLASH_0_CSB",
"SPI0_FLASH_1_CSB",
"SPI0_CLK",
"SPI0_CLK_LOOPBK"
};
STATIC CONST CHAR8* mGpioAzaNames[] = {
"HDA_BCLK",
"HDA_RSTB",
"HDA_SYNC",
"HDA_SDO",
"HDA_SDI_0",
"HDA_SDI_1",
"SSP1_SFRM",
"SSP1_TXD"
};
STATIC CONST CHAR8* mGpioJtagNames[] = {
"JTAG_TDO",
"JTAGX",
"PRDYB",
"PREQB",
"CPU_TRSTB",
"JTAG_TDI",
"JTAG_TMS",
"JTAG_TCK",
"ITP_PMODE"
};
STATIC CONST CHAR8* mGpioHvmosNames[] = {
"HVMOS_L_BKLTEN",
"HVMOS_L_BKLCTL",
"HVMOS_L_VDDEN",
"HVMOS_SYS_PWROK",
"HVMOS_SYS_RESETB",
"HVMOS_MLK_RSTB"
};
STATIC CONST CHAR8* mGpioCpuNames[] = {
"HDACPU_SDI",
"HDACPU_SDO",
"HDACPU_SCLK",
"PM_SYNC",
"PECI",
"CPUPWRGD",
"THRMTRIPB",
"PLTRST_CPUB",
"PM_DOWN",
"TRIGGER_IN",
"TRIGGER_OUT"
};
STATIC CONST GPIO_GROUP_NAME_INFO mPchLpGroupDescriptors[] = {
GPIO_GROUP_NAME("GPP_A", GPIO_CNL_LP_ESPI_CLK_LOOPBK, mGpioGppaNames),
GPIO_GROUP_NAME("GPP_B", GPIO_CNL_LP_GSPI0_CLK_LOOPBK, mGpioGppbNames),
GPIO_GROUP_NAME_BASIC("GPP_C"),
GPIO_GROUP_NAME_BASIC("GPP_D"),
GPIO_GROUP_NAME_BASIC("GPP_E"),
GPIO_GROUP_NAME_BASIC("GPP_F"),
GPIO_GROUP_NAME_BASIC("GPP_G"),
GPIO_GROUP_NAME_BASIC("GPP_H"),
GPIO_GROUP_NAME("GPD", GPIO_CNL_LP_SLP_LANB, mGpioGpdNames),
GPIO_GROUP_NAME_BASIC("VGPIO"),
GPIO_GROUP_NAME("SPI", GPIO_CNL_LP_SPI0_IO_2, mGpioSpiNames),
GPIO_GROUP_NAME("AZA", GPIO_CNL_LP_HDA_BCLK, mGpioAzaNames),
GPIO_GROUP_NAME("CPU", GPIO_CNL_LP_HDACPU_SDI, mGpioCpuNames),
GPIO_GROUP_NAME("JTAG", GPIO_CNL_LP_JTAG_TDO, mGpioJtagNames),
GPIO_GROUP_NAME("HVMOS", GPIO_CNL_LP_HVMOS_L_BKLTEN, mGpioHvmosNames)
};
STATIC CONST GPIO_GROUP_NAME_INFO mPchHGroupDescriptors[] = {
GPIO_GROUP_NAME("GPP_A", GPIO_CNL_H_ESPI_CLK_LOOPBK, mGpioGppaNames),
GPIO_GROUP_NAME("GPP_B", GPIO_CNL_H_GSPI0_CLK_LOOPBK, mGpioGppbNames),
GPIO_GROUP_NAME_BASIC("GPP_C"),
GPIO_GROUP_NAME_BASIC("GPP_D"),
GPIO_GROUP_NAME_BASIC("GPP_E"),
GPIO_GROUP_NAME_BASIC("GPP_F"),
GPIO_GROUP_NAME_BASIC("GPP_G"),
GPIO_GROUP_NAME_BASIC("GPP_H"),
GPIO_GROUP_NAME("GPP_I", GPIO_CNL_H_SYS_PWROK, mGpioGppiNames),
GPIO_GROUP_NAME_BASIC("GPP_J"),
GPIO_GROUP_NAME_BASIC("GPP_K"),
GPIO_GROUP_NAME("GPD", GPIO_CNL_H_SLP_LANB, mGpioGpdNames),
GPIO_GROUP_NAME_BASIC("VGPIO"),
GPIO_GROUP_NAME("SPI", GPIO_CNL_H_SPI0_IO_2, mGpioSpiNames),
GPIO_GROUP_NAME("AZA", GPIO_CNL_H_HDA_BCLK, mGpioAzaNames),
GPIO_GROUP_NAME("CPU", GPIO_CNL_H_HDACPU_SDI, mGpioCpuNames),
GPIO_GROUP_NAME("JTAG", GPIO_CNL_H_JTAG_TDO, mGpioJtagNames),
};
/**
Returns GPIO_GROUP_NAME_INFO corresponding to the given GpioPad
@param[in] GroupIndex Group index
@retval GPIO_GROUP_NAME_INFO* Pointer to the GPIO_GROUP_NAME_INFO
@reval NULL If no group descriptor was found
**/
CONST
GPIO_GROUP_NAME_INFO*
GpioGetGroupNameInfo (
IN UINT32 GroupIndex
)
{
if (IsPchLp ()) {
if (GroupIndex < ARRAY_SIZE (mPchLpGroupDescriptors)) {
return &mPchLpGroupDescriptors[GroupIndex];
} else {
ASSERT (FALSE);
return NULL;
}
} else {
if (GroupIndex < ARRAY_SIZE (mPchHGroupDescriptors)) {
return &mPchHGroupDescriptors[GroupIndex];
} else {
ASSERT (FALSE);
return NULL;
}
}
}