106typedef enum : uint8_t {
180typedef enum : uint8_t {
204typedef enum : uint16_t {
213typedef enum : uint8_t {
263typedef enum : uint8_t {
ra8_err_t ra8_epaper_align_area(ra8_epaper_area_t *area, ra8_epaper_pixel_format_t pf, uint16_t panel_width)
Grow area outward onto the alignment grid its depth requires.
ra8_epaper_pixel_format_t
Source pixel depth for a ra8_epaper_load_image transfer.
@ k_ra8_epaper_pf_1bpp
1 bpp bi-level, 8 px per byte (A2).
@ k_ra8_epaper_pf_4bpp
4 bpp, 2 px per byte – preferred.
@ k_ra8_epaper_pf_2bpp
2 bpp, 4 px per byte.
@ k_ra8_epaper_pf_8bpp
8 bpp, one byte per pixel.
ra8_err_t ra8_epaper_display_area(const ra8_epaper_area_t *area, ra8_epaper_waveform_t waveform)
Refresh the indicated rectangle on the physical panel.
ra8_err_t ra8_epaper_dev_info(ra8_epaper_dev_info_t *out_info)
Hand back the GET_DEV_INFO block captured during init.
ra8_epaper_dev_info_limits_t
Sizing of the GET_DEV_INFO (0x0302) response block.
@ k_ra8_epaper_ver_chars
Chars in a FW / LUT version string.
ra8_err_t ra8_epaper_validate_cfg(const ra8_epaper_cfg_t *cfg)
Validate a panel descriptor without touching any hardware.
ra8_epaper_waveform_t
Symbolic IT8951 panel-refresh waveform selectors.
@ k_ra8_epaper_wf_init
INIT - flush to white, slowest.
@ k_ra8_epaper_wf_a2
A2 - black/white only, fastest.
@ k_ra8_epaper_wf_gc16
GC16 - 16-grey full quality.
@ k_ra8_epaper_wf_du
DU - direct update, 1 bpp, fast.
ra8_err_t ra8_epaper_set_vcom(uint16_t mv)
Programme the controller's VCOM, verify it, and grant the INV-VCOM-1 permit.
ra8_err_t ra8_epaper_init(const ra8_epaper_cfg_t *cfg)
Bring up the IT8951 panel against the injected SPI bus seam.
ra8_epaper_endian_t
Source-buffer endianness flag for the LD_IMG_AREA transfer.
@ k_ra8_epaper_endian_big
Host buffer is big-endian.
@ k_ra8_epaper_endian_little
Host buffer is little-endian.
ra8_err_t ra8_epaper_sleep(void)
Drop the panel into deep-sleep (~15 uA per Waveshare AN).
bool ra8_epaper_area_is_aligned(const ra8_epaper_area_t *area, ra8_epaper_pixel_format_t pf)
Report whether area satisfies the depth's X/width alignment.
ra8_err_t ra8_epaper_get_vcom(uint16_t *out_mv)
Read the controller's current VCOM setting, in millivolts.
ra8_err_t ra8_epaper_load_image(const ra8_epaper_area_t *area, const uint8_t *buf, size_t buf_len, ra8_epaper_pixel_format_t pf, ra8_epaper_endian_t endian)
Push a packed greyscale buffer into the controller's frame RAM.
ra8_err_t ra8_epaper_decode_dev_info(const uint16_t *words, size_t count, ra8_epaper_dev_info_t *out_info)
Decode a raw GET_DEV_INFO word block into a device-info struct.
ra8_err_t ra8_epaper_waveform_cfg_for_lut(const char *lut_version, ra8_epaper_waveform_cfg_t *out_cfg)
Fill a waveform map from a controller-reported LUT version.
ra8_epaper_geom_limits_t
Geometry / waveform constants the driver enforces.
@ k_ra8_epaper_wf_mode_max
Highest valid LUT mode number.
@ k_ra8_epaper_align_1bpp_px
4-byte (32 px) X/W grid for 1 bpp.
uint8_t ra8_epaper_bits_per_pixel(ra8_epaper_pixel_format_t pf)
Bits per pixel carried by a ra8_epaper_pixel_format_t.
bool ra8_epaper_geometry_agrees(const ra8_epaper_dev_info_t *info, const ra8_epaper_cfg_t *cfg)
Report whether reported panel geometry matches the descriptor.
ra8_err_t ra8_epaper_image_bytes(const ra8_epaper_area_t *area, ra8_epaper_pixel_format_t pf, size_t *out_bytes)
Bytes a packed source buffer needs for area at depth pf.
bool ra8_epaper_vcom_verified(void)
Report whether the INV-VCOM-1 permit is currently held.
Error Code Definitions for ra8-firmware.
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
Injected SPI-bus seam consumed by Ring-3 SPI device drivers.
Rectangle descriptor (top-left + size) used by load + display.
uint16_t x
Top-left X in panel coords (0 = left).
uint16_t y
Top-left Y in panel coords (0 = top).
uint16_t height
Height in pixels.
uint16_t width
Width in pixels.
Configuration descriptor for ra8_epaper_init.
uint16_t panel_height
Native panel height in pixels.
uint16_t reset_pin
(port<<8)|pin – panel /RESET line.
uint16_t panel_width
Native panel width in pixels.
ra8_epaper_waveform_cfg_t waveform
Panel's LUT waveform mode numbers.
uint16_t busy_pin
(port<<8)|pin – panel HRDY input.
ra8_spi_bus_ops_t bus
Injected SPI transfer seam (app-bound).
Decoded GET_DEV_INFO (0x0302) response.
uint32_t image_buf_base
Controller frame-RAM base.
char fw_version[k_ra8_epaper_ver_chars+1U]
Firmware version, NUL-term.
char lut_version[k_ra8_epaper_ver_chars+1U]
LUT version, NUL-terminated.
uint16_t panel_width
Reported panel width (px).
uint16_t panel_height
Reported panel height (px).
Caller-filled SPI transfer seam: one full-duplex byte exchange.