aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnton Vorontsov <avorontsov@ru.mvista.com>2008-10-22 14:21:33 -0400
committerJean Delvare <khali@linux-fr.org>2008-10-22 14:21:33 -0400
commit11f1f2afd6b07729b12aaba479344d7f12d88ff9 (patch)
treeb0744f435b33869d9b2bb832f1df7cb5c9c6f6bc
parent02cf617282c6917484410f86ded3f2d99a05f098 (diff)
i2c: Add info->archdata field
If present the info->archdata is copied into the dev->archdata. Some (OpenFirmware) platforms need it. Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
-rw-r--r--drivers/i2c/i2c-core.c3
-rw-r--r--include/linux/i2c.h2
2 files changed, 5 insertions, 0 deletions
diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c
index 42e852d79ffa..5a485c22660a 100644
--- a/drivers/i2c/i2c-core.c
+++ b/drivers/i2c/i2c-core.c
@@ -266,6 +266,9 @@ i2c_new_device(struct i2c_adapter *adap, struct i2c_board_info const *info)
266 266
267 client->dev.platform_data = info->platform_data; 267 client->dev.platform_data = info->platform_data;
268 268
269 if (info->archdata)
270 client->dev.archdata = *info->archdata;
271
269 client->flags = info->flags; 272 client->flags = info->flags;
270 client->addr = info->addr; 273 client->addr = info->addr;
271 client->irq = info->irq; 274 client->irq = info->irq;
diff --git a/include/linux/i2c.h b/include/linux/i2c.h
index 12d7364ad3f3..33a5992d4936 100644
--- a/include/linux/i2c.h
+++ b/include/linux/i2c.h
@@ -239,6 +239,7 @@ static inline void i2c_set_clientdata(struct i2c_client *dev, void *data)
239 * @flags: to initialize i2c_client.flags 239 * @flags: to initialize i2c_client.flags
240 * @addr: stored in i2c_client.addr 240 * @addr: stored in i2c_client.addr
241 * @platform_data: stored in i2c_client.dev.platform_data 241 * @platform_data: stored in i2c_client.dev.platform_data
242 * @archdata: copied into i2c_client.dev.archdata
242 * @irq: stored in i2c_client.irq 243 * @irq: stored in i2c_client.irq
243 * 244 *
244 * I2C doesn't actually support hardware probing, although controllers and 245 * I2C doesn't actually support hardware probing, although controllers and
@@ -258,6 +259,7 @@ struct i2c_board_info {
258 unsigned short flags; 259 unsigned short flags;
259 unsigned short addr; 260 unsigned short addr;
260 void *platform_data; 261 void *platform_data;
262 struct dev_archdata *archdata;
261 int irq; 263 int irq;
262}; 264};
263 265