diff --git a/firmware/target/arm/as3525/sansa-e200v2/button-e200v2.c b/firmware/target/arm/as3525/sansa-e200v2/button-e200v2.c index 915475353c..0e0e157a54 100644 --- a/firmware/target/arm/as3525/sansa-e200v2/button-e200v2.c +++ b/firmware/target/arm/as3525/sansa-e200v2/button-e200v2.c @@ -154,6 +154,9 @@ unsigned short button_read_dbop(void) DBOP_CTRL |= (1<<15); /* start read */ while (!(DBOP_STAT & (1<<16))); /* wait for valid data */ + int delay=10; + while(delay--); /* short delay before reading */ + _dbop_din = DBOP_DIN; /* Read dbop data*/ /* Reset dbop for output */ diff --git a/firmware/target/arm/as3525/sansa-e200v2/lcd-e200v2.c b/firmware/target/arm/as3525/sansa-e200v2/lcd-e200v2.c index 840d3c4c3c..ece773f2fa 100644 --- a/firmware/target/arm/as3525/sansa-e200v2/lcd-e200v2.c +++ b/firmware/target/arm/as3525/sansa-e200v2/lcd-e200v2.c @@ -138,6 +138,10 @@ static void lcd_write_cmd(int cmd) /* Wait for fifo to empty */ while ((DBOP_STAT & (1<<10)) == 0); + /* Fuze OF has this loop and it seems to help us now also */ + int delay=8; + while(delay--); + DBOP_TIMPOL_23 = 0xa167e06f; }