#ifndef _EPIC_H
#define _EPIC_H
#pragma ident "%Z%%M% %I% %E% SMI"
#ifdef __cplusplus
extern "C" {
#endif
#define EPIC_DELAY 10000
#define EPIC_FIRE_INTERRUPT 0x01
#define EPIC_FIRE_INT_MASK 0x01
#define EPIC_IND_FW_VERSION 0x05
#define EPIC_IND_LED_STATE0 0x06
#define EPIC_ALERT_LED_MASK 0x0C
#define EPIC_ALERT_LED_OFF 0x00
#define EPIC_ALERT_LED_ON 0x04
#define EPIC_POWER_LED_MASK 0x30
#define EPIC_POWER_LED_OFF 0x00
#define EPIC_POWER_LED_ON 0x10
#define EPIC_POWER_LED_SB_BLINK 0x20
#define EPIC_POWER_LED_FAST_BLINK 0x30
#define EPIC_HOST_INT_ENABLE_REG 0x1a
#define EPIC_POWER_BUTTON_INT 0x01
#define EPIC_HOST_INTR_CLEAR 0x00
#define EPIC_POWER_BUTTON_INT_MASK 0x01
#define EPIC_HOST_INT_STATUS_REG 0x1b
#define EPIC_ATOM_DATA 0x80
#define EPIC_ATOM_ADDR 0x81
#define EPIC_ATOM_INTR_CLEAR 0x01
#define EPIC_ATOM_INTR_READ 0x02
#define EPIC_ATOM_INTR_ENABLE 0x03
#define EPIC_SET_ALERT_LED 0x11
#define EPIC_RESET_ALERT_LED 0x12
#define EPIC_SET_POWER_LED 0x21
#define EPIC_RESET_POWER_LED 0x22
#define EPIC_SB_BL_POWER_LED 0x23
#define EPIC_FAST_BL_POWER_LED 0x24
#define EPIC_GET_FW 0x30
#define EPIC_READ(HANDLE, REG, LHS, ADDR)\
drv_usecwait(EPIC_DELAY);\
(void) ddi_put8((HANDLE),\
(uint8_t *)(REG)+\
EPIC_IND_ADDR, (ADDR));\
drv_usecwait(EPIC_DELAY);\
(LHS) = ddi_get8((HANDLE),\
(uint8_t *)(REG)+\
EPIC_IND_DATA);
#define EPIC_WRITE(HANDLE, REG, ADDR, MASK, DATA)\
drv_usecwait(EPIC_DELAY);\
(void) ddi_put8((HANDLE),\
(uint8_t *)(REG)+\
EPIC_IND_ADDR, (ADDR));\
drv_usecwait(EPIC_DELAY);\
(void) ddi_put8((HANDLE),\
(uint8_t *)(REG)+\
EPIC_WRITE_MASK, (MASK));\
drv_usecwait(EPIC_DELAY);\
(void) ddi_put8((HANDLE),\
(uint8_t *)(REG)+\
EPIC_IND_DATA, (DATA));
#define EPIC_RD(HANDLE, REG, LHS)\
drv_usecwait(EPIC_DELAY);\
(LHS) = ddi_get8((HANDLE),\
(uint8_t *)(REG)+\
EPIC_ATOM_DATA);
#define EPIC_WR(HANDLE, REG, DATA)\
drv_usecwait(EPIC_DELAY);\
(void) ddi_put8((HANDLE),\
(uint8_t *)(REG)+\
EPIC_ATOM_ADDR, (DATA));
#ifdef __cplusplus
}
#endif
#endif