clk: sunxi: Add sun6i/8i display support
Add the clock type which is used by the sun6i/8i families for video display. Signed-off-by: Jean-Francois Moine <moinejf@free.fr> Acked-by: Rob Herring <robh@kernel.org> Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
This commit is contained in:
parent
8f0767611a
commit
5ed400dd96
|
@ -81,6 +81,7 @@ Required properties:
|
|||
"allwinner,sun9i-a80-usb-mod-clk" - for usb gates + resets on A80
|
||||
"allwinner,sun9i-a80-usb-phy-clk" - for usb phy gates + resets on A80
|
||||
"allwinner,sun4i-a10-ve-clk" - for the Video Engine clock
|
||||
"allwinner,sun6i-a31-display-clk" - for the display clocks
|
||||
|
||||
Required properties for all clocks:
|
||||
- reg : shall be the control register address for the clock.
|
||||
|
|
|
@ -1127,3 +1127,41 @@ static void __init sun6i_pll6_clk_setup(struct device_node *node)
|
|||
}
|
||||
CLK_OF_DECLARE(sun6i_pll6, "allwinner,sun6i-a31-pll6-clk",
|
||||
sun6i_pll6_clk_setup);
|
||||
|
||||
/*
|
||||
* sun6i display
|
||||
*
|
||||
* rate = parent_rate / (m + 1);
|
||||
*/
|
||||
static void sun6i_display_factors(struct factors_request *req)
|
||||
{
|
||||
u8 m;
|
||||
|
||||
if (req->rate > req->parent_rate)
|
||||
req->rate = req->parent_rate;
|
||||
|
||||
m = DIV_ROUND_UP(req->parent_rate, req->rate);
|
||||
|
||||
req->rate = req->parent_rate / m;
|
||||
req->m = m - 1;
|
||||
}
|
||||
|
||||
static const struct clk_factors_config sun6i_display_config = {
|
||||
.mshift = 0,
|
||||
.mwidth = 4,
|
||||
};
|
||||
|
||||
static const struct factors_data sun6i_display_data __initconst = {
|
||||
.enable = 31,
|
||||
.mux = 24,
|
||||
.muxmask = BIT(2) | BIT(1) | BIT(0),
|
||||
.table = &sun6i_display_config,
|
||||
.getter = sun6i_display_factors,
|
||||
};
|
||||
|
||||
static void __init sun6i_display_setup(struct device_node *node)
|
||||
{
|
||||
sunxi_factors_clk_setup(node, &sun6i_display_data);
|
||||
}
|
||||
CLK_OF_DECLARE(sun6i_display, "allwinner,sun6i-a31-display-clk",
|
||||
sun6i_display_setup);
|
||||
|
|
Loading…
Reference in New Issue