#include <linux/clk-provider.h>
#include <linux/platform_device.h>
#include <dt-bindings/phy/phy.h>
#include "dsi_phy.h"
#define S_DIV_ROUND_UP(n, d) …
static inline s32 linear_inter(s32 tmax, s32 tmin, s32 percent,
s32 min_result, bool even)
{ … }
static void dsi_dphy_timing_calc_clk_zero(struct msm_dsi_dphy_timing *timing,
s32 ui, s32 coeff, s32 pcnt)
{ … }
int msm_dsi_dphy_timing_calc(struct msm_dsi_dphy_timing *timing,
struct msm_dsi_phy_clk_request *clk_req)
{ … }
int msm_dsi_dphy_timing_calc_v2(struct msm_dsi_dphy_timing *timing,
struct msm_dsi_phy_clk_request *clk_req)
{ … }
int msm_dsi_dphy_timing_calc_v3(struct msm_dsi_dphy_timing *timing,
struct msm_dsi_phy_clk_request *clk_req)
{ … }
int msm_dsi_dphy_timing_calc_v4(struct msm_dsi_dphy_timing *timing,
struct msm_dsi_phy_clk_request *clk_req)
{ … }
int msm_dsi_cphy_timing_calc_v4(struct msm_dsi_dphy_timing *timing,
struct msm_dsi_phy_clk_request *clk_req)
{ … }
static int dsi_phy_enable_resource(struct msm_dsi_phy *phy)
{ … }
static void dsi_phy_disable_resource(struct msm_dsi_phy *phy)
{ … }
static const struct of_device_id dsi_phy_dt_match[] = …;
static int dsi_phy_get_id(struct msm_dsi_phy *phy)
{ … }
static int dsi_phy_driver_probe(struct platform_device *pdev)
{ … }
static struct platform_driver dsi_phy_platform_driver = …;
void __init msm_dsi_phy_driver_register(void)
{ … }
void __exit msm_dsi_phy_driver_unregister(void)
{ … }
int msm_dsi_phy_enable(struct msm_dsi_phy *phy,
struct msm_dsi_phy_clk_request *clk_req,
struct msm_dsi_phy_shared_timings *shared_timings)
{ … }
void msm_dsi_phy_disable(struct msm_dsi_phy *phy)
{ … }
void msm_dsi_phy_set_usecase(struct msm_dsi_phy *phy,
enum msm_dsi_phy_usecase uc)
{ … }
bool msm_dsi_phy_set_continuous_clock(struct msm_dsi_phy *phy, bool enable)
{ … }
void msm_dsi_phy_pll_save_state(struct msm_dsi_phy *phy)
{ … }
int msm_dsi_phy_pll_restore_state(struct msm_dsi_phy *phy)
{ … }
void msm_dsi_phy_snapshot(struct msm_disp_state *disp_state, struct msm_dsi_phy *phy)
{ … }