source: rtems/c/src/lib/libcpu/powerpc/mpc55xx/include/dspi.h @ db21e1d

4.115
Last change on this file since db21e1d was db21e1d, checked in by Sebastian Huber <sebastian.huber@…>, on 04/03/13 at 10:05:49

bsp/mpc55xx: eDMA API changes

  • Property mode set to 100644
File size: 2.3 KB
Line 
1/**
2 * @file
3 *
4 * @ingroup mpc55xx_dspi
5 *
6 * @brief Header file for the LibI2C bus driver for the Deserial Serial Peripheral Interface (DSPI).
7 */
8
9/*
10 * Copyright (c) 2008
11 * Embedded Brains GmbH
12 * Obere Lagerstr. 30
13 * D-82178 Puchheim
14 * Germany
15 * rtems@embedded-brains.de
16 *
17 * The license and distribution terms for this file may be
18 * found in the file LICENSE in this distribution or at
19 * http://www.rtems.com/license/LICENSE.
20 */
21
22/**
23 * @defgroup mpc55xx_dspi Deserial Serial Peripheral Interface (DSPI)
24 *
25 * @ingroup mpc55xx
26 */
27
28#ifndef LIBCPU_POWERPC_MPC55XX_DSPI_H
29#define LIBCPU_POWERPC_MPC55XX_DSPI_H
30
31#include <rtems/libi2c.h>
32
33#include <mpc55xx/edma.h>
34
35#ifdef __cplusplus
36extern "C" {
37#endif /* __cplusplus */
38
39struct DSPI_tag;
40
41typedef struct {
42  edma_channel_context edma;
43  rtems_id id;
44} mpc55xx_dspi_edma_entry;
45
46/**
47 * @brief LibI2C bus driver entry.
48 */
49typedef struct {
50        /**
51         * @brief Standard bus driver fields.
52         */
53        rtems_libi2c_bus_t bus;
54
55        /**
56         * @brief Index in the bus table: @ref mpc55xx_dspi_bus_table.
57         */
58        unsigned table_index;
59
60        /**
61         * @brief Bus number (available after rtems_libi2c_register_bus()).
62         *
63         * @note You must set it in the initialization code after the bus registration.
64         */
65        unsigned bus_number;
66
67        /**
68         * @brief Hardware registers.
69         */
70        volatile struct DSPI_tag *regs;
71
72        /**
73         * @brief Selects SPI master or slave mode.
74         */
75        bool master;
76
77        /**
78         * @brief Data for the Push Register.
79         */
80        union DSPI_PUSHR_tag push_data;
81
82        /**
83         * @brief eDMA entry for transmission.
84         *
85         * The channel is fixed to a particular DSPI.
86         */
87        mpc55xx_dspi_edma_entry edma_transmit;
88
89        /**
90         * @brief eDMA entry for push data generation.
91         *
92         * You can choose every available channel.
93         */
94        mpc55xx_dspi_edma_entry edma_push;
95
96        /**
97         * @brief eDMA entry for receiving.
98         *
99         * The channel is fixed to a particular DSPI.
100         */
101        mpc55xx_dspi_edma_entry edma_receive;
102
103        /**
104         * @brief Idle character transmitted in read only mode.
105         */
106        uint32_t idle_char;
107
108        /**
109         * @brief Current baud.
110         */
111        uint32_t baud;
112} mpc55xx_dspi_bus_entry;
113
114/**
115 * @brief Number of DSPIs.
116 */
117#define MPC55XX_DSPI_NUMBER 4
118
119/**
120 * @brief Table with bus driver entries.
121 */
122extern mpc55xx_dspi_bus_entry mpc55xx_dspi_bus_table [ /* MPC55XX_DSPI_NUMBER */ ];
123
124#ifdef __cplusplus
125}
126#endif /* __cplusplus */
127
128#endif /* LIBCPU_POWERPC_MPC55XX_DSPI_H */
Note: See TracBrowser for help on using the repository browser.