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