| /* |
| * driver/display/lcd/aml_lcd_tcon.h |
| * |
| * This program is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License as published by |
| * the Free Software Foundation; either version 2 of the named License, |
| * or any later version. |
| * |
| * This program is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| * GNU General Public License for more details. |
| * |
| */ |
| |
| #ifndef _AML_LCD_TCON_H |
| #define _AML_LCD_TCON_H |
| #include <amlogic/aml_lcd.h> |
| |
| #define REG_LCD_TCON_MAX 0xffff |
| |
| struct lcd_tcon_data_s { |
| unsigned char tcon_valid; |
| |
| unsigned int core_reg_width; |
| unsigned int reg_table_len; |
| |
| unsigned int reg_top_ctrl; |
| unsigned int bit_en; |
| |
| unsigned int reg_core_od; |
| unsigned int bit_od_en; |
| |
| unsigned int reg_core_ctrl_timing_base; |
| unsigned int ctrl_timing_offset; |
| unsigned int ctrl_timing_cnt; |
| |
| unsigned int axi_mem_size; |
| unsigned int core_size; |
| unsigned int vac_size; |
| unsigned int demura_set_size; |
| unsigned int demura_lut_size; |
| unsigned char *reg_table; |
| |
| struct udevice **devp; |
| |
| int (*tcon_enable)(struct lcd_config_s *pconf); |
| }; |
| |
| struct tcon_rmem_s { |
| unsigned int flag; |
| unsigned int mem_paddr; |
| unsigned int core_mem_paddr; |
| unsigned int vac_mem_paddr; |
| unsigned int demura_set_paddr; |
| unsigned int demura_lut_paddr; |
| unsigned int mem_size; |
| unsigned int core_mem_size; |
| unsigned int vac_mem_size; |
| unsigned int demura_set_mem_size; |
| unsigned int demura_lut_mem_size; |
| }; |
| |
| /* ********************************** |
| * tcon config |
| * ********************************** */ |
| /* TXHD */ |
| #define LCD_TCON_CORE_REG_WIDTH_TXHD 32 |
| #define LCD_TCON_TABLE_LEN_TXHD 4096 |
| #define LCD_TCON_AXI_BANK_TXHD 1 |
| |
| #define BIT_TOP_EN_TXHD 4 |
| |
| #define REG_CORE_OD_TXHD 0x5c |
| #define BIT_OD_EN_TXHD 6 |
| #define REG_CORE_CTRL_TIMING_BASE_TXHD 0x1b |
| #define CTRL_TIMING_OFFSET_TXHD 12 |
| #define CTRL_TIMING_CNT_TXHD 16 |
| |
| |
| /* TL1 */ |
| #define LCD_TCON_CORE_REG_WIDTH_TL1 8 |
| #define LCD_TCON_TABLE_LEN_TL1 24000 |
| #define LCD_TCON_AXI_BANK_TL1 3 |
| |
| #define BIT_TOP_EN_TL1 4 |
| |
| #define REG_CORE_OD_TL1 0x247 |
| #define BIT_OD_EN_TL1 0 |
| #define REG_CORE_CTRL_TIMING_BASE_TL1 0x1b |
| #define CTRL_TIMING_OFFSET_TL1 12 |
| #define CTRL_TIMING_CNT_TL1 0 |
| |
| #ifdef CONFIG_CMD_INI |
| int handle_tcon_vac(unsigned char *vac_data, unsigned int vac_mem_size); |
| extern int handle_tcon_demura_set(unsigned char *demura_set_data, |
| unsigned int demura_set_size); |
| extern int handle_tcon_demura_lut(unsigned char *demura_lut_data, |
| unsigned int demura_lut_size); |
| #endif |
| |
| #define TCON_VAC_SET_PARAM_NUM 3 |
| #define TCON_VAC_LUT_PARAM_NUM 256 |
| |
| #endif |
| |