mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 06:44:00 -04:00
mtd: physmap_of: add a hook for Intel IXP4xx flash probing
In order to support device tree probing of IXP4xx NOR flash chips, a certain big-endian or mixed-endian memory access pattern need to be used. I have opted to use the pattern set by previous plug-ins to physmap for Gemini and Versatile, just override some functions and reuse most of the physmap core code as it is to minimize maintenance. Parts of drivers/mtd/ixp4xx.c are copied into this file. After we have IXP4xx converted fully to device tree, the drivers/mtd/ixp4xx.c file will be deleted and this will be the only access pattern to the IXP4xx flash. I did not keep the quirk in the flash write function after probe, where the old code for a while checks for access to odd addresses, fails and assigns a "faster" write function once it has convinced probe to only use 2-byte accesses. As we mandate that this device should be using bank-width = <2> this should not be a problem unless misconfigured. Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
This commit is contained in:
committed by
Miquel Raynal
parent
8b3cc92622
commit
2aba2f2a70
@@ -41,6 +41,7 @@
|
||||
#include <linux/gpio/consumer.h>
|
||||
|
||||
#include "physmap-gemini.h"
|
||||
#include "physmap-ixp4xx.h"
|
||||
#include "physmap-versatile.h"
|
||||
|
||||
struct physmap_flash_info {
|
||||
@@ -370,6 +371,10 @@ static int physmap_flash_of_init(struct platform_device *dev)
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
err = of_flash_probe_ixp4xx(dev, dp, &info->maps[i]);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
err = of_flash_probe_versatile(dev, dp, &info->maps[i]);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
Reference in New Issue
Block a user