/* * Copyright (c) 2016 Linaro Limited. * * SPDX-License-Identifier: Apache-2.0 */ /** * @file SoC configuration macros for the ARM LTD Beetle SoC. * */ #ifndef _ARM_BEETLE_SOC_REGS_H_ #define _ARM_BEETLE_SOC_REGS_H_ /* System Control Register (SYSCON) */ struct syscon { /* Offset: 0x000 (r/w) remap control register */ volatile uint32_t remap; /* Offset: 0x004 (r/w) pmu control register */ volatile uint32_t pmuctrl; /* Offset: 0x008 (r/w) reset option register */ volatile uint32_t resetop; /* Offset: 0x00c (r/w) emi control register */ volatile uint32_t emictrl; /* Offset: 0x010 (r/w) reset information register */ volatile uint32_t rstinfo; volatile uint32_t reserved0[3]; /* Offset: 0x020 (r/w)AHB peripheral access control set */ volatile uint32_t ahbper0set; /* Offset: 0x024 (r/w)AHB peripheral access control clear */ volatile uint32_t ahbper0clr; volatile uint32_t reserved1[2]; /* Offset: 0x030 (r/w)APB peripheral access control set */ volatile uint32_t apbper0set; /* Offset: 0x034 (r/w)APB peripheral access control clear */ volatile uint32_t apbper0clr; volatile uint32_t reserved2[2]; /* Offset: 0x040 (r/w) main clock control register */ volatile uint32_t mainclk; /* Offset: 0x044 (r/w) auxiliary / rtc control register */ volatile uint32_t auxclk; /* Offset: 0x048 (r/w) pll control register */ volatile uint32_t pllctrl; /* Offset: 0x04c (r/w) pll status register */ volatile uint32_t pllstatus; /* Offset: 0x050 (r/w) sleep control register */ volatile uint32_t sleepcfg; /* Offset: 0x054 (r/w) flash auxiliary settings control register */ volatile uint32_t flashauxcfg; volatile uint32_t reserved3[10]; /* Offset: 0x080 (r/w) AHB peripheral clock set in active state */ volatile uint32_t ahbclkcfg0set; /* Offset: 0x084 (r/w) AHB peripheral clock clear in active state */ volatile uint32_t ahbclkcfg0clr; /* Offset: 0x088 (r/w) AHB peripheral clock set in sleep state */ volatile uint32_t ahbclkcfg1set; /* Offset: 0x08c (r/w) AHB peripheral clock clear in sleep state */ volatile uint32_t ahbclkcfg1clr; /* Offset: 0x090 (r/w) AHB peripheral clock set in deep sleep state */ volatile uint32_t ahbclkcfg2set; /* Offset: 0x094 (r/w) AHB peripheral clock clear in deep sleep state */ volatile uint32_t ahbclkcfg2clr; volatile uint32_t reserved4[2]; /* Offset: 0x0a0 (r/w) APB peripheral clock set in active state */ volatile uint32_t apbclkcfg0set; /* Offset: 0x0a4 (r/w) APB peripheral clock clear in active state */ volatile uint32_t apbclkcfg0clr; /* Offset: 0x0a8 (r/w) APB peripheral clock set in sleep state */ volatile uint32_t apbclkcfg1set; /* Offset: 0x0ac (r/w) APB peripheral clock clear in sleep state */ volatile uint32_t apbclkcfg1clr; /* Offset: 0x0b0 (r/w) APB peripheral clock set in deep sleep state */ volatile uint32_t apbclkcfg2set; /* Offset: 0x0b4 (r/w) APB peripheral clock clear in deep sleep state */ volatile uint32_t apbclkcfg2clr; volatile uint32_t reserved5[2]; /* Offset: 0x0c0 (r/w) AHB peripheral reset select set */ volatile uint32_t ahbprst0set; /* Offset: 0x0c4 (r/w) AHB peripheral reset select clear */ volatile uint32_t ahbprst0clr; /* Offset: 0x0c8 (r/w) APB peripheral reset select set */ volatile uint32_t apbprst0set; /* Offset: 0x0cc (r/w) APB peripheral reset select clear */ volatile uint32_t apbprst0clr; /* Offset: 0x0d0 (r/w) AHB power down sleep wakeup source set */ volatile uint32_t pwrdncfg0set; /* Offset: 0x0d4 (r/w) AHB power down sleep wakeup source clear */ volatile uint32_t pwrdncfg0clr; /* Offset: 0x0d8 (r/w) APB power down sleep wakeup source set */ volatile uint32_t pwrdncfg1set; /* Offset: 0x0dc (r/w) APB power down sleep wakeup source clear */ volatile uint32_t pwrdncfg1clr; /* Offset: 0x0e0 ( /w) rtc reset */ volatile uint32_t rtcreset; /* Offset: 0x0e4 (r/w) event interface control register */ volatile uint32_t eventcfg; volatile uint32_t reserved6[2]; /* Offset: 0x0f0 (r/w) sram power control override */ volatile uint32_t pwrovride0; /* Offset: 0x0f4 (r/w) embedded flash power control override */ volatile uint32_t pwrovride1; /* Offset: 0x0f8 (r/ ) memory status register */ volatile uint32_t memorystatus; volatile uint32_t reserved7[1]; /* Offset: 0x100 (r/w) io pad settings */ volatile uint32_t gpiopadcfg0; /* Offset: 0x104 (r/w) io pad settings */ volatile uint32_t gpiopadcfg1; /* Offset: 0x108 (r/w) testmode boot bypass */ volatile uint32_t testmodecfg; }; #endif /* _ARM_BEETLE_SOC_REGS_H_ */