Commit | Line | Data |
---|---|---|
d395e6ad KS |
1 | /* |
2 | * mach-davinci/devices.c | |
3 | * | |
4 | * DaVinci platform device setup/initialization | |
5 | * | |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
9 | * (at your option) any later version. | |
10 | */ | |
11 | ||
12 | #include <linux/module.h> | |
13 | #include <linux/kernel.h> | |
14 | #include <linux/init.h> | |
15 | #include <linux/platform_device.h> | |
16 | #include <linux/dma-mapping.h> | |
17 | #include <linux/io.h> | |
18 | ||
19 | #include <asm/mach/map.h> | |
20 | ||
21 | #include <mach/hardware.h> | |
22 | #include <mach/i2c.h> | |
80b02c17 | 23 | #include <mach/irqs.h> |
5526b3f7 KH |
24 | #include <mach/cputype.h> |
25 | #include <mach/mux.h> | |
d395e6ad | 26 | |
f5c122da KH |
27 | #define DAVINCI_I2C_BASE 0x01C21000 |
28 | ||
d395e6ad KS |
29 | static struct resource i2c_resources[] = { |
30 | { | |
31 | .start = DAVINCI_I2C_BASE, | |
32 | .end = DAVINCI_I2C_BASE + 0x40, | |
33 | .flags = IORESOURCE_MEM, | |
34 | }, | |
35 | { | |
36 | .start = IRQ_I2C, | |
37 | .flags = IORESOURCE_IRQ, | |
38 | }, | |
39 | }; | |
40 | ||
41 | static struct platform_device davinci_i2c_device = { | |
42 | .name = "i2c_davinci", | |
43 | .id = 1, | |
44 | .num_resources = ARRAY_SIZE(i2c_resources), | |
45 | .resource = i2c_resources, | |
46 | }; | |
47 | ||
48 | void __init davinci_init_i2c(struct davinci_i2c_platform_data *pdata) | |
49 | { | |
5526b3f7 KH |
50 | if (cpu_is_davinci_dm644x()) |
51 | davinci_cfg_reg(DM644X_I2C); | |
52 | ||
d395e6ad KS |
53 | davinci_i2c_device.dev.platform_data = pdata; |
54 | (void) platform_device_register(&davinci_i2c_device); | |
55 | } | |
56 |