1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
2 | /* |
3 | * Copyright (C) 2014 NVIDIA Corporation |
4 | */ |
5 | |
6 | #ifndef __SOC_TEGRA_COMMON_H__ |
7 | #define __SOC_TEGRA_COMMON_H__ |
8 | |
9 | #include <linux/errno.h> |
10 | #include <linux/types.h> |
11 | |
12 | struct device; |
13 | |
14 | /** |
15 | * Tegra SoC core device OPP table configuration |
16 | * |
17 | * @init_state: pre-initialize OPP state of a device |
18 | */ |
19 | struct tegra_core_opp_params { |
20 | bool init_state; |
21 | }; |
22 | |
23 | #ifdef CONFIG_ARCH_TEGRA |
24 | bool soc_is_tegra(void); |
25 | |
26 | int devm_tegra_core_dev_init_opp_table(struct device *dev, |
27 | struct tegra_core_opp_params *params); |
28 | #else |
29 | static inline bool soc_is_tegra(void) |
30 | { |
31 | return false; |
32 | } |
33 | |
34 | static inline int |
35 | devm_tegra_core_dev_init_opp_table(struct device *dev, |
36 | struct tegra_core_opp_params *params) |
37 | { |
38 | return -ENODEV; |
39 | } |
40 | #endif |
41 | |
42 | static inline int |
43 | devm_tegra_core_dev_init_opp_table_common(struct device *dev) |
44 | { |
45 | struct tegra_core_opp_params opp_params = {}; |
46 | int err; |
47 | |
48 | opp_params.init_state = true; |
49 | |
50 | err = devm_tegra_core_dev_init_opp_table(dev, params: &opp_params); |
51 | if (err != -ENODEV) |
52 | return err; |
53 | |
54 | return 0; |
55 | } |
56 | |
57 | #endif /* __SOC_TEGRA_COMMON_H__ */ |
58 | |