Lines Matching full:dphy
23 #include "phy-rockchip-csi2-dphy-common.h"
1291 * dphy: 400mv in samsung_mipi_dcphy_bias_block_enable()
1871 * All DPHY 2.0 compliant Transmitters shall support SSC operating above in samsung_mipi_dcphy_pll_calc_rate()
1910 v4l2_warn(sd, "No link between dphy and sensor\n"); in get_remote_sensor()
1918 static struct csi2_sensor *sd_to_sensor(struct csi2_dphy *dphy, in sd_to_sensor() argument
1923 for (i = 0; i < dphy->num_sensors; ++i) in sd_to_sensor()
1924 if (dphy->sensors[i].sd == sd) in sd_to_sensor()
1925 return &dphy->sensors[i]; in sd_to_sensor()
1930 static void samsung_dcphy_rx_config_settle(struct csi2_dphy *dphy, in samsung_dcphy_rx_config_settle() argument
1933 struct samsung_mipi_dcphy *samsung = dphy->samsung_phy; in samsung_dcphy_rx_config_settle()
1948 dev_err(dphy->dev, "mbus type %d is not support", in samsung_dcphy_rx_config_settle()
1954 if (hsfreq_ranges[i].range_h >= dphy->data_rate_mbps) { in samsung_dcphy_rx_config_settle()
1962 dev_warn(dphy->dev, "data rate: %lld mbps, max support %d mbps", in samsung_dcphy_rx_config_settle()
1963 dphy->data_rate_mbps, hsfreq_ranges[i].range_h + 1); in samsung_dcphy_rx_config_settle()
1988 static int samsung_dcphy_rx_config_common(struct csi2_dphy *dphy, in samsung_dcphy_rx_config_common() argument
1991 struct samsung_mipi_dcphy *samsung = dphy->samsung_phy; in samsung_dcphy_rx_config_common()
1996 if (dphy->data_rate_mbps < 1500) in samsung_dcphy_rx_config_common()
1998 else if (dphy->data_rate_mbps < 2000) in samsung_dcphy_rx_config_common()
2000 else if (dphy->data_rate_mbps < 3000) in samsung_dcphy_rx_config_common()
2002 else if (dphy->data_rate_mbps < 4000) in samsung_dcphy_rx_config_common()
2004 else if (dphy->data_rate_mbps < 6500) in samsung_dcphy_rx_config_common()
2006 if (dphy->dphy_param.clk_hs_term_sel > 0x7) { in samsung_dcphy_rx_config_common()
2007 dev_err(dphy->dev, "clk_hs_term_sel error param %d\n", in samsung_dcphy_rx_config_common()
2008 dphy->dphy_param.clk_hs_term_sel); in samsung_dcphy_rx_config_common()
2012 if (dphy->dphy_param.data_hs_term_sel[i] > 0x7) { in samsung_dcphy_rx_config_common()
2013 dev_err(dphy->dev, "data_hs_term_sel[%d] error param %d\n", in samsung_dcphy_rx_config_common()
2015 dphy->dphy_param.data_hs_term_sel[i]); in samsung_dcphy_rx_config_common()
2018 if (dphy->dphy_param.lp_hys_sw[i] > 0x3) { in samsung_dcphy_rx_config_common()
2019 dev_err(dphy->dev, "lp_hys_sw[%d] error param %d\n", in samsung_dcphy_rx_config_common()
2021 dphy->dphy_param.lp_hys_sw[i]); in samsung_dcphy_rx_config_common()
2024 if (dphy->dphy_param.lp_escclk_pol_sel[i] > 0x1) { in samsung_dcphy_rx_config_common()
2025 dev_err(dphy->dev, "lp_escclk_pol_sel[%d] error param %d\n", in samsung_dcphy_rx_config_common()
2027 dphy->dphy_param.lp_escclk_pol_sel[i]); in samsung_dcphy_rx_config_common()
2030 if (dphy->dphy_param.skew_data_cal_clk[i] > 0x1f) { in samsung_dcphy_rx_config_common()
2031 dev_err(dphy->dev, "skew_data_cal_clk[%d] error param %d\n", in samsung_dcphy_rx_config_common()
2033 dphy->dphy_param.skew_data_cal_clk[i]); in samsung_dcphy_rx_config_common()
2039 regmap_write(samsung->regmap, RX_S0C_ANA_CON2, dphy->dphy_param.clk_hs_term_sel); in samsung_dcphy_rx_config_common()
2045 dphy->dphy_param.data_hs_term_sel[0]); in samsung_dcphy_rx_config_common()
2047 (dphy->dphy_param.lp_hys_sw[0] << 4) | in samsung_dcphy_rx_config_common()
2048 (dphy->dphy_param.lp_escclk_pol_sel[0] << 11)); in samsung_dcphy_rx_config_common()
2051 dphy->dphy_param.skew_data_cal_clk[0]); in samsung_dcphy_rx_config_common()
2057 dphy->dphy_param.data_hs_term_sel[1]); in samsung_dcphy_rx_config_common()
2059 (dphy->dphy_param.lp_hys_sw[1] << 4) | in samsung_dcphy_rx_config_common()
2060 (dphy->dphy_param.lp_escclk_pol_sel[1] << 11)); in samsung_dcphy_rx_config_common()
2063 dphy->dphy_param.skew_data_cal_clk[1]); in samsung_dcphy_rx_config_common()
2069 dphy->dphy_param.data_hs_term_sel[2]); in samsung_dcphy_rx_config_common()
2071 (dphy->dphy_param.lp_hys_sw[2] << 4) | in samsung_dcphy_rx_config_common()
2072 (dphy->dphy_param.lp_escclk_pol_sel[2] << 11)); in samsung_dcphy_rx_config_common()
2075 dphy->dphy_param.skew_data_cal_clk[2]); in samsung_dcphy_rx_config_common()
2081 dphy->dphy_param.data_hs_term_sel[3]); in samsung_dcphy_rx_config_common()
2083 (dphy->dphy_param.lp_hys_sw[3] << 4) | in samsung_dcphy_rx_config_common()
2084 (dphy->dphy_param.lp_escclk_pol_sel[3] << 11)); in samsung_dcphy_rx_config_common()
2086 dphy->dphy_param.skew_data_cal_clk[3]); in samsung_dcphy_rx_config_common()
2123 static int samsung_dcphy_rx_lane_enable(struct csi2_dphy *dphy, in samsung_dcphy_rx_lane_enable() argument
2126 struct samsung_mipi_dcphy *samsung = dphy->samsung_phy; in samsung_dcphy_rx_lane_enable()
2189 static int samsung_dcphy_rx_stream_on(struct csi2_dphy *dphy, in samsung_dcphy_rx_stream_on() argument
2194 struct samsung_mipi_dcphy *samsung = dphy->samsung_phy; in samsung_dcphy_rx_stream_on()
2199 sensor = sd_to_sensor(dphy, sensor_sd); in samsung_dcphy_rx_stream_on()
2210 samsung_mipi_dcphy_bias_block_enable(samsung, dphy); in samsung_dcphy_rx_stream_on()
2211 ret = samsung_dcphy_rx_config_common(dphy, sensor); in samsung_dcphy_rx_stream_on()
2214 samsung_dcphy_rx_config_settle(dphy, sensor); in samsung_dcphy_rx_stream_on()
2216 ret = samsung_dcphy_rx_lane_enable(dphy, sensor); in samsung_dcphy_rx_stream_on()
2231 dev_err(dphy->dev, "stream on error\n"); in samsung_dcphy_rx_stream_on()
2236 static int samsung_dcphy_rx_stream_off(struct csi2_dphy *dphy, in samsung_dcphy_rx_stream_off() argument
2239 struct samsung_mipi_dcphy *samsung = dphy->samsung_phy; in samsung_dcphy_rx_stream_off()
2245 sensor = sd_to_sensor(dphy, sensor_sd); in samsung_dcphy_rx_stream_off()