summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKrishna Prasad Bhat <krishna.p.bhat.d@intel.com>2019-02-20 15:05:33 +0530
committerPatrick Georgi <pgeorgi@google.com>2019-03-21 16:22:54 +0000
commitcaa85f249d5f8be09ecd7b03e9e87a2fac0190dc (patch)
treeedd5f7473b1ab799fbd47396d4ab7fdd5fd19ce2 /src
parent00bb441ba4f9d427901043db0bb686d389e3adca (diff)
downloadcoreboot-caa85f249d5f8be09ecd7b03e9e87a2fac0190dc.tar.gz
coreboot-caa85f249d5f8be09ecd7b03e9e87a2fac0190dc.tar.bz2
coreboot-caa85f249d5f8be09ecd7b03e9e87a2fac0190dc.zip
soc/intel/cannonlake: Assign FSP UPDs for HPD and Data/CLK of DDI ports
Assign the FSP UPDs for HPD and DDC of DDI ports. FSP assumes that all DDI ports are enabled and hence configures the HPD and CLK for DDI ports. This patch initializes only the required UPDs to enable display ports. BUG=b:123907904 TEST=DP devices working correctly. Change-Id: Ic0c172cd3d087fc8f49b01ab23feffdababf7166 Signed-off-by: Krishna Prasad Bhat <krishna.p.bhat.d@intel.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/31520 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Furquan Shaikh <furquan@google.com>
Diffstat (limited to 'src')
-rw-r--r--src/mainboard/google/hatch/variants/baseboard/devicetree.cb5
-rw-r--r--src/mainboard/google/sarien/variants/arcada/devicetree.cb7
-rw-r--r--src/mainboard/google/sarien/variants/sarien/devicetree.cb7
-rw-r--r--src/soc/intel/cannonlake/chip.h15
-rw-r--r--src/soc/intel/cannonlake/fsp_params.c15
5 files changed, 49 insertions, 0 deletions
diff --git a/src/mainboard/google/hatch/variants/baseboard/devicetree.cb b/src/mainboard/google/hatch/variants/baseboard/devicetree.cb
index 16a0ef134f89..0299ded7b5f9 100644
--- a/src/mainboard/google/hatch/variants/baseboard/devicetree.cb
+++ b/src/mainboard/google/hatch/variants/baseboard/devicetree.cb
@@ -66,6 +66,11 @@ chip soc/intel/cannonlake
register "tdp_pl1_override" = "15"
register "tdp_pl2_override" = "44"
register "Device4Enable" = "1"
+ # Enable eDP device
+ register "DdiPortEdp" = "1"
+ # Enable HPD for DDI ports B/C
+ register "DdiPortBHpd" = "1"
+ register "DdiPortCHpd" = "1"
register "usb2_ports[0]" = "USB2_PORT_TYPE_C(OC2)" # Type-C Port 0
register "usb2_ports[1]" = "USB2_PORT_TYPE_C(OC2)" # Type-C Port 1
diff --git a/src/mainboard/google/sarien/variants/arcada/devicetree.cb b/src/mainboard/google/sarien/variants/arcada/devicetree.cb
index 5e70481bffc6..6f167c208c7e 100644
--- a/src/mainboard/google/sarien/variants/arcada/devicetree.cb
+++ b/src/mainboard/google/sarien/variants/arcada/devicetree.cb
@@ -41,6 +41,13 @@ chip soc/intel/cannonlake
register "SlowSlewRateForGt" = "0"
register "SlowSlewRateForSa" = "0"
register "SlowSlewRateForFivr" = "0"
+ # Enable eDP device
+ register "DdiPortEdp" = "1"
+ # Enable HPD for DDI ports B/C
+ register "DdiPortBHpd" = "1"
+ register "DdiPortCHpd" = "1"
+ # Enable DDC for DDI port B
+ register "DdiPortBDdc" = "1"
# VR Settings Configuration for 4 Domains
#+----------------+-------+-------+-------+-------+
diff --git a/src/mainboard/google/sarien/variants/sarien/devicetree.cb b/src/mainboard/google/sarien/variants/sarien/devicetree.cb
index df22affcd941..2714b6015530 100644
--- a/src/mainboard/google/sarien/variants/sarien/devicetree.cb
+++ b/src/mainboard/google/sarien/variants/sarien/devicetree.cb
@@ -45,6 +45,13 @@ chip soc/intel/cannonlake
register "tdp_pl1_override" = "25"
register "tdp_pl2_override" = "51"
register "Device4Enable" = "1"
+ # Enable eDP device
+ register "DdiPortEdp" = "1"
+ # Enable HPD for DDI ports B/C
+ register "DdiPortBHpd" = "1"
+ register "DdiPortCHpd" = "1"
+ # Enable DDC for DDI port B
+ register "DdiPortBDdc" = "1"
# VR Settings Configuration for 4 Domains
#+----------------+-------+-------+-------+-------+
diff --git a/src/soc/intel/cannonlake/chip.h b/src/soc/intel/cannonlake/chip.h
index b4d78f3cda53..5d9c744b3112 100644
--- a/src/soc/intel/cannonlake/chip.h
+++ b/src/soc/intel/cannonlake/chip.h
@@ -383,6 +383,21 @@ struct soc_intel_cannonlake_config {
/* SATA Power Optimizer */
uint8_t satapwroptimize;
+
+ /* Enable or disable eDP device */
+ uint8_t DdiPortEdp;
+
+ /* Enable or disable HPD of DDI port B/C/D/F */
+ uint8_t DdiPortBHpd;
+ uint8_t DdiPortCHpd;
+ uint8_t DdiPortDHpd;
+ uint8_t DdiPortFHpd;
+
+ /* Enable or disable DDC of DDI port B/C/D/F */
+ uint8_t DdiPortBDdc;
+ uint8_t DdiPortCDdc;
+ uint8_t DdiPortDDdc;
+ uint8_t DdiPortFDdc;
};
typedef struct soc_intel_cannonlake_config config_t;
diff --git a/src/soc/intel/cannonlake/fsp_params.c b/src/soc/intel/cannonlake/fsp_params.c
index 77d82d64f88c..1a3b4fbea2b9 100644
--- a/src/soc/intel/cannonlake/fsp_params.c
+++ b/src/soc/intel/cannonlake/fsp_params.c
@@ -177,6 +177,21 @@ void platform_fsp_silicon_init_params_cb(FSPS_UPD *supd)
params->PchHdaAudioLinkSndw3 = config->PchHdaAudioLinkSndw3;
params->PchHdaAudioLinkSndw4 = config->PchHdaAudioLinkSndw4;
+ /* eDP device */
+ params->DdiPortEdp = config->DdiPortEdp;
+
+ /* HPD of DDI ports */
+ params->DdiPortBHpd = config->DdiPortBHpd;
+ params->DdiPortCHpd = config->DdiPortCHpd;
+ params->DdiPortDHpd = config->DdiPortDHpd;
+ params->DdiPortFHpd = config->DdiPortFHpd;
+
+ /* DDC of DDI ports */
+ params->DdiPortBDdc = config->DdiPortBDdc;
+ params->DdiPortCDdc = config->DdiPortCDdc;
+ params->DdiPortDDdc = config->DdiPortDDdc;
+ params->DdiPortFDdc = config->DdiPortFDdc;
+
/* S0ix */
params->PchPmSlpS0Enable = config->s0ix_enable;