ARM: versatile: move flash registration to the device tree
This moves the boardfile definition of the flash memory in the Versatile board into the device tree. The flash was already defined with the property "arm,versatile-flash" which was not handled by the kernel: instead define it as compatible also with "cfi-flash" so it detects properly, and delete the corresponding boardfile code so we get a smooth transition. The old compatible string "arm,versatile-flash" is reused to indicate to the MTD physmap subsystem that this flash requires special VPP handling. (See separate patch.) Cc: Grant Likely <grant.likely@linaro.org> Cc: Rob Herring <robh@kernel.org> Cc: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
parent
81fc3eb2b3
commit
7bb73fd719
|
@ -119,8 +119,9 @@
|
|||
};
|
||||
|
||||
flash@34000000 {
|
||||
compatible = "arm,versatile-flash";
|
||||
reg = <0x34000000 0x4000000>;
|
||||
/* 64 MiB NOR flash in non-interleaved chips */
|
||||
compatible = "arm,versatile-flash", "cfi-flash";
|
||||
reg = <0x34000000 0x04000000>;
|
||||
bank-width = <4>;
|
||||
};
|
||||
|
||||
|
|
|
@ -32,7 +32,6 @@
|
|||
#include <linux/amba/clcd.h>
|
||||
#include <linux/platform_data/video-clcd-versatile.h>
|
||||
#include <linux/amba/mmci.h>
|
||||
#include <linux/mtd/physmap.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
@ -41,12 +40,6 @@
|
|||
#define IO_ADDRESS(x) (((x) & 0x0fffffff) + (((x) >> 4) & 0x0f000000) + 0xf0000000)
|
||||
#define __io_address(n) ((void __iomem __force *)IO_ADDRESS(n))
|
||||
|
||||
/*
|
||||
* Memory definitions
|
||||
*/
|
||||
#define VERSATILE_FLASH_BASE 0x34000000
|
||||
#define VERSATILE_FLASH_SIZE SZ_64M
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------
|
||||
* Versatile Registers
|
||||
|
@ -54,14 +47,8 @@
|
|||
*/
|
||||
#define VERSATILE_SYS_PCICTL_OFFSET 0x44
|
||||
#define VERSATILE_SYS_MCI_OFFSET 0x48
|
||||
#define VERSATILE_SYS_FLASH_OFFSET 0x4C
|
||||
#define VERSATILE_SYS_CLCD_OFFSET 0x50
|
||||
|
||||
/*
|
||||
* VERSATILE_SYS_FLASH
|
||||
*/
|
||||
#define VERSATILE_FLASHPROG_FLVPPEN (1 << 0) /* Enable writing to flash */
|
||||
|
||||
/*
|
||||
* VERSATILE peripheral addresses
|
||||
*/
|
||||
|
@ -86,39 +73,6 @@
|
|||
static void __iomem *versatile_sys_base;
|
||||
static void __iomem *versatile_ib2_ctrl;
|
||||
|
||||
static void versatile_flash_set_vpp(struct platform_device *pdev, int on)
|
||||
{
|
||||
u32 val;
|
||||
|
||||
val = readl(versatile_sys_base + VERSATILE_SYS_FLASH_OFFSET);
|
||||
if (on)
|
||||
val |= VERSATILE_FLASHPROG_FLVPPEN;
|
||||
else
|
||||
val &= ~VERSATILE_FLASHPROG_FLVPPEN;
|
||||
writel(val, versatile_sys_base + VERSATILE_SYS_FLASH_OFFSET);
|
||||
}
|
||||
|
||||
static struct physmap_flash_data versatile_flash_data = {
|
||||
.width = 4,
|
||||
.set_vpp = versatile_flash_set_vpp,
|
||||
};
|
||||
|
||||
static struct resource versatile_flash_resource = {
|
||||
.start = VERSATILE_FLASH_BASE,
|
||||
.end = VERSATILE_FLASH_BASE + VERSATILE_FLASH_SIZE - 1,
|
||||
.flags = IORESOURCE_MEM,
|
||||
};
|
||||
|
||||
struct platform_device versatile_flash_device = {
|
||||
.name = "physmap-flash",
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.platform_data = &versatile_flash_data,
|
||||
},
|
||||
.num_resources = 1,
|
||||
.resource = &versatile_flash_resource,
|
||||
};
|
||||
|
||||
unsigned int mmc_status(struct device *dev)
|
||||
{
|
||||
struct amba_device *adev = container_of(dev, struct amba_device, dev);
|
||||
|
@ -390,7 +344,6 @@ static void __init versatile_dt_init(void)
|
|||
|
||||
versatile_dt_pci_init();
|
||||
|
||||
platform_device_register(&versatile_flash_device);
|
||||
of_platform_populate(NULL, of_default_bus_match_table,
|
||||
versatile_auxdata_lookup, NULL);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue