| 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
| 2 | #ifndef _GSC_HWMON_H |
| 3 | #define _GSC_HWMON_H |
| 4 | |
| 5 | enum gsc_hwmon_mode { |
| 6 | mode_temperature, |
| 7 | mode_voltage_24bit, |
| 8 | mode_voltage_raw, |
| 9 | mode_voltage_16bit, |
| 10 | mode_fan, |
| 11 | mode_max, |
| 12 | }; |
| 13 | |
| 14 | /** |
| 15 | * struct gsc_hwmon_channel - configuration parameters |
| 16 | * @reg: I2C register offset |
| 17 | * @mode: channel mode |
| 18 | * @name: channel name |
| 19 | * @mvoffset: voltage offset |
| 20 | * @vdiv: voltage divider array (2 resistor values in milli-ohms) |
| 21 | */ |
| 22 | struct gsc_hwmon_channel { |
| 23 | unsigned int reg; |
| 24 | unsigned int mode; |
| 25 | const char *name; |
| 26 | unsigned int mvoffset; |
| 27 | unsigned int vdiv[2]; |
| 28 | }; |
| 29 | |
| 30 | /** |
| 31 | * struct gsc_hwmon_platform_data - platform data for gsc_hwmon driver |
| 32 | * @nchannels: number of elements in @channels array |
| 33 | * @vreference: voltage reference (mV) |
| 34 | * @resolution: ADC bit resolution |
| 35 | * @fan_base: register base for FAN controller |
| 36 | * @channels: array of gsc_hwmon_channel structures describing channels |
| 37 | */ |
| 38 | struct gsc_hwmon_platform_data { |
| 39 | int nchannels; |
| 40 | unsigned int resolution; |
| 41 | unsigned int vreference; |
| 42 | unsigned int fan_base; |
| 43 | struct gsc_hwmon_channel channels[] __counted_by(nchannels); |
| 44 | }; |
| 45 | #endif |
| 46 | |