1*889c2b7eSJerome Brunet /* SPDX-License-Identifier: GPL-2.0 */ 2*889c2b7eSJerome Brunet /* 3*889c2b7eSJerome Brunet * Copyright (c) 2019 BayLibre, SAS. 4*889c2b7eSJerome Brunet * Author: Jerome Brunet <jbrunet@baylibre.com> 5*889c2b7eSJerome Brunet */ 6*889c2b7eSJerome Brunet 7*889c2b7eSJerome Brunet #ifndef __MESON_CLK_DUALDIV_H 8*889c2b7eSJerome Brunet #define __MESON_CLK_DUALDIV_H 9*889c2b7eSJerome Brunet 10*889c2b7eSJerome Brunet #include <linux/clk-provider.h> 11*889c2b7eSJerome Brunet #include "parm.h" 12*889c2b7eSJerome Brunet 13*889c2b7eSJerome Brunet struct meson_clk_dualdiv_param { 14*889c2b7eSJerome Brunet unsigned int n1; 15*889c2b7eSJerome Brunet unsigned int n2; 16*889c2b7eSJerome Brunet unsigned int m1; 17*889c2b7eSJerome Brunet unsigned int m2; 18*889c2b7eSJerome Brunet unsigned int dual; 19*889c2b7eSJerome Brunet }; 20*889c2b7eSJerome Brunet 21*889c2b7eSJerome Brunet struct meson_clk_dualdiv_data { 22*889c2b7eSJerome Brunet struct parm n1; 23*889c2b7eSJerome Brunet struct parm n2; 24*889c2b7eSJerome Brunet struct parm m1; 25*889c2b7eSJerome Brunet struct parm m2; 26*889c2b7eSJerome Brunet struct parm dual; 27*889c2b7eSJerome Brunet const struct meson_clk_dualdiv_param *table; 28*889c2b7eSJerome Brunet }; 29*889c2b7eSJerome Brunet 30*889c2b7eSJerome Brunet extern const struct clk_ops meson_clk_dualdiv_ops; 31*889c2b7eSJerome Brunet extern const struct clk_ops meson_clk_dualdiv_ro_ops; 32*889c2b7eSJerome Brunet 33*889c2b7eSJerome Brunet #endif /* __MESON_CLK_DUALDIV_H */ 34