summaryrefslogtreecommitdiff
path: root/src/soc/intel/elkhartlake/chip.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/intel/elkhartlake/chip.h')
-rw-r--r--src/soc/intel/elkhartlake/chip.h52
1 files changed, 52 insertions, 0 deletions
diff --git a/src/soc/intel/elkhartlake/chip.h b/src/soc/intel/elkhartlake/chip.h
index 210e92c4b6..a4e8cadb8d 100644
--- a/src/soc/intel/elkhartlake/chip.h
+++ b/src/soc/intel/elkhartlake/chip.h
@@ -49,6 +49,18 @@ enum tsn_gbe_link_speed {
};
/*
+ * PSE native pins and ownership assignment:-
+ * 0: Disable/pins are not owned by PSE/host
+ * 1: Pins are muxed to PSE IP, the IO is owned by PSE
+ * 2: Pins are muxed to PSE IP, the IO is owned by host
+ */
+enum pse_device_ownership {
+ Device_Disabled,
+ PSE_Owned,
+ Host_Owned,
+};
+
+/*
* Enable external V1P05 Rail in: BIT0:S0i1/S0i2,
* BIT1:S0i3, BIT2:S3, BIT3:S4, BIT4:S5
* However, EHL does not support S0i1 and S0i2,
@@ -453,6 +465,46 @@ struct soc_intel_elkhartlake_config {
bool PchTsnGbeSgmiiEnable;
/* PCH TSN GBE Multiple Virtual Channel: Disable (0) / Enable (1) */
bool PchTsnGbeMultiVcEnable;
+
+ /* PSE related */
+ /*
+ * PSE (Intel Programmable Services Engine) native pins and ownership
+ * assignment. If the device is configured as 'PSE owned', PSE will have
+ * full control of specific device and it will be hidden from coreboot
+ * and OS. If the device is configured as 'Host owned', the device will
+ * be visible to coreboot and OS as a PCI device, while PSE will still
+ * do some IP initialization and pin assignment works.
+ *
+ * PSE is still required during runtime to ensure any of PSE devices
+ * works properly.
+ */
+ enum pse_device_ownership PseDmaOwn[3];
+ enum pse_device_ownership PseUartOwn[6];
+ enum pse_device_ownership PseHsuartOwn[4];
+ enum pse_device_ownership PseQepOwn[4];
+ enum pse_device_ownership PseI2cOwn[8];
+ enum pse_device_ownership PseI2sOwn[2];
+ enum pse_device_ownership PseSpiOwn[4];
+ enum pse_device_ownership PseSpiCs0Own[4];
+ enum pse_device_ownership PseSpiCs1Own[4];
+ enum pse_device_ownership PseCanOwn[2];
+ enum pse_device_ownership PsePwmOwn;
+ enum pse_device_ownership PseAdcOwn;
+ /* PSE devices sideband interrupt: Disable (0) / Enable (1) */
+ bool PseDmaSbIntEn[3];
+ bool PseUartSbIntEn[6];
+ bool PseQepSbIntEn[4];
+ bool PseI2cSbIntEn[8];
+ bool PseI2sSbIntEn[2];
+ bool PseSpiSbIntEn[4];
+ bool PseCanSbIntEn[2];
+ bool PseLh2PseSbIntEn;
+ bool PsePwmSbIntEn;
+ bool PseAdcSbIntEn;
+ /* PSE PWM native function: Disable (0) / Enable (1) */
+ bool PsePwmPinEn[16];
+ /* PSE Console Shell */
+ bool PseShellEn;
};
typedef struct soc_intel_elkhartlake_config config_t;