bayhub bh720: Configure VIH tuning via devicetree

There's no need to repeat the same code on every board.

Change-Id: I2e19decfe8609fa644e609673a56ee5109bafefa
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/49831
Reviewed-by: EricR Lai <ericr_lai@compal.corp-partner.google.com>
Reviewed-by: Raul Rangel <rrangel@chromium.org>
Reviewed-by: Martin Roth <martinroth@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Angel Pons
2021-01-22 15:12:14 +01:00
committed by Patrick Georgi
parent f06d046c10
commit e4abe7fd5a
6 changed files with 18 additions and 22 deletions

View File

@@ -44,6 +44,19 @@ static void bh720_init(struct device *dev)
}
board_bh720(dev);
if (config && config->vih_tuning_value) {
/* Tune VIH */
u32 bh720_pcr_data;
pci_write_config32(dev, BH720_PROTECT,
BH720_PROTECT_OFF | BH720_PROTECT_LOCK_OFF);
bh720_pcr_data = pci_read_config32(dev, BH720_PCR_DrvStrength_PLL);
bh720_pcr_data &= 0xFFFFFF00;
bh720_pcr_data |= config->vih_tuning_value;
pci_write_config32(dev, BH720_PCR_DrvStrength_PLL, bh720_pcr_data);
pci_write_config32(dev, BH720_PROTECT,
BH720_PROTECT_ON | BH720_PROTECT_LOCK_ON);
}
}
static struct device_operations bh720_ops = {

View File

@@ -8,4 +8,7 @@
struct drivers_generic_bayhub_config {
/* 1 to enable power-saving mode, 0 to disable */
int power_saving;
/* CLK and DAT tuning values */
uint8_t vih_tuning_value;
};