You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by ac...@apache.org on 2021/09/17 12:46:24 UTC
[incubator-nuttx] branch master updated: lcd/st77xx: change 16 bit
cmd send to 8 bit
This is an automated email from the ASF dual-hosted git repository.
acassis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git
The following commit(s) were added to refs/heads/master by this push:
new ea6955f lcd/st77xx: change 16 bit cmd send to 8 bit
ea6955f is described below
commit ea6955f77b4ec9ffb3797a278674d231bdf93290
Author: Peter Bee <bi...@xiaomi.com>
AuthorDate: Fri Sep 17 14:49:19 2021 +0800
lcd/st77xx: change 16 bit cmd send to 8 bit
Make sending commands independent of processor endianness. The data can
be handled by application side, such as LVGL has SWAP16 option.
Signed-off-by: Peter Bee <bi...@xiaomi.com>
---
drivers/lcd/gc9a01.c | 16 ++++++++++------
drivers/lcd/st7735.c | 16 ++++++++++------
drivers/lcd/st7789.c | 18 +++++++++++-------
3 files changed, 31 insertions(+), 19 deletions(-)
diff --git a/drivers/lcd/gc9a01.c b/drivers/lcd/gc9a01.c
index 6f8de70..84ac24a 100644
--- a/drivers/lcd/gc9a01.c
+++ b/drivers/lcd/gc9a01.c
@@ -482,17 +482,21 @@ static void gc9a01_setarea(FAR struct gc9a01_dev_s *dev,
/* Set row address */
gc9a01_sendcmd(dev, GC9A01_RASET);
- gc9a01_select(dev->spi, 16);
- SPI_SEND(dev->spi, y0 + GC9A01_YOFFSET);
- SPI_SEND(dev->spi, y1 + GC9A01_YOFFSET);
+ gc9a01_select(dev->spi, 8);
+ SPI_SEND(dev->spi, (y0 + GC9A01_YOFFSET) >> 8);
+ SPI_SEND(dev->spi, (y0 + GC9A01_YOFFSET) & 0xff);
+ SPI_SEND(dev->spi, (y1 + GC9A01_YOFFSET) >> 8);
+ SPI_SEND(dev->spi, (y1 + GC9A01_YOFFSET) & 0xff);
gc9a01_deselect(dev->spi);
/* Set column address */
gc9a01_sendcmd(dev, GC9A01_CASET);
- gc9a01_select(dev->spi, 16);
- SPI_SEND(dev->spi, x0 + GC9A01_XOFFSET);
- SPI_SEND(dev->spi, x1 + GC9A01_XOFFSET);
+ gc9a01_select(dev->spi, 8);
+ SPI_SEND(dev->spi, (x0 + GC9A01_XOFFSET) >> 8);
+ SPI_SEND(dev->spi, (x0 + GC9A01_XOFFSET) & 0xff);
+ SPI_SEND(dev->spi, (x1 + GC9A01_XOFFSET) >> 8);
+ SPI_SEND(dev->spi, (x1 + GC9A01_XOFFSET) & 0xff);
gc9a01_deselect(dev->spi);
}
diff --git a/drivers/lcd/st7735.c b/drivers/lcd/st7735.c
index b3b7eed..8824fd1 100644
--- a/drivers/lcd/st7735.c
+++ b/drivers/lcd/st7735.c
@@ -405,17 +405,21 @@ static void st7735_setarea(FAR struct st7735_dev_s *dev,
/* Set row address */
st7735_sendcmd(dev, ST7735_RASET);
- st7735_select(dev->spi, 16);
- SPI_SEND(dev->spi, y0 + ST7735_YOFFSET);
- SPI_SEND(dev->spi, y1 + ST7735_YOFFSET);
+ st7735_select(dev->spi, 8);
+ SPI_SEND(dev->spi, (y0 + ST7735_YOFFSET) >> 8);
+ SPI_SEND(dev->spi, (y0 + ST7735_YOFFSET) & 0xff);
+ SPI_SEND(dev->spi, (y1 + ST7735_YOFFSET) >> 8);
+ SPI_SEND(dev->spi, (y1 + ST7735_YOFFSET) & 0xff);
st7735_deselect(dev->spi);
/* Set column address */
st7735_sendcmd(dev, ST7735_CASET);
- st7735_select(dev->spi, 16);
- SPI_SEND(dev->spi, x0 + ST7735_XOFFSET);
- SPI_SEND(dev->spi, x1 + ST7735_XOFFSET);
+ st7735_select(dev->spi, 8);
+ SPI_SEND(dev->spi, (x0 + ST7735_XOFFSET) >> 8);
+ SPI_SEND(dev->spi, (x0 + ST7735_XOFFSET) & 0xff);
+ SPI_SEND(dev->spi, (x1 + ST7735_XOFFSET) >> 8);
+ SPI_SEND(dev->spi, (x1 + ST7735_XOFFSET) & 0xff);
st7735_deselect(dev->spi);
}
diff --git a/drivers/lcd/st7789.c b/drivers/lcd/st7789.c
index a9e519e..e4eb394 100644
--- a/drivers/lcd/st7789.c
+++ b/drivers/lcd/st7789.c
@@ -300,7 +300,7 @@ static void st7789_deselect(FAR struct spi_dev_s *spi)
static inline void st7789_sendcmd(FAR struct st7789_dev_s *dev, uint8_t cmd)
{
- st7789_select(dev->spi, ST7789_BYTESPP * 8);
+ st7789_select(dev->spi, 8);
SPI_CMDDATA(dev->spi, SPIDEV_DISPLAY(0), true);
SPI_SEND(dev->spi, cmd);
SPI_CMDDATA(dev->spi, SPIDEV_DISPLAY(0), false);
@@ -386,17 +386,21 @@ static void st7789_setarea(FAR struct st7789_dev_s *dev,
/* Set row address */
st7789_sendcmd(dev, ST7789_RASET);
- st7789_select(dev->spi, 16);
- SPI_SEND(dev->spi, y0 + ST7789_YOFFSET);
- SPI_SEND(dev->spi, y1 + ST7789_YOFFSET);
+ st7789_select(dev->spi, 8);
+ SPI_SEND(dev->spi, (y0 + ST7789_YOFFSET) >> 8);
+ SPI_SEND(dev->spi, (y0 + ST7789_YOFFSET) & 0xff);
+ SPI_SEND(dev->spi, (y1 + ST7789_YOFFSET) >> 8);
+ SPI_SEND(dev->spi, (y1 + ST7789_YOFFSET) & 0xff);
st7789_deselect(dev->spi);
/* Set column address */
st7789_sendcmd(dev, ST7789_CASET);
- st7789_select(dev->spi, 16);
- SPI_SEND(dev->spi, x0 + ST7789_XOFFSET);
- SPI_SEND(dev->spi, x1 + ST7789_XOFFSET);
+ st7789_select(dev->spi, 8);
+ SPI_SEND(dev->spi, (x0 + ST7789_XOFFSET) >> 8);
+ SPI_SEND(dev->spi, (x0 + ST7789_XOFFSET) & 0xff);
+ SPI_SEND(dev->spi, (x1 + ST7789_XOFFSET) >> 8);
+ SPI_SEND(dev->spi, (x1 + ST7789_XOFFSET) & 0xff);
st7789_deselect(dev->spi);
}