Merge tag 'arc-5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc
[linux-2.6-microblaze.git] / include / linux / mtd / rawnand.h
index 4ab9bcc..1e76196 100644 (file)
@@ -1064,6 +1064,8 @@ struct nand_legacy {
  * @lock:              lock protecting the suspended field. Also used to
  *                     serialize accesses to the NAND device.
  * @suspended:         set to 1 when the device is suspended, 0 when it's not.
+ * @suspend:           [REPLACEABLE] specific NAND device suspend operation
+ * @resume:            [REPLACEABLE] specific NAND device resume operation
  * @bbt:               [INTERN] bad block table pointer
  * @bbt_td:            [REPLACEABLE] bad block table descriptor for flash
  *                     lookup.
@@ -1077,6 +1079,8 @@ struct nand_legacy {
  * @manufacturer:      [INTERN] Contains manufacturer information
  * @manufacturer.desc: [INTERN] Contains manufacturer's description
  * @manufacturer.priv: [INTERN] Contains manufacturer private information
+ * @lock_area:         [REPLACEABLE] specific NAND chip lock operation
+ * @unlock_area:       [REPLACEABLE] specific NAND chip unlock operation
  */
 
 struct nand_chip {
@@ -1117,6 +1121,8 @@ struct nand_chip {
 
        struct mutex lock;
        unsigned int suspended : 1;
+       int (*suspend)(struct nand_chip *chip);
+       void (*resume)(struct nand_chip *chip);
 
        uint8_t *oob_poi;
        struct nand_controller *controller;
@@ -1136,6 +1142,9 @@ struct nand_chip {
                const struct nand_manufacturer *desc;
                void *priv;
        } manufacturer;
+
+       int (*lock_area)(struct nand_chip *chip, loff_t ofs, uint64_t len);
+       int (*unlock_area)(struct nand_chip *chip, loff_t ofs, uint64_t len);
 };
 
 extern const struct mtd_ooblayout_ops nand_ooblayout_sp_ops;
@@ -1215,7 +1224,7 @@ static inline struct device_node *nand_get_flash_node(struct nand_chip *chip)
  * struct nand_flash_dev - NAND Flash Device ID Structure
  * @name: a human-readable name of the NAND chip
  * @dev_id: the device ID (the second byte of the full chip ID array)
- * @mfr_id: manufecturer ID part of the full chip ID array (refers the same
+ * @mfr_id: manufacturer ID part of the full chip ID array (refers the same
  *          memory address as ``id[0]``)
  * @dev_id: device ID part of the full chip ID array (refers the same memory
  *          address as ``id[1]``)