Linux-libre 5.3.12-gnu
[librecmc/linux-libre.git] / include / linux / platform_data / hwmon-s3c.h
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * Copyright 2005 Simtec Electronics
4  *      Ben Dooks <ben@simtec.co.uk>
5  *      http://armlinux.simtec.co.uk/
6  *
7  * S3C - HWMon interface for ADC
8 */
9
10 #ifndef __HWMON_S3C_H__
11 #define __HWMON_S3C_H__
12
13 /**
14  * s3c_hwmon_chcfg - channel configuration
15  * @name: The name to give this channel.
16  * @mult: Multiply the ADC value read by this.
17  * @div: Divide the value from the ADC by this.
18  *
19  * The value read from the ADC is converted to a value that
20  * hwmon expects (mV) by result = (value_read * @mult) / @div.
21  */
22 struct s3c_hwmon_chcfg {
23         const char      *name;
24         unsigned int    mult;
25         unsigned int    div;
26 };
27
28 /**
29  * s3c_hwmon_pdata - HWMON platform data
30  * @in: One configuration for each possible channel used.
31  */
32 struct s3c_hwmon_pdata {
33         struct s3c_hwmon_chcfg  *in[8];
34 };
35
36 /**
37  * s3c_hwmon_set_platdata - Set platform data for S3C HWMON device
38  * @pd: Platform data to register to device.
39  *
40  * Register the given platform data for use with the S3C HWMON device.
41  * The call will copy the platform data, so the board definitions can
42  * make the structure itself __initdata.
43  */
44 extern void __init s3c_hwmon_set_platdata(struct s3c_hwmon_pdata *pd);
45
46 #endif /* __HWMON_S3C_H__ */