| /* SPDX-License-Identifier: GPL-2.0 */ |
| /* |
| * Copyright (C) 2016-2017 Intel Corporation |
| */ |
| |
| #ifndef _RESET_MANAGER_ARRIA10_H_ |
| #define _RESET_MANAGER_ARRIA10_H_ |
| |
| #include <dt-bindings/reset/altr,rst-mgr-a10.h> |
| |
| void socfpga_watchdog_disable(void); |
| void socfpga_reset_deassert_noc_ddr_scheduler(void); |
| int socfpga_reset_deassert_bridges_handoff(void); |
| void socfpga_reset_deassert_osc1wd0(void); |
| int socfpga_bridges_reset(void); |
| |
| struct socfpga_reset_manager { |
| u32 stat; |
| u32 ramstat; |
| u32 miscstat; |
| u32 ctrl; |
| u32 hdsken; |
| u32 hdskreq; |
| u32 hdskack; |
| u32 counts; |
| u32 mpumodrst; |
| u32 per0modrst; |
| u32 per1modrst; |
| u32 brgmodrst; |
| u32 sysmodrst; |
| u32 coldmodrst; |
| u32 nrstmodrst; |
| u32 dbgmodrst; |
| u32 mpuwarmmask; |
| u32 per0warmmask; |
| u32 per1warmmask; |
| u32 brgwarmmask; |
| u32 syswarmmask; |
| u32 nrstwarmmask; |
| u32 l3warmmask; |
| u32 tststa; |
| u32 tstscratch; |
| u32 hdsktimeout; |
| u32 hmcintr; |
| u32 hmcintren; |
| u32 hmcintrens; |
| u32 hmcintrenr; |
| u32 hmcgpout; |
| u32 hmcgpin; |
| }; |
| |
| /* |
| * SocFPGA Arria10 reset IDs, bank mapping is as follows: |
| * 0 ... mpumodrst |
| * 1 ... per0modrst |
| * 2 ... per1modrst |
| * 3 ... brgmodrst |
| * 4 ... sysmodrst |
| */ |
| #define RSTMGR_EMAC0 RSTMGR_DEFINE(1, 0) |
| #define RSTMGR_EMAC1 RSTMGR_DEFINE(1, 1) |
| #define RSTMGR_EMAC2 RSTMGR_DEFINE(1, 2) |
| #define RSTMGR_NAND RSTMGR_DEFINE(1, 5) |
| #define RSTMGR_QSPI RSTMGR_DEFINE(1, 6) |
| #define RSTMGR_SDMMC RSTMGR_DEFINE(1, 7) |
| #define RSTMGR_DMA RSTMGR_DEFINE(1, 16) |
| #define RSTMGR_SPIM0 RSTMGR_DEFINE(1, 17) |
| #define RSTMGR_SPIM1 RSTMGR_DEFINE(1, 18) |
| #define RSTMGR_L4WD0 RSTMGR_DEFINE(2, 0) |
| #define RSTMGR_L4WD1 RSTMGR_DEFINE(2, 1) |
| #define RSTMGR_L4SYSTIMER0 RSTMGR_DEFINE(2, 2) |
| #define RSTMGR_L4SYSTIMER1 RSTMGR_DEFINE(2, 3) |
| #define RSTMGR_SPTIMER0 RSTMGR_DEFINE(2, 4) |
| #define RSTMGR_SPTIMER1 RSTMGR_DEFINE(2, 5) |
| #define RSTMGR_UART0 RSTMGR_DEFINE(2, 16) |
| #define RSTMGR_UART1 RSTMGR_DEFINE(2, 17) |
| #define RSTMGR_DDRSCH RSTMGR_DEFINE(3, 6) |
| |
| #define ALT_RSTMGR_CTL_SWWARMRSTREQ_SET_MSK BIT(1) |
| #define ALT_RSTMGR_PER0MODRST_EMAC0_SET_MSK BIT(0) |
| #define ALT_RSTMGR_PER0MODRST_EMAC1_SET_MSK BIT(1) |
| #define ALT_RSTMGR_PER0MODRST_EMAC2_SET_MSK BIT(2) |
| #define ALT_RSTMGR_PER0MODRST_USB0_SET_MSK BIT(3) |
| #define ALT_RSTMGR_PER0MODRST_USB1_SET_MSK BIT(4) |
| #define ALT_RSTMGR_PER0MODRST_NAND_SET_MSK BIT(5) |
| #define ALT_RSTMGR_PER0MODRST_QSPI_SET_MSK BIT(6) |
| #define ALT_RSTMGR_PER0MODRST_SDMMC_SET_MSK BIT(7) |
| #define ALT_RSTMGR_PER0MODRST_EMACECC0_SET_MSK BIT(8) |
| #define ALT_RSTMGR_PER0MODRST_EMACECC1_SET_MSK BIT(9) |
| #define ALT_RSTMGR_PER0MODRST_EMACECC2_SET_MSK BIT(10) |
| #define ALT_RSTMGR_PER0MODRST_USBECC0_SET_MSK BIT(11) |
| #define ALT_RSTMGR_PER0MODRST_USBECC1_SET_MSK BIT(12) |
| #define ALT_RSTMGR_PER0MODRST_NANDECC_SET_MSK BIT(13) |
| #define ALT_RSTMGR_PER0MODRST_QSPIECC_SET_MSK BIT(14) |
| #define ALT_RSTMGR_PER0MODRST_SDMMCECC_SET_MSK BIT(15) |
| #define ALT_RSTMGR_PER0MODRST_DMA_SET_MSK BIT(16) |
| #define ALT_RSTMGR_PER0MODRST_SPIM0_SET_MSK BIT(17) |
| #define ALT_RSTMGR_PER0MODRST_SPIM1_SET_MSK BIT(18) |
| #define ALT_RSTMGR_PER0MODRST_SPIS0_SET_MSK BIT(19) |
| #define ALT_RSTMGR_PER0MODRST_SPIS1_SET_MSK BIT(20) |
| #define ALT_RSTMGR_PER0MODRST_DMAECC_SET_MSK BIT(21) |
| #define ALT_RSTMGR_PER0MODRST_EMACPTP_SET_MSK BIT(22) |
| #define ALT_RSTMGR_PER0MODRST_DMAIF0_SET_MSK BIT(24) |
| #define ALT_RSTMGR_PER0MODRST_DMAIF1_SET_MSK BIT(25) |
| #define ALT_RSTMGR_PER0MODRST_DMAIF2_SET_MSK BIT(26) |
| #define ALT_RSTMGR_PER0MODRST_DMAIF3_SET_MSK BIT(27) |
| #define ALT_RSTMGR_PER0MODRST_DMAIF4_SET_MSK BIT(28) |
| #define ALT_RSTMGR_PER0MODRST_DMAIF5_SET_MSK BIT(29) |
| #define ALT_RSTMGR_PER0MODRST_DMAIF6_SET_MSK BIT(30) |
| #define ALT_RSTMGR_PER0MODRST_DMAIF7_SET_MSK BIT(31) |
| |
| #define ALT_RSTMGR_PER1MODRST_WD0_SET_MSK BIT(0) |
| #define ALT_RSTMGR_PER1MODRST_WD1_SET_MSK BIT(1) |
| #define ALT_RSTMGR_PER1MODRST_L4SYSTMR0_SET_MSK BIT(2) |
| #define ALT_RSTMGR_PER1MODRST_L4SYSTMR1_SET_MSK BIT(3) |
| #define ALT_RSTMGR_PER1MODRST_SPTMR0_SET_MSK BIT(4) |
| #define ALT_RSTMGR_PER1MODRST_SPTMR1_SET_MSK BIT(5) |
| #define ALT_RSTMGR_PER1MODRST_I2C0_SET_MSK BIT(8) |
| #define ALT_RSTMGR_PER1MODRST_I2C1_SET_MSK BIT(9) |
| #define ALT_RSTMGR_PER1MODRST_I2C2_SET_MSK BIT(10) |
| #define ALT_RSTMGR_PER1MODRST_I2C3_SET_MSK BIT(11) |
| #define ALT_RSTMGR_PER1MODRST_I2C4_SET_MSK BIT(12) |
| #define ALT_RSTMGR_PER1MODRST_UART0_SET_MSK BIT(16) |
| #define ALT_RSTMGR_PER1MODRST_UART1_SET_MSK BIT(17) |
| #define ALT_RSTMGR_PER1MODRST_GPIO0_SET_MSK BIT(24) |
| #define ALT_RSTMGR_PER1MODRST_GPIO1_SET_MSK BIT(25) |
| #define ALT_RSTMGR_PER1MODRST_GPIO2_SET_MSK BIT(26) |
| |
| #define ALT_RSTMGR_BRGMODRST_H2F_SET_MSK BIT(0) |
| #define ALT_RSTMGR_BRGMODRST_LWH2F_SET_MSK BIT(1) |
| #define ALT_RSTMGR_BRGMODRST_F2H_SET_MSK BIT(2) |
| #define ALT_RSTMGR_BRGMODRST_F2SSDRAM0_SET_MSK BIT(3) |
| #define ALT_RSTMGR_BRGMODRST_F2SSDRAM1_SET_MSK BIT(4) |
| #define ALT_RSTMGR_BRGMODRST_F2SSDRAM2_SET_MSK BIT(5) |
| #define ALT_RSTMGR_BRGMODRST_DDRSCH_SET_MSK BIT(6) |
| |
| #define ALT_RSTMGR_HDSKEN_SDRSELFREFEN_SET_MSK BIT(0) |
| #define ALT_RSTMGR_HDSKEN_FPGAMGRHSEN_SET_MSK BIT(1) |
| #define ALT_RSTMGR_HDSKEN_FPGAHSEN_SET_MSK BIT(2) |
| #define ALT_RSTMGR_HDSKEN_ETRSTALLEN_SET_MSK BIT(3) |
| |
| #endif /* _RESET_MANAGER_ARRIA10_H_ */ |