source: rtems/bsps/powerpc/include/mpc83xx/mpc83xx_spidrv.h @ e560ee85

Last change on this file since e560ee85 was e560ee85, checked in by Joel Sherrill <joel@…>, on 03/01/22 at 21:38:55

bsps/powerpc/: Scripted embedded brains header file clean up

Updates #4625.

  • Property mode set to 100644
File size: 9.4 KB
Line 
1/*===============================================================*\
2| Project: RTEMS support for MPC83xx                              |
3+-----------------------------------------------------------------+
4|                    Copyright (c) 2007                           |
5|                    embedded brains GmbH                         |
6|                    Obere Lagerstr. 30                           |
7|                    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| this file contains the MPC83xx SPI driver declarations          |
18| NOTE: this driver has the same API as a I2C driver              |
19\*===============================================================*/
20#ifndef _MPC83XX_SPIDRV_H
21#define _MPC83XX_SPIDRV_H
22
23#include <mpc83xx/mpc83xx.h>
24#include <rtems/libi2c.h>
25#include <rtems/irq.h>
26
27#ifdef __cplusplus
28extern "C" {
29#endif
30
31typedef struct mpc83xx_spi_softc {
32  m83xxSPIRegisters_t *reg_ptr;
33  int                  initialized;
34  rtems_irq_number     irq_number;
35  uint32_t             base_frq;    /* input frq for baud rate divider */
36  rtems_id             irq_sema_id;
37  uint32_t             curr_addr; /* current spi address */
38  uint32_t             idle_char;
39  uint8_t              bytes_per_char;
40  uint8_t              bit_shift;
41} mpc83xx_spi_softc_t ;
42
43typedef struct {
44  rtems_libi2c_bus_t  bus_desc;
45  mpc83xx_spi_softc_t softc;
46} mpc83xx_spi_desc_t;
47
48/*=========================================================================*\
49| Function:                                                                 |
50\*-------------------------------------------------------------------------*/
51rtems_status_code mpc83xx_spi_init
52(
53/*-------------------------------------------------------------------------*\
54| Purpose:                                                                  |
55|   initialize the driver                                                   |
56+---------------------------------------------------------------------------+
57| Input Parameters:                                                         |
58\*-------------------------------------------------------------------------*/
59 rtems_libi2c_bus_t *bh                  /* bus specifier structure        */
60 );
61/*-------------------------------------------------------------------------*\
62| Return Value:                                                             |
63|    o = ok or error code                                                   |
64\*=========================================================================*/
65
66/*=========================================================================*\
67| Function:                                                                 |
68\*-------------------------------------------------------------------------*/
69int mpc83xx_spi_read_write_bytes
70(
71/*-------------------------------------------------------------------------*\
72| Purpose:                                                                  |
73|   transmit/receive some bytes from SPI device                             |
74+---------------------------------------------------------------------------+
75| Input Parameters:                                                         |
76\*-------------------------------------------------------------------------*/
77 rtems_libi2c_bus_t *bh,                 /* bus specifier structure        */
78 unsigned char *rbuf,                    /* buffer to store bytes          */
79 const unsigned char *tbuf,              /* buffer to send  bytes          */
80 int len                                 /* number of bytes to transceive  */
81 );
82/*-------------------------------------------------------------------------*\
83| Return Value:                                                             |
84|    number of bytes received or (negative) error code                      |
85\*=========================================================================*/
86
87/*=========================================================================*\
88| Function:                                                                 |
89\*-------------------------------------------------------------------------*/
90int mpc83xx_spi_read_bytes
91(
92/*-------------------------------------------------------------------------*\
93| Purpose:                                                                  |
94|   receive some bytes from SPI device                                      |
95+---------------------------------------------------------------------------+
96| Input Parameters:                                                         |
97\*-------------------------------------------------------------------------*/
98 rtems_libi2c_bus_t *bh,                 /* bus specifier structure        */
99 unsigned char *buf,                     /* buffer to store bytes          */
100 int len                                 /* number of bytes to receive     */
101 );
102/*-------------------------------------------------------------------------*\
103| Return Value:                                                             |
104|    number of bytes received or (negative) error code                      |
105\*=========================================================================*/
106
107/*=========================================================================*\
108| Function:                                                                 |
109\*-------------------------------------------------------------------------*/
110int mpc83xx_spi_write_bytes
111(
112/*-------------------------------------------------------------------------*\
113| Purpose:                                                                  |
114|   send some bytes to SPI device                                           |
115+---------------------------------------------------------------------------+
116| Input Parameters:                                                         |
117\*-------------------------------------------------------------------------*/
118 rtems_libi2c_bus_t *bh,                 /* bus specifier structure        */
119 unsigned char *buf,                     /* buffer to send                 */
120 int len                                 /* number of bytes to send        */
121
122 );
123/*-------------------------------------------------------------------------*\
124| Return Value:                                                             |
125|    number of bytes sent or (negative) error code                          |
126\*=========================================================================*/
127
128/*=========================================================================*\
129| Function:                                                                 |
130\*-------------------------------------------------------------------------*/
131rtems_status_code mpc83xx_spi_set_tfr_mode
132(
133/*-------------------------------------------------------------------------*\
134| Purpose:                                                                  |
135|   set SPI to desired baudrate/clock mode/character mode                   |
136+---------------------------------------------------------------------------+
137| Input Parameters:                                                         |
138\*-------------------------------------------------------------------------*/
139 rtems_libi2c_bus_t *bh,                 /* bus specifier structure        */
140 const rtems_libi2c_tfr_mode_t *tfr_mode /* transfer mode info             */
141 );
142/*-------------------------------------------------------------------------*\
143| Return Value:                                                             |
144|    rtems_status_code                                                      |
145\*=========================================================================*/
146
147/*=========================================================================*\
148| Function:                                                                 |
149\*-------------------------------------------------------------------------*/
150int mpc83xx_spi_ioctl
151(
152/*-------------------------------------------------------------------------*\
153| Purpose:                                                                  |
154|   perform selected ioctl function for SPI                                 |
155+---------------------------------------------------------------------------+
156| Input Parameters:                                                         |
157\*-------------------------------------------------------------------------*/
158 rtems_libi2c_bus_t *bh,                 /* bus specifier structure        */
159 int                 cmd,                /* ioctl command code             */
160 void               *arg                 /* additional argument array      */
161 );
162/*-------------------------------------------------------------------------*\
163| Return Value:                                                             |
164|    rtems_status_code                                                      |
165\*=========================================================================*/
166
167#ifdef __cplusplus
168}
169#endif
170
171
172#endif /* _MPC83XX_I2CDRV_H */
Note: See TracBrowser for help on using the repository browser.