|  | /* | 
|  | * 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	= "regs", | 
|  | .start	= 0x11A00, | 
|  | .end	= 0x11A1F, | 
|  | .flags	= IORESOURCE_MEM, | 
|  | }, | 
|  | { | 
|  | .name	= "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	= "regs", | 
|  | .start	= 0x11A20, | 
|  | .end	= 0x11A3F, | 
|  | .flags	= IORESOURCE_MEM, | 
|  | }, | 
|  | { | 
|  | .name	= "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 	= "regs", | 
|  | .start	= 0x11A40, | 
|  | .end	= 0x11A5F, | 
|  | .flags	= IORESOURCE_MEM, | 
|  | }, | 
|  | { | 
|  | .name	= "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	= "regs", | 
|  | .start	= 0x11A60, | 
|  | .end	= 0x11A7F, | 
|  | .flags	= IORESOURCE_MEM, | 
|  | }, | 
|  | { | 
|  | .name	= "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, | 
|  | }, | 
|  | }, | 
|  | }, | 
|  | [MPC82xx_MDIO_BB] = { | 
|  | .name = "fsl-bb-mdio", | 
|  | .id = 0, | 
|  | .num_resources = 0, | 
|  | }, | 
|  | }; | 
|  |  | 
|  | 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); |