Merge branch 'master' of http://www.denx.de/git/u-boot
[oweals/u-boot.git] / board / siemens / SCM / scm.h
1 /*
2  * (C) Copyright 2001
3  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
4  *
5  * See file CREDITS for list of people who contributed to this
6  * project.
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License as
10  * published by the Free Software Foundation; either version 2 of
11  * the License, or (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
21  * MA 02111-1307 USA
22  */
23
24 #ifndef __SCM_H
25 #define __SCM_H
26
27 /*----------------*/
28 /* CAN Structures */
29 /*----------------*/
30
31 /* Message */
32 typedef struct can_msg {
33     uchar       ctrl_0;
34     uchar       ctrl_1;
35     uchar       arbit_0;
36     uchar       arbit_1;
37     uchar       arbit_2;
38     uchar       arbit_3;
39     uchar       config;
40     uchar       data[8];
41 } can_msg_t;
42
43 /* CAN Register */
44 typedef struct can_reg {
45     uchar       ctrl;
46     uchar       status;
47     uchar       cpu_interface;
48     uchar       resv0;
49     ushort      high_speed_rd;
50     ushort      gbl_mask_std;
51     uint        gbl_mask_extd;
52     uint        msg15_mask;
53     can_msg_t   msg1 __attribute__ ((packed));
54     uchar       clkout;
55     can_msg_t   msg2 __attribute__ ((packed));
56     uchar       bus_config;
57     can_msg_t   msg3 __attribute__ ((packed));
58     uchar       bit_timing_0;
59     can_msg_t   msg4 __attribute__ ((packed));
60     uchar       bit_timing_1;
61     can_msg_t   msg5 __attribute__ ((packed));
62     uchar       interrupt;
63     can_msg_t   msg6 __attribute__ ((packed));
64     uchar       resv1;
65     can_msg_t   msg7 __attribute__ ((packed));
66     uchar       resv2;
67     can_msg_t   msg8 __attribute__ ((packed));
68     uchar       resv3;
69     can_msg_t   msg9 __attribute__ ((packed));
70     uchar       p1conf;
71     can_msg_t   msg10 __attribute__ ((packed));
72     uchar       p2conf;
73     can_msg_t   msg11 __attribute__ ((packed));
74     uchar       p1in;
75     can_msg_t   msg12 __attribute__ ((packed));
76     uchar       p2in;
77     can_msg_t   msg13 __attribute__ ((packed));
78     uchar       p1out;
79     can_msg_t   msg14 __attribute__ ((packed));
80     uchar       p2out;
81     can_msg_t   msg15 __attribute__ ((packed));
82     uchar       ser_res_addr;
83     uchar       resv_cs[0x8000-0x100];  /* 0x8000 is the min size for CS */
84 } can_reg_t;
85
86
87 #endif /* __SCM_H */