RTEMS 5.2
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
spi-memdrv.h
1/*===============================================================*\
2| Project: SPI driver for spi memory devices |
3+-----------------------------------------------------------------+
4| Copyright (c) 2008 |
5| Embedded Brains GmbH |
6| Obere Lagerstr. 30 |
7| D-82178 Puchheim |
8| Germany |
9| rtems@embedded-brains.de |
10+-----------------------------------------------------------------+
11| The license and distribution terms for this file may be |
12| found in the file LICENSE in this distribution or at |
13| |
14| http://www.rtems.org/license/LICENSE. |
15| |
16+-----------------------------------------------------------------+
17\*===============================================================*/
18
19
20#ifndef _LIBCHIP_SPI_MEMDRV_H
21#define _LIBCHIP_SPI_MEMDRV_H
22
23#include <rtems/libi2c.h>
24
25#ifdef __cplusplus
26extern "C" {
27#endif
28
29/*=========================================================================*\
30| Function: |
31\*-------------------------------------------------------------------------*/
32rtems_status_code spi_memdrv_write
33(
34/*-------------------------------------------------------------------------*\
35| Purpose: |
36| write a block of data to memory |
37+---------------------------------------------------------------------------+
38| Input Parameters: |
39\*-------------------------------------------------------------------------*/
40 rtems_device_major_number major, /* major device number */
41 rtems_device_major_number minor, /* minor device number */
42 void *arg /* ptr to write argument struct */
43 );
44/*-------------------------------------------------------------------------*\
45| Return Value: |
46| o = ok or error code |
47\*=========================================================================*/
48
49/*=========================================================================*\
50| Function: |
51\*-------------------------------------------------------------------------*/
52rtems_status_code spi_memdrv_read
53(
54/*-------------------------------------------------------------------------*\
55| Purpose: |
56| read a block of data from memory |
57+---------------------------------------------------------------------------+
58| Input Parameters: |
59\*-------------------------------------------------------------------------*/
60 rtems_device_major_number major, /* major device number */
61 rtems_device_major_number minor, /* minor device number */
62 void *arg /* ptr to read argument struct */
63 );
64/*-------------------------------------------------------------------------*\
65| Return Value: |
66| o = ok or error code |
67\*=========================================================================*/
68
69 typedef struct {
70 uint32_t baudrate; /* tfr rate, bits per second */
71 bool erase_before_program;
72 uint32_t empty_state; /* value of erased cells */
73 uint32_t page_size; /* programming page size in byte */
74 uint32_t sector_size; /* erase sector size in byte */
75 uint32_t mem_size; /* total capacity in byte */
77
78 typedef struct {
79 rtems_libi2c_drv_t libi2c_drv_entry; /* general i2c/spi params */
80 spi_memdrv_param_t spi_memdrv_param; /* private parameters */
82
83 extern rtems_driver_address_table spi_memdrv_rw_ops;
84 extern rtems_driver_address_table spi_memdrv_ro_ops;
85
86#ifdef __cplusplus
87}
88#endif
89
90#endif /* _LIBCHIP_SPI_MEMDRV_H */
rtems_status_code
Classic API Status.
Definition: status.h:43
Legacy I2C Library.
Definition: io.h:48
Definition: libi2c.h:297
Definition: spi-memdrv.h:69
Definition: spi-memdrv.h:78