summaryrefslogtreecommitdiff
path: root/payloads/libpayload/include
diff options
context:
space:
mode:
Diffstat (limited to 'payloads/libpayload/include')
-rw-r--r--payloads/libpayload/include/coreboot_tables.h22
-rw-r--r--payloads/libpayload/include/sysinfo.h2
2 files changed, 24 insertions, 0 deletions
diff --git a/payloads/libpayload/include/coreboot_tables.h b/payloads/libpayload/include/coreboot_tables.h
index 91f848654f..a841e0326f 100644
--- a/payloads/libpayload/include/coreboot_tables.h
+++ b/payloads/libpayload/include/coreboot_tables.h
@@ -82,6 +82,7 @@ enum {
CB_TAG_SMMSTOREV2 = 0x0039,
CB_TAG_BOARD_CONFIG = 0x0040,
CB_TAG_ACPI_CNVS = 0x0041,
+ CB_TAG_TYPE_C_INFO = 0x0042,
CB_TAG_CMOS_OPTION_TABLE = 0x00c8,
CB_TAG_OPTION = 0x00c9,
CB_TAG_OPTION_ENUM = 0x00ca,
@@ -142,6 +143,27 @@ struct cb_mainboard {
u8 strings[0];
};
+struct type_c_port_info {
+ /*
+ * usb2_port_number and usb3_port_number are expected to be
+ * the port numbers as seen by the USB controller in the SoC.
+ */
+ uint8_t usb2_port_number;
+ uint8_t usb3_port_number;
+
+ /*
+ * Valid sbu_orientation and data_orientation values will be of
+ * type enum type_c_orienation.
+ */
+ uint8_t sbu_orientation;
+ uint8_t data_orientation;
+};
+
+struct type_c_info {
+ u32 port_count;
+ struct type_c_port_info port_info[0];
+};
+
struct cb_string {
u32 tag;
u32 size;
diff --git a/payloads/libpayload/include/sysinfo.h b/payloads/libpayload/include/sysinfo.h
index 26dece7ce1..b34476d25e 100644
--- a/payloads/libpayload/include/sysinfo.h
+++ b/payloads/libpayload/include/sysinfo.h
@@ -148,6 +148,8 @@ struct sysinfo_t {
#if CONFIG(LP_PCI)
struct pci_access pacc;
#endif
+ /* USB Type-C Port Configuration Info */
+ uintptr_t type_c_info;
};
extern struct sysinfo_t lib_sysinfo;