| /* | |
| * MPC8xx Device descriptions | |
| * | |
| * Maintainer: Kumar Gala <galak@kernel.crashing.org> | |
| * | |
| * Copyright 2005 MontaVista Software, Inc. by Vitaly Bordug<vbordug@ru.mvista.com> | |
| * | |
| * This program is free software; you can redistribute it and/or modify it | |
| * under the terms of the GNU General Public License as published by the | |
| * Free Software Foundation; either version 2 of the License, or (at your | |
| * option) any later version. | |
| */ | |
| #include <linux/init.h> | |
| #include <linux/module.h> | |
| #include <linux/device.h> | |
| #include <linux/serial_8250.h> | |
| #include <linux/mii.h> | |
| #include <asm/cpm1.h> | |
| #include <asm/mpc8xx.h> | |
| #include <asm/irq.h> | |
| #include <asm/ppc_sys.h> | |
| /* We use offsets for IORESOURCE_MEM to do not set dependencies at compile time. | |
| * They will get fixed up by mach_mpc8xx_fixup | |
| */ | |
| struct platform_device ppc_sys_platform_devices[] = { | |
| [MPC8xx_CPM_FEC1] = { | |
| .name = "fsl-cpm-fec", | |
| .id = 1, | |
| .num_resources = 2, | |
| .resource = (struct resource[]) { | |
| { | |
| .name = "regs", | |
| .start = 0xe00, | |
| .end = 0xe88, | |
| .flags = IORESOURCE_MEM, | |
| }, | |
| { | |
| .name = "interrupt", | |
| .start = MPC8xx_INT_FEC1, | |
| .end = MPC8xx_INT_FEC1, | |
| .flags = IORESOURCE_IRQ, | |
| }, | |
| }, | |
| }, | |
| [MPC8xx_CPM_FEC2] = { | |
| .name = "fsl-cpm-fec", | |
| .id = 2, | |
| .num_resources = 2, | |
| .resource = (struct resource[]) { | |
| { | |
| .name = "regs", | |
| .start = 0x1e00, | |
| .end = 0x1e88, | |
| .flags = IORESOURCE_MEM, | |
| }, | |
| { | |
| .name = "interrupt", | |
| .start = MPC8xx_INT_FEC2, | |
| .end = MPC8xx_INT_FEC2, | |
| .flags = IORESOURCE_IRQ, | |
| }, | |
| }, | |
| }, | |
| [MPC8xx_CPM_SCC1] = { | |
| .name = "fsl-cpm-scc", | |
| .id = 1, | |
| .num_resources = 3, | |
| .resource = (struct resource[]) { | |
| { | |
| .name = "regs", | |
| .start = 0xa00, | |
| .end = 0xa18, | |
| .flags = IORESOURCE_MEM, | |
| }, | |
| { | |
| .name = "pram", | |
| .start = 0x3c00, | |
| .end = 0x3c7f, | |
| .flags = IORESOURCE_MEM, | |
| }, | |
| { | |
| .name = "interrupt", | |
| .start = MPC8xx_INT_SCC1, | |
| .end = MPC8xx_INT_SCC1, | |
| .flags = IORESOURCE_IRQ, | |
| }, | |
| }, | |
| }, | |
| [MPC8xx_CPM_SCC2] = { | |
| .name = "fsl-cpm-scc", | |
| .id = 2, | |
| .num_resources = 3, | |
| .resource = (struct resource[]) { | |
| { | |
| .name = "regs", | |
| .start = 0xa20, | |
| .end = 0xa38, | |
| .flags = IORESOURCE_MEM, | |
| }, | |
| { | |
| .name = "pram", | |
| .start = 0x3d00, | |
| .end = 0x3d7f, | |
| .flags = IORESOURCE_MEM, | |
| }, | |
| { | |
| .name = "interrupt", | |
| .start = MPC8xx_INT_SCC2, | |
| .end = MPC8xx_INT_SCC2, | |
| .flags = IORESOURCE_IRQ, | |
| }, | |
| }, | |
| }, | |
| [MPC8xx_CPM_SCC3] = { | |
| .name = "fsl-cpm-scc", | |
| .id = 3, | |
| .num_resources = 3, | |
| .resource = (struct resource[]) { | |
| { | |
| .name = "regs", | |
| .start = 0xa40, | |
| .end = 0xa58, | |
| .flags = IORESOURCE_MEM, | |
| }, | |
| { | |
| .name = "pram", | |
| .start = 0x3e00, | |
| .end = 0x3e7f, | |
| .flags = IORESOURCE_MEM, | |
| }, | |
| { | |
| .name = "interrupt", | |
| .start = MPC8xx_INT_SCC3, | |
| .end = MPC8xx_INT_SCC3, | |
| .flags = IORESOURCE_IRQ, | |
| }, | |
| }, | |
| }, | |
| [MPC8xx_CPM_SCC4] = { | |
| .name = "fsl-cpm-scc", | |
| .id = 4, | |
| .num_resources = 3, | |
| .resource = (struct resource[]) { | |
| { | |
| .name = "regs", | |
| .start = 0xa60, | |
| .end = 0xa78, | |
| .flags = IORESOURCE_MEM, | |
| }, | |
| { | |
| .name = "pram", | |
| .start = 0x3f00, | |
| .end = 0x3f7f, | |
| .flags = IORESOURCE_MEM, | |
| }, | |
| { | |
| .name = "interrupt", | |
| .start = MPC8xx_INT_SCC4, | |
| .end = MPC8xx_INT_SCC4, | |
| .flags = IORESOURCE_IRQ, | |
| }, | |
| }, | |
| }, | |
| [MPC8xx_CPM_SMC1] = { | |
| .name = "fsl-cpm-smc", | |
| .id = 1, | |
| .num_resources = 3, | |
| .resource = (struct resource[]) { | |
| { | |
| .name = "regs", | |
| .start = 0xa80, | |
| .end = 0xa8f, | |
| .flags = IORESOURCE_MEM, | |
| }, | |
| { | |
| .name = "pram", | |
| .start = 0x3e80, | |
| .end = 0x3ebf, | |
| .flags = IORESOURCE_MEM, | |
| }, | |
| { | |
| .name = "interrupt", | |
| .start = MPC8xx_INT_SMC1, | |
| .end = MPC8xx_INT_SMC1, | |
| .flags = IORESOURCE_IRQ, | |
| }, | |
| }, | |
| }, | |
| [MPC8xx_CPM_SMC2] = { | |
| .name = "fsl-cpm-smc", | |
| .id = 2, | |
| .num_resources = 3, | |
| .resource = (struct resource[]) { | |
| { | |
| .name = "regs", | |
| .start = 0xa90, | |
| .end = 0xa9f, | |
| .flags = IORESOURCE_MEM, | |
| }, | |
| { | |
| .name = "pram", | |
| .start = 0x3f80, | |
| .end = 0x3fbf, | |
| .flags = IORESOURCE_MEM, | |
| }, | |
| { | |
| .name = "interrupt", | |
| .start = MPC8xx_INT_SMC2, | |
| .end = MPC8xx_INT_SMC2, | |
| .flags = IORESOURCE_IRQ, | |
| }, | |
| }, | |
| }, | |
| [MPC8xx_MDIO_FEC] = { | |
| .name = "fsl-cpm-fec-mdio", | |
| .id = 0, | |
| .num_resources = 0, | |
| }, | |
| }; | |
| static int __init mach_mpc8xx_fixup(struct platform_device *pdev) | |
| { | |
| ppc_sys_fixup_mem_resource (pdev, IMAP_ADDR); | |
| return 0; | |
| } | |
| static int __init mach_mpc8xx_init(void) | |
| { | |
| ppc_sys_device_fixup = mach_mpc8xx_fixup; | |
| return 0; | |
| } | |
| postcore_initcall(mach_mpc8xx_init); |