diff options
Diffstat (limited to 'firmware')
5 files changed, 13 insertions, 0 deletions
diff --git a/firmware/target/arm/imx233/creative-zenxfi2/lcd-zenxfi2.c b/firmware/target/arm/imx233/creative-zenxfi2/lcd-zenxfi2.c index 370104c724..f452ae083e 100644 --- a/firmware/target/arm/imx233/creative-zenxfi2/lcd-zenxfi2.c +++ b/firmware/target/arm/imx233/creative-zenxfi2/lcd-zenxfi2.c | |||
@@ -40,6 +40,7 @@ static void setup_parameters(void) | |||
40 | imx233_lcdif_set_lcd_databus_width(HW_LCDIF_CTRL__LCD_DATABUS_WIDTH_18_BIT); | 40 | imx233_lcdif_set_lcd_databus_width(HW_LCDIF_CTRL__LCD_DATABUS_WIDTH_18_BIT); |
41 | imx233_lcdif_set_word_length(HW_LCDIF_CTRL__WORD_LENGTH_18_BIT); | 41 | imx233_lcdif_set_word_length(HW_LCDIF_CTRL__WORD_LENGTH_18_BIT); |
42 | imx233_lcdif_set_timings(2, 2, 3, 3); | 42 | imx233_lcdif_set_timings(2, 2, 3, 3); |
43 | imx233_lcdif_enable_underflow_recover(true); | ||
43 | } | 44 | } |
44 | 45 | ||
45 | static void setup_lcd_pins(bool use_lcdif) | 46 | static void setup_lcd_pins(bool use_lcdif) |
diff --git a/firmware/target/arm/imx233/creative-zenxfi3/lcd-zenxfi3.c b/firmware/target/arm/imx233/creative-zenxfi3/lcd-zenxfi3.c index ea1ed6bccc..d04271369c 100644 --- a/firmware/target/arm/imx233/creative-zenxfi3/lcd-zenxfi3.c +++ b/firmware/target/arm/imx233/creative-zenxfi3/lcd-zenxfi3.c | |||
@@ -40,6 +40,7 @@ static void setup_parameters(void) | |||
40 | imx233_lcdif_set_lcd_databus_width(HW_LCDIF_CTRL__LCD_DATABUS_WIDTH_16_BIT); | 40 | imx233_lcdif_set_lcd_databus_width(HW_LCDIF_CTRL__LCD_DATABUS_WIDTH_16_BIT); |
41 | imx233_lcdif_set_word_length(HW_LCDIF_CTRL__WORD_LENGTH_16_BIT); | 41 | imx233_lcdif_set_word_length(HW_LCDIF_CTRL__WORD_LENGTH_16_BIT); |
42 | imx233_lcdif_set_timings(2, 2, 3, 3); | 42 | imx233_lcdif_set_timings(2, 2, 3, 3); |
43 | imx233_lcdif_enable_underflow_recover(true); | ||
43 | } | 44 | } |
44 | 45 | ||
45 | static void setup_lcd_pins(bool use_lcdif) | 46 | static void setup_lcd_pins(bool use_lcdif) |
diff --git a/firmware/target/arm/imx233/lcdif-imx233.c b/firmware/target/arm/imx233/lcdif-imx233.c index 285c2801ad..ad0931de40 100644 --- a/firmware/target/arm/imx233/lcdif-imx233.c +++ b/firmware/target/arm/imx233/lcdif-imx233.c | |||
@@ -23,6 +23,14 @@ | |||
23 | static unsigned lcdif_word_length = 0; | 23 | static unsigned lcdif_word_length = 0; |
24 | static unsigned lcdif_byte_packing = 0; | 24 | static unsigned lcdif_byte_packing = 0; |
25 | 25 | ||
26 | void imx233_lcdif_enable_underflow_recover(bool enable) | ||
27 | { | ||
28 | if(enable) | ||
29 | __REG_SET(HW_LCDIF_CTRL1) = HW_LCDIF_CTRL1__RECOVER_ON_UNDERFLOW; | ||
30 | else | ||
31 | __REG_CLR(HW_LCDIF_CTRL1) = HW_LCDIF_CTRL1__RECOVER_ON_UNDERFLOW; | ||
32 | } | ||
33 | |||
26 | void imx233_lcdif_enable_bus_master(bool enable) | 34 | void imx233_lcdif_enable_bus_master(bool enable) |
27 | { | 35 | { |
28 | if(enable) | 36 | if(enable) |
diff --git a/firmware/target/arm/imx233/lcdif-imx233.h b/firmware/target/arm/imx233/lcdif-imx233.h index 3bce004259..9902aaa80b 100644 --- a/firmware/target/arm/imx233/lcdif-imx233.h +++ b/firmware/target/arm/imx233/lcdif-imx233.h | |||
@@ -53,6 +53,7 @@ | |||
53 | #define HW_LCDIF_CTRL1__IRQ_BP 8 | 53 | #define HW_LCDIF_CTRL1__IRQ_BP 8 |
54 | #define HW_LCDIF_CTRL1__BYTE_PACKING_FORMAT_BM (0xf << 16) | 54 | #define HW_LCDIF_CTRL1__BYTE_PACKING_FORMAT_BM (0xf << 16) |
55 | #define HW_LCDIF_CTRL1__BYTE_PACKING_FORMAT_BP 16 | 55 | #define HW_LCDIF_CTRL1__BYTE_PACKING_FORMAT_BP 16 |
56 | #define HW_LCDIF_CTRL1__RECOVER_ON_UNDERFLOW (1 << 24) | ||
56 | 57 | ||
57 | #define HW_LCDIF__VSYNC_EDGE_IRQ 1 | 58 | #define HW_LCDIF__VSYNC_EDGE_IRQ 1 |
58 | #define HW_LCDIF__CUR_FRAME_DONE_IRQ 2 | 59 | #define HW_LCDIF__CUR_FRAME_DONE_IRQ 2 |
@@ -84,6 +85,7 @@ | |||
84 | #define HW_LCDIF_STAT__TXFIFO_EMPTY (1 << 26) | 85 | #define HW_LCDIF_STAT__TXFIFO_EMPTY (1 << 26) |
85 | #define HW_LCDIF_STAT__BUSY (1 << 25) | 86 | #define HW_LCDIF_STAT__BUSY (1 << 25) |
86 | 87 | ||
88 | void imx233_lcdif_enable_underflow_recover(bool enable); | ||
87 | void imx233_lcdif_enable_bus_master(bool enable); | 89 | void imx233_lcdif_enable_bus_master(bool enable); |
88 | void imx233_lcdif_enable(bool enable); | 90 | void imx233_lcdif_enable(bool enable); |
89 | void imx233_lcdif_reset(void);// reset lcdif block | 91 | void imx233_lcdif_reset(void);// reset lcdif block |
diff --git a/firmware/target/arm/imx233/sansa-fuzeplus/lcd-fuzeplus.c b/firmware/target/arm/imx233/sansa-fuzeplus/lcd-fuzeplus.c index 34afc0478e..5f54c72b5e 100644 --- a/firmware/target/arm/imx233/sansa-fuzeplus/lcd-fuzeplus.c +++ b/firmware/target/arm/imx233/sansa-fuzeplus/lcd-fuzeplus.c | |||
@@ -54,6 +54,7 @@ static void setup_parameters(void) | |||
54 | imx233_lcdif_set_lcd_databus_width(HW_LCDIF_CTRL__LCD_DATABUS_WIDTH_18_BIT); | 54 | imx233_lcdif_set_lcd_databus_width(HW_LCDIF_CTRL__LCD_DATABUS_WIDTH_18_BIT); |
55 | imx233_lcdif_set_word_length(HW_LCDIF_CTRL__WORD_LENGTH_18_BIT); | 55 | imx233_lcdif_set_word_length(HW_LCDIF_CTRL__WORD_LENGTH_18_BIT); |
56 | imx233_lcdif_set_timings(1, 2, 2, 2); | 56 | imx233_lcdif_set_timings(1, 2, 2, 2); |
57 | imx233_lcdif_enable_underflow_recover(true); | ||
57 | } | 58 | } |
58 | 59 | ||
59 | static void setup_lcd_pins(bool use_lcdif) | 60 | static void setup_lcd_pins(bool use_lcdif) |