mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-17 07:54:54 +08:00
2aba2f2a70
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>
18 lines
389 B
C
18 lines
389 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#include <linux/of.h>
|
|
#include <linux/mtd/map.h>
|
|
|
|
#ifdef CONFIG_MTD_PHYSMAP_IXP4XX
|
|
int of_flash_probe_ixp4xx(struct platform_device *pdev,
|
|
struct device_node *np,
|
|
struct map_info *map);
|
|
#else
|
|
static inline
|
|
int of_flash_probe_ixp4xx(struct platform_device *pdev,
|
|
struct device_node *np,
|
|
struct map_info *map)
|
|
{
|
|
return 0;
|
|
}
|
|
#endif
|