// Copyright 2024 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

library fuchsia.hardware.power;

/// Information related to a power domain.
type Domain = table {
    /// Domain ID should be unique across all power domains in the same level.
    /// Used to associate power consumers that belong to the same power domain.
    1: id uint32;
};

/// Passed to the power core driver in metadata as DEVICE_METADATA_POWER_DOMAINS.
type DomainMetadata = table {
    /// List of power domains to be managed by this power driver.
    1: domains vector<Domain>:MAX;
};
