blob: 5d2fabbe3a443182af323d70681efdab2667b957 [file] [log] [blame]
/*
* Simple interface library for fan control operations
* This file provides interface functions to support pwmtachtool.
* Copyright (C) <2019> <American Megatrends International LLC>
*
*/
#ifndef __PWMTACH_IOCTL_H__
#define __PWMTACH_IOCTL_H__
typedef struct
{
unsigned char id;
unsigned int value;
}__attribute__((packed)) pwmtach_property_t;
typedef struct
{
char device_name[16];
unsigned int dev_id;
unsigned int num_fans;
unsigned char fannumber;
unsigned int rpmvalue;
unsigned int min_rpm;
unsigned int max_rpm;
unsigned char prevdutycycle;
unsigned char dutycycle;
unsigned int prescalervalue;
unsigned int counterresvalue;
unsigned int tachnumber;
unsigned int pwmnumber;
unsigned char status;
pwmtach_property_t property;
void* fanproperty_dataptr;
void* fanmap_dataptr;
} __attribute__((packed)) pwmtach_data_t;
#define ENABLE_PWM_CHANNEL _IOW('P', 0, int)
#define DISABLE_PWM_CHANNEL _IOW('P', 1, int)
#define ENABLE_TACH_CHANNEL _IOW('P', 2, int)
#define DISABLE_TACH_CHANNEL _IOW('P', 3, int)
#define SET_DUTY_CYCLE_BY_PWM_CHANNEL _IOW('P', 4, int)
#define SET_DUTY_CYCLE_VALUE_BY_PWM_CHANNEL _IOW('P', 5, int)
#define GET_TACH_VALUE_BY_TACH_CHANNEL _IOR('P', 6, int)
#define ENABLE_PWM _IOW('P', 7, int)
#define ENABLE_ALL_PWM _IOW('P', 8, int)
#define ENABLE_TACH _IOW('P', 9, int)
#define ENABLE_ALL_TACH _IOW('P', 10, int)
#define DISABLE_PWM _IOW('P', 11, int)
#define DISABLE_ALL_PWM _IOW('P', 12, int)
#define DISABLE_TACH _IOW('P', 13, int)
#define DISABLE_ALL_TACH _IOW('P', 14, int)
#define GET_TACH_STATUS _IOR('P', 15, int)
#define GET_PWM_STATUS _IOR('P', 16, int)
#define GET_PWM_CHANNEL_STATUS _IOR('P', 17, int)
#define GET_TACH_VALUE _IOW('P', 18, int)
#define SET_DUTY_CYCLE _IOW('P', 19, int)
#define INIT_PWMTACH _IOW('P', 20, int)
#define CONFIGURE_FANMAP_TABLE _IOW('P', 21, int)
#define CONFIGURE_FANPROPERTY_TABLE _IOW('P', 22, int)
#define SHOW_FANMAP_TABLE _IOR('P', 23, int)
#define SHOW_FANPROPERTY_TABLE _IOR('P', 24, int)
#define GET_FAN_RPM_RANGE _IOR('P', 25, int)
#define GET_DUTY_CYCLE _IOR('P', 26, int)
#define SET_TACH_PROPERTY _IOW('P', 27, int)
#define GET_TACH_PROPERTY _IOR('P', 28, int)
#define SET_PWM_PROPERTY _IOW('P', 29, int)
#define GET_PWM_PROPERTY _IOR('P', 30, int)
#define CLEAR_TACH_ERROR _IOW('P', 31, int)
#define CLEAR_PWM_ERRORS _IOW('P', 32, int)
#define END_OF_FUNC_TABLE _IOW('P', 33, int)
typedef pwmtach_data_t pwmtach_ioctl_data;
#endif // __PWMTACH_IOCTL_H__