coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
flash_controller_common.h
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-only */
2
3
#ifndef __SOC_MEDIATEK_COMMON_FLASH_CONTROLLER_COMMON_H__
4
#define __SOC_MEDIATEK_COMMON_FLASH_CONTROLLER_COMMON_H__
5
6
#include <
spi-generic.h
>
7
#include <
stdint.h
>
8
#include <soc/addressmap.h>
9
10
enum
{
11
SFLASH_POLLINGREG_US
= 500000,
12
SFLASH_WRBUF_SIZE
= 128,
13
SFLASHNAME_LENGTH
= 16,
14
SFLASH_WRITE_IN_PROGRESS
= 1,
15
SFLASH_COMMAND_ENABLE
= 0x30,
16
SFLASH_DMA_ALIGN
= 0x10,
17
18
/* NOR flash controller commands */
19
SFLASH_RD_TRIGGER
= 1 << 0,
20
SFLASH_READSTATUS
= 1 << 1,
21
SFLASH_PRG_CMD
= 1 << 2,
22
SFLASH_WR_TRIGGER
= 1 << 4,
23
SFLASH_WRITESTATUS
= 1 << 5,
24
SFLASH_AUTOINC
= 1 << 7,
25
/* NOR flash commands */
26
SFLASH_OP_WREN
= 0x6,
27
SECTOR_ERASE_CMD
= 0x20,
28
SFLASH_UNPROTECTED
= 0x0,
29
/* DMA commands */
30
SFLASH_DMA_TRIGGER
= 1 << 0,
31
SFLASH_DMA_SW_RESET
= 1 << 1,
32
SFLASH_DMA_WDLE_EN
= 1 << 2,
33
/* Dual mode */
34
SFLASH_READ_DUAL_EN
= 0x1,
35
SFLASH_1_1_2_READ
= 0x3b
36
};
37
38
/* register Offset */
39
struct
mtk_nor_regs
{
40
u32
cmd
;
41
u32
cnt
;
42
u32
rdsr
;
43
u32
rdata
;
44
u32
radr
[3];
45
u32
wdata
;
46
u32
prgdata
[6];
47
u32
shreg
[10];
48
u32
cfg
[2];
49
u32
shreg10
;
50
u32
status
[5];
51
u32
timing
;
52
u32
flash_cfg
;
53
u32
reserved2
[3];
54
u32
sf_time
;
55
u32
reserved3
;
56
u32
diff_addr
;
57
u32
del_sel
[2];
58
u32
intrstus
;
59
u32
intren
;
60
u32
pp_ctl
;
61
u32
cfg3
;
62
u32
chksum_ctl
;
63
u32
chksum
;
64
u32
aaicmd
;
65
u32
wrprot
;
66
u32
radr3
;
67
u32
read_dual
;
68
u32
delsel
[3];
69
u32
reserved
[397];
70
u32
cfg1_bri
[2];
71
u32
fdma_ctl
;
72
u32
fdma_fadr
;
73
u32
fdma_dadr
;
74
u32
fdma_end_dadr
;
75
};
76
check_member
(
mtk_nor_regs
, fdma_end_dadr, 0x724);
77
78
int
mtk_spi_flash_probe
(
const
struct
spi_slave
*spi,
struct
spi_flash
*flash);
79
80
#endif
/* __SOC_MEDIATEK_COMMON_FLASH_CONTROLLER_COMMON_H__ */
check_member
check_member(mtk_nor_regs, fdma_end_dadr, 0x724)
SFLASH_READSTATUS
@ SFLASH_READSTATUS
Definition:
flash_controller_common.h:20
SFLASH_AUTOINC
@ SFLASH_AUTOINC
Definition:
flash_controller_common.h:24
SFLASH_WRITESTATUS
@ SFLASH_WRITESTATUS
Definition:
flash_controller_common.h:23
SFLASH_OP_WREN
@ SFLASH_OP_WREN
Definition:
flash_controller_common.h:26
SFLASHNAME_LENGTH
@ SFLASHNAME_LENGTH
Definition:
flash_controller_common.h:13
SFLASH_UNPROTECTED
@ SFLASH_UNPROTECTED
Definition:
flash_controller_common.h:28
SFLASH_DMA_ALIGN
@ SFLASH_DMA_ALIGN
Definition:
flash_controller_common.h:16
SFLASH_COMMAND_ENABLE
@ SFLASH_COMMAND_ENABLE
Definition:
flash_controller_common.h:15
SFLASH_PRG_CMD
@ SFLASH_PRG_CMD
Definition:
flash_controller_common.h:21
SFLASH_DMA_TRIGGER
@ SFLASH_DMA_TRIGGER
Definition:
flash_controller_common.h:30
SECTOR_ERASE_CMD
@ SECTOR_ERASE_CMD
Definition:
flash_controller_common.h:27
SFLASH_READ_DUAL_EN
@ SFLASH_READ_DUAL_EN
Definition:
flash_controller_common.h:34
SFLASH_DMA_SW_RESET
@ SFLASH_DMA_SW_RESET
Definition:
flash_controller_common.h:31
SFLASH_WRBUF_SIZE
@ SFLASH_WRBUF_SIZE
Definition:
flash_controller_common.h:12
SFLASH_RD_TRIGGER
@ SFLASH_RD_TRIGGER
Definition:
flash_controller_common.h:19
SFLASH_1_1_2_READ
@ SFLASH_1_1_2_READ
Definition:
flash_controller_common.h:35
SFLASH_DMA_WDLE_EN
@ SFLASH_DMA_WDLE_EN
Definition:
flash_controller_common.h:32
SFLASH_POLLINGREG_US
@ SFLASH_POLLINGREG_US
Definition:
flash_controller_common.h:11
SFLASH_WR_TRIGGER
@ SFLASH_WR_TRIGGER
Definition:
flash_controller_common.h:22
SFLASH_WRITE_IN_PROGRESS
@ SFLASH_WRITE_IN_PROGRESS
Definition:
flash_controller_common.h:14
mtk_spi_flash_probe
int mtk_spi_flash_probe(const struct spi_slave *spi, struct spi_flash *flash)
Definition:
flash_controller.c:212
spi-generic.h
stdint.h
u32
uint32_t u32
Definition:
stdint.h:51
mtk_nor_regs
Definition:
flash_controller_common.h:39
mtk_nor_regs::del_sel
u32 del_sel[2]
Definition:
flash_controller_common.h:57
mtk_nor_regs::shreg10
u32 shreg10
Definition:
flash_controller_common.h:49
mtk_nor_regs::read_dual
u32 read_dual
Definition:
flash_controller_common.h:67
mtk_nor_regs::cmd
u32 cmd
Definition:
flash_controller_common.h:40
mtk_nor_regs::radr
u32 radr[3]
Definition:
flash_controller_common.h:44
mtk_nor_regs::fdma_dadr
u32 fdma_dadr
Definition:
flash_controller_common.h:73
mtk_nor_regs::cnt
u32 cnt
Definition:
flash_controller_common.h:41
mtk_nor_regs::prgdata
u32 prgdata[6]
Definition:
flash_controller_common.h:46
mtk_nor_regs::flash_cfg
u32 flash_cfg
Definition:
flash_controller_common.h:52
mtk_nor_regs::diff_addr
u32 diff_addr
Definition:
flash_controller_common.h:56
mtk_nor_regs::rdata
u32 rdata
Definition:
flash_controller_common.h:43
mtk_nor_regs::sf_time
u32 sf_time
Definition:
flash_controller_common.h:54
mtk_nor_regs::fdma_end_dadr
u32 fdma_end_dadr
Definition:
flash_controller_common.h:74
mtk_nor_regs::intrstus
u32 intrstus
Definition:
flash_controller_common.h:58
mtk_nor_regs::aaicmd
u32 aaicmd
Definition:
flash_controller_common.h:64
mtk_nor_regs::wdata
u32 wdata
Definition:
flash_controller_common.h:45
mtk_nor_regs::fdma_ctl
u32 fdma_ctl
Definition:
flash_controller_common.h:71
mtk_nor_regs::cfg
u32 cfg[2]
Definition:
flash_controller_common.h:48
mtk_nor_regs::chksum
u32 chksum
Definition:
flash_controller_common.h:63
mtk_nor_regs::status
u32 status[5]
Definition:
flash_controller_common.h:50
mtk_nor_regs::chksum_ctl
u32 chksum_ctl
Definition:
flash_controller_common.h:62
mtk_nor_regs::wrprot
u32 wrprot
Definition:
flash_controller_common.h:65
mtk_nor_regs::intren
u32 intren
Definition:
flash_controller_common.h:59
mtk_nor_regs::rdsr
u32 rdsr
Definition:
flash_controller_common.h:42
mtk_nor_regs::cfg3
u32 cfg3
Definition:
flash_controller_common.h:61
mtk_nor_regs::cfg1_bri
u32 cfg1_bri[2]
Definition:
flash_controller_common.h:70
mtk_nor_regs::pp_ctl
u32 pp_ctl
Definition:
flash_controller_common.h:60
mtk_nor_regs::reserved2
u32 reserved2[3]
Definition:
flash_controller_common.h:53
mtk_nor_regs::delsel
u32 delsel[3]
Definition:
flash_controller_common.h:68
mtk_nor_regs::shreg
u32 shreg[10]
Definition:
flash_controller_common.h:47
mtk_nor_regs::radr3
u32 radr3
Definition:
flash_controller_common.h:66
mtk_nor_regs::fdma_fadr
u32 fdma_fadr
Definition:
flash_controller_common.h:72
mtk_nor_regs::reserved3
u32 reserved3
Definition:
flash_controller_common.h:55
mtk_nor_regs::reserved
u32 reserved[397]
Definition:
flash_controller_common.h:69
mtk_nor_regs::timing
u32 timing
Definition:
flash_controller_common.h:51
spi_flash
Definition:
spi_flash.h:83
spi_slave
Definition:
spi-generic.h:40
src
soc
mediatek
common
include
soc
flash_controller_common.h
Generated by
1.9.1