Files
qemu-xteink/include/hw/display/xteink_x3_eink.h
T

31 lines
806 B
C

#pragma once
#include "hw/ssi/ssi.h"
#include "qemu/timer.h"
#include "ui/console.h"
#define TYPE_XTEINK_X3_EINK "xteink-x3-eink"
#define TYPE_XTEINK_X4_EINK "xteink-x4-eink"
OBJECT_DECLARE_SIMPLE_TYPE(XteinkX3EinkState, XTEINK_X3_EINK)
#define XTEINK_X3_EINK_DC "dc"
#define XTEINK_X3_EINK_RESET "reset"
#define XTEINK_X3_EINK_BUSY "busy"
#define XTEINK_X3_WIDTH 792
#define XTEINK_X3_HEIGHT 528
#define XTEINK_X3_WIDTH_BYTES (XTEINK_X3_WIDTH / 8)
#define XTEINK_X3_PLANE_SIZE (XTEINK_X3_WIDTH_BYTES * XTEINK_X3_HEIGHT)
struct XteinkX3EinkState {
SSIPeripheral parent_obj;
QemuConsole *console;
QEMUTimer *busy_timer;
qemu_irq busy;
bool dc;
uint8_t command;
uint32_t plane_pos;
uint8_t old_plane[XTEINK_X3_PLANE_SIZE];
uint8_t new_plane[XTEINK_X3_PLANE_SIZE];
};