]> git.kernelconcepts.de Git - karo-tx-uboot.git/blob - arch/arm/include/asm/arch-s3c24x0/s3c2440.h
Merge branch 'karo-tx-uboot' into kc-merge
[karo-tx-uboot.git] / arch / arm / include / asm / arch-s3c24x0 / s3c2440.h
1 /*
2  * (C) Copyright 2003
3  * David Mueller ELSOFT AG Switzerland. d.mueller@elsoft.ch
4  *
5  * SPDX-License-Identifier:     GPL-2.0+
6  */
7
8 /************************************************
9  * NAME     : s3c2440.h
10  * Version  : 31.3.2003
11  *
12  * Based on S3C2440 User's manual Rev x.x
13  ************************************************/
14
15 #ifndef __S3C2440_H__
16 #define __S3C2440_H__
17
18 #define S3C24X0_UART_CHANNELS   3
19 #define S3C24X0_SPI_CHANNELS    2
20
21 /* S3C2440 only supports 512 Byte HW ECC */
22 #define S3C2440_ECCSIZE         512
23 #define S3C2440_ECCBYTES        3
24
25 enum s3c24x0_uarts_nr {
26         S3C24X0_UART0,
27         S3C24X0_UART1,
28         S3C24X0_UART2
29 };
30
31 /* S3C2440 device base addresses */
32 #define S3C24X0_MEMCTL_BASE             0x48000000
33 #define S3C24X0_USB_HOST_BASE           0x49000000
34 #define S3C24X0_INTERRUPT_BASE          0x4A000000
35 #define S3C24X0_DMA_BASE                0x4B000000
36 #define S3C24X0_CLOCK_POWER_BASE        0x4C000000
37 #define S3C24X0_LCD_BASE                0x4D000000
38 #define S3C2440_NAND_BASE               0x4E000000
39 #define S3C24X0_UART_BASE               0x50000000
40 #define S3C24X0_TIMER_BASE              0x51000000
41 #define S3C24X0_USB_DEVICE_BASE         0x52000140
42 #define S3C24X0_WATCHDOG_BASE           0x53000000
43 #define S3C24X0_I2C_BASE                0x54000000
44 #define S3C24X0_I2S_BASE                0x55000000
45 #define S3C24X0_GPIO_BASE               0x56000000
46 #define S3C24X0_RTC_BASE                0x57000000
47 #define S3C2440_ADC_BASE                0x58000000
48 #define S3C24X0_SPI_BASE                0x59000000
49 #define S3C2440_SDI_BASE                0x5A000000
50
51 /* include common stuff */
52 #include <asm/arch/s3c24x0.h>
53
54 static inline struct s3c24x0_memctl *s3c24x0_get_base_memctl(void)
55 {
56         return (struct s3c24x0_memctl *)S3C24X0_MEMCTL_BASE;
57 }
58
59 static inline struct s3c24x0_usb_host *s3c24x0_get_base_usb_host(void)
60 {
61         return (struct s3c24x0_usb_host *)S3C24X0_USB_HOST_BASE;
62 }
63
64 static inline struct s3c24x0_interrupt *s3c24x0_get_base_interrupt(void)
65 {
66         return (struct s3c24x0_interrupt *)S3C24X0_INTERRUPT_BASE;
67 }
68
69 static inline struct s3c24x0_dmas *s3c24x0_get_base_dmas(void)
70 {
71         return (struct s3c24x0_dmas *)S3C24X0_DMA_BASE;
72 }
73
74 static inline struct s3c24x0_clock_power *s3c24x0_get_base_clock_power(void)
75 {
76         return (struct s3c24x0_clock_power *)S3C24X0_CLOCK_POWER_BASE;
77 }
78
79 static inline struct s3c24x0_lcd *s3c24x0_get_base_lcd(void)
80 {
81         return (struct s3c24x0_lcd *)S3C24X0_LCD_BASE;
82 }
83
84 static inline struct s3c24x0_nand *s3c24x0_get_base_nand(void)
85 {
86         return (struct s3c24x0_nand *)S3C2440_NAND_BASE;
87 }
88
89 static inline struct s3c24x0_uart
90         *s3c24x0_get_base_uart(enum s3c24x0_uarts_nr n)
91 {
92         return (struct s3c24x0_uart *)(S3C24X0_UART_BASE + (n * 0x4000));
93 }
94
95 static inline struct s3c24x0_timers *s3c24x0_get_base_timers(void)
96 {
97         return (struct s3c24x0_timers *)S3C24X0_TIMER_BASE;
98 }
99
100 static inline struct s3c24x0_usb_device *s3c24x0_get_base_usb_device(void)
101 {
102         return (struct s3c24x0_usb_device *)S3C24X0_USB_DEVICE_BASE;
103 }
104
105 static inline struct s3c24x0_watchdog *s3c24x0_get_base_watchdog(void)
106 {
107         return (struct s3c24x0_watchdog *)S3C24X0_WATCHDOG_BASE;
108 }
109
110 static inline struct s3c24x0_i2c *s3c24x0_get_base_i2c(void)
111 {
112         return (struct s3c24x0_i2c *)S3C24X0_I2C_BASE;
113 }
114
115 static inline struct s3c24x0_i2s *s3c24x0_get_base_i2s(void)
116 {
117         return (struct s3c24x0_i2s *)S3C24X0_I2S_BASE;
118 }
119
120 static inline struct s3c24x0_gpio *s3c24x0_get_base_gpio(void)
121 {
122         return (struct s3c24x0_gpio *)S3C24X0_GPIO_BASE;
123 }
124
125 static inline struct s3c24x0_rtc *s3c24x0_get_base_rtc(void)
126 {
127         return (struct s3c24x0_rtc *)S3C24X0_RTC_BASE;
128 }
129
130 static inline struct s3c2440_adc *s3c2440_get_base_adc(void)
131 {
132         return (struct s3c2440_adc *)S3C2440_ADC_BASE;
133 }
134
135 static inline struct s3c24x0_spi *s3c24x0_get_base_spi(void)
136 {
137         return (struct s3c24x0_spi *)S3C24X0_SPI_BASE;
138 }
139
140 static inline struct s3c24x0_sdi *s3c24x0_get_base_sdi(void)
141 {
142         return (struct s3c24x0_sdi *)S3C2440_SDI_BASE;
143 }
144
145 #endif /*__S3C2440_H__*/