soc/intel/apl: drop LPC pad configuration code
Drop LPC pad configuration code since all boards now do pad configuration on their own. The comment about LPC_CLKRUNB when using eSPI is moved to `Documentation/getting_started/gpio.md`. Change-Id: I710d6aee8c3b2c8282cd321cd0688b9b26abea07 Signed-off-by: Michael Niewöhner <foss@mniewoehner.de> Reviewed-on: https://review.coreboot.org/c/coreboot/+/49410 Reviewed-by: Angel Pons <th3fanbus@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
d5ab1267e5
commit
d509ee55b6
|
@ -129,3 +129,13 @@ If no pullup or pulldown is declared with these, they may end up "floating",
|
||||||
i.e., not at logical high or logical low. This can cause problems such as
|
i.e., not at logical high or logical low. This can cause problems such as
|
||||||
unwanted power consumption or not reading the pin correctly, if it was intended
|
unwanted power consumption or not reading the pin correctly, if it was intended
|
||||||
to be strapped.
|
to be strapped.
|
||||||
|
|
||||||
|
## Pad-related known issues and workarounds
|
||||||
|
|
||||||
|
### LPC_CLKRUNB blocks S0ix states when board uses eSPI
|
||||||
|
|
||||||
|
When using eSPI, the pad implementing `LPC_CLKRUNB` must be set to GPIO mode.
|
||||||
|
Other pin settings i.e. Rx path enable/disable, Tx path enable/disable, pull up
|
||||||
|
enable/disable etc are ignored. Leaving this pin in native mode will keep the
|
||||||
|
LPC Controller awake and prevent S0ix entry. This issues is know at least on
|
||||||
|
Apollolake and Geminilake.
|
||||||
|
|
|
@ -3,57 +3,10 @@
|
||||||
#include <device/pci.h>
|
#include <device/pci.h>
|
||||||
#include <intelblocks/lpc_lib.h>
|
#include <intelblocks/lpc_lib.h>
|
||||||
#include <intelblocks/rtc.h>
|
#include <intelblocks/rtc.h>
|
||||||
#include <soc/gpio.h>
|
|
||||||
#include <soc/pcr_ids.h>
|
#include <soc/pcr_ids.h>
|
||||||
#include <soc/pm.h>
|
#include <soc/pm.h>
|
||||||
#include "chip.h"
|
#include "chip.h"
|
||||||
|
|
||||||
static const struct pad_config lpc_gpios[] = {
|
|
||||||
#if CONFIG(SOC_INTEL_GEMINILAKE)
|
|
||||||
#if !CONFIG(SOC_ESPI)
|
|
||||||
PAD_CFG_NF(GPIO_147, UP_20K, DEEP, NF1), /* LPC_ILB_SERIRQ */
|
|
||||||
PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_148, NONE, DEEP, NF1, HIZCRx1,
|
|
||||||
DISPUPD), /* LPC_CLKOUT0 */
|
|
||||||
PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_149, NONE, DEEP, NF1, HIZCRx1,
|
|
||||||
DISPUPD), /* LPC_CLKOUT1 */
|
|
||||||
PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_150, UP_20K, DEEP, NF1, HIZCRx1,
|
|
||||||
DISPUPD), /* LPC_AD0 */
|
|
||||||
PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_151, UP_20K, DEEP, NF1, HIZCRx1,
|
|
||||||
DISPUPD), /* LPC_AD1 */
|
|
||||||
PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_152, UP_20K, DEEP, NF1, HIZCRx1,
|
|
||||||
DISPUPD), /* LPC_AD2 */
|
|
||||||
PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_153, UP_20K, DEEP, NF1, HIZCRx1,
|
|
||||||
DISPUPD), /* LPC_AD3 */
|
|
||||||
PAD_CFG_NF(GPIO_154, UP_20K, DEEP, NF1), /* LPC_CLKRUNB */
|
|
||||||
PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_155, UP_20K, DEEP, NF1, HIZCRx1,
|
|
||||||
DISPUPD), /* LPC_FRAMEB */
|
|
||||||
#else
|
|
||||||
/*
|
|
||||||
* LPC_CLKRUNB should be in GPIO mode for eSPI. Other pin settings
|
|
||||||
* i.e. Rx path enable/disable, Tx path enable/disable, pull up
|
|
||||||
* enable/disable etc are ignored. Leaving this pin in Native mode
|
|
||||||
* will keep LPC Controller awake and prevent S0ix entry
|
|
||||||
*/
|
|
||||||
PAD_NC(GPIO_154, NONE),
|
|
||||||
#endif /* !CONFIG(SOC_ESPI) */
|
|
||||||
#else
|
|
||||||
PAD_CFG_NF(LPC_ILB_SERIRQ, UP_20K, DEEP, NF1),
|
|
||||||
PAD_CFG_NF(LPC_CLKRUNB, UP_20K, DEEP, NF1),
|
|
||||||
PAD_CFG_NF(LPC_AD0, UP_20K, DEEP, NF1),
|
|
||||||
PAD_CFG_NF(LPC_AD1, UP_20K, DEEP, NF1),
|
|
||||||
PAD_CFG_NF(LPC_AD2, UP_20K, DEEP, NF1),
|
|
||||||
PAD_CFG_NF(LPC_AD3, UP_20K, DEEP, NF1),
|
|
||||||
PAD_CFG_NF(LPC_FRAMEB, NATIVE, DEEP, NF1),
|
|
||||||
PAD_CFG_NF(LPC_CLKOUT0, UP_20K, DEEP, NF1),
|
|
||||||
PAD_CFG_NF(LPC_CLKOUT1, UP_20K, DEEP, NF1)
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
void lpc_configure_pads(void)
|
|
||||||
{
|
|
||||||
gpio_configure_pads(lpc_gpios, ARRAY_SIZE(lpc_gpios));
|
|
||||||
}
|
|
||||||
|
|
||||||
void lpc_soc_init(struct device *dev)
|
void lpc_soc_init(struct device *dev)
|
||||||
{
|
{
|
||||||
const struct soc_intel_apollolake_config *cfg;
|
const struct soc_intel_apollolake_config *cfg;
|
||||||
|
|
|
@ -65,8 +65,6 @@ each soc will need to define the init. */
|
||||||
void lpc_soc_init(struct device *dev);
|
void lpc_soc_init(struct device *dev);
|
||||||
/* Fill up LPC IO resource structure inside SoC directory */
|
/* Fill up LPC IO resource structure inside SoC directory */
|
||||||
void pch_lpc_soc_fill_io_resources(struct device *dev);
|
void pch_lpc_soc_fill_io_resources(struct device *dev);
|
||||||
/* Init LPC GPIO pads */
|
|
||||||
void lpc_configure_pads(void);
|
|
||||||
/* Set LPC BIOS Control BILD bit. */
|
/* Set LPC BIOS Control BILD bit. */
|
||||||
void lpc_set_bios_interface_lock_down(void);
|
void lpc_set_bios_interface_lock_down(void);
|
||||||
/* Set LPC BIOS Control LE bit. */
|
/* Set LPC BIOS Control LE bit. */
|
||||||
|
|
Loading…
Reference in New Issue