11
#include <drivers/omap_gpmc.h>
12
#include <drivers/gpmc.h>
13
#include <drivers/mtd/nand.h>
15
#include <embox/unit.h>
17
EMBOX_UNIT_INIT(gpmc_nand_init);
19
static int gpmc_nand_write(uint8_t cmd, uint32_t addr, uint32_t data) {
20
log_debug("Not implemented!");
24
static int gpmc_nand_read(uint8_t cmd, uint32_t addr, uint32_t *data) {
25
log_debug("Not implemented!");
29
static const struct nand_dev_ops gpmc_nand_dev_ops = {
30
.nand_write = gpmc_nand_write,
31
.nand_read = gpmc_nand_read
34
int gpmc_nand_init(void) {
37
for (i = 0; i < GPMC_CS_NUM; i++) {
41
if (gpmc_cs_enabled(i)) {
42
log_info("gpmc cs %d inited\n",i);
43
gpmc_cs_init(i, &base, 0x1000000);
46
gpmc_cs_reg_write(i, GPMC_CS_NAND_ADDRESS, 0x0);
47
gpmc_cs_reg_write(i, GPMC_CS_NAND_COMMAND, NAND_CMD_READID);
48
id = gpmc_cs_reg_read(i, GPMC_CS_NAND_DATA);
50
log_info("create nand flash on cs %d id 0x%X\n",i , id);
51
nand_create("gpmc_nand", &gpmc_nand_dev_ops);