diff options
author | Amaury Pouly <amaury.pouly@gmail.com> | 2013-06-13 02:12:01 +0200 |
---|---|---|
committer | Amaury Pouly <amaury.pouly@gmail.com> | 2013-06-13 02:25:15 +0200 |
commit | f9cb5de58020936812653c578c79c79a13bc626c (patch) | |
tree | d1d6c29207472bea4daa68d2fffd7e8dbfac998b /utils/hwstub/tools/lua/zenmozaic.lua | |
parent | c5357940ab0108b4102442d07825c44d5be0d22f (diff) | |
download | rockbox-f9cb5de58020936812653c578c79c79a13bc626c.tar.gz rockbox-f9cb5de58020936812653c578c79c79a13bc626c.zip |
hwstub: introduce lua code for the STMP and Creative ZEN V/Mozaic
Change-Id: Ice5f509a2e0d2114436d4760f338b9203ef96691
Diffstat (limited to 'utils/hwstub/tools/lua/zenmozaic.lua')
-rw-r--r-- | utils/hwstub/tools/lua/zenmozaic.lua | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/utils/hwstub/tools/lua/zenmozaic.lua b/utils/hwstub/tools/lua/zenmozaic.lua new file mode 100644 index 0000000000..a4135c25c5 --- /dev/null +++ b/utils/hwstub/tools/lua/zenmozaic.lua | |||
@@ -0,0 +1,98 @@ | |||
1 | -- | ||
2 | -- ZEN MOZAIC | ||
3 | -- | ||
4 | ZENMOZAIC = {} | ||
5 | |||
6 | function ZENMOZAIC.lcd_send(cmd, data) | ||
7 | STMP.lcdif.set_data_swizzle(3) | ||
8 | STMP.lcdif.send_pio(false, {bit32.band(cmd, 0xff), bit32.rshift(cmd, 8)}) | ||
9 | if cmd ~= 0x22 then | ||
10 | STMP.lcdif.send_pio(true, {bit32.band(data, 0xff), bit32.rshift(data, 8)}) | ||
11 | end | ||
12 | end | ||
13 | |||
14 | function ZENMOZAIC.lcd_init() | ||
15 | STMP.pinctrl.lcdif.setup_system(8, false) | ||
16 | STMP.lcdif.init() | ||
17 | STMP.lcdif.set_word_length(8) | ||
18 | STMP.lcdif.set_system_timing(2, 2, 2, 2) | ||
19 | STMP.lcdif.set_reset(1) | ||
20 | STMP.lcdif.set_reset(0) | ||
21 | STMP.lcdif.set_reset(1) | ||
22 | STMP.lcdif.set_byte_packing_format(0xf) | ||
23 | |||
24 | ZENMOZAIC.lcd_send(0, 1) | ||
25 | ZENMOZAIC.lcd_send(3, 0) | ||
26 | |||
27 | ZENMOZAIC.lcd_send(3, 0x510) | ||
28 | ZENMOZAIC.lcd_send(9, 8) | ||
29 | ZENMOZAIC.lcd_send(0xc, 0) | ||
30 | ZENMOZAIC.lcd_send(0xd, 0) | ||
31 | ZENMOZAIC.lcd_send(0xe, 0) | ||
32 | ZENMOZAIC.lcd_send(0x5b, 4) | ||
33 | ZENMOZAIC.lcd_send(0xd, 0x10) | ||
34 | ZENMOZAIC.lcd_send(9, 0) | ||
35 | ZENMOZAIC.lcd_send(3, 0x10) | ||
36 | ZENMOZAIC.lcd_send(0xd, 0x14) | ||
37 | ZENMOZAIC.lcd_send(0xe, 0x2b12) | ||
38 | ZENMOZAIC.lcd_send(1, 0x21f) | ||
39 | ZENMOZAIC.lcd_send(2, 0x700) | ||
40 | ZENMOZAIC.lcd_send(5, 0x30) | ||
41 | ZENMOZAIC.lcd_send(6, 0) | ||
42 | ZENMOZAIC.lcd_send(8, 0x202) | ||
43 | ZENMOZAIC.lcd_send(0xa, 0xc003) | ||
44 | ZENMOZAIC.lcd_send(0xb, 0) | ||
45 | ZENMOZAIC.lcd_send(0xf, 0) | ||
46 | ZENMOZAIC.lcd_send(0x10, 0) | ||
47 | ZENMOZAIC.lcd_send(0x11, 0) | ||
48 | ZENMOZAIC.lcd_send(0x14, 0x9f00) | ||
49 | ZENMOZAIC.lcd_send(0x15, 0x9f00) | ||
50 | ZENMOZAIC.lcd_send(0x16, 0x7f00) | ||
51 | ZENMOZAIC.lcd_send(0x17, 0x9f00) | ||
52 | ZENMOZAIC.lcd_send(0x20, 0) | ||
53 | ZENMOZAIC.lcd_send(0x21, 0) | ||
54 | ZENMOZAIC.lcd_send(0x23, 0) | ||
55 | ZENMOZAIC.lcd_send(0x24, 0) | ||
56 | ZENMOZAIC.lcd_send(0x25, 0) | ||
57 | ZENMOZAIC.lcd_send(0x26, 0) | ||
58 | ZENMOZAIC.lcd_send(0x30, 0x707) | ||
59 | ZENMOZAIC.lcd_send(0x31, 0x504) | ||
60 | ZENMOZAIC.lcd_send(0x32, 7) | ||
61 | ZENMOZAIC.lcd_send(0x33, 0x307) | ||
62 | ZENMOZAIC.lcd_send(0x34, 7) | ||
63 | ZENMOZAIC.lcd_send(0x35, 0x400) | ||
64 | ZENMOZAIC.lcd_send(0x36, 0x607) | ||
65 | ZENMOZAIC.lcd_send(0x37, 0x703) | ||
66 | ZENMOZAIC.lcd_send(0x3a, 0x1a0d) | ||
67 | ZENMOZAIC.lcd_send(0x3b, 0x1309) | ||
68 | |||
69 | ZENMOZAIC.lcd_send(9, 4) | ||
70 | ZENMOZAIC.lcd_send(7, 5) | ||
71 | ZENMOZAIC.lcd_send(7, 0x25) | ||
72 | ZENMOZAIC.lcd_send(7, 0x27) | ||
73 | ZENMOZAIC.lcd_send(0x5b, 0) | ||
74 | ZENMOZAIC.lcd_send(7, 0x37) | ||
75 | |||
76 | ZENMOZAIC.lcd_send(0x22, 0) | ||
77 | for i=0,128 do | ||
78 | STMP.lcdif.send_pio(true, {0xff, 0}) | ||
79 | end | ||
80 | end | ||
81 | |||
82 | function ZENMOZAIC.set_backlight(val) | ||
83 | local v = math.floor((val + 200) * val / 1000) | ||
84 | for i=4,0,-1 do | ||
85 | if bit32.btest(v,bit32.lshift(1,i)) then | ||
86 | HW.UARTDBG.DR.write(0xff) | ||
87 | else | ||
88 | HW.UARTDBG.DR.write(0xf8) | ||
89 | end | ||
90 | while HW.UARTDBG.FR.TXFF.read() == 1 do end | ||
91 | end | ||
92 | HW.UARTDBG.DR.write(0) | ||
93 | end | ||
94 | |||
95 | function ZENMOZAIC.init() | ||
96 | ZENMOZAIC.lcd_init() | ||
97 | end | ||
98 | |||