Zephyr API Documentation  2.7.0-rc2
A Scalable Open Source RTOS
display.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2017 Jan Van Winkel <jan.van_winkel@dxplore.eu>
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
12#ifndef ZEPHYR_INCLUDE_DRIVERS_DISPLAY_H_
13#define ZEPHYR_INCLUDE_DRIVERS_DISPLAY_H_
14
22#include <device.h>
23#include <stddef.h>
24#include <zephyr/types.h>
25
26#ifdef __cplusplus
27extern "C" {
28#endif
29
40 PIXEL_FORMAT_MONO01 = BIT(1), /* 0=Black 1=White */
41 PIXEL_FORMAT_MONO10 = BIT(2), /* 1=Black 0=White */
45};
46
70};
71
82};
83
98};
99
110};
111
117typedef int (*display_blanking_on_api)(const struct device *dev);
118
124typedef int (*display_blanking_off_api)(const struct device *dev);
125
131typedef int (*display_write_api)(const struct device *dev, const uint16_t x,
132 const uint16_t y,
133 const struct display_buffer_descriptor *desc,
134 const void *buf);
135
141typedef int (*display_read_api)(const struct device *dev, const uint16_t x,
142 const uint16_t y,
143 const struct display_buffer_descriptor *desc,
144 void *buf);
145
151typedef void *(*display_get_framebuffer_api)(const struct device *dev);
152
158typedef int (*display_set_brightness_api)(const struct device *dev,
159 const uint8_t brightness);
160
166typedef int (*display_set_contrast_api)(const struct device *dev,
167 const uint8_t contrast);
168
174typedef void (*display_get_capabilities_api)(const struct device *dev,
175 struct display_capabilities *
176 capabilities);
177
183typedef int (*display_set_pixel_format_api)(const struct device *dev,
184 const enum display_pixel_format
185 pixel_format);
186
192typedef int (*display_set_orientation_api)(const struct device *dev,
193 const enum display_orientation
194 orientation);
195
211};
212
224static inline int display_write(const struct device *dev, const uint16_t x,
225 const uint16_t y,
226 const struct display_buffer_descriptor *desc,
227 const void *buf)
228{
229 struct display_driver_api *api =
230 (struct display_driver_api *)dev->api;
231
232 return api->write(dev, x, y, desc, buf);
233}
234
246static inline int display_read(const struct device *dev, const uint16_t x,
247 const uint16_t y,
248 const struct display_buffer_descriptor *desc,
249 void *buf)
250{
251 struct display_driver_api *api =
252 (struct display_driver_api *)dev->api;
253
254 return api->read(dev, x, y, desc, buf);
255}
256
266static inline void *display_get_framebuffer(const struct device *dev)
267{
268 struct display_driver_api *api =
269 (struct display_driver_api *)dev->api;
270
271 return api->get_framebuffer(dev);
272}
273
292static inline int display_blanking_on(const struct device *dev)
293{
294 struct display_driver_api *api =
295 (struct display_driver_api *)dev->api;
296
297 return api->blanking_on(dev);
298}
299
311static inline int display_blanking_off(const struct device *dev)
312{
313 struct display_driver_api *api =
314 (struct display_driver_api *)dev->api;
315
316 return api->blanking_off(dev);
317}
318
330static inline int display_set_brightness(const struct device *dev,
331 uint8_t brightness)
332{
333 struct display_driver_api *api =
334 (struct display_driver_api *)dev->api;
335
336 return api->set_brightness(dev, brightness);
337}
338
350static inline int display_set_contrast(const struct device *dev, uint8_t contrast)
351{
352 struct display_driver_api *api =
353 (struct display_driver_api *)dev->api;
354
355 return api->set_contrast(dev, contrast);
356}
357
364static inline void display_get_capabilities(const struct device *dev,
365 struct display_capabilities *
366 capabilities)
367{
368 struct display_driver_api *api =
369 (struct display_driver_api *)dev->api;
370
371 api->get_capabilities(dev, capabilities);
372}
373
382static inline int
384 const enum display_pixel_format pixel_format)
385{
386 struct display_driver_api *api =
387 (struct display_driver_api *)dev->api;
388
389 return api->set_pixel_format(dev, pixel_format);
390}
391
400static inline int display_set_orientation(const struct device *dev,
401 const enum display_orientation
402 orientation)
403{
404 struct display_driver_api *api =
405 (struct display_driver_api *)dev->api;
406
407 return api->set_orientation(dev, orientation);
408}
409
410#ifdef __cplusplus
411}
412#endif
413
418#endif /* ZEPHYR_INCLUDE_DRIVERS_DISPLAY_H_ */
void
Definition: eswifi_shell.c:15
int(* display_set_pixel_format_api)(const struct device *dev, const enum display_pixel_format pixel_format)
Callback API to set pixel format used by the display See display_set_pixel_format() for argument desc...
Definition: display.h:183
int(* display_blanking_off_api)(const struct device *dev)
Callback API to turn off display blanking See display_blanking_off() for argument description.
Definition: display.h:124
int(* display_set_contrast_api)(const struct device *dev, const uint8_t contrast)
Callback API to set display contrast See display_set_contrast() for argument description.
Definition: display.h:166
display_screen_info
Definition: display.h:47
int(* display_set_orientation_api)(const struct device *dev, const enum display_orientation orientation)
Callback API to set orientation used by the display See display_set_orientation() for argument descri...
Definition: display.h:192
static int display_write(const struct device *dev, const uint16_t x, const uint16_t y, const struct display_buffer_descriptor *desc, const void *buf)
Write data to display.
Definition: display.h:224
static int display_read(const struct device *dev, const uint16_t x, const uint16_t y, const struct display_buffer_descriptor *desc, void *buf)
Read data from display.
Definition: display.h:246
static void * display_get_framebuffer(const struct device *dev)
Get pointer to framebuffer for direct access.
Definition: display.h:266
static int display_blanking_off(const struct device *dev)
Turn display blanking off.
Definition: display.h:311
static int display_set_orientation(const struct device *dev, const enum display_orientation orientation)
Set display orientation.
Definition: display.h:400
static void display_get_capabilities(const struct device *dev, struct display_capabilities *capabilities)
Get display capabilities.
Definition: display.h:364
static int display_set_pixel_format(const struct device *dev, const enum display_pixel_format pixel_format)
Set pixel format used by the display.
Definition: display.h:383
static int display_set_contrast(const struct device *dev, uint8_t contrast)
Set the contrast of the display.
Definition: display.h:350
int(* display_set_brightness_api)(const struct device *dev, const uint8_t brightness)
Callback API to set display brightness See display_set_brightness() for argument description.
Definition: display.h:158
int(* display_read_api)(const struct device *dev, const uint16_t x, const uint16_t y, const struct display_buffer_descriptor *desc, void *buf)
Callback API for reading data from the display See display_read() for argument description.
Definition: display.h:141
display_pixel_format
Display pixel formats.
Definition: display.h:38
display_orientation
Enumeration with possible display orientation.
Definition: display.h:77
static int display_blanking_on(const struct device *dev)
Turn display blanking on.
Definition: display.h:292
int(* display_blanking_on_api)(const struct device *dev)
Callback API to turn on display blanking See display_blanking_on() for argument description.
Definition: display.h:117
static int display_set_brightness(const struct device *dev, uint8_t brightness)
Set the brightness of the display.
Definition: display.h:330
void *(* display_get_framebuffer_api)(const struct device *dev)
Callback API to get framebuffer pointer See display_get_framebuffer() for argument description.
Definition: display.h:151
int(* display_write_api)(const struct device *dev, const uint16_t x, const uint16_t y, const struct display_buffer_descriptor *desc, const void *buf)
Callback API for writing data to the display See display_write() for argument description.
Definition: display.h:131
void(* display_get_capabilities_api)(const struct device *dev, struct display_capabilities *capabilities)
Callback API to get display capabilities See display_get_capabilities() for argument description.
Definition: display.h:174
@ SCREEN_INFO_X_ALIGNMENT_WIDTH
Definition: display.h:69
@ SCREEN_INFO_EPD
Definition: display.h:61
@ SCREEN_INFO_DOUBLE_BUFFER
Definition: display.h:65
@ SCREEN_INFO_MONO_VTILED
Definition: display.h:52
@ SCREEN_INFO_MONO_MSB_FIRST
Definition: display.h:57
@ PIXEL_FORMAT_MONO10
Definition: display.h:41
@ PIXEL_FORMAT_ARGB_8888
Definition: display.h:42
@ PIXEL_FORMAT_MONO01
Definition: display.h:40
@ PIXEL_FORMAT_RGB_565
Definition: display.h:43
@ PIXEL_FORMAT_RGB_888
Definition: display.h:39
@ PIXEL_FORMAT_BGR_565
Definition: display.h:44
@ DISPLAY_ORIENTATION_ROTATED_90
Definition: display.h:79
@ DISPLAY_ORIENTATION_ROTATED_180
Definition: display.h:80
@ DISPLAY_ORIENTATION_NORMAL
Definition: display.h:78
@ DISPLAY_ORIENTATION_ROTATED_270
Definition: display.h:81
#define BIT(n)
Unsigned integer with bit position n set (signed in assembly language).
Definition: util_macro.h:44
__UINT32_TYPE__ uint32_t
Definition: stdint.h:60
__UINT8_TYPE__ uint8_t
Definition: stdint.h:58
__UINT16_TYPE__ uint16_t
Definition: stdint.h:59
Runtime device structure (in ROM) per driver instance.
Definition: device.h:367
const void * api
Definition: device.h:373
Structure to describe display data buffer layout.
Definition: display.h:101
uint16_t pitch
Definition: display.h:109
uint16_t height
Definition: display.h:107
uint16_t width
Definition: display.h:105
uint32_t buf_size
Definition: display.h:103
Structure holding display capabilities.
Definition: display.h:85
uint32_t supported_pixel_formats
Definition: display.h:91
uint16_t x_resolution
Definition: display.h:87
enum display_orientation current_orientation
Definition: display.h:97
uint16_t y_resolution
Definition: display.h:89
uint32_t screen_info
Definition: display.h:93
enum display_pixel_format current_pixel_format
Definition: display.h:95
Display driver API API which a display driver should expose.
Definition: display.h:200
display_blanking_off_api blanking_off
Definition: display.h:202
display_set_pixel_format_api set_pixel_format
Definition: display.h:209
display_read_api read
Definition: display.h:204
display_set_orientation_api set_orientation
Definition: display.h:210
display_write_api write
Definition: display.h:203
display_set_brightness_api set_brightness
Definition: display.h:206
display_get_framebuffer_api get_framebuffer
Definition: display.h:205
display_blanking_on_api blanking_on
Definition: display.h:201
display_get_capabilities_api get_capabilities
Definition: display.h:208
display_set_contrast_api set_contrast
Definition: display.h:207