diff options
Diffstat (limited to 'firmware/target/arm/imx233/sansa-fuzeplus')
-rw-r--r-- | firmware/target/arm/imx233/sansa-fuzeplus/lcd-fuzeplus.c | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/firmware/target/arm/imx233/sansa-fuzeplus/lcd-fuzeplus.c b/firmware/target/arm/imx233/sansa-fuzeplus/lcd-fuzeplus.c index 9b914d6945..6bc6252506 100644 --- a/firmware/target/arm/imx233/sansa-fuzeplus/lcd-fuzeplus.c +++ b/firmware/target/arm/imx233/sansa-fuzeplus/lcd-fuzeplus.c | |||
@@ -164,39 +164,40 @@ static void setup_lcdif_clock(void) | |||
164 | 164 | ||
165 | static uint32_t i80_read_register(uint32_t data_out) | 165 | static uint32_t i80_read_register(uint32_t data_out) |
166 | { | 166 | { |
167 | imx233_lcdif_wait_ready(); | ||
167 | /* lcd_enable is mapped to the RD pin of the controller */ | 168 | /* lcd_enable is mapped to the RD pin of the controller */ |
168 | imx233_set_gpio_output(1, 21, true); /* lcd_cs */ | 169 | imx233_set_gpio_output(1, 21, true); /* lcd_cs */ |
169 | imx233_set_gpio_output(1, 19, true); /* lcd_rs */ | 170 | imx233_set_gpio_output(1, 19, true); /* lcd_rs */ |
170 | imx233_set_gpio_output(1, 23, true); /* lcd_enable */ | 171 | imx233_set_gpio_output(1, 23, true); /* lcd_enable */ |
171 | imx233_set_gpio_output(1, 20, true); /* lcd_wr */ | 172 | imx233_set_gpio_output(1, 20, true); /* lcd_wr */ |
172 | imx233_enable_gpio_output_mask(1, 0x3ffff, true); /* lcd_d{0-17} */ | 173 | imx233_enable_gpio_output_mask(1, 0x3ffff, true); /* lcd_d{0-17} */ |
173 | mdelay(2); | 174 | udelay(2); |
174 | imx233_set_gpio_output(1, 19, false); /* lcd_rs */ | 175 | imx233_set_gpio_output(1, 19, false); /* lcd_rs */ |
175 | mdelay(1); | 176 | udelay(1); |
176 | imx233_set_gpio_output(1, 21, false); /* lcd_cs */ | 177 | imx233_set_gpio_output(1, 21, false); /* lcd_cs */ |
177 | mdelay(1); | 178 | udelay(1); |
178 | imx233_set_gpio_output(1, 20, false); /* lcd_wr */ | 179 | imx233_set_gpio_output(1, 20, false); /* lcd_wr */ |
179 | mdelay(1); | 180 | udelay(1); |
180 | imx233_set_gpio_output_mask(1, data_out & 0x3ffff, true); /* lcd_d{0-17} */ | 181 | imx233_set_gpio_output_mask(1, data_out & 0x3ffff, true); /* lcd_d{0-17} */ |
181 | mdelay(1); | 182 | udelay(1); |
182 | imx233_set_gpio_output(1, 20, true); /* lcd_wr */ | 183 | imx233_set_gpio_output(1, 20, true); /* lcd_wr */ |
183 | mdelay(3); | 184 | udelay(3); |
184 | imx233_enable_gpio_output_mask(1, 0x3ffff, false); /* lcd_d{0-17} */ | 185 | imx233_enable_gpio_output_mask(1, 0x3ffff, false); /* lcd_d{0-17} */ |
185 | mdelay(2); | 186 | udelay(2); |
186 | imx233_set_gpio_output(1, 23, false); /* lcd_enable */ | 187 | imx233_set_gpio_output(1, 23, false); /* lcd_enable */ |
187 | mdelay(1); | 188 | udelay(1); |
188 | imx233_set_gpio_output(1, 19, true); /* lcd_rs */ | 189 | imx233_set_gpio_output(1, 19, true); /* lcd_rs */ |
189 | mdelay(1); | 190 | udelay(1); |
190 | imx233_set_gpio_output(1, 23, true); /* lcd_enable */ | 191 | imx233_set_gpio_output(1, 23, true); /* lcd_enable */ |
191 | mdelay(3); | 192 | udelay(3); |
192 | imx233_set_gpio_output(1, 23, false); /* lcd_enable */ | 193 | imx233_set_gpio_output(1, 23, false); /* lcd_enable */ |
193 | mdelay(2); | 194 | udelay(2); |
194 | uint32_t data_in = imx233_get_gpio_input_mask(1, 0x3ffff); /* lcd_d{0-17} */ | 195 | uint32_t data_in = imx233_get_gpio_input_mask(1, 0x3ffff); /* lcd_d{0-17} */ |
195 | mdelay(1); | 196 | udelay(1); |
196 | imx233_set_gpio_output(1, 23, true); /* lcd_enable */ | 197 | imx233_set_gpio_output(1, 23, true); /* lcd_enable */ |
197 | mdelay(1); | 198 | udelay(1); |
198 | imx233_set_gpio_output(1, 21, true); /* lcd_cs */ | 199 | imx233_set_gpio_output(1, 21, true); /* lcd_cs */ |
199 | mdelay(1); | 200 | udelay(1); |
200 | return data_in; | 201 | return data_in; |
201 | } | 202 | } |
202 | 203 | ||
@@ -372,10 +373,10 @@ void lcd_init_device(void) | |||
372 | for(int i = 0; i < 10; i++) | 373 | for(int i = 0; i < 10; i++) |
373 | { | 374 | { |
374 | lcd_kind = lcd_read_reg(0); | 375 | lcd_kind = lcd_read_reg(0); |
376 | mdelay(5); | ||
375 | if(lcd_kind == LCD_KIND_7783 || lcd_kind == LCD_KIND_9325) | 377 | if(lcd_kind == LCD_KIND_7783 || lcd_kind == LCD_KIND_9325) |
376 | break; | 378 | break; |
377 | } | 379 | } |
378 | mdelay(5); | ||
379 | switch(lcd_kind) | 380 | switch(lcd_kind) |
380 | { | 381 | { |
381 | case LCD_KIND_7783: lcd_init_seq_7783(); break; | 382 | case LCD_KIND_7783: lcd_init_seq_7783(); break; |