drm/rockchip: add dual channel swap config
some pcb layout dual mipi/lvds channel maybe mistake. we can set rockchip,dual-channel-swap = <1> to swap the dual channel at dts file. Signed-off-by: Sandy Huang <hjc@rock-chips.com> Change-Id: I7398b83bff0fd0dedd77834ee2a8ff14f2ae11ea
This commit is contained in:
parent
b6b05c7154
commit
289af5f4ba
|
|
@ -1386,6 +1386,9 @@ static int rockchip_display_probe(struct udevice *dev)
|
|||
|
||||
get_crtc_mcu_mode(&s->crtc_state);
|
||||
|
||||
ret = ofnode_read_u32_default(s->crtc_state.node,
|
||||
"rockchip,dual-channel-swap", 0);
|
||||
s->crtc_state.dual_channel_swap = ret;
|
||||
if (connector_panel_init(s)) {
|
||||
printf("Warn: Failed to init panel drivers\n");
|
||||
free(s);
|
||||
|
|
|
|||
|
|
@ -84,6 +84,7 @@ struct crtc_state {
|
|||
int crtc_h;
|
||||
bool yuv_overlay;
|
||||
struct rockchip_mcu_timing mcu_timing;
|
||||
u32 dual_channel_swap;
|
||||
};
|
||||
|
||||
struct panel_state {
|
||||
|
|
|
|||
|
|
@ -305,7 +305,8 @@ static int rockchip_vop_init(struct display_state *state)
|
|||
VOP_CTRL_SET(vop, mipi_dual_channel_en,
|
||||
!!(conn_state->output_type & ROCKCHIP_OUTPUT_DSI_DUAL_CHANNEL));
|
||||
VOP_CTRL_SET(vop, data01_swap,
|
||||
!!(conn_state->output_type & ROCKCHIP_OUTPUT_DSI_DUAL_LINK));
|
||||
!!(conn_state->output_type & ROCKCHIP_OUTPUT_DSI_DUAL_LINK) ||
|
||||
crtc_state->dual_channel_swap);
|
||||
break;
|
||||
case DRM_MODE_CONNECTOR_DisplayPort:
|
||||
VOP_CTRL_SET(vop, dp_dclk_pol, 0);
|
||||
|
|
|
|||
Loading…
Reference in New Issue