|
@@ -21,6 +21,18 @@
|
|
|
|
|
|
#include "internal.h"
|
|
|
|
|
|
+/*
|
|
|
+ * Sometimes for failures during very early init the trace
|
|
|
+ * infrastructure isn't available early enough to be used. For this
|
|
|
+ * sort of problem defining LOG_DEVICE will add printks for basic
|
|
|
+ * register I/O on a specific device.
|
|
|
+ */
|
|
|
+#undef LOG_DEVICE
|
|
|
+
|
|
|
+static int _regmap_update_bits(struct regmap *map, unsigned int reg,
|
|
|
+ unsigned int mask, unsigned int val,
|
|
|
+ bool *change);
|
|
|
+
|
|
|
bool regmap_writeable(struct regmap *map, unsigned int reg)
|
|
|
{
|
|
|
if (map->max_register && reg > map->max_register)
|
|
@@ -700,6 +712,11 @@ int _regmap_write(struct regmap *map, unsigned int reg,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+#ifdef LOG_DEVICE
|
|
|
+ if (strcmp(dev_name(map->dev), LOG_DEVICE) == 0)
|
|
|
+ dev_info(map->dev, "%x <= %x\n", reg, val);
|
|
|
+#endif
|
|
|
+
|
|
|
trace_regmap_reg_write(map->dev, reg, val);
|
|
|
|
|
|
if (map->format.format_write) {
|
|
@@ -903,6 +920,12 @@ static int _regmap_read(struct regmap *map, unsigned int reg,
|
|
|
ret = _regmap_raw_read(map, reg, map->work_buf, map->format.val_bytes);
|
|
|
if (ret == 0) {
|
|
|
*val = map->format.parse_val(map->work_buf);
|
|
|
+
|
|
|
+#ifdef LOG_DEVICE
|
|
|
+ if (strcmp(dev_name(map->dev), LOG_DEVICE) == 0)
|
|
|
+ dev_info(map->dev, "%x => %x\n", reg, *val);
|
|
|
+#endif
|
|
|
+
|
|
|
trace_regmap_reg_read(map->dev, reg, *val);
|
|
|
}
|
|
|
|