blob: d7dea1536e4d2cfd5abe5c85e3fa96a7d079560b [file] [log] [blame]
Furquan Shaikh88880722017-05-01 14:23:37 -07001chip soc/intel/skylake
2
Matt DeVillier8f424722019-11-27 22:55:43 -06003 # IGD Displays
4 register "gfx" = "GMA_STATIC_DISPLAYS(0)"
5
Matt DeVillierf5d159672019-11-30 16:29:58 -06006 register "panel_cfg" = "{
7 .up_delay_ms = 100,
8 .down_delay_ms = 500,
9 .cycle_delay_ms = 500,
10 .backlight_on_delay_ms = 1,
11 .backlight_off_delay_ms = 200,
12 .backlight_pwm_hz = 1000,
13 }"
14
Furquan Shaikh88880722017-05-01 14:23:37 -070015 # Deep Sx states
16 register "deep_s3_enable_ac" = "0"
Furquan Shaikhd37107e2017-11-08 11:28:10 -080017 register "deep_s3_enable_dc" = "0"
Furquan Shaikh88880722017-05-01 14:23:37 -070018 register "deep_s5_enable_ac" = "1"
19 register "deep_s5_enable_dc" = "1"
Furquan Shaikh9d867af2017-12-03 21:45:47 -080020 register "deep_sx_config" = "DSX_EN_LAN_WAKE_PIN | DSX_EN_WAKE_PIN | DSX_DIS_AC_PRESENT_PD"
Furquan Shaikh88880722017-05-01 14:23:37 -070021
22 # GPE configuration
23 # Note that GPE events called out in ASL code rely on this
24 # route. i.e. If this route changes then the affected GPE
25 # offset bits also need to be changed.
26 register "gpe0_dw0" = "GPP_B"
27 register "gpe0_dw1" = "GPP_D"
28 register "gpe0_dw2" = "GPP_E"
29
Furquan Shaikh88880722017-05-01 14:23:37 -070030 # Enable DPTF
31 register "dptf_enable" = "1"
32
Rajat Jain2671afc2017-07-20 19:31:01 -070033 # Enable S0ix
Felix Singer743242b2023-06-16 01:33:25 +020034 register "s0ix_enable" = true
Rajat Jain2671afc2017-07-20 19:31:01 -070035
Furquan Shaikh88880722017-05-01 14:23:37 -070036 # FSP Configuration
Furquan Shaikh88880722017-05-01 14:23:37 -070037 register "DspEnable" = "1"
38 register "IoBufferOwnership" = "3"
Furquan Shaikh88880722017-05-01 14:23:37 -070039 register "ScsEmmcHs400Enabled" = "1"
Furquan Shaikh88880722017-05-01 14:23:37 -070040 register "SkipExtGfxScan" = "1"
Angel Pons6fadde02021-04-04 16:11:53 +020041 register "SaGv" = "SaGv_Enabled"
Furquan Shaikh88880722017-05-01 14:23:37 -070042 register "PmConfigSlpS3MinAssert" = "2" # 50ms
43 register "PmConfigSlpS4MinAssert" = "1" # 1s
44 register "PmConfigSlpSusMinAssert" = "1" # 500ms
45 register "PmConfigSlpAMinAssert" = "3" # 2s
Furquan Shaikh88880722017-05-01 14:23:37 -070046
Furquan Shaikh88880722017-05-01 14:23:37 -070047 # VR Settings Configuration for 4 Domains
48 #+----------------+-------+-------+-------+-------+
49 #| Domain/Setting | SA | IA | GTUS | GTS |
50 #+----------------+-------+-------+-------+-------+
51 #| Psi1Threshold | 20A | 20A | 20A | 20A |
Rajneesh Bhardwaj4692e2f2017-06-21 16:42:53 +053052 #| Psi2Threshold | 2A | 2A | 2A | 2A |
Furquan Shaikh88880722017-05-01 14:23:37 -070053 #| Psi3Threshold | 1A | 1A | 1A | 1A |
54 #| Psi3Enable | 1 | 1 | 1 | 1 |
55 #| Psi4Enable | 1 | 1 | 1 | 1 |
56 #| ImonSlope | 0 | 0 | 0 | 0 |
57 #| ImonOffset | 0 | 0 | 0 | 0 |
Rajneesh Bhardwaj4692e2f2017-06-21 16:42:53 +053058 #| IccMax | 5A | 24A | 24A | 24A |
Furquan Shaikh88880722017-05-01 14:23:37 -070059 #| VrVoltageLimit | 1.52V | 1.52V | 1.52V | 1.52V |
Rajneesh Bhardwaj4692e2f2017-06-21 16:42:53 +053060 #| AcLoadline | 15 | 5.7 | 5.5 | 5.5 |
61 #| DcLoadline | 14.3 | 4.83 | 4.2 | 4.2 |
Furquan Shaikh88880722017-05-01 14:23:37 -070062 #+----------------+-------+-------+-------+-------+
63 register "domain_vr_config[VR_SYSTEM_AGENT]" = "{
64 .vr_config_enable = 1,
65 .psi1threshold = VR_CFG_AMP(20),
Rajneesh Bhardwaj4692e2f2017-06-21 16:42:53 +053066 .psi2threshold = VR_CFG_AMP(2),
Furquan Shaikh88880722017-05-01 14:23:37 -070067 .psi3threshold = VR_CFG_AMP(1),
68 .psi3enable = 1,
69 .psi4enable = 1,
70 .imon_slope = 0x0,
71 .imon_offset = 0x0,
Rajneesh Bhardwaj4692e2f2017-06-21 16:42:53 +053072 .icc_max = VR_CFG_AMP(5),
Furquan Shaikh88880722017-05-01 14:23:37 -070073 .voltage_limit = 1520,
Rajneesh Bhardwaj4692e2f2017-06-21 16:42:53 +053074 .ac_loadline = 1500,
75 .dc_loadline = 1430,
Furquan Shaikh88880722017-05-01 14:23:37 -070076 }"
77
78 register "domain_vr_config[VR_IA_CORE]" = "{
79 .vr_config_enable = 1,
80 .psi1threshold = VR_CFG_AMP(20),
Rajneesh Bhardwaj4692e2f2017-06-21 16:42:53 +053081 .psi2threshold = VR_CFG_AMP(2),
Furquan Shaikh88880722017-05-01 14:23:37 -070082 .psi3threshold = VR_CFG_AMP(1),
83 .psi3enable = 1,
84 .psi4enable = 1,
85 .imon_slope = 0x0,
86 .imon_offset = 0x0,
Rajneesh Bhardwaj4692e2f2017-06-21 16:42:53 +053087 .icc_max = VR_CFG_AMP(24),
Furquan Shaikh88880722017-05-01 14:23:37 -070088 .voltage_limit = 1520,
Rajneesh Bhardwaj4692e2f2017-06-21 16:42:53 +053089 .ac_loadline = 570,
90 .dc_loadline = 483,
Furquan Shaikh88880722017-05-01 14:23:37 -070091 }"
92
93 register "domain_vr_config[VR_GT_UNSLICED]" = "{
94 .vr_config_enable = 1,
95 .psi1threshold = VR_CFG_AMP(20),
Rajneesh Bhardwaj4692e2f2017-06-21 16:42:53 +053096 .psi2threshold = VR_CFG_AMP(2),
Furquan Shaikh88880722017-05-01 14:23:37 -070097 .psi3threshold = VR_CFG_AMP(1),
98 .psi3enable = 1,
99 .psi4enable = 1,
100 .imon_slope = 0x0,
101 .imon_offset = 0x0,
Rajneesh Bhardwaj4692e2f2017-06-21 16:42:53 +0530102 .icc_max = VR_CFG_AMP(24),
Furquan Shaikh88880722017-05-01 14:23:37 -0700103 .voltage_limit = 1520,
Rajneesh Bhardwaj4692e2f2017-06-21 16:42:53 +0530104 .ac_loadline = 550,
105 .dc_loadline = 420,
Furquan Shaikh88880722017-05-01 14:23:37 -0700106 }"
107
108 register "domain_vr_config[VR_GT_SLICED]" = "{
109 .vr_config_enable = 1,
110 .psi1threshold = VR_CFG_AMP(20),
Rajneesh Bhardwaj4692e2f2017-06-21 16:42:53 +0530111 .psi2threshold = VR_CFG_AMP(2),
Furquan Shaikh88880722017-05-01 14:23:37 -0700112 .psi3threshold = VR_CFG_AMP(1),
113 .psi3enable = 1,
114 .psi4enable = 1,
115 .imon_slope = 0x0,
116 .imon_offset = 0x0,
Rajneesh Bhardwaj4692e2f2017-06-21 16:42:53 +0530117 .icc_max = VR_CFG_AMP(24),
Furquan Shaikh88880722017-05-01 14:23:37 -0700118 .voltage_limit = 1520,
Rajneesh Bhardwaj4692e2f2017-06-21 16:42:53 +0530119 .ac_loadline = 550,
120 .dc_loadline = 420,
Furquan Shaikh88880722017-05-01 14:23:37 -0700121 }"
122
123 # Enable Root port 1.
124 register "PcieRpEnable[0]" = "1"
125 # Enable CLKREQ#
126 register "PcieRpClkReqSupport[0]" = "1"
127 # RP 1 uses SRCCLKREQ1#
128 register "PcieRpClkReqNumber[0]" = "1"
Rizwan Qureshi86885362017-09-05 14:23:27 +0530129 # RP 1, Enable Advanced Error Reporting
Rizwan Qureshi09703f62017-09-16 02:01:13 +0530130 register "PcieRpAdvancedErrorReporting[0]" = "1"
131 # RP 1, Enable Latency Tolerance Reporting Mechanism
132 register "PcieRpLtrEnable[0]" = "1"
Alexander Goncharov893c3ae82023-02-04 15:20:37 +0400133 # RP 1 uses CLK SRC 1
Divya Chellape7fb7ce2017-12-19 20:16:50 +0530134 register "PcieRpClkSrcNumber[0]" = "1"
Furquan Shaikh88880722017-05-01 14:23:37 -0700135
Subrata Banikc4986eb2018-05-09 14:55:09 +0530136 # Intel Common SoC Config
137 #+-------------------+---------------------------+
138 #| Field | Value |
139 #+-------------------+---------------------------+
Subrata Banikc4986eb2018-05-09 14:55:09 +0530140 #| I2C0 | Touchscreen |
141 #| I2C1 | cr50 TPM. Early init is |
142 #| | required to set up a BAR |
143 #| | for TPM communication |
144 #| | before memory is up |
145 #| I2C2 | Camera |
146 #| I2C4 | Camera |
147 #| I2C5 | Audio |
Subrata Banikc077b222019-08-01 10:50:35 +0530148 #| pch_thermal_trip | PCH Trip Temperature |
Subrata Banikc4986eb2018-05-09 14:55:09 +0530149 #+-------------------+---------------------------+
150 register "common_soc_config" = "{
Subrata Banikc4986eb2018-05-09 14:55:09 +0530151 .i2c[0] = {
Furquan Shaikheeab2712017-08-28 14:32:05 -0700152 .speed = I2C_SPEED_FAST,
Subrata Banikc4986eb2018-05-09 14:55:09 +0530153 .speed_config[0] = {
154 .speed = I2C_SPEED_FAST,
155 .scl_lcnt = 180,
156 .scl_hcnt = 85,
157 .sda_hold = 36,
158 },
159 },
160 .i2c[1] = {
161 .early_init = 1,
162 .speed = I2C_SPEED_FAST,
163 .speed_config[0] = {
164 .speed = I2C_SPEED_FAST,
165 .scl_lcnt = 190,
166 .scl_hcnt = 90,
167 .sda_hold = 36,
168 },
169 },
170 .i2c[2] = {
171 .speed = I2C_SPEED_FAST,
172 .speed_config[0] = {
173 .speed = I2C_SPEED_FAST,
174 .scl_lcnt = 192,
175 .scl_hcnt = 90,
176 .sda_hold = 36,
177 },
178 },
179 .i2c[4] = {
180 .speed = I2C_SPEED_FAST,
181 .speed_config[0] = {
182 .speed = I2C_SPEED_FAST,
183 .scl_lcnt = 190,
184 .scl_hcnt = 90,
185 .sda_hold = 36,
186 },
187 },
188 .i2c[5] = {
189 .speed = I2C_SPEED_FAST,
190 .speed_config[0] = {
191 .speed = I2C_SPEED_FAST,
192 .scl_lcnt = 190,
193 .scl_hcnt = 90,
194 .sda_hold = 36,
195 },
Furquan Shaikheeab2712017-08-28 14:32:05 -0700196 },
Subrata Banikc077b222019-08-01 10:50:35 +0530197 .pch_thermal_trip = 75,
Furquan Shaikheeab2712017-08-28 14:32:05 -0700198 }"
199
Subrata Banikc4986eb2018-05-09 14:55:09 +0530200 # Touchscreen
201 register "i2c_voltage[0]" = "I2C_VOLTAGE_3V3"
202
Furquan Shaikheeab2712017-08-28 14:32:05 -0700203 # H1
Furquan Shaikheeab2712017-08-28 14:32:05 -0700204 # Configure I2C1 for cr50 TPM. Early init is required to set up a BAR
205 # for TPM communication before memory is up.
Subrata Banikc4986eb2018-05-09 14:55:09 +0530206 register "i2c_voltage[1]" = "I2C_VOLTAGE_3V3"
Furquan Shaikheeab2712017-08-28 14:32:05 -0700207
208 # Camera
209 register "i2c_voltage[2]" = "I2C_VOLTAGE_1V8"
Furquan Shaikheeab2712017-08-28 14:32:05 -0700210
Furquan Shaikheeab2712017-08-28 14:32:05 -0700211 # Camera
212 register "i2c_voltage[4]" = "I2C_VOLTAGE_1V8"
Furquan Shaikheeab2712017-08-28 14:32:05 -0700213
214 # Audio
215 register "i2c_voltage[5]" = "I2C_VOLTAGE_1V8"
Furquan Shaikh88880722017-05-01 14:23:37 -0700216
Furquan Shaikh88880722017-05-01 14:23:37 -0700217 # Must leave UART0 enabled or SD/eMMC will not work as PCI
218 register "SerialIoDevMode" = "{
219 [PchSerialIoIndexI2C0] = PchSerialIoPci,
220 [PchSerialIoIndexI2C1] = PchSerialIoPci,
221 [PchSerialIoIndexI2C2] = PchSerialIoPci,
Wisley Chend9ccb4e2017-09-01 09:21:31 +0800222 [PchSerialIoIndexI2C3] = PchSerialIoDisabled,
Furquan Shaikh88880722017-05-01 14:23:37 -0700223 [PchSerialIoIndexI2C4] = PchSerialIoPci,
224 [PchSerialIoIndexI2C5] = PchSerialIoPci,
Furquan Shaikh763b4062017-12-04 12:17:24 -0800225 [PchSerialIoIndexSpi0] = PchSerialIoDisabled,
Furquan Shaikh296c79c2017-06-09 18:41:39 -0700226 [PchSerialIoIndexSpi1] = PchSerialIoDisabled,
Angel Pons08564942021-06-04 18:55:03 +0200227 [PchSerialIoIndexUart0] = PchSerialIoSkipInit,
Furquan Shaikh88880722017-05-01 14:23:37 -0700228 [PchSerialIoIndexUart1] = PchSerialIoDisabled,
229 [PchSerialIoIndexUart2] = PchSerialIoSkipInit,
230 }"
231
Sumeet Pawnikarb4411d32017-08-10 18:55:12 +0530232 # PL2 override 15W for KBL-Y
Sumeet R Pawnikar97c54642020-05-10 01:24:11 +0530233 register "power_limits_config" = "{
234 .tdp_pl2_override = 15,
235 .psys_pmax = 45,
236 }"
Furquan Shaikh88880722017-05-01 14:23:37 -0700237 register "tcc_offset" = "10" # TCC of 90C
238
239 # Use default SD card detect GPIO configuration
Angel Pons6bd99f92021-02-20 00:16:47 +0100240 register "sdcard_cd_gpio" = "GPP_E15"
Furquan Shaikh88880722017-05-01 14:23:37 -0700241
Furquan Shaikh88880722017-05-01 14:23:37 -0700242 device domain 0 on
Marvin Evers059476d2023-12-04 02:28:25 +0100243 device ref system_agent on end
244 device ref igpu on end
245 device ref sa_thermal on end
246 device ref imgu on end
Felix Singer6c83a712024-06-23 00:25:18 +0200247 device ref south_xhci on
248 register "usb2_ports" = "{
249 [0] = USB2_PORT_LONG(OC0), // Type-C Port 1
250 [1] = USB2_PORT_MID(OC_SKIP), // Type-A Port
251 [2] = USB2_PORT_MID(OC_SKIP), // Bluetooth
252 [4] = USB2_PORT_MAX(OC1), // Type-C Port 2
253 [6] = USB2_PORT_MID(OC_SKIP), // Type-A Port
254 [8] = USB2_PORT_MID(OC_SKIP), // Type-A Port
255 }"
256
257 register "usb3_ports" = "{
258 [0] = USB3_PORT_DEFAULT(OC0), // Type-C Port 1
259 [1] = USB3_PORT_DEFAULT(OC1), // Type-C Port 2
260 [2] = USB3_PORT_DEFAULT(OC_SKIP), // Type-A Port
261 }"
262 end
Marvin Evers059476d2023-12-04 02:28:25 +0100263 device ref south_xdci on end
264 device ref thermal on end
265 device ref cio on end
266 device ref i2c0 on
Wisley Chena80a0eb2017-07-06 18:02:04 +0800267 chip drivers/i2c/hid
268 register "generic.hid" = ""WCOMCOHO""
269 register "generic.desc" = ""WCOM Touchscreen""
270 register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_E7_IRQ)"
Matt DeVillier86425c82022-03-28 23:45:14 -0500271 register "generic.detect" = "1"
Wisley Chena80a0eb2017-07-06 18:02:04 +0800272 register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_E3)"
Furquan Shaikhef1a5ed2017-10-06 14:06:27 -0700273 register "generic.reset_delay_ms" = "10"
Wisley Chena80a0eb2017-07-06 18:02:04 +0800274 register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_C22)"
275 register "generic.enable_delay_ms" = "1"
Furquan Shaikh3ed59692017-08-28 17:26:28 -0700276 register "generic.stop_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_E11)"
Wisley Chena80a0eb2017-07-06 18:02:04 +0800277 register "generic.has_power_resource" = "1"
Wisley Chena80a0eb2017-07-06 18:02:04 +0800278 register "hid_desc_reg_offset" = "0x1"
279 device i2c 0xA on end
280 end
Marvin Evers059476d2023-12-04 02:28:25 +0100281 end
282 device ref i2c1 on
Furquan Shaikh88880722017-05-01 14:23:37 -0700283 chip drivers/i2c/tpm
284 register "hid" = ""GOOG0005""
285 register "irq" = "ACPI_IRQ_EDGE_LOW(GPP_E0_IRQ)"
286 device i2c 50 on end
287 end
Marvin Evers059476d2023-12-04 02:28:25 +0100288 end
289 device ref i2c2 on end
290 device ref i2c3 off end
291 device ref heci1 on end
292 device ref heci2 off end
293 device ref csme_ider off end
294 device ref csme_ktr off end
295 device ref heci3 off end
296 device ref sata off end
297 device ref uart2 on end
298 device ref i2c5 on
Furquan Shaikh88880722017-05-01 14:23:37 -0700299 chip drivers/i2c/max98927
300 register "interleave_mode" = "1"
Harsha Priya130b4a22017-08-24 14:40:04 -0700301 register "vmon_slot_no" = "4"
302 register "imon_slot_no" = "5"
Furquan Shaikh88880722017-05-01 14:23:37 -0700303 register "uid" = "0"
304 register "desc" = ""SSM4567 Right Speaker Amp""
305 register "name" = ""MAXR""
306 device i2c 39 on end
307 end
308 chip drivers/i2c/max98927
309 register "interleave_mode" = "1"
Harsha Priya130b4a22017-08-24 14:40:04 -0700310 register "vmon_slot_no" = "6"
311 register "imon_slot_no" = "7"
Furquan Shaikh88880722017-05-01 14:23:37 -0700312 register "uid" = "1"
313 register "desc" = ""SSM4567 Left Speaker Amp""
314 register "name" = ""MAXL""
315 device i2c 3A on end
316 end
317 chip drivers/i2c/generic
318 register "hid" = ""10EC5663""
319 register "name" = ""RT53""
320 register "desc" = ""Realtek RT5663""
321 register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_BOTH(GPP_D9)"
322 register "probed" = "1"
323 device i2c 13 on end
324 end
Marvin Evers059476d2023-12-04 02:28:25 +0100325 end
326 device ref i2c4 on end
327 device ref pcie_rp1 on
Furquan Shaikha266d1e2020-10-04 12:52:54 -0700328 chip drivers/wifi/generic
Furquan Shaikh88880722017-05-01 14:23:37 -0700329 register "wake" = "GPE0_PCI_EXP"
330 device pci 00.0 on end
331 end
Marvin Evers059476d2023-12-04 02:28:25 +0100332 end
333 device ref pcie_rp2 off end
334 device ref pcie_rp3 off end
335 device ref pcie_rp4 off end
336 device ref pcie_rp5 off end
337 device ref pcie_rp6 off end
338 device ref pcie_rp7 off end
339 device ref pcie_rp8 off end
340 device ref pcie_rp9 off end
341 device ref pcie_rp10 off end
342 device ref pcie_rp11 off end
343 device ref pcie_rp12 off end
344 device ref uart0 on end
345 device ref uart1 off end
346 device ref gspi0 off end
347 device ref gspi1 off end
348 device ref emmc on end
349 device ref sdio off end
350 device ref sdxc on end
351 device ref lpc_espi on
Felix Singerdcddc53f2024-06-23 03:39:24 +0200352 # EC host command ranges are in 0x800-0x8ff & 0x200-0x20f
353 register "gen1_dec" = "0x00fc0801"
354 register "gen2_dec" = "0x000c0201"
355 # EC memory map range is 0x900-0x9ff
356 register "gen3_dec" = "0x00fc0901"
357
Furquan Shaikh88880722017-05-01 14:23:37 -0700358 chip ec/google/chromeec
359 device pnp 0c09.0 on end
360 end
Marvin Evers059476d2023-12-04 02:28:25 +0100361 end
362 device ref p2sb on end
363 device ref pmc on end
364 device ref hda on end
365 device ref smbus on end
366 device ref fast_spi on end
367 device ref gbe off end
Furquan Shaikh88880722017-05-01 14:23:37 -0700368 end
369end