1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * Copyright (C) 2019-2021 Intel Corporation <www.intel.com> 4 */ 5 6 #ifndef _SYSTEM_MANAGER_SOC64_H_ 7 #define _SYSTEM_MANAGER_SOC64_H_ 8 9 #include <linux/bitops.h> 10 void sysmgr_pinmux_init(void); 11 void populate_sysmgr_fpgaintf_module(void); 12 void populate_sysmgr_pinmux(void); 13 14 #define SYSMGR_SOC64_WDDBG 0x08 15 #define SYSMGR_SOC64_DMA 0x20 16 #define SYSMGR_SOC64_DMA_PERIPH 0x24 17 #define SYSMGR_SOC64_SDMMC 0x28 18 #define SYSMGR_SOC64_SDMMC_L3MASTER 0x2c 19 #define SYSMGR_SOC64_EMAC_GLOBAL 0x40 20 #define SYSMGR_SOC64_EMAC0 0x44 21 #define SYSMGR_SOC64_EMAC1 0x48 22 #define SYSMGR_SOC64_EMAC2 0x4c 23 #define SYSMGR_SOC64_EMAC0_ACE 0x50 24 #define SYSMGR_SOC64_EMAC1_ACE 0x54 25 #define SYSMGR_SOC64_EMAC2_ACE 0x58 26 #define SYSMGR_SOC64_NAND_AXUSER 0x5c 27 #define SYSMGR_SOC64_FPGAINTF_EN1 0x68 28 #define SYSMGR_SOC64_FPGAINTF_EN2 0x6c 29 #define SYSMGR_SOC64_FPGAINTF_EN3 0x70 30 #define SYSMGR_SOC64_DMA_L3MASTER 0x74 31 #if IS_ENABLED(CONFIG_TARGET_SOCFPGA_N5X) 32 #define SYSMGR_SOC64_DDR_MODE 0xb8 33 #else 34 #define SYSMGR_SOC64_HMC_CLK 0xb4 35 #define SYSMGR_SOC64_IO_PA_CTRL 0xb8 36 #endif 37 #define SYSMGR_SOC64_NOC_TIMEOUT 0xc0 38 #define SYSMGR_SOC64_NOC_IDLEREQ_SET 0xc4 39 #define SYSMGR_SOC64_NOC_IDLEREQ_CLR 0xc8 40 #define SYSMGR_SOC64_NOC_IDLEREQ_VAL 0xcc 41 #define SYSMGR_SOC64_NOC_IDLEACK 0xd0 42 #define SYSMGR_SOC64_NOC_IDLESTATUS 0xd4 43 #define SYSMGR_SOC64_FPGA2SOC_CTRL 0xd8 44 #define SYSMGR_SOC64_FPGA_CONFIG 0xdc 45 #define SYSMGR_SOC64_IOCSRCLK_GATE 0xe0 46 #define SYSMGR_SOC64_GPO 0xe4 47 #define SYSMGR_SOC64_GPI 0xe8 48 #define SYSMGR_SOC64_MPU 0xf0 49 /* 50 * Bits[31:28] reserved for N5X DDR retention, bits[27:0] reserved for SOC 64-bit 51 * storing qspi ref clock (kHz) 52 */ 53 #define SYSMGR_SOC64_BOOT_SCRATCH_COLD0 0x200 54 /* store osc1 clock freq */ 55 #define SYSMGR_SOC64_BOOT_SCRATCH_COLD1 0x204 56 /* store fpga clock freq */ 57 #define SYSMGR_SOC64_BOOT_SCRATCH_COLD2 0x208 58 /* reserved for customer use */ 59 #define SYSMGR_SOC64_BOOT_SCRATCH_COLD3 0x20c 60 /* store PSCI_CPU_ON value */ 61 #define SYSMGR_SOC64_BOOT_SCRATCH_COLD4 0x210 62 /* store PSCI_CPU_ON value */ 63 #define SYSMGR_SOC64_BOOT_SCRATCH_COLD5 0x214 64 /* store VBAR_EL3 value */ 65 #define SYSMGR_SOC64_BOOT_SCRATCH_COLD6 0x218 66 /* store VBAR_EL3 value */ 67 #define SYSMGR_SOC64_BOOT_SCRATCH_COLD7 0x21c 68 #define SYSMGR_SOC64_BOOT_SCRATCH_COLD8 0x220 69 #define SYSMGR_SOC64_BOOT_SCRATCH_COLD9 0x224 70 #define SYSMGR_SOC64_PINSEL0 0x1000 71 #define SYSMGR_SOC64_IOCTRL0 0x1130 72 #define SYSMGR_SOC64_EMAC0_USEFPGA 0x1300 73 #define SYSMGR_SOC64_EMAC1_USEFPGA 0x1304 74 #define SYSMGR_SOC64_EMAC2_USEFPGA 0x1308 75 #define SYSMGR_SOC64_I2C0_USEFPGA 0x130c 76 #define SYSMGR_SOC64_I2C1_USEFPGA 0x1310 77 #define SYSMGR_SOC64_I2C_EMAC0_USEFPGA 0x1314 78 #define SYSMGR_SOC64_I2C_EMAC1_USEFPGA 0x1318 79 #define SYSMGR_SOC64_I2C_EMAC2_USEFPGA 0x131c 80 #define SYSMGR_SOC64_NAND_USEFPGA 0x1320 81 #define SYSMGR_SOC64_SPIM0_USEFPGA 0x1328 82 #define SYSMGR_SOC64_SPIM1_USEFPGA 0x132c 83 #define SYSMGR_SOC64_SPIS0_USEFPGA 0x1330 84 #define SYSMGR_SOC64_SPIS1_USEFPGA 0x1334 85 #define SYSMGR_SOC64_UART0_USEFPGA 0x1338 86 #define SYSMGR_SOC64_UART1_USEFPGA 0x133c 87 #define SYSMGR_SOC64_MDIO0_USEFPGA 0x1340 88 #define SYSMGR_SOC64_MDIO1_USEFPGA 0x1344 89 #define SYSMGR_SOC64_MDIO2_USEFPGA 0x1348 90 #define SYSMGR_SOC64_JTAG_USEFPGA 0x1350 91 #define SYSMGR_SOC64_SDMMC_USEFPGA 0x1354 92 #define SYSMGR_SOC64_HPS_OSC_CLK 0x1358 93 #define SYSMGR_SOC64_IODELAY0 0x1400 94 95 /* 96 * Bits for SYSMGR_SOC64_BOOT_SCRATCH_COLD0 97 * Bits[31:28] reserved for DM DDR retention, bits[27:0] reserved for SOC 64-bit 98 * storing qspi ref clock (kHz) 99 */ 100 #define SYSMGR_SCRATCH_REG_0_QSPI_REFCLK_MASK GENMASK(27, 0) 101 #define ALT_SYSMGR_SCRATCH_REG_0_DDR_RETENTION_MASK BIT(31) 102 #define ALT_SYSMGR_SCRATCH_REG_0_DDR_SHA_MASK BIT(30) 103 #define ALT_SYSMGR_SCRATCH_REG_0_DDR_RESET_TYPE_MASK (BIT(29) | BIT(28)) 104 #define ALT_SYSMGR_SCRATCH_REG_0_DDR_RESET_TYPE_SHIFT 28 105 106 #define SYSMGR_SDMMC SYSMGR_SOC64_SDMMC 107 108 #define SYSMGR_ROMCODEGRP_CTRL_WARMRSTCFGPINMUX BIT(0) 109 #define SYSMGR_ROMCODEGRP_CTRL_WARMRSTCFGIO BIT(1) 110 #define SYSMGR_ECC_OCRAM_EN BIT(0) 111 #define SYSMGR_ECC_OCRAM_SERR BIT(3) 112 #define SYSMGR_ECC_OCRAM_DERR BIT(4) 113 #define SYSMGR_FPGACONFIG_FPGA_COMPLETE BIT(0) 114 #define SYSMGR_FPGACONFIG_EARLY_USERMODE BIT(1) 115 #define SYSMGR_FPGACONFIG_READY_MASK (SYSMGR_FPGACONFIG_FPGA_COMPLETE | \ 116 SYSMGR_FPGACONFIG_EARLY_USERMODE) 117 118 #define SYSMGR_FPGAINTF_USEFPGA 0x1 119 #define SYSMGR_FPGAINTF_NAND BIT(4) 120 #define SYSMGR_FPGAINTF_SDMMC BIT(8) 121 #define SYSMGR_FPGAINTF_SPIM0 BIT(16) 122 #define SYSMGR_FPGAINTF_SPIM1 BIT(24) 123 #define SYSMGR_FPGAINTF_EMAC0 BIT(0) 124 #define SYSMGR_FPGAINTF_EMAC1 BIT(8) 125 #define SYSMGR_FPGAINTF_EMAC2 BIT(16) 126 127 #define SYSMGR_SDMMC_SMPLSEL_SHIFT 4 128 #define SYSMGR_SDMMC_DRVSEL_SHIFT 0 129 130 /* EMAC Group Bit definitions */ 131 #define SYSMGR_EMACGRP_CTRL_PHYSEL_ENUM_GMII_MII 0x0 132 #define SYSMGR_EMACGRP_CTRL_PHYSEL_ENUM_RGMII 0x1 133 #define SYSMGR_EMACGRP_CTRL_PHYSEL_ENUM_RMII 0x2 134 135 #define SYSMGR_EMACGRP_CTRL_PHYSEL0_LSB 0 136 #define SYSMGR_EMACGRP_CTRL_PHYSEL1_LSB 2 137 #define SYSMGR_EMACGRP_CTRL_PHYSEL_MASK 0x3 138 139 #define SYSMGR_NOC_H2F_MSK 0x00000001 140 #define SYSMGR_NOC_LWH2F_MSK 0x00000010 141 #define SYSMGR_HMC_CLK_STATUS_MSK 0x00000001 142 143 #define SYSMGR_DMA_IRQ_NS 0xFF000000 144 #define SYSMGR_DMA_MGR_NS 0x00010000 145 146 #define SYSMGR_DMAPERIPH_ALL_NS 0xFFFFFFFF 147 148 #define SYSMGR_WDDBG_PAUSE_ALL_CPU 0x0F0F0F0F 149 150 #if IS_ENABLED(CONFIG_TARGET_SOCFPGA_N5X) 151 #define SYSMGR_SOC64_DDR_MODE_MSK BIT(0) 152 #endif 153 154 #endif /* _SYSTEM_MANAGER_SOC64_H_ */ 155