Loading drivers/clk/at91/Makefile +1 −1 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ # Makefile for at91 specific clk # obj-y += pmc.o sckc.o obj-y += pmc.o sckc.o dt-compat.o obj-y += clk-slow.o clk-main.o clk-pll.o clk-plldiv.o clk-master.o obj-y += clk-system.o clk-peripheral.o clk-programmable.o Loading drivers/clk/at91/clk-audio-pll.c +0 −70 Original line number Diff line number Diff line Loading @@ -476,26 +476,6 @@ at91_clk_register_audio_pll_frac(struct regmap *regmap, const char *name, return &frac_ck->hw; } static void __init of_sama5d2_clk_audio_pll_frac_setup(struct device_node *np) { struct clk_hw *hw; const char *name = np->name; const char *parent_name; struct regmap *regmap; regmap = syscon_node_to_regmap(of_get_parent(np)); if (IS_ERR(regmap)) return; parent_name = of_clk_get_parent_name(np, 0); hw = at91_clk_register_audio_pll_frac(regmap, name, parent_name); if (IS_ERR(hw)) return; of_clk_add_hw_provider(np, of_clk_hw_simple_get, hw); } struct clk_hw * __init at91_clk_register_audio_pll_pad(struct regmap *regmap, const char *name, const char *parent_name) Loading Loading @@ -527,26 +507,6 @@ at91_clk_register_audio_pll_pad(struct regmap *regmap, const char *name, return &apad_ck->hw; } static void __init of_sama5d2_clk_audio_pll_pad_setup(struct device_node *np) { struct clk_hw *hw; const char *name = np->name; const char *parent_name; struct regmap *regmap; regmap = syscon_node_to_regmap(of_get_parent(np)); if (IS_ERR(regmap)) return; parent_name = of_clk_get_parent_name(np, 0); hw = at91_clk_register_audio_pll_pad(regmap, name, parent_name); if (IS_ERR(hw)) return; of_clk_add_hw_provider(np, of_clk_hw_simple_get, hw); } struct clk_hw * __init at91_clk_register_audio_pll_pmc(struct regmap *regmap, const char *name, const char *parent_name) Loading Loading @@ -577,33 +537,3 @@ at91_clk_register_audio_pll_pmc(struct regmap *regmap, const char *name, return &apmc_ck->hw; } static void __init of_sama5d2_clk_audio_pll_pmc_setup(struct device_node *np) { struct clk_hw *hw; const char *name = np->name; const char *parent_name; struct regmap *regmap; regmap = syscon_node_to_regmap(of_get_parent(np)); if (IS_ERR(regmap)) return; parent_name = of_clk_get_parent_name(np, 0); hw = at91_clk_register_audio_pll_pmc(regmap, name, parent_name); if (IS_ERR(hw)) return; of_clk_add_hw_provider(np, of_clk_hw_simple_get, hw); } CLK_OF_DECLARE(of_sama5d2_clk_audio_pll_frac_setup, "atmel,sama5d2-clk-audio-pll-frac", of_sama5d2_clk_audio_pll_frac_setup); CLK_OF_DECLARE(of_sama5d2_clk_audio_pll_pad_setup, "atmel,sama5d2-clk-audio-pll-pad", of_sama5d2_clk_audio_pll_pad_setup); CLK_OF_DECLARE(of_sama5d2_clk_audio_pll_pmc_setup, "atmel,sama5d2-clk-audio-pll-pmc", of_sama5d2_clk_audio_pll_pmc_setup); drivers/clk/at91/clk-generated.c +0 −65 Original line number Diff line number Diff line Loading @@ -20,15 +20,8 @@ #include "pmc.h" #define PERIPHERAL_MAX 64 #define PERIPHERAL_ID_MIN 2 #define GENERATED_SOURCE_MAX 6 #define GENERATED_MAX_DIV 255 #define GCK_ID_I2S0 54 #define GCK_ID_I2S1 55 #define GCK_ID_CLASSD 59 #define GCK_INDEX_DT_AUDIO_PLL 5 struct clk_generated { Loading Loading @@ -318,61 +311,3 @@ at91_clk_register_generated(struct regmap *regmap, spinlock_t *lock, return hw; } static void __init of_sama5d2_clk_generated_setup(struct device_node *np) { int num; u32 id; const char *name; struct clk_hw *hw; unsigned int num_parents; const char *parent_names[GENERATED_SOURCE_MAX]; struct device_node *gcknp; struct clk_range range = CLK_RANGE(0, 0); struct regmap *regmap; num_parents = of_clk_get_parent_count(np); if (num_parents == 0 || num_parents > GENERATED_SOURCE_MAX) return; of_clk_parent_fill(np, parent_names, num_parents); num = of_get_child_count(np); if (!num || num > PERIPHERAL_MAX) return; regmap = syscon_node_to_regmap(of_get_parent(np)); if (IS_ERR(regmap)) return; for_each_child_of_node(np, gcknp) { bool pll_audio = false; if (of_property_read_u32(gcknp, "reg", &id)) continue; if (id < PERIPHERAL_ID_MIN || id >= PERIPHERAL_MAX) continue; if (of_property_read_string(np, "clock-output-names", &name)) name = gcknp->name; of_at91_get_clk_range(gcknp, "atmel,clk-output-range", &range); if (of_device_is_compatible(np, "atmel,sama5d2-clk-generated") && (id == GCK_ID_I2S0 || id == GCK_ID_I2S1 || id == GCK_ID_CLASSD)) pll_audio = true; hw = at91_clk_register_generated(regmap, &pmc_pcr_lock, name, parent_names, num_parents, id, pll_audio, &range); if (IS_ERR(hw)) continue; of_clk_add_hw_provider(gcknp, of_clk_hw_simple_get, hw); } } CLK_OF_DECLARE(of_sama5d2_clk_generated_setup, "atmel,sama5d2-clk-generated", of_sama5d2_clk_generated_setup); drivers/clk/at91/clk-h32mx.c +0 −22 Original line number Diff line number Diff line Loading @@ -115,25 +115,3 @@ at91_clk_register_h32mx(struct regmap *regmap, const char *name, return &h32mxclk->hw; } static void __init of_sama5d4_clk_h32mx_setup(struct device_node *np) { struct clk_hw *hw; const char *name = np->name; const char *parent_name; struct regmap *regmap; regmap = syscon_node_to_regmap(of_get_parent(np)); if (IS_ERR(regmap)) return; parent_name = of_clk_get_parent_name(np, 0); hw = at91_clk_register_h32mx(regmap, name, parent_name); if (IS_ERR(hw)) return; of_clk_add_hw_provider(np, of_clk_hw_simple_get, hw); } CLK_OF_DECLARE(of_sama5d4_clk_h32mx_setup, "atmel,sama5d4-clk-h32mx", of_sama5d4_clk_h32mx_setup); drivers/clk/at91/clk-i2s-mux.c +0 −38 Original line number Diff line number Diff line Loading @@ -16,8 +16,6 @@ #include "pmc.h" #define I2S_BUS_NR 2 struct clk_i2s_mux { struct clk_hw hw; struct regmap *regmap; Loading Loading @@ -80,39 +78,3 @@ at91_clk_i2s_mux_register(struct regmap *regmap, const char *name, return &i2s_ck->hw; } static void __init of_sama5d2_clk_i2s_mux_setup(struct device_node *np) { struct regmap *regmap_sfr; u8 bus_id; const char *parent_names[2]; struct device_node *i2s_mux_np; struct clk_hw *hw; int ret; regmap_sfr = syscon_regmap_lookup_by_compatible("atmel,sama5d2-sfr"); if (IS_ERR(regmap_sfr)) return; for_each_child_of_node(np, i2s_mux_np) { if (of_property_read_u8(i2s_mux_np, "reg", &bus_id)) continue; if (bus_id > I2S_BUS_NR) continue; ret = of_clk_parent_fill(i2s_mux_np, parent_names, 2); if (ret != 2) continue; hw = at91_clk_i2s_mux_register(regmap_sfr, i2s_mux_np->name, parent_names, 2, bus_id); if (IS_ERR(hw)) continue; of_clk_add_hw_provider(i2s_mux_np, of_clk_hw_simple_get, hw); } } CLK_OF_DECLARE(sama5d2_clk_i2s_mux, "atmel,sama5d2-clk-i2s-mux", of_sama5d2_clk_i2s_mux_setup); Loading
drivers/clk/at91/Makefile +1 −1 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ # Makefile for at91 specific clk # obj-y += pmc.o sckc.o obj-y += pmc.o sckc.o dt-compat.o obj-y += clk-slow.o clk-main.o clk-pll.o clk-plldiv.o clk-master.o obj-y += clk-system.o clk-peripheral.o clk-programmable.o Loading
drivers/clk/at91/clk-audio-pll.c +0 −70 Original line number Diff line number Diff line Loading @@ -476,26 +476,6 @@ at91_clk_register_audio_pll_frac(struct regmap *regmap, const char *name, return &frac_ck->hw; } static void __init of_sama5d2_clk_audio_pll_frac_setup(struct device_node *np) { struct clk_hw *hw; const char *name = np->name; const char *parent_name; struct regmap *regmap; regmap = syscon_node_to_regmap(of_get_parent(np)); if (IS_ERR(regmap)) return; parent_name = of_clk_get_parent_name(np, 0); hw = at91_clk_register_audio_pll_frac(regmap, name, parent_name); if (IS_ERR(hw)) return; of_clk_add_hw_provider(np, of_clk_hw_simple_get, hw); } struct clk_hw * __init at91_clk_register_audio_pll_pad(struct regmap *regmap, const char *name, const char *parent_name) Loading Loading @@ -527,26 +507,6 @@ at91_clk_register_audio_pll_pad(struct regmap *regmap, const char *name, return &apad_ck->hw; } static void __init of_sama5d2_clk_audio_pll_pad_setup(struct device_node *np) { struct clk_hw *hw; const char *name = np->name; const char *parent_name; struct regmap *regmap; regmap = syscon_node_to_regmap(of_get_parent(np)); if (IS_ERR(regmap)) return; parent_name = of_clk_get_parent_name(np, 0); hw = at91_clk_register_audio_pll_pad(regmap, name, parent_name); if (IS_ERR(hw)) return; of_clk_add_hw_provider(np, of_clk_hw_simple_get, hw); } struct clk_hw * __init at91_clk_register_audio_pll_pmc(struct regmap *regmap, const char *name, const char *parent_name) Loading Loading @@ -577,33 +537,3 @@ at91_clk_register_audio_pll_pmc(struct regmap *regmap, const char *name, return &apmc_ck->hw; } static void __init of_sama5d2_clk_audio_pll_pmc_setup(struct device_node *np) { struct clk_hw *hw; const char *name = np->name; const char *parent_name; struct regmap *regmap; regmap = syscon_node_to_regmap(of_get_parent(np)); if (IS_ERR(regmap)) return; parent_name = of_clk_get_parent_name(np, 0); hw = at91_clk_register_audio_pll_pmc(regmap, name, parent_name); if (IS_ERR(hw)) return; of_clk_add_hw_provider(np, of_clk_hw_simple_get, hw); } CLK_OF_DECLARE(of_sama5d2_clk_audio_pll_frac_setup, "atmel,sama5d2-clk-audio-pll-frac", of_sama5d2_clk_audio_pll_frac_setup); CLK_OF_DECLARE(of_sama5d2_clk_audio_pll_pad_setup, "atmel,sama5d2-clk-audio-pll-pad", of_sama5d2_clk_audio_pll_pad_setup); CLK_OF_DECLARE(of_sama5d2_clk_audio_pll_pmc_setup, "atmel,sama5d2-clk-audio-pll-pmc", of_sama5d2_clk_audio_pll_pmc_setup);
drivers/clk/at91/clk-generated.c +0 −65 Original line number Diff line number Diff line Loading @@ -20,15 +20,8 @@ #include "pmc.h" #define PERIPHERAL_MAX 64 #define PERIPHERAL_ID_MIN 2 #define GENERATED_SOURCE_MAX 6 #define GENERATED_MAX_DIV 255 #define GCK_ID_I2S0 54 #define GCK_ID_I2S1 55 #define GCK_ID_CLASSD 59 #define GCK_INDEX_DT_AUDIO_PLL 5 struct clk_generated { Loading Loading @@ -318,61 +311,3 @@ at91_clk_register_generated(struct regmap *regmap, spinlock_t *lock, return hw; } static void __init of_sama5d2_clk_generated_setup(struct device_node *np) { int num; u32 id; const char *name; struct clk_hw *hw; unsigned int num_parents; const char *parent_names[GENERATED_SOURCE_MAX]; struct device_node *gcknp; struct clk_range range = CLK_RANGE(0, 0); struct regmap *regmap; num_parents = of_clk_get_parent_count(np); if (num_parents == 0 || num_parents > GENERATED_SOURCE_MAX) return; of_clk_parent_fill(np, parent_names, num_parents); num = of_get_child_count(np); if (!num || num > PERIPHERAL_MAX) return; regmap = syscon_node_to_regmap(of_get_parent(np)); if (IS_ERR(regmap)) return; for_each_child_of_node(np, gcknp) { bool pll_audio = false; if (of_property_read_u32(gcknp, "reg", &id)) continue; if (id < PERIPHERAL_ID_MIN || id >= PERIPHERAL_MAX) continue; if (of_property_read_string(np, "clock-output-names", &name)) name = gcknp->name; of_at91_get_clk_range(gcknp, "atmel,clk-output-range", &range); if (of_device_is_compatible(np, "atmel,sama5d2-clk-generated") && (id == GCK_ID_I2S0 || id == GCK_ID_I2S1 || id == GCK_ID_CLASSD)) pll_audio = true; hw = at91_clk_register_generated(regmap, &pmc_pcr_lock, name, parent_names, num_parents, id, pll_audio, &range); if (IS_ERR(hw)) continue; of_clk_add_hw_provider(gcknp, of_clk_hw_simple_get, hw); } } CLK_OF_DECLARE(of_sama5d2_clk_generated_setup, "atmel,sama5d2-clk-generated", of_sama5d2_clk_generated_setup);
drivers/clk/at91/clk-h32mx.c +0 −22 Original line number Diff line number Diff line Loading @@ -115,25 +115,3 @@ at91_clk_register_h32mx(struct regmap *regmap, const char *name, return &h32mxclk->hw; } static void __init of_sama5d4_clk_h32mx_setup(struct device_node *np) { struct clk_hw *hw; const char *name = np->name; const char *parent_name; struct regmap *regmap; regmap = syscon_node_to_regmap(of_get_parent(np)); if (IS_ERR(regmap)) return; parent_name = of_clk_get_parent_name(np, 0); hw = at91_clk_register_h32mx(regmap, name, parent_name); if (IS_ERR(hw)) return; of_clk_add_hw_provider(np, of_clk_hw_simple_get, hw); } CLK_OF_DECLARE(of_sama5d4_clk_h32mx_setup, "atmel,sama5d4-clk-h32mx", of_sama5d4_clk_h32mx_setup);
drivers/clk/at91/clk-i2s-mux.c +0 −38 Original line number Diff line number Diff line Loading @@ -16,8 +16,6 @@ #include "pmc.h" #define I2S_BUS_NR 2 struct clk_i2s_mux { struct clk_hw hw; struct regmap *regmap; Loading Loading @@ -80,39 +78,3 @@ at91_clk_i2s_mux_register(struct regmap *regmap, const char *name, return &i2s_ck->hw; } static void __init of_sama5d2_clk_i2s_mux_setup(struct device_node *np) { struct regmap *regmap_sfr; u8 bus_id; const char *parent_names[2]; struct device_node *i2s_mux_np; struct clk_hw *hw; int ret; regmap_sfr = syscon_regmap_lookup_by_compatible("atmel,sama5d2-sfr"); if (IS_ERR(regmap_sfr)) return; for_each_child_of_node(np, i2s_mux_np) { if (of_property_read_u8(i2s_mux_np, "reg", &bus_id)) continue; if (bus_id > I2S_BUS_NR) continue; ret = of_clk_parent_fill(i2s_mux_np, parent_names, 2); if (ret != 2) continue; hw = at91_clk_i2s_mux_register(regmap_sfr, i2s_mux_np->name, parent_names, 2, bus_id); if (IS_ERR(hw)) continue; of_clk_add_hw_provider(i2s_mux_np, of_clk_hw_simple_get, hw); } } CLK_OF_DECLARE(sama5d2_clk_i2s_mux, "atmel,sama5d2-clk-i2s-mux", of_sama5d2_clk_i2s_mux_setup);