summaryrefslogtreecommitdiffstats
path: root/include/linux/i2c
diff options
context:
space:
mode:
authorLeilei Shang <shangll@marvell.com>2013-06-07 14:38:17 +0800
committerWolfram Sang <wsa@the-dreams.de>2013-08-07 16:58:07 +0200
commit9d3dda5c0d092d6bc9911bf24de81350d47c6be6 (patch)
tree529b7d061971e6954807f74410b81e9fd5c85016 /include/linux/i2c
parentf480adaf1b7130ad43760f627b762f771fcfc5f5 (diff)
downloadlinux-9d3dda5c0d092d6bc9911bf24de81350d47c6be6.tar.gz
linux-9d3dda5c0d092d6bc9911bf24de81350d47c6be6.tar.bz2
linux-9d3dda5c0d092d6bc9911bf24de81350d47c6be6.zip
i2c: pxa: enable high speed mode for i2c bus
To enter high speed mode, following steps should be done: 1. When running in high speed mode, i2c clock rate is different from standard mode. Clock rate must be set according to specification first. 2. When i2c controller sends a master code and wins arbitration, high speed mode is entered. If you want to enable high speed mode, the following members of platform data should be set to proper value: 1. "high_mode" should be set to "1". 2. "master_code" should be set to "8'b 0000_1xxx"(x is 0 or 1). If no master_code is set, set to default value 0xe. 3. "rate" should be set according to specification. Signed-off-by: Leilei Shang <shangll@marvell.com> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Diffstat (limited to 'include/linux/i2c')
-rw-r--r--include/linux/i2c/pxa-i2c.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/i2c/pxa-i2c.h b/include/linux/i2c/pxa-i2c.h
index 1a9f65e6ec0f..53aab243cbd8 100644
--- a/include/linux/i2c/pxa-i2c.h
+++ b/include/linux/i2c/pxa-i2c.h
@@ -67,6 +67,9 @@ struct i2c_pxa_platform_data {
unsigned int class;
unsigned int use_pio :1;
unsigned int fast_mode :1;
+ unsigned int high_mode:1;
+ unsigned char master_code;
+ unsigned long rate;
};
extern void pxa_set_i2c_info(struct i2c_pxa_platform_data *info);