summaryrefslogtreecommitdiff
path: root/include/soc/sprd/__hardware-sc9630.h
blob: 67311eb75ba673524a74b1b492b9277e75378ce2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
/*
 * Copyright (C) 2012 Spreadtrum Communications Inc.
 *
 * This software is licensed under the terms of the GNU General Public
 * License version 2, as published by the Free Software Foundation, and
 * may be copied, distributed, and modified under those terms.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

#ifndef __ASM_ARCH_HARDWARE_SCX35L_H
#define __ASM_ARCH_HARDWARE_SCX35L_H

#ifndef __ASM_ARCH_SCI_HARDWARE_H
#error  "Don't include this file directly, include <mach/hardware.h>"
#endif

#define SCI_IOMAP_BASE	0xF5000000

#define SCI_IOMAP(x)	(SCI_IOMAP_BASE + (x))

#define SCI_IOMEMMAP_BASE	0xcc800000

#define SCI_IOMEMMAP(x)	(SCI_IOMEMMAP_BASE + (x))

#ifndef SCI_ADDR
#define SCI_ADDR(_b_, _o_) ( (u32)(_b_) + (_o_) )
#endif

#define LL_DEBUG_UART_PHYS		SPRD_UART1_PHYS
#define LL_DEBUG_UART_BASE		SPRD_UART1_BASE

#include <soc/sprd/iomap.h>

#if !defined __ASSEMBLER__
extern unsigned long sprd_adi_base;
extern unsigned long sprd_adi_phys;
#define SPRD_ADI_BASE		sprd_adi_base
#define SPRD_ADI_PHYS		sprd_adi_phys
#define CONFIG_PHYS_OFFSET	0x80000000

#define SPRD_ADISLAVE_BASE		(SPRD_ADI_BASE+0x8000)
#define SPRD_ADISLAVE_PHYS		(SPRD_ADI_PHYS+0x8000)
#define REGS_ADISLAVE_BASE		SPRD_ADISLAVE_BASE
#define REGS_ADISLAVE_PHYS		SPRD_ADISLAVE_PHYS
#endif

#define SPRD_UART0_BASE		SCI_IOMAP(0x360000)
#define SPRD_UART0_PHYS		0x70000000
#define SPRD_UART0_SIZE		SZ_4K

#define SPRD_UART1_BASE		SCI_IOMAP(0x362000)
#define SPRD_UART1_PHYS		0x70100000
#define SPRD_UART1_SIZE		SZ_4K

#define SPRD_UART2_BASE		SCI_IOMAP(0x364000)
#define SPRD_UART2_PHYS		0x70200000
#define SPRD_UART2_SIZE		SZ_4K

#define SPRD_UART3_BASE		SCI_IOMAP(0x366000)
#define SPRD_UART3_PHYS		0x70300000
#define SPRD_UART3_SIZE		SZ_4K

#define SPRD_UART4_BASE		SCI_IOMAP(0x368000)
#define SPRD_UART4_PHYS		0x70400000
#define SPRD_UART4_SIZE		SZ_4K

#ifdef CONFIG_ARCH_SCX20L
#define SPRD_ARM7AHBRF_BASE	SCI_IOMAP(0x36A000)
#define SPRD_ARM7AHBRF_PHYS	0x50820000
#define SPRD_ARM7AHBRF_SIZE	SZ_4K
#endif

#define SPRD_IRAM0_BASE		SCI_IOMAP(0x3d0000)
#define SPRD_IRAM0_PHYS		0x0
#define SPRD_IRAM0_SIZE		SZ_4K

#define SPRD_IRAM0H_BASE	SCI_IOMAP(0x3d1000)
#define SPRD_IRAM0H_PHYS	0x1000
#define SPRD_IRAM0H_SIZE	SZ_4K

#define SPRD_IRAM1_BASE		SCI_IOMAP(0x3e0000)
#define SPRD_IRAM1_PHYS		0x50000000
#define SPRD_IRAM1_SIZE		(SZ_32K + SZ_8K + SZ_4K + SZ_2K)

#define SPRD_IRAM2_BASE     SCI_IOMAP(0x3d7000)
#define SPRD_IRAM2_PHYS     0x50002000
#define SPRD_IRAM2_SIZE     (SZ_16K + SZ_4K + SZ_2K + SZ_1K)

#define SPRD_PWM_BASE		SCI_IOMAP(0x20a000)
#define SPRD_PWM_PHYS		0X40260000
#define SPRD_PWM_SIZE		SZ_4K

#define SPRD_LPDDR2_BASE	SCI_IOMAP(0x160000)
#define SPRD_LPDDR2_PHYS	0X30000000
#define SPRD_LPDDR2_SIZE	SZ_4K

#define SPRD_SDIO1_PHYS		0X20400000
#define SPRD_SDIO1_SIZE		SZ_4K


#define SPRD_MALI_PHYS		0X60000000

#define CORE_GIC_CPU_VA		(SPRD_CORE_BASE + 0x2000)
#define CORE_GIC_DIS_VA		(SPRD_CORE_BASE + 0x1000)

#define HOLDING_PEN_VADDR	(SPRD_AHB_BASE + 0x14)
#define CPU_JUMP_VADDR		(HOLDING_PEN_VADDR + 0X4)

/* registers for watchdog ,RTC, touch panel, aux adc, analog die... */
#define SPRD_MISC_BASE	((unsigned int)SPRD_ADI_BASE)
#define SPRD_MISC_PHYS	((unsigned int)SPRD_ADI_PHYS)

