#ifndef __INTEL_TH_GTH_H__
#define __INTEL_TH_GTH_H__
#define TH_OUTPUT_PARM(name) \
TH_OUTPUT_ ## name
enum intel_th_output_parm {
TH_OUTPUT_PARM(port),
TH_OUTPUT_PARM(null),
TH_OUTPUT_PARM(drop),
TH_OUTPUT_PARM(reset),
TH_OUTPUT_PARM(flush),
TH_OUTPUT_PARM(smcfreq),
};
enum {
REG_GTH_GTHOPT0 = 0x00,
REG_GTH_GTHOPT1 = 0x04,
REG_GTH_SWDEST0 = 0x08,
REG_GTH_GSWTDEST = 0x88,
REG_GTH_SMCR0 = 0x9c,
REG_GTH_SMCR1 = 0xa0,
REG_GTH_SMCR2 = 0xa4,
REG_GTH_SMCR3 = 0xa8,
REG_GTH_SCR = 0xc8,
REG_GTH_STAT = 0xd4,
REG_GTH_SCR2 = 0xd8,
REG_GTH_DESTOVR = 0xdc,
REG_GTH_SCRPD0 = 0xe0,
REG_GTH_SCRPD1 = 0xe4,
REG_GTH_SCRPD2 = 0xe8,
REG_GTH_SCRPD3 = 0xec,
REG_TSCU_TSUCTRL = 0x2000,
REG_TSCU_TSCUSTAT = 0x2004,
REG_CTS_C0S0_EN = 0x30c0,
REG_CTS_C0S0_ACT = 0x3180,
REG_CTS_STAT = 0x32a0,
REG_CTS_CTL = 0x32a4,
};
#define GTH_PLE_WAITLOOP_DEPTH 10000
#define TSUCTRL_CTCRESYNC BIT(0)
#define TSCUSTAT_CTCSYNCING BIT(1)
#define CTS_TRIG_WAITLOOP_DEPTH 10000
#define CTS_EVENT_ENABLE_IF_ANYTHING BIT(31)
#define CTS_ACTION_CONTROL_STATE_OFF 27
#define CTS_ACTION_CONTROL_SET_STATE(x) \
(((x) & 0x1f) << CTS_ACTION_CONTROL_STATE_OFF)
#define CTS_ACTION_CONTROL_TRIGGER BIT(4)
#define CTS_STATE_IDLE 0x10u
#define CTS_CTL_SEQUENCER_ENABLE BIT(0)
#endif /* __INTEL_TH_GTH_H__ */