Shawn Guo | dc38ad4 | 2010-12-09 23:12:46 +0800 | [diff] [blame] | 1 | /* |
| 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 Guo | ce4409b | 2012-06-25 19:22:09 +0800 | [diff] [blame] | 13 | #include <linux/mxsfb.h> |
Linus Walleij | 5002484 | 2012-04-03 12:11:50 +0100 | [diff] [blame] | 14 | #include <linux/amba/bus.h> |
Shawn Guo | dc38ad4 | 2010-12-09 23:12:46 +0800 | [diff] [blame] | 15 | |
Linus Walleij | 5002484 | 2012-04-03 12:11:50 +0100 | [diff] [blame] | 16 | static 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 Guo | b9a2ada | 2010-12-09 23:12:47 +0800 | [diff] [blame] | 24 | |
Sascha Hauer | cf3567a | 2011-01-11 15:56:40 +0100 | [diff] [blame] | 25 | extern 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 Guo | b9a2ada | 2010-12-09 23:12:47 +0800 | [diff] [blame] | 33 | extern 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-Budde | 22cbba1 | 2011-02-02 13:50:30 +0100 | [diff] [blame] | 36 | |
| 37 | extern 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 Hauer | 2301dfa | 2011-01-25 11:58:15 +0100 | [diff] [blame] | 42 | |
Huang Shijie | 60c1535 | 2012-02-06 13:08:21 +0800 | [diff] [blame] | 43 | extern 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önig | 01d8cf03 | 2011-01-11 10:22:14 +0100 | [diff] [blame] | 47 | extern const struct mxs_mxs_i2c_data mx28_mxs_i2c_data[] __initconst; |
Wolfram Sang | 30feed3 | 2011-02-28 17:40:04 +0100 | [diff] [blame] | 48 | #define mx28_add_mxs_i2c(id) mxs_add_mxs_i2c(&mx28_mxs_i2c_data[id]) |
| 49 | |
Shawn Guo | 47babe6 | 2011-03-16 11:31:06 +0100 | [diff] [blame] | 50 | extern 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 Hauer | 2301dfa | 2011-01-25 11:58:15 +0100 | [diff] [blame] | 54 | #define mx28_add_mxs_pwm(id) mxs_add_mxs_pwm(MX28_PWM_BASE_ADDR, id) |
Sascha Hauer | 2e8fd69 | 2011-01-14 15:32:49 +0100 | [diff] [blame] | 55 | |
| 56 | struct platform_device *__init mx28_add_mxsfb( |
| 57 | const struct mxsfb_platform_data *pdata); |
Dong Aisheng | c8ebcac | 2011-07-20 11:41:42 +0800 | [diff] [blame] | 58 | |
| 59 | extern const struct mxs_saif_data mx28_saif_data[] __initconst; |
Dong Aisheng | 4c0174c | 2011-11-22 23:54:24 +0800 | [diff] [blame] | 60 | #define mx28_add_saif(id, pdata) \ |
| 61 | mxs_add_saif(&mx28_saif_data[id], pdata) |
Wolfram Sang | a4de042 | 2011-05-02 16:21:49 +0200 | [diff] [blame] | 62 | |
| 63 | struct platform_device *__init mx28_add_rtc_stmp3xxx(void); |