# Copyright (c) 2021 Intel Corporation.
# SPDX-License-Identifier: Apache-2.0

# Properties for Power Management (PM)

properties:
  wakeup-source:
    type: boolean
    description: |
      Property to identify that a device can be used as wake up source.

      When this property is provided a specific flag is set into the
      device that tells the system that the device is capable of
      wake up the system.

      Wake up capable devices are disabled (interruptions will not wake up
      the system) by default but they can be enabled at runtime if necessary.

  zephyr,pm-device-runtime-auto:
    type: boolean
    description: |
      Automatically configure the device for runtime power management after the
      init function runs.

  zephyr,disabling-power-states:
    type: phandles
    description: |
      List of power states that will disable this device power.