#define ANA_PWM_BASE		(SPRD_ADISLAVE_BASE + 0x20 )
#define ANA_WDG_BASE		(SPRD_ADISLAVE_BASE + 0x40 )
#define ANA_RTC_BASE		(SPRD_ADISLAVE_BASE + 0x80 )
#define ANA_EIC_BASE		(SPRD_ADISLAVE_BASE + 0x100 )
#define ANA_PIN_BASE		(SPRD_ADISLAVE_BASE + 0x180 )
#define ANA_THM_BASE		(SPRD_ADISLAVE_BASE + 0x280 )
#define ADC_BASE		(SPRD_ADISLAVE_BASE + 0x300 )
#define ANA_CTL_INT_BASE	(SPRD_ADISLAVE_BASE + 0x380 )
#define ANA_BTLC_INT_BASE	(SPRD_ADISLAVE_BASE + 0x3c0 )
#define ANA_AUDIFA_INT_BASE	(SPRD_ADISLAVE_BASE + 0x400 )
#define ANA_GPIO_INT_BASE	(SPRD_ADISLAVE_BASE + 0x480 )
#define ANA_FPU_INT_BASE	(SPRD_ADISLAVE_BASE + 0x500 )
#define ANA_AUDCFGA_INT_BASE	(SPRD_ADISLAVE_BASE + 0x600 )
#define ANA_HDT_INT_BASE	(SPRD_ADISLAVE_BASE + 0x700 )
#define ANA_CTL_GLB_BASE	(SPRD_ADISLAVE_BASE + 0x800 )

#ifndef REGS_AHB_BASE
#define REGS_AHB_BASE		( SPRD_AHB_BASE  + 0x200)
#endif

#define SPRD_IRAM_BASE		SPRD_IRAM0_BASE + 0x1000
#define SPRD_IRAM_PHYS		SPRD_IRAM0_PHYS + 0x1000
#define SPRD_IRAM_SIZE		SZ_4K
#define SPRD_GREG_BASE		SPRD_AONAPB_BASE
#define SPRD_GREG_PHYS		SPRD_AONAPB_PHYS
#define SPRD_GREG_SIZE		SZ_64K

#ifndef REGS_GLB_BASE
#define REGS_GLB_BASE           ( SPRD_GREG_BASE )
#define ANA_REGS_GLB_BASE	( ANA_CTL_GLB_BASE )
#endif

#define CHIP_ID_LOW_REG		(SPRD_AHB_BASE + 0xfc)

#define SPRD_GPTIMER_BASE	SPRD_GPTIMER0_BASE
#define SPRD_EFUSE_BASE		SPRD_UIDEFUSE_BASE

#define REGS_AP_AHB_BASE	SPRD_AHB_BASE
#define REGS_AP_APB_BASE	SPRD_APBREG_BASE
#define REGS_AON_APB_BASE	SPRD_AONAPB_BASE
#define REGS_GPU_APB_BASE	SPRD_GPUAPB_BASE
#define REGS_MM_AHB_BASE	SPRD_MMAHB_BASE
#define REGS_PMU_APB_BASE	SPRD_PMU_BASE
#define REGS_AON_CLK_BASE	SPRD_AONCKG_BASE
#define REGS_AP_CLK_BASE	SPRD_APBCKG_BASE
#define REGS_GPU_CLK_BASE	SPRD_GPUCKG_BASE
#define REGS_MM_CLK_BASE	SPRD_MMCKG_BASE
#define REGS_PUB_APB_BASE	SPRD_PUB_BASE
#define REGS_ARM7_AHB_RF_BASE	SPRD_ARM7AHBRF_BASE


#endif