]> git.karo-electronics.de Git - karo-tx-uboot.git/blobdiff - arch/arm/include/asm/arch-s5pc1xx/cpu.h
S5P: Use accessor functions instead of SoC specific defines to access the base address
[karo-tx-uboot.git] / arch / arm / include / asm / arch-s5pc1xx / cpu.h
index b3af8cc782af8ad52ea22acc818c1575ae007e7c..bcb8f5c77414f536a4a1402ae3935eab4a7449bc 100644 (file)
@@ -25,9 +25,9 @@
 
 #define S5PC1XX_ADDR_BASE      0xE0000000
 
-#define S5PC1XX_CLOCK_BASE     0xE0100000
-
 /* S5PC100 */
+#define S5PC100_PRO_ID         0xE0000000
+#define S5PC100_CLOCK_BASE     0xE0100000
 #define S5PC100_GPIO_BASE      0xE0300000
 #define S5PC100_VIC0_BASE      0xE4000000
 #define S5PC100_VIC1_BASE      0xE4100000
@@ -41,6 +41,8 @@
 #define S5PC100_MMC_BASE       0xED800000
 
 /* S5PC110 */
+#define S5PC110_PRO_ID         0xE0000000
+#define S5PC110_CLOCK_BASE     0xE0100000
 #define S5PC110_GPIO_BASE      0xE0200000
 #define S5PC110_PWMTIMER_BASE  0xE2500000
 #define S5PC110_WATCHDOG_BASE  0xE2700000
@@ -54,9 +56,6 @@
 #define S5PC110_VIC2_BASE      0xF2200000
 #define S5PC110_VIC3_BASE      0xF2300000
 
-/* Chip ID */
-#define S5PC1XX_PRO_ID         0xE0000000
-
 #ifndef __ASSEMBLY__
 /* CPU detection macros */
 extern unsigned int s5pc1xx_cpu_id;
@@ -69,6 +68,25 @@ static inline int cpu_is_##type(void)                        \
 
 IS_SAMSUNG_TYPE(s5pc100, 0xc100)
 IS_SAMSUNG_TYPE(s5pc110, 0xc110)
+
+#define SAMSUNG_BASE(device, base)                             \
+static inline unsigned int samsung_get_base_##device(void)     \
+{                                                              \
+       if (cpu_is_s5pc100())                                   \
+               return S5PC100_##base;                          \
+       else if (cpu_is_s5pc110())                              \
+               return S5PC110_##base;                          \
+       else                                                    \
+               return 0;                                       \
+}                                                              \
+
+SAMSUNG_BASE(clock, CLOCK_BASE)
+SAMSUNG_BASE(gpio, GPIO_BASE)
+SAMSUNG_BASE(pro_id, PRO_ID)
+SAMSUNG_BASE(mmc, MMC_BASE)
+SAMSUNG_BASE(sromc, SROMC_BASE)
+SAMSUNG_BASE(timer, PWMTIMER_BASE)
+SAMSUNG_BASE(uart, UART_BASE)
 #endif
 
 #endif /* _S5PC1XX_CPU_H */