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 soc_is_tegra(void)29static inline bool soc_is_tegra(void) 30 { 31 return false; 32 } 33 34 static inline int devm_tegra_core_dev_init_opp_table(struct device * dev,struct tegra_core_opp_params * params)35devm_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 devm_tegra_core_dev_init_opp_table_common(struct device * dev)43devm_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, &opp_params); 51 if (err != -ENODEV) 52 return err; 53 54 return 0; 55 } 56 57 #endif /* __SOC_TEGRA_COMMON_H__ */ 58