Commit 31d178bf authored by Jean Delvare's avatar Jean Delvare Committed by Jean Delvare

i2c-stub: Move to drivers/i2c

Move the i2c-stub driver to drivers/i2c, to match the Kconfig entry.
This is less confusing that way.

I also fixed all checkpatch warnings and errors.
Signed-off-by: default avatarJean Delvare <khali@linux-fr.org>
Cc: Peter Huewe <peterhuewe@gmx.de>
parent e657e078
...@@ -8,6 +8,7 @@ obj-$(CONFIG_I2C_SMBUS) += i2c-smbus.o ...@@ -8,6 +8,7 @@ obj-$(CONFIG_I2C_SMBUS) += i2c-smbus.o
obj-$(CONFIG_I2C_CHARDEV) += i2c-dev.o obj-$(CONFIG_I2C_CHARDEV) += i2c-dev.o
obj-$(CONFIG_I2C_MUX) += i2c-mux.o obj-$(CONFIG_I2C_MUX) += i2c-mux.o
obj-y += algos/ busses/ muxes/ obj-y += algos/ busses/ muxes/
obj-$(CONFIG_I2C_STUB) += i2c-stub.o
ccflags-$(CONFIG_I2C_DEBUG_CORE) := -DDEBUG ccflags-$(CONFIG_I2C_DEBUG_CORE) := -DDEBUG
CFLAGS_i2c-core.o := -Wno-deprecated-declarations CFLAGS_i2c-core.o := -Wno-deprecated-declarations
...@@ -85,7 +85,6 @@ obj-$(CONFIG_I2C_ACORN) += i2c-acorn.o ...@@ -85,7 +85,6 @@ obj-$(CONFIG_I2C_ACORN) += i2c-acorn.o
obj-$(CONFIG_I2C_ELEKTOR) += i2c-elektor.o obj-$(CONFIG_I2C_ELEKTOR) += i2c-elektor.o
obj-$(CONFIG_I2C_PCA_ISA) += i2c-pca-isa.o obj-$(CONFIG_I2C_PCA_ISA) += i2c-pca-isa.o
obj-$(CONFIG_I2C_SIBYTE) += i2c-sibyte.o obj-$(CONFIG_I2C_SIBYTE) += i2c-sibyte.o
obj-$(CONFIG_I2C_STUB) += i2c-stub.o
obj-$(CONFIG_SCx200_ACB) += scx200_acb.o obj-$(CONFIG_SCx200_ACB) += scx200_acb.o
obj-$(CONFIG_SCx200_I2C) += scx200_i2c.o obj-$(CONFIG_SCx200_I2C) += scx200_i2c.o
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
i2c-stub.c - I2C/SMBus chip emulator i2c-stub.c - I2C/SMBus chip emulator
Copyright (c) 2004 Mark M. Hoffman <mhoffman@lightlink.com> Copyright (c) 2004 Mark M. Hoffman <mhoffman@lightlink.com>
Copyright (C) 2007 Jean Delvare <khali@linux-fr.org> Copyright (C) 2007, 2012 Jean Delvare <khali@linux-fr.org>
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
...@@ -51,8 +51,8 @@ struct stub_chip { ...@@ -51,8 +51,8 @@ struct stub_chip {
static struct stub_chip *stub_chips; static struct stub_chip *stub_chips;
/* Return negative errno on error. */ /* Return negative errno on error. */
static s32 stub_xfer(struct i2c_adapter * adap, u16 addr, unsigned short flags, static s32 stub_xfer(struct i2c_adapter *adap, u16 addr, unsigned short flags,
char read_write, u8 command, int size, union i2c_smbus_data * data) char read_write, u8 command, int size, union i2c_smbus_data *data)
{ {
s32 ret; s32 ret;
int i, len; int i, len;
...@@ -78,14 +78,14 @@ static s32 stub_xfer(struct i2c_adapter * adap, u16 addr, unsigned short flags, ...@@ -78,14 +78,14 @@ static s32 stub_xfer(struct i2c_adapter * adap, u16 addr, unsigned short flags,
case I2C_SMBUS_BYTE: case I2C_SMBUS_BYTE:
if (read_write == I2C_SMBUS_WRITE) { if (read_write == I2C_SMBUS_WRITE) {
chip->pointer = command; chip->pointer = command;
dev_dbg(&adap->dev, "smbus byte - addr 0x%02x, " dev_dbg(&adap->dev,
"wrote 0x%02x.\n", "smbus byte - addr 0x%02x, wrote 0x%02x.\n",
addr, command); addr, command);
} else { } else {
data->byte = chip->words[chip->pointer++] & 0xff; data->byte = chip->words[chip->pointer++] & 0xff;
dev_dbg(&adap->dev, "smbus byte - addr 0x%02x, " dev_dbg(&adap->dev,
"read 0x%02x.\n", "smbus byte - addr 0x%02x, read 0x%02x.\n",
addr, data->byte); addr, data->byte);
} }
ret = 0; ret = 0;
...@@ -95,14 +95,14 @@ static s32 stub_xfer(struct i2c_adapter * adap, u16 addr, unsigned short flags, ...@@ -95,14 +95,14 @@ static s32 stub_xfer(struct i2c_adapter * adap, u16 addr, unsigned short flags,
if (read_write == I2C_SMBUS_WRITE) { if (read_write == I2C_SMBUS_WRITE) {
chip->words[command] &= 0xff00; chip->words[command] &= 0xff00;
chip->words[command] |= data->byte; chip->words[command] |= data->byte;
dev_dbg(&adap->dev, "smbus byte data - addr 0x%02x, " dev_dbg(&adap->dev,
"wrote 0x%02x at 0x%02x.\n", "smbus byte data - addr 0x%02x, wrote 0x%02x at 0x%02x.\n",
addr, data->byte, command); addr, data->byte, command);
} else { } else {
data->byte = chip->words[command] & 0xff; data->byte = chip->words[command] & 0xff;
dev_dbg(&adap->dev, "smbus byte data - addr 0x%02x, " dev_dbg(&adap->dev,
"read 0x%02x at 0x%02x.\n", "smbus byte data - addr 0x%02x, read 0x%02x at 0x%02x.\n",
addr, data->byte, command); addr, data->byte, command);
} }
chip->pointer = command + 1; chip->pointer = command + 1;
...@@ -112,14 +112,14 @@ static s32 stub_xfer(struct i2c_adapter * adap, u16 addr, unsigned short flags, ...@@ -112,14 +112,14 @@ static s32 stub_xfer(struct i2c_adapter * adap, u16 addr, unsigned short flags,
case I2C_SMBUS_WORD_DATA: case I2C_SMBUS_WORD_DATA:
if (read_write == I2C_SMBUS_WRITE) { if (read_write == I2C_SMBUS_WRITE) {
chip->words[command] = data->word; chip->words[command] = data->word;
dev_dbg(&adap->dev, "smbus word data - addr 0x%02x, " dev_dbg(&adap->dev,
"wrote 0x%04x at 0x%02x.\n", "smbus word data - addr 0x%02x, wrote 0x%04x at 0x%02x.\n",
addr, data->word, command); addr, data->word, command);
} else { } else {
data->word = chip->words[command]; data->word = chip->words[command];
dev_dbg(&adap->dev, "smbus word data - addr 0x%02x, " dev_dbg(&adap->dev,
"read 0x%04x at 0x%02x.\n", "smbus word data - addr 0x%02x, read 0x%04x at 0x%02x.\n",
addr, data->word, command); addr, data->word, command);
} }
ret = 0; ret = 0;
...@@ -132,17 +132,17 @@ static s32 stub_xfer(struct i2c_adapter * adap, u16 addr, unsigned short flags, ...@@ -132,17 +132,17 @@ static s32 stub_xfer(struct i2c_adapter * adap, u16 addr, unsigned short flags,
chip->words[command + i] &= 0xff00; chip->words[command + i] &= 0xff00;
chip->words[command + i] |= data->block[1 + i]; chip->words[command + i] |= data->block[1 + i];
} }
dev_dbg(&adap->dev, "i2c block data - addr 0x%02x, " dev_dbg(&adap->dev,
"wrote %d bytes at 0x%02x.\n", "i2c block data - addr 0x%02x, wrote %d bytes at 0x%02x.\n",
addr, len, command); addr, len, command);
} else { } else {
for (i = 0; i < len; i++) { for (i = 0; i < len; i++) {
data->block[1 + i] = data->block[1 + i] =
chip->words[command + i] & 0xff; chip->words[command + i] & 0xff;
} }
dev_dbg(&adap->dev, "i2c block data - addr 0x%02x, " dev_dbg(&adap->dev,
"read %d bytes at 0x%02x.\n", "i2c block data - addr 0x%02x, read %d bytes at 0x%02x.\n",
addr, len, command); addr, len, command);
} }
ret = 0; ret = 0;
...@@ -179,25 +179,24 @@ static int __init i2c_stub_init(void) ...@@ -179,25 +179,24 @@ static int __init i2c_stub_init(void)
int i, ret; int i, ret;
if (!chip_addr[0]) { if (!chip_addr[0]) {
printk(KERN_ERR "i2c-stub: Please specify a chip address\n"); pr_err("i2c-stub: Please specify a chip address\n");
return -ENODEV; return -ENODEV;
} }
for (i = 0; i < MAX_CHIPS && chip_addr[i]; i++) { for (i = 0; i < MAX_CHIPS && chip_addr[i]; i++) {
if (chip_addr[i] < 0x03 || chip_addr[i] > 0x77) { if (chip_addr[i] < 0x03 || chip_addr[i] > 0x77) {
printk(KERN_ERR "i2c-stub: Invalid chip address " pr_err("i2c-stub: Invalid chip address 0x%02x\n",
"0x%02x\n", chip_addr[i]); chip_addr[i]);
return -EINVAL; return -EINVAL;
} }
printk(KERN_INFO "i2c-stub: Virtual chip at 0x%02x\n", pr_info("i2c-stub: Virtual chip at 0x%02x\n", chip_addr[i]);
chip_addr[i]);
} }
/* Allocate memory for all chips at once */ /* Allocate memory for all chips at once */
stub_chips = kzalloc(i * sizeof(struct stub_chip), GFP_KERNEL); stub_chips = kzalloc(i * sizeof(struct stub_chip), GFP_KERNEL);
if (!stub_chips) { if (!stub_chips) {
printk(KERN_ERR "i2c-stub: Out of memory\n"); pr_err("i2c-stub: Out of memory\n");
return -ENOMEM; return -ENOMEM;
} }
...@@ -219,4 +218,3 @@ MODULE_LICENSE("GPL"); ...@@ -219,4 +218,3 @@ MODULE_LICENSE("GPL");
module_init(i2c_stub_init); module_init(i2c_stub_init);
module_exit(i2c_stub_exit); module_exit(i2c_stub_exit);
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment