addrmap MAX32650_SPI {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="FIFOData";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } DATA_data[3:0];
    } FIFOData @ 0x0;
    reg {
        name="MasterSignalsControl";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } CTRL0_spi_en[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
            } CTRL0_mm_en[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CTRL0_ss_io[4:4];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woclr;
            } CTRL0_start[5:5];
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
            } CTRL0_ss_ctrl[8:8];
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
            } CTRL0_ss_sel[19:16];
    } MasterSignalsControl @ 0x4;
    reg {
        name="TrasmitPacketSize";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } CTRL1_tx_num_char[15:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CTRL1_rx_num_char[31:16];
    } TrasmitPacketSize @ 0x8;
    reg {
        name="StaticConfiguration";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CTRL2_clk_pha[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CTRL2_clk_pol[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } CTRL2_num_bits[11:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CTRL2_bus_width[13:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CTRL2_three_wire[15:15];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CTRL2_ss_pol[19:16];
    } StaticConfiguration @ 0xc;
    reg {
        name="SlaveSelectTiming";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } SlaveSelectTiming @ 0x10;
    reg {
        name="MasterClockConfiguration";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } MasterClockConfiguration @ 0x14;
    reg {
        name="DMAControl";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } DMAControl @ 0x1c;
    reg {
        name="InterruptStatusFlags";
        desc = "This register has the following custom Renode callbacks: Change";
        regwidth=0x20;
            field {
                sw = rw;
                onwrite = woclr;
            } INT_FL_tx_level[0:0];
            field {
                sw = rw;
                onwrite = woclr;
            } INT_FL_tx_empty[1:1];
            field {
                sw = rw;
                onwrite = woclr;
            } INT_FL_rx_level[2:2];
            field {
                sw = rw;
                onwrite = woclr;
            } INT_FL_rx_full[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } INT_FL_ssa[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } INT_FL_ssd[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } INT_FL_fault[8:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } INT_FL_abort[9:9];
            field {
                sw = rw;
                onwrite = woclr;
            } INT_FL_m_done[11:11];
            field {
                sw = rw;
                onwrite = woclr;
            } INT_FL_tx_ovr[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } INT_FL_tx_und[13:13];
            field {
                sw = rw;
                onwrite = woclr;
            } INT_FL_rx_ovr[14:14];
            field {
                sw = rw;
                onwrite = woclr;
            } INT_EN_rx_und[15:15];
    } InterruptStatusFlags @ 0x20;
    reg {
        name="InterruptEnable";
        desc = "This register has the following custom Renode callbacks: Change";
        regwidth=0x20;
            field {
                sw = rw;
            } INT_EN_tx_level[0:0];
            field {
                sw = rw;
            } INT_EN_tx_empty[1:1];
            field {
                sw = rw;
            } INT_EN_rx_level[2:2];
            field {
                sw = rw;
            } INT_EN_rx_full[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } INT_EN_ssa[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } INT_EN_ssd[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } INT_EN_fault[8:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } INT_EN_abort[9:9];
            field {
                sw = rw;
            } INT_EN_m_done[11:11];
            field {
                sw = rw;
            } INT_EN_tx_ovr[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } INT_EN_tx_und[13:13];
            field {
                sw = rw;
            } INT_EN_rx_ovr[14:14];
            field {
                sw = rw;
            } INT_EN_rx_und[15:15];
    } InterruptEnable @ 0x24;
    reg {
        name="WakeupStatusFlags";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } WakeupStatusFlags @ 0x28;
    reg {
        name="WakeupEnable";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } WakeupEnable @ 0x2c;
    reg {
        name="ActiveStatus";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } STAT_busy[0:0];
    } ActiveStatus @ 0x30;
} Registers_addrmap;


};