Loading...
Searching...
No Matches
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
24
25#include "board.h"
26#include "lcd.h"
27#include "st7735_params.h"
28
29#ifdef __cplusplus
30extern "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 */
219
223#ifndef ST77XX_PARAM_SCREEN_IDS
224#define ST77XX_PARAM_SCREEN_IDS 0
225#endif
226
231{
233};
234
238static 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