diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-22 16:59:30 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-22 16:59:30 -0400 |
commit | b24a31442e2ff66053ae4f76e9c69c557d59c7d1 (patch) | |
tree | 17949dd70b2a6360e6778a901c3c66a5c54358c3 /include | |
parent | 73486722b70a83bba17be722677519b0855abedf (diff) | |
parent | add8eda7f2be781af0224241e870715cf0cfd75a (diff) |
Merge branch 'i2c-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6
* 'i2c-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6:
i2c: Fix platform driver hotplug/coldplug
i2c: New driver for the SuperH Mobile I2C bus controller
i2c/scx200_acb: Don't use 0 as NULL pointer
i2c-bfin-twi: Fix mismatch in add timer and delete timer
i2c-bfin-twi: Just let i2c-bfin-twi driver depends on BLACKFIN
i2c-bfin-twi: Use simpler comment headers and strip out information that is maintained in the scm's log
i2c-bfin-twi: Cleanup driver descriptions, versions and some module useful information
i2c-bfin-twi: Add missing pin mux operation
i2c-bfin-twi: Add platform_resource interface to support multi-port TWI controllers
i2c-bfin-twi: Add repeat start feature to avoid break of a bundle of i2c master xfer operation
i2c: Remove trailing whitespaces in busses/Kconfig
i2c: Replace remaining __FUNCTION__ occurrences
i2c: Renesas SH7760 I2C master driver
i2c-dev: Split i2cdev_ioctl
i2c-ibm_iic: Support building as an of_platform driver
i2c-ibm_iic: Change the log levels
i2c: Add platform driver on top of the new pca-algorithm
i2c-algo-pca: Extend for future drivers
i2c-algo-pca: Remove trailing whitespaces and unnecessary UTF
i2c: Remove the algorithm drivers from the config menu
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-sh/i2c-sh7760.h | 22 | ||||
-rw-r--r-- | include/linux/i2c-algo-pca.h | 37 | ||||
-rw-r--r-- | include/linux/i2c-pca-platform.h | 12 |
3 files changed, 66 insertions, 5 deletions
diff --git a/include/asm-sh/i2c-sh7760.h b/include/asm-sh/i2c-sh7760.h new file mode 100644 index 000000000000..24182116711f --- /dev/null +++ b/include/asm-sh/i2c-sh7760.h | |||
@@ -0,0 +1,22 @@ | |||
1 | /* | ||
2 | * MMIO/IRQ and platform data for SH7760 I2C channels | ||
3 | */ | ||
4 | |||
5 | #ifndef _I2C_SH7760_H_ | ||
6 | #define _I2C_SH7760_H_ | ||
7 | |||
8 | #define SH7760_I2C_DEVNAME "sh7760-i2c" | ||
9 | |||
10 | #define SH7760_I2C0_MMIO 0xFE140000 | ||
11 | #define SH7760_I2C0_MMIOEND 0xFE14003B | ||
12 | #define SH7760_I2C0_IRQ 62 | ||
13 | |||
14 | #define SH7760_I2C1_MMIO 0xFE150000 | ||
15 | #define SH7760_I2C1_MMIOEND 0xFE15003B | ||
16 | #define SH7760_I2C1_IRQ 63 | ||
17 | |||
18 | struct sh7760_i2c_platdata { | ||
19 | unsigned int speed_khz; | ||
20 | }; | ||
21 | |||
22 | #endif | ||
diff --git a/include/linux/i2c-algo-pca.h b/include/linux/i2c-algo-pca.h index fce47c051bb1..adcb3dc7ac26 100644 --- a/include/linux/i2c-algo-pca.h +++ b/include/linux/i2c-algo-pca.h | |||
@@ -1,14 +1,41 @@ | |||
1 | #ifndef _LINUX_I2C_ALGO_PCA_H | 1 | #ifndef _LINUX_I2C_ALGO_PCA_H |
2 | #define _LINUX_I2C_ALGO_PCA_H | 2 | #define _LINUX_I2C_ALGO_PCA_H |
3 | 3 | ||
4 | /* Clock speeds for the bus */ | ||
5 | #define I2C_PCA_CON_330kHz 0x00 | ||
6 | #define I2C_PCA_CON_288kHz 0x01 | ||
7 | #define I2C_PCA_CON_217kHz 0x02 | ||
8 | #define I2C_PCA_CON_146kHz 0x03 | ||
9 | #define I2C_PCA_CON_88kHz 0x04 | ||
10 | #define I2C_PCA_CON_59kHz 0x05 | ||
11 | #define I2C_PCA_CON_44kHz 0x06 | ||
12 | #define I2C_PCA_CON_36kHz 0x07 | ||
13 | |||
14 | /* PCA9564 registers */ | ||
15 | #define I2C_PCA_STA 0x00 /* STATUS Read Only */ | ||
16 | #define I2C_PCA_TO 0x00 /* TIMEOUT Write Only */ | ||
17 | #define I2C_PCA_DAT 0x01 /* DATA Read/Write */ | ||
18 | #define I2C_PCA_ADR 0x02 /* OWN ADR Read/Write */ | ||
19 | #define I2C_PCA_CON 0x03 /* CONTROL Read/Write */ | ||
20 | |||
21 | #define I2C_PCA_CON_AA 0x80 /* Assert Acknowledge */ | ||
22 | #define I2C_PCA_CON_ENSIO 0x40 /* Enable */ | ||
23 | #define I2C_PCA_CON_STA 0x20 /* Start */ | ||
24 | #define I2C_PCA_CON_STO 0x10 /* Stop */ | ||
25 | #define I2C_PCA_CON_SI 0x08 /* Serial Interrupt */ | ||
26 | #define I2C_PCA_CON_CR 0x07 /* Clock Rate (MASK) */ | ||
27 | |||
4 | struct i2c_algo_pca_data { | 28 | struct i2c_algo_pca_data { |
5 | int (*get_own) (struct i2c_algo_pca_data *adap); /* Obtain own address */ | 29 | void *data; /* private low level data */ |
6 | int (*get_clock) (struct i2c_algo_pca_data *adap); | 30 | void (*write_byte) (void *data, int reg, int val); |
7 | void (*write_byte) (struct i2c_algo_pca_data *adap, int reg, int val); | 31 | int (*read_byte) (void *data, int reg); |
8 | int (*read_byte) (struct i2c_algo_pca_data *adap, int reg); | 32 | int (*wait_for_completion) (void *data); |
9 | int (*wait_for_interrupt) (struct i2c_algo_pca_data *adap); | 33 | void (*reset_chip) (void *data); |
34 | /* i2c_clock values are defined in linux/i2c-algo-pca.h */ | ||
35 | unsigned int i2c_clock; | ||
10 | }; | 36 | }; |
11 | 37 | ||
12 | int i2c_pca_add_bus(struct i2c_adapter *); | 38 | int i2c_pca_add_bus(struct i2c_adapter *); |
39 | int i2c_pca_add_numbered_bus(struct i2c_adapter *); | ||
13 | 40 | ||
14 | #endif /* _LINUX_I2C_ALGO_PCA_H */ | 41 | #endif /* _LINUX_I2C_ALGO_PCA_H */ |
diff --git a/include/linux/i2c-pca-platform.h b/include/linux/i2c-pca-platform.h new file mode 100644 index 000000000000..3d191873f2d1 --- /dev/null +++ b/include/linux/i2c-pca-platform.h | |||
@@ -0,0 +1,12 @@ | |||
1 | #ifndef I2C_PCA9564_PLATFORM_H | ||
2 | #define I2C_PCA9564_PLATFORM_H | ||
3 | |||
4 | struct i2c_pca9564_pf_platform_data { | ||
5 | int gpio; /* pin to reset chip. driver will work when | ||
6 | * not supplied (negative value), but it | ||
7 | * cannot exit some error conditions then */ | ||
8 | int i2c_clock_speed; /* values are defined in linux/i2c-algo-pca.h */ | ||
9 | int timeout; /* timeout = this value * 10us */ | ||
10 | }; | ||
11 | |||
12 | #endif /* I2C_PCA9564_PLATFORM_H */ | ||