1b06a532bSMarek Szyprowski /* SPDX-License-Identifier: GPL-2.0 */
2b06a532bSMarek Szyprowski 
3b06a532bSMarek Szyprowski #ifndef __CLK_EXYNOS5_SUBCMU_H
4b06a532bSMarek Szyprowski #define __CLK_EXYNOS5_SUBCMU_H
5b06a532bSMarek Szyprowski 
6b06a532bSMarek Szyprowski struct exynos5_subcmu_reg_dump {
7b06a532bSMarek Szyprowski 	u32 offset;
8b06a532bSMarek Szyprowski 	u32 value;
9b06a532bSMarek Szyprowski 	u32 mask;
10b06a532bSMarek Szyprowski 	u32 save;
11b06a532bSMarek Szyprowski };
12b06a532bSMarek Szyprowski 
13b06a532bSMarek Szyprowski struct exynos5_subcmu_info {
14b06a532bSMarek Szyprowski 	const struct samsung_div_clock *div_clks;
15b06a532bSMarek Szyprowski 	unsigned int nr_div_clks;
16b06a532bSMarek Szyprowski 	const struct samsung_gate_clock *gate_clks;
17b06a532bSMarek Szyprowski 	unsigned int nr_gate_clks;
18b06a532bSMarek Szyprowski 	struct exynos5_subcmu_reg_dump *suspend_regs;
19b06a532bSMarek Szyprowski 	unsigned int nr_suspend_regs;
20b06a532bSMarek Szyprowski 	const char *pd_name;
21b06a532bSMarek Szyprowski };
22b06a532bSMarek Szyprowski 
23b06a532bSMarek Szyprowski void exynos5_subcmus_init(struct samsung_clk_provider *ctx, int nr_cmus,
24bf32e7dbSSylwester Nawrocki 			  const struct exynos5_subcmu_info **cmu);
25b06a532bSMarek Szyprowski 
26b06a532bSMarek Szyprowski #endif
27