source: rtems/c/src/lib/libbsp/powerpc/eth_comm/include/canbus.h @ 162cc99

4.104.114.84.95
Last change on this file since 162cc99 was ee733965, checked in by Joel Sherrill <joel.sherrill@…>, on 02/17/99 at 20:24:53

Jay Monkman <jmonkman@…> submitted the eth_comm BSP for a PPC860
based board.

  • Property mode set to 100644
File size: 7.1 KB
RevLine 
[ee733965]1/*  canbus.h
2 *
3 *  This include file contains all canbus IO definitions
4 *
5 *  Written by Jay Monkman (jmonkman@frasca.com)
6 *
7 *  COPYRIGHT (c) 1998
8 *  Frasca International, Inc.
9 *
10 *  The license and distribution terms for this file may be
11 *  found in the file LICENSE in this distribution or at
12 *  http://www.OARcorp.com/rtems/license.html.
13 *
14 *  $Id:
15 */
16
17#ifndef __CANBUS_H_
18#define __CANBUS_H_
19
20#include <rtems.h>
21
22typedef struct i82527_msg_t_ {
23  rtems_unsigned8  ctrl0 __attribute__ ((packed));    /* Control 0 register */
24  rtems_unsigned8  ctrl1 __attribute__ ((packed));    /* Control 1 register */
25  rtems_unsigned32 arb __attribute__ ((packed));      /* Arbitration reg */
26  rtems_unsigned8  cfg __attribute__ ((packed));      /* Message config reg */
27  rtems_unsigned8  data[8] __attribute__ ((packed));  /* Actual message */
28} i82527_msg_t;
29
30typedef struct i82527_t_ {
31  rtems_unsigned8  ctrl __attribute__ ((packed));    /* Control register */
32  rtems_unsigned8  status __attribute__ ((packed));  /* Status register */
33  rtems_unsigned8  cir __attribute__ ((packed));     /* CPU interface reg */
34  rtems_unsigned8  _res0 __attribute__ ((packed));
35  rtems_unsigned16 hsr __attribute__ ((packed));     /* High speed read */
36  rtems_unsigned16 gms __attribute__ ((packed));     /* Global Mask - std */
37  rtems_unsigned32 gml __attribute__ ((packed));     /* Global Mask - long */
38  rtems_unsigned32 mlm __attribute__ ((packed));     /* Mask last message  */
39  i82527_msg_t     msg1 __attribute__ ((packed));    /* Message 1 */
40  rtems_unsigned8  clkout __attribute__ ((packed));  /* CLKOUT register */
41  i82527_msg_t     msg2 __attribute__ ((packed));    /* Message 2 */
42  rtems_unsigned8  bcr __attribute__ ((packed));     /* Bus config register */
43  i82527_msg_t     msg3 __attribute__ ((packed));    /* Message 3 */
44  rtems_unsigned8  btr0 __attribute__ ((packed));    /* Bit timing reg 0 */
45  i82527_msg_t     msg4 __attribute__ ((packed));    /* Message 4 */
46  rtems_unsigned8  btr1 __attribute__ ((packed));    /* Bit timing reg 1 */
47  i82527_msg_t     msg5 __attribute__ ((packed));    /* Message 5 */
48  rtems_unsigned8  intr __attribute__ ((packed));    /* Interrupt register */
49  i82527_msg_t     msg6 __attribute__ ((packed));    /* Message 6 */
50  rtems_unsigned8  _res1 __attribute__ ((packed));
51  i82527_msg_t     msg7 __attribute__ ((packed));    /* Message 7 */
52  rtems_unsigned8  _res2 __attribute__ ((packed));
53  i82527_msg_t     msg8 __attribute__ ((packed));    /* Message 8 */
54  rtems_unsigned8  _res3 __attribute__ ((packed));
55  i82527_msg_t     msg9 __attribute__ ((packed));    /* Message 9 */
56  rtems_unsigned8  p1conf __attribute__ ((packed));  /* Port 1 config */
57  i82527_msg_t     msg10 __attribute__ ((packed));   /* Message 10 */
58  rtems_unsigned8  p2conf __attribute__ ((packed));  /* Port 2 config */
59  i82527_msg_t     msg11 __attribute__ ((packed));   /* Message 11 */
60  rtems_unsigned8  p1in __attribute__ ((packed));    /* Port 1 in */
61  i82527_msg_t     msg12 __attribute__ ((packed));   /* Message 12 */
62  rtems_unsigned8  p2in __attribute__ ((packed));    /* Port 2 in */
63  i82527_msg_t     msg13 __attribute__ ((packed));   /* Message 13 */
64  rtems_unsigned8  p1out __attribute__ ((packed));   /* Port 1 out */
65  i82527_msg_t     msg14 __attribute__ ((packed));   /* Message 14 */
66  rtems_unsigned8  p2out __attribute__ ((packed));   /* Port 2 out */
67  i82527_msg_t     msg15 __attribute__ ((packed));   /* Message 15 */
68  rtems_unsigned8  sra __attribute__ ((packed));     /* Serial reset address */
69} i82527_t;
70
71#define I82527_CTRL_CCE         (1<<6)
72#define I82527_CTRL_EIE         (1<<3)
73#define I82527_CTRL_SIE         (1<<2)
74#define I82527_CTRL_IE          (1<<1)
75#define I82527_CTRL_INIT        (1)
76#define I82527_STATUS_BOFF      (1<<7)
77#define I82527_STATUS_WARN      (1<<6)
78#define I82527_STATUS_WAKE      (1<<5)
79#define I82527_STATUS_RXOK      (1<<4)
80#define I82527_STATUS_TXOK      (1<<3)
81#define I82527_STATUS_LEC       (7)
82#define I82527_STATUS_LEC_NONE  0
83#define I82527_STATUS_LEC_STUFF 1
84#define I82527_STATUS_LEC_FORM  2
85#define I82527_STATUS_LEC_ACK   3
86#define I82527_STATUS_LEC_BIT1  4
87#define I82527_STATUS_LEC_BIT0  5
88#define I82527_STATUS_LEC_CRC   6
89#define I82527_CIR_RSTSTAT      (1<<7)
90#define I82527_CIR_DSC          (1<<6)
91#define I82527_CIR_DMC          (1<<5)
92#define I82527_CIR_PWD          (1<<4)
93#define I82527_CIR_SLEEP        (1<<3)
94#define I82527_CIR_MUX          (1<<2)
95#define I82527_CIR_CEN          (1)
96#define I82527_CLKOUT_SL1       (1<<5)
97#define I82527_CLKOUT_SLO       (1<<4)
98#define I82527_BCR_COBY         (1<<6)
99#define I82527_BCR_POL          (1<<5)
100#define I82527_DCT1             (1<<3)
101#define I82527_DCR1             (1<<1)
102#define I82527_DCR0             (1)
103#define I82527_BTR1_SPL         (1<<7)
104#define I82527_MSG_CTRL_MSGVAL     (2<<6)
105#define I82527_MSG_CTRL_MSGVAL_NC  (3<<6)
106#define I82527_MSG_CTRL_MSGVAL_SET (2<<6)
107#define I82527_MSG_CTRL_MSGVAL_CLR (1<<6)
108#define I82527_MSG_CTRL_TXIE       (2<<4)
109#define I82527_MSG_CTRL_TXIE_NC    (3<<4)
110#define I82527_MSG_CTRL_TXIE_SET   (2<<4)
111#define I82527_MSG_CTRL_TXIE_CLR   (1<<4)
112#define I82527_MSG_CTRL_RXIE       (2<<2)
113#define I82527_MSG_CTRL_RXIE_NC    (3<<2)
114#define I82527_MSG_CTRL_RXIE_SET   (2<<2)
115#define I82527_MSG_CTRL_RXIE_CLR   (1<<2)
116#define I82527_MSG_CTRL_INTPND     (2)
117#define I82527_MSG_CTRL_INTPND_NC  (3)
118#define I82527_MSG_CTRL_INTPND_SET (2)
119#define I82527_MSG_CTRL_INTPND_CLR (1)
120#define I82527_MSG_CTRL_RMTPND     (2<<6)
121#define I82527_MSG_CTRL_RMTPND_NC  (3<<6)
122#define I82527_MSG_CTRL_RMTPND_SET (2<<6)
123#define I82527_MSG_CTRL_RMTPND_CLR (1<<6)
124#define I82527_MSG_CTRL_TXRQ       (2<<4)
125#define I82527_MSG_CTRL_TXRQ_NC    (3<<4)
126#define I82527_MSG_CTRL_TXRQ_SET   (2<<4)
127#define I82527_MSG_CTRL_TXRQ_CLR   (1<<4)
128#define I82527_MSG_CTRL_MSGLST     (2<<2)
129#define I82527_MSG_CTRL_MSGLST_NC  (3<<2)
130#define I82527_MSG_CTRL_MSGLST_SET (2<<2)
131#define I82527_MSG_CTRL_MSGLST_CLR (1<<2)
132#define I82527_MSG_CTRL_CPUUPD     (2<<2)
133#define I82527_MSG_CTRL_CPUUPD_NC  (3<<2)
134#define I82527_MSG_CTRL_CPUUPD_SET (2<<2)
135#define I82527_MSG_CTRL_CPUUPD_CLR (1<<2)
136#define I82527_MSG_CTRL_NEWDAT     (2)
137#define I82527_MSG_CTRL_NEWDAT_NC  (3)
138#define I82527_MSG_CTRL_NEWDAT_SET (2)
139#define I82527_MSG_CTRL_NEWDAT_CLR (1)
140#define I82527_MSG_CFG_DIR          (1<<3)
141#define I82527_MSG_CFG_XTD          (1<<2)
142
143extern i82527_t canbus0;
144extern i82527_t canbus1;
145extern i82527_t canbus2;
146
147
148rtems_device_driver canbus_initialize(rtems_device_major_number,
149                                      rtems_device_minor_number,
150                                      void *);
151rtems_device_driver canbus_open(rtems_device_major_number,
152                                rtems_device_minor_number,
153                                void *);
154rtems_device_driver canbus_close(rtems_device_major_number,
155                                 rtems_device_minor_number,
156                                 void *);
157rtems_device_driver canbus_read(rtems_device_major_number,
158                                rtems_device_minor_number,
159                                void *);
160rtems_device_driver canbus_write(rtems_device_major_number,
161                                 rtems_device_minor_number,
162                                 void *);
163rtems_device_driver canbus_control(rtems_device_major_number,
164                                   rtems_device_minor_number,
165                                   void *);
166
167
168#define CANBUS_DRIVER_TABLE_ENTRY \
169  { canbus_initialize, canbus_open, canbus_close, \
170    canbus_read, canbus_write, canbus_control }
171
172#endif /* __CANBUS_H_ */
Note: See TracBrowser for help on using the repository browser.