37 lines
1.1 KiB
C
37 lines
1.1 KiB
C
/*
|
|
* Контракт аппаратного доступа к NAND: команды, адреса, данные и ожидание готовности. Один
|
|
* octet хранится в целом типе, чтобы восемь значащих бит оставались переносимыми на C28x с
|
|
* 16-битным char.
|
|
*/
|
|
|
|
#ifndef PARALLEL_NAND_PORT_H
|
|
#define PARALLEL_NAND_PORT_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* Один octet хранится в целом типе: это важно для C28x с 16-битным char. */
|
|
typedef unsigned short pnand_octet_t;
|
|
|
|
typedef struct {
|
|
int (*init)(void);
|
|
void (*select)(void);
|
|
void (*deselect)(void);
|
|
void (*write_command)(pnand_octet_t value);
|
|
void (*write_address)(pnand_octet_t value);
|
|
void (*write_data)(pnand_octet_t value);
|
|
pnand_octet_t (*read_data)(void);
|
|
int (*is_ready)(void);
|
|
void (*set_write_protect)(int enabled);
|
|
void (*delay_us)(unsigned long us);
|
|
/* Nonzero only when set_write_protect(0) physically releases WP#. */
|
|
int write_supported;
|
|
} parallel_nand_port_t;
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|