summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBoris Brezillon <boris.brezillon@bootlin.com>2018-09-06 18:38:46 -0400
committerMiquel Raynal <miquel.raynal@bootlin.com>2018-10-03 05:12:25 -0400
commitc7921bb32ab616462cefb9c2f3dd81d85d32b948 (patch)
treed19506bad27cabfc330a42d39845f03a85128814
parent4114f97c41cd3992724f450f595417e4432737a0 (diff)
mtd: rawnand: Move platform_nand_xxx definitions out of rawnand.h
platform_nand_xxx definitions are just used by the plat_nand driver. Let's move those definitions out of the core/driver-agnostic rawnand.h header. Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com> Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
-rw-r--r--arch/arm/mach-ep93xx/snappercl15.c3
-rw-r--r--arch/arm/mach-ep93xx/ts72xx.c3
-rw-r--r--arch/arm/mach-imx/mach-qong.c2
-rw-r--r--arch/arm/mach-ixp4xx/ixdp425-setup.c1
-rw-r--r--arch/arm/mach-omap1/board-fsample.c3
-rw-r--r--arch/arm/mach-omap1/board-h2.c3
-rw-r--r--arch/arm/mach-omap1/board-h3.c2
-rw-r--r--arch/arm/mach-omap1/board-perseus2.c3
-rw-r--r--arch/arm/mach-orion5x/ts78xx-setup.c3
-rw-r--r--arch/arm/mach-pxa/balloon3.c3
-rw-r--r--arch/arm/mach-pxa/em-x270.c3
-rw-r--r--arch/arm/mach-pxa/palmtx.c3
-rw-r--r--arch/mips/alchemy/devboards/db1200.c3
-rw-r--r--arch/mips/alchemy/devboards/db1300.c3
-rw-r--r--arch/mips/alchemy/devboards/db1550.c3
-rw-r--r--arch/mips/netlogic/xlr/platform-flash.c3
-rw-r--r--arch/mips/pnx833x/common/platform.c3
-rw-r--r--arch/mips/rb532/devices.c3
-rw-r--r--arch/sh/boards/mach-migor/setup.c2
-rw-r--r--drivers/mtd/nand/raw/plat_nand.c3
-rw-r--r--include/linux/mtd/platnand.h74
-rw-r--r--include/linux/mtd/rawnand.h60
22 files changed, 94 insertions, 95 deletions
diff --git a/arch/arm/mach-ep93xx/snappercl15.c b/arch/arm/mach-ep93xx/snappercl15.c
index 1dad83a0bc5b..cf0cb58b3454 100644
--- a/arch/arm/mach-ep93xx/snappercl15.c
+++ b/arch/arm/mach-ep93xx/snappercl15.c
@@ -23,8 +23,7 @@
23#include <linux/i2c.h> 23#include <linux/i2c.h>
24#include <linux/fb.h> 24#include <linux/fb.h>
25 25
26#include <linux/mtd/partitions.h> 26#include <linux/mtd/platnand.h>
27#include <linux/mtd/rawnand.h>
28 27
29#include <mach/hardware.h> 28#include <mach/hardware.h>
30#include <linux/platform_data/video-ep93xx.h> 29#include <linux/platform_data/video-ep93xx.h>
diff --git a/arch/arm/mach-ep93xx/ts72xx.c b/arch/arm/mach-ep93xx/ts72xx.c
index 188bf02595c5..c6a533699b00 100644
--- a/arch/arm/mach-ep93xx/ts72xx.c
+++ b/arch/arm/mach-ep93xx/ts72xx.c
@@ -16,8 +16,7 @@
16#include <linux/init.h> 16#include <linux/init.h>
17#include <linux/platform_device.h> 17#include <linux/platform_device.h>
18#include <linux/io.h> 18#include <linux/io.h>
19#include <linux/mtd/rawnand.h> 19#include <linux/mtd/platnand.h>
20#include <linux/mtd/partitions.h>
21#include <linux/spi/spi.h> 20#include <linux/spi/spi.h>
22#include <linux/spi/flash.h> 21#include <linux/spi/flash.h>
23#include <linux/spi/mmc_spi.h> 22#include <linux/spi/mmc_spi.h>
diff --git a/arch/arm/mach-imx/mach-qong.c b/arch/arm/mach-imx/mach-qong.c
index 48972944bb95..5c5df8ca38dd 100644
--- a/arch/arm/mach-imx/mach-qong.c
+++ b/arch/arm/mach-imx/mach-qong.c
@@ -18,7 +18,7 @@
18#include <linux/memory.h> 18#include <linux/memory.h>
19#include <linux/platform_device.h> 19#include <linux/platform_device.h>
20#include <linux/mtd/physmap.h> 20#include <linux/mtd/physmap.h>
21#include <linux/mtd/rawnand.h> 21#include <linux/mtd/platnand.h>
22#include <linux/gpio.h> 22#include <linux/gpio.h>
23 23
24#include <asm/mach-types.h> 24#include <asm/mach-types.h>
diff --git a/arch/arm/mach-ixp4xx/ixdp425-setup.c b/arch/arm/mach-ixp4xx/ixdp425-setup.c
index 797e7edc7124..57d7df79d838 100644
--- a/arch/arm/mach-ixp4xx/ixdp425-setup.c
+++ b/arch/arm/mach-ixp4xx/ixdp425-setup.c
@@ -20,6 +20,7 @@
20#include <linux/mtd/mtd.h> 20#include <linux/mtd/mtd.h>
21#include <linux/mtd/rawnand.h> 21#include <linux/mtd/rawnand.h>
22#include <linux/mtd/partitions.h> 22#include <linux/mtd/partitions.h>
23#include <linux/mtd/platnand.h>
23#include <linux/delay.h> 24#include <linux/delay.h>
24#include <linux/gpio.h> 25#include <linux/gpio.h>
25#include <asm/types.h> 26#include <asm/types.h>
diff --git a/arch/arm/mach-omap1/board-fsample.c b/arch/arm/mach-omap1/board-fsample.c
index e9f512a0602e..4a0a66815ca0 100644
--- a/arch/arm/mach-omap1/board-fsample.c
+++ b/arch/arm/mach-omap1/board-fsample.c
@@ -16,8 +16,7 @@
16#include <linux/platform_device.h> 16#include <linux/platform_device.h>
17#include <linux/delay.h> 17#include <linux/delay.h>
18#include <linux/mtd/mtd.h> 18#include <linux/mtd/mtd.h>
19#include <linux/mtd/rawnand.h> 19#include <linux/mtd/platnand.h>
20#include <linux/mtd/partitions.h>
21#include <linux/mtd/physmap.h> 20#include <linux/mtd/physmap.h>
22#include <linux/input.h> 21#include <linux/input.h>
23#include <linux/smc91x.h> 22#include <linux/smc91x.h>
diff --git a/arch/arm/mach-omap1/board-h2.c b/arch/arm/mach-omap1/board-h2.c
index d5dd2acd6f78..9d9a6ca15df0 100644
--- a/arch/arm/mach-omap1/board-h2.c
+++ b/arch/arm/mach-omap1/board-h2.c
@@ -24,8 +24,7 @@
24#include <linux/delay.h> 24#include <linux/delay.h>
25#include <linux/i2c.h> 25#include <linux/i2c.h>
26#include <linux/mtd/mtd.h> 26#include <linux/mtd/mtd.h>
27#include <linux/mtd/rawnand.h> 27#include <linux/mtd/platnand.h>
28#include <linux/mtd/partitions.h>
29#include <linux/mtd/physmap.h> 28#include <linux/mtd/physmap.h>
30#include <linux/input.h> 29#include <linux/input.h>
31#include <linux/mfd/tps65010.h> 30#include <linux/mfd/tps65010.h>
diff --git a/arch/arm/mach-omap1/board-h3.c b/arch/arm/mach-omap1/board-h3.c
index a75856fe4259..cd6e02c5c01a 100644
--- a/arch/arm/mach-omap1/board-h3.c
+++ b/arch/arm/mach-omap1/board-h3.c
@@ -23,7 +23,7 @@
23#include <linux/workqueue.h> 23#include <linux/workqueue.h>
24#include <linux/i2c.h> 24#include <linux/i2c.h>
25#include <linux/mtd/mtd.h> 25#include <linux/mtd/mtd.h>
26#include <linux/mtd/rawnand.h> 26#include <linux/mtd/platnand.h>
27#include <linux/mtd/partitions.h> 27#include <linux/mtd/partitions.h>
28#include <linux/mtd/physmap.h> 28#include <linux/mtd/physmap.h>
29#include <linux/input.h> 29#include <linux/input.h>
diff --git a/arch/arm/mach-omap1/board-perseus2.c b/arch/arm/mach-omap1/board-perseus2.c
index c61c7c7520ca..06a584fef5b8 100644
--- a/arch/arm/mach-omap1/board-perseus2.c
+++ b/arch/arm/mach-omap1/board-perseus2.c
@@ -16,8 +16,7 @@
16#include <linux/platform_device.h> 16#include <linux/platform_device.h>
17#include <linux/delay.h> 17#include <linux/delay.h>
18#include <linux/mtd/mtd.h> 18#include <linux/mtd/mtd.h>
19#include <linux/mtd/rawnand.h> 19#include <linux/mtd/platnand.h>
20#include <linux/mtd/partitions.h>
21#include <linux/mtd/physmap.h> 20#include <linux/mtd/physmap.h>
22#include <linux/input.h> 21#include <linux/input.h>
23#include <linux/smc91x.h> 22#include <linux/smc91x.h>
diff --git a/arch/arm/mach-orion5x/ts78xx-setup.c b/arch/arm/mach-orion5x/ts78xx-setup.c
index aac2c6eb35e2..fda9b75c3a33 100644
--- a/arch/arm/mach-orion5x/ts78xx-setup.c
+++ b/arch/arm/mach-orion5x/ts78xx-setup.c
@@ -16,8 +16,7 @@
16#include <linux/platform_device.h> 16#include <linux/platform_device.h>
17#include <linux/mv643xx_eth.h> 17#include <linux/mv643xx_eth.h>
18#include <linux/ata_platform.h> 18#include <linux/ata_platform.h>
19#include <linux/mtd/rawnand.h> 19#include <linux/mtd/platnand.h>
20#include <linux/mtd/partitions.h>
21#include <linux/timeriomem-rng.h> 20#include <linux/timeriomem-rng.h>
22#include <asm/mach-types.h> 21#include <asm/mach-types.h>
23#include <asm/mach/arch.h> 22#include <asm/mach/arch.h>
diff --git a/arch/arm/mach-pxa/balloon3.c b/arch/arm/mach-pxa/balloon3.c
index 256e60c38a6d..c52c081eb6d9 100644
--- a/arch/arm/mach-pxa/balloon3.c
+++ b/arch/arm/mach-pxa/balloon3.c
@@ -25,11 +25,10 @@
25#include <linux/ioport.h> 25#include <linux/ioport.h>
26#include <linux/ucb1400.h> 26#include <linux/ucb1400.h>
27#include <linux/mtd/mtd.h> 27#include <linux/mtd/mtd.h>
28#include <linux/mtd/partitions.h>
29#include <linux/types.h> 28#include <linux/types.h>
30#include <linux/platform_data/pcf857x.h> 29#include <linux/platform_data/pcf857x.h>
31#include <linux/platform_data/i2c-pxa.h> 30#include <linux/platform_data/i2c-pxa.h>
32#include <linux/mtd/rawnand.h> 31#include <linux/mtd/platnand.h>
33#include <linux/mtd/physmap.h> 32#include <linux/mtd/physmap.h>
34#include <linux/regulator/max1586.h> 33#include <linux/regulator/max1586.h>
35 34
diff --git a/arch/arm/mach-pxa/em-x270.c b/arch/arm/mach-pxa/em-x270.c
index 3acb945a2628..c30d20e1fb7a 100644
--- a/arch/arm/mach-pxa/em-x270.c
+++ b/arch/arm/mach-pxa/em-x270.c
@@ -15,8 +15,7 @@
15 15
16#include <linux/dm9000.h> 16#include <linux/dm9000.h>
17#include <linux/platform_data/rtc-v3020.h> 17#include <linux/platform_data/rtc-v3020.h>
18#include <linux/mtd/rawnand.h> 18#include <linux/mtd/platnand.h>
19#include <linux/mtd/partitions.h>
20#include <linux/mtd/physmap.h> 19#include <linux/mtd/physmap.h>
21#include <linux/input.h> 20#include <linux/input.h>
22#include <linux/gpio_keys.h> 21#include <linux/gpio_keys.h>
diff --git a/arch/arm/mach-pxa/palmtx.c b/arch/arm/mach-pxa/palmtx.c
index 36ea32c1bbcc..1d06a8e91d8f 100644
--- a/arch/arm/mach-pxa/palmtx.c
+++ b/arch/arm/mach-pxa/palmtx.c
@@ -28,8 +28,7 @@
28#include <linux/wm97xx.h> 28#include <linux/wm97xx.h>
29#include <linux/power_supply.h> 29#include <linux/power_supply.h>
30#include <linux/usb/gpio_vbus.h> 30#include <linux/usb/gpio_vbus.h>
31#include <linux/mtd/rawnand.h> 31#include <linux/mtd/platnand.h>
32#include <linux/mtd/partitions.h>
33#include <linux/mtd/mtd.h> 32#include <linux/mtd/mtd.h>
34#include <linux/mtd/physmap.h> 33#include <linux/mtd/physmap.h>
35 34
diff --git a/arch/mips/alchemy/devboards/db1200.c b/arch/mips/alchemy/devboards/db1200.c
index 97dc74f7f41a..4bf02f96ab7f 100644
--- a/arch/mips/alchemy/devboards/db1200.c
+++ b/arch/mips/alchemy/devboards/db1200.c
@@ -29,8 +29,7 @@
29#include <linux/leds.h> 29#include <linux/leds.h>
30#include <linux/mmc/host.h> 30#include <linux/mmc/host.h>
31#include <linux/mtd/mtd.h> 31#include <linux/mtd/mtd.h>
32#include <linux/mtd/rawnand.h> 32#include <linux/mtd/platnand.h>
33#include <linux/mtd/partitions.h>
34#include <linux/platform_device.h> 33#include <linux/platform_device.h>
35#include <linux/serial_8250.h> 34#include <linux/serial_8250.h>
36#include <linux/spi/spi.h> 35#include <linux/spi/spi.h>
diff --git a/arch/mips/alchemy/devboards/db1300.c b/arch/mips/alchemy/devboards/db1300.c
index b813dc1c1682..ad7dd8e89598 100644
--- a/arch/mips/alchemy/devboards/db1300.c
+++ b/arch/mips/alchemy/devboards/db1300.c
@@ -19,8 +19,7 @@
19#include <linux/mmc/host.h> 19#include <linux/mmc/host.h>
20#include <linux/module.h> 20#include <linux/module.h>
21#include <linux/mtd/mtd.h> 21#include <linux/mtd/mtd.h>
22#include <linux/mtd/rawnand.h> 22#include <linux/mtd/platnand.h>
23#include <linux/mtd/partitions.h>
24#include <linux/platform_device.h> 23#include <linux/platform_device.h>
25#include <linux/smsc911x.h> 24#include <linux/smsc911x.h>
26#include <linux/wm97xx.h> 25#include <linux/wm97xx.h>
diff --git a/arch/mips/alchemy/devboards/db1550.c b/arch/mips/alchemy/devboards/db1550.c
index 65f6b7184fbe..7700ad0b93b4 100644
--- a/arch/mips/alchemy/devboards/db1550.c
+++ b/arch/mips/alchemy/devboards/db1550.c
@@ -13,8 +13,7 @@
13#include <linux/io.h> 13#include <linux/io.h>
14#include <linux/interrupt.h> 14#include <linux/interrupt.h>
15#include <linux/mtd/mtd.h> 15#include <linux/mtd/mtd.h>
16#include <linux/mtd/rawnand.h> 16#include <linux/mtd/platnand.h>
17#include <linux/mtd/partitions.h>
18#include <linux/platform_device.h> 17#include <linux/platform_device.h>
19#include <linux/pm.h> 18#include <linux/pm.h>
20#include <linux/spi/spi.h> 19#include <linux/spi/spi.h>
diff --git a/arch/mips/netlogic/xlr/platform-flash.c b/arch/mips/netlogic/xlr/platform-flash.c
index 4f76b85b44c9..cf9162284b07 100644
--- a/arch/mips/netlogic/xlr/platform-flash.c
+++ b/arch/mips/netlogic/xlr/platform-flash.c
@@ -19,8 +19,7 @@
19 19
20#include <linux/mtd/mtd.h> 20#include <linux/mtd/mtd.h>
21#include <linux/mtd/physmap.h> 21#include <linux/mtd/physmap.h>
22#include <linux/mtd/rawnand.h> 22#include <linux/mtd/platnand.h>
23#include <linux/mtd/partitions.h>
24 23
25#include <asm/netlogic/haldefs.h> 24#include <asm/netlogic/haldefs.h>
26#include <asm/netlogic/xlr/iomap.h> 25#include <asm/netlogic/xlr/iomap.h>
diff --git a/arch/mips/pnx833x/common/platform.c b/arch/mips/pnx833x/common/platform.c
index 33d0f070b33d..dafbf027fad0 100644
--- a/arch/mips/pnx833x/common/platform.c
+++ b/arch/mips/pnx833x/common/platform.c
@@ -30,8 +30,7 @@
30#include <linux/resource.h> 30#include <linux/resource.h>
31#include <linux/serial.h> 31#include <linux/serial.h>
32#include <linux/serial_pnx8xxx.h> 32#include <linux/serial_pnx8xxx.h>
33#include <linux/mtd/rawnand.h> 33#include <linux/mtd/platnand.h>
34#include <linux/mtd/partitions.h>
35 34
36#include <irq.h> 35#include <irq.h>
37#include <irq-mapping.h> 36#include <irq-mapping.h>
diff --git a/arch/mips/rb532/devices.c b/arch/mips/rb532/devices.c
index 02a9e042fb44..2b23ad640f39 100644
--- a/arch/mips/rb532/devices.c
+++ b/arch/mips/rb532/devices.c
@@ -20,9 +20,8 @@
20#include <linux/ctype.h> 20#include <linux/ctype.h>
21#include <linux/string.h> 21#include <linux/string.h>
22#include <linux/platform_device.h> 22#include <linux/platform_device.h>
23#include <linux/mtd/rawnand.h> 23#include <linux/mtd/platnand.h>
24#include <linux/mtd/mtd.h> 24#include <linux/mtd/mtd.h>
25#include <linux/mtd/partitions.h>
26#include <linux/gpio.h> 25#include <linux/gpio.h>
27#include <linux/gpio_keys.h> 26#include <linux/gpio_keys.h>
28#include <linux/input.h> 27#include <linux/input.h>
diff --git a/arch/sh/boards/mach-migor/setup.c b/arch/sh/boards/mach-migor/setup.c
index ebcc4d5a67ce..f4ad33c6d2aa 100644
--- a/arch/sh/boards/mach-migor/setup.c
+++ b/arch/sh/boards/mach-migor/setup.c
@@ -14,7 +14,7 @@
14#include <linux/mmc/host.h> 14#include <linux/mmc/host.h>
15#include <linux/mtd/physmap.h> 15#include <linux/mtd/physmap.h>
16#include <linux/mfd/tmio.h> 16#include <linux/mfd/tmio.h>
17#include <linux/mtd/rawnand.h> 17#include <linux/mtd/platnand.h>
18#include <linux/i2c.h> 18#include <linux/i2c.h>
19#include <linux/regulator/fixed.h> 19#include <linux/regulator/fixed.h>
20#include <linux/regulator/machine.h> 20#include <linux/regulator/machine.h>
diff --git a/drivers/mtd/nand/raw/plat_nand.c b/drivers/mtd/nand/raw/plat_nand.c
index 156c9150fec4..86c536ddaf24 100644
--- a/drivers/mtd/nand/raw/plat_nand.c
+++ b/drivers/mtd/nand/raw/plat_nand.c
@@ -15,8 +15,7 @@
15#include <linux/platform_device.h> 15#include <linux/platform_device.h>
16#include <linux/slab.h> 16#include <linux/slab.h>
17#include <linux/mtd/mtd.h> 17#include <linux/mtd/mtd.h>
18#include <linux/mtd/rawnand.h> 18#include <linux/mtd/platnand.h>
19#include <linux/mtd/partitions.h>
20 19
21struct plat_nand_data { 20struct plat_nand_data {
22 struct nand_chip chip; 21 struct nand_chip chip;
diff --git a/include/linux/mtd/platnand.h b/include/linux/mtd/platnand.h
new file mode 100644
index 000000000000..bc11eb6b593b
--- /dev/null
+++ b/include/linux/mtd/platnand.h
@@ -0,0 +1,74 @@
1/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * Copyright © 2000-2010 David Woodhouse <dwmw2@infradead.org>
4 * Steven J. Hill <sjhill@realitydiluted.com>
5 * Thomas Gleixner <tglx@linutronix.de>
6 *
7 * Contains all platform NAND related definitions.
8 */
9
10#ifndef __LINUX_MTD_PLATNAND_H
11#define __LINUX_MTD_PLATNAND_H
12
13#include <linux/mtd/partitions.h>
14#include <linux/mtd/rawnand.h>
15#include <linux/platform_device.h>
16
17/**
18 * struct platform_nand_chip - chip level device structure
19 * @nr_chips: max. number of chips to scan for
20 * @chip_offset: chip number offset
21 * @nr_partitions: number of partitions pointed to by partitions (or zero)
22 * @partitions: mtd partition list
23 * @chip_delay: R/B delay value in us
24 * @options: Option flags, e.g. 16bit buswidth
25 * @bbt_options: BBT option flags, e.g. NAND_BBT_USE_FLASH
26 * @part_probe_types: NULL-terminated array of probe types
27 */
28struct platform_nand_chip {
29 int nr_chips;
30 int chip_offset;
31 int nr_partitions;
32 struct mtd_partition *partitions;
33 int chip_delay;
34 unsigned int options;
35 unsigned int bbt_options;
36 const char **part_probe_types;
37};
38
39/**
40 * struct platform_nand_ctrl - controller level device structure
41 * @probe: platform specific function to probe/setup hardware
42 * @remove: platform specific function to remove/teardown hardware
43 * @dev_ready: platform specific function to read ready/busy pin
44 * @select_chip: platform specific chip select function
45 * @cmd_ctrl: platform specific function for controlling
46 * ALE/CLE/nCE. Also used to write command and address
47 * @write_buf: platform specific function for write buffer
48 * @read_buf: platform specific function for read buffer
49 * @priv: private data to transport driver specific settings
50 *
51 * All fields are optional and depend on the hardware driver requirements
52 */
53struct platform_nand_ctrl {
54 int (*probe)(struct platform_device *pdev);
55 void (*remove)(struct platform_device *pdev);
56 int (*dev_ready)(struct nand_chip *chip);
57 void (*select_chip)(struct nand_chip *chip, int cs);
58 void (*cmd_ctrl)(struct nand_chip *chip, int dat, unsigned int ctrl);
59 void (*write_buf)(struct nand_chip *chip, const uint8_t *buf, int len);
60 void (*read_buf)(struct nand_chip *chip, uint8_t *buf, int len);
61 void *priv;
62};
63
64/**
65 * struct platform_nand_data - container structure for platform-specific data
66 * @chip: chip level chip structure
67 * @ctrl: controller level device structure
68 */
69struct platform_nand_data {
70 struct platform_nand_chip chip;
71 struct platform_nand_ctrl ctrl;
72};
73
74#endif /* __LINUX_MTD_PLATNAND_H */
diff --git a/include/linux/mtd/rawnand.h b/include/linux/mtd/rawnand.h
index 8aa8b57ca4b1..04e11a314e9c 100644
--- a/include/linux/mtd/rawnand.h
+++ b/include/linux/mtd/rawnand.h
@@ -1540,66 +1540,6 @@ int nand_isbad_bbt(struct nand_chip *chip, loff_t offs, int allowbbt);
1540int nand_erase_nand(struct nand_chip *chip, struct erase_info *instr, 1540int nand_erase_nand(struct nand_chip *chip, struct erase_info *instr,
1541 int allowbbt); 1541 int allowbbt);
1542 1542
1543/**
1544 * struct platform_nand_chip - chip level device structure
1545 * @nr_chips: max. number of chips to scan for
1546 * @chip_offset: chip number offset
1547 * @nr_partitions: number of partitions pointed to by partitions (or zero)
1548 * @partitions: mtd partition list
1549 * @chip_delay: R/B delay value in us
1550 * @options: Option flags, e.g. 16bit buswidth
1551 * @bbt_options: BBT option flags, e.g. NAND_BBT_USE_FLASH
1552 * @part_probe_types: NULL-terminated array of probe types
1553 */
1554struct platform_nand_chip {
1555 int nr_chips;
1556 int chip_offset;
1557 int nr_partitions;
1558 struct mtd_partition *partitions;
1559 int chip_delay;
1560 unsigned int options;
1561 unsigned int bbt_options;
1562 const char **part_probe_types;
1563};
1564
1565/* Keep gcc happy */
1566struct platform_device;
1567
1568/**
1569 * struct platform_nand_ctrl - controller level device structure
1570 * @probe: platform specific function to probe/setup hardware
1571 * @remove: platform specific function to remove/teardown hardware
1572 * @dev_ready: platform specific function to read ready/busy pin
1573 * @select_chip: platform specific chip select function
1574 * @cmd_ctrl: platform specific function for controlling
1575 * ALE/CLE/nCE. Also used to write command and address
1576 * @write_buf: platform specific function for write buffer
1577 * @read_buf: platform specific function for read buffer
1578 * @priv: private data to transport driver specific settings
1579 *
1580 * All fields are optional and depend on the hardware driver requirements
1581 */
1582struct platform_nand_ctrl {
1583 int (*probe)(struct platform_device *pdev);
1584 void (*remove)(struct platform_device *pdev);
1585 int (*dev_ready)(struct nand_chip *chip);
1586 void (*select_chip)(struct nand_chip *chip, int cs);
1587 void (*cmd_ctrl)(struct nand_chip *chip, int dat, unsigned int ctrl);
1588 void (*write_buf)(struct nand_chip *chip, const uint8_t *buf, int len);
1589 void (*read_buf)(struct nand_chip *chip, uint8_t *buf, int len);
1590 void *priv;
1591};
1592
1593/**
1594 * struct platform_nand_data - container structure for platform-specific data
1595 * @chip: chip level chip structure
1596 * @ctrl: controller level device structure
1597 */
1598struct platform_nand_data {
1599 struct platform_nand_chip chip;
1600 struct platform_nand_ctrl ctrl;
1601};
1602
1603/* return the supported asynchronous timing mode. */ 1543/* return the supported asynchronous timing mode. */
1604static inline int onfi_get_async_timing_mode(struct nand_chip *chip) 1544static inline int onfi_get_async_timing_mode(struct nand_chip *chip)
1605{ 1545{