1/* SPDX-License-Identifier: MIT
2 *
3 * Copyright © 2025 Intel Corporation
4 */
5
6#ifndef __INTEL_LT_PHY_H__
7#define __INTEL_LT_PHY_H__
8
9#include <linux/types.h>
10
11struct intel_atomic_state;
12struct intel_display;
13struct intel_encoder;
14struct intel_crtc_state;
15struct intel_crtc;
16struct intel_lt_phy_pll_state;
17
18void intel_lt_phy_pll_enable(struct intel_encoder *encoder,
19 const struct intel_crtc_state *crtc_state);
20void intel_lt_phy_pll_disable(struct intel_encoder *encoder);
21int
22intel_lt_phy_pll_calc_state(struct intel_crtc_state *crtc_state,
23 struct intel_encoder *encoder);
24int intel_lt_phy_calc_port_clock(struct intel_encoder *encoder,
25 const struct intel_crtc_state *crtc_state);
26void intel_lt_phy_set_signal_levels(struct intel_encoder *encoder,
27 const struct intel_crtc_state *crtc_state);
28void intel_lt_phy_dump_hw_state(struct intel_display *display,
29 const struct intel_lt_phy_pll_state *hw_state);
30bool
31intel_lt_phy_pll_compare_hw_state(const struct intel_lt_phy_pll_state *a,
32 const struct intel_lt_phy_pll_state *b);
33void intel_lt_phy_pll_readout_hw_state(struct intel_encoder *encoder,
34 const struct intel_crtc_state *crtc_state,
35 struct intel_lt_phy_pll_state *pll_state);
36void intel_lt_phy_pll_state_verify(struct intel_atomic_state *state,
37 struct intel_crtc *crtc);
38int
39intel_lt_phy_calculate_hdmi_state(struct intel_lt_phy_pll_state *lt_state,
40 u32 frequency_khz);
41void intel_xe3plpd_pll_enable(struct intel_encoder *encoder,
42 const struct intel_crtc_state *crtc_state);
43void intel_xe3plpd_pll_disable(struct intel_encoder *encoder);
44
45#define HAS_LT_PHY(display) (DISPLAY_VER(display) >= 35)
46
47#endif /* __INTEL_LT_PHY_H__ */
48

source code of linux/drivers/gpu/drm/i915/display/intel_lt_phy.h