mtd: rawnand: Create a legacy struct and move ->IO_ADDR_{R, W} there
We regularly have new NAND controller drivers that are making use of fields/hooks that we want to get rid of but can't because of all the legacy drivers that we might break if we do. So, instead of removing those fields/hooks, let's move them to a sub-struct which is clearly documented as deprecated. We start with the ->IO_ADDR_{R,W] fields. Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com> Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
This commit is contained in:

committed by
Miquel Raynal

parent
4ae9402517
commit
82fc509974
@@ -43,7 +43,7 @@
|
||||
#define SNAPPERCL15_NAND_CEN (1 << 11) /* Chip enable (active low) */
|
||||
#define SNAPPERCL15_NAND_RDY (1 << 14) /* Device ready */
|
||||
|
||||
#define NAND_CTRL_ADDR(chip) (chip->IO_ADDR_W + 0x40)
|
||||
#define NAND_CTRL_ADDR(chip) (chip->legacy.IO_ADDR_W + 0x40)
|
||||
|
||||
static void snappercl15_nand_cmd_ctrl(struct nand_chip *chip, int cmd,
|
||||
unsigned int ctrl)
|
||||
@@ -69,7 +69,8 @@ static void snappercl15_nand_cmd_ctrl(struct nand_chip *chip, int cmd,
|
||||
}
|
||||
|
||||
if (cmd != NAND_CMD_NONE)
|
||||
__raw_writew((cmd & 0xff) | nand_state, chip->IO_ADDR_W);
|
||||
__raw_writew((cmd & 0xff) | nand_state,
|
||||
chip->legacy.IO_ADDR_W);
|
||||
}
|
||||
|
||||
static int snappercl15_nand_dev_ready(struct nand_chip *chip)
|
||||
|
@@ -80,7 +80,7 @@ static void ts72xx_nand_hwcontrol(struct nand_chip *chip,
|
||||
int cmd, unsigned int ctrl)
|
||||
{
|
||||
if (ctrl & NAND_CTRL_CHANGE) {
|
||||
void __iomem *addr = chip->IO_ADDR_R;
|
||||
void __iomem *addr = chip->legacy.IO_ADDR_R;
|
||||
unsigned char bits;
|
||||
|
||||
addr += (1 << TS72XX_NAND_CONTROL_ADDR_LINE);
|
||||
@@ -94,12 +94,12 @@ static void ts72xx_nand_hwcontrol(struct nand_chip *chip,
|
||||
}
|
||||
|
||||
if (cmd != NAND_CMD_NONE)
|
||||
__raw_writeb(cmd, chip->IO_ADDR_W);
|
||||
__raw_writeb(cmd, chip->legacy.IO_ADDR_W);
|
||||
}
|
||||
|
||||
static int ts72xx_nand_device_ready(struct nand_chip *chip)
|
||||
{
|
||||
void __iomem *addr = chip->IO_ADDR_R;
|
||||
void __iomem *addr = chip->legacy.IO_ADDR_R;
|
||||
|
||||
addr += (1 << TS72XX_NAND_BUSY_ADDR_LINE);
|
||||
|
||||
|
@@ -136,9 +136,9 @@ static void qong_nand_cmd_ctrl(struct nand_chip *nand_chip, int cmd,
|
||||
return;
|
||||
|
||||
if (ctrl & NAND_CLE)
|
||||
writeb(cmd, nand_chip->IO_ADDR_W + (1 << 24));
|
||||
writeb(cmd, nand_chip->legacy.IO_ADDR_W + (1 << 24));
|
||||
else
|
||||
writeb(cmd, nand_chip->IO_ADDR_W + (1 << 23));
|
||||
writeb(cmd, nand_chip->legacy.IO_ADDR_W + (1 << 23));
|
||||
}
|
||||
|
||||
/*
|
||||
|
@@ -92,7 +92,7 @@ ixdp425_flash_nand_cmd_ctrl(struct nand_chip *this, int cmd, unsigned int ctrl)
|
||||
}
|
||||
|
||||
if (cmd != NAND_CMD_NONE)
|
||||
writeb(cmd, this->IO_ADDR_W + offset);
|
||||
writeb(cmd, this->legacy.IO_ADDR_W + offset);
|
||||
}
|
||||
|
||||
static struct platform_nand_data ixdp425_flash_nand_data = {
|
||||
|
@@ -31,6 +31,6 @@ void omap1_nand_cmd_ctl(struct nand_chip *this, int cmd, unsigned int ctrl)
|
||||
if (ctrl & NAND_ALE)
|
||||
mask |= 0x04;
|
||||
|
||||
writeb(cmd, this->IO_ADDR_W + mask);
|
||||
writeb(cmd, this->legacy.IO_ADDR_W + mask);
|
||||
}
|
||||
|
||||
|
@@ -145,7 +145,7 @@ static void ts78xx_ts_nand_cmd_ctrl(struct nand_chip *this, int cmd,
|
||||
}
|
||||
|
||||
if (cmd != NAND_CMD_NONE)
|
||||
writeb(cmd, this->IO_ADDR_W);
|
||||
writeb(cmd, this->legacy.IO_ADDR_W);
|
||||
}
|
||||
|
||||
static int ts78xx_ts_nand_dev_ready(struct nand_chip *chip)
|
||||
@@ -156,7 +156,7 @@ static int ts78xx_ts_nand_dev_ready(struct nand_chip *chip)
|
||||
static void ts78xx_ts_nand_write_buf(struct nand_chip *chip,
|
||||
const uint8_t *buf, int len)
|
||||
{
|
||||
void __iomem *io_base = chip->IO_ADDR_W;
|
||||
void __iomem *io_base = chip->legacy.IO_ADDR_W;
|
||||
unsigned long off = ((unsigned long)buf & 3);
|
||||
int sz;
|
||||
|
||||
@@ -182,7 +182,7 @@ static void ts78xx_ts_nand_write_buf(struct nand_chip *chip,
|
||||
static void ts78xx_ts_nand_read_buf(struct nand_chip *chip,
|
||||
uint8_t *buf, int len)
|
||||
{
|
||||
void __iomem *io_base = chip->IO_ADDR_R;
|
||||
void __iomem *io_base = chip->legacy.IO_ADDR_R;
|
||||
unsigned long off = ((unsigned long)buf & 3);
|
||||
int sz;
|
||||
|
||||
|
@@ -597,7 +597,7 @@ static void balloon3_nand_cmd_ctl(struct nand_chip *this, int cmd,
|
||||
}
|
||||
|
||||
if (cmd != NAND_CMD_NONE)
|
||||
writeb(cmd, this->IO_ADDR_W);
|
||||
writeb(cmd, this->legacy.IO_ADDR_W);
|
||||
}
|
||||
|
||||
static void balloon3_nand_select_chip(struct nand_chip *this, int chip)
|
||||
|
@@ -288,7 +288,7 @@ static void nand_cs_off(void)
|
||||
static void em_x270_nand_cmd_ctl(struct nand_chip *this, int dat,
|
||||
unsigned int ctrl)
|
||||
{
|
||||
unsigned long nandaddr = (unsigned long)this->IO_ADDR_W;
|
||||
unsigned long nandaddr = (unsigned long)this->legacy.IO_ADDR_W;
|
||||
|
||||
dsb();
|
||||
|
||||
@@ -308,9 +308,9 @@ static void em_x270_nand_cmd_ctl(struct nand_chip *this, int dat,
|
||||
}
|
||||
|
||||
dsb();
|
||||
this->IO_ADDR_W = (void __iomem *)nandaddr;
|
||||
this->legacy.IO_ADDR_W = (void __iomem *)nandaddr;
|
||||
if (dat != NAND_CMD_NONE)
|
||||
writel(dat, this->IO_ADDR_W);
|
||||
writel(dat, this->legacy.IO_ADDR_W);
|
||||
|
||||
dsb();
|
||||
}
|
||||
|
@@ -250,7 +250,7 @@ static inline void palmtx_keys_init(void) {}
|
||||
static void palmtx_nand_cmd_ctl(struct nand_chip *this, int cmd,
|
||||
unsigned int ctrl)
|
||||
{
|
||||
char __iomem *nandaddr = this->IO_ADDR_W;
|
||||
char __iomem *nandaddr = this->legacy.IO_ADDR_W;
|
||||
|
||||
if (cmd == NAND_CMD_NONE)
|
||||
return;
|
||||
|
Reference in New Issue
Block a user