From 38b5410f2d47b327762a62a87fea477d172e7868 Mon Sep 17 00:00:00 2001 From: Tectu Date: Tue, 19 Jun 2012 23:26:30 +0200 Subject: cleanups --- drivers/lcd/ssd1289_lld.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'drivers/lcd/ssd1289_lld.c') diff --git a/drivers/lcd/ssd1289_lld.c b/drivers/lcd/ssd1289_lld.c index ac4d050f..5382dd27 100644 --- a/drivers/lcd/ssd1289_lld.c +++ b/drivers/lcd/ssd1289_lld.c @@ -91,6 +91,10 @@ __inline void lld_lcdWriteStream(uint16_t *buffer, uint16_t size) { #endif +#ifdef LCD_USE_SPI + /* TODO */ +#endif + #ifdef LCD_USE_FSMC #define LCD_REG (*((volatile uint16_t *) 0x60000000)) /* RS = 0 */ @@ -133,16 +137,10 @@ __inline void lld_lcdWriteStream(uint16_t *buffer, uint16_t size) { } #endif -#ifdef LCD_USE_SPI -/* TODO! */ -#endif - static __inline void lcdDelay(uint16_t us) { chThdSleepMicroseconds(us); } - - void lld_lcdSetCursor(uint16_t x, uint16_t y) { if(PORTRAIT) { lld_lcdWriteReg(0x004e, x); -- cgit v1.2.3 From 6a2a70e8e68d999e5b8cea74ef49b37e8be3aeda Mon Sep 17 00:00:00 2001 From: Tectu Date: Wed, 20 Jun 2012 00:17:10 +0200 Subject: added lcdSetPowerMode() --- drivers/lcd/ssd1289_lld.c | 97 +++++++++++++++++++++++++++-------------------- 1 file changed, 55 insertions(+), 42 deletions(-) (limited to 'drivers/lcd/ssd1289_lld.c') diff --git a/drivers/lcd/ssd1289_lld.c b/drivers/lcd/ssd1289_lld.c index 5382dd27..cfacfb47 100644 --- a/drivers/lcd/ssd1289_lld.c +++ b/drivers/lcd/ssd1289_lld.c @@ -137,10 +137,23 @@ __inline void lld_lcdWriteStream(uint16_t *buffer, uint16_t size) { } #endif -static __inline void lcdDelay(uint16_t us) { +static __inline void lld_lcdDelay(uint16_t us) { chThdSleepMicroseconds(us); } +void lld_lcdSetPowerMode(uint8_t powerMode) { + /* TODO */ + + switch(powerMode) { + case poweroff: + break; + case poweron: + break; + case standby: + break; + } +} + void lld_lcdSetCursor(uint16_t x, uint16_t y) { if(PORTRAIT) { lld_lcdWriteReg(0x004e, x); @@ -277,47 +290,47 @@ void lld_lcdInit(void) { #endif DeviceCode = lld_lcdReadReg(0x0000); - lld_lcdWriteReg(0x0000,0x0001); lcdDelay(5); - lld_lcdWriteReg(0x0003,0xA8A4); lcdDelay(5); - lld_lcdWriteReg(0x000C,0x0000); lcdDelay(5); - lld_lcdWriteReg(0x000D,0x080C); lcdDelay(5); - lld_lcdWriteReg(0x000E,0x2B00); lcdDelay(5); - lld_lcdWriteReg(0x001E,0x00B0); lcdDelay(5); - lld_lcdWriteReg(0x0001,0x2B3F); lcdDelay(5); - lld_lcdWriteReg(0x0002,0x0600); lcdDelay(5); - lld_lcdWriteReg(0x0010,0x0000); lcdDelay(5); - lld_lcdWriteReg(0x0011,0x6070); lcdDelay(5); - lld_lcdWriteReg(0x0005,0x0000); lcdDelay(5); - lld_lcdWriteReg(0x0006,0x0000); lcdDelay(5); - lld_lcdWriteReg(0x0016,0xEF1C); lcdDelay(5); - lld_lcdWriteReg(0x0017,0x0003); lcdDelay(5); - lld_lcdWriteReg(0x0007,0x0133); lcdDelay(5); - lld_lcdWriteReg(0x000B,0x0000); lcdDelay(5); - lld_lcdWriteReg(0x000F,0x0000); lcdDelay(5); - lld_lcdWriteReg(0x0041,0x0000); lcdDelay(5); - lld_lcdWriteReg(0x0042,0x0000); lcdDelay(5); - lld_lcdWriteReg(0x0048,0x0000); lcdDelay(5); - lld_lcdWriteReg(0x0049,0x013F); lcdDelay(5); - lld_lcdWriteReg(0x004A,0x0000); lcdDelay(5); - lld_lcdWriteReg(0x004B,0x0000); lcdDelay(5); - lld_lcdWriteReg(0x0044,0xEF00); lcdDelay(5); - lld_lcdWriteReg(0x0045,0x0000); lcdDelay(5); - lld_lcdWriteReg(0x0046,0x013F); lcdDelay(5); - lld_lcdWriteReg(0x0030,0x0707); lcdDelay(5); - lld_lcdWriteReg(0x0031,0x0204); lcdDelay(5); - lld_lcdWriteReg(0x0032,0x0204); lcdDelay(5); - lld_lcdWriteReg(0x0033,0x0502); lcdDelay(5); - lld_lcdWriteReg(0x0034,0x0507); lcdDelay(5); - lld_lcdWriteReg(0x0035,0x0204); lcdDelay(5); - lld_lcdWriteReg(0x0036,0x0204); lcdDelay(5); - lld_lcdWriteReg(0x0037,0x0502); lcdDelay(5); - lld_lcdWriteReg(0x003A,0x0302); lcdDelay(5); - lld_lcdWriteReg(0x003B,0x0302); lcdDelay(5); - lld_lcdWriteReg(0x0023,0x0000); lcdDelay(5); - lld_lcdWriteReg(0x0024,0x0000); lcdDelay(5); - lld_lcdWriteReg(0x0025,0x8000); lcdDelay(5); - lld_lcdWriteReg(0x004f,0x0000); lcdDelay(5); - lld_lcdWriteReg(0x004e,0x0000); lcdDelay(5); + lld_lcdWriteReg(0x0000,0x0001); lld_lcdDelay(5); + lld_lcdWriteReg(0x0003,0xA8A4); lld_lcdDelay(5); + lld_lcdWriteReg(0x000C,0x0000); lld_lcdDelay(5); + lld_lcdWriteReg(0x000D,0x080C); lld_lcdDelay(5); + lld_lcdWriteReg(0x000E,0x2B00); lld_lcdDelay(5); + lld_lcdWriteReg(0x001E,0x00B0); lld_lcdDelay(5); + lld_lcdWriteReg(0x0001,0x2B3F); lld_lcdDelay(5); + lld_lcdWriteReg(0x0002,0x0600); lld_lcdDelay(5); + lld_lcdWriteReg(0x0010,0x0000); lld_lcdDelay(5); + lld_lcdWriteReg(0x0011,0x6070); lld_lcdDelay(5); + lld_lcdWriteReg(0x0005,0x0000); lld_lcdDelay(5); + lld_lcdWriteReg(0x0006,0x0000); lld_lcdDelay(5); + lld_lcdWriteReg(0x0016,0xEF1C); lld_lcdDelay(5); + lld_lcdWriteReg(0x0017,0x0003); lld_lcdDelay(5); + lld_lcdWriteReg(0x0007,0x0133); lld_lcdDelay(5); + lld_lcdWriteReg(0x000B,0x0000); lld_lcdDelay(5); + lld_lcdWriteReg(0x000F,0x0000); lld_lcdDelay(5); + lld_lcdWriteReg(0x0041,0x0000); lld_lcdDelay(5); + lld_lcdWriteReg(0x0042,0x0000); lld_lcdDelay(5); + lld_lcdWriteReg(0x0048,0x0000); lld_lcdDelay(5); + lld_lcdWriteReg(0x0049,0x013F); lld_lcdDelay(5); + lld_lcdWriteReg(0x004A,0x0000); lld_lcdDelay(5); + lld_lcdWriteReg(0x004B,0x0000); lld_lcdDelay(5); + lld_lcdWriteReg(0x0044,0xEF00); lld_lcdDelay(5); + lld_lcdWriteReg(0x0045,0x0000); lld_lcdDelay(5); + lld_lcdWriteReg(0x0046,0x013F); lld_lcdDelay(5); + lld_lcdWriteReg(0x0030,0x0707); lld_lcdDelay(5); + lld_lcdWriteReg(0x0031,0x0204); lld_lcdDelay(5); + lld_lcdWriteReg(0x0032,0x0204); lld_lcdDelay(5); + lld_lcdWriteReg(0x0033,0x0502); lld_lcdDelay(5); + lld_lcdWriteReg(0x0034,0x0507); lld_lcdDelay(5); + lld_lcdWriteReg(0x0035,0x0204); lld_lcdDelay(5); + lld_lcdWriteReg(0x0036,0x0204); lld_lcdDelay(5); + lld_lcdWriteReg(0x0037,0x0502); lld_lcdDelay(5); + lld_lcdWriteReg(0x003A,0x0302); lld_lcdDelay(5); + lld_lcdWriteReg(0x003B,0x0302); lld_lcdDelay(5); + lld_lcdWriteReg(0x0023,0x0000); lld_lcdDelay(5); + lld_lcdWriteReg(0x0024,0x0000); lld_lcdDelay(5); + lld_lcdWriteReg(0x0025,0x8000); lld_lcdDelay(5); + lld_lcdWriteReg(0x004f,0x0000); lld_lcdDelay(5); + lld_lcdWriteReg(0x004e,0x0000); lld_lcdDelay(5); } uint16_t lld_lcdGetOrientation(void) { -- cgit v1.2.3 From de71035ce4bab711d03514d3137b812f8634e405 Mon Sep 17 00:00:00 2001 From: Tectu Date: Sat, 23 Jun 2012 14:04:56 +0200 Subject: ssd1289 powermodes implemented (powerOn, powerOff, sleepOn, sleepOff) --- drivers/lcd/ssd1289_lld.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'drivers/lcd/ssd1289_lld.c') 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; } } -- cgit v1.2.3 From 89a597bfc475e8668e7a8c3849dab4f932a63383 Mon Sep 17 00:00:00 2001 From: Tectu Date: Sun, 24 Jun 2012 16:04:11 +0200 Subject: ssd1289 GPIO split into two 8-bit groups --- drivers/lcd/ssd1289_lld.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'drivers/lcd/ssd1289_lld.c') diff --git a/drivers/lcd/ssd1289_lld.c b/drivers/lcd/ssd1289_lld.c index 9f3303f9..86c8558f 100644 --- a/drivers/lcd/ssd1289_lld.c +++ b/drivers/lcd/ssd1289_lld.c @@ -11,7 +11,8 @@ static __inline void lld_lcdWriteIndex(uint16_t index) { Clr_RS; Set_RD; - palWritePort(LCD_DATA_PORT, index); + LCD_DATA_PORT_1->BSRR = (((~index >> 8) << 16) | (index >> 8) << LCD_DATA_PORT_1_BASE); + LCD_DATA_PORT_2->BSRR = (((~index & 0xFF) << 16) | (index & 0xFF) << LCD_DATA_PORT_2_BASE); Clr_WR; Set_WR; @@ -20,7 +21,8 @@ static __inline void lld_lcdWriteIndex(uint16_t index) { static __inline void lld_lcdWriteData(uint16_t data) { Set_RS; - palWritePort(LCD_DATA_PORT, data); + LCD_DATA_PORT_1->BSRR = (((~data >> 8) << 16) | (data >> 8) << LCD_DATA_PORT_1_BASE); + LCD_DATA_PORT_2->BSRR = (((~data & 0xFF) << 16) | (data & 0xFF) << LCD_DATA_PORT_2_BASE); Clr_WR; Set_WR; @@ -83,7 +85,8 @@ __inline void lld_lcdWriteStream(uint16_t *buffer, uint16_t size) { Set_RS; for(i = 0; i < size; i++) { - palWritePort(LCD_DATA_PORT, buffer[i]); + LCD_DATA_PORT_1->BSRR = (((~buffer[i] >> 8) << 16) | (buffer[i] >> 8) << LCD_DATA_PORT_1_BASE); + LCD_DATA_PORT_2->BSRR = (((~buffer[i] & 0xFF) << 16) | (buffer[i] & 0xFF) << LCD_DATA_PORT_2_BASE); Clr_WR; Set_WR; } -- cgit v1.2.3 From 73e0021db2fc2a92d4d79129ba5af058e7c85c68 Mon Sep 17 00:00:00 2001 From: Tectu Date: Sun, 24 Jun 2012 16:44:58 +0200 Subject: implemented lld_lcdWriteGPIO() for SSD1289 --- drivers/lcd/ssd1289_lld.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'drivers/lcd/ssd1289_lld.c') diff --git a/drivers/lcd/ssd1289_lld.c b/drivers/lcd/ssd1289_lld.c index 86c8558f..f9fa0cfd 100644 --- a/drivers/lcd/ssd1289_lld.c +++ b/drivers/lcd/ssd1289_lld.c @@ -7,12 +7,17 @@ uint16_t DeviceCode; extern uint16_t lcd_width, lcd_height; #ifdef LCD_USE_GPIO + +static __inline lld_lcdWriteGPIO(uint16_t d) { + LCD_DATA_PORT_1->BSRR = (((~d >> 8) << 16) | (d >> 8) << LCD_DATA_PORT_1_BASE); + LCD_DATA_PORT_2->BSRR = (((~d & 0xFF) << 16) | (d & 0xFF) << LCD_DATA_PORT_2_BASE); +} + static __inline void lld_lcdWriteIndex(uint16_t index) { Clr_RS; Set_RD; - LCD_DATA_PORT_1->BSRR = (((~index >> 8) << 16) | (index >> 8) << LCD_DATA_PORT_1_BASE); - LCD_DATA_PORT_2->BSRR = (((~index & 0xFF) << 16) | (index & 0xFF) << LCD_DATA_PORT_2_BASE); + lld_lcdWriteGPIO(index); Clr_WR; Set_WR; @@ -21,8 +26,7 @@ static __inline void lld_lcdWriteIndex(uint16_t index) { static __inline void lld_lcdWriteData(uint16_t data) { Set_RS; - LCD_DATA_PORT_1->BSRR = (((~data >> 8) << 16) | (data >> 8) << LCD_DATA_PORT_1_BASE); - LCD_DATA_PORT_2->BSRR = (((~data & 0xFF) << 16) | (data & 0xFF) << LCD_DATA_PORT_2_BASE); + lld_lcdWriteGPIO(data); Clr_WR; Set_WR; @@ -85,8 +89,7 @@ __inline void lld_lcdWriteStream(uint16_t *buffer, uint16_t size) { Set_RS; for(i = 0; i < size; i++) { - LCD_DATA_PORT_1->BSRR = (((~buffer[i] >> 8) << 16) | (buffer[i] >> 8) << LCD_DATA_PORT_1_BASE); - LCD_DATA_PORT_2->BSRR = (((~buffer[i] & 0xFF) << 16) | (buffer[i] & 0xFF) << LCD_DATA_PORT_2_BASE); + lld_lcdWriteGPIO(buffer[i]); Clr_WR; Set_WR; } -- cgit v1.2.3 From ed70b3acc48e16f9c7640ef95152ea6037901e8e Mon Sep 17 00:00:00 2001 From: Tectu Date: Sun, 24 Jun 2012 17:37:33 +0200 Subject: ssd1289 GPIO interface abstraction --- drivers/lcd/ssd1289_lld.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'drivers/lcd/ssd1289_lld.c') diff --git a/drivers/lcd/ssd1289_lld.c b/drivers/lcd/ssd1289_lld.c index f9fa0cfd..d1d34310 100644 --- a/drivers/lcd/ssd1289_lld.c +++ b/drivers/lcd/ssd1289_lld.c @@ -9,8 +9,10 @@ extern uint16_t lcd_width, lcd_height; #ifdef LCD_USE_GPIO static __inline lld_lcdWriteGPIO(uint16_t d) { - LCD_DATA_PORT_1->BSRR = (((~d >> 8) << 16) | (d >> 8) << LCD_DATA_PORT_1_BASE); - LCD_DATA_PORT_2->BSRR = (((~d & 0xFF) << 16) | (d & 0xFF) << LCD_DATA_PORT_2_BASE); + LCD_DATA_PORT_1->BSRR = ((((~d >> 12 & 0xF) << 16) | (d >> 12 & 0xF)) << LCD_DATA_PORT_1_BASE); + LCD_DATA_PORT_2->BSRR = ((((~d >> 8 & 0xF) << 16) | (d >> 8 & 0xF)) << LCD_DATA_PORT_2_BASE); + LCD_DATA_PORT_3->BSRR = ((((~d >> 4 & 0xF) << 16) | (d >> 4 & 0xF)) << LCD_DATA_PORT_3_BASE); + LCD_DATA_PORT_4->BSRR = ((((~d >> 0 & 0xF) << 16) | (d >> 0 & 0xF)) << LCD_DATA_PORT_4_BASE); } static __inline void lld_lcdWriteIndex(uint16_t index) { -- cgit v1.2.3 From 84c868d5f5ae60b893441cb9f2b8b10f2ac8034b Mon Sep 17 00:00:00 2001 From: Tectu Date: Mon, 25 Jun 2012 11:32:41 +0200 Subject: lld_lcdWriteGPIO() return type --- drivers/lcd/ssd1289_lld.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'drivers/lcd/ssd1289_lld.c') diff --git a/drivers/lcd/ssd1289_lld.c b/drivers/lcd/ssd1289_lld.c index d1d34310..e0d7fb28 100644 --- a/drivers/lcd/ssd1289_lld.c +++ b/drivers/lcd/ssd1289_lld.c @@ -8,7 +8,7 @@ extern uint16_t lcd_width, lcd_height; #ifdef LCD_USE_GPIO -static __inline lld_lcdWriteGPIO(uint16_t d) { +static __inline void lld_lcdWriteGPIO(uint16_t d) { LCD_DATA_PORT_1->BSRR = ((((~d >> 12 & 0xF) << 16) | (d >> 12 & 0xF)) << LCD_DATA_PORT_1_BASE); LCD_DATA_PORT_2->BSRR = ((((~d >> 8 & 0xF) << 16) | (d >> 8 & 0xF)) << LCD_DATA_PORT_2_BASE); LCD_DATA_PORT_3->BSRR = ((((~d >> 4 & 0xF) << 16) | (d >> 4 & 0xF)) << LCD_DATA_PORT_3_BASE); -- cgit v1.2.3 From 9e5cd3140a56c3097b62029994cc33216e823c36 Mon Sep 17 00:00:00 2001 From: Tectu Date: Mon, 25 Jun 2012 12:34:38 +0200 Subject: ssd1289 driver fix --- drivers/lcd/ssd1289_lld.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'drivers/lcd/ssd1289_lld.c') diff --git a/drivers/lcd/ssd1289_lld.c b/drivers/lcd/ssd1289_lld.c index e0d7fb28..9992ec93 100644 --- a/drivers/lcd/ssd1289_lld.c +++ b/drivers/lcd/ssd1289_lld.c @@ -9,10 +9,10 @@ extern uint16_t lcd_width, lcd_height; #ifdef LCD_USE_GPIO static __inline void lld_lcdWriteGPIO(uint16_t d) { - LCD_DATA_PORT_1->BSRR = ((((~d >> 12 & 0xF) << 16) | (d >> 12 & 0xF)) << LCD_DATA_PORT_1_BASE); - LCD_DATA_PORT_2->BSRR = ((((~d >> 8 & 0xF) << 16) | (d >> 8 & 0xF)) << LCD_DATA_PORT_2_BASE); - LCD_DATA_PORT_3->BSRR = ((((~d >> 4 & 0xF) << 16) | (d >> 4 & 0xF)) << LCD_DATA_PORT_3_BASE); - LCD_DATA_PORT_4->BSRR = ((((~d >> 0 & 0xF) << 16) | (d >> 0 & 0xF)) << LCD_DATA_PORT_4_BASE); + palWriteGroup(LCD_DATA_PORT_1, PAL_GROUP_MASK(4), LCD_DATA_PORT_1_BASE, d >> 12); + palWriteGroup(LCD_DATA_PORT_2, PAL_GROUP_MASK(4), LCD_DATA_PORT_2_BASE, d >> 8); + palWriteGroup(LCD_DATA_PORT_3, PAL_GROUP_MASK(4), LCD_DATA_PORT_3_BASE, d >> 4); + palWriteGroup(LCD_DATA_PORT_4, PAL_GROUP_MASK(4), LCD_DATA_PORT_4_BASE, d >> 0); } static __inline void lld_lcdWriteIndex(uint16_t index) { -- cgit v1.2.3 From ccf2780be97616371395c974f1f59d1f664e32af Mon Sep 17 00:00:00 2001 From: Tectu Date: Mon, 25 Jun 2012 12:44:35 +0200 Subject: lld GPIO lsb/msb order fix --- drivers/lcd/ssd1289_lld.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'drivers/lcd/ssd1289_lld.c') diff --git a/drivers/lcd/ssd1289_lld.c b/drivers/lcd/ssd1289_lld.c index 9992ec93..5d5184a5 100644 --- a/drivers/lcd/ssd1289_lld.c +++ b/drivers/lcd/ssd1289_lld.c @@ -9,10 +9,10 @@ extern uint16_t lcd_width, lcd_height; #ifdef LCD_USE_GPIO static __inline void lld_lcdWriteGPIO(uint16_t d) { - palWriteGroup(LCD_DATA_PORT_1, PAL_GROUP_MASK(4), LCD_DATA_PORT_1_BASE, d >> 12); - palWriteGroup(LCD_DATA_PORT_2, PAL_GROUP_MASK(4), LCD_DATA_PORT_2_BASE, d >> 8); - palWriteGroup(LCD_DATA_PORT_3, PAL_GROUP_MASK(4), LCD_DATA_PORT_3_BASE, d >> 4); - palWriteGroup(LCD_DATA_PORT_4, PAL_GROUP_MASK(4), LCD_DATA_PORT_4_BASE, d >> 0); + palWriteGroup(LCD_DATA_PORT_1, PAL_GROUP_MASK(4), LCD_DATA_PORT_1_BASE, d >> 0); + palWriteGroup(LCD_DATA_PORT_2, PAL_GROUP_MASK(4), LCD_DATA_PORT_2_BASE, d >> 4); + palWriteGroup(LCD_DATA_PORT_3, PAL_GROUP_MASK(4), LCD_DATA_PORT_3_BASE, d >> 8); + palWriteGroup(LCD_DATA_PORT_4, PAL_GROUP_MASK(4), LCD_DATA_PORT_4_BASE, d >> 12); } static __inline void lld_lcdWriteIndex(uint16_t index) { -- cgit v1.2.3 From 484daa395a7b74692657730b4f487e58b2e231fd Mon Sep 17 00:00:00 2001 From: Tectu Date: Mon, 25 Jun 2012 13:02:54 +0200 Subject: GPIO interfacing rewrite --- drivers/lcd/ssd1289_lld.c | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) (limited to 'drivers/lcd/ssd1289_lld.c') diff --git a/drivers/lcd/ssd1289_lld.c b/drivers/lcd/ssd1289_lld.c index 5d5184a5..033114cf 100644 --- a/drivers/lcd/ssd1289_lld.c +++ b/drivers/lcd/ssd1289_lld.c @@ -8,13 +8,6 @@ extern uint16_t lcd_width, lcd_height; #ifdef LCD_USE_GPIO -static __inline void lld_lcdWriteGPIO(uint16_t d) { - palWriteGroup(LCD_DATA_PORT_1, PAL_GROUP_MASK(4), LCD_DATA_PORT_1_BASE, d >> 0); - palWriteGroup(LCD_DATA_PORT_2, PAL_GROUP_MASK(4), LCD_DATA_PORT_2_BASE, d >> 4); - palWriteGroup(LCD_DATA_PORT_3, PAL_GROUP_MASK(4), LCD_DATA_PORT_3_BASE, d >> 8); - palWriteGroup(LCD_DATA_PORT_4, PAL_GROUP_MASK(4), LCD_DATA_PORT_4_BASE, d >> 12); -} - static __inline void lld_lcdWriteIndex(uint16_t index) { Clr_RS; Set_RD; @@ -48,16 +41,7 @@ static __inline uint16_t lld_lcdReadData(void) { Set_WR; Clr_RD; - // change pin mode to digital input - LCD_DATA_PORT->CRH = 0x44444444; - LCD_DATA_PORT->CRL = 0x44444444; - - value = palReadPort(LCD_DATA_PORT); // dummy - value = palReadPort(LCD_DATA_PORT); - - // change pin mode back to digital output - LCD_DATA_PORT->CRH = 0x33333333; - LCD_DATA_PORT->CRL = 0x33333333; + value = lld_lcdReadGPIO(LCD_DATA_PORT); Set_RD; -- cgit v1.2.3 From bea97894b50f6cbb4fa4b3c0cafa256c7c85d91b Mon Sep 17 00:00:00 2001 From: Tectu Date: Mon, 25 Jun 2012 13:20:58 +0200 Subject: whitespaces --- drivers/lcd/ssd1289_lld.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'drivers/lcd/ssd1289_lld.c') diff --git a/drivers/lcd/ssd1289_lld.c b/drivers/lcd/ssd1289_lld.c index 033114cf..9065db9a 100644 --- a/drivers/lcd/ssd1289_lld.c +++ b/drivers/lcd/ssd1289_lld.c @@ -29,8 +29,10 @@ static __inline void lld_lcdWriteData(uint16_t data) { static __inline void lld_lcdWriteReg(uint16_t lcdReg,uint16_t lcdRegValue) { Clr_CS; + lld_lcdWriteIndex(lcdReg); lld_lcdWriteData(lcdRegValue); + Set_CS; } @@ -62,6 +64,7 @@ static __inline uint16_t lld_lcdReadReg(uint16_t lcdReg) { __inline void lld_lcdWriteStreamStart(void) { Clr_CS + lld_lcdWriteIndex(0x0022); } -- cgit v1.2.3 From a52393a483e29928770c8ea127c500f650e04c19 Mon Sep 17 00:00:00 2001 From: Tectu Date: Mon, 25 Jun 2012 13:44:29 +0200 Subject: ssd1289 fix --- drivers/lcd/ssd1289_lld.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'drivers/lcd/ssd1289_lld.c') diff --git a/drivers/lcd/ssd1289_lld.c b/drivers/lcd/ssd1289_lld.c index 9065db9a..6b199df6 100644 --- a/drivers/lcd/ssd1289_lld.c +++ b/drivers/lcd/ssd1289_lld.c @@ -43,7 +43,7 @@ static __inline uint16_t lld_lcdReadData(void) { Set_WR; Clr_RD; - value = lld_lcdReadGPIO(LCD_DATA_PORT); + value = lld_lcdReadGPIO(); Set_RD; -- cgit v1.2.3