1*2eb70de6SSimon Glass /* 2*2eb70de6SSimon Glass * (C) Copyright 2010 3*2eb70de6SSimon Glass * NVIDIA Corporation <www.nvidia.com> 4*2eb70de6SSimon Glass * 5*2eb70de6SSimon Glass * SPDX-License-Identifier: GPL-2.0+ 6*2eb70de6SSimon Glass */ 7*2eb70de6SSimon Glass 8*2eb70de6SSimon Glass #ifndef __ASM_ARCH_TEGRA_DC_H 9*2eb70de6SSimon Glass #define __ASM_ARCH_TEGRA_DC_H 10*2eb70de6SSimon Glass 11*2eb70de6SSimon Glass /* Register definitions for the Tegra display controller */ 12*2eb70de6SSimon Glass 13*2eb70de6SSimon Glass /* CMD register 0x000 ~ 0x43 */ 14*2eb70de6SSimon Glass struct dc_cmd_reg { 15*2eb70de6SSimon Glass /* Address 0x000 ~ 0x002 */ 16*2eb70de6SSimon Glass uint gen_incr_syncpt; /* _CMD_GENERAL_INCR_SYNCPT_0 */ 17*2eb70de6SSimon Glass uint gen_incr_syncpt_ctrl; /* _CMD_GENERAL_INCR_SYNCPT_CNTRL_0 */ 18*2eb70de6SSimon Glass uint gen_incr_syncpt_err; /* _CMD_GENERAL_INCR_SYNCPT_ERROR_0 */ 19*2eb70de6SSimon Glass 20*2eb70de6SSimon Glass uint reserved0[5]; /* reserved_0[5] */ 21*2eb70de6SSimon Glass 22*2eb70de6SSimon Glass /* Address 0x008 ~ 0x00a */ 23*2eb70de6SSimon Glass uint win_a_incr_syncpt; /* _CMD_WIN_A_INCR_SYNCPT_0 */ 24*2eb70de6SSimon Glass uint win_a_incr_syncpt_ctrl; /* _CMD_WIN_A_INCR_SYNCPT_CNTRL_0 */ 25*2eb70de6SSimon Glass uint win_a_incr_syncpt_err; /* _CMD_WIN_A_INCR_SYNCPT_ERROR_0 */ 26*2eb70de6SSimon Glass 27*2eb70de6SSimon Glass uint reserved1[5]; /* reserved_1[5] */ 28*2eb70de6SSimon Glass 29*2eb70de6SSimon Glass /* Address 0x010 ~ 0x012 */ 30*2eb70de6SSimon Glass uint win_b_incr_syncpt; /* _CMD_WIN_B_INCR_SYNCPT_0 */ 31*2eb70de6SSimon Glass uint win_b_incr_syncpt_ctrl; /* _CMD_WIN_B_INCR_SYNCPT_CNTRL_0 */ 32*2eb70de6SSimon Glass uint win_b_incr_syncpt_err; /* _CMD_WIN_B_INCR_SYNCPT_ERROR_0 */ 33*2eb70de6SSimon Glass 34*2eb70de6SSimon Glass uint reserved2[5]; /* reserved_2[5] */ 35*2eb70de6SSimon Glass 36*2eb70de6SSimon Glass /* Address 0x018 ~ 0x01a */ 37*2eb70de6SSimon Glass uint win_c_incr_syncpt; /* _CMD_WIN_C_INCR_SYNCPT_0 */ 38*2eb70de6SSimon Glass uint win_c_incr_syncpt_ctrl; /* _CMD_WIN_C_INCR_SYNCPT_CNTRL_0 */ 39*2eb70de6SSimon Glass uint win_c_incr_syncpt_err; /* _CMD_WIN_C_INCR_SYNCPT_ERROR_0 */ 40*2eb70de6SSimon Glass 41*2eb70de6SSimon Glass uint reserved3[13]; /* reserved_3[13] */ 42*2eb70de6SSimon Glass 43*2eb70de6SSimon Glass /* Address 0x028 */ 44*2eb70de6SSimon Glass uint cont_syncpt_vsync; /* _CMD_CONT_SYNCPT_VSYNC_0 */ 45*2eb70de6SSimon Glass 46*2eb70de6SSimon Glass uint reserved4[7]; /* reserved_4[7] */ 47*2eb70de6SSimon Glass 48*2eb70de6SSimon Glass /* Address 0x030 ~ 0x033 */ 49*2eb70de6SSimon Glass uint ctxsw; /* _CMD_CTXSW_0 */ 50*2eb70de6SSimon Glass uint disp_cmd_opt0; /* _CMD_DISPLAY_COMMAND_OPTION0_0 */ 51*2eb70de6SSimon Glass uint disp_cmd; /* _CMD_DISPLAY_COMMAND_0 */ 52*2eb70de6SSimon Glass uint sig_raise; /* _CMD_SIGNAL_RAISE_0 */ 53*2eb70de6SSimon Glass 54*2eb70de6SSimon Glass uint reserved5[2]; /* reserved_0[2] */ 55*2eb70de6SSimon Glass 56*2eb70de6SSimon Glass /* Address 0x036 ~ 0x03e */ 57*2eb70de6SSimon Glass uint disp_pow_ctrl; /* _CMD_DISPLAY_POWER_CONTROL_0 */ 58*2eb70de6SSimon Glass uint int_stat; /* _CMD_INT_STATUS_0 */ 59*2eb70de6SSimon Glass uint int_mask; /* _CMD_INT_MASK_0 */ 60*2eb70de6SSimon Glass uint int_enb; /* _CMD_INT_ENABLE_0 */ 61*2eb70de6SSimon Glass uint int_type; /* _CMD_INT_TYPE_0 */ 62*2eb70de6SSimon Glass uint int_polarity; /* _CMD_INT_POLARITY_0 */ 63*2eb70de6SSimon Glass uint sig_raise1; /* _CMD_SIGNAL_RAISE1_0 */ 64*2eb70de6SSimon Glass uint sig_raise2; /* _CMD_SIGNAL_RAISE2_0 */ 65*2eb70de6SSimon Glass uint sig_raise3; /* _CMD_SIGNAL_RAISE3_0 */ 66*2eb70de6SSimon Glass 67*2eb70de6SSimon Glass uint reserved6; /* reserved_6 */ 68*2eb70de6SSimon Glass 69*2eb70de6SSimon Glass /* Address 0x040 ~ 0x043 */ 70*2eb70de6SSimon Glass uint state_access; /* _CMD_STATE_ACCESS_0 */ 71*2eb70de6SSimon Glass uint state_ctrl; /* _CMD_STATE_CONTROL_0 */ 72*2eb70de6SSimon Glass uint disp_win_header; /* _CMD_DISPLAY_WINDOW_HEADER_0 */ 73*2eb70de6SSimon Glass uint reg_act_ctrl; /* _CMD_REG_ACT_CONTROL_0 */ 74*2eb70de6SSimon Glass }; 75*2eb70de6SSimon Glass 76*2eb70de6SSimon Glass enum { 77*2eb70de6SSimon Glass PIN_REG_COUNT = 4, 78*2eb70de6SSimon Glass PIN_OUTPUT_SEL_COUNT = 7, 79*2eb70de6SSimon Glass }; 80*2eb70de6SSimon Glass 81*2eb70de6SSimon Glass /* COM register 0x300 ~ 0x329 */ 82*2eb70de6SSimon Glass struct dc_com_reg { 83*2eb70de6SSimon Glass /* Address 0x300 ~ 0x301 */ 84*2eb70de6SSimon Glass uint crc_ctrl; /* _COM_CRC_CONTROL_0 */ 85*2eb70de6SSimon Glass uint crc_checksum; /* _COM_CRC_CHECKSUM_0 */ 86*2eb70de6SSimon Glass 87*2eb70de6SSimon Glass /* _COM_PIN_OUTPUT_ENABLE0/1/2/3_0: Address 0x302 ~ 0x305 */ 88*2eb70de6SSimon Glass uint pin_output_enb[PIN_REG_COUNT]; 89*2eb70de6SSimon Glass 90*2eb70de6SSimon Glass /* _COM_PIN_OUTPUT_POLARITY0/1/2/3_0: Address 0x306 ~ 0x309 */ 91*2eb70de6SSimon Glass uint pin_output_polarity[PIN_REG_COUNT]; 92*2eb70de6SSimon Glass 93*2eb70de6SSimon Glass /* _COM_PIN_OUTPUT_DATA0/1/2/3_0: Address 0x30a ~ 0x30d */ 94*2eb70de6SSimon Glass uint pin_output_data[PIN_REG_COUNT]; 95*2eb70de6SSimon Glass 96*2eb70de6SSimon Glass /* _COM_PIN_INPUT_ENABLE0_0: Address 0x30e ~ 0x311 */ 97*2eb70de6SSimon Glass uint pin_input_enb[PIN_REG_COUNT]; 98*2eb70de6SSimon Glass 99*2eb70de6SSimon Glass /* Address 0x312 ~ 0x313 */ 100*2eb70de6SSimon Glass uint pin_input_data0; /* _COM_PIN_INPUT_DATA0_0 */ 101*2eb70de6SSimon Glass uint pin_input_data1; /* _COM_PIN_INPUT_DATA1_0 */ 102*2eb70de6SSimon Glass 103*2eb70de6SSimon Glass /* _COM_PIN_OUTPUT_SELECT0/1/2/3/4/5/6_0: Address 0x314 ~ 0x31a */ 104*2eb70de6SSimon Glass uint pin_output_sel[PIN_OUTPUT_SEL_COUNT]; 105*2eb70de6SSimon Glass 106*2eb70de6SSimon Glass /* Address 0x31b ~ 0x329 */ 107*2eb70de6SSimon Glass uint pin_misc_ctrl; /* _COM_PIN_MISC_CONTROL_0 */ 108*2eb70de6SSimon Glass uint pm0_ctrl; /* _COM_PM0_CONTROL_0 */ 109*2eb70de6SSimon Glass uint pm0_duty_cycle; /* _COM_PM0_DUTY_CYCLE_0 */ 110*2eb70de6SSimon Glass uint pm1_ctrl; /* _COM_PM1_CONTROL_0 */ 111*2eb70de6SSimon Glass uint pm1_duty_cycle; /* _COM_PM1_DUTY_CYCLE_0 */ 112*2eb70de6SSimon Glass uint spi_ctrl; /* _COM_SPI_CONTROL_0 */ 113*2eb70de6SSimon Glass uint spi_start_byte; /* _COM_SPI_START_BYTE_0 */ 114*2eb70de6SSimon Glass uint hspi_wr_data_ab; /* _COM_HSPI_WRITE_DATA_AB_0 */ 115*2eb70de6SSimon Glass uint hspi_wr_data_cd; /* _COM_HSPI_WRITE_DATA_CD */ 116*2eb70de6SSimon Glass uint hspi_cs_dc; /* _COM_HSPI_CS_DC_0 */ 117*2eb70de6SSimon Glass uint scratch_reg_a; /* _COM_SCRATCH_REGISTER_A_0 */ 118*2eb70de6SSimon Glass uint scratch_reg_b; /* _COM_SCRATCH_REGISTER_B_0 */ 119*2eb70de6SSimon Glass uint gpio_ctrl; /* _COM_GPIO_CTRL_0 */ 120*2eb70de6SSimon Glass uint gpio_debounce_cnt; /* _COM_GPIO_DEBOUNCE_COUNTER_0 */ 121*2eb70de6SSimon Glass uint crc_checksum_latched; /* _COM_CRC_CHECKSUM_LATCHED_0 */ 122*2eb70de6SSimon Glass }; 123*2eb70de6SSimon Glass 124*2eb70de6SSimon Glass enum dc_disp_h_pulse_pos { 125*2eb70de6SSimon Glass H_PULSE0_POSITION_A, 126*2eb70de6SSimon Glass H_PULSE0_POSITION_B, 127*2eb70de6SSimon Glass H_PULSE0_POSITION_C, 128*2eb70de6SSimon Glass H_PULSE0_POSITION_D, 129*2eb70de6SSimon Glass H_PULSE0_POSITION_COUNT, 130*2eb70de6SSimon Glass }; 131*2eb70de6SSimon Glass 132*2eb70de6SSimon Glass struct _disp_h_pulse { 133*2eb70de6SSimon Glass /* _DISP_H_PULSE0/1/2_CONTROL_0 */ 134*2eb70de6SSimon Glass uint h_pulse_ctrl; 135*2eb70de6SSimon Glass /* _DISP_H_PULSE0/1/2_POSITION_A/B/C/D_0 */ 136*2eb70de6SSimon Glass uint h_pulse_pos[H_PULSE0_POSITION_COUNT]; 137*2eb70de6SSimon Glass }; 138*2eb70de6SSimon Glass 139*2eb70de6SSimon Glass enum dc_disp_v_pulse_pos { 140*2eb70de6SSimon Glass V_PULSE0_POSITION_A, 141*2eb70de6SSimon Glass V_PULSE0_POSITION_B, 142*2eb70de6SSimon Glass V_PULSE0_POSITION_C, 143*2eb70de6SSimon Glass V_PULSE0_POSITION_COUNT, 144*2eb70de6SSimon Glass }; 145*2eb70de6SSimon Glass 146*2eb70de6SSimon Glass struct _disp_v_pulse0 { 147*2eb70de6SSimon Glass /* _DISP_H_PULSE0/1_CONTROL_0 */ 148*2eb70de6SSimon Glass uint v_pulse_ctrl; 149*2eb70de6SSimon Glass /* _DISP_H_PULSE0/1_POSITION_A/B/C_0 */ 150*2eb70de6SSimon Glass uint v_pulse_pos[V_PULSE0_POSITION_COUNT]; 151*2eb70de6SSimon Glass }; 152*2eb70de6SSimon Glass 153*2eb70de6SSimon Glass struct _disp_v_pulse2 { 154*2eb70de6SSimon Glass /* _DISP_H_PULSE2/3_CONTROL_0 */ 155*2eb70de6SSimon Glass uint v_pulse_ctrl; 156*2eb70de6SSimon Glass /* _DISP_H_PULSE2/3_POSITION_A_0 */ 157*2eb70de6SSimon Glass uint v_pulse_pos_a; 158*2eb70de6SSimon Glass }; 159*2eb70de6SSimon Glass 160*2eb70de6SSimon Glass enum dc_disp_h_pulse_reg { 161*2eb70de6SSimon Glass H_PULSE0, 162*2eb70de6SSimon Glass H_PULSE1, 163*2eb70de6SSimon Glass H_PULSE2, 164*2eb70de6SSimon Glass H_PULSE_COUNT, 165*2eb70de6SSimon Glass }; 166*2eb70de6SSimon Glass 167*2eb70de6SSimon Glass enum dc_disp_pp_select { 168*2eb70de6SSimon Glass PP_SELECT_A, 169*2eb70de6SSimon Glass PP_SELECT_B, 170*2eb70de6SSimon Glass PP_SELECT_C, 171*2eb70de6SSimon Glass PP_SELECT_D, 172*2eb70de6SSimon Glass PP_SELECT_COUNT, 173*2eb70de6SSimon Glass }; 174*2eb70de6SSimon Glass 175*2eb70de6SSimon Glass /* DISP register 0x400 ~ 0x4c1 */ 176*2eb70de6SSimon Glass struct dc_disp_reg { 177*2eb70de6SSimon Glass /* Address 0x400 ~ 0x40a */ 178*2eb70de6SSimon Glass uint disp_signal_opt0; /* _DISP_DISP_SIGNAL_OPTIONS0_0 */ 179*2eb70de6SSimon Glass uint disp_signal_opt1; /* _DISP_DISP_SIGNAL_OPTIONS1_0 */ 180*2eb70de6SSimon Glass uint disp_win_opt; /* _DISP_DISP_WIN_OPTIONS_0 */ 181*2eb70de6SSimon Glass uint mem_high_pri; /* _DISP_MEM_HIGH_PRIORITY_0 */ 182*2eb70de6SSimon Glass uint mem_high_pri_timer; /* _DISP_MEM_HIGH_PRIORITY_TIMER_0 */ 183*2eb70de6SSimon Glass uint disp_timing_opt; /* _DISP_DISP_TIMING_OPTIONS_0 */ 184*2eb70de6SSimon Glass uint ref_to_sync; /* _DISP_REF_TO_SYNC_0 */ 185*2eb70de6SSimon Glass uint sync_width; /* _DISP_SYNC_WIDTH_0 */ 186*2eb70de6SSimon Glass uint back_porch; /* _DISP_BACK_PORCH_0 */ 187*2eb70de6SSimon Glass uint disp_active; /* _DISP_DISP_ACTIVE_0 */ 188*2eb70de6SSimon Glass uint front_porch; /* _DISP_FRONT_PORCH_0 */ 189*2eb70de6SSimon Glass 190*2eb70de6SSimon Glass /* Address 0x40b ~ 0x419: _DISP_H_PULSE0/1/2_ */ 191*2eb70de6SSimon Glass struct _disp_h_pulse h_pulse[H_PULSE_COUNT]; 192*2eb70de6SSimon Glass 193*2eb70de6SSimon Glass /* Address 0x41a ~ 0x421 */ 194*2eb70de6SSimon Glass struct _disp_v_pulse0 v_pulse0; /* _DISP_V_PULSE0_ */ 195*2eb70de6SSimon Glass struct _disp_v_pulse0 v_pulse1; /* _DISP_V_PULSE1_ */ 196*2eb70de6SSimon Glass 197*2eb70de6SSimon Glass /* Address 0x422 ~ 0x425 */ 198*2eb70de6SSimon Glass struct _disp_v_pulse2 v_pulse3; /* _DISP_V_PULSE2_ */ 199*2eb70de6SSimon Glass struct _disp_v_pulse2 v_pulse4; /* _DISP_V_PULSE3_ */ 200*2eb70de6SSimon Glass 201*2eb70de6SSimon Glass /* Address 0x426 ~ 0x429 */ 202*2eb70de6SSimon Glass uint m0_ctrl; /* _DISP_M0_CONTROL_0 */ 203*2eb70de6SSimon Glass uint m1_ctrl; /* _DISP_M1_CONTROL_0 */ 204*2eb70de6SSimon Glass uint di_ctrl; /* _DISP_DI_CONTROL_0 */ 205*2eb70de6SSimon Glass uint pp_ctrl; /* _DISP_PP_CONTROL_0 */ 206*2eb70de6SSimon Glass 207*2eb70de6SSimon Glass /* Address 0x42a ~ 0x42d: _DISP_PP_SELECT_A/B/C/D_0 */ 208*2eb70de6SSimon Glass uint pp_select[PP_SELECT_COUNT]; 209*2eb70de6SSimon Glass 210*2eb70de6SSimon Glass /* Address 0x42e ~ 0x435 */ 211*2eb70de6SSimon Glass uint disp_clk_ctrl; /* _DISP_DISP_CLOCK_CONTROL_0 */ 212*2eb70de6SSimon Glass uint disp_interface_ctrl; /* _DISP_DISP_INTERFACE_CONTROL_0 */ 213*2eb70de6SSimon Glass uint disp_color_ctrl; /* _DISP_DISP_COLOR_CONTROL_0 */ 214*2eb70de6SSimon Glass uint shift_clk_opt; /* _DISP_SHIFT_CLOCK_OPTIONS_0 */ 215*2eb70de6SSimon Glass uint data_enable_opt; /* _DISP_DATA_ENABLE_OPTIONS_0 */ 216*2eb70de6SSimon Glass uint serial_interface_opt; /* _DISP_SERIAL_INTERFACE_OPTIONS_0 */ 217*2eb70de6SSimon Glass uint lcd_spi_opt; /* _DISP_LCD_SPI_OPTIONS_0 */ 218*2eb70de6SSimon Glass uint border_color; /* _DISP_BORDER_COLOR_0 */ 219*2eb70de6SSimon Glass 220*2eb70de6SSimon Glass /* Address 0x436 ~ 0x439 */ 221*2eb70de6SSimon Glass uint color_key0_lower; /* _DISP_COLOR_KEY0_LOWER_0 */ 222*2eb70de6SSimon Glass uint color_key0_upper; /* _DISP_COLOR_KEY0_UPPER_0 */ 223*2eb70de6SSimon Glass uint color_key1_lower; /* _DISP_COLOR_KEY1_LOWER_0 */ 224*2eb70de6SSimon Glass uint color_key1_upper; /* _DISP_COLOR_KEY1_UPPER_0 */ 225*2eb70de6SSimon Glass 226*2eb70de6SSimon Glass uint reserved0[2]; /* reserved_0[2] */ 227*2eb70de6SSimon Glass 228*2eb70de6SSimon Glass /* Address 0x43c ~ 0x442 */ 229*2eb70de6SSimon Glass uint cursor_foreground; /* _DISP_CURSOR_FOREGROUND_0 */ 230*2eb70de6SSimon Glass uint cursor_background; /* _DISP_CURSOR_BACKGROUND_0 */ 231*2eb70de6SSimon Glass uint cursor_start_addr; /* _DISP_CURSOR_START_ADDR_0 */ 232*2eb70de6SSimon Glass uint cursor_start_addr_ns; /* _DISP_CURSOR_START_ADDR_NS_0 */ 233*2eb70de6SSimon Glass uint cursor_pos; /* _DISP_CURSOR_POSITION_0 */ 234*2eb70de6SSimon Glass uint cursor_pos_ns; /* _DISP_CURSOR_POSITION_NS_0 */ 235*2eb70de6SSimon Glass uint seq_ctrl; /* _DISP_INIT_SEQ_CONTROL_0 */ 236*2eb70de6SSimon Glass 237*2eb70de6SSimon Glass /* Address 0x443 ~ 0x446 */ 238*2eb70de6SSimon Glass uint spi_init_seq_data_a; /* _DISP_SPI_INIT_SEQ_DATA_A_0 */ 239*2eb70de6SSimon Glass uint spi_init_seq_data_b; /* _DISP_SPI_INIT_SEQ_DATA_B_0 */ 240*2eb70de6SSimon Glass uint spi_init_seq_data_c; /* _DISP_SPI_INIT_SEQ_DATA_C_0 */ 241*2eb70de6SSimon Glass uint spi_init_seq_data_d; /* _DISP_SPI_INIT_SEQ_DATA_D_0 */ 242*2eb70de6SSimon Glass 243*2eb70de6SSimon Glass uint reserved1[0x39]; /* reserved1[0x39], */ 244*2eb70de6SSimon Glass 245*2eb70de6SSimon Glass /* Address 0x480 ~ 0x484 */ 246*2eb70de6SSimon Glass uint dc_mccif_fifoctrl; /* _DISP_DC_MCCIF_FIFOCTRL_0 */ 247*2eb70de6SSimon Glass uint mccif_disp0a_hyst; /* _DISP_MCCIF_DISPLAY0A_HYST_0 */ 248*2eb70de6SSimon Glass uint mccif_disp0b_hyst; /* _DISP_MCCIF_DISPLAY0B_HYST_0 */ 249*2eb70de6SSimon Glass uint mccif_disp0c_hyst; /* _DISP_MCCIF_DISPLAY0C_HYST_0 */ 250*2eb70de6SSimon Glass uint mccif_disp1b_hyst; /* _DISP_MCCIF_DISPLAY1B_HYST_0 */ 251*2eb70de6SSimon Glass 252*2eb70de6SSimon Glass uint reserved2[0x3b]; /* reserved2[0x3b] */ 253*2eb70de6SSimon Glass 254*2eb70de6SSimon Glass /* Address 0x4c0 ~ 0x4c1 */ 255*2eb70de6SSimon Glass uint dac_crt_ctrl; /* _DISP_DAC_CRT_CTRL_0 */ 256*2eb70de6SSimon Glass uint disp_misc_ctrl; /* _DISP_DISP_MISC_CONTROL_0 */ 257*2eb70de6SSimon Glass 258*2eb70de6SSimon Glass u32 rsvd_4c2[34]; /* 4c2 - 4e3 */ 259*2eb70de6SSimon Glass 260*2eb70de6SSimon Glass /* Address 0x4e4 */ 261*2eb70de6SSimon Glass u32 blend_background_color; /* _DISP_BLEND_BACKGROUND_COLOR_0 */ 262*2eb70de6SSimon Glass }; 263*2eb70de6SSimon Glass 264*2eb70de6SSimon Glass enum dc_winc_filter_p { 265*2eb70de6SSimon Glass WINC_FILTER_COUNT = 0x10, 266*2eb70de6SSimon Glass }; 267*2eb70de6SSimon Glass 268*2eb70de6SSimon Glass /* Window A/B/C register 0x500 ~ 0x628 */ 269*2eb70de6SSimon Glass struct dc_winc_reg { 270*2eb70de6SSimon Glass 271*2eb70de6SSimon Glass /* Address 0x500 */ 272*2eb70de6SSimon Glass uint color_palette; /* _WINC_COLOR_PALETTE_0 */ 273*2eb70de6SSimon Glass 274*2eb70de6SSimon Glass uint reserved0[0xff]; /* reserved_0[0xff] */ 275*2eb70de6SSimon Glass 276*2eb70de6SSimon Glass /* Address 0x600 */ 277*2eb70de6SSimon Glass uint palette_color_ext; /* _WINC_PALETTE_COLOR_EXT_0 */ 278*2eb70de6SSimon Glass 279*2eb70de6SSimon Glass /* _WINC_H_FILTER_P00~0F_0 */ 280*2eb70de6SSimon Glass /* Address 0x601 ~ 0x610 */ 281*2eb70de6SSimon Glass uint h_filter_p[WINC_FILTER_COUNT]; 282*2eb70de6SSimon Glass 283*2eb70de6SSimon Glass /* Address 0x611 ~ 0x618 */ 284*2eb70de6SSimon Glass uint csc_yof; /* _WINC_CSC_YOF_0 */ 285*2eb70de6SSimon Glass uint csc_kyrgb; /* _WINC_CSC_KYRGB_0 */ 286*2eb70de6SSimon Glass uint csc_kur; /* _WINC_CSC_KUR_0 */ 287*2eb70de6SSimon Glass uint csc_kvr; /* _WINC_CSC_KVR_0 */ 288*2eb70de6SSimon Glass uint csc_kug; /* _WINC_CSC_KUG_0 */ 289*2eb70de6SSimon Glass uint csc_kvg; /* _WINC_CSC_KVG_0 */ 290*2eb70de6SSimon Glass uint csc_kub; /* _WINC_CSC_KUB_0 */ 291*2eb70de6SSimon Glass uint csc_kvb; /* _WINC_CSC_KVB_0 */ 292*2eb70de6SSimon Glass 293*2eb70de6SSimon Glass /* Address 0x619 ~ 0x628: _WINC_V_FILTER_P00~0F_0 */ 294*2eb70de6SSimon Glass uint v_filter_p[WINC_FILTER_COUNT]; 295*2eb70de6SSimon Glass }; 296*2eb70de6SSimon Glass 297*2eb70de6SSimon Glass /* WIN A/B/C Register 0x700 ~ 0x719*/ 298*2eb70de6SSimon Glass struct dc_win_reg { 299*2eb70de6SSimon Glass /* Address 0x700 ~ 0x719 */ 300*2eb70de6SSimon Glass uint win_opt; /* _WIN_WIN_OPTIONS_0 */ 301*2eb70de6SSimon Glass uint byte_swap; /* _WIN_BYTE_SWAP_0 */ 302*2eb70de6SSimon Glass uint buffer_ctrl; /* _WIN_BUFFER_CONTROL_0 */ 303*2eb70de6SSimon Glass uint color_depth; /* _WIN_COLOR_DEPTH_0 */ 304*2eb70de6SSimon Glass uint pos; /* _WIN_POSITION_0 */ 305*2eb70de6SSimon Glass uint size; /* _WIN_SIZE_0 */ 306*2eb70de6SSimon Glass uint prescaled_size; /* _WIN_PRESCALED_SIZE_0 */ 307*2eb70de6SSimon Glass uint h_initial_dda; /* _WIN_H_INITIAL_DDA_0 */ 308*2eb70de6SSimon Glass uint v_initial_dda; /* _WIN_V_INITIAL_DDA_0 */ 309*2eb70de6SSimon Glass uint dda_increment; /* _WIN_DDA_INCREMENT_0 */ 310*2eb70de6SSimon Glass uint line_stride; /* _WIN_LINE_STRIDE_0 */ 311*2eb70de6SSimon Glass uint buf_stride; /* _WIN_BUF_STRIDE_0 */ 312*2eb70de6SSimon Glass uint uv_buf_stride; /* _WIN_UV_BUF_STRIDE_0 */ 313*2eb70de6SSimon Glass uint buffer_addr_mode; /* _WIN_BUFFER_ADDR_MODE_0 */ 314*2eb70de6SSimon Glass uint dv_ctrl; /* _WIN_DV_CONTROL_0 */ 315*2eb70de6SSimon Glass uint blend_nokey; /* _WIN_BLEND_NOKEY_0 */ 316*2eb70de6SSimon Glass uint blend_1win; /* _WIN_BLEND_1WIN_0 */ 317*2eb70de6SSimon Glass uint blend_2win_x; /* _WIN_BLEND_2WIN_X_0 */ 318*2eb70de6SSimon Glass uint blend_2win_y; /* _WIN_BLEND_2WIN_Y_0 */ 319*2eb70de6SSimon Glass uint blend_3win_xy; /* _WIN_BLEND_3WIN_XY_0 */ 320*2eb70de6SSimon Glass uint hp_fetch_ctrl; /* _WIN_HP_FETCH_CONTROL_0 */ 321*2eb70de6SSimon Glass uint global_alpha; /* _WIN_GLOBAL_ALPHA */ 322*2eb70de6SSimon Glass uint blend_layer_ctrl; /* _WINBUF_BLEND_LAYER_CONTROL_0 */ 323*2eb70de6SSimon Glass uint blend_match_select; /* _WINBUF_BLEND_MATCH_SELECT_0 */ 324*2eb70de6SSimon Glass uint blend_nomatch_select; /* _WINBUF_BLEND_NOMATCH_SELECT_0 */ 325*2eb70de6SSimon Glass uint blend_alpha_1bit; /* _WINBUF_BLEND_ALPHA_1BIT_0 */ 326*2eb70de6SSimon Glass }; 327*2eb70de6SSimon Glass 328*2eb70de6SSimon Glass /* WINBUF A/B/C Register 0x800 ~ 0x80d */ 329*2eb70de6SSimon Glass struct dc_winbuf_reg { 330*2eb70de6SSimon Glass /* Address 0x800 ~ 0x80d */ 331*2eb70de6SSimon Glass uint start_addr; /* _WINBUF_START_ADDR_0 */ 332*2eb70de6SSimon Glass uint start_addr_ns; /* _WINBUF_START_ADDR_NS_0 */ 333*2eb70de6SSimon Glass uint start_addr_u; /* _WINBUF_START_ADDR_U_0 */ 334*2eb70de6SSimon Glass uint start_addr_u_ns; /* _WINBUF_START_ADDR_U_NS_0 */ 335*2eb70de6SSimon Glass uint start_addr_v; /* _WINBUF_START_ADDR_V_0 */ 336*2eb70de6SSimon Glass uint start_addr_v_ns; /* _WINBUF_START_ADDR_V_NS_0 */ 337*2eb70de6SSimon Glass uint addr_h_offset; /* _WINBUF_ADDR_H_OFFSET_0 */ 338*2eb70de6SSimon Glass uint addr_h_offset_ns; /* _WINBUF_ADDR_H_OFFSET_NS_0 */ 339*2eb70de6SSimon Glass uint addr_v_offset; /* _WINBUF_ADDR_V_OFFSET_0 */ 340*2eb70de6SSimon Glass uint addr_v_offset_ns; /* _WINBUF_ADDR_V_OFFSET_NS_0 */ 341*2eb70de6SSimon Glass uint uflow_status; /* _WINBUF_UFLOW_STATUS_0 */ 342*2eb70de6SSimon Glass uint buffer_surface_kind; /* DC_WIN_BUFFER_SURFACE_KIND */ 343*2eb70de6SSimon Glass uint rsvd_80c; 344*2eb70de6SSimon Glass uint start_addr_hi; /* DC_WINBUF_START_ADDR_HI_0 */ 345*2eb70de6SSimon Glass }; 346*2eb70de6SSimon Glass 347*2eb70de6SSimon Glass /* Display Controller (DC_) regs */ 348*2eb70de6SSimon Glass struct dc_ctlr { 349*2eb70de6SSimon Glass struct dc_cmd_reg cmd; /* CMD register 0x000 ~ 0x43 */ 350*2eb70de6SSimon Glass uint reserved0[0x2bc]; 351*2eb70de6SSimon Glass 352*2eb70de6SSimon Glass struct dc_com_reg com; /* COM register 0x300 ~ 0x329 */ 353*2eb70de6SSimon Glass uint reserved1[0xd6]; 354*2eb70de6SSimon Glass 355*2eb70de6SSimon Glass struct dc_disp_reg disp; /* DISP register 0x400 ~ 0x4e4 */ 356*2eb70de6SSimon Glass uint reserved2[0x1b]; 357*2eb70de6SSimon Glass 358*2eb70de6SSimon Glass struct dc_winc_reg winc; /* Window A/B/C 0x500 ~ 0x628 */ 359*2eb70de6SSimon Glass uint reserved3[0xd7]; 360*2eb70de6SSimon Glass 361*2eb70de6SSimon Glass struct dc_win_reg win; /* WIN A/B/C 0x700 ~ 0x719*/ 362*2eb70de6SSimon Glass uint reserved4[0xe6]; 363*2eb70de6SSimon Glass 364*2eb70de6SSimon Glass struct dc_winbuf_reg winbuf; /* WINBUF A/B/C 0x800 ~ 0x80d */ 365*2eb70de6SSimon Glass }; 366*2eb70de6SSimon Glass 367*2eb70de6SSimon Glass #define BIT(pos) (1U << pos) 368*2eb70de6SSimon Glass 369*2eb70de6SSimon Glass /* DC_CMD_DISPLAY_COMMAND 0x032 */ 370*2eb70de6SSimon Glass #define CTRL_MODE_SHIFT 5 371*2eb70de6SSimon Glass #define CTRL_MODE_MASK (0x3 << CTRL_MODE_SHIFT) 372*2eb70de6SSimon Glass enum { 373*2eb70de6SSimon Glass CTRL_MODE_STOP, 374*2eb70de6SSimon Glass CTRL_MODE_C_DISPLAY, 375*2eb70de6SSimon Glass CTRL_MODE_NC_DISPLAY, 376*2eb70de6SSimon Glass }; 377*2eb70de6SSimon Glass 378*2eb70de6SSimon Glass /* _WIN_COLOR_DEPTH_0 */ 379*2eb70de6SSimon Glass enum win_color_depth_id { 380*2eb70de6SSimon Glass COLOR_DEPTH_P1, 381*2eb70de6SSimon Glass COLOR_DEPTH_P2, 382*2eb70de6SSimon Glass COLOR_DEPTH_P4, 383*2eb70de6SSimon Glass COLOR_DEPTH_P8, 384*2eb70de6SSimon Glass COLOR_DEPTH_B4G4R4A4, 385*2eb70de6SSimon Glass COLOR_DEPTH_B5G5R5A, 386*2eb70de6SSimon Glass COLOR_DEPTH_B5G6R5, 387*2eb70de6SSimon Glass COLOR_DEPTH_AB5G5R5, 388*2eb70de6SSimon Glass COLOR_DEPTH_B8G8R8A8 = 12, 389*2eb70de6SSimon Glass COLOR_DEPTH_R8G8B8A8, 390*2eb70de6SSimon Glass COLOR_DEPTH_B6x2G6x2R6x2A8, 391*2eb70de6SSimon Glass COLOR_DEPTH_R6x2G6x2B6x2A8, 392*2eb70de6SSimon Glass COLOR_DEPTH_YCbCr422, 393*2eb70de6SSimon Glass COLOR_DEPTH_YUV422, 394*2eb70de6SSimon Glass COLOR_DEPTH_YCbCr420P, 395*2eb70de6SSimon Glass COLOR_DEPTH_YUV420P, 396*2eb70de6SSimon Glass COLOR_DEPTH_YCbCr422P, 397*2eb70de6SSimon Glass COLOR_DEPTH_YUV422P, 398*2eb70de6SSimon Glass COLOR_DEPTH_YCbCr422R, 399*2eb70de6SSimon Glass COLOR_DEPTH_YUV422R, 400*2eb70de6SSimon Glass COLOR_DEPTH_YCbCr422RA, 401*2eb70de6SSimon Glass COLOR_DEPTH_YUV422RA, 402*2eb70de6SSimon Glass }; 403*2eb70de6SSimon Glass 404*2eb70de6SSimon Glass /* DC_CMD_DISPLAY_POWER_CONTROL 0x036 */ 405*2eb70de6SSimon Glass #define PW0_ENABLE BIT(0) 406*2eb70de6SSimon Glass #define PW1_ENABLE BIT(2) 407*2eb70de6SSimon Glass #define PW2_ENABLE BIT(4) 408*2eb70de6SSimon Glass #define PW3_ENABLE BIT(6) 409*2eb70de6SSimon Glass #define PW4_ENABLE BIT(8) 410*2eb70de6SSimon Glass #define PM0_ENABLE BIT(16) 411*2eb70de6SSimon Glass #define PM1_ENABLE BIT(18) 412*2eb70de6SSimon Glass #define SPI_ENABLE BIT(24) 413*2eb70de6SSimon Glass #define HSPI_ENABLE BIT(25) 414*2eb70de6SSimon Glass 415*2eb70de6SSimon Glass /* DC_CMD_STATE_ACCESS 0x040 */ 416*2eb70de6SSimon Glass #define READ_MUX_ASSEMBLY (0 << 0) 417*2eb70de6SSimon Glass #define READ_MUX_ACTIVE (1 << 0) 418*2eb70de6SSimon Glass #define WRITE_MUX_ASSEMBLY (0 << 2) 419*2eb70de6SSimon Glass #define WRITE_MUX_ACTIVE (1 << 2) 420*2eb70de6SSimon Glass 421*2eb70de6SSimon Glass /* DC_CMD_STATE_CONTROL 0x041 */ 422*2eb70de6SSimon Glass #define GENERAL_ACT_REQ BIT(0) 423*2eb70de6SSimon Glass #define WIN_A_ACT_REQ BIT(1) 424*2eb70de6SSimon Glass #define WIN_B_ACT_REQ BIT(2) 425*2eb70de6SSimon Glass #define WIN_C_ACT_REQ BIT(3) 426*2eb70de6SSimon Glass #define WIN_D_ACT_REQ BIT(4) 427*2eb70de6SSimon Glass #define WIN_H_ACT_REQ BIT(5) 428*2eb70de6SSimon Glass #define CURSOR_ACT_REQ BIT(7) 429*2eb70de6SSimon Glass #define GENERAL_UPDATE BIT(8) 430*2eb70de6SSimon Glass #define WIN_A_UPDATE BIT(9) 431*2eb70de6SSimon Glass #define WIN_B_UPDATE BIT(10) 432*2eb70de6SSimon Glass #define WIN_C_UPDATE BIT(11) 433*2eb70de6SSimon Glass #define WIN_D_UPDATE BIT(12) 434*2eb70de6SSimon Glass #define WIN_H_UPDATE BIT(13) 435*2eb70de6SSimon Glass #define CURSOR_UPDATE BIT(15) 436*2eb70de6SSimon Glass #define NC_HOST_TRIG BIT(24) 437*2eb70de6SSimon Glass 438*2eb70de6SSimon Glass /* DC_CMD_DISPLAY_WINDOW_HEADER 0x042 */ 439*2eb70de6SSimon Glass #define WINDOW_A_SELECT BIT(4) 440*2eb70de6SSimon Glass #define WINDOW_B_SELECT BIT(5) 441*2eb70de6SSimon Glass #define WINDOW_C_SELECT BIT(6) 442*2eb70de6SSimon Glass #define WINDOW_D_SELECT BIT(7) 443*2eb70de6SSimon Glass #define WINDOW_H_SELECT BIT(8) 444*2eb70de6SSimon Glass 445*2eb70de6SSimon Glass /* DC_DISP_DISP_WIN_OPTIONS 0x402 */ 446*2eb70de6SSimon Glass #define CURSOR_ENABLE BIT(16) 447*2eb70de6SSimon Glass #define SOR_ENABLE BIT(25) 448*2eb70de6SSimon Glass #define TVO_ENABLE BIT(28) 449*2eb70de6SSimon Glass #define DSI_ENABLE BIT(29) 450*2eb70de6SSimon Glass #define HDMI_ENABLE BIT(30) 451*2eb70de6SSimon Glass 452*2eb70de6SSimon Glass /* DC_DISP_DISP_TIMING_OPTIONS 0x405 */ 453*2eb70de6SSimon Glass #define VSYNC_H_POSITION(x) ((x) & 0xfff) 454*2eb70de6SSimon Glass 455*2eb70de6SSimon Glass /* DC_DISP_DISP_CLOCK_CONTROL 0x42e */ 456*2eb70de6SSimon Glass #define SHIFT_CLK_DIVIDER_SHIFT 0 457*2eb70de6SSimon Glass #define SHIFT_CLK_DIVIDER_MASK (0xff << SHIFT_CLK_DIVIDER_SHIFT) 458*2eb70de6SSimon Glass #define PIXEL_CLK_DIVIDER_SHIFT 8 459*2eb70de6SSimon Glass #define PIXEL_CLK_DIVIDER_MSK (0xf << PIXEL_CLK_DIVIDER_SHIFT) 460*2eb70de6SSimon Glass enum { 461*2eb70de6SSimon Glass PIXEL_CLK_DIVIDER_PCD1, 462*2eb70de6SSimon Glass PIXEL_CLK_DIVIDER_PCD1H, 463*2eb70de6SSimon Glass PIXEL_CLK_DIVIDER_PCD2, 464*2eb70de6SSimon Glass PIXEL_CLK_DIVIDER_PCD3, 465*2eb70de6SSimon Glass PIXEL_CLK_DIVIDER_PCD4, 466*2eb70de6SSimon Glass PIXEL_CLK_DIVIDER_PCD6, 467*2eb70de6SSimon Glass PIXEL_CLK_DIVIDER_PCD8, 468*2eb70de6SSimon Glass PIXEL_CLK_DIVIDER_PCD9, 469*2eb70de6SSimon Glass PIXEL_CLK_DIVIDER_PCD12, 470*2eb70de6SSimon Glass PIXEL_CLK_DIVIDER_PCD16, 471*2eb70de6SSimon Glass PIXEL_CLK_DIVIDER_PCD18, 472*2eb70de6SSimon Glass PIXEL_CLK_DIVIDER_PCD24, 473*2eb70de6SSimon Glass PIXEL_CLK_DIVIDER_PCD13, 474*2eb70de6SSimon Glass }; 475*2eb70de6SSimon Glass 476*2eb70de6SSimon Glass /* DC_DISP_DISP_INTERFACE_CONTROL 0x42f */ 477*2eb70de6SSimon Glass #define DATA_FORMAT_SHIFT 0 478*2eb70de6SSimon Glass #define DATA_FORMAT_MASK (0xf << DATA_FORMAT_SHIFT) 479*2eb70de6SSimon Glass enum { 480*2eb70de6SSimon Glass DATA_FORMAT_DF1P1C, 481*2eb70de6SSimon Glass DATA_FORMAT_DF1P2C24B, 482*2eb70de6SSimon Glass DATA_FORMAT_DF1P2C18B, 483*2eb70de6SSimon Glass DATA_FORMAT_DF1P2C16B, 484*2eb70de6SSimon Glass DATA_FORMAT_DF2S, 485*2eb70de6SSimon Glass DATA_FORMAT_DF3S, 486*2eb70de6SSimon Glass DATA_FORMAT_DFSPI, 487*2eb70de6SSimon Glass DATA_FORMAT_DF1P3C24B, 488*2eb70de6SSimon Glass DATA_FORMAT_DF1P3C18B, 489*2eb70de6SSimon Glass }; 490*2eb70de6SSimon Glass #define DATA_ALIGNMENT_SHIFT 8 491*2eb70de6SSimon Glass enum { 492*2eb70de6SSimon Glass DATA_ALIGNMENT_MSB, 493*2eb70de6SSimon Glass DATA_ALIGNMENT_LSB, 494*2eb70de6SSimon Glass }; 495*2eb70de6SSimon Glass #define DATA_ORDER_SHIFT 9 496*2eb70de6SSimon Glass enum { 497*2eb70de6SSimon Glass DATA_ORDER_RED_BLUE, 498*2eb70de6SSimon Glass DATA_ORDER_BLUE_RED, 499*2eb70de6SSimon Glass }; 500*2eb70de6SSimon Glass 501*2eb70de6SSimon Glass /* DC_DISP_DATA_ENABLE_OPTIONS 0x432 */ 502*2eb70de6SSimon Glass #define DE_SELECT_SHIFT 0 503*2eb70de6SSimon Glass #define DE_SELECT_MASK (0x3 << DE_SELECT_SHIFT) 504*2eb70de6SSimon Glass #define DE_SELECT_ACTIVE_BLANK 0x0 505*2eb70de6SSimon Glass #define DE_SELECT_ACTIVE 0x1 506*2eb70de6SSimon Glass #define DE_SELECT_ACTIVE_IS 0x2 507*2eb70de6SSimon Glass #define DE_CONTROL_SHIFT 2 508*2eb70de6SSimon Glass #define DE_CONTROL_MASK (0x7 << DE_CONTROL_SHIFT) 509*2eb70de6SSimon Glass enum { 510*2eb70de6SSimon Glass DE_CONTROL_ONECLK, 511*2eb70de6SSimon Glass DE_CONTROL_NORMAL, 512*2eb70de6SSimon Glass DE_CONTROL_EARLY_EXT, 513*2eb70de6SSimon Glass DE_CONTROL_EARLY, 514*2eb70de6SSimon Glass DE_CONTROL_ACTIVE_BLANK, 515*2eb70de6SSimon Glass }; 516*2eb70de6SSimon Glass 517*2eb70de6SSimon Glass /* DC_WIN_WIN_OPTIONS 0x700 */ 518*2eb70de6SSimon Glass #define H_DIRECTION BIT(0) 519*2eb70de6SSimon Glass enum { 520*2eb70de6SSimon Glass H_DIRECTION_INCREMENT, 521*2eb70de6SSimon Glass H_DIRECTION_DECREMENT, 522*2eb70de6SSimon Glass }; 523*2eb70de6SSimon Glass #define V_DIRECTION BIT(2) 524*2eb70de6SSimon Glass enum { 525*2eb70de6SSimon Glass V_DIRECTION_INCREMENT, 526*2eb70de6SSimon Glass V_DIRECTION_DECREMENT, 527*2eb70de6SSimon Glass }; 528*2eb70de6SSimon Glass #define COLOR_EXPAND BIT(6) 529*2eb70de6SSimon Glass #define CP_ENABLE BIT(16) 530*2eb70de6SSimon Glass #define DV_ENABLE BIT(20) 531*2eb70de6SSimon Glass #define WIN_ENABLE BIT(30) 532*2eb70de6SSimon Glass 533*2eb70de6SSimon Glass /* DC_WIN_BYTE_SWAP 0x701 */ 534*2eb70de6SSimon Glass #define BYTE_SWAP_SHIFT 0 535*2eb70de6SSimon Glass #define BYTE_SWAP_MASK (3 << BYTE_SWAP_SHIFT) 536*2eb70de6SSimon Glass enum { 537*2eb70de6SSimon Glass BYTE_SWAP_NOSWAP, 538*2eb70de6SSimon Glass BYTE_SWAP_SWAP2, 539*2eb70de6SSimon Glass BYTE_SWAP_SWAP4, 540*2eb70de6SSimon Glass BYTE_SWAP_SWAP4HW 541*2eb70de6SSimon Glass }; 542*2eb70de6SSimon Glass 543*2eb70de6SSimon Glass /* DC_WIN_POSITION 0x704 */ 544*2eb70de6SSimon Glass #define H_POSITION_SHIFT 0 545*2eb70de6SSimon Glass #define H_POSITION_MASK (0x1FFF << H_POSITION_SHIFT) 546*2eb70de6SSimon Glass #define V_POSITION_SHIFT 16 547*2eb70de6SSimon Glass #define V_POSITION_MASK (0x1FFF << V_POSITION_SHIFT) 548*2eb70de6SSimon Glass 549*2eb70de6SSimon Glass /* DC_WIN_SIZE 0x705 */ 550*2eb70de6SSimon Glass #define H_SIZE_SHIFT 0 551*2eb70de6SSimon Glass #define H_SIZE_MASK (0x1FFF << H_SIZE_SHIFT) 552*2eb70de6SSimon Glass #define V_SIZE_SHIFT 16 553*2eb70de6SSimon Glass #define V_SIZE_MASK (0x1FFF << V_SIZE_SHIFT) 554*2eb70de6SSimon Glass 555*2eb70de6SSimon Glass /* DC_WIN_PRESCALED_SIZE 0x706 */ 556*2eb70de6SSimon Glass #define H_PRESCALED_SIZE_SHIFT 0 557*2eb70de6SSimon Glass #define H_PRESCALED_SIZE_MASK (0x7FFF << H_PRESCALED_SIZE) 558*2eb70de6SSimon Glass #define V_PRESCALED_SIZE_SHIFT 16 559*2eb70de6SSimon Glass #define V_PRESCALED_SIZE_MASK (0x1FFF << V_PRESCALED_SIZE) 560*2eb70de6SSimon Glass 561*2eb70de6SSimon Glass /* DC_WIN_DDA_INCREMENT 0x709 */ 562*2eb70de6SSimon Glass #define H_DDA_INC_SHIFT 0 563*2eb70de6SSimon Glass #define H_DDA_INC_MASK (0xFFFF << H_DDA_INC_SHIFT) 564*2eb70de6SSimon Glass #define V_DDA_INC_SHIFT 16 565*2eb70de6SSimon Glass #define V_DDA_INC_MASK (0xFFFF << V_DDA_INC_SHIFT) 566*2eb70de6SSimon Glass 567*2eb70de6SSimon Glass struct display_timing; 568*2eb70de6SSimon Glass 569*2eb70de6SSimon Glass int display_init(void *lcdbase, int fb_bits_per_pixel, 570*2eb70de6SSimon Glass struct display_timing *timing); 571*2eb70de6SSimon Glass 572*2eb70de6SSimon Glass #endif /* __ASM_ARCH_TEGRA_DC_H */ 573