From 89b904335338c86ef2c40e7cc51e19673feb62c1 Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Sun, 17 Jul 2011 15:02:10 +0200 Subject: [PATCH 17/22] bcm47xx: register flash drivers Signed-off-by: Hauke Mehrtens --- arch/mips/bcm47xx/setup.c | 50 +++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 50 insertions(+), 0 deletions(-) --- a/arch/mips/bcm47xx/setup.c +++ b/arch/mips/bcm47xx/setup.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include @@ -357,3 +358,52 @@ static int __init bcm47xx_register_bus_c return 0; } device_initcall(bcm47xx_register_bus_complete); + +static struct resource bcm47xx_pflash_resource = { + .name = "para", + .start = 0, + .end = 0, + .flags = 0, +}; + +static struct platform_device bcm47xx_pflash = { + .name = "bcm47xx_pflash", + .resource = &bcm47xx_pflash_resource, + .num_resources = 1, +}; + +static struct resource bcm47xx_sflash_resource = { + .name = "serial", + .start = 0, + .end = 0, + .flags = 0, +}; + +static struct platform_device bcm47xx_sflash = { + .name = "bcm47xx_sflash", + .resource = &bcm47xx_sflash_resource, + .num_resources = 1, +}; + +static int __init bcm47xx_register_flash(void) +{ + switch (bcm47xx_active_bus_type) { +#ifdef CONFIG_BCM47XX_SSB + case BCM47XX_BUS_TYPE_SSB: + return platform_device_register(&bcm47xx_pflash); +#endif +#ifdef CONFIG_BCM47XX_BCMA + case BCM47XX_BUS_TYPE_BCMA: + if (bcm47xx_bus.bcma.bus.drv_cc.flash_type == BCMA_PFLASH) { + return platform_device_register(&bcm47xx_pflash); + } else if (bcm47xx_bus.bcma.bus.drv_cc.flash_type == BCMA_SFLASH) { + return platform_device_register(&bcm47xx_sflash); + } else { + printk(KERN_ERR "No flash device found\n"); + return -1; + } +#endif + } + return 0; +} +fs_initcall(bcm47xx_register_flash);