|
1 | 1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
2 | 2 |
|
| 3 | +#include <bootstate.h> |
3 | 4 | #include <mainboard/gpio.h> |
4 | 5 | #include <soc/gpio.h> |
5 | 6 |
|
@@ -30,8 +31,8 @@ static const struct pad_config gpio_table[] = { |
30 | 31 | PAD_CFG_GPO(GPP_B06, 0, DEEP), // ROM_I2C_EN |
31 | 32 | PAD_NC(GPP_B07, NONE), |
32 | 33 | PAD_NC(GPP_B08, NONE), |
33 | | - PAD_CFG_GPO(GPP_B09, 1, PLTRST), // M2_SSD1_RST# |
34 | | - PAD_CFG_GPO(GPP_B10, 1, PLTRST), // SSD1_PWR_EN |
| 34 | + //PAD_CFG_GPO(GPP_B09, 0, PLTRST), // M2_SSD1_RST# |
| 35 | + //PAD_CFG_GPO(GPP_B10, 1, PLTRST), // SSD1_PWR_EN |
35 | 36 | PAD_CFG_GPI(GPP_B11, NONE, PLTRST), |
36 | 37 | PAD_CFG_NF(GPP_B12, NONE, DEEP, NF1), // SLP_S0# |
37 | 38 | PAD_CFG_NF(GPP_B13, NONE, DEEP, NF1), // PLT_RST# |
@@ -91,7 +92,7 @@ static const struct pad_config gpio_table[] = { |
91 | 92 | PAD_CFG_GPI(GPP_D15, NONE, DEEP), // CNVI_WAKE# |
92 | 93 | PAD_CFG_NF(GPP_D16, NONE, DEEP, NF1), // HDA_RST# |
93 | 94 | PAD_NC(GPP_D17, NONE), |
94 | | - PAD_CFG_NF(GPP_D18, NONE, DEEP, NF1), // SSD1_CLKREQ#_N |
| 95 | + //PAD_CFG_NF(GPP_D18, NONE, DEEP, NF1), // SSD1_CLKREQ#_N |
95 | 96 | PAD_CFG_GPO(GPP_D19, 1, PLTRST), // SD_PCIE_RST_N |
96 | 97 | PAD_NC(GPP_D20, NONE), |
97 | 98 | PAD_NC(GPP_D21, NONE), |
@@ -198,3 +199,26 @@ void mainboard_configure_gpios(void) |
198 | 199 | { |
199 | 200 | gpio_configure_pads(gpio_table, ARRAY_SIZE(gpio_table)); |
200 | 201 | } |
| 202 | + |
| 203 | +static const struct pad_config nvme_pwr_seq2[] = { |
| 204 | + PAD_CFG_GPO(GPP_B10, 1, PLTRST), // SSD1_PWR_EN |
| 205 | + PAD_CFG_NF(GPP_D18, NONE, DEEP, NF1), // SSD1_CLKREQ#_N |
| 206 | +}; |
| 207 | + |
| 208 | +static void nvme_enable_power(void *unused) |
| 209 | +{ |
| 210 | + gpio_configure_pads(nvme_pwr_seq2, ARRAY_SIZE(nvme_pwr_seq2)); |
| 211 | +} |
| 212 | + |
| 213 | +BOOT_STATE_INIT_ENTRY(BS_PRE_DEVICE, BS_ON_EXIT, nvme_enable_power, NULL); |
| 214 | + |
| 215 | +static const struct pad_config nvme_pwr_seq3[] = { |
| 216 | + PAD_CFG_GPO(GPP_B09, 1, PLTRST), // M2_SSD1_RST# |
| 217 | +}; |
| 218 | + |
| 219 | +static void nvme_deassert_perst(void *unused) |
| 220 | +{ |
| 221 | + gpio_configure_pads(nvme_pwr_seq3, ARRAY_SIZE(nvme_pwr_seq3)); |
| 222 | +} |
| 223 | + |
| 224 | +BOOT_STATE_INIT_ENTRY(BS_DEV_INIT_CHIPS, BS_ON_ENTRY, nvme_deassert_perst, NULL); |
0 commit comments