HPM SDK
HPMicro Software Development Kit
hpm_sysctl_drv.h
Go to the documentation of this file.
1 
8 #ifndef HPM_SYSCTL_DRV_H
9 #define HPM_SYSCTL_DRV_H
10 
11 #include "hpm_common.h"
12 #include "hpm_sysctl_regs.h"
13 
25 typedef enum {
28 
34 
38 typedef enum {
39  sysctl_preset_0 = 1 << 0,
40  sysctl_preset_1 = 1 << 1,
41  sysctl_preset_2 = 1 << 2,
42  sysctl_preset_3 = 1 << 3,
44 
48 typedef enum {
52 
56 typedef enum {
134 
154 
155 
222 
226 typedef enum {
231 
235 typedef enum {
275 
280 
283 
285 
290 } clock_node_t;
291 
295 typedef enum {
306 
310 typedef enum {
317 
321 typedef enum {
325 } cpu_lp_mode_t;
326 
330 typedef enum {
335 
344 
347 
355 
364 
375 
383 
385 
387 
391 
393 
395 
399 typedef enum {
403 
407 typedef enum {
411 
415 typedef enum {
419 
420 typedef enum {
426 
430 typedef struct monitor_config {
431  uint8_t divide_by;
436  bool start_measure;
437  bool enable_output;
438  uint32_t high_limit;
439  uint32_t low_limit;
441 
442 #ifdef __cplusplus
443 extern "C" {
444 #endif
445 
454 static inline bool sysctl_monitor_result_is_valid(SYSCTL_Type *ptr, uint8_t monitor_index)
455 {
456  return SYSCTL_MONITOR_CONTROL_VALID_GET(ptr->MONITOR[monitor_index].CONTROL);
457 }
458 
466 static inline uint32_t sysctl_monitor_get_current_result(SYSCTL_Type *ptr, uint8_t monitor_index)
467 {
468  while (!sysctl_monitor_result_is_valid(ptr, monitor_index)) {
469  }
470  return ptr->MONITOR[monitor_index].CURRENT;
471 }
472 
480 static inline void sysctl_monitor_set_work_mode(SYSCTL_Type *ptr, uint8_t monitor_index, monitor_work_mode_t mode)
481 {
482  ptr->MONITOR[monitor_index].CONTROL = (ptr->MONITOR[monitor_index].CONTROL & ~SYSCTL_MONITOR_CONTROL_MODE_MASK) |
484 }
485 
493 static inline hpm_stat_t sysctl_monitor_set_limit_low(SYSCTL_Type *ptr, uint8_t monitor_index, uint32_t limit)
494 {
495  if (ptr->MONITOR[monitor_index].CONTROL & SYSCTL_MONITOR_CONTROL_MODE_MASK) {
497  }
498  ptr->MONITOR[monitor_index].LOW_LIMIT = SYSCTL_MONITOR_LOW_LIMIT_FREQUENCY_SET(limit);
499  return status_success;
500 }
501 
509 static inline hpm_stat_t sysctl_monitor_set_limit_high(SYSCTL_Type *ptr, uint8_t monitor_index, uint32_t limit)
510 {
511  if (ptr->MONITOR[monitor_index].CONTROL & SYSCTL_MONITOR_CONTROL_MODE_MASK) {
513  }
514  ptr->MONITOR[monitor_index].HIGH_LIMIT = SYSCTL_MONITOR_HIGH_LIMIT_FREQUENCY_SET(limit);
515  return status_success;
516 }
517 
526 static inline hpm_stat_t
527 sysctl_monitor_set_limit(SYSCTL_Type *ptr, uint8_t monitor_index, uint32_t limit_high, uint32_t limit_low)
528 {
529  if (ptr->MONITOR[monitor_index].CONTROL & SYSCTL_MONITOR_CONTROL_MODE_MASK) {
531  }
532  ptr->MONITOR[monitor_index].HIGH_LIMIT = SYSCTL_MONITOR_HIGH_LIMIT_FREQUENCY_SET(limit_high);
533  ptr->MONITOR[monitor_index].LOW_LIMIT = SYSCTL_MONITOR_LOW_LIMIT_FREQUENCY_SET(limit_low);
534  return status_success;
535 }
536 
544 static inline uint32_t sysctl_monitor_get_limit_high(SYSCTL_Type *ptr, uint32_t monitor_index)
545 {
546  return SYSCTL_MONITOR_HIGH_LIMIT_FREQUENCY_GET(ptr->MONITOR[monitor_index].HIGH_LIMIT);
547 }
548 
556 static inline uint32_t sysctl_monitor_get_limit_low(SYSCTL_Type *ptr, uint32_t monitor_index)
557 {
558  return SYSCTL_MONITOR_LOW_LIMIT_FREQUENCY_SET(ptr->MONITOR[monitor_index].LOW_LIMIT);
559 }
560 
570 uint32_t
571 sysctl_monitor_measure_frequency(SYSCTL_Type *ptr, uint8_t monitor_index, monitor_target_t target, bool enable_output);
572 
581 static inline void sysctl_set_enable_cpu_affiliate(SYSCTL_Type *ptr, uint8_t cpu_index)
582 {
583  ptr->AFFILIATE[cpu_index].SET = 1 << cpu_index;
584 }
585 
592 static inline void sysctl_set_disable_cpu_affiliate(SYSCTL_Type *ptr, uint8_t cpu_index)
593 {
594  ptr->AFFILIATE[cpu_index].CLEAR = 1 << cpu_index;
595 }
596 
603 static inline bool sysctl_resource_any_is_busy(SYSCTL_Type *ptr)
604 {
605  return ptr->RESOURCE[0] & SYSCTL_RESOURCE_GLB_BUSY_MASK;
606 }
607 
616 {
617  return ptr->RESOURCE[resource] & SYSCTL_RESOURCE_LOC_BUSY_MASK;
618 }
619 
628  sysctl_resource_t resource,
630 {
631  ptr->RESOURCE[resource] =
632  (ptr->RESOURCE[resource] & ~SYSCTL_RESOURCE_MODE_MASK) |
634 }
635 
643 static inline uint8_t sysctl_resource_target_get_mode(SYSCTL_Type *ptr,
644  sysctl_resource_t resource)
645 {
646  return SYSCTL_RESOURCE_MODE_GET(ptr->RESOURCE[resource]);
647 }
648 
656 static inline void sysctl_clear_cpu_lp_retention_with_mask(SYSCTL_Type *ptr, uint8_t cpu_index, uint32_t mask)
657 {
658  ptr->RETENTION[cpu_index].CLEAR = mask;
659 }
660 
668  uint32_t mask)
669 {
671 }
672 
680 static inline void sysctl_set_cpu_lp_retention_with_mask(SYSCTL_Type *ptr, uint8_t cpu_index, uint32_t mask)
681 {
682  ptr->RETENTION[cpu_index].SET = mask;
683 }
684 
692  uint32_t mask)
693 {
695 }
696 
704  uint32_t mask)
705 {
707 }
708 
716 static inline void sysctl_set_cpu_lp_retention(SYSCTL_Type *ptr,
717  uint8_t cpu_index,
718  uint32_t value)
719 {
720  ptr->RETENTION[cpu_index].VALUE = value;
721 }
722 
729 static inline void sysctl_set_cpu0_lp_retention(SYSCTL_Type *ptr, uint32_t value)
730 {
731  sysctl_set_cpu_lp_retention(ptr, 0, value);
732 }
733 
742 static inline void
743 sysctl_set_cpu_lp_retain_domain(SYSCTL_Type *ptr, uint8_t cpu_index, sysctl_retention_domain_t domain, bool retain_mem)
744 {
745  uint8_t set_mask = 0x1;
746  if (domain < sysctl_retention_domain_xtal24m) {
747  set_mask = retain_mem ? 0x3 : 0x1;
748  }
749  ptr->RETENTION[cpu_index].SET = (set_mask << domain);
750 }
751 
761  bool retain_mem)
762 {
763  sysctl_set_cpu_lp_retain_domain(ptr, 0, domain, retain_mem);
764 }
765 
773 {
774  return ptr->CLOCK_CPU[0] & SYSCTL_CLOCK_CPU_GLB_BUSY_MASK;
775 }
776 
783 static inline bool sysctl_clock_any_is_busy(SYSCTL_Type *ptr)
784 {
785  return ptr->CLOCK[0] & SYSCTL_CLOCK_GLB_BUSY_MASK;
786 }
787 
795 static inline bool sysctl_clock_target_is_busy(SYSCTL_Type *ptr, clock_node_t clock)
796 {
797  return ptr->CLOCK[clock] & SYSCTL_CLOCK_LOC_BUSY_MASK;
798 }
799 
807 {
808  ptr->CLOCK[clock] |= SYSCTL_CLOCK_PRESERVE_MASK;
809 }
810 
818 {
819  ptr->CLOCK[clock] &= ~SYSCTL_CLOCK_PRESERVE_MASK;
820 }
821 
828 static inline void sysctl_clock_set_preset(SYSCTL_Type *ptr, sysctl_preset_t preset)
829 {
831 }
832 
841 {
842  return ptr->RESET[domain].CONTROL & SYSCTL_RESET_CONTROL_FLAG_WAKE_MASK;
843 }
844 
852 {
854 }
855 
864 {
865  return ptr->RESET[domain].CONTROL & SYSCTL_RESET_CONTROL_FLAG_MASK;
866 }
867 
875 {
877 }
878 
886 {
888 }
889 
898 static inline uint32_t sysctl_get_wakeup_source_status(SYSCTL_Type *ptr, uint8_t cpu_index, uint8_t status_index)
899 {
900  return ptr->CPU[cpu_index].WAKEUP_STATUS[status_index];
901 }
902 
911  uint8_t status_index)
912 {
913  return sysctl_get_wakeup_source_status(ptr, 0, status_index);
914 }
915 
925 static inline uint32_t
926 sysctl_check_wakeup_source_status_with_mask(SYSCTL_Type *ptr, uint8_t cpu_index, uint8_t status_index, uint32_t mask)
927 {
928  return ptr->CPU[cpu_index].WAKEUP_STATUS[status_index] & mask;
929 }
930 
939 static inline
941  uint8_t status_index,
942  uint32_t mask)
943 {
944  return sysctl_check_wakeup_source_status_with_mask(ptr, 0, status_index, mask);
945 }
946 
955 static inline void
956 sysctl_enable_wakeup_source_with_mask(SYSCTL_Type *ptr, uint8_t cpu_index, uint8_t enable_index, uint32_t mask)
957 {
958  ptr->CPU[cpu_index].WAKEUP_ENABLE[enable_index] |= mask;
959 }
960 
969  uint8_t enable_index,
970  uint32_t mask)
971 {
972  ptr->CPU[0].WAKEUP_ENABLE[enable_index] |= mask;
973 }
974 
983 static inline void
984 sysctl_disable_wakeup_source_with_mask(SYSCTL_Type *ptr, uint8_t cpu_index, uint8_t enable_index, uint32_t mask)
985 {
986  ptr->CPU[cpu_index].WAKEUP_ENABLE[enable_index] &= ~mask;
987 }
988 
997  uint8_t enable_index,
998  uint32_t mask)
999 {
1000  sysctl_disable_wakeup_source_with_mask(ptr, 0, enable_index, mask);
1001 }
1002 
1003 
1011 static inline void sysctl_disable_wakeup_source_with_irq(SYSCTL_Type *ptr, uint8_t cpu_index, uint16_t irq_num)
1012 {
1013  ptr->CPU[cpu_index].WAKEUP_ENABLE[irq_num >> 2] &= ~(1UL << (irq_num % 32));
1014 }
1015 
1023  uint16_t irq_num)
1024 {
1025  sysctl_disable_wakeup_source_with_irq(ptr, 0, irq_num);
1026 }
1027 
1028 
1036 static inline void sysctl_enable_wakeup_source_with_irq(SYSCTL_Type *ptr, uint8_t cpu_index, uint16_t irq_num)
1037 {
1038  ptr->CPU[cpu_index].WAKEUP_ENABLE[irq_num / 32] |= 1UL << (irq_num & 0x1F);
1039 }
1040 
1048  uint16_t irq_num)
1049 {
1050  sysctl_enable_wakeup_source_with_irq(ptr, 0, irq_num);
1051 }
1052 
1061  uint8_t cpu_index,
1062  uint16_t gpr_mask)
1063 {
1064  ptr->CPU[cpu_index].LOCK |= SYSCTL_CPU_LOCK_GPR_SET(gpr_mask);
1065 }
1066 
1067 
1075  uint16_t gpr_mask)
1076 {
1077  sysctl_cpu_lock_gpr_with_mask(ptr, 0, gpr_mask);
1078 }
1079 
1086 static inline void sysctl_cpu_lock(SYSCTL_Type *ptr, uint8_t cpu_index)
1087 {
1088  ptr->CPU[cpu_index].LOCK |= SYSCTL_CPU_LOCK_LOCK_MASK;
1089 }
1090 
1096 static inline void sysctl_cpu0_lock(SYSCTL_Type *ptr)
1097 {
1098  sysctl_cpu_lock(ptr, 0);
1099 }
1100 
1108 static inline void sysctl_set_cpu_lp_mode(SYSCTL_Type *ptr, uint8_t cpu_index, cpu_lp_mode_t mode)
1109 {
1110  ptr->CPU[cpu_index].LP = (ptr->CPU[cpu_index].LP & ~(SYSCTL_CPU_LP_MODE_MASK)) | (mode);
1111 }
1112 
1119 static inline void sysctl_set_cpu0_lp_mode(SYSCTL_Type *ptr, cpu_lp_mode_t mode)
1120 {
1121  sysctl_set_cpu_lp_mode(ptr, 0, mode);
1122 }
1123 
1131 static inline void sysctl_clear_cpu_flags(SYSCTL_Type *ptr, uint8_t cpu_index, cpu_event_flag_mask_t flags)
1132 {
1134 }
1135 
1143 {
1144  sysctl_clear_cpu_flags(ptr, 0, flags);
1145 }
1146 
1154 static inline uint32_t sysctl_get_cpu_flags(SYSCTL_Type *ptr, uint8_t cpu_index)
1155 {
1157 }
1158 
1165 static inline uint32_t sysctl_get_cpu0_flags(SYSCTL_Type *ptr)
1166 {
1167  return sysctl_get_cpu_flags(ptr, 0);
1168 }
1169 
1179 hpm_stat_t sysctl_config_clock(SYSCTL_Type *ptr, clock_node_t node, clock_source_t source, uint32_t divide_by);
1180 
1191  uint32_t axi_sub_div, uint32_t ahb_sub_div);
1192 
1202 
1212 hpm_stat_t sysctl_enable_group_resource(SYSCTL_Type *ptr, uint8_t group, sysctl_resource_t resource, bool enable);
1213 
1222 bool sysctl_check_group_resource_enable(SYSCTL_Type *ptr, uint8_t group, sysctl_resource_t resource);
1223 
1232 uint32_t sysctl_get_group_resource_value(SYSCTL_Type *ptr, uint8_t group, uint8_t index);
1233 
1242 
1251 
1259 
1267 void sysctl_monitor_init(SYSCTL_Type *ptr, uint8_t monitor_index, monitor_config_t *config);
1268 
1279 hpm_stat_t sysctl_cpu0_set_gpr(SYSCTL_Type *ptr, uint8_t start, uint8_t count, uint32_t *data, bool lock);
1280 
1290 hpm_stat_t sysctl_cpu0_get_gpr(SYSCTL_Type *ptr, uint8_t start, uint8_t count, uint32_t *data);
1291 
1300 
1301 
1302 #ifdef __cplusplus
1303 }
1304 #endif
1308 #endif /* HPM_SYSCTL_DRV_H */
#define SYSCTL_CLOCK_LOC_BUSY_MASK
Definition: hpm_sysctl_regs.h:602
#define SYSCTL_CPU_LOCK_GPR_SET(x)
Definition: hpm_sysctl_regs.h:1017
#define SYSCTL_RESET_CONTROL_FLAG_WAKE_MASK
Definition: hpm_sysctl_regs.h:413
#define SYSCTL_MONITOR_HIGH_LIMIT_FREQUENCY_SET(x)
Definition: hpm_sysctl_regs.h:911
#define SYSCTL_GLOBAL00_MUX_SET(x)
Definition: hpm_sysctl_regs.h:761
#define SYSCTL_CLOCK_PRESERVE_MASK
Definition: hpm_sysctl_regs.h:613
#define SYSCTL_CPU_LP_MODE_MASK
Definition: hpm_sysctl_regs.h:1004
#define SYSCTL_CPU_LP_RESET_FLAG_MASK
Definition: hpm_sysctl_regs.h:990
#define SYSCTL_MONITOR_CONTROL_MODE_MASK
Definition: hpm_sysctl_regs.h:843
#define SYSCTL_RESET_CONTROL_FLAG_MASK
Definition: hpm_sysctl_regs.h:401
#define SYSCTL_RESOURCE_MODE_SET(x)
Definition: hpm_sysctl_regs.h:113
#define SYSCTL_CPU_LOCK_LOCK_MASK
Definition: hpm_sysctl_regs.h:1025
#define SYSCTL_RESOURCE_LOC_BUSY_MASK
Definition: hpm_sysctl_regs.h:98
#define SYSCTL_MONITOR_CONTROL_MODE_SET(x)
Definition: hpm_sysctl_regs.h:845
#define SYSCTL_MONITOR_HIGH_LIMIT_FREQUENCY_GET(x)
Definition: hpm_sysctl_regs.h:912
#define SYSCTL_MONITOR_CONTROL_VALID_GET(x)
Definition: hpm_sysctl_regs.h:775
#define SYSCTL_CLOCK_GLB_BUSY_MASK
Definition: hpm_sysctl_regs.h:591
#define SYSCTL_MONITOR_LOW_LIMIT_FREQUENCY_SET(x)
Definition: hpm_sysctl_regs.h:900
#define SYSCTL_RESOURCE_MODE_GET(x)
Definition: hpm_sysctl_regs.h:114
#define SYSCTL_RESOURCE_MODE_MASK
Definition: hpm_sysctl_regs.h:111
#define SYSCTL_RESOURCE_GLB_BUSY_MASK
Definition: hpm_sysctl_regs.h:87
#define SYSCTL_CPU_LP_WAKE_FLAG_MASK
Definition: hpm_sysctl_regs.h:966
#define SYSCTL_CLOCK_CPU_GLB_BUSY_MASK
Definition: hpm_sysctl_regs.h:510
#define SYSCTL_GLOBAL00_MUX_MASK
Definition: hpm_sysctl_regs.h:759
#define SYSCTL_CPU_LP_SLEEP_FLAG_MASK
Definition: hpm_sysctl_regs.h:978
static void sysctl_cpu_lock_gpr_with_mask(SYSCTL_Type *ptr, uint8_t cpu_index, uint16_t gpr_mask)
Lock CPU gpr with mask.
Definition: hpm_sysctl_drv.h:1060
static void sysctl_clock_unpreserve_settings(SYSCTL_Type *ptr, clock_node_t clock)
Unpreserve clock setting for certain node.
Definition: hpm_sysctl_drv.h:817
static void sysctl_disable_wakeup_source_with_irq(SYSCTL_Type *ptr, uint8_t cpu_index, uint16_t irq_num)
Disable wakeup source status with irq.
Definition: hpm_sysctl_drv.h:1011
static void sysctl_enable_wakeup_source_with_mask(SYSCTL_Type *ptr, uint8_t cpu_index, uint8_t enable_index, uint32_t mask)
Enable wakeup source status with mask.
Definition: hpm_sysctl_drv.h:956
static void sysctl_set_cpu1_lp_retention_with_mask(SYSCTL_Type *ptr, uint32_t mask)
Enable resource retention when CPU1 enters stop mode.
Definition: hpm_sysctl_drv.h:703
static void sysctl_disable_cpu0_wakeup_source_with_mask(SYSCTL_Type *ptr, uint8_t enable_index, uint32_t mask)
Disable CPU0 wakeup source status with mask.
Definition: hpm_sysctl_drv.h:996
static hpm_stat_t sysctl_monitor_set_limit_low(SYSCTL_Type *ptr, uint8_t monitor_index, uint32_t limit)
Set minimum frequency for target monitor instance.
Definition: hpm_sysctl_drv.h:493
static bool sysctl_reset_check_target_domain_flag(SYSCTL_Type *ptr, sysctl_reset_domain_t domain)
Clear target reset domain reset status.
Definition: hpm_sysctl_drv.h:863
static void sysctl_clear_cpu0_lp_retention_with_mask(SYSCTL_Type *ptr, uint32_t mask)
Disable resource retention when CPU0 enters stop mode.
Definition: hpm_sysctl_drv.h:667
static void sysctl_reset_clear_target_domain_all_flags(SYSCTL_Type *ptr, sysctl_reset_domain_t domain)
Clear target reset domain for all reset status.
Definition: hpm_sysctl_drv.h:885
static void sysctl_clear_cpu_lp_retention_with_mask(SYSCTL_Type *ptr, uint8_t cpu_index, uint32_t mask)
Disable resource retention when specific CPU enters stop mode.
Definition: hpm_sysctl_drv.h:656
static void sysctl_cpu_lock(SYSCTL_Type *ptr, uint8_t cpu_index)
Lock CPU lock.
Definition: hpm_sysctl_drv.h:1086
static hpm_stat_t sysctl_monitor_set_limit(SYSCTL_Type *ptr, uint8_t monitor_index, uint32_t limit_high, uint32_t limit_low)
Set frequency limit for target monitor instance.
Definition: hpm_sysctl_drv.h:527
static uint32_t sysctl_get_cpu_flags(SYSCTL_Type *ptr, uint8_t cpu_index)
Get CPU event flags.
Definition: hpm_sysctl_drv.h:1154
static uint32_t sysctl_get_cpu0_flags(SYSCTL_Type *ptr)
Get CPU0 event flags.
Definition: hpm_sysctl_drv.h:1165
static uint8_t sysctl_resource_target_get_mode(SYSCTL_Type *ptr, sysctl_resource_t resource)
Get target mode.
Definition: hpm_sysctl_drv.h:643
static bool sysctl_clock_target_is_busy(SYSCTL_Type *ptr, clock_node_t clock)
Check if target clock is busy.
Definition: hpm_sysctl_drv.h:795
static void sysctl_enable_cpu0_wakeup_source_with_irq(SYSCTL_Type *ptr, uint16_t irq_num)
Enable CPU0 wakeup source status with irq.
Definition: hpm_sysctl_drv.h:1047
static void sysctl_cpu0_lock(SYSCTL_Type *ptr)
Lock CPU0 lock.
Definition: hpm_sysctl_drv.h:1096
static uint32_t sysctl_monitor_get_limit_high(SYSCTL_Type *ptr, uint32_t monitor_index)
Get maximum frequency for target monitor instance.
Definition: hpm_sysctl_drv.h:544
static void sysctl_set_cpu_lp_mode(SYSCTL_Type *ptr, uint8_t cpu_index, cpu_lp_mode_t mode)
Set CPU low power mode.
Definition: hpm_sysctl_drv.h:1108
static void sysctl_resource_target_set_mode(SYSCTL_Type *ptr, sysctl_resource_t resource, sysctl_resource_mode_t mode)
Set target mode.
Definition: hpm_sysctl_drv.h:627
static void sysctl_reset_clear_target_domain_flag(SYSCTL_Type *ptr, sysctl_reset_domain_t domain)
Clear target reset domain reset status.
Definition: hpm_sysctl_drv.h:874
static void sysctl_set_cpu0_lp_retention(SYSCTL_Type *ptr, uint32_t value)
Enable resource retention when CPU0 enters stop mode.
Definition: hpm_sysctl_drv.h:729
static void sysctl_set_enable_cpu_affiliate(SYSCTL_Type *ptr, uint8_t cpu_index)
Link current CPU core its own group.
Definition: hpm_sysctl_drv.h:581
static void sysctl_clock_set_preset(SYSCTL_Type *ptr, sysctl_preset_t preset)
Set clock preset.
Definition: hpm_sysctl_drv.h:828
static void sysctl_enable_wakeup_source_with_irq(SYSCTL_Type *ptr, uint8_t cpu_index, uint16_t irq_num)
Enable wakeup source status with irq.
Definition: hpm_sysctl_drv.h:1036
static uint32_t sysctl_check_cpu0_wakeup_source_status_with_mask(SYSCTL_Type *ptr, uint8_t status_index, uint32_t mask)
Check CPU0 wakeup source status with mask.
Definition: hpm_sysctl_drv.h:940
static uint32_t sysctl_monitor_get_limit_low(SYSCTL_Type *ptr, uint32_t monitor_index)
Get minimum frequency for target monitor instance.
Definition: hpm_sysctl_drv.h:556
static void sysctl_enable_cpu0_wakeup_source_with_mask(SYSCTL_Type *ptr, uint8_t enable_index, uint32_t mask)
Enable CPU0 wakeup source status with mask.
Definition: hpm_sysctl_drv.h:968
static uint32_t sysctl_check_wakeup_source_status_with_mask(SYSCTL_Type *ptr, uint8_t cpu_index, uint8_t status_index, uint32_t mask)
Check wakeup source status with mask.
Definition: hpm_sysctl_drv.h:926
static void sysctl_set_cpu0_lp_retain_domain(SYSCTL_Type *ptr, sysctl_retention_domain_t domain, bool retain_mem)
Retain target domain for specific CPU0.
Definition: hpm_sysctl_drv.h:759
static uint32_t sysctl_get_wakeup_source_status(SYSCTL_Type *ptr, uint8_t cpu_index, uint8_t status_index)
Get target CPU wakeup source status.
Definition: hpm_sysctl_drv.h:898
static bool sysctl_monitor_result_is_valid(SYSCTL_Type *ptr, uint8_t monitor_index)
Check if monitor result is valid.
Definition: hpm_sysctl_drv.h:454
static void sysctl_set_disable_cpu_affiliate(SYSCTL_Type *ptr, uint8_t cpu_index)
Unlink current CPU core with its own group.
Definition: hpm_sysctl_drv.h:592
static void sysctl_monitor_set_work_mode(SYSCTL_Type *ptr, uint8_t monitor_index, monitor_work_mode_t mode)
Set work mode for target monitor instance.
Definition: hpm_sysctl_drv.h:480
static void sysctl_disable_cpu0_wakeup_source_with_irq(SYSCTL_Type *ptr, uint16_t irq_num)
Disable CPU0 wakeup source status with irq.
Definition: hpm_sysctl_drv.h:1022
static bool sysctl_resource_target_is_busy(SYSCTL_Type *ptr, sysctl_resource_t resource)
Check if specific target is busy.
Definition: hpm_sysctl_drv.h:615
static void sysctl_clock_preserve_settings(SYSCTL_Type *ptr, clock_node_t clock)
Preserve clock setting for certain node.
Definition: hpm_sysctl_drv.h:806
static void sysctl_disable_wakeup_source_with_mask(SYSCTL_Type *ptr, uint8_t cpu_index, uint8_t enable_index, uint32_t mask)
Disable wakeup source status with mask.
Definition: hpm_sysctl_drv.h:984
static uint32_t sysctl_get_cpu0_wakeup_source_status(SYSCTL_Type *ptr, uint8_t status_index)
Get target CPU0 wakeup source status.
Definition: hpm_sysctl_drv.h:910
static bool sysctl_reset_check_target_domain_wakeup_flag(SYSCTL_Type *ptr, sysctl_reset_domain_t domain)
Check if target reset domain wakeup status.
Definition: hpm_sysctl_drv.h:840
static bool sysctl_resource_any_is_busy(SYSCTL_Type *ptr)
Check if any resource is busy.
Definition: hpm_sysctl_drv.h:603
static void sysctl_set_cpu_lp_retention_with_mask(SYSCTL_Type *ptr, uint8_t cpu_index, uint32_t mask)
Enable resource retention when specific CPU enters stop mode.
Definition: hpm_sysctl_drv.h:680
static bool sysctl_clock_any_is_busy(SYSCTL_Type *ptr)
Check if any clock is busy.
Definition: hpm_sysctl_drv.h:783
static void sysctl_set_cpu_lp_retain_domain(SYSCTL_Type *ptr, uint8_t cpu_index, sysctl_retention_domain_t domain, bool retain_mem)
Retain target domain for specific CPU.
Definition: hpm_sysctl_drv.h:743
static void sysctl_clear_cpu_flags(SYSCTL_Type *ptr, uint8_t cpu_index, cpu_event_flag_mask_t flags)
Clear CPU event flags.
Definition: hpm_sysctl_drv.h:1131
static bool sysctl_cpu_clock_any_is_busy(SYSCTL_Type *ptr)
Check if cpu clock is busy.
Definition: hpm_sysctl_drv.h:772
static void sysctl_cpu0_lock_gpr_with_mask(SYSCTL_Type *ptr, uint16_t gpr_mask)
Lock CPU0 gpr with mask.
Definition: hpm_sysctl_drv.h:1074
static uint32_t sysctl_monitor_get_current_result(SYSCTL_Type *ptr, uint8_t monitor_index)
Get target monitor instance result.
Definition: hpm_sysctl_drv.h:466
static void sysctl_set_cpu_lp_retention(SYSCTL_Type *ptr, uint8_t cpu_index, uint32_t value)
Enable resource retention when specific CPU enters stop mode.
Definition: hpm_sysctl_drv.h:716
static hpm_stat_t sysctl_monitor_set_limit_high(SYSCTL_Type *ptr, uint8_t monitor_index, uint32_t limit)
Set maximum frequency for target monitor instance.
Definition: hpm_sysctl_drv.h:509
static void sysctl_set_cpu0_lp_retention_with_mask(SYSCTL_Type *ptr, uint32_t mask)
Enable resource retention when CPU0 enters stop mode.
Definition: hpm_sysctl_drv.h:691
static void sysctl_reset_clear_target_domain_wakeup_flag(SYSCTL_Type *ptr, sysctl_reset_domain_t domain)
Clear target reset domain wakeup status.
Definition: hpm_sysctl_drv.h:851
static void sysctl_set_cpu0_lp_mode(SYSCTL_Type *ptr, cpu_lp_mode_t mode)
Set CPU0 low power mode.
Definition: hpm_sysctl_drv.h:1119
static void sysctl_clear_cpu0_flags(SYSCTL_Type *ptr, cpu_event_flag_mask_t flags)
Clear CPU0 event flags.
Definition: hpm_sysctl_drv.h:1142
uint32_t hpm_stat_t
Definition: hpm_common.h:123
@ status_invalid_argument
Definition: hpm_common.h:179
@ status_success
Definition: hpm_common.h:177
cpu_event_flag_mask_t
Definition: hpm_sysctl_drv.h:288
clock_source_adc_i2s_t
ADC/I2S clock sources.
Definition: hpm_sysctl_drv.h:310
monitor_accuracy_t
Monitor accuracy.
Definition: hpm_sysctl_drv.h:275
hpm_stat_t sysctl_add_resource_to_cpu0(SYSCTL_Type *ptr, sysctl_resource_t resource)
Add resource to CPU0.
Definition: hpm_sysctl_drv.c:216
uint32_t sysctl_get_group_resource_value(SYSCTL_Type *ptr, uint8_t group, uint8_t index)
Get group resource value.
Definition: hpm_sysctl_drv.c:202
bool sysctl_check_group_resource_enable(SYSCTL_Type *ptr, uint8_t group, sysctl_resource_t resource)
Check group resource enable status.
Definition: hpm_sysctl_drv.c:181
clock_source_t
General clock sources.
Definition: hpm_sysctl_drv.h:192
monitor_target_t
Monitor targets.
Definition: hpm_sysctl_drv.h:225
sysctl_resource_mode_t
Resource modes.
Definition: hpm_sysctl_drv.h:140
hpm_stat_t sysctl_set_cpu0_wakeup_entry(SYSCTL_Type *ptr, uint32_t entry)
Set entry point on CPU0 wakeup.
Definition: hpm_sysctl_drv.c:148
hpm_stat_t sysctl_cpu0_get_gpr(SYSCTL_Type *ptr, uint8_t start, uint8_t count, uint32_t *data)
Get data saved from GPU0 GPR starting from given index.
Definition: hpm_sysctl_drv.c:49
sysctl_resource_t
Resource.
Definition: hpm_sysctl_drv.h:54
hpm_stat_t sysctl_remove_resource_from_cpu0(SYSCTL_Type *ptr, sysctl_resource_t resource)
Remove resource from CPU0.
Definition: hpm_sysctl_drv.c:221
uint32_t sysctl_monitor_measure_frequency(SYSCTL_Type *ptr, uint8_t monitor_index, monitor_target_t target, bool enable_output)
Measure specific target frequency.
Definition: hpm_sysctl_drv.c:121
void sysctl_monitor_get_default_config(SYSCTL_Type *ptr, monitor_config_t *config)
Get default monitor config.
Definition: hpm_sysctl_drv.c:87
struct monitor_config monitor_config_t
Monitor config.
sysctl_reset_domain_t
Reset domains.
Definition: hpm_sysctl_drv.h:46
monitor_work_mode_t
Monitor work mode.
Definition: hpm_sysctl_drv.h:267
hpm_stat_t sysctl_set_adc_i2s_clock_mux(SYSCTL_Type *ptr, clock_node_t node, clock_source_adc_i2s_t source)
Set ADC/I2S clock mux.
Definition: hpm_sysctl_drv.c:222
cpu_lp_mode_t
CPU low power mode.
Definition: hpm_sysctl_drv.h:216
hpm_stat_t sysctl_cpu0_set_gpr(SYSCTL_Type *ptr, uint8_t start, uint8_t count, uint32_t *data, bool lock)
Save data to GPU0 GPR starting from given index.
Definition: hpm_sysctl_drv.c:72
hpm_stat_t sysctl_config_cpu0_domain_clock(SYSCTL_Type *ptr, clock_source_t source, uint32_t cpu_div, uint32_t ahb_sub_div)
Configure CPU domain clock.
Definition: hpm_sysctl_drv.c:254
void sysctl_monitor_init(SYSCTL_Type *ptr, uint8_t monitor_index, monitor_config_t *config)
Initialize Monitor.
Definition: hpm_sysctl_drv.c:101
hpm_stat_t sysctl_enable_group_resource(SYSCTL_Type *ptr, uint8_t group, sysctl_resource_t resource, bool enable)
Enable group resource.
Definition: hpm_sysctl_drv.c:153
clock_node_t
Clock nodes.
Definition: hpm_sysctl_drv.h:149
sysctl_preset_t
Clock presets.
Definition: hpm_sysctl_drv.h:36
hpm_stat_t sysctl_config_clock(SYSCTL_Type *ptr, clock_node_t node, clock_source_t source, uint32_t divide_by)
Config lock.
Definition: hpm_sysctl_drv.c:238
monitor_reference_t
Monitor reference clock source.
Definition: hpm_sysctl_drv.h:283
sysctl_retention_domain_t
Retention domains.
Definition: hpm_sysctl_drv.h:24
@ cpu_event_flag_mask_wake
Definition: hpm_sysctl_drv.h:291
@ cpu_event_flag_mask_reset
Definition: hpm_sysctl_drv.h:289
@ cpu_event_flag_mask_all
Definition: hpm_sysctl_drv.h:292
@ cpu_event_flag_mask_sleep
Definition: hpm_sysctl_drv.h:290
@ clock_source_i2s_aud1_clk
Definition: hpm_sysctl_drv.h:314
@ clock_source_adc_ana_clk
Definition: hpm_sysctl_drv.h:311
@ clock_source_adc_i2s_clk_end
Definition: hpm_sysctl_drv.h:315
@ clock_source_i2s_aud0_clk
Definition: hpm_sysctl_drv.h:313
@ clock_source_adc_ahb_clk
Definition: hpm_sysctl_drv.h:312
@ monitor_accuracy_1hz
Definition: hpm_sysctl_drv.h:277
@ monitor_accuracy_1khz
Definition: hpm_sysctl_drv.h:276
@ clock_source_osc0_clk0
Definition: hpm_sysctl_drv.h:193
@ clock_source_pll0_clk2
Definition: hpm_sysctl_drv.h:196
@ clock_source_pll1_clk0
Definition: hpm_sysctl_drv.h:197
@ clock_source_pll2_clk0
Definition: hpm_sysctl_drv.h:280
@ clock_source_pll0_clk0
Definition: hpm_sysctl_drv.h:194
@ clock_source_pll1_clk1
Definition: hpm_sysctl_drv.h:198
@ clock_source_pll2_clk1
Definition: hpm_sysctl_drv.h:281
@ clock_source_pll0_clk1
Definition: hpm_sysctl_drv.h:195
@ clock_source_general_source_end
Definition: hpm_sysctl_drv.h:201
@ monitor_target_clk_top_spi1
Definition: hpm_sysctl_drv.h:247
@ monitor_target_clk_top_uart5
Definition: hpm_sysctl_drv.h:320
@ monitor_target_clk_top_gptmr2
Definition: hpm_sysctl_drv.h:305
@ monitor_target_clk_top_xpi1
Definition: hpm_sysctl_drv.h:350
@ monitor_target_clk_top_spi3
Definition: hpm_sysctl_drv.h:249
@ monitor_target_clk2_pll0
Definition: hpm_sysctl_drv.h:325
@ monitor_target_clk_top_ana2
Definition: hpm_sysctl_drv.h:258
@ monitor_target_clk_top_i2c0
Definition: hpm_sysctl_drv.h:242
@ monitor_target_clk_top_uart3
Definition: hpm_sysctl_drv.h:253
@ monitor_target_clk_irc24m
Definition: hpm_sysctl_drv.h:227
@ monitor_target_clk_32k
Definition: hpm_sysctl_drv.h:226
@ monitor_target_clk_top_uart7
Definition: hpm_sysctl_drv.h:322
@ monitor_target_clk0_pll0
Definition: hpm_sysctl_drv.h:231
@ monitor_target_clk_top_aud1
Definition: hpm_sysctl_drv.h:382
@ monitor_target_clk_usb0_phy
Definition: hpm_sysctl_drv.h:229
@ monitor_target_clk_top_uart6
Definition: hpm_sysctl_drv.h:321
@ monitor_target_clk_top_spi0
Definition: hpm_sysctl_drv.h:246
@ monitor_target_clk_top_ana1
Definition: hpm_sysctl_drv.h:257
@ monitor_target_clk_top_ref1
Definition: hpm_sysctl_drv.h:261
@ monitor_target_clk_top_uart1
Definition: hpm_sysctl_drv.h:251
@ monitor_target_clk0_pll2
Definition: hpm_sysctl_drv.h:233
@ monitor_target_clk_top_femc
Definition: hpm_sysctl_drv.h:348
@ monitor_target_clk_top_ptp0
Definition: hpm_sysctl_drv.h:386
@ monitor_target_clk_top_ref0
Definition: hpm_sysctl_drv.h:260
@ monitor_target_clk_top_ntmr0
Definition: hpm_sysctl_drv.h:390
@ monitor_target_clk_top_can1
Definition: hpm_sysctl_drv.h:296
@ monitor_target_clk_top_i2c1
Definition: hpm_sysctl_drv.h:243
@ monitor_target_clk_top_ana3
Definition: hpm_sysctl_drv.h:259
@ monitor_target_clk_top_aud0
Definition: hpm_sysctl_drv.h:381
@ monitor_target_clk1_pll1
Definition: hpm_sysctl_drv.h:235
@ monitor_target_clk_top_i2c3
Definition: hpm_sysctl_drv.h:245
@ monitor_target_clk_top_can0
Definition: hpm_sysctl_drv.h:295
@ monitor_target_clk_top_gptmr0
Definition: hpm_sysctl_drv.h:240
@ monitor_target_clk_top_uart2
Definition: hpm_sysctl_drv.h:252
@ monitor_target_clk_top_xpi0
Definition: hpm_sysctl_drv.h:255
@ monitor_target_clk_top_mchtmr0
Definition: hpm_sysctl_drv.h:239
@ monitor_target_clk_top_gptmr1
Definition: hpm_sysctl_drv.h:241
@ monitor_target_clk_top_gptmr3
Definition: hpm_sysctl_drv.h:306
@ monitor_target_clk_top_sdxc0
Definition: hpm_sysctl_drv.h:392
@ monitor_target_clk_top_ana0
Definition: hpm_sysctl_drv.h:256
@ monitor_target_clk_top_i2c2
Definition: hpm_sysctl_drv.h:244
@ monitor_target_clk1_pll0
Definition: hpm_sysctl_drv.h:234
@ monitor_target_clk_top_cpu0
Definition: hpm_sysctl_drv.h:238
@ monitor_target_clk_top_ptpc
Definition: hpm_sysctl_drv.h:358
@ monitor_target_clk_top_uart4
Definition: hpm_sysctl_drv.h:254
@ monitor_target_clk_top_uart0
Definition: hpm_sysctl_drv.h:250
@ monitor_target_clk0_osc0
Definition: hpm_sysctl_drv.h:230
@ monitor_target_clk_top_spi2
Definition: hpm_sysctl_drv.h:248
@ monitor_target_clk_top_eth0
Definition: hpm_sysctl_drv.h:384
@ monitor_target_clk_xtal_24m
Definition: hpm_sysctl_drv.h:228
@ monitor_target_clk1_pll2
Definition: hpm_sysctl_drv.h:236
@ monitor_target_clk0_pll1
Definition: hpm_sysctl_drv.h:232
@ sysctl_resource_mode_force_off
Definition: hpm_sysctl_drv.h:143
@ sysctl_resource_mode_auto
Definition: hpm_sysctl_drv.h:141
@ sysctl_resource_mode_force_on
Definition: hpm_sysctl_drv.h:142
@ sysctl_resource_ref0
Definition: hpm_sysctl_drv.h:131
@ sysctl_resource_i2c3
Definition: hpm_sysctl_drv.h:109
@ sysctl_resource_clk_top_ptp0
Definition: hpm_sysctl_drv.h:123
@ sysctl_resource_uart3
Definition: hpm_sysctl_drv.h:117
@ sysctl_resource_xtal
Definition: hpm_sysctl_drv.h:60
@ sysctl_resource_synt
Definition: hpm_sysctl_drv.h:184
@ sysctl_resource_rst_cpu0
Definition: hpm_sysctl_drv.h:59
@ sysctl_resource_linkable_start
Definition: hpm_sysctl_drv.h:98
@ sysctl_resource_i2sdao
Definition: hpm_sysctl_drv.h:209
@ sysctl_resource_i2s0
Definition: hpm_sysctl_drv.h:206
@ sysctl_resource_cpx_mem
Definition: hpm_sysctl_drv.h:151
@ sysctl_resource_adc0
Definition: hpm_sysctl_drv.h:124
@ sysctl_resource_femc_mem
Definition: hpm_sysctl_drv.h:140
@ sysctl_resource_logic3
Definition: hpm_sysctl_drv.h:65
@ sysctl_resource_rom0
Definition: hpm_sysctl_drv.h:102
@ sysctl_resource_clk_top_i2c0
Definition: hpm_sysctl_drv.h:76
@ sysctl_resource_wdg0
Definition: hpm_sysctl_drv.h:119
@ sysctl_resource_sdp0_mem
Definition: hpm_sysctl_drv.h:149
@ sysctl_resource_tsns
Definition: hpm_sysctl_drv.h:122
@ sysctl_resource_clk0_pll0
Definition: hpm_sysctl_drv.h:62
@ sysctl_resource_pll2_ref
Definition: hpm_sysctl_drv.h:79
@ sysctl_resource_uart1
Definition: hpm_sysctl_drv.h:115
@ sysctl_resource_kman
Definition: hpm_sysctl_drv.h:126
@ sysctl_resource_rom0_mem
Definition: hpm_sysctl_drv.h:141
@ sysctl_resource_logic1
Definition: hpm_sysctl_drv.h:63
@ sysctl_resource_i2s1_mem
Definition: hpm_sysctl_drv.h:147
@ sysctl_resource_pll1_ref
Definition: hpm_sysctl_drv.h:71
@ sysctl_resource_ahbp_mem
Definition: hpm_sysctl_drv.h:139
@ sysctl_resource_pmic
Definition: hpm_sysctl_drv.h:66
@ sysctl_resource_mot1
Definition: hpm_sysctl_drv.h:181
@ sysctl_resource_i2c0
Definition: hpm_sysctl_drv.h:106
@ sysctl_resource_can1
Definition: hpm_sysctl_drv.h:120
@ sysctl_resource_clk_top_spi2
Definition: hpm_sysctl_drv.h:82
@ sysctl_resource_mbist_con
Definition: hpm_sysctl_drv.h:86
@ sysctl_resource_clk_top_spi0
Definition: hpm_sysctl_drv.h:80
@ sysctl_resource_clk_top_gptmr0
Definition: hpm_sysctl_drv.h:74
@ sysctl_resource_clk_top_ana0
Definition: hpm_sysctl_drv.h:90
@ sysctl_resource_lmm0_mem
Definition: hpm_sysctl_drv.h:153
@ sysctl_resource_clk1_pll1
Definition: hpm_sysctl_drv.h:67
@ sysctl_resource_dma0
Definition: hpm_sysctl_drv.h:186
@ sysctl_resource_cpu0_per
Definition: hpm_sysctl_drv.h:61
@ sysctl_resource_gptmr2
Definition: hpm_sysctl_drv.h:130
@ sysctl_resource_eth0
Definition: hpm_sysctl_drv.h:213
@ sysctl_resource_gptmr3
Definition: hpm_sysctl_drv.h:131
@ sysctl_resource_gptmr0
Definition: hpm_sysctl_drv.h:104
@ sysctl_resource_ram0_mem
Definition: hpm_sysctl_drv.h:138
@ sysctl_resource_exe0
Definition: hpm_sysctl_drv.h:59
@ sysctl_resource_clk_top_adc0
Definition: hpm_sysctl_drv.h:96
@ sysctl_resource_clk_top_uart3
Definition: hpm_sysctl_drv.h:87
@ sysctl_resource_clk0_pll1
Definition: hpm_sysctl_drv.h:66
@ sysctl_resource_clk_top_gptmr2
Definition: hpm_sysctl_drv.h:84
@ sysctl_resource_spi0
Definition: hpm_sysctl_drv.h:110
@ sysctl_resource_usb0_mem
Definition: hpm_sysctl_drv.h:137
@ sysctl_resource_sdxc0
Definition: hpm_sysctl_drv.h:215
@ sysctl_resource_logic2
Definition: hpm_sysctl_drv.h:64
@ sysctl_resource_core_mem
Definition: hpm_sysctl_drv.h:152
@ sysctl_resource_mot0
Definition: hpm_sysctl_drv.h:160
@ sysctl_resource_pdm0_mem
Definition: hpm_sysctl_drv.h:148
@ sysctl_resource_clk_top_uart4
Definition: hpm_sysctl_drv.h:88
@ sysctl_resource_clk_top_uart5
Definition: hpm_sysctl_drv.h:99
@ sysctl_resource_pow_cpu0
Definition: hpm_sysctl_drv.h:57
@ sysctl_resource_clk_top_aud1
Definition: hpm_sysctl_drv.h:121
@ sysctl_resource_uart0
Definition: hpm_sysctl_drv.h:114
@ sysctl_resource_ffa0_mem
Definition: hpm_sysctl_drv.h:150
@ sysctl_resource_mbx0
Definition: hpm_sysctl_drv.h:121
@ sysctl_resource_clk_top_ana1
Definition: hpm_sysctl_drv.h:91
@ sysctl_resource_clk_top_ntmr0
Definition: hpm_sysctl_drv.h:126
@ sysctl_resource_clk_top_xpi1
Definition: hpm_sysctl_drv.h:92
@ sysctl_resource_clk_top_spi1
Definition: hpm_sysctl_drv.h:81
@ sysctl_resource_clk_top_ref0
Definition: hpm_sysctl_drv.h:94
@ sysctl_resource_pll0
Definition: hpm_sysctl_drv.h:61
@ sysctl_resource_clk_top_uart1
Definition: hpm_sysctl_drv.h:85
@ sysctl_resource_lmm0
Definition: hpm_sysctl_drv.h:100
@ sysctl_resource_clk_top_can1
Definition: hpm_sysctl_drv.h:75
@ sysctl_resource_ffa0
Definition: hpm_sysctl_drv.h:172
@ sysctl_resource_eth0_mem
Definition: hpm_sysctl_drv.h:135
@ sysctl_resource_clk_top_xpi0
Definition: hpm_sysctl_drv.h:84
@ sysctl_resource_xpi0_mem
Definition: hpm_sysctl_drv.h:142
@ sysctl_resource_i2c1
Definition: hpm_sysctl_drv.h:107
@ sysctl_resource_clk1_pll2
Definition: hpm_sysctl_drv.h:76
@ sysctl_resource_adc1
Definition: hpm_sysctl_drv.h:154
@ sysctl_resource_gptmr1
Definition: hpm_sysctl_drv.h:105
@ sysctl_resource_i2s1
Definition: hpm_sysctl_drv.h:207
@ sysctl_resource_uart4
Definition: hpm_sysctl_drv.h:118
@ sysctl_resource_clk_top_eth0
Definition: hpm_sysctl_drv.h:122
@ sysctl_resource_wak0
Definition: hpm_sysctl_drv.h:60
@ sysctl_resource_clk_top_uart6
Definition: hpm_sysctl_drv.h:100
@ sysctl_resource_spi1
Definition: hpm_sysctl_drv.h:111
@ sysctl_resource_axic
Definition: hpm_sysctl_drv.h:131
@ sysctl_resource_clk_top_femc
Definition: hpm_sysctl_drv.h:90
@ sysctl_resource_clk_top_ptpc
Definition: hpm_sysctl_drv.h:109
@ sysctl_resource_i2s0_mem
Definition: hpm_sysctl_drv.h:146
@ sysctl_resource_spi2
Definition: hpm_sysctl_drv.h:112
@ sysctl_resource_can1_mem
Definition: hpm_sysctl_drv.h:145
@ sysctl_resource_clk_top_ana3
Definition: hpm_sysctl_drv.h:93
@ sysctl_resource_clk_top_dac0
Definition: hpm_sysctl_drv.h:111
@ sysctl_resource_wdg1
Definition: hpm_sysctl_drv.h:120
@ sysctl_resource_uart2
Definition: hpm_sysctl_drv.h:116
@ sysctl_resource_mchtmr0
Definition: hpm_sysctl_drv.h:101
@ sysctl_resource_linkable_end
Definition: hpm_sysctl_drv.h:133
@ sysctl_resource_cpx0
Definition: hpm_sysctl_drv.h:56
@ sysctl_resource_xpi1
Definition: hpm_sysctl_drv.h:166
@ sysctl_resource_i2spdm0
Definition: hpm_sysctl_drv.h:208
@ sysctl_resource_i2c2
Definition: hpm_sysctl_drv.h:108
@ sysctl_resource_clk_top_ana2
Definition: hpm_sysctl_drv.h:92
@ sysctl_resource_cpu0
Definition: hpm_sysctl_drv.h:55
@ sysctl_resource_rng0
Definition: hpm_sysctl_drv.h:161
@ sysctl_resource_ptpc
Definition: hpm_sysctl_drv.h:103
@ sysctl_resource_clk_top_adc2
Definition: hpm_sysctl_drv.h:123
@ sysctl_resource_xpi1_mem
Definition: hpm_sysctl_drv.h:143
@ sysctl_resource_clk_top_sdxc0
Definition: hpm_sysctl_drv.h:127
@ sysctl_resource_clk_top_can0
Definition: hpm_sysctl_drv.h:74
@ sysctl_resource_clk_top_spi3
Definition: hpm_sysctl_drv.h:83
@ sysctl_resource_clk0_pll2
Definition: hpm_sysctl_drv.h:75
@ sysctl_resource_dft_start_bus
Definition: hpm_sysctl_drv.h:87
@ sysctl_resource_uart5
Definition: hpm_sysctl_drv.h:145
@ sysctl_resource_clk_top_i2c2
Definition: hpm_sysctl_drv.h:78
@ sysctl_resource_adc2
Definition: hpm_sysctl_drv.h:149
@ sysctl_resource_clk_top_i2c1
Definition: hpm_sysctl_drv.h:77
@ sysctl_resource_ntmr0
Definition: hpm_sysctl_drv.h:214
@ sysctl_resource_femc
Definition: hpm_sysctl_drv.h:160
@ sysctl_resource_clk_top_gptmr3
Definition: hpm_sysctl_drv.h:85
@ sysctl_resource_end
Definition: hpm_sysctl_drv.h:134
@ sysctl_resource_spi3
Definition: hpm_sysctl_drv.h:113
@ sysctl_resource_clk_top_i2s0
Definition: hpm_sysctl_drv.h:132
@ sysctl_resource_sdxc0_mem
Definition: hpm_sysctl_drv.h:136
@ sysctl_resource_clk_top_mchtmr0
Definition: hpm_sysctl_drv.h:73
@ sysctl_resource_rst_soc
Definition: hpm_sysctl_drv.h:58
@ sysctl_resource_clk_top_cpu0
Definition: hpm_sysctl_drv.h:72
@ sysctl_resource_ram0
Definition: hpm_sysctl_drv.h:137
@ sysctl_resource_mbist_cpu
Definition: hpm_sysctl_drv.h:85
@ sysctl_resource_mbist_soc
Definition: hpm_sysctl_drv.h:84
@ sysctl_resource_logic0
Definition: hpm_sysctl_drv.h:62
@ sysctl_resource_clk2_pll0
Definition: hpm_sysctl_drv.h:64
@ sysctl_resource_can0_mem
Definition: hpm_sysctl_drv.h:144
@ sysctl_resource_clk_top_aud0
Definition: hpm_sysctl_drv.h:120
@ sysctl_resource_xpi0
Definition: hpm_sysctl_drv.h:129
@ sysctl_resource_pll1
Definition: hpm_sysctl_drv.h:65
@ sysctl_resource_sdp0
Definition: hpm_sysctl_drv.h:162
@ sysctl_resource_clk_top_i2c3
Definition: hpm_sysctl_drv.h:79
@ sysctl_resource_pll0_ref
Definition: hpm_sysctl_drv.h:70
@ sysctl_resource_clk_top_uart7
Definition: hpm_sysctl_drv.h:101
@ sysctl_resource_usb0
Definition: hpm_sysctl_drv.h:130
@ sysctl_resource_uart6
Definition: hpm_sysctl_drv.h:146
@ sysctl_resource_pll2
Definition: hpm_sysctl_drv.h:74
@ sysctl_resource_acmp
Definition: hpm_sysctl_drv.h:125
@ sysctl_resource_axis
Definition: hpm_sysctl_drv.h:130
@ sysctl_resource_clk_top_uart0
Definition: hpm_sysctl_drv.h:84
@ sysctl_resource_ahbp
Definition: hpm_sysctl_drv.h:129
@ sysctl_resource_dma1
Definition: hpm_sysctl_drv.h:187
@ sysctl_resource_clk_top_uart2
Definition: hpm_sysctl_drv.h:86
@ sysctl_resource_can0
Definition: hpm_sysctl_drv.h:119
@ sysctl_resource_clk_top_adc1
Definition: hpm_sysctl_drv.h:110
@ sysctl_resource_gpio
Definition: hpm_sysctl_drv.h:127
@ sysctl_resource_dac0
Definition: hpm_sysctl_drv.h:155
@ sysctl_resource_clk_top_ref1
Definition: hpm_sysctl_drv.h:95
@ sysctl_resource_clk_top_i2s1
Definition: hpm_sysctl_drv.h:133
@ sysctl_resource_clk_top_gptmr1
Definition: hpm_sysctl_drv.h:75
@ sysctl_resource_uart7
Definition: hpm_sysctl_drv.h:147
@ sysctl_resource_ref1
Definition: hpm_sysctl_drv.h:132
@ sysctl_resource_clk1_pll0
Definition: hpm_sysctl_drv.h:63
@ sysctl_reset_domain_cpu0
Definition: hpm_sysctl_drv.h:48
@ sysctl_reset_domain_soc
Definition: hpm_sysctl_drv.h:47
@ monitor_work_mode_compare
Definition: hpm_sysctl_drv.h:268
@ monitor_work_mode_record
Definition: hpm_sysctl_drv.h:269
@ cpu_lp_mode_ungate_cpu_clock
Definition: hpm_sysctl_drv.h:219
@ cpu_lp_mode_trigger_system_lp
Definition: hpm_sysctl_drv.h:218
@ cpu_lp_mode_gate_cpu_clock
Definition: hpm_sysctl_drv.h:217
@ clock_node_axi
Definition: hpm_sysctl_drv.h:185
@ clock_node_adc0
Definition: hpm_sysctl_drv.h:175
@ clock_node_mchtmr0
Definition: hpm_sysctl_drv.h:150
@ clock_node_uart6
Definition: hpm_sysctl_drv.h:210
@ clock_node_ana3
Definition: hpm_sysctl_drv.h:170
@ clock_node_ana1
Definition: hpm_sysctl_drv.h:168
@ clock_node_core_start
Definition: hpm_sysctl_drv.h:183
@ clock_node_eth0
Definition: hpm_sysctl_drv.h:269
@ clock_node_ahb
Definition: hpm_sysctl_drv.h:186
@ clock_node_gptmr1
Definition: hpm_sysctl_drv.h:152
@ clock_node_spi1
Definition: hpm_sysctl_drv.h:158
@ clock_node_can1
Definition: hpm_sysctl_drv.h:189
@ clock_node_i2c0
Definition: hpm_sysctl_drv.h:153
@ clock_node_uart7
Definition: hpm_sysctl_drv.h:211
@ clock_node_uart3
Definition: hpm_sysctl_drv.h:164
@ clock_node_aud1
Definition: hpm_sysctl_drv.h:268
@ clock_node_uart1
Definition: hpm_sysctl_drv.h:162
@ clock_node_spi0
Definition: hpm_sysctl_drv.h:157
@ clock_node_uart2
Definition: hpm_sysctl_drv.h:163
@ clock_node_xpi0
Definition: hpm_sysctl_drv.h:166
@ clock_node_gptmr2
Definition: hpm_sysctl_drv.h:194
@ clock_node_uart0
Definition: hpm_sysctl_drv.h:161
@ clock_node_spi2
Definition: hpm_sysctl_drv.h:159
@ clock_node_ref0
Definition: hpm_sysctl_drv.h:171
@ clock_node_ana0
Definition: hpm_sysctl_drv.h:167
@ clock_node_ptpc
Definition: hpm_sysctl_drv.h:239
@ clock_node_uart4
Definition: hpm_sysctl_drv.h:165
@ clock_node_aud0
Definition: hpm_sysctl_drv.h:267
@ clock_node_gptmr3
Definition: hpm_sysctl_drv.h:195
@ clock_node_end
Definition: hpm_sysctl_drv.h:181
@ clock_node_uart5
Definition: hpm_sysctl_drv.h:209
@ clock_node_adc_i2s_start
Definition: hpm_sysctl_drv.h:276
@ clock_node_sdxc0
Definition: hpm_sysctl_drv.h:274
@ clock_node_adc2
Definition: hpm_sysctl_drv.h:255
@ clock_node_xpi1
Definition: hpm_sysctl_drv.h:239
@ clock_node_can0
Definition: hpm_sysctl_drv.h:188
@ clock_node_i2c3
Definition: hpm_sysctl_drv.h:156
@ clock_node_ntmr0
Definition: hpm_sysctl_drv.h:273
@ clock_node_femc
Definition: hpm_sysctl_drv.h:237
@ clock_node_ptp0
Definition: hpm_sysctl_drv.h:270
@ clock_node_spi3
Definition: hpm_sysctl_drv.h:160
@ clock_node_ref1
Definition: hpm_sysctl_drv.h:172
@ clock_node_i2c2
Definition: hpm_sysctl_drv.h:155
@ clock_node_cpu0
Definition: hpm_sysctl_drv.h:184
@ clock_node_i2s1
Definition: hpm_sysctl_drv.h:282
@ clock_node_adc1
Definition: hpm_sysctl_drv.h:176
@ clock_node_i2s0
Definition: hpm_sysctl_drv.h:281
@ clock_node_ana2
Definition: hpm_sysctl_drv.h:169
@ clock_node_i2c1
Definition: hpm_sysctl_drv.h:154
@ clock_node_gptmr0
Definition: hpm_sysctl_drv.h:151
@ sysctl_preset_1
Definition: hpm_sysctl_drv.h:38
@ sysctl_preset_2
Definition: hpm_sysctl_drv.h:39
@ sysctl_preset_0
Definition: hpm_sysctl_drv.h:37
@ sysctl_preset_3
Definition: hpm_sysctl_drv.h:40
@ monitor_reference_24mhz
Definition: hpm_sysctl_drv.h:285
@ monitor_reference_32khz
Definition: hpm_sysctl_drv.h:284
@ sysctl_retention_domain_pll2
Definition: hpm_sysctl_drv.h:31
@ sysctl_retention_domain_xtal24m
Definition: hpm_sysctl_drv.h:28
@ sysctl_retention_domain_cpu0
Definition: hpm_sysctl_drv.h:26
@ sysctl_retention_domain_sys
Definition: hpm_sysctl_drv.h:25
@ sysctl_retention_domain_pll1
Definition: hpm_sysctl_drv.h:30
@ sysctl_retention_domain_pll0
Definition: hpm_sysctl_drv.h:29
Definition: hpm_sysctl_regs.h:12
struct SYSCTL_Type::@346 CPU[1]
__RW uint32_t LOCK
Definition: hpm_sysctl_regs.h:69
__RW uint32_t CONTROL
Definition: hpm_sysctl_regs.h:45
__RW uint32_t LOW_LIMIT
Definition: hpm_sysctl_regs.h:62
__RW uint32_t RESOURCE[311]
Definition: hpm_sysctl_regs.h:13
__R uint32_t WAKEUP_STATUS[4]
Definition: hpm_sysctl_regs.h:71
struct SYSCTL_Type::@341 AFFILIATE[1]
__RW uint32_t HIGH_LIMIT
Definition: hpm_sysctl_regs.h:63
__R uint32_t CURRENT
Definition: hpm_sysctl_regs.h:61
__RW uint32_t SET
Definition: hpm_sysctl_regs.h:17
__RW uint32_t VALUE
Definition: hpm_sysctl_regs.h:16
__RW uint32_t CLOCK_CPU[1]
Definition: hpm_sysctl_regs.h:51
__RW uint32_t CLOCK[36]
Definition: hpm_sysctl_regs.h:52
__RW uint32_t WAKEUP_ENABLE[4]
Definition: hpm_sysctl_regs.h:73
struct SYSCTL_Type::@345 MONITOR[4]
struct SYSCTL_Type::@342 RETENTION[1]
__RW uint32_t LP
Definition: hpm_sysctl_regs.h:68
__RW uint32_t GLOBAL00
Definition: hpm_sysctl_regs.h:57
struct SYSCTL_Type::@344 RESET[2]
__RW uint32_t CLEAR
Definition: hpm_sysctl_regs.h:18
Monitor config.
Definition: hpm_sysctl_drv.h:298
uint32_t high_limit
Definition: hpm_sysctl_drv.h:306
uint32_t low_limit
Definition: hpm_sysctl_drv.h:307
bool start_measure
Definition: hpm_sysctl_drv.h:304
uint8_t divide_by
Definition: hpm_sysctl_drv.h:299
monitor_target_t target
Definition: hpm_sysctl_drv.h:303
monitor_accuracy_t accuracy
Definition: hpm_sysctl_drv.h:301
monitor_reference_t reference
Definition: hpm_sysctl_drv.h:302
bool enable_output
Definition: hpm_sysctl_drv.h:305
monitor_work_mode_t mode
Definition: hpm_sysctl_drv.h:300