blob: e04ddb76967345b01589ec55fa7408fa894b6113 [file]
/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
/*
* Copyright (c) 2019 Amlogic, Inc. All rights reserved.
*/
#ifndef __MESON_PANEL_H
#define __MESON_PANEL_H
#include "meson_drv.h"
#include <drm/drm_encoder.h>
#include <drm/amlogic/meson_connector_dev.h>
struct meson_panel {
struct meson_connector base;
struct drm_encoder encoder;
struct drm_device *drm;
struct meson_panel_dev *panel_dev;
struct drm_property *panel_type_prop;
int panel_type;
/* vrr related */
int num_vrr_group;
struct drm_vrr_mode_group groups[MAX_VRR_MODE_GROUP];
};
#define connector_to_meson_panel(x) \
container_of(connector_to_meson_connector(x), struct meson_panel, base)
#define encoder_to_meson_panel(x) container_of(x, struct meson_panel, encoder)
#define drm_panel_to_meson_panel(x) container_of(x, struct meson_panel, panel)
int meson_panel_dev_bind(struct drm_device *drm,
int type, struct meson_connector_dev *intf);
int meson_panel_dev_unbind(struct drm_device *drm,
int type, int connector_id);
#endif