drivers/lcd: Add support for the ST7735 TFT controller.

This commit is contained in:
Ouss4
2020-06-21 14:13:32 -06:00
committed by patacongo
parent a09f88c4a6
commit bd82486f1c
5 changed files with 837 additions and 1 deletions
+27 -1
View File
@@ -55,7 +55,7 @@ config LCD_EXTERNINIT
depends on LCD_FRAMEBUFFER
---help---
Define to support external LCD initialization by platform-specific
code. This this option is defined, then the LCD framebuffer
code. If this option is defined, then the LCD framebuffer
emulation will call board_graphics_setup() to initialize the
graphics device. This option is necessary if display is used that
cannot be initialized using the standard LCD interfaces.
@@ -574,6 +574,32 @@ config SSD1351_MSTRCONTRAST
endif
config LCD_ST7735
bool "Sitronix ST7735 TFT Controller"
default n
if LCD_ST7735
config LCD_ST7735_GM00
bool "132x162 Display Resolution"
default n
---help---
Two resolutions are availabe, either the 132x162 or
the 128x160
config LCD_ST7735_BPP
int "Bit Per Pixel (12, 16 or 18)"
default 16
config LCD_ST7735_SPIMODE
int "SPI Mode"
default 0
config LCD_ST7735_FREQUENCY
int "SPI Frequency"
default 3000000
endif # LCD_ST7735
config LCD_PCD8544
bool "Nokia 5110 LCD Display (Philips PCD8544)"
default n
+5
View File
@@ -131,6 +131,11 @@ endif
ifeq ($(CONFIG_LCD_RA8875),y)
CSRCS += ra8875.c
endif
ifeq ($(CONFIG_LCD_ST7735),y)
CSRCS += st7735.c
endif
endif # CONFIG_LCD
ifeq ($(CONFIG_SLCD),y)
File diff suppressed because it is too large Load Diff
+53
View File
@@ -0,0 +1,53 @@
/**************************************************************************************
* drivers/lcd/st7735.h
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership. The
* ASF licenses this file to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*
**************************************************************************************/
#ifndef __DRIVERS_LCD_ST7735_H
#define __DRIVERS_LCD_ST7735_H
/**************************************************************************************
* Included Files
**************************************************************************************/
/**************************************************************************************
* Pre-processor Definitions
**************************************************************************************/
#define ST7735_NOP 0x00 /* No Operation */
#define ST7735_SWRESET 0x01 /* Software Reset */
#define ST7735_RDDID 0x04 /* Read Display ID */
#define ST7735_RDDST 0x09 /* Read Display Status */
#define ST7735_RDDPM 0x0a /* Read Display Power */
#define ST7735_SLPIN 0x10 /* Sleep In & Booster Off */
#define ST7735_SLPOUT 0x11 /* Sleep Out & Booster On */
#define ST7735_PTLON 0x12 /* Partial Mode On */
#define ST7735_NORON 0x13 /* Partial Mode Off */
#define ST7735_INVOFF 0x20 /* Display Inversion Off */
#define ST7735_INVON 0x21 /* Display Inversion On */
#define ST7735_DISPOFF 0x28 /* Display Off */
#define ST7735_DISPON 0x29 /* Display On */
#define ST7735_CASET 0x2a /* Column Address Set */
#define ST7735_RASET 0x2b /* Row Address Set */
#define ST7735_RAMWR 0x2c /* Memory Write */
#define ST7735_RAMRD 0x2e /* Memory Read */
#define ST7735_IDMOFF 0x38 /* Idle Mode Off */
#define ST7735_IDMON 0x39 /* Idle Mode On */
#define ST7735_COLMOD 0x3a /* Interface Pixel Format */
#endif /* __DRIVERS_LCD_ST7735_H */
+72
View File
@@ -0,0 +1,72 @@
/****************************************************************************
* include/nuttx/lcd/st7735.h
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership. The
* ASF licenses this file to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*
****************************************************************************/
#ifndef __INCLUDE_NUTTX_ST7735_H
#define __INCLUDE_NUTTX_ST7735_H
/****************************************************************************
* Included Files
****************************************************************************/
#include <stdbool.h>
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
/****************************************************************************
* Public Types
****************************************************************************/
/****************************************************************************
* Public Data
****************************************************************************/
#ifdef __cplusplus
extern "C"
{
#endif
/****************************************************************************
* Public Function Prototypes
****************************************************************************/
/****************************************************************************
* Name: st7735_initialize
*
* Description:
* Initialize the ST7735 video hardware. The initial state of the
* LCD is fully initialized, display memory cleared, and the LCD ready
* to use, but with the power setting at 0 (full off == sleep mode).
*
* Returned Value:
*
* On success, this function returns a reference to the LCD object for
* the specified LCD. NULL is returned on any failure.
*
****************************************************************************/
FAR struct lcd_dev_s *st7735_lcdinitialize(FAR struct spi_dev_s *spi);
#ifdef __cplusplus
}
#endif
#endif /* __INCLUDE_NUTTX_ST7735_H */