// 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.display.clamprgb;

using zx;

/// This is an experimental API meant to address a hardware issue where RGB channels need to get
/// clamped in order to reduce backlight bleeding. This API is not guaranteed to be stable
/// and future support for this API is not guaranteed. This protocol should not be included as
/// part of the SDK.
[Layout = "ddk-protocol"]
protocol DisplayClampRgbImpl {
    /// Set the minimum value of rgb channels. Value range [0 255] inclusive
    SetMinimumRgb(uint8 minimum_rgb) -> (zx.status s);
};

