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