addrmap STM32L0_RCC {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="ClockControl";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
            } HSI16ON[0:0];
            field {
                sw = rw;
            } HSI16KERON[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } HSI16RDYF[2:2];
            field {
                sw = rw;
            } HSI16DIVEN[3:3];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } HSI16DIVF[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } HSI16OUTEN[5:5];
            field {
                sw = rw;
                reset=1'b1;
            } MSION[8:8];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
                reset=1'b1;
            } MSIRDY[9:9];
            field {
                sw = rw;
            } HSEON[16:16];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } HSERDY[17:17];
            field {
                sw = rw;
            } HSEBYP[18:18];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CSSHSEON[19:19];
            field {
                sw = rw;
            } RTCPRE[21:20];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } PLLON[24:24];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } PLLRDY[25:25];
    } ClockControl @ 0x0;
    reg {
        name="InternalClockSourcesCalibration";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
            } HSI16CAL[7:0];
            field {
                sw = rw;
                reset=5'b10000;
            } HSI16TRIM[12:8];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
                reset=3'b101;
            } MSIRANGE[15:13];
            field {
                sw = rw;
            } MSICAL[23:16];
            field {
                sw = rw;
            } MSITRIM[31:24];
    } InternalClockSourcesCalibration @ 0x4;
    reg {
        name="ClockRecoveryRc";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
            } HSI48ON[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } HSI48RDY[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } HSI48DIV6EN[2:2];
            field {
                sw = rw;
            } HSI48CAL[15:8];
    } ClockRecoveryRc @ 0x8;
    reg {
        name="ClockConfigurationCfgr";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
            } SW[1:0];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } SWS[3:2];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } HPRE[7:4];
            field {
                sw = rw;
            } PPRE1[10:8];
            field {
                sw = rw;
            } PPRE2[13:11];
            field {
                sw = rw;
            } STOPWUCK[15:15];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } PLLSRC[16:16];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } PLLMUL[21:18];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } PLLDIV[23:22];
            field {
                sw = rw;
            } MCOSEL[27:24];
            field {
                sw = rw;
            } MCOPRE[30:28];
    } ClockConfigurationCfgr @ 0xc;
    reg {
        name="ClockInterruptEnable";
        regwidth=0x20;
            field {
                sw = rw;
            } LSIRDYIE[0:0];
            field {
                sw = rw;
            } LSERDYIE[1:1];
            field {
                sw = rw;
            } HSI16RDYIE[2:2];
            field {
                sw = rw;
            } HSERDYIE[3:3];
            field {
                sw = rw;
            } PLLRDYIE[4:4];
            field {
                sw = rw;
            } MSIRDYIE[5:5];
            field {
                sw = rw;
            } HSI48RDYIE[6:6];
            field {
                sw = rw;
            } CSSLSE[7:7];
    } ClockInterruptEnable @ 0x10;
    reg {
        name="ClockInterruptFlag";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } LSIRDYF[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } LSERDYF[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } HSI16RDYF[2:2];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } HSERDYF[3:3];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } PLLRDYF[4:4];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } MSIRDYF[5:5];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } HSI48RDYF[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CSSLSEF[7:7];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CSSHSEF[8:8];
    } ClockInterruptFlag @ 0x14;
    reg {
        name="ClockInterruptClear";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } LSIRDYC[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } LSERDYC[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } HSI16RDYC[2:2];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } HSERDYC[3:3];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } PLLRDYC[4:4];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } MSIRDYC[5:5];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } HSI48RDYC[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CSSLSEC[7:7];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CSSHSEC[8:8];
    } ClockInterruptClear @ 0x18;
    reg {
        name="IoPortReset";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } IOPARST[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } IOPBRST[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } IOPCRST[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } IOPDRST[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } IOPERST[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } IOPHRST[7:7];
    } IoPortReset @ 0x1c;
    reg {
        name="AhbPeripheralReset";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DMARST[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } MIFRST[8:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CRCRST[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TSCRST[16:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RNGRST[20:20];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CRYPTRST[24:24];
    } AhbPeripheralReset @ 0x20;
    reg {
        name="Apb2PeripheralReset";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SYSCFGRST[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TIM21RST[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TIM22RST[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ADCRST[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SPI1RST[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } USART1RST[14:14];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DBGRST[22:22];
    } Apb2PeripheralReset @ 0x24;
    reg {
        name="Apb1PeripheralReset";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TIM2RST[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TIM3RST[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TIM6RST[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TIM7RST[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LCDRST[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WWDGRST[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SPI2RST[14:14];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } USART2RST[17:17];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LPUART1RST[18:18];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } USART4RST[19:19];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } USART5RST[20:20];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } I2C1RST[21:21];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } I2C2RST[22:22];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } USBRST[23:23];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CRSRST[27:27];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRRST[28:28];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DACRST[29:29];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } I2C3RST[30:30];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } LPTIM1RST[31:31];
    } Apb1PeripheralReset @ 0x28;
    reg {
        name="IoPortClockEnable";
        regwidth=0x20;
            field {
                sw = rw;
            } IOPAEN[0:0];
            field {
                sw = rw;
            } IOPBEN[1:1];
            field {
                sw = rw;
            } IOPCEN[2:2];
            field {
                sw = rw;
            } IOPDEN[3:3];
            field {
                sw = rw;
            } IOPEEN[4:4];
            field {
                sw = rw;
            } IOPHEN[7:7];
    } IoPortClockEnable @ 0x2c;
    reg {
        name="AhbPeripheralClockEnable";
        regwidth=0x20;
            field {
                sw = rw;
            } DMAEN[0:0];
            field {
                sw = rw;
                reset=1'b1;
            } MIFEN[8:8];
            field {
                sw = rw;
            } CRCEN[12:12];
            field {
                sw = rw;
            } TSCEN[16:16];
            field {
                sw = rw;
            } RNGEN[20:20];
            field {
                sw = rw;
            } CRYPEN[24:24];
    } AhbPeripheralClockEnable @ 0x30;
    reg {
        name="Apb2PeripheralClockEnable";
        regwidth=0x20;
            field {
                sw = rw;
            } SYSCFEN[0:0];
            field {
                sw = rw;
            } TIM21EN[2:2];
            field {
                sw = rw;
            } TIM22EN[5:5];
            field {
                sw = rw;
            } FWEN[7:7];
            field {
                sw = rw;
            } ADCEN[9:9];
            field {
                sw = rw;
            } SPI1EN[12:12];
            field {
                sw = rw;
            } USART1EN[14:14];
            field {
                sw = rw;
            } DBGEN[22:22];
    } Apb2PeripheralClockEnable @ 0x34;
    reg {
        name="Apb1PeripheralClockEnable";
        regwidth=0x20;
            field {
                sw = rw;
            } TIM2EN[0:0];
            field {
                sw = rw;
            } TIM3EN[1:1];
            field {
                sw = rw;
            } TIM6EN[4:4];
            field {
                sw = rw;
            } TIM7EN[5:5];
            field {
                sw = rw;
            } LCDEN[9:9];
            field {
                sw = rw;
            } WWDGEN[11:11];
            field {
                sw = rw;
            } SPI2EN[14:14];
            field {
                sw = rw;
            } USART2EN[17:17];
            field {
                sw = rw;
            } LPUART1EN[18:18];
            field {
                sw = rw;
            } USART4EN[19:19];
            field {
                sw = rw;
            } USART5EN[20:20];
            field {
                sw = rw;
            } I2C1EN[21:21];
            field {
                sw = rw;
            } I2C2EN[22:22];
            field {
                sw = rw;
            } USBEN[23:23];
            field {
                sw = rw;
            } CRSEN[27:27];
            field {
                sw = rw;
            } PWREN[28:28];
            field {
                sw = rw;
            } DACEN[29:29];
            field {
                sw = rw;
            } I2C3EN[30:30];
            field {
                sw = rw;
            } LPTIM1EN[31:31];
    } Apb1PeripheralClockEnable @ 0x38;
    reg {
        name="IoPortClockEnableInSleepMode";
        regwidth=0x20;
            field {
                sw = rw;
            } IOPASMEN[0:0];
            field {
                sw = rw;
            } IOPBSMEN[1:1];
            field {
                sw = rw;
            } IOPCSMEN[2:2];
            field {
                sw = rw;
            } IOPDSMEN[3:3];
            field {
                sw = rw;
            } IOPESMEN[4:4];
            field {
                sw = rw;
            } IOPHSMEN[7:7];
    } IoPortClockEnableInSleepMode @ 0x3c;
    reg {
        name="AhbPeripheralClockEnableInSleepMode";
        regwidth=0x20;
            field {
                sw = rw;
            } DMASMEN[0:0];
            field {
                sw = rw;
                reset=1'b1;
            } MIFSMEN[8:8];
            field {
                sw = rw;
            } CRCSMEN[12:12];
            field {
                sw = rw;
            } TSCSMEN[16:16];
            field {
                sw = rw;
            } RNGSMEN[20:20];
            field {
                sw = rw;
            } CRYPSMEN[24:24];
    } AhbPeripheralClockEnableInSleepMode @ 0x40;
    reg {
        name="Apb2PeripheralClockEnableInSleepMode";
        regwidth=0x20;
            field {
                sw = rw;
            } SYSCFSMEN[0:0];
            field {
                sw = rw;
            } TIM21SMEN[2:2];
            field {
                sw = rw;
            } TIM22SMEN[5:5];
            field {
                sw = rw;
            } FWSMEN[7:7];
            field {
                sw = rw;
            } ADCSMEN[9:9];
            field {
                sw = rw;
            } SPI1SMEN[12:12];
            field {
                sw = rw;
            } USART1SMEN[14:14];
            field {
                sw = rw;
            } DBGSMEN[22:22];
    } Apb2PeripheralClockEnableInSleepMode @ 0x44;
    reg {
        name="Apb1PeripheralClockEnableInSleepMode";
        regwidth=0x20;
            field {
                sw = rw;
            } TIM2SMEN[0:0];
            field {
                sw = rw;
            } TIM3SMEN[1:1];
            field {
                sw = rw;
            } TIM6SMEN[4:4];
            field {
                sw = rw;
            } TIM7SMEN[5:5];
            field {
                sw = rw;
            } LCDSMEN[9:9];
            field {
                sw = rw;
            } WWDGSMEN[11:11];
            field {
                sw = rw;
            } SPI2SMEN[14:14];
            field {
                sw = rw;
            } USART2SMEN[17:17];
            field {
                sw = rw;
            } LPUART1SMEN[18:18];
            field {
                sw = rw;
            } USART4SMEN[19:19];
            field {
                sw = rw;
            } USART5SMEN[20:20];
            field {
                sw = rw;
            } I2C1SMEN[21:21];
            field {
                sw = rw;
            } I2C2SMEN[22:22];
            field {
                sw = rw;
            } USBSMEN[23:23];
            field {
                sw = rw;
            } CRSSMEN[27:27];
            field {
                sw = rw;
            } PWRSMEN[28:28];
            field {
                sw = rw;
            } DACSMEN[29:29];
            field {
                sw = rw;
            } I2C3SMEN[30:30];
            field {
                sw = rw;
            } LPTIM1SMEN[31:31];
    } Apb1PeripheralClockEnableInSleepMode @ 0x48;
    reg {
        name="ClockConfigurationCcipr";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
            } USART1SEL[1:0];
            field {
                sw = rw;
            } USART2SEL[3:2];
            field {
                sw = rw;
            } LPUART1SEL[11:10];
            field {
                sw = rw;
            } I2C1SEL[13:12];
            field {
                sw = rw;
            } I2C3SEL[17:16];
            field {
                sw = rw;
            } LPTIM1SEL[19:18];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } HSI48SEL[26:26];
    } ClockConfigurationCcipr @ 0x4c;
    reg {
        name="ControlStatus";
        regwidth=0x20;
            field {
                sw = rw;
            } LSION[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } LSIRDY[1:1];
            field {
                sw = rw;
            } LSEON[8:8];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } LSERDY[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LSEBYP[10:10];
            field {
                sw = rw;
            } LSEDRV[12:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CSSLSEON[13:13];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CSSLSED[14:14];
            field {
                sw = rw;
            } RTCSEL[17:16];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } RTCEN[18:18];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } RTCRST[19:19];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RMVF[23:23];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FWRSTF[24:24];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OBLRSTF[25:25];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } PINRSTF[26:26];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } PORRSTF[27:27];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SFTRSTF[28:28];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } IWDGRSTF[29:29];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WWDGRSTF[30:30];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LPWRRSTF[31:31];
    } ControlStatus @ 0x50;
} Registers_addrmap;


};