169 lines
7.7 KiB
C
169 lines
7.7 KiB
C
//*****************************************************************************
|
|
//
|
|
// fan.h - Prototypes and macros for the Fan controller.
|
|
//
|
|
// Copyright (c) 2010-2011 Texas Instruments Incorporated. All rights reserved.
|
|
// Software License Agreement
|
|
//
|
|
// Texas Instruments (TI) is supplying this software for use solely and
|
|
// exclusively on TI's microcontroller products. The software is owned by
|
|
// TI and/or its suppliers, and is protected under applicable copyright
|
|
// laws. You may not combine this software with "viral" open-source
|
|
// software in order to form a larger program.
|
|
//
|
|
// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS.
|
|
// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT
|
|
// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY
|
|
// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
|
|
// DAMAGES, FOR ANY REASON WHATSOEVER.
|
|
//
|
|
// This is part of revision 8264 of the Stellaris Peripheral Driver Library.
|
|
//
|
|
//*****************************************************************************
|
|
|
|
#ifndef __FAN_H__
|
|
#define __FAN_H__
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// If building with a C++ compiler, make all of the definitions in this header
|
|
// have a C binding.
|
|
//
|
|
//*****************************************************************************
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
{
|
|
#endif
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// Fan status values that can be returned from the FanChannelStatus() function.
|
|
//
|
|
//*****************************************************************************
|
|
#define FAN_STATUS_STALLED 0
|
|
#define FAN_STATUS_CHANGING 1
|
|
#define FAN_STATUS_LOCKED 2
|
|
#define FAN_STATUS_NOATTAIN 3
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// Configuration flags to be used with FanChannelConfigManual() and
|
|
// FanChannelConfigAuto().
|
|
//
|
|
//*****************************************************************************
|
|
#define FAN_CONFIG_RESTART (1 << 15)
|
|
#define FAN_CONFIG_NORESTART (0 << 15)
|
|
#define FAN_CONFIG_ACCEL_FAST (1 << 14)
|
|
#define FAN_CONFIG_ACCEL_SLOW (0 << 14)
|
|
#define FAN_CONFIG_HYST_1 (0 << 11)
|
|
#define FAN_CONFIG_HYST_2 (1 << 11)
|
|
#define FAN_CONFIG_HYST_4 (2 << 11)
|
|
#define FAN_CONFIG_HYST_8 (3 << 11)
|
|
#define FAN_CONFIG_HYST_16 (4 << 11)
|
|
#define FAN_CONFIG_HYST_32 (5 << 11)
|
|
#define FAN_CONFIG_HYST_64 (6 << 11)
|
|
#define FAN_CONFIG_HYST_128 (7 << 11)
|
|
#define FAN_CONFIG_START_2 (0 << 8)
|
|
#define FAN_CONFIG_START_4 (1 << 8)
|
|
#define FAN_CONFIG_START_8 (2 << 8)
|
|
#define FAN_CONFIG_START_16 (3 << 8)
|
|
#define FAN_CONFIG_START_32 (4 << 8)
|
|
#define FAN_CONFIG_START_64 (5 << 8)
|
|
#define FAN_CONFIG_START_128 (6 << 8)
|
|
#define FAN_CONFIG_START_256 (7 << 8)
|
|
#define FAN_CONFIG_START_DUTY_OFF (0 << 6)
|
|
#define FAN_CONFIG_START_DUTY_50 (1 << 6)
|
|
#define FAN_CONFIG_START_DUTY_75 (2 << 6)
|
|
#define FAN_CONFIG_START_DUTY_100 (3 << 6)
|
|
#define FAN_CONFIG_AVG_NONE (0 << 4)
|
|
#define FAN_CONFIG_AVG_2 (1 << 4)
|
|
#define FAN_CONFIG_AVG_4 (2 << 4)
|
|
#define FAN_CONFIG_AVG_8 (3 << 4)
|
|
#define FAN_CONFIG_TACH_1 (0 << 2)
|
|
#define FAN_CONFIG_TACH_2 (1 << 2)
|
|
#define FAN_CONFIG_TACH_4 (2 << 2)
|
|
#define FAN_CONFIG_TACH_8 (3 << 2)
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// Interrupt configuration/status flags to be used with the following
|
|
// functions: FanIntEnable(), FanIntDisable(), FanIntStatus(), FanIntClear().
|
|
//
|
|
//*****************************************************************************
|
|
#define FAN_CH5_INT_AUTO_SPEED_OK (1 << 22)
|
|
#define FAN_CH5_INT_MANUAL_SPEED_CHANGE (1 << 22)
|
|
#define FAN_CH5_INT_AUTO_SPEED_ERROR (1 << 21)
|
|
#define FAN_CH5_INT_MANUAL_SPEED_UPDATE (1 << 21)
|
|
#define FAN_CH5_INT_STALL (1 << 20)
|
|
#define FAN_CH4_INT_AUTO_SPEED_OK (1 << 18)
|
|
#define FAN_CH4_INT_MANUAL_SPEED_CHANGE (1 << 18)
|
|
#define FAN_CH4_INT_AUTO_SPEED_ERROR (1 << 17)
|
|
#define FAN_CH4_INT_MANUAL_SPEED_UPDATE (1 << 17)
|
|
#define FAN_CH4_INT_STALL (1 << 16)
|
|
#define FAN_CH3_INT_AUTO_SPEED_OK (1 << 14)
|
|
#define FAN_CH3_INT_MANUAL_SPEED_CHANGE (1 << 14)
|
|
#define FAN_CH3_INT_AUTO_SPEED_ERROR (1 << 13)
|
|
#define FAN_CH3_INT_MANUAL_SPEED_UPDATE (1 << 13)
|
|
#define FAN_CH3_INT_STALL (1 << 12)
|
|
#define FAN_CH2_INT_AUTO_SPEED_OK (1 << 10)
|
|
#define FAN_CH2_INT_MANUAL_SPEED_CHANGE (1 << 10)
|
|
#define FAN_CH2_INT_AUTO_SPEED_ERROR (1 << 9)
|
|
#define FAN_CH2_INT_MANUAL_SPEED_UPDATE (1 << 9)
|
|
#define FAN_CH2_INT_STALL (1 << 8)
|
|
#define FAN_CH1_INT_AUTO_SPEED_OK (1 << 6)
|
|
#define FAN_CH1_INT_MANUAL_SPEED_CHANGE (1 << 6)
|
|
#define FAN_CH1_INT_AUTO_SPEED_ERROR (1 << 5)
|
|
#define FAN_CH1_INT_MANUAL_SPEED_UPDATE (1 << 5)
|
|
#define FAN_CH1_INT_STALL (1 << 4)
|
|
#define FAN_CH0_INT_AUTO_SPEED_OK (1 << 2)
|
|
#define FAN_CH0_INT_MANUAL_SPEED_CHANGE (1 << 2)
|
|
#define FAN_CH0_INT_AUTO_SPEED_ERROR (1 << 1)
|
|
#define FAN_CH0_INT_MANUAL_SPEED_UPDATE (1 << 1)
|
|
#define FAN_CH0_INT_STALL (1 << 0)
|
|
#define FAN_CHx_INT_AUTO_SPEED_OK(x) (1 << (((x) * 4) + 2))
|
|
#define FAN_CHx_INT_MANUAL_SPEED_CHANGE(x) (1 << (((x) * 4) + 2))
|
|
#define FAN_CHx_INT_AUTO_SPEED_ERROR(x) (1 << (((x) * 4) + 1))
|
|
#define FAN_CHx_INT_MANUAL_SPEED_UPDATE(x) (1 << (((x) * 4) + 1))
|
|
#define FAN_CHx_INT_STALL(x) (1 << ((x) * 4))
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// API Function prototypes
|
|
//
|
|
//*****************************************************************************
|
|
extern void FanChannelEnable(unsigned long ulBase, unsigned long ulChannel);
|
|
extern void FanChannelDisable(unsigned long ulBase, unsigned long ulChannel);
|
|
extern unsigned long FanChannelStatus(unsigned long ulBase,
|
|
unsigned long ulChannel);
|
|
extern void FanChannelConfigManual(unsigned long ulBase, unsigned long ulChannel,
|
|
unsigned long ulConfig);
|
|
extern void FanChannelConfigAuto(unsigned long ulBase, unsigned long ulChannel,
|
|
unsigned long ulConfig);
|
|
extern void FanChannelDutySet(unsigned long ulBase, unsigned long ulChannel,
|
|
unsigned long ulDuty);
|
|
extern unsigned long FanChannelDutyGet(unsigned long ulBase,
|
|
unsigned long ulChannel);
|
|
extern void FanChannelRPMSet(unsigned long ulBase, unsigned long ulChannel,
|
|
unsigned long ulRPM);
|
|
extern unsigned long FanChannelRPMGet(unsigned long ulBase,
|
|
unsigned long ulChannel);
|
|
extern void FanIntEnable(unsigned long ulBase, unsigned long ulFlags);
|
|
extern void FanIntDisable(unsigned long ulBase, unsigned long ulFlags);
|
|
extern unsigned long FanIntStatus(unsigned long ulBase, tBoolean bMasked);
|
|
extern void FanIntClear(unsigned long ulBase, unsigned long ulFlags);
|
|
extern void FanIntRegister(unsigned long ulBase, void (*pfnHandler)(void));
|
|
extern void FanIntUnregister(unsigned long ulBase);
|
|
extern unsigned long FanChannelsGet(unsigned long ulBase);
|
|
|
|
//*****************************************************************************
|
|
//
|
|
// Mark the end of the C bindings section for C++ compilers.
|
|
//
|
|
//*****************************************************************************
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif // __FAN_H__
|