drm: add drm driver support [1/1]

PD#SWPL-82197

Problem:
no drm driver support

Solution:
add drm driver support

Verify:
ap222

Change-Id: I331a75afe6087278ebf9de27ae36a346539d09a8
Signed-off-by: yujun.zhang <yujun.zhang@amlogic.com>
diff --git a/drivers/drm/meson_drm_bind.c b/drivers/drm/meson_drm_bind.c
new file mode 100644
index 0000000..a69742a
--- /dev/null
+++ b/drivers/drm/meson_drm_bind.c
@@ -0,0 +1,70 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2021 Amlogic, Inc. All rights reserved.
+ */
+
+#include <drm/amlogic/meson_drm_bind.h>
+#include "meson_hdmi.h"
+#include "meson_cvbs.h"
+#include "meson_lcd.h"
+
+int meson_connector_dev_bind(struct drm_device *drm,
+	int type, struct meson_connector_dev *intf)
+{
+	/*amlogic extend lcd*/
+	if (type > DRM_MODE_MESON_CONNECTOR_PANEL_START &&
+		type < DRM_MODE_MESON_CONNECTOR_PANEL_END) {
+		return meson_panel_dev_bind(drm, type, intf);
+	}
+
+	switch (type) {
+	case DRM_MODE_CONNECTOR_HDMIA:
+	case DRM_MODE_CONNECTOR_HDMIB:
+		return meson_hdmitx_dev_bind(drm, type, intf);
+
+	case DRM_MODE_CONNECTOR_TV:
+		return meson_cvbs_dev_bind(drm, type, intf);
+
+	case DRM_MODE_CONNECTOR_LVDS:
+	case DRM_MODE_CONNECTOR_DSI:
+	case DRM_MODE_CONNECTOR_eDP:
+		return meson_panel_dev_bind(drm, type, intf);
+
+	default:
+		pr_err("unknown connector tye %d\n", type);
+		return 0;
+	};
+
+	return 0;
+}
+EXPORT_SYMBOL(meson_connector_dev_bind);
+
+int meson_connector_dev_unbind(struct drm_device *drm,
+	int type, int connector_id)
+{
+	/*amlogic extend lcd*/
+	if (type > DRM_MODE_MESON_CONNECTOR_PANEL_START &&
+		type < DRM_MODE_MESON_CONNECTOR_PANEL_END) {
+		return meson_panel_dev_unbind(drm, type, connector_id);
+	}
+
+	switch (type) {
+	case DRM_MODE_CONNECTOR_HDMIA:
+	case DRM_MODE_CONNECTOR_HDMIB:
+		return meson_hdmitx_dev_unbind(drm, type, connector_id);
+
+	case DRM_MODE_CONNECTOR_TV:
+		return meson_cvbs_dev_unbind(drm, type, connector_id);
+
+	case DRM_MODE_CONNECTOR_LVDS:
+	case DRM_MODE_CONNECTOR_DSI:
+	case DRM_MODE_CONNECTOR_eDP:
+		return meson_panel_dev_unbind(drm, type, connector_id);
+
+	default:
+		pr_err("unknown connector tye %d\n", type);
+		return 0;
+	};
+}
+EXPORT_SYMBOL(meson_connector_dev_unbind);
+