sdk-hwV1.3/lichee/linux-4.9/drivers/mtd/awnand/spinand/sunxi-spinand.h

50 lines
1.2 KiB
C

/* SPDX-License-Identifier: GPL-2.0 */
#ifndef __SUNXI_SPINAND_H
#define __SUNXI_SPINAND_H
#include <linux/mtd/aw-spinand.h>
#include <linux/mtd/mtd.h>
#include <linux/mutex.h>
#define SECTOR_SHIFT 9
#define AW_MTD_SPINAND_VER_MAIN 0x02
#define AW_MTD_SPINAND_VER_SUB 0x05
#define AW_MTD_SPINAND_VER_DATE 0x20230828
#define UBOOT_START_BLOCK_BIGNAND 4
#define UBOOT_START_BLOCK_SMALLNAND 8
#define PHY_BLKS_FOR_BOOT0 8
#define PHY_BLKS_FOR_SECURE_STORAGE 8
#define PSTORE_SIZE_KB 512
#define NAND_BOOT0_BLK_START 0
#define VALID_PAGESIZE_FOR_BOOT0 2048
#define AW_SAMP_MODE_DL_DEFAULT 0xaaaaffff
struct aw_spinand {
struct mutex lock;
struct aw_spinand_chip chip;
struct mtd_info mtd;
int sector_shift;
int page_shift;
int block_shift;
int phy_page_shift;
int phy_block_shift;
#if IS_ENABLED(CONFIG_AW_SPINAND_SECURE_STORAGE)
struct aw_spinand_sec_sto sec_sto;
#endif
unsigned int right_sample_delay;
unsigned int right_sample_mode;
};
extern struct aw_spinand *get_aw_spinand(void);
extern uint64_t get_sys_part_offset(void);
#define spinand_to_mtd(spinand) (&spinand->mtd)
#define spinand_to_chip(spinand) (&spinand->chip)
#define mtd_to_spinand(mtd) container_of(mtd, struct aw_spinand, mtd)
#define spi_to_spinand(spi) spi_get_drvdata(spi)
#endif