Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/arm/rockchip rk3399_cru: Reparent dclk_vop[01] to g...



details:   https://anonhg.NetBSD.org/src/rev/e31617ea1a84
branches:  trunk
changeset: 847333:e31617ea1a84
user:      jakllsch <jakllsch%NetBSD.org@localhost>
date:      Wed Dec 18 18:40:19 2019 +0000

description:
rk3399_cru: Reparent dclk_vop[01] to gpll via dclk_vop[01]_frac.

The previous source of dclk_vop[01] was vpll via dclk_vop[01]_div.
vpll is apparently used directly as a pixel clock source for the
HDMI PHY, and we don't want the other VOP's dclk changing out from
under it because we can't handle finding a replacement clock source
with the right rate yet.

gpll happens to run at 594MHz, which works well as a basis for pixel
clocks.

Linux suggests that the source clock of the fractional divider needs
to be more than twenty times greater than the resulting clock (or some
intermediate clock?) for output stability.  This may not be the case
with 594MHz and the common pixel clocks I see used by displays in my
area of the wild, but it works for now.

diffstat:

 sys/arch/arm/rockchip/rk3399_cru.c |  8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diffs (29 lines):

diff -r 2ccb381032b0 -r e31617ea1a84 sys/arch/arm/rockchip/rk3399_cru.c
--- a/sys/arch/arm/rockchip/rk3399_cru.c        Wed Dec 18 15:11:57 2019 +0000
+++ b/sys/arch/arm/rockchip/rk3399_cru.c        Wed Dec 18 18:40:19 2019 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: rk3399_cru.c,v 1.17 2019/12/17 17:51:12 jakllsch Exp $ */
+/* $NetBSD: rk3399_cru.c,v 1.18 2019/12/18 18:40:19 jakllsch Exp $ */
 
 /*-
  * Copyright (c) 2018 Jared McNeill <jmcneill%invisible.ca@localhost>
@@ -28,7 +28,7 @@
 
 #include <sys/cdefs.h>
 
-__KERNEL_RCSID(1, "$NetBSD: rk3399_cru.c,v 1.17 2019/12/17 17:51:12 jakllsch Exp $");
+__KERNEL_RCSID(1, "$NetBSD: rk3399_cru.c,v 1.18 2019/12/18 18:40:19 jakllsch Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -1030,6 +1030,10 @@
        { .clk = "clk_i2s0_mux",        .parent = "clk_i2s0_frac" },
        { .clk = "clk_i2s1_mux",        .parent = "clk_i2s1_frac" },
        { .clk = "clk_i2s2_mux",        .parent = "clk_i2s2_frac" },
+       { .clk = "dclk_vop0_div",       .parent = "gpll" },
+       { .clk = "dclk_vop1_div",       .parent = "gpll" },
+       { .clk = "dclk_vop0",           .parent = "dclk_vop0_frac" },
+       { .clk = "dclk_vop1",           .parent = "dclk_vop1_frac" },
 };
 
 static void



Home | Main Index | Thread Index | Old Index