summaryrefslogtreecommitdiff
path: root/rbutil
diff options
context:
space:
mode:
authorMihail Zenkov <mihail.zenkov@gmail.com>2016-05-04 01:34:08 +0000
committerMihail Zenkov <mihail.zenkov@gmail.com>2016-05-04 01:34:08 +0000
commit2a1e9eb8a8f50f636f86988de1f0cd1b3acf55bb (patch)
tree0fcf6c2c32d7b74d1f72fb359e5ed3a98c7dff7b /rbutil
parent4327cbc9b8886ec0697086d2a91cdff0d698e172 (diff)
downloadrockbox-2a1e9eb8a8f50f636f86988de1f0cd1b3acf55bb.tar.gz
rockbox-2a1e9eb8a8f50f636f86988de1f0cd1b3acf55bb.zip
Reverting 4327cbc9b8886e
I do testing incorrectly: fix don't work as expected. Change-Id: Ie32672ec213861c02295ae0a14e22b9ca9035585
Diffstat (limited to 'rbutil')
-rw-r--r--rbutil/mkamsboot/dualboot/dualboot.S63
1 files changed, 54 insertions, 9 deletions
diff --git a/rbutil/mkamsboot/dualboot/dualboot.S b/rbutil/mkamsboot/dualboot/dualboot.S
index d5bb6610c1..4e4dbe5505 100644
--- a/rbutil/mkamsboot/dualboot/dualboot.S
+++ b/rbutil/mkamsboot/dualboot/dualboot.S
@@ -28,7 +28,9 @@
28.set GPIOD, 0xC80E0000 28.set GPIOD, 0xC80E0000
29.set CGU_PROC, 0xC80F0010 29.set CGU_PROC, 0xC80F0010
30.set CGU_PERI, 0xC80F0014 30.set CGU_PERI, 0xC80F0014
31.set CGU_DBOP, 0xC80F0038
31.set CCU_IO, 0xC810000C 32.set CCU_IO, 0xC810000C
33.set DBOP, 0xC8120000
32.set I2C_BASE, 0xC8070000 34.set I2C_BASE, 0xC8070000
33.set I2C_DATA, 0x00 35.set I2C_DATA, 0x00
34.set I2C_SLAD0, 0x04 36.set I2C_SLAD0, 0x04
@@ -147,15 +149,6 @@ uclcopy:
147 cmp r1, #0 /* C3 = #0 means button pressed */ 149 cmp r1, #0 /* C3 = #0 means button pressed */
148 beq boot_of 150 beq boot_of
149 151
150#elif defined(SANSA_C200V2)
151 ldr r0, =GPIOC
152 mov r1, #0
153 str r1, [r0, #0x400]
154 ldr r1, [r0, #0x10] /* read pin C2 */
155
156 cmp r1, #0 /* C2 = #0 means button pressed */
157 beq boot_of
158
159#elif defined(SANSA_FUZEV2) 152#elif defined(SANSA_FUZEV2)
160 ldr r0, =GPIOC 153 ldr r0, =GPIOC
161 mov r1, #0 154 mov r1, #0
@@ -207,6 +200,58 @@ uclcopy:
207 cmp r1, #0 200 cmp r1, #0
208 bne boot_of 201 bne boot_of
209 202
203#elif defined(SANSA_C200V2)
204.set BUTTON_LEFT, (1<< 2)
205.set BUTTON_DOWN, (1<< 3)
206.set BUTTON_SELECT, (1<< 4)
207.set BUTTON_UP, (1<< 5)
208.set BUTTON_RIGHT, (1<< 6)
209.set BUTTON_HOLD, (1<<12)
210
211 ldr r0, =CGU_DBOP
212 mov r1, #(1<<3) @ DBOP freq = PCLK, clock enabled
213 str r1, [r0]
214
215 @ AFSEL needs to be set for this to work
216 ldr r2, =GPIOB
217 mov r1, #0xc
218 str r1, [r2, #0x420] @ GPIOB_AFSEL
219 ldr r2, =GPIOC
220 mov r1, #0xff
221 str r1, [r2, #0x420] @ GPIOC_AFSEL
222
223 ldr r0, =DBOP
224 @ TIMPOL doesn't matter here since we don't need
225 @ the control signals.
226
227 @ 16 bit data width
228 @ enable write
229 @ tri-state output
230 ldr r1, =0x00091000
231 str r1, [r0, #8] @ DBOP_CTRL
232
233 ldr r1, =0xf0ff @ precharge
234 str r1, [r0, #0x10] @ DBOP_DOUT
235
2362: ldr r1, [r0, #0xc] @ DOBP_STAT
237 ands r1, r1, #(1<<10)
238 beq 2b @ make sure fifo is empty
239
240 @ 16 bit data width
241 @ start read
242 @ tri-state output
243 @ strobe time 31
244 ldr r1, =0x0008901f
245 str r1, [r0, #8] @ DBOP_CTRL
246
2473: ldr r1, [r0, #0xc] @ DOBP_STAT
248 ands r1, r1, #(1<<16)
249 beq 3b @ wait for valid data
250
251 ldrh r1, [r0, #0x14] @ DBOP_DIN
252
253 tst r1, #BUTTON_LEFT @ boot of?
254 beq boot_of
210#elif defined(SANSA_M200V4) 255#elif defined(SANSA_M200V4)
211.set row, (1<<5) /* enable output on A5 */ 256.set row, (1<<5) /* enable output on A5 */
212.set col, (1<<0) /* read keyscan column A0 */ 257.set col, (1<<0) /* read keyscan column A0 */