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

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

DEFINITIONS

This source file includes following definitions.
  1. otom11_map_io
  2. otom11_init_time
  3. otom11_init

   1 // SPDX-License-Identifier: GPL-2.0
   2 //
   3 // Copyright (c) 2004 Nex Vision
   4 //   Guillaume GOURAT <guillaume.gourat@nexvision.fr>
   5 
   6 #include <linux/kernel.h>
   7 #include <linux/types.h>
   8 #include <linux/interrupt.h>
   9 #include <linux/list.h>
  10 #include <linux/timer.h>
  11 #include <linux/init.h>
  12 #include <linux/serial_core.h>
  13 #include <linux/serial_s3c.h>
  14 #include <linux/platform_device.h>
  15 #include <linux/io.h>
  16 
  17 #include <linux/platform_data/i2c-s3c2410.h>
  18 
  19 #include <asm/irq.h>
  20 #include <asm/mach-types.h>
  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 <mach/regs-gpio.h>
  27 
  28 #include <plat/cpu.h>
  29 #include <plat/devs.h>
  30 #include <plat/samsung-time.h>
  31 
  32 #include "common.h"
  33 #include "otom.h"
  34 
  35 static struct map_desc otom11_iodesc[] __initdata = {
  36   /* Device area */
  37         { (u32)OTOM_VA_CS8900A_BASE, OTOM_PA_CS8900A_BASE, SZ_16M, MT_DEVICE },
  38 };
  39 
  40 #define UCON S3C2410_UCON_DEFAULT
  41 #define ULCON S3C2410_LCON_CS8 | S3C2410_LCON_PNONE | S3C2410_LCON_STOPB
  42 #define UFCON S3C2410_UFCON_RXTRIG12 | S3C2410_UFCON_FIFOMODE
  43 
  44 static struct s3c2410_uartcfg otom11_uartcfgs[] __initdata = {
  45         [0] = {
  46                 .hwport      = 0,
  47                 .flags       = 0,
  48                 .ucon        = UCON,
  49                 .ulcon       = ULCON,
  50                 .ufcon       = UFCON,
  51         },
  52         [1] = {
  53                 .hwport      = 1,
  54                 .flags       = 0,
  55                 .ucon        = UCON,
  56                 .ulcon       = ULCON,
  57                 .ufcon       = UFCON,
  58         },
  59         /* port 2 is not actually used */
  60         [2] = {
  61                 .hwport      = 2,
  62                 .flags       = 0,
  63                 .ucon        = UCON,
  64                 .ulcon       = ULCON,
  65                 .ufcon       = UFCON,
  66         }
  67 };
  68 
  69 /* NOR Flash on NexVision OTOM board */
  70 
  71 static struct resource otom_nor_resource[] = {
  72         [0] = DEFINE_RES_MEM(S3C2410_CS0, SZ_4M),
  73 };
  74 
  75 static struct platform_device otom_device_nor = {
  76         .name           = "mtd-flash",
  77         .id             = -1,
  78         .num_resources  = ARRAY_SIZE(otom_nor_resource),
  79         .resource       = otom_nor_resource,
  80 };
  81 
  82 /* Standard OTOM devices */
  83 
  84 static struct platform_device *otom11_devices[] __initdata = {
  85         &s3c_device_ohci,
  86         &s3c_device_lcd,
  87         &s3c_device_wdt,
  88         &s3c_device_i2c0,
  89         &s3c_device_iis,
  90         &s3c_device_rtc,
  91         &otom_device_nor,
  92 };
  93 
  94 static void __init otom11_map_io(void)
  95 {
  96         s3c24xx_init_io(otom11_iodesc, ARRAY_SIZE(otom11_iodesc));
  97         s3c24xx_init_uarts(otom11_uartcfgs, ARRAY_SIZE(otom11_uartcfgs));
  98         samsung_set_timer_source(SAMSUNG_PWM3, SAMSUNG_PWM4);
  99 }
 100 
 101 static void __init otom11_init_time(void)
 102 {
 103         s3c2410_init_clocks(12000000);
 104         samsung_timer_init();
 105 }
 106 
 107 static void __init otom11_init(void)
 108 {
 109         s3c_i2c0_set_platdata(NULL);
 110         platform_add_devices(otom11_devices, ARRAY_SIZE(otom11_devices));
 111 }
 112 
 113 MACHINE_START(OTOM, "Nex Vision - Otom 1.1")
 114         /* Maintainer: Guillaume GOURAT <guillaume.gourat@nexvision.tv> */
 115         .atag_offset    = 0x100,
 116         .map_io         = otom11_map_io,
 117         .init_machine   = otom11_init,
 118         .init_irq       = s3c2410_init_irq,
 119         .init_time      = otom11_init_time,
 120 MACHINE_END

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