162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0+
262306a36Sopenharmony_ci// Copyright 2018 IBM Corporation
362306a36Sopenharmony_ci
462306a36Sopenharmony_ci#include <drm/drm_atomic_helper.h>
562306a36Sopenharmony_ci#include <drm/drm_connector.h>
662306a36Sopenharmony_ci#include <drm/drm_edid.h>
762306a36Sopenharmony_ci#include <drm/drm_probe_helper.h>
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#include "aspeed_gfx.h"
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_cistatic int aspeed_gfx_get_modes(struct drm_connector *connector)
1262306a36Sopenharmony_ci{
1362306a36Sopenharmony_ci	return drm_add_modes_noedid(connector, 800, 600);
1462306a36Sopenharmony_ci}
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_cistatic const struct
1762306a36Sopenharmony_cidrm_connector_helper_funcs aspeed_gfx_connector_helper_funcs = {
1862306a36Sopenharmony_ci	.get_modes = aspeed_gfx_get_modes,
1962306a36Sopenharmony_ci};
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_cistatic const struct drm_connector_funcs aspeed_gfx_connector_funcs = {
2262306a36Sopenharmony_ci	.fill_modes		= drm_helper_probe_single_connector_modes,
2362306a36Sopenharmony_ci	.destroy		= drm_connector_cleanup,
2462306a36Sopenharmony_ci	.reset			= drm_atomic_helper_connector_reset,
2562306a36Sopenharmony_ci	.atomic_duplicate_state	= drm_atomic_helper_connector_duplicate_state,
2662306a36Sopenharmony_ci	.atomic_destroy_state	= drm_atomic_helper_connector_destroy_state,
2762306a36Sopenharmony_ci};
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ciint aspeed_gfx_create_output(struct drm_device *drm)
3062306a36Sopenharmony_ci{
3162306a36Sopenharmony_ci	struct aspeed_gfx *priv = to_aspeed_gfx(drm);
3262306a36Sopenharmony_ci	int ret;
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci	priv->connector.dpms = DRM_MODE_DPMS_OFF;
3562306a36Sopenharmony_ci	priv->connector.polled = 0;
3662306a36Sopenharmony_ci	drm_connector_helper_add(&priv->connector,
3762306a36Sopenharmony_ci				 &aspeed_gfx_connector_helper_funcs);
3862306a36Sopenharmony_ci	ret = drm_connector_init(drm, &priv->connector,
3962306a36Sopenharmony_ci				 &aspeed_gfx_connector_funcs,
4062306a36Sopenharmony_ci				 DRM_MODE_CONNECTOR_Unknown);
4162306a36Sopenharmony_ci	return ret;
4262306a36Sopenharmony_ci}
43