/* * This file is part of the coreboot project. * * Copyright 2019 Google LLC * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the * GNU General Public License for more details. */ #include #include #include #include static const struct pad_config gpio_table[] = { /* F3 : MEM_STRAP_3 */ PAD_CFG_GPI(GPP_F3, NONE, PLTRST), /* F10 : MEM_STRAP_2 */ PAD_CFG_GPI(GPP_F10, NONE, PLTRST), /* F11 : EMMC_CMD ==> EMMC_CMD */ PAD_CFG_NF(GPP_F11, NONE, DEEP, NF1), /* F12 : EMMC_DATA0 ==> EMMC_DAT0 */ PAD_CFG_NF(GPP_F12, NONE, DEEP, NF1), /* F13 : EMMC_DATA1 ==> EMMC_DAT1 */ PAD_CFG_NF(GPP_F13, NONE, DEEP, NF1), /* F14 : EMMC_DATA2 ==> EMMC_DAT2 */ PAD_CFG_NF(GPP_F14, NONE, DEEP, NF1), /* F15 : EMMC_DATA3 ==> EMMC_DAT3 */ PAD_CFG_NF(GPP_F15, NONE, DEEP, NF1), /* F16 : EMMC_DATA4 ==> EMMC_DAT4 */ PAD_CFG_NF(GPP_F16, NONE, DEEP, NF1), /* F17 : EMMC_DATA5 ==> EMMC_DAT5 */ PAD_CFG_NF(GPP_F17, NONE, DEEP, NF1), /* F18 : EMMC_DATA6 ==> EMMC_DAT6 */ PAD_CFG_NF(GPP_F18, NONE, DEEP, NF1), /* F19 : EMMC_DATA7 ==> EMMC_DAT7 */ PAD_CFG_NF(GPP_F19, NONE, DEEP, NF1), /* F20 : EMMC_RCLK ==> EMMC_RCLK */ PAD_CFG_NF(GPP_F20, NONE, DEEP, NF1), /* F21 : EMMC_CLK ==> EMMC_CLK */ PAD_CFG_NF(GPP_F21, NONE, DEEP, NF1), /* F22 : EMMC_RESET# ==> EMMC_RST_L */ PAD_CFG_NF(GPP_F22, NONE, DEEP, NF1), /* H19 : MEM_STRAP_0 */ PAD_CFG_GPI(GPP_H19, NONE, PLTRST), /* H22 : MEM_STRAP_1 */ PAD_CFG_GPI(GPP_H22, NONE, PLTRST), }; const struct pad_config *override_gpio_table(size_t *num) { *num = ARRAY_SIZE(gpio_table); return gpio_table; } /* GPIOs configured before ramstage */ static const struct pad_config early_gpio_table[] = { /* F3 : MEM_STRAP_3 */ PAD_CFG_GPI(GPP_F3, NONE, PLTRST), /* F10 : MEM_STRAP_2 */ PAD_CFG_GPI(GPP_F10, NONE, PLTRST), /* H19 : MEM_STRAP_0 */ PAD_CFG_GPI(GPP_H19, NONE, PLTRST), /* H22 : MEM_STRAP_1 */ PAD_CFG_GPI(GPP_H22, NONE, PLTRST), }; const struct pad_config *override_early_gpio_table(size_t *num) { *num = ARRAY_SIZE(early_gpio_table); return early_gpio_table; }