diff options
Diffstat (limited to 'firmware/target/arm/imx233/lcdif-imx233.h')
-rw-r--r-- | firmware/target/arm/imx233/lcdif-imx233.h | 46 |
1 files changed, 38 insertions, 8 deletions
diff --git a/firmware/target/arm/imx233/lcdif-imx233.h b/firmware/target/arm/imx233/lcdif-imx233.h index 1aee72bce4..dabc1f4c71 100644 --- a/firmware/target/arm/imx233/lcdif-imx233.h +++ b/firmware/target/arm/imx233/lcdif-imx233.h | |||
@@ -28,19 +28,49 @@ | |||
28 | 28 | ||
29 | #include "regs/regs-lcdif.h" | 29 | #include "regs/regs-lcdif.h" |
30 | 30 | ||
31 | void imx233_lcdif_enable_underflow_recover(bool enable); | 31 | typedef void (*lcdif_irq_cb_t)(void); |
32 | void imx233_lcdif_enable_bus_master(bool enable); | 32 | |
33 | void imx233_lcdif_enable(bool enable); | 33 | void imx233_lcdif_enable(bool enable); |
34 | void imx233_lcdif_reset(void);// reset lcdif block | 34 | void imx233_lcdif_init(void);// reset lcdif block |
35 | void imx233_lcdif_reset_lcd(bool enable);// set/clr reset line | ||
35 | void imx233_lcdif_set_timings(unsigned data_setup, unsigned data_hold, | 36 | void imx233_lcdif_set_timings(unsigned data_setup, unsigned data_hold, |
36 | unsigned cmd_setup, unsigned cmd_hold); | 37 | unsigned cmd_setup, unsigned cmd_hold); |
37 | void imx233_lcdif_set_lcd_databus_width(unsigned width); | ||
38 | void imx233_lcdif_set_word_length(unsigned word_length); | 38 | void imx233_lcdif_set_word_length(unsigned word_length); |
39 | void imx233_lcdif_set_byte_packing_format(unsigned byte_packing); | ||
40 | void imx233_lcdif_set_data_format(bool data_fmt_16, bool data_fmt_18, bool data_fmt_24); | ||
41 | unsigned imx233_lcdif_enable_irqs(unsigned irq_bm); /* return old mask */ | ||
42 | void imx233_lcdif_wait_ready(void); | 39 | void imx233_lcdif_wait_ready(void); |
43 | void imx233_lcdif_pio_send(bool data_mode, unsigned len, uint32_t *buf); | 40 | void imx233_lcdif_set_data_swizzle(unsigned swizzle); |
41 | /* This function assumes the data is packed in 8/16-bit mode and unpacked in | ||
42 | * 18-bit mode. | ||
43 | * WARNING: doesn't support 24-bit mode | ||
44 | * WARNING: count must be lower than or equal to 0xffff | ||
45 | * Note that this function might affect the byte packing format and bus master. | ||
46 | * Note that count is number of pixels, NOT the number of bytes ! */ | ||
47 | void imx233_lcdif_pio_send(bool data_mode, unsigned count, void *buf); | ||
44 | void imx233_lcdif_dma_send(void *buf, unsigned width, unsigned height); | 48 | void imx233_lcdif_dma_send(void *buf, unsigned width, unsigned height); |
49 | void imx233_lcdif_setup_system_pins(unsigned bus_width); | ||
50 | void imx233_lcdif_setup_dotclk_pins(unsigned bus_width, bool have_enable); | ||
51 | |||
52 | #if IMX233_SUBTARGET >= 3700 | ||
53 | void imx233_lcdif_set_byte_packing_format(unsigned byte_packing); | ||
54 | /* low-level function */ | ||
55 | void imx233_lcdif_setup_dotclk(unsigned v_pulse_width, unsigned v_period, | ||
56 | unsigned v_wait_cnt, unsigned v_active, unsigned h_pulse_width, | ||
57 | unsigned h_period, unsigned h_wait_cnt, unsigned h_active, bool enable_present); | ||
58 | /* high-level function */ | ||
59 | void imx233_lcdif_setup_dotclk_ex(unsigned v_pulse_width, unsigned v_back_porch, | ||
60 | unsigned v_front_porch, unsigned h_pulse_width, unsigned h_back_porch, | ||
61 | unsigned h_front_porch, unsigned width, unsigned height, unsigned clk_per_pix, | ||
62 | bool enable_present); | ||
63 | void imx233_lcdif_enable_frame_done_irq(bool en); | ||
64 | void imx233_lcdif_set_frame_done_cb(lcdif_irq_cb_t cb); | ||
65 | void imx233_lcdif_enable_vsync_edge_irq(bool en); | ||
66 | void imx233_lcdif_set_vsync_edge_cb(lcdif_irq_cb_t cb); | ||
67 | void imx233_lcdif_enable_sync_signals(bool en); | ||
68 | #endif | ||
69 | |||
70 | #if IMX233_SUBTARGET >= 3780 | ||
71 | void imx233_lcdif_enable_underflow_recover(bool enable); | ||
72 | void imx233_lcdif_enable_bus_master(bool enable); | ||
73 | void imx233_lcdif_set_lcd_databus_width(unsigned width); | ||
74 | #endif | ||
45 | 75 | ||
46 | #endif /* __LCDIF_IMX233_H__ */ | 76 | #endif /* __LCDIF_IMX233_H__ */ |