1 2 /* 3 * Copyright (c) 2024, Qualcomm Innovation Center, Inc. All rights reserved. 4 * SPDX-License-Identifier: ISC 5 */ 6 7 8 9 10 11 12 #ifndef __SEQ_H__ 13 #define __SEQ_H__ 14 15 #include "HALhwio.h" 16 17 18 19 20 #define SEQ_INH(base, regtype, reg) \ 21 SEQ_##regtype##_INH(base, reg) 22 23 24 #define SEQ_INMH(base, regtype, reg, mask) \ 25 SEQ_##regtype##_INMH(base, reg, mask) 26 27 28 29 #define SEQ_INFH(base, regtype, reg, fld) \ 30 (SEQ_##regtype##_INMH(base, reg, HWIO_FMSK(regtype, fld)) >> HWIO_SHFT(regtype, fld)) 31 32 33 34 #define SEQ_OUTH(base, regtype, reg, val) \ 35 SEQ_##regtype##_OUTH(base, reg, val) 36 37 38 #define SEQ_OUTMH(base, regtype, reg, mask, val) \ 39 SEQ_##regtype##_OUTMH(base, reg, mask, val) 40 41 42 43 #define SEQ_OUTFH(base, regtype, reg, fld, val) \ 44 SEQ_##regtype##_OUTMH(base, reg, HWIO_FMSK(regtype, fld), val << HWIO_SHFT(regtype, fld)) 45 46 47 48 49 50 51 typedef enum { 52 SEC, 53 MS, 54 US, 55 NS 56 } SEQ_TimeUnit; 57 58 extern void seq_wait(uint32 time_value, SEQ_TimeUnit time_unit); 59 60 61 62 extern uint32 seq_poll(uint32 reg_offset, uint32 expect_value, uint32 value_mask, uint32 value_shift, uint32 max_poll_cnt); 63 64 #endif 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84