|
@@ -565,6 +565,82 @@ struct hal_srng_high_wm_info {
|
|
};
|
|
};
|
|
#endif
|
|
#endif
|
|
|
|
|
|
|
|
+#define DEFAULT_TSF_ID 1
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * enum hal_scratch_reg_enum - Enum to indicate scratch register values
|
|
|
|
+ * @PMM_QTIMER_GLOBAL_OFFSET_LO_US - QTIMER GLOBAL OFFSET LOW
|
|
|
|
+ * @PMM_QTIMER_GLOBAL_OFFSET_HI_US - QTIMER GLOBAL OFFSET HIGH
|
|
|
|
+ * @PMM_MAC0_TSF1_OFFSET_LO_US - MAC0 TSF1 OFFSET LOW
|
|
|
|
+ * @PMM_MAC0_TSF1_OFFSET_HI_US - MAC0 TSF1 OFFSET HIGH
|
|
|
|
+ * @PMM_MAC0_TSF2_OFFSET_LO_US - MAC0 TSF2 OFFSET LOW
|
|
|
|
+ * @PMM_MAC0_TSF2_OFFSET_HI_US - MAC0 TSF2 OFFSET HIGH
|
|
|
|
+ * @PMM_MAC1_TSF1_OFFSET_LO_US - MAC1 TSF1 OFFSET LOW
|
|
|
|
+ * @PMM_MAC1_TSF1_OFFSET_HI_US - MAC1 TSF1 OFFSET HIGH
|
|
|
|
+ * @PMM_MAC1_TSF2_OFFSET_LO_US - MAC1 TSF2 OFFSET LOW
|
|
|
|
+ * @PMM_MAC1_TSF2_OFFSET_HI_US - MAC1 TSF2 OFFSET HIGH
|
|
|
|
+ * @PMM_MLO_OFFSET_LO_US - MLO OFFSET LOW
|
|
|
|
+ * @PMM_MLO_OFFSET_HI_US - MLO OFFSET HIGH
|
|
|
|
+ * @PMM_TQM_CLOCK_OFFSET_LO_US - TQM CLOCK OFFSET LOW
|
|
|
|
+ * @PMM_TQM_CLOCK_OFFSET_HI_US - TQM CLOCK OFFSET HIGH
|
|
|
|
+ * @PMM_Q6_CRASH_REASON - Q6 CRASH REASON
|
|
|
|
+ * @PMM_SCRATCH_TWT_OFFSET - TWT OFFSET
|
|
|
|
+ * @PMM_PMM_REG_MAX - Max PMM REG value
|
|
|
|
+ */
|
|
|
|
+enum hal_scratch_reg_enum {
|
|
|
|
+ PMM_QTIMER_GLOBAL_OFFSET_LO_US,
|
|
|
|
+ PMM_QTIMER_GLOBAL_OFFSET_HI_US,
|
|
|
|
+ PMM_MAC0_TSF1_OFFSET_LO_US,
|
|
|
|
+ PMM_MAC0_TSF1_OFFSET_HI_US,
|
|
|
|
+ PMM_MAC0_TSF2_OFFSET_LO_US,
|
|
|
|
+ PMM_MAC0_TSF2_OFFSET_HI_US,
|
|
|
|
+ PMM_MAC1_TSF1_OFFSET_LO_US,
|
|
|
|
+ PMM_MAC1_TSF1_OFFSET_HI_US,
|
|
|
|
+ PMM_MAC1_TSF2_OFFSET_LO_US,
|
|
|
|
+ PMM_MAC1_TSF2_OFFSET_HI_US,
|
|
|
|
+ PMM_MLO_OFFSET_LO_US,
|
|
|
|
+ PMM_MLO_OFFSET_HI_US,
|
|
|
|
+ PMM_TQM_CLOCK_OFFSET_LO_US,
|
|
|
|
+ PMM_TQM_CLOCK_OFFSET_HI_US,
|
|
|
|
+ PMM_Q6_CRASH_REASON,
|
|
|
|
+ PMM_SCRATCH_TWT_OFFSET,
|
|
|
|
+ PMM_PMM_REG_MAX
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * hal_get_tsf_enum(): API to get the enum corresponding to the mac and tsf id
|
|
|
|
+ *
|
|
|
|
+ * @tsf_id: tsf id
|
|
|
|
+ * @mac_id: mac id
|
|
|
|
+ * @enum_lo: Pointer to update low scratch register
|
|
|
|
+ * @enum_hi: Pointer to update hi scratch register
|
|
|
|
+ *
|
|
|
|
+ * Return: void
|
|
|
|
+ */
|
|
|
|
+static inline void
|
|
|
|
+hal_get_tsf_enum(uint32_t tsf_id, uint32_t mac_id,
|
|
|
|
+ enum hal_scratch_reg_enum *tsf_enum_low,
|
|
|
|
+ enum hal_scratch_reg_enum *tsf_enum_hi)
|
|
|
|
+{
|
|
|
|
+ if (mac_id == 0) {
|
|
|
|
+ if (tsf_id == 0) {
|
|
|
|
+ *tsf_enum_low = PMM_MAC0_TSF1_OFFSET_LO_US;
|
|
|
|
+ *tsf_enum_hi = PMM_MAC0_TSF1_OFFSET_HI_US;
|
|
|
|
+ } else if (tsf_id == 1) {
|
|
|
|
+ *tsf_enum_low = PMM_MAC0_TSF2_OFFSET_LO_US;
|
|
|
|
+ *tsf_enum_hi = PMM_MAC0_TSF2_OFFSET_HI_US;
|
|
|
|
+ }
|
|
|
|
+ } else if (mac_id == 1) {
|
|
|
|
+ if (tsf_id == 0) {
|
|
|
|
+ *tsf_enum_low = PMM_MAC1_TSF1_OFFSET_LO_US;
|
|
|
|
+ *tsf_enum_hi = PMM_MAC1_TSF1_OFFSET_HI_US;
|
|
|
|
+ } else if (tsf_id == 1) {
|
|
|
|
+ *tsf_enum_low = PMM_MAC1_TSF2_OFFSET_LO_US;
|
|
|
|
+ *tsf_enum_hi = PMM_MAC1_TSF2_OFFSET_HI_US;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
/* Common SRNG ring structure for source and destination rings */
|
|
/* Common SRNG ring structure for source and destination rings */
|
|
struct hal_srng {
|
|
struct hal_srng {
|
|
/* Unique SRNG ring ID */
|
|
/* Unique SRNG ring ID */
|