root/arch/arm/mach-s3c24xx/mach-smdk2443.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. smdk2443_map_io
  2. smdk2443_init_time
  3. smdk2443_machine_init

   1 // SPDX-License-Identifier: GPL-2.0
   2 //
   3 // Copyright (c) 2007 Simtec Electronics
   4 //      Ben Dooks <ben@simtec.co.uk>
   5 //
   6 // http://www.fluff.org/ben/smdk2443/
   7 //
   8 // Thanks to Samsung for the loan of an SMDK2443
   9 
  10 #include <linux/kernel.h>
  11 #include <linux/types.h>
  12 #include <linux/interrupt.h>
  13 #include <linux/list.h>
  14 #include <linux/timer.h>
  15 #include <linux/init.h>
  16 #include <linux/serial_core.h>
  17 #include <linux/serial_s3c.h>
  18 #include <linux/platform_device.h>
  19 #include <linux/io.h>
  20 
  21 #include <asm/mach/arch.h>
  22 #include <asm/mach/map.h>
  23 #include <asm/mach/irq.h>
  24 
  25 #include <mach/hardware.h>
  26 #include <asm/irq.h>
  27 #include <asm/mach-types.h>
  28 
  29 #include <mach/regs-gpio.h>
  30 #include <mach/regs-lcd.h>
  31 
  32 #include <mach/fb.h>
  33 #include <linux/platform_data/i2c-s3c2410.h>
  34 
  35 #include <plat/devs.h>
  36 #include <plat/cpu.h>
  37 #include <plat/samsung-time.h>
  38 
  39 #include "common.h"
  40 #include "common-smdk.h"
  41 
  42 static struct map_desc smdk2443_iodesc[] __initdata = {
  43         /* ISA IO Space map (memory space selected by A24) */
  44 
  45         {
  46                 .virtual        = (u32)S3C24XX_VA_ISA_WORD,
  47                 .pfn            = __phys_to_pfn(S3C2410_CS2),
  48                 .length         = 0x10000,
  49                 .type           = MT_DEVICE,
  50         }, {
  51                 .virtual        = (u32)S3C24XX_VA_ISA_WORD + 0x10000,
  52                 .pfn            = __phys_to_pfn(S3C2410_CS2 + (1<<24)),
  53                 .length         = SZ_4M,
  54                 .type           = MT_DEVICE,
  55         }, {
  56                 .virtual        = (u32)S3C24XX_VA_ISA_BYTE,
  57                 .pfn            = __phys_to_pfn(S3C2410_CS2),
  58                 .length         = 0x10000,
  59                 .type           = MT_DEVICE,
  60         }, {
  61                 .virtual        = (u32)S3C24XX_VA_ISA_BYTE + 0x10000,
  62                 .pfn            = __phys_to_pfn(S3C2410_CS2 + (1<<24)),
  63                 .length         = SZ_4M,
  64                 .type           = MT_DEVICE,
  65         }
  66 };
  67 
  68 #define UCON S3C2410_UCON_DEFAULT | S3C2410_UCON_UCLK
  69 #define ULCON S3C2410_LCON_CS8 | S3C2410_LCON_PNONE | S3C2410_LCON_STOPB
  70 #define UFCON S3C2410_UFCON_RXTRIG8 | S3C2410_UFCON_FIFOMODE
  71 
  72 static struct s3c2410_uartcfg smdk2443_uartcfgs[] __initdata = {
  73         [0] = {
  74                 .hwport      = 0,
  75                 .flags       = 0,
  76                 .ucon        = 0x3c5,
  77                 .ulcon       = 0x03,
  78                 .ufcon       = 0x51,
  79         },
  80         [1] = {
  81                 .hwport      = 1,
  82                 .flags       = 0,
  83                 .ucon        = 0x3c5,
  84                 .ulcon       = 0x03,
  85                 .ufcon       = 0x51,
  86         },
  87         /* IR port */
  88         [2] = {
  89                 .hwport      = 2,
  90                 .flags       = 0,
  91                 .ucon        = 0x3c5,
  92                 .ulcon       = 0x43,
  93                 .ufcon       = 0x51,
  94         },
  95         [3] = {
  96                 .hwport      = 3,
  97                 .flags       = 0,
  98                 .ucon        = 0x3c5,
  99                 .ulcon       = 0x03,
 100                 .ufcon       = 0x51,
 101         }
 102 };
 103 
 104 static struct platform_device *smdk2443_devices[] __initdata = {
 105         &s3c_device_wdt,
 106         &s3c_device_i2c0,
 107         &s3c_device_hsmmc1,
 108         &s3c2443_device_dma,
 109 };
 110 
 111 static void __init smdk2443_map_io(void)
 112 {
 113         s3c24xx_init_io(smdk2443_iodesc, ARRAY_SIZE(smdk2443_iodesc));
 114         s3c24xx_init_uarts(smdk2443_uartcfgs, ARRAY_SIZE(smdk2443_uartcfgs));
 115         samsung_set_timer_source(SAMSUNG_PWM3, SAMSUNG_PWM4);
 116 }
 117 
 118 static void __init smdk2443_init_time(void)
 119 {
 120         s3c2443_init_clocks(12000000);
 121         samsung_timer_init();
 122 }
 123 
 124 static void __init smdk2443_machine_init(void)
 125 {
 126         s3c_i2c0_set_platdata(NULL);
 127         platform_add_devices(smdk2443_devices, ARRAY_SIZE(smdk2443_devices));
 128         smdk_machine_init();
 129 }
 130 
 131 MACHINE_START(SMDK2443, "SMDK2443")
 132         /* Maintainer: Ben Dooks <ben-linux@fluff.org> */
 133         .atag_offset    = 0x100,
 134 
 135         .init_irq       = s3c2443_init_irq,
 136         .map_io         = smdk2443_map_io,
 137         .init_machine   = smdk2443_machine_init,
 138         .init_time      = smdk2443_init_time,
 139 MACHINE_END

/* [<][>][^][v][top][bottom][index][help] */