st77xx_params.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2018 Koen Zandberg <koen@bergzand.net>
3  * 2021 Francisco Molina
4  * 2023 Gunar Schorcht
5  *
6  * This file is subject to the terms and conditions of the GNU Lesser
7  * General Public License v2.1. See the file LICENSE in the top level
8  * directory for more details.
9  */
10 
11 #pragma once
12 
25 #include "board.h"
26 #include "lcd.h"
27 #include "st7735_params.h"
28 
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32 
33 #if !DOXYGEN /* hide from documentation */
44 #ifdef ST7735_PARAM_SPI
45 #define ST77XX_PARAM_SPI ST7735_PARAM_SPI
46 #endif
47 #ifdef ST7735_PARAM_SPI_CLK
48 #define ST77XX_PARAM_SPI_CLK ST7735_PARAM_SPI_CLK
49 #endif
50 #ifdef ST7735_PARAM_CS
51 #define ST77XX_PARAM_CS ST7735_PARAM_CS
52 #endif
53 #ifdef ST7735_PARAM_DCX
54 #define ST77XX_PARAM_DCX ST7735_PARAM_DCX
55 #endif
56 #ifdef ST7735_PARAM_RST
57 #define ST77XX_PARAM_RST ST7735_PARAM_RST
58 #endif
59 #ifdef ST7735_PARAM_SPI_MODE
60 #define ST77XX_PARAM_SPI_MODE ST7735_PARAM_SPI_MODE
61 #endif
62 #ifdef ST7735_PARAM_RGB
63 #define ST77XX_PARAM_RGB ST7735_PARAM_RGB
64 #endif
65 #ifdef ST7735_PARAM_INVERTED
66 #define ST77XX_PARAM_INVERTED ST7735_PARAM_INVERTED
67 #endif
68 #ifdef ST7735_PARAM_NUM_LINES
69 #define ST77XX_PARAM_NUM_LINES ST7735_PARAM_NUM_LINES
70 #endif
71 #ifdef ST7735_PARAM_RGB_CHANNELS
72 #define ST77XX_PARAM_RGB_CHANNELS ST7735_PARAM_RGB_CHANNELS
73 #endif
74 #ifdef ST7735_PARAM_ROTATION
75 #define ST77XX_PARAM_ROTATION ST7735_PARAM_ROTATION
76 #endif
77 #ifdef ST7735_PARAM_OFFSET_X
78 #define ST77XX_PARAM_OFFSET_X ST7735_PARAM_OFFSET_X
79 #endif
80 #ifdef ST7735_PARAM_OFFSET_Y
81 #define ST77XX_PARAM_OFFSET_Y ST7735_PARAM_OFFSET_Y
82 #endif
83 #ifdef ST7735_PARAMS
84 #define ST77XX_PARAMS ST7735_PARAMS
85 #endif
86 #ifdef ST7735_PARAM_SCREEN_IDS
87 #define ST77XX_PARAM_SCREEN_IDS ST7735_PARAM_SCREEN_IDS
88 #endif
89 
90 #endif /* !DOXYGEN */
91 
96 #ifndef ST77XX_PARAM_CNTRL
97 #define ST77XX_PARAM_CNTRL ST77XX_CNTRL_ST7735
98 #endif
99 #ifndef ST77XX_PARAM_SPI
100 #define ST77XX_PARAM_SPI SPI_DEV(0)
101 #endif
102 #ifndef ST77XX_PARAM_SPI_CLK
103 #define ST77XX_PARAM_SPI_CLK SPI_CLK_5MHZ
104 #endif
105 #ifndef ST77XX_PARAM_CS
106 #define ST77XX_PARAM_CS GPIO_PIN(2, 2)
107 #endif
108 #ifndef ST77XX_PARAM_DCX
109 #define ST77XX_PARAM_DCX GPIO_PIN(3, 13)
110 #endif
111 #ifndef ST77XX_PARAM_RST
112 #define ST77XX_PARAM_RST GPIO_UNDEF
113 #endif
114 #ifndef ST77XX_PARAM_SPI_MODE
115 #define ST77XX_PARAM_SPI_MODE SPI_MODE_0
116 #endif
117 #ifndef ST77XX_PARAM_RGB
118 #define ST77XX_PARAM_RGB 0
119 #endif
120 #ifndef ST77XX_PARAM_INVERTED
121 #define ST77XX_PARAM_INVERTED 0
122 #endif
123 #ifndef ST77XX_PARAM_NUM_LINES
124 #define ST77XX_PARAM_NUM_LINES 160U
125 #endif
126 #ifndef ST77XX_PARAM_RGB_CHANNELS
127 #define ST77XX_PARAM_RGB_CHANNELS 128U
128 #endif
129 #ifndef ST77XX_PARAM_ROTATION
130 #define ST77XX_PARAM_ROTATION ST77XX_ROTATION_HORZ
131 #endif
132 #ifndef ST77XX_PARAM_OFFSET_X
133 #define ST77XX_PARAM_OFFSET_X 0
134 #endif
135 #ifndef ST77XX_PARAM_OFFSET_Y
136 #define ST77XX_PARAM_OFFSET_Y 0
137 #endif
138 
139 #if MODULE_LCD_SPI || DOXYGEN
141 #define ST77XX_PARAM_IF_SPI .spi = ST77XX_PARAM_SPI, \
142  .spi_clk = ST77XX_PARAM_SPI_CLK, \
143  .spi_mode = ST77XX_PARAM_SPI_MODE,
144 #else
145 #define ST77XX_PARAM_IF_SPI
146 #endif
147 
148 #if MODULE_LCD_PARALLEL || DOXYGEN
150 #define ST77XX_PARAM_IF_PAR .d0_pin = ST77XX_PARAM_D0, \
151  .d1_pin = ST77XX_PARAM_D1, \
152  .d2_pin = ST77XX_PARAM_D2, \
153  .d3_pin = ST77XX_PARAM_D3, \
154  .d4_pin = ST77XX_PARAM_D4, \
155  .d5_pin = ST77XX_PARAM_D5, \
156  .d6_pin = ST77XX_PARAM_D6, \
157  .d7_pin = ST77XX_PARAM_D7, \
158  .wrx_pin = ST77XX_PARAM_WRX, \
159  .rdx_pin = ST77XX_PARAM_RDX,
160 #else
161 #define ST77XX_PARAM_IF_PAR
162 #endif
163 
164 #if MODULE_LCD_PARALLEL_16BIT || DOXYGEN
166 #define ST77XX_PARAM_IF_PAR_16BIT .d8_pin = ST77XX_PARAM_D8, \
167  .d9_pin = ST77XX_PARAM_D9, \
168  .d10_pin = ST77XX_PARAM_D10, \
169  .d11_pin = ST77XX_PARAM_D11, \
170  .d12_pin = ST77XX_PARAM_D12, \
171  .d13_pin = ST77XX_PARAM_D13, \
172  .d14_pin = ST77XX_PARAM_D14, \
173  .d15_pin = ST77XX_PARAM_D15,
174 #else
175 #define ST77XX_PARAM_IF_PAR_16BIT
176 #endif
177 
178 #if MODULE_LCD_PARALLEL_16BIT || DOXYGEN
180 #define ST77XX_PARAM_IF_MODE .mode = LCD_IF_PARALLEL_16BIT,
181 #elif MODULE_LCD_PARALLEL
183 #define ST77XX_PARAM_IF_MODE .mode = LCD_IF_PARALLEL_8BIT,
184 #else
186 #define ST77XX_PARAM_IF_MODE
187 #endif
188 
200 #ifndef ST77XX_PARAMS
201 #define ST77XX_PARAMS { ST77XX_PARAM_IF_MODE \
202  ST77XX_PARAM_IF_SPI \
203  ST77XX_PARAM_IF_PAR \
204  ST77XX_PARAM_IF_PAR_16BIT \
205  .cs_pin = ST77XX_PARAM_CS, \
206  .dcx_pin = ST77XX_PARAM_DCX, \
207  .rst_pin = ST77XX_PARAM_RST, \
208  .rgb = ST77XX_PARAM_RGB, \
209  .inverted = ST77XX_PARAM_INVERTED, \
210  .lines = ST77XX_PARAM_NUM_LINES, \
211  .rgb_channels = ST77XX_PARAM_RGB_CHANNELS, \
212  .rotation = ST77XX_PARAM_ROTATION, \
213  .offset_x = ST77XX_PARAM_OFFSET_X, \
214  .offset_y = ST77XX_PARAM_OFFSET_Y, \
215  .cntrl = ST77XX_PARAM_CNTRL, \
216  }
217 #endif /* ST77XX_PARAMS */
223 #ifndef ST77XX_PARAM_SCREEN_IDS
224 #define ST77XX_PARAM_SCREEN_IDS 0
225 #endif
226 
230 static const lcd_params_t st77xx_params[] =
231 {
233 };
234 
238 static const uint8_t st77xx_screen_ids[] =
239 {
241 };
242 
246 #define ST77XX_NUMOF ARRAY_SIZE(st77xx_params)
250 #define ST77XX_SCREEN_NUMOF ARRAY_SIZE(st77xx_screen_ids)
251 
252 #ifdef __cplusplus
253 }
254 #endif
255 
static const lcd_params_t st77xx_params[]
Configure LCD.
static const uint8_t st77xx_screen_ids[]
Configure screen identifiers.
#define ST77XX_PARAM_SCREEN_IDS
Default screen identifiers.
#define ST77XX_PARAMS
Default params.
Device initialization parameters.
Definition: lcd.h:112