2 * Copyright (C) 2009-2010 Pengutronix
3 * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
5 * This program is free software; you can redistribute it and/or modify it under
6 * the terms of the GNU General Public License version 2 as published by the
7 * Free Software Foundation.
9 #include <linux/kernel.h>
10 #include <linux/platform_device.h>
11 #include <linux/init.h>
12 #include <linux/amba/bus.h>
14 extern struct device mxs_apbh_bus;
16 struct platform_device *mxs_add_platform_device_dmamask(
17 const char *name, int id,
18 const struct resource *res, unsigned int num_resources,
19 const void *data, size_t size_data, u64 dmamask);
21 static inline struct platform_device *mxs_add_platform_device(
22 const char *name, int id,
23 const struct resource *res, unsigned int num_resources,
24 const void *data, size_t size_data)
26 return mxs_add_platform_device_dmamask(
27 name, id, res, num_resources, data, size_data, 0);
31 struct mxs_auart_data {
33 resource_size_t iobase;
34 resource_size_t iosize;
37 struct platform_device *__init mxs_add_auart(
38 const struct mxs_auart_data *data);
41 #include <linux/fec.h>
44 resource_size_t iobase;
45 resource_size_t iosize;
48 struct platform_device *__init mxs_add_fec(
49 const struct mxs_fec_data *data,
50 const struct fec_platform_data *pdata);
53 #include <linux/can/platform/flexcan.h>
54 struct mxs_flexcan_data {
56 resource_size_t iobase;
57 resource_size_t iosize;
60 struct platform_device *__init mxs_add_flexcan(
61 const struct mxs_flexcan_data *data,
62 const struct flexcan_platform_data *pdata);
65 #include <linux/mtd/gpmi-nand.h>
66 struct mxs_gpmi_nand_data {
68 const struct resource res[GPMI_NAND_RES_SIZE];
70 struct platform_device *__init
71 mxs_add_gpmi_nand(const struct gpmi_nand_platform_data *pdata,
72 const struct mxs_gpmi_nand_data *data);
75 struct mxs_mxs_i2c_data {
77 resource_size_t iobase;
78 resource_size_t errirq;
79 resource_size_t dmairq;
81 struct platform_device * __init mxs_add_mxs_i2c(
82 const struct mxs_mxs_i2c_data *data);
85 #include <linux/mmc/mxs-mmc.h>
86 struct mxs_mxs_mmc_data {
89 resource_size_t iobase;
91 resource_size_t irq_err;
92 resource_size_t irq_dma;
94 struct platform_device *__init mxs_add_mxs_mmc(
95 const struct mxs_mxs_mmc_data *data,
96 const struct mxs_mmc_platform_data *pdata);
99 struct platform_device *__init mxs_add_mxs_pwm(
100 resource_size_t iobase, int id);
103 #include <sound/saif.h>
104 struct mxs_saif_data {
106 resource_size_t iobase;
109 resource_size_t dmairq;
112 struct platform_device *__init mxs_add_saif(
113 const struct mxs_saif_data *data,
114 const struct mxs_saif_platform_data *pdata);