Mario Scheithauer has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/68166 )
Change subject: mb/siemens/mc_ehl2: Use preset driver strength for SD-Card ......................................................................
mb/siemens/mc_ehl2: Use preset driver strength for SD-Card
The intention of predefining driver strength is to avoid that the OS SD-Card driver changes this setting.
Change-Id: I02fdac94462da1cd77f8dc972faf16f28d94c946 Signed-off-by: Mario Scheithauer mario.scheithauer@siemens.com --- M src/mainboard/siemens/mc_ehl/variants/mc_ehl2/mainboard.c 1 file changed, 21 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/66/68166/1
diff --git a/src/mainboard/siemens/mc_ehl/variants/mc_ehl2/mainboard.c b/src/mainboard/siemens/mc_ehl/variants/mc_ehl2/mainboard.c index a798398..3395160 100644 --- a/src/mainboard/siemens/mc_ehl/variants/mc_ehl2/mainboard.c +++ b/src/mainboard/siemens/mc_ehl/variants/mc_ehl2/mainboard.c @@ -9,6 +9,8 @@ #include <soc/pci_devs.h> #include <soc/pcr_ids.h>
+#define HOSTCTRL2 0x3E +#define HOSTCTRL2_PRESET (1 << 15) #define SD_CAP_BYP 0x810 #define SD_CAP_BYP_EN 0x5A #define SD_CAP_BYP_REG1 0x814 @@ -34,6 +36,7 @@ dev = pcidev_path_on_root(PCH_DEVFN_SDCARD); if (dev) { uint32_t reg; + uint16_t reg16; struct resource *res = probe_resource(dev, PCI_BASE_ADDRESS_0); if (!res) return; @@ -43,6 +46,11 @@ reg &= ~(SD_CAP_BYP_SDR104 | SD_CAP_BYP_SDR50); reg |= SD_CAP_BYP_DDR50; write32(res2mmio(res, SD_CAP_BYP_REG1, 0), reg); + + /* Use preset driver strength from preset value registers. */ + reg16 = read16(res2mmio(res, HOSTCTRL2, 0)); + reg16 |= HOSTCTRL2_PRESET; + write16(res2mmio(res, HOSTCTRL2, 0), reg16); } }