RTEMS  5.1
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
26 extern "C" {
27 #endif
28 
29 /*=========================================================================*\
30 | Function: |
31 \*-------------------------------------------------------------------------*/
32 rtems_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 \*-------------------------------------------------------------------------*/
52 rtems_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 */
81  } spi_memdrv_t;
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 */
Definition: io.h:48
rtems_status_code
Classic API Status.
Definition: status.h:43
Definition: spi-memdrv.h:78
Definition: libi2c.h:296
Legacy I2C Library.
Definition: spi-memdrv.h:69