xref: /rk3399_rockchip-uboot/arch/arm/mach-keystone/include/mach/hardware-k2g.h (revision 4f66e09bb9fbc47b73f67c3cc08ee2663e8fcdb1)
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 Vutla static 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