addrmap STM32LTDC {

/* Some conversion errors detected, this might mean that the peripheral's registers structure in this file is incomplete.
 * Please refer to logs and comments in the file for more information.
 * 
 * Register "SyncronizationSizeConfigurationRegister" overlaps another register at the same offset (0x8) and will be skipped, as it is illegal in SystemRDL.
 * Register "BackPorchConfigurationRegister" overlaps another register at the same offset (0xc) and will be skipped, as it is illegal in SystemRDL.
 * Register "ActiveWidthConfigurationRegister" overlaps another register at the same offset (0x10) and will be skipped, as it is illegal in SystemRDL.
 * Register "TotalWidthConfigurationRegister" overlaps another register at the same offset (0x14) and will be skipped, as it is illegal in SystemRDL.
 * Register "GlobalControlRegister" overlaps another register at the same offset (0x18) and will be skipped, as it is illegal in SystemRDL.
 * Register "BackgroundColorConfigurationRegister" overlaps another register at the same offset (0x2c) and will be skipped, as it is illegal in SystemRDL.
 * Register "InterruptEnableRegister" overlaps another register at the same offset (0x34) and will be skipped, as it is illegal in SystemRDL.
 */

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="Control";
        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];
    } Control @ 0x4;
    reg {
        name="WindowHorizontalPositionConfigurationRegister";
        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];
    } WindowHorizontalPositionConfigurationRegister @ 0x8;
    /* Conversion error: Register "SyncronizationSizeConfigurationRegister" overlaps another register at the same offset (0x8) and will be skipped, as it is illegal in SystemRDL.
    reg {
        name="SyncronizationSizeConfigurationRegister";
        regwidth=0x20;

    } SyncronizationSizeConfigurationRegister @ 0x8;
    */
    reg {
        name="WindowVerticalPositionConfigurationRegister";
        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];
    } WindowVerticalPositionConfigurationRegister @ 0xc;
    /* Conversion error: Register "BackPorchConfigurationRegister" overlaps another register at the same offset (0xc) and will be skipped, as it is illegal in SystemRDL.
    reg {
        name="BackPorchConfigurationRegister";
        regwidth=0x20;

    } BackPorchConfigurationRegister @ 0xc;
    */
    reg {
        name="ColorKeyingConfigurationRegister";
        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];
    } ColorKeyingConfigurationRegister @ 0x10;
    /* Conversion error: Register "ActiveWidthConfigurationRegister" overlaps another register at the same offset (0x10) and will be skipped, as it is illegal in SystemRDL.
    reg {
        name="ActiveWidthConfigurationRegister";
        regwidth=0x20;

    } ActiveWidthConfigurationRegister @ 0x10;
    */
    reg {
        name="PixelFormatConfigurationRegister";
        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];
    } PixelFormatConfigurationRegister @ 0x14;
    /* Conversion error: Register "TotalWidthConfigurationRegister" overlaps another register at the same offset (0x14) and will be skipped, as it is illegal in SystemRDL.
    reg {
        name="TotalWidthConfigurationRegister";
        regwidth=0x20;

    } TotalWidthConfigurationRegister @ 0x14;
    */
    reg {
        name="ConstantAlphaConfigurationRegister";
        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];
    } ConstantAlphaConfigurationRegister @ 0x18;
    /* Conversion error: Register "GlobalControlRegister" overlaps another register at the same offset (0x18) and will be skipped, as it is illegal in SystemRDL.
    reg {
        name="GlobalControlRegister";
        regwidth=0x20;

    } GlobalControlRegister @ 0x18;
    */
    reg {
        name="DefaultColorConfigurationRegister";
        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];
    } DefaultColorConfigurationRegister @ 0x1c;
    reg {
        name="BlendingFactorConfigurationRegister";
        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];
    } BlendingFactorConfigurationRegister @ 0x20;
    external reg {
        name="ShadowReloadConfigurationRegister";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
                onwrite = woclr;
            } IMR[0:0];
            field {
                desc = "This field uses access mode that cannot be resolved at compile-time.";
                sw = rw;
                onwrite = wuser;
                onread = ruser;
            } VBR[1:1];
    } ShadowReloadConfigurationRegister @ 0x24;
    reg {
        name="ColorFrameBufferAddressRegister";
        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];
    } ColorFrameBufferAddressRegister @ 0x2c;
    /* Conversion error: Register "BackgroundColorConfigurationRegister" overlaps another register at the same offset (0x2c) and will be skipped, as it is illegal in SystemRDL.
    reg {
        name="BackgroundColorConfigurationRegister";
        regwidth=0x20;

    } BackgroundColorConfigurationRegister @ 0x2c;
    */
    reg {
        name="ColorFrameBufferLengthRegister";
        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];
    } ColorFrameBufferLengthRegister @ 0x30;
    reg {
        name="ColorFrameBufferLineNumberRegister";
        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];
    } ColorFrameBufferLineNumberRegister @ 0x34;
    /* Conversion error: Register "InterruptEnableRegister" overlaps another register at the same offset (0x34) and will be skipped, as it is illegal in SystemRDL.
    reg {
        name="InterruptEnableRegister";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;

    } InterruptEnableRegister @ 0x34;
    */
    reg {
        name="InterruptStatusRegister";
        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];
    } InterruptStatusRegister @ 0x38;
    reg {
        name="InterruptClearRegister";
        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];
    } InterruptClearRegister @ 0x3c;
    reg {
        name="LineInterruptPositionConfigurationRegister";
        regwidth=0x20;
            field {
                sw = rw;
            } LIPOS[10:0];
    } LineInterruptPositionConfigurationRegister @ 0x40;
    reg {
        name="CLUTWriteRegister";
        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];
    } CLUTWriteRegister @ 0x44;
} Register_addrmap;


};