| 1 |
|
| 2 | |
| 3 | * Copyright (c) 2012-2020, The Linux Foundation. All rights reserved.
|
| 4 |
|
| 5 |
|
| 6 | #ifndef _DP_CTRL_H_
|
| 7 | #define _DP_CTRL_H_
|
| 8 |
|
| 9 | #include "dp_aux.h"
|
| 10 | #include "dp_panel.h"
|
| 11 | #include "dp_link.h"
|
| 12 |
|
| 13 | struct msm_dp_ctrl {
|
| 14 | bool wide_bus_en;
|
| 15 | };
|
| 16 |
|
| 17 | struct phy;
|
| 18 |
|
| 19 | int msm_dp_ctrl_on_link(struct msm_dp_ctrl *msm_dp_ctrl,
|
| 20 | struct msm_dp_panel *panel);
|
| 21 | int msm_dp_ctrl_on_stream(struct msm_dp_ctrl *msm_dp_ctrl, struct msm_dp_panel *panel);
|
| 22 | int msm_dp_ctrl_prepare_stream_on(struct msm_dp_ctrl *msm_dp_ctrl,
|
| 23 | struct msm_dp_panel *panel,
|
| 24 | bool force_link_train);
|
| 25 | void msm_dp_ctrl_off_link(struct msm_dp_ctrl *msm_dp_ctrl,
|
| 26 | struct msm_dp_panel *panel);
|
| 27 | void msm_dp_ctrl_off_pixel_clk(struct msm_dp_ctrl *msm_dp_ctrl);
|
| 28 | void msm_dp_ctrl_push_idle(struct msm_dp_ctrl *msm_dp_ctrl);
|
| 29 | irqreturn_t msm_dp_ctrl_isr(struct msm_dp_ctrl *msm_dp_ctrl,
|
| 30 | struct msm_dp_panel *panel);
|
| 31 | void msm_dp_ctrl_handle_sink_request(struct msm_dp_ctrl *msm_dp_ctrl,
|
| 32 | struct msm_dp_panel *panel);
|
| 33 | struct msm_dp_ctrl *msm_dp_ctrl_get(struct device *dev,
|
| 34 | struct msm_dp_link *link,
|
| 35 | struct drm_dp_aux *aux,
|
| 36 | struct phy *phy,
|
| 37 | void __iomem *ahb_base,
|
| 38 | void __iomem *link_base);
|
| 39 |
|
| 40 | void msm_dp_ctrl_reset(struct msm_dp_ctrl *msm_dp_ctrl,
|
| 41 | struct msm_dp_panel *panel);
|
| 42 | void msm_dp_ctrl_phy_init(struct msm_dp_ctrl *msm_dp_ctrl);
|
| 43 | void msm_dp_ctrl_phy_exit(struct msm_dp_ctrl *msm_dp_ctrl);
|
| 44 | void msm_dp_ctrl_irq_phy_exit(struct msm_dp_ctrl *msm_dp_ctrl);
|
| 45 |
|
| 46 | void msm_dp_ctrl_set_psr(struct msm_dp_ctrl *msm_dp_ctrl,
|
| 47 | struct msm_dp_panel *panel, bool enable);
|
| 48 | void msm_dp_ctrl_config_psr(struct msm_dp_ctrl *msm_dp_ctrl,
|
| 49 | struct msm_dp_panel *panel);
|
| 50 |
|
| 51 | int msm_dp_ctrl_core_clk_enable(struct msm_dp_ctrl *msm_dp_ctrl);
|
| 52 | void msm_dp_ctrl_core_clk_disable(struct msm_dp_ctrl *msm_dp_ctrl);
|
| 53 |
|
| 54 | void msm_dp_ctrl_enable_irq(struct msm_dp_ctrl *msm_dp_ctrl);
|
| 55 | void msm_dp_ctrl_disable_irq(struct msm_dp_ctrl *msm_dp_ctrl);
|
| 56 |
|
| 57 | void msm_dp_ctrl_reinit_phy(struct msm_dp_ctrl *msm_dp_ctrl);
|
| 58 | #endif
|