Files
weee/core/broadway/mmio/si.hpp
T
2026-05-20 17:55:07 +02:00

76 lines
1.6 KiB
C++

#pragma once
#include <ircolib/types.hpp>
namespace weee::core {
struct mem;
struct serial_interface {
serial_interface(mem &);
ircolib::u32 read32(ircolib::u32);
void write32(ircolib::u32, ircolib::u32);
union {
struct {
unsigned vbcpy : 4;
unsigned en : 4;
unsigned y : 8;
unsigned x : 8;
unsigned : 8;
};
ircolib::u32 raw;
} sipoll;
union {
struct {
unsigned tstart : 1;
unsigned channel : 2;
unsigned cben : 1;
unsigned cmden : 1;
unsigned inlength : 7;
unsigned : 1;
unsigned outlength : 7;
unsigned : 1;
unsigned chen : 1;
unsigned chnum : 2;
unsigned rdstintmsk : 1;
unsigned rdstint : 1;
unsigned comerr : 1;
unsigned tcintmsk : 1;
unsigned tcint : 1;
};
ircolib::u32 raw;
} sicomcsr;
union {
struct {
unsigned : 31;
unsigned lock : 1;
};
ircolib::u32 raw;
} clock_lk;
union {
struct {
unsigned joy3 : 6;
unsigned : 2;
unsigned joy2 : 6;
unsigned : 2;
unsigned joy1 : 6;
unsigned : 2;
unsigned unrun : 1;
unsigned ovrun0 : 1;
unsigned coll0 : 1;
unsigned norep0 : 1;
unsigned wrst0 : 1;
unsigned rdst0 : 1;
unsigned : 1;
unsigned wr : 1;
};
ircolib::u32 raw;
} sisr;
};
} // namespace weee::core