1 /* 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 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 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_ */ 47