blob: 0317139b7cdd3b2b53274daaabc3d8e0871a9f2c [file] [log] [blame]
Furquan Shaikh06cd9032016-12-14 12:10:21 -08001chip soc/intel/skylake
2
Matt DeVillier8f424722019-11-27 22:55:43 -06003 # IGD Displays
4 register "gfx" = "GMA_STATIC_DISPLAYS(0)"
5
Furquan Shaikh2eb08372017-02-22 16:42:04 -08006 # Deep Sx states
Duncan Laurie1fe32d62017-04-10 21:02:13 -07007 register "deep_s3_enable_ac" = "0"
Furquan Shaikhd37107e2017-11-08 11:28:10 -08008 register "deep_s3_enable_dc" = "0"
Duncan Laurie1fe32d62017-04-10 21:02:13 -07009 register "deep_s5_enable_ac" = "1"
10 register "deep_s5_enable_dc" = "1"
Furquan Shaikh9d867af2017-12-03 21:45:47 -080011 register "deep_sx_config" = "DSX_EN_LAN_WAKE_PIN | DSX_EN_WAKE_PIN | DSX_DIS_AC_PRESENT_PD"
Furquan Shaikh06cd9032016-12-14 12:10:21 -080012
13 # GPE configuration
14 # Note that GPE events called out in ASL code rely on this
15 # route. i.e. If this route changes then the affected GPE
16 # offset bits also need to be changed.
17 register "gpe0_dw0" = "GPP_B"
18 register "gpe0_dw1" = "GPP_D"
19 register "gpe0_dw2" = "GPP_E"
20
21 # EC host command ranges are in 0x800-0x8ff & 0x200-0x20f
22 register "gen1_dec" = "0x00fc0801"
23 register "gen2_dec" = "0x000c0201"
24 # EC memory map range is 0x900-0x9ff
25 register "gen3_dec" = "0x00fc0901"
26
Sumeet Pawnikard56fae12017-02-20 10:34:01 +053027 # Enable DPTF
28 register "dptf_enable" = "1"
29
Rajat Jain2671afc2017-07-20 19:31:01 -070030 # Enable S0ix
Felix Singer743242b2023-06-16 01:33:25 +020031 register "s0ix_enable" = true
Rajat Jain2671afc2017-07-20 19:31:01 -070032
Furquan Shaikh06cd9032016-12-14 12:10:21 -080033 # FSP Configuration
Furquan Shaikh06cd9032016-12-14 12:10:21 -080034 register "DspEnable" = "1"
35 register "IoBufferOwnership" = "3"
Furquan Shaikh06cd9032016-12-14 12:10:21 -080036 register "ScsEmmcHs400Enabled" = "1"
Furquan Shaikh06cd9032016-12-14 12:10:21 -080037 register "SkipExtGfxScan" = "1"
Angel Pons6fadde02021-04-04 16:11:53 +020038 register "SaGv" = "SaGv_Enabled"
Furquan Shaikh06cd9032016-12-14 12:10:21 -080039 register "PmConfigSlpS3MinAssert" = "2" # 50ms
40 register "PmConfigSlpS4MinAssert" = "1" # 1s
41 register "PmConfigSlpSusMinAssert" = "1" # 500ms
42 register "PmConfigSlpAMinAssert" = "3" # 2s
Furquan Shaikh06cd9032016-12-14 12:10:21 -080043
Duncan Laurie4fa8a6f2017-03-14 16:37:55 -070044 # VR Settings Configuration for 4 Domains
45 #+----------------+-------+-------+-------+-------+
46 #| Domain/Setting | SA | IA | GTUS | GTS |
47 #+----------------+-------+-------+-------+-------+
48 #| Psi1Threshold | 20A | 20A | 20A | 20A |
Furquan Shaikh3f09b0f2017-08-18 17:26:27 -070049 #| Psi2Threshold | 2A | 2A | 2A | 2A |
Duncan Laurie4fa8a6f2017-03-14 16:37:55 -070050 #| Psi3Threshold | 1A | 1A | 1A | 1A |
51 #| Psi3Enable | 1 | 1 | 1 | 1 |
52 #| Psi4Enable | 1 | 1 | 1 | 1 |
53 #| ImonSlope | 0 | 0 | 0 | 0 |
54 #| ImonOffset | 0 | 0 | 0 | 0 |
Furquan Shaikh3f09b0f2017-08-18 17:26:27 -070055 #| IccMax | 5A | 24A | 24A | 24A |
Duncan Laurie4fa8a6f2017-03-14 16:37:55 -070056 #| VrVoltageLimit | 1.52V | 1.52V | 1.52V | 1.52V |
Furquan Shaikh3f09b0f2017-08-18 17:26:27 -070057 #| AcLoadline | 15 | 5.7 | 5.5 | 5.5 |
58 #| DcLoadline | 14.3 | 4.83 | 4.2 | 4.2 |
Duncan Laurie4fa8a6f2017-03-14 16:37:55 -070059 #+----------------+-------+-------+-------+-------+
Furquan Shaikh06cd9032016-12-14 12:10:21 -080060 register "domain_vr_config[VR_SYSTEM_AGENT]" = "{
61 .vr_config_enable = 1,
62 .psi1threshold = VR_CFG_AMP(20),
Furquan Shaikh3f09b0f2017-08-18 17:26:27 -070063 .psi2threshold = VR_CFG_AMP(2),
Furquan Shaikh06cd9032016-12-14 12:10:21 -080064 .psi3threshold = VR_CFG_AMP(1),
65 .psi3enable = 1,
66 .psi4enable = 1,
67 .imon_slope = 0x0,
68 .imon_offset = 0x0,
Furquan Shaikh3f09b0f2017-08-18 17:26:27 -070069 .icc_max = VR_CFG_AMP(5),
Furquan Shaikh06cd9032016-12-14 12:10:21 -080070 .voltage_limit = 1520,
Furquan Shaikh3f09b0f2017-08-18 17:26:27 -070071 .ac_loadline = 1500,
72 .dc_loadline = 1430,
Furquan Shaikh06cd9032016-12-14 12:10:21 -080073 }"
74
75 register "domain_vr_config[VR_IA_CORE]" = "{
76 .vr_config_enable = 1,
77 .psi1threshold = VR_CFG_AMP(20),
Furquan Shaikh3f09b0f2017-08-18 17:26:27 -070078 .psi2threshold = VR_CFG_AMP(2),
Furquan Shaikh06cd9032016-12-14 12:10:21 -080079 .psi3threshold = VR_CFG_AMP(1),
80 .psi3enable = 1,
81 .psi4enable = 1,
82 .imon_slope = 0x0,
83 .imon_offset = 0x0,
Furquan Shaikh3f09b0f2017-08-18 17:26:27 -070084 .icc_max = VR_CFG_AMP(24),
Furquan Shaikh06cd9032016-12-14 12:10:21 -080085 .voltage_limit = 1520,
Furquan Shaikh3f09b0f2017-08-18 17:26:27 -070086 .ac_loadline = 570,
87 .dc_loadline = 483,
Furquan Shaikh06cd9032016-12-14 12:10:21 -080088 }"
89
Furquan Shaikh06cd9032016-12-14 12:10:21 -080090 register "domain_vr_config[VR_GT_UNSLICED]" = "{
91 .vr_config_enable = 1,
92 .psi1threshold = VR_CFG_AMP(20),
Furquan Shaikh3f09b0f2017-08-18 17:26:27 -070093 .psi2threshold = VR_CFG_AMP(2),
Furquan Shaikh06cd9032016-12-14 12:10:21 -080094 .psi3threshold = VR_CFG_AMP(1),
95 .psi3enable = 1,
96 .psi4enable = 1,
97 .imon_slope = 0x0,
98 .imon_offset = 0x0,
Furquan Shaikh3f09b0f2017-08-18 17:26:27 -070099 .icc_max = VR_CFG_AMP(24),
Furquan Shaikh06cd9032016-12-14 12:10:21 -0800100 .voltage_limit = 1520,
Furquan Shaikh3f09b0f2017-08-18 17:26:27 -0700101 .ac_loadline = 550,
102 .dc_loadline = 420,
Furquan Shaikh06cd9032016-12-14 12:10:21 -0800103 }"
104
105 register "domain_vr_config[VR_GT_SLICED]" = "{
106 .vr_config_enable = 1,
107 .psi1threshold = VR_CFG_AMP(20),
Furquan Shaikh3f09b0f2017-08-18 17:26:27 -0700108 .psi2threshold = VR_CFG_AMP(2),
Furquan Shaikh06cd9032016-12-14 12:10:21 -0800109 .psi3threshold = VR_CFG_AMP(1),
110 .psi3enable = 1,
111 .psi4enable = 1,
112 .imon_slope = 0x0,
113 .imon_offset = 0x0,
Furquan Shaikh3f09b0f2017-08-18 17:26:27 -0700114 .icc_max = VR_CFG_AMP(24),
Furquan Shaikh06cd9032016-12-14 12:10:21 -0800115 .voltage_limit = 1520,
Furquan Shaikh3f09b0f2017-08-18 17:26:27 -0700116 .ac_loadline = 550,
117 .dc_loadline = 420,
Furquan Shaikh06cd9032016-12-14 12:10:21 -0800118 }"
119
120 # Enable Root port 1.
121 register "PcieRpEnable[0]" = "1"
122 # Enable CLKREQ#
123 register "PcieRpClkReqSupport[0]" = "1"
124 # RP 1 uses SRCCLKREQ1#
125 register "PcieRpClkReqNumber[0]" = "1"
Rizwan Qureshiea4649f2017-09-06 19:08:23 +0530126 # RP 1, Enable Advanced Error Reporting
Rizwan Qureshi09703f62017-09-16 02:01:13 +0530127 register "PcieRpAdvancedErrorReporting[0]" = "1"
128 # RP 1, Enable Latency Tolerance Reporting Mechanism
129 register "PcieRpLtrEnable[0]" = "1"
Alexander Goncharov893c3ae82023-02-04 15:20:37 +0400130 # RP 1 uses CLK SRC 1
Divya Chellape7fb7ce2017-12-19 20:16:50 +0530131 register "PcieRpClkSrcNumber[0]" = "1"
Furquan Shaikh06cd9032016-12-14 12:10:21 -0800132
133 register "usb2_ports[0]" = "USB2_PORT_LONG(OC0)" # Type-C Port 1
134 register "usb2_ports[1]" = "USB2_PORT_MID(OC_SKIP)" # Type-A Port
135 register "usb2_ports[2]" = "USB2_PORT_MID(OC_SKIP)" # Bluetooth
136 register "usb2_ports[4]" = "USB2_PORT_LONG(OC1)" # Type-C Port 2
137 register "usb2_ports[6]" = "USB2_PORT_MID(OC_SKIP)" # Type-A Port
138 register "usb2_ports[8]" = "USB2_PORT_MID(OC_SKIP)" # Type-A Port
139
140 register "usb3_ports[0]" = "USB3_PORT_DEFAULT(OC0)" # Type-C Port 1
141 register "usb3_ports[1]" = "USB3_PORT_DEFAULT(OC1)" # Type-C Port 2
142 register "usb3_ports[2]" = "USB3_PORT_DEFAULT(OC_SKIP)" # Type-A Port
Furquan Shaikh06cd9032016-12-14 12:10:21 -0800143
Subrata Banikc4986eb2018-05-09 14:55:09 +0530144 # Intel Common SoC Config
145 #+-------------------+---------------------------+
146 #| Field | Value |
147 #+-------------------+---------------------------+
Subrata Banikc4986eb2018-05-09 14:55:09 +0530148 #| I2C0 | Touchscreen |
149 #| I2C1 | H1 |
150 #| I2C2 | Camera |
151 #| I2C3 | Pen |
152 #| I2C4 | Camera |
153 #| I2C5 | Audio |
Subrata Banikc077b222019-08-01 10:50:35 +0530154 #| pch_thermal_trip | PCH Trip Temperature |
Subrata Banikc4986eb2018-05-09 14:55:09 +0530155 #+-------------------+---------------------------+
156 register "common_soc_config" = "{
Subrata Banikc4986eb2018-05-09 14:55:09 +0530157 .i2c[0] = {
Furquan Shaikhc3e4f632017-08-25 09:50:15 -0700158 .speed = I2C_SPEED_FAST,
Subrata Banikc4986eb2018-05-09 14:55:09 +0530159 .speed_config[0] = {
160 .speed = I2C_SPEED_FAST,
161 .scl_lcnt = 185,
162 .scl_hcnt = 90,
163 .sda_hold = 36,
164 },
165 },
166 .i2c[1] = {
167 .speed = I2C_SPEED_FAST,
168 .speed_config[0] = {
169 .speed = I2C_SPEED_FAST,
170 .scl_lcnt = 190,
171 .scl_hcnt = 100,
172 .sda_hold = 36,
173 },
174 .early_init = 1,
175 },
176 .i2c[2] = {
177 .speed = I2C_SPEED_FAST,
178 .speed_config[0] = {
179 .speed = I2C_SPEED_FAST,
180 .scl_lcnt = 190,
181 .scl_hcnt = 97,
182 .sda_hold = 36,
183 },
184 },
185 .i2c[4] = {
186 .speed = I2C_SPEED_FAST,
187 .speed_config[0] = {
188 .speed = I2C_SPEED_FAST,
189 .scl_lcnt = 190,
190 .scl_hcnt = 97,
191 .sda_hold = 36,
192 },
193 },
194 .i2c[5] = {
195 .speed = I2C_SPEED_FAST,
196 .speed_config[0] = {
197 .speed = I2C_SPEED_FAST,
198 .scl_lcnt = 190,
199 .scl_hcnt = 98,
200 .sda_hold = 36,
201 },
Furquan Shaikhc3e4f632017-08-25 09:50:15 -0700202 },
Subrata Banikc077b222019-08-01 10:50:35 +0530203 .pch_thermal_trip = 75,
Furquan Shaikhc3e4f632017-08-25 09:50:15 -0700204 }"
205
Subrata Banikc4986eb2018-05-09 14:55:09 +0530206 # Touchscreen
207 register "i2c_voltage[0]" = "I2C_VOLTAGE_3V3"
208
Furquan Shaikhc3e4f632017-08-25 09:50:15 -0700209 # H1
210 register "i2c_voltage[1]" = "I2C_VOLTAGE_3V3"
Furquan Shaikhc3e4f632017-08-25 09:50:15 -0700211
212 # Camera
213 register "i2c_voltage[2]" = "I2C_VOLTAGE_1V8"
Furquan Shaikhc3e4f632017-08-25 09:50:15 -0700214
215 # Pen
216 register "i2c_voltage[3]" = "I2C_VOLTAGE_1V8"
217
218 # Camera
219 register "i2c_voltage[4]" = "I2C_VOLTAGE_1V8"
Furquan Shaikhc3e4f632017-08-25 09:50:15 -0700220
221 # Audio
222 register "i2c_voltage[5]" = "I2C_VOLTAGE_1V8"
Furquan Shaikh06cd9032016-12-14 12:10:21 -0800223
224 # Must leave UART0 enabled or SD/eMMC will not work as PCI
225 register "SerialIoDevMode" = "{
226 [PchSerialIoIndexI2C0] = PchSerialIoPci,
227 [PchSerialIoIndexI2C1] = PchSerialIoPci,
228 [PchSerialIoIndexI2C2] = PchSerialIoPci,
229 [PchSerialIoIndexI2C3] = PchSerialIoPci,
230 [PchSerialIoIndexI2C4] = PchSerialIoPci,
231 [PchSerialIoIndexI2C5] = PchSerialIoPci,
Furquan Shaikhbea9b472017-12-04 12:16:22 -0800232 [PchSerialIoIndexSpi0] = PchSerialIoDisabled,
Furquan Shaikh296c79c2017-06-09 18:41:39 -0700233 [PchSerialIoIndexSpi1] = PchSerialIoDisabled,
Angel Pons08564942021-06-04 18:55:03 +0200234 [PchSerialIoIndexUart0] = PchSerialIoSkipInit,
Furquan Shaikh06cd9032016-12-14 12:10:21 -0800235 [PchSerialIoIndexUart1] = PchSerialIoDisabled,
236 [PchSerialIoIndexUart2] = PchSerialIoSkipInit,
237 }"
238
Sumeet Pawnikarb4411d32017-08-10 18:55:12 +0530239 # PL2 override 15W for KBL-Y
Sumeet R Pawnikar97c54642020-05-10 01:24:11 +0530240 register "power_limits_config" = "{
241 .tdp_pl2_override = 15,
242 .psys_pmax = 45,
243 }"
Sumeet Pawnikard56fae12017-02-20 10:34:01 +0530244 register "tcc_offset" = "10" # TCC of 90C
Furquan Shaikh06cd9032016-12-14 12:10:21 -0800245
Furquan Shaikhd093e4a2017-01-13 17:27:36 -0800246 # Use default SD card detect GPIO configuration
Angel Pons6bd99f92021-02-20 00:16:47 +0100247 register "sdcard_cd_gpio" = "GPP_E15"
Furquan Shaikhd093e4a2017-01-13 17:27:36 -0800248
Furquan Shaikh06cd9032016-12-14 12:10:21 -0800249 device domain 0 on
Marvin Evers059476d2023-12-04 02:28:25 +0100250 device ref system_agent on end
251 device ref igpu on end
252 device ref sa_thermal on end
253 device ref imgu on end
254 device ref south_xhci on end
255 device ref south_xdci on end
256 device ref thermal on end
257 device ref cio on end
258 device ref i2c0 on
Furquan Shaikh13dae932017-01-12 02:06:47 -0800259 chip drivers/i2c/generic
Furquan Shaikh5677e7d2017-06-05 09:19:29 -0700260 register "hid" = ""ELAN0001""
261 register "desc" = ""ELAN Touchscreen""
Matt DeVillier1c2f5ce2019-11-28 01:45:11 -0600262 register "irq" = "ACPI_IRQ_LEVEL_LOW(GPP_E7_IRQ)"
Matt DeVillier86425c82022-03-28 23:45:14 -0500263 register "detect" = "1"
Furquan Shaikh5677e7d2017-06-05 09:19:29 -0700264 register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_E3)"
265 register "reset_delay_ms" = "20"
266 register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_C22)"
267 register "enable_delay_ms" = "1"
268 register "has_power_resource" = "1"
269 device i2c 10 on end
270 end
271 chip drivers/i2c/generic
Furquan Shaikh13dae932017-01-12 02:06:47 -0800272 register "hid" = ""ATML0001""
273 register "desc" = ""Atmel Touchscreen""
Furquan Shaikh61335082017-02-21 15:52:57 -0800274 register "irq" = "ACPI_IRQ_LEVEL_LOW(GPP_E7_IRQ)"
Matt DeVillier86425c82022-03-28 23:45:14 -0500275 register "detect" = "1"
Furquan Shaikh73108de2017-05-23 11:56:09 -0700276 register "has_power_resource" = "1"
Furquan Shaikh73108de2017-05-23 11:56:09 -0700277 register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_C22)"
278 register "enable_delay_ms" = "250"
Furquan Shaikh13dae932017-01-12 02:06:47 -0800279 device i2c 4b on end
280 end
Marvin Evers059476d2023-12-04 02:28:25 +0100281 end
282 device ref i2c1 on
Furquan Shaikh15815432017-05-23 22:46:52 -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 on
Furquan Shaikh5360c7e2017-02-19 01:18:09 -0800291 chip drivers/i2c/hid
292 register "generic.hid" = ""WCOM50C1""
293 register "generic.desc" = ""WCOM Digitizer""
Furquan Shaikh5b9b5932017-02-21 13:16:30 -0800294 register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_D1_IRQ)"
Furquan Shaikh2d12a902017-12-17 21:01:54 -0800295 register "generic.wake" = "GPE0_DW1_12"
Furquan Shaikhc57c48b2017-02-15 09:53:50 -0800296 register "hid_desc_reg_offset" = "0x1"
297 device i2c 0x9 on end
298 end
Nicolas Boichat3bfd7342018-03-14 15:46:15 +0800299 chip drivers/generic/gpio_keys
300 register "name" = ""PENH""
301 register "gpio" = "ACPI_GPIO_INPUT_ACTIVE_LOW(GPP_D8)"
302 register "key.dev_name" = ""EJCT""
303 register "key.linux_code" = "SW_PEN_INSERTED"
304 register "key.linux_input_type" = "EV_SW"
305 register "key.label" = ""pen_eject""
Furquan Shaikhfa8b75f2020-06-26 01:19:46 -0700306 register "key.wakeup_route" = "WAKEUP_ROUTE_DISABLED"
Nicolas Boichat3bfd7342018-03-14 15:46:15 +0800307 device generic 0 on end
308 end
Marvin Evers059476d2023-12-04 02:28:25 +0100309 end
310 device ref heci1 on end
311 device ref heci2 off end
312 device ref csme_ider off end
313 device ref csme_ktr off end
314 device ref heci3 off end
315 device ref sata off end
316 device ref uart2 on end
317 device ref i2c5 on
Rizwan Qureshi7ed1eff2017-01-13 22:22:42 +0530318 chip drivers/i2c/max98927
319 register "interleave_mode" = "1"
Harsha Priya130b4a22017-08-24 14:40:04 -0700320 register "vmon_slot_no" = "4"
321 register "imon_slot_no" = "5"
Rizwan Qureshi7ed1eff2017-01-13 22:22:42 +0530322 register "uid" = "0"
323 register "desc" = ""SSM4567 Right Speaker Amp""
324 register "name" = ""MAXR""
325 device i2c 39 on end
326 end
327 chip drivers/i2c/max98927
328 register "interleave_mode" = "1"
Harsha Priya130b4a22017-08-24 14:40:04 -0700329 register "vmon_slot_no" = "6"
330 register "imon_slot_no" = "7"
Rizwan Qureshi7ed1eff2017-01-13 22:22:42 +0530331 register "uid" = "1"
332 register "desc" = ""SSM4567 Left Speaker Amp""
333 register "name" = ""MAXL""
334 device i2c 3A on end
335 end
Rizwan Qureshia04ceaa2017-02-07 21:11:45 +0530336 chip drivers/i2c/generic
337 register "hid" = ""10EC5663""
338 register "name" = ""RT53""
339 register "desc" = ""Realtek RT5663""
Rizwan Qureshi6a1503e2017-03-16 13:19:22 +0530340 register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_BOTH(GPP_D9)"
Rizwan Qureshia04ceaa2017-02-07 21:11:45 +0530341 register "probed" = "1"
342 device i2c 13 on end
343 end
Marvin Evers059476d2023-12-04 02:28:25 +0100344 end
345 device ref i2c4 on end
346 device ref pcie_rp1 on
Furquan Shaikha266d1e2020-10-04 12:52:54 -0700347 chip drivers/wifi/generic
Furquan Shaikh5e9ba6e2017-12-18 01:17:08 -0800348 register "wake" = "GPE0_DW0_00"
Furquan Shaikh06cd9032016-12-14 12:10:21 -0800349 device pci 00.0 on end
350 end
Marvin Evers059476d2023-12-04 02:28:25 +0100351 end
352 device ref pcie_rp2 off end
353 device ref pcie_rp3 off end
354 device ref pcie_rp4 off end
355 device ref pcie_rp5 off end
356 device ref pcie_rp6 off end
357 device ref pcie_rp7 off end
358 device ref pcie_rp8 off end
359 device ref pcie_rp9 off end
360 device ref pcie_rp10 off end
361 device ref pcie_rp11 off end
362 device ref pcie_rp12 off end
363 device ref uart0 on end
364 device ref uart1 off end
365 device ref gspi0 off end
366 device ref gspi1 off end
367 device ref emmc on end
368 device ref sdio off end
369 device ref sdxc on end
370 device ref lpc_espi on
Furquan Shaikh06cd9032016-12-14 12:10:21 -0800371 chip ec/google/chromeec
372 device pnp 0c09.0 on end
373 end
Marvin Evers059476d2023-12-04 02:28:25 +0100374 end
375 device ref p2sb on end
376 device ref pmc on end
377 device ref hda on end
378 device ref smbus on end
379 device ref fast_spi on end
380 device ref gbe off end
Furquan Shaikh06cd9032016-12-14 12:10:21 -0800381 end
382end