text: /*
   * Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
   *
   * SPDX-License-Identifier: BSD-3-Clause
   */
  
  #ifndef _HARDWARE_STRUCTS_SIO_H
  #define _HARDWARE_STRUCTS_SIO_H
  
  #include "hardware/address_mapped.h"
  #include "hardware/regs/sio.h"
  #include "hardware/structs/struct-interp.h"
  
  typedef struct {
      io_ro_32 cpuid;
      io_ro_32 gpio_in;
      io_ro_32 gpio_hi_in;
      uint32_t _pad;
  
      io_wo_32 gpio_out;
      io_wo_32 gpio_set;
      io_wo_32 gpio_clr;
      io_wo_32 gpio_togl;
  
      io_wo_32 gpio_oe;
      io_wo_32 gpio_oe_set;
      io_wo_32 gpio_oe_clr;
      io_wo_32 gpio_oe_togl;
  
      io_wo_32 gpio_hi_out;
      io_wo_32 gpio_hi_set;
      io_wo_32 gpio_hi_clr;
      io_wo_32 gpio_hi_togl;
  
      io_wo_32 gpio_hi_oe;
      io_wo_32 gpio_hi_oe_set;
      io_wo_32 gpio_hi_oe_clr;
      io_wo_32 gpio_hi_oe_togl;
  
      io_rw_32 fifo_st;
      io_wo_32 fifo_wr;
      io_ro_32 fifo_rd;
      io_ro_32 spinlock_st;
  
      io_rw_32 div_udividend;
      io_rw_32 div_udivisor;
      io_rw_32 div_sdividend;
      io_rw_32 div_sdivisor;
  
      io_rw_32 div_quotient;
      io_rw_32 div_remainder;
      io_rw_32 div_csr;
  
      uint32_t _pad2;
  
      interp_hw_t interp[2];
  } sio_hw_t;
  
  #define sio_hw ((sio_hw_t *)SIO_BASE)
  
  #endif
  