mtd.h¶
-
enum
mtd_power_state¶ - MTD_POWER_UP
- Power up.
- MTD_POWER_DOWN
- Power down.
-
struct mtd_desc
mtd_desc_t¶ MTD driver interface.
This define the functions to access a MTD.
A MTD is composed of pages combined into sectors. A sector is the smallest erasable unit. The number of pages in a sector must be constant for the whole MTD.
The erase operation is available only for entire sectors.
-
const
vfs.h::vfs_file_ops_tmtd_vfs_ops¶ MTD driver for VFS.
-
int
mtd_init(mtd_dev_t * mtd)¶ mtd_init Initialize a MTD device
Parameters
mtd: the device to initialize Return values
-
int
mtd_read(mtd_dev_t * mtd, void * dest, uint32_t addr, uint32_t count)¶ mtd_read Read data from a MTD device
No alignment is required on
addrandcount.Parameters
mtd: the device to read from dest: the buffer to fill in addr: the start address to read from count: the number of bytes to read Return values
- the number of byte actually read
- < 0 if an error occured
- -ENODEV if
mtdis not a valid device - -ENOTSUP if operation is not supported on
mtd - -EOVERFLOW if
addrorcountare not valid, i.e. outside memory - -EIO if I/O error occured
-
int
mtd_write(mtd_dev_t * mtd, const void * src, uint32_t addr, uint32_t count)¶ mtd_read write data to a MTD device
addr+countmust be inside a page boundary.addrcan be anywhere but the buffer cannot overlap two pages.Parameters
mtd: the device to write to src: the buffer to write addr: the start address to write to count: the number of bytes to write Return values
- the number of byte actually written
- < 0 if an error occured
- -ENODEV if
mtdis not a valid device - -ENOTSUP if operation is not supported on
mtd - -EOVERFLOW if
addrorcountare not valid, i.e. outside memory, or overlapping two pages - -EIO if I/O error occured
-
int
mtd_erase(mtd_dev_t * mtd, uint32_t addr, uint32_t count)¶ mtd_erase Erase sectors of a MTD device
addrmust be aligned on a sector boundary.countmust be a multiple of a sector size.Parameters
mtd: the device to erase addr: the address of the first sector to erase count: the number of bytes to erase Return values
- 0 if erase successful
- < 0 if an error occured
- -ENODEV if
mtdis not a valid device - -ENOTSUP if operation is not supported on
mtd - -EOVERFLOW if
addrorcountare not valid, i.e. outside memory - -EIO if I/O error occured
-
int
mtd_power(mtd_dev_t * mtd, enummtd.h::mtd_power_statepower)¶ mtd_power Set power mode on a MTD device
Parameters
mtd: the device to access power: the power mode to set Return values
- 0 if power mode successfully set
- < 0 if an error occured
- -ENODEV if
mtdis not a valid device - -ENOTSUP if operation or
powerstate is not supported onmtd - -EIO if I/O error occured
-
struct
mtd_dev_t¶ MTD device descriptor.
-
const
mtd.h::mtd_desc_t*driver¶ MTD driver.
-
uint32_t
sector_count¶ Number of sector in the MTD.
-
uint32_t
pages_per_sector¶ Number of pages by sector in the MTD.
-
uint32_t
page_size¶ Size of the pages in the MTD.
-
const
-
struct
mtd_desc¶ MTD driver interface.
This define the functions to access a MTD.
A MTD is composed of pages combined into sectors. A sector is the smallest erasable unit. The number of pages in a sector must be constant for the whole MTD.
The erase operation is available only for entire sectors.
-
int(*
init()¶ Initialize Memory Technology Device (MTD)
Parameters
dev: Pointer to the selected driver Return values
- 0 on success
- < 0 value in error
-
int(*
read()¶ Read from the Memory Technology Device (MTD)
No alignment is required on
addrandsize.Parameters
dev: Pointer to the selected driver buff: Pointer to the data buffer to store read data addr: Starting address size: Number of bytes Return values
- the number of bytes actually read
- < 0 value on error
-
int(*
write()¶ Write to the Memory Technology Device (MTD)
addr+sizemust be inside a page boundary.addrcan be anywhere but the buffer cannot overlap two pages.Parameters
dev: Pointer to the selected driver buff: Pointer to the data to be written addr: Starting address size: Number of bytes Return values
- the number of bytes actually written
- < 0 value on error
-
int(*
erase()¶ Erase sector(s) over the Memory Technology Device (MTD)
addrmust be aligned on a sector boundary.sizemust be a multiple of a sector size.Parameters
dev: Pointer to the selected driver addr: Starting address size: Number of bytes Return values
- 0 on success
- < 0 value on error
-
int(*
power()¶ Control power of Memory Technology Device (MTD)
Parameters
dev: Pointer to the selected driver power: Power state to apply (from mtd.h::mtd_power_state)Return values
- 0 on success
- < 0 value on error
-
int(*