arm_clock_control.h 826 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. /*
  2. * Copyright (c) 2016 Linaro Limited.
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. */
  6. #ifndef ZEPHYR_INCLUDE_DRIVERS_CLOCK_CONTROL_ARM_CLOCK_CONTROL_H_
  7. #define ZEPHYR_INCLUDE_DRIVERS_CLOCK_CONTROL_ARM_CLOCK_CONTROL_H_
  8. #include <drivers/clock_control.h>
  9. /**
  10. * @file
  11. *
  12. * @brief Clock subsystem IDs for ARM family SoCs
  13. */
  14. /* CMSDK BUS Mapping */
  15. enum arm_bus_type_t {
  16. CMSDK_AHB = 0,
  17. CMSDK_APB,
  18. };
  19. /* CPU States */
  20. enum arm_soc_state_t {
  21. SOC_ACTIVE = 0,
  22. SOC_SLEEP,
  23. SOC_DEEPSLEEP,
  24. };
  25. struct arm_clock_control_t {
  26. /* ARM family SoCs supported Bus types */
  27. enum arm_bus_type_t bus;
  28. /* Clock can be configured for 3 states: Active, Sleep, Deep Sleep */
  29. enum arm_soc_state_t state;
  30. /* Identifies the device on the bus */
  31. uint32_t device;
  32. };
  33. #endif /* ZEPHYR_INCLUDE_DRIVERS_CLOCK_CONTROL_ARM_CLOCK_CONTROL_H_ */