162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (C) 2016 BayLibre, SAS 462306a36Sopenharmony_ci * Author: Neil Armstrong <narmstrong@baylibre.com> 562306a36Sopenharmony_ci */ 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci/* Video Clock */ 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci#ifndef __MESON_VCLK_H 1062306a36Sopenharmony_ci#define __MESON_VCLK_H 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci#include <drm/drm_modes.h> 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_cistruct meson_drm; 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_cienum { 1762306a36Sopenharmony_ci MESON_VCLK_TARGET_CVBS = 0, 1862306a36Sopenharmony_ci MESON_VCLK_TARGET_HDMI = 1, 1962306a36Sopenharmony_ci MESON_VCLK_TARGET_DMT = 2, 2062306a36Sopenharmony_ci}; 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci/* 27MHz is the CVBS Pixel Clock */ 2362306a36Sopenharmony_ci#define MESON_VCLK_CVBS 27000 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_cienum drm_mode_status 2662306a36Sopenharmony_cimeson_vclk_dmt_supported_freq(struct meson_drm *priv, unsigned int freq); 2762306a36Sopenharmony_cienum drm_mode_status 2862306a36Sopenharmony_cimeson_vclk_vic_supported_freq(struct meson_drm *priv, unsigned int phy_freq, 2962306a36Sopenharmony_ci unsigned int vclk_freq); 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_civoid meson_vclk_setup(struct meson_drm *priv, unsigned int target, 3262306a36Sopenharmony_ci unsigned int phy_freq, unsigned int vclk_freq, 3362306a36Sopenharmony_ci unsigned int venc_freq, unsigned int dac_freq, 3462306a36Sopenharmony_ci bool hdmi_use_enci); 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci#endif /* __MESON_VCLK_H */ 37