/******************************************************************************* * * File: S20_demo.c * Description: 系统测试文件 * Version: V0.1 * Date: 2020-02-22 * Author: Tempest *******************************************************************************/ #include "ap_demo.h" #include "ArmCM0.h" #include "tau_device_datatype.h" #include "tau_log.h" #include "tau_operations.h" #include "tau_common.h" #include "tau_delay.h" #include "hal_dsi_rx_ctrl.h" #include "hal_dsi_tx_ctrl.h" #include "hal_swire.h" #include "hal_timer.h" #include "hal_system.h" #include "hal_gpio.h" #include "app_tp_st_touch.h" #include "app_tp_transfer.h" #ifdef LOG_TAG #undef LOG_TAG #endif #define LOG_TAG "Mi10P_NT37800" /********************基本参数配置*********************/ //S8 MIPI数据信息 /* 输入分辨率 */ #define INPUT_WIDTH 1080 #define INPUT_HEIGHT 2340 /* 输入 MIPI lane rate,video mode需要正确配置,cmd mode可随便配置 */ #define INPUT_MIPI_LANE_RATE 898000000 //898000000 /* 输入图像格式 */ #define INPUT_COLOR_MODE DSI_RGB888 /* 输出数据格式(DSI_DATA_CMD_MODE , DSI_DATA_VIDEO_MODE) */ #define INPUT_DATA_MODE DSI_DATA_CMD_MODE /* 输入mipi lane数量(DSI_RX_LANE_x x为1-4) */ #define INPUT_MIPI_LANE_NUM DSI_LANE_4 /* 输入为video mode 时数据格式 */ #define INPUT_VIDEO_MODEL DSI_BURST_MODE /* 输入虚拟通道(0-3) */ #define INPUT_VC DSI_VC_0 /* 输入的帧率(60/90/120/144Hz) */ #define INPUT_FRAME_RATE DSI_FRAME_RATE_60HZ /* 输入数据是否DSC压缩 */ #define INPUT_COMPRESS true #if AMOLED_NT37800_HX667 //almoled NT37701输出MIPI数据信息 /* 输出分辨率配置 */ #define OUTPUT_WIDTH 1080 #define OUTPUT_HEIGHT 2340 /* 输出虚拟通道(0-3) */ #define OUTPUT_VC DSI_VC_0 /* 输出mipi lane数量(DSI_RX_LANE_x x为1-4) */ #define OUTPUT_LANE_NUMBER DSI_LANE_4 /* 输出为video mode 的数据格式 */ #define OUTPUT_VIDEO_MODEL DSI_BURST_MODE /* 输出 VSA */ #define OUTPUT_VSA 4 // 4 /* 输出 VBP */ #define OUTPUT_VBP 12 // 12 /* 输出 VBP */ #define OUTPUT_VFP 16 // 16 /* 输出 VSA */ #define OUTPUT_HSA 4 // 4 /* 输出 HBP */ #define OUTPUT_HBP 32 // 32 /* 输出 HFP */ #define OUTPUT_HFP 62 // 62 /* lane rate适配系数 */ #define _CMD_TYPE DSI_CMD_TX_LP //0-HS,1-LP; #endif #if 0//AMOLED_NT37701_VNOX667 //almoled NT37701输出MIPI数据信息 /* 输出分辨率配置 */ #define OUTPUT_WIDTH 1080 #define OUTPUT_HEIGHT 2400 /* 输出虚拟通道(0-3) */ #define OUTPUT_VC DSI_VC_0 /* 输出mipi lane数量(DSI_RX_LANE_x x为1-4) */ #define OUTPUT_LANE_NUMBER DSI_LANE_4 /* 输出为video mode 的数据格式 */ #define OUTPUT_VIDEO_MODEL DSI_BURST_MODE /* 输出 VSA */ #define OUTPUT_VSA 4 /* 输出 VBP */ #define OUTPUT_VBP 8 /* 输出 VBP */ #define OUTPUT_VFP 72 /* 输出 VSA */ #define OUTPUT_HSA 8 /* 输出 HBP */ #define OUTPUT_HBP 92 /* 输出 HFP */ #define OUTPUT_HFP 100 /* lane rate适配系数 */ #define _CMD_TYPE DSI_CMD_TX_LP //0-HS,1-LP; #endif #if 0//LCD_FT8719_DU48 //TFT_FT8719输出MIPI数据信息 /* 输出分辨率配置 */ #define OUTPUT_WIDTH 1080 #define OUTPUT_HEIGHT 2340 /* 输出虚拟通道(0-3) */ #define OUTPUT_VC DSI_VC_0 /* 输出mipi lane数量(DSI_RX_LANE_x x为1-4) */ #define OUTPUT_LANE_NUMBER DSI_LANE_4 /* 输出为video mode 的数据格式 */ #define OUTPUT_VIDEO_MODEL DSI_BURST_MODE /* 输出 VSA */ #define OUTPUT_VSA 8 /* 输出 VBP */ #define OUTPUT_VBP 8 /* 输出 VBP */ #define OUTPUT_VFP 172 /* 输出 VSA */ #define OUTPUT_HSA 8 /* 输出 HBP */ #define OUTPUT_HBP 92 /* 输出 HFP */ #define OUTPUT_HFP 100 /* 初始化模式命令传输类型 */ #define _CMD_TYPE DSI_CMD_TX_LP //0-HS,1-LP; #endif #if 0//LCD_HX83112A /* 输出分辨率配置 */ #define OUTPUT_WIDTH 1080 #define OUTPUT_HEIGHT 2160 /* 输出虚拟通道(0-3) */ #define OUTPUT_VC DSI_VC_0 /* 输出mipi lane数量(DSI_RX_LANE_x x为1-4) */ #define OUTPUT_LANE_NUMBER DSI_LANE_4 /* 输出为video mode 的数据格式 */ #define OUTPUT_VIDEO_MODEL DSI_BURST_MODE /* 输出 VSA */ #define OUTPUT_VSA 4 /* 输出 VBP */ #define OUTPUT_VBP 10 /* 输出 VBP */ #define OUTPUT_VFP 15 /* 输出 VSA */ #define OUTPUT_HSA 12 /* 输出 HBP */ #define OUTPUT_HBP 22 /* 输出 HFP */ #define OUTPUT_HFP 16 /* 初始化模式命令传输类型 */ #define _CMD_TYPE DSI_CMD_TX_LP //0-HS,1-LP; #endif #define SWIRE_TIMER TIMER_NUM1 #define TE_TIMER TIMER_NUM2 #ifdef USE_FOR_SUMSUNG_S20 #define ENABLE_TP_WAKE_UP true #define SWIRE_MAX_NUM 24 #else #define SWIRE_MAX_NUM 20 #endif #if ENABLE_TP_WAKE_UP #define POWER_IO_A IO_PAD_TD_LEDPWM /* 对应IO需要下拉电阻 */ #define POWER_IO_B IO_PAD_TD_SPIM_MISO /* 对应IO需要上拉电阻 */ #endif //#define DISPLAY_ONLY #define CUS_SCLD_FILTER true #define NEW_ACK_CMD_FUNC true #define RX_filter_20220701 false #define ADD_TP_CALIBRATION true #define ADD_RUN_TEST false //测试应用是否死机 /******************************************************/ static hal_dsi_rx_ctrl_handle_t *g_rx_ctrl_handle = NULL; static hal_dsi_tx_ctrl_handle_t *g_tx_ctrl_handle = NULL; #ifdef USE_FOR_SUMSUNG_S20 //S20 SWIRE=50->ELVSS=-1.7V #define SWIRE_DEFAULT_NUM 50 #else #define SWIRE_DEFAULT_NUM 38 #endif static uint8_t swire_num=SWIRE_DEFAULT_NUM; static uint8_t swire_num_bak=SWIRE_DEFAULT_NUM; static uint8_t g_swire_num = 28; static bool g_mipi_path_off = false; /* 默认false,初始化屏标志位,屏端使用TP1.8V,AC 初始化屏需要等TP1.8V有电 */ static volatile bool start_display_on = true; static volatile bool g_exit_sleep_mode = false; #if ENABLE_TP_WAKE_UP static bool g_need_enter_sleep_mode = false; #endif /* 屏初始化完成标志位 */ static bool panel_display_done = false; //static bool g_panel_init_done = false; static volatile bool g_resolution_change = false; static volatile bool g_reg51_value_1b8_flag = false; static void swire_init(void); static void soft_te_timer_init(); static void tx_display_on(void); static void soft_swire_init(void); //extern uint8_t Flag_blacklight_EN; extern uint8_t tp_sleep_in; extern uint8_t tp_sleep_count; #ifdef USE_FOR_MI10_PRO uint8_t phone_DoubleDlick_flag=0; uint8_t phone_86_flag=0; uint8_t phone_A6_flag=0; uint8_t phone_start_flag=0; uint16_t phone_DisplayOFF_count=0; uint8_t phone_DisplayOFF_flag=0; #endif #if ADD_TP_CALIBRATION static volatile bool g_calibration_flag = false; #endif #if ADD_RUN_TEST static volatile uint32_t g_run_test_cnt = 0; #endif typedef struct { uint8_t finger_status; // uint8_t finger_time_start; uint16_t finger_time_counter; // uint16_t light_value_last; }config_finger_calibration; config_finger_calibration s_finger_calibration; uint32_t s_heartbeat = 0; void finger_calibration_init(void) { s_finger_calibration.finger_status = false; s_finger_calibration.finger_time_start = false; s_finger_calibration.finger_time_counter = false; s_finger_calibration.light_value_last = false; } void finger_calibration_time_counter_exec(void) { if(s_finger_calibration.finger_time_start == true) // 开始计时 { s_finger_calibration.finger_time_counter++; if(s_finger_calibration.finger_time_counter>=1000) // 1000ms { s_finger_calibration.finger_time_start = false; s_finger_calibration.finger_time_counter = 0; s_finger_calibration.finger_status = false; // 超时 取消指纹模式 // TAU_LOGD("finger"); } delayUs(100); } } #if ENABLE_TP_WAKE_UP static void ap_reset_cb(void *data) { /* 切换电源 */ // hal_gpio_set_output_data_ex(POWER_IO_B, IO_LVL_HIGH, POWER_IO_A, IO_LVL_LOW); hal_gpio_init_output(IO_PAD_TD_LEDPWM, IO_LVL_LOW); /* 打开VCC供电 */ TAU_LOGD("disable reset!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); hal_system_set_pvd(true); hal_system_set_vcc(true); NVIC_SystemReset(); } #endif #if CUS_SCLD_FILTER static uint32_t rx_filter_1080_h_4_86[32][2] = { 0x0889B622, 0x0000000F, 0xF0A9BA1B, 0x0000000E, 0xD8C9BC15, 0x0000000E, 0xC8EDBC0E, 0x0000000E, 0xB10DBE08, 0x0000000E, 0xA131BE01, 0x0000000E, 0x9155BDFB, 0x0000000E, 0x817DB9F5, 0x0000000E, 0x79A1B3F0, 0x0000000E, 0x69C5B1EA, 0x0000000E, 0x69EDA5E6, 0x0000000E, 0x62119FE1, 0x0000000E, 0x623595DD, 0x0000000E, 0x6A5989D9, 0x0000000E, 0x727D7BD6, 0x0000000E, 0x7A9D6FD3, 0x0000000E, 0x8ABD5FD1, 0x0000000E, 0x9ADD4FCF, 0x0000000E, 0xB2F53FCE, 0x0000000E, 0xCB112DCD, 0x0000000E, 0xEB291BCC, 0x0000000E, 0x0B3D09CC, 0x0000000F, 0x3348F7CD, 0x0000000F, 0x5360E3CD, 0x0000000F, 0x8364D1CF, 0x0000000F, 0xAB70BFD0, 0x0000000F, 0xDB78ABD2, 0x0000000F, 0x0B7C99D4, 0x00000000, 0x437C87D6, 0x00000000, 0x737877D9, 0x00000000, 0xAB7865DB, 0x00000000, 0xDB7455DE, 0x00000000 }; static uint32_t rx_filter_2340_v_4_95[32][2] = { 0x9835E60D, 0x0000000F, 0x7855EE05, 0x0000000F, 0x5879F3FE, 0x0000000F, 0x38A1F5F7, 0x0000000F, 0x18C9F7F0, 0x0000000F, 0xF8F5F7E9, 0x0000000E, 0xD921F5E3, 0x0000000E, 0xB94DF3DD, 0x0000000E, 0x997DEDD8, 0x0000000E, 0x79ADE7D3, 0x0000000E, 0x61DDDDCF, 0x0000000E, 0x4A11D1CB, 0x0000000E, 0x3A41C3C8, 0x0000000E, 0x2A71B3C6, 0x0000000E, 0x229DA3C4, 0x0000000E, 0x1ACD8FC3, 0x0000000E, 0x1AF57BC3, 0x0000000E, 0x1B1D67C3, 0x0000000E, 0x23454FC4, 0x0000000E, 0x336539C5, 0x0000000E, 0x438521C7, 0x0000000E, 0x5BA109C9, 0x0000000E, 0x7BB8EFCC, 0x0000000E, 0x9BCCD7CF, 0x0000000E, 0xC3D8BFD3, 0x0000000E, 0xEBE4A7D7, 0x0000000E, 0x1BE891DB, 0x0000000F, 0x4BEC7BDF, 0x0000000F, 0x83EC65E3, 0x0000000F, 0xBBE851E7, 0x0000000F, 0xF3E43DEB, 0x0000000F, 0x2BDC2BEF, 0x00000000 }; #endif #if PANEL_INIT_CODE_ARRAY static void send_panel_init_code(uint32_t size, uint8_t * data) { uint32_t data_offeset = 0; uint8_t data_type; uint8_t vc; uint8_t data_size; uint8_t * p_data; while(data_offeset < size) { data_type = data[data_offeset]; vc = data[data_offeset + 1]; data_size = data[data_offeset + 2]; p_data = &data[data_offeset + 3]; hal_dsi_tx_ctrl_write_array_cmd(data_type, vc, data_size, p_data); data_offeset = data_offeset + data_size + 3; delayUs(20); } } const uint8_t panel_init_code[] = { #if 0 0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x00, 0x39, 0, 9, 0xBA,0x01,0xB0,0x00,0x10,0x09,0x90,0x00,0x01, 0x39, 0, 9, 0xBB,0x01,0xB0,0x00,0x10,0x00,0x20,0x00,0x41, 0x39, 0, 2, 0x6F,0x08, 0x39, 0, 9, 0xBA,0x01,0xAD,0x00,0x10,0x03,0x50,0x00,0x01, 0x39, 0, 2, 0x6F,0x10, 0x39, 0, 8, 0xBA,0x01,0xB0,0x00,0x10,0x00,0x10,0x01, 0x39, 0, 2, 0x6F,0x17, 0x39, 0, 8, 0xBA,0x01,0xB0,0x00,0x10,0x00,0x10,0x01, 0x39, 0, 3, 0xB2,0x11,0x60, 0x39, 0, 2, 0x6F,0x0F, 0x39, 0, 9, 0xB2,0xA0,0x90,0x70,0x00,0x00,0x00,0x2F,0xFF, 0x39, 0, 19, 0xB3,0x00,0x00,0x00,0x01,0x00,0x01,0x01,0x1C,0x01,0x1C,0x02,0xBD,0x02,0xBD,0x05,0x02,0x05,0x02, 0x39, 0, 2, 0x6F,0x12, 0x39, 0, 19, 0xB3,0x05,0x03,0x05,0x03,0x06,0x96,0x06,0x96,0x0A,0xC9,0x0A,0xC9,0x0D,0xBB,0x0D,0xBB,0x0F,0xFF, 0x39, 0, 19, 0xB4,0x13,0x00,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40, 0x39, 0, 2, 0x6F,0x12, 0x39, 0, 21, 0xB4,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40, 0x39, 0, 2, 0x6F,0x2C, 0x39, 0, 19, 0xB3,0x0C,0xC0,0x0C,0xC0,0x0C,0x14,0x0C,0x14,0x0C,0x14,0x0C,0x14,0x08,0xCF,0x08,0xCF,0x00,0xF0, 0x39, 0, 2, 0x6F,0x3E, 0x39, 0, 21, 0xB3,0x00,0xF0,0x00,0x0A,0x00,0x0A,0x00,0x0A,0x00,0x0A,0x00,0x0A,0x00,0x0A,0x00,0x0A,0x00,0x0A,0x00,0x0A, 0x39, 0, 2, 0x6F,0x30, 0x39, 0, 19, 0xB4,0x09,0x80,0x09,0x80,0x09,0x00,0x09,0x00,0x09,0x00,0x09,0x00,0x06,0x90,0x06,0x90,0x00,0xA0, 0x39, 0, 2, 0x6F,0x42, 0x39, 0, 21, 0xB4,0x00,0xA0,0x00,0x0A,0x00,0x0A,0x00,0x0A,0x00,0x0A,0x00,0x0A,0x00,0x0A,0x00,0x0A,0x00,0x0A,0x00,0x0A, 0x39, 0, 2, 0x6F,0x56, 0x39, 0, 19, 0xB4,0x00,0x0A,0x00,0x0A,0x00,0x0A,0x00,0x0A,0x00,0x0A,0x00,0x0A,0x00,0x0A,0x00,0x0A,0x00,0x0A, 0x39, 0, 2, 0x6F,0x68, 0x39, 0, 21, 0xB4,0x00,0x0A,0x00,0x0A,0x00,0x0A,0x00,0x0A,0x00,0x0A,0x00,0x0A,0x00,0x0A,0x00,0x0A,0x00,0x0A,0x00,0x0A, 0x39, 0, 2, 0x6F,0x24, 0x39, 0, 9, 0xB3,0x01,0x55,0x07,0xFF,0x07,0xFF,0x0F,0xFF, 0x39, 0, 2, 0x6F,0x26, 0x39, 0, 11, 0xB4,0x00,0x28,0x00,0x28,0x00,0x28,0x00,0x28,0x00,0x28, 0x39, 0, 3, 0xB9,0x00,0x96, 0x39, 0, 3, 0xBD,0x04,0xB0, 0x39, 0, 5, 0xBE,0x10,0x0E,0x13,0x14, 0x39, 0, 4, 0xC0,0x66,0xB3,0x00, 0x39, 0, 2, 0x6F,0x06, 0x39, 0, 2, 0xC0,0x7E, 0x39, 0, 2, 0x6F,0x08, 0x39, 0, 7, 0xC0,0x00,0x20,0x48,0x60,0x00,0x00, 0x39, 0, 2, 0x6F,0x11, 0x39, 0, 2, 0xC0,0x30, 0x39, 0, 2, 0x6F,0x02, 0x39, 0, 11, 0xC1,0x00,0x5C,0x00,0x5B,0x00,0x5C,0x00,0x5C,0x00,0x5B, 0x39, 0, 2, 0x6F,0x01, 0x39, 0, 2, 0xC3,0x7F, 0x39, 0, 3, 0xC5,0x00,0x00, 0x39, 0, 2, 0x6F,0x04, 0x39, 0, 2, 0xC6,0x11, 0x39, 0, 2, 0xC9,0x87, //0x39, 0, 2, 0xC9,0x84, 0x39, 0, 5, 0xCA,0x11,0xBB,0x92,0x47, 0x39, 0, 2, 0xCB,0x44, 0x39, 0, 2, 0x6F,0x02, 0x39, 0, 3, 0xE7,0x22,0x00, 0x39, 0, 2, 0x6F,0x2A, 0x39, 0, 2, 0xD9,0x43, 0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x01, 0x39, 0, 3, 0xB0,0x04,0x02, 0x39, 0, 5, 0xB3,0x13,0x14,0x33,0x33, 0x39, 0, 3, 0xB1,0x03,0x02, 0x39, 0, 5, 0xB4,0x13,0x14,0x33,0x33, 0x39, 0, 10, 0xB7,0x23,0x16,0x16,0x23,0x23,0x23,0x23,0x23,0x23, 0x39, 0, 9, 0xB8,0x42,0x41,0x42,0x42,0x42,0x42,0x42,0x42, 0x39, 0, 14, 0xB9,0x00,0x1A,0x1A,0x00,0x00,0x1A,0x1A,0x00,0x1A,0x1A,0x00,0x1A,0x1A, 0x39, 0, 2, 0x6F,0x12, 0x39, 0, 6, 0xB9,0x17,0x17,0x17,0x1A,0x1A, 0x39, 0, 5, 0xBA,0x10,0x10,0x10,0x10, 0x39, 0, 2, 0xBB,0x03, 0x39, 0, 2, 0x6F,0x05, 0x39, 0, 20, 0xBB,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x1C,0x1C,0x20,0x20,0x26, 0x39, 0, 2, 0x6F,0x18, 0x39, 0, 20, 0xBB,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x1C,0x1C,0x20,0x20,0x26, 0x39, 0, 2, 0x6F,0x2B, 0x39, 0, 20, 0xBB,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x1C,0x1C,0x20,0x20,0x26, 0x39, 0, 2, 0x6F,0x3E, 0x39, 0, 20, 0xBB,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x1C,0x1C,0x20,0x20,0x26, 0x39, 0, 2, 0x6F,0x9D, 0x39, 0, 2, 0xBB,0x01, 0x39, 0, 2, 0x6F,0x9E, 0x39, 0, 20, 0xBB,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x23,0x23,0x23,0x23,0x20,0x20,0x13, 0x39, 0, 2, 0x6F,0xB1, 0x39, 0, 20, 0xBB,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x23,0x23,0x23,0x23,0x20,0x20,0x13, 0x39, 0, 2, 0x6F,0xC4, 0x39, 0, 20, 0xBB,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x23,0x23,0x23,0x23,0x20,0x20,0x13, 0x39, 0, 2, 0x6F,0xD7, 0x39, 0, 20, 0xBB,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x23,0x23,0x23,0x23,0x20,0x20,0x13, 0x39, 0, 2, 0xC7,0x01, 0x39, 0, 3, 0xCD,0x07,0x91, 0x39, 0, 6, 0xCE,0x00,0x00,0x01,0x00,0x03, 0x39, 0, 2, 0xCF,0x9C, 0x39, 0, 5, 0xD0,0x00,0x00,0x00,0x00, 0x39, 0, 8, 0xD2,0x00,0x40,0x11,0x41,0x25,0x00,0x07, 0x39, 0, 2, 0x6F,0x09, 0x39, 0, 2, 0xD2,0x00, 0x39, 0, 11, 0xB5,0x00,0xE0,0x00,0x88,0x00,0x88,0x00,0xE0,0x00,0x88, 0x39, 0, 11, 0xB6,0x00,0xEA,0x00,0xBF,0x00,0xBF,0x00,0xEA,0x00,0xBF, 0x39, 0, 7, 0xDE,0x10,0x00,0x10,0x00,0x00,0x00, 0x39, 0, 23, 0xE0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x16, 0x39, 0, 23, 0xE0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x06,0x00,0x0C, 0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x02, 0x39, 0, 2, 0xBC,0x11, 0x39, 0, 17, 0xBD,0x96,0x00,0x00,0x96,0x69,0x00,0x00,0x69,0xBB,0x44,0x44,0xBB,0xEE,0x11,0x11,0xEE, 0x39, 0, 2, 0xC1,0x02, 0x39, 0, 5, 0xC2,0x91,0x00,0x19,0x00, 0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x02, 0x39, 0, 2, 0x6F,0x08, 0x39, 0, 7, 0xD0,0x0D,0x66,0x0B,0x43,0x0E,0xE6, 0x39, 0, 2, 0xD1,0x01, 0x39, 0, 2, 0x6F,0x03, 0x39, 0, 5, 0xD1,0x02,0x1C,0x08,0x7D, 0x39, 0, 2, 0x6F,0x07, 0x39, 0, 5, 0xD1,0x01,0xC1,0x08,0x26, 0x39, 0, 2, 0x6F,0x0B, 0x39, 0, 5, 0xD1,0x02,0x6F,0x08,0xD3, 0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x03, 0x39, 0, 7, 0xB0,0x0F,0x00,0x00,0x0F,0x00,0x02, 0x39, 0, 2, 0x6F,0x06, 0x39, 0, 7, 0xB0,0x0F,0x00,0x00,0x0F,0x00,0x00, 0x39, 0, 2, 0x6F,0x0C, 0x39, 0, 7, 0xB0,0x0F,0x00,0x00,0x0F,0x00,0x00, 0x39, 0, 2, 0x6F,0x12, 0x39, 0, 7, 0xB0,0x0F,0x00,0x00,0x0F,0x00,0x00, 0x39, 0, 2, 0x6F,0x18, 0x39, 0, 7, 0xB0,0xFF,0x00,0x00,0xFF,0x00,0x00, 0x39, 0, 2, 0x6F,0x1E, 0x39, 0, 7, 0xB0,0xFF,0x00,0x00,0xFF,0x00,0x00, 0x39, 0, 2, 0x6F,0x24, 0x39, 0, 7, 0xB0,0xFF,0x00,0x00,0xFF,0x00,0x00, 0x39, 0, 2, 0x6F,0x2A, 0x39, 0, 7, 0xB0,0xFF,0x00,0x00,0xFF,0x00,0x00, 0x39, 0, 2, 0x6F,0x30, 0x39, 0, 7, 0xB0,0xFF,0x00,0x00,0xFF,0x00,0x00, 0x39, 0, 2, 0x6F,0x36, 0x39, 0, 7, 0xB0,0xFF,0x00,0x00,0xFF,0x00,0x00, 0x39, 0, 6, 0xB2,0x00,0x0C,0x0C,0x06,0x01, 0x39, 0, 2, 0x6F,0x05, 0x39, 0, 4, 0xB2,0x00,0x0C,0x0C, 0x39, 0, 2, 0x6F,0x13, 0x39, 0, 3, 0xB2,0x06,0x01, 0x39, 0, 2, 0x6F,0x08, 0x39, 0, 4, 0xB2,0x00,0x0C,0x0C, 0x39, 0, 2, 0x6F,0x15, 0x39, 0, 3, 0xB2,0x06,0x01, 0x39, 0, 2, 0x6F,0x0B, 0x39, 0, 4, 0xB2,0x00,0x0C,0x0C, 0x39, 0, 2, 0x6F,0x17, 0x39, 0, 3, 0xB2,0x06,0x01, 0x39, 0, 2, 0x6F,0x0E, 0x39, 0, 6, 0xB2,0x00,0x0B,0x0B,0x06,0x01, 0x39, 0, 4, 0xB6,0x70,0x0C,0x0C, 0x39, 0, 2, 0x6F,0x03, 0x39, 0, 4, 0xB6,0x00,0x0C,0x0C, 0x39, 0, 2, 0x6F,0x06, 0x39, 0, 4, 0xB6,0x00,0x0C,0x0C, 0x39, 0, 2, 0x6F,0x09, 0x39, 0, 4, 0xB6,0x00,0x0C,0x0C, 0x39, 0, 2, 0x6F,0x0C, 0x39, 0, 4, 0xB6,0x00,0x0B,0x0B, 0x39, 0, 2, 0x6F,0x0F, 0x39, 0, 4, 0xB6,0x1F,0x00,0x08, 0x39, 0, 2, 0x6F,0x1A, 0x39, 0, 4, 0xB6,0x1F,0x00,0x08, 0x39, 0, 2, 0x6F,0x25, 0x39, 0, 4, 0xB6,0x1F,0x00,0x08, 0x39, 0, 2, 0x6F,0x30, 0x39, 0, 4, 0xB6,0x1F,0x00,0x08, 0x39, 0, 5, 0xBB,0x11,0x00,0x0C,0x4D, 0x39, 0, 2, 0x6F,0x04, 0x39, 0, 4, 0xBB,0x00,0x0C,0x4D, 0x39, 0, 2, 0x6F,0x07, 0x39, 0, 4, 0xBB,0x00,0x0C,0x4D, 0x39, 0, 2, 0x6F,0x0A, 0x39, 0, 4, 0xBB,0x00,0x0C,0x4D, 0x39, 0, 2, 0x6F,0x0D, 0x39, 0, 4, 0xBB,0x00,0x0B,0x4C, 0x39, 0, 5, 0xBC,0x22,0x10,0x0C,0x3F, 0x39, 0, 2, 0x6F,0x04, 0x39, 0, 4, 0xBC,0x00,0x0C,0x3F, 0x39, 0, 2, 0x6F,0x07, 0x39, 0, 4, 0xBC,0x00,0x0C,0x3F, 0x39, 0, 2, 0x6F,0x0A, 0x39, 0, 4, 0xBC,0x00,0x0C,0x3F, 0x39, 0, 2, 0x6F,0x0D, 0x39, 0, 4, 0xBC,0x00,0x0B,0x3D, 0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x05, 0x39, 0, 4, 0xB0,0x03,0x21,0x00, 0x39, 0, 3, 0xB3,0x82,0x80, 0x39, 0, 6, 0xB5,0x86,0x81,0x00,0x00,0x00, 0x39, 0, 5, 0xB7,0x05,0x00,0x00,0x81, 0x39, 0, 5, 0xB8,0x06,0x00,0x00,0x81, 0x39, 0, 3, 0xC7,0x0B,0x03, 0x39, 0, 2, 0xC9,0x11, 0x39, 0, 2, 0xCA,0x11, 0x39, 0, 8, 0xCB,0x11,0x11,0x11,0x11,0x11,0x11,0x11, 0x39, 0, 2, 0xD8,0x11, 0x39, 0, 4, 0xD0,0x00,0x02,0x10, 0x39, 0, 5, 0xE0,0x82,0x00,0x00,0x00, 0x39, 0, 4, 0xD1,0x00,0x04,0x10, 0x39, 0, 5, 0xE1,0x82,0x00,0x00,0x00, 0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x06, 0x39, 0, 6, 0xB0,0x32,0x32,0x32,0x12,0x12, 0x39, 0, 6, 0xB1,0x13,0x13,0x04,0x04,0x0E, 0x39, 0, 6, 0xB2,0x0E,0x0F,0x0F,0x00,0x00, 0x39, 0, 2, 0xB3,0x32, 0x39, 0, 6, 0xB6,0x32,0x32,0x32,0x12,0x12, 0x39, 0, 6, 0xB7,0x13,0x13,0x04,0x04,0x0E, 0x39, 0, 6, 0xB8,0x0E,0x0F,0x0F,0x00,0x00, 0x39, 0, 2, 0xB9,0x32, 0x39, 0, 2, 0xD0,0x01, 0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x07, 0x39, 0, 6, 0xB0,0x8C,0xC0,0x78,0x70,0x00, 0x39, 0, 7, 0xB1,0x1C,0x0C,0x00,0x0C,0x1C,0x00, 0x39, 0, 2, 0xB2,0x20, 0x39, 0, 2, 0x6F,0x09, 0x39, 0, 2, 0xB2,0x20, 0x39, 0, 2, 0x6F,0x12, 0x39, 0, 2, 0xB2,0xF0, 0x39, 0, 2, 0x6F,0x1B, 0x39, 0, 2, 0xB2,0x20, 0x39, 0, 2, 0x6F,0x24, 0x39, 0, 2, 0xB2,0x20, 0x39, 0, 2, 0x6F,0x2D, 0x39, 0, 2, 0xB2,0xCC, 0x39, 0, 2, 0x6F,0x36, 0x39, 0, 2, 0xB2,0x32, 0x39, 0, 2, 0x6F,0x3F, 0x39, 0, 2, 0xB2,0x04, 0x39, 0, 2, 0x6F,0x48, 0x39, 0, 2, 0xB2,0x32, 0x39, 0, 2, 0x6F,0x51, 0x39, 0, 2, 0xB2,0x04, 0x39, 0, 2, 0x6F,0x5A, 0x39, 0, 2, 0xB2,0x03, 0x39, 0, 2, 0x6F,0x63, 0x39, 0, 2, 0xB2,0x9B, 0x39, 0, 2, 0x6F,0x6C, 0x39, 0, 2, 0xB2,0x32, 0x39, 0, 2, 0x6F,0x75, 0x39, 0, 2, 0xB2,0x04, 0x39, 0, 2, 0x6F,0x7E, 0x39, 0, 2, 0xB2,0x32, 0x39, 0, 2, 0x6F,0x87, 0x39, 0, 2, 0xB2,0x04, 0x39, 0, 2, 0x6F,0x90, 0x39, 0, 2, 0xB2,0x03, 0x39, 0, 2, 0x6F,0x99, 0x39, 0, 2, 0xB2,0x3A, 0x39, 0, 2, 0xB4,0xC0, 0x39, 0, 2, 0x6F,0x01, 0x39, 0, 4, 0xB4,0x60,0x80,0x80, 0x39, 0, 2, 0x6F,0x04, 0x39, 0, 4, 0xB4,0x80,0x40,0x80, 0x39, 0, 2, 0x6F,0x07, 0x39, 0, 4, 0xB4,0x80,0x80,0x80, 0x39, 0, 2, 0x6F,0x0A, 0x39, 0, 4, 0xB4,0x80,0x40,0x80, 0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x07, 0x39, 0, 2, 0xC0,0x01, 0x39, 0, 2, 0x6F,0x00, 0x39, 0, 22, 0xC1,0x38,0x0F,0x02,0x11,0x01,0xE4,0xFC,0x0C,0x3F,0xFE,0x39,0x64,0xBF,0xFE,0xFB,0x18,0x00,0x00,0x23,0x29,0x44, 0x39, 0, 2, 0x6F,0x15, 0x39, 0, 16, 0xC1,0x00,0x00,0x13,0x00,0x16,0x58,0x33,0x50,0x05,0xEE,0x0F,0xBB,0xEA,0x00,0x00, 0x39, 0, 2, 0x6F,0x24, 0x39, 0, 8, 0xC1,0x00,0x0C,0x0F,0x00,0x16,0x12,0x00, 0x39, 0, 2, 0x6F,0x00, 0x39, 0, 22, 0xC2,0x30,0x0F,0x01,0x44,0x08,0x44,0xF9,0x88,0x3F,0xFF,0x30,0x70,0x3F,0xFD,0x92,0x70,0x80,0x00,0x21,0x3E,0x10, 0x39, 0, 2, 0x6F,0x15, 0x39, 0, 16, 0xC2,0x00,0x17,0x00,0x00,0x69,0x12,0x33,0x20,0x05,0xC4,0x0F,0xEE,0xAE,0x00,0x00, 0x39, 0, 2, 0x6F,0x24, 0x39, 0, 8, 0xC2,0x04,0x21,0x0D,0x04,0x28,0x12,0x00, 0x39, 0, 2, 0x6F,0x00, 0x39, 0, 22, 0xC3,0x36,0x00,0x01,0x44,0x08,0x44,0x06,0x78,0x00,0x00,0x00,0x00,0x3F,0xFB,0x80,0x00,0x80,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x15, 0x39, 0, 16, 0xC3,0x03,0xCE,0x00,0x04,0x20,0x12,0x33,0x20,0x00,0x00,0x03,0x12,0xAE,0x00,0x00, 0x39, 0, 2, 0x6F,0x24, 0x39, 0, 8, 0xC3,0x94,0x20,0x4D,0x94,0x25,0x54,0x00, 0x39, 0, 2, 0x6F,0x00, 0x39, 0, 22, 0xC4,0x3E,0x00,0x02,0x11,0x01,0xE4,0x03,0xF4,0x00,0x01,0x6B,0xB0,0xBF,0xFE,0xA4,0x20,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x15, 0x39, 0, 16, 0xC4,0x04,0x21,0x13,0x04,0x37,0x58,0x33,0x50,0x00,0x00,0x03,0x45,0xEA,0x00,0x00, 0x39, 0, 2, 0x6F,0x24, 0x39, 0, 8, 0xC4,0x90,0x12,0x4D,0x90,0x16,0x50,0x00, 0x39, 0, 2, 0x6F,0x00, 0x39, 0, 22, 0xC5,0x2A,0x0F,0x01,0x44,0x08,0xA1,0xF9,0x64,0x00,0x00,0x76,0xF8,0x00,0x03,0x49,0x5C,0x7F,0xFF,0xB9,0xEB,0xC4, 0x39, 0, 2, 0x6F,0x15, 0x39, 0, 16, 0xC5,0x93,0xCE,0x4D,0x94,0x1F,0x5F,0x33,0x0F,0xFA,0x4E,0x00,0x12,0x51,0x00,0x00, 0x39, 0, 2, 0x6F,0x24, 0x39, 0, 8, 0xC5,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x00, 0x39, 0, 22, 0xC6,0x2A,0x0F,0x02,0x11,0x02,0x11,0xFB,0xDE,0x00,0x02,0x99,0x62,0x80,0x00,0x5F,0x0E,0x7F,0xFF,0xBF,0xF3,0x11, 0x39, 0, 2, 0x6F,0x15, 0x39, 0, 16, 0xC6,0x94,0x20,0x07,0x94,0x37,0x4C,0x33,0x4F,0xF9,0xCD,0x00,0x45,0x17,0x00,0x00, 0x39, 0, 2, 0x6F,0x24, 0x39, 0, 8, 0xC6,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x00, 0x39, 0, 22, 0xC7,0x2C,0x00,0x02,0x11,0x01,0xE4,0x03,0xF4,0x3F,0xFD,0x28,0xA0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x15, 0x39, 0, 16, 0xC7,0x90,0x00,0x07,0x90,0x16,0x4C,0x33,0x50,0x00,0x00,0x0C,0xBB,0x16,0x00,0x00, 0x39, 0, 2, 0x6F,0x24, 0x39, 0, 8, 0xC7,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x00, 0x39, 0, 22, 0xC8,0x24,0x00,0x01,0x44,0x08,0x44,0x06,0x78,0x3F,0xFE,0xBC,0x00,0x00,0x01,0x44,0x00,0x80,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x15, 0x39, 0, 16, 0xC8,0x90,0x17,0x4D,0x90,0x69,0x5F,0x33,0x20,0x00,0x00,0x0C,0xEE,0x52,0x00,0x00, 0x39, 0, 2, 0x6F,0x24, 0x39, 0, 8, 0xC8,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x00, 0x39, 0, 22, 0xC9,0x2B,0x00,0x03,0xC1,0x03,0xC1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xF1,0xE8,0x7F, 0x39, 0, 2, 0x6F,0x15, 0x39, 0, 16, 0xC9,0x02,0x1C,0x34,0x02,0x3C,0x54,0x55,0x5F,0xFC,0x3F,0x00,0x1F,0x1F,0x00,0x00, 0x39, 0, 2, 0x6F,0x24, 0x39, 0, 8, 0xC9,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x00, 0x39, 0, 22, 0xCA,0x2D,0x00,0x03,0xC1,0x03,0xC1,0x00,0x00,0x3F,0xFF,0x17,0x42,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0xEC,0x7F, 0x39, 0, 2, 0x6F,0x15, 0x39, 0, 16, 0xCA,0x01,0xFB,0x34,0x02,0x1B,0x54,0x55,0x50,0x00,0x00,0x3C,0xE1,0x1F,0xFF,0x00, 0x39, 0, 2, 0x6F,0x24, 0x39, 0, 8, 0xCA,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x00, 0x39, 0, 22, 0xCB,0x21,0x00,0x03,0xC1,0x03,0xC1,0x00,0x00,0x3F,0xFF,0x17,0x42,0x3F,0xFF,0x17,0x42,0x00,0x00,0x0F,0xF0,0x7F, 0x39, 0, 2, 0x6F,0x15, 0x39, 0, 16, 0xCB,0x01,0xFB,0x13,0x02,0x1B,0x33,0x55,0x90,0x03,0xC1,0xFF,0xE1,0xE1,0xFF,0xFF, 0x39, 0, 2, 0x6F,0x24, 0x39, 0, 8, 0xCB,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x00, 0x39, 0, 22, 0xCC,0x27,0x00,0x03,0xC1,0x03,0xC1,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,0x17,0x42,0x00,0x00,0x00,0xEC,0x7F, 0x39, 0, 2, 0x6F,0x15, 0x39, 0, 16, 0xCC,0x02,0x1C,0x13,0x02,0x3C,0x33,0x55,0x90,0x00,0x00,0xC3,0x1F,0xE1,0x00,0xFF, 0x39, 0, 2, 0x6F,0x24, 0x39, 0, 8, 0xCC,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x00, 0x39, 0, 22, 0xCD,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x15, 0x39, 0, 16, 0xCD,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x24, 0x39, 0, 8, 0xCD,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x00, 0x39, 0, 22, 0xCE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x15, 0x39, 0, 16, 0xCE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x24, 0x39, 0, 8, 0xCE,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x00, 0x39, 0, 22, 0xCF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x15, 0x39, 0, 16, 0xCF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x24, 0x39, 0, 8, 0xCF,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x00, 0x39, 0, 22, 0xD0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x15, 0x39, 0, 16, 0xD0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x24, 0x39, 0, 8, 0xD0,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x00, 0x39, 0, 22, 0xD1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x15, 0x39, 0, 16, 0xD1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x24, 0x39, 0, 8, 0xD1,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x00, 0x39, 0, 22, 0xD2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x15, 0x39, 0, 16, 0xD2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x24, 0x39, 0, 8, 0xD2,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x00, 0x39, 0, 22, 0xD3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x15, 0x39, 0, 16, 0xD3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x24, 0x39, 0, 8, 0xD3,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x00, 0x39, 0, 22, 0xD4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x15, 0x39, 0, 16, 0xD4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x24, 0x39, 0, 8, 0xD4,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x00, 0x39, 0, 22, 0xD5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x15, 0x39, 0, 16, 0xD5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x24, 0x39, 0, 8, 0xD5,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x00, 0x39, 0, 22, 0xD6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x15, 0x39, 0, 16, 0xD6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x24, 0x39, 0, 8, 0xD6,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x00, 0x39, 0, 22, 0xD7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x15, 0x39, 0, 16, 0xD7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x24, 0x39, 0, 8, 0xD7,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x00, 0x39, 0, 22, 0xD8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x15, 0x39, 0, 16, 0xD8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x24, 0x39, 0, 8, 0xD8,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x07, 0x39, 0, 3, 0xC0,0x01,0x01, 0x39, 0, 2, 0x6F,0x02, 0x39, 0, 7, 0xC0,0x00,0x00,0x00,0x55,0x00,0x00, 0x39, 0, 2, 0x6F,0x00, 0x39, 0, 22, 0xCD,0x21,0x00,0x1C,0x39,0x1C,0xE4,0x00,0x00,0x3F,0xED,0x09,0xB4,0x3F,0xEC,0xD0,0x98,0x80,0x03,0x55,0xBD,0x95, 0x39, 0, 2, 0x6F,0x15, 0x39, 0, 16, 0xCD,0x81,0xC1,0x26,0x82,0x18,0x7C,0x55,0x90,0x1C,0x8E,0xFF,0xAB,0xAA,0xFF,0xFF, 0x39, 0, 2, 0x6F,0x24, 0x39, 0, 8, 0xCD,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x00, 0x39, 0, 22, 0xCE,0x27,0x00,0x1C,0x39,0x1C,0x39,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xED,0x42,0x26,0x80,0x00,0x12,0xDA,0x13, 0x39, 0, 2, 0x6F,0x15, 0x39, 0, 16, 0xCE,0x82,0x19,0x26,0x82,0x6F,0x7C,0x55,0x80,0x00,0x00,0xC3,0x55,0xAB,0x00,0xFF, 0x39, 0, 2, 0x6F,0x24, 0x39, 0, 8, 0xCE,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x00, 0x39, 0, 22, 0xCF,0x2D,0x00,0x1C,0x39,0x1E,0xF1,0x00,0x00,0x3F,0xEC,0x60,0x5E,0x40,0x00,0x00,0x00,0x80,0x00,0x13,0xBB,0xDB, 0x39, 0, 2, 0x6F,0x15, 0x39, 0, 16, 0xCF,0x81,0xC1,0x7D,0x82,0x1B,0xD3,0x55,0xA0,0x00,0x00,0x3C,0xAB,0x59,0xFF,0x00, 0x39, 0, 2, 0x6F,0x24, 0x39, 0, 8, 0xCF,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x6F,0x00, 0x39, 0, 22, 0xD0,0x2B,0x00,0x1C,0x39,0x1A,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0xFF,0xFD,0x1A,0xB6,0xDC, 0x39, 0, 2, 0x6F,0x15, 0x39, 0, 16, 0xD0,0x82,0x1C,0x7D,0x82,0x6F,0xD3,0x55,0xDF,0xE4,0xC6,0x00,0x55,0x52,0x00,0x00, 0x39, 0, 2, 0x6F,0x24, 0x39, 0, 8, 0xD0,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 2, 0x88,0x01, 0x39, 0, 2, 0x6F,0x01, 0x39, 0, 5, 0x88,0x02,0x18,0x08,0x7D, 0x39, 0, 5, 0xFF,0xAA,0x55,0xA5,0x80, 0x39, 0, 2, 0x6F,0x61, 0x39, 0, 2, 0xF3,0x80, 0x39, 0, 2, 0x6F,0x1D, 0x39, 0, 2, 0xF2,0x05, 0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x00,0x00, 0x39, 0, 5, 0xFF,0xAA,0x55,0xA5,0x00, 0x39, 0, 2, 0x03,0x00, 0x39, 0, 2, 0x90,0x02, 0x39, 0, 19, 0x91,0x89,0x28,0x00,0x14,0xC2,0x00,0x02,0x0E,0x01,0xE8,0x00,0x07,0x05,0x0E,0x05,0x16,0x10,0xF0, 0x39, 0, 1, 0x2C, 0x39, 0, 2, 0x2F,0x01, 0x39, 0, 5, 0x51,0x0D,0xBB,0x0F,0xFE, 0x39, 0, 2, 0x53,0x20, 0x39, 0, 2, 0x35,0x00, 0x39, 0, 5, 0x2A,0x00,0x00,0x04,0x37, 0x39, 0, 5, 0x2B,0x00,0x00,0x09,0x5F, 0x39, 0, 5, 0x3B,0x00,0x10,0x00,0x20, 0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x04, 0x39, 0, 5, 0xF0,0x55,0xAA,0x52,0x08, 0x39, 0, 3, 0xB5,0x80,0x02, 0x39, 0, 2, 0x6F,0x06, 0x39, 0, 16, 0xB5,0x48,0x17,0x00,0x00,0x00,0x46,0x29,0x00,0x00,0x00,0x17,0x17,0x17,0x17,0x17, 0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x00, 0x39, 0, 2, 0xC0,0x66, // Gamma 0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x02, 0x39, 0, 2, 0xCC,0x30, #endif #if 1 //GAMMA //CMD2_Page2 0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x02, 0x39, 0, 2, 0xBF,0x09, //R+ 0x39, 0, 19, 0xB0,0x00,0x00,0x01,0x13,0x01,0xB9,0x02,0x97,0x03,0x26,0x03,0xA2,0x04,0x0D,0x04,0x64,0x04,0xEB, 0x39, 0, 19, 0xB1,0x05,0x68,0x05,0xCD,0x06,0x23,0x06,0x79,0x07,0x0B,0x07,0x8C,0x08,0x0D,0x08,0x7F,0x08,0xF1, 0x39, 0, 15, 0xB2,0x09,0x61,0x09,0xCE,0x0A,0x38,0x0A,0x9D,0x0A,0xFF,0x0B,0xC4,0x0B,0xC6, //G+ 0x39, 0, 19, 0xB3,0x00,0x00,0x00,0x74,0x01,0x06,0x01,0xD8,0x02,0x68,0x02,0xE6,0x03,0x52,0x03,0xA8,0x04,0x2D, 0x39, 0, 19, 0xB4,0x04,0xA4,0x05,0x03,0x05,0x53,0x05,0xA3,0x06,0x2A,0x06,0xA2,0x07,0x1A,0x07,0x83,0x07,0xEC, 0x39, 0, 15, 0xB5,0x08,0x4F,0x08,0xAE,0x09,0x08,0x09,0x5D,0x09,0xB7,0x0A,0x6B,0x0A,0x6E, //B+ 0x39, 0, 19, 0xB6,0x00,0x00,0x01,0x85,0x02,0x38,0x03,0x30,0x03,0xD9,0x04,0x64,0x04,0xD9,0x05,0x36,0x05,0xC8, 0x39, 0, 19, 0xB7,0x06,0x4A,0x06,0xB3,0x07,0x0D,0x07,0x67,0x08,0x01,0x08,0x8C,0x09,0x17,0x09,0x93,0x0A,0x0F, 0x39, 0, 15, 0xB8,0x0A,0x8B,0x0B,0x04,0x0B,0x7A,0x0B,0xEB,0x0C,0x63,0x0D,0x54,0x0D,0x56, 0x39, 0, 2, 0xBF,0x08, //R+ 0x39, 0, 19, 0xB0,0x00,0x00,0x00,0xE0,0x01,0x96,0x02,0x60,0x02,0xEE,0x03,0x60,0x03,0xC5,0x04,0x1E,0x04,0xA1, 0x39, 0, 19, 0xB1,0x05,0x12,0x05,0x71,0x05,0xC5,0x06,0x0F,0x06,0x95,0x07,0x0F,0x07,0x88,0x07,0xF0,0x08,0x57, 0x39, 0, 15, 0xB2,0x08,0xB6,0x09,0x16,0x09,0x61,0x09,0xCB,0x0A,0x22,0x0A,0xD1,0x0A,0xD3, //G+ 0x39, 0, 19, 0xB3,0x00,0x00,0x00,0x58,0x00,0xD8,0x01,0xA3,0x02,0x30,0x02,0xA3,0x03,0x09,0x03,0x62,0x03,0xE4, 0x39, 0, 19, 0xB4,0x04,0x52,0x04,0xAD,0x04,0xFC,0x05,0x4A,0x05,0xCB,0x06,0x3C,0x06,0xA1,0x07,0x03,0x07,0x5D, 0x39, 0, 15, 0xB5,0x07,0xB5,0x08,0x0D,0x08,0x60,0x08,0xAF,0x08,0xF9,0x09,0x8F,0x09,0x92, //B+ 0x39, 0, 19, 0xB6,0x00,0x00,0x01,0x42,0x02,0x12,0x02,0xF2,0x03,0x97,0x04,0x18,0x04,0x85,0x04,0xE5,0x05,0x71, 0x39, 0, 19, 0xB7,0x05,0xE8,0x06,0x4F,0x06,0xA5,0x06,0xFA,0x07,0x8E,0x08,0x12,0x08,0x87,0x08,0xF9,0x09,0x66, 0x39, 0, 15, 0xB8,0x09,0xD0,0x0A,0x3A,0x0A,0x98,0x0B,0x02,0x0B,0x65,0x0C,0x2A,0x0C,0x2C, 0x39, 0, 2, 0xBF,0x07, //R+ 0x39, 0, 19, 0xB0,0x00,0x00,0x00,0xA1,0x01,0x6A,0x02,0x3B,0x02,0xC6,0x03,0x34,0x03,0x93,0x03,0xE9,0x04,0x6B, 0x39, 0, 19, 0xB1,0x04,0xD6,0x05,0x35,0x05,0x84,0x05,0xCF,0x06,0x50,0x06,0xC4,0x07,0x2D,0x07,0x98,0x07,0xF8, 0x39, 0, 15, 0xB2,0x08,0x53,0x08,0xA9,0x08,0xFF,0x09,0x48,0x09,0x9E,0x0A,0x3F,0x0A,0x43, //G+ 0x39, 0, 19, 0xB3,0x00,0x00,0x00,0x27,0x00,0x8C,0x01,0x7C,0x02,0x07,0x02,0x76,0x02,0xD7,0x03,0x2D,0x03,0xB0, 0x39, 0, 19, 0xB4,0x04,0x1A,0x04,0x76,0x04,0xC4,0x05,0x0A,0x05,0x89,0x05,0xF7,0x06,0x5B,0x06,0xB2,0x07,0x0D, 0x39, 0, 15, 0xB5,0x07,0x5D,0x07,0xAC,0x07,0xF8,0x08,0x44,0x08,0x8D,0x09,0x15,0x09,0x18, //B+ 0x39, 0, 19, 0xB6,0x00,0x00,0x00,0xF9,0x01,0xF2,0x02,0xC9,0x03,0x68,0x03,0xE6,0x04,0x4F,0x04,0xAB,0x05,0x34, 0x39, 0, 19, 0xB7,0x05,0xA8,0x06,0x0F,0x06,0x62,0x06,0xAF,0x07,0x3E,0x07,0xBD,0x08,0x2F,0x08,0x98,0x09,0x01, 0x39, 0, 15, 0xB8,0x09,0x62,0x09,0xC2,0x0A,0x20,0x0A,0x78,0x0A,0xD5,0x0B,0x85,0x0B,0x8B, 0x39, 0, 2, 0xBF,0x06, //R+ 0x39, 0, 19, 0xB0,0x00,0x00,0x00,0x00,0x01,0x2E,0x01,0xF2,0x02,0x7A,0x02,0xE2,0x03,0x39,0x03,0x85,0x04,0x06, 0x39, 0, 19, 0xB1,0x04,0x6D,0x04,0xC1,0x05,0x04,0x05,0x4B,0x05,0xC4,0x06,0x38,0x06,0x97,0x06,0xF0,0x07,0x40, 0x39, 0, 15, 0xB2,0x07,0x96,0x07,0xDE,0x08,0x24,0x08,0x64,0x08,0xA4,0x09,0x31,0x09,0x33, //G+ 0x39, 0, 19, 0xB3,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x1E,0x01,0xAD,0x02,0x20,0x02,0x7B,0x02,0xC9,0x03,0x4B, 0x39, 0, 19, 0xB4,0x03,0xB3,0x04,0x08,0x04,0x54,0x04,0x97,0x05,0x0C,0x05,0x71,0x05,0xCD,0x06,0x20,0x06,0x6A, 0x39, 0, 15, 0xB5,0x06,0xB3,0x06,0xF5,0x07,0x37,0x07,0x77,0x07,0xB5,0x08,0x2D,0x08,0x2F, //B+ 0x39, 0, 19, 0xB6,0x00,0x00,0x00,0xC7,0x01,0xA7,0x02,0x7E,0x03,0x11,0x03,0x88,0x03,0xEB,0x04,0x3E,0x04,0xC9, 0x39, 0, 19, 0xB7,0x05,0x37,0x05,0x92,0x05,0xE2,0x06,0x2B,0x06,0xAD,0x07,0x20,0x07,0x88,0x07,0xE8,0x08,0x3E, 0x39, 0, 15, 0xB8,0x08,0x96,0x08,0xE3,0x09,0x31,0x09,0x7E,0x09,0xCC,0x0A,0x5F,0x0A,0x61, 0x39, 0, 2, 0xBF,0x05, //R+ 0x39, 0, 19, 0xB0,0x00,0x00,0x00,0xC5,0x01,0x2F,0x01,0xCA,0x02,0x4F,0x02,0xB5,0x03,0x09,0x03,0x52,0x03,0xCC, 0x39, 0, 19, 0xB1,0x04,0x32,0x04,0x87,0x04,0xCF,0x05,0x0D,0x05,0x7F,0x05,0xE8,0x06,0x4B,0x06,0x9E,0x06,0xEC, 0x39, 0, 15, 0xB2,0x07,0x34,0x07,0x7E,0x07,0xC2,0x08,0x01,0x08,0x3D,0x08,0xAF,0x08,0xB1, //G+ 0x39, 0, 19, 0xB3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE4,0x01,0x80,0x01,0xEE,0x02,0x49,0x02,0x95,0x03,0x11, 0x39, 0, 19, 0xB4,0x03,0x78,0x03,0xCE,0x04,0x18,0x04,0x5A,0x04,0xC9,0x05,0x2C,0x05,0x83,0x05,0xD4,0x06,0x1C, 0x39, 0, 15, 0xB5,0x06,0x5F,0x06,0x9F,0x06,0xDC,0x07,0x16,0x07,0x50,0x07,0xBE,0x07,0xC0, //B+ 0x39, 0, 19, 0xB6,0x00,0x00,0x01,0x75,0x01,0xDF,0x02,0x53,0x02,0xE2,0x03,0x54,0x03,0xB5,0x04,0x07,0x04,0x8B, 0x39, 0, 19, 0xB7,0x04,0xF7,0x05,0x53,0x05,0xA2,0x05,0xE9,0x06,0x63,0x06,0xD1,0x07,0x32,0x07,0x90,0x07,0xE4, 0x39, 0, 15, 0xB8,0x08,0x31,0x08,0x7D,0x08,0xC6,0x09,0x0A,0x09,0x4F,0x09,0xD7,0x09,0xDA, 0x39, 0, 2, 0xBF,0x04, //R+ 0x39, 0, 19, 0xB0,0x00,0x00,0x00,0xC5,0x01,0x2F,0x01,0xCA,0x02,0x4F,0x02,0xB5,0x03,0x09,0x03,0x52,0x03,0xCC, 0x39, 0, 19, 0xB1,0x04,0x32,0x04,0x87,0x04,0xCF,0x05,0x0D,0x05,0x7F,0x05,0xE8,0x06,0x4B,0x06,0x9E,0x06,0xEB, 0x39, 0, 15, 0xB2,0x07,0x33,0x07,0x7D,0x07,0xBE,0x08,0x01,0x08,0x3C,0x08,0xAE,0x08,0xB1, //G+ 0x39, 0, 19, 0xB3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE4,0x01,0x80,0x01,0xEE,0x02,0x49,0x02,0x95,0x03,0x11, 0x39, 0, 19, 0xB4,0x03,0x78,0x03,0xCE,0x04,0x18,0x04,0x5A,0x04,0xC9,0x05,0x2C,0x05,0x83,0x05,0xD4,0x06,0x1B, 0x39, 0, 15, 0xB5,0x06,0x5E,0x06,0x9E,0x06,0xD9,0x07,0x16,0x07,0x4F,0x07,0xBD,0x07,0xC0, //B+ 0x39, 0, 19, 0xB6,0x00,0x00,0x01,0x75,0x01,0xE1,0x02,0x53,0x02,0xE2,0x03,0x54,0x03,0xB5,0x04,0x07,0x04,0x8A, 0x39, 0, 19, 0xB7,0x04,0xF7,0x05,0x53,0x05,0xA2,0x05,0xE9,0x06,0x63,0x06,0xD1,0x07,0x32,0x07,0x90,0x07,0xE3, 0x39, 0, 15, 0xB8,0x08,0x30,0x08,0x7C,0x08,0xC2,0x09,0x0A,0x09,0x4E,0x09,0xD6,0x09,0xDA, 0x39, 0, 2, 0xBF,0x03, //R+ 0x39, 0, 19, 0xB0,0x00,0x00,0x00,0x00,0x01,0x09,0x01,0x8A,0x01,0xF8,0x02,0x5A,0x02,0xA8,0x02,0xEB,0x03,0x5C, 0x39, 0, 19, 0xB1,0x03,0xB9,0x04,0x0A,0x04,0x52,0x04,0x91,0x04,0xF8,0x05,0x51,0x05,0xA4,0x05,0xF4,0x06,0x3F, 0x39, 0, 15, 0xB2,0x06,0x81,0x06,0xBC,0x06,0xF6,0x07,0x2D,0x07,0x65,0x07,0xCB,0x07,0xCD, //G+ 0x39, 0, 19, 0xB3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x85,0x01,0x1A,0x01,0x8C,0x01,0xE0,0x02,0x28,0x02,0x9F, 0x39, 0, 19, 0xB4,0x02,0xFE,0x03,0x50,0x03,0x98,0x03,0xD8,0x04,0x44,0x04,0x9C,0x04,0xEC,0x05,0x36,0x05,0x79, 0x39, 0, 15, 0xB5,0x05,0xB7,0x05,0xF0,0x06,0x25,0x06,0x59,0x06,0x89,0x06,0xE5,0x06,0xE7, //B+ 0x39, 0, 19, 0xB6,0x00,0x00,0x01,0x1D,0x01,0xBB,0x02,0x24,0x02,0x85,0x02,0xEF,0x03,0x46,0x03,0x92,0x04,0x12, 0x39, 0, 19, 0xB7,0x04,0x76,0x04,0xCC,0x05,0x19,0x05,0x5D,0x05,0xD1,0x06,0x31,0x06,0x8A,0x06,0xDD,0x07,0x27, 0x39, 0, 15, 0xB8,0x07,0x6F,0x07,0xB1,0x07,0xEF,0x08,0x2A,0x08,0x63,0x08,0xD1,0x08,0xD3, 0x39, 0, 2, 0xBF,0x02, //R+ 0x39, 0, 19, 0xB0,0x00,0x00,0x00,0x00,0x00,0x86,0x01,0x4E,0x01,0x96,0x01,0xEA,0x02,0x23,0x02,0x62,0x02,0xC6, 0x39, 0, 19, 0xB1,0x03,0x18,0x03,0x62,0x03,0xA1,0x03,0xDA,0x04,0x3F,0x04,0x96,0x04,0xDB,0x05,0x1B,0x05,0x56, 0x39, 0, 15, 0xB2,0x05,0x8E,0x05,0xC4,0x05,0xF3,0x06,0x26,0x06,0x53,0x06,0xA5,0x06,0xA6, //G+ 0x39, 0, 19, 0xB3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x94,0x01,0x10,0x01,0x4E,0x01,0x95,0x02,0x00, 0x39, 0, 19, 0xB4,0x02,0x57,0x02,0xA5,0x02,0xE5,0x03,0x1F,0x03,0x86,0x03,0xDD,0x04,0x25,0x04,0x66,0x04,0xA1, 0x39, 0, 15, 0xB5,0x04,0xD6,0x05,0x0A,0x05,0x35,0x05,0x62,0x05,0x8C,0x05,0xDA,0x05,0xDB, //B+ 0x39, 0, 19, 0xB6,0x00,0x00,0x00,0xBF,0x01,0x6D,0x01,0xF6,0x02,0x2F,0x02,0x7A,0x02,0xB3,0x02,0xF8,0x03,0x68, 0x39, 0, 19, 0xB7,0x03,0xC5,0x04,0x19,0x04,0x5C,0x04,0x99,0x05,0x06,0x05,0x62,0x05,0xB0,0x05,0xF6,0x06,0x36, 0x39, 0, 15, 0xB8,0x06,0x72,0x06,0xAB,0x06,0xDC,0x07,0x0E,0x07,0x3E,0x07,0x99,0x07,0x9A, 0x39, 0, 2, 0xBF,0x01, //R+ 0x39, 0, 19, 0xB0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xAC,0x01,0x0F,0x01,0x10,0x01,0x5C, 0x39, 0, 19, 0xB1,0x01,0x82,0x01,0xB1,0x01,0xD0,0x01,0xF5,0x02,0x37,0x02,0x6C,0x02,0x9E,0x02,0xCE,0x02,0xF7, 0x39, 0, 15, 0xB2,0x03,0x1F,0x03,0x44,0x03,0x66,0x03,0x87,0x03,0xA5,0x03,0xDB,0x03,0xDC, //G+ 0x39, 0, 19, 0xB3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x49, 0x39, 0, 19, 0xB4,0x00,0x79,0x00,0xC5,0x00,0xEA,0x01,0x1C,0x01,0x61,0x01,0x9F,0x01,0xD5,0x02,0x09,0x02,0x34, 0x39, 0, 15, 0xB5,0x02,0x5F,0x02,0x86,0x02,0xAA,0x02,0xCB,0x02,0xE8,0x03,0x21,0x03,0x22, //B+ 0x39, 0, 19, 0xB6,0x00,0x00,0x00,0x30,0x00,0x8F,0x01,0x00,0x01,0x58,0x01,0x87,0x01,0xC5,0x01,0xCB,0x02,0x01, 0x39, 0, 19, 0xB7,0x02,0x1F,0x02,0x48,0x02,0x63,0x02,0x85,0x02,0xC8,0x03,0x03,0x03,0x3B,0x03,0x71,0x03,0xA0, 0x39, 0, 15, 0xB8,0x03,0xCD,0x03,0xF7,0x04,0x1E,0x04,0x40,0x04,0x60,0x04,0x9B,0x04,0x9C, 0x39, 0, 2, 0xBF,0x00, //R+ 0x39, 0, 19, 0xB0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 19, 0xB1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 15, 0xB2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //G+ 0x39, 0, 19, 0xB3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 19, 0xB4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 15, 0xB5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //B+ 0x39, 0, 19, 0xB6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 19, 0xB7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x39, 0, 15, 0xB8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, #endif //By Gamma Update Echo /* 0x39, 0, 2, 0xCE,0x01, //By 26h/51h/38h/39h Change 0x39, 0, 2, 0xCC,0x00, //CMD2_Page2 0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x02, 0x39, 0, 25, 0xB9,0x00,0x04,0x00,0x0C,0x00,0x1C,0x00,0x2C,0x00,0x3C,0x00,0x4C,0x00,0x5C,0x00,0x7C,0x00,0x9C,0x00,0xBC,0x00,0xDC,0x00,0xFC, // 0x39, 0, 25, 0xBA,0x01,0x3C,0x01,0x7C,0x01,0xBC,0x01,0xFC,0x02,0x3C,0x02,0x7C,0x02,0xBC,0x02,0xFC,0x03,0x3C,0x03,0x7C,0x03,0xFC,0x03,0xFF, 0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x00, 0x39, 0, 2, 0xC0,0x77, 0x39, 0, 5, 0x3B,0x00,0x10,0x09,0x90, 0x39, 0, 2, 0x90,0x00, 0x05, 0, 1, 0x2C, 0x39, 0, 3, 0x51,0x03,0x00, */ }; #endif #if 1 /***************************************************************************** *GPIO发送swire波形 *flag: =0, SWIRE=0; =1,仅发送SWIRE信号; =2, 先置高再发SWIRE信号 *num: 发几个脉冲 *注意FLAG=1时无GPIO初始化!!!!!! *****************************************************************************/ void Gpio_swire_output(uint8_t flag, uint8_t num) { uint8_t ii; if (flag) { if (flag ==2) { hal_gpio_init_output(IO_PAD_ADCIN, IO_LVL_HIGH); //hal_gpio_set_output_data(IO_PAD_ADCIN, IO_LVL_HIGH); delayMs(2); } for (ii =0; ii< num; ii++) { hal_gpio_set_output_data(IO_PAD_ADCIN, IO_LVL_LOW); delayUs(10);//10 hal_gpio_set_output_data(IO_PAD_ADCIN, IO_LVL_HIGH); delayUs(9);//9 } } else { hal_gpio_init_output(IO_PAD_ADCIN, IO_LVL_LOW); } } //void Gpio_LED_ON_output(uint8_t flag, uint8_t num) //{ // uint8_t ii; // if (flag) // { // if (flag ==2) // { // hal_gpio_init_output(IO_PAD_PWMEN, IO_LVL_HIGH); // delayMs(2); // } // for (ii =0; ii< num; ii++) // { // hal_gpio_set_output_data(IO_PAD_PWMEN, IO_LVL_LOW); // delayUs(12); // hal_gpio_set_output_data(IO_PAD_PWMEN, IO_LVL_HIGH); // delayUs(10); // } // } // else // { // hal_gpio_init_output(IO_PAD_PWMEN, IO_LVL_LOW); // } //} #endif static bool ap_dcs_read(uint8_t data_type, uint8_t dcs_cmd, uint8_t param) { #ifdef USE_FOR_MI10_PRO #if 1 //Android 11 test if (dcs_cmd == 0xA1) { hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, DSI_ACK_DT_DSC_LONG_RESPONSE, DSI_VC_0, 0x0A,0x01,0x0B,0x80,0x96,0x00,0x00,0x00,0x00,0x00,0x00); } else if (dcs_cmd == 0xA8) { phone_DisplayOFF_flag=1; hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, DSI_ACK_DT_DSC_LONG_RESPONSE, DSI_VC_0, 0x0A,0x00,0x00,0x00,0x01,0xF9,0x0B,0xB5,0x0C,0x5B,0x95); } else if (dcs_cmd == 0xFB) { hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, DSI_ACK_DT_DSC_SHORT_RESPONSE_2B, DSI_VC_0, 2, 0x02,0x7B); } else if (dcs_cmd == 0xC8) { uint32_t return_size = hal_dsi_rx_ctrl_get_max_ret_size(g_rx_ctrl_handle); uint8_t cmd[] = {DSI_ACK_DT_DSC_LONG_RESPONSE,0x00,0x00,0x01, 0xAA,0xA9,0x95,0x99,0x7C,0xD9,0x52,0x39,0x87,0x09,0xF6,0x3A,0xA7,0x99,0xCF,0x55, 0x55,0x40,0x5E,0x54,0x7E,0x31,0x2B,0x50,0x07,0x05,0x21,0xC9,0xD2,0xDD,0x00,0x00, 0x00,0xA0,0xBB,0xB3,0x4E,0x9A,0x66,0x65,0x65,0x65,0x00,0x00,0x00,0xAA,0xA9,0x95, 0x5A,0x55,0x93,0x5A,0x55,0x93,0x0C,0xF8,0x3E,0xAA,0x9B,0xD3,0x55,0x55,0x40,0x60, 0x57,0x82,0x33,0x2F,0x55,0x09,0x0A,0x26,0xCB,0xDE,0xE5,0x00,0x00,0x00,0x9F,0xCE, 0xBE,0x62,0xBB,0x8E,0x65,0x65,0x65,0x00,0x00,0x00,0xAA,0xA9,0x95,0x5A,0x55,0x93, 0x5A,0x55,0x93,0x0B,0xF7,0x3D,0xAA,0x9C,0xD4,0x55,0x55,0x40,0x60,0x59,0x83,0x34, 0x34,0x57,0x0B,0x12,0x2B,0xCC,0xEE,0xED,0x00,0x00,0x00,0xA3,0xE2,0xCC,0x7A,0xD6, 0xA5,0x65,0x65,0x65,0x00,0x00,0x00}; cmd[1]=return_size&0xFF; cmd[2]=(return_size>>8)&0xFF; hal_dsi_rx_ctrl_ack_long_cmd(g_rx_ctrl_handle, return_size+4, cmd); } else if (dcs_cmd == 0xC9) { uint32_t return_size = hal_dsi_rx_ctrl_get_max_ret_size(g_rx_ctrl_handle); // TAU_LOGD("r[%x] [%d]!!!!!!\n", dcs_cmd, return_size); #if 1 hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, DSI_ACK_DT_DSC_LONG_RESPONSE, DSI_VC_0,0xB4, 0xAA,0xA9,0x95,0x5A,0x55,0x93,0x5A,0x55,0x93,0x08,0xF5,0x3B,0xA8,0x9B,0xD3,0x55, 0x55,0x40,0x5F,0x5B,0x83,0x31,0x38,0x57,0x08,0x18,0x2C,0xC8,0xFA,0xEF,0x00,0x00, 0x00,0xA5,0xF1,0xD6,0x8B,0xE5,0xB1,0x65,0x65,0x65,0x00,0x00,0x00,0xAA,0xA9,0x95, 0x5A,0x55,0x93,0x5A,0x55,0x93,0x04,0xF1,0x37,0xA5,0x9A,0xD0,0x55,0x55,0x44,0x5C, 0x5B,0x82,0x30,0x3B,0x57,0x07,0x1E,0x2E,0xC8,0x05,0xF6,0x00,0x00,0x00,0xAC,0xFE, 0xE0,0x93,0xF4,0xC1,0x65,0x65,0x65,0x00,0x00,0x00,0xAA,0xA9,0x95,0x5A,0x55,0x93, 0x5A,0x55,0x93,0x05,0xF3,0x39,0xA7,0xA0,0xD4,0x55,0x55,0x45,0x5F,0x66,0x88,0x35, 0x49,0x5E,0x0C,0x33,0x39,0xD2,0x20,0x08,0x10,0x40,0x00,0xB6,0x1B,0xF7,0x9E,0x0B, 0xE4,0x65,0x65,0x65,0x00,0x00,0x00,0xAA,0xA5,0x95,0x5A,0x55,0x93,0x5A,0x55,0x93, 0xE1,0xD4,0x13,0x8C,0x8E,0xB9,0x55,0x55,0x45,0x4C,0x62,0x77,0x26,0x4D,0x55,0x01, 0x3F,0x35,0xD2,0x33,0x13,0x14,0x40,0x00,0xBA,0x2E,0x04,0xA3,0x1F,0xF2,0x65,0x65, 0x65,0x00,0x00,0x00); #else uint8_t cmd1[] = {DSI_ACK_DT_DSC_LONG_RESPONSE,0x00,0x00,0x01, 0xAA,0xA9,0x95,0x5A,0x55,0x93,0x5A,0x55,0x93,0x08,0xF5,0x3B,0xA8,0x9B,0xD3,0x55, 0x55,0x40,0x5F,0x5B,0x83,0x31,0x38,0x57,0x08,0x18,0x2C,0xC8,0xFA,0xEF,0x00,0x00, 0x00,0xA5,0xF1,0xD6,0x8B,0xE5,0xB1,0x65,0x65,0x65,0x00,0x00,0x00,0xAA,0xA9,0x95, 0x5A,0x55,0x93,0x5A,0x55,0x93,0x04,0xF1,0x37,0xA5,0x9A,0xD0,0x55,0x55,0x44,0x5C, 0x5B,0x82,0x30,0x3B,0x57,0x07,0x1E,0x2E,0xC8,0x05,0xF6,0x00,0x00,0x00,0xAC,0xFE, 0xE0,0x93,0xF4,0xC1,0x65,0x65,0x65,0x00,0x00,0x00,0xAA,0xA9,0x95,0x5A,0x55,0x93, 0x5A,0x55,0x93,0x05,0xF3,0x39,0xA7,0xA0,0xD4,0x55,0x55,0x45,0x5F,0x66,0x88,0x35, 0x49,0x5E,0x0C,0x33,0x39,0xD2,0x20,0x08,0x10,0x40,0x00,0xB6,0x1B,0xF7,0x9E,0x0B, 0xE4,0x65,0x65,0x65,0x00,0x00,0x00,0xAA,0xA5,0x95,0x5A,0x55,0x93,0x5A,0x55,0x93, 0xE1,0xD4,0x13,0x8C,0x8E,0xB9,0x55,0x55,0x45,0x4C,0x62,0x77,0x26,0x4D,0x55,0x01, 0x3F,0x35,0xD2,0x33,0x13,0x14,0x40,0x00,0xBA,0x2E,0x04,0xA3,0x1F,0xF2,0x65,0x65, 0x65,0x00,0x00,0x00}; cmd1[1]=return_size&0xFF; cmd1[2]=(return_size>>8)&0xFF; hal_dsi_rx_ctrl_ack_long_cmd(g_rx_ctrl_handle, return_size+4, cmd1); #endif } else if (dcs_cmd == 0xB3) { uint32_t return_size = hal_dsi_rx_ctrl_get_max_ret_size(g_rx_ctrl_handle); uint8_t cmd[] = {DSI_ACK_DT_DSC_LONG_RESPONSE,0x00,0x00,0x01, 0x21,0x50,0xAE,0xAA,0x95,0xE8,0xBD,0x2D,0x88,0x6C,0xC4,0x34,0x1C,0x67,0xC2,0xB2, 0xEE,0x55,0x55,0x40,0x72,0x66,0x97,0x42,0x3A,0x64,0x16,0x10,0x33,0xD1,0xD2,0xE7, 0x00,0x00,0x00,0xA3,0xB3,0xB7,0x3C,0x92,0x73,0x65,0x65,0x65,0x00,0x00,0x00}; cmd[1]=return_size&0xFF; cmd[2]=(return_size>>8)&0xFF; hal_dsi_rx_ctrl_ack_long_cmd(g_rx_ctrl_handle, return_size+4, cmd); } else if (dcs_cmd == 0x01) { ap_get_tp_calibration_status_01(g_rx_ctrl_handle,param); } else { uint32_t return_size = hal_dsi_rx_ctrl_get_max_ret_size(g_rx_ctrl_handle); hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, DSI_ACK_DT_DSC_SHORT_RESPONSE_1B, DSI_VC_0, 1, dcs_cmd); TAU_LOGD("r[%x] [%d] err!!!!!!\n", dcs_cmd, return_size); } //TAU_LOGD("r %x\n",dcs_cmd); return true; #else if (dcs_cmd == 0xA1) { hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, DSI_ACK_DT_DSC_LONG_RESPONSE, DSI_VC_0, 0x0A,0x01,0x0B,0x80,0x96,0x00,0x00,0x00,0x00,0x00,0x00); } else if (dcs_cmd == 0xA8) { hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, DSI_ACK_DT_DSC_LONG_RESPONSE, DSI_VC_0, 0x0A,0x00,0x00,0x00,0x01,0xF9,0x0B,0xAF,0x0C,0x51,0x96); } else if (dcs_cmd == 0xC8) { uint32_t return_size = hal_dsi_rx_ctrl_get_max_ret_size(g_rx_ctrl_handle); if (return_size == 0x0A) { hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, DSI_ACK_DT_DSC_LONG_RESPONSE, DSI_VC_0, return_size, 0xAA,0xA9,0x95,0x99,0x79,0xD8,0x52,0x37,0x86,0x0C); } else if (return_size == 0x18) { hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, DSI_ACK_DT_DSC_LONG_RESPONSE, DSI_VC_0, return_size, 0xAA,0xA9,0x95,0x99,0x79,0xD8,0x52,0x37,0x86,0x0C, 0xF7,0x3A,0xAA,0x9B,0xD1,0x55,0x55,0x40,0x63,0x57,0x82,0x37,0x2F,0x54); } else if (return_size == 0x26) { hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, DSI_ACK_DT_DSC_LONG_RESPONSE, DSI_VC_0, return_size, 0xAA,0xA9,0x95,0x99,0x79,0xD8,0x52,0x37,0x86,0x0C,0xF7,0x3A,0xAA, 0x9B,0xD1,0x55,0x55,0x40,0x63,0x57,0x82,0x37,0x2F,0x54,0x0D,0x08,0x25, 0xD2,0xD9,0xE3,0x00,0x00,0x00,0xA8,0xC0,0xB7,0x5C,0xA2); } else if (return_size == 0x34) { hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, DSI_ACK_DT_DSC_LONG_RESPONSE, DSI_VC_0, return_size, 0xAA,0xA9,0x95,0x99,0x79,0xD8,0x52,0x37,0x86,0x0C,0xF7,0x3A,0xAA,0x9B,0xD1,0x55, 0x55,0x40,0x63,0x57,0x82,0x37,0x2F,0x54,0x0D,0x08,0x25,0xD2,0xD9,0xE3,0x00,0x00, 0x00,0xA8,0xC0,0xB7,0x5C,0xA2,0x6B,0x6B,0x6B,0x6B,0x00,0x00,0x00,0xAA,0xA9,0x95, 0x5A,0x52,0x92,0x5A); } else if (return_size == 0x42) { hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, DSI_ACK_DT_DSC_LONG_RESPONSE, DSI_VC_0, return_size, 0xAA,0xA9,0x95,0x99,0x79,0xD8,0x52,0x37,0x86,0x0C,0xF7,0x3A,0xAA,0x9B,0xD1,0x55, 0x55,0x40,0x63,0x57,0x82,0x37,0x2F,0x54,0x0D,0x08,0x25,0xD2,0xD9,0xE3,0x00,0x00, 0x00,0xA8,0xC0,0xB7,0x5C,0xA2,0x6B,0x6B,0x6B,0x6B,0x00,0x00,0x00,0xAA,0xA9,0x95, 0x5A,0x52,0x92,0x5A,0x52,0x92,0x0F,0xF9,0x3E,0xAD,0x9D,0xD5,0x55,0x55,0x40,0x65, 0x5A,0x86); } else if (return_size == 0x50) { hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, DSI_ACK_DT_DSC_LONG_RESPONSE, DSI_VC_0, return_size, 0xAA,0xA9,0x95,0x99,0x79,0xD8,0x52,0x37,0x86,0x0C,0xF7,0x3A,0xAA,0x9B,0xD1,0x55, 0x55,0x40,0x63,0x57,0x82,0x37,0x2F,0x54,0x0D,0x08,0x25,0xD2,0xD9,0xE3,0x00,0x00, 0x00,0xA8,0xC0,0xB7,0x5C,0xA2,0x6B,0x6B,0x6B,0x6B,0x00,0x00,0x00,0xAA,0xA9,0x95, 0x5A,0x52,0x92,0x5A,0x52,0x92,0x0F,0xF9,0x3E,0xAD,0x9D,0xD5,0x55,0x55,0x40,0x65, 0x5A,0x86,0x39,0x33,0x59,0x0F,0x0D,0x2A,0xD4,0xE4,0xEB,0x00,0x00,0x00,0xA7,0xD5); } else if (return_size == 0x5E) { hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, DSI_ACK_DT_DSC_LONG_RESPONSE, DSI_VC_0, return_size, 0xAA,0xA9,0x95,0x99,0x79,0xD8,0x52,0x37,0x86,0x0C,0xF7,0x3A,0xAA,0x9B,0xD1,0x55, 0x55,0x40,0x63,0x57,0x82,0x37,0x2F,0x54,0x0D,0x08,0x25,0xD2,0xD9,0xE3,0x00,0x00, 0x00,0xA8,0xC0,0xB7,0x5C,0xA2,0x6B,0x6B,0x6B,0x6B,0x00,0x00,0x00,0xAA,0xA9,0x95, 0x5A,0x52,0x92,0x5A,0x52,0x92,0x0F,0xF9,0x3E,0xAD,0x9D,0xD5,0x55,0x55,0x40,0x65, 0x5A,0x86,0x39,0x33,0x59,0x0F,0x0D,0x2A,0xD4,0xE4,0xEB,0x00,0x00,0x00,0xA7,0xD5, 0xC2,0x6F,0xC0,0x92,0x6B,0x6B,0x6B,0x00,0x00,0x00,0xAA,0xA9,0x95,0x5A); } else if (return_size == 0x6C) { hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, DSI_ACK_DT_DSC_LONG_RESPONSE, DSI_VC_0, return_size, 0xAA,0xA9,0x95,0x99,0x79,0xD8,0x52,0x37,0x86,0x0C,0xF7,0x3A,0xAA,0x9B,0xD1,0x55, 0x55,0x40,0x63,0x57,0x82,0x37,0x2F,0x54,0x0D,0x08,0x25,0xD2,0xD9,0xE3,0x00,0x00, 0x00,0xA8,0xC0,0xB7,0x5C,0xA2,0x6B,0x6B,0x6B,0x6B,0x00,0x00,0x00,0xAA,0xA9,0x95, 0x5A,0x52,0x92,0x5A,0x52,0x92,0x0F,0xF9,0x3E,0xAD,0x9D,0xD5,0x55,0x55,0x40,0x65, 0x5A,0x86,0x39,0x33,0x59,0x0F,0x0D,0x2A,0xD4,0xE4,0xEB,0x00,0x00,0x00,0xA7,0xD5, 0xC2,0x6F,0xC0,0x92,0x6B,0x6B,0x6B,0x00,0x00,0x00,0xAA,0xA9,0x95,0x5A,0x52,0x92, 0x5A,0x52,0x92,0x0E,0xF8,0x3D,0xAD,0x9E,0xD6,0x55,0x55,0x40); } else if (return_size == 0x7A) { hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, DSI_ACK_DT_DSC_LONG_RESPONSE, DSI_VC_0, return_size, 0xAA,0xA9,0x95,0x99,0x79,0xD8,0x52,0x37,0x86,0x0C,0xF7,0x3A,0xAA,0x9B,0xD1,0x55, 0x55,0x40,0x63,0x57,0x82,0x37,0x2F,0x54,0x0D,0x08,0x25,0xD2,0xD9,0xE3,0x00,0x00, 0x00,0xA8,0xC0,0xB7,0x5C,0xA2,0x6B,0x6B,0x6B,0x6B,0x00,0x00,0x00,0xAA,0xA9,0x95, 0x5A,0x52,0x92,0x5A,0x52,0x92,0x0F,0xF9,0x3E,0xAD,0x9D,0xD5,0x55,0x55,0x40,0x65, 0x5A,0x86,0x39,0x33,0x59,0x0F,0x0D,0x2A,0xD4,0xE4,0xEB,0x00,0x00,0x00,0xA7,0xD5, 0xC2,0x6F,0xC0,0x92,0x6B,0x6B,0x6B,0x00,0x00,0x00,0xAA,0xA9,0x95,0x5A,0x52,0x92, 0x5A,0x52,0x92,0x0E,0xF8,0x3D,0xAD,0x9E,0xD6,0x55,0x55,0x40,0x65,0x5C,0x87,0x3A, 0x38,0x5B,0x11,0x16,0x2F,0xD5,0xF3,0xF2,0x00,0x00); } else if (return_size == 0x87) { hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, DSI_ACK_DT_DSC_LONG_RESPONSE, DSI_VC_0, return_size, 0xAA,0xA9,0x95,0x99,0x79,0xD8,0x52,0x37,0x86,0x0C,0xF7,0x3A,0xAA,0x9B,0xD1,0x55, 0x55,0x40,0x63,0x57,0x82,0x37,0x2F,0x54,0x0D,0x08,0x25,0xD2,0xD9,0xE3,0x00,0x00, 0x00,0xA8,0xC0,0xB7,0x5C,0xA2,0x6B,0x6B,0x6B,0x6B,0x00,0x00,0x00,0xAA,0xA9,0x95, 0x5A,0x52,0x92,0x5A,0x52,0x92,0x0F,0xF9,0x3E,0xAD,0x9D,0xD5,0x55,0x55,0x40,0x65, 0x5A,0x86,0x39,0x33,0x59,0x0F,0x0D,0x2A,0xD4,0xE4,0xEB,0x00,0x00,0x00,0xA7,0xD5, 0xC2,0x6F,0xC0,0x92,0x6B,0x6B,0x6B,0x00,0x00,0x00,0xAA,0xA9,0x95,0x5A,0x52,0x92, 0x5A,0x52,0x92,0x0E,0xF8,0x3D,0xAD,0x9E,0xD6,0x55,0x55,0x40,0x65,0x5C,0x87,0x3A, 0x38,0x5B,0x11,0x16,0x2F,0xD5,0xF3,0xF2,0x00,0x00,0x00,0xAB,0xE8,0xD1,0x85,0xDD, 0xA9,0x6B,0x6B,0x6B,0x00,0x00,0x00); } else { TAU_LOGD("r[%x] [%d] err\n", dcs_cmd, return_size); } } else if (dcs_cmd == 0xC9) { #if 1 uint32_t return_size = hal_dsi_rx_ctrl_get_max_ret_size(g_rx_ctrl_handle); if (return_size == 0x96) { hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, DSI_ACK_DT_DSC_LONG_RESPONSE, DSI_VC_0, return_size, 0xAA,0xA9,0x95,0x5A,0x52,0x92,0x5A,0x52,0x92,0x0B,0xF6,0x3B,0xAB,0x9D,0xD5,0x55, 0x55,0x40,0x64,0x5E,0x87,0x37,0x3B,0x5B,0x0E,0x1C,0x30,0xD1,0xFE,0xF4,0x00,0x00, 0x00,0xAE,0xF6,0xDC,0x95,0xEB,0xB5,0x6B,0x6B,0x6B,0x00,0x00,0x00,0xAA,0xA9,0x95, 0x5A,0x52,0x92,0x5A,0x52,0x92,0x07,0xF2,0x37,0xA8,0x9C,0xD2,0x55,0x55,0x44,0x61, 0x5E,0x86,0x36,0x3E,0x5B,0x0D,0x21,0x32,0xD1,0x08,0xFB,0x10,0x00,0x00,0xB5,0x02, 0xE6,0x9C,0xF9,0xC6,0x6B,0x6B,0x6B,0x00,0x00,0x00,0xAA,0xA9,0x95,0x5A,0x52,0x92, 0x5A,0x52,0x92,0x08,0xF4,0x39,0xAA,0xA2,0xD6,0x55,0x55,0x45,0x64,0x68,0x8C,0x3B, 0x4D,0x62,0x12,0x37,0x3D,0xDB,0x24,0x0D,0x10,0x40,0x00,0xBF,0x1F,0xFC,0xA6,0x0E, 0xEA,0x6B,0x6B,0x6B,0x00,0x00,0x00,0xAA,0xA5,0x95,0x5A,0x52,0x92,0x5A,0x52,0x92, 0xE4,0xD5,0x14,0x90,0x90,0xBC); } else { uint8_t cmd[] = {DSI_ACK_DT_DSC_LONG_RESPONSE,0x00,0x00,0x01, 0xAA,0xA9,0x95,0x5A,0x52,0x92,0x5A,0x52,0x92,0x0B,0xF6,0x3B,0xAB,0x9D,0xD5,0x55, 0x55,0x40,0x64,0x5E,0x87,0x37,0x3B,0x5B,0x0E,0x1C,0x30,0xD1,0xFE,0xF4,0x00,0x00, 0x00,0xAE,0xF6,0xDC,0x95,0xEB,0xB5,0x6B,0x6B,0x6B,0x00,0x00,0x00,0xAA,0xA9,0x95, 0x5A,0x52,0x92,0x5A,0x52,0x92,0x07,0xF2,0x37,0xA8,0x9C,0xD2,0x55,0x55,0x44,0x61, 0x5E,0x86,0x36,0x3E,0x5B,0x0D,0x21,0x32,0xD1,0x08,0xFB,0x10,0x00,0x00,0xB5,0x02, 0xE6,0x9C,0xF9,0xC6,0x6B,0x6B,0x6B,0x00,0x00,0x00,0xAA,0xA9,0x95,0x5A,0x52,0x92, 0x5A,0x52,0x92,0x08,0xF4,0x39,0xAA,0xA2,0xD6,0x55,0x55,0x45,0x64,0x68,0x8C,0x3B, 0x4D,0x62,0x12,0x37,0x3D,0xDB,0x24,0x0D,0x10,0x40,0x00,0xBF,0x1F,0xFC,0xA6,0x0E, 0xEA,0x6B,0x6B,0x6B,0x00,0x00,0x00,0xAA,0xA5,0x95,0x5A,0x52,0x92,0x5A,0x52,0x92, 0xE4,0xD5,0x14,0x90,0x90,0xBC,0x55,0x55,0x45,0x51,0x65,0x7B,0x2C,0x50,0x59,0x07, 0x42,0x39,0xDB,0x37,0x18,0x14,0x40,0x00,0xC2,0x32,0x09,0xAB,0x22,0xF7,0x6B,0x6B, 0x6B,0x00,0x00,0x00}; cmd[1]=return_size&0xFF; cmd[2]=(return_size>>8)&0xFF; hal_dsi_rx_ctrl_ack_long_cmd(g_rx_ctrl_handle, return_size+4, cmd); } #else uint32_t return_size = hal_dsi_rx_ctrl_get_max_ret_size(g_rx_ctrl_handle); if (return_size <= 0xB4) { hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, DSI_ACK_DT_DSC_LONG_RESPONSE, DSI_VC_0, return_size, 0xAA,0xA9,0x95,0x5A,0x52,0x92,0x5A,0x52,0x92,0x0B,0xF6,0x3B,0xAB,0x9D,0xD5,0x55, 0x55,0x40,0x64,0x5E,0x87,0x37,0x3B,0x5B,0x0E,0x1C,0x30,0xD1,0xFE,0xF4,0x00,0x00, 0x00,0xAE,0xF6,0xDC,0x95,0xEB,0xB5,0x6B,0x6B,0x6B,0x00,0x00,0x00,0xAA,0xA9,0x95, 0x5A,0x52,0x92,0x5A,0x52,0x92,0x07,0xF2,0x37,0xA8,0x9C,0xD2,0x55,0x55,0x44,0x61, 0x5E,0x86,0x36,0x3E,0x5B,0x0D,0x21,0x32,0xD1,0x08,0xFB,0x10,0x00,0x00,0xB5,0x02, 0xE6,0x9C,0xF9,0xC6,0x6B,0x6B,0x6B,0x00,0x00,0x00,0xAA,0xA9,0x95,0x5A,0x52,0x92, 0x5A,0x52,0x92,0x08,0xF4,0x39,0xAA,0xA2,0xD6,0x55,0x55,0x45,0x64,0x68,0x8C,0x3B, 0x4D,0x62,0x12,0x37,0x3D,0xDB,0x24,0x0D,0x10,0x40,0x00,0xBF,0x1F,0xFC,0xA6,0x0E, 0xEA,0x6B,0x6B,0x6B,0x00,0x00,0x00,0xAA,0xA5,0x95,0x5A,0x52,0x92,0x5A,0x52,0x92, 0xE4,0xD5,0x14,0x90,0x90,0xBC,0x55,0x55,0x45,0x51,0x65,0x7B,0x2C,0x50,0x59,0x07, 0x42,0x39,0xDB,0x37,0x18,0x14,0x40,0x00,0xC2,0x32,0x09,0xAB,0x22,0xF7,0x6B,0x6B, 0x6B,0x00,0x00,0x00); } else { TAU_LOGD("r[%x] [%d] err\n", dcs_cmd, return_size); } #endif } else if (dcs_cmd == 0xB3) { uint32_t return_size = hal_dsi_rx_ctrl_get_max_ret_size(g_rx_ctrl_handle); if (return_size <= 0x2F) { hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, DSI_ACK_DT_DSC_LONG_RESPONSE, DSI_VC_0, return_size, 0x21,0x50,0xAE,0xAA,0x95,0xE8,0xBC,0x2C,0x88,0x69,0xC3,0x36,0x1B,0x66,0xC5,0xB4, 0xEF,0x55,0x55,0x40,0x77,0x69,0x9A,0x48,0x3E,0x68,0x1C,0x13,0x37,0xDA,0xD9,0xED, 0x00,0x00,0x00,0xAB,0xB9,0xBB,0x47,0x9A,0x78,0x6B,0x6B,0x6B,0x00,0x00,0x00); } else { TAU_LOGD("r[%x] [%d] err\n", dcs_cmd, return_size); } } else { uint32_t return_size = hal_dsi_rx_ctrl_get_max_ret_size(g_rx_ctrl_handle); hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, DSI_ACK_DT_DSC_SHORT_RESPONSE_1B, DSI_VC_0, 1, dcs_cmd); TAU_LOGD("r[%x] [%d] err!!!!!!\n", dcs_cmd, return_size); } //TAU_LOGD("r %x\n",dcs_cmd); return true; #endif #endif // USE_FOR_MI10_PRO #if 0// MI10 if (dcs_cmd == 0xA1) { hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, DSI_ACK_DT_DSC_SHORT_RESPONSE_2B, DSI_VC_0, 2, 0x00,0x40); } else if (dcs_cmd == 0xA2) { hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, DSI_ACK_DT_DSC_SHORT_RESPONSE_2B, DSI_VC_0, 2, 0x00,0x40); } else if (dcs_cmd == 0xA3) { hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, DSI_ACK_DT_DSC_LONG_RESPONSE, DSI_VC_0, 8, 0x01,0xF4,0x03,0x00,0x00,0x03,0x01,0x04); } else { uint32_t return_size = hal_dsi_rx_ctrl_get_max_ret_size(g_rx_ctrl_handle); hal_dsi_rx_ctrl_send_ack_cmd(g_rx_ctrl_handle, DSI_ACK_DT_DSC_SHORT_RESPONSE_1B, DSI_VC_0, 1, dcs_cmd); TAU_LOGD("r[%x] [%d] err!!!!!!\n", dcs_cmd, return_size); } //TAU_LOGD("r %x\n",dcs_cmd); return true; #endif // USE_FOR_MI10 } /* PPS update callback 用于分辨率切换case */ static bool pps_update_handle(uint8_t *pps, uint8_t size, uint32_t pic_width, uint32_t pic_height) { #if 1 /* AVDD 上电, 用于解决息屏开屏PPS不更新问题 */ //hal_dsi_rx_ctrl_set_sw_tear_mode(g_rx_ctrl_handle); if (pic_width != g_rx_ctrl_handle->base_info.src_w || pic_height != g_rx_ctrl_handle->base_info.src_h) { /* PPS Update 且分辨率发生变化 */ g_rx_ctrl_handle->base_info.src_w = pic_width; g_rx_ctrl_handle->base_info.src_h = pic_height; /* 注意部分基板更新PPS前不发 Compression Mode Command的情况 */ g_rx_ctrl_handle->compress_en = true; if(pic_width > 720) { g_tx_ctrl_handle->base_info.src_w = pic_width; g_tx_ctrl_handle->base_info.src_h = pic_height; } hal_dsi_rx_ctrl_toggle_resolution(g_rx_ctrl_handle); } // hal_dsi_rx_ctrl_set_hw_tear_mode(g_rx_ctrl_handle); // hal_dsi_rx_ctrl_set_te_waveform(g_rx_ctrl_handle,0,178); TAU_LOGD("PPS Update"); return true; #endif } static bool ap_set_display_on(hal_dsi_rx_ctrl_handle_t *handler, hal_dcs_packet_t *dcs_packet) { TAU_LOGD("disp on"); // hal_gpio_set_output_data(IO_PAD_ADCIN, IO_LVL_HIGH); // tx_display_on(); //hal_dsi_tx_ctrl_write_cmd(0x05, 0, 2, 0x29); return true; } static bool ap_set_display_off(hal_dsi_rx_ctrl_handle_t *handler, hal_dcs_packet_t *dcs_packet) { TAU_LOGD("disp off"); hal_dsi_tx_ctrl_write_cmd(0x05, 0, 1, 0x28); finger_calibration_init(); // hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x51, 0x00, 0x00); // hal_dsi_tx_ctrl_write_cmd(0x05, 0, 2, 0x28); // hal_gpio_set_output_data(IO_PAD_ADCIN, IO_LVL_LOW); return true; } static bool ap_set_enter_sleep_mode(hal_dsi_rx_ctrl_handle_t *handler, hal_dcs_packet_t *dcs_packet) { // hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x51, 0x00, 0x00); hal_dsi_rx_ctrl_set_sw_tear_mode(g_rx_ctrl_handle); delayMs(10); Gpio_swire_output(0, 0); hal_dsi_tx_ctrl_write_cmd(0x05, 0, 1, 0x10); delayMs(30); //20 20230722 之前是没有这个延时的 hal_gpio_set_output_data(IO_PAD_PWMEN, IO_LVL_LOW); hal_dsi_tx_ctrl_panel_reset_pin(IO_LVL_LOW);//屏端Reaet TAU_LOGD("enter sleep mode"); #if ENABLE_TP_WAKE_UP g_need_enter_sleep_mode = true; #endif g_exit_sleep_mode = false; return true; } static bool ap_set_exit_sleep_mode(hal_dsi_rx_ctrl_handle_t *handler, hal_dcs_packet_t *dcs_packet) { TAU_LOGD("exit sleep mode"); //start_display_on = true; g_exit_sleep_mode = true; /* AVDD 上电, 用于解决息屏开屏PPS不更新问题 */ // hal_gpio_set_output_data(IO_PAD_PWMEN, IO_LVL_HIGH); //soft_te_timer_init(); // hal_dsi_rx_ctrl_set_sw_tear_mode(g_rx_ctrl_handle); //hal_dsi_tx_ctrl_write_cmd(0x05, 0, 2, 0x11); return true; } /* 调整背光B1回调 g_cus_rx_dcs_execute_table 里配置为异步执行,CA同理*/ uint16_t value_reg_b1 =0; uint16_t value_reg_ca =0; //static uint32_t value_reg_b5 =0; static uint32_t value_reg_df =0; static uint8_t value_blue =0; static uint8_t blue_flag =0; #if 1 //护眼设置 #define BLUE_MAX 0xF0 //蓝光最大值 #define BLUE_MIN 0x86 //蓝光最小值 #define BLUE_STEP 10 //蓝光等级数-1 #endif #if 1//def USE_FOR_SUMSUNG_S20 static uint32_t s20_power_on_flag =0; // >0: 为开机标记。延时开背光 uint16_t value_reg_ca_bak =0; uint16_t value_reg_b1_bak =0; //#define USE_BL_ADJ6 //之前S20调光方式 #define USE_BL_ADJ7 //改过后S20调光方式 #endif #if 1 // static bool ap_set_backlight(hal_dsi_rx_ctrl_handle_t *handler, hal_dcs_packet_t *dcs_packet) { /* AP 缓慢调光 0xC 最亮, 0xb8d 最暗, 快速拉动时会跳会0xC,调光平滑度需要进一步优化 */ uint8_t temp_u8; value_reg_b1 = (dcs_packet->packet_param[0] << 8) + dcs_packet->packet_param[1]; // printf("CA[%4x],B1[%4x] \n", value_reg_ca, value_reg_b1); #ifdef USE_BL_ADJ7 if (value_reg_b1 &0x8000) { //设置为60Hz if(value_reg_ca >0x15FC) { swire_num = SWIRE_MAX_NUM; } else if(value_reg_ca >0x15ED) { swire_num = SWIRE_MAX_NUM+1; } else if(value_reg_ca >0x15DD) { swire_num = SWIRE_MAX_NUM+2; } else if(value_reg_ca >0x15CC) { swire_num = SWIRE_MAX_NUM+3; } else if(value_reg_ca >0x15BE) { swire_num = SWIRE_MAX_NUM+4; } else if(value_reg_ca >0x15AC) { swire_num = SWIRE_MAX_NUM+5; } else if(value_reg_ca >0x159A) { swire_num = SWIRE_MAX_NUM+6; } else if(value_reg_ca >0x155E) { swire_num = SWIRE_MAX_NUM+7; } else { if(value_reg_b1_bak <0x500) { swire_num = SWIRE_MAX_NUM+8; } else if(value_reg_b1_bak <0x900) { swire_num = SWIRE_MAX_NUM+9; } else if(value_reg_b1_bak <0xAE0) { swire_num = SWIRE_MAX_NUM+10; } else if(value_reg_b1_bak <0xBE8) { swire_num = SWIRE_MAX_NUM+11; } else if(value_reg_b1_bak <0xC38) { swire_num = SWIRE_MAX_NUM+12; } else { swire_num = SWIRE_MAX_NUM+13; } } } else if (value_reg_b1 &0x4000) { //设置为120Hz if(value_reg_ca >0x15AC) { swire_num = SWIRE_MAX_NUM; } else if(value_reg_ca >0x159A) { swire_num = SWIRE_MAX_NUM+1; } else if(value_reg_ca >0x158B) { swire_num = SWIRE_MAX_NUM+2; } else if(value_reg_ca >0x157B) { swire_num = SWIRE_MAX_NUM+3; } else if(value_reg_ca >0x156A) { swire_num = SWIRE_MAX_NUM+4; } else if(value_reg_ca >0x1559) { swire_num = SWIRE_MAX_NUM+5; } else if(value_reg_ca >0x1547) { swire_num = SWIRE_MAX_NUM+6; } else if(value_reg_ca >0x1510) { swire_num = SWIRE_MAX_NUM+7; } else { if(value_reg_b1_bak <0x500) { swire_num = SWIRE_MAX_NUM+8; } else if(value_reg_b1_bak <0x900) { swire_num = SWIRE_MAX_NUM+9; } else if(value_reg_b1_bak <0xAE0) { swire_num = SWIRE_MAX_NUM+10; } else if(value_reg_b1_bak <0xBE8) { swire_num = SWIRE_MAX_NUM+11; } else if(value_reg_b1_bak <0xC38) { swire_num = SWIRE_MAX_NUM+12; } else { swire_num = SWIRE_MAX_NUM+13; } } } else { value_reg_b1_bak = value_reg_b1; if ((value_reg_ca ==0x2A00) &&(value_reg_b1 >0x500)) s20_power_on_flag =1; else s20_power_on_flag =0; } #if 1 if (swire_num !=swire_num_bak) { swire_num_bak = swire_num; // printf("CA[%4x],B1[%4x]. swire_num[%d]\n", value_reg_ca, value_reg_b1,swire_num); } #endif #endif // // USE_BL_ADJ4 #ifdef USE_BL_ADJ6 if ( (value_reg_b1 &0xC000) || ((value_reg_b1_bak == value_reg_b1)&&(value_reg_ca_bak == value_reg_ca))) { return true; } value_reg_b1_bak = value_reg_b1; value_reg_ca_bak = value_reg_ca; if(value_reg_ca >0x15FC) { swire_num = SWIRE_MAX_NUM; } else if(value_reg_ca >0x15EC) { swire_num = SWIRE_MAX_NUM+1; } else if(value_reg_ca >0x15EC) { swire_num = SWIRE_MAX_NUM+2; } else if(value_reg_ca >0x15DD) { swire_num = SWIRE_MAX_NUM+3; } else if(value_reg_ca >0x15CC) { swire_num = SWIRE_MAX_NUM+4; } else if(value_reg_ca >0x15BE) { swire_num = SWIRE_MAX_NUM+5; } else if(value_reg_ca >0x15AC) { swire_num = SWIRE_MAX_NUM+7; } else if(value_reg_ca >0x159A) { swire_num = SWIRE_MAX_NUM+8; } else if(value_reg_ca >0x155E) { swire_num = SWIRE_MAX_NUM+9; } else { if(value_reg_b1 <0x500) { swire_num = SWIRE_MAX_NUM+10; } else if(value_reg_b1 <0x900) { swire_num = SWIRE_MAX_NUM+11; } else if(value_reg_b1 <0xAE0) { swire_num = SWIRE_MAX_NUM+12; } else if(value_reg_b1 <0xBE8) { swire_num = SWIRE_MAX_NUM+13; } else if(value_reg_b1 <0xC38) { swire_num = SWIRE_MAX_NUM+14; } else { swire_num = SWIRE_MAX_NUM+15; } } // printf("CA[%4x],B1[%4x]. swire_num[%d]\n", value_reg_ca, value_reg_b1,swire_num); #endif // // USE_BL_ADJ4 return true; } #endif static bool ap_get_reg_ca(hal_dsi_rx_ctrl_handle_t *handler, hal_dcs_packet_t *dcs_packet) { value_reg_ca = (dcs_packet->packet_param[0] << 8) + dcs_packet->packet_param[1]; //TAU_LOGD("CA[%x]", value_reg_ca); return true; } #if 0 static bool ap_get_reg_b5(hal_dsi_rx_ctrl_handle_t *handler, hal_dcs_packet_t *dcs_packet) { value_reg_b5 = (dcs_packet->packet_param[3] << 8) + dcs_packet->packet_param[2]; TAU_LOGD("CA[%4x],B1[%4x],B5[%4x]", value_reg_ca,value_reg_b1,value_reg_b5); return true; } #endif #ifdef ADD_PANEL_DISPLAY_MODE uint8_t panel_mode =1; // DF寄存器第1个参数。00:护眼开,01:护眼关,11:其它3种(影院/照片/基本.目前没区分) uint16_t panel_r,panel_g,panel_b; // 记录RGB参数值 #ifdef USE_FOR_SUMSUNG_S9PLUS #define RATIO_VALUE 2 //优化系数 #else #define RATIO_VALUE 2 //优化系数 #endif #endif static bool ap_get_reg_df(hal_dsi_rx_ctrl_handle_t *handler, hal_dcs_packet_t *dcs_packet) { #ifdef ADD_PANEL_DISPLAY_MODE value_reg_df = (dcs_packet->packet_param[35] << 8) + dcs_packet->packet_param[33]; panel_mode = dcs_packet->packet_param[0]; panel_r =dcs_packet->packet_param[49]; panel_g =dcs_packet->packet_param[51]; panel_b =dcs_packet->packet_param[53]; // TAU_LOGD("value_reg_df[%4x],panel_mode[%4x],panel_r[%4x],panel_g[%4x],panel_b[%4x]", value_reg_df,panel_mode,panel_r,panel_g,panel_b); if (panel_mode ==00) { //护眼模式 #ifdef USE_FOR_S10_BLUE_MODE //panel_r =256-RATIO_VALUE*(0xFF-panel_r); //panel_g =256-RATIO_VALUE*(0xFF-panel_g); //panel_b =256-RATIO_VALUE*(0xFF-panel_b); hal_dsi_rx_ctrl_set_cus_pq_gain(g_rx_ctrl_handle,panel_r,panel_g,panel_b); #else value_reg_df =value_reg_df&0xFF; switch(value_reg_df) { case 0xC1: case 0xC3: value_blue = BLUE_MIN; break; case 0xCF: case 0xD0: value_blue = BLUE_MIN+(BLUE_MAX-BLUE_MIN)/BLUE_STEP; break; case 0xD8: value_blue = BLUE_MIN+(BLUE_MAX-BLUE_MIN)*2/BLUE_STEP; break; case 0xDE: value_blue = BLUE_MIN+(BLUE_MAX-BLUE_MIN)*3/BLUE_STEP; break; case 0xE4: case 0xE5: value_blue = BLUE_MIN+(BLUE_MAX-BLUE_MIN)*4/BLUE_STEP; break; case 0xE9: case 0xEA: value_blue = BLUE_MIN+(BLUE_MAX-BLUE_MIN)*5/BLUE_STEP; break; case 0xED: case 0xEE: value_blue = BLUE_MIN+(BLUE_MAX-BLUE_MIN)*6/BLUE_STEP; break; case 0xF1: case 0xF2: value_blue = BLUE_MIN+(BLUE_MAX-BLUE_MIN)*7/BLUE_STEP; break; case 0xF4: case 0xF5: value_blue = BLUE_MIN+(BLUE_MAX-BLUE_MIN)*8/BLUE_STEP; break; case 0xF7: case 0xF8: value_blue = BLUE_MIN+(BLUE_MAX-BLUE_MIN)*9/BLUE_STEP; break; case 0xFA: value_blue = BLUE_MAX; break; default: case 0xFF: value_blue = 0; break; } hal_dsi_rx_ctrl_set_cus_pq_gain(g_rx_ctrl_handle,256,256,256); hal_dsi_tx_ctrl_write_cmd(0x15, 0, 2, 0x84, value_blue); #endif } else { #ifndef USE_FOR_S10_BLUE_MODE value_blue =0; hal_dsi_tx_ctrl_write_cmd(0x15, 0, 2, 0x84, value_blue); //护眼模式关s8+/s9+ #endif //做一下运算,让效果更加明显。这个估计要根据客户要求细调 panel_r =256-RATIO_VALUE*(0xFF-panel_r); panel_g =256-RATIO_VALUE*(0xFF-panel_g); panel_b =256-RATIO_VALUE*(0xFF-panel_b); hal_dsi_rx_ctrl_set_cus_pq_gain(g_rx_ctrl_handle,panel_r,panel_g,panel_b); } #ifndef USE_FOR_S10_BLUE_MODE if (blue_flag==0) { blue_flag =1; delayMs(20); hal_dsi_tx_ctrl_write_cmd(0x15, 0, 2, 0x84, value_blue); } #endif #else value_reg_df = (dcs_packet->packet_param[35] << 8) + dcs_packet->packet_param[33]; value_reg_df =value_reg_df&0xFF; switch(value_reg_df) { case 0xC1: case 0xC3: value_blue = BLUE_MIN; break; case 0xCF: case 0xD0: value_blue = BLUE_MIN+(BLUE_MAX-BLUE_MIN)/BLUE_STEP; break; case 0xD8: value_blue = BLUE_MIN+(BLUE_MAX-BLUE_MIN)*2/BLUE_STEP; break; case 0xDE: value_blue = BLUE_MIN+(BLUE_MAX-BLUE_MIN)*3/BLUE_STEP; break; case 0xE4: case 0xE5: value_blue = BLUE_MIN+(BLUE_MAX-BLUE_MIN)*4/BLUE_STEP; break; case 0xE9: case 0xEA: value_blue = BLUE_MIN+(BLUE_MAX-BLUE_MIN)*5/BLUE_STEP; break; case 0xED: case 0xEE: value_blue = BLUE_MIN+(BLUE_MAX-BLUE_MIN)*6/BLUE_STEP; break; case 0xF1: case 0xF2: value_blue = BLUE_MIN+(BLUE_MAX-BLUE_MIN)*7/BLUE_STEP; break; case 0xF4: case 0xF5: value_blue = BLUE_MIN+(BLUE_MAX-BLUE_MIN)*8/BLUE_STEP; break; case 0xF7: case 0xF8: value_blue = BLUE_MIN+(BLUE_MAX-BLUE_MIN)*9/BLUE_STEP; break; case 0xFA: value_blue = BLUE_MAX; break; default: case 0xFF: value_blue = 0; break; } TAU_LOGD("df[%4x]", value_reg_df); hal_dsi_tx_ctrl_write_cmd(0x15, 0, 2, 0x84, value_blue); if (blue_flag==0) { blue_flag =1; delayMs(20); hal_dsi_tx_ctrl_write_cmd(0x15, 0, 2, 0x84, value_blue); } #endif return true; } volatile static uint8_t s_finger_flag = 0; #ifdef USE_51_REG_ADJ_BL static uint32_t value_reg_51 =0; static uint32_t lastvalue_reg_51 =0; static uint8_t value_reg_67 = 0; static bool ap_get_67_reg(hal_dsi_rx_ctrl_handle_t *handler, hal_dcs_packet_t *dcs_packet) { uint32_t reg67_value =0; uint8_t reg51_l=0,reg51_h=0; value_reg_67 = dcs_packet->packet_param[0]; reg67_value = value_reg_67; // TAU_LOGD("RD67=0x[%0.4X].", reg67_value); if(dcs_packet->param_length > 2) // 数据大于2个字节才是调节 { if(g_reg51_value_1b8_flag) { g_reg51_value_1b8_flag = false; // 调光值转换 1F~FF 转换为 32(50) ~ 1B8(440) reg67_value = reg67_value+1; reg67_value = ((reg67_value-0x1F)*175)/112; // reg67_value = (reg67_value*156)/100; // TAU_LOGD("67[%x]", reg67_value); reg67_value = reg67_value + 0x09; reg51_h = (reg67_value>>8)&0xFF; reg51_l = reg67_value&0xFF; hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x51, reg51_h, reg51_l); // TAU_LOGD("51=0x[%0.2X %0.2X].", reg51_h,reg51_l); } } // TAU_LOGD("67[%x][%x]", reg67_value,dcs_packet->param_length); return true; } #if 1 static bool ap_get_51_reg(hal_dsi_rx_ctrl_handle_t *handler, hal_dcs_packet_t *dcs_packet) { uint8_t level=0; uint8_t reg51_l=0,reg51_h=0; value_reg_51 = (dcs_packet->packet_param[0] << 8) + dcs_packet->packet_param[1]; // TAU_LOGD("RD51=0x[%0.4X]!", value_reg_51); #if 1 if(value_reg_51 == 0x1B8) //部分机型1B8之后,不调整 { if(g_reg51_value_1b8_flag == false) { g_reg51_value_1b8_flag = true; } value_reg_51 = value_reg_51; // + 0xD6; } else { g_reg51_value_1b8_flag = false; if(value_reg_51 == 0xdff) { } else if(value_reg_51 == 0 ) // 调光值为零不做处理 { //value_reg_51 = 0; value_reg_51 = 0x02A; } else { if(value_reg_51 == 0x4B4 || value_reg_51 == 0x15D || value_reg_51 == 0x636) { // value_reg_51 = value_reg_51 - 20; } else { value_reg_51 = value_reg_51; // + 0xD6; // C6 if(value_reg_51>0x7FF) value_reg_51 = 0x7FF; } } #endif // value_reg_51 = 0xFF; reg51_h = (value_reg_51>>8)&0xFF; reg51_l = value_reg_51&0xFF; hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x51, reg51_h, reg51_l); //TAU_LOGD("51=0x[%0.2X %0.2X]!", reg51_h,reg51_l); } return true; } #else static bool ap_get_51_reg(hal_dsi_rx_ctrl_handle_t *handler, hal_dcs_packet_t *dcs_packet) { uint8_t level=0; uint8_t reg51_l,reg51_h; value_reg_51 = (dcs_packet->packet_param[0] << 8) + dcs_packet->packet_param[1]; // TAU_LOGD("51[%x]", value_reg_51); // LOG_printf("\r\n"); #if 0 //如果51值处理的话,指纹校准不通过, value_reg_51 = (value_reg_51*0xF50) /REG51_MAX_VALUE+0xAF; #else reg51_h = (value_reg_51>>8)&0xFF; reg51_l = value_reg_51&0xFF; #endif #if 1 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x51, reg51_h, reg51_l); #else if (value_reg_51 >REG51_MAX_VALUE) value_reg_51 = REG51_MAX_VALUE; if (value_reg_51 packet_param[3]; ////8E= 进入 8F 退出 if(value_dcs == 0x8E) { s_finger_flag = 1; } else { s_finger_flag = 0; } TAU_LOGD("finger[%2x][%2x][%2x][%2x]", s_finger_flag,dcs_packet->packet_param[2],dcs_packet->packet_param[3],dcs_packet->packet_param[4] ); return true; } volatile static uint8_t flag_te =1; static bool set_soft_tear_mode(void) { if(flag_te == 1){ hal_dsi_rx_ctrl_set_tear_mode_ex(g_rx_ctrl_handle, 2000, TE_SOFT_90HZ_MODE); }else{ hal_dsi_rx_ctrl_set_tear_mode_ex(g_rx_ctrl_handle, 1800, TE_HW_MODE); } return true; } static bool ap_get_dcs(hal_dsi_rx_ctrl_handle_t *handler, hal_dcs_packet_t *dcs_packet) { uint16_t value_dcs_te =0; uint8_t get_te; value_dcs_te = dcs_packet->packet_param[0]; ////80=90hz 00=60hz #if 1 if(value_dcs_te&0x10) { get_te = 1; } else { get_te = 0; } if (get_te != flag_te) { flag_te = get_te; set_soft_tear_mode(); //TAU_LOGD("TE[%4x] %d %d \n", flag_te,panel_display_done,value_dcs_te); } #else switch(value_dcs_te) { case 0x30: if(flag_te == 0) { flag_te = 1; set_soft_tear_mode(); } break; case 0x20: if(flag_te == 1) { flag_te = 0; set_soft_tear_mode(); } break; default: break; } #endif //value_dcs_te1 = dcs_packet->packet_param[1]; // TAU_LOGD("TE[%4x]", value_dcs_te ); // TAU_LOGD("TE[%4x] %d %d \n", flag_te,panel_display_done,value_dcs_te); // hal_dsi_tx_ctrl_write_cmd(0x29, 0, 2, 0x53, value_dcs_te); //这句不能要,否则待机唤醒后容易黑屏 return true; } /* 客制化DCS command 处理函数表格 */ static const hal_dcs_execute_entry_t g_cus_rx_dcs_execute_table[] = { {DCS_SET_DISPLAY_ON, ap_set_display_on, true}, {DCS_SET_DISPLAY_OFF, ap_set_display_off, true}, #ifdef USE_51_REG_ADJ_BL {0x51, ap_get_51_reg, true}, {0x67, ap_get_67_reg, true}, #else {0xDF, ap_get_reg_df, false}, //蓝光 {0xCA, ap_get_reg_ca, false}, // 背光。要加上B1才能调流畅 {0xB1, ap_set_backlight, false}, #endif {DCS_ENTER_SLEEP_MODE, ap_set_enter_sleep_mode, true}, {DCS_EXIT_SLEEP_MODE, ap_set_exit_sleep_mode, true}, {0x53, ap_get_dcs, true}, // {0xC8, ap_get_finger_flag, true}, // {0x95, ap_get_finger_flag, true}, #ifdef ADD_TP_CALIBRATION // TP calibration {0x04, ap_set_tp_calibration_04, true}, #endif {0, NULL, false} //{0,NULL,false} 数组最后一个固定成员,作为table结尾的判断标准 }; static void tx_panel_reset(void) { #ifdef USE_WL518_INTERNAL_FLASH hal_system_share_flash_mode(true); #endif #if 0 hal_dsi_tx_ctrl_panel_reset_pin(IO_LVL_HIGH); delayMs(10); #else TAU_LOGD("start pannel rst"); //debug hal_dsi_tx_ctrl_panel_reset_pin(IO_LVL_HIGH); delayMs(10); //10ms hal_dsi_tx_ctrl_panel_reset_pin(IO_LVL_LOW); delayMs(10); //10ms hal_dsi_tx_ctrl_panel_reset_pin(IO_LVL_HIGH); delayMs(10); #endif } static void init_panel(void) { /* reset panel*/ // hal_gpio_set_output_data(IO_PAD_PWMEN, IO_LVL_HIGH); //LED_ON // soft_te_timer_init(); // delayMs(16); // Gpio_LED_ON_output(1,3); tx_panel_reset(); /* enter send initial code mode*/ hal_dsi_tx_ctrl_enter_init_panel_mode(); #if AMOLED_NT37800_HX667 TAU_LOGD("Panel NT37800"); #if 0//PANEL_INIT_CODE_ARRAY send_panel_init_code(sizeof(panel_init_code), panel_init_code); #endif // delayMs(30); // delayMs(30); #if 0 //v3 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x07); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xC0,0x10); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x03); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xD4,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x01); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xC0,0x33); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0xB2,0x59,0x00,0x08,0x08); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x01); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xCA,0x30); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xB5,0x80); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x01); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xC6,0x13); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x01); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 9, 0xB9,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x01); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 7, 0xD2,0x00,0x12,0x61,0x25,0x43,0x07); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 7, 0xB7,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0xB8,0x48,0x48,0x48,0x48); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x01); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xB3,0x13); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x01); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xB4,0x13); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0xCD,0x05,0x61); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x05); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0xB3,0x88,0x80); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0xB5,0x04,0x01); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0xB7,0x04,0x00,0x00,0x01); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0xB8,0x04,0x00,0x00,0x01); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0xFF,0xAA,0x55,0xA5,0x81); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x0D); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xF3,0xAB); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x05); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0xFD,0x00,0xDA); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0xFF,0xAA,0x55,0xA5,0x80); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x0A); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xFC,0x02); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x36); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xF6,0x42); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x00,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0x3B,0x00,0x0C,0x00,0x04); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x90,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0x93,0x89,0x28,0x00,0x0C,0x02,0x00,0x02,0x0E,0x00,0x00,0x01,0x1F,0x00,0x07,0x08,0xBB,0x08,0x7A,0x00,0x00,0x10,0xF0); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x03,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x2C,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x35,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x53,0x20); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0x51,0x0D,0xBB,0x00,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0x2A,0x00,0x00,0x04,0x37); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0x2B,0x00,0x00,0x09,0x23); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x2F,0x01); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x26,0x01); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0xB5,0x80,0x42); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x05); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0xB5,0x7F,0x2B,0x12,0x33); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x0B); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 4, 0xB5,0x2B,0x12,0x33); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 37, 0xB3,0x00,0x08,0x00,0x18,0x00,0x18,0x00,0x31,0x00,0x31,0x00,0x62,0x00,0x62,0x00,0xC0,0x00,0xC0,0x01,0x46,0x01,0x46,0x01,0x47,0x01,0x47,0x03,0x33,0x03,0x33,0x07,0xFF,0x07,0xFF,0x0F,0xFF); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 11, 0xB4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x0A); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 11, 0xB4,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x14); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 10, 0xB4,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x13); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0xB2,0x00,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x02); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xCC,0x30); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x02); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xBF,0x09); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB0,0x00,0x00,0x00,0xB7,0x00,0xCA,0x00,0xE6,0x00,0xF5,0x01,0x04,0x01,0x12,0x01,0x20,0x01,0x2E,0x01,0x3C,0x01,0x49,0x01,0x5C); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB1,0x01,0x7F,0x01,0x9C,0x01,0xB5,0x01,0xCC,0x01,0xE0,0x02,0x06,0x02,0x28,0x02,0x48,0x02,0x66,0x02,0x83,0x02,0x9F,0x02,0xB6); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB2,0x02,0xC1,0x02,0xD0,0x02,0xDE,0x02,0xEB,0x02,0xFA,0x03,0x09,0x03,0x16,0x03,0x25,0x03,0x34,0x03,0x46,0x03,0x48); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB3,0x00,0x00,0x00,0xBE,0x00,0xC4,0x00,0xCB,0x00,0xD5,0x00,0xDF,0x00,0xE9,0x00,0xF3,0x00,0xFD,0x01,0x08,0x01,0x13,0x01,0x22); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB4,0x01,0x3F,0x01,0x57,0x01,0x6B,0x01,0x7F,0x01,0x90,0x01,0xB0,0x01,0xCC,0x01,0xE6,0x01,0xFE,0x02,0x15,0x02,0x2B,0x02,0x43); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB5,0x02,0x4E,0x02,0x59,0x02,0x63,0x02,0x6D,0x02,0x78,0x02,0x82,0x02,0x8D,0x02,0x98,0x02,0xA3,0x02,0xAD,0x02,0xAE); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB6,0x00,0x00,0x00,0xC6,0x00,0xD6,0x00,0xEF,0x01,0x02,0x01,0x15,0x01,0x25,0x01,0x35,0x01,0x45,0x01,0x55,0x01,0x64,0x01,0x79); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB7,0x01,0xA0,0x01,0xBE,0x01,0xD8,0x01,0xF1,0x02,0x06,0x02,0x2F,0x02,0x53,0x02,0x74,0x02,0x93,0x02,0xB1,0x02,0xCE,0x02,0xEB); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB8,0x02,0xF8,0x03,0x09,0x03,0x19,0x03,0x28,0x03,0x37,0x03,0x45,0x03,0x51,0x03,0x5F,0x03,0x6D,0x03,0x7E,0x03,0x80); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xBF,0x08); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB0,0x00,0x00,0x00,0xB7,0x00,0xC7,0x00,0xDD,0x00,0xEE,0x00,0xFC,0x01,0x08,0x01,0x15,0x01,0x21,0x01,0x2D,0x01,0x39,0x01,0x4F); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB1,0x01,0x6E,0x01,0x8B,0x01,0xA3,0x01,0xB9,0x01,0xCC,0x01,0xEF,0x02,0x0E,0x02,0x2C,0x02,0x48,0x02,0x62,0x02,0x7C,0x02,0x95); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB2,0x02,0xA1,0x02,0xAA,0x02,0xB5,0x02,0xBE,0x02,0xCB,0x02,0xD7,0x02,0xE4,0x02,0xF0,0x02,0xFC,0x03,0x0A,0x03,0x0B); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB3,0x00,0x00,0x00,0xBD,0x00,0xC3,0x00,0xC9,0x00,0xD1,0x00,0xD9,0x00,0xE2,0x00,0xEB,0x00,0xF4,0x00,0xFD,0x01,0x06,0x01,0x17); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB4,0x01,0x31,0x01,0x49,0x01,0x5D,0x01,0x6E,0x01,0x7F,0x01,0x9D,0x01,0xB7,0x01,0xCF,0x01,0xE6,0x01,0xFB,0x02,0x10,0x02,0x24); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB5,0x02,0x2D,0x02,0x38,0x02,0x42,0x02,0x4B,0x02,0x55,0x02,0x5E,0x02,0x68,0x02,0x71,0x02,0x7A,0x02,0x83,0x02,0x84); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB6,0x00,0x00,0x00,0xC3,0x00,0xD3,0x00,0xE7,0x00,0xFA,0x01,0x0A,0x01,0x19,0x01,0x28,0x01,0x36,0x01,0x44,0x01,0x52,0x01,0x6A); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB7,0x01,0x8C,0x01,0xAC,0x01,0xC5,0x01,0xDC,0x01,0xF1,0x02,0x16,0x02,0x38,0x02,0x57,0x02,0x74,0x02,0x8F,0x02,0xAA,0x02,0xC4); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB8,0x02,0xD1,0x02,0xDD,0x02,0xEA,0x02,0xF5,0x03,0x03,0x03,0x11,0x03,0x1F,0x03,0x2D,0x03,0x39,0x03,0x46,0x03,0x47); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xBF,0x07); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB0,0x00,0x00,0x00,0x9D,0x00,0xAB,0x00,0xCA,0x00,0xD9,0x00,0xE4,0x00,0xEF,0x00,0xF8,0x01,0x01,0x01,0x09,0x01,0x12,0x01,0x22); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB1,0x01,0x41,0x01,0x59,0x01,0x6E,0x01,0x81,0x01,0x92,0x01,0xB1,0x01,0xCB,0x01,0xE2,0x01,0xF8,0x02,0x0D,0x02,0x21,0x02,0x34); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB2,0x02,0x3C,0x02,0x46,0x02,0x4E,0x02,0x58,0x02,0x60,0x02,0x69,0x02,0x70,0x02,0x79,0x02,0x7C,0x02,0x89,0x02,0x8A); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB3,0x00,0x00,0x00,0xB0,0x00,0xC3,0x00,0xC4,0x00,0xC8,0x00,0xCC,0x00,0xD2,0x00,0xD7,0x00,0xDD,0x00,0xE3,0x00,0xE9,0x00,0xF5); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB4,0x01,0x0C,0x01,0x1F,0x01,0x31,0x01,0x41,0x01,0x4E,0x01,0x68,0x01,0x7E,0x01,0x92,0x01,0xA5,0x01,0xB6,0x01,0xC6,0x01,0xD6); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB5,0x01,0xDC,0x01,0xE5,0x01,0xEB,0x01,0xF3,0x01,0xF9,0x02,0x00,0x02,0x07,0x02,0x0D,0x02,0x15,0x02,0x1A,0x02,0x1B); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB6,0x00,0x00,0x00,0xB3,0x00,0xC6,0x00,0xD6,0x00,0xE3,0x00,0xEF,0x00,0xFB,0x01,0x06,0x01,0x11,0x01,0x1A,0x01,0x25,0x01,0x37); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB7,0x01,0x5B,0x01,0x75,0x01,0x8C,0x01,0xA1,0x01,0xB3,0x01,0xD4,0x01,0xF0,0x02,0x09,0x02,0x20,0x02,0x36,0x02,0x4A,0x02,0x5F); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB8,0x02,0x68,0x02,0x72,0x02,0x7A,0x02,0x84,0x02,0x8D,0x02,0x96,0x02,0x9E,0x02,0xA7,0x02,0xAD,0x02,0xB8,0x02,0xB9); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xBF,0x06); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB0,0x00,0x00,0x00,0xB1,0x00,0xB2,0x00,0xB7,0x00,0xC4,0x00,0xD0,0x00,0xD9,0x00,0xE2,0x00,0xE9,0x00,0xF0,0x00,0xF5,0x01,0x02); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB1,0x01,0x18,0x01,0x2C,0x01,0x40,0x01,0x51,0x01,0x60,0x01,0x79,0x01,0x90,0x01,0xA5,0x01,0xB8,0x01,0xC9,0x01,0xD8,0x01,0xE8); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB2,0x01,0xEE,0x01,0xF6,0x01,0xFD,0x02,0x03,0x02,0x0A,0x02,0x11,0x02,0x18,0x02,0x1E,0x02,0x23,0x02,0x2A,0x02,0x2B); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB3,0x00,0x00,0x00,0xB9,0x00,0xC0,0x00,0xC3,0x00,0xC4,0x00,0xC5,0x00,0xC8,0x00,0xCB,0x00,0xCF,0x00,0xD3,0x00,0xD6,0x00,0xDD); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB4,0x00,0xED,0x00,0xFC,0x01,0x0B,0x01,0x19,0x01,0x25,0x01,0x3A,0x01,0x4C,0x01,0x5E,0x01,0x6D,0x01,0x7C,0x01,0x89,0x01,0x97); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB5,0x01,0x9C,0x01,0xA3,0x01,0xA8,0x01,0xAE,0x01,0xB4,0x01,0xB9,0x01,0xBE,0x01,0xC4,0x01,0xCA,0x01,0xCE,0x01,0xCF); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB6,0x00,0x00,0x00,0xC7,0x00,0xC8,0x00,0xCC,0x00,0xD3,0x00,0xDB,0x00,0xE4,0x00,0xEC,0x00,0xF4,0x00,0xFC,0x01,0x03,0x01,0x12); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB7,0x01,0x2B,0x01,0x43,0x01,0x5A,0x01,0x6C,0x01,0x7C,0x01,0x98,0x01,0xB1,0x01,0xC7,0x01,0xDB,0x01,0xEE,0x01,0xFE,0x02,0x0F); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB8,0x02,0x16,0x02,0x1D,0x02,0x25,0x02,0x2C,0x02,0x33,0x02,0x3A,0x02,0x41,0x02,0x47,0x02,0x4C,0x02,0x55,0x02,0x56); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xBF,0x05); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB0,0x00,0x00,0x00,0xB1,0x00,0xB2,0x00,0xB7,0x00,0xC4,0x00,0xD0,0x00,0xD9,0x00,0xE2,0x00,0xE9,0x00,0xF0,0x00,0xF5,0x01,0x02); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB1,0x01,0x18,0x01,0x2C,0x01,0x40,0x01,0x50,0x01,0x60,0x01,0x79,0x01,0x90,0x01,0xA5,0x01,0xB8,0x01,0xC9,0x01,0xD8,0x01,0xE8); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB2,0x01,0xEE,0x01,0xF6,0x01,0xFD,0x02,0x03,0x02,0x0A,0x02,0x11,0x02,0x18,0x02,0x1E,0x02,0x22,0x02,0x2A,0x02,0x2B); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB3,0x00,0x00,0x00,0xB9,0x00,0xC0,0x00,0xC3,0x00,0xC4,0x00,0xC5,0x00,0xC8,0x00,0xCB,0x00,0xCF,0x00,0xD2,0x00,0xD6,0x00,0xDD); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB4,0x00,0xED,0x00,0xFC,0x01,0x0B,0x01,0x18,0x01,0x25,0x01,0x3A,0x01,0x4C,0x01,0x5E,0x01,0x6D,0x01,0x7C,0x01,0x89,0x01,0x97); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB5,0x01,0x9C,0x01,0xA3,0x01,0xA8,0x01,0xAE,0x01,0xB4,0x01,0xB9,0x01,0xBE,0x01,0xC4,0x01,0xCA,0x01,0xCE,0x01,0xCF); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB6,0x00,0x00,0x00,0xC7,0x00,0xC8,0x00,0xCC,0x00,0xD3,0x00,0xDB,0x00,0xE4,0x00,0xEC,0x00,0xF4,0x00,0xFC,0x01,0x03,0x01,0x12); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB7,0x01,0x2B,0x01,0x43,0x01,0x5A,0x01,0x6B,0x01,0x7C,0x01,0x98,0x01,0xB1,0x01,0xC7,0x01,0xDB,0x01,0xEE,0x01,0xFE,0x02,0x0F); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB8,0x02,0x16,0x02,0x1D,0x02,0x25,0x02,0x2C,0x02,0x33,0x02,0x3A,0x02,0x41,0x02,0x47,0x02,0x4B,0x02,0x55,0x02,0x56); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xBF,0x04); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB0,0x00,0x00,0x00,0xAD,0x00,0xB2,0x00,0xB4,0x00,0xBA,0x00,0xC4,0x00,0xCE,0x00,0xD6,0x00,0xDC,0x00,0xE2,0x00,0xE8,0x00,0xF3); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB1,0x01,0x05,0x01,0x17,0x01,0x27,0x01,0x37,0x01,0x45,0x01,0x5D,0x01,0x72,0x01,0x85,0x01,0x96,0x01,0xA7,0x01,0xB6,0x01,0xC3); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB2,0x01,0xC9,0x01,0xD0,0x01,0xD6,0x01,0xDC,0x01,0xE2,0x01,0xE7,0x01,0xED,0x01,0xF3,0x01,0xF8,0x01,0xFE,0x01,0xFF); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB3,0x00,0x00,0x00,0xB7,0x00,0xBE,0x00,0xC1,0x00,0xC3,0x00,0xC4,0x00,0xC5,0x00,0xC7,0x00,0xC8,0x00,0xCB,0x00,0xCE,0x00,0xD4); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB4,0x00,0xE0,0x00,0xEC,0x00,0xF8,0x01,0x04,0x01,0x0F,0x01,0x23,0x01,0x34,0x01,0x43,0x01,0x52,0x01,0x5F,0x01,0x6B,0x01,0x77); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB5,0x01,0x7C,0x01,0x82,0x01,0x87,0x01,0x8C,0x01,0x92,0x01,0x97,0x01,0x9B,0x01,0xA0,0x01,0xA6,0x01,0xA9,0x01,0xAA); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB6,0x00,0x00,0x00,0xC2,0x00,0xC8,0x00,0xCA,0x00,0xCE,0x00,0xD3,0x00,0xDA,0x00,0xE1,0x00,0xE6,0x00,0xED,0x00,0xF3,0x01,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB7,0x01,0x16,0x01,0x2A,0x01,0x3D,0x01,0x4F,0x01,0x5F,0x01,0x79,0x01,0x91,0x01,0xA5,0x01,0xB8,0x01,0xC9,0x01,0xD9,0x01,0xE7); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB8,0x01,0xEE,0x01,0xF5,0x01,0xFB,0x02,0x02,0x02,0x09,0x02,0x0E,0x02,0x15,0x02,0x1A,0x02,0x1F,0x02,0x26,0x02,0x27); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xBF,0x03); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB0,0x00,0x00,0x00,0xB0,0x00,0xB2,0x00,0xB3,0x00,0xB6,0x00,0xB7,0x00,0xC0,0x00,0xC7,0x00,0xCE,0x00,0xD4,0x00,0xD9,0x00,0xE2); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB1,0x00,0xF3,0x01,0x00,0x01,0x0D,0x01,0x1A,0x01,0x26,0x01,0x3C,0x01,0x50,0x01,0x61,0x01,0x70,0x01,0x7E,0x01,0x8B,0x01,0x97); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB2,0x01,0x9E,0x01,0xA4,0x01,0xA9,0x01,0xAF,0x01,0xB4,0x01,0xB9,0x01,0xBE,0x01,0xC3,0x01,0xC5,0x01,0xCD,0x01,0xCE); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB3,0x00,0x00,0x00,0xB4,0x00,0xBC,0x00,0xBF,0x00,0xC1,0x00,0xC2,0x00,0xC3,0x00,0xC4,0x00,0xC5,0x00,0xC7,0x00,0xC8,0x00,0xCB); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB4,0x00,0xD4,0x00,0xDC,0x00,0xE6,0x00,0xEE,0x00,0xF7,0x01,0x09,0x01,0x18,0x01,0x26,0x01,0x33,0x01,0x3D,0x01,0x48,0x01,0x53); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB5,0x01,0x58,0x01,0x5C,0x01,0x62,0x01,0x66,0x01,0x6A,0x01,0x6F,0x01,0x74,0x01,0x78,0x01,0x7D,0x01,0x7F,0x01,0x80); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB6,0x00,0x00,0x00,0xC5,0x00,0xC8,0x00,0xC9,0x00,0xCA,0x00,0xCB,0x00,0xD1,0x00,0xD5,0x00,0xDA,0x00,0xDF,0x00,0xE4,0x00,0xED); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB7,0x01,0x00,0x01,0x10,0x01,0x1F,0x01,0x2E,0x01,0x3C,0x01,0x56,0x01,0x6B,0x01,0x7D,0x01,0x8F,0x01,0x9D,0x01,0xAB,0x01,0xB9); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB8,0x01,0xC0,0x01,0xC6,0x01,0xCC,0x01,0xD2,0x01,0xD7,0x01,0xDD,0x01,0xE2,0x01,0xE7,0x01,0xE9,0x01,0xF2,0x01,0xF3); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xBF,0x02); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB0,0x00,0x00,0x00,0xAF,0x00,0xB1,0x00,0xB2,0x00,0xB6,0x00,0xB9,0x00,0xBB,0x00,0xBD,0x00,0xBE,0x00,0xC1,0x00,0xCA,0x00,0xD3); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB1,0x00,0xE1,0x00,0xEE,0x00,0xF9,0x01,0x02,0x01,0x0C,0x01,0x1D,0x01,0x2F,0x01,0x3F,0x01,0x4C,0x01,0x5A,0x01,0x65,0x01,0x70); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB2,0x01,0x75,0x01,0x7A,0x01,0x80,0x01,0x85,0x01,0x8A,0x01,0x8D,0x01,0x92,0x01,0x96,0x01,0x9B,0x01,0xA0,0x01,0xA1); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB3,0x00,0x00,0x00,0xB7,0x00,0xBA,0x00,0xBD,0x00,0xBE,0x00,0xBF,0x00,0xC0,0x00,0xC1,0x00,0xC2,0x00,0xC3,0x00,0xC4,0x00,0xC6); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB4,0x00,0xCB,0x00,0xD1,0x00,0xD7,0x00,0xDE,0x00,0xE5,0x00,0xF1,0x00,0xFF,0x01,0x0B,0x01,0x15,0x01,0x20,0x01,0x29,0x01,0x33); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB5,0x01,0x37,0x01,0x3A,0x01,0x3F,0x01,0x43,0x01,0x47,0x01,0x4B,0x01,0x4E,0x01,0x53,0x01,0x56,0x01,0x59,0x01,0x5A); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB6,0x00,0x00,0x00,0xC2,0x00,0xC6,0x00,0xC7,0x00,0xC8,0x00,0xC9,0x00,0xCA,0x00,0xCB,0x00,0xD1,0x00,0xD2,0x00,0xD7,0x00,0xDE); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB7,0x00,0xEC,0x00,0xFA,0x01,0x07,0x01,0x13,0x01,0x1E,0x01,0x33,0x01,0x47,0x01,0x59,0x01,0x67,0x01,0x76,0x01,0x82,0x01,0x8F); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB8,0x01,0x94,0x01,0x99,0x01,0xA0,0x01,0xA5,0x01,0xAA,0x01,0xAE,0x01,0xB3,0x01,0xB8,0x01,0xBD,0x01,0xC2,0x01,0xC3); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xBF,0x01); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB0,0x00,0x00,0x00,0xAC,0x00,0xAF,0x00,0xB0,0x00,0xB1,0x00,0xB2,0x00,0xB3,0x00,0xB4,0x00,0xB5,0x00,0xB6,0x00,0xB9,0x00,0xC3); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB1,0x00,0xD2,0x00,0xDD,0x00,0xE6,0x00,0xF0,0x00,0xF7,0x01,0x05,0x01,0x13,0x01,0x1F,0x01,0x2C,0x01,0x38,0x01,0x42,0x01,0x4C); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB2,0x01,0x51,0x01,0x56,0x01,0x5A,0x01,0x5F,0x01,0x63,0x01,0x67,0x01,0x6C,0x01,0x6D,0x01,0x75,0x01,0x76,0x01,0x77); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB3,0x00,0x00,0x00,0xB8,0x00,0xB9,0x00,0xBC,0x00,0xBD,0x00,0xBE,0x00,0xBF,0x00,0xC0,0x00,0xC1,0x00,0xC2,0x00,0xC3,0x00,0xC4); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB4,0x00,0xC6,0x00,0xC9,0x00,0xCD,0x00,0xD2,0x00,0xD6,0x00,0xE0,0x00,0xE9,0x00,0xF3,0x00,0xFD,0x01,0x06,0x01,0x0D,0x01,0x15); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB5,0x01,0x19,0x01,0x1C,0x01,0x20,0x01,0x24,0x01,0x27,0x01,0x2A,0x01,0x2E,0x01,0x32,0x01,0x34,0x01,0x37,0x01,0x38); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB6,0x00,0x00,0x00,0xC0,0x00,0xC4,0x00,0xC5,0x00,0xC6,0x00,0xC7,0x00,0xC8,0x00,0xC9,0x00,0xCA,0x00,0xCB,0x00,0xCF,0x00,0xD4); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB7,0x00,0xDD,0x00,0xE8,0x00,0xF2,0x00,0xFC,0x01,0x05,0x01,0x17,0x01,0x26,0x01,0x36,0x01,0x44,0x01,0x52,0x01,0x5C,0x01,0x67); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB8,0x01,0x6C,0x01,0x72,0x01,0x77,0x01,0x7B,0x01,0x80,0x01,0x84,0x01,0x8A,0x01,0x8C,0x01,0x94,0x01,0x95,0x01,0x96); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xBF,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB0,0x00,0x00,0x00,0xAB,0x00,0xAC,0x00,0xAD,0x00,0xAE,0x00,0xAF,0x00,0xB0,0x00,0xB1,0x00,0xB2,0x00,0xB3,0x00,0xB4,0x00,0xB5); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB1,0x00,0xBE,0x00,0xC6,0x00,0xCF,0x00,0xD7,0x00,0xDE,0x00,0xE9,0x00,0xF4,0x00,0xFD,0x01,0x06,0x01,0x0E,0x01,0x17,0x01,0x1F); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB2,0x01,0x23,0x01,0x26,0x01,0x2A,0x01,0x2E,0x01,0x31,0x01,0x36,0x01,0x3A,0x01,0x3B,0x01,0x41,0x01,0x42,0x01,0x43); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB3,0x00,0x00,0x00,0xB7,0x00,0xB9,0x00,0xBA,0x00,0xBB,0x00,0xBC,0x00,0xBD,0x00,0xBE,0x00,0xBF,0x00,0xC0,0x00,0xC1,0x00,0xC2); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB4,0x00,0xC3,0x00,0xC4,0x00,0xC6,0x00,0xC7,0x00,0xC9,0x00,0xCE,0x00,0xD4,0x00,0xDA,0x00,0xE1,0x00,0xE6,0x00,0xEC,0x00,0xF3); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB5,0x00,0xF6,0x00,0xF8,0x00,0xFB,0x00,0xFE,0x01,0x01,0x01,0x03,0x01,0x04,0x01,0x08,0x01,0x09,0x01,0x0D,0x01,0x0E); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB6,0x00,0x00,0x00,0xC1,0x00,0xC2,0x00,0xC3,0x00,0xC4,0x00,0xC5,0x00,0xC6,0x00,0xC7,0x00,0xC8,0x00,0xC9,0x00,0xCA,0x00,0xCB); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB7,0x00,0xCE,0x00,0xD5,0x00,0xDB,0x00,0xE2,0x00,0xE9,0x00,0xF5,0x01,0x01,0x01,0x0D,0x01,0x18,0x01,0x21,0x01,0x2B,0x01,0x35); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB8,0x01,0x3A,0x01,0x3D,0x01,0x42,0x01,0x46,0x01,0x4B,0x01,0x4E,0x01,0x54,0x01,0x55,0x01,0x5C,0x01,0x5D,0x01,0x5E); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xCE,0x01); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xCC,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x02); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB9,0x00,0x04,0x00,0x0C,0x00,0x14,0x00,0x1C,0x00,0x24,0x00,0x2C,0x00,0x34,0x00,0x3C,0x00,0x44,0x00,0x4C,0x00,0x5C,0x00,0x7C); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xBA,0x00,0x9C,0x00,0xBC,0x00,0xDC,0x00,0xFC,0x01,0x3C,0x01,0x7C,0x01,0xBC,0x01,0xFC,0x02,0x3C,0x02,0x7C,0x02,0xBC,0x02,0xDC); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 21, 0xBB,0x02,0xFC,0x03,0x1C,0x03,0x3C,0x03,0x5C,0x03,0x7C,0x03,0x9C,0x03,0xBC,0x03,0xDC,0x03,0xFC,0x03,0xFF); delayUs(50); #endif #if 0 // V1 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x07); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xC0,0x10); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x03); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xD4,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x01); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xC0,0x33); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0xB2,0x58,0x00,0x08,0x08); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x01); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xCA,0x30); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xB5,0x80); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x01); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xC6,0x13); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x01); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 9, 0xB9,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x01); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 7, 0xD2,0x00,0x12,0x61,0x25,0x43,0x07); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 7, 0xB7,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0xB8,0x48,0x48,0x48,0x48); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x01); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xB3,0x13); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x01); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xB4,0x13); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0xCD,0x05,0x61); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x05); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0xB3,0x88,0x80); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0xB5,0x04,0x01); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0xB7,0x04,0x00,0x00,0x01); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0xB8,0x04,0x00,0x00,0x01); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0xFF,0xAA,0x55,0xA5,0x81); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x0D); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xF3,0xAB); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x05); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0xFD,0x00,0xDA); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0xFF,0xAA,0x55,0xA5,0x80); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x0A); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xFC,0x02); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x36); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xF6,0x42); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x00,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0x3B,0x00,0x0C,0x00,0x04); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x90,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0x93,0x89,0x28,0x00,0x0C,0x02,0x00,0x02,0x0E,0x00,0x00,0x01,0x1F,0x00,0x07,0x08,0xBB,0x08,0x7A,0x00,0x00,0x10,0xF0); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x03,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x2C,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x35,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x53,0x20); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0x51,0x0D,0xBB,0x00,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0x2A,0x00,0x00,0x04,0x37); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0x2B,0x00,0x00,0x09,0x23); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x2F,0x01); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x26,0x01); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0xB5,0x80,0x42); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x05); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0xB5,0x7F,0x2B,0x12,0x33); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x0B); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 4, 0xB5,0x2B,0x1A,0x33); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 11, 0xB4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x0A); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 11, 0xB4,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x14); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 10, 0xB4,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x13); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0xB2,0x00,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x02); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xCC,0x30); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x02); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xBF,0x09); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB0,0x00,0x00,0x00,0xB7,0x00,0xCA,0x00,0xE6,0x00,0xF5,0x01,0x04,0x01,0x12,0x01,0x20,0x01,0x2E,0x01,0x3C,0x01,0x49,0x01,0x5C); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB1,0x01,0x7F,0x01,0x9C,0x01,0xB5,0x01,0xCC,0x01,0xE0,0x02,0x06,0x02,0x28,0x02,0x48,0x02,0x66,0x02,0x83,0x02,0x9F,0x02,0xB6); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB2,0x02,0xC1,0x02,0xD0,0x02,0xDE,0x02,0xEB,0x02,0xFA,0x03,0x09,0x03,0x16,0x03,0x25,0x03,0x34,0x03,0x46,0x03,0x48); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB3,0x00,0x00,0x00,0xBE,0x00,0xC4,0x00,0xCB,0x00,0xD5,0x00,0xDF,0x00,0xE9,0x00,0xF3,0x00,0xFD,0x01,0x08,0x01,0x13,0x01,0x22); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB4,0x01,0x3F,0x01,0x57,0x01,0x6B,0x01,0x7F,0x01,0x90,0x01,0xB0,0x01,0xCC,0x01,0xE6,0x01,0xFE,0x02,0x15,0x02,0x2B,0x02,0x43); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB5,0x02,0x4E,0x02,0x59,0x02,0x63,0x02,0x6D,0x02,0x78,0x02,0x82,0x02,0x8D,0x02,0x98,0x02,0xA3,0x02,0xAD,0x02,0xAE); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB6,0x00,0x00,0x00,0xC6,0x00,0xD6,0x00,0xEF,0x01,0x02,0x01,0x15,0x01,0x25,0x01,0x35,0x01,0x45,0x01,0x55,0x01,0x64,0x01,0x79); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB7,0x01,0xA0,0x01,0xBE,0x01,0xD8,0x01,0xF1,0x02,0x06,0x02,0x2F,0x02,0x53,0x02,0x74,0x02,0x93,0x02,0xB1,0x02,0xCE,0x02,0xEB); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB8,0x02,0xF8,0x03,0x09,0x03,0x19,0x03,0x28,0x03,0x37,0x03,0x45,0x03,0x51,0x03,0x5F,0x03,0x6D,0x03,0x7E,0x03,0x80); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xBF,0x08); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB0,0x00,0x00,0x00,0xB7,0x00,0xC7,0x00,0xDD,0x00,0xEE,0x00,0xFC,0x01,0x08,0x01,0x15,0x01,0x21,0x01,0x2D,0x01,0x39,0x01,0x4F); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB1,0x01,0x6E,0x01,0x8B,0x01,0xA3,0x01,0xB9,0x01,0xCC,0x01,0xEF,0x02,0x0E,0x02,0x2C,0x02,0x48,0x02,0x62,0x02,0x7C,0x02,0x95); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB2,0x02,0xA1,0x02,0xAA,0x02,0xB5,0x02,0xBE,0x02,0xCB,0x02,0xD7,0x02,0xE4,0x02,0xF0,0x02,0xFC,0x03,0x0A,0x03,0x0B); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB3,0x00,0x00,0x00,0xBD,0x00,0xC3,0x00,0xC9,0x00,0xD1,0x00,0xD9,0x00,0xE2,0x00,0xEB,0x00,0xF4,0x00,0xFD,0x01,0x06,0x01,0x17); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB4,0x01,0x31,0x01,0x49,0x01,0x5D,0x01,0x6E,0x01,0x7F,0x01,0x9D,0x01,0xB7,0x01,0xCF,0x01,0xE6,0x01,0xFB,0x02,0x10,0x02,0x24); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB5,0x02,0x2D,0x02,0x38,0x02,0x42,0x02,0x4B,0x02,0x55,0x02,0x5E,0x02,0x68,0x02,0x71,0x02,0x7A,0x02,0x83,0x02,0x84); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB6,0x00,0x00,0x00,0xC3,0x00,0xD3,0x00,0xE7,0x00,0xFA,0x01,0x0A,0x01,0x19,0x01,0x28,0x01,0x36,0x01,0x44,0x01,0x52,0x01,0x6A); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB7,0x01,0x8C,0x01,0xAC,0x01,0xC5,0x01,0xDC,0x01,0xF1,0x02,0x16,0x02,0x38,0x02,0x57,0x02,0x74,0x02,0x8F,0x02,0xAA,0x02,0xC4); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB8,0x02,0xD1,0x02,0xDD,0x02,0xEA,0x02,0xF5,0x03,0x03,0x03,0x11,0x03,0x1F,0x03,0x2D,0x03,0x39,0x03,0x46,0x03,0x47); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xBF,0x07); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB0,0x00,0x00,0x00,0x9D,0x00,0xAB,0x00,0xCA,0x00,0xD9,0x00,0xE4,0x00,0xEF,0x00,0xF8,0x01,0x01,0x01,0x09,0x01,0x12,0x01,0x22); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB1,0x01,0x41,0x01,0x59,0x01,0x6E,0x01,0x81,0x01,0x92,0x01,0xB1,0x01,0xCB,0x01,0xE2,0x01,0xF8,0x02,0x0D,0x02,0x21,0x02,0x34); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB2,0x02,0x3C,0x02,0x46,0x02,0x4E,0x02,0x58,0x02,0x60,0x02,0x69,0x02,0x70,0x02,0x79,0x02,0x7C,0x02,0x89,0x02,0x8A); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB3,0x00,0x00,0x00,0xB0,0x00,0xC3,0x00,0xC4,0x00,0xC8,0x00,0xCC,0x00,0xD2,0x00,0xD7,0x00,0xDD,0x00,0xE3,0x00,0xE9,0x00,0xF5); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB4,0x01,0x0C,0x01,0x1F,0x01,0x31,0x01,0x41,0x01,0x4E,0x01,0x68,0x01,0x7E,0x01,0x92,0x01,0xA5,0x01,0xB6,0x01,0xC6,0x01,0xD6); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB5,0x01,0xDC,0x01,0xE5,0x01,0xEB,0x01,0xF3,0x01,0xF9,0x02,0x00,0x02,0x07,0x02,0x0D,0x02,0x15,0x02,0x1A,0x02,0x1B); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB6,0x00,0x00,0x00,0xB3,0x00,0xC6,0x00,0xD6,0x00,0xE3,0x00,0xEF,0x00,0xFB,0x01,0x06,0x01,0x11,0x01,0x1A,0x01,0x25,0x01,0x37); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB7,0x01,0x5B,0x01,0x75,0x01,0x8C,0x01,0xA1,0x01,0xB3,0x01,0xD4,0x01,0xF0,0x02,0x09,0x02,0x20,0x02,0x36,0x02,0x4A,0x02,0x5F); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB8,0x02,0x68,0x02,0x72,0x02,0x7A,0x02,0x84,0x02,0x8D,0x02,0x96,0x02,0x9E,0x02,0xA7,0x02,0xAD,0x02,0xB8,0x02,0xB9); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xBF,0x06); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB0,0x00,0x00,0x00,0xB1,0x00,0xB2,0x00,0xB7,0x00,0xC4,0x00,0xD0,0x00,0xD9,0x00,0xE2,0x00,0xE9,0x00,0xF0,0x00,0xF5,0x01,0x02); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB1,0x01,0x18,0x01,0x2C,0x01,0x40,0x01,0x51,0x01,0x60,0x01,0x79,0x01,0x90,0x01,0xA5,0x01,0xB8,0x01,0xC9,0x01,0xD8,0x01,0xE8); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB2,0x01,0xEE,0x01,0xF6,0x01,0xFD,0x02,0x03,0x02,0x0A,0x02,0x11,0x02,0x18,0x02,0x1E,0x02,0x23,0x02,0x2A,0x02,0x2B); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB3,0x00,0x00,0x00,0xB9,0x00,0xC0,0x00,0xC3,0x00,0xC4,0x00,0xC5,0x00,0xC8,0x00,0xCB,0x00,0xCF,0x00,0xD3,0x00,0xD6,0x00,0xDD); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB4,0x00,0xED,0x00,0xFC,0x01,0x0B,0x01,0x19,0x01,0x25,0x01,0x3A,0x01,0x4C,0x01,0x5E,0x01,0x6D,0x01,0x7C,0x01,0x89,0x01,0x97); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB5,0x01,0x9C,0x01,0xA3,0x01,0xA8,0x01,0xAE,0x01,0xB4,0x01,0xB9,0x01,0xBE,0x01,0xC4,0x01,0xCA,0x01,0xCE,0x01,0xCF); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB6,0x00,0x00,0x00,0xC7,0x00,0xC8,0x00,0xCC,0x00,0xD3,0x00,0xDB,0x00,0xE4,0x00,0xEC,0x00,0xF4,0x00,0xFC,0x01,0x03,0x01,0x12); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB7,0x01,0x2B,0x01,0x43,0x01,0x5A,0x01,0x6C,0x01,0x7C,0x01,0x98,0x01,0xB1,0x01,0xC7,0x01,0xDB,0x01,0xEE,0x01,0xFE,0x02,0x0F); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB8,0x02,0x16,0x02,0x1D,0x02,0x25,0x02,0x2C,0x02,0x33,0x02,0x3A,0x02,0x41,0x02,0x47,0x02,0x4C,0x02,0x55,0x02,0x56); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xBF,0x05); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB0,0x00,0x00,0x00,0xB1,0x00,0xB2,0x00,0xB7,0x00,0xC4,0x00,0xD0,0x00,0xD9,0x00,0xE2,0x00,0xE9,0x00,0xF0,0x00,0xF5,0x01,0x02); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB1,0x01,0x18,0x01,0x2C,0x01,0x40,0x01,0x50,0x01,0x60,0x01,0x79,0x01,0x90,0x01,0xA5,0x01,0xB8,0x01,0xC9,0x01,0xD8,0x01,0xE8); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB2,0x01,0xEE,0x01,0xF6,0x01,0xFD,0x02,0x03,0x02,0x0A,0x02,0x11,0x02,0x18,0x02,0x1E,0x02,0x22,0x02,0x2A,0x02,0x2B); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB3,0x00,0x00,0x00,0xB9,0x00,0xC0,0x00,0xC3,0x00,0xC4,0x00,0xC5,0x00,0xC8,0x00,0xCB,0x00,0xCF,0x00,0xD2,0x00,0xD6,0x00,0xDD); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB4,0x00,0xED,0x00,0xFC,0x01,0x0B,0x01,0x18,0x01,0x25,0x01,0x3A,0x01,0x4C,0x01,0x5E,0x01,0x6D,0x01,0x7C,0x01,0x89,0x01,0x97); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB5,0x01,0x9C,0x01,0xA3,0x01,0xA8,0x01,0xAE,0x01,0xB4,0x01,0xB9,0x01,0xBE,0x01,0xC4,0x01,0xCA,0x01,0xCE,0x01,0xCF); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB6,0x00,0x00,0x00,0xC7,0x00,0xC8,0x00,0xCC,0x00,0xD3,0x00,0xDB,0x00,0xE4,0x00,0xEC,0x00,0xF4,0x00,0xFC,0x01,0x03,0x01,0x12); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB7,0x01,0x2B,0x01,0x43,0x01,0x5A,0x01,0x6B,0x01,0x7C,0x01,0x98,0x01,0xB1,0x01,0xC7,0x01,0xDB,0x01,0xEE,0x01,0xFE,0x02,0x0F); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB8,0x02,0x16,0x02,0x1D,0x02,0x25,0x02,0x2C,0x02,0x33,0x02,0x3A,0x02,0x41,0x02,0x47,0x02,0x4B,0x02,0x55,0x02,0x56); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xBF,0x04); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB0,0x00,0x00,0x00,0xAD,0x00,0xB2,0x00,0xB4,0x00,0xBA,0x00,0xC4,0x00,0xCE,0x00,0xD6,0x00,0xDC,0x00,0xE2,0x00,0xE8,0x00,0xF3); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB1,0x01,0x05,0x01,0x17,0x01,0x27,0x01,0x37,0x01,0x45,0x01,0x5D,0x01,0x72,0x01,0x85,0x01,0x96,0x01,0xA7,0x01,0xB6,0x01,0xC3); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB2,0x01,0xC9,0x01,0xD0,0x01,0xD6,0x01,0xDC,0x01,0xE2,0x01,0xE7,0x01,0xED,0x01,0xF3,0x01,0xF8,0x01,0xFE,0x01,0xFF); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB3,0x00,0x00,0x00,0xB7,0x00,0xBE,0x00,0xC1,0x00,0xC3,0x00,0xC4,0x00,0xC5,0x00,0xC7,0x00,0xC8,0x00,0xCB,0x00,0xCE,0x00,0xD4); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB4,0x00,0xE0,0x00,0xEC,0x00,0xF8,0x01,0x04,0x01,0x0F,0x01,0x23,0x01,0x34,0x01,0x43,0x01,0x52,0x01,0x5F,0x01,0x6B,0x01,0x77); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB5,0x01,0x7C,0x01,0x82,0x01,0x87,0x01,0x8C,0x01,0x92,0x01,0x97,0x01,0x9B,0x01,0xA0,0x01,0xA6,0x01,0xA9,0x01,0xAA); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB6,0x00,0x00,0x00,0xC2,0x00,0xC8,0x00,0xCA,0x00,0xCE,0x00,0xD3,0x00,0xDA,0x00,0xE1,0x00,0xE6,0x00,0xED,0x00,0xF3,0x01,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB7,0x01,0x16,0x01,0x2A,0x01,0x3D,0x01,0x4F,0x01,0x5F,0x01,0x79,0x01,0x91,0x01,0xA5,0x01,0xB8,0x01,0xC9,0x01,0xD9,0x01,0xE7); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB8,0x01,0xEE,0x01,0xF5,0x01,0xFB,0x02,0x02,0x02,0x09,0x02,0x0E,0x02,0x15,0x02,0x1A,0x02,0x1F,0x02,0x26,0x02,0x27); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xBF,0x03); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB0,0x00,0x00,0x00,0xB0,0x00,0xB2,0x00,0xB3,0x00,0xB6,0x00,0xB7,0x00,0xC0,0x00,0xC7,0x00,0xCE,0x00,0xD4,0x00,0xD9,0x00,0xE2); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB1,0x00,0xF3,0x01,0x00,0x01,0x0D,0x01,0x1A,0x01,0x26,0x01,0x3C,0x01,0x50,0x01,0x61,0x01,0x70,0x01,0x7E,0x01,0x8B,0x01,0x97); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB2,0x01,0x9E,0x01,0xA4,0x01,0xA9,0x01,0xAF,0x01,0xB4,0x01,0xB9,0x01,0xBE,0x01,0xC3,0x01,0xC5,0x01,0xCD,0x01,0xCE); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB3,0x00,0x00,0x00,0xB4,0x00,0xBC,0x00,0xBF,0x00,0xC1,0x00,0xC2,0x00,0xC3,0x00,0xC4,0x00,0xC5,0x00,0xC7,0x00,0xC8,0x00,0xCB); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB4,0x00,0xD4,0x00,0xDC,0x00,0xE6,0x00,0xEE,0x00,0xF7,0x01,0x09,0x01,0x18,0x01,0x26,0x01,0x33,0x01,0x3D,0x01,0x48,0x01,0x53); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB5,0x01,0x58,0x01,0x5C,0x01,0x62,0x01,0x66,0x01,0x6A,0x01,0x6F,0x01,0x74,0x01,0x78,0x01,0x7D,0x01,0x7F,0x01,0x80); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB6,0x00,0x00,0x00,0xC5,0x00,0xC8,0x00,0xC9,0x00,0xCA,0x00,0xCB,0x00,0xD1,0x00,0xD5,0x00,0xDA,0x00,0xDF,0x00,0xE4,0x00,0xED); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB7,0x01,0x00,0x01,0x10,0x01,0x1F,0x01,0x2E,0x01,0x3C,0x01,0x56,0x01,0x6B,0x01,0x7D,0x01,0x8F,0x01,0x9D,0x01,0xAB,0x01,0xB9); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB8,0x01,0xC0,0x01,0xC6,0x01,0xCC,0x01,0xD2,0x01,0xD7,0x01,0xDD,0x01,0xE2,0x01,0xE7,0x01,0xE9,0x01,0xF2,0x01,0xF3); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xBF,0x02); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB0,0x00,0x00,0x00,0xAF,0x00,0xB1,0x00,0xB2,0x00,0xB6,0x00,0xB9,0x00,0xBB,0x00,0xBD,0x00,0xBE,0x00,0xC1,0x00,0xCA,0x00,0xD3); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB1,0x00,0xE1,0x00,0xEE,0x00,0xF9,0x01,0x02,0x01,0x0C,0x01,0x1D,0x01,0x2F,0x01,0x3F,0x01,0x4C,0x01,0x5A,0x01,0x65,0x01,0x70); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB2,0x01,0x75,0x01,0x7A,0x01,0x80,0x01,0x85,0x01,0x8A,0x01,0x8D,0x01,0x92,0x01,0x96,0x01,0x9B,0x01,0xA0,0x01,0xA1); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB3,0x00,0x00,0x00,0xB7,0x00,0xBA,0x00,0xBD,0x00,0xBE,0x00,0xBF,0x00,0xC0,0x00,0xC1,0x00,0xC2,0x00,0xC3,0x00,0xC4,0x00,0xC6); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB4,0x00,0xCB,0x00,0xD1,0x00,0xD7,0x00,0xDE,0x00,0xE5,0x00,0xF1,0x00,0xFF,0x01,0x0B,0x01,0x15,0x01,0x20,0x01,0x29,0x01,0x33); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB5,0x01,0x37,0x01,0x3A,0x01,0x3F,0x01,0x43,0x01,0x47,0x01,0x4B,0x01,0x4E,0x01,0x53,0x01,0x56,0x01,0x59,0x01,0x5A); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB6,0x00,0x00,0x00,0xC2,0x00,0xC6,0x00,0xC7,0x00,0xC8,0x00,0xC9,0x00,0xCA,0x00,0xCB,0x00,0xD1,0x00,0xD2,0x00,0xD7,0x00,0xDE); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB7,0x00,0xEC,0x00,0xFA,0x01,0x07,0x01,0x13,0x01,0x1E,0x01,0x33,0x01,0x47,0x01,0x59,0x01,0x67,0x01,0x76,0x01,0x82,0x01,0x8F); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB8,0x01,0x94,0x01,0x99,0x01,0xA0,0x01,0xA5,0x01,0xAA,0x01,0xAE,0x01,0xB3,0x01,0xB8,0x01,0xBD,0x01,0xC2,0x01,0xC3); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xBF,0x01); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB0,0x00,0x00,0x00,0xAC,0x00,0xAF,0x00,0xB0,0x00,0xB1,0x00,0xB2,0x00,0xB3,0x00,0xB4,0x00,0xB5,0x00,0xB6,0x00,0xB9,0x00,0xC3); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB1,0x00,0xD2,0x00,0xDD,0x00,0xE6,0x00,0xF0,0x00,0xF7,0x01,0x05,0x01,0x13,0x01,0x1F,0x01,0x2C,0x01,0x38,0x01,0x42,0x01,0x4C); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB2,0x01,0x51,0x01,0x56,0x01,0x5A,0x01,0x5F,0x01,0x63,0x01,0x67,0x01,0x6C,0x01,0x6D,0x01,0x75,0x01,0x76,0x01,0x77); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB3,0x00,0x00,0x00,0xB8,0x00,0xB9,0x00,0xBC,0x00,0xBD,0x00,0xBE,0x00,0xBF,0x00,0xC0,0x00,0xC1,0x00,0xC2,0x00,0xC3,0x00,0xC4); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB4,0x00,0xC6,0x00,0xC9,0x00,0xCD,0x00,0xD2,0x00,0xD6,0x00,0xE0,0x00,0xE9,0x00,0xF3,0x00,0xFD,0x01,0x06,0x01,0x0D,0x01,0x15); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB5,0x01,0x19,0x01,0x1C,0x01,0x20,0x01,0x24,0x01,0x27,0x01,0x2A,0x01,0x2E,0x01,0x32,0x01,0x34,0x01,0x37,0x01,0x38); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB6,0x00,0x00,0x00,0xC0,0x00,0xC4,0x00,0xC5,0x00,0xC6,0x00,0xC7,0x00,0xC8,0x00,0xC9,0x00,0xCA,0x00,0xCB,0x00,0xCF,0x00,0xD4); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB7,0x00,0xDD,0x00,0xE8,0x00,0xF2,0x00,0xFC,0x01,0x05,0x01,0x17,0x01,0x26,0x01,0x36,0x01,0x44,0x01,0x52,0x01,0x5C,0x01,0x67); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB8,0x01,0x6C,0x01,0x72,0x01,0x77,0x01,0x7B,0x01,0x80,0x01,0x84,0x01,0x8A,0x01,0x8C,0x01,0x94,0x01,0x95,0x01,0x96); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xBF,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB0,0x00,0x00,0x00,0xAB,0x00,0xAC,0x00,0xAD,0x00,0xAE,0x00,0xAF,0x00,0xB0,0x00,0xB1,0x00,0xB2,0x00,0xB3,0x00,0xB4,0x00,0xB5); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB1,0x00,0xBE,0x00,0xC6,0x00,0xCF,0x00,0xD7,0x00,0xDE,0x00,0xE9,0x00,0xF4,0x00,0xFD,0x01,0x06,0x01,0x0E,0x01,0x17,0x01,0x1F); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB2,0x01,0x23,0x01,0x26,0x01,0x2A,0x01,0x2E,0x01,0x31,0x01,0x36,0x01,0x3A,0x01,0x3B,0x01,0x41,0x01,0x42,0x01,0x43); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB3,0x00,0x00,0x00,0xB7,0x00,0xB9,0x00,0xBA,0x00,0xBB,0x00,0xBC,0x00,0xBD,0x00,0xBE,0x00,0xBF,0x00,0xC0,0x00,0xC1,0x00,0xC2); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB4,0x00,0xC3,0x00,0xC4,0x00,0xC6,0x00,0xC7,0x00,0xC9,0x00,0xCE,0x00,0xD4,0x00,0xDA,0x00,0xE1,0x00,0xE6,0x00,0xEC,0x00,0xF3); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB5,0x00,0xF6,0x00,0xF8,0x00,0xFB,0x00,0xFE,0x01,0x01,0x01,0x03,0x01,0x04,0x01,0x08,0x01,0x09,0x01,0x0D,0x01,0x0E); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB6,0x00,0x00,0x00,0xC1,0x00,0xC2,0x00,0xC3,0x00,0xC4,0x00,0xC5,0x00,0xC6,0x00,0xC7,0x00,0xC8,0x00,0xC9,0x00,0xCA,0x00,0xCB); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB7,0x00,0xCE,0x00,0xD5,0x00,0xDB,0x00,0xE2,0x00,0xE9,0x00,0xF5,0x01,0x01,0x01,0x0D,0x01,0x18,0x01,0x21,0x01,0x2B,0x01,0x35); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB8,0x01,0x3A,0x01,0x3D,0x01,0x42,0x01,0x46,0x01,0x4B,0x01,0x4E,0x01,0x54,0x01,0x55,0x01,0x5C,0x01,0x5D,0x01,0x5E); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xCE,0x01); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xCC,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x02); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB9,0x00,0x04,0x00,0x0C,0x00,0x14,0x00,0x1C,0x00,0x24,0x00,0x2C,0x00,0x34,0x00,0x3C,0x00,0x44,0x00,0x4C,0x00,0x5C,0x00,0x7C); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xBA,0x00,0x9C,0x00,0xBC,0x00,0xDC,0x00,0xFC,0x01,0x3C,0x01,0x7C,0x01,0xBC,0x01,0xFC,0x02,0x3C,0x02,0x7C,0x02,0xBC,0x02,0xDC); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 21, 0xBB,0x02,0xFC,0x03,0x1C,0x03,0x3C,0x03,0x5C,0x03,0x7C,0x03,0x9C,0x03,0xBC,0x03,0xDC,0x03,0xFC,0x03,0xFF); delayUs(50); #endif #if 1// v4 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x07); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xC0,0x10); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x03); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xD4,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x01); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xC0,0x33); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0xB2,0x59,0x00,0x08,0x08); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x01); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xCA,0x30); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xB5,0x80); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x01); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xC6,0x13); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x01); delayUs(50); // hal_dsi_tx_ctrl_write_cmd(0x39, 0, 9, 0xB9,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F); // delayUs(50); // hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x01); // delayUs(50); // hal_dsi_tx_ctrl_write_cmd(0x39, 0, 7, 0xD2,0x00,0x12,0x61,0x25,0x43,0x07); // delayUs(50); // hal_dsi_tx_ctrl_write_cmd(0x39, 0, 7, 0xB7,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E); // delayUs(50); // hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0xB8,0x48,0x48,0x48,0x48); // delayUs(50); // //hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x01); // //delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xB3,0x25);//13 delayUs(50); // hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x01); // delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xB4,0x25);//13 delayUs(50); // hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0xCD,0x05,0x61); // delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x05); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0xB3,0x88,0x80); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0xB5,0x04,0x01); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0xB7,0x04,0x00,0x00,0x01); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0xB8,0x04,0x00,0x00,0x01); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0xFF,0xAA,0x55,0xA5,0x81); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x0D); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xF3,0xAB); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x05); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0xFD,0x00,0xDA); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0xFF,0xAA,0x55,0xA5,0x80); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x0A); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xFC,0x02); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x36); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xF6,0x42); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x00,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0x3B,0x00,0x0C,0x00,0x04); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x90,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0x93,0x89,0x28,0x00,0x0C,0x02,0x00,0x02,0x0E,0x00,0x00,0x01,0x1F,0x00,0x07,0x08,0xBB,0x08,0x7A,0x00,0x00,0x10,0xF0); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x03,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x2C,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x35,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x53,0x20); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0x51,0x0D,0xBB,0x00,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0x2A,0x00,0x00,0x04,0x37); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0x2B,0x00,0x00,0x09,0x23); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x2F,0x01); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x26,0x01); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0xB5,0x80,0x42); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x05); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0xB5,0x7F,0x2B,0x12,0x33); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x0B); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 4, 0xB5,0x2B,0x12,0x33); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 37, 0xB3,0x00,0x08,0x00,0x18,0x00,0x18,0x00,0x31,0x00,0x31,0x00,0x62,0x00,0x62,0x00,0xC0,0x00,0xC0,0x01,0x46,0x01,0x46,0x01,0x47,0x01,0x47,0x03,0x33,0x03,0x33,0x07,0xFF,0x07,0xFF,0x0F,0xFF); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 11, 0xB4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x0A); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 11, 0xB4,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x14); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 10, 0xB4,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0x6F,0x13); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0xB2,0x00,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x02); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xCC,0x30); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x02); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xBF,0x09); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB0,0x00,0x00,0x00,0xB5,0x00,0xCB,0x00,0xE6,0x00,0xF7,0x01,0x08,0x01,0x17,0x01,0x26,0x01,0x32,0x01,0x3E,0x01,0x49,0x01,0x5E); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB1,0x01,0x81,0x01,0x9C,0x01,0xB6,0x01,0xCC,0x01,0xE2,0x02,0x07,0x02,0x28,0x02,0x47,0x02,0x65,0x02,0x82,0x02,0x9E,0x02,0xBA); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB2,0x02,0xC8,0x02,0xD6,0x02,0xE4,0x02,0xF0,0x02,0xFC,0x03,0x0A,0x03,0x17,0x03,0x27,0x03,0x37,0x03,0x41,0x03,0x43); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB3,0x00,0x00,0x00,0xBE,0x00,0xC4,0x00,0xCC,0x00,0xD7,0x00,0xE2,0x00,0xED,0x00,0xF8,0x01,0x01,0x01,0x0A,0x01,0x13,0x01,0x24); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB4,0x01,0x41,0x01,0x58,0x01,0x6E,0x01,0x80,0x01,0x92,0x01,0xB2,0x01,0xCE,0x01,0xE8,0x02,0x00,0x02,0x17,0x02,0x2D,0x02,0x43); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB5,0x02,0x4E,0x02,0x59,0x02,0x64,0x02,0x6E,0x02,0x79,0x02,0x84,0x02,0x8E,0x02,0x99,0x02,0xA4,0x02,0xB0,0x02,0xB2); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB6,0x00,0x00,0x00,0xBF,0x00,0xD6,0x00,0xF2,0x01,0x06,0x01,0x1A,0x01,0x2D,0x01,0x3D,0x01,0x4B,0x01,0x59,0x01,0x66,0x01,0x7D); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB7,0x01,0xA4,0x01,0xC2,0x01,0xDE,0x01,0xF5,0x02,0x0B,0x02,0x33,0x02,0x56,0x02,0x77,0x02,0x97,0x02,0xB6,0x02,0xD4,0x02,0xF2); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB8,0x03,0x01,0x03,0x10,0x03,0x1F,0x03,0x2D,0x03,0x3C,0x03,0x4A,0x03,0x57,0x03,0x67,0x03,0x7D,0x03,0x87,0x03,0x89); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xBF,0x08); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB0,0x00,0x00,0x00,0xB6,0x00,0xC3,0x00,0xDD,0x00,0xEE,0x00,0xFF,0x01,0x0C,0x01,0x1A,0x01,0x26,0x01,0x31,0x01,0x3C,0x01,0x4F); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB1,0x01,0x70,0x01,0x8C,0x01,0xA3,0x01,0xB9,0x01,0xCD,0x01,0xF0,0x02,0x0F,0x02,0x2D,0x02,0x47,0x02,0x61,0x02,0x7C,0x02,0x94); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB2,0x02,0xA1,0x02,0xAD,0x02,0xBB,0x02,0xC5,0x02,0xD1,0x02,0xDD,0x02,0xE9,0x02,0xF3,0x02,0xFF,0x03,0x0A,0x03,0x0B); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB3,0x00,0x00,0x00,0xBD,0x00,0xC4,0x00,0xC9,0x00,0xD2,0x00,0xDC,0x00,0xE6,0x00,0xEF,0x00,0xF8,0x01,0x01,0x01,0x09,0x01,0x18); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB4,0x01,0x33,0x01,0x4A,0x01,0x5E,0x01,0x71,0x01,0x81,0x01,0x9E,0x01,0xB9,0x01,0xD2,0x01,0xE8,0x01,0xFD,0x02,0x12,0x02,0x26); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB5,0x02,0x2F,0x02,0x39,0x02,0x42,0x02,0x4C,0x02,0x56,0x02,0x5E,0x02,0x68,0x02,0x72,0x02,0x7B,0x02,0x85,0x02,0x86); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB6,0x00,0x00,0x00,0xC2,0x00,0xD2,0x00,0xE8,0x00,0xFB,0x01,0x0F,0x01,0x20,0x01,0x30,0x01,0x3D,0x01,0x4A,0x01,0x57,0x01,0x6C); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB7,0x01,0x91,0x01,0xB0,0x01,0xCA,0x01,0xE2,0x01,0xF6,0x02,0x1A,0x02,0x3C,0x02,0x5B,0x02,0x77,0x02,0x93,0x02,0xAF,0x02,0xCA); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB8,0x02,0xD7,0x02,0xE4,0x02,0xF3,0x02,0xFD,0x03,0x0B,0x03,0x18,0x03,0x24,0x03,0x31,0x03,0x3F,0x03,0x4A,0x03,0x4B); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xBF,0x07); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB0,0x00,0x00,0x00,0xA9,0x00,0xAA,0x00,0xC7,0x00,0xD8,0x00,0xE5,0x00,0xF0,0x00,0xFA,0x01,0x05,0x01,0x0D,0x01,0x16,0x01,0x25); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB1,0x01,0x42,0x01,0x5A,0x01,0x6F,0x01,0x82,0x01,0x93,0x01,0xB1,0x01,0xCC,0x01,0xE3,0x01,0xF9,0x02,0x0D,0x02,0x22,0x02,0x33); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB2,0x02,0x3D,0x02,0x45,0x02,0x4D,0x02,0x57,0x02,0x5F,0x02,0x68,0x02,0x70,0x02,0x79,0x02,0x7F,0x02,0x89,0x02,0x8A); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB3,0x00,0x00,0x00,0xBD,0x00,0xC4,0x00,0xC5,0x00,0xC8,0x00,0xCD,0x00,0xD3,0x00,0xD9,0x00,0xE0,0x00,0xE6,0x00,0xEC,0x00,0xF8); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB4,0x01,0x0D,0x01,0x21,0x01,0x32,0x01,0x42,0x01,0x50,0x01,0x6A,0x01,0x80,0x01,0x94,0x01,0xA6,0x01,0xB7,0x01,0xC8,0x01,0xD7); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB5,0x01,0xDF,0x01,0xE7,0x01,0xED,0x01,0xF5,0x01,0xFB,0x02,0x02,0x02,0x08,0x02,0x0F,0x02,0x17,0x02,0x1C,0x02,0x1D); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB6,0x00,0x00,0x00,0xC8,0x00,0xC9,0x00,0xD5,0x00,0xE4,0x00,0xF1,0x00,0xFD,0x01,0x0A,0x01,0x17,0x01,0x21,0x01,0x2B,0x01,0x3D); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB7,0x01,0x5E,0x01,0x79,0x01,0x90,0x01,0xA5,0x01,0xB8,0x01,0xD9,0x01,0xF5,0x02,0x0D,0x02,0x24,0x02,0x3A,0x02,0x4F,0x02,0x62); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB8,0x02,0x6C,0x02,0x75,0x02,0x7D,0x02,0x88,0x02,0x91,0x02,0x9A,0x02,0xA2,0x02,0xAC,0x02,0xB3,0x02,0xBD,0x02,0xBE); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xBF,0x06); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB0,0x00,0x00,0x00,0x9B,0x00,0xAD,0x00,0xB0,0x00,0xC1,0x00,0xCF,0x00,0xDA,0x00,0xE2,0x00,0xEA,0x00,0xF0,0x00,0xF8,0x01,0x05); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB1,0x01,0x1A,0x01,0x2E,0x01,0x42,0x01,0x51,0x01,0x61,0x01,0x7A,0x01,0x91,0x01,0xA5,0x01,0xB8,0x01,0xCA,0x01,0xD9,0x01,0xE8); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB2,0x01,0xEF,0x01,0xF7,0x01,0xFE,0x02,0x05,0x02,0x0B,0x02,0x12,0x02,0x18,0x02,0x1E,0x02,0x23,0x02,0x2B,0x02,0x2C); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB3,0x00,0x00,0x00,0xAB,0x00,0xC1,0x00,0xC4,0x00,0xC5,0x00,0xC6,0x00,0xC9,0x00,0xCC,0x00,0xD0,0x00,0xD3,0x00,0xD7,0x00,0xE0); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB4,0x00,0xF0,0x00,0xFF,0x01,0x0D,0x01,0x19,0x01,0x26,0x01,0x3B,0x01,0x4E,0x01,0x60,0x01,0x70,0x01,0x7D,0x01,0x8B,0x01,0x98); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB5,0x01,0x9E,0x01,0xA5,0x01,0xAA,0x01,0xB0,0x01,0xB6,0x01,0xBB,0x01,0xC0,0x01,0xC7,0x01,0xCC,0x01,0xD0,0x01,0xD1); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB6,0x00,0x00,0x00,0xB5,0x00,0xCA,0x00,0xCB,0x00,0xD3,0x00,0xDC,0x00,0xE6,0x00,0xEE,0x00,0xF6,0x00,0xFE,0x01,0x07,0x01,0x17); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB7,0x01,0x31,0x01,0x48,0x01,0x5E,0x01,0x6F,0x01,0x80,0x01,0x9C,0x01,0xB6,0x01,0xCC,0x01,0xE0,0x01,0xF2,0x02,0x03,0x02,0x12); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB8,0x02,0x1A,0x02,0x22,0x02,0x2A,0x02,0x31,0x02,0x38,0x02,0x3F,0x02,0x45,0x02,0x4B,0x02,0x51,0x02,0x59,0x02,0x5A); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xBF,0x05); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB0,0x00,0x00,0x00,0xA7,0x00,0xAF,0x00,0xB5,0x00,0xC1,0x00,0xCF,0x00,0xDA,0x00,0xE2,0x00,0xE9,0x00,0xF0,0x00,0xF8,0x01,0x04); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB1,0x01,0x1A,0x01,0x2E,0x01,0x41,0x01,0x51,0x01,0x60,0x01,0x79,0x01,0x90,0x01,0xA4,0x01,0xB7,0x01,0xC9,0x01,0xD8,0x01,0xE8); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB2,0x01,0xEF,0x01,0xF6,0x01,0xFD,0x02,0x04,0x02,0x0A,0x02,0x11,0x02,0x18,0x02,0x1C,0x02,0x26,0x02,0x2A,0x02,0x2B); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB3,0x00,0x00,0x00,0xBD,0x00,0xC2,0x00,0xC4,0x00,0xC5,0x00,0xC6,0x00,0xC9,0x00,0xCC,0x00,0xCF,0x00,0xD3,0x00,0xD7,0x00,0xDF); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB4,0x00,0xF0,0x00,0xFF,0x01,0x0C,0x01,0x19,0x01,0x25,0x01,0x3A,0x01,0x4D,0x01,0x5F,0x01,0x6F,0x01,0x7C,0x01,0x8A,0x01,0x98); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB5,0x01,0x9E,0x01,0xA4,0x01,0xA9,0x01,0xAF,0x01,0xB5,0x01,0xBA,0x01,0xC0,0x01,0xC6,0x01,0xCA,0x01,0xCF,0x01,0xD0); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB6,0x00,0x00,0x00,0xC1,0x00,0xC8,0x00,0xC9,0x00,0xD3,0x00,0xDC,0x00,0xE6,0x00,0xEE,0x00,0xF5,0x00,0xFE,0x01,0x07,0x01,0x16); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB7,0x01,0x31,0x01,0x48,0x01,0x5D,0x01,0x6F,0x01,0x7F,0x01,0x9B,0x01,0xB5,0x01,0xCB,0x01,0xDF,0x01,0xF1,0x02,0x02,0x02,0x12); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB8,0x02,0x1A,0x02,0x21,0x02,0x29,0x02,0x30,0x02,0x37,0x02,0x3E,0x02,0x45,0x02,0x49,0x02,0x54,0x02,0x58,0x02,0x59); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xBF,0x04); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB0,0x00,0x00,0x00,0xA8,0x00,0xAC,0x00,0xB4,0x00,0xB7,0x00,0xC5,0x00,0xCD,0x00,0xD6,0x00,0xDC,0x00,0xE2,0x00,0xE9,0x00,0xF4); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB1,0x01,0x07,0x01,0x19,0x01,0x29,0x01,0x38,0x01,0x46,0x01,0x5E,0x01,0x72,0x01,0x85,0x01,0x96,0x01,0xA5,0x01,0xB4,0x01,0xC3); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB2,0x01,0xC9,0x01,0xD0,0x01,0xD6,0x01,0xDC,0x01,0xE2,0x01,0xE8,0x01,0xED,0x01,0xF2,0x01,0xF8,0x01,0xFE,0x01,0xFF); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB3,0x00,0x00,0x00,0xBC,0x00,0xC0,0x00,0xC2,0x00,0xC3,0x00,0xC4,0x00,0xC6,0x00,0xC8,0x00,0xC9,0x00,0xCC,0x00,0xCF,0x00,0xD5); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB4,0x00,0xE2,0x00,0xEF,0x00,0xFA,0x01,0x06,0x01,0x10,0x01,0x24,0x01,0x34,0x01,0x44,0x01,0x53,0x01,0x60,0x01,0x6C,0x01,0x78); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB5,0x01,0x7D,0x01,0x83,0x01,0x88,0x01,0x8D,0x01,0x93,0x01,0x98,0x01,0x9C,0x01,0xA2,0x01,0xA7,0x01,0xAA,0x01,0xAB); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB6,0x00,0x00,0x00,0xC2,0x00,0xC6,0x00,0xCA,0x00,0xCF,0x00,0xD4,0x00,0xDA,0x00,0xE2,0x00,0xE8,0x00,0xEE,0x00,0xF5,0x01,0x03); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB7,0x01,0x1A,0x01,0x30,0x01,0x42,0x01,0x53,0x01,0x63,0x01,0x7D,0x01,0x94,0x01,0xA8,0x01,0xBB,0x01,0xCC,0x01,0xDC,0x01,0xEB); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB8,0x01,0xF2,0x01,0xF9,0x01,0xFF,0x02,0x06,0x02,0x0C,0x02,0x12,0x02,0x18,0x02,0x1D,0x02,0x23,0x02,0x2A,0x02,0x2B); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xBF,0x03); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB0,0x00,0x00,0x00,0xAB,0x00,0xAC,0x00,0xAF,0x00,0xB4,0x00,0xB8,0x00,0xC1,0x00,0xC7,0x00,0xCD,0x00,0xD4,0x00,0xD8,0x00,0xE2); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB1,0x00,0xF4,0x01,0x02,0x01,0x0F,0x01,0x1C,0x01,0x28,0x01,0x3D,0x01,0x50,0x01,0x61,0x01,0x70,0x01,0x7D,0x01,0x8B,0x01,0x97); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB2,0x01,0x9D,0x01,0xA3,0x01,0xA9,0x01,0xAE,0x01,0xB3,0x01,0xB9,0x01,0xBE,0x01,0xC3,0x01,0xC7,0x01,0xCD,0x01,0xCE); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB3,0x00,0x00,0x00,0xB6,0x00,0xBE,0x00,0xC1,0x00,0xC2,0x00,0xC3,0x00,0xC4,0x00,0xC5,0x00,0xC6,0x00,0xC7,0x00,0xC8,0x00,0xCC); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB4,0x00,0xD5,0x00,0xDE,0x00,0xE7,0x00,0xF1,0x00,0xF9,0x01,0x09,0x01,0x18,0x01,0x26,0x01,0x33,0x01,0x3E,0x01,0x49,0x01,0x54); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB5,0x01,0x59,0x01,0x5E,0x01,0x63,0x01,0x67,0x01,0x6B,0x01,0x70,0x01,0x74,0x01,0x79,0x01,0x7C,0x01,0x80,0x01,0x81); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB6,0x00,0x00,0x00,0xC5,0x00,0xC6,0x00,0xC7,0x00,0xCA,0x00,0xCD,0x00,0xD2,0x00,0xD6,0x00,0xDA,0x00,0xE0,0x00,0xE4,0x00,0xEE); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB7,0x01,0x03,0x01,0x14,0x01,0x24,0x01,0x34,0x01,0x41,0x01,0x59,0x01,0x6E,0x01,0x80,0x01,0x92,0x01,0xA0,0x01,0xAF,0x01,0xBC); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB8,0x01,0xC3,0x01,0xCA,0x01,0xD0,0x01,0xD6,0x01,0xDB,0x01,0xE1,0x01,0xE6,0x01,0xEB,0x01,0xF0,0x01,0xF6,0x01,0xF7); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xBF,0x02); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB0,0x00,0x00,0x00,0xAD,0x00,0xAE,0x00,0xAF,0x00,0xB5,0x00,0xB6,0x00,0xB7,0x00,0xBC,0x00,0xBD,0x00,0xC5,0x00,0xCA,0x00,0xD4); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB1,0x00,0xE1,0x00,0xED,0x00,0xF9,0x01,0x04,0x01,0x0D,0x01,0x20,0x01,0x31,0x01,0x40,0x01,0x4D,0x01,0x5A,0x01,0x66,0x01,0x71); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB2,0x01,0x76,0x01,0x7B,0x01,0x80,0x01,0x85,0x01,0x8A,0x01,0x8E,0x01,0x93,0x01,0x97,0x01,0x99,0x01,0x9F,0x01,0xA0); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB3,0x00,0x00,0x00,0xAD,0x00,0xBC,0x00,0xBE,0x00,0xBF,0x00,0xC0,0x00,0xC1,0x00,0xC2,0x00,0xC3,0x00,0xC4,0x00,0xC5,0x00,0xC7); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB4,0x00,0xCC,0x00,0xD1,0x00,0xD8,0x00,0xE0,0x00,0xE6,0x00,0xF4,0x01,0x00,0x01,0x0B,0x01,0x16,0x01,0x21,0x01,0x2A,0x01,0x34); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB5,0x01,0x38,0x01,0x3C,0x01,0x40,0x01,0x44,0x01,0x48,0x01,0x4C,0x01,0x50,0x01,0x54,0x01,0x59,0x01,0x5B,0x01,0x5C); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB6,0x00,0x00,0x00,0xC5,0x00,0xC6,0x00,0xC7,0x00,0xC8,0x00,0xC9,0x00,0xCA,0x00,0xCB,0x00,0xCF,0x00,0xD5,0x00,0xD8,0x00,0xE0); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB7,0x00,0xED,0x00,0xFB,0x01,0x09,0x01,0x17,0x01,0x22,0x01,0x38,0x01,0x4B,0x01,0x5C,0x01,0x6B,0x01,0x79,0x01,0x86,0x01,0x93); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB8,0x01,0x98,0x01,0x9D,0x01,0xA3,0x01,0xA8,0x01,0xAE,0x01,0xB3,0x01,0xB7,0x01,0xBC,0x01,0xBE,0x01,0xC6,0x01,0xC7); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xBF,0x01); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB0,0x00,0x00,0x00,0xA9,0x00,0xAD,0x00,0xAE,0x00,0xB0,0x00,0xB1,0x00,0xB2,0x00,0xB3,0x00,0xB4,0x00,0xB7,0x00,0xB8,0x00,0xC6); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB1,0x00,0xD3,0x00,0xDD,0x00,0xE6,0x00,0xEF,0x00,0xF7,0x01,0x07,0x01,0x14,0x01,0x22,0x01,0x2E,0x01,0x39,0x01,0x44,0x01,0x4E); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB2,0x01,0x52,0x01,0x56,0x01,0x5C,0x01,0x5F,0x01,0x64,0x01,0x68,0x01,0x6B,0x01,0x6D,0x01,0x71,0x01,0x77,0x01,0x78); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB3,0x00,0x00,0x00,0xB3,0x00,0xBB,0x00,0xBD,0x00,0xBE,0x00,0xBF,0x00,0xC0,0x00,0xC1,0x00,0xC2,0x00,0xC3,0x00,0xC4,0x00,0xC5); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB4,0x00,0xC7,0x00,0xCA,0x00,0xCE,0x00,0xD2,0x00,0xD7,0x00,0xE2,0x00,0xEB,0x00,0xF6,0x00,0xFE,0x01,0x07,0x01,0x0F,0x01,0x17); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB5,0x01,0x1B,0x01,0x1E,0x01,0x22,0x01,0x25,0x01,0x29,0x01,0x2C,0x01,0x30,0x01,0x34,0x01,0x38,0x01,0x39,0x01,0x3A); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB6,0x00,0x00,0x00,0xBD,0x00,0xC2,0x00,0xC3,0x00,0xC4,0x00,0xC5,0x00,0xC6,0x00,0xC7,0x00,0xC8,0x00,0xC9,0x00,0xD0,0x00,0xD6); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB7,0x00,0xDF,0x00,0xE9,0x00,0xF3,0x00,0xFD,0x01,0x07,0x01,0x1B,0x01,0x2A,0x01,0x3A,0x01,0x48,0x01,0x55,0x01,0x61,0x01,0x6C); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB8,0x01,0x71,0x01,0x75,0x01,0x7B,0x01,0x7F,0x01,0x84,0x01,0x88,0x01,0x8D,0x01,0x92,0x01,0x93,0x01,0x99,0x01,0x9A); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xBF,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB0,0x00,0x00,0x00,0xAA,0x00,0xAB,0x00,0xAC,0x00,0xAD,0x00,0xAE,0x00,0xAF,0x00,0xB0,0x00,0xB1,0x00,0xB2,0x00,0xB3,0x00,0xB4); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB1,0x00,0xC0,0x00,0xC8,0x00,0xD1,0x00,0xD7,0x00,0xDE,0x00,0xE9,0x00,0xF4,0x00,0xFD,0x01,0x07,0x01,0x0F,0x01,0x18,0x01,0x20); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB2,0x01,0x24,0x01,0x28,0x01,0x2B,0x01,0x2E,0x01,0x32,0x01,0x36,0x01,0x39,0x01,0x3C,0x01,0x3D,0x01,0x43,0x01,0x44); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB3,0x00,0x00,0x00,0xB7,0x00,0xB9,0x00,0xBA,0x00,0xBB,0x00,0xBC,0x00,0xBD,0x00,0xBE,0x00,0xBF,0x00,0xC0,0x00,0xC1,0x00,0xC2); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB4,0x00,0xC3,0x00,0xC4,0x00,0xC6,0x00,0xC7,0x00,0xCA,0x00,0xCF,0x00,0xD5,0x00,0xDB,0x00,0xE2,0x00,0xE7,0x00,0xED,0x00,0xF4); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB5,0x00,0xF6,0x00,0xF9,0x00,0xFB,0x00,0xFE,0x01,0x02,0x01,0x04,0x01,0x07,0x01,0x08,0x01,0x0D,0x01,0x0E,0x01,0x0F); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB6,0x00,0x00,0x00,0xC3,0x00,0xC4,0x00,0xC5,0x00,0xC6,0x00,0xC7,0x00,0xC8,0x00,0xC9,0x00,0xCA,0x00,0xCB,0x00,0xCC,0x00,0xCD); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB7,0x00,0xD1,0x00,0xD6,0x00,0xDD,0x00,0xE3,0x00,0xEA,0x00,0xF7,0x01,0x03,0x01,0x0F,0x01,0x1B,0x01,0x24,0x01,0x2E,0x01,0x38); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 23, 0xB8,0x01,0x3C,0x01,0x41,0x01,0x45,0x01,0x49,0x01,0x4D,0x01,0x52,0x01,0x55,0x01,0x59,0x01,0x5A,0x01,0x61,0x01,0x62); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xCE,0x01); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 2, 0xCC,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x02); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xB9,0x00,0x04,0x00,0x0C,0x00,0x14,0x00,0x1C,0x00,0x24,0x00,0x2C,0x00,0x34,0x00,0x3C,0x00,0x44,0x00,0x4C,0x00,0x5C,0x00,0x7C); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 25, 0xBA,0x00,0x9C,0x00,0xBC,0x00,0xDC,0x00,0xFC,0x01,0x3C,0x01,0x7C,0x01,0xBC,0x01,0xFC,0x02,0x3C,0x02,0x7C,0x02,0xBC,0x02,0xDC); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 21, 0xBB,0x02,0xFC,0x03,0x1C,0x03,0x3C,0x03,0x5C,0x03,0x7C,0x03,0x9C,0x03,0xBC,0x03,0xDC,0x03,0xFC,0x03,0xFF); delayUs(50); #endif #if 1 //TEST // hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x00); // delayUs(50); // hal_dsi_tx_ctrl_write_cmd(0x15, 0, 2, 0xBE, 0x18); // delayUs(50); // hal_dsi_tx_ctrl_write_cmd(0x15, 0, 2, 0x6F, 0x07); // delayUs(50); // hal_dsi_tx_ctrl_write_cmd(0x15, 0, 2, 0xBE, 0x04); // delayUs(50); #endif #if 1 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 6, 0xF0,0x55,0xAA,0x52,0x08,0x00); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x15, 0, 2, 0xC0, 0x55); delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0X3B, 0x00,0x10,0x00,0X10);// 10 10 delayUs(50); hal_dsi_tx_ctrl_write_cmd(0x15, 0, 2, 0x90, 0x00); delayUs(50); // hal_dsi_tx_ctrl_write_cmd(0x39, 0, 5, 0XEE, 0x87,0x78,0x02,0X40); // BIST MODE // hal_dsi_tx_ctrl_write_cmd(0x15, 0, 2, 0xEF, 0x01); // BIST ENABLE hal_dsi_tx_ctrl_write_cmd(0x05, 0, 1, 0x2C); #endif #if 0 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x51, 0x01, 0x00); //最大0FFF hal_dsi_tx_ctrl_write_cmd(0x05, 0, 1, 0x11); hal_gpio_set_output_data(IO_PAD_PWMEN, IO_LVL_HIGH); //LED_ON soft_te_timer_init(); delayMs(50); //42//50 Gpio_swire_output(2, 40); //40 delayMs(20); hal_dsi_tx_ctrl_write_cmd(0x05, 0, 1, 0x29); #else //极少数待机起来会闪一下,要用此时序 hal_dsi_tx_ctrl_write_cmd(0x39, 0, 3, 0x51, 0x01, 0x00); //最大0FFF hal_dsi_tx_ctrl_write_cmd(0x05, 0, 1, 0x11); hal_gpio_set_output_data(IO_PAD_PWMEN, IO_LVL_HIGH); //LED_ON soft_te_timer_init(); delayMs(45); //45 Gpio_swire_output(2, 40); //40 delayMs(20); //20 // hal_dsi_tx_ctrl_write_cmd(0x05, 0, 1, 0x29); #endif #endif /* exit send initial code mode*/ hal_dsi_tx_ctrl_exit_init_panel_mode(); delayMs(20); } void blue_change_ccm(void) { ccm_coef_t ccm; ccm.coef_c00 = 260; // 250 ccm.coef_c01 = 0; ccm.coef_c02 = 0; ccm.coef_c10 = 0; ccm.coef_c11 = 250; // 250 ccm.coef_c12 = 0; ccm.coef_c20 = 0; ccm.coef_c21 = 0; ccm.coef_c22 = 260; hal_dsi_tx_ctrl_set_ccm(ccm); } static void open_mipi_rx(void) { /* 配置TE引脚 */ hal_gpio_set_mode(IO_PAD_AP_TE, IO_MODE_TEAR); if (g_rx_ctrl_handle == NULL) { /* 创建rx ctrl handle */ g_rx_ctrl_handle = hal_dsi_rx_ctrl_create_handle(); } /* 配置参数 */ g_rx_ctrl_handle->base_info.src_w = INPUT_WIDTH; g_rx_ctrl_handle->base_info.src_h = INPUT_HEIGHT; g_rx_ctrl_handle->base_info.dst_w = OUTPUT_WIDTH; g_rx_ctrl_handle->base_info.dst_h = OUTPUT_HEIGHT; g_rx_ctrl_handle->base_info.src_frate = INPUT_FRAME_RATE; g_rx_ctrl_handle->base_info.src_mode = INPUT_DATA_MODE; g_rx_ctrl_handle->rx_color_mode = INPUT_COLOR_MODE; g_rx_ctrl_handle->rx_lanes = INPUT_MIPI_LANE_NUM; g_rx_ctrl_handle->rx_nonburst_models = INPUT_VIDEO_MODEL; /* 可不配置 */ g_rx_ctrl_handle->rx_vc = INPUT_VC; g_rx_ctrl_handle->compress_en = INPUT_COMPRESS; g_rx_ctrl_handle->rx_hsclk_rate = INPUT_MIPI_LANE_RATE; g_rx_ctrl_handle->cus_dcs_entry_table = g_cus_rx_dcs_execute_table; /* 注册 DCS处理列表 */ g_rx_ctrl_handle->rx_dcs_read_entry = ap_dcs_read; /* 注册dsc read 回调函数,可选,此函数为空时由cus_dcs_entry_table执行 */ g_rx_ctrl_handle->pps_update_entry = pps_update_handle; #if 1//这个打开会导致开机分屏。打印信息TX有问题 g_rx_ctrl_handle->pq_marginal = 3; g_rx_ctrl_handle->err_handler_level = ERR_HANDLE_L2; g_rx_ctrl_handle->hight_performan_mode = HIGHT_PERFORMAN_L2; #endif /* 提前预置PPS, AP 有PPS cmd也会更新 */ if (g_rx_ctrl_handle->compress_en == true) { #if 1 uint8_t pps[128] = { #if 1// 0: MI10 0x11,0x00,0x00,0x89,0x30,0x80,0x09,0x24,0x04,0x38,0x00,0x41,0x02,0x1C,0x02,0x1C, 0x02,0x00,0x02,0x0E,0x00,0x20,0x06,0x50,0x00,0x07,0x00,0x0C,0x01,0x80,0x01,0x91, 0x18,0x00,0x10,0xF0,0x03,0x0C,0x20,0x00,0x06,0x0B,0x0B,0x33,0x0E,0x1C,0x2A,0x38, 0x46,0x54,0x62,0x69,0x70,0x77,0x79,0x7B,0x7D,0x7E,0x01,0x02,0x01,0x00,0x09,0x40, 0x09,0xBE,0x19,0xFC,0x19,0xFA,0x19,0xF8,0x1A,0x38,0x1A,0x78,0x1A,0xB6,0x2A,0xF6, 0x2B,0x34,0x2B,0x74,0x3B,0x74,0x6B,0xF4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, #else 0x11,0x00,0x00,0x89,0x30,0x80,0x09,0x24,0x04,0x38,0x00,0x0C,0x02,0x1C,0x02,0x1C, 0x02,0x00,0x02,0x0E,0x00,0x20,0x01,0x1F,0x00,0x07,0x00,0x0C,0x08,0xBB,0x08,0x7A, 0x18,0x00,0x10,0xF0,0x03,0x0C,0x20,0x00,0x06,0x0B,0x0B,0x33,0x0E,0x1C,0x2A,0x38, 0x46,0x54,0x62,0x69,0x70,0x77,0x79,0x7B,0x7D,0x7E,0x01,0x02,0x01,0x00,0x09,0x40, 0x09,0xBE,0x19,0xFC,0x19,0xFA,0x19,0xF8,0x1A,0x38,0x1A,0x78,0x1A,0xB6,0x2A,0xF6, 0x2B,0x34,0x2B,0x74,0x3B,0x74,0x6B,0xF4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, #endif }; #endif hal_dsi_rx_ctrl_pre_init_pps(g_rx_ctrl_handle, pps, 128); } /* 初始化rx ctrl */ hal_dsi_rx_ctrl_init(g_rx_ctrl_handle); #ifdef USE_FOR_SUMSUNG_S20 hal_dsi_rx_ctrl_set_cus_sync_line(g_rx_ctrl_handle, 2000);// lss add, 撕裂问题1600 #endif // hal_dsi_rx_ctrl_set_cus_sync_line(g_rx_ctrl_handle, 1800); #if CUS_SCLD_FILTER // hal_dsi_rx_ctrl_set_cus_scld_filter(g_rx_ctrl_handle, rx_filter_hd_1080_h, rx_filter_hd_1080_v);// rx_1080_filter_H_2, rx_1080_filter_V_2 // hal_dsi_rx_ctrl_set_cus_scld_filter(g_rx_ctrl_handle, rx_filter_H, rx_filter_V); hal_dsi_rx_ctrl_set_cus_scld_filter(g_rx_ctrl_handle, rx_filter_1080_h_4_86, rx_filter_2340_v_4_95);// #endif #if 1 // hal_dsi_rx_ctrl_hight_performan_mode(g_rx_ctrl_handle); #endif /* 启动rx ctrl */ hal_dsi_rx_ctrl_start(g_rx_ctrl_handle); // hal_dsi_rx_ctrl_set_cus_esc_clk(g_rx_ctrl_handle,20000000); // hal_dsi_rx_ctrl_set_cus_pq_enh_chr(g_rx_ctrl_handle, 400, 0); // hal_dsi_rx_ctrl_set_cus_pq_gain(g_rx_ctrl_handle,256, 253, 256); blue_change_ccm(); } static void init_mipi_tx(void) { if (g_tx_ctrl_handle == NULL) { g_tx_ctrl_handle = hal_dsi_tx_ctrl_create_handle(); } g_tx_ctrl_handle->channel_id = OUTPUT_VC; g_tx_ctrl_handle->lane_num = OUTPUT_LANE_NUMBER; g_tx_ctrl_handle->vid_mode = OUTPUT_VIDEO_MODEL; g_tx_ctrl_handle->cmd_tx_type = _CMD_TYPE; g_tx_ctrl_handle->dpi_vsa = OUTPUT_VSA; g_tx_ctrl_handle->dpi_vbp = OUTPUT_VBP; g_tx_ctrl_handle->dpi_vfp = OUTPUT_VFP; g_tx_ctrl_handle->dpi_hsa = OUTPUT_HSA; g_tx_ctrl_handle->dpi_hbp = OUTPUT_HBP; g_tx_ctrl_handle->dpi_hfp = OUTPUT_HFP; g_tx_ctrl_handle->base_info.src_w = INPUT_WIDTH; g_tx_ctrl_handle->base_info.src_h = INPUT_HEIGHT; g_tx_ctrl_handle->base_info.dst_w = OUTPUT_WIDTH; g_tx_ctrl_handle->base_info.dst_h = OUTPUT_HEIGHT; g_tx_ctrl_handle->base_info.src_frate = INPUT_FRAME_RATE; g_tx_ctrl_handle->base_info.src_mode = INPUT_DATA_MODE; // g_tx_ctrl_handle->tx_frame_rate = 60; // g_tx_ctrl_handle->tx_clkawayshs = true; hal_dsi_tx_ctrl_init(g_tx_ctrl_handle); /* AP 没有发送数据时默认的显示颜色, 量产为0 0 0(黑色), 配置其他颜色仅为debug使用 */ hal_dsi_tx_ctrl_set_overwrite_rgb(0x00, 0x00, 0x00); } static void tx_display_on(void) { init_panel(); hal_dsi_tx_ctrl_start(g_tx_ctrl_handle); delayMs(100); //20 hal_dsi_tx_ctrl_write_cmd(0x05, 0, 1, 0x29); panel_display_done = true; } static void swire_timer_callback(void *data) { /* if(Flag_blacklight_EN) { hal_swire_start(12, 12, 12, 12, SWIRE_DEFAULT_NUM); } else if(s20_power_on_flag) { hal_swire_start(12, 12, 12, 12, SWIRE_DEFAULT_NUM); } else */ { hal_swire_start(12, 12, 12, 12, swire_num); } } static void swire_callback(void *data) { /* swire 的是否需要一直发送需要根据手机定,不同手机不同 */ //if(start_display_on == false) { hal_timer_start(SWIRE_TIMER, 26, swire_timer_callback, NULL); } } /* swire 初始化,通过 hal_swire_start 调整波形, 这里在循坏一直发送 */ static void swire_init() { hal_swire_open(DISABLE); hal_swire_init(); /* swire 波形发生完成后回调函数 */ hal_swire_register_callback(swire_callback); hal_swire_open(ENABLE); //hal_swire_start(12, 12, 12, 12, 43); hal_swire_start(12, 12, 12, 12, SWIRE_DEFAULT_NUM); //3~27,亮~暗,9.45V~7.43V hal_timer_init(SWIRE_TIMER); hal_timer_start(SWIRE_TIMER, 26, swire_timer_callback, NULL); } static void soft_swire_start(uint8_t pulse) { do { hal_gpio_init_output(IO_PAD_ADCIN, IO_LVL_LOW); // 3us delayUs(10); hal_gpio_init_output(IO_PAD_ADCIN, IO_LVL_HIGH); // 3us delayUs(10); }while(pulse--); } static void soft_swire_timer_callback(void *data) { // s_swire_pwm_counter++; // if( s_swire_pwm_counter < SWIRE_MAX_NUM ) { soft_swire_start(g_swire_num); hal_timer_start(SWIRE_TIMER, 11, soft_swire_timer_callback, NULL); } /* else { hal_timer_deinit(SWIRE_TIMER); hal_timer_stop(SWIRE_TIMER); hal_gpio_init_output(IO_PAD_ADCIN, IO_LVL_HIGH); } */ } static void soft_swire_init(void) { hal_gpio_init_output(IO_PAD_ADCIN, IO_LVL_HIGH); delayMs(3); // s_swire_pwm_counter = 0; soft_swire_start(g_swire_num); hal_timer_init(SWIRE_TIMER); hal_timer_start(SWIRE_TIMER, 16, soft_swire_timer_callback, NULL); } static void soft_te_timer_cb(void *data) { /* S8 的屏接的是TP1.8V, AC 启动后需要等到TP1.8 起来后再初始化屏, 所以在TP 起来前需要通过软件产生TE给手机,避免手机卡死 */ #if 0 hal_dsi_rx_ctrl_gen_a_tear_signal(g_rx_ctrl_handle); hal_timer_start(TE_TIMER, 17, soft_te_timer_cb, NULL); hal_dsi_rx_ctrl_set_te_waveform(g_rx_ctrl_handle,0,178); #else if (panel_display_done == false) { hal_dsi_rx_ctrl_gen_a_tear_signal(g_rx_ctrl_handle); hal_timer_start(TE_TIMER, 17, soft_te_timer_cb, NULL); } else { hal_dsi_rx_ctrl_set_hw_tear_mode(g_rx_ctrl_handle); //set_soft_tear_mode(); } #endif } static void soft_te_timer_init() { // TAU_LOGD("soft_te_timer_init\n"); hal_dsi_rx_ctrl_set_sw_tear_mode(g_rx_ctrl_handle); hal_timer_init(TE_TIMER); hal_timer_start(TE_TIMER, 10, soft_te_timer_cb, NULL); } #ifdef ADD_TIMER3_FUNCTION static void soft_timer3_cb(void *data) { hal_timer_start(TIMER_NUM3, 10, soft_timer3_cb, NULL); tp_sleep_count++; if(phone_DisplayOFF_count>0) { phone_DisplayOFF_count++; } #if ADD_RUN_TEST g_run_test_cnt++; if (g_run_test_cnt > 300) { TAU_LOGD("system run..."); g_run_test_cnt = 0; } #endif } #endif #ifdef USE_FOR_PANEL_RGB_TEST // TEST RGB, From Lin void RGB_TEST(void) { tx_display_on(); while (1) { hal_dsi_tx_ctrl_start(g_tx_ctrl_handle); hal_dsi_tx_ctrl_set_overwrite_rgb(0xFF, 0x00, 0x00); // RED delayMs(1000); hal_dsi_tx_ctrl_start(g_tx_ctrl_handle); hal_dsi_tx_ctrl_set_overwrite_rgb(0x00, 0xFF, 0x00); // GREEN delayMs(1000); hal_dsi_tx_ctrl_start(g_tx_ctrl_handle); hal_dsi_tx_ctrl_set_overwrite_rgb(0x00, 0x00, 0xFF); // BLUE delayMs(1000); hal_dsi_tx_ctrl_start(g_tx_ctrl_handle); hal_dsi_tx_ctrl_set_overwrite_rgb(0xFF, 0xFF, 0xFF); // WHITE delayMs(1000); hal_dsi_tx_ctrl_start(g_tx_ctrl_handle); hal_dsi_tx_ctrl_set_overwrite_rgb(0x00, 0x00, 0x00); // BLACK delayMs(1000); /*test pattern */ hal_dsi_tx_ctrl_set_partial_disp(DISABLE); hal_dsi_tx_ctrl_set_partial_disp_area(0, 0, OUTPUT_HEIGHT - 1, OUTPUT_WIDTH - 1); hal_dsi_tx_ctrl_set_partial_disp(ENABLE); hal_dsi_rx_ctrl_enable_test_pattern(g_rx_ctrl_handle, 1, true);//close hal_dsi_rx_ctrl_enable_test_pattern(g_rx_ctrl_handle, 1, false);//close delayMs(1000); hal_dsi_rx_ctrl_enable_test_pattern(g_rx_ctrl_handle, 0, true);//close hal_dsi_rx_ctrl_enable_test_pattern(g_rx_ctrl_handle, 0, false);//close delayMs(1000); // TEST_PARTIAL_DISPLAY_CASE function_state_e pd_en = DISABLE; uint32_t img_W = 300; uint32_t img_H = 600; hal_dsi_tx_ctrl_set_overwrite_rgb(0x00, 0x00, 0x00); hal_dsi_tx_ctrl_set_partial_disp(DISABLE); hal_dsi_tx_ctrl_set_partial_disp_area(0, 0, img_H, img_W); hal_dsi_tx_ctrl_set_partial_disp(ENABLE); delayMs(1000); hal_dsi_tx_ctrl_set_partial_disp(DISABLE); hal_dsi_tx_ctrl_set_partial_disp_area(0, OUTPUT_WIDTH - img_W - 1, img_H, OUTPUT_WIDTH - 1); hal_dsi_tx_ctrl_set_partial_disp(ENABLE); delayMs(1000); hal_dsi_tx_ctrl_set_partial_disp(DISABLE); hal_dsi_tx_ctrl_set_partial_disp_area(OUTPUT_HEIGHT - img_H - 1, 0, OUTPUT_HEIGHT - 1, img_W); hal_dsi_tx_ctrl_set_partial_disp(ENABLE); delayMs(1000); hal_dsi_tx_ctrl_set_partial_disp(DISABLE); hal_dsi_tx_ctrl_set_partial_disp_area(2160 - img_H - 1, OUTPUT_WIDTH - img_W - 1, OUTPUT_HEIGHT - 1, OUTPUT_WIDTH - 1); hal_dsi_tx_ctrl_set_partial_disp(ENABLE);delayMs(1000);hal_dsi_tx_ctrl_set_partial_disp(DISABLE);hal_dsi_tx_ctrl_set_partial_disp_area(600, 300, 600 + img_H, 300 + img_W); hal_dsi_tx_ctrl_set_partial_disp(ENABLE); delayMs(1000); hal_dsi_tx_ctrl_set_partial_disp_area(0, 0, 0, 0); } } #endif #if ENABLE_TP_WAKE_UP static bool reset_pre_high = false; static bool need_reset = false; static void ap_reset_high(void *data) { hal_system_set_pvd(true); hal_system_set_vcc(true); //printf("rising\n"); //delayMs(2); NVIC_SystemReset(); } static void ap_reset_low(void *data){ hal_gpio_set_ap_reset_int(ENABLE, ap_reset_high, DETECT_HIGH_LVL); TAU_LOGD("set vcc false \n"); hal_system_set_vcc(false); } #endif void tp_heartbeat_exec(void) { if (panel_display_done && g_mipi_path_off==false) { if(hal_gpio_get_input_data(IO_PAD_TD_INT) ) { s_heartbeat = 0; } else { if(s_heartbeat < (65536/50)) // 65536*3 = 900ms 65536/50 = 6ms { s_heartbeat ++; }else { // TAU_LOGD("hb"); s_heartbeat = 0; // ap_tp_st_touch_software_reset(); ap_tp_st_touch_hardware_reset(); } } } } void ap_demo(void) { #if defined(USE_FOR_MI10_PRO) hal_gpio_init_output(IO_PAD_PWMEN, IO_LVL_LOW); // LED_ON hal_gpio_init_output(IO_PAD_ADCIN, IO_LVL_LOW); // SWIRE hal_gpio_init_output(IO_PAD_TD_LEDPWM, IO_LVL_LOW); // 息屏电路切换 #endif phone_DisplayOFF_flag=0; /* mipi rx初始化 */ open_mipi_rx(); TAU_LOGD("Mi10Pro 568 HX667 [%s %s]", __DATE__, __TIME__); // TAU_LOGD("Mi10Pro V100 20230720"); /* swire 初始化 */ // swire_init(); /* 在TP1.8有电之前,使用软件产生TE,屏显示之后切换为硬件产生TE */ // soft_te_timer_init(); /* mipi tx 初始化*/ init_mipi_tx(); /* touch 相关模块初始化 */ #ifndef DISPLAY_ONLY app_tp_init(); phone_86_flag=1; phone_A6_flag=1; phone_start_flag=0; #endif #ifdef ADD_TIMER3_FUNCTION tp_sleep_count=0; phone_DisplayOFF_count=1; hal_timer_init(TIMER_NUM3); hal_timer_start(TIMER_NUM3, 10, soft_timer3_cb, NULL); TAU_LOGD("timer 3 init"); //debug #endif while (1) { if (s20_power_on_flag) { delayUs(100); s20_power_on_flag++; if (s20_power_on_flag >20000) s20_power_on_flag =0; } /* 等待 AP TP 上电*/ if (start_display_on == true) { if (g_exit_sleep_mode == true) { /* 屏初始化 */ tx_display_on(); start_display_on = false; // hal_gpio_init_output(IO_PAD_AP_INT, IO_LVL_LOW); //配置phone报点输出中断IO口 app_tp_phone_clear_reset_on(); #ifndef DISABLE_TDDI_I2C_FUNCTION /* 与屏的TP 模块通讯并初始化 */ app_tp_transfer_screen_start(); #endif #if ENABLE_TP_WAKE_UP hal_gpio_set_ap_reset_int(ENABLE, ap_reset_cb, DETECT_RISING_EDGE); #endif #ifdef USE_FOR_PANEL_RGB_TEST RGB_TEST(); #endif } } if(phone_DisplayOFF_flag==1) { if(phone_DisplayOFF_count>800) //350 { phone_DisplayOFF_count=0; phone_start_flag=1; } } else { if(phone_DisplayOFF_count>30) { phone_DisplayOFF_count=0; phone_start_flag=1; } } #ifndef DISABLE_TDDI_I2C_FUNCTION /* 等待屏 TP 中断上报做TP 协议转换 */ app_tp_transfer_screen_int(); #endif tp_heartbeat_exec(); ap_tp_st_touch_scan_point_record_event_exec(); #ifdef ADD_TP_CALIBRATION app_tp_calibration_exec(); #endif if (g_mipi_path_off == false) { while (hal_dsi_rx_ctrl_dsc_async_handler(g_rx_ctrl_handle)); } #if ENABLE_TP_WAKE_UP if (g_need_enter_sleep_mode) { g_mipi_path_off = true; /* FIXME stop more model */ // g_swire_enable = false; hal_gpio_init_output(IO_PAD_TD_LEDPWM, IO_LVL_HIGH); hal_dsi_tx_ctrl_stop(g_tx_ctrl_handle); hal_dsi_tx_ctrl_deinit(g_tx_ctrl_handle); hal_dsi_rx_ctrl_stop(g_rx_ctrl_handle); hal_dsi_rx_ctrl_deinit(g_rx_ctrl_handle); hal_swire_open(DISABLE); hal_swire_deinit(); hal_timer_stop(SWIRE_TIMER); hal_timer_deinit(SWIRE_TIMER); tp_sleep_in=1;//灭屏下,也有双击唤醒,所以需要将程序重新进入SLEEP 状态,JASON---20220804 hal_system_set_vcc(false); // hal_gpio_set_ap_reset_int(ENABLE, ap_reset_low, DETECT_LOW_LVL); TAU_LOGD("disable video path \n"); g_need_enter_sleep_mode = false; } #endif #if ADD_RUN_TEST // if (g_run_test_cnt > 0x7FFFF) // { // TAU_LOGD("system run..."); //// hal_gpio_set_output_data(IO_PAD_AP_INT, IO_LVL_LOW); //// hal_gpio_set_output_data(IO_PAD_AP_INT, IO_LVL_HIGH); // g_run_test_cnt = 0; // } // else // { // g_run_test_cnt++; // } #endif /* enter idle mode*/ //hal_system_idle_mode(true); } }