<&cru SCLK_VDU_CA>, <&cru SCLK_VDU_CORE>;
clock-names = "aclk_vcodec", "hclk_vcodec",
"clk_cabac", "clk_core";
- resets = <&cru SRST_H_VDU>, <&cru SRST_A_VDU>;
- reset-names = "video_h", "video_a";
+ resets = <&cru SRST_H_VDU>, <&cru SRST_A_VDU>,
+ <&cru SRST_VDU_CORE>, <&cru SRST_VDU_CA>,
+ <&cru SRST_A_VDU_NOC>, <&cru SRST_H_VDU_NOC>;
+ reset-names = "video_h", "video_a", "video_core", "video_cabac",
+ "niu_a", "niu_h";
power-domains = <&power RK3399_PD_VDU>;
dev_mode = <2>;
name = "rkvdec";
struct reset_control *rst_a;
struct reset_control *rst_h;
struct reset_control *rst_v;
+ struct reset_control *rst_core;
+ struct reset_control *rst_cabac;
struct reset_control *rst_niu_a;
struct reset_control *rst_niu_h;
#endif
try_reset_assert(pservice->rst_v);
try_reset_assert(pservice->rst_a);
try_reset_assert(pservice->rst_h);
+ try_reset_assert(pservice->rst_core);
+ try_reset_assert(pservice->rst_cabac);
udelay(5);
- try_reset_deassert(pservice->rst_h);
- try_reset_deassert(pservice->rst_a);
- try_reset_deassert(pservice->rst_v);
try_reset_deassert(pservice->rst_niu_h);
try_reset_deassert(pservice->rst_niu_a);
+ try_reset_deassert(pservice->rst_v);
+ try_reset_deassert(pservice->rst_h);
+ try_reset_deassert(pservice->rst_a);
+ try_reset_deassert(pservice->rst_core);
+ try_reset_deassert(pservice->rst_cabac);
rockchip_pmu_idle_request(pservice->dev, false);
clk_set_rate(pservice->aclk_vcodec, rate);
pservice->rst_v = devm_reset_control_get(pservice->dev, "video");
pservice->rst_niu_a = devm_reset_control_get(pservice->dev, "niu_a");
pservice->rst_niu_h = devm_reset_control_get(pservice->dev, "niu_h");
+ pservice->rst_core = devm_reset_control_get(pservice->dev,
+ "video_core");
+ pservice->rst_cabac = devm_reset_control_get(pservice->dev,
+ "video_cabac");
if (IS_ERR_OR_NULL(pservice->rst_a)) {
dev_dbg(pservice->dev, "No aclk reset resource define\n");
}
if (IS_ERR_OR_NULL(pservice->rst_v)) {
- dev_dbg(pservice->dev, "No core reset resource define\n");
+ dev_dbg(pservice->dev, "No core rst_v reset resource define\n");
pservice->rst_v = NULL;
}
dev_dbg(pservice->dev, "No NIU hclk reset resource define\n");
pservice->rst_niu_h = NULL;
}
+
+ if (IS_ERR_OR_NULL(pservice->rst_core)) {
+ dev_dbg(pservice->dev, "No core reset resource define\n");
+ pservice->rst_core = NULL;
+ }
+
+ if (IS_ERR_OR_NULL(pservice->rst_cabac)) {
+ dev_dbg(pservice->dev, "No cabac reset resource define\n");
+ pservice->rst_cabac = NULL;
+ }
#endif
of_property_read_string(np, "name", (const char **)&pservice->name);