mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-16 05:26:07 +00:00
1-Wire bus drivers for v6.14
1. ds2482: Add support for handling the VCC regulator supply and three more minor improvements/cleanups. 2. Constify 'struct bin_attribute' in all drivers. 3. W1 core: use sysfs_emit() instead of sprintf(), as preferred coding style. -----BEGIN PGP SIGNATURE----- iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAmdz87gQHGtyemtAa2Vy bmVsLm9yZwAKCRDBN2bmhouD11kiD/0TAZscT6rerLQ+O6XOcs/3aH0OWHAmPdqk A4axstzDnvnc2z6/0yikkWAdhsUR/vTQFXI4r9Kc8krQPvmlsdqzBBComkeO+GTt AgdWxcZMqHAdPyYSHEiNK4+k8WSkONX1p+jmD3pHDIr+eL8NC+7MwIwG9egh1l60 ariAuJZuqTy8hycx9PTukmc1hk8e2T3+/XkYia/hyIDJuHm7Q84DO5jcuy64/ndQ VSSm1Kz+0Nh9tIOwNXO5thImAZHFY+WB9WAhKpF/cZdrW3OMhZnHvLM+Vebh6Kgr YiPQwx3sj7Juqvm8l/EaRAmij5BVXyrkpDriXxYt4RaX0+cFzGsrrpvSKxYQGTY2 6EQp61biCvHQDV7oKScAsHSqPIslMQmgE/rkeal5LSfccH2QeLm4naJ627fIJ/z4 sbrPtAtgXfsJCEaPeV+uw3D3q0N38Qi4rBdnj3YoggKu6AqgO9V0h6qBmf/3tBRA +um62dFcuwM872PRnbpiy7K0Y0Ze11BJk2DQdFGOQOZqSZqKxMqVRRKr8TNV5l3v lZQC1fhlg1A7IYq3CWfgsbqOK6IBOMI0o7FYOjjloOI2xsweh1vGlfs7O5YVnxL1 b5GeTT8WbcC93mnU+g6yvhPLHd77Ula4rqC6fMDwkWUYhJ29ucFY2YM0Lx2/FypJ p7AW9Y1emA== =Z51z -----END PGP SIGNATURE----- Merge tag 'w1-drv-6.14' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/krzk/linux-w1 into char-misc-next Krzysztof writes: 1-Wire bus drivers for v6.14 1. ds2482: Add support for handling the VCC regulator supply and three more minor improvements/cleanups. 2. Constify 'struct bin_attribute' in all drivers. 3. W1 core: use sysfs_emit() instead of sprintf(), as preferred coding style. * tag 'w1-drv-6.14' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/krzk/linux-w1: w1: core: use sysfs_emit() instead of sprintf() w1: ds28e04: Constify 'struct bin_attribute' w1: ds2805: Constify 'struct bin_attribute' w1: ds2781: Constify 'struct bin_attribute' w1: ds2780: Constify 'struct bin_attribute' w1: ds2438: Constify 'struct bin_attribute' w1: ds2433: Constify 'struct bin_attribute' w1: ds2431: Constify 'struct bin_attribute' w1: ds2430: Constify 'struct bin_attribute' w1: ds2413: Constify 'struct bin_attribute' w1: ds2408: Constify 'struct bin_attribute' w1: ds2406: Constify 'struct bin_attribute' w1: Constify 'struct bin_attribute' w1: ds2482: Fix datasheet URL w1: ds2482: Add regulator support w1: ds2482: switch to devm_kzalloc() from kzalloc() dt-bindings: w1: ds2482: Add vcc-supply property
This commit is contained in:
commit
b580b17d06
@ -25,6 +25,8 @@ properties:
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
vcc-supply: true
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
@ -7,7 +7,7 @@
|
||||
* It is a I2C to 1-wire bridge.
|
||||
* There are two variations: -100 and -800, which have 1 or 8 1-wire ports.
|
||||
* The complete datasheet can be obtained from MAXIM's website at:
|
||||
* http://www.maxim-ic.com/quick_view2.cfm/qv_pk/4382
|
||||
* https://www.analog.com/en/products/ds2482-100.html
|
||||
*/
|
||||
|
||||
#include <linux/module.h>
|
||||
@ -15,6 +15,7 @@
|
||||
#include <linux/slab.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
|
||||
#include <linux/w1.h>
|
||||
|
||||
@ -445,17 +446,20 @@ static int ds2482_probe(struct i2c_client *client)
|
||||
int err = -ENODEV;
|
||||
int temp1;
|
||||
int idx;
|
||||
int ret;
|
||||
|
||||
if (!i2c_check_functionality(client->adapter,
|
||||
I2C_FUNC_SMBUS_WRITE_BYTE_DATA |
|
||||
I2C_FUNC_SMBUS_BYTE))
|
||||
return -ENODEV;
|
||||
|
||||
data = kzalloc(sizeof(struct ds2482_data), GFP_KERNEL);
|
||||
if (!data) {
|
||||
err = -ENOMEM;
|
||||
goto exit;
|
||||
}
|
||||
data = devm_kzalloc(&client->dev, sizeof(struct ds2482_data), GFP_KERNEL);
|
||||
if (!data)
|
||||
return -ENOMEM;
|
||||
|
||||
ret = devm_regulator_get_enable(&client->dev, "vcc");
|
||||
if (ret)
|
||||
return dev_err_probe(&client->dev, ret, "Failed to enable regulator\n");
|
||||
|
||||
data->client = client;
|
||||
i2c_set_clientdata(client, data);
|
||||
@ -463,7 +467,7 @@ static int ds2482_probe(struct i2c_client *client)
|
||||
/* Reset the device (sets the read_ptr to status) */
|
||||
if (ds2482_send_cmd(data, DS2482_CMD_RESET) < 0) {
|
||||
dev_warn(&client->dev, "DS2482 reset failed.\n");
|
||||
goto exit_free;
|
||||
return err;
|
||||
}
|
||||
|
||||
/* Sleep at least 525ns to allow the reset to complete */
|
||||
@ -474,7 +478,7 @@ static int ds2482_probe(struct i2c_client *client)
|
||||
if (temp1 != (DS2482_REG_STS_LL | DS2482_REG_STS_RST)) {
|
||||
dev_warn(&client->dev, "DS2482 reset status "
|
||||
"0x%02X - not a DS2482\n", temp1);
|
||||
goto exit_free;
|
||||
return err;
|
||||
}
|
||||
|
||||
/* Detect the 8-port version */
|
||||
@ -516,9 +520,6 @@ exit_w1_remove:
|
||||
if (data->w1_ch[idx].pdev != NULL)
|
||||
w1_remove_master_device(&data->w1_ch[idx].w1_bm);
|
||||
}
|
||||
exit_free:
|
||||
kfree(data);
|
||||
exit:
|
||||
return err;
|
||||
}
|
||||
|
||||
@ -532,9 +533,6 @@ static void ds2482_remove(struct i2c_client *client)
|
||||
if (data->w1_ch[idx].pdev != NULL)
|
||||
w1_remove_master_device(&data->w1_ch[idx].w1_bm);
|
||||
}
|
||||
|
||||
/* Free the memory */
|
||||
kfree(data);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -24,7 +24,7 @@
|
||||
|
||||
static ssize_t w1_f12_read_state(
|
||||
struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr,
|
||||
const struct bin_attribute *bin_attr,
|
||||
char *buf, loff_t off, size_t count)
|
||||
{
|
||||
u8 w1_buf[6] = {W1_F12_FUNC_READ_STATUS, 7, 0, 0, 0, 0};
|
||||
@ -61,7 +61,7 @@ static ssize_t w1_f12_read_state(
|
||||
|
||||
static ssize_t w1_f12_write_output(
|
||||
struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr,
|
||||
const struct bin_attribute *bin_attr,
|
||||
char *buf, loff_t off, size_t count)
|
||||
{
|
||||
struct w1_slave *sl = kobj_to_w1_slave(kobj);
|
||||
@ -95,14 +95,14 @@ static ssize_t w1_f12_write_output(
|
||||
}
|
||||
|
||||
#define NB_SYSFS_BIN_FILES 2
|
||||
static struct bin_attribute w1_f12_sysfs_bin_files[NB_SYSFS_BIN_FILES] = {
|
||||
static const struct bin_attribute w1_f12_sysfs_bin_files[NB_SYSFS_BIN_FILES] = {
|
||||
{
|
||||
.attr = {
|
||||
.name = "state",
|
||||
.mode = 0444,
|
||||
},
|
||||
.size = 1,
|
||||
.read = w1_f12_read_state,
|
||||
.read_new = w1_f12_read_state,
|
||||
},
|
||||
{
|
||||
.attr = {
|
||||
@ -110,7 +110,7 @@ static struct bin_attribute w1_f12_sysfs_bin_files[NB_SYSFS_BIN_FILES] = {
|
||||
.mode = 0664,
|
||||
},
|
||||
.size = 1,
|
||||
.write = w1_f12_write_output,
|
||||
.write_new = w1_f12_write_output,
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -65,8 +65,8 @@ static int _read_reg(struct w1_slave *sl, u8 address, unsigned char *buf)
|
||||
}
|
||||
|
||||
static ssize_t state_read(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr, char *buf, loff_t off,
|
||||
size_t count)
|
||||
const struct bin_attribute *bin_attr, char *buf,
|
||||
loff_t off, size_t count)
|
||||
{
|
||||
dev_dbg(&kobj_to_w1_slave(kobj)->dev,
|
||||
"Reading %s kobj: %p, off: %0#10x, count: %zu, buff addr: %p",
|
||||
@ -77,7 +77,7 @@ static ssize_t state_read(struct file *filp, struct kobject *kobj,
|
||||
}
|
||||
|
||||
static ssize_t output_read(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr, char *buf,
|
||||
const struct bin_attribute *bin_attr, char *buf,
|
||||
loff_t off, size_t count)
|
||||
{
|
||||
dev_dbg(&kobj_to_w1_slave(kobj)->dev,
|
||||
@ -90,7 +90,7 @@ static ssize_t output_read(struct file *filp, struct kobject *kobj,
|
||||
}
|
||||
|
||||
static ssize_t activity_read(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr, char *buf,
|
||||
const struct bin_attribute *bin_attr, char *buf,
|
||||
loff_t off, size_t count)
|
||||
{
|
||||
dev_dbg(&kobj_to_w1_slave(kobj)->dev,
|
||||
@ -103,8 +103,8 @@ static ssize_t activity_read(struct file *filp, struct kobject *kobj,
|
||||
}
|
||||
|
||||
static ssize_t cond_search_mask_read(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr, char *buf,
|
||||
loff_t off, size_t count)
|
||||
const struct bin_attribute *bin_attr,
|
||||
char *buf, loff_t off, size_t count)
|
||||
{
|
||||
dev_dbg(&kobj_to_w1_slave(kobj)->dev,
|
||||
"Reading %s kobj: %p, off: %0#10x, count: %zu, buff addr: %p",
|
||||
@ -117,7 +117,7 @@ static ssize_t cond_search_mask_read(struct file *filp, struct kobject *kobj,
|
||||
|
||||
static ssize_t cond_search_polarity_read(struct file *filp,
|
||||
struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr,
|
||||
const struct bin_attribute *bin_attr,
|
||||
char *buf, loff_t off, size_t count)
|
||||
{
|
||||
if (count != 1 || off != 0)
|
||||
@ -127,8 +127,8 @@ static ssize_t cond_search_polarity_read(struct file *filp,
|
||||
}
|
||||
|
||||
static ssize_t status_control_read(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr, char *buf,
|
||||
loff_t off, size_t count)
|
||||
const struct bin_attribute *bin_attr,
|
||||
char *buf, loff_t off, size_t count)
|
||||
{
|
||||
if (count != 1 || off != 0)
|
||||
return -EFAULT;
|
||||
@ -160,7 +160,7 @@ static bool optional_read_back_valid(struct w1_slave *sl, u8 expected)
|
||||
#endif
|
||||
|
||||
static ssize_t output_write(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr, char *buf,
|
||||
const struct bin_attribute *bin_attr, char *buf,
|
||||
loff_t off, size_t count)
|
||||
{
|
||||
struct w1_slave *sl = kobj_to_w1_slave(kobj);
|
||||
@ -210,7 +210,7 @@ out:
|
||||
* Writing to the activity file resets the activity latches.
|
||||
*/
|
||||
static ssize_t activity_write(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr, char *buf,
|
||||
const struct bin_attribute *bin_attr, char *buf,
|
||||
loff_t off, size_t count)
|
||||
{
|
||||
struct w1_slave *sl = kobj_to_w1_slave(kobj);
|
||||
@ -240,8 +240,8 @@ error:
|
||||
}
|
||||
|
||||
static ssize_t status_control_write(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr, char *buf,
|
||||
loff_t off, size_t count)
|
||||
const struct bin_attribute *bin_attr,
|
||||
char *buf, loff_t off, size_t count)
|
||||
{
|
||||
struct w1_slave *sl = kobj_to_w1_slave(kobj);
|
||||
u8 w1_buf[4];
|
||||
@ -310,14 +310,14 @@ out:
|
||||
return res;
|
||||
}
|
||||
|
||||
static BIN_ATTR_RO(state, 1);
|
||||
static BIN_ATTR_RW(output, 1);
|
||||
static BIN_ATTR_RW(activity, 1);
|
||||
static BIN_ATTR_RO(cond_search_mask, 1);
|
||||
static BIN_ATTR_RO(cond_search_polarity, 1);
|
||||
static BIN_ATTR_RW(status_control, 1);
|
||||
static const BIN_ATTR_RO(state, 1);
|
||||
static const BIN_ATTR_RW(output, 1);
|
||||
static const BIN_ATTR_RW(activity, 1);
|
||||
static const BIN_ATTR_RO(cond_search_mask, 1);
|
||||
static const BIN_ATTR_RO(cond_search_polarity, 1);
|
||||
static const BIN_ATTR_RW(status_control, 1);
|
||||
|
||||
static struct bin_attribute *w1_f29_bin_attrs[] = {
|
||||
static const struct bin_attribute *const w1_f29_bin_attrs[] = {
|
||||
&bin_attr_state,
|
||||
&bin_attr_output,
|
||||
&bin_attr_activity,
|
||||
@ -328,7 +328,7 @@ static struct bin_attribute *w1_f29_bin_attrs[] = {
|
||||
};
|
||||
|
||||
static const struct attribute_group w1_f29_group = {
|
||||
.bin_attrs = w1_f29_bin_attrs,
|
||||
.bin_attrs_new = w1_f29_bin_attrs,
|
||||
};
|
||||
|
||||
static const struct attribute_group *w1_f29_groups[] = {
|
||||
|
@ -25,8 +25,8 @@
|
||||
#define W1_F3A_INVALID_PIO_STATE 0xFF
|
||||
|
||||
static ssize_t state_read(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr, char *buf, loff_t off,
|
||||
size_t count)
|
||||
const struct bin_attribute *bin_attr, char *buf,
|
||||
loff_t off, size_t count)
|
||||
{
|
||||
struct w1_slave *sl = kobj_to_w1_slave(kobj);
|
||||
unsigned int retries = W1_F3A_RETRIES;
|
||||
@ -78,10 +78,10 @@ out:
|
||||
return bytes_read;
|
||||
}
|
||||
|
||||
static BIN_ATTR_RO(state, 1);
|
||||
static const BIN_ATTR_RO(state, 1);
|
||||
|
||||
static ssize_t output_write(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr, char *buf,
|
||||
const struct bin_attribute *bin_attr, char *buf,
|
||||
loff_t off, size_t count)
|
||||
{
|
||||
struct w1_slave *sl = kobj_to_w1_slave(kobj);
|
||||
@ -128,16 +128,16 @@ out:
|
||||
return bytes_written;
|
||||
}
|
||||
|
||||
static BIN_ATTR(output, 0664, NULL, output_write, 1);
|
||||
static const BIN_ATTR(output, 0664, NULL, output_write, 1);
|
||||
|
||||
static struct bin_attribute *w1_f3a_bin_attrs[] = {
|
||||
static const struct bin_attribute *const w1_f3a_bin_attrs[] = {
|
||||
&bin_attr_state,
|
||||
&bin_attr_output,
|
||||
NULL,
|
||||
};
|
||||
|
||||
static const struct attribute_group w1_f3a_group = {
|
||||
.bin_attrs = w1_f3a_bin_attrs,
|
||||
.bin_attrs_new = w1_f3a_bin_attrs,
|
||||
};
|
||||
|
||||
static const struct attribute_group *w1_f3a_groups[] = {
|
||||
|
@ -95,7 +95,7 @@ static int w1_f14_readblock(struct w1_slave *sl, int off, int count, char *buf)
|
||||
}
|
||||
|
||||
static ssize_t eeprom_read(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr, char *buf,
|
||||
const struct bin_attribute *bin_attr, char *buf,
|
||||
loff_t off, size_t count)
|
||||
{
|
||||
struct w1_slave *sl = kobj_to_w1_slave(kobj);
|
||||
@ -202,7 +202,7 @@ retry:
|
||||
}
|
||||
|
||||
static ssize_t eeprom_write(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr, char *buf,
|
||||
const struct bin_attribute *bin_attr, char *buf,
|
||||
loff_t off, size_t count)
|
||||
{
|
||||
struct w1_slave *sl = kobj_to_w1_slave(kobj);
|
||||
@ -263,15 +263,15 @@ out_up:
|
||||
return count;
|
||||
}
|
||||
|
||||
static BIN_ATTR_RW(eeprom, W1_F14_EEPROM_SIZE);
|
||||
static const BIN_ATTR_RW(eeprom, W1_F14_EEPROM_SIZE);
|
||||
|
||||
static struct bin_attribute *w1_f14_bin_attrs[] = {
|
||||
static const struct bin_attribute *const w1_f14_bin_attrs[] = {
|
||||
&bin_attr_eeprom,
|
||||
NULL,
|
||||
};
|
||||
|
||||
static const struct attribute_group w1_f14_group = {
|
||||
.bin_attrs = w1_f14_bin_attrs,
|
||||
.bin_attrs_new = w1_f14_bin_attrs,
|
||||
};
|
||||
|
||||
static const struct attribute_group *w1_f14_groups[] = {
|
||||
|
@ -95,7 +95,7 @@ static int w1_f2d_readblock(struct w1_slave *sl, int off, int count, char *buf)
|
||||
}
|
||||
|
||||
static ssize_t eeprom_read(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr, char *buf,
|
||||
const struct bin_attribute *bin_attr, char *buf,
|
||||
loff_t off, size_t count)
|
||||
{
|
||||
struct w1_slave *sl = kobj_to_w1_slave(kobj);
|
||||
@ -201,7 +201,7 @@ retry:
|
||||
}
|
||||
|
||||
static ssize_t eeprom_write(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr, char *buf,
|
||||
const struct bin_attribute *bin_attr, char *buf,
|
||||
loff_t off, size_t count)
|
||||
{
|
||||
struct w1_slave *sl = kobj_to_w1_slave(kobj);
|
||||
@ -262,15 +262,15 @@ out_up:
|
||||
return count;
|
||||
}
|
||||
|
||||
static BIN_ATTR_RW(eeprom, W1_F2D_EEPROM_SIZE);
|
||||
static const BIN_ATTR_RW(eeprom, W1_F2D_EEPROM_SIZE);
|
||||
|
||||
static struct bin_attribute *w1_f2d_bin_attrs[] = {
|
||||
static const struct bin_attribute *const w1_f2d_bin_attrs[] = {
|
||||
&bin_attr_eeprom,
|
||||
NULL,
|
||||
};
|
||||
|
||||
static const struct attribute_group w1_f2d_group = {
|
||||
.bin_attrs = w1_f2d_bin_attrs,
|
||||
.bin_attrs_new = w1_f2d_bin_attrs,
|
||||
};
|
||||
|
||||
static const struct attribute_group *w1_f2d_groups[] = {
|
||||
|
@ -110,7 +110,7 @@ static int w1_f23_refresh_block(struct w1_slave *sl, struct w1_f23_data *data,
|
||||
#endif /* CONFIG_W1_SLAVE_DS2433_CRC */
|
||||
|
||||
static ssize_t eeprom_read(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr, char *buf,
|
||||
const struct bin_attribute *bin_attr, char *buf,
|
||||
loff_t off, size_t count)
|
||||
{
|
||||
struct w1_slave *sl = kobj_to_w1_slave(kobj);
|
||||
@ -224,7 +224,7 @@ static int w1_f23_write(struct w1_slave *sl, int addr, int len, const u8 *data)
|
||||
}
|
||||
|
||||
static ssize_t eeprom_write(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr, char *buf,
|
||||
const struct bin_attribute *bin_attr, char *buf,
|
||||
loff_t off, size_t count)
|
||||
{
|
||||
struct w1_slave *sl = kobj_to_w1_slave(kobj);
|
||||
@ -274,27 +274,27 @@ out_up:
|
||||
return count;
|
||||
}
|
||||
|
||||
static struct bin_attribute bin_attr_f23_eeprom = {
|
||||
static const struct bin_attribute bin_attr_f23_eeprom = {
|
||||
.attr = { .name = "eeprom", .mode = 0644 },
|
||||
.read = eeprom_read,
|
||||
.write = eeprom_write,
|
||||
.read_new = eeprom_read,
|
||||
.write_new = eeprom_write,
|
||||
.size = W1_EEPROM_DS2433_SIZE,
|
||||
};
|
||||
|
||||
static struct bin_attribute bin_attr_f43_eeprom = {
|
||||
static const struct bin_attribute bin_attr_f43_eeprom = {
|
||||
.attr = { .name = "eeprom", .mode = 0644 },
|
||||
.read = eeprom_read,
|
||||
.write = eeprom_write,
|
||||
.read_new = eeprom_read,
|
||||
.write_new = eeprom_write,
|
||||
.size = W1_EEPROM_DS28EC20_SIZE,
|
||||
};
|
||||
|
||||
static struct bin_attribute *w1_f23_bin_attributes[] = {
|
||||
static const struct bin_attribute *const w1_f23_bin_attributes[] = {
|
||||
&bin_attr_f23_eeprom,
|
||||
NULL,
|
||||
};
|
||||
|
||||
static const struct attribute_group w1_f23_group = {
|
||||
.bin_attrs = w1_f23_bin_attributes,
|
||||
.bin_attrs_new = w1_f23_bin_attributes,
|
||||
};
|
||||
|
||||
static const struct attribute_group *w1_f23_groups[] = {
|
||||
@ -302,13 +302,13 @@ static const struct attribute_group *w1_f23_groups[] = {
|
||||
NULL,
|
||||
};
|
||||
|
||||
static struct bin_attribute *w1_f43_bin_attributes[] = {
|
||||
static const struct bin_attribute *const w1_f43_bin_attributes[] = {
|
||||
&bin_attr_f43_eeprom,
|
||||
NULL,
|
||||
};
|
||||
|
||||
static const struct attribute_group w1_f43_group = {
|
||||
.bin_attrs = w1_f43_bin_attributes,
|
||||
.bin_attrs_new = w1_f43_bin_attributes,
|
||||
};
|
||||
|
||||
static const struct attribute_group *w1_f43_groups[] = {
|
||||
|
@ -288,7 +288,7 @@ static int w1_ds2438_get_current(struct w1_slave *sl, int16_t *voltage)
|
||||
}
|
||||
|
||||
static ssize_t iad_write(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr, char *buf,
|
||||
const struct bin_attribute *bin_attr, char *buf,
|
||||
loff_t off, size_t count)
|
||||
{
|
||||
struct w1_slave *sl = kobj_to_w1_slave(kobj);
|
||||
@ -310,7 +310,7 @@ static ssize_t iad_write(struct file *filp, struct kobject *kobj,
|
||||
}
|
||||
|
||||
static ssize_t iad_read(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr, char *buf,
|
||||
const struct bin_attribute *bin_attr, char *buf,
|
||||
loff_t off, size_t count)
|
||||
{
|
||||
struct w1_slave *sl = kobj_to_w1_slave(kobj);
|
||||
@ -331,7 +331,7 @@ static ssize_t iad_read(struct file *filp, struct kobject *kobj,
|
||||
}
|
||||
|
||||
static ssize_t page0_read(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr, char *buf,
|
||||
const struct bin_attribute *bin_attr, char *buf,
|
||||
loff_t off, size_t count)
|
||||
{
|
||||
struct w1_slave *sl = kobj_to_w1_slave(kobj);
|
||||
@ -361,7 +361,7 @@ static ssize_t page0_read(struct file *filp, struct kobject *kobj,
|
||||
}
|
||||
|
||||
static ssize_t page1_read(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr, char *buf,
|
||||
const struct bin_attribute *bin_attr, char *buf,
|
||||
loff_t off, size_t count)
|
||||
{
|
||||
struct w1_slave *sl = kobj_to_w1_slave(kobj);
|
||||
@ -391,7 +391,7 @@ static ssize_t page1_read(struct file *filp, struct kobject *kobj,
|
||||
}
|
||||
|
||||
static ssize_t offset_write(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr, char *buf,
|
||||
const struct bin_attribute *bin_attr, char *buf,
|
||||
loff_t off, size_t count)
|
||||
{
|
||||
struct w1_slave *sl = kobj_to_w1_slave(kobj);
|
||||
@ -410,7 +410,7 @@ static ssize_t offset_write(struct file *filp, struct kobject *kobj,
|
||||
}
|
||||
|
||||
static ssize_t temperature_read(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr, char *buf,
|
||||
const struct bin_attribute *bin_attr, char *buf,
|
||||
loff_t off, size_t count)
|
||||
{
|
||||
struct w1_slave *sl = kobj_to_w1_slave(kobj);
|
||||
@ -431,7 +431,7 @@ static ssize_t temperature_read(struct file *filp, struct kobject *kobj,
|
||||
}
|
||||
|
||||
static ssize_t vad_read(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr, char *buf,
|
||||
const struct bin_attribute *bin_attr, char *buf,
|
||||
loff_t off, size_t count)
|
||||
{
|
||||
struct w1_slave *sl = kobj_to_w1_slave(kobj);
|
||||
@ -452,7 +452,7 @@ static ssize_t vad_read(struct file *filp, struct kobject *kobj,
|
||||
}
|
||||
|
||||
static ssize_t vdd_read(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr, char *buf,
|
||||
const struct bin_attribute *bin_attr, char *buf,
|
||||
loff_t off, size_t count)
|
||||
{
|
||||
struct w1_slave *sl = kobj_to_w1_slave(kobj);
|
||||
@ -472,15 +472,15 @@ static ssize_t vdd_read(struct file *filp, struct kobject *kobj,
|
||||
return ret;
|
||||
}
|
||||
|
||||
static BIN_ATTR_RW(iad, 0);
|
||||
static BIN_ATTR_RO(page0, DS2438_PAGE_SIZE);
|
||||
static BIN_ATTR_RO(page1, DS2438_PAGE_SIZE);
|
||||
static BIN_ATTR_WO(offset, 2);
|
||||
static BIN_ATTR_RO(temperature, 0/* real length varies */);
|
||||
static BIN_ATTR_RO(vad, 0/* real length varies */);
|
||||
static BIN_ATTR_RO(vdd, 0/* real length varies */);
|
||||
static const BIN_ATTR_RW(iad, 0);
|
||||
static const BIN_ATTR_RO(page0, DS2438_PAGE_SIZE);
|
||||
static const BIN_ATTR_RO(page1, DS2438_PAGE_SIZE);
|
||||
static const BIN_ATTR_WO(offset, 2);
|
||||
static const BIN_ATTR_RO(temperature, 0/* real length varies */);
|
||||
static const BIN_ATTR_RO(vad, 0/* real length varies */);
|
||||
static const BIN_ATTR_RO(vdd, 0/* real length varies */);
|
||||
|
||||
static struct bin_attribute *w1_ds2438_bin_attrs[] = {
|
||||
static const struct bin_attribute *const w1_ds2438_bin_attrs[] = {
|
||||
&bin_attr_iad,
|
||||
&bin_attr_page0,
|
||||
&bin_attr_page1,
|
||||
@ -492,7 +492,7 @@ static struct bin_attribute *w1_ds2438_bin_attrs[] = {
|
||||
};
|
||||
|
||||
static const struct attribute_group w1_ds2438_group = {
|
||||
.bin_attrs = w1_ds2438_bin_attrs,
|
||||
.bin_attrs_new = w1_ds2438_bin_attrs,
|
||||
};
|
||||
|
||||
static const struct attribute_group *w1_ds2438_groups[] = {
|
||||
|
@ -87,7 +87,7 @@ int w1_ds2780_eeprom_cmd(struct device *dev, int addr, int cmd)
|
||||
EXPORT_SYMBOL(w1_ds2780_eeprom_cmd);
|
||||
|
||||
static ssize_t w1_slave_read(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr, char *buf,
|
||||
const struct bin_attribute *bin_attr, char *buf,
|
||||
loff_t off, size_t count)
|
||||
{
|
||||
struct device *dev = kobj_to_dev(kobj);
|
||||
@ -95,15 +95,15 @@ static ssize_t w1_slave_read(struct file *filp, struct kobject *kobj,
|
||||
return w1_ds2780_io(dev, buf, off, count, 0);
|
||||
}
|
||||
|
||||
static BIN_ATTR_RO(w1_slave, DS2780_DATA_SIZE);
|
||||
static const BIN_ATTR_RO(w1_slave, DS2780_DATA_SIZE);
|
||||
|
||||
static struct bin_attribute *w1_ds2780_bin_attrs[] = {
|
||||
static const struct bin_attribute *const w1_ds2780_bin_attrs[] = {
|
||||
&bin_attr_w1_slave,
|
||||
NULL,
|
||||
};
|
||||
|
||||
static const struct attribute_group w1_ds2780_group = {
|
||||
.bin_attrs = w1_ds2780_bin_attrs,
|
||||
.bin_attrs_new = w1_ds2780_bin_attrs,
|
||||
};
|
||||
|
||||
static const struct attribute_group *w1_ds2780_groups[] = {
|
||||
|
@ -84,7 +84,7 @@ int w1_ds2781_eeprom_cmd(struct device *dev, int addr, int cmd)
|
||||
EXPORT_SYMBOL(w1_ds2781_eeprom_cmd);
|
||||
|
||||
static ssize_t w1_slave_read(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr, char *buf,
|
||||
const struct bin_attribute *bin_attr, char *buf,
|
||||
loff_t off, size_t count)
|
||||
{
|
||||
struct device *dev = kobj_to_dev(kobj);
|
||||
@ -92,15 +92,15 @@ static ssize_t w1_slave_read(struct file *filp, struct kobject *kobj,
|
||||
return w1_ds2781_io(dev, buf, off, count, 0);
|
||||
}
|
||||
|
||||
static BIN_ATTR_RO(w1_slave, DS2781_DATA_SIZE);
|
||||
static const BIN_ATTR_RO(w1_slave, DS2781_DATA_SIZE);
|
||||
|
||||
static struct bin_attribute *w1_ds2781_bin_attrs[] = {
|
||||
static const struct bin_attribute *const w1_ds2781_bin_attrs[] = {
|
||||
&bin_attr_w1_slave,
|
||||
NULL,
|
||||
};
|
||||
|
||||
static const struct attribute_group w1_ds2781_group = {
|
||||
.bin_attrs = w1_ds2781_bin_attrs,
|
||||
.bin_attrs_new = w1_ds2781_bin_attrs,
|
||||
};
|
||||
|
||||
static const struct attribute_group *w1_ds2781_groups[] = {
|
||||
|
@ -92,7 +92,7 @@ static int w1_f0d_readblock(struct w1_slave *sl, int off, int count, char *buf)
|
||||
}
|
||||
|
||||
static ssize_t w1_f0d_read_bin(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr,
|
||||
const struct bin_attribute *bin_attr,
|
||||
char *buf, loff_t off, size_t count)
|
||||
{
|
||||
struct w1_slave *sl = kobj_to_w1_slave(kobj);
|
||||
@ -200,7 +200,7 @@ retry:
|
||||
}
|
||||
|
||||
static ssize_t w1_f0d_write_bin(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr,
|
||||
const struct bin_attribute *bin_attr,
|
||||
char *buf, loff_t off, size_t count)
|
||||
{
|
||||
struct w1_slave *sl = kobj_to_w1_slave(kobj);
|
||||
@ -261,14 +261,14 @@ out_up:
|
||||
return count;
|
||||
}
|
||||
|
||||
static struct bin_attribute w1_f0d_bin_attr = {
|
||||
static const struct bin_attribute w1_f0d_bin_attr = {
|
||||
.attr = {
|
||||
.name = "eeprom",
|
||||
.mode = 0644,
|
||||
},
|
||||
.size = W1_F0D_EEPROM_SIZE,
|
||||
.read = w1_f0d_read_bin,
|
||||
.write = w1_f0d_write_bin,
|
||||
.read_new = w1_f0d_read_bin,
|
||||
.write_new = w1_f0d_write_bin,
|
||||
};
|
||||
|
||||
static int w1_f0d_add_slave(struct w1_slave *sl)
|
||||
|
@ -112,7 +112,7 @@ static int w1_f1C_read(struct w1_slave *sl, int addr, int len, char *data)
|
||||
}
|
||||
|
||||
static ssize_t eeprom_read(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr, char *buf,
|
||||
const struct bin_attribute *bin_attr, char *buf,
|
||||
loff_t off, size_t count)
|
||||
{
|
||||
struct w1_slave *sl = kobj_to_w1_slave(kobj);
|
||||
@ -223,7 +223,7 @@ static int w1_f1C_write(struct w1_slave *sl, int addr, int len, const u8 *data)
|
||||
}
|
||||
|
||||
static ssize_t eeprom_write(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr, char *buf,
|
||||
const struct bin_attribute *bin_attr, char *buf,
|
||||
loff_t off, size_t count)
|
||||
|
||||
{
|
||||
@ -276,10 +276,10 @@ out_up:
|
||||
return count;
|
||||
}
|
||||
|
||||
static BIN_ATTR_RW(eeprom, W1_EEPROM_SIZE);
|
||||
static const BIN_ATTR_RW(eeprom, W1_EEPROM_SIZE);
|
||||
|
||||
static ssize_t pio_read(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr, char *buf, loff_t off,
|
||||
const struct bin_attribute *bin_attr, char *buf, loff_t off,
|
||||
size_t count)
|
||||
|
||||
{
|
||||
@ -298,8 +298,8 @@ static ssize_t pio_read(struct file *filp, struct kobject *kobj,
|
||||
}
|
||||
|
||||
static ssize_t pio_write(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr, char *buf, loff_t off,
|
||||
size_t count)
|
||||
const struct bin_attribute *bin_attr, char *buf,
|
||||
loff_t off, size_t count)
|
||||
|
||||
{
|
||||
struct w1_slave *sl = kobj_to_w1_slave(kobj);
|
||||
@ -337,7 +337,7 @@ static ssize_t pio_write(struct file *filp, struct kobject *kobj,
|
||||
return count;
|
||||
}
|
||||
|
||||
static BIN_ATTR_RW(pio, 1);
|
||||
static const BIN_ATTR_RW(pio, 1);
|
||||
|
||||
static ssize_t crccheck_show(struct device *dev, struct device_attribute *attr,
|
||||
char *buf)
|
||||
@ -363,7 +363,7 @@ static struct attribute *w1_f1C_attrs[] = {
|
||||
NULL,
|
||||
};
|
||||
|
||||
static struct bin_attribute *w1_f1C_bin_attrs[] = {
|
||||
static const struct bin_attribute *const w1_f1C_bin_attrs[] = {
|
||||
&bin_attr_eeprom,
|
||||
&bin_attr_pio,
|
||||
NULL,
|
||||
@ -371,7 +371,7 @@ static struct bin_attribute *w1_f1C_bin_attrs[] = {
|
||||
|
||||
static const struct attribute_group w1_f1C_group = {
|
||||
.attrs = w1_f1C_attrs,
|
||||
.bin_attrs = w1_f1C_bin_attrs,
|
||||
.bin_attrs_new = w1_f1C_bin_attrs,
|
||||
};
|
||||
|
||||
static const struct attribute_group *w1_f1C_groups[] = {
|
||||
|
@ -583,7 +583,7 @@ static ssize_t speed_show(struct device *dev, struct device_attribute *attr,
|
||||
return result;
|
||||
|
||||
/* Return current speed value. */
|
||||
return sprintf(buf, "%d\n", result);
|
||||
return sysfs_emit(buf, "%d\n", result);
|
||||
}
|
||||
|
||||
static ssize_t speed_store(struct device *dev, struct device_attribute *attr,
|
||||
@ -633,7 +633,7 @@ static ssize_t stretch_show(struct device *dev, struct device_attribute *attr,
|
||||
struct w1_f19_data *data = sl->family_data;
|
||||
|
||||
/* Return current stretch value. */
|
||||
return sprintf(buf, "%d\n", data->stretch);
|
||||
return sysfs_emit(buf, "%d\n", data->stretch);
|
||||
}
|
||||
|
||||
static ssize_t stretch_store(struct device *dev, struct device_attribute *attr,
|
||||
|
@ -111,7 +111,7 @@ ATTRIBUTE_GROUPS(w1_slave);
|
||||
/* Default family */
|
||||
|
||||
static ssize_t rw_write(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr, char *buf, loff_t off,
|
||||
const struct bin_attribute *bin_attr, char *buf, loff_t off,
|
||||
size_t count)
|
||||
{
|
||||
struct w1_slave *sl = kobj_to_w1_slave(kobj);
|
||||
@ -130,8 +130,8 @@ out_up:
|
||||
}
|
||||
|
||||
static ssize_t rw_read(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr, char *buf, loff_t off,
|
||||
size_t count)
|
||||
const struct bin_attribute *bin_attr, char *buf,
|
||||
loff_t off, size_t count)
|
||||
{
|
||||
struct w1_slave *sl = kobj_to_w1_slave(kobj);
|
||||
|
||||
@ -141,15 +141,15 @@ static ssize_t rw_read(struct file *filp, struct kobject *kobj,
|
||||
return count;
|
||||
}
|
||||
|
||||
static BIN_ATTR_RW(rw, PAGE_SIZE);
|
||||
static const BIN_ATTR_RW(rw, PAGE_SIZE);
|
||||
|
||||
static struct bin_attribute *w1_slave_bin_attrs[] = {
|
||||
static const struct bin_attribute *const w1_slave_bin_attrs[] = {
|
||||
&bin_attr_rw,
|
||||
NULL,
|
||||
};
|
||||
|
||||
static const struct attribute_group w1_slave_default_group = {
|
||||
.bin_attrs = w1_slave_bin_attrs,
|
||||
.bin_attrs_new = w1_slave_bin_attrs,
|
||||
};
|
||||
|
||||
static const struct attribute_group *w1_slave_default_groups[] = {
|
||||
|
Loading…
x
Reference in New Issue
Block a user