Linux 6.7-rc7
[linux-modified.git] / include / linux / platform_data / gsc_hwmon.h
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