|  | /* SPDX-License-Identifier: GPL-2.0 */ | 
|  | #ifndef __HWMON_ADT7X10_H__ | 
|  | #define __HWMON_ADT7X10_H__ | 
|  |  | 
|  | #include <linux/types.h> | 
|  | #include <linux/pm.h> | 
|  |  | 
|  | /* ADT7410 registers definition */ | 
|  | #define ADT7X10_TEMPERATURE		0 | 
|  | #define ADT7X10_STATUS			2 | 
|  | #define ADT7X10_CONFIG			3 | 
|  | #define ADT7X10_T_ALARM_HIGH		4 | 
|  | #define ADT7X10_T_ALARM_LOW		6 | 
|  | #define ADT7X10_T_CRIT			8 | 
|  | #define ADT7X10_T_HYST			0xA | 
|  | #define ADT7X10_ID			0xB | 
|  |  | 
|  | struct device; | 
|  |  | 
|  | struct adt7x10_ops { | 
|  | int (*read_byte)(struct device *, u8 reg); | 
|  | int (*write_byte)(struct device *, u8 reg, u8 data); | 
|  | int (*read_word)(struct device *, u8 reg); | 
|  | int (*write_word)(struct device *, u8 reg, u16 data); | 
|  | }; | 
|  |  | 
|  | int adt7x10_probe(struct device *dev, const char *name, int irq, | 
|  | const struct adt7x10_ops *ops); | 
|  | int adt7x10_remove(struct device *dev, int irq); | 
|  |  | 
|  | #ifdef CONFIG_PM_SLEEP | 
|  | extern const struct dev_pm_ops adt7x10_dev_pm_ops; | 
|  | #define ADT7X10_DEV_PM_OPS (&adt7x10_dev_pm_ops) | 
|  | #else | 
|  | #define ADT7X10_DEV_PM_OPS NULL | 
|  | #endif | 
|  |  | 
|  | #endif |