|
@@ -7,33 +7,24 @@
|
|
|
|
|
|
#include "internal.h"
|
|
|
|
|
|
-static int regmap_slimbus_byte_reg_read(void *context, unsigned int reg,
|
|
|
- unsigned int *val)
|
|
|
+static int regmap_slimbus_write(void *context, const void *data, size_t count)
|
|
|
{
|
|
|
struct slim_device *sdev = context;
|
|
|
- int v;
|
|
|
|
|
|
- v = slim_readb(sdev, reg);
|
|
|
-
|
|
|
- if (v < 0)
|
|
|
- return v;
|
|
|
-
|
|
|
- *val = v;
|
|
|
-
|
|
|
- return 0;
|
|
|
+ return slim_write(sdev, *(u16 *)data, count - 2, (u8 *)data + 2);
|
|
|
}
|
|
|
|
|
|
-static int regmap_slimbus_byte_reg_write(void *context, unsigned int reg,
|
|
|
- unsigned int val)
|
|
|
+static int regmap_slimbus_read(void *context, const void *reg, size_t reg_size,
|
|
|
+ void *val, size_t val_size)
|
|
|
{
|
|
|
struct slim_device *sdev = context;
|
|
|
|
|
|
- return slim_writeb(sdev, reg, val);
|
|
|
+ return slim_read(sdev, *(u16 *)reg, val_size, val);
|
|
|
}
|
|
|
|
|
|
static struct regmap_bus regmap_slimbus_bus = {
|
|
|
- .reg_write = regmap_slimbus_byte_reg_write,
|
|
|
- .reg_read = regmap_slimbus_byte_reg_read,
|
|
|
+ .write = regmap_slimbus_write,
|
|
|
+ .read = regmap_slimbus_read,
|
|
|
.reg_format_endian_default = REGMAP_ENDIAN_LITTLE,
|
|
|
.val_format_endian_default = REGMAP_ENDIAN_LITTLE,
|
|
|
};
|