blob: fcab431060f486e7da61eaa07f2d46f62a31e0b6 [file] [log] [blame]
Shawn Guodc38ad42010-12-09 23:12:46 +08001/*
2 * Copyright (C) 2010 Pengutronix
3 * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
4 *
5 * Copyright 2010 Freescale Semiconductor, Inc. All Rights Reserved.
6 *
7 * This program is free software; you can redistribute it and/or modify it under
8 * the terms of the GNU General Public License version 2 as published by the
9 * Free Software Foundation.
10 */
11#include <mach/mx28.h>
12#include <mach/devices-common.h>
Shawn Guoce4409b2012-06-25 19:22:09 +080013#include <linux/mxsfb.h>
Linus Walleij50024842012-04-03 12:11:50 +010014#include <linux/amba/bus.h>
Shawn Guodc38ad42010-12-09 23:12:46 +080015
Linus Walleij50024842012-04-03 12:11:50 +010016static inline int mx28_add_duart(void)
17{
18 struct amba_device *d;
19
20 d = amba_ahb_device_add(NULL, "duart", MX28_DUART_BASE_ADDR, SZ_8K,
21 MX28_INT_DUART, 0, 0, 0);
22 return IS_ERR(d) ? PTR_ERR(d) : 0;
23}
Shawn Guob9a2ada2010-12-09 23:12:47 +080024
Sascha Hauercf3567a2011-01-11 15:56:40 +010025extern const struct mxs_auart_data mx28_auart_data[] __initconst;
26#define mx28_add_auart(id) mxs_add_auart(&mx28_auart_data[id])
27#define mx28_add_auart0() mx28_add_auart(0)
28#define mx28_add_auart1() mx28_add_auart(1)
29#define mx28_add_auart2() mx28_add_auart(2)
30#define mx28_add_auart3() mx28_add_auart(3)
31#define mx28_add_auart4() mx28_add_auart(4)
32
Shawn Guob9a2ada2010-12-09 23:12:47 +080033extern const struct mxs_fec_data mx28_fec_data[] __initconst;
34#define mx28_add_fec(id, pdata) \
35 mxs_add_fec(&mx28_fec_data[id], pdata)
Marc Kleine-Budde22cbba12011-02-02 13:50:30 +010036
37extern const struct mxs_flexcan_data mx28_flexcan_data[] __initconst;
38#define mx28_add_flexcan(id, pdata) \
39 mxs_add_flexcan(&mx28_flexcan_data[id], pdata)
40#define mx28_add_flexcan0(pdata) mx28_add_flexcan(0, pdata)
41#define mx28_add_flexcan1(pdata) mx28_add_flexcan(1, pdata)
Sascha Hauer2301dfa2011-01-25 11:58:15 +010042
Huang Shijie60c15352012-02-06 13:08:21 +080043extern const struct mxs_gpmi_nand_data mx28_gpmi_nand_data __initconst;
44#define mx28_add_gpmi_nand(pdata) \
45 mxs_add_gpmi_nand(pdata, &mx28_gpmi_nand_data)
46
Uwe Kleine-König01d8cf032011-01-11 10:22:14 +010047extern const struct mxs_mxs_i2c_data mx28_mxs_i2c_data[] __initconst;
Wolfram Sang30feed32011-02-28 17:40:04 +010048#define mx28_add_mxs_i2c(id) mxs_add_mxs_i2c(&mx28_mxs_i2c_data[id])
49
Shawn Guo47babe62011-03-16 11:31:06 +010050extern const struct mxs_mxs_mmc_data mx28_mxs_mmc_data[] __initconst;
51#define mx28_add_mxs_mmc(id, pdata) \
52 mxs_add_mxs_mmc(&mx28_mxs_mmc_data[id], pdata)
53
Sascha Hauer2301dfa2011-01-25 11:58:15 +010054#define mx28_add_mxs_pwm(id) mxs_add_mxs_pwm(MX28_PWM_BASE_ADDR, id)
Sascha Hauer2e8fd692011-01-14 15:32:49 +010055
56struct platform_device *__init mx28_add_mxsfb(
57 const struct mxsfb_platform_data *pdata);
Dong Aishengc8ebcac2011-07-20 11:41:42 +080058
59extern const struct mxs_saif_data mx28_saif_data[] __initconst;
Dong Aisheng4c0174c2011-11-22 23:54:24 +080060#define mx28_add_saif(id, pdata) \
61 mxs_add_saif(&mx28_saif_data[id], pdata)
Wolfram Sanga4de0422011-05-02 16:21:49 +020062
63struct platform_device *__init mx28_add_rtc_stmp3xxx(void);