Line data Source code
1 0 : /*
2 : * Copyright (c) 2022 Andreas Sandberg
3 : *
4 : * SPDX-License-Identifier: Apache-2.0
5 : */
6 :
7 : #ifndef ZEPHYR_INCLUDE_DISPLAY_SSD16XX_H_
8 : #define ZEPHYR_INCLUDE_DISPLAY_SSD16XX_H_
9 :
10 : #include <zephyr/drivers/display.h>
11 :
12 : /**
13 : * SSD16xx RAM type for direct RAM access
14 : */
15 0 : enum ssd16xx_ram {
16 : /** The black RAM buffer. This is typically the buffer used to
17 : * compose the contents that will be displayed after the next
18 : * refresh.
19 : */
20 : SSD16XX_RAM_BLACK = 0,
21 : /* The red RAM buffer. This is typically the old frame buffer
22 : * when performing partial refreshes or an additional color
23 : * channel.
24 : */
25 : SSD16XX_RAM_RED,
26 : };
27 :
28 : /**
29 : * @brief Read data directly from the display controller's internal
30 : * RAM.
31 : *
32 : * @param dev Pointer to device structure
33 : * @param ram_type Type of RAM to read from
34 : * @param x Coordinate relative to the upper left corner
35 : * @param y Coordinate relative to the upper left corner
36 : * @param desc Structure describing the buffer layout
37 : * @param buf Output buffer
38 : *
39 : * @retval 0 on success, negative errno on failure.
40 : */
41 1 : int ssd16xx_read_ram(const struct device *dev, enum ssd16xx_ram ram_type,
42 : const uint16_t x, const uint16_t y,
43 : const struct display_buffer_descriptor *desc,
44 : void *buf);
45 :
46 : #endif /* ZEPHYR_INCLUDE_DISPLAY_SSD16XX_H_ */
|