Program Listing for File sio.h#
↰ Return to documentation for file (src/generated/structs/sio.h
)
#pragma once
#include "../ifgen/common.h"
namespace RP2040
{
struct [[gnu::packed]] sio
{
/* Constant attributes. */
static constexpr std::size_t size = 384;
/* Fields. */
uint32_t CPUID;
const uint32_t GPIO_IN = {};
const uint32_t GPIO_HI_IN =
{};
const uint32_t reserved_padding0 = {};
uint32_t GPIO_OUT;
uint32_t GPIO_OUT_SET;
uint32_t GPIO_OUT_CLR;
uint32_t GPIO_OUT_XOR;
uint32_t GPIO_OE;
uint32_t GPIO_OE_SET;
uint32_t GPIO_OE_CLR;
uint32_t GPIO_OE_XOR;
uint32_t GPIO_HI_OUT;
uint32_t GPIO_HI_OUT_SET;
uint32_t GPIO_HI_OUT_CLR;
uint32_t GPIO_HI_OUT_XOR;
uint32_t GPIO_HI_OE;
uint32_t GPIO_HI_OE_SET;
uint32_t GPIO_HI_OE_CLR;
uint32_t GPIO_HI_OE_XOR;
uint32_t FIFO_ST;
uint32_t FIFO_WR;
uint32_t FIFO_RD;
uint32_t SPINLOCK_ST;
uint32_t DIV_UDIVIDEND;
uint32_t DIV_UDIVISOR;
uint32_t DIV_SDIVIDEND;
uint32_t DIV_SDIVISOR;
uint32_t DIV_QUOTIENT;
uint32_t DIV_REMAINDER;
const uint32_t DIV_CSR =
{};
const uint32_t reserved_padding1 = {};
uint32_t
INTERP0_ACCUM0;
uint32_t
INTERP0_ACCUM1;
uint32_t INTERP0_BASE0;
uint32_t INTERP0_BASE1;
uint32_t INTERP0_BASE2;
uint32_t INTERP0_POP_LANE0;
uint32_t INTERP0_POP_LANE1;
uint32_t INTERP0_POP_FULL;
uint32_t INTERP0_PEEK_LANE0;
uint32_t INTERP0_PEEK_LANE1;
uint32_t INTERP0_PEEK_FULL;
uint32_t
INTERP0_CTRL_LANE0;
uint32_t
INTERP0_CTRL_LANE1;
uint32_t INTERP0_ACCUM0_ADD;
uint32_t INTERP0_ACCUM1_ADD;
uint32_t INTERP0_BASE_1AND0;
uint32_t
INTERP1_ACCUM0;
uint32_t
INTERP1_ACCUM1;
uint32_t INTERP1_BASE0;
uint32_t INTERP1_BASE1;
uint32_t INTERP1_BASE2;
uint32_t INTERP1_POP_LANE0;
uint32_t INTERP1_POP_LANE1;
uint32_t INTERP1_POP_FULL;
uint32_t INTERP1_PEEK_LANE0;
uint32_t INTERP1_PEEK_LANE1;
uint32_t INTERP1_PEEK_FULL;
uint32_t
INTERP1_CTRL_LANE0;
uint32_t
INTERP1_CTRL_LANE1;
uint32_t INTERP1_ACCUM0_ADD;
uint32_t INTERP1_ACCUM1_ADD;
uint32_t INTERP1_BASE_1AND0;
uint32_t
SPINLOCK0;
uint32_t
SPINLOCK1;
uint32_t
SPINLOCK2;
uint32_t
SPINLOCK3;
uint32_t
SPINLOCK4;
uint32_t
SPINLOCK5;
uint32_t
SPINLOCK6;
uint32_t
SPINLOCK7;
uint32_t
SPINLOCK8;
uint32_t
SPINLOCK9;
uint32_t
SPINLOCK10;
uint32_t
SPINLOCK11;
uint32_t
SPINLOCK12;
uint32_t
SPINLOCK13;
uint32_t
SPINLOCK14;
uint32_t
SPINLOCK15;
uint32_t
SPINLOCK16;
uint32_t
SPINLOCK17;
uint32_t
SPINLOCK18;
uint32_t
SPINLOCK19;
uint32_t
SPINLOCK20;
uint32_t
SPINLOCK21;
uint32_t
SPINLOCK22;
uint32_t
SPINLOCK23;
uint32_t
SPINLOCK24;
uint32_t
SPINLOCK25;
uint32_t
SPINLOCK26;
uint32_t
SPINLOCK27;
uint32_t
SPINLOCK28;
uint32_t
SPINLOCK29;
uint32_t
SPINLOCK30;
uint32_t
SPINLOCK31;
/* Methods. */
inline uint32_t get_GPIO_IN_GPIO_IN() volatile
{
return (GPIO_IN >> 0u) & 0b111111111111111111111111111111u;
}
inline uint8_t get_GPIO_HI_IN_GPIO_HI_IN() volatile
{
return (GPIO_HI_IN >> 0u) & 0b111111u;
}
inline uint32_t get_GPIO_OUT_GPIO_OUT() volatile
{
return (GPIO_OUT >> 0u) & 0b111111111111111111111111111111u;
}
inline void set_GPIO_OUT_GPIO_OUT(uint32_t value) volatile
{
uint32_t curr = GPIO_OUT;
curr &= ~(0b111111111111111111111111111111u << 0u);
curr |= (value & 0b111111111111111111111111111111u) << 0u;
GPIO_OUT = curr;
}
inline void set_GPIO_OUT_SET_GPIO_OUT_SET(uint32_t value) volatile
{
uint32_t curr = GPIO_OUT_SET;
curr &= ~(0b111111111111111111111111111111u << 0u);
curr |= (value & 0b111111111111111111111111111111u) << 0u;
GPIO_OUT_SET = curr;
}
inline void set_GPIO_OUT_CLR_GPIO_OUT_CLR(uint32_t value) volatile
{
uint32_t curr = GPIO_OUT_CLR;
curr &= ~(0b111111111111111111111111111111u << 0u);
curr |= (value & 0b111111111111111111111111111111u) << 0u;
GPIO_OUT_CLR = curr;
}
inline void set_GPIO_OUT_XOR_GPIO_OUT_XOR(uint32_t value) volatile
{
uint32_t curr = GPIO_OUT_XOR;
curr &= ~(0b111111111111111111111111111111u << 0u);
curr |= (value & 0b111111111111111111111111111111u) << 0u;
GPIO_OUT_XOR = curr;
}
inline uint32_t get_GPIO_OE_GPIO_OE() volatile
{
return (GPIO_OE >> 0u) & 0b111111111111111111111111111111u;
}
inline void set_GPIO_OE_GPIO_OE(uint32_t value) volatile
{
uint32_t curr = GPIO_OE;
curr &= ~(0b111111111111111111111111111111u << 0u);
curr |= (value & 0b111111111111111111111111111111u) << 0u;
GPIO_OE = curr;
}
inline void set_GPIO_OE_SET_GPIO_OE_SET(uint32_t value) volatile
{
uint32_t curr = GPIO_OE_SET;
curr &= ~(0b111111111111111111111111111111u << 0u);
curr |= (value & 0b111111111111111111111111111111u) << 0u;
GPIO_OE_SET = curr;
}
inline void set_GPIO_OE_CLR_GPIO_OE_CLR(uint32_t value) volatile
{
uint32_t curr = GPIO_OE_CLR;
curr &= ~(0b111111111111111111111111111111u << 0u);
curr |= (value & 0b111111111111111111111111111111u) << 0u;
GPIO_OE_CLR = curr;
}
inline void set_GPIO_OE_XOR_GPIO_OE_XOR(uint32_t value) volatile
{
uint32_t curr = GPIO_OE_XOR;
curr &= ~(0b111111111111111111111111111111u << 0u);
curr |= (value & 0b111111111111111111111111111111u) << 0u;
GPIO_OE_XOR = curr;
}
inline uint8_t get_GPIO_HI_OUT_GPIO_HI_OUT() volatile
{
return (GPIO_HI_OUT >> 0u) & 0b111111u;
}
inline void set_GPIO_HI_OUT_GPIO_HI_OUT(uint8_t value) volatile
{
uint32_t curr = GPIO_HI_OUT;
curr &= ~(0b111111u << 0u);
curr |= (value & 0b111111u) << 0u;
GPIO_HI_OUT = curr;
}
inline void set_GPIO_HI_OUT_SET_GPIO_HI_OUT_SET(uint8_t value) volatile
{
uint32_t curr = GPIO_HI_OUT_SET;
curr &= ~(0b111111u << 0u);
curr |= (value & 0b111111u) << 0u;
GPIO_HI_OUT_SET = curr;
}
inline void set_GPIO_HI_OUT_CLR_GPIO_HI_OUT_CLR(uint8_t value) volatile
{
uint32_t curr = GPIO_HI_OUT_CLR;
curr &= ~(0b111111u << 0u);
curr |= (value & 0b111111u) << 0u;
GPIO_HI_OUT_CLR = curr;
}
inline void set_GPIO_HI_OUT_XOR_GPIO_HI_OUT_XOR(uint8_t value) volatile
{
uint32_t curr = GPIO_HI_OUT_XOR;
curr &= ~(0b111111u << 0u);
curr |= (value & 0b111111u) << 0u;
GPIO_HI_OUT_XOR = curr;
}
inline uint8_t get_GPIO_HI_OE_GPIO_HI_OE() volatile
{
return (GPIO_HI_OE >> 0u) & 0b111111u;
}
inline void set_GPIO_HI_OE_GPIO_HI_OE(uint8_t value) volatile
{
uint32_t curr = GPIO_HI_OE;
curr &= ~(0b111111u << 0u);
curr |= (value & 0b111111u) << 0u;
GPIO_HI_OE = curr;
}
inline void set_GPIO_HI_OE_SET_GPIO_HI_OE_SET(uint8_t value) volatile
{
uint32_t curr = GPIO_HI_OE_SET;
curr &= ~(0b111111u << 0u);
curr |= (value & 0b111111u) << 0u;
GPIO_HI_OE_SET = curr;
}
inline void set_GPIO_HI_OE_CLR_GPIO_HI_OE_CLR(uint8_t value) volatile
{
uint32_t curr = GPIO_HI_OE_CLR;
curr &= ~(0b111111u << 0u);
curr |= (value & 0b111111u) << 0u;
GPIO_HI_OE_CLR = curr;
}
inline void set_GPIO_HI_OE_XOR_GPIO_HI_OE_XOR(uint8_t value) volatile
{
uint32_t curr = GPIO_HI_OE_XOR;
curr &= ~(0b111111u << 0u);
curr |= (value & 0b111111u) << 0u;
GPIO_HI_OE_XOR = curr;
}
inline bool get_FIFO_ST_VLD() volatile
{
return FIFO_ST & (1u << 0u);
}
inline bool get_FIFO_ST_RDY() volatile
{
return FIFO_ST & (1u << 1u);
}
inline bool get_FIFO_ST_WOF() volatile
{
return FIFO_ST & (1u << 2u);
}
inline void set_FIFO_ST_WOF() volatile
{
FIFO_ST |= 1u << 2u;
}
inline void clear_FIFO_ST_WOF() volatile
{
FIFO_ST &= ~(1u << 2u);
}
inline void toggle_FIFO_ST_WOF() volatile
{
FIFO_ST ^= 1u << 2u;
}
inline bool get_FIFO_ST_ROE() volatile
{
return FIFO_ST & (1u << 3u);
}
inline void set_FIFO_ST_ROE() volatile
{
FIFO_ST |= 1u << 3u;
}
inline void clear_FIFO_ST_ROE() volatile
{
FIFO_ST &= ~(1u << 3u);
}
inline void toggle_FIFO_ST_ROE() volatile
{
FIFO_ST ^= 1u << 3u;
}
inline void get_FIFO_ST(bool &VLD, bool &RDY, bool &WOF,
bool &ROE) volatile
{
uint32_t curr = FIFO_ST;
VLD = curr & (1u << 0u);
RDY = curr & (1u << 1u);
WOF = curr & (1u << 2u);
ROE = curr & (1u << 3u);
}
inline void set_FIFO_ST(bool WOF, bool ROE) volatile
{
uint32_t curr = FIFO_ST;
curr &= ~(0b1u << 2u);
curr |= (WOF & 0b1u) << 2u;
curr &= ~(0b1u << 3u);
curr |= (ROE & 0b1u) << 3u;
FIFO_ST = curr;
}
inline bool get_DIV_CSR_READY() volatile
{
return DIV_CSR & (1u << 0u);
}
inline bool get_DIV_CSR_DIRTY() volatile
{
return DIV_CSR & (1u << 1u);
}
inline void get_DIV_CSR(bool &READY, bool &DIRTY) volatile
{
uint32_t curr = DIV_CSR;
READY = curr & (1u << 0u);
DIRTY = curr & (1u << 1u);
}
inline uint8_t get_INTERP0_CTRL_LANE0_SHIFT() volatile
{
return (INTERP0_CTRL_LANE0 >> 0u) & 0b11111u;
}
inline void set_INTERP0_CTRL_LANE0_SHIFT(uint8_t value) volatile
{
uint32_t curr = INTERP0_CTRL_LANE0;
curr &= ~(0b11111u << 0u);
curr |= (value & 0b11111u) << 0u;
INTERP0_CTRL_LANE0 = curr;
}
inline uint8_t get_INTERP0_CTRL_LANE0_MASK_LSB() volatile
{
return (INTERP0_CTRL_LANE0 >> 5u) & 0b11111u;
}
inline void set_INTERP0_CTRL_LANE0_MASK_LSB(uint8_t value) volatile
{
uint32_t curr = INTERP0_CTRL_LANE0;
curr &= ~(0b11111u << 5u);
curr |= (value & 0b11111u) << 5u;
INTERP0_CTRL_LANE0 = curr;
}
inline uint8_t get_INTERP0_CTRL_LANE0_MASK_MSB() volatile
{
return (INTERP0_CTRL_LANE0 >> 10u) & 0b11111u;
}
inline void set_INTERP0_CTRL_LANE0_MASK_MSB(uint8_t value) volatile
{
uint32_t curr = INTERP0_CTRL_LANE0;
curr &= ~(0b11111u << 10u);
curr |= (value & 0b11111u) << 10u;
INTERP0_CTRL_LANE0 = curr;
}
inline bool get_INTERP0_CTRL_LANE0_SIGNED() volatile
{
return INTERP0_CTRL_LANE0 & (1u << 15u);
}
inline void set_INTERP0_CTRL_LANE0_SIGNED() volatile
{
INTERP0_CTRL_LANE0 |= 1u << 15u;
}
inline void clear_INTERP0_CTRL_LANE0_SIGNED() volatile
{
INTERP0_CTRL_LANE0 &= ~(1u << 15u);
}
inline void toggle_INTERP0_CTRL_LANE0_SIGNED() volatile
{
INTERP0_CTRL_LANE0 ^= 1u << 15u;
}
inline bool get_INTERP0_CTRL_LANE0_CROSS_INPUT() volatile
{
return INTERP0_CTRL_LANE0 & (1u << 16u);
}
inline void set_INTERP0_CTRL_LANE0_CROSS_INPUT() volatile
{
INTERP0_CTRL_LANE0 |= 1u << 16u;
}
inline void clear_INTERP0_CTRL_LANE0_CROSS_INPUT() volatile
{
INTERP0_CTRL_LANE0 &= ~(1u << 16u);
}
inline void toggle_INTERP0_CTRL_LANE0_CROSS_INPUT() volatile
{
INTERP0_CTRL_LANE0 ^= 1u << 16u;
}
inline bool get_INTERP0_CTRL_LANE0_CROSS_RESULT() volatile
{
return INTERP0_CTRL_LANE0 & (1u << 17u);
}
inline void set_INTERP0_CTRL_LANE0_CROSS_RESULT() volatile
{
INTERP0_CTRL_LANE0 |= 1u << 17u;
}
inline void clear_INTERP0_CTRL_LANE0_CROSS_RESULT() volatile
{
INTERP0_CTRL_LANE0 &= ~(1u << 17u);
}
inline void toggle_INTERP0_CTRL_LANE0_CROSS_RESULT() volatile
{
INTERP0_CTRL_LANE0 ^= 1u << 17u;
}
inline bool get_INTERP0_CTRL_LANE0_ADD_RAW() volatile
{
return INTERP0_CTRL_LANE0 & (1u << 18u);
}
inline void set_INTERP0_CTRL_LANE0_ADD_RAW() volatile
{
INTERP0_CTRL_LANE0 |= 1u << 18u;
}
inline void clear_INTERP0_CTRL_LANE0_ADD_RAW() volatile
{
INTERP0_CTRL_LANE0 &= ~(1u << 18u);
}
inline void toggle_INTERP0_CTRL_LANE0_ADD_RAW() volatile
{
INTERP0_CTRL_LANE0 ^= 1u << 18u;
}
inline uint8_t get_INTERP0_CTRL_LANE0_FORCE_MSB() volatile
{
return (INTERP0_CTRL_LANE0 >> 19u) & 0b11u;
}
inline void set_INTERP0_CTRL_LANE0_FORCE_MSB(uint8_t value) volatile
{
uint32_t curr = INTERP0_CTRL_LANE0;
curr &= ~(0b11u << 19u);
curr |= (value & 0b11u) << 19u;
INTERP0_CTRL_LANE0 = curr;
}
inline bool get_INTERP0_CTRL_LANE0_BLEND() volatile
{
return INTERP0_CTRL_LANE0 & (1u << 21u);
}
inline void set_INTERP0_CTRL_LANE0_BLEND() volatile
{
INTERP0_CTRL_LANE0 |= 1u << 21u;
}
inline void clear_INTERP0_CTRL_LANE0_BLEND() volatile
{
INTERP0_CTRL_LANE0 &= ~(1u << 21u);
}
inline void toggle_INTERP0_CTRL_LANE0_BLEND() volatile
{
INTERP0_CTRL_LANE0 ^= 1u << 21u;
}
inline bool get_INTERP0_CTRL_LANE0_OVERF0() volatile
{
return INTERP0_CTRL_LANE0 & (1u << 23u);
}
inline bool get_INTERP0_CTRL_LANE0_OVERF1() volatile
{
return INTERP0_CTRL_LANE0 & (1u << 24u);
}
inline bool get_INTERP0_CTRL_LANE0_OVERF() volatile
{
return INTERP0_CTRL_LANE0 & (1u << 25u);
}
inline void get_INTERP0_CTRL_LANE0(uint8_t &SHIFT, uint8_t &MASK_LSB,
uint8_t &MASK_MSB, bool &SIGNED,
bool &CROSS_INPUT, bool &CROSS_RESULT,
bool &ADD_RAW, uint8_t &FORCE_MSB,
bool &BLEND, bool &OVERF0, bool &OVERF1,
bool &OVERF) volatile
{
uint32_t curr = INTERP0_CTRL_LANE0;
SHIFT = (curr >> 0u) & 0b11111u;
MASK_LSB = (curr >> 5u) & 0b11111u;
MASK_MSB = (curr >> 10u) & 0b11111u;
SIGNED = curr & (1u << 15u);
CROSS_INPUT = curr & (1u << 16u);
CROSS_RESULT = curr & (1u << 17u);
ADD_RAW = curr & (1u << 18u);
FORCE_MSB = (curr >> 19u) & 0b11u;
BLEND = curr & (1u << 21u);
OVERF0 = curr & (1u << 23u);
OVERF1 = curr & (1u << 24u);
OVERF = curr & (1u << 25u);
}
inline void set_INTERP0_CTRL_LANE0(uint8_t SHIFT, uint8_t MASK_LSB,
uint8_t MASK_MSB, bool SIGNED,
bool CROSS_INPUT, bool CROSS_RESULT,
bool ADD_RAW, uint8_t FORCE_MSB,
bool BLEND) volatile
{
uint32_t curr = INTERP0_CTRL_LANE0;
curr &= ~(0b11111u << 0u);
curr |= (SHIFT & 0b11111u) << 0u;
curr &= ~(0b11111u << 5u);
curr |= (MASK_LSB & 0b11111u) << 5u;
curr &= ~(0b11111u << 10u);
curr |= (MASK_MSB & 0b11111u) << 10u;
curr &= ~(0b1u << 15u);
curr |= (SIGNED & 0b1u) << 15u;
curr &= ~(0b1u << 16u);
curr |= (CROSS_INPUT & 0b1u) << 16u;
curr &= ~(0b1u << 17u);
curr |= (CROSS_RESULT & 0b1u) << 17u;
curr &= ~(0b1u << 18u);
curr |= (ADD_RAW & 0b1u) << 18u;
curr &= ~(0b11u << 19u);
curr |= (FORCE_MSB & 0b11u) << 19u;
curr &= ~(0b1u << 21u);
curr |= (BLEND & 0b1u) << 21u;
INTERP0_CTRL_LANE0 = curr;
}
inline uint8_t get_INTERP0_CTRL_LANE1_SHIFT() volatile
{
return (INTERP0_CTRL_LANE1 >> 0u) & 0b11111u;
}
inline void set_INTERP0_CTRL_LANE1_SHIFT(uint8_t value) volatile
{
uint32_t curr = INTERP0_CTRL_LANE1;
curr &= ~(0b11111u << 0u);
curr |= (value & 0b11111u) << 0u;
INTERP0_CTRL_LANE1 = curr;
}
inline uint8_t get_INTERP0_CTRL_LANE1_MASK_LSB() volatile
{
return (INTERP0_CTRL_LANE1 >> 5u) & 0b11111u;
}
inline void set_INTERP0_CTRL_LANE1_MASK_LSB(uint8_t value) volatile
{
uint32_t curr = INTERP0_CTRL_LANE1;
curr &= ~(0b11111u << 5u);
curr |= (value & 0b11111u) << 5u;
INTERP0_CTRL_LANE1 = curr;
}
inline uint8_t get_INTERP0_CTRL_LANE1_MASK_MSB() volatile
{
return (INTERP0_CTRL_LANE1 >> 10u) & 0b11111u;
}
inline void set_INTERP0_CTRL_LANE1_MASK_MSB(uint8_t value) volatile
{
uint32_t curr = INTERP0_CTRL_LANE1;
curr &= ~(0b11111u << 10u);
curr |= (value & 0b11111u) << 10u;
INTERP0_CTRL_LANE1 = curr;
}
inline bool get_INTERP0_CTRL_LANE1_SIGNED() volatile
{
return INTERP0_CTRL_LANE1 & (1u << 15u);
}
inline void set_INTERP0_CTRL_LANE1_SIGNED() volatile
{
INTERP0_CTRL_LANE1 |= 1u << 15u;
}
inline void clear_INTERP0_CTRL_LANE1_SIGNED() volatile
{
INTERP0_CTRL_LANE1 &= ~(1u << 15u);
}
inline void toggle_INTERP0_CTRL_LANE1_SIGNED() volatile
{
INTERP0_CTRL_LANE1 ^= 1u << 15u;
}
inline bool get_INTERP0_CTRL_LANE1_CROSS_INPUT() volatile
{
return INTERP0_CTRL_LANE1 & (1u << 16u);
}
inline void set_INTERP0_CTRL_LANE1_CROSS_INPUT() volatile
{
INTERP0_CTRL_LANE1 |= 1u << 16u;
}
inline void clear_INTERP0_CTRL_LANE1_CROSS_INPUT() volatile
{
INTERP0_CTRL_LANE1 &= ~(1u << 16u);
}
inline void toggle_INTERP0_CTRL_LANE1_CROSS_INPUT() volatile
{
INTERP0_CTRL_LANE1 ^= 1u << 16u;
}
inline bool get_INTERP0_CTRL_LANE1_CROSS_RESULT() volatile
{
return INTERP0_CTRL_LANE1 & (1u << 17u);
}
inline void set_INTERP0_CTRL_LANE1_CROSS_RESULT() volatile
{
INTERP0_CTRL_LANE1 |= 1u << 17u;
}
inline void clear_INTERP0_CTRL_LANE1_CROSS_RESULT() volatile
{
INTERP0_CTRL_LANE1 &= ~(1u << 17u);
}
inline void toggle_INTERP0_CTRL_LANE1_CROSS_RESULT() volatile
{
INTERP0_CTRL_LANE1 ^= 1u << 17u;
}
inline bool get_INTERP0_CTRL_LANE1_ADD_RAW() volatile
{
return INTERP0_CTRL_LANE1 & (1u << 18u);
}
inline void set_INTERP0_CTRL_LANE1_ADD_RAW() volatile
{
INTERP0_CTRL_LANE1 |= 1u << 18u;
}
inline void clear_INTERP0_CTRL_LANE1_ADD_RAW() volatile
{
INTERP0_CTRL_LANE1 &= ~(1u << 18u);
}
inline void toggle_INTERP0_CTRL_LANE1_ADD_RAW() volatile
{
INTERP0_CTRL_LANE1 ^= 1u << 18u;
}
inline uint8_t get_INTERP0_CTRL_LANE1_FORCE_MSB() volatile
{
return (INTERP0_CTRL_LANE1 >> 19u) & 0b11u;
}
inline void set_INTERP0_CTRL_LANE1_FORCE_MSB(uint8_t value) volatile
{
uint32_t curr = INTERP0_CTRL_LANE1;
curr &= ~(0b11u << 19u);
curr |= (value & 0b11u) << 19u;
INTERP0_CTRL_LANE1 = curr;
}
inline void get_INTERP0_CTRL_LANE1(uint8_t &SHIFT, uint8_t &MASK_LSB,
uint8_t &MASK_MSB, bool &SIGNED,
bool &CROSS_INPUT, bool &CROSS_RESULT,
bool &ADD_RAW,
uint8_t &FORCE_MSB) volatile
{
uint32_t curr = INTERP0_CTRL_LANE1;
SHIFT = (curr >> 0u) & 0b11111u;
MASK_LSB = (curr >> 5u) & 0b11111u;
MASK_MSB = (curr >> 10u) & 0b11111u;
SIGNED = curr & (1u << 15u);
CROSS_INPUT = curr & (1u << 16u);
CROSS_RESULT = curr & (1u << 17u);
ADD_RAW = curr & (1u << 18u);
FORCE_MSB = (curr >> 19u) & 0b11u;
}
inline void set_INTERP0_CTRL_LANE1(uint8_t SHIFT, uint8_t MASK_LSB,
uint8_t MASK_MSB, bool SIGNED,
bool CROSS_INPUT, bool CROSS_RESULT,
bool ADD_RAW,
uint8_t FORCE_MSB) volatile
{
uint32_t curr = INTERP0_CTRL_LANE1;
curr &= ~(0b11111u << 0u);
curr |= (SHIFT & 0b11111u) << 0u;
curr &= ~(0b11111u << 5u);
curr |= (MASK_LSB & 0b11111u) << 5u;
curr &= ~(0b11111u << 10u);
curr |= (MASK_MSB & 0b11111u) << 10u;
curr &= ~(0b1u << 15u);
curr |= (SIGNED & 0b1u) << 15u;
curr &= ~(0b1u << 16u);
curr |= (CROSS_INPUT & 0b1u) << 16u;
curr &= ~(0b1u << 17u);
curr |= (CROSS_RESULT & 0b1u) << 17u;
curr &= ~(0b1u << 18u);
curr |= (ADD_RAW & 0b1u) << 18u;
curr &= ~(0b11u << 19u);
curr |= (FORCE_MSB & 0b11u) << 19u;
INTERP0_CTRL_LANE1 = curr;
}
inline uint32_t get_INTERP0_ACCUM0_ADD_INTERP0_ACCUM0_ADD() volatile
{
return (INTERP0_ACCUM0_ADD >> 0u) & 0b111111111111111111111111u;
}
inline void set_INTERP0_ACCUM0_ADD_INTERP0_ACCUM0_ADD(
uint32_t value) volatile
{
uint32_t curr = INTERP0_ACCUM0_ADD;
curr &= ~(0b111111111111111111111111u << 0u);
curr |= (value & 0b111111111111111111111111u) << 0u;
INTERP0_ACCUM0_ADD = curr;
}
inline uint32_t get_INTERP0_ACCUM1_ADD_INTERP0_ACCUM1_ADD() volatile
{
return (INTERP0_ACCUM1_ADD >> 0u) & 0b111111111111111111111111u;
}
inline void set_INTERP0_ACCUM1_ADD_INTERP0_ACCUM1_ADD(
uint32_t value) volatile
{
uint32_t curr = INTERP0_ACCUM1_ADD;
curr &= ~(0b111111111111111111111111u << 0u);
curr |= (value & 0b111111111111111111111111u) << 0u;
INTERP0_ACCUM1_ADD = curr;
}
inline uint8_t get_INTERP1_CTRL_LANE0_SHIFT() volatile
{
return (INTERP1_CTRL_LANE0 >> 0u) & 0b11111u;
}
inline void set_INTERP1_CTRL_LANE0_SHIFT(uint8_t value) volatile
{
uint32_t curr = INTERP1_CTRL_LANE0;
curr &= ~(0b11111u << 0u);
curr |= (value & 0b11111u) << 0u;
INTERP1_CTRL_LANE0 = curr;
}
inline uint8_t get_INTERP1_CTRL_LANE0_MASK_LSB() volatile
{
return (INTERP1_CTRL_LANE0 >> 5u) & 0b11111u;
}
inline void set_INTERP1_CTRL_LANE0_MASK_LSB(uint8_t value) volatile
{
uint32_t curr = INTERP1_CTRL_LANE0;
curr &= ~(0b11111u << 5u);
curr |= (value & 0b11111u) << 5u;
INTERP1_CTRL_LANE0 = curr;
}
inline uint8_t get_INTERP1_CTRL_LANE0_MASK_MSB() volatile
{
return (INTERP1_CTRL_LANE0 >> 10u) & 0b11111u;
}
inline void set_INTERP1_CTRL_LANE0_MASK_MSB(uint8_t value) volatile
{
uint32_t curr = INTERP1_CTRL_LANE0;
curr &= ~(0b11111u << 10u);
curr |= (value & 0b11111u) << 10u;
INTERP1_CTRL_LANE0 = curr;
}
inline bool get_INTERP1_CTRL_LANE0_SIGNED() volatile
{
return INTERP1_CTRL_LANE0 & (1u << 15u);
}
inline void set_INTERP1_CTRL_LANE0_SIGNED() volatile
{
INTERP1_CTRL_LANE0 |= 1u << 15u;
}
inline void clear_INTERP1_CTRL_LANE0_SIGNED() volatile
{
INTERP1_CTRL_LANE0 &= ~(1u << 15u);
}
inline void toggle_INTERP1_CTRL_LANE0_SIGNED() volatile
{
INTERP1_CTRL_LANE0 ^= 1u << 15u;
}
inline bool get_INTERP1_CTRL_LANE0_CROSS_INPUT() volatile
{
return INTERP1_CTRL_LANE0 & (1u << 16u);
}
inline void set_INTERP1_CTRL_LANE0_CROSS_INPUT() volatile
{
INTERP1_CTRL_LANE0 |= 1u << 16u;
}
inline void clear_INTERP1_CTRL_LANE0_CROSS_INPUT() volatile
{
INTERP1_CTRL_LANE0 &= ~(1u << 16u);
}
inline void toggle_INTERP1_CTRL_LANE0_CROSS_INPUT() volatile
{
INTERP1_CTRL_LANE0 ^= 1u << 16u;
}
inline bool get_INTERP1_CTRL_LANE0_CROSS_RESULT() volatile
{
return INTERP1_CTRL_LANE0 & (1u << 17u);
}
inline void set_INTERP1_CTRL_LANE0_CROSS_RESULT() volatile
{
INTERP1_CTRL_LANE0 |= 1u << 17u;
}
inline void clear_INTERP1_CTRL_LANE0_CROSS_RESULT() volatile
{
INTERP1_CTRL_LANE0 &= ~(1u << 17u);
}
inline void toggle_INTERP1_CTRL_LANE0_CROSS_RESULT() volatile
{
INTERP1_CTRL_LANE0 ^= 1u << 17u;
}
inline bool get_INTERP1_CTRL_LANE0_ADD_RAW() volatile
{
return INTERP1_CTRL_LANE0 & (1u << 18u);
}
inline void set_INTERP1_CTRL_LANE0_ADD_RAW() volatile
{
INTERP1_CTRL_LANE0 |= 1u << 18u;
}
inline void clear_INTERP1_CTRL_LANE0_ADD_RAW() volatile
{
INTERP1_CTRL_LANE0 &= ~(1u << 18u);
}
inline void toggle_INTERP1_CTRL_LANE0_ADD_RAW() volatile
{
INTERP1_CTRL_LANE0 ^= 1u << 18u;
}
inline uint8_t get_INTERP1_CTRL_LANE0_FORCE_MSB() volatile
{
return (INTERP1_CTRL_LANE0 >> 19u) & 0b11u;
}
inline void set_INTERP1_CTRL_LANE0_FORCE_MSB(uint8_t value) volatile
{
uint32_t curr = INTERP1_CTRL_LANE0;
curr &= ~(0b11u << 19u);
curr |= (value & 0b11u) << 19u;
INTERP1_CTRL_LANE0 = curr;
}
inline bool get_INTERP1_CTRL_LANE0_CLAMP() volatile
{
return INTERP1_CTRL_LANE0 & (1u << 22u);
}
inline void set_INTERP1_CTRL_LANE0_CLAMP() volatile
{
INTERP1_CTRL_LANE0 |= 1u << 22u;
}
inline void clear_INTERP1_CTRL_LANE0_CLAMP() volatile
{
INTERP1_CTRL_LANE0 &= ~(1u << 22u);
}
inline void toggle_INTERP1_CTRL_LANE0_CLAMP() volatile
{
INTERP1_CTRL_LANE0 ^= 1u << 22u;
}
inline bool get_INTERP1_CTRL_LANE0_OVERF0() volatile
{
return INTERP1_CTRL_LANE0 & (1u << 23u);
}
inline bool get_INTERP1_CTRL_LANE0_OVERF1() volatile
{
return INTERP1_CTRL_LANE0 & (1u << 24u);
}
inline bool get_INTERP1_CTRL_LANE0_OVERF() volatile
{
return INTERP1_CTRL_LANE0 & (1u << 25u);
}
inline void get_INTERP1_CTRL_LANE0(uint8_t &SHIFT, uint8_t &MASK_LSB,
uint8_t &MASK_MSB, bool &SIGNED,
bool &CROSS_INPUT, bool &CROSS_RESULT,
bool &ADD_RAW, uint8_t &FORCE_MSB,
bool &CLAMP, bool &OVERF0, bool &OVERF1,
bool &OVERF) volatile
{
uint32_t curr = INTERP1_CTRL_LANE0;
SHIFT = (curr >> 0u) & 0b11111u;
MASK_LSB = (curr >> 5u) & 0b11111u;
MASK_MSB = (curr >> 10u) & 0b11111u;
SIGNED = curr & (1u << 15u);
CROSS_INPUT = curr & (1u << 16u);
CROSS_RESULT = curr & (1u << 17u);
ADD_RAW = curr & (1u << 18u);
FORCE_MSB = (curr >> 19u) & 0b11u;
CLAMP = curr & (1u << 22u);
OVERF0 = curr & (1u << 23u);
OVERF1 = curr & (1u << 24u);
OVERF = curr & (1u << 25u);
}
inline void set_INTERP1_CTRL_LANE0(uint8_t SHIFT, uint8_t MASK_LSB,
uint8_t MASK_MSB, bool SIGNED,
bool CROSS_INPUT, bool CROSS_RESULT,
bool ADD_RAW, uint8_t FORCE_MSB,
bool CLAMP) volatile
{
uint32_t curr = INTERP1_CTRL_LANE0;
curr &= ~(0b11111u << 0u);
curr |= (SHIFT & 0b11111u) << 0u;
curr &= ~(0b11111u << 5u);
curr |= (MASK_LSB & 0b11111u) << 5u;
curr &= ~(0b11111u << 10u);
curr |= (MASK_MSB & 0b11111u) << 10u;
curr &= ~(0b1u << 15u);
curr |= (SIGNED & 0b1u) << 15u;
curr &= ~(0b1u << 16u);
curr |= (CROSS_INPUT & 0b1u) << 16u;
curr &= ~(0b1u << 17u);
curr |= (CROSS_RESULT & 0b1u) << 17u;
curr &= ~(0b1u << 18u);
curr |= (ADD_RAW & 0b1u) << 18u;
curr &= ~(0b11u << 19u);
curr |= (FORCE_MSB & 0b11u) << 19u;
curr &= ~(0b1u << 22u);
curr |= (CLAMP & 0b1u) << 22u;
INTERP1_CTRL_LANE0 = curr;
}
inline uint8_t get_INTERP1_CTRL_LANE1_SHIFT() volatile
{
return (INTERP1_CTRL_LANE1 >> 0u) & 0b11111u;
}
inline void set_INTERP1_CTRL_LANE1_SHIFT(uint8_t value) volatile
{
uint32_t curr = INTERP1_CTRL_LANE1;
curr &= ~(0b11111u << 0u);
curr |= (value & 0b11111u) << 0u;
INTERP1_CTRL_LANE1 = curr;
}
inline uint8_t get_INTERP1_CTRL_LANE1_MASK_LSB() volatile
{
return (INTERP1_CTRL_LANE1 >> 5u) & 0b11111u;
}
inline void set_INTERP1_CTRL_LANE1_MASK_LSB(uint8_t value) volatile
{
uint32_t curr = INTERP1_CTRL_LANE1;
curr &= ~(0b11111u << 5u);
curr |= (value & 0b11111u) << 5u;
INTERP1_CTRL_LANE1 = curr;
}
inline uint8_t get_INTERP1_CTRL_LANE1_MASK_MSB() volatile
{
return (INTERP1_CTRL_LANE1 >> 10u) & 0b11111u;
}
inline void set_INTERP1_CTRL_LANE1_MASK_MSB(uint8_t value) volatile
{
uint32_t curr = INTERP1_CTRL_LANE1;
curr &= ~(0b11111u << 10u);
curr |= (value & 0b11111u) << 10u;
INTERP1_CTRL_LANE1 = curr;
}
inline bool get_INTERP1_CTRL_LANE1_SIGNED() volatile
{
return INTERP1_CTRL_LANE1 & (1u << 15u);
}
inline void set_INTERP1_CTRL_LANE1_SIGNED() volatile
{
INTERP1_CTRL_LANE1 |= 1u << 15u;
}
inline void clear_INTERP1_CTRL_LANE1_SIGNED() volatile
{
INTERP1_CTRL_LANE1 &= ~(1u << 15u);
}
inline void toggle_INTERP1_CTRL_LANE1_SIGNED() volatile
{
INTERP1_CTRL_LANE1 ^= 1u << 15u;
}
inline bool get_INTERP1_CTRL_LANE1_CROSS_INPUT() volatile
{
return INTERP1_CTRL_LANE1 & (1u << 16u);
}
inline void set_INTERP1_CTRL_LANE1_CROSS_INPUT() volatile
{
INTERP1_CTRL_LANE1 |= 1u << 16u;
}
inline void clear_INTERP1_CTRL_LANE1_CROSS_INPUT() volatile
{
INTERP1_CTRL_LANE1 &= ~(1u << 16u);
}
inline void toggle_INTERP1_CTRL_LANE1_CROSS_INPUT() volatile
{
INTERP1_CTRL_LANE1 ^= 1u << 16u;
}
inline bool get_INTERP1_CTRL_LANE1_CROSS_RESULT() volatile
{
return INTERP1_CTRL_LANE1 & (1u << 17u);
}
inline void set_INTERP1_CTRL_LANE1_CROSS_RESULT() volatile
{
INTERP1_CTRL_LANE1 |= 1u << 17u;
}
inline void clear_INTERP1_CTRL_LANE1_CROSS_RESULT() volatile
{
INTERP1_CTRL_LANE1 &= ~(1u << 17u);
}
inline void toggle_INTERP1_CTRL_LANE1_CROSS_RESULT() volatile
{
INTERP1_CTRL_LANE1 ^= 1u << 17u;
}
inline bool get_INTERP1_CTRL_LANE1_ADD_RAW() volatile
{
return INTERP1_CTRL_LANE1 & (1u << 18u);
}
inline void set_INTERP1_CTRL_LANE1_ADD_RAW() volatile
{
INTERP1_CTRL_LANE1 |= 1u << 18u;
}
inline void clear_INTERP1_CTRL_LANE1_ADD_RAW() volatile
{
INTERP1_CTRL_LANE1 &= ~(1u << 18u);
}
inline void toggle_INTERP1_CTRL_LANE1_ADD_RAW() volatile
{
INTERP1_CTRL_LANE1 ^= 1u << 18u;
}
inline uint8_t get_INTERP1_CTRL_LANE1_FORCE_MSB() volatile
{
return (INTERP1_CTRL_LANE1 >> 19u) & 0b11u;
}
inline void set_INTERP1_CTRL_LANE1_FORCE_MSB(uint8_t value) volatile
{
uint32_t curr = INTERP1_CTRL_LANE1;
curr &= ~(0b11u << 19u);
curr |= (value & 0b11u) << 19u;
INTERP1_CTRL_LANE1 = curr;
}
inline void get_INTERP1_CTRL_LANE1(uint8_t &SHIFT, uint8_t &MASK_LSB,
uint8_t &MASK_MSB, bool &SIGNED,
bool &CROSS_INPUT, bool &CROSS_RESULT,
bool &ADD_RAW,
uint8_t &FORCE_MSB) volatile
{
uint32_t curr = INTERP1_CTRL_LANE1;
SHIFT = (curr >> 0u) & 0b11111u;
MASK_LSB = (curr >> 5u) & 0b11111u;
MASK_MSB = (curr >> 10u) & 0b11111u;
SIGNED = curr & (1u << 15u);
CROSS_INPUT = curr & (1u << 16u);
CROSS_RESULT = curr & (1u << 17u);
ADD_RAW = curr & (1u << 18u);
FORCE_MSB = (curr >> 19u) & 0b11u;
}
inline void set_INTERP1_CTRL_LANE1(uint8_t SHIFT, uint8_t MASK_LSB,
uint8_t MASK_MSB, bool SIGNED,
bool CROSS_INPUT, bool CROSS_RESULT,
bool ADD_RAW,
uint8_t FORCE_MSB) volatile
{
uint32_t curr = INTERP1_CTRL_LANE1;
curr &= ~(0b11111u << 0u);
curr |= (SHIFT & 0b11111u) << 0u;
curr &= ~(0b11111u << 5u);
curr |= (MASK_LSB & 0b11111u) << 5u;
curr &= ~(0b11111u << 10u);
curr |= (MASK_MSB & 0b11111u) << 10u;
curr &= ~(0b1u << 15u);
curr |= (SIGNED & 0b1u) << 15u;
curr &= ~(0b1u << 16u);
curr |= (CROSS_INPUT & 0b1u) << 16u;
curr &= ~(0b1u << 17u);
curr |= (CROSS_RESULT & 0b1u) << 17u;
curr &= ~(0b1u << 18u);
curr |= (ADD_RAW & 0b1u) << 18u;
curr &= ~(0b11u << 19u);
curr |= (FORCE_MSB & 0b11u) << 19u;
INTERP1_CTRL_LANE1 = curr;
}
inline uint32_t get_INTERP1_ACCUM0_ADD_INTERP1_ACCUM0_ADD() volatile
{
return (INTERP1_ACCUM0_ADD >> 0u) & 0b111111111111111111111111u;
}
inline void set_INTERP1_ACCUM0_ADD_INTERP1_ACCUM0_ADD(
uint32_t value) volatile
{
uint32_t curr = INTERP1_ACCUM0_ADD;
curr &= ~(0b111111111111111111111111u << 0u);
curr |= (value & 0b111111111111111111111111u) << 0u;
INTERP1_ACCUM0_ADD = curr;
}
inline uint32_t get_INTERP1_ACCUM1_ADD_INTERP1_ACCUM1_ADD() volatile
{
return (INTERP1_ACCUM1_ADD >> 0u) & 0b111111111111111111111111u;
}
inline void set_INTERP1_ACCUM1_ADD_INTERP1_ACCUM1_ADD(
uint32_t value) volatile
{
uint32_t curr = INTERP1_ACCUM1_ADD;
curr &= ~(0b111111111111111111111111u << 0u);
curr |= (value & 0b111111111111111111111111u) << 0u;
INTERP1_ACCUM1_ADD = curr;
}
};
static_assert(sizeof(sio) == sio::size);
static volatile sio *const SIO = reinterpret_cast<sio *>(0xd0000000);
}; // namespace RP2040