• Sascha Hauer's avatar
    clk: rockchip: Add CLK_SET_RATE_PARENT to the HDMI reference clock on rk3568 · 6e69052f
    Sascha Hauer authored
    On the rk3568 we have this (simplified) situation:
    
     .--------.     .-----.    .---------.
    -| hpll   |--.--| /n  |----|dclk_vop0|-
     `--------´  |  `-----´    `---------´
                 |  .-----.    .---------.
                 `--| /m  |----|dclk_vop1|-
                 |  `-----´    `---------´
                 |             .---------.
                 `-------------|hdmi_ref |-
                               `---------´
    
    For the HDMI to work the HDMI reference clock needs to be the same as the
    pixel clock which means the dividers have be set to one. The last patch removed
    the CLK_SET_RATE_PARENT flag from the pixel clocks which means the hpll is not
    changed on pixel clock changes. In order to allow the HDMI controller to
    set a suitable PLL rate we now add the CLK_SET_RATE_PARENT flag to the
    HDMI reference clock. With this the flow becomes:
    
    1) HDMI controller driver sets the rate to its pixel clock which means
       hpll is set to the pixel clock
    2) VOP2 driver sets dclk_vop[012] to the pixel clock. As this can't change
       the hpll clock anymore this means only the divider is adjusted to the
       desired value of dividing by one.
    Signed-off-by: default avatarSascha Hauer <s.hauer@pengutronix.de>
    Link: https://lore.kernel.org/r/20220126145549.617165-26-s.hauer@pengutronix.deSigned-off-by: default avatarHeiko Stuebner <heiko@sntech.de>
    6e69052f
clk-rk3568.c 76.4 KB