Lines Matching +full:nand +full:- +full:sel
1 // SPDX-License-Identifier: GPL-2.0+
3 * Amlogic Meson-G12A Clock Controller Driver
13 #include <linux/clk-provider.h>
20 #include "clk-mpll.h"
21 #include "clk-pll.h"
22 #include "clk-regmap.h"
23 #include "clk-cpu-dyndiv.h"
24 #include "vid-pll-div.h"
26 #include "meson-clkc-utils.h"
28 #include <dt-bindings/clock/g12a-clkc.h>
864 * b) CCF has a clock hand-off mechanism to make the sure the
900 * b) CCF has a clock hand-off mechanism to make the sure the
1139 /* This sub-tree is used a parking clock */
1176 /* This sub-tree is used a parking clock */
1323 /* This sub-tree is used a parking clock */
1360 /* This sub-tree is used a parking clock */
1660 * \- cpu_clk_dyn in g12a_cpu_clk_dyn_notifier_cb()
1661 * \- cpu_clk_dyn0 in g12a_cpu_clk_dyn_notifier_cb()
1662 * \- cpu_clk_dyn0_div in g12a_cpu_clk_dyn_notifier_cb()
1663 * \- cpu_clk_dyn0_sel in g12a_cpu_clk_dyn_notifier_cb()
1664 * \- fclk_div3 or fclk_div2 in g12a_cpu_clk_dyn_notifier_cb()
1666 * \- cpu_clk_dyn0_sel in g12a_cpu_clk_dyn_notifier_cb()
1667 * \- fclk_div3 or fclk_div2 in g12a_cpu_clk_dyn_notifier_cb()
1671 clk_hw_set_parent(nb_data->cpu_clk_premux1, in g12a_cpu_clk_dyn_notifier_cb()
1672 nb_data->xtal); in g12a_cpu_clk_dyn_notifier_cb()
1675 clk_hw_set_parent(nb_data->cpu_clk_postmux1, in g12a_cpu_clk_dyn_notifier_cb()
1676 nb_data->cpu_clk_premux1); in g12a_cpu_clk_dyn_notifier_cb()
1679 clk_hw_set_parent(nb_data->cpu_clk_dyn, in g12a_cpu_clk_dyn_notifier_cb()
1680 nb_data->cpu_clk_postmux1); in g12a_cpu_clk_dyn_notifier_cb()
1685 * \- cpu_clk_dyn in g12a_cpu_clk_dyn_notifier_cb()
1686 * \- cpu_clk_dyn1 in g12a_cpu_clk_dyn_notifier_cb()
1687 * \- cpu_clk_dyn1_sel in g12a_cpu_clk_dyn_notifier_cb()
1688 * \- xtal in g12a_cpu_clk_dyn_notifier_cb()
1703 clk_hw_set_parent(nb_data->cpu_clk_dyn, in g12a_cpu_clk_dyn_notifier_cb()
1704 nb_data->cpu_clk_postmux0); in g12a_cpu_clk_dyn_notifier_cb()
1709 * \- cpu_clk_dyn in g12a_cpu_clk_dyn_notifier_cb()
1710 * \- cpu_clk_dyn0 in g12a_cpu_clk_dyn_notifier_cb()
1711 * \- cpu_clk_dyn0_div in g12a_cpu_clk_dyn_notifier_cb()
1712 * \- cpu_clk_dyn0_sel in g12a_cpu_clk_dyn_notifier_cb()
1713 * \- fclk_div3 or fclk_div2 in g12a_cpu_clk_dyn_notifier_cb()
1715 * \- cpu_clk_dyn0_sel in g12a_cpu_clk_dyn_notifier_cb()
1716 * \- fclk_div3 or fclk_div2 in g12a_cpu_clk_dyn_notifier_cb()
1763 * \- sys_pll in g12a_sys_pll_notifier_cb()
1764 * \- sys_pll_dco in g12a_sys_pll_notifier_cb()
1768 clk_hw_set_parent(nb_data->cpu_clk, in g12a_sys_pll_notifier_cb()
1769 nb_data->cpu_clk_dyn); in g12a_sys_pll_notifier_cb()
1774 * \- cpu_clk_dyn in g12a_sys_pll_notifier_cb()
1775 * \- cpu_clk_dynX in g12a_sys_pll_notifier_cb()
1776 * \- cpu_clk_dynX_sel in g12a_sys_pll_notifier_cb()
1777 * \- cpu_clk_dynX_div in g12a_sys_pll_notifier_cb()
1778 * \- xtal/fclk_div2/fclk_div3 in g12a_sys_pll_notifier_cb()
1779 * \- xtal/fclk_div2/fclk_div3 in g12a_sys_pll_notifier_cb()
1793 clk_hw_set_parent(nb_data->cpu_clk, in g12a_sys_pll_notifier_cb()
1794 nb_data->sys_pll); in g12a_sys_pll_notifier_cb()
1800 * \- sys_pll in g12a_sys_pll_notifier_cb()
1801 * \- sys_pll_dco in g12a_sys_pll_notifier_cb()
1853 .index = -1,
1920 .index = -1,
1957 .index = -1,
1994 .index = -1,
2031 .index = -1,
2579 * the necessary rates for MMC and NAND operation can be achieved using
2682 /* EMMC/NAND clock */
2740 .sel = {
4002 * muxed by a glitch-free switch. The CCF can manage this glitch-free
4003 * mux because it does top-to-bottom updates the each clock tree and
4400 * - remove the flag if not necessary
4401 * - replace the flag with something more adequate, such as CLK_IS_CRITICAL,
4403 * - add a comment explaining why the use of CLK_IGNORE_UNUSED is desirable
5267 struct device *dev = &pdev->dev; in g12b_dvfs_setup()
5345 struct device *dev = &pdev->dev; in g12a_dvfs_setup()
5385 clkc_data = of_device_get_match_data(&pdev->dev); in g12a_clkc_probe()
5387 return -EINVAL; in g12a_clkc_probe()
5396 if (g12a_data->dvfs_setup) in g12a_clkc_probe()
5397 return g12a_data->dvfs_setup(pdev); in g12a_clkc_probe()
5436 .compatible = "amlogic,g12a-clkc",
5440 .compatible = "amlogic,g12b-clkc",
5444 .compatible = "amlogic,sm1-clkc",
5454 .name = "g12a-clkc",