blob: b8a1b84bd27786eb324b2228099b510af2cb14df [file] [log] [blame]
// Copyright 2020 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.vreg;
using zx;
// The output for this voltage regulator is defined by the
// following formula:
//
// v_out = min_voltage + step_size * step
//
// Where the `step` is programmable by software.
struct VregParams {
// Minimum voltage supported by this voltage regulator.
uint32 min_uv;
// Voltage increment at each step.
uint32 step_size_uv;
// Max number of steps.
uint32 num_steps;
};
[Transport = "Banjo", BanjoLayout = "ddk-protocol"]
protocol Vreg {
// Set the step which yields a voltage of min_uv + step_size_uv * step.
SetVoltageStep(uint32 step) -> (zx.status st);
// Get the current step.
GetVoltageStep() -> (uint32 result);
// Obtain the parameters for this voltage regulator.
GetRegulatorParams() -> (VregParams params);
};