upload tizen1.0 source
[kernel/linux-2.6.36.git] / arch / arm / plat-samsung / dev-gib.c
1
2 #include <linux/gfp.h>
3 #include <linux/kernel.h>
4 #include <linux/string.h>
5 #include <linux/platform_device.h>
6
7 #include <mach/irqs.h>
8 #include <mach/map.h>
9
10 #include <plat/regs-iic.h>
11 #include <plat/gib.h>
12 #include <plat/devs.h>
13 #include <plat/cpu.h>
14
15 static struct resource s3c_gib_resource[] = {
16         [0] = {
17                 .start = S5P_PA_GPS,
18                 .end   = S5P_PA_GPS + S5P_SZ_GPS,
19                 .flags = IORESOURCE_MEM,
20         },
21         [1] = {
22                 .start = IRQ_GPS,
23                 .end   = IRQ_GPS,
24                 .flags = IORESOURCE_IRQ,
25         },
26 };
27
28
29 static u64 s3c_device_gib_dmamask = 0xffffffffUL;
30
31 struct platform_device s3c_device_gib = {
32         .name             = "s3c-gib",
33         .id               = 0,
34         .num_resources    = ARRAY_SIZE(s3c_gib_resource),
35         .resource         = s3c_gib_resource,
36         .dev              = {
37                 .dma_mask = &s3c_device_gib_dmamask,
38                 .coherent_dma_mask = 0xffffffffUL
39         }
40 };
41 EXPORT_SYMBOL(s3c_device_gib);
42
43
44 static struct s3c_gib_platdata default_gib_data __initdata = {
45         .flags          = 0,
46         .slave_addr     = 0x10,
47         .frequency      = 100*1000,
48         .sda_delay      = 100,
49 };
50
51 void __init s3c_gib_set_platdata(struct s3c_gib_platdata *pd)
52 {
53         struct s3c_gib_platdata *npd;
54
55         if (!pd)
56                 pd = &default_gib_data;
57
58         npd = kmemdup(pd, sizeof(struct s3c_gib_platdata), GFP_KERNEL);
59         if (!npd)
60                 printk(KERN_ERR "%s: no memory for platform data\n", __func__);
61         s3c_device_gib.dev.platform_data = npd;
62 }
63
64
65