13bce5377STim Harvey /* SPDX-License-Identifier: GPL-2.0 */
23bce5377STim Harvey #ifndef _GSC_HWMON_H
33bce5377STim Harvey #define _GSC_HWMON_H
43bce5377STim Harvey 
53bce5377STim Harvey enum gsc_hwmon_mode {
63bce5377STim Harvey 	mode_temperature,
7a4872f7aSTim Harvey 	mode_voltage_24bit,
83bce5377STim Harvey 	mode_voltage_raw,
9a4872f7aSTim Harvey 	mode_voltage_16bit,
107497d4a6STim Harvey 	mode_fan,
113bce5377STim Harvey 	mode_max,
123bce5377STim Harvey };
133bce5377STim Harvey 
143bce5377STim Harvey /**
153bce5377STim Harvey  * struct gsc_hwmon_channel - configuration parameters
163bce5377STim Harvey  * @reg:  I2C register offset
173bce5377STim Harvey  * @mode: channel mode
183bce5377STim Harvey  * @name: channel name
193bce5377STim Harvey  * @mvoffset: voltage offset
203bce5377STim Harvey  * @vdiv: voltage divider array (2 resistor values in milli-ohms)
213bce5377STim Harvey  */
223bce5377STim Harvey struct gsc_hwmon_channel {
233bce5377STim Harvey 	unsigned int reg;
243bce5377STim Harvey 	unsigned int mode;
253bce5377STim Harvey 	const char *name;
263bce5377STim Harvey 	unsigned int mvoffset;
273bce5377STim Harvey 	unsigned int vdiv[2];
283bce5377STim Harvey };
293bce5377STim Harvey 
303bce5377STim Harvey /**
313bce5377STim Harvey  * struct gsc_hwmon_platform_data - platform data for gsc_hwmon driver
323bce5377STim Harvey  * @nchannels:	number of elements in @channels array
333bce5377STim Harvey  * @vreference: voltage reference (mV)
343bce5377STim Harvey  * @resolution: ADC bit resolution
353bce5377STim Harvey  * @fan_base: register base for FAN controller
3659882c7fSChristophe JAILLET  * @channels:	array of gsc_hwmon_channel structures describing channels
373bce5377STim Harvey  */
383bce5377STim Harvey struct gsc_hwmon_platform_data {
393bce5377STim Harvey 	int nchannels;
403bce5377STim Harvey 	unsigned int resolution;
413bce5377STim Harvey 	unsigned int vreference;
423bce5377STim Harvey 	unsigned int fan_base;
43*4a530cb9SKees Cook 	struct gsc_hwmon_channel channels[] __counted_by(nchannels);
443bce5377STim Harvey };
453bce5377STim Harvey #endif
46