Skip to content

Commit

Permalink
clk: rk3328: Add get hdmiphy clock
Browse files Browse the repository at this point in the history
Add support to get the hdmiphy clock for RK3328 PCLK_HDMIPHY.

Signed-off-by: Jagan Teki <jagan@edgeble.ai>
  • Loading branch information
openedev authored and vdsao committed Apr 21, 2024
1 parent 92edae7 commit f7f4789
Showing 1 changed file with 17 additions and 0 deletions.
17 changes: 17 additions & 0 deletions drivers/clk/rockchip/clk_rk3328.c
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,10 @@ enum {
CLK_I2C3_DIV_CON_SHIFT = 8,
CLK_I2C2_PLL_SEL_SHIFT = 7,
CLK_I2C2_DIV_CON_SHIFT = 0,

/* CLKSEL_CON40 */
CLK_HDMIPHY_DIV_CON_SHIFT = 3,
CLK_HDMIPHY_DIV_CON_MASK = 0x7 << CLK_HDMIPHY_DIV_CON_SHIFT,
};

#define VCO_MAX_KHZ (3200 * (MHz / KHz))
Expand Down Expand Up @@ -660,6 +664,16 @@ static ulong rk3328_vop_set_clk(struct rk3328_clk_priv *priv,
}
#endif

static ulong rk3328_hdmiphy_get_clk(struct rk3328_cru *cru)
{
u32 div, con;

con = readl(&cru->clksel_con[40]);
div = (con & CLK_HDMIPHY_DIV_CON_MASK) >> CLK_HDMIPHY_DIV_CON_SHIFT;

return DIV_TO_RATE(GPLL_HZ, div);
}

static ulong rk3328_clk_get_rate(struct clk *clk)
{
struct rk3328_clk_priv *priv = dev_get_priv(clk->dev);
Expand Down Expand Up @@ -689,6 +703,9 @@ static ulong rk3328_clk_get_rate(struct clk *clk)
case SCLK_SPI:
rate = rk3328_spi_get_clk(priv->cru);
break;
case PCLK_HDMIPHY:
rate = rk3328_hdmiphy_get_clk(priv->cru);
break;
default:
return -ENOENT;
}
Expand Down

0 comments on commit f7f4789

Please sign in to comment.