2021-07-23 10:42:32 -07:00
|
|
|
/* SPDX-License-Identifier: MIT */
|
|
|
|
/*
|
|
|
|
* Copyright © 2019 Intel Corporation
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __INTEL_SNPS_PHY_H__
|
|
|
|
#define __INTEL_SNPS_PHY_H__
|
|
|
|
|
2021-07-23 10:42:34 -07:00
|
|
|
#include <linux/types.h>
|
|
|
|
|
2025-02-25 18:49:05 +02:00
|
|
|
enum phy;
|
2022-06-16 12:48:14 +03:00
|
|
|
struct intel_atomic_state;
|
2023-10-04 18:56:03 +03:00
|
|
|
struct intel_crtc;
|
2021-07-23 10:42:32 -07:00
|
|
|
struct intel_crtc_state;
|
2025-02-25 18:49:05 +02:00
|
|
|
struct intel_display;
|
2022-06-16 12:48:14 +03:00
|
|
|
struct intel_encoder;
|
2021-07-23 10:42:33 -07:00
|
|
|
struct intel_mpllb_state;
|
2021-07-23 10:42:32 -07:00
|
|
|
|
2025-02-25 18:49:05 +02:00
|
|
|
void intel_snps_phy_wait_for_calibration(struct intel_display *display);
|
2024-03-20 17:48:00 +02:00
|
|
|
void intel_snps_phy_update_psr_power_state(struct intel_encoder *encoder,
|
|
|
|
bool enable);
|
2021-07-23 10:42:36 -07:00
|
|
|
|
2021-07-23 10:42:32 -07:00
|
|
|
int intel_mpllb_calc_state(struct intel_crtc_state *crtc_state,
|
|
|
|
struct intel_encoder *encoder);
|
|
|
|
void intel_mpllb_enable(struct intel_encoder *encoder,
|
|
|
|
const struct intel_crtc_state *crtc_state);
|
|
|
|
void intel_mpllb_disable(struct intel_encoder *encoder);
|
2021-07-23 10:42:33 -07:00
|
|
|
void intel_mpllb_readout_hw_state(struct intel_encoder *encoder,
|
|
|
|
struct intel_mpllb_state *pll_state);
|
|
|
|
int intel_mpllb_calc_port_clock(struct intel_encoder *encoder,
|
|
|
|
const struct intel_mpllb_state *pll_state);
|
|
|
|
|
2021-10-01 16:01:01 +03:00
|
|
|
void intel_snps_phy_set_signal_levels(struct intel_encoder *encoder,
|
|
|
|
const struct intel_crtc_state *crtc_state);
|
2022-06-16 12:48:14 +03:00
|
|
|
void intel_mpllb_state_verify(struct intel_atomic_state *state,
|
2023-10-04 18:56:03 +03:00
|
|
|
struct intel_crtc *crtc);
|
2021-07-23 10:42:32 -07:00
|
|
|
|
|
|
|
#endif /* __INTEL_SNPS_PHY_H__ */
|