diff --git a/Documentation/devicetree/bindings/display/rockchip/rockchip-vop.txt b/Documentation/devicetree/bindings/display/rockchip/rockchip-vop.txt index f38088be1e9e..fbe2e9545240 100644 --- a/Documentation/devicetree/bindings/display/rockchip/rockchip-vop.txt +++ b/Documentation/devicetree/bindings/display/rockchip/rockchip-vop.txt @@ -9,9 +9,10 @@ Required properties: "rockchip,rk3036-vop"; "rockchip,rk3066-vop"; "rockchip,rk3126-vop"; - "rockchip,px30-vop-lit"; "rockchip,px30-vop-big"; - "rockchip,rk3288-vop"; + "rockchip,px30-vop-lit"; + "rockchip,rk3288-vop-lit"; + "rockchip,rk3288-vop-big"; "rockchip,rk3368-vop"; "rockchip,rk3366-vop"; "rockchip,rk3366-vop-lit"; diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi index b37d1954d27c..0d6e17c9d98f 100644 --- a/arch/arm/boot/dts/rk3288.dtsi +++ b/arch/arm/boot/dts/rk3288.dtsi @@ -1255,7 +1255,7 @@ }; vopb: vop@ff930000 { - compatible = "rockchip,rk3288-vop"; + compatible = "rockchip,rk3288-vop-big"; reg = <0x0 0xff930000 0x0 0x19c>, <0x0 0xff931000 0x0 0x1000>; reg-names = "regs", "gamma_lut"; interrupts = ; @@ -1311,7 +1311,7 @@ }; vopl: vop@ff940000 { - compatible = "rockchip,rk3288-vop"; + compatible = "rockchip,rk3288-vop-lit"; reg = <0x0 0xff940000 0x0 0x19c>, <0x0 0xff941000 0x0 0x1000>; reg-names = "regs", "gamma_lut"; interrupts = ; diff --git a/drivers/gpu/drm/rockchip/rockchip_vop_reg.c b/drivers/gpu/drm/rockchip/rockchip_vop_reg.c index 194e74fade12..dd9d53336112 100644 --- a/drivers/gpu/drm/rockchip/rockchip_vop_reg.c +++ b/drivers/gpu/drm/rockchip/rockchip_vop_reg.c @@ -317,15 +317,10 @@ static const struct vop_intr rk3288_vop_intr = { .clear = VOP_REG(RK3288_INTR_CTRL0, 0xf, 8), }; -static const struct vop_data rk3288_vop = { +static const struct vop_data rk3288_vop_big = { .version = VOP_VERSION(3, 0), .feature = VOP_FEATURE_OUTPUT_10BIT, .max_input = {4096, 8192}, - /* - * TODO: rk3288 have two vop, big one support 3840x2160, - * little one only support 2560x1600. - * Now force use 3840x2160. - */ .max_output = {3840, 2160}, .intr = &rk3288_vop_intr, .ctrl = &rk3288_ctrl_data, @@ -333,6 +328,17 @@ static const struct vop_data rk3288_vop = { .win_size = ARRAY_SIZE(rk3288_vop_win_data), }; +static const struct vop_data rk3288_vop_lit = { + .version = VOP_VERSION(3, 0), + .feature = VOP_FEATURE_OUTPUT_10BIT, + .max_input = {4096, 8192}, + .max_output = {2560, 1600}, + .intr = &rk3288_vop_intr, + .ctrl = &rk3288_ctrl_data, + .win = rk3288_vop_win_data, + .win_size = ARRAY_SIZE(rk3288_vop_win_data), +}; + static const int rk3368_vop_intrs[] = { FS_INTR, FS_NEW_INTR, @@ -1540,8 +1546,10 @@ static const struct of_device_id vop_driver_dt_match[] = { .data = &px30_vop_lit }, { .compatible = "rockchip,px30-vop-big", .data = &px30_vop_big }, - { .compatible = "rockchip,rk3288-vop", - .data = &rk3288_vop }, + { .compatible = "rockchip,rk3288-vop-big", + .data = &rk3288_vop_big }, + { .compatible = "rockchip,rk3288-vop-lit", + .data = &rk3288_vop_lit }, { .compatible = "rockchip,rk3368-vop", .data = &rk3368_vop }, { .compatible = "rockchip,rk3366-vop",