drm/rockchip: rk3288 vop: identify vop lit and vop big

most of rk3288 vop lit is same with vop big, but some feature is
different, just like max output resolution.

vop big max output: 3840*2160
vop lit max ougput: 2560*1600

Change-Id: Ie926ed29c9d23159ccf3dd5c3e885e48a21731cb
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
This commit is contained in:
Sandy Huang
2018-03-01 10:23:30 +08:00
parent c8b307dd01
commit 23d7592936
3 changed files with 21 additions and 12 deletions

View File

@@ -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";

View File

@@ -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 = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
@@ -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 = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;

View File

@@ -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",