xref: /openbmc/u-boot/arch/arm/mach-kirkwood/include/mach/soc.h (revision ea3857230c2d7428e8c22a9d063b4a5b86b34a0c)
1*ea385723SMasahiro Yamada /*
2*ea385723SMasahiro Yamada  * (C) Copyright 2009
3*ea385723SMasahiro Yamada  * Marvell Semiconductor <www.marvell.com>
4*ea385723SMasahiro Yamada  * Written-by: Prafulla Wadaskar <prafulla@marvell.com>
5*ea385723SMasahiro Yamada  *
6*ea385723SMasahiro Yamada  * Header file for the Marvell's Feroceon CPU core.
7*ea385723SMasahiro Yamada  *
8*ea385723SMasahiro Yamada  * SPDX-License-Identifier:	GPL-2.0+
9*ea385723SMasahiro Yamada  */
10*ea385723SMasahiro Yamada 
11*ea385723SMasahiro Yamada #ifndef _ASM_ARCH_KIRKWOOD_H
12*ea385723SMasahiro Yamada #define _ASM_ARCH_KIRKWOOD_H
13*ea385723SMasahiro Yamada 
14*ea385723SMasahiro Yamada #if defined (CONFIG_FEROCEON_88FR131) || defined (CONFIG_SHEEVA_88SV131)
15*ea385723SMasahiro Yamada 
16*ea385723SMasahiro Yamada /* SOC specific definations */
17*ea385723SMasahiro Yamada #define INTREG_BASE			0xd0000000
18*ea385723SMasahiro Yamada #define KW_REGISTER(x)			(KW_REGS_PHY_BASE + x)
19*ea385723SMasahiro Yamada #define KW_OFFSET_REG			(INTREG_BASE + 0x20080)
20*ea385723SMasahiro Yamada 
21*ea385723SMasahiro Yamada /* undocumented registers */
22*ea385723SMasahiro Yamada #define KW_REG_UNDOC_0x1470		(KW_REGISTER(0x1470))
23*ea385723SMasahiro Yamada #define KW_REG_UNDOC_0x1478		(KW_REGISTER(0x1478))
24*ea385723SMasahiro Yamada 
25*ea385723SMasahiro Yamada #define MVEBU_SDRAM_BASE		(KW_REGISTER(0x1500))
26*ea385723SMasahiro Yamada #define KW_TWSI_BASE			(KW_REGISTER(0x11000))
27*ea385723SMasahiro Yamada #define KW_UART0_BASE			(KW_REGISTER(0x12000))
28*ea385723SMasahiro Yamada #define KW_UART1_BASE			(KW_REGISTER(0x12100))
29*ea385723SMasahiro Yamada #define KW_MPP_BASE			(KW_REGISTER(0x10000))
30*ea385723SMasahiro Yamada #define MVEBU_GPIO0_BASE			(KW_REGISTER(0x10100))
31*ea385723SMasahiro Yamada #define MVEBU_GPIO1_BASE			(KW_REGISTER(0x10140))
32*ea385723SMasahiro Yamada #define KW_RTC_BASE			(KW_REGISTER(0x10300))
33*ea385723SMasahiro Yamada #define KW_NANDF_BASE			(KW_REGISTER(0x10418))
34*ea385723SMasahiro Yamada #define MVEBU_SPI_BASE			(KW_REGISTER(0x10600))
35*ea385723SMasahiro Yamada #define KW_CPU_WIN_BASE			(KW_REGISTER(0x20000))
36*ea385723SMasahiro Yamada #define KW_CPU_REG_BASE			(KW_REGISTER(0x20100))
37*ea385723SMasahiro Yamada #define MVEBU_TIMER_BASE			(KW_REGISTER(0x20300))
38*ea385723SMasahiro Yamada #define KW_REG_PCIE_BASE		(KW_REGISTER(0x40000))
39*ea385723SMasahiro Yamada #define KW_USB20_BASE			(KW_REGISTER(0x50000))
40*ea385723SMasahiro Yamada #define KW_EGIGA0_BASE			(KW_REGISTER(0x72000))
41*ea385723SMasahiro Yamada #define KW_EGIGA1_BASE			(KW_REGISTER(0x76000))
42*ea385723SMasahiro Yamada #define KW_SATA_BASE			(KW_REGISTER(0x80000))
43*ea385723SMasahiro Yamada #define KW_SDIO_BASE			(KW_REGISTER(0x90000))
44*ea385723SMasahiro Yamada 
45*ea385723SMasahiro Yamada /* Kirkwood Sata controller has two ports */
46*ea385723SMasahiro Yamada #define KW_SATA_PORT0_OFFSET		0x2000
47*ea385723SMasahiro Yamada #define KW_SATA_PORT1_OFFSET		0x4000
48*ea385723SMasahiro Yamada 
49*ea385723SMasahiro Yamada /* Kirkwood GbE controller has two ports */
50*ea385723SMasahiro Yamada #define MAX_MVGBE_DEVS	2
51*ea385723SMasahiro Yamada #define MVGBE0_BASE	KW_EGIGA0_BASE
52*ea385723SMasahiro Yamada #define MVGBE1_BASE	KW_EGIGA1_BASE
53*ea385723SMasahiro Yamada 
54*ea385723SMasahiro Yamada /* Kirkwood USB Host controller */
55*ea385723SMasahiro Yamada #define MVUSB0_BASE			KW_USB20_BASE
56*ea385723SMasahiro Yamada #define MVUSB0_CPU_ATTR_DRAM_CS0	KWCPU_ATTR_DRAM_CS0
57*ea385723SMasahiro Yamada #define MVUSB0_CPU_ATTR_DRAM_CS1	KWCPU_ATTR_DRAM_CS1
58*ea385723SMasahiro Yamada #define MVUSB0_CPU_ATTR_DRAM_CS2	KWCPU_ATTR_DRAM_CS2
59*ea385723SMasahiro Yamada #define MVUSB0_CPU_ATTR_DRAM_CS3	KWCPU_ATTR_DRAM_CS3
60*ea385723SMasahiro Yamada 
61*ea385723SMasahiro Yamada /* Kirkwood CPU memory windows */
62*ea385723SMasahiro Yamada #define MVCPU_WIN_CTRL_DATA	KWCPU_WIN_CTRL_DATA
63*ea385723SMasahiro Yamada #define MVCPU_WIN_ENABLE	KWCPU_WIN_ENABLE
64*ea385723SMasahiro Yamada #define MVCPU_WIN_DISABLE	KWCPU_WIN_DISABLE
65*ea385723SMasahiro Yamada 
66*ea385723SMasahiro Yamada #if defined (CONFIG_KW88F6281)
67*ea385723SMasahiro Yamada #include <asm/arch/kw88f6281.h>
68*ea385723SMasahiro Yamada #elif defined (CONFIG_KW88F6192)
69*ea385723SMasahiro Yamada #include <asm/arch/kw88f6192.h>
70*ea385723SMasahiro Yamada #else
71*ea385723SMasahiro Yamada #error "SOC Name not defined"
72*ea385723SMasahiro Yamada #endif /* CONFIG_KW88F6281 */
73*ea385723SMasahiro Yamada #endif /* CONFIG_FEROCEON_88FR131 */
74*ea385723SMasahiro Yamada #endif /* _ASM_ARCH_KIRKWOOD_H */
75