addrmap MAX3421E {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="ReceiveFifo";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } data[7:0];
    } ReceiveFifo @ 0x1;
    reg {
        name="SendFifo";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } data[7:0];
    } SendFifo @ 0x2;
    reg {
        name="SetupFifo";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } setup_data[7:0];
    } SetupFifo @ 0x4;
    reg {
        name="ReceiveQueueLength";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } count[6:0];
    } ReceiveQueueLength @ 0x6;
    reg {
        name="SendQueueLength";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x8;
            field {
                sw = rw;
            } count[6:0];
    } SendQueueLength @ 0x7;
    reg {
        name="USBIrqPending";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x8;
            field {
                sw = rw;
                onwrite = woclr;
            } OSCOKIRQ[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } NOVBUSIRQ[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } VBUSIRQ[6:6];
    } USBIrqPending @ 0xd;
    reg {
        name="USBIrqEnabled";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x8;
            field {
                sw = rw;
            } OSCOKIE[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } NOVBUSIE[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } VBUSIE[6:6];
    } USBIrqEnabled @ 0xe;
    reg {
        name="USBControl";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRDOWN[4:4];
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
            } Chip_Reset[5:5];
    } USBControl @ 0xf;
    reg {
        name="CPUControl";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x8;
            field {
                sw = rw;
            } IE[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PULSEWID[7:6];
    } CPUControl @ 0x10;
    reg {
        name="PinControl";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } GPXA[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } GPXB[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } POSINT[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } INTLEVEL[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FDUPSPI[4:4];
    } PinControl @ 0x11;
    reg {
        name="Revision";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } No_name_1[7:0];
    } Revision @ 0x12;
    reg {
        name="IOPins1";
        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];
    } IOPins1 @ 0x14;
    reg {
        name="IOPins2";
        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];
    } IOPins2 @ 0x15;
    reg {
        name="GeneralPurposeInIrqPending";
        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];
    } GeneralPurposeInIrqPending @ 0x16;
    reg {
        name="GeneralPurposeInIrqEnabled";
        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];
    } GeneralPurposeInIrqEnabled @ 0x17;
    reg {
        name="GeneralPurposeInIrqPolarity";
        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];
    } GeneralPurposeInIrqPolarity @ 0x18;
    reg {
        name="HostIrqPending";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x8;
            field {
                sw = rw;
                onwrite = woclr;
            } BUSEVENTIRQ[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RWUIRQ___Remote_Wakeup_Interrupt_Request[1:1];
            field {
                sw = rw;
                onwrite = woclr;
            } RCVDAVIRQ[2:2];
            field {
                sw = r;
                reset=1'b1;
            } SNDAVIRQ[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SUSDNIRQ___Suspend_operation_Done_Interrupt_Request[4:4];
            field {
                sw = rw;
                onwrite = woclr;
            } CONDETIRQ[5:5];
            field {
                sw = rw;
                onwrite = woclr;
            } FRAMEIRQ[6:6];
            field {
                sw = rw;
                onwrite = woclr;
            } HXFRDNIRQ[7:7];
    } HostIrqPending @ 0x19;
    reg {
        name="HostIrqEnabled";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x8;
            field {
                sw = rw;
            } BUSEVENTIE[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RWUIE___Remote_Wakeup_Interrupt_Enable[1:1];
            field {
                sw = rw;
            } RCVDAVIE[2:2];
            field {
                sw = rw;
            } SNDAVIE[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SUSDNIE___Suspend_operation_Done_Interrupt_Enable[4:4];
            field {
                sw = rw;
            } CONDETIE[5:5];
            field {
                sw = rw;
            } FRAMEIE[6:6];
            field {
                sw = rw;
            } HXFRDNIE[7:7];
    } HostIrqEnabled @ 0x1a;
    reg {
        name="Mode";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x8;
            field {
                sw = rw;
            } host_mode[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LOWSPEED[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } HUBPRE___Send_the_PRE_PID_to_a_LS_device_operating_through_a_USB_hub[2:2];
            field {
                sw = rw;
            } SOFKAENAB[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SEPIRQ___Provides_the_GPIN_IRQS_on_a_separate_pin_GPX[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DELAYISO___Delay_data_transfer_to_an_ISOCHRONOUS_endpoint_until_the_next_frame[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DMPULLDN___Connect_internal_15k_resistor_from_D__to_ground[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DPPULLDN___Connect_internal_15k_resistor_from_D_to_ground[7:7];
    } Mode @ 0x1b;
    reg {
        name="PeripheralAddress";
        regwidth=0x8;
            field {
                sw = rw;
            } address[6:0];
    } PeripheralAddress @ 0x1c;
    reg {
        name="HostControl";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } bus_reset[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FRMRST___Reset_the_SOF_frame_counter[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SAMPLEBUS___Sample_the_state_of_the_USB_bus[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SIGRSM___Signal_a_bus_resume_event[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RCVTOG___Set_or_clear_the_data_toggle_value_for_a_data_transfer[5:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SNDTOG___Set_or_clear_the_data_toggle_value_for_a_data_transfer[7:6];
    } HostControl @ 0x1d;
    reg {
        name="HostTransfer";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x8;
            field {
                sw = rw;
            } ep[3:0];
            field {
                sw = rw;
            } setup[4:4];
            field {
                sw = rw;
            } outnin[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ISO[6:6];
            field {
                sw = rw;
            } hs[7:7];
    } HostTransfer @ 0x1e;
    reg {
        name="HostResult";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } HRSLT___Host_result[3:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RCVTOGRD___Resulting_data_toggle_value_for_IN_transfers[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SNDTOGRD___Resulting_data_toggle_value_for_OUT_transfers[5:5];
            field {
                sw = rw;
            } KSTATUS___Sample_the_state_of_the_USB_bus[6:6];
            field {
                sw = rw;
            } JSTATUS___Sample_the_state_of_the_USB_bus[7:7];
    } HostResult @ 0x1f;
} RegisterType_addrmap;


};