sysMpc85xxI2c.h
上传用户:dqzhongke1
上传日期:2022-06-26
资源大小:667k
文件大小:3k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* sysMpc85xxI2c.h - Mpc85xx I2C Driver Header Module */
  2. /*
  3.  * Copyright (c) 2005 Wind River Systems, Inc.
  4.  *
  5.  * The right to copy, distribute, modify, or otherwise make use
  6.  * of this software may be licensed only pursuant to the terms
  7.  * of an applicable Wind River license agreement.
  8.  */
  9. /*
  10. modification history
  11. --------------------
  12. 01a,21feb05,gtf  created.
  13. */
  14. /*
  15. DESCRIPTION
  16. I2C Driver Header (Low Level Routines) Module
  17. Mpc85xx Memory Controller (MPC85XX - PowerPlus Architecture)
  18. Notes:
  19. 1. The low level routines were modeled after the original
  20.    driver written by Pamela Wolfe.
  21. */
  22. #ifndef INCsysMpc85xxI2ch
  23. #define INCsysMpc85xxI2ch
  24. #include <vxWorks.h>
  25. #include <config.h>
  26. #ifdef __cplusplus
  27. extern "C" {
  28. #endif
  29. /* Mpc85xx Register Addresses */
  30. #define MPC85XX_I2C_ADR_REG         (0x00000)
  31. #define MPC85XX_I2C_FREQ_DIV_REG (0x00004)
  32. #define MPC85XX_I2C_CONTROL_REG (0x00008)
  33. #define MPC85XX_I2C_STATUS_REG (0x0000c)
  34. #define MPC85XX_I2C_DATA_REG (0x00010)
  35. #define MPC85XX_I2C_DIG_FILTER_REG (0x00014)
  36. /* Mpc85xx Register masks */
  37. #define MPC85XX_I2C_ADDRESS_REG_MASK  0xFE
  38. #define MPC85XX_I2C_FREQ_DIV_REG_MASK 0x3F
  39. #define MPC85XX_I2C_CONTROL_REG_MASK 0xFD
  40. #define MPC85XX_I2C_STATUS_REG_MASK 0xFF
  41. #define MPC85XX_I2C_DATA_REG_MASK 0xFF
  42. #define MPC85XX_I2C_DIG_FILTER_REG_MASK 0x3F
  43. /* Mpc85xx Control register values */
  44. #define MPC85XX_I2C_CONTROL_REG_MEN     0x80 /* module enable */
  45. #define MPC85XX_I2C_CONTROL_REG_MIEN 0x40   /* module interrupt enable */
  46. #define MPC85XX_I2C_CONTROL_REG_MSTA 0x20   /* master/slave mode */
  47. #define MPC85XX_I2C_CONTROL_REG_MTX     0x10   /* transmit/receiver mode  */
  48. #define MPC85XX_I2C_CONTROL_REG_TXAK 0x08   /* transfer ack enable */
  49. #define MPC85XX_I2C_CONTROL_REG_RSTA 0x04   /* repeat start */
  50. #define MPC85XX_I2C_CONTROL_REG_BCST 0x01   /* accept broadcast messages */
  51. /* Mpc85xx Status register values */
  52. #define MPC85XX_I2C_STATUS_REG_MCF      0x80   /* data transferring */
  53. #define MPC85XX_I2C_STATUS_REG_MAAS     0x40   /* addressed as a slave */
  54. #define MPC85XX_I2C_STATUS_REG_MBB     0x20   /* bus busy */
  55. #define MPC85XX_I2C_STATUS_REG_MAL     0x10   /* arbitration lost */
  56. #define MPC85XX_I2C_STATUS_REG_BCSTM    0x08   /* broadcast match */
  57. #define MPC85XX_I2C_STATUS_REG_SRW     0x04   /* slave read/write */
  58. #define MPC85XX_I2C_STATUS_REG_MIF     0x02   /* module interrupt */
  59. #define MPC85XX_I2C_STATUS_REG_RXAK     0x01   /* receive ack */
  60. IMPORT int i2cCycleMpc85xxWrite (int, unsigned char);
  61. IMPORT void i2cCycleMpc85xxDelay (int);
  62. IMPORT int i2cCycleMpc85xxStart (int);
  63. IMPORT int i2cCycleMpc85xxStop (int);
  64. IMPORT int i2cCycleMpc85xxRead (int,unsigned char *,int);
  65. IMPORT int i2cCycleMpc85xxAckIn (int);
  66. IMPORT int i2cCycleMpc85xxAckOut (int);
  67. IMPORT int i2cCycleMpc85xxKnownState (int);
  68. #ifdef __cplusplus
  69. }
  70. #endif
  71. #endif /* INCsysMpc85xxI2ch */