1*c942fddfSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */ 21da177e4SLinus Torvalds /* -------------------------------------------------------------------- */ 31da177e4SLinus Torvalds /* i2c-pcf8584.h: PCF 8584 global defines */ 41da177e4SLinus Torvalds /* -------------------------------------------------------------------- */ 51da177e4SLinus Torvalds /* Copyright (C) 1996 Simon G. Vogl 61da177e4SLinus Torvalds 1999 Hans Berglund 71da177e4SLinus Torvalds 8*c942fddfSThomas Gleixner */ 91da177e4SLinus Torvalds /* -------------------------------------------------------------------- */ 101da177e4SLinus Torvalds 111da177e4SLinus Torvalds /* With some changes from Frodo Looijaard <frodol@dds.nl> */ 121da177e4SLinus Torvalds 131da177e4SLinus Torvalds #ifndef I2C_PCF8584_H 141da177e4SLinus Torvalds #define I2C_PCF8584_H 1 151da177e4SLinus Torvalds 161da177e4SLinus Torvalds /* ----- Control register bits ---------------------------------------- */ 171da177e4SLinus Torvalds #define I2C_PCF_PIN 0x80 181da177e4SLinus Torvalds #define I2C_PCF_ESO 0x40 191da177e4SLinus Torvalds #define I2C_PCF_ES1 0x20 201da177e4SLinus Torvalds #define I2C_PCF_ES2 0x10 211da177e4SLinus Torvalds #define I2C_PCF_ENI 0x08 221da177e4SLinus Torvalds #define I2C_PCF_STA 0x04 231da177e4SLinus Torvalds #define I2C_PCF_STO 0x02 241da177e4SLinus Torvalds #define I2C_PCF_ACK 0x01 251da177e4SLinus Torvalds 261da177e4SLinus Torvalds #define I2C_PCF_START (I2C_PCF_PIN | I2C_PCF_ESO | I2C_PCF_STA | I2C_PCF_ACK) 271da177e4SLinus Torvalds #define I2C_PCF_STOP (I2C_PCF_PIN | I2C_PCF_ESO | I2C_PCF_STO | I2C_PCF_ACK) 281da177e4SLinus Torvalds #define I2C_PCF_REPSTART ( I2C_PCF_ESO | I2C_PCF_STA | I2C_PCF_ACK) 291da177e4SLinus Torvalds #define I2C_PCF_IDLE (I2C_PCF_PIN | I2C_PCF_ESO | I2C_PCF_ACK) 301da177e4SLinus Torvalds 311da177e4SLinus Torvalds /* ----- Status register bits ----------------------------------------- */ 321da177e4SLinus Torvalds /*#define I2C_PCF_PIN 0x80 as above*/ 331da177e4SLinus Torvalds 341da177e4SLinus Torvalds #define I2C_PCF_INI 0x40 /* 1 if not initialized */ 351da177e4SLinus Torvalds #define I2C_PCF_STS 0x20 361da177e4SLinus Torvalds #define I2C_PCF_BER 0x10 371da177e4SLinus Torvalds #define I2C_PCF_AD0 0x08 381da177e4SLinus Torvalds #define I2C_PCF_LRB 0x08 391da177e4SLinus Torvalds #define I2C_PCF_AAS 0x04 401da177e4SLinus Torvalds #define I2C_PCF_LAB 0x02 411da177e4SLinus Torvalds #define I2C_PCF_BB 0x01 421da177e4SLinus Torvalds 431da177e4SLinus Torvalds /* ----- Chip clock frequencies --------------------------------------- */ 441da177e4SLinus Torvalds #define I2C_PCF_CLK3 0x00 451da177e4SLinus Torvalds #define I2C_PCF_CLK443 0x10 461da177e4SLinus Torvalds #define I2C_PCF_CLK6 0x14 471da177e4SLinus Torvalds #define I2C_PCF_CLK 0x18 481da177e4SLinus Torvalds #define I2C_PCF_CLK12 0x1c 491da177e4SLinus Torvalds 501da177e4SLinus Torvalds /* ----- transmission frequencies ------------------------------------- */ 511da177e4SLinus Torvalds #define I2C_PCF_TRNS90 0x00 /* 90 kHz */ 521da177e4SLinus Torvalds #define I2C_PCF_TRNS45 0x01 /* 45 kHz */ 531da177e4SLinus Torvalds #define I2C_PCF_TRNS11 0x02 /* 11 kHz */ 541da177e4SLinus Torvalds #define I2C_PCF_TRNS15 0x03 /* 1.5 kHz */ 551da177e4SLinus Torvalds 561da177e4SLinus Torvalds 571da177e4SLinus Torvalds /* ----- Access to internal registers according to ES1,ES2 ------------ */ 581da177e4SLinus Torvalds /* they are mapped to the data port ( a0 = 0 ) */ 591da177e4SLinus Torvalds /* available when ESO == 0 : */ 601da177e4SLinus Torvalds 611da177e4SLinus Torvalds #define I2C_PCF_OWNADR 0 621da177e4SLinus Torvalds #define I2C_PCF_INTREG I2C_PCF_ES2 631da177e4SLinus Torvalds #define I2C_PCF_CLKREG I2C_PCF_ES1 641da177e4SLinus Torvalds 651da177e4SLinus Torvalds #endif /* I2C_PCF8584_H */ 66