1/*
2 * This program is free software; you can redistribute it and/or modify it under
3 * the terms of the GNU General Public License version 2 as published by the
4 * Free Software Foundation.
5 */
6#include "../hardware.h"
7#include "devices-common.h"
8
9#define imx_pata_imx_data_entry_single(soc, _size)			\
10	{								\
11		.iobase = soc ## _ATA_BASE_ADDR,			\
12		.iosize = _size,					\
13		.irq = soc ## _INT_ATA,					\
14	}
15
16#ifdef CONFIG_SOC_IMX27
17const struct imx_pata_imx_data imx27_pata_imx_data __initconst =
18	imx_pata_imx_data_entry_single(MX27, SZ_4K);
19#endif /* ifdef CONFIG_SOC_IMX27 */
20
21#ifdef CONFIG_SOC_IMX31
22const struct imx_pata_imx_data imx31_pata_imx_data __initconst =
23	imx_pata_imx_data_entry_single(MX31, SZ_16K);
24#endif /* ifdef CONFIG_SOC_IMX31 */
25
26#ifdef CONFIG_SOC_IMX35
27const struct imx_pata_imx_data imx35_pata_imx_data __initconst =
28	imx_pata_imx_data_entry_single(MX35, SZ_16K);
29#endif /* ifdef CONFIG_SOC_IMX35 */
30
31struct platform_device *__init imx_add_pata_imx(
32		const struct imx_pata_imx_data *data)
33{
34	struct resource res[] = {
35		{
36			.start = data->iobase,
37			.end = data->iobase + data->iosize - 1,
38			.flags = IORESOURCE_MEM,
39		},
40		{
41			.start = data->irq,
42			.end = data->irq,
43			.flags = IORESOURCE_IRQ,
44		},
45	};
46	return imx_add_platform_device("pata_imx", -1,
47			res, ARRAY_SIZE(res), NULL, 0);
48}
49
50