| .. | .. |
|---|
| 1 | +// SPDX-License-Identifier: GPL-2.0 |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * iio/adc/max9611.c |
|---|
| 3 | 4 | * |
|---|
| .. | .. |
|---|
| 5 | 6 | * 12-bit ADC interface. |
|---|
| 6 | 7 | * |
|---|
| 7 | 8 | * Copyright (C) 2017 Jacopo Mondi |
|---|
| 8 | | - * |
|---|
| 9 | | - * This program is free software; you can redistribute it and/or modify |
|---|
| 10 | | - * it under the terms of the GNU General Public License version 2 as |
|---|
| 11 | | - * published by the Free Software Foundation. |
|---|
| 12 | 9 | */ |
|---|
| 13 | 10 | |
|---|
| 14 | 11 | /* |
|---|
| .. | .. |
|---|
| 113 | 110 | CONF_TEMP, |
|---|
| 114 | 111 | }; |
|---|
| 115 | 112 | |
|---|
| 116 | | -/** |
|---|
| 113 | +/* |
|---|
| 117 | 114 | * max9611_mux_conf - associate ADC mux configuration with register address |
|---|
| 118 | 115 | * where data shall be read from |
|---|
| 119 | 116 | */ |
|---|
| 120 | 117 | static const unsigned int max9611_mux_conf[][2] = { |
|---|
| 121 | | - /* CONF_SENSE_1x */ |
|---|
| 122 | | - { MAX9611_MUX_SENSE_1x, MAX9611_REG_CSA_DATA }, |
|---|
| 123 | | - /* CONF_SENSE_4x */ |
|---|
| 124 | | - { MAX9611_MUX_SENSE_4x, MAX9611_REG_CSA_DATA }, |
|---|
| 125 | | - /* CONF_SENSE_8x */ |
|---|
| 126 | | - { MAX9611_MUX_SENSE_8x, MAX9611_REG_CSA_DATA }, |
|---|
| 127 | | - /* CONF_IN_VOLT */ |
|---|
| 128 | | - { MAX9611_INPUT_VOLT, MAX9611_REG_RS_DATA }, |
|---|
| 129 | | - /* CONF_TEMP */ |
|---|
| 130 | | - { MAX9611_MUX_TEMP, MAX9611_REG_TEMP_DATA }, |
|---|
| 118 | + [CONF_SENSE_1x] = { MAX9611_MUX_SENSE_1x, MAX9611_REG_CSA_DATA }, |
|---|
| 119 | + [CONF_SENSE_4x] = { MAX9611_MUX_SENSE_4x, MAX9611_REG_CSA_DATA }, |
|---|
| 120 | + [CONF_SENSE_8x] = { MAX9611_MUX_SENSE_8x, MAX9611_REG_CSA_DATA }, |
|---|
| 121 | + [CONF_IN_VOLT] = { MAX9611_INPUT_VOLT, MAX9611_REG_RS_DATA }, |
|---|
| 122 | + [CONF_TEMP] = { MAX9611_MUX_TEMP, MAX9611_REG_TEMP_DATA }, |
|---|
| 131 | 123 | }; |
|---|
| 132 | 124 | |
|---|
| 133 | 125 | enum max9611_csa_gain { |
|---|
| 134 | | - CSA_GAIN_1x, |
|---|
| 135 | | - CSA_GAIN_4x, |
|---|
| 136 | | - CSA_GAIN_8x, |
|---|
| 126 | + CSA_GAIN_1x = CONF_SENSE_1x, |
|---|
| 127 | + CSA_GAIN_4x = CONF_SENSE_4x, |
|---|
| 128 | + CSA_GAIN_8x = CONF_SENSE_8x, |
|---|
| 137 | 129 | }; |
|---|
| 138 | 130 | |
|---|
| 139 | 131 | enum max9611_csa_gain_params { |
|---|
| .. | .. |
|---|
| 141 | 133 | CSA_GAIN_OFFS_RAW, |
|---|
| 142 | 134 | }; |
|---|
| 143 | 135 | |
|---|
| 144 | | -/** |
|---|
| 136 | +/* |
|---|
| 145 | 137 | * max9611_csa_gain_conf - associate gain multiplier with LSB and |
|---|
| 146 | 138 | * offset values. |
|---|
| 147 | 139 | * |
|---|
| .. | .. |
|---|
| 151 | 143 | * value; use this structure to retrieve the correct LSB and offset values. |
|---|
| 152 | 144 | */ |
|---|
| 153 | 145 | static const unsigned int max9611_gain_conf[][2] = { |
|---|
| 154 | | - { /* [0] CSA_GAIN_1x */ |
|---|
| 155 | | - MAX9611_CSA_1X_LSB_nV, |
|---|
| 156 | | - MAX9611_CSA_1X_OFFS_RAW, |
|---|
| 157 | | - }, |
|---|
| 158 | | - { /* [1] CSA_GAIN_4x */ |
|---|
| 159 | | - MAX9611_CSA_4X_LSB_nV, |
|---|
| 160 | | - MAX9611_CSA_4X_OFFS_RAW, |
|---|
| 161 | | - }, |
|---|
| 162 | | - { /* [2] CSA_GAIN_8x */ |
|---|
| 163 | | - MAX9611_CSA_8X_LSB_nV, |
|---|
| 164 | | - MAX9611_CSA_8X_OFFS_RAW, |
|---|
| 165 | | - }, |
|---|
| 146 | + [CSA_GAIN_1x] = { MAX9611_CSA_1X_LSB_nV, MAX9611_CSA_1X_OFFS_RAW, }, |
|---|
| 147 | + [CSA_GAIN_4x] = { MAX9611_CSA_4X_LSB_nV, MAX9611_CSA_4X_OFFS_RAW, }, |
|---|
| 148 | + [CSA_GAIN_8x] = { MAX9611_CSA_8X_LSB_nV, MAX9611_CSA_8X_OFFS_RAW, }, |
|---|
| 166 | 149 | }; |
|---|
| 167 | 150 | |
|---|
| 168 | 151 | enum max9611_chan_addrs { |
|---|
| .. | .. |
|---|
| 562 | 545 | if (ret) |
|---|
| 563 | 546 | return ret; |
|---|
| 564 | 547 | |
|---|
| 565 | | - indio_dev->dev.parent = &client->dev; |
|---|
| 566 | | - indio_dev->dev.of_node = client->dev.of_node; |
|---|
| 567 | 548 | indio_dev->name = of_id->data; |
|---|
| 568 | 549 | indio_dev->modes = INDIO_DIRECT_MODE; |
|---|
| 569 | 550 | indio_dev->info = &indio_info; |
|---|