062123b5fcf43535a0f941e251b451b34d0a3999
[firefly-linux-kernel-4.4.55.git] / arch / arm / mach-rk30 / include / mach / io.h
1 #ifndef __MACH_IO_H
2 #define __MACH_IO_H
3
4 #include <plat/io.h>
5
6 /*
7  * RK30 IO memory map:
8  *
9  * Virt         Phys            Size    What
10  * ---------------------------------------------------------------------------
11  * FEA00000     10000000        1M
12  * FEB00000     10100000        1M
13  * FEC00000     10200000        176K
14  *              10300000        1M      Peri AXI BUS
15  * FEC80000     10500000        16K     NANDC
16  * FECE0000     1FFE0000        128K    CPU Debug
17  * FED00000     20000000        640K
18  * FEF00000     10080000/0      64K     SRAM
19  */
20
21 #define RK30_IO_TO_VIRT0(pa)    IOMEM(pa + (0xFEA00000 - 0x10000000))
22 #define RK30_IO_TO_VIRT1(pa)    IOMEM(pa + (0xFED00000 - 0x20000000))
23
24 #define RK30_L2MEM_PHYS         0x10000000
25 #define RK30_L2MEM_SIZE         SZ_512K
26 #define RK30_IMEM_PHYS          0x10080000
27 #define RK30_IMEM_BASE          IOMEM(0xFEF00000)
28 #define RK30_IMEM_NONCACHED     RK30_IO_TO_VIRT0(RK30_IMEM_PHYS)
29 #define RK30_IMEM_SIZE          SZ_64K
30 #define RK30_GPU_PHYS           0x10090000
31 #define RK30_GPU_SIZE           SZ_64K
32
33 #define RK30_ROM_PHYS           0x10100000
34 #define RK30_ROM_SIZE           SZ_16K
35 #define RK30_VCODEC_PHYS        0x10104000
36 #define RK30_VCODEC_SIZE        SZ_16K
37 #define RK30_CIF0_PHYS          0x10108000
38 #define RK30_CIF0_SIZE          SZ_8K
39 #define RK30_CIF1_PHYS          0x1010a000
40 #define RK30_CIF1_SIZE          SZ_8K
41 #define RK30_LCDC0_PHYS         0x1010c000
42 #define RK30_LCDC0_SIZE         SZ_8K
43 #define RK30_LCDC1_PHYS         0x1010e000
44 #define RK30_LCDC1_SIZE         SZ_8K
45 #define RK30_IPP_PHYS           0x10110000
46 #define RK30_IPP_SIZE           SZ_16K
47 #define RK30_RGA_PHYS           0x10114000
48 #define RK30_RGA_SIZE           SZ_8K
49 #define RK30_HDMI_PHYS          0x10116000
50 #define RK30_HDMI_SIZE          SZ_8K
51 #define RK30_I2S0_8CH_PHYS      0x10118000
52 #define RK30_I2S0_8CH_SIZE      SZ_8K
53 #define RK30_I2S1_2CH_PHYS      0x1011a000
54 #define RK30_I2S1_2CH_SIZE      SZ_8K
55 #define RK30_I2S2_2CH_PHYS      0x1011c000
56 #define RK30_I2S2_2CH_SIZE      SZ_8K
57 #define RK30_SPDIF_PHYS         0x1011e000
58 #define RK30_SPDIF_SIZE         SZ_8K
59
60 #define RK30_UART0_PHYS         0x10124000
61 #define RK30_UART0_BASE         RK30_IO_TO_VIRT0(RK30_UART0_PHYS)
62 #define RK30_UART0_SIZE         SZ_8K
63 #define RK30_UART1_PHYS         0x10126000
64 #define RK30_UART1_BASE         RK30_IO_TO_VIRT0(RK30_UART1_PHYS)
65 #define RK30_UART1_SIZE         SZ_8K
66 #define RK30_CPU_AXI_BUS_PHYS   0x10128000
67 #define RK30_CPU_AXI_BUS_BASE   RK30_IO_TO_VIRT0(RK30_CPU_AXI_BUS_PHYS)
68 #define RK30_CPU_AXI_BUS_SIZE   SZ_32K
69
70 #define RK30_L2C_PHYS           0x10138000
71 #define RK30_L2C_BASE           RK30_IO_TO_VIRT0(RK30_L2C_PHYS)
72 #define RK30_L2C_SIZE           SZ_16K
73 #define RK30_SCU_PHYS           0x1013c000
74 #define RK30_SCU_BASE           RK30_IO_TO_VIRT0(RK30_SCU_PHYS)
75 #define RK30_SCU_SIZE           SZ_256
76 #define RK30_GICC_PHYS          0x1013c100
77 #define RK30_GICC_BASE          RK30_IO_TO_VIRT0(RK30_GICC_PHYS)
78 #define RK30_GICC_SIZE          SZ_256
79 #define RK30_GTIMER_PHYS        0x1013c200
80 #define RK30_GTIMER_BASE        RK30_IO_TO_VIRT0(RK30_GTIMER_PHYS)
81 #define RK30_GTIMER_SIZE        SZ_1K
82 #define RK30_PTIMER_PHYS        0x1013c600
83 #define RK30_PTIMER_BASE        RK30_IO_TO_VIRT0(RK30_PTIMER_PHYS)
84 #define RK30_PTIMER_SIZE        (SZ_2K + SZ_512)
85 #define RK30_GICD_PHYS          0x1013d000
86 #define RK30_GICD_BASE          RK30_IO_TO_VIRT0(RK30_GICD_PHYS)
87 #define RK30_GICD_SIZE          SZ_2K
88
89 #define RK30_CORE_PHYS          RK30_L2C_PHYS
90 #define RK30_CORE_BASE          RK30_IO_TO_VIRT0(RK30_CORE_PHYS)
91 #define RK30_CORE_SIZE          (RK30_L2C_SIZE + SZ_8K)
92
93 #define RK30_USBHOST11_PHYS     0x10140000
94 #define RK30_USBHOST11_SIZE     SZ_256K
95 #define RK30_USBOTG20_PHYS      0x10180000
96 #define RK30_USBOTG20_SIZE      SZ_256K
97 #define RK30_USBHOST20_PHYS     0x101c0000
98 #define RK30_USBHOST20_SIZE     SZ_256K
99
100 #define RK30_MAC_PHYS           0x10204000
101 #define RK30_MAC_SIZE           SZ_16K
102
103 #define RK30_HSADC_PHYS         0x10210000
104 #define RK30_HSADC_SIZE         SZ_16K
105 #define RK30_SDMMC0_PHYS        0x10214000
106 #define RK30_SDMMC0_SIZE        SZ_16K
107 #define RK30_SDIO_PHYS          0x10218000
108 #define RK30_SDIO_SIZE          SZ_16K
109 #define RK30_EMMC_PHYS          0x1021c000
110 #define RK30_EMMC_SIZE          SZ_16K
111 #define RK30_PIDF_PHYS          0x10220000
112 #define RK30_PIDF_SIZE          SZ_16K
113
114 #define RK30_PERI_AXI_BUS_PHYS  0x10300000
115 #define RK30_PERI_AXI_BUS_SIZE  SZ_1M
116
117 #define RK30_NANDC_PHYS         0x10500000
118 #define RK30_NANDC_SIZE         SZ_16K
119
120 #define RK30_SMC_BANK0_PHYS     0x11000000
121 #define RK30_SMC_BANK0_SIZE     SZ_16M
122 #define RK30_SMC_BANK1_PHYS     0x12000000
123 #define RK30_SMC_BANK1_SIZE     SZ_16M
124
125 #define RK30_CPU_DEBUG_PHYS     0x1FFE0000
126 #define RK30_CPU_DEBUG_SIZE     SZ_128K
127 #define RK30_CRU_PHYS           0x20000000
128 #define RK30_CRU_BASE           RK30_IO_TO_VIRT1(RK30_CRU_PHYS)
129 #define RK30_CRU_SIZE           SZ_16K
130 #define RK30_PMU_PHYS           0x20004000
131 #define RK30_PMU_BASE           RK30_IO_TO_VIRT1(RK30_PMU_PHYS)
132 #define RK30_PMU_SIZE           SZ_16K
133 #define RK30_GRF_PHYS           0x20008000
134 #define RK30_GRF_BASE           RK30_IO_TO_VIRT1(RK30_GRF_PHYS)
135 #define RK30_GRF_SIZE           SZ_8K
136 #define RK30_GPIO6_PHYS         0x2000a000
137 #define RK30_GPIO6_BASE         RK30_IO_TO_VIRT1(RK30_GPIO6_PHYS)
138 #define RK30_GPIO6_SIZE         SZ_8K
139
140 #define RK30_TIMER2_PHYS        0x2000e000
141 #define RK30_TIMER2_BASE        RK30_IO_TO_VIRT1(RK30_TIMER2_PHYS)
142 #define RK30_TIMER2_SIZE        SZ_8K
143 #define RK30_EFUSE_PHYS         0x20010000
144 #define RK30_EFUSE_SIZE         SZ_16K
145 #define RK30_TZPC_PHYS          0x20014000
146 #define RK30_TZPC_SIZE          SZ_16K
147 #define RK30_DMACS1_PHYS        0x20018000
148 #define RK30_DMACS1_SIZE        SZ_16K
149 #define RK30_DMAC1_PHYS         0x2001c000
150 #define RK30_DMAC1_SIZE         SZ_16K
151 #define RK30_DDR_PCTL_PHYS      0x20020000
152 #define RK30_DDR_PCTL_BASE      RK30_IO_TO_VIRT1(RK30_DDR_PCTL_PHYS)
153 #define RK30_DDR_PCTL_SIZE      SZ_16K
154
155 #define RK30_I2C0_PHYS          0x2002c000
156 #define RK30_I2C0_SIZE          SZ_8K
157 #define RK30_I2C1_PHYS          0x2002e000
158 #define RK30_I2C1_SIZE          SZ_8K
159 #define RK30_PWM01_PHYS         0x20030000
160 #define RK30_PWM01_BASE         RK30_IO_TO_VIRT1(RK30_PWM01_PHYS)
161 #define RK30_PWM01_SIZE         SZ_16K
162 #define RK30_GPIO0_PHYS         0x20034000
163 #define RK30_GPIO0_BASE         RK30_IO_TO_VIRT1(RK30_GPIO0_PHYS)
164 #define RK30_GPIO0_SIZE         SZ_16K
165 #define RK30_TIMER0_PHYS        0x20038000
166 #define RK30_TIMER0_BASE        RK30_IO_TO_VIRT1(RK30_TIMER0_PHYS)
167 #define RK30_TIMER0_SIZE        SZ_8K
168 #define RK30_TIMER1_PHYS        0x2003a000
169 #define RK30_TIMER1_BASE        RK30_IO_TO_VIRT1(RK30_TIMER1_PHYS)
170 #define RK30_TIMER1_SIZE        SZ_8K
171 #define RK30_GPIO1_PHYS         0x2003c000
172 #define RK30_GPIO1_BASE         RK30_IO_TO_VIRT1(RK30_GPIO1_PHYS)
173 #define RK30_GPIO1_SIZE         SZ_8K
174 #define RK30_GPIO2_PHYS         0x2003e000
175 #define RK30_GPIO2_BASE         RK30_IO_TO_VIRT1(RK30_GPIO2_PHYS)
176 #define RK30_GPIO2_SIZE         SZ_8K
177 #define RK30_DDR_PUBL_PHYS      0x20040000
178 #define RK30_DDR_PUBL_BASE      RK30_IO_TO_VIRT1(RK30_DDR_PUBL_PHYS)
179 #define RK30_DDR_PUBL_SIZE      SZ_16K
180
181 #define RK30_WDT_PHYS           0x2004c000
182 #define RK30_WDT_SIZE           SZ_16K
183 #define RK30_PWM23_PHYS         0x20050000
184 #define RK30_PWM23_BASE         RK30_IO_TO_VIRT1(RK30_PWM23_PHYS)
185 #define RK30_PWM23_SIZE         SZ_16K
186 #define RK30_I2C2_PHYS          0x20054000
187 #define RK30_I2C2_SIZE          SZ_16K
188 #define RK30_I2C3_PHYS          0x20058000
189 #define RK30_I2C3_SIZE          SZ_16K
190 #define RK30_I2C4_PHYS          0x2005c000
191 #define RK30_I2C4_SIZE          SZ_16K
192 #define RK30_TSADC_PHYS         0x20060000
193 #define RK30_TSADC_SIZE         SZ_16K
194 #define RK30_UART2_PHYS         0x20064000
195 #define RK30_UART2_BASE         RK30_IO_TO_VIRT1(RK30_UART2_PHYS)
196 #define RK30_UART2_SIZE         SZ_16K
197 #define RK30_UART3_PHYS         0x20068000
198 #define RK30_UART3_BASE         RK30_IO_TO_VIRT1(RK30_UART3_PHYS)
199 #define RK30_UART3_SIZE         SZ_16K
200 #define RK30_SARADC_PHYS        0x2006c000
201 #define RK30_SARADC_SIZE        SZ_16K
202 #define RK30_SPI0_PHYS          0x20070000
203 #define RK30_SPI0_SIZE          SZ_16K
204 #define RK30_SPI1_PHYS          0x20074000
205 #define RK30_SPI1_SIZE          SZ_16K
206 #define RK30_DMAC2_PHYS         0x20078000
207 #define RK30_DMAC2_SIZE         SZ_16K
208 #define RK30_SMC_PHYS           0x2007c000
209 #define RK30_SMC_SIZE           SZ_16K
210 #define RK30_GPIO3_PHYS         0x20080000
211 #define RK30_GPIO3_BASE         RK30_IO_TO_VIRT1(RK30_GPIO3_PHYS)
212 #define RK30_GPIO3_SIZE         SZ_16K
213 #define RK30_GPIO4_PHYS         0x20084000
214 #define RK30_GPIO4_BASE         RK30_IO_TO_VIRT1(RK30_GPIO4_PHYS)
215 #define RK30_GPIO4_SIZE         SZ_16K
216
217 #if CONFIG_RK_DEBUG_UART == 0
218 #define DEBUG_UART_PHYS         RK30_UART0_PHYS
219 #define DEBUG_UART_BASE         RK30_UART0_BASE
220 #elif CONFIG_RK_DEBUG_UART == 1
221 #define DEBUG_UART_PHYS         RK30_UART1_PHYS
222 #define DEBUG_UART_BASE         RK30_UART1_BASE
223 #elif CONFIG_RK_DEBUG_UART == 2
224 #define DEBUG_UART_PHYS         RK30_UART2_PHYS
225 #define DEBUG_UART_BASE         RK30_UART2_BASE
226 #elif CONFIG_RK_DEBUG_UART == 3
227 #define DEBUG_UART_PHYS         RK30_UART3_PHYS
228 #define DEBUG_UART_BASE         RK30_UART3_BASE
229 #endif
230
231 #define GIC_DIST_BASE           RK30_GICD_BASE
232 #define GIC_CPU_BASE            RK30_GICC_BASE
233
234 #endif