Autoloading of Falcon IDE driver modules requires converting
these drivers to platform drivers.

Add platform device for Falcon IDE interface in Atari platform
setup code in preparation for this.

Signed-off-by: Michael Schmitz <[email protected]>

--

Changes from RFC

- fix region size (spotted by Szymon Bieganski <[email protected]>)
- define IDE interface address in atari/config.c, create platform device
  always (suggested by Geert Uytterhoeven <[email protected]>)

Changes from v1

- add error checking for Falcon IDE platform device register
---
 arch/m68k/atari/config.c |   27 +++++++++++++++++++++++++++
 1 files changed, 27 insertions(+), 0 deletions(-)

diff --git a/arch/m68k/atari/config.c b/arch/m68k/atari/config.c
index ca8469e..d6e9363 100644
--- a/arch/m68k/atari/config.c
+++ b/arch/m68k/atari/config.c
@@ -896,8 +896,28 @@ static void isp1160_delay(struct device *dev, int delay)
 };
 #endif
 
+/*
+ * Falcon IDE interface
+ */
+
+#define FALCON_IDE_BASE        0xfff00000
+
+static const struct resource atari_falconide_rsrc[] __initconst = {
+       {
+               .flags = IORESOURCE_MEM,
+               .start = FALCON_IDE_BASE,
+               .end   = FALCON_IDE_BASE+0x39,
+       },
+       {
+               .flags = IORESOURCE_IRQ,
+               .start = IRQ_MFP_FSCSI,
+               .end   = IRQ_MFP_FSCSI,
+       },
+};
+
 int __init atari_platform_init(void)
 {
+       struct platform_device *pdev;
        int rv = 0;
 
        if (!MACH_IS_ATARI)
@@ -939,6 +959,13 @@ int __init atari_platform_init(void)
                        atari_scsi_tt_rsrc, ARRAY_SIZE(atari_scsi_tt_rsrc));
 #endif
 
+       if (ATARIHW_PRESENT(IDE)) {
+               pdev = platform_device_register_simple("atari-falcon-ide", -1,
+                       atari_falconide_rsrc, ARRAY_SIZE(atari_falconide_rsrc));
+               if (IS_ERR(pdev))
+                       rv = PTR_ERR(pdev);
+       }
+
        return rv;
 }
 
-- 
1.7.0.4

Reply via email to