summaryrefslogtreecommitdiff
path: root/firmware/target/arm/samsung/yh920/lcd-as-yh920.S
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/samsung/yh920/lcd-as-yh920.S')
-rw-r--r--firmware/target/arm/samsung/yh920/lcd-as-yh920.S26
1 files changed, 15 insertions, 11 deletions
diff --git a/firmware/target/arm/samsung/yh920/lcd-as-yh920.S b/firmware/target/arm/samsung/yh920/lcd-as-yh920.S
index 9444954041..2c7f5110bf 100644
--- a/firmware/target/arm/samsung/yh920/lcd-as-yh920.S
+++ b/firmware/target/arm/samsung/yh920/lcd-as-yh920.S
@@ -27,27 +27,31 @@
27 .align 2 27 .align 2
28 28
29 29
30/* Writes an array of pixels of specified width (in 8 bits unit)
31 *
32 * Arguments:
33 * r0 : pixels array
34 * r1 : number of pixels in 8 bits unit
35 *
36 * Register usage:
37 * r2 : LCD_CONTROL value / pixel value
38 * r3 : lcd bridge address
39 */
40
30 .global lcd_write_data 41 .global lcd_write_data
31 .type lcd_write_data,%function 42 .type lcd_write_data,%function
32 43
33lcd_write_data: 44lcd_write_data:
34 ldr r12, =LCD1_BASE 45 ldr r3, =LCD1_BASE
35 46
36.loop: 47.loop:
37 ldrb r2, [r0], #1
38
391: 481:
40 ldr r3, [r12] 49 ldr r2, [r3]
41 tst r3, #LCD1_BUSY_MASK 50 tst r2, #LCD1_BUSY_MASK
42 bne 1b 51 bne 1b
43 str r2, [r12, #0x10]
44 52
45 ldrb r2, [r0], #1 53 ldrb r2, [r0], #1
461: 54 str r2, [r3, #0x10]
47 ldr r3, [r12]
48 tst r3, #LCD1_BUSY_MASK
49 bne 1b
50 str r2, [r12, #0x10]
51 55
52 subs r1, r1, #1 56 subs r1, r1, #1
53 bne .loop 57 bne .loop