xref: /OK3568_Linux_fs/kernel/drivers/hwmon/adt7x10.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */
2*4882a593Smuzhiyun #ifndef __HWMON_ADT7X10_H__
3*4882a593Smuzhiyun #define __HWMON_ADT7X10_H__
4*4882a593Smuzhiyun 
5*4882a593Smuzhiyun #include <linux/types.h>
6*4882a593Smuzhiyun #include <linux/pm.h>
7*4882a593Smuzhiyun 
8*4882a593Smuzhiyun /* ADT7410 registers definition */
9*4882a593Smuzhiyun #define ADT7X10_TEMPERATURE		0
10*4882a593Smuzhiyun #define ADT7X10_STATUS			2
11*4882a593Smuzhiyun #define ADT7X10_CONFIG			3
12*4882a593Smuzhiyun #define ADT7X10_T_ALARM_HIGH		4
13*4882a593Smuzhiyun #define ADT7X10_T_ALARM_LOW		6
14*4882a593Smuzhiyun #define ADT7X10_T_CRIT			8
15*4882a593Smuzhiyun #define ADT7X10_T_HYST			0xA
16*4882a593Smuzhiyun #define ADT7X10_ID			0xB
17*4882a593Smuzhiyun 
18*4882a593Smuzhiyun struct device;
19*4882a593Smuzhiyun 
20*4882a593Smuzhiyun struct adt7x10_ops {
21*4882a593Smuzhiyun 	int (*read_byte)(struct device *, u8 reg);
22*4882a593Smuzhiyun 	int (*write_byte)(struct device *, u8 reg, u8 data);
23*4882a593Smuzhiyun 	int (*read_word)(struct device *, u8 reg);
24*4882a593Smuzhiyun 	int (*write_word)(struct device *, u8 reg, u16 data);
25*4882a593Smuzhiyun };
26*4882a593Smuzhiyun 
27*4882a593Smuzhiyun int adt7x10_probe(struct device *dev, const char *name, int irq,
28*4882a593Smuzhiyun 	const struct adt7x10_ops *ops);
29*4882a593Smuzhiyun int adt7x10_remove(struct device *dev, int irq);
30*4882a593Smuzhiyun 
31*4882a593Smuzhiyun #ifdef CONFIG_PM_SLEEP
32*4882a593Smuzhiyun extern const struct dev_pm_ops adt7x10_dev_pm_ops;
33*4882a593Smuzhiyun #define ADT7X10_DEV_PM_OPS (&adt7x10_dev_pm_ops)
34*4882a593Smuzhiyun #else
35*4882a593Smuzhiyun #define ADT7X10_DEV_PM_OPS NULL
36*4882a593Smuzhiyun #endif
37*4882a593Smuzhiyun 
38*4882a593Smuzhiyun #endif
39