31 lines
806 B
C
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];
|
|
};
|