twif.h 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. #ifndef _DEV_TWIF_H_
  2. #define _DEV_TWIF_H_
  3. /*
  4. * Copyright (C) 2001-2005 by egnite Software GmbH. All rights reserved.
  5. *
  6. * Redistribution and use in source and binary forms, with or without
  7. * modification, are permitted provided that the following conditions
  8. * are met:
  9. *
  10. * 1. Redistributions of source code must retain the above copyright
  11. * notice, this list of conditions and the following disclaimer.
  12. * 2. Redistributions in binary form must reproduce the above copyright
  13. * notice, this list of conditions and the following disclaimer in the
  14. * documentation and/or other materials provided with the distribution.
  15. * 3. Neither the name of the copyright holders nor the names of
  16. * contributors may be used to endorse or promote products derived
  17. * from this software without specific prior written permission.
  18. *
  19. * THIS SOFTWARE IS PROVIDED BY EGNITE SOFTWARE GMBH AND CONTRIBUTORS
  20. * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  21. * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
  22. * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL EGNITE
  23. * SOFTWARE GMBH OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
  24. * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
  25. * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
  26. * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
  27. * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  28. * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
  29. * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  30. * SUCH DAMAGE.
  31. *
  32. * For additional information see http://www.ethernut.de/
  33. */
  34. /*
  35. * $Log: twif.h,v $
  36. * Revision 1.2 2005/10/24 10:56:30 haraldkipp
  37. * Added const modifier to transmit data pointer in TwMasterTransact().
  38. *
  39. * Revision 1.1.1.1 2003/05/09 14:41:09 haraldkipp
  40. * Initial using 3.2.1
  41. *
  42. * Revision 1.2 2003/03/31 14:53:23 harald
  43. * Prepare release 3.1
  44. *
  45. */
  46. #include <sys/types.h>
  47. #define TWI_SETSPEED 0x0401 /*!< \brief Set transfer speed. */
  48. #define TWI_GETSPEED 0x0402 /*!< \brief Query transfer speed. */
  49. #define TWI_SETSLAVEADDRESS 0x0403 /*!< \brief Set local slave address. */
  50. #define TWI_GETSLAVEADDRESS 0x0404 /*!< \brief Query local slave address. */
  51. #define TWI_SETSTATUS 0x0409 /*!< \brief Set status. */
  52. #define TWI_GETSTATUS 0x040a /*!< \brief Query status. */
  53. #define TWERR_OK 0 /*!< \brief No error occured. */
  54. #define TWERR_TIMEOUT 1 /*!< \brief Interface timeout. */
  55. #define TWERR_BUS 2 /*!< \brief Bus error. */
  56. #define TWERR_IF_LOCKED 3 /*!< \brief Interface locked. */
  57. #define TWERR_SLA_NACK 4 /*!< \brief No slave response. */
  58. #define TWERR_DATA_NACK 5 /*!< \brief Data not acknowledged. */
  59. #define TWSLA_MIN 17 /*!< \brief Lowest slave address.
  60. * Addresses below are reserved
  61. * for special purposes.
  62. */
  63. #define TWSLA_MAX 79 /*!< \brief Lowest slave address.
  64. * Addresses above are reserved
  65. * for special purposes.
  66. */
  67. #define TWSLA_BCAST 0 /*!< \brief Broadcast slave address. */
  68. #define TWSLA_HOST 16 /*!< \brief Host slave address. */
  69. #define TWSLA_DEFAULT 193 /*!< \brief Default slave address. */
  70. extern int TwInit(u_char sla);
  71. extern int TwIOCtl(int req, void *conf);
  72. extern int TwMasterTransact(u_char sla, CONST void *txdata, u_short txlen, void *rxdata, u_short rxsiz, u_long tmo);
  73. extern int TwMasterError(void);
  74. extern int TwSlaveListen(u_char *sla, void *rxdata, u_short rxsiz, u_long tmo);
  75. extern int TwSlaveRespond(void *txdata, u_short txlen, u_long tmo);
  76. extern int TwSlaveError(void);
  77. #endif