8#ifndef _HARDWARE_STRUCTS_SIO_H
9#define _HARDWARE_STRUCTS_SIO_H
12#include "hardware/regs/sio.h"
13#include "hardware/structs/interp.h"
25 _REG_(SIO_CPUID_OFFSET)
30 _REG_(SIO_GPIO_IN_OFFSET)
35 _REG_(SIO_GPIO_HI_IN_OFFSET)
47 _REG_(SIO_GPIO_OUT_OFFSET)
52 _REG_(SIO_GPIO_HI_OUT_OFFSET)
62 _REG_(SIO_GPIO_OUT_SET_OFFSET)
67 _REG_(SIO_GPIO_HI_OUT_SET_OFFSET)
77 _REG_(SIO_GPIO_OUT_CLR_OFFSET)
82 _REG_(SIO_GPIO_HI_OUT_CLR_OFFSET)
92 _REG_(SIO_GPIO_OUT_XOR_OFFSET)
97 _REG_(SIO_GPIO_HI_OUT_XOR_OFFSET)
105 io_wo_32 gpio_hi_togl;
107 _REG_(SIO_GPIO_OE_OFFSET)
112 _REG_(SIO_GPIO_HI_OE_OFFSET)
122 _REG_(SIO_GPIO_OE_SET_OFFSET)
125 io_wo_32 gpio_oe_set;
127 _REG_(SIO_GPIO_HI_OE_SET_OFFSET)
135 io_wo_32 gpio_hi_oe_set;
137 _REG_(SIO_GPIO_OE_CLR_OFFSET)
140 io_wo_32 gpio_oe_clr;
142 _REG_(SIO_GPIO_HI_OE_CLR_OFFSET)
150 io_wo_32 gpio_hi_oe_clr;
152 _REG_(SIO_GPIO_OE_XOR_OFFSET)
155 io_wo_32 gpio_oe_togl;
157 _REG_(SIO_GPIO_HI_OE_XOR_OFFSET)
165 io_wo_32 gpio_hi_oe_togl;
167 _REG_(SIO_FIFO_ST_OFFSET)
175 _REG_(SIO_FIFO_WR_OFFSET)
180 _REG_(SIO_FIFO_RD_OFFSET)
185 _REG_(SIO_SPINLOCK_ST_OFFSET)
188 io_ro_32 spinlock_st;
195 _REG_(SIO_SPINLOCK0_OFFSET)
198 io_rw_32 spinlock[32];
200 _REG_(SIO_DOORBELL_OUT_SET_OFFSET)
203 io_rw_32 doorbell_out_set;
205 _REG_(SIO_DOORBELL_OUT_CLR_OFFSET)
208 io_rw_32 doorbell_out_clr;
210 _REG_(SIO_DOORBELL_IN_SET_OFFSET)
213 io_rw_32 doorbell_in_set;
215 _REG_(SIO_DOORBELL_IN_CLR_OFFSET)
218 io_rw_32 doorbell_in_clr;
220 _REG_(SIO_PERI_NONSEC_OFFSET)
225 io_rw_32 peri_nonsec;
229 _REG_(SIO_RISCV_SOFTIRQ_OFFSET)
235 io_rw_32 riscv_softirq;
237 _REG_(SIO_MTIME_CTRL_OFFSET)
247 _REG_(SIO_MTIME_OFFSET)
252 _REG_(SIO_MTIMEH_OFFSET)
257 _REG_(SIO_MTIMECMP_OFFSET)
262 _REG_(SIO_MTIMECMPH_OFFSET)
267 _REG_(SIO_TMDS_CTRL_OFFSET)
281 _REG_(SIO_TMDS_WDATA_OFFSET)
286 _REG_(SIO_TMDS_PEEK_SINGLE_OFFSET)
289 io_ro_32 tmds_peek_single;
291 _REG_(SIO_TMDS_POP_SINGLE_OFFSET)
294 io_ro_32 tmds_pop_single;
296 _REG_(SIO_TMDS_PEEK_DOUBLE_L0_OFFSET)
299 io_ro_32 tmds_peek_double_l0;
301 _REG_(SIO_TMDS_POP_DOUBLE_L0_OFFSET)
304 io_ro_32 tmds_pop_double_l0;
306 _REG_(SIO_TMDS_PEEK_DOUBLE_L1_OFFSET)
309 io_ro_32 tmds_peek_double_l1;
311 _REG_(SIO_TMDS_POP_DOUBLE_L1_OFFSET)
314 io_ro_32 tmds_pop_double_l1;
316 _REG_(SIO_TMDS_PEEK_DOUBLE_L2_OFFSET)
319 io_ro_32 tmds_peek_double_l2;
321 _REG_(SIO_TMDS_POP_DOUBLE_L2_OFFSET)
324 io_ro_32 tmds_pop_double_l2;
328#define sio_hw ((sio_hw_t *)SIO_BASE)
329#define sio_ns_hw ((sio_hw_t *)SIO_NONSEC_BASE)
330static_assert(
sizeof (
sio_hw_t) == 0x01e8,
"");