1827e6a7eSLey Foon Tan /* 2827e6a7eSLey Foon Tan * Copyright (C) 2016-2017 Intel Corporation 3827e6a7eSLey Foon Tan * 4827e6a7eSLey Foon Tan * SPDX-License-Identifier: GPL-2.0 5827e6a7eSLey Foon Tan */ 6827e6a7eSLey Foon Tan 7827e6a7eSLey Foon Tan #ifndef _RESET_MANAGER_ARRIA10_H_ 8827e6a7eSLey Foon Tan #define _RESET_MANAGER_ARRIA10_H_ 9827e6a7eSLey Foon Tan 10827e6a7eSLey Foon Tan #include <dt-bindings/reset/altr,rst-mgr-a10.h> 11827e6a7eSLey Foon Tan 12827e6a7eSLey Foon Tan void socfpga_watchdog_disable(void); 13827e6a7eSLey Foon Tan void socfpga_reset_deassert_noc_ddr_scheduler(void); 14827e6a7eSLey Foon Tan int socfpga_is_wdt_in_reset(void); 15827e6a7eSLey Foon Tan void socfpga_emac_manage_reset(ulong emacbase, u32 state); 16827e6a7eSLey Foon Tan int socfpga_reset_deassert_bridges_handoff(void); 17827e6a7eSLey Foon Tan void socfpga_reset_assert_fpga_connected_peripherals(void); 18827e6a7eSLey Foon Tan void socfpga_reset_deassert_osc1wd0(void); 19827e6a7eSLey Foon Tan void socfpga_reset_uart(int assert); 20*6a34af5bSTien Fong Chee int socfpga_bridges_reset(void); 21827e6a7eSLey Foon Tan 22827e6a7eSLey Foon Tan struct socfpga_reset_manager { 23827e6a7eSLey Foon Tan u32 stat; 24827e6a7eSLey Foon Tan u32 ramstat; 25827e6a7eSLey Foon Tan u32 miscstat; 26827e6a7eSLey Foon Tan u32 ctrl; 27827e6a7eSLey Foon Tan u32 hdsken; 28827e6a7eSLey Foon Tan u32 hdskreq; 29827e6a7eSLey Foon Tan u32 hdskack; 30827e6a7eSLey Foon Tan u32 counts; 31827e6a7eSLey Foon Tan u32 mpumodrst; 32827e6a7eSLey Foon Tan u32 per0modrst; 33827e6a7eSLey Foon Tan u32 per1modrst; 34827e6a7eSLey Foon Tan u32 brgmodrst; 35827e6a7eSLey Foon Tan u32 sysmodrst; 36827e6a7eSLey Foon Tan u32 coldmodrst; 37827e6a7eSLey Foon Tan u32 nrstmodrst; 38827e6a7eSLey Foon Tan u32 dbgmodrst; 39827e6a7eSLey Foon Tan u32 mpuwarmmask; 40827e6a7eSLey Foon Tan u32 per0warmmask; 41827e6a7eSLey Foon Tan u32 per1warmmask; 42827e6a7eSLey Foon Tan u32 brgwarmmask; 43827e6a7eSLey Foon Tan u32 syswarmmask; 44827e6a7eSLey Foon Tan u32 nrstwarmmask; 45827e6a7eSLey Foon Tan u32 l3warmmask; 46827e6a7eSLey Foon Tan u32 tststa; 47827e6a7eSLey Foon Tan u32 tstscratch; 48827e6a7eSLey Foon Tan u32 hdsktimeout; 49827e6a7eSLey Foon Tan u32 hmcintr; 50827e6a7eSLey Foon Tan u32 hmcintren; 51827e6a7eSLey Foon Tan u32 hmcintrens; 52827e6a7eSLey Foon Tan u32 hmcintrenr; 53827e6a7eSLey Foon Tan u32 hmcgpout; 54827e6a7eSLey Foon Tan u32 hmcgpin; 55827e6a7eSLey Foon Tan }; 56827e6a7eSLey Foon Tan 57827e6a7eSLey Foon Tan /* 58827e6a7eSLey Foon Tan * SocFPGA Arria10 reset IDs, bank mapping is as follows: 59827e6a7eSLey Foon Tan * 0 ... mpumodrst 60827e6a7eSLey Foon Tan * 1 ... per0modrst 61827e6a7eSLey Foon Tan * 2 ... per1modrst 62827e6a7eSLey Foon Tan * 3 ... brgmodrst 63827e6a7eSLey Foon Tan * 4 ... sysmodrst 64827e6a7eSLey Foon Tan */ 65827e6a7eSLey Foon Tan #define RSTMGR_EMAC0 RSTMGR_DEFINE(1, 0) 66827e6a7eSLey Foon Tan #define RSTMGR_EMAC1 RSTMGR_DEFINE(1, 1) 67827e6a7eSLey Foon Tan #define RSTMGR_EMAC2 RSTMGR_DEFINE(1, 2) 68827e6a7eSLey Foon Tan #define RSTMGR_NAND RSTMGR_DEFINE(1, 5) 69827e6a7eSLey Foon Tan #define RSTMGR_QSPI RSTMGR_DEFINE(1, 6) 70827e6a7eSLey Foon Tan #define RSTMGR_SDMMC RSTMGR_DEFINE(1, 7) 71827e6a7eSLey Foon Tan #define RSTMGR_DMA RSTMGR_DEFINE(1, 16) 72827e6a7eSLey Foon Tan #define RSTMGR_SPIM0 RSTMGR_DEFINE(1, 17) 73827e6a7eSLey Foon Tan #define RSTMGR_SPIM1 RSTMGR_DEFINE(1, 18) 74827e6a7eSLey Foon Tan #define RSTMGR_L4WD0 RSTMGR_DEFINE(2, 0) 75827e6a7eSLey Foon Tan #define RSTMGR_L4WD1 RSTMGR_DEFINE(2, 1) 76827e6a7eSLey Foon Tan #define RSTMGR_L4SYSTIMER0 RSTMGR_DEFINE(2, 2) 77827e6a7eSLey Foon Tan #define RSTMGR_L4SYSTIMER1 RSTMGR_DEFINE(2, 3) 78827e6a7eSLey Foon Tan #define RSTMGR_SPTIMER0 RSTMGR_DEFINE(2, 4) 79827e6a7eSLey Foon Tan #define RSTMGR_SPTIMER1 RSTMGR_DEFINE(2, 5) 80827e6a7eSLey Foon Tan #define RSTMGR_UART0 RSTMGR_DEFINE(2, 16) 81827e6a7eSLey Foon Tan #define RSTMGR_UART1 RSTMGR_DEFINE(2, 17) 82827e6a7eSLey Foon Tan #define RSTMGR_DDRSCH RSTMGR_DEFINE(3, 6) 83827e6a7eSLey Foon Tan 84827e6a7eSLey Foon Tan #define ALT_RSTMGR_CTL_SWWARMRSTREQ_SET_MSK BIT(1) 85827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_EMAC0_SET_MSK BIT(0) 86827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_EMAC1_SET_MSK BIT(1) 87827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_EMAC2_SET_MSK BIT(2) 88827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_USB0_SET_MSK BIT(3) 89827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_USB1_SET_MSK BIT(4) 90827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_NAND_SET_MSK BIT(5) 91827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_QSPI_SET_MSK BIT(6) 92827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_SDMMC_SET_MSK BIT(7) 93827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_EMACECC0_SET_MSK BIT(8) 94827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_EMACECC1_SET_MSK BIT(9) 95827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_EMACECC2_SET_MSK BIT(10) 96827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_USBECC0_SET_MSK BIT(11) 97827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_USBECC1_SET_MSK BIT(12) 98827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_NANDECC_SET_MSK BIT(13) 99827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_QSPIECC_SET_MSK BIT(14) 100827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_SDMMCECC_SET_MSK BIT(15) 101827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_DMA_SET_MSK BIT(16) 102827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_SPIM0_SET_MSK BIT(17) 103827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_SPIM1_SET_MSK BIT(18) 104827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_SPIS0_SET_MSK BIT(19) 105827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_SPIS1_SET_MSK BIT(20) 106827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_DMAECC_SET_MSK BIT(21) 107827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_EMACPTP_SET_MSK BIT(22) 108827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_DMAIF0_SET_MSK BIT(24) 109827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_DMAIF1_SET_MSK BIT(25) 110827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_DMAIF2_SET_MSK BIT(26) 111827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_DMAIF3_SET_MSK BIT(27) 112827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_DMAIF4_SET_MSK BIT(28) 113827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_DMAIF5_SET_MSK BIT(29) 114827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_DMAIF6_SET_MSK BIT(30) 115827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_DMAIF7_SET_MSK BIT(31) 116827e6a7eSLey Foon Tan 117827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER1MODRST_WD0_SET_MSK BIT(0) 118827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER1MODRST_WD1_SET_MSK BIT(1) 119827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER1MODRST_L4SYSTMR0_SET_MSK BIT(2) 120827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER1MODRST_L4SYSTMR1_SET_MSK BIT(3) 121827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER1MODRST_SPTMR0_SET_MSK BIT(4) 122827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER1MODRST_SPTMR1_SET_MSK BIT(5) 123827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER1MODRST_I2C0_SET_MSK BIT(8) 124827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER1MODRST_I2C1_SET_MSK BIT(9) 125827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER1MODRST_I2C2_SET_MSK BIT(10) 126827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER1MODRST_I2C3_SET_MSK BIT(11) 127827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER1MODRST_I2C4_SET_MSK BIT(12) 128827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER1MODRST_UART0_SET_MSK BIT(16) 129827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER1MODRST_UART1_SET_MSK BIT(17) 130827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER1MODRST_GPIO0_SET_MSK BIT(24) 131827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER1MODRST_GPIO1_SET_MSK BIT(25) 132827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER1MODRST_GPIO2_SET_MSK BIT(26) 133827e6a7eSLey Foon Tan 134827e6a7eSLey Foon Tan #define ALT_RSTMGR_BRGMODRST_H2F_SET_MSK BIT(0) 135827e6a7eSLey Foon Tan #define ALT_RSTMGR_BRGMODRST_LWH2F_SET_MSK BIT(1) 136827e6a7eSLey Foon Tan #define ALT_RSTMGR_BRGMODRST_F2H_SET_MSK BIT(2) 137827e6a7eSLey Foon Tan #define ALT_RSTMGR_BRGMODRST_F2SSDRAM0_SET_MSK BIT(3) 138827e6a7eSLey Foon Tan #define ALT_RSTMGR_BRGMODRST_F2SSDRAM1_SET_MSK BIT(4) 139827e6a7eSLey Foon Tan #define ALT_RSTMGR_BRGMODRST_F2SSDRAM2_SET_MSK BIT(5) 140827e6a7eSLey Foon Tan #define ALT_RSTMGR_BRGMODRST_DDRSCH_SET_MSK BIT(6) 141827e6a7eSLey Foon Tan 142827e6a7eSLey Foon Tan #define ALT_RSTMGR_HDSKEN_SDRSELFREFEN_SET_MSK BIT(0) 143827e6a7eSLey Foon Tan #define ALT_RSTMGR_HDSKEN_FPGAMGRHSEN_SET_MSK BIT(1) 144827e6a7eSLey Foon Tan #define ALT_RSTMGR_HDSKEN_FPGAHSEN_SET_MSK BIT(2) 145827e6a7eSLey Foon Tan #define ALT_RSTMGR_HDSKEN_ETRSTALLEN_SET_MSK BIT(3) 146827e6a7eSLey Foon Tan 147827e6a7eSLey Foon Tan #endif /* _RESET_MANAGER_ARRIA10_H_ */ 148