123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650 |
- /* Copyright (C) 2018 RDA Technologies Limited and/or its affiliates("RDA").
- * All rights reserved.
- *
- * This software is supplied "AS IS" without any warranties.
- * RDA assumes no responsibility or liability for the use of the software,
- * conveys no license or title under any patent, copyright, or mask work
- * right to the product. RDA reserves the right to make changes in the
- * software without notification. RDA also make no representation or
- * warranty that such application will be suitable for the specified use
- * without further testing or modification.
- */
- #ifndef _GOUDA_H_
- #define _GOUDA_H_
- // Auto generated by dtools(see dtools.txt for its version).
- // Don't edit it manually!
- #define GD_MAX_OUT_WIDTH (640)
- #define GD_NB_BITS_LCDPOS (11)
- #define GD_FP_FRAC_SIZE (8)
- #define GD_FIXEDPOINT_SIZE (11)
- #define GD_NB_BITS_STRIDE (13)
- #define GD_MAX_SLCD_READ_LEN (4)
- #define GD_MAX_SLCD_CLK_DIVIDER (255)
- #define GD_NB_WORKBUF_WORDS (0x16e0)
- #define GD_NB_LCD_CMD_WORDS (64)
- #define GD_SRAM_SIZE (0x2e40)
- #define GD_SRAM_ADDR_WIDTH (13)
- #define REG_GOUDA_BASE (0x04804000)
- typedef volatile struct
- {
- uint32_t gd_command; // 0x00000000
- uint32_t gd_status; // 0x00000004
- uint32_t gd_eof_irq; // 0x00000008
- uint32_t gd_eof_irq_mask; // 0x0000000c
- uint32_t gd_roi_tl_ppos; // 0x00000010
- uint32_t gd_roi_br_ppos; // 0x00000014
- uint32_t gd_roi_bg_color; // 0x00000018
- uint32_t gd_vl_input_fmt; // 0x0000001c
- uint32_t gd_vl_tl_ppos; // 0x00000020
- uint32_t gd_vl_br_ppos; // 0x00000024
- uint32_t gd_vl_extents; // 0x00000028
- uint32_t gd_vl_blend_opt; // 0x0000002c
- uint32_t gd_vl_y_src; // 0x00000030
- uint32_t gd_vl_u_src; // 0x00000034
- uint32_t gd_vl_v_src; // 0x00000038
- uint32_t gd_vl_resc_ratio; // 0x0000003c
- struct // 0x00000040
- { //
- uint32_t gd_ol_input_fmt; // 0x00000000
- uint32_t gd_ol_tl_ppos; // 0x00000004
- uint32_t gd_ol_br_ppos; // 0x00000008
- uint32_t gd_ol_blend_opt; // 0x0000000c
- uint32_t gd_ol_rgb_src; // 0x00000010
- } overlay_layer[3]; //
- uint32_t gd_lcd_ctrl; // 0x0000007c
- uint32_t gd_lcd_timing; // 0x00000080
- uint32_t gd_lcd_mem_address; // 0x00000084
- uint32_t gd_lcd_stride_offset; // 0x00000088
- uint32_t gd_lcd_single_access; // 0x0000008c
- uint32_t gd_spilcd_config; // 0x00000090
- uint32_t gd_spilcd_rd; // 0x00000094
- uint32_t gd_vl_fix_ratio; // 0x00000098
- uint32_t __156[41]; // 0x0000009c
- uint32_t tecon; // 0x00000140
- uint32_t tecon2; // 0x00000144
- uint32_t __328[174]; // 0x00000148
- } HWP_GOUDA_T;
- #define hwp_gouda ((HWP_GOUDA_T *)REG_ACCESS_ADDRESS(REG_GOUDA_BASE))
- #define REG_GOUDA_SRAM_BASE (0x02080000)
- typedef volatile struct
- {
- uint8_t sram_array[11840]; // 0x00000000
- } HWP_GOUDA_SRAM_T;
- #define hwp_goudaSram ((HWP_GOUDA_SRAM_T *)REG_ACCESS_ADDRESS(REG_GOUDA_SRAM_BASE))
- // gd_command
- typedef union {
- uint32_t v;
- struct
- {
- uint32_t start : 1; // [0]
- uint32_t __31_1 : 31; // [31:1]
- } b;
- } REG_GOUDA_GD_COMMAND_T;
- // gd_status
- typedef union {
- uint32_t v;
- struct
- {
- uint32_t ia_busy : 1; // [0], read only
- uint32_t __3_1 : 3; // [3:1]
- uint32_t lcd_busy : 1; // [4], read only
- uint32_t __31_5 : 27; // [31:5]
- } b;
- } REG_GOUDA_GD_STATUS_T;
- // gd_eof_irq
- typedef union {
- uint32_t v;
- struct
- {
- uint32_t eof_cause : 1; // [0], write clear
- uint32_t __15_1 : 15; // [15:1]
- uint32_t eof_status : 1; // [16], write clear
- uint32_t __31_17 : 15; // [31:17]
- } b;
- } REG_GOUDA_GD_EOF_IRQ_T;
- // gd_eof_irq_mask
- typedef union {
- uint32_t v;
- struct
- {
- uint32_t eof_mask : 1; // [0]
- uint32_t __31_1 : 31; // [31:1]
- } b;
- } REG_GOUDA_GD_EOF_IRQ_MASK_T;
- // gd_roi_tl_ppos
- typedef union {
- uint32_t v;
- struct
- {
- uint32_t x0 : 11; // [10:0]
- uint32_t __15_11 : 5; // [15:11]
- uint32_t y0 : 11; // [26:16]
- uint32_t __31_27 : 5; // [31:27]
- } b;
- } REG_GOUDA_GD_ROI_TL_PPOS_T;
- // gd_roi_br_ppos
- typedef union {
- uint32_t v;
- struct
- {
- uint32_t x1 : 11; // [10:0]
- uint32_t __15_11 : 5; // [15:11]
- uint32_t y1 : 11; // [26:16]
- uint32_t __31_27 : 5; // [31:27]
- } b;
- } REG_GOUDA_GD_ROI_BR_PPOS_T;
- // gd_roi_bg_color
- typedef union {
- uint32_t v;
- struct
- {
- uint32_t b : 5; // [4:0]
- uint32_t g : 6; // [10:5]
- uint32_t r : 5; // [15:11]
- uint32_t __31_16 : 16; // [31:16]
- } b;
- } REG_GOUDA_GD_ROI_BG_COLOR_T;
- // gd_vl_input_fmt
- typedef union {
- uint32_t v;
- struct
- {
- uint32_t format : 2; // [1:0]
- uint32_t stride : 13; // [14:2]
- uint32_t __30_15 : 16; // [30:15]
- uint32_t active : 1; // [31]
- } b;
- } REG_GOUDA_GD_VL_INPUT_FMT_T;
- // gd_vl_tl_ppos
- typedef union {
- uint32_t v;
- struct
- {
- uint32_t x0 : 11; // [10:0]
- uint32_t __15_11 : 5; // [15:11]
- uint32_t y0 : 11; // [26:16]
- uint32_t __31_27 : 5; // [31:27]
- } b;
- } REG_GOUDA_GD_VL_TL_PPOS_T;
- // gd_vl_br_ppos
- typedef union {
- uint32_t v;
- struct
- {
- uint32_t x1 : 11; // [10:0]
- uint32_t __15_11 : 5; // [15:11]
- uint32_t y1 : 11; // [26:16]
- uint32_t __31_27 : 5; // [31:27]
- } b;
- } REG_GOUDA_GD_VL_BR_PPOS_T;
- // gd_vl_extents
- typedef union {
- uint32_t v;
- struct
- {
- uint32_t max_line : 11; // [10:0]
- uint32_t __15_11 : 5; // [15:11]
- uint32_t max_col : 11; // [26:16]
- uint32_t __31_27 : 5; // [31:27]
- } b;
- } REG_GOUDA_GD_VL_EXTENTS_T;
- // gd_vl_blend_opt
- typedef union {
- uint32_t v;
- struct
- {
- uint32_t chroma_key_b : 5; // [4:0]
- uint32_t chroma_key_g : 6; // [10:5]
- uint32_t chroma_key_r : 5; // [15:11]
- uint32_t chroma_key_enable : 1; // [16]
- uint32_t chroma_key_mask : 3; // [19:17]
- uint32_t alpha : 8; // [27:20]
- uint32_t rotation : 2; // [29:28]
- uint32_t depth : 2; // [31:30]
- } b;
- } REG_GOUDA_GD_VL_BLEND_OPT_T;
- // gd_vl_y_src
- typedef union {
- uint32_t v;
- struct
- {
- uint32_t __1_0 : 2; // [1:0]
- uint32_t addr : 30; // [31:2]
- } b;
- } REG_GOUDA_GD_VL_Y_SRC_T;
- // gd_vl_u_src
- typedef union {
- uint32_t v;
- struct
- {
- uint32_t __1_0 : 2; // [1:0]
- uint32_t addr : 30; // [31:2]
- } b;
- } REG_GOUDA_GD_VL_U_SRC_T;
- // gd_vl_v_src
- typedef union {
- uint32_t v;
- struct
- {
- uint32_t __1_0 : 2; // [1:0]
- uint32_t addr : 30; // [31:2]
- } b;
- } REG_GOUDA_GD_VL_V_SRC_T;
- // gd_vl_resc_ratio
- typedef union {
- uint32_t v;
- struct
- {
- uint32_t xpitch : 11; // [10:0]
- uint32_t __15_11 : 5; // [15:11]
- uint32_t ypitch : 11; // [26:16]
- uint32_t __28_27 : 2; // [28:27]
- uint32_t pre_fetch_en : 1; // [29]
- uint32_t iy_dctenable : 1; // [30]
- uint32_t ypitch_scale_enable : 1; // [31]
- } b;
- } REG_GOUDA_GD_VL_RESC_RATIO_T;
- // gd_ol_input_fmt
- typedef union {
- uint32_t v;
- struct
- {
- uint32_t format : 2; // [1:0]
- uint32_t stride : 13; // [14:2]
- uint32_t __17_15 : 3; // [17:15]
- uint32_t prefetch : 1; // [18]
- uint32_t __30_19 : 12; // [30:19]
- uint32_t active : 1; // [31]
- } b;
- } REG_GOUDA_GD_OL_INPUT_FMT_T;
- // gd_ol_tl_ppos
- typedef union {
- uint32_t v;
- struct
- {
- uint32_t x0 : 11; // [10:0]
- uint32_t __15_11 : 5; // [15:11]
- uint32_t y0 : 11; // [26:16]
- uint32_t __31_27 : 5; // [31:27]
- } b;
- } REG_GOUDA_GD_OL_TL_PPOS_T;
- // gd_ol_br_ppos
- typedef union {
- uint32_t v;
- struct
- {
- uint32_t x1 : 11; // [10:0]
- uint32_t __15_11 : 5; // [15:11]
- uint32_t y1 : 11; // [26:16]
- uint32_t __31_27 : 5; // [31:27]
- } b;
- } REG_GOUDA_GD_OL_BR_PPOS_T;
- // gd_ol_blend_opt
- typedef union {
- uint32_t v;
- struct
- {
- uint32_t chroma_key_b : 5; // [4:0]
- uint32_t chroma_key_g : 6; // [10:5]
- uint32_t chroma_key_r : 5; // [15:11]
- uint32_t chroma_key_enable : 1; // [16]
- uint32_t chroma_key_mask : 3; // [19:17]
- uint32_t alpha : 8; // [27:20]
- uint32_t __31_28 : 4; // [31:28]
- } b;
- } REG_GOUDA_GD_OL_BLEND_OPT_T;
- // gd_ol_rgb_src
- typedef union {
- uint32_t v;
- struct
- {
- uint32_t __1_0 : 2; // [1:0]
- uint32_t addr : 30; // [31:2]
- } b;
- } REG_GOUDA_GD_OL_RGB_SRC_T;
- // gd_lcd_ctrl
- typedef union {
- uint32_t v;
- struct
- {
- uint32_t destination : 2; // [1:0]
- uint32_t __3_2 : 2; // [3:2]
- uint32_t output_format : 3; // [6:4]
- uint32_t high_byte : 1; // [7]
- uint32_t cs0_polarity : 1; // [8]
- uint32_t cs1_polarity : 1; // [9]
- uint32_t rs_polarity : 1; // [10]
- uint32_t wr_polarity : 1; // [11]
- uint32_t rd_polarity : 1; // [12]
- uint32_t __15_13 : 3; // [15:13]
- uint32_t nb_command : 6; // [21:16]
- uint32_t __23_22 : 2; // [23:22]
- uint32_t start_command : 1; // [24]
- uint32_t lcd_resetb : 1; // [25]
- uint32_t __31_26 : 6; // [31:26]
- } b;
- } REG_GOUDA_GD_LCD_CTRL_T;
- // gd_lcd_timing
- typedef union {
- uint32_t v;
- struct
- {
- uint32_t tas : 3; // [2:0]
- uint32_t __3_3 : 1; // [3]
- uint32_t tah : 3; // [6:4]
- uint32_t __7_7 : 1; // [7]
- uint32_t pwl : 6; // [13:8]
- uint32_t __15_14 : 2; // [15:14]
- uint32_t pwh : 6; // [21:16]
- uint32_t __31_22 : 10; // [31:22]
- } b;
- } REG_GOUDA_GD_LCD_TIMING_T;
- // gd_lcd_mem_address
- typedef union {
- uint32_t v;
- struct
- {
- uint32_t __1_0 : 2; // [1:0]
- uint32_t addr_dst : 30; // [31:2]
- } b;
- } REG_GOUDA_GD_LCD_MEM_ADDRESS_T;
- // gd_lcd_stride_offset
- typedef union {
- uint32_t v;
- struct
- {
- uint32_t stride_offset : 10; // [9:0]
- uint32_t __31_10 : 22; // [31:10]
- } b;
- } REG_GOUDA_GD_LCD_STRIDE_OFFSET_T;
- // gd_lcd_single_access
- typedef union {
- uint32_t v;
- struct
- {
- uint32_t lcd_data : 16; // [15:0]
- uint32_t type : 1; // [16]
- uint32_t start_write : 1; // [17]
- uint32_t start_read : 1; // [18]
- uint32_t __31_19 : 13; // [31:19]
- } b;
- } REG_GOUDA_GD_LCD_SINGLE_ACCESS_T;
- // gd_spilcd_config
- typedef union {
- uint32_t v;
- struct
- {
- uint32_t spi_lcd_select : 1; // [0]
- uint32_t spi_device_id : 6; // [6:1]
- uint32_t spi_clk_divider : 8; // [14:7]
- uint32_t spi_dummy_cycle : 3; // [17:15]
- uint32_t spi_line : 2; // [19:18]
- uint32_t spi_rx_byte : 3; // [22:20]
- uint32_t spi_rw : 1; // [23]
- uint32_t __31_24 : 8; // [31:24]
- } b;
- } REG_GOUDA_GD_SPILCD_CONFIG_T;
- // gd_vl_fix_ratio
- typedef union {
- uint32_t v;
- struct
- {
- uint32_t l_xratio : 8; // [7:0]
- uint32_t l_yratio : 8; // [15:8]
- uint32_t l_xfixen : 1; // [16]
- uint32_t l_yfixen : 1; // [17]
- uint32_t mirror : 1; // [18]
- uint32_t reg_vl_only_sel : 1; // [19]
- uint32_t __31_20 : 12; // [31:20]
- } b;
- } REG_GOUDA_GD_VL_FIX_RATIO_T;
- // tecon
- typedef union {
- uint32_t v;
- struct
- {
- uint32_t te_en : 1; // [0]
- uint32_t te_edge_sel : 1; // [1]
- uint32_t te_mode : 1; // [2]
- uint32_t __15_3 : 13; // [15:3]
- uint32_t te_count2 : 12; // [27:16]
- uint32_t __31_28 : 4; // [31:28]
- } b;
- } REG_GOUDA_TECON_T;
- // tecon2
- typedef union {
- uint32_t v;
- struct
- {
- uint32_t te_count1 : 29; // [28:0]
- uint32_t __31_29 : 3; // [31:29]
- } b;
- } REG_GOUDA_TECON2_T;
- // gd_command
- #define GOUDA_START (1 << 0)
- // gd_status
- #define GOUDA_IA_BUSY (1 << 0)
- #define GOUDA_LCD_BUSY (1 << 4)
- // gd_eof_irq
- #define GOUDA_EOF_CAUSE (1 << 0)
- #define GOUDA_EOF_STATUS (1 << 16)
- // gd_eof_irq_mask
- #define GOUDA_EOF_MASK (1 << 0)
- // gd_roi_tl_ppos
- #define GOUDA_X0(n) (((n)&0x7ff) << 0)
- #define GOUDA_Y0(n) (((n)&0x7ff) << 16)
- // gd_roi_br_ppos
- #define GOUDA_X1(n) (((n)&0x7ff) << 0)
- #define GOUDA_Y1(n) (((n)&0x7ff) << 16)
- // gd_roi_bg_color
- #define GOUDA_B(n) (((n)&0x1f) << 0)
- #define GOUDA_G(n) (((n)&0x3f) << 5)
- #define GOUDA_R(n) (((n)&0x1f) << 11)
- // gd_vl_input_fmt
- #define GOUDA_FORMAT(n) (((n)&0x3) << 0)
- #define GOUDA_STRIDE(n) (((n)&0x1fff) << 2)
- #define GOUDA_ACTIVE (1 << 31)
- // gd_vl_tl_ppos
- #define GOUDA_X0(n) (((n)&0x7ff) << 0)
- #define GOUDA_Y0(n) (((n)&0x7ff) << 16)
- // gd_vl_br_ppos
- #define GOUDA_X1(n) (((n)&0x7ff) << 0)
- #define GOUDA_Y1(n) (((n)&0x7ff) << 16)
- // gd_vl_extents
- #define GOUDA_MAX_LINE(n) (((n)&0x7ff) << 0)
- #define GOUDA_MAX_COL(n) (((n)&0x7ff) << 16)
- // gd_vl_blend_opt
- #define GOUDA_CHROMA_KEY_COLOR(n) (((n)&0xffff) << 0)
- #define GOUDA_CHROMA_KEY_B(n) (((n)&0x1f) << 0)
- #define GOUDA_CHROMA_KEY_G(n) (((n)&0x3f) << 5)
- #define GOUDA_CHROMA_KEY_R(n) (((n)&0x1f) << 11)
- #define GOUDA_CHROMA_KEY_ENABLE (1 << 16)
- #define GOUDA_CHROMA_KEY_MASK(n) (((n)&0x7) << 17)
- #define GOUDA_ALPHA(n) (((n)&0xff) << 20)
- #define GOUDA_ROTATION(n) (((n)&0x3) << 28)
- #define GOUDA_DEPTH(n) (((n)&0x3) << 30)
- // gd_vl_y_src
- #define GOUDA_ADDR(n) (((n)&0x3fffffff) << 2)
- // gd_vl_u_src
- #define GOUDA_ADDR(n) (((n)&0x3fffffff) << 2)
- // gd_vl_v_src
- #define GOUDA_ADDR(n) (((n)&0x3fffffff) << 2)
- // gd_vl_resc_ratio
- #define GOUDA_XPITCH(n) (((n)&0x7ff) << 0)
- #define GOUDA_YPITCH(n) (((n)&0x7ff) << 16)
- #define GOUDA_PRE_FETCH_EN (1 << 29)
- #define GOUDA_IY_DCTENABLE (1 << 30)
- #define GOUDA_YPITCH_SCALE_ENABLE (1 << 31)
- // gd_ol_input_fmt
- #define GOUDA_FORMAT(n) (((n)&0x3) << 0)
- #define GOUDA_STRIDE(n) (((n)&0x1fff) << 2)
- #define GOUDA_PREFETCH (1 << 18)
- #define GOUDA_ACTIVE (1 << 31)
- // gd_ol_tl_ppos
- #define GOUDA_X0(n) (((n)&0x7ff) << 0)
- #define GOUDA_Y0(n) (((n)&0x7ff) << 16)
- // gd_ol_br_ppos
- #define GOUDA_X1(n) (((n)&0x7ff) << 0)
- #define GOUDA_Y1(n) (((n)&0x7ff) << 16)
- // gd_ol_blend_opt
- #define GOUDA_CHROMA_KEY_COLOR(n) (((n)&0xffff) << 0)
- #define GOUDA_CHROMA_KEY_B(n) (((n)&0x1f) << 0)
- #define GOUDA_CHROMA_KEY_G(n) (((n)&0x3f) << 5)
- #define GOUDA_CHROMA_KEY_R(n) (((n)&0x1f) << 11)
- #define GOUDA_CHROMA_KEY_ENABLE (1 << 16)
- #define GOUDA_CHROMA_KEY_MASK(n) (((n)&0x7) << 17)
- #define GOUDA_ALPHA(n) (((n)&0xff) << 20)
- // gd_ol_rgb_src
- #define GOUDA_ADDR(n) (((n)&0x3fffffff) << 2)
- // gd_lcd_ctrl
- #define GOUDA_DESTINATION(n) (((n)&0x3) << 0)
- #define GOUDA_DESTINATION_LCD_CS_0 (0 << 0)
- #define GOUDA_DESTINATION_LCD_CS_1 (1 << 0)
- #define GOUDA_DESTINATION_MEMORY_LCD_TYPE (2 << 0)
- #define GOUDA_DESTINATION_MEMORY_RAM (3 << 0)
- #define GOUDA_OUTPUT_FORMAT(n) (((n)&0x7) << 4)
- #define GOUDA_OUTPUT_FORMAT_8_BIT_RGB332 (0 << 4)
- #define GOUDA_OUTPUT_FORMAT_8_BIT_RGB444 (1 << 4)
- #define GOUDA_OUTPUT_FORMAT_8_BIT_RGB565 (2 << 4)
- #define GOUDA_OUTPUT_FORMAT_16_BIT_RGB332 (4 << 4)
- #define GOUDA_OUTPUT_FORMAT_16_BIT_RGB444 (5 << 4)
- #define GOUDA_OUTPUT_FORMAT_16_BIT_RGB565 (6 << 4)
- #define GOUDA_HIGH_BYTE (1 << 7)
- #define GOUDA_CS0_POLARITY (1 << 8)
- #define GOUDA_CS1_POLARITY (1 << 9)
- #define GOUDA_RS_POLARITY (1 << 10)
- #define GOUDA_WR_POLARITY (1 << 11)
- #define GOUDA_RD_POLARITY (1 << 12)
- #define GOUDA_NB_COMMAND(n) (((n)&0x3f) << 16)
- #define GOUDA_START_COMMAND (1 << 24)
- #define GOUDA_LCD_RESETB (1 << 25)
- #define GOUDA_DESTINATION_V_LCD_CS_0 (0)
- #define GOUDA_DESTINATION_V_LCD_CS_1 (1)
- #define GOUDA_DESTINATION_V_MEMORY_LCD_TYPE (2)
- #define GOUDA_DESTINATION_V_MEMORY_RAM (3)
- #define GOUDA_OUTPUT_FORMAT_V_8_BIT_RGB332 (0)
- #define GOUDA_OUTPUT_FORMAT_V_8_BIT_RGB444 (1)
- #define GOUDA_OUTPUT_FORMAT_V_8_BIT_RGB565 (2)
- #define GOUDA_OUTPUT_FORMAT_V_16_BIT_RGB332 (4)
- #define GOUDA_OUTPUT_FORMAT_V_16_BIT_RGB444 (5)
- #define GOUDA_OUTPUT_FORMAT_V_16_BIT_RGB565 (6)
- // gd_lcd_timing
- #define GOUDA_TAS(n) (((n)&0x7) << 0)
- #define GOUDA_TAH(n) (((n)&0x7) << 4)
- #define GOUDA_PWL(n) (((n)&0x3f) << 8)
- #define GOUDA_PWH(n) (((n)&0x3f) << 16)
- // gd_lcd_mem_address
- #define GOUDA_ADDR_DST(n) (((n)&0x3fffffff) << 2)
- // gd_lcd_stride_offset
- #define GOUDA_STRIDE_OFFSET(n) (((n)&0x3ff) << 0)
- // gd_lcd_single_access
- #define GOUDA_LCD_DATA(n) (((n)&0xffff) << 0)
- #define GOUDA_TYPE (1 << 16)
- #define GOUDA_START_WRITE (1 << 17)
- #define GOUDA_START_READ (1 << 18)
- // gd_spilcd_config
- #define GOUDA_SPI_LCD_SELECT (1 << 0)
- #define GOUDA_SPI_DEVICE_ID(n) (((n)&0x3f) << 1)
- #define GOUDA_SPI_CLK_DIVIDER(n) (((n)&0xff) << 7)
- #define GOUDA_SPI_DUMMY_CYCLE(n) (((n)&0x7) << 15)
- #define GOUDA_SPI_LINE(n) (((n)&0x3) << 18)
- #define GOUDA_SPI_LINE_4 (0 << 18)
- #define GOUDA_SPI_LINE_3 (1 << 18)
- #define GOUDA_SPI_LINE_4_START_BYTE (2 << 18)
- #define GOUDA_SPI_LINE_3_TWO_LANE (3 << 18)
- #define GOUDA_SPI_RX_BYTE(n) (((n)&0x7) << 20)
- #define GOUDA_SPI_RW_WRITE (0 << 23)
- #define GOUDA_SPI_RW_READ (1 << 23)
- #define GOUDA_SPI_LINE_V_4 (0)
- #define GOUDA_SPI_LINE_V_3 (1)
- #define GOUDA_SPI_LINE_V_4_START_BYTE (2)
- #define GOUDA_SPI_LINE_V_3_TWO_LANE (3)
- #define GOUDA_SPI_RW_V_WRITE (0)
- #define GOUDA_SPI_RW_V_READ (1)
- // gd_vl_fix_ratio
- #define GOUDA_L_XRATIO(n) (((n)&0xff) << 0)
- #define GOUDA_L_YRATIO(n) (((n)&0xff) << 8)
- #define GOUDA_L_XFIXEN (1 << 16)
- #define GOUDA_L_YFIXEN (1 << 17)
- #define GOUDA_MIRROR (1 << 18)
- #define GOUDA_REG_VL_ONLY_SEL (1 << 19)
- // tecon
- #define GOUDA_TE_EN (1 << 0)
- #define GOUDA_TE_EDGE_SEL (1 << 1)
- #define GOUDA_TE_MODE (1 << 2)
- #define GOUDA_TE_COUNT2(n) (((n)&0xfff) << 16)
- // tecon2
- #define GOUDA_TE_COUNT1(n) (((n)&0x1fffffff) << 0)
- #endif // _GOUDA_H_
|