ARM: ux500: Remove I2C support when booting with ATAG support
[pandora-kernel.git] / arch / arm / mach-ux500 / devices-common.h
1 /*
2  * Copyright (C) ST-Ericsson SA 2010
3  *
4  * Author: Rabin Vincent <rabin.vincent@stericsson.com> for ST-Ericsson
5  * License terms: GNU General Public License (GPL), version 2.
6  */
7
8 #ifndef __DEVICES_COMMON_H
9 #define __DEVICES_COMMON_H
10
11 #include <linux/platform_device.h>
12 #include <linux/dma-mapping.h>
13 #include <linux/sys_soc.h>
14 #include <linux/amba/bus.h>
15
16 struct spi_master_cntlr;
17
18 static inline struct amba_device *
19 dbx500_add_spi(struct device *parent, const char *name, resource_size_t base,
20                int irq, struct spi_master_cntlr *pdata,
21                u32 periphid)
22 {
23         return amba_ahb_device_add(parent, name, base, SZ_4K, irq, 0,
24                                    pdata, periphid);
25 }
26
27 struct mmci_platform_data;
28
29 static inline struct amba_device *
30 dbx500_add_sdi(struct device *parent, const char *name, resource_size_t base,
31                int irq, struct mmci_platform_data *pdata, u32 periphid)
32 {
33         return amba_ahb_device_add(parent, name, base, SZ_4K, irq, 0,
34                                    pdata, periphid);
35 }
36
37 struct amba_pl011_data;
38
39 static inline struct amba_device *
40 dbx500_add_uart(struct device *parent, const char *name, resource_size_t base,
41                 int irq, struct amba_pl011_data *pdata)
42 {
43         return amba_ahb_device_add(parent, name, base, SZ_4K, irq, 0, pdata, 0);
44 }
45
46 static inline struct amba_device *
47 dbx500_add_rtc(struct device *parent, resource_size_t base, int irq)
48 {
49         return amba_apb_device_add(parent, "rtc-pl031", base, SZ_4K, irq,
50                                 0, NULL, 0);
51 }
52
53 struct nmk_gpio_platform_data;
54
55 void dbx500_add_gpios(struct device *parent, resource_size_t *base, int num,
56                       int irq, struct nmk_gpio_platform_data *pdata);
57
58 static inline void
59 dbx500_add_pinctrl(struct device *parent, const char *name,
60                    resource_size_t base)
61 {
62         struct resource res[] = {
63                 DEFINE_RES_MEM(base, SZ_8K),
64         };
65         struct platform_device_info pdevinfo = {
66                 .parent = parent,
67                 .name = name,
68                 .id = -1,
69                 .res = res,
70                 .num_res = ARRAY_SIZE(res),
71         };
72
73         platform_device_register_full(&pdevinfo);
74 }
75
76 #endif