summaryrefslogtreecommitdiff
path: root/firmware/target/arm
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm')
-rw-r--r--firmware/target/arm/imx233/creative-zenxfi2/lcd-zenxfi2.c1
-rw-r--r--firmware/target/arm/imx233/creative-zenxfi3/lcd-zenxfi3.c1
-rw-r--r--firmware/target/arm/imx233/lcdif-imx233.c8
-rw-r--r--firmware/target/arm/imx233/lcdif-imx233.h2
-rw-r--r--firmware/target/arm/imx233/sansa-fuzeplus/lcd-fuzeplus.c1
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
45static void setup_lcd_pins(bool use_lcdif) 46static 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
45static void setup_lcd_pins(bool use_lcdif) 46static 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 @@
23static unsigned lcdif_word_length = 0; 23static unsigned lcdif_word_length = 0;
24static unsigned lcdif_byte_packing = 0; 24static unsigned lcdif_byte_packing = 0;
25 25
26void 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
26void imx233_lcdif_enable_bus_master(bool enable) 34void 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
88void imx233_lcdif_enable_underflow_recover(bool enable);
87void imx233_lcdif_enable_bus_master(bool enable); 89void imx233_lcdif_enable_bus_master(bool enable);
88void imx233_lcdif_enable(bool enable); 90void imx233_lcdif_enable(bool enable);
89void imx233_lcdif_reset(void);// reset lcdif block 91void 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
59static void setup_lcd_pins(bool use_lcdif) 60static void setup_lcd_pins(bool use_lcdif)