Lines Matching refs:rk628

15 int rk628_gvi_parse(struct rk628 *rk628, struct device_node *gvi_np)  in rk628_gvi_parse()  argument
24 rk628->output_mode = OUTPUT_MODE_GVI; in rk628_gvi_parse()
27 rk628->gvi.lanes = val; in rk628_gvi_parse()
30 rk628->gvi.division_mode = true; in rk628_gvi_parse()
32 rk628->gvi.division_mode = false; in rk628_gvi_parse()
35 rk628->gvi.frm_rst = true; in rk628_gvi_parse()
37 rk628->gvi.frm_rst = false; in rk628_gvi_parse()
41 rk628->gvi.bus_format = GVI_MEDIA_BUS_FMT_RGB666_1X18; in rk628_gvi_parse()
43 rk628->gvi.bus_format = GVI_MEDIA_BUS_FMT_RGB101010_1X30; in rk628_gvi_parse()
45 rk628->gvi.bus_format = GVI_MEDIA_BUS_FMT_YUYV8_1X16; in rk628_gvi_parse()
47 rk628->gvi.bus_format = GVI_MEDIA_BUS_FMT_YUYV10_1X20; in rk628_gvi_parse()
49 rk628->gvi.bus_format = GVI_MEDIA_BUS_FMT_RGB888_1X24; in rk628_gvi_parse()
52 ret = rk628_panel_info_get(rk628, gvi_np); in rk628_gvi_parse()
90 static unsigned int rk628_gvi_get_lane_rate(struct rk628 *rk628) in rk628_gvi_get_lane_rate() argument
92 const struct rk628_display_mode *mode = &rk628->dst_mode; in rk628_gvi_get_lane_rate()
93 struct rk628_gvi *gvi = &rk628->gvi; in rk628_gvi_get_lane_rate()
116 static void rk628_gvi_pre_enable(struct rk628 *rk628, struct rk628_gvi *gvi) in rk628_gvi_pre_enable() argument
119 rk628_i2c_update_bits(rk628, GVI_SYS_RST, SYS_RST_SOFT_RST, in rk628_gvi_pre_enable()
122 rk628_i2c_update_bits(rk628, GVI_SYS_RST, SYS_RST_SOFT_RST, 0); in rk628_gvi_pre_enable()
125 rk628_i2c_update_bits(rk628, GVI_SYS_CTRL0, SYS_CTRL0_LANE_NUM_MASK, in rk628_gvi_pre_enable()
127 rk628_i2c_update_bits(rk628, GVI_SYS_CTRL0, SYS_CTRL0_BYTE_MODE_MASK, in rk628_gvi_pre_enable()
130 rk628_i2c_update_bits(rk628, GVI_SYS_CTRL0, SYS_CTRL0_SECTION_NUM_MASK, in rk628_gvi_pre_enable()
132 rk628_i2c_update_bits(rk628, GRF_POST_PROC_CON, SW_SPLIT_EN, in rk628_gvi_pre_enable()
134 rk628_i2c_update_bits(rk628, GVI_SYS_CTRL1, SYS_CTRL1_DUAL_PIXEL_EN, in rk628_gvi_pre_enable()
137 rk628_i2c_update_bits(rk628, GVI_SYS_CTRL0, SYS_CTRL0_FRM_RST_EN, in rk628_gvi_pre_enable()
139 rk628_i2c_update_bits(rk628, GVI_SYS_CTRL1, SYS_CTRL1_LANE_ALIGN_EN, 0); in rk628_gvi_pre_enable()
142 static void rk628_gvi_enable_color_bar(struct rk628 *rk628, in rk628_gvi_enable_color_bar() argument
145 const struct rk628_display_mode *mode = &rk628->dst_mode; in rk628_gvi_enable_color_bar()
175 rk628_i2c_write(rk628, GVI_COLOR_BAR_HTIMING0, in rk628_gvi_enable_color_bar()
177 rk628_i2c_write(rk628, GVI_COLOR_BAR_HTIMING1, in rk628_gvi_enable_color_bar()
179 rk628_i2c_write(rk628, GVI_COLOR_BAR_VTIMING0, in rk628_gvi_enable_color_bar()
181 rk628_i2c_write(rk628, GVI_COLOR_BAR_VTIMING1, in rk628_gvi_enable_color_bar()
183 rk628_i2c_update_bits(rk628, GVI_COLOR_BAR_CTRL, COLOR_BAR_EN, 0); in rk628_gvi_enable_color_bar()
187 static void rk628_gvi_post_enable(struct rk628 *rk628, struct rk628_gvi *gvi) in rk628_gvi_post_enable() argument
192 rk628_i2c_update_bits(rk628, GVI_SYS_CTRL0, val, 3); in rk628_gvi_post_enable()
195 void rk628_gvi_enable(struct rk628 *rk628) in rk628_gvi_enable() argument
197 struct rk628_gvi *gvi = &rk628->gvi; in rk628_gvi_enable()
201 rate = rk628_gvi_get_lane_rate(rk628); in rk628_gvi_enable()
204 rk628_i2c_write(rk628, GRF_GPIO3AB_SEL_CON, 0x06000600); in rk628_gvi_enable()
205 rk628_i2c_update_bits(rk628, GRF_SYSTEM_CON0, SW_OUTPUT_MODE_MASK, in rk628_gvi_enable()
207 rk628_combtxphy_set_bus_width(rk628, rate); in rk628_gvi_enable()
208 rk628_combtxphy_set_gvi_division_mode(rk628, gvi->division_mode); in rk628_gvi_enable()
209 rk628_combtxphy_set_mode(rk628, PHY_MODE_VIDEO_GVI); in rk628_gvi_enable()
210 rate = rk628_combtxphy_get_bus_width(rk628); in rk628_gvi_enable()
211 rk628_combtxphy_power_on(rk628); in rk628_gvi_enable()
212 rk628_gvi_pre_enable(rk628, gvi); in rk628_gvi_enable()
213 rk628_panel_prepare(rk628); in rk628_gvi_enable()
214 rk628_gvi_enable_color_bar(rk628, gvi); in rk628_gvi_enable()
215 rk628_gvi_post_enable(rk628, gvi); in rk628_gvi_enable()
216 rk628_panel_enable(rk628); in rk628_gvi_enable()
217 dev_info(rk628->dev, in rk628_gvi_enable()
223 void rk628_gvi_disable(struct rk628 *rk628) in rk628_gvi_disable() argument
225 rk628_panel_disable(rk628); in rk628_gvi_disable()
226 rk628_panel_unprepare(rk628); in rk628_gvi_disable()
227 rk628_i2c_update_bits(rk628, GVI_SYS_CTRL0, SYS_CTRL0_GVI_EN, 0); in rk628_gvi_disable()
228 rk628_combtxphy_power_off(rk628); in rk628_gvi_disable()