home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / lxapi32.zip / Linux / I2C / i2c-pcf8584.h < prev    next >
C/C++ Source or Header  |  2002-04-26  |  3KB  |  79 lines

  1. /* -------------------------------------------------------------------- */
  2. /* i2c-pcf8584.h: PCF 8584 global defines                */
  3. /* -------------------------------------------------------------------- */
  4. /*   Copyright (C) 1996 Simon G. Vogl
  5.                    1999 Hans Berglund
  6.  
  7.     This program is free software; you can redistribute it and/or modify
  8.     it under the terms of the GNU General Public License as published by
  9.     the Free Software Foundation; either version 2 of the License, or
  10.     (at your option) any later version.
  11.  
  12.     This program is distributed in the hope that it will be useful,
  13.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  14.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15.     GNU General Public License for more details.
  16.  
  17.     You should have received a copy of the GNU General Public License
  18.     along with this program; if not, write to the Free Software
  19.     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.        */
  20. /* --------------------------------------------------------------------    */
  21.  
  22. /* With some changes from Frodo Looijaard <frodol@dds.nl> */
  23.  
  24. /* $Id: i2c-pcf8584.h,v 1.2 2002/04/26 23:09:28 smilcke Exp $ */
  25.  
  26. #ifndef I2C_PCF8584_H
  27. #define I2C_PCF8584_H 1
  28.  
  29. /* ----- Control register bits ----------------------------------------    */
  30. #define I2C_PCF_PIN    0x80
  31. #define I2C_PCF_ESO    0x40
  32. #define I2C_PCF_ES1    0x20
  33. #define I2C_PCF_ES2    0x10
  34. #define I2C_PCF_ENI    0x08
  35. #define I2C_PCF_STA    0x04
  36. #define I2C_PCF_STO    0x02
  37. #define I2C_PCF_ACK    0x01
  38.  
  39. #define I2C_PCF_START    (I2C_PCF_PIN | I2C_PCF_ESO | I2C_PCF_STA | I2C_PCF_ACK)
  40. #define I2C_PCF_STOP     (I2C_PCF_PIN | I2C_PCF_ESO | I2C_PCF_STO | I2C_PCF_ACK)
  41. #define I2C_PCF_REPSTART (              I2C_PCF_ESO | I2C_PCF_STA | I2C_PCF_ACK)
  42. #define I2C_PCF_IDLE     (I2C_PCF_PIN | I2C_PCF_ESO               | I2C_PCF_ACK)
  43.  
  44. /* ----- Status register bits -----------------------------------------    */
  45. /*#define I2C_PCF_PIN  0x80    as above*/
  46.  
  47. #define I2C_PCF_INI 0x40   /* 1 if not initialized */
  48. #define I2C_PCF_STS 0x20
  49. #define I2C_PCF_BER 0x10
  50. #define I2C_PCF_AD0 0x08
  51. #define I2C_PCF_LRB 0x08
  52. #define I2C_PCF_AAS 0x04
  53. #define I2C_PCF_LAB 0x02
  54. #define I2C_PCF_BB  0x01
  55.  
  56. /* ----- Chip clock frequencies ---------------------------------------    */
  57. #define I2C_PCF_CLK3    0x00
  58. #define I2C_PCF_CLK443    0x10
  59. #define I2C_PCF_CLK6    0x14
  60. #define I2C_PCF_CLK    0x18
  61. #define I2C_PCF_CLK12    0x1c
  62.  
  63. /* ----- transmission frequencies -------------------------------------    */
  64. #define I2C_PCF_TRNS90 0x00    /*  90 kHz */
  65. #define I2C_PCF_TRNS45 0x01    /*  45 kHz */
  66. #define I2C_PCF_TRNS11 0x02    /*  11 kHz */
  67. #define I2C_PCF_TRNS15 0x03    /* 1.5 kHz */
  68.  
  69.  
  70. /* ----- Access to internal registers according to ES1,ES2 ------------    */
  71. /* they are mapped to the data port ( a0 = 0 )                 */
  72. /* available when ESO == 0 :                        */
  73.  
  74. #define I2C_PCF_OWNADR    0
  75. #define I2C_PCF_INTREG    I2C_PCF_ES2
  76. #define I2C_PCF_CLKREG    I2C_PCF_ES1
  77.  
  78. #endif /* I2C_PCF8584_H */
  79.