diff options
Diffstat (limited to 'drivers/lcd/ssd1289_lld.c')
-rw-r--r-- | drivers/lcd/ssd1289_lld.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/drivers/lcd/ssd1289_lld.c b/drivers/lcd/ssd1289_lld.c index cfacfb47..9f3303f9 100644 --- a/drivers/lcd/ssd1289_lld.c +++ b/drivers/lcd/ssd1289_lld.c @@ -142,14 +142,22 @@ static __inline void lld_lcdDelay(uint16_t us) { } void lld_lcdSetPowerMode(uint8_t powerMode) { - /* TODO */ - switch(powerMode) { - case poweroff: + case powerOff: + lld_lcdWriteReg(0x0010, 0x0000); // leave sleep mode + lld_lcdWriteReg(0x0007, 0x0000); // halt operation + lld_lcdWriteReg(0x0000, 0x0000); // turn off oszillator + lld_lcdWriteReg(0x0010, 0x0001); // enter sleepmode + break; + case powerOn: + lld_lcdWriteReg(0x0010, 0x0000); // leave sleep mode + lld_lcdInit(); break; - case poweron: + case sleepOn: + lld_lcdWriteReg(0x0010, 0x0001); // enter sleep mode break; - case standby: + case sleepOff: + lld_lcdWriteReg(0x0010, 0x0000); // leave sleep mode break; } } |