14562236bSHarry Wentland /* 24562236bSHarry Wentland * Copyright 2012-15 Advanced Micro Devices, Inc. 34562236bSHarry Wentland * 44562236bSHarry Wentland * Permission is hereby granted, free of charge, to any person obtaining a 54562236bSHarry Wentland * copy of this software and associated documentation files (the "Software"), 64562236bSHarry Wentland * to deal in the Software without restriction, including without limitation 74562236bSHarry Wentland * the rights to use, copy, modify, merge, publish, distribute, sublicense, 84562236bSHarry Wentland * and/or sell copies of the Software, and to permit persons to whom the 94562236bSHarry Wentland * Software is furnished to do so, subject to the following conditions: 104562236bSHarry Wentland * 114562236bSHarry Wentland * The above copyright notice and this permission notice shall be included in 124562236bSHarry Wentland * all copies or substantial portions of the Software. 134562236bSHarry Wentland * 144562236bSHarry Wentland * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 154562236bSHarry Wentland * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 164562236bSHarry Wentland * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 174562236bSHarry Wentland * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR 184562236bSHarry Wentland * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 194562236bSHarry Wentland * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 204562236bSHarry Wentland * OTHER DEALINGS IN THE SOFTWARE. 214562236bSHarry Wentland * 224562236bSHarry Wentland * Authors: AMD 234562236bSHarry Wentland * 244562236bSHarry Wentland */ 254562236bSHarry Wentland 264562236bSHarry Wentland #ifndef __DAL_GRPH_OBJECT_CTRL_DEFS_H__ 274562236bSHarry Wentland #define __DAL_GRPH_OBJECT_CTRL_DEFS_H__ 284562236bSHarry Wentland 294562236bSHarry Wentland #include "grph_object_defs.h" 304562236bSHarry Wentland 314562236bSHarry Wentland /* 324562236bSHarry Wentland * ##################################################### 334562236bSHarry Wentland * ##################################################### 344562236bSHarry Wentland * 354562236bSHarry Wentland * These defines shared between asic_control/bios_parser and other 364562236bSHarry Wentland * DAL components 374562236bSHarry Wentland * 384562236bSHarry Wentland * ##################################################### 394562236bSHarry Wentland * ##################################################### 404562236bSHarry Wentland */ 414562236bSHarry Wentland 424562236bSHarry Wentland enum display_output_bit_depth { 434562236bSHarry Wentland PANEL_UNDEFINE = 0, 444562236bSHarry Wentland PANEL_6BIT_COLOR = 1, 454562236bSHarry Wentland PANEL_8BIT_COLOR = 2, 464562236bSHarry Wentland PANEL_10BIT_COLOR = 3, 474562236bSHarry Wentland PANEL_12BIT_COLOR = 4, 484562236bSHarry Wentland PANEL_16BIT_COLOR = 5, 494562236bSHarry Wentland }; 504562236bSHarry Wentland 514562236bSHarry Wentland 524562236bSHarry Wentland /* Device type as abstracted by ATOM BIOS */ 534562236bSHarry Wentland enum dal_device_type { 544562236bSHarry Wentland DEVICE_TYPE_UNKNOWN = 0, 554562236bSHarry Wentland DEVICE_TYPE_LCD, 564562236bSHarry Wentland DEVICE_TYPE_CRT, 574562236bSHarry Wentland DEVICE_TYPE_DFP, 584562236bSHarry Wentland DEVICE_TYPE_CV, 594562236bSHarry Wentland DEVICE_TYPE_TV, 604562236bSHarry Wentland DEVICE_TYPE_CF, 614562236bSHarry Wentland DEVICE_TYPE_WIRELESS 624562236bSHarry Wentland }; 634562236bSHarry Wentland 644562236bSHarry Wentland /* Device ID as abstracted by ATOM BIOS */ 654562236bSHarry Wentland struct device_id { 664562236bSHarry Wentland enum dal_device_type device_type:16; 674562236bSHarry Wentland uint32_t enum_id:16; /* 1 based enum */ 681e8635eaSZeyu Fan uint16_t raw_device_tag; 694562236bSHarry Wentland }; 704562236bSHarry Wentland 714562236bSHarry Wentland struct graphics_object_i2c_info { 724562236bSHarry Wentland struct gpio_info { 734562236bSHarry Wentland uint32_t clk_mask_register_index; 744562236bSHarry Wentland uint32_t clk_en_register_index; 754562236bSHarry Wentland uint32_t clk_y_register_index; 764562236bSHarry Wentland uint32_t clk_a_register_index; 774562236bSHarry Wentland uint32_t data_mask_register_index; 784562236bSHarry Wentland uint32_t data_en_register_index; 794562236bSHarry Wentland uint32_t data_y_register_index; 804562236bSHarry Wentland uint32_t data_a_register_index; 814562236bSHarry Wentland 824562236bSHarry Wentland uint32_t clk_mask_shift; 834562236bSHarry Wentland uint32_t clk_en_shift; 844562236bSHarry Wentland uint32_t clk_y_shift; 854562236bSHarry Wentland uint32_t clk_a_shift; 864562236bSHarry Wentland uint32_t data_mask_shift; 874562236bSHarry Wentland uint32_t data_en_shift; 884562236bSHarry Wentland uint32_t data_y_shift; 894562236bSHarry Wentland uint32_t data_a_shift; 904562236bSHarry Wentland } gpio_info; 914562236bSHarry Wentland 924562236bSHarry Wentland bool i2c_hw_assist; 934562236bSHarry Wentland uint32_t i2c_line; 944562236bSHarry Wentland uint32_t i2c_engine_id; 954562236bSHarry Wentland uint32_t i2c_slave_address; 964562236bSHarry Wentland }; 974562236bSHarry Wentland 984562236bSHarry Wentland struct graphics_object_hpd_info { 994562236bSHarry Wentland uint8_t hpd_int_gpio_uid; 1004562236bSHarry Wentland uint8_t hpd_active; 1014562236bSHarry Wentland }; 1024562236bSHarry Wentland 1034562236bSHarry Wentland struct connector_device_tag_info { 1044562236bSHarry Wentland uint32_t acpi_device; 1054562236bSHarry Wentland struct device_id dev_id; 1064562236bSHarry Wentland }; 1074562236bSHarry Wentland 1084562236bSHarry Wentland struct device_timing { 1094562236bSHarry Wentland struct misc_info { 1104562236bSHarry Wentland uint32_t HORIZONTAL_CUT_OFF:1; 1114562236bSHarry Wentland /* 0=Active High, 1=Active Low */ 1124562236bSHarry Wentland uint32_t H_SYNC_POLARITY:1; 1134562236bSHarry Wentland /* 0=Active High, 1=Active Low */ 1144562236bSHarry Wentland uint32_t V_SYNC_POLARITY:1; 1154562236bSHarry Wentland uint32_t VERTICAL_CUT_OFF:1; 1164562236bSHarry Wentland uint32_t H_REPLICATION_BY2:1; 1174562236bSHarry Wentland uint32_t V_REPLICATION_BY2:1; 1184562236bSHarry Wentland uint32_t COMPOSITE_SYNC:1; 1194562236bSHarry Wentland uint32_t INTERLACE:1; 1204562236bSHarry Wentland uint32_t DOUBLE_CLOCK:1; 1214562236bSHarry Wentland uint32_t RGB888:1; 1224562236bSHarry Wentland uint32_t GREY_LEVEL:2; 1234562236bSHarry Wentland uint32_t SPATIAL:1; 1244562236bSHarry Wentland uint32_t TEMPORAL:1; 1254562236bSHarry Wentland uint32_t API_ENABLED:1; 1264562236bSHarry Wentland } misc_info; 1274562236bSHarry Wentland 1284562236bSHarry Wentland uint32_t pixel_clk; /* in KHz */ 1294562236bSHarry Wentland uint32_t horizontal_addressable; 1304562236bSHarry Wentland uint32_t horizontal_blanking_time; 1314562236bSHarry Wentland uint32_t vertical_addressable; 1324562236bSHarry Wentland uint32_t vertical_blanking_time; 1334562236bSHarry Wentland uint32_t horizontal_sync_offset; 1344562236bSHarry Wentland uint32_t horizontal_sync_width; 1354562236bSHarry Wentland uint32_t vertical_sync_offset; 1364562236bSHarry Wentland uint32_t vertical_sync_width; 1374562236bSHarry Wentland uint32_t horizontal_border; 1384562236bSHarry Wentland uint32_t vertical_border; 1394562236bSHarry Wentland }; 1404562236bSHarry Wentland 1414562236bSHarry Wentland struct supported_refresh_rate { 1424562236bSHarry Wentland uint32_t REFRESH_RATE_30HZ:1; 1434562236bSHarry Wentland uint32_t REFRESH_RATE_40HZ:1; 1444562236bSHarry Wentland uint32_t REFRESH_RATE_48HZ:1; 1454562236bSHarry Wentland uint32_t REFRESH_RATE_50HZ:1; 1464562236bSHarry Wentland uint32_t REFRESH_RATE_60HZ:1; 1474562236bSHarry Wentland }; 1484562236bSHarry Wentland 1494562236bSHarry Wentland struct embedded_panel_info { 1504562236bSHarry Wentland struct device_timing lcd_timing; 1514562236bSHarry Wentland uint32_t ss_id; 1524562236bSHarry Wentland struct supported_refresh_rate supported_rr; 1534562236bSHarry Wentland uint32_t drr_enabled; 1544562236bSHarry Wentland uint32_t min_drr_refresh_rate; 1554562236bSHarry Wentland bool realtek_eDPToLVDS; 1564562236bSHarry Wentland }; 1574562236bSHarry Wentland 1581515a47bSHarry Wentland struct dc_firmware_info { 1594562236bSHarry Wentland struct pll_info { 1604562236bSHarry Wentland uint32_t crystal_frequency; /* in KHz */ 1614562236bSHarry Wentland uint32_t min_input_pxl_clk_pll_frequency; /* in KHz */ 1624562236bSHarry Wentland uint32_t max_input_pxl_clk_pll_frequency; /* in KHz */ 1634562236bSHarry Wentland uint32_t min_output_pxl_clk_pll_frequency; /* in KHz */ 1644562236bSHarry Wentland uint32_t max_output_pxl_clk_pll_frequency; /* in KHz */ 1654562236bSHarry Wentland } pll_info; 1664562236bSHarry Wentland 1674562236bSHarry Wentland struct firmware_feature { 1684562236bSHarry Wentland uint32_t memory_clk_ss_percentage; 1694562236bSHarry Wentland uint32_t engine_clk_ss_percentage; 1704562236bSHarry Wentland } feature; 1714562236bSHarry Wentland 1724562236bSHarry Wentland uint32_t default_display_engine_pll_frequency; /* in KHz */ 1734562236bSHarry Wentland uint32_t external_clock_source_frequency_for_dp; /* in KHz */ 1744562236bSHarry Wentland uint32_t smu_gpu_pll_output_freq; /* in KHz */ 1754562236bSHarry Wentland uint8_t min_allowed_bl_level; 1764562236bSHarry Wentland uint8_t remote_display_config; 1774562236bSHarry Wentland uint32_t default_memory_clk; /* in KHz */ 1784562236bSHarry Wentland uint32_t default_engine_clk; /* in KHz */ 1794562236bSHarry Wentland uint32_t dp_phy_ref_clk; /* in KHz - DCE12 only */ 1804562236bSHarry Wentland uint32_t i2c_engine_ref_clk; /* in KHz - DCE12 only */ 181d9a07577SJun Lei bool oem_i2c_present; 182d9a07577SJun Lei uint8_t oem_i2c_obj_id; 1834562236bSHarry Wentland 1844562236bSHarry Wentland }; 1854562236bSHarry Wentland 186d31bdabbSAlvin Lee struct dc_vram_info { 187d31bdabbSAlvin Lee unsigned int num_chans; 188d31bdabbSAlvin Lee unsigned int dram_channel_width_bytes; 189d31bdabbSAlvin Lee }; 190d31bdabbSAlvin Lee 1914562236bSHarry Wentland struct step_and_delay_info { 1924562236bSHarry Wentland uint32_t step; 1934562236bSHarry Wentland uint32_t delay; 1944562236bSHarry Wentland uint32_t recommended_ref_div; 1954562236bSHarry Wentland }; 1964562236bSHarry Wentland 1974562236bSHarry Wentland struct spread_spectrum_info { 1984562236bSHarry Wentland struct spread_spectrum_type { 1994562236bSHarry Wentland bool CENTER_MODE:1; 2004562236bSHarry Wentland bool EXTERNAL:1; 2014562236bSHarry Wentland bool STEP_AND_DELAY_INFO:1; 2024562236bSHarry Wentland } type; 2034562236bSHarry Wentland 2044562236bSHarry Wentland /* in unit of 0.01% (spreadPercentageDivider = 100), 2054562236bSHarry Wentland otherwise in 0.001% units (spreadPercentageDivider = 1000); */ 2064562236bSHarry Wentland uint32_t spread_spectrum_percentage; 2074562236bSHarry Wentland uint32_t spread_percentage_divider; /* 100 or 1000 */ 2084562236bSHarry Wentland uint32_t spread_spectrum_range; /* modulation freq (HZ)*/ 2094562236bSHarry Wentland 2104562236bSHarry Wentland union { 2114562236bSHarry Wentland struct step_and_delay_info step_and_delay_info; 2124562236bSHarry Wentland /* For mem/engine/uvd, Clock Out frequence (VCO ), 2134562236bSHarry Wentland in unit of kHz. For TMDS/HDMI/LVDS, it is pixel clock, 2144562236bSHarry Wentland for DP, it is link clock ( 270000 or 162000 ) */ 2154562236bSHarry Wentland uint32_t target_clock_range; /* in KHz */ 2164562236bSHarry Wentland }; 2174562236bSHarry Wentland 2184562236bSHarry Wentland }; 2194562236bSHarry Wentland 2204562236bSHarry Wentland struct graphics_object_encoder_cap_info { 2214562236bSHarry Wentland uint32_t dp_hbr2_cap:1; 2224562236bSHarry Wentland uint32_t dp_hbr2_validated:1; 2234562236bSHarry Wentland /* 2244562236bSHarry Wentland * TODO: added MST and HDMI 6G capable flags 2254562236bSHarry Wentland */ 2264562236bSHarry Wentland uint32_t reserved:15; 2274562236bSHarry Wentland }; 2284562236bSHarry Wentland 2294562236bSHarry Wentland struct din_connector_info { 2304562236bSHarry Wentland uint32_t gpio_id; 2314562236bSHarry Wentland bool gpio_tv_active_state; 2324562236bSHarry Wentland }; 2334562236bSHarry Wentland 2344562236bSHarry Wentland /* Invalid channel mapping */ 2354562236bSHarry Wentland enum { INVALID_DDI_CHANNEL_MAPPING = 0x0 }; 2364562236bSHarry Wentland 2374562236bSHarry Wentland /** 2384562236bSHarry Wentland * DDI PHY channel mapping reflecting XBAR setting 2394562236bSHarry Wentland */ 2404562236bSHarry Wentland union ddi_channel_mapping { 2414562236bSHarry Wentland struct mapping { 2424562236bSHarry Wentland uint8_t lane0:2; /* Mapping for lane 0 */ 2434562236bSHarry Wentland uint8_t lane1:2; /* Mapping for lane 1 */ 2444562236bSHarry Wentland uint8_t lane2:2; /* Mapping for lane 2 */ 2454562236bSHarry Wentland uint8_t lane3:2; /* Mapping for lane 3 */ 2464562236bSHarry Wentland } mapping; 2474562236bSHarry Wentland uint8_t raw; 2484562236bSHarry Wentland }; 2494562236bSHarry Wentland 2504562236bSHarry Wentland /** 2514562236bSHarry Wentland * Transmitter output configuration description 2524562236bSHarry Wentland */ 2534562236bSHarry Wentland struct transmitter_configuration_info { 2544562236bSHarry Wentland /* DDI PHY ID for the transmitter */ 2554562236bSHarry Wentland enum transmitter transmitter_phy_id; 2564562236bSHarry Wentland /* DDI PHY channel mapping reflecting crossbar setting */ 2574562236bSHarry Wentland union ddi_channel_mapping output_channel_mapping; 2584562236bSHarry Wentland }; 2594562236bSHarry Wentland 2604562236bSHarry Wentland struct transmitter_configuration { 2614562236bSHarry Wentland /* Configuration for the primary transmitter */ 2624562236bSHarry Wentland struct transmitter_configuration_info primary_transmitter_config; 2634562236bSHarry Wentland /* Secondary transmitter configuration for Dual-link DVI */ 2644562236bSHarry Wentland struct transmitter_configuration_info secondary_transmitter_config; 2654562236bSHarry Wentland }; 2664562236bSHarry Wentland 2674562236bSHarry Wentland /* These size should be sufficient to store info coming from BIOS */ 2684562236bSHarry Wentland #define NUMBER_OF_UCHAR_FOR_GUID 16 2694562236bSHarry Wentland #define MAX_NUMBER_OF_EXT_DISPLAY_PATH 7 2704562236bSHarry Wentland #define NUMBER_OF_CSR_M3_ARB 10 2714562236bSHarry Wentland #define NUMBER_OF_DISP_CLK_VOLTAGE 4 2724562236bSHarry Wentland #define NUMBER_OF_AVAILABLE_SCLK 5 2734562236bSHarry Wentland 2741e8635eaSZeyu Fan struct i2c_reg_info { 2751e8635eaSZeyu Fan unsigned char i2c_reg_index; 2761e8635eaSZeyu Fan unsigned char i2c_reg_val; 2771e8635eaSZeyu Fan }; 2781e8635eaSZeyu Fan 2791e8635eaSZeyu Fan struct ext_hdmi_settings { 2801e8635eaSZeyu Fan unsigned char slv_addr; 2811e8635eaSZeyu Fan unsigned char reg_num; 2821e8635eaSZeyu Fan struct i2c_reg_info reg_settings[9]; 2831e8635eaSZeyu Fan unsigned char reg_num_6g; 2841e8635eaSZeyu Fan struct i2c_reg_info reg_settings_6g[3]; 2851e8635eaSZeyu Fan }; 2861e8635eaSZeyu Fan 2873a83e4e6SRoman Li struct edp_info { 2883a83e4e6SRoman Li uint16_t edp_backlight_pwm_hz; 2893a83e4e6SRoman Li uint16_t edp_ss_percentage; 2903a83e4e6SRoman Li uint16_t edp_ss_rate_10hz; 2913a83e4e6SRoman Li uint8_t edp_pwr_on_off_delay; 2923a83e4e6SRoman Li uint8_t edp_pwr_on_vary_bl_to_blon; 2933a83e4e6SRoman Li uint8_t edp_pwr_down_bloff_to_vary_bloff; 2943a83e4e6SRoman Li uint8_t edp_panel_bpc; 2953a83e4e6SRoman Li uint8_t edp_bootup_bl_level; 2963a83e4e6SRoman Li }; 2971e8635eaSZeyu Fan 2984562236bSHarry Wentland /* V6 */ 2994562236bSHarry Wentland struct integrated_info { 3004562236bSHarry Wentland struct clock_voltage_caps { 3014562236bSHarry Wentland /* The Voltage Index indicated by FUSE, same voltage index 3024562236bSHarry Wentland shared with SCLK DPM fuse table */ 3034562236bSHarry Wentland uint32_t voltage_index; 3044562236bSHarry Wentland /* Maximum clock supported with specified voltage index */ 3054562236bSHarry Wentland uint32_t max_supported_clk; /* in KHz */ 3064562236bSHarry Wentland } disp_clk_voltage[NUMBER_OF_DISP_CLK_VOLTAGE]; 3074562236bSHarry Wentland 3084562236bSHarry Wentland struct display_connection_info { 3094562236bSHarry Wentland struct external_display_path { 3104562236bSHarry Wentland /* A bit vector to show what devices are supported */ 3114562236bSHarry Wentland uint32_t device_tag; 3124562236bSHarry Wentland /* 16bit device ACPI id. */ 3134562236bSHarry Wentland uint32_t device_acpi_enum; 3144562236bSHarry Wentland /* A physical connector for displays to plug in, 3154562236bSHarry Wentland using object connector definitions */ 3164562236bSHarry Wentland struct graphics_object_id device_connector_id; 3174562236bSHarry Wentland /* An index into external AUX/DDC channel LUT */ 3184562236bSHarry Wentland uint8_t ext_aux_ddc_lut_index; 3194562236bSHarry Wentland /* An index into external HPD pin LUT */ 3204562236bSHarry Wentland uint8_t ext_hpd_pin_lut_index; 3214562236bSHarry Wentland /* external encoder object id */ 3224562236bSHarry Wentland struct graphics_object_id ext_encoder_obj_id; 3234562236bSHarry Wentland /* XBAR mapping of the PHY channels */ 3244562236bSHarry Wentland union ddi_channel_mapping channel_mapping; 3251e8635eaSZeyu Fan 3261e8635eaSZeyu Fan unsigned short caps; 3274562236bSHarry Wentland } path[MAX_NUMBER_OF_EXT_DISPLAY_PATH]; 3284562236bSHarry Wentland 3294562236bSHarry Wentland uint8_t gu_id[NUMBER_OF_UCHAR_FOR_GUID]; 3304562236bSHarry Wentland uint8_t checksum; 33154fe00beSGeorge Shen uint8_t fixdpvoltageswing; 3324562236bSHarry Wentland } ext_disp_conn_info; /* exiting long long time */ 3334562236bSHarry Wentland 3344562236bSHarry Wentland struct available_s_clk_list { 3354562236bSHarry Wentland /* Maximum clock supported with specified voltage index */ 3364562236bSHarry Wentland uint32_t supported_s_clk; /* in KHz */ 3374562236bSHarry Wentland /* The Voltage Index indicated by FUSE for specified SCLK */ 3384562236bSHarry Wentland uint32_t voltage_index; 3394562236bSHarry Wentland /* The Voltage ID indicated by FUSE for specified SCLK */ 3404562236bSHarry Wentland uint32_t voltage_id; 3414562236bSHarry Wentland } avail_s_clk[NUMBER_OF_AVAILABLE_SCLK]; 3424562236bSHarry Wentland 3434562236bSHarry Wentland uint8_t memory_type; 3444562236bSHarry Wentland uint8_t ma_channel_number; 3454562236bSHarry Wentland uint32_t boot_up_engine_clock; /* in KHz */ 3464562236bSHarry Wentland uint32_t dentist_vco_freq; /* in KHz */ 3474562236bSHarry Wentland uint32_t boot_up_uma_clock; /* in KHz */ 3484562236bSHarry Wentland uint32_t boot_up_req_display_vector; 3494562236bSHarry Wentland uint32_t other_display_misc; 3504562236bSHarry Wentland uint32_t gpu_cap_info; 3514562236bSHarry Wentland uint32_t sb_mmio_base_addr; 3524562236bSHarry Wentland uint32_t system_config; 3534562236bSHarry Wentland uint32_t cpu_cap_info; 3544562236bSHarry Wentland uint32_t max_nb_voltage; 3554562236bSHarry Wentland uint32_t min_nb_voltage; 3564562236bSHarry Wentland uint32_t boot_up_nb_voltage; 3574562236bSHarry Wentland uint32_t ext_disp_conn_info_offset; 3584562236bSHarry Wentland uint32_t csr_m3_arb_cntl_default[NUMBER_OF_CSR_M3_ARB]; 3594562236bSHarry Wentland uint32_t csr_m3_arb_cntl_uvd[NUMBER_OF_CSR_M3_ARB]; 3604562236bSHarry Wentland uint32_t csr_m3_arb_cntl_fs3d[NUMBER_OF_CSR_M3_ARB]; 3614562236bSHarry Wentland uint32_t gmc_restore_reset_time; 3624562236bSHarry Wentland uint32_t minimum_n_clk; 3634562236bSHarry Wentland uint32_t idle_n_clk; 3644562236bSHarry Wentland uint32_t ddr_dll_power_up_time; 3654562236bSHarry Wentland uint32_t ddr_pll_power_up_time; 3664562236bSHarry Wentland /* start for V6 */ 3674562236bSHarry Wentland uint32_t pcie_clk_ss_type; 3684562236bSHarry Wentland uint32_t lvds_ss_percentage; 3694562236bSHarry Wentland uint32_t lvds_sspread_rate_in_10hz; 3704562236bSHarry Wentland uint32_t hdmi_ss_percentage; 3714562236bSHarry Wentland uint32_t hdmi_sspread_rate_in_10hz; 3724562236bSHarry Wentland uint32_t dvi_ss_percentage; 3734562236bSHarry Wentland uint32_t dvi_sspread_rate_in_10_hz; 3744562236bSHarry Wentland uint32_t sclk_dpm_boost_margin; 3754562236bSHarry Wentland uint32_t sclk_dpm_throttle_margin; 3764562236bSHarry Wentland uint32_t sclk_dpm_tdp_limit_pg; 3774562236bSHarry Wentland uint32_t sclk_dpm_tdp_limit_boost; 3784562236bSHarry Wentland uint32_t boost_engine_clock; 3794562236bSHarry Wentland uint32_t boost_vid_2bit; 3804562236bSHarry Wentland uint32_t enable_boost; 3814562236bSHarry Wentland uint32_t gnb_tdp_limit; 3824562236bSHarry Wentland /* Start from V7 */ 3834562236bSHarry Wentland uint32_t max_lvds_pclk_freq_in_single_link; 3844562236bSHarry Wentland uint32_t lvds_misc; 3854562236bSHarry Wentland uint32_t lvds_pwr_on_seq_dig_on_to_de_in_4ms; 3864562236bSHarry Wentland uint32_t lvds_pwr_on_seq_de_to_vary_bl_in_4ms; 3874562236bSHarry Wentland uint32_t lvds_pwr_off_seq_vary_bl_to_de_in4ms; 3884562236bSHarry Wentland uint32_t lvds_pwr_off_seq_de_to_dig_on_in4ms; 3894562236bSHarry Wentland uint32_t lvds_off_to_on_delay_in_4ms; 3904562236bSHarry Wentland uint32_t lvds_pwr_on_seq_vary_bl_to_blon_in_4ms; 3914562236bSHarry Wentland uint32_t lvds_pwr_off_seq_blon_to_vary_bl_in_4ms; 3924562236bSHarry Wentland uint32_t lvds_reserved1; 3934562236bSHarry Wentland uint32_t lvds_bit_depth_control_val; 3941e8635eaSZeyu Fan //Start from V9 3951e8635eaSZeyu Fan unsigned char dp0_ext_hdmi_slv_addr; 3961e8635eaSZeyu Fan unsigned char dp0_ext_hdmi_reg_num; 3971e8635eaSZeyu Fan struct i2c_reg_info dp0_ext_hdmi_reg_settings[9]; 3981e8635eaSZeyu Fan unsigned char dp0_ext_hdmi_6g_reg_num; 3991e8635eaSZeyu Fan struct i2c_reg_info dp0_ext_hdmi_6g_reg_settings[3]; 4001e8635eaSZeyu Fan unsigned char dp1_ext_hdmi_slv_addr; 4011e8635eaSZeyu Fan unsigned char dp1_ext_hdmi_reg_num; 4021e8635eaSZeyu Fan struct i2c_reg_info dp1_ext_hdmi_reg_settings[9]; 4031e8635eaSZeyu Fan unsigned char dp1_ext_hdmi_6g_reg_num; 4041e8635eaSZeyu Fan struct i2c_reg_info dp1_ext_hdmi_6g_reg_settings[3]; 4051e8635eaSZeyu Fan unsigned char dp2_ext_hdmi_slv_addr; 4061e8635eaSZeyu Fan unsigned char dp2_ext_hdmi_reg_num; 4071e8635eaSZeyu Fan struct i2c_reg_info dp2_ext_hdmi_reg_settings[9]; 4081e8635eaSZeyu Fan unsigned char dp2_ext_hdmi_6g_reg_num; 4091e8635eaSZeyu Fan struct i2c_reg_info dp2_ext_hdmi_6g_reg_settings[3]; 4101e8635eaSZeyu Fan unsigned char dp3_ext_hdmi_slv_addr; 4111e8635eaSZeyu Fan unsigned char dp3_ext_hdmi_reg_num; 4121e8635eaSZeyu Fan struct i2c_reg_info dp3_ext_hdmi_reg_settings[9]; 4131e8635eaSZeyu Fan unsigned char dp3_ext_hdmi_6g_reg_num; 4141e8635eaSZeyu Fan struct i2c_reg_info dp3_ext_hdmi_6g_reg_settings[3]; 415ad830e7aSDmytro Laktyushkin /* V11 */ 416ad830e7aSDmytro Laktyushkin uint32_t dp_ss_control; 4173a83e4e6SRoman Li /* V2.1 */ 4183a83e4e6SRoman Li struct edp_info edp1_info; 4193a83e4e6SRoman Li struct edp_info edp2_info; 420*51e7b646SCharlene Liu uint32_t gpuclk_ss_percentage; 421*51e7b646SCharlene Liu uint32_t gpuclk_ss_type; 4224562236bSHarry Wentland }; 4234562236bSHarry Wentland 4244562236bSHarry Wentland /* 4254562236bSHarry Wentland * DFS-bypass flag 4264562236bSHarry Wentland */ 4274562236bSHarry Wentland /* Copy of SYS_INFO_GPUCAPS__ENABEL_DFS_BYPASS from atombios.h */ 4284562236bSHarry Wentland enum { 4294562236bSHarry Wentland DFS_BYPASS_ENABLE = 0x10 4304562236bSHarry Wentland }; 4314562236bSHarry Wentland 4324562236bSHarry Wentland enum { 4334562236bSHarry Wentland INVALID_BACKLIGHT = -1 4344562236bSHarry Wentland }; 4354562236bSHarry Wentland 4364562236bSHarry Wentland struct panel_backlight_boundaries { 4374562236bSHarry Wentland uint32_t min_signal_level; 4384562236bSHarry Wentland uint32_t max_signal_level; 4394562236bSHarry Wentland }; 4404562236bSHarry Wentland 4414562236bSHarry Wentland 4424562236bSHarry Wentland #endif 443