~pmdj/ubuntu/trusty/qemu/2.9+applesmc+fadtv3

« back to all changes in this revision

Viewing changes to roms/u-boot/arch/arm/include/asm/arch-s3c24x0/s3c2410.h

  • Committer: Phil Dennis-Jordan
  • Date: 2017-07-21 08:03:43 UTC
  • mfrom: (1.1.1)
  • Revision ID: phil@philjordan.eu-20170721080343-2yr2vdj7713czahv
New upstream release 2.9.0.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * (C) Copyright 2003
 
3
 * David Müller ELSOFT AG Switzerland. d.mueller@elsoft.ch
 
4
 *
 
5
 * SPDX-License-Identifier:     GPL-2.0+
 
6
 */
 
7
 
 
8
/************************************************
 
9
 * NAME     : s3c2410.h
 
10
 * Version  : 31.3.2003
 
11
 *
 
12
 * Based on S3C2410X User's manual Rev 1.1
 
13
 ************************************************/
 
14
 
 
15
#ifndef __S3C2410_H__
 
16
#define __S3C2410_H__
 
17
 
 
18
#define S3C24X0_UART_CHANNELS   3
 
19
#define S3C24X0_SPI_CHANNELS    2
 
20
 
 
21
/* S3C2410 only supports 512 Byte HW ECC */
 
22
#define S3C2410_ECCSIZE         512
 
23
#define S3C2410_ECCBYTES        3
 
24
 
 
25
enum s3c24x0_uarts_nr {
 
26
        S3C24X0_UART0,
 
27
        S3C24X0_UART1,
 
28
        S3C24X0_UART2
 
29
};
 
30
 
 
31
/* S3C2410 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 S3C2410_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 S3C2410_ADC_BASE                0x58000000
 
48
#define S3C24X0_SPI_BASE                0x59000000
 
49
#define S3C2410_SDI_BASE                0x5A000000
 
50
 
 
51
 
 
52
/* include common stuff */
 
53
#include <asm/arch/s3c24x0.h>
 
54
 
 
55
 
 
56
static inline struct s3c24x0_memctl *s3c24x0_get_base_memctl(void)
 
57
{
 
58
        return (struct s3c24x0_memctl *)S3C24X0_MEMCTL_BASE;
 
59
}
 
60
 
 
61
static inline struct s3c24x0_usb_host *s3c24x0_get_base_usb_host(void)
 
62
{
 
63
        return (struct s3c24x0_usb_host *)S3C24X0_USB_HOST_BASE;
 
64
}
 
65
 
 
66
static inline struct s3c24x0_interrupt *s3c24x0_get_base_interrupt(void)
 
67
{
 
68
        return (struct s3c24x0_interrupt *)S3C24X0_INTERRUPT_BASE;
 
69
}
 
70
 
 
71
static inline struct s3c24x0_dmas *s3c24x0_get_base_dmas(void)
 
72
{
 
73
        return (struct s3c24x0_dmas *)S3C24X0_DMA_BASE;
 
74
}
 
75
 
 
76
static inline struct s3c24x0_clock_power *s3c24x0_get_base_clock_power(void)
 
77
{
 
78
        return (struct s3c24x0_clock_power *)S3C24X0_CLOCK_POWER_BASE;
 
79
}
 
80
 
 
81
static inline struct s3c24x0_lcd *s3c24x0_get_base_lcd(void)
 
82
{
 
83
        return (struct s3c24x0_lcd *)S3C24X0_LCD_BASE;
 
84
}
 
85
 
 
86
static inline struct s3c2410_nand *s3c2410_get_base_nand(void)
 
87
{
 
88
        return (struct s3c2410_nand *)S3C2410_NAND_BASE;
 
89
}
 
90
 
 
91
static inline struct s3c24x0_uart
 
92
        *s3c24x0_get_base_uart(enum s3c24x0_uarts_nr n)
 
93
{
 
94
        return (struct s3c24x0_uart *)(S3C24X0_UART_BASE + (n * 0x4000));
 
95
}
 
96
 
 
97
static inline struct s3c24x0_timers *s3c24x0_get_base_timers(void)
 
98
{
 
99
        return (struct s3c24x0_timers *)S3C24X0_TIMER_BASE;
 
100
}
 
101
 
 
102
static inline struct s3c24x0_usb_device *s3c24x0_get_base_usb_device(void)
 
103
{
 
104
        return (struct s3c24x0_usb_device *)S3C24X0_USB_DEVICE_BASE;
 
105
}
 
106
 
 
107
static inline struct s3c24x0_watchdog *s3c24x0_get_base_watchdog(void)
 
108
{
 
109
        return (struct s3c24x0_watchdog *)S3C24X0_WATCHDOG_BASE;
 
110
}
 
111
 
 
112
static inline struct s3c24x0_i2c *s3c24x0_get_base_i2c(void)
 
113
{
 
114
        return (struct s3c24x0_i2c *)S3C24X0_I2C_BASE;
 
115
}
 
116
 
 
117
static inline struct s3c24x0_i2s *s3c24x0_get_base_i2s(void)
 
118
{
 
119
        return (struct s3c24x0_i2s *)S3C24X0_I2S_BASE;
 
120
}
 
121
 
 
122
static inline struct s3c24x0_gpio *s3c24x0_get_base_gpio(void)
 
123
{
 
124
        return (struct s3c24x0_gpio *)S3C24X0_GPIO_BASE;
 
125
}
 
126
 
 
127
static inline struct s3c24x0_rtc *s3c24x0_get_base_rtc(void)
 
128
{
 
129
        return (struct s3c24x0_rtc *)S3C24X0_RTC_BASE;
 
130
}
 
131
 
 
132
static inline struct s3c2410_adc *s3c2410_get_base_adc(void)
 
133
{
 
134
        return (struct s3c2410_adc *)S3C2410_ADC_BASE;
 
135
}
 
136
 
 
137
static inline struct s3c24x0_spi *s3c24x0_get_base_spi(void)
 
138
{
 
139
        return (struct s3c24x0_spi *)S3C24X0_SPI_BASE;
 
140
}
 
141
 
 
142
static inline struct s3c2410_sdi *s3c2410_get_base_sdi(void)
 
143
{
 
144
        return (struct s3c2410_sdi *)S3C2410_SDI_BASE;
 
145
}
 
146
 
 
147
#endif /*__S3C2410_H__*/