Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
420 | giacomo | 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-algo-pcf.h,v 1.1 2004-01-28 15:12:03 giacomo 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 */ |