Merge tag 'm68k-for-v5.10-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git...
[sfrench/cifs-2.6.git] / arch / m68k / mac / config.c
index a621fcc1a576ac06ddf2d1468615c7b44a7c00ab..0ac53d87493c888132eaa6df5145018d97b5b170 100644 (file)
@@ -24,6 +24,7 @@
 #include <linux/init.h>
 #include <linux/vt_kern.h>
 #include <linux/platform_device.h>
+#include <linux/ata_platform.h>
 #include <linux/adb.h>
 #include <linux/cuda.h>
 #include <linux/pmu.h>
@@ -940,6 +941,26 @@ static const struct resource mac_scsi_ccl_rsrc[] __initconst = {
        },
 };
 
+static const struct resource mac_ide_quadra_rsrc[] __initconst = {
+       DEFINE_RES_MEM(0x50F1A000, 0x104),
+       DEFINE_RES_IRQ(IRQ_NUBUS_F),
+};
+
+static const struct resource mac_ide_pb_rsrc[] __initconst = {
+       DEFINE_RES_MEM(0x50F1A000, 0x104),
+       DEFINE_RES_IRQ(IRQ_NUBUS_C),
+};
+
+static const struct resource mac_pata_baboon_rsrc[] __initconst = {
+       DEFINE_RES_MEM(0x50F1A000, 0x38),
+       DEFINE_RES_MEM(0x50F1A038, 0x04),
+       DEFINE_RES_IRQ(IRQ_BABOON_1),
+};
+
+static const struct pata_platform_info mac_pata_baboon_data __initconst = {
+       .ioport_shift = 2,
+};
+
 int __init mac_platform_init(void)
 {
        phys_addr_t swim_base = 0;
@@ -1048,6 +1069,26 @@ int __init mac_platform_init(void)
                break;
        }
 
+       /*
+        * IDE device
+        */
+
+       switch (macintosh_config->ide_type) {
+       case MAC_IDE_QUADRA:
+               platform_device_register_simple("mac_ide", -1,
+                       mac_ide_quadra_rsrc, ARRAY_SIZE(mac_ide_quadra_rsrc));
+               break;
+       case MAC_IDE_PB:
+               platform_device_register_simple("mac_ide", -1,
+                       mac_ide_pb_rsrc, ARRAY_SIZE(mac_ide_pb_rsrc));
+               break;
+       case MAC_IDE_BABOON:
+               platform_device_register_resndata(NULL, "pata_platform", -1,
+                       mac_pata_baboon_rsrc, ARRAY_SIZE(mac_pata_baboon_rsrc),
+                       &mac_pata_baboon_data, sizeof(mac_pata_baboon_data));
+               break;
+       }
+
        /*
         * Ethernet device
         */