MTD driver interface. More...

Detailed Description

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.

Definition at line 149 of file mtd.h.

#include <mtd.h>

Data Fields

int(* init )(mtd_dev_t *dev)
 Initialize Memory Technology Device (MTD) More...
 
int(* read )(mtd_dev_t *dev, void *buff, uint32_t addr, uint32_t size)
 Read from the Memory Technology Device (MTD) More...
 
int(* read_page )(mtd_dev_t *dev, void *buff, uint32_t page, uint32_t offset, uint32_t size)
 Read from the Memory Technology Device (MTD) using pagewise addressing. More...
 
int(* write )(mtd_dev_t *dev, const void *buff, uint32_t addr, uint32_t size)
 Write to the Memory Technology Device (MTD) More...
 
int(* write_page )(mtd_dev_t *dev, const void *buff, uint32_t page, uint32_t offset, uint32_t size)
 Write to the Memory Technology Device (MTD) using pagewise addressing. More...
 
int(* erase )(mtd_dev_t *dev, uint32_t addr, uint32_t size)
 Erase sector(s) over the Memory Technology Device (MTD) More...
 
int(* erase_sector )(mtd_dev_t *dev, uint32_t sector, uint32_t count)
 Erase sector(s) of the Memory Technology Device (MTD) More...
 
int(* power )(mtd_dev_t *dev, enum mtd_power_state power)
 Control power of Memory Technology Device (MTD) More...
 
uint8_t flags
 Properties of the MTD driver.
 

Field Documentation

◆ erase

int(* mtd_desc::erase) (mtd_dev_t *dev, uint32_t addr, uint32_t size)

Erase sector(s) over the Memory Technology Device (MTD)

addr must be aligned on a sector boundary. size must be a multiple of a sector size.

Parameters
[in]devPointer to the selected driver
[in]addrStarting address
[in]sizeNumber of bytes
Returns
0 on success
< 0 value on error

Definition at line 251 of file mtd.h.

◆ erase_sector

int(* mtd_desc::erase_sector) (mtd_dev_t *dev, uint32_t sector, uint32_t count)

Erase sector(s) of the Memory Technology Device (MTD)

Parameters
[in]devPointer to the selected driver
[in]sectorthe first sector number to erase
[in]countNumber of sectors to erase
Returns
0 on success
< 0 value on error

Definition at line 266 of file mtd.h.

◆ init

int(* mtd_desc::init) (mtd_dev_t *dev)

Initialize Memory Technology Device (MTD)

Parameters
[in]devPointer to the selected driver
Returns
0 on success
< 0 value in error

Definition at line 158 of file mtd.h.

◆ power

int(* mtd_desc::power) (mtd_dev_t *dev, enum mtd_power_state power)

Control power of Memory Technology Device (MTD)

Parameters
[in]devPointer to the selected driver
[in]powerPower state to apply (from mtd_power_state)
Returns
0 on success
< 0 value on error

Definition at line 279 of file mtd.h.

◆ read

int(* mtd_desc::read) (mtd_dev_t *dev, void *buff, uint32_t addr, uint32_t size)

Read from the Memory Technology Device (MTD)

No alignment is required on addr and size.

Parameters
[in]devPointer to the selected driver
[out]buffPointer to the data buffer to store read data
[in]addrStarting address
[in]sizeNumber of bytes
Returns
0 on success
< 0 value on error

Definition at line 173 of file mtd.h.

◆ read_page

int(* mtd_desc::read_page) (mtd_dev_t *dev, void *buff, uint32_t page, uint32_t offset, uint32_t size)

Read from the Memory Technology Device (MTD) using pagewise addressing.

offset should not exceed the page size

Parameters
[in]devPointer to the selected driver
[out]buffPointer to the data buffer to store read data
[in]pagePage number to start reading from
[in]offsetByte offset from the start of the page
[in]sizeNumber of bytes
Returns
number of bytes read on success
< 0 value on error

Definition at line 193 of file mtd.h.

◆ write

int(* mtd_desc::write) (mtd_dev_t *dev, const void *buff, uint32_t addr, uint32_t size)

Write to the Memory Technology Device (MTD)

addr + size must be inside a page boundary. addr can be anywhere but the buffer cannot overlap two pages.

Parameters
[in]devPointer to the selected driver
[in]buffPointer to the data to be written
[in]addrStarting address
[in]sizeNumber of bytes
Returns
0 on success
< 0 value on error

Definition at line 213 of file mtd.h.

◆ write_page

int(* mtd_desc::write_page) (mtd_dev_t *dev, const void *buff, uint32_t page, uint32_t offset, uint32_t size)

Write to the Memory Technology Device (MTD) using pagewise addressing.

offset should not exceed the page size

Parameters
[in]devPointer to the selected driver
[out]buffPointer to the data to be written
[in]pagePage number to start writing to
[in]offsetByte offset from the start of the page
[in]sizeNumber of bytes
Returns
bytes written on success
< 0 value on error

Definition at line 233 of file mtd.h.


The documentation for this struct was generated from the following file: