10fba27b6SVitaly Andrianov /* 20fba27b6SVitaly Andrianov * K2G: SoC definitions 30fba27b6SVitaly Andrianov * 40fba27b6SVitaly Andrianov * (C) Copyright 2015 50fba27b6SVitaly Andrianov * Texas Instruments Incorporated, <www.ti.com> 60fba27b6SVitaly Andrianov * 70fba27b6SVitaly Andrianov * SPDX-License-Identifier: GPL-2.0+ 80fba27b6SVitaly Andrianov */ 90fba27b6SVitaly Andrianov 100fba27b6SVitaly Andrianov #ifndef __ASM_ARCH_HARDWARE_K2G_H 110fba27b6SVitaly Andrianov #define __ASM_ARCH_HARDWARE_K2G_H 120fba27b6SVitaly Andrianov 13f2a8279eSSuman Anna #define KS2_NUM_DSPS 1 140fba27b6SVitaly Andrianov 150fba27b6SVitaly Andrianov /* Power and Sleep Controller (PSC) Domains */ 160fba27b6SVitaly Andrianov #define KS2_LPSC_ALWAYSON 0 170fba27b6SVitaly Andrianov #define KS2_LPSC_PMMC 1 180fba27b6SVitaly Andrianov #define KS2_LPSC_DEBUG 2 190fba27b6SVitaly Andrianov #define KS2_LPSC_NSS 3 200fba27b6SVitaly Andrianov #define KS2_LPSC_SA 4 210fba27b6SVitaly Andrianov #define KS2_LPSC_TERANET 5 220fba27b6SVitaly Andrianov #define KS2_LPSC_SYS_COMP 6 230fba27b6SVitaly Andrianov #define KS2_LPSC_QSPI 7 240fba27b6SVitaly Andrianov #define KS2_LPSC_MMC 8 250fba27b6SVitaly Andrianov #define KS2_LPSC_GPMC 9 260fba27b6SVitaly Andrianov #define KS2_LPSC_MLB 11 270fba27b6SVitaly Andrianov #define KS2_LPSC_EHRPWM 12 280fba27b6SVitaly Andrianov #define KS2_LPSC_EQEP 13 290fba27b6SVitaly Andrianov #define KS2_LPSC_ECAP 14 300fba27b6SVitaly Andrianov #define KS2_LPSC_MCASP 15 310fba27b6SVitaly Andrianov #define KS2_LPSC_SR 16 320fba27b6SVitaly Andrianov #define KS2_LPSC_MSMC 17 33f2a8279eSSuman Anna #ifdef KS2_LPSC_GEM_0 34f2a8279eSSuman Anna #undef KS2_LPSC_GEM_0 35f2a8279eSSuman Anna #endif 36f2a8279eSSuman Anna #define KS2_LPSC_GEM_0 18 370fba27b6SVitaly Andrianov #define KS2_LPSC_ARM 19 380fba27b6SVitaly Andrianov #define KS2_LPSC_ASRC 20 390fba27b6SVitaly Andrianov #define KS2_LPSC_ICSS 21 400fba27b6SVitaly Andrianov #define KS2_LPSC_DSS 23 410fba27b6SVitaly Andrianov #define KS2_LPSC_PCIE 24 420fba27b6SVitaly Andrianov #define KS2_LPSC_USB_0 25 430fba27b6SVitaly Andrianov #define KS2_LPSC_USB KS2_LPSC_USB_0 440fba27b6SVitaly Andrianov #define KS2_LPSC_USB_1 26 450fba27b6SVitaly Andrianov #define KS2_LPSC_DDR3 27 460fba27b6SVitaly Andrianov #define KS2_LPSC_SPARE0_LPSC0 28 470fba27b6SVitaly Andrianov #define KS2_LPSC_SPARE0_LPSC1 29 480fba27b6SVitaly Andrianov #define KS2_LPSC_SPARE1_LPSC0 30 490fba27b6SVitaly Andrianov #define KS2_LPSC_SPARE1_LPSC1 31 500fba27b6SVitaly Andrianov 510fba27b6SVitaly Andrianov #define KS2_LPSC_CPGMAC KS2_LPSC_NSS 520fba27b6SVitaly Andrianov #define KS2_LPSC_CRYPTO KS2_LPSC_SA 530fba27b6SVitaly Andrianov 5411d8222aSVitaly Andrianov /* SGMII SerDes */ 5511d8222aSVitaly Andrianov #define KS2_LANES_PER_SGMII_SERDES 4 5611d8222aSVitaly Andrianov 5711d8222aSVitaly Andrianov /* NETCP pktdma */ 5811d8222aSVitaly Andrianov #define KS2_NETCP_PDMA_CTRL_BASE 0x04010000 5911d8222aSVitaly Andrianov #define KS2_NETCP_PDMA_TX_BASE 0x04011000 6011d8222aSVitaly Andrianov #define KS2_NETCP_PDMA_TX_CH_NUM 21 6111d8222aSVitaly Andrianov #define KS2_NETCP_PDMA_RX_BASE 0x04012000 6211d8222aSVitaly Andrianov #define KS2_NETCP_PDMA_RX_CH_NUM 32 6311d8222aSVitaly Andrianov #define KS2_NETCP_PDMA_SCHED_BASE 0x04010100 6411d8222aSVitaly Andrianov #define KS2_NETCP_PDMA_RX_FLOW_BASE 0x04013000 6511d8222aSVitaly Andrianov #define KS2_NETCP_PDMA_RX_FLOW_NUM 32 6611d8222aSVitaly Andrianov #define KS2_NETCP_PDMA_TX_SND_QUEUE 5 6711d8222aSVitaly Andrianov 6811d8222aSVitaly Andrianov /* NETCP */ 6911d8222aSVitaly Andrianov #define KS2_NETCP_BASE 0x04000000 7011d8222aSVitaly Andrianov 7111d8222aSVitaly Andrianov #define K2G_GPIO0_BASE 0X02603000 7211d8222aSVitaly Andrianov #define K2G_GPIO1_BASE 0X0260a000 7311d8222aSVitaly Andrianov #define K2G_GPIO1_BANK2_BASE K2G_GPIO1_BASE + 0x38 7411d8222aSVitaly Andrianov #define K2G_GPIO_DIR_OFFSET 0x0 7511d8222aSVitaly Andrianov #define K2G_GPIO_SETDATA_OFFSET 0x8 7611d8222aSVitaly Andrianov 77e2924e59SLokesh Vutla /* BOOTCFG RESETMUX8 */ 78e2924e59SLokesh Vutla #define KS2_RSTMUX8 (KS2_DEVICE_STATE_CTRL_BASE + 0x328) 79e2924e59SLokesh Vutla 80e2924e59SLokesh Vutla /* RESETMUX register definitions */ 81e2924e59SLokesh Vutla #define RSTMUX_LOCK8_SHIFT 0x0 82e2924e59SLokesh Vutla #define RSTMUX_LOCK8_MASK (0x1 << 0) 83e2924e59SLokesh Vutla #define RSTMUX_OMODE8_SHIFT 0x1 84e2924e59SLokesh Vutla #define RSTMUX_OMODE8_MASK (0x7 << 1) 85e2924e59SLokesh Vutla #define RSTMUX_OMODE8_DEV_RESET 0x2 86e2924e59SLokesh Vutla #define RSTMUX_OMODE8_INT 0x3 87e2924e59SLokesh Vutla #define RSTMUX_OMODE8_INT_AND_DEV_RESET 0x4 88e2924e59SLokesh Vutla 89*c5f177deSLokesh Vutla /* DEVSTAT register definition */ 90*c5f177deSLokesh Vutla #define KS2_DEVSTAT_REFCLK_SHIFT 7 91*c5f177deSLokesh Vutla #define KS2_DEVSTAT_REFCLK_MASK (0x7 << 7) 92*c5f177deSLokesh Vutla 93*c5f177deSLokesh Vutla /* GPMC */ 94*c5f177deSLokesh Vutla #define KS2_GPMC_BASE 0x21818000 95*c5f177deSLokesh Vutla 96*c5f177deSLokesh Vutla /* SYSCLK indexes */ 97*c5f177deSLokesh Vutla #define SYSCLK_19MHz 0 98*c5f177deSLokesh Vutla #define SYSCLK_24MHz 1 99*c5f177deSLokesh Vutla #define SYSCLK_25MHz 2 100*c5f177deSLokesh Vutla #define SYSCLK_26MHz 3 101*c5f177deSLokesh Vutla #define MAX_SYSCLK 4 102*c5f177deSLokesh Vutla 103*c5f177deSLokesh Vutla #ifndef __ASSEMBLY__ get_sysclk_index(void)104*c5f177deSLokesh Vutlastatic inline u8 get_sysclk_index(void) 105*c5f177deSLokesh Vutla { 106*c5f177deSLokesh Vutla u32 dev_stat = __raw_readl(KS2_DEVSTAT); 107*c5f177deSLokesh Vutla return (dev_stat & KS2_DEVSTAT_REFCLK_MASK) >> KS2_DEVSTAT_REFCLK_SHIFT; 108*c5f177deSLokesh Vutla } 109*c5f177deSLokesh Vutla #endif 1100fba27b6SVitaly Andrianov #endif /* __ASM_ARCH_HARDWARE_K2G_H */ 111