diff --git a/arch/arm64/boot/dts/amlogic/g12a_pxp.dts b/arch/arm64/boot/dts/amlogic/g12a_pxp.dts index f0beb37b4738..99d12281a008 100644 --- a/arch/arm64/boot/dts/amlogic/g12a_pxp.dts +++ b/arch/arm64/boot/dts/amlogic/g12a_pxp.dts @@ -142,6 +142,7 @@ "venci_0_gate", "venci_1_gate", "vdac_clk_gate"; + clk_path = <0>; /* performance: reg_address, reg_value */ /* g12a */ diff --git a/arch/arm64/boot/dts/amlogic/g12a_s905d2_skt.dts b/arch/arm64/boot/dts/amlogic/g12a_s905d2_skt.dts index 5847c31d1c28..6f4f519f5082 100644 --- a/arch/arm64/boot/dts/amlogic/g12a_s905d2_skt.dts +++ b/arch/arm64/boot/dts/amlogic/g12a_s905d2_skt.dts @@ -154,6 +154,12 @@ "venci_0_gate", "venci_1_gate", "vdac_clk_gate"; + /* clk path */ + /* 0:vid_pll vid2_clk */ + /* 1:gp0_pll vid2_clk */ + /* 2:vid_pll vid1_clk */ + /* 3:gp0_pll vid1_clk */ + clk_path = <0>; /* performance: reg_address, reg_value */ /* g12a */ diff --git a/arch/arm64/boot/dts/amlogic/g12a_s905d2_skt_buildroot.dts b/arch/arm64/boot/dts/amlogic/g12a_s905d2_skt_buildroot.dts index 3817688e5547..2c8550e3d49b 100644 --- a/arch/arm64/boot/dts/amlogic/g12a_s905d2_skt_buildroot.dts +++ b/arch/arm64/boot/dts/amlogic/g12a_s905d2_skt_buildroot.dts @@ -155,6 +155,7 @@ "venci_0_gate", "venci_1_gate", "vdac_clk_gate"; + clk_path = <0>; /* performance: reg_address, reg_value */ /* g12a */ diff --git a/arch/arm64/boot/dts/amlogic/g12a_s905d2_u200.dts b/arch/arm64/boot/dts/amlogic/g12a_s905d2_u200.dts index 215ec971e41a..8e59d401094f 100644 --- a/arch/arm64/boot/dts/amlogic/g12a_s905d2_u200.dts +++ b/arch/arm64/boot/dts/amlogic/g12a_s905d2_u200.dts @@ -167,6 +167,12 @@ "venci_0_gate", "venci_1_gate", "vdac_clk_gate"; + /* clk path */ + /* 0:vid_pll vid2_clk */ + /* 1:gp0_pll vid2_clk */ + /* 2:vid_pll vid1_clk */ + /* 3:gp0_pll vid1_clk */ + clk_path = <0>; /* performance: reg_address, reg_value */ /* g12a */ diff --git a/arch/arm64/boot/dts/amlogic/g12a_s905d2_u200_buildroot.dts b/arch/arm64/boot/dts/amlogic/g12a_s905d2_u200_buildroot.dts index 1e26b76aa959..abadb3735b7d 100644 --- a/arch/arm64/boot/dts/amlogic/g12a_s905d2_u200_buildroot.dts +++ b/arch/arm64/boot/dts/amlogic/g12a_s905d2_u200_buildroot.dts @@ -166,6 +166,7 @@ "venci_0_gate", "venci_1_gate", "vdac_clk_gate"; + clk_path = <0>; /* performance: reg_address, reg_value */ /* g12a */ diff --git a/arch/arm64/boot/dts/amlogic/g12a_s905d2_u200_drm_buildroot.dts b/arch/arm64/boot/dts/amlogic/g12a_s905d2_u200_drm_buildroot.dts index 64dff1cb350c..c2884ea4f88a 100644 --- a/arch/arm64/boot/dts/amlogic/g12a_s905d2_u200_drm_buildroot.dts +++ b/arch/arm64/boot/dts/amlogic/g12a_s905d2_u200_drm_buildroot.dts @@ -167,6 +167,7 @@ "venci_0_gate", "venci_1_gate", "vdac_clk_gate"; + clk_path = <0>; /* performance: reg_address, reg_value */ /* g12a */ diff --git a/arch/arm64/boot/dts/amlogic/g12a_s905d2_u220.dts b/arch/arm64/boot/dts/amlogic/g12a_s905d2_u220.dts index 130fa6e862b2..1cda17178af5 100644 --- a/arch/arm64/boot/dts/amlogic/g12a_s905d2_u220.dts +++ b/arch/arm64/boot/dts/amlogic/g12a_s905d2_u220.dts @@ -154,6 +154,7 @@ "venci_0_gate", "venci_1_gate", "vdac_clk_gate"; + clk_path = <0>; /* performance: reg_address, reg_value */ /* g12a */ diff --git a/arch/arm64/boot/dts/amlogic/g12a_s905x2_u211.dts b/arch/arm64/boot/dts/amlogic/g12a_s905x2_u211.dts index 9d5103b73988..165b1b1c522e 100644 --- a/arch/arm64/boot/dts/amlogic/g12a_s905x2_u211.dts +++ b/arch/arm64/boot/dts/amlogic/g12a_s905x2_u211.dts @@ -186,6 +186,7 @@ "venci_0_gate", "venci_1_gate", "vdac_clk_gate"; + clk_path = <0>; /* performance: reg_address, reg_value */ /* g12a */ diff --git a/arch/arm64/boot/dts/amlogic/g12a_s905x2_u211_512m.dts b/arch/arm64/boot/dts/amlogic/g12a_s905x2_u211_512m.dts index 9e6631e846fe..f9ccd3af88c0 100644 --- a/arch/arm64/boot/dts/amlogic/g12a_s905x2_u211_512m.dts +++ b/arch/arm64/boot/dts/amlogic/g12a_s905x2_u211_512m.dts @@ -186,6 +186,7 @@ "venci_0_gate", "venci_1_gate", "vdac_clk_gate"; + clk_path = <0>; /* performance: reg_address, reg_value */ /* g12a */ diff --git a/arch/arm64/boot/dts/amlogic/g12a_s905x2_u211_buildroot.dts b/arch/arm64/boot/dts/amlogic/g12a_s905x2_u211_buildroot.dts index f3e5b2f0c396..b41e5433f455 100644 --- a/arch/arm64/boot/dts/amlogic/g12a_s905x2_u211_buildroot.dts +++ b/arch/arm64/boot/dts/amlogic/g12a_s905x2_u211_buildroot.dts @@ -185,6 +185,7 @@ "venci_0_gate", "venci_1_gate", "vdac_clk_gate"; + clk_path = <0>; /* performance: reg_address, reg_value */ /* g12a */ diff --git a/arch/arm64/boot/dts/amlogic/g12a_s905y2_u221.dts b/arch/arm64/boot/dts/amlogic/g12a_s905y2_u221.dts index 227a942375a4..757fec8be09a 100644 --- a/arch/arm64/boot/dts/amlogic/g12a_s905y2_u221.dts +++ b/arch/arm64/boot/dts/amlogic/g12a_s905y2_u221.dts @@ -154,6 +154,7 @@ "venci_0_gate", "venci_1_gate", "vdac_clk_gate"; + clk_path = <0>; /* performance: reg_address, reg_value */ /* g12a */ diff --git a/arch/arm64/boot/dts/amlogic/g12b_a311d_skt.dts b/arch/arm64/boot/dts/amlogic/g12b_a311d_skt.dts index ee7c8d176062..58d70349eaca 100644 --- a/arch/arm64/boot/dts/amlogic/g12b_a311d_skt.dts +++ b/arch/arm64/boot/dts/amlogic/g12b_a311d_skt.dts @@ -176,6 +176,7 @@ "venci_0_gate", "venci_1_gate", "vdac_clk_gate"; + clk_path = <0>; /* performance: reg_address, reg_value */ /* g12b */ diff --git a/arch/arm64/boot/dts/amlogic/g12b_a311d_w400.dts b/arch/arm64/boot/dts/amlogic/g12b_a311d_w400.dts index 36bf70e5ab5a..8c590fdcebe0 100644 --- a/arch/arm64/boot/dts/amlogic/g12b_a311d_w400.dts +++ b/arch/arm64/boot/dts/amlogic/g12b_a311d_w400.dts @@ -150,6 +150,12 @@ "venci_0_gate", "venci_1_gate", "vdac_clk_gate"; + /* clk path */ + /* 0:vid_pll vid2_clk */ + /* 1:gp0_pll vid2_clk */ + /* 2:vid_pll vid1_clk */ + /* 3:gp0_pll vid1_clk */ + clk_path = <0>; /* performance: reg_address, reg_value */ /* g12b */ diff --git a/arch/arm64/boot/dts/amlogic/g12b_pxp.dts b/arch/arm64/boot/dts/amlogic/g12b_pxp.dts index b511c302dc7c..f79266588ac2 100644 --- a/arch/arm64/boot/dts/amlogic/g12b_pxp.dts +++ b/arch/arm64/boot/dts/amlogic/g12b_pxp.dts @@ -142,6 +142,7 @@ "venci_0_gate", "venci_1_gate", "vdac_clk_gate"; + clk_path = <0>; /* performance: reg_address, reg_value */ /* g12b */ diff --git a/drivers/amlogic/media/vout/cvbs/cvbs_out.c b/drivers/amlogic/media/vout/cvbs/cvbs_out.c index 8633c9002366..4c735f78202c 100644 --- a/drivers/amlogic/media/vout/cvbs/cvbs_out.c +++ b/drivers/amlogic/media/vout/cvbs/cvbs_out.c @@ -1326,6 +1326,21 @@ static void cvbsout_get_config(struct device *dev) } } + /*clk path*/ + /*0:vid_pll vid2_clk*/ + /*1:gp0_pll vid2_clk*/ + /*2:vid_pll vid1_clk*/ + /*3:gp0_pll vid1_clk*/ + ret = of_property_read_u32(dev->of_node, "clk_path", &val); + if (ret) + cvbs_log_info("clk_path config null\n"); + else if (val > 3) + cvbs_log_err("error: invalid clk_path\n"); + else { + cvbs_clk_path = val; + cvbs_log_info("clk path:%d\n", cvbs_clk_path); + } + /* vdac config */ ret = of_property_read_u32(dev->of_node, "vdac_config", &val); if (ret)