1+ #include <config_definition.h>
2+ #include <gn22.h>
3+
4+ struct default_gpu_cfg gn22_gpu_cfg = {
5+ .descriptor = {
6+ .magic = {0x32 , 0xac , 0x00 , 0x00 },
7+ .length = sizeof (struct gpu_cfg_descriptor ),
8+ .descriptor_version_major = 0 ,
9+ .descriptor_version_minor = 2 ,
10+ .hardware_version = 0x0004 ,
11+ .hardware_revision = 0 ,
12+ .serial = {'F' , 'R' , 'A' , 'K' , 'M' , 'Q' , 'C' , 'P' , 'A' , '1' ,
13+ '5' , '0' , '0' , 'A' , 'S' , 'S' , 'Y' , '0' , '\0' , '\0' },
14+ .descriptor_length = sizeof (struct default_gpu_cfg ) - sizeof (struct gpu_cfg_descriptor ),
15+ .descriptor_crc32 = 0 ,
16+ .crc32 = 0
17+ },
18+ .hdr0 = {.block_type = GPUCFG_TYPE_PCIE , .block_length = sizeof (uint8_t )},
19+ .pcie_cfg = PCIE_8X1 ,
20+
21+ .hdr1 = {.block_type = GPUCFG_TYPE_FAN , .block_length = sizeof (struct gpu_cfg_fan )},
22+ .fan0_cfg = {.idx = 0 , .flags = 0 , .min_rpm = 1000 , .start_rpm = 1000 , .max_rpm = 4700 },
23+
24+ .hdr2 = {.block_type = GPUCFG_TYPE_FAN , .block_length = sizeof (struct gpu_cfg_fan )},
25+ .fan1_cfg = {.idx = 1 , .flags = 0 , .min_rpm = 1000 , .start_rpm = 1000 , .max_rpm = 4500 },
26+
27+ .hdr3 = {.block_type = GPUCFG_TYPE_VENDOR , .block_length = sizeof (enum gpu_vendor )},
28+ .vendor = GPU_NV_GN22 ,
29+
30+ .hdr4 = {.block_type = GPUCFG_TYPE_GPIO , .block_length = (sizeof (struct gpu_cfg_gpio ) * 8 )},
31+ /* Critical temperature fault input */
32+ .gpio0 = {.gpio = GPU_1G1_GPIO0_EC , .function = GPIO_FUNC_TEMPFAULT , .flags = GPIO_INPUT , .power_domain = POWER_S3 },
33+ /* DP HPD status from PD */
34+ .gpio1 = {.gpio = GPU_1H1_GPIO1_EC , .function = GPIO_FUNC_HPD , .flags = GPIO_INPUT , .power_domain = POWER_S5 },
35+ /* output from the GPU if it is throttling */
36+ .gpio2 = {.gpio = GPU_2A2_GPIO2_EC , .function = GPIO_FUNC_IS_THROTTLING , .flags = GPIO_INPUT , .power_domain = POWER_S0 },
37+ /* DDS Mux CTRL from dGPU */
38+ .gpio3 = {.gpio = GPU_2L7_GPIO3_EC , .function = GPIO_FUNC_UNUSED , .flags = GPIO_INPUT , .power_domain = POWER_S0 },
39+ /* GPU_VSYS_EN */
40+ .gpio_vsys = {.gpio = GPU_VSYS_EN , .function = GPIO_FUNC_GPU_PWR , .flags = GPIO_OUTPUT_LOW , .power_domain = POWER_S3 },
41+ /* GPU_VADP_EN */
42+ .gpu_vadp_en = {.gpio = GPU_VADP_EN , .function = GPIO_FUNC_HIGH , .flags = GPIO_OUTPUT_LOW , .power_domain = POWER_G3 },
43+
44+ .gpio_fan = {.gpio = GPU_FAN_EN , .function = GPIO_FUNC_HIGH , .flags = GPIO_OUTPUT_LOW , .power_domain = POWER_S0 },
45+
46+ .gpu_3v_5v_en = {.gpio = GPU_3V_5V_EN , .function = GPIO_FUNC_HIGH , .flags = GPIO_OUTPUT_LOW , .power_domain = POWER_G3 },
47+
48+ .hdr5 = {.block_type = GPUCFG_TYPE_PD , .block_length = sizeof (struct gpu_subsys_pd )},
49+ .pd = {.gpu_pd_type = PD_TYPE_CCG8S , .address = 0x42 ,
50+ .flags = 0 , .pdo = 0 , .rdo = 0 , .power_domain = POWER_G3 ,
51+ .gpio_hpd = GPU_1H1_GPIO1_EC , .gpio_interrupt = GPU_1F2_I2C_S5_INT
52+ },
53+
54+ .hdr6 = {.block_type = GPUCFG_TYPE_THERMAL_SENSOR , .block_length = sizeof (struct gpu_cfg_thermal )},
55+ .therm = {.thermal_type = GPU_THERM_F75303 , .address = 0x4D },
56+
57+ .hdr7 = {.block_type = GPUCFG_TYPE_CUSTOM_TEMP , .block_length = sizeof (struct gpu_cfg_custom_temp )},
58+ .custom_temp = {.idx = 2 , .temp_fan_off = C_TO_K (47 ), .temp_fan_max = C_TO_K (62 )},
59+
60+ .hdr8 = {.block_type = GPUCFG_TYPE_SUBSYS , .block_length = sizeof (struct gpu_subsys_serial )},
61+ .pcba_serial = {.gpu_subsys = GPU_PCB , .serial = {'F' , 'R' , 'A' , 'K' , 'H' , 'Z' , 'C' , 'P' , 'A' , '1' ,
62+ '5' , '0' , '0' , 'P' , 'C' , 'B' , '0' , '0' , '\0' , '\0' },}
63+ };
0 commit comments