hal_hw.h 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. /****************************************************************
  2. ****************************************************************
  3. ** **
  4. ** (C)Copyright 2005-2006, American Megatrends Inc. **
  5. ** **
  6. ** All Rights Reserved. **
  7. ** **
  8. ** 6145-F, Northbelt Parkway, Norcross, **
  9. ** **
  10. ** Georgia - 30071, USA. Phone-(770)-246-8600. **
  11. ** **
  12. ****************************************************************
  13. ****************************************************************/
  14. /*****************************************************************
  15. *
  16. * hal_hw.h
  17. * HAL hardware functions
  18. *
  19. * Author: Vinoth kumar S <vinothkumars@ami.com>
  20. *
  21. *****************************************************************/
  22. #ifndef HAL_HW_H
  23. #define HAL_HW_H
  24. #include "Types.h"
  25. //#include "hal_defs.h"
  26. #include "Debug.h"
  27. #define I2C_LIB "/usr/local/lib/libi2c.so"
  28. #define GPIO_LIB "/usr/local/lib/libgpio.so"
  29. #define ADC_LIB "/usr/local/lib/libadc.so"
  30. #define FANPWM_LIB "/usr/local/lib/libpwmtach.so"
  31. #define PECI_LIB "/usr/local/lib/libpeci.so"
  32. #define LPCUART_LIB "/usr/local/lib/liblpcuart.so"
  33. #define NM_LIB "/usr/local/lib/libipminmsupport.so"
  34. #define SNOOP_LIB "/usr/local/lib/libsnoop.so"
  35. #define MAX_HAL_HANDLE_NAME 256
  36. #define FAN_MAX_NO 16
  37. typedef enum
  38. {
  39. HAL_I2C_RW = 0,
  40. HAL_I2C_MR,
  41. HAL_I2C_MW,
  42. HAL_I2C_SET_HOST_ADDRESS,
  43. HAL_I2C_SLAVE_READ_ON_FD,
  44. HAL_I2C_MASTER_WRITE_ON_FD,
  45. HAL_I2C_GET_RECOVERY_INFO,
  46. HAL_I2C_SET_RECOVERY_INFO,
  47. MAX_I2C_HANDLE
  48. }HAL_I2C_HANDLE;
  49. typedef enum
  50. {
  51. HAL_GPIO_GET_DIR = 0,
  52. HAL_GPIO_GET_POL,
  53. HAL_GPIO_GET_DATA,
  54. HAL_GPIO_SET_DIR_OUT,
  55. HAL_GPIO_SET_DIR_IN,
  56. HAL_GPIO_SET_POL_HIGH,
  57. HAL_GPIO_SET_POL_LOW,
  58. HAL_GPIO_SET_DATA_HIGH,
  59. HAL_GPIO_SET_DATA_LOW,
  60. HAL_GPIO_REGISTER_SENSOR_INTERRUPTS,
  61. HAL_GPIO_WAIT_FOR_SENSOR_INTERRUPTS,
  62. HAL_GPIO_UNREGISTER_SENSOR_INTERRUPTS,
  63. HAL_GPIO_REGISTER_CHASSIS_INTERRUPTS,
  64. HAL_GPIO_WAIT_FOR_CHASSIS_INTERRUPTS,
  65. HAL_GPIO_UNREGISTER_CHASSIS_INTERRUPTS,
  66. HAL_GPIO_SET_PULL_UP,
  67. HAL_GPIO_SET_PULL_DOWN,
  68. HAL_GPIO_SET_NO_PULL_UP_DOWN,
  69. MAX_GPIO_HANDLE
  70. }HAL_GPIO_HANDLE;
  71. typedef enum
  72. {
  73. HAL_ADC_READ = 0,
  74. MAX_ADC_HANDLE
  75. }HAL_ADC_HANDLE;
  76. typedef enum
  77. {
  78. HAL_FANPWM_ENABLEFAN = 0,
  79. HAL_FANPWM_ENABLESTATUSREAD,
  80. HAL_FANPWM_GETFANSPEED,
  81. HAL_FANPWM_SETFANSPEED,
  82. HAL_FANPWM_CONFIG_MAP_TBL,
  83. HAL_FANPWM_SET_PWM_DUTYCYCLE,
  84. HAL_FANPWM_GET_PWM_DUTYCYCLE,
  85. HAL_FANPWM_ENABLEALLFAN,
  86. MAX_FANPWM_HANDLE
  87. }HAL_FANPWM_HANDLE;
  88. typedef enum
  89. {
  90. HAL_PECI_COMMAND = 0,
  91. HAL_PECI_READTEMP,
  92. HAL_PECI_GETDIB,
  93. HAL_PECI_RDPKGCONFIG,
  94. HAL_PECI_WRPKGCONFIG,
  95. HAL_PECI_RDIAMSR,
  96. HAL_PECI_WRIAMSR,
  97. HAL_PECI_RDPCICONFIG,
  98. HAL_PECI_WRPCICONFIG,
  99. HAL_PECI_ENABLEAWFCS,
  100. MAX_PECI_HANDLE
  101. }HAL_PECI_HANDLE;
  102. typedef enum
  103. {
  104. HAL_LPCUART_ENABLE_UART_PORT = 0,
  105. HAL_LPCUART_DISABLE_UART_PORT,
  106. HAL_LPCUART_ROUTE_UART_TO_COM,
  107. HAL_LPCUART_ROUTE_COM_TO_UART,
  108. HAL_LPCUART_ROUTE_UART_TO_UART,
  109. MAX_LPCUART_HANDLE
  110. }HAL_LPCUART_HANDLE;
  111. typedef enum
  112. {
  113. HAL_NM_SENSOR_REGISTER = 0,
  114. MAX_NM_HANDLE
  115. }HAL_NM_HANDLE;
  116. typedef enum
  117. {
  118. HAL_SNOOP_READ_CURRENT_BIOS_CODE = 0,
  119. MAX_SNOOP_HANDLE
  120. }HAL_SNOOP_HANDLE;
  121. typedef struct
  122. {
  123. INT16U HALHandleNum;
  124. INT8U HALHandleName[MAX_HAL_HANDLE_NAME];
  125. }HAL_Init;
  126. typedef void (*phalfunc) (void );
  127. struct fan_map_entry_t {
  128. unsigned int fan_num;
  129. unsigned int pwm_num;
  130. unsigned int tach_num;
  131. };
  132. extern phalfunc g_HALI2CHandle[MAX_I2C_HANDLE];
  133. extern phalfunc g_HALGPIOHandle[MAX_GPIO_HANDLE];
  134. extern phalfunc g_HALADCHandle[MAX_ADC_HANDLE];
  135. extern phalfunc g_HALFanPwmHandle[MAX_FANPWM_HANDLE];
  136. extern phalfunc g_HALPECIHandle[MAX_PECI_HANDLE];
  137. extern phalfunc g_HALLPCUARTHandle[MAX_LPCUART_HANDLE];
  138. extern int i2c_read_reg (hal_t *phal);
  139. extern int i2c_read_regData (hal_t *phal);
  140. extern int i2c_write_reg (hal_t *phal);
  141. extern int i2c_write_read (hal_t *phal);
  142. extern int gpio_read (hal_t *phal);
  143. extern int gpio_write (hal_t *phal);
  144. extern int mmap_read (hal_t *phal);
  145. extern int mmap_write (hal_t *phal);
  146. extern int adc_read (hal_t *phal);
  147. extern int fan_speed_read (hal_t *phal);
  148. extern int fan_speed_set (hal_t *phal);
  149. extern int fan_set_connect (hal_t *phal);
  150. extern int peci_read_temp(hal_t *phal);
  151. extern int lpcuart_route_set(hal_t *phal);
  152. extern int nm_register_sensor(hal_t *phal);
  153. extern int snoop_read_current_bios_code(hal_t *phal);
  154. #endif //#define HAL_HW_H