embox

Форк
0
56 строк · 1.1 Кб
1
/**
2
 * @file
3
 *
4
 * @date Jul 30, 2018
5
 * @author Anton Bondarev
6
 */
7
#include <util/log.h>
8

9
#include <stdint.h>
10

11
#include <drivers/omap_gpmc.h>
12
#include <drivers/gpmc.h>
13
#include <drivers/mtd/nand.h>
14

15
#include <embox/unit.h>
16

17
EMBOX_UNIT_INIT(gpmc_nand_init);
18

19
static int gpmc_nand_write(uint8_t cmd, uint32_t addr, uint32_t data) {
20
	log_debug("Not implemented!");
21
	return 0;
22
}
23

24
static int gpmc_nand_read(uint8_t cmd, uint32_t addr, uint32_t *data) {
25
	log_debug("Not implemented!");
26
	return 0;
27
}
28

29
static const struct nand_dev_ops gpmc_nand_dev_ops = {
30
	.nand_write = gpmc_nand_write,
31
	.nand_read = gpmc_nand_read
32
};
33

34
int gpmc_nand_init(void) {
35
	int i;
36

37
	for (i = 0; i < GPMC_CS_NUM; i++) {
38
		uint32_t id;
39
		uint32_t base;
40

41
		if (gpmc_cs_enabled(i)) {
42
			log_info("gpmc cs %d inited\n",i);
43
			gpmc_cs_init(i, &base, 0x1000000);
44
		}
45

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);
49
		if (id != 0) {
50
			log_info("create nand flash on cs %d id 0x%X\n",i , id);
51
			nand_create("gpmc_nand", &gpmc_nand_dev_ops);
52
		}
53
	}
54

55
	return 0;
56
}
57

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.