xref: /linux/include/linux/platform_data/gsc_hwmon.h (revision 0ea5c948cb64bab5bc7a5516774eb8536f05aa0d)
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