source: rtems/bsps/include/grlib/i2cmst.h @ 31720925

5
Last change on this file since 31720925 was 31720925, checked in by Sebastian Huber <sebastian.huber@…>, on 12/22/18 at 06:13:44

grlib: Move header files

Update #3678.

  • Property mode set to 100644
File size: 1.9 KB
Line 
1/**
2 * @file
3 * @ingroup sparc_bsp
4 * @defgroup i2c I2C-master
5 * @ingroup i2c
6 * @brief Driver for GRLIB port of OpenCores I2C-master
7 */
8
9/*
10 * COPYRIGHT (c) 2007 Cobham Gaisler AB
11 * with parts from the RTEMS MPC83xx I2C driver (c) 2007 Embedded Brains GmbH.
12 *
13 * The license and distribution terms for this file may be
14 * found in the file LICENSE in this distribution or at
15 * http://www.rtems.org/license/LICENSE.
16 */
17
18#ifndef _I2CMST_H
19#define _I2CMST_H
20
21#include <rtems/libi2c.h>
22#include "ambapp.h"
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
28/* I2C-master operational registers */
29
30typedef struct gr_i2cmst_regs {
31  volatile unsigned int prescl; /* Prescale register */
32  volatile unsigned int ctrl;   /* Control register */
33  volatile unsigned int tdrd;   /* Transmit and Receive registers */
34  volatile unsigned int cmdsts; /* Command and Status registers */
35} gr_i2cmst_regs_t;
36
37/* Control (CTRL) register */
38#define GRI2C_CTRL_EN         0x00000080 /* Enable core */
39#define GRI2C_CTRL_IEN        0x00000040 /* Interrupt enable */
40
41/* Command (CMD) register */
42#define GRI2C_CMD_STA         0x00000080 /* Generate START condition */
43#define GRI2C_CMD_STO         0x00000040 /* Generate STOP condition */
44#define GRI2C_CMD_RD          0x00000020 /* Read from slave */
45#define GRI2C_CMD_WR          0x00000010 /* Write to slave */
46#define GRI2C_CMD_ACK         0x00000008 /* Acknowledge */
47#define GRI2C_CMD_IACK        0x00000001 /* Interrupt acknowledge */
48
49/* Status (STS) register */
50#define GRI2C_STS_RXACK       0x00000080 /* Receive acknowledge */
51#define GRI2C_STS_BUSY        0x00000040 /* I2C-bus busy */
52#define GRI2C_STS_AL          0x00000020 /* Arbitration lost */
53#define GRI2C_STS_TIP         0x00000002 /* Transfer in progress */
54#define GRI2C_STS_IF          0x00000001 /* Interrupt flag */
55
56#define GRI2C_STATUS_IDLE     0x00000000
57
58/* Register I2CMST driver to Driver Manager */
59void i2cmst_register_drv (void);
60
61#ifdef __cplusplus
62}
63#endif
64
65#endif /*  _I2CMST_H */
Note: See TracBrowser for help on using the repository browser.