]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/commitdiff
clk: meson: eeclk: add init regs
authorJerome Brunet <jbrunet@baylibre.com>
Mon, 13 May 2019 12:31:14 +0000 (14:31 +0200)
committerJerome Brunet <jbrunet@baylibre.com>
Mon, 20 May 2019 10:20:16 +0000 (12:20 +0200)
Like the PLL and MPLL, the controller may require some magic setting to
be applied on startup.

This is needed when the initial setting is not applied by the boot ROM.
The controller need to do it when the setting applies to several clock,
like all the MPLLs in the case of g12a.

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
drivers/clk/meson/meson-eeclk.c
drivers/clk/meson/meson-eeclk.h

index 37a34c9c3885eaa03edb06d1dae1838c574fc20f..6ba2094be257772d3328ab0ffdfd4dfcbb2a0ea2 100644 (file)
@@ -34,6 +34,9 @@ int meson_eeclkc_probe(struct platform_device *pdev)
                return PTR_ERR(map);
        }
 
+       if (data->init_count)
+               regmap_multi_reg_write(map, data->init_regs, data->init_count);
+
        input = meson_clk_hw_register_input(dev, "xtal", IN_PREFIX "xtal", 0);
        if (IS_ERR(input)) {
                ret = PTR_ERR(input);
index 1b809b1419fe0a34f13f80dc67122a947d3a5d33..9ab5d6fa7ccb26adf3084bad886e9e7f4670f83b 100644 (file)
@@ -17,6 +17,8 @@ struct platform_device;
 struct meson_eeclkc_data {
        struct clk_regmap *const        *regmap_clks;
        unsigned int                    regmap_clk_num;
+       const struct reg_sequence       *init_regs;
+       unsigned int                    init_count;
        struct clk_hw_onecell_data      *hw_onecell_data;
 };