OSDN Git Service

iio: adc: max9611: Make enum relations more future proof
authorGeert Uytterhoeven <geert+renesas@glider.be>
Wed, 13 Nov 2019 10:09:38 +0000 (11:09 +0100)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sat, 16 Nov 2019 17:31:01 +0000 (17:31 +0000)
The relations between enum values and array indices values are currently
not enforced by the code, which makes them fragile w.r.t. future
changes.

Fix this by:
  1. Using designated array initializers, to make sure array indices and
     enums values match,
  2. Linking max9611_csa_gain enum values to the corresponding
     max9611_conf_ids enum values, as the latter is cast to the former
     in max9611_read_csa_voltage().

No change in generated code.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Acked-by: Jacopo Mondi <jacopo@jmondi.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/adc/max9611.c

index da073d7..bf76dfb 100644 (file)
@@ -109,22 +109,17 @@ enum max9611_conf_ids {
  *                   where data shall be read from
  */
 static const unsigned int max9611_mux_conf[][2] = {
-       /* CONF_SENSE_1x */
-       { MAX9611_MUX_SENSE_1x, MAX9611_REG_CSA_DATA },
-       /* CONF_SENSE_4x */
-       { MAX9611_MUX_SENSE_4x, MAX9611_REG_CSA_DATA },
-       /* CONF_SENSE_8x */
-       { MAX9611_MUX_SENSE_8x, MAX9611_REG_CSA_DATA },
-       /* CONF_IN_VOLT */
-       { MAX9611_INPUT_VOLT, MAX9611_REG_RS_DATA },
-       /* CONF_TEMP */
-       { MAX9611_MUX_TEMP, MAX9611_REG_TEMP_DATA },
+       [CONF_SENSE_1x] = { MAX9611_MUX_SENSE_1x, MAX9611_REG_CSA_DATA },
+       [CONF_SENSE_4x] = { MAX9611_MUX_SENSE_4x, MAX9611_REG_CSA_DATA },
+       [CONF_SENSE_8x] = { MAX9611_MUX_SENSE_8x, MAX9611_REG_CSA_DATA },
+       [CONF_IN_VOLT]  = { MAX9611_INPUT_VOLT, MAX9611_REG_RS_DATA },
+       [CONF_TEMP]     = { MAX9611_MUX_TEMP, MAX9611_REG_TEMP_DATA },
 };
 
 enum max9611_csa_gain {
-       CSA_GAIN_1x,
-       CSA_GAIN_4x,
-       CSA_GAIN_8x,
+       CSA_GAIN_1x = CONF_SENSE_1x,
+       CSA_GAIN_4x = CONF_SENSE_4x,
+       CSA_GAIN_8x = CONF_SENSE_8x,
 };
 
 enum max9611_csa_gain_params {
@@ -142,18 +137,9 @@ enum max9611_csa_gain_params {
  * value; use this structure to retrieve the correct LSB and offset values.
  */
 static const unsigned int max9611_gain_conf[][2] = {
-       { /* [0] CSA_GAIN_1x */
-               MAX9611_CSA_1X_LSB_nV,
-               MAX9611_CSA_1X_OFFS_RAW,
-       },
-       { /* [1] CSA_GAIN_4x */
-               MAX9611_CSA_4X_LSB_nV,
-               MAX9611_CSA_4X_OFFS_RAW,
-       },
-       { /* [2] CSA_GAIN_8x */
-               MAX9611_CSA_8X_LSB_nV,
-               MAX9611_CSA_8X_OFFS_RAW,
-       },
+       [CSA_GAIN_1x] = { MAX9611_CSA_1X_LSB_nV, MAX9611_CSA_1X_OFFS_RAW, },
+       [CSA_GAIN_4x] = { MAX9611_CSA_4X_LSB_nV, MAX9611_CSA_4X_OFFS_RAW, },
+       [CSA_GAIN_8x] = { MAX9611_CSA_8X_LSB_nV, MAX9611_CSA_8X_OFFS_RAW, },
 };
 
 enum max9611_chan_addrs {