10ee1e1f4SSubbaraya Sundeep /* 20ee1e1f4SSubbaraya Sundeep * Microsemi SmartFusion2 SYSREG 30ee1e1f4SSubbaraya Sundeep * 40ee1e1f4SSubbaraya Sundeep * Copyright (c) 2017 Subbaraya Sundeep <sundeep.lkml@gmail.com> 50ee1e1f4SSubbaraya Sundeep * 60ee1e1f4SSubbaraya Sundeep * Permission is hereby granted, free of charge, to any person obtaining a copy 70ee1e1f4SSubbaraya Sundeep * of this software and associated documentation files (the "Software"), to deal 80ee1e1f4SSubbaraya Sundeep * in the Software without restriction, including without limitation the rights 90ee1e1f4SSubbaraya Sundeep * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 100ee1e1f4SSubbaraya Sundeep * copies of the Software, and to permit persons to whom the Software is 110ee1e1f4SSubbaraya Sundeep * furnished to do so, subject to the following conditions: 120ee1e1f4SSubbaraya Sundeep * 130ee1e1f4SSubbaraya Sundeep * The above copyright notice and this permission notice shall be included in 140ee1e1f4SSubbaraya Sundeep * all copies or substantial portions of the Software. 150ee1e1f4SSubbaraya Sundeep * 160ee1e1f4SSubbaraya Sundeep * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 170ee1e1f4SSubbaraya Sundeep * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 180ee1e1f4SSubbaraya Sundeep * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 190ee1e1f4SSubbaraya Sundeep * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 200ee1e1f4SSubbaraya Sundeep * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 210ee1e1f4SSubbaraya Sundeep * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 220ee1e1f4SSubbaraya Sundeep * THE SOFTWARE. 230ee1e1f4SSubbaraya Sundeep */ 240ee1e1f4SSubbaraya Sundeep 250ee1e1f4SSubbaraya Sundeep #ifndef HW_MSF2_SYSREG_H 260ee1e1f4SSubbaraya Sundeep #define HW_MSF2_SYSREG_H 270ee1e1f4SSubbaraya Sundeep 280ee1e1f4SSubbaraya Sundeep #include "hw/sysbus.h" 29db1015e9SEduardo Habkost #include "qom/object.h" 300ee1e1f4SSubbaraya Sundeep 310ee1e1f4SSubbaraya Sundeep enum { 320ee1e1f4SSubbaraya Sundeep ESRAM_CR = 0x00 / 4, 330ee1e1f4SSubbaraya Sundeep ESRAM_MAX_LAT, 340ee1e1f4SSubbaraya Sundeep DDR_CR, 350ee1e1f4SSubbaraya Sundeep ENVM_CR, 360ee1e1f4SSubbaraya Sundeep ENVM_REMAP_BASE_CR, 370ee1e1f4SSubbaraya Sundeep ENVM_REMAP_FAB_CR, 380ee1e1f4SSubbaraya Sundeep CC_CR, 390ee1e1f4SSubbaraya Sundeep CC_REGION_CR, 400ee1e1f4SSubbaraya Sundeep CC_LOCK_BASE_ADDR_CR, 410ee1e1f4SSubbaraya Sundeep CC_FLUSH_INDX_CR, 420ee1e1f4SSubbaraya Sundeep DDRB_BUF_TIMER_CR, 430ee1e1f4SSubbaraya Sundeep DDRB_NB_ADDR_CR, 440ee1e1f4SSubbaraya Sundeep DDRB_NB_SIZE_CR, 450ee1e1f4SSubbaraya Sundeep DDRB_CR, 460ee1e1f4SSubbaraya Sundeep 470ee1e1f4SSubbaraya Sundeep SOFT_RESET_CR = 0x48 / 4, 480ee1e1f4SSubbaraya Sundeep M3_CR, 490ee1e1f4SSubbaraya Sundeep 500ee1e1f4SSubbaraya Sundeep GPIO_SYSRESET_SEL_CR = 0x58 / 4, 510ee1e1f4SSubbaraya Sundeep 520ee1e1f4SSubbaraya Sundeep MDDR_CR = 0x60 / 4, 530ee1e1f4SSubbaraya Sundeep 540ee1e1f4SSubbaraya Sundeep MSSDDR_PLL_STATUS_LOW_CR = 0x90 / 4, 550ee1e1f4SSubbaraya Sundeep MSSDDR_PLL_STATUS_HIGH_CR, 560ee1e1f4SSubbaraya Sundeep MSSDDR_FACC1_CR, 570ee1e1f4SSubbaraya Sundeep MSSDDR_FACC2_CR, 580ee1e1f4SSubbaraya Sundeep 590ee1e1f4SSubbaraya Sundeep MSSDDR_PLL_STATUS = 0x150 / 4, 600ee1e1f4SSubbaraya Sundeep }; 610ee1e1f4SSubbaraya Sundeep 620ee1e1f4SSubbaraya Sundeep #define MSF2_SYSREG_MMIO_SIZE 0x300 630ee1e1f4SSubbaraya Sundeep 640ee1e1f4SSubbaraya Sundeep #define TYPE_MSF2_SYSREG "msf2-sysreg" 65*8063396bSEduardo Habkost OBJECT_DECLARE_SIMPLE_TYPE(MSF2SysregState, MSF2_SYSREG) 660ee1e1f4SSubbaraya Sundeep 67db1015e9SEduardo Habkost struct MSF2SysregState { 680ee1e1f4SSubbaraya Sundeep SysBusDevice parent_obj; 690ee1e1f4SSubbaraya Sundeep 700ee1e1f4SSubbaraya Sundeep MemoryRegion iomem; 710ee1e1f4SSubbaraya Sundeep 720ee1e1f4SSubbaraya Sundeep uint8_t apb0div; 730ee1e1f4SSubbaraya Sundeep uint8_t apb1div; 740ee1e1f4SSubbaraya Sundeep 750ee1e1f4SSubbaraya Sundeep uint32_t regs[MSF2_SYSREG_MMIO_SIZE / 4]; 76db1015e9SEduardo Habkost }; 770ee1e1f4SSubbaraya Sundeep 780ee1e1f4SSubbaraya Sundeep #endif /* HW_MSF2_SYSREG_H */ 79