#include <linux/device.h>
#include <linux/err.h>
#include <linux/io.h>
#include <linux/kernel.h>
#include <linux/of.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/thermal.h>
#define DOVE_THERMAL_TEMP_OFFSET …
#define DOVE_THERMAL_TEMP_MASK …
#define PMU_TM_DISABLE_OFFS …
#define PMU_TM_DISABLE_MASK …
#define PMU_TDC0_SW_RST_MASK …
#define PMU_TDC0_SEL_VCAL_OFFS …
#define PMU_TDC0_SEL_VCAL_MASK …
#define PMU_TDC0_REF_CAL_CNT_OFFS …
#define PMU_TDC0_REF_CAL_CNT_MASK …
#define PMU_TDC0_AVG_NUM_OFFS …
#define PMU_TDC0_AVG_NUM_MASK …
#define PMU_TEMP_DIOD_CTRL1_REG …
#define PMU_TDC1_TEMP_VALID_MASK …
struct dove_thermal_priv { … };
static int dove_init_sensor(const struct dove_thermal_priv *priv)
{ … }
static int dove_get_temp(struct thermal_zone_device *thermal,
int *temp)
{ … }
static struct thermal_zone_device_ops ops = …;
static const struct of_device_id dove_thermal_id_table[] = …;
static int dove_thermal_probe(struct platform_device *pdev)
{ … }
static void dove_thermal_exit(struct platform_device *pdev)
{ … }
MODULE_DEVICE_TABLE(of, dove_thermal_id_table);
static struct platform_driver dove_thermal_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;