183d290c5STom Rini /* SPDX-License-Identifier: GPL-2.0+ */ 230088b09SMasahiro Yamada /* 34ddd541dSLey Foon Tan * Copyright (C) 2013-2017 Altera Corporation <www.altera.com> 430088b09SMasahiro Yamada */ 530088b09SMasahiro Yamada 630088b09SMasahiro Yamada #ifndef _SYSTEM_MANAGER_H_ 730088b09SMasahiro Yamada #define _SYSTEM_MANAGER_H_ 830088b09SMasahiro Yamada 9*73175d04SLey Foon Tan #if defined(CONFIG_TARGET_SOCFPGA_STRATIX10) 10*73175d04SLey Foon Tan #include <asm/arch/system_manager_s10.h> 11*73175d04SLey Foon Tan #else 1286f032e6SLey Foon Tan #define SYSMGR_ROMCODEGRP_CTRL_WARMRSTCFGPINMUX BIT(0) 1386f032e6SLey Foon Tan #define SYSMGR_ROMCODEGRP_CTRL_WARMRSTCFGIO BIT(1) 1486f032e6SLey Foon Tan #define SYSMGR_ECC_OCRAM_EN BIT(0) 1586f032e6SLey Foon Tan #define SYSMGR_ECC_OCRAM_SERR BIT(3) 1686f032e6SLey Foon Tan #define SYSMGR_ECC_OCRAM_DERR BIT(4) 1730088b09SMasahiro Yamada #define SYSMGR_FPGAINTF_USEFPGA 0x1 1886f032e6SLey Foon Tan #define SYSMGR_FPGAINTF_SPIM0 BIT(0) 1986f032e6SLey Foon Tan #define SYSMGR_FPGAINTF_SPIM1 BIT(1) 2086f032e6SLey Foon Tan #define SYSMGR_FPGAINTF_EMAC0 BIT(2) 2186f032e6SLey Foon Tan #define SYSMGR_FPGAINTF_EMAC1 BIT(3) 2286f032e6SLey Foon Tan #define SYSMGR_FPGAINTF_NAND BIT(4) 2386f032e6SLey Foon Tan #define SYSMGR_FPGAINTF_SDMMC BIT(5) 2430088b09SMasahiro Yamada 25a1684b61SDinh Nguyen #define SYSMGR_SDMMC_DRVSEL_SHIFT 0 2630088b09SMasahiro Yamada 2730088b09SMasahiro Yamada /* EMAC Group Bit definitions */ 2830088b09SMasahiro Yamada #define SYSMGR_EMACGRP_CTRL_PHYSEL_ENUM_GMII_MII 0x0 2930088b09SMasahiro Yamada #define SYSMGR_EMACGRP_CTRL_PHYSEL_ENUM_RGMII 0x1 3030088b09SMasahiro Yamada #define SYSMGR_EMACGRP_CTRL_PHYSEL_ENUM_RMII 0x2 3130088b09SMasahiro Yamada 3230088b09SMasahiro Yamada #define SYSMGR_EMACGRP_CTRL_PHYSEL0_LSB 0 3330088b09SMasahiro Yamada #define SYSMGR_EMACGRP_CTRL_PHYSEL1_LSB 2 3430088b09SMasahiro Yamada #define SYSMGR_EMACGRP_CTRL_PHYSEL_MASK 0x3 3530088b09SMasahiro Yamada 3686f032e6SLey Foon Tan /* For dedicated IO configuration */ 3786f032e6SLey Foon Tan /* Voltage select enums */ 3886f032e6SLey Foon Tan #define VOLTAGE_SEL_3V 0x0 3986f032e6SLey Foon Tan #define VOLTAGE_SEL_1P8V 0x1 4086f032e6SLey Foon Tan #define VOLTAGE_SEL_2P5V 0x2 4186f032e6SLey Foon Tan 4286f032e6SLey Foon Tan /* Input buffer enable */ 4386f032e6SLey Foon Tan #define INPUT_BUF_DISABLE 0 4486f032e6SLey Foon Tan #define INPUT_BUF_1P8V 1 4586f032e6SLey Foon Tan #define INPUT_BUF_2P5V3V 2 4686f032e6SLey Foon Tan 4786f032e6SLey Foon Tan /* Weak pull up enable */ 4886f032e6SLey Foon Tan #define WK_PU_DISABLE 0 4986f032e6SLey Foon Tan #define WK_PU_ENABLE 1 5086f032e6SLey Foon Tan 5186f032e6SLey Foon Tan /* Pull up slew rate control */ 5286f032e6SLey Foon Tan #define PU_SLW_RT_SLOW 0 5386f032e6SLey Foon Tan #define PU_SLW_RT_FAST 1 5486f032e6SLey Foon Tan #define PU_SLW_RT_DEFAULT PU_SLW_RT_SLOW 5586f032e6SLey Foon Tan 5686f032e6SLey Foon Tan /* Pull down slew rate control */ 5786f032e6SLey Foon Tan #define PD_SLW_RT_SLOW 0 5886f032e6SLey Foon Tan #define PD_SLW_RT_FAST 1 5986f032e6SLey Foon Tan #define PD_SLW_RT_DEFAULT PD_SLW_RT_SLOW 6086f032e6SLey Foon Tan 6186f032e6SLey Foon Tan /* Drive strength control */ 6286f032e6SLey Foon Tan #define PU_DRV_STRG_DEFAULT 0x10 6386f032e6SLey Foon Tan #define PD_DRV_STRG_DEFAULT 0x10 6486f032e6SLey Foon Tan 6586f032e6SLey Foon Tan /* bit position */ 6686f032e6SLey Foon Tan #define PD_DRV_STRG_LSB 0 6786f032e6SLey Foon Tan #define PD_SLW_RT_LSB 5 6886f032e6SLey Foon Tan #define PU_DRV_STRG_LSB 8 6986f032e6SLey Foon Tan #define PU_SLW_RT_LSB 13 7086f032e6SLey Foon Tan #define WK_PU_LSB 16 7186f032e6SLey Foon Tan #define INPUT_BUF_LSB 17 7286f032e6SLey Foon Tan #define BIAS_TRIM_LSB 19 7386f032e6SLey Foon Tan #define VOLTAGE_SEL_LSB 0 7486f032e6SLey Foon Tan 7586f032e6SLey Foon Tan #define ALT_SYSMGR_NOC_H2F_SET_MSK BIT(0) 7686f032e6SLey Foon Tan #define ALT_SYSMGR_NOC_LWH2F_SET_MSK BIT(4) 7786f032e6SLey Foon Tan #define ALT_SYSMGR_NOC_F2H_SET_MSK BIT(8) 7886f032e6SLey Foon Tan #define ALT_SYSMGR_NOC_F2SDR0_SET_MSK BIT(16) 7986f032e6SLey Foon Tan #define ALT_SYSMGR_NOC_F2SDR1_SET_MSK BIT(20) 8086f032e6SLey Foon Tan #define ALT_SYSMGR_NOC_F2SDR2_SET_MSK BIT(24) 8186f032e6SLey Foon Tan #define ALT_SYSMGR_NOC_TMO_EN_SET_MSK BIT(0) 8286f032e6SLey Foon Tan 8386f032e6SLey Foon Tan #define ALT_SYSMGR_ECC_INTSTAT_SERR_OCRAM_SET_MSK BIT(1) 8486f032e6SLey Foon Tan #define ALT_SYSMGR_ECC_INTSTAT_DERR_OCRAM_SET_MSK BIT(1) 8586f032e6SLey Foon Tan 864ddd541dSLey Foon Tan #if defined(CONFIG_TARGET_SOCFPGA_GEN5) 874ddd541dSLey Foon Tan #include <asm/arch/system_manager_gen5.h> 8886f032e6SLey Foon Tan #elif defined(CONFIG_TARGET_SOCFPGA_ARRIA10) 8986f032e6SLey Foon Tan #include <asm/arch/system_manager_arria10.h> 904ddd541dSLey Foon Tan #endif 914ddd541dSLey Foon Tan 924ddd541dSLey Foon Tan #define SYSMGR_GET_BOOTINFO_BSEL(bsel) \ 934ddd541dSLey Foon Tan (((bsel) >> SYSMGR_BOOTINFO_BSEL_SHIFT) & 7) 94*73175d04SLey Foon Tan #endif 9530088b09SMasahiro Yamada #endif /* _SYSTEM_MANAGER_H_ */ 96