1889c2b7eSJerome Brunet /* SPDX-License-Identifier: GPL-2.0 */ 2889c2b7eSJerome Brunet /* 3889c2b7eSJerome Brunet * Copyright (c) 2019 BayLibre, SAS. 4889c2b7eSJerome Brunet * Author: Jerome Brunet <jbrunet@baylibre.com> 5889c2b7eSJerome Brunet */ 6889c2b7eSJerome Brunet 7889c2b7eSJerome Brunet #ifndef __MESON_CLK_MPLL_H 8889c2b7eSJerome Brunet #define __MESON_CLK_MPLL_H 9889c2b7eSJerome Brunet 10889c2b7eSJerome Brunet #include <linux/clk-provider.h> 11889c2b7eSJerome Brunet #include <linux/spinlock.h> 12889c2b7eSJerome Brunet 13889c2b7eSJerome Brunet #include "parm.h" 14889c2b7eSJerome Brunet 15889c2b7eSJerome Brunet struct meson_clk_mpll_data { 16889c2b7eSJerome Brunet struct parm sdm; 17889c2b7eSJerome Brunet struct parm sdm_en; 18889c2b7eSJerome Brunet struct parm n2; 19889c2b7eSJerome Brunet struct parm ssen; 20889c2b7eSJerome Brunet struct parm misc; 2119855c82SJerome Brunet const struct reg_sequence *init_regs; 2219855c82SJerome Brunet unsigned int init_count; 23889c2b7eSJerome Brunet spinlock_t *lock; 24889c2b7eSJerome Brunet u8 flags; 25889c2b7eSJerome Brunet }; 26889c2b7eSJerome Brunet 27889c2b7eSJerome Brunet #define CLK_MESON_MPLL_ROUND_CLOSEST BIT(0) 28f9b3eeebSJerome Brunet #define CLK_MESON_MPLL_SPREAD_SPECTRUM BIT(1) 29889c2b7eSJerome Brunet 30889c2b7eSJerome Brunet extern const struct clk_ops meson_clk_mpll_ro_ops; 31889c2b7eSJerome Brunet extern const struct clk_ops meson_clk_mpll_ops; 32889c2b7eSJerome Brunet 33889c2b7eSJerome Brunet #endif /* __MESON_CLK_MPLL_H */ 34