scm.h 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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. #ifndef __SCM_H
  24. #define __SCM_H
  25. /*----------------*/
  26. /* CAN Structures */
  27. /*----------------*/
  28. /* Message */
  29. typedef struct can_msg {
  30. uchar ctrl_0;
  31. uchar ctrl_1;
  32. uchar arbit_0;
  33. uchar arbit_1;
  34. uchar arbit_2;
  35. uchar arbit_3;
  36. uchar config;
  37. uchar data[8];
  38. } can_msg_t;
  39. /* CAN Register */
  40. typedef struct can_reg {
  41. uchar ctrl;
  42. uchar status;
  43. uchar cpu_interface;
  44. uchar resv0;
  45. ushort high_speed_rd;
  46. ushort gbl_mask_std;
  47. uint gbl_mask_extd;
  48. uint msg15_mask;
  49. can_msg_t msg1 __attribute__ ((packed));
  50. uchar clkout;
  51. can_msg_t msg2 __attribute__ ((packed));
  52. uchar bus_config;
  53. can_msg_t msg3 __attribute__ ((packed));
  54. uchar bit_timing_0;
  55. can_msg_t msg4 __attribute__ ((packed));
  56. uchar bit_timing_1;
  57. can_msg_t msg5 __attribute__ ((packed));
  58. uchar interrupt;
  59. can_msg_t msg6 __attribute__ ((packed));
  60. uchar resv1;
  61. can_msg_t msg7 __attribute__ ((packed));
  62. uchar resv2;
  63. can_msg_t msg8 __attribute__ ((packed));
  64. uchar resv3;
  65. can_msg_t msg9 __attribute__ ((packed));
  66. uchar p1conf;
  67. can_msg_t msg10 __attribute__ ((packed));
  68. uchar p2conf;
  69. can_msg_t msg11 __attribute__ ((packed));
  70. uchar p1in;
  71. can_msg_t msg12 __attribute__ ((packed));
  72. uchar p2in;
  73. can_msg_t msg13 __attribute__ ((packed));
  74. uchar p1out;
  75. can_msg_t msg14 __attribute__ ((packed));
  76. uchar p2out;
  77. can_msg_t msg15 __attribute__ ((packed));
  78. uchar ser_res_addr;
  79. uchar resv_cs[0x8000-0x100]; /* 0x8000 is the min size for CS */
  80. } can_reg_t;
  81. #endif /* __SCM_H */