// 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.pwm;

type PwmChannelInfo = table {
    /// Unique id of PWM channel.
    1: id uint32;

    /// If true, the PWM channel will NOT be initialized. This is for use in situations where a
    /// bootloader configuration must be preserved or the PWM channel may be under control of higher
    /// exception level. (for a dvfs rail for example)
    2: skip_init bool;

    /// If true, the polarity will be inverted.
    3: polarity bool;

    /// PWM period in nanoseconds.
    4: period_ns uint32;
};

/// Metadata to configure PWM channels. Passed under DEVICE_METADATA_PWM_CHANNELS.
type PwmChannelsMetadata = table {
    1: channels vector<PwmChannelInfo>:MAX;
};
