2 * Copyright (C) ST-Ericsson SA 2010
4 * Author: Rabin Vincent <rabin.vincent@stericsson.com> for ST-Ericsson
5 * License terms: GNU General Public License (GPL), version 2.
8 #ifndef __DEVICES_COMMON_H
9 #define __DEVICES_COMMON_H
11 #include <linux/platform_device.h>
12 #include <linux/dma-mapping.h>
13 #include <linux/sys_soc.h>
14 #include <linux/amba/bus.h>
17 struct spi_master_cntlr;
19 static inline struct amba_device *
20 dbx500_add_msp_spi(struct device *parent, const char *name,
21 resource_size_t base, int irq,
22 struct spi_master_cntlr *pdata)
24 return amba_ahb_device_add(parent, name, base, SZ_4K, irq, 0,
28 static inline struct amba_device *
29 dbx500_add_spi(struct device *parent, const char *name, resource_size_t base,
30 int irq, struct spi_master_cntlr *pdata,
33 return amba_ahb_device_add(parent, name, base, SZ_4K, irq, 0,
37 struct mmci_platform_data;
39 static inline struct amba_device *
40 dbx500_add_sdi(struct device *parent, const char *name, resource_size_t base,
41 int irq, struct mmci_platform_data *pdata, u32 periphid)
43 return amba_ahb_device_add(parent, name, base, SZ_4K, irq, 0,
47 struct amba_pl011_data;
49 static inline struct amba_device *
50 dbx500_add_uart(struct device *parent, const char *name, resource_size_t base,
51 int irq, struct amba_pl011_data *pdata)
53 return amba_ahb_device_add(parent, name, base, SZ_4K, irq, 0, pdata, 0);
56 struct nmk_i2c_controller;
58 static inline struct platform_device *
59 dbx500_add_i2c(struct device *parent, int id, resource_size_t base, int irq,
60 struct nmk_i2c_controller *data)
62 struct resource res[] = {
63 DEFINE_RES_MEM(base, SZ_4K),
67 struct platform_device_info pdevinfo = {
72 .num_res = ARRAY_SIZE(res),
74 .size_data = sizeof(*data),
75 .dma_mask = DMA_BIT_MASK(32),
78 return platform_device_register_full(&pdevinfo);
81 static inline struct amba_device *
82 dbx500_add_rtc(struct device *parent, resource_size_t base, int irq)
84 return amba_apb_device_add(parent, "rtc-pl031", base, SZ_4K, irq,
88 struct nmk_gpio_platform_data;
90 void dbx500_add_gpios(struct device *parent, resource_size_t *base, int num,
91 int irq, struct nmk_gpio_platform_data *pdata);
94 dbx500_add_pinctrl(struct device *parent, const char *name)
96 struct platform_device_info pdevinfo = {
102 platform_device_register_full(&pdevinfo);