blob: 5d2fabbe3a443182af323d70681efdab2667b957 [file] [log] [blame]
Hongwei Zhang90cb34f2019-05-29 19:06:33 -04001/*
2 * Simple interface library for fan control operations
3 * This file provides interface functions to support pwmtachtool.
4 * Copyright (C) <2019> <American Megatrends International LLC>
5 *
6 */
7
8#ifndef __PWMTACH_IOCTL_H__
9#define __PWMTACH_IOCTL_H__
10
11
12typedef struct
13{
14 unsigned char id;
15 unsigned int value;
16}__attribute__((packed)) pwmtach_property_t;
17
18typedef struct
19{
20 char device_name[16];
21 unsigned int dev_id;
22 unsigned int num_fans;
23 unsigned char fannumber;
24 unsigned int rpmvalue;
25 unsigned int min_rpm;
26 unsigned int max_rpm;
27 unsigned char prevdutycycle;
28 unsigned char dutycycle;
29 unsigned int prescalervalue;
30 unsigned int counterresvalue;
31 unsigned int tachnumber;
32 unsigned int pwmnumber;
33 unsigned char status;
34 pwmtach_property_t property;
35 void* fanproperty_dataptr;
36 void* fanmap_dataptr;
37} __attribute__((packed)) pwmtach_data_t;
38
39#define ENABLE_PWM_CHANNEL _IOW('P', 0, int)
40#define DISABLE_PWM_CHANNEL _IOW('P', 1, int)
41#define ENABLE_TACH_CHANNEL _IOW('P', 2, int)
42#define DISABLE_TACH_CHANNEL _IOW('P', 3, int)
43#define SET_DUTY_CYCLE_BY_PWM_CHANNEL _IOW('P', 4, int)
44#define SET_DUTY_CYCLE_VALUE_BY_PWM_CHANNEL _IOW('P', 5, int)
45#define GET_TACH_VALUE_BY_TACH_CHANNEL _IOR('P', 6, int)
46#define ENABLE_PWM _IOW('P', 7, int)
47#define ENABLE_ALL_PWM _IOW('P', 8, int)
48#define ENABLE_TACH _IOW('P', 9, int)
49#define ENABLE_ALL_TACH _IOW('P', 10, int)
50#define DISABLE_PWM _IOW('P', 11, int)
51#define DISABLE_ALL_PWM _IOW('P', 12, int)
52#define DISABLE_TACH _IOW('P', 13, int)
53#define DISABLE_ALL_TACH _IOW('P', 14, int)
54#define GET_TACH_STATUS _IOR('P', 15, int)
55#define GET_PWM_STATUS _IOR('P', 16, int)
56#define GET_PWM_CHANNEL_STATUS _IOR('P', 17, int)
57#define GET_TACH_VALUE _IOW('P', 18, int)
58#define SET_DUTY_CYCLE _IOW('P', 19, int)
59#define INIT_PWMTACH _IOW('P', 20, int)
60#define CONFIGURE_FANMAP_TABLE _IOW('P', 21, int)
61#define CONFIGURE_FANPROPERTY_TABLE _IOW('P', 22, int)
62#define SHOW_FANMAP_TABLE _IOR('P', 23, int)
63#define SHOW_FANPROPERTY_TABLE _IOR('P', 24, int)
64#define GET_FAN_RPM_RANGE _IOR('P', 25, int)
65#define GET_DUTY_CYCLE _IOR('P', 26, int)
66#define SET_TACH_PROPERTY _IOW('P', 27, int)
67#define GET_TACH_PROPERTY _IOR('P', 28, int)
68#define SET_PWM_PROPERTY _IOW('P', 29, int)
69#define GET_PWM_PROPERTY _IOR('P', 30, int)
70#define CLEAR_TACH_ERROR _IOW('P', 31, int)
71#define CLEAR_PWM_ERRORS _IOW('P', 32, int)
72#define END_OF_FUNC_TABLE _IOW('P', 33, int)
73
74typedef pwmtach_data_t pwmtach_ioctl_data;
75
76#endif // __PWMTACH_IOCTL_H__