/* SPDX-License-Identifier: GPL-2.0 */ #ifndef __LINUX_MTD_QINFO_H #define __LINUX_MTD_QINFO_H #include <linux/mtd/map.h> #include <linux/wait.h> #include <linux/spinlock.h> #include <linux/delay.h> #include <linux/mtd/mtd.h> #include <linux/mtd/flashchip.h> #include <linux/mtd/partitions.h> /* lpddr_private describes lpddr flash chip in memory map * @ManufactId - Chip Manufacture ID * @DevId - Chip Device ID * @qinfo - pointer to qinfo records describing the chip * @numchips - number of chips including virual RWW partitions * @chipshift - Chip/partition size 2^chipshift * @chips - per-chip data structure */ struct lpddr_private { uint16_t ManufactId; uint16_t DevId; struct qinfo_chip *qinfo; int numchips; unsigned long chipshift; struct flchip chips[0]; }; /* qinfo_query_info structure contains request information for * each qinfo record * @major - major number of qinfo record * @major - minor number of qinfo record * @id_str - descriptive string to access the record * @desc - detailed description for the qinfo record */ struct qinfo_query_info { uint8_t major; uint8_t minor; char *id_str; char *desc; }; /* * qinfo_chip structure contains necessary qinfo records data * @DevSizeShift - Device size 2^n bytes * @BufSizeShift - Program buffer size 2^n bytes * @TotalBlocksNum - Total number of blocks * @UniformBlockSizeShift - Uniform block size 2^UniformBlockSizeShift bytes * @HWPartsNum - Number of hardware partitions * @SuspEraseSupp - Suspend erase supported * @SingleWordProgTime - Single word program 2^SingleWordProgTime u-sec * @ProgBufferTime - Program buffer write 2^ProgBufferTime u-sec * @BlockEraseTime - Block erase 2^BlockEraseTime m-sec */ struct qinfo_chip { /* General device info */ uint16_t DevSizeShift; uint16_t BufSizeShift; /* Erase block information */ uint16_t TotalBlocksNum; uint16_t UniformBlockSizeShift; /* Partition information */ uint16_t HWPartsNum; /* Optional features */ uint16_t SuspEraseSupp; /* Operation typical time */ uint16_t SingleWordProgTime; uint16_t ProgBufferTime; uint16_t BlockEraseTime; }; /* defines for fixup usage */ #define LPDDR_MFR_ANY 0xffff #define LPDDR_ID_ANY 0xffff #define NUMONYX_MFGR_ID 0x0089 #define R18_DEVICE_ID_1G 0x893c static inline map_word lpddr_build_cmd(u_long cmd, struct map_info *map) { map_word val = { {0} }; val.x[0] = cmd; return val; } #define CMD(x) lpddr_build_cmd(x, map) #define CMDVAL(cmd) cmd.x[0] struct mtd_info *lpddr_cmdset(struct map_info *); #endif
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
bbm.h | File | 5.84 KB | 0644 |
|
blktrans.h | File | 2.81 KB | 0644 |
|
cfi.h | File | 10.31 KB | 0644 |
|
cfi_endian.h | File | 2.13 KB | 0644 |
|
concat.h | File | 1.14 KB | 0644 |
|
doc2000.h | File | 6.03 KB | 0644 |
|
flashchip.h | File | 3.08 KB | 0644 |
|
ftl.h | File | 2.49 KB | 0644 |
|
gen_probe.h | File | 1.26 KB | 0644 |
|
inftl.h | File | 1.56 KB | 0644 |
|
latch-addr-flash.h | File | 716 B | 0644 |
|
lpc32xx_mlc.h | File | 531 B | 0644 |
|
lpc32xx_slc.h | File | 531 B | 0644 |
|
map.h | File | 13.37 KB | 0644 |
|
mtd.h | File | 19.05 KB | 0644 |
|
mtdram.h | File | 257 B | 0644 |
|
nand-gpio.h | File | 330 B | 0644 |
|
nand_bch.h | File | 1.56 KB | 0644 |
|
nand_ecc.h | File | 1.14 KB | 0644 |
|
ndfc.h | File | 2.2 KB | 0644 |
|
nftl.h | File | 2.35 KB | 0644 |
|
onenand.h | File | 7.87 KB | 0644 |
|
onenand_regs.h | File | 7.15 KB | 0644 |
|
partitions.h | File | 3.75 KB | 0644 |
|
pfow.h | File | 5.56 KB | 0644 |
|
physmap.h | File | 1 KB | 0644 |
|
pismo.h | File | 440 B | 0644 |
|
plat-ram.h | File | 817 B | 0644 |
|
qinfo.h | File | 2.47 KB | 0644 |
|
rawnand.h | File | 41.17 KB | 0644 |
|
sh_flctl.h | File | 6.41 KB | 0644 |
|
sharpsl.h | File | 587 B | 0644 |
|
spear_smi.h | File | 1.67 KB | 0644 |
|
spi-nor.h | File | 14.28 KB | 0644 |
|
super.h | File | 835 B | 0644 |
|
ubi.h | File | 10.33 KB | 0644 |
|
xip.h | File | 2.66 KB | 0644 |
|