#include <linux/err.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/thermal.h>
#include <linux/workqueue.h>
#include <soc/tegra/bpmp.h>
#include <soc/tegra/bpmp-abi.h>
struct tegra_bpmp_thermal_zone { … };
struct tegra_bpmp_thermal { … };
static int __tegra_bpmp_thermal_get_temp(struct tegra_bpmp_thermal_zone *zone,
int *out_temp)
{ … }
static int tegra_bpmp_thermal_get_temp(struct thermal_zone_device *tz, int *out_temp)
{ … }
static int tegra_bpmp_thermal_set_trips(struct thermal_zone_device *tz, int low, int high)
{ … }
static void tz_device_update_work_fn(struct work_struct *work)
{ … }
static void bpmp_mrq_thermal(unsigned int mrq, struct tegra_bpmp_channel *ch,
void *data)
{ … }
static int tegra_bpmp_thermal_get_num_zones(struct tegra_bpmp *bpmp,
int *num_zones)
{ … }
static int tegra_bpmp_thermal_trips_supported(struct tegra_bpmp *bpmp, bool *supported)
{ … }
static const struct thermal_zone_device_ops tegra_bpmp_of_thermal_ops = …;
static const struct thermal_zone_device_ops tegra_bpmp_of_thermal_ops_notrips = …;
static int tegra_bpmp_thermal_probe(struct platform_device *pdev)
{ … }
static void tegra_bpmp_thermal_remove(struct platform_device *pdev)
{ … }
static const struct of_device_id tegra_bpmp_thermal_of_match[] = …;
MODULE_DEVICE_TABLE(of, tegra_bpmp_thermal_of_match);
static struct platform_driver tegra_bpmp_thermal_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;