| .. | .. |
|---|
| 1 | +/* SPDX-License-Identifier: GPL-2.0-only */ |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * Copyright (c) 2013 Samsung Electronics Co., Ltd. |
|---|
| 3 | 4 | * Copyright (c) 2013 Linaro Ltd. |
|---|
| 4 | 5 | * Author: Thomas Abraham <thomas.ab@samsung.com> |
|---|
| 5 | | - * |
|---|
| 6 | | - * This program is free software; you can redistribute it and/or modify |
|---|
| 7 | | - * it under the terms of the GNU General Public License version 2 as |
|---|
| 8 | | - * published by the Free Software Foundation. |
|---|
| 9 | 6 | * |
|---|
| 10 | 7 | * Common Clock Framework support for all Samsung platforms |
|---|
| 11 | 8 | */ |
|---|
| .. | .. |
|---|
| 26 | 23 | void __iomem *reg_base; |
|---|
| 27 | 24 | struct device *dev; |
|---|
| 28 | 25 | spinlock_t lock; |
|---|
| 29 | | - /* clk_data must be the last entry due to variable lenght 'hws' array */ |
|---|
| 26 | + /* clk_data must be the last entry due to variable length 'hws' array */ |
|---|
| 30 | 27 | struct clk_hw_onecell_data clk_data; |
|---|
| 31 | 28 | }; |
|---|
| 32 | 29 | |
|---|
| .. | .. |
|---|
| 279 | 276 | void __iomem *reg_base; |
|---|
| 280 | 277 | struct samsung_clk_reg_dump *rdump; |
|---|
| 281 | 278 | unsigned int rd_num; |
|---|
| 279 | + const struct samsung_clk_reg_dump *rsuspend; |
|---|
| 280 | + unsigned int rsuspend_num; |
|---|
| 282 | 281 | }; |
|---|
| 283 | 282 | |
|---|
| 284 | 283 | struct samsung_cmu_info { |
|---|
| .. | .. |
|---|
| 358 | 357 | |
|---|
| 359 | 358 | extern unsigned long _get_rate(const char *clk_name); |
|---|
| 360 | 359 | |
|---|
| 361 | | -extern void samsung_clk_sleep_init(void __iomem *reg_base, |
|---|
| 360 | +#ifdef CONFIG_PM_SLEEP |
|---|
| 361 | +extern void samsung_clk_extended_sleep_init(void __iomem *reg_base, |
|---|
| 362 | 362 | const unsigned long *rdump, |
|---|
| 363 | | - unsigned long nr_rdump); |
|---|
| 363 | + unsigned long nr_rdump, |
|---|
| 364 | + const struct samsung_clk_reg_dump *rsuspend, |
|---|
| 365 | + unsigned long nr_rsuspend); |
|---|
| 366 | +#else |
|---|
| 367 | +static inline void samsung_clk_extended_sleep_init(void __iomem *reg_base, |
|---|
| 368 | + const unsigned long *rdump, |
|---|
| 369 | + unsigned long nr_rdump, |
|---|
| 370 | + const struct samsung_clk_reg_dump *rsuspend, |
|---|
| 371 | + unsigned long nr_rsuspend) {} |
|---|
| 372 | +#endif |
|---|
| 373 | +#define samsung_clk_sleep_init(reg_base, rdump, nr_rdump) \ |
|---|
| 374 | + samsung_clk_extended_sleep_init(reg_base, rdump, nr_rdump, NULL, 0) |
|---|
| 364 | 375 | |
|---|
| 365 | 376 | extern void samsung_clk_save(void __iomem *base, |
|---|
| 366 | 377 | struct samsung_clk_reg_dump *rd, |
|---|