1 /*
2  * Copyright (C) 2009-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 <asm/irq.h>
12 #include <mach/mx23.h>
13 #include <mach/mx28.h>
14 #include <mach/devices-common.h>
15 
16 #define MXS_AMBA_DUART_DEVICE(name, soc)			\
17 const struct amba_device name##_device __initconst = {		\
18 	.dev = {						\
19 		.init_name = "duart",				\
20 	},							\
21 	.res = {						\
22 		.start = soc ## _DUART_BASE_ADDR,		\
23 		.end = (soc ## _DUART_BASE_ADDR) + SZ_8K - 1,	\
24 		.flags = IORESOURCE_MEM,			\
25 	},							\
26 	.irq = {soc ## _INT_DUART},				\
27 }
28 
29 #ifdef CONFIG_SOC_IMX23
30 MXS_AMBA_DUART_DEVICE(mx23_duart, MX23);
31 #endif
32 
33 #ifdef CONFIG_SOC_IMX28
34 MXS_AMBA_DUART_DEVICE(mx28_duart, MX28);
35 #endif
36 
mxs_add_duart(const struct amba_device * dev)37 int __init mxs_add_duart(const struct amba_device *dev)
38 {
39 	return mxs_add_amba_device(dev);
40 }
41