Commit | Line | Data |
---|---|---|
1da177e4 LT |
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 | |
ca1f8da9 | 15 | GNU General Public License for more details. */ |
1da177e4 LT |
16 | /* -------------------------------------------------------------------- */ |
17 | ||
18 | /* With some changes from Frodo Looijaard <frodol@dds.nl> */ | |
19 | ||
20 | #ifndef I2C_PCF8584_H | |
21 | #define I2C_PCF8584_H 1 | |
22 | ||
23 | /* ----- Control register bits ---------------------------------------- */ | |
24 | #define I2C_PCF_PIN 0x80 | |
25 | #define I2C_PCF_ESO 0x40 | |
26 | #define I2C_PCF_ES1 0x20 | |
27 | #define I2C_PCF_ES2 0x10 | |
28 | #define I2C_PCF_ENI 0x08 | |
29 | #define I2C_PCF_STA 0x04 | |
30 | #define I2C_PCF_STO 0x02 | |
31 | #define I2C_PCF_ACK 0x01 | |
32 | ||
33 | #define I2C_PCF_START (I2C_PCF_PIN | I2C_PCF_ESO | I2C_PCF_STA | I2C_PCF_ACK) | |
34 | #define I2C_PCF_STOP (I2C_PCF_PIN | I2C_PCF_ESO | I2C_PCF_STO | I2C_PCF_ACK) | |
35 | #define I2C_PCF_REPSTART ( I2C_PCF_ESO | I2C_PCF_STA | I2C_PCF_ACK) | |
36 | #define I2C_PCF_IDLE (I2C_PCF_PIN | I2C_PCF_ESO | I2C_PCF_ACK) | |
37 | ||
38 | /* ----- Status register bits ----------------------------------------- */ | |
39 | /*#define I2C_PCF_PIN 0x80 as above*/ | |
40 | ||
41 | #define I2C_PCF_INI 0x40 /* 1 if not initialized */ | |
42 | #define I2C_PCF_STS 0x20 | |
43 | #define I2C_PCF_BER 0x10 | |
44 | #define I2C_PCF_AD0 0x08 | |
45 | #define I2C_PCF_LRB 0x08 | |
46 | #define I2C_PCF_AAS 0x04 | |
47 | #define I2C_PCF_LAB 0x02 | |
48 | #define I2C_PCF_BB 0x01 | |
49 | ||
50 | /* ----- Chip clock frequencies --------------------------------------- */ | |
51 | #define I2C_PCF_CLK3 0x00 | |
52 | #define I2C_PCF_CLK443 0x10 | |
53 | #define I2C_PCF_CLK6 0x14 | |
54 | #define I2C_PCF_CLK 0x18 | |
55 | #define I2C_PCF_CLK12 0x1c | |
56 | ||
57 | /* ----- transmission frequencies ------------------------------------- */ | |
58 | #define I2C_PCF_TRNS90 0x00 /* 90 kHz */ | |
59 | #define I2C_PCF_TRNS45 0x01 /* 45 kHz */ | |
60 | #define I2C_PCF_TRNS11 0x02 /* 11 kHz */ | |
61 | #define I2C_PCF_TRNS15 0x03 /* 1.5 kHz */ | |
62 | ||
63 | ||
64 | /* ----- Access to internal registers according to ES1,ES2 ------------ */ | |
65 | /* they are mapped to the data port ( a0 = 0 ) */ | |
66 | /* available when ESO == 0 : */ | |
67 | ||
68 | #define I2C_PCF_OWNADR 0 | |
69 | #define I2C_PCF_INTREG I2C_PCF_ES2 | |
70 | #define I2C_PCF_CLKREG I2C_PCF_ES1 | |
71 | ||
72 | #endif /* I2C_PCF8584_H */ |