blob: fa245b45866bcff8bf13c9843ad83ba697053f52 [file] [log] [blame]
#ifndef AMLNAND_PHYDEV_H_INCLUDED
#define AMLNAND_PHYDEV_H_INCLUDED
#include "amlnf_dev.h"
/***nand CE/RB pinmux setting***/
#define AML_NAND_CE0 0xe
#define AML_NAND_CE1 0xd
#define AML_NAND_CE2 0xb
#define AML_NAND_CE3 0x7
#define CE_PAD_DEFAULT \
((AML_NAND_CE0) | \
(AML_NAND_CE1 << 4) | \
(AML_NAND_CE2 << 8) | \
(AML_NAND_CE3 << 12))
/*
#define RB_PAD_DEFAULT ((AML_NAND_CE0) | (AML_NAND_CE1 << 4))
*/
#define RB_PAD_DEFAULT (AML_NAND_CE0)
#define MAX_CHIP_NUM 4
#define PER_INFO_BYTE 8
/***nand device option***/
#define DEV_SLC_MODE (1<<0)
#define DEV_SERIAL_CHIP_MODE (0<<1)
#define DEV_MULTI_CHIP_MODE (1<<1)
#define DEV_MULTI_PLANE_MODE (1<<2)
#define DEV_SINGLE_PLANE_MODE (0<<2)
#define DEV_ECC_SOFT_MODE (1<<3)
#define DEV_ECC_HW_MODE (0<<3)
#define NAND_SHUT_DOWN (1 << 16)
#define NAND_CODE_OPTION (DEV_MULTI_PLANE_MODE | DEV_MULTI_CHIP_MODE)
#define NAND_DATA_OPTION (DEV_MULTI_PLANE_MODE | DEV_MULTI_CHIP_MODE)
/*
* Status for nand chip
*/
enum chip_state_t {
CHIP_READY,
CHIP_STATUS,
CHIP_ERASING,
CHIP_ERASE_SUSPENDING,
CHIP_ERASE_SUSPENDED,
CHIP_WRITING,
CHIP_WRITE_SUSPENDING,
CHIP_WRITE_SUSPENDED,
CHIP_PM_SUSPENDED,
CHIP_SYNCING,
CHIP_UNLOADING,
CHIP_LOCKING,
CHIP_UNLOCKING,
CHIP_POINT,
CHIP_SHUTDOWN,
CHIP_READING,
CHIP_RESETING,
CHIP_PREPARING_ERASE,
CHIP_VERIFYING_ERASE,
CHIP_UNKNOWN
};
extern int nandphy_init(u32 flag);
extern int amlphy_prepare(u32 flag);
#endif