uboot/arch/arm/include/asm/arch-s3c24x0/s3c2440.h
<<
>>
Prefs
   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
  25enum 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
  54static inline struct s3c24x0_memctl *s3c24x0_get_base_memctl(void)
  55{
  56        return (struct s3c24x0_memctl *)S3C24X0_MEMCTL_BASE;
  57}
  58
  59static inline struct s3c24x0_usb_host *s3c24x0_get_base_usb_host(void)
  60{
  61        return (struct s3c24x0_usb_host *)S3C24X0_USB_HOST_BASE;
  62}
  63
  64static inline struct s3c24x0_interrupt *s3c24x0_get_base_interrupt(void)
  65{
  66        return (struct s3c24x0_interrupt *)S3C24X0_INTERRUPT_BASE;
  67}
  68
  69static inline struct s3c24x0_dmas *s3c24x0_get_base_dmas(void)
  70{
  71        return (struct s3c24x0_dmas *)S3C24X0_DMA_BASE;
  72}
  73
  74static inline struct s3c24x0_clock_power *s3c24x0_get_base_clock_power(void)
  75{
  76        return (struct s3c24x0_clock_power *)S3C24X0_CLOCK_POWER_BASE;
  77}
  78
  79static inline struct s3c24x0_lcd *s3c24x0_get_base_lcd(void)
  80{
  81        return (struct s3c24x0_lcd *)S3C24X0_LCD_BASE;
  82}
  83
  84static inline struct s3c24x0_nand *s3c24x0_get_base_nand(void)
  85{
  86        return (struct s3c24x0_nand *)S3C2440_NAND_BASE;
  87}
  88
  89static 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
  95static inline struct s3c24x0_timers *s3c24x0_get_base_timers(void)
  96{
  97        return (struct s3c24x0_timers *)S3C24X0_TIMER_BASE;
  98}
  99
 100static inline struct s3c24x0_usb_device *s3c24x0_get_base_usb_device(void)
 101{
 102        return (struct s3c24x0_usb_device *)S3C24X0_USB_DEVICE_BASE;
 103}
 104
 105static inline struct s3c24x0_watchdog *s3c24x0_get_base_watchdog(void)
 106{
 107        return (struct s3c24x0_watchdog *)S3C24X0_WATCHDOG_BASE;
 108}
 109
 110static inline struct s3c24x0_i2c *s3c24x0_get_base_i2c(void)
 111{
 112        return (struct s3c24x0_i2c *)S3C24X0_I2C_BASE;
 113}
 114
 115static inline struct s3c24x0_i2s *s3c24x0_get_base_i2s(void)
 116{
 117        return (struct s3c24x0_i2s *)S3C24X0_I2S_BASE;
 118}
 119
 120static inline struct s3c24x0_gpio *s3c24x0_get_base_gpio(void)
 121{
 122        return (struct s3c24x0_gpio *)S3C24X0_GPIO_BASE;
 123}
 124
 125static inline struct s3c24x0_rtc *s3c24x0_get_base_rtc(void)
 126{
 127        return (struct s3c24x0_rtc *)S3C24X0_RTC_BASE;
 128}
 129
 130static inline struct s3c2440_adc *s3c2440_get_base_adc(void)
 131{
 132        return (struct s3c2440_adc *)S3C2440_ADC_BASE;
 133}
 134
 135static inline struct s3c24x0_spi *s3c24x0_get_base_spi(void)
 136{
 137        return (struct s3c24x0_spi *)S3C24X0_SPI_BASE;
 138}
 139
 140static inline struct s3c24x0_sdi *s3c24x0_get_base_sdi(void)
 141{
 142        return (struct s3c24x0_sdi *)S3C2440_SDI_BASE;
 143}
 144
 145#endif /*__S3C2440_H__*/
 146