Lines Matching refs:lvds

94 	int (*probe)(struct rockchip_lvds *lvds);
95 void (*enable)(struct rockchip_lvds *lvds, int pipe);
96 void (*disable)(struct rockchip_lvds *lvds);
116 struct rockchip_lvds *lvds = dev_get_priv(conn->dev); in rockchip_lvds_connector_init() local
121 lvds->mode = &conn_state->mode; in rockchip_lvds_connector_init()
122 lvds->phy = conn->phy; in rockchip_lvds_connector_init()
123 conn_state->disp_info = rockchip_get_disp_info(conn_state->type, lvds->id); in rockchip_lvds_connector_init()
130 lvds->format = LVDS_6BIT_MODE; in rockchip_lvds_connector_init()
133 lvds->format = LVDS_8BIT_MODE_FORMAT_2; in rockchip_lvds_connector_init()
136 lvds->format = LVDS_10BIT_MODE_FORMAT_1; in rockchip_lvds_connector_init()
138 lvds->format = LVDS_8BIT_MODE_FORMAT_3; in rockchip_lvds_connector_init()
141 lvds->format = LVDS_10BIT_MODE_FORMAT_2; in rockchip_lvds_connector_init()
145 lvds->format = LVDS_8BIT_MODE_FORMAT_1; in rockchip_lvds_connector_init()
152 if ((lvds->format == LVDS_10BIT_MODE_FORMAT_1) || in rockchip_lvds_connector_init()
153 (lvds->format == LVDS_10BIT_MODE_FORMAT_2)) in rockchip_lvds_connector_init()
194 if (lvds->id) in rockchip_lvds_connector_init()
205 struct rockchip_lvds *lvds = dev_get_priv(conn->dev); in rockchip_lvds_connector_enable() local
210 if (lvds->funcs->enable) in rockchip_lvds_connector_enable()
211 lvds->funcs->enable(lvds, pipe); in rockchip_lvds_connector_enable()
213 ret = rockchip_phy_set_mode(lvds->phy, PHY_MODE_VIDEO_LVDS); in rockchip_lvds_connector_enable()
215 dev_err(lvds->dev, "failed to set phy mode: %d\n", ret); in rockchip_lvds_connector_enable()
219 rockchip_phy_power_on(lvds->phy); in rockchip_lvds_connector_enable()
227 struct rockchip_lvds *lvds = dev_get_priv(conn->dev); in rockchip_lvds_connector_disable() local
229 rockchip_phy_power_off(lvds->phy); in rockchip_lvds_connector_disable()
231 if (lvds->funcs->disable) in rockchip_lvds_connector_disable()
232 lvds->funcs->disable(lvds); in rockchip_lvds_connector_disable()
245 struct rockchip_lvds *lvds = dev_get_priv(dev); in rockchip_lvds_probe() local
247 lvds->dev = dev; in rockchip_lvds_probe()
248 lvds->funcs = (const struct rockchip_lvds_funcs *)dev_get_driver_data(dev); in rockchip_lvds_probe()
249 lvds->grf = syscon_get_regmap(dev_get_parent(dev)); in rockchip_lvds_probe()
250 lvds->dual_channel = dev_read_bool(dev, "dual-channel"); in rockchip_lvds_probe()
251 lvds->data_swap = dev_read_bool(dev, "rockchip,data-swap"); in rockchip_lvds_probe()
252 lvds->id = of_alias_get_id(ofnode_to_np(dev->node), "lvds"); in rockchip_lvds_probe()
253 if (lvds->id < 0) in rockchip_lvds_probe()
254 lvds->id = 0; in rockchip_lvds_probe()
256 lvds->pixel_order = -1; in rockchip_lvds_probe()
257 if (lvds->funcs->probe) in rockchip_lvds_probe()
258 lvds->funcs->probe(lvds); in rockchip_lvds_probe()
260 rockchip_connector_bind(&lvds->connector, dev, lvds->id, &rockchip_lvds_connector_funcs, in rockchip_lvds_probe()
266 static void px30_lvds_enable(struct rockchip_lvds *lvds, int pipe) in px30_lvds_enable() argument
268 regmap_write(lvds->grf, PX30_GRF_PD_VO_CON1, in px30_lvds_enable()
269 PX30_LVDS_SELECT(lvds->format) | in px30_lvds_enable()
274 static void px30_lvds_disable(struct rockchip_lvds *lvds) in px30_lvds_disable() argument
276 regmap_write(lvds->grf, PX30_GRF_PD_VO_CON1, in px30_lvds_disable()
285 static void rk3126_lvds_enable(struct rockchip_lvds *lvds, int pipe) in rk3126_lvds_enable() argument
287 regmap_write(lvds->grf, RK3126_GRF_LVDS_CON0, in rk3126_lvds_enable()
289 RK3126_LVDS_MSBSEL(1) | RK3126_LVDS_SELECT(lvds->format)); in rk3126_lvds_enable()
292 static void rk3126_lvds_disable(struct rockchip_lvds *lvds) in rk3126_lvds_disable() argument
294 regmap_write(lvds->grf, RK3126_GRF_LVDS_CON0, in rk3126_lvds_disable()
303 static void rk3288_lvds_enable(struct rockchip_lvds *lvds, int pipe) in rk3288_lvds_enable() argument
305 const struct drm_display_mode *mode = lvds->mode; in rk3288_lvds_enable()
308 regmap_write(lvds->grf, RK3288_GRF_SOC_CON6, in rk3288_lvds_enable()
312 RK3288_LVDS_CON_CHASEL(lvds->dual_channel) | in rk3288_lvds_enable()
313 RK3288_LVDS_CON_SELECT(lvds->format); in rk3288_lvds_enable()
315 if (lvds->dual_channel) { in rk3288_lvds_enable()
320 RK3288_LVDS_CON_STARTSEL(lvds->data_swap); in rk3288_lvds_enable()
331 regmap_write(lvds->grf, RK3288_GRF_SOC_CON7, val); in rk3288_lvds_enable()
333 rockchip_phy_set_bus_width(lvds->phy, lvds->dual_channel ? 2 : 1); in rk3288_lvds_enable()
336 static void rk3288_lvds_disable(struct rockchip_lvds *lvds) in rk3288_lvds_disable() argument
338 regmap_write(lvds->grf, RK3288_GRF_SOC_CON7, RK3288_LVDS_PWRDWN(1)); in rk3288_lvds_disable()
346 static void rk3368_lvds_enable(struct rockchip_lvds *lvds, int pipe) in rk3368_lvds_enable() argument
348 regmap_write(lvds->grf, RK3368_GRF_SOC_CON7, in rk3368_lvds_enable()
349 RK3368_LVDS_SELECT(lvds->format) | in rk3368_lvds_enable()
354 static void rk3368_lvds_disable(struct rockchip_lvds *lvds) in rk3368_lvds_disable() argument
356 regmap_write(lvds->grf, RK3368_GRF_SOC_CON7, in rk3368_lvds_disable()
365 static void rk3562_lvds_enable(struct rockchip_lvds *lvds, int pipe) in rk3562_lvds_enable() argument
367 regmap_write(lvds->grf, RK3562_GRF_VO_CON1, in rk3562_lvds_enable()
370 regmap_write(lvds->grf, RK3562_GRF_VO_CON0, in rk3562_lvds_enable()
371 RK3568_LVDS0_SELECT(lvds->format) | RK3568_LVDS0_MSBSEL(1)); in rk3562_lvds_enable()
374 static void rk3562_lvds_disable(struct rockchip_lvds *lvds) in rk3562_lvds_disable() argument
376 regmap_write(lvds->grf, RK3562_GRF_VO_CON1, RK3568_LVDS0_MODE_EN(0)); in rk3562_lvds_disable()
384 static int rk3568_lvds_probe(struct rockchip_lvds *lvds) in rk3568_lvds_probe() argument
386 if (lvds->dual_channel) { in rk3568_lvds_probe()
392 lvds->pixel_order = 0; in rk3568_lvds_probe()
396 port0 = rockchip_of_graph_get_port_by_id(lvds->dev->node, 1); in rk3568_lvds_probe()
402 lvds->pixel_order = pixel_order >= 0 ? pixel_order : 0; in rk3568_lvds_probe()
408 static void rk3568_lvds_enable(struct rockchip_lvds *lvds, int pipe) in rk3568_lvds_enable() argument
410 if (lvds->id) { in rk3568_lvds_enable()
411 regmap_write(lvds->grf, RK3568_GRF_VO_CON3, in rk3568_lvds_enable()
414 regmap_write(lvds->grf, RK3568_GRF_VO_CON0, in rk3568_lvds_enable()
415 RK3568_LVDS1_SELECT(lvds->format) | in rk3568_lvds_enable()
418 regmap_write(lvds->grf, RK3568_GRF_VO_CON2, in rk3568_lvds_enable()
421 regmap_write(lvds->grf, RK3568_GRF_VO_CON0, in rk3568_lvds_enable()
422 RK3568_LVDS0_SELECT(lvds->format) | in rk3568_lvds_enable()
427 static void rk3568_lvds_disable(struct rockchip_lvds *lvds) in rk3568_lvds_disable() argument
429 if (lvds->id) in rk3568_lvds_disable()
430 regmap_write(lvds->grf, RK3568_GRF_VO_CON3, in rk3568_lvds_disable()
433 regmap_write(lvds->grf, RK3568_GRF_VO_CON2, in rk3568_lvds_disable()