diff --git a/drivers/media/platform/rockchip/isp/dev.c b/drivers/media/platform/rockchip/isp/dev.c index 341dba77daf7..9c833529ea0f 100644 --- a/drivers/media/platform/rockchip/isp/dev.c +++ b/drivers/media/platform/rockchip/isp/dev.c @@ -828,6 +828,8 @@ static const struct dev_pm_ops rkisp_plat_pm_ops = { static const struct of_device_id rkisp_plat_of_match[] = { { + .compatible = "rockchip,rkisp-vir", + }, { .compatible = "rockchip,rv1126-rkisp-vir", }, {}, diff --git a/drivers/media/platform/rockchip/isp/hw.c b/drivers/media/platform/rockchip/isp/hw.c index 94ccf4d7385b..026a15db986a 100644 --- a/drivers/media/platform/rockchip/isp/hw.c +++ b/drivers/media/platform/rockchip/isp/hw.c @@ -293,6 +293,12 @@ static const char * const rk3399_isp_clks[] = { "pclk_isp_wrap" }; +static const char * const rk3568_isp_clks[] = { + "clk_isp", + "aclk_isp", + "hclk_isp", +}; + static const char * const rv1126_isp_clks[] = { "clk_isp", "aclk_isp", @@ -324,6 +330,22 @@ static const struct isp_clk_info rk3399_isp_clk_rate[] = { {300, }, {400, }, {600, } }; +static const struct isp_clk_info rk3568_isp_clk_rate[] = { + { + .clk_rate = 300, + .refer_data = 1920, //width + }, { + .clk_rate = 400, + .refer_data = 2688, + }, { + .clk_rate = 500, + .refer_data = 3072, + }, { + .clk_rate = 600, + .refer_data = 3840, + } +}; + static const struct isp_clk_info rv1126_isp_clk_rate[] = { { .clk_rate = 300, @@ -364,6 +386,12 @@ static struct isp_irqs_data rk3399_isp_irqs[] = { {"isp_irq", irq_handler} }; +static struct isp_irqs_data rk3568_isp_irqs[] = { + {"isp_irq", isp_irq_hdl}, + {"mi_irq", mi_irq_hdl}, + {"mipi_irq", mipi_irq_hdl} +}; + static struct isp_irqs_data rv1126_isp_irqs[] = { {"isp_irq", isp_irq_hdl}, {"mi_irq", mi_irq_hdl}, @@ -430,6 +458,16 @@ static const struct isp_match_data rk3399_isp_match_data = { .num_irqs = ARRAY_SIZE(rk3399_isp_irqs) }; +static const struct isp_match_data rk3568_isp_match_data = { + .clks = rk3568_isp_clks, + .num_clks = ARRAY_SIZE(rk3568_isp_clks), + .isp_ver = ISP_V21, + .clk_rate_tbl = rk3568_isp_clk_rate, + .num_clk_rate_tbl = ARRAY_SIZE(rk3568_isp_clk_rate), + .irqs = rk3568_isp_irqs, + .num_irqs = ARRAY_SIZE(rk3568_isp_irqs) +}; + static const struct of_device_id rkisp_hw_of_match[] = { { .compatible = "rockchip,rk1808-rkisp1", @@ -446,6 +484,9 @@ static const struct of_device_id rkisp_hw_of_match[] = { }, { .compatible = "rockchip,rk3399-rkisp1", .data = &rk3399_isp_match_data, + }, { + .compatible = "rockchip,rk3568-rkisp", + .data = &rk3568_isp_match_data, }, { .compatible = "rockchip,rv1126-rkisp", .data = &rv1126_isp_match_data,