| /* |
| * arch/ppc/syslib/pq2_devices.c |
| * |
| * PQ2 Device descriptions |
| * |
| * Maintainer: Kumar Gala <galak@kernel.crashing.org> |
| * |
| * This file is licensed under the terms of the GNU General Public License |
| * version 2. This program is licensed "as is" without any warranty of any |
| * kind, whether express or implied. |
| */ |
| |
| |
| #include <linux/init.h> |
| #include <linux/module.h> |
| #include <linux/platform_device.h> |
| #include <linux/ioport.h> |
| #include <asm/cpm2.h> |
| #include <asm/irq.h> |
| #include <asm/ppc_sys.h> |
| #include <asm/machdep.h> |
| |
| struct platform_device ppc_sys_platform_devices[] = { |
| [MPC82xx_CPM_FCC1] = { |
| .name = "fsl-cpm-fcc", |
| .id = 1, |
| .num_resources = 3, |
| .resource = (struct resource[]) { |
| { |
| .name = "fcc_regs", |
| .start = 0x11300, |
| .end = 0x1131f, |
| .flags = IORESOURCE_MEM, |
| }, |
| { |
| .name = "fcc_pram", |
| .start = 0x8400, |
| .end = 0x84ff, |
| .flags = IORESOURCE_MEM, |
| }, |
| { |
| .start = SIU_INT_FCC1, |
| .end = SIU_INT_FCC1, |
| .flags = IORESOURCE_IRQ, |
| }, |
| }, |
| }, |
| [MPC82xx_CPM_FCC2] = { |
| .name = "fsl-cpm-fcc", |
| .id = 2, |
| .num_resources = 3, |
| .resource = (struct resource[]) { |
| { |
| .name = "fcc_regs", |
| .start = 0x11320, |
| .end = 0x1133f, |
| .flags = IORESOURCE_MEM, |
| }, |
| { |
| .name = "fcc_pram", |
| .start = 0x8500, |
| .end = 0x85ff, |
| .flags = IORESOURCE_MEM, |
| }, |
| { |
| .start = SIU_INT_FCC2, |
| .end = SIU_INT_FCC2, |
| .flags = IORESOURCE_IRQ, |
| }, |
| }, |
| }, |
| [MPC82xx_CPM_FCC3] = { |
| .name = "fsl-cpm-fcc", |
| .id = 3, |
| .num_resources = 3, |
| .resource = (struct resource[]) { |
| { |
| .name = "fcc_regs", |
| .start = 0x11340, |
| .end = 0x1135f, |
| .flags = IORESOURCE_MEM, |
| }, |
| { |
| .name = "fcc_pram", |
| .start = 0x8600, |
| .end = 0x86ff, |
| .flags = IORESOURCE_MEM, |
| }, |
| { |
| .start = SIU_INT_FCC3, |
| .end = SIU_INT_FCC3, |
| .flags = IORESOURCE_IRQ, |
| }, |
| }, |
| }, |
| [MPC82xx_CPM_I2C] = { |
| .name = "fsl-cpm-i2c", |
| .id = 1, |
| .num_resources = 3, |
| .resource = (struct resource[]) { |
| { |
| .name = "i2c_mem", |
| .start = 0x11860, |
| .end = 0x118BF, |
| .flags = IORESOURCE_MEM, |
| }, |
| { |
| .name = "i2c_pram", |
| .start = 0x8afc, |
| .end = 0x8afd, |
| .flags = IORESOURCE_MEM, |
| }, |
| { |
| .start = SIU_INT_I2C, |
| .end = SIU_INT_I2C, |
| .flags = IORESOURCE_IRQ, |
| }, |
| }, |
| }, |
| [MPC82xx_CPM_SCC1] = { |
| .name = "fsl-cpm-scc", |
| .id = 1, |
| .num_resources = 3, |
| .resource = (struct resource[]) { |
| { |
| .name = "scc_mem", |
| .start = 0x11A00, |
| .end = 0x11A1F, |
| .flags = IORESOURCE_MEM, |
| }, |
| { |
| .name = "scc_pram", |
| .start = 0x8000, |
| .end = 0x80ff, |
| .flags = IORESOURCE_MEM, |
| }, |
| { |
| .start = SIU_INT_SCC1, |
| .end = SIU_INT_SCC1, |
| .flags = IORESOURCE_IRQ, |
| }, |
| }, |
| }, |
| [MPC82xx_CPM_SCC2] = { |
| .name = "fsl-cpm-scc", |
| .id = 2, |
| .num_resources = 3, |
| .resource = (struct resource[]) { |
| { |
| .name = "scc_mem", |
| .start = 0x11A20, |
| .end = 0x11A3F, |
| .flags = IORESOURCE_MEM, |
| }, |
| { |
| .name = "scc_pram", |
| .start = 0x8100, |
| .end = 0x81ff, |
| .flags = IORESOURCE_MEM, |
| }, |
| { |
| .start = SIU_INT_SCC2, |
| .end = SIU_INT_SCC2, |
| .flags = IORESOURCE_IRQ, |
| }, |
| }, |
| }, |
| [MPC82xx_CPM_SCC3] = { |
| .name = "fsl-cpm-scc", |
| .id = 3, |
| .num_resources = 3, |
| .resource = (struct resource[]) { |
| { |
| .name = "scc_mem", |
| .start = 0x11A40, |
| .end = 0x11A5F, |
| .flags = IORESOURCE_MEM, |
| }, |
| { |
| .name = "scc_pram", |
| .start = 0x8200, |
| .end = 0x82ff, |
| .flags = IORESOURCE_MEM, |
| }, |
| { |
| .start = SIU_INT_SCC3, |
| .end = SIU_INT_SCC3, |
| .flags = IORESOURCE_IRQ, |
| }, |
| }, |
| }, |
| [MPC82xx_CPM_SCC4] = { |
| .name = "fsl-cpm-scc", |
| .id = 4, |
| .num_resources = 3, |
| .resource = (struct resource[]) { |
| { |
| .name = "scc_mem", |
| .start = 0x11A60, |
| .end = 0x11A7F, |
| .flags = IORESOURCE_MEM, |
| }, |
| { |
| .name = "scc_pram", |
| .start = 0x8300, |
| .end = 0x83ff, |
| .flags = IORESOURCE_MEM, |
| }, |
| { |
| .start = SIU_INT_SCC4, |
| .end = SIU_INT_SCC4, |
| .flags = IORESOURCE_IRQ, |
| }, |
| }, |
| }, |
| [MPC82xx_CPM_SPI] = { |
| .name = "fsl-cpm-spi", |
| .id = 1, |
| .num_resources = 3, |
| .resource = (struct resource[]) { |
| { |
| .name = "spi_mem", |
| .start = 0x11AA0, |
| .end = 0x11AFF, |
| .flags = IORESOURCE_MEM, |
| }, |
| { |
| .name = "spi_pram", |
| .start = 0x89fc, |
| .end = 0x89fd, |
| .flags = IORESOURCE_MEM, |
| }, |
| { |
| .start = SIU_INT_SPI, |
| .end = SIU_INT_SPI, |
| .flags = IORESOURCE_IRQ, |
| }, |
| }, |
| }, |
| [MPC82xx_CPM_MCC1] = { |
| .name = "fsl-cpm-mcc", |
| .id = 1, |
| .num_resources = 3, |
| .resource = (struct resource[]) { |
| { |
| .name = "mcc_mem", |
| .start = 0x11B30, |
| .end = 0x11B3F, |
| .flags = IORESOURCE_MEM, |
| }, |
| { |
| .name = "mcc_pram", |
| .start = 0x8700, |
| .end = 0x877f, |
| .flags = IORESOURCE_MEM, |
| }, |
| { |
| .start = SIU_INT_MCC1, |
| .end = SIU_INT_MCC1, |
| .flags = IORESOURCE_IRQ, |
| }, |
| }, |
| }, |
| [MPC82xx_CPM_MCC2] = { |
| .name = "fsl-cpm-mcc", |
| .id = 2, |
| .num_resources = 3, |
| .resource = (struct resource[]) { |
| { |
| .name = "mcc_mem", |
| .start = 0x11B50, |
| .end = 0x11B5F, |
| .flags = IORESOURCE_MEM, |
| }, |
| { |
| .name = "mcc_pram", |
| .start = 0x8800, |
| .end = 0x887f, |
| .flags = IORESOURCE_MEM, |
| }, |
| { |
| .start = SIU_INT_MCC2, |
| .end = SIU_INT_MCC2, |
| .flags = IORESOURCE_IRQ, |
| }, |
| }, |
| }, |
| [MPC82xx_CPM_SMC1] = { |
| .name = "fsl-cpm-smc", |
| .id = 1, |
| .num_resources = 3, |
| .resource = (struct resource[]) { |
| { |
| .name = "smc_mem", |
| .start = 0x11A80, |
| .end = 0x11A8F, |
| .flags = IORESOURCE_MEM, |
| }, |
| { |
| .name = "smc_pram", |
| .start = 0x87fc, |
| .end = 0x87fd, |
| .flags = IORESOURCE_MEM, |
| }, |
| { |
| .start = SIU_INT_SMC1, |
| .end = SIU_INT_SMC1, |
| .flags = IORESOURCE_IRQ, |
| }, |
| }, |
| }, |
| [MPC82xx_CPM_SMC2] = { |
| .name = "fsl-cpm-smc", |
| .id = 2, |
| .num_resources = 3, |
| .resource = (struct resource[]) { |
| { |
| .name = "smc_mem", |
| .start = 0x11A90, |
| .end = 0x11A9F, |
| .flags = IORESOURCE_MEM, |
| }, |
| { |
| .name = "smc_pram", |
| .start = 0x88fc, |
| .end = 0x88fd, |
| .flags = IORESOURCE_MEM, |
| }, |
| { |
| .start = SIU_INT_SMC2, |
| .end = SIU_INT_SMC2, |
| .flags = IORESOURCE_IRQ, |
| }, |
| }, |
| }, |
| [MPC82xx_CPM_USB] = { |
| .name = "fsl-cpm-usb", |
| .id = 1, |
| .num_resources = 3, |
| .resource = (struct resource[]) { |
| { |
| .name = "usb_mem", |
| .start = 0x11b60, |
| .end = 0x11b78, |
| .flags = IORESOURCE_MEM, |
| }, |
| { |
| .name = "usb_pram", |
| .start = 0x8b00, |
| .end = 0x8bff, |
| .flags = IORESOURCE_MEM, |
| }, |
| { |
| .start = SIU_INT_USB, |
| .end = SIU_INT_USB, |
| .flags = IORESOURCE_IRQ, |
| }, |
| |
| }, |
| }, |
| [MPC82xx_SEC1] = { |
| .name = "fsl-sec", |
| .id = 1, |
| .num_resources = 1, |
| .resource = (struct resource[]) { |
| { |
| .name = "sec_mem", |
| .start = 0x40000, |
| .end = 0x52fff, |
| .flags = IORESOURCE_MEM, |
| }, |
| }, |
| }, |
| }; |
| |
| static int __init mach_mpc82xx_fixup(struct platform_device *pdev) |
| { |
| ppc_sys_fixup_mem_resource(pdev, CPM_MAP_ADDR); |
| return 0; |
| } |
| |
| static int __init mach_mpc82xx_init(void) |
| { |
| if (ppc_md.progress) |
| ppc_md.progress("mach_mpc82xx_init:enter", 0); |
| ppc_sys_device_fixup = mach_mpc82xx_fixup; |
| return 0; |
| } |
| |
| postcore_initcall(mach_mpc82xx_init); |