summaryrefslogtreecommitdiffstats
path: root/src/soc/intel/common/block/p2sb/p2sb.c
diff options
context:
space:
mode:
authorArthur Heymans <arthur@aheymans.xyz>2020-11-12 21:00:03 +0100
committerArthur Heymans <arthur@aheymans.xyz>2020-11-20 10:17:22 +0000
commitf629f7b78bb89ede0a1d9070dec3a7d71950899e (patch)
tree8f3f8486bb1e90aefc07446a9950c20351bc19fa /src/soc/intel/common/block/p2sb/p2sb.c
parenta8798a317983508385138bb39f41e5e614e957f6 (diff)
downloadcoreboot-f629f7b78bb89ede0a1d9070dec3a7d71950899e.tar.gz
coreboot-f629f7b78bb89ede0a1d9070dec3a7d71950899e.tar.bz2
coreboot-f629f7b78bb89ede0a1d9070dec3a7d71950899e.zip
soc/intel/common/block/p2sb: Add hpet BDF functions
This allows to get/set the HPET bus device function. Change-Id: I8d72da8bc392aa144d167d31cde30cc71cd1396e Signed-off-by: Arthur Heymans <arthur@aheymans.xyz> Reviewed-on: https://review.coreboot.org/c/coreboot/+/47531 Reviewed-by: Angel Pons <th3fanbus@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/soc/intel/common/block/p2sb/p2sb.c')
-rw-r--r--src/soc/intel/common/block/p2sb/p2sb.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/soc/intel/common/block/p2sb/p2sb.c b/src/soc/intel/common/block/p2sb/p2sb.c
index 9673a2cf713b..fd54a08dda38 100644
--- a/src/soc/intel/common/block/p2sb/p2sb.c
+++ b/src/soc/intel/common/block/p2sb/p2sb.c
@@ -54,6 +54,25 @@ void p2sb_configure_hpet(void)
pci_write_config8(PCH_DEV_P2SB, HPTC_OFFSET, HPTC_ADDR_ENABLE_BIT);
}
+union p2sb_bdf p2sb_get_hpet_bdf(void)
+{
+ const bool was_hidden = p2sb_is_hidden();
+ if (was_hidden)
+ p2sb_unhide();
+
+ union p2sb_bdf bdf = { .raw = pci_read_config16(PCH_DEV_P2SB, PCH_P2SB_HBDF) };
+
+ if (was_hidden)
+ p2sb_hide();
+
+ return bdf;
+}
+
+void p2sb_set_hpet_bdf(union p2sb_bdf bdf)
+{
+ pci_write_config16(PCH_DEV_P2SB, PCH_P2SB_HBDF, bdf.raw);
+}
+
static void p2sb_set_hide_bit(int hide)
{
const uint16_t reg = PCH_P2SB_E0 + 1;