#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/delay.h>
#include <linux/interrupt.h>
#include <linux/device.h>
#include <linux/thermal.h>
#include <linux/platform_device.h>
#include <linux/sched.h>
#include <linux/mfd/intel_soc_pmic.h>
#define BXTWC_THRM0IRQ …
#define BXTWC_THRM1IRQ …
#define BXTWC_THRM2IRQ …
#define BXTWC_MTHRM0IRQ …
#define BXTWC_MTHRM1IRQ …
#define BXTWC_MTHRM2IRQ …
#define BXTWC_STHRM0IRQ …
#define BXTWC_STHRM1IRQ …
#define BXTWC_STHRM2IRQ …
struct trip_config_map { … };
struct thermal_irq_map { … };
struct pmic_thermal_data { … };
static const struct trip_config_map bxtwc_str0_trip_config[] = …;
static const struct trip_config_map bxtwc_str1_trip_config[] = …;
static const struct trip_config_map bxtwc_str2_trip_config[] = …;
static const struct trip_config_map bxtwc_str3_trip_config[] = …;
static const struct thermal_irq_map bxtwc_thermal_irq_map[] = …;
static const struct pmic_thermal_data bxtwc_thermal_data = …;
static irqreturn_t pmic_thermal_irq_handler(int irq, void *data)
{ … }
static int pmic_thermal_probe(struct platform_device *pdev)
{ … }
static const struct platform_device_id pmic_thermal_id_table[] = …;
static struct platform_driver pmic_thermal_driver = …;
MODULE_DEVICE_TABLE(platform, pmic_thermal_id_table);
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;