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: Jean Delvare <khali@linux-fr.org> Cc: Peter Huewe <peterhuewe@gmx.de>
This commit is contained in:
Родитель
e657e078d3
Коммит
31d178bffc
|
@ -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
|
||||||
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 @@
|
||||||
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 {
|
||||||
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,
|
||||||
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,
|
||||||
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,
|
||||||
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,
|
||||||
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)
|
||||||
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");
|
||||||
|
|
||||||
module_init(i2c_stub_init);
|
module_init(i2c_stub_init);
|
||||||
module_exit(i2c_stub_exit);
|
module_exit(i2c_stub_exit);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче