2 * display.h - header file for the display handling
4 * author: hackbard@hackdaworld.org
15 #define DISPLY_BANK1 0x81000000
17 #define DISPLAY_CMD (*((volatile u8 *)DISPLY_BANK1))
18 #define DISPLAY_DATA (*((volatile u8 *)DISPLY_BANK1+1))
20 #define DISPLAY_DIMX 128
21 #define DISPLAY_DIMY 160
22 #define DISPLAY_PAGE_MAX (DISPLAY_DIMY/8)
23 #define DISPLAY_COL_MAX DISPLAY_DIMX
24 #define DISPLAY_RAM_CONTENT (DISPLAY_PAGE_MAX*DISPLAY_COL_MAX*2)
27 #define DISPLAY_SET_C_ADDR(c) DISPLAY_CMD=(0x00|((c)&0x0f)); \
28 DISPLAY_CMD=(0x10|(((c)&0x70)>>4))
29 #define DISPLAY_SET_MASTER DISPLAY_CMD=0x18
30 #define DISPLAY_SET_SLAVE DISPLAY_CMD=0x19
31 #define DISPLAY_SET_REGULATOR(r) DISPLAY_CMD=(0x20|((r)&0x07))
32 #define DISPLAY_SET_POWER(p) DISPLAY_CMD=(0x28|((p)&0x07))
33 #define DISPLAY_V_BOOST 0x01
34 #define DISPLAY_REGULATOR 0x02
35 #define DISPLAY_OPAMP 0x04
36 #define DISPLAY_SET_START_LINE(s) DISPLAY_CMD=0x40; \
38 #define DISPLAY_SET_OFFSET(o) DISPLAY_CMD=0x44; \
40 #define DISPLAY_SET_MPLEX_RATIO(m) DISPLAY_CMD=0x48; \
42 #define DISPLAY_SET_NINV(n) DISPLAY_CMD=0x4c; \
44 #define DISPLAY_SET_BIAS(b) DISPLAY_CMD=(0x50|((b)&0x07))
45 #define DISPLAY_SET_UW_CORNER_X(x) DISPLAY_CMD=0x60; \
46 DISPLAY_CMD=((x)&0x7f)
47 #define DISPLAY_SET_UW_CORNER_Y(y) DISPLAY_CMD=0x61; \
49 #define DISPLAY_SET_LW_CORNER_X(x) DISPLAY_CMD=0x62; \
50 DISPLAY_CMD=((x)&0x7f)
51 #define DISPLAY_SET_LW_CORNER_Y(y) DISPLAY_CMD=0x63; \
53 #define DISPLAY_SET_CONV_FACTOR(c) DISPLAY_CMD=(0x64|((c)&0x03))
54 #define DISPLAY_SET_CONTRAST(c) DISPLAY_CMD=0x81; \
55 DISPLAY_CMD=((c)&0x3f)
56 #define DISPLAY_SET_WHITE(a,b,c,d) DISPLAY_CMD=0x88; \
57 DISPLAY_CMD=(((b)&0x0f)<<4|((a)&0x0f)); \
59 DISPLAY_CMD=(((d)&0x0f)<<4|((c)&0x0f))
60 #define DISPLAY_SET_LGRAY(a,b,c,d) DISPLAY_CMD=0x8a; \
61 DISPLAY_CMD=(((b)&0x0f)<<4|((a)&0x0f)); \
63 DISPLAY_CMD=(((d)&0x0f)<<4|((c)&0x0f))
64 #define DISPLAY_SET_DGRAY(a,b,c,d) DISPLAY_CMD=0x8c; \
65 DISPLAY_CMD=(((b)&0x0f)<<4|((a)&0x0f)); \
67 DISPLAY_CMD=(((d)&0x0f)<<4|((c)&0x0f))
68 #define DISPLAY_SET_BLACK(a,b,c,d) DISPLAY_CMD=0x88; \
69 DISPLAY_CMD=(((b)&0x0f)<<4|((a)&0x0f)); \
71 DISPLAY_CMD=(((d)&0x0f)<<4|((c)&0x0f))
72 #define DISPLAY_SET_PWM_FRC(p,f) DISPLAY_CMD=(0x90|(((f&0x01)<<2)|p&0x03))
73 #define DISPLAY_SET_SEGMENT_REMAP_00H DISPLAY_CMD=0xa0
74 #define DISPLAY_SET_SEGMENT_REMAP_7fH DISPLAY_CMD=0xa1
75 #define DISPLAY_RAM_CONTENTS_ON DISPLAY_CMD=0xa4
76 #define DISPLAY_ENTIRE_ON DISPLAY_CMD=0xa5
77 #define DISPLAY_NORMAL DISPLAY_CMD=0xa6
78 #define DISPLAY_REVERSE DISPLAY_CMD=0xa7
79 #define DISPLAY_SET_POWER_SAVE DISPLAY_CMD=0xa9
80 #define DISPLAY_START_OSCILLATOR DISPLAY_CMD=0xab
81 #define DISPLAY_SET_OFF DISPLAY_CMD=0xae
82 #define DISPLAY_SET_ON DISPLAY_CMD=0xaf
83 #define DISPLAY_SET_PAGE_ADDR(p) DISPLAY_CMD=0xb0; \
84 DISPLAY_CMD=((p)&0x1f)
85 #define DISPLAY_SET_COM_ODIR_NORMAL DISPLAY_CMD=0xc0
86 #define DISPLAY_SET_COM_ODIR_REMAPPED DISPLAY_CMD=0xc8
87 #define DISPLAY_EXIT_POWER_SAVE DISPLAY_CMD=0xe1
88 #define DISPLAY_SOFT_RESET DISPLAY_CMD=0xe2
89 #define DISPLAY_EXIT_NLINE_INVERSION DISPLAY_CMD=0xe4
90 #define DISPLAY_SCROLL_BUF_ENABLE DISPLAY_CMD=0xe6
91 #define DISPLAY_SCROLL_BUF_DISABLE DISPLAY_CMD=0xe7
92 #define DISPLAY_SET_TC(c) DISPLAY_CMD=0xe9; \
94 #define DISPLAY_EXTENDED_FEATURES DISPLAY_CMD=0xf0
96 /* function prototypes */
97 void display_bl_init(void);
98 void display_bl_toggle(void);
99 void display_bl_on(void);
100 void display_bl_off(void);