1/* ISA version encoding in bits 0-6 (7 bits) */
2#define HWCAP_HEXAGON_ISA_MASK 0x7F /* ISA version mask */
3
4/* ISA version enumeration values */
5#define HWCAP_HEXAGON_ISA_V2 1 /* Hexagon V2 */
6#define HWCAP_HEXAGON_ISA_V3 2 /* Hexagon V3 */
7#define HWCAP_HEXAGON_ISA_V4 3 /* Hexagon V4 */
8#define HWCAP_HEXAGON_ISA_V5 4 /* Hexagon V5 */
9#define HWCAP_HEXAGON_ISA_V55 5 /* Hexagon V55 */
10#define HWCAP_HEXAGON_ISA_V60 6 /* Hexagon V60 */
11#define HWCAP_HEXAGON_ISA_V62 7 /* Hexagon V62 */
12#define HWCAP_HEXAGON_ISA_V65 8 /* Hexagon V65 */
13#define HWCAP_HEXAGON_ISA_V66 9 /* Hexagon V66 */
14#define HWCAP_HEXAGON_ISA_V67 10 /* Hexagon V67 */
15#define HWCAP_HEXAGON_ISA_V68 11 /* Hexagon V68 */
16#define HWCAP_HEXAGON_ISA_V69 12 /* Hexagon V69 */
17#define HWCAP_HEXAGON_ISA_V71 13 /* Hexagon V71 */
18#define HWCAP_HEXAGON_ISA_V73 14 /* Hexagon V73 */
19#define HWCAP_HEXAGON_ISA_V79 15 /* Hexagon V79 */
20
21/* Essential feature flags */
22#define HWCAP_HEXAGON_HVX (1 << 7) /* HVX (Hexagon Vector eXtensions) */
23#define HWCAP_HEXAGON_CABAC (1 << 8) /* CABAC acceleration */
24#define HWCAP_HEXAGON_HVX_LENGTH_128B (1 << 9) /* HVX 128-byte vector length */
25#define HWCAP_HEXAGON_HVX_IEEE_FP (1 << 10) /* HVX IEEE floating point */
26#define HWCAP_HEXAGON_AUDIO (1 << 11) /* Audio ISA extensions */
27
28/* Utility macros for userspace applications */
29#define HWCAP_HEXAGON_GET_ISA(hwcap) ((hwcap) & HWCAP_HEXAGON_ISA_MASK)
30#define HWCAP_HEXAGON_IS_ISA(hwcap, version) (HWCAP_HEXAGON_GET_ISA(hwcap) == (version))
31#define HWCAP_HEXAGON_HAS_ISA(hwcap, version) (HWCAP_HEXAGON_GET_ISA(hwcap) >= (version))