hwmon: (pmbus) Add comments explaining internal driver API return values
authorGuenter Roeck <guenter.roeck@ericsson.com>
Fri, 26 Aug 2011 15:01:51 +0000 (08:01 -0700)
committerGuenter Roeck <guenter.roeck@ericsson.com>
Mon, 24 Oct 2011 18:09:33 +0000 (11:09 -0700)
Return values for functions reading/writing manufacturer specific registers are
poorly explained. Add comments to improve documentation.

Signed-off-by: Guenter Roeck <guenter.roeck@ericsson.com>
Acked-by: Jean Delvare <khali@linux-fr.org>
drivers/hwmon/pmbus/pmbus.h

index a6ae20ffef6b64d96f8864c27c864996fd893168..8751f4073ec2eb1bc906d3b55ed1ad480b448c61 100644 (file)
  * Semantics:
  * Virtual registers are all word size.
  * READ registers are read-only; writes are either ignored or return an error.
- * RESET registers are read/write. Reading returns zero (used for detection),
- * writing any value causes the associated history to be reset.
+ * RESET registers are read/write. Reading reset registers returns zero
+ * (used for detection), writing any value causes the associated history to be
+ * reset.
+ * Virtual registers have to be handled in device specific driver code. Chip
+ * driver code returns non-negative register values if a virtual register is
+ * supported, or a negative error code if not. The chip driver may return
+ * -ENODATA or any other error code in this case, though an error code other
+ * than -ENODATA is handled more efficiently and thus preferred. Either case,
+ * the calling PMBus core code will abort if the chip driver returns an error
+ * code when reading or writing virtual registers.
  */
 #define PMBUS_VIRT_BASE                        0x100
 #define PMBUS_VIRT_READ_TEMP_MIN       (PMBUS_VIRT_BASE + 0)
@@ -320,6 +328,12 @@ struct pmbus_driver_info {
         * The following functions map manufacturing specific register values
         * to PMBus standard register values. Specify only if mapping is
         * necessary.
+        * Functions return the register value (read) or zero (write) if
+        * successful. A return value of -ENODATA indicates that there is no
+        * manufacturer specific register, but that a standard PMBus register
+        * may exist. Any other negative return value indicates that the
+        * register does not exist, and that no attempt should be made to read
+        * the standard register.
         */
        int (*read_byte_data)(struct i2c_client *client, int page, int reg);
        int (*read_word_data)(struct i2c_client *client, int page, int reg);