libs-y += arch/m32r/lib/ $(LIBGCC)
 core-y += arch/m32r/kernel/    \
           arch/m32r/mm/        \
-          arch/m32r/boot/
+          arch/m32r/boot/      \
+          arch/m32r/platforms/
 
 drivers-$(CONFIG_OPROFILE)     += arch/m32r/oprofile/
 
 
        m32r_ksyms.o sys_m32r.o semaphore.o signal.o ptrace.o
 
 obj-$(CONFIG_SMP)              += smp.o smpboot.o
-obj-$(CONFIG_PLAT_MAPPI)       += setup_mappi.o io_mappi.o
-obj-$(CONFIG_PLAT_MAPPI2)      += setup_mappi2.o io_mappi2.o
-obj-$(CONFIG_PLAT_MAPPI3)      += setup_mappi3.o io_mappi3.o
-obj-$(CONFIG_PLAT_USRV)                += setup_usrv.o io_usrv.o
-obj-$(CONFIG_PLAT_M32700UT)    += setup_m32700ut.o io_m32700ut.o
-obj-$(CONFIG_PLAT_OPSPUT)      += setup_opsput.o io_opsput.o
 obj-$(CONFIG_MODULES)          += module.o
-obj-$(CONFIG_PLAT_OAKS32R)     += setup_oaks32r.o io_oaks32r.o
-obj-$(CONFIG_PLAT_M32104UT)    += setup_m32104ut.o io_m32104ut.o
 
 EXTRA_AFLAGS   := -traditional
 
--- /dev/null
+# arch/m32r/platforms/Makefile
+obj-$(CONFIG_PLAT_M32104UT)    += m32104ut/
+obj-$(CONFIG_PLAT_M32700UT)    += m32700ut/
+obj-$(CONFIG_PLAT_MAPPI)       += mappi/
+obj-$(CONFIG_PLAT_MAPPI2)      += mappi2/
+obj-$(CONFIG_PLAT_MAPPI3)      += mappi3/
+obj-$(CONFIG_PLAT_OAKS32R)     += oaks32r/
+obj-$(CONFIG_PLAT_OPSPUT)      += opsput/
+obj-$(CONFIG_PLAT_USRV)                += usrv/
 
--- /dev/null
+obj-y  := setup.o io.o
 
 /*
- *  linux/arch/m32r/kernel/io_m32104ut.c
+ *  linux/arch/m32r/platforms/m32104ut/io.c
  *
  *  Typical I/O routines for M32104UT board.
  *
 
 /*
- *  linux/arch/m32r/kernel/setup_m32104ut.c
+ *  linux/arch/m32r/platforms/m32104ut/setup.c
  *
  *  Setup routines for M32104UT Board
  *
 
--- /dev/null
+obj-y  := setup.o io.o
 
 /*
- *  linux/arch/m32r/kernel/io_m32700ut.c
+ *  linux/arch/m32r/platforms/m32700ut/io.c
  *
  *  Typical I/O routines for M32700UT board.
  *
 
 /*
- *  linux/arch/m32r/kernel/setup_m32700ut.c
+ *  linux/arch/m32r/platforms/m32700ut/setup.c
  *
  *  Setup routines for Renesas M32700UT Board
  *
 
--- /dev/null
+obj-y  := setup.o io.o
 
 /*
- *  linux/arch/m32r/kernel/io_mappi.c
+ *  linux/arch/m32r/platforms/mappi/io.c
  *
  *  Typical I/O routines for Mappi board.
  *
 
 /*
- *  linux/arch/m32r/kernel/setup_mappi.c
+ *  linux/arch/m32r/platforms/mappi/setup.c
  *
  *  Setup routines for Renesas MAPPI Board
  *
 
--- /dev/null
+obj-y  := setup.o io.o
 
 /*
- *  linux/arch/m32r/kernel/io_mappi2.c
+ *  linux/arch/m32r/platforms/mappi2/io.c
  *
  *  Typical I/O routines for Mappi2 board.
  *
 
 /*
- *  linux/arch/m32r/kernel/setup_mappi2.c
+ *  linux/arch/m32r/platforms/mappi2/setup.c
  *
  *  Setup routines for Renesas MAPPI-II(M3A-ZA36) Board
  *
 
--- /dev/null
+obj-y  := setup.o io.o
 
 /*
- *  linux/arch/m32r/kernel/io_mappi3.c
+ *  linux/arch/m32r/platforms/mappi3/io.c
  *
  *  Typical I/O routines for Mappi3 board.
  *
 
 /*
- *  linux/arch/m32r/kernel/setup_mappi3.c
+ *  linux/arch/m32r/platforms/mappi3/setup.c
  *
  *  Setup routines for Renesas MAPPI-III(M3A-2170) Board
  *
 
--- /dev/null
+obj-y  := setup.o io.o
 
 /*
- *  linux/arch/m32r/kernel/io_oaks32r.c
+ *  linux/arch/m32r/platforms/oaks32r/io.c
  *
  *  Typical I/O routines for OAKS32R board.
  *
 
 /*
- *  linux/arch/m32r/kernel/setup_oaks32r.c
+ *  linux/arch/m32r/platforms/oaks32r/setup.c
  *
  *  Setup routines for OAKS32R Board
  *
 
--- /dev/null
+obj-y  := setup.o io.o
 
 /*
- *  linux/arch/m32r/kernel/io_opsput.c
+ *  linux/arch/m32r/platforms/opsput/io.c
  *
  *  Typical I/O routines for OPSPUT board.
  *
 
 /*
- *  linux/arch/m32r/kernel/setup_opsput.c
+ *  linux/arch/m32r/platforms/opsput/setup.c
  *
  *  Setup routines for Renesas OPSPUT Board
  *
 
--- /dev/null
+obj-y  := setup.o io.o
 
 /*
- *  linux/arch/m32r/kernel/io_usrv.c
+ *  linux/arch/m32r/platforms/usrv/io.c
  *
  *  Typical I/O routines for uServer board.
  *
 #include <asm/io.h>
 
 #include <linux/types.h>
-#include "../drivers/m32r_cfc.h"
+#include "../../../../drivers/pcmcia/m32r_cfc.h"
 
 extern void pcc_ioread_byte(int, unsigned long, void *, size_t, size_t, int);
 extern void pcc_ioread_word(int, unsigned long, void *, size_t, size_t, int);
 
 /*
- *  linux/arch/m32r/kernel/setup_usrv.c
+ *  linux/arch/m32r/platforms/usrv/setup.c
  *
  *  Setup routines for MITSUBISHI uServer
  *
 #endif  /* CONFIG_SERIAL_M32R_SIO */
 
        /* INT#67-#71: CFC#0 IREQ on PLD */
-       for (i = 0 ; i < CONFIG_CFC_NUM ; i++ ) {
+       for (i = 0 ; i < CONFIG_M32R_CFC_NUM ; i++ ) {
                irq_desc[PLD_IRQ_CF0 + i].status = IRQ_DISABLED;
                irq_desc[PLD_IRQ_CF0 + i].chip = &m32700ut_pld_irq_type;
                irq_desc[PLD_IRQ_CF0 + i].action = 0;
        icu_data[M32R_IRQ_INT1].icucr = M32R_ICUCR_ISMOD11;
        enable_mappi_irq(M32R_IRQ_INT1);
 }
-