linux/drivers/hwmon/nzxt-kraken2.c

// SPDX-License-Identifier: GPL-2.0+
/*
 * nzxt-kraken2.c - hwmon driver for NZXT Kraken X42/X52/X62/X72 coolers
 *
 * The device asynchronously sends HID reports (with id 0x04) twice a second to
 * communicate current fan speed, pump speed and coolant temperature.  The
 * device does not respond to Get_Report requests for this status report.
 *
 * Copyright 2019-2021  Jonas Malaco <[email protected]>
 */

#include <asm/unaligned.h>
#include <linux/hid.h>
#include <linux/hwmon.h>
#include <linux/jiffies.h>
#include <linux/module.h>

#define STATUS_REPORT_ID
#define STATUS_VALIDITY

static const char *const kraken2_temp_label[] =;

static const char *const kraken2_fan_label[] =;

struct kraken2_priv_data {};

static umode_t kraken2_is_visible(const void *data,
				  enum hwmon_sensor_types type,
				  u32 attr, int channel)
{}

static int kraken2_read(struct device *dev, enum hwmon_sensor_types type,
			u32 attr, int channel, long *val)
{}

static int kraken2_read_string(struct device *dev, enum hwmon_sensor_types type,
			       u32 attr, int channel, const char **str)
{}

static const struct hwmon_ops kraken2_hwmon_ops =;

static const struct hwmon_channel_info * const kraken2_info[] =;

static const struct hwmon_chip_info kraken2_chip_info =;

static int kraken2_raw_event(struct hid_device *hdev,
			     struct hid_report *report, u8 *data, int size)
{}

static int kraken2_probe(struct hid_device *hdev,
			 const struct hid_device_id *id)
{}

static void kraken2_remove(struct hid_device *hdev)
{}

static const struct hid_device_id kraken2_table[] =;

MODULE_DEVICE_TABLE(hid, kraken2_table);

static struct hid_driver kraken2_driver =;

static int __init kraken2_init(void)
{}

static void __exit kraken2_exit(void)
{}

/*
 * When compiled into the kernel, initialize after the hid bus.
 */
late_initcall(kraken2_init);
module_exit(kraken2_exit);

MODULE_LICENSE();
MODULE_AUTHOR();
MODULE_DESCRIPTION();