summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/ath/ath10k/thermal.h
diff options
context:
space:
mode:
authorRajkumar Manoharan <rmanohar@qti.qualcomm.com>2014-12-17 12:22:26 +0200
committerKalle Valo <kvalo@qca.qualcomm.com>2014-12-23 17:18:41 +0200
commitac2953fcc35871181bfafb11238b757ae1a4ce9f (patch)
treef93325dba4c2a3d2b0ad35af6adb6bc57933aedf /drivers/net/wireless/ath/ath10k/thermal.h
parenta57a6a2753ac4a85cb083dd32dc0be414d52e001 (diff)
ath10k: add thermal sensor device support
Temperature sensor generates electrical analog voltage from temperature of each chain. The analog voltage is converted to digital value through ADC. For reading temperature values fom user space, hw monitoring device is used. Whenever the user requests for current temperature, the driver sends WMI command and wait for response. For reading temperature, cat /sys/class/ieee80211/phy*/device/hwmon/hwmon2/temp1_input Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath10k/thermal.h')
-rw-r--r--drivers/net/wireless/ath/ath10k/thermal.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath10k/thermal.h b/drivers/net/wireless/ath/ath10k/thermal.h
index e20bb87849ae..bccc17ae0fde 100644
--- a/drivers/net/wireless/ath/ath10k/thermal.h
+++ b/drivers/net/wireless/ath/ath10k/thermal.h
@@ -20,17 +20,25 @@
#define ATH10K_QUIET_PERIOD_MIN 25
#define ATH10K_QUIET_START_OFFSET 10
#define ATH10K_QUIET_DUTY_CYCLE_MAX 70
+#define ATH10K_HWMON_NAME_LEN 15
+#define ATH10K_THERMAL_SYNC_TIMEOUT_HZ (5*HZ)
struct ath10k_thermal {
struct thermal_cooling_device *cdev;
+ struct completion wmi_sync;
/* protected by conf_mutex */
u32 duty_cycle;
+ /* temperature value in Celcius degree
+ * protected by data_lock
+ */
+ int temperature;
};
#ifdef CONFIG_THERMAL
int ath10k_thermal_register(struct ath10k *ar);
void ath10k_thermal_unregister(struct ath10k *ar);
+void ath10k_thermal_event_temperature(struct ath10k *ar, int temperature);
#else
static inline int ath10k_thermal_register(struct ath10k *ar)
{
@@ -40,5 +48,11 @@ static inline int ath10k_thermal_register(struct ath10k *ar)
static inline void ath10k_thermal_unregister(struct ath10k *ar)
{
}
+
+static inline void ath10k_thermal_event_temperature(struct ath10k *ar,
+ int temperature)
+{
+}
+
#endif
#endif /* _THERMAL_ */