/** * * Copyright (C) 2018, Marvell International Ltd. and its affiliates. * * SPDX-License-Identifier: BSD-2-Clause-Patent * * Glossary - abbreviations used in Marvell SampleAtReset library implementation: * AP - Application Processor hardware block (Armada 7k8k incorporates AP806) * CP - South Bridge hardware blocks (Armada 7k8k incorporates CP110) **/ #ifndef __ARMADA7K8K_SOC_DESC_LIB_H__ #define __ARMADA7K8K_SOC_DESC_LIB_H__ // // Common macros // #define MV_SOC_CP_BASE(Cp) (0xF2000000 + ((Cp) * 0x2000000)) #define MV_SOC_AP806_BASE 0xF0000000 #define MV_SOC_AP806_COUNT 1 // // Armada7k8k default North Bridge index // #define ARMADA7K8K_AP806_INDEX 0 // // Platform description of AHCI controllers // #define MV_SOC_AHCI_BASE(Cp) (MV_SOC_CP_BASE (Cp) + 0x540000) #define MV_SOC_AHCI_ID(Cp) ((Cp) % 2) // // Platform description of ComPhy controllers // #define MV_SOC_COMPHY_BASE(Cp) (MV_SOC_CP_BASE (Cp) + 0x441000) #define MV_SOC_HPIPE3_BASE(Cp) (MV_SOC_CP_BASE (Cp) + 0x120000) #define MV_SOC_COMPHY_LANE_COUNT 6 #define MV_SOC_COMPHY_MUX_BITS 4 // // Platform description of GPIO controllers // #define MV_SOC_AP806_GPIO_BASE 0xF06F5040 #define MV_SOC_AP806_GPIO_PIN_COUNT 20 #define MV_SOC_GPIO_PER_CP_COUNT 2 #define MV_SOC_CP_GPIO_BASE(Gpio) (0x440100 + ((Gpio) * 0x40)) #define MV_SOC_CP_GPIO_PIN_COUNT(Gpio) ((Gpio) == 0 ? 32 : 31) // // Platform description of I2C controllers // #define MV_SOC_I2C_PER_AP_COUNT 1 #define MV_SOC_I2C_AP_BASE (MV_SOC_AP806_BASE + 0x511000) #define MV_SOC_I2C_PER_CP_COUNT 3 #define MV_SOC_I2C_BASE(I2c) ((I2c < 2) ? \ (0x701000 + (I2c) * 0x100) : \ 0x211000) // // Platform description of ICU (Interrupt Consolidation Unit) controllers // #define ICU_GIC_MAPPING_OFFSET 0 #define ICU_NSR_SET_SPI_BASE 0xf03f0040 #define ICU_NSR_CLEAR_SPI_BASE 0xf03f0048 #define ICU_SEI_SET_SPI_BASE 0xf03f0230 #define ICU_SEI_CLEAR_SPI_BASE 0xf03f0230 #define ICU_REI_SET_SPI_BASE 0xf03f0270 #define ICU_REI_CLEAR_SPI_BASE 0xf03f0270 #define ICU_GROUP_UNSUPPORTED 0x0 // // Platform description of MDIO controllers // #define MV_SOC_MDIO_BASE(Cp) (MV_SOC_CP_BASE (Cp) + 0x12A200) #define MV_SOC_MDIO_ID(Cp) (Cp) // // Platform description of PCIE // #define MV_SOC_PCIE_PER_CP_COUNT 3 #define MV_SOC_PCIE_BASE(Index) (0x600000 + ((Index) * 0x20000)) // // Platform description of PP2 NIC // #define MV_SOC_PP2_BASE(Cp) MV_SOC_CP_BASE (Cp) #define MV_SOC_PP2_CLK_FREQ 333333333 // // Platform description of SDMMC controllers // #define MV_SOC_SDMMC_PER_CP_COUNT 1 #define MV_SOC_AP80X_SDMMC_BASE 0xF06E0000 #define MV_SOC_CP_SDMMC_BASE(Cp) (MV_SOC_CP_BASE (Cp) + 0x780000) // // Platform description of UTMI PHY's // #define MV_SOC_UTMI_PER_CP_COUNT 2 #define MV_SOC_UTMI_ID(Utmi) (Utmi) #define MV_SOC_UTMI_BASE(Utmi) (0x58000C + ((Utmi) * 0x1000)) #define MV_SOC_UTMI_PLL_BASE 0x580000 #define MV_SOC_UTMI_CFG_BASE 0x440440 #define MV_SOC_UTMI_USB_CFG_BASE 0x440420 // // Platform description of XHCI controllers // #define MV_SOC_XHCI_PER_CP_COUNT 2 #define MV_SOC_XHCI_BASE(Xhci) (0x500000 + ((Xhci) * 0x10000)) #endif