Lines Matching +full:device +full:- +full:level
1 /* SPDX-License-Identifier: GPL-2.0-only */
5 * Copyright (C) 2009-2010 Texas Instruments Incorporated.
22 struct device;
31 * struct dev_pm_opp_supply - Power supply voltage/current values
35 * @u_amp: Maximum current drawn by the device in microamperes
36 * @u_watt: Power used by the device in microwatts
49 typedef int (*config_regulators_t)(struct device *dev,
53 typedef int (*config_clks_t)(struct device *dev, struct opp_table *opp_table,
57 * struct dev_pm_opp_config - Device OPP configuration values
65 * @required_dev: The required OPP device.
68 * This structure contains platform specific OPP configurations for the device.
79 struct device *required_dev;
86 * struct dev_pm_opp_data - The data to use to initialize an OPP.
88 * @level: The performance level for the OPP. Set level to OPP_LEVEL_UNSET if
89 * level field isn't used.
95 unsigned int level; member
102 struct opp_table *dev_pm_opp_get_opp_table(struct device *dev);
123 int dev_pm_opp_get_opp_count(struct device *dev);
124 unsigned long dev_pm_opp_get_max_clock_latency(struct device *dev);
125 unsigned long dev_pm_opp_get_max_volt_latency(struct device *dev);
126 unsigned long dev_pm_opp_get_max_transition_latency(struct device *dev);
127 unsigned long dev_pm_opp_get_suspend_opp_freq(struct device *dev);
129 struct dev_pm_opp *dev_pm_opp_find_freq_exact(struct device *dev,
134 dev_pm_opp_find_freq_exact_indexed(struct device *dev, unsigned long freq,
137 struct dev_pm_opp *dev_pm_opp_find_freq_floor(struct device *dev,
140 struct dev_pm_opp *dev_pm_opp_find_freq_floor_indexed(struct device *dev,
143 struct dev_pm_opp *dev_pm_opp_find_freq_ceil(struct device *dev,
146 struct dev_pm_opp *dev_pm_opp_find_freq_ceil_indexed(struct device *dev,
149 struct dev_pm_opp *dev_pm_opp_find_level_exact(struct device *dev,
150 unsigned int level);
152 struct dev_pm_opp *dev_pm_opp_find_level_ceil(struct device *dev,
153 unsigned int *level);
155 struct dev_pm_opp *dev_pm_opp_find_level_floor(struct device *dev,
156 unsigned int *level);
158 struct dev_pm_opp *dev_pm_opp_find_bw_ceil(struct device *dev,
161 struct dev_pm_opp *dev_pm_opp_find_bw_floor(struct device *dev,
167 int dev_pm_opp_add_dynamic(struct device *dev, struct dev_pm_opp_data *opp);
169 void dev_pm_opp_remove(struct device *dev, unsigned long freq);
170 void dev_pm_opp_remove_all_dynamic(struct device *dev);
172 int dev_pm_opp_adjust_voltage(struct device *dev, unsigned long freq,
176 int dev_pm_opp_enable(struct device *dev, unsigned long freq);
178 int dev_pm_opp_disable(struct device *dev, unsigned long freq);
180 int dev_pm_opp_register_notifier(struct device *dev, struct notifier_block *nb);
181 int dev_pm_opp_unregister_notifier(struct device *dev, struct notifier_block *nb);
183 int dev_pm_opp_set_config(struct device *dev, struct dev_pm_opp_config *config);
184 int devm_pm_opp_set_config(struct device *dev, struct dev_pm_opp_config *config);
186 int dev_pm_opp_config_clks_simple(struct device *dev,
192 int dev_pm_opp_set_rate(struct device *dev, unsigned long target_freq);
193 int dev_pm_opp_set_opp(struct device *dev, struct dev_pm_opp *opp);
194 int dev_pm_opp_set_sharing_cpus(struct device *cpu_dev, const struct cpumask *cpumask);
195 int dev_pm_opp_get_sharing_cpus(struct device *cpu_dev, struct cpumask *cpumask);
196 void dev_pm_opp_remove_table(struct device *dev);
198 int dev_pm_opp_sync_regulators(struct device *dev);
200 static inline struct opp_table *dev_pm_opp_get_opp_table(struct device *dev) in dev_pm_opp_get_opp_table()
202 return ERR_PTR(-EOPNOTSUPP); in dev_pm_opp_get_opp_table()
205 static inline struct opp_table *dev_pm_opp_get_opp_table_indexed(struct device *dev, int index) in dev_pm_opp_get_opp_table_indexed()
207 return ERR_PTR(-EOPNOTSUPP); in dev_pm_opp_get_opp_table_indexed()
226 return -EOPNOTSUPP; in dev_pm_opp_get_supplies()
256 static inline int dev_pm_opp_get_opp_count(struct device *dev) in dev_pm_opp_get_opp_count()
261 static inline unsigned long dev_pm_opp_get_max_clock_latency(struct device *dev) in dev_pm_opp_get_max_clock_latency()
266 static inline unsigned long dev_pm_opp_get_max_volt_latency(struct device *dev) in dev_pm_opp_get_max_volt_latency()
271 static inline unsigned long dev_pm_opp_get_max_transition_latency(struct device *dev) in dev_pm_opp_get_max_transition_latency()
276 static inline unsigned long dev_pm_opp_get_suspend_opp_freq(struct device *dev) in dev_pm_opp_get_suspend_opp_freq()
281 static inline struct dev_pm_opp *dev_pm_opp_find_freq_exact(struct device *dev, in dev_pm_opp_find_freq_exact()
284 return ERR_PTR(-EOPNOTSUPP); in dev_pm_opp_find_freq_exact()
288 dev_pm_opp_find_freq_exact_indexed(struct device *dev, unsigned long freq, in dev_pm_opp_find_freq_exact_indexed()
291 return ERR_PTR(-EOPNOTSUPP); in dev_pm_opp_find_freq_exact_indexed()
294 static inline struct dev_pm_opp *dev_pm_opp_find_freq_floor(struct device *dev, in dev_pm_opp_find_freq_floor()
297 return ERR_PTR(-EOPNOTSUPP); in dev_pm_opp_find_freq_floor()
301 dev_pm_opp_find_freq_floor_indexed(struct device *dev, unsigned long *freq, u32 index) in dev_pm_opp_find_freq_floor_indexed()
303 return ERR_PTR(-EOPNOTSUPP); in dev_pm_opp_find_freq_floor_indexed()
306 static inline struct dev_pm_opp *dev_pm_opp_find_freq_ceil(struct device *dev, in dev_pm_opp_find_freq_ceil()
309 return ERR_PTR(-EOPNOTSUPP); in dev_pm_opp_find_freq_ceil()
313 dev_pm_opp_find_freq_ceil_indexed(struct device *dev, unsigned long *freq, u32 index) in dev_pm_opp_find_freq_ceil_indexed()
315 return ERR_PTR(-EOPNOTSUPP); in dev_pm_opp_find_freq_ceil_indexed()
318 static inline struct dev_pm_opp *dev_pm_opp_find_level_exact(struct device *dev, in dev_pm_opp_find_level_exact()
319 unsigned int level) in dev_pm_opp_find_level_exact() argument
321 return ERR_PTR(-EOPNOTSUPP); in dev_pm_opp_find_level_exact()
324 static inline struct dev_pm_opp *dev_pm_opp_find_level_ceil(struct device *dev, in dev_pm_opp_find_level_ceil()
325 unsigned int *level) in dev_pm_opp_find_level_ceil() argument
327 return ERR_PTR(-EOPNOTSUPP); in dev_pm_opp_find_level_ceil()
330 static inline struct dev_pm_opp *dev_pm_opp_find_level_floor(struct device *dev, in dev_pm_opp_find_level_floor()
331 unsigned int *level) in dev_pm_opp_find_level_floor() argument
333 return ERR_PTR(-EOPNOTSUPP); in dev_pm_opp_find_level_floor()
336 static inline struct dev_pm_opp *dev_pm_opp_find_bw_ceil(struct device *dev, in dev_pm_opp_find_bw_ceil()
339 return ERR_PTR(-EOPNOTSUPP); in dev_pm_opp_find_bw_ceil()
342 static inline struct dev_pm_opp *dev_pm_opp_find_bw_floor(struct device *dev, in dev_pm_opp_find_bw_floor()
345 return ERR_PTR(-EOPNOTSUPP); in dev_pm_opp_find_bw_floor()
353 dev_pm_opp_add_dynamic(struct device *dev, struct dev_pm_opp_data *opp) in dev_pm_opp_add_dynamic()
355 return -EOPNOTSUPP; in dev_pm_opp_add_dynamic()
358 static inline void dev_pm_opp_remove(struct device *dev, unsigned long freq) in dev_pm_opp_remove()
362 static inline void dev_pm_opp_remove_all_dynamic(struct device *dev) in dev_pm_opp_remove_all_dynamic()
367 dev_pm_opp_adjust_voltage(struct device *dev, unsigned long freq, in dev_pm_opp_adjust_voltage()
374 static inline int dev_pm_opp_enable(struct device *dev, unsigned long freq) in dev_pm_opp_enable()
379 static inline int dev_pm_opp_disable(struct device *dev, unsigned long freq) in dev_pm_opp_disable()
384 static inline int dev_pm_opp_register_notifier(struct device *dev, struct notifier_block *nb) in dev_pm_opp_register_notifier()
386 return -EOPNOTSUPP; in dev_pm_opp_register_notifier()
389 static inline int dev_pm_opp_unregister_notifier(struct device *dev, struct notifier_block *nb) in dev_pm_opp_unregister_notifier()
391 return -EOPNOTSUPP; in dev_pm_opp_unregister_notifier()
394 static inline int dev_pm_opp_set_config(struct device *dev, struct dev_pm_opp_config *config) in dev_pm_opp_set_config()
396 return -EOPNOTSUPP; in dev_pm_opp_set_config()
399 static inline int devm_pm_opp_set_config(struct device *dev, struct dev_pm_opp_config *config) in devm_pm_opp_set_config()
401 return -EOPNOTSUPP; in devm_pm_opp_set_config()
406 static inline int dev_pm_opp_config_clks_simple(struct device *dev, in dev_pm_opp_config_clks_simple()
410 return -EOPNOTSUPP; in dev_pm_opp_config_clks_simple()
416 return ERR_PTR(-EOPNOTSUPP); in dev_pm_opp_xlate_required_opp()
421 return -EOPNOTSUPP; in dev_pm_opp_xlate_performance_state()
424 static inline int dev_pm_opp_set_rate(struct device *dev, unsigned long target_freq) in dev_pm_opp_set_rate()
426 return -EOPNOTSUPP; in dev_pm_opp_set_rate()
429 static inline int dev_pm_opp_set_opp(struct device *dev, struct dev_pm_opp *opp) in dev_pm_opp_set_opp()
431 return -EOPNOTSUPP; in dev_pm_opp_set_opp()
434 static inline int dev_pm_opp_set_sharing_cpus(struct device *cpu_dev, const struct cpumask *cpumask) in dev_pm_opp_set_sharing_cpus()
436 return -EOPNOTSUPP; in dev_pm_opp_set_sharing_cpus()
439 static inline int dev_pm_opp_get_sharing_cpus(struct device *cpu_dev, struct cpumask *cpumask) in dev_pm_opp_get_sharing_cpus()
441 return -EINVAL; in dev_pm_opp_get_sharing_cpus()
444 static inline void dev_pm_opp_remove_table(struct device *dev) in dev_pm_opp_remove_table()
452 static inline int dev_pm_opp_sync_regulators(struct device *dev) in dev_pm_opp_sync_regulators()
454 return -EOPNOTSUPP; in dev_pm_opp_sync_regulators()
460 int dev_pm_opp_init_cpufreq_table(struct device *dev, struct cpufreq_frequency_table **table);
461 void dev_pm_opp_free_cpufreq_table(struct device *dev, struct cpufreq_frequency_table **table);
463 static inline int dev_pm_opp_init_cpufreq_table(struct device *dev, struct cpufreq_frequency_table … in dev_pm_opp_init_cpufreq_table()
465 return -EINVAL; in dev_pm_opp_init_cpufreq_table()
468 static inline void dev_pm_opp_free_cpufreq_table(struct device *dev, struct cpufreq_frequency_table… in dev_pm_opp_free_cpufreq_table()
475 int dev_pm_opp_of_add_table(struct device *dev);
476 int dev_pm_opp_of_add_table_indexed(struct device *dev, int index);
477 int devm_pm_opp_of_add_table_indexed(struct device *dev, int index);
478 void dev_pm_opp_of_remove_table(struct device *dev);
479 int devm_pm_opp_of_add_table(struct device *dev);
482 int dev_pm_opp_of_get_sharing_cpus(struct device *cpu_dev, struct cpumask *cpumask);
483 struct device_node *dev_pm_opp_of_get_opp_desc_node(struct device *dev);
486 bool dev_pm_opp_of_has_required_opp(struct device *dev);
487 int dev_pm_opp_of_find_icc_paths(struct device *dev, struct opp_table *opp_table);
488 int dev_pm_opp_of_register_em(struct device *dev, struct cpumask *cpus);
489 int dev_pm_opp_calc_power(struct device *dev, unsigned long *uW,
491 static inline void dev_pm_opp_of_unregister_em(struct device *dev) in dev_pm_opp_of_unregister_em()
496 static inline int dev_pm_opp_of_add_table(struct device *dev) in dev_pm_opp_of_add_table()
498 return -EOPNOTSUPP; in dev_pm_opp_of_add_table()
501 static inline int dev_pm_opp_of_add_table_indexed(struct device *dev, int index) in dev_pm_opp_of_add_table_indexed()
503 return -EOPNOTSUPP; in dev_pm_opp_of_add_table_indexed()
506 static inline int devm_pm_opp_of_add_table_indexed(struct device *dev, int index) in devm_pm_opp_of_add_table_indexed()
508 return -EOPNOTSUPP; in devm_pm_opp_of_add_table_indexed()
511 static inline void dev_pm_opp_of_remove_table(struct device *dev) in dev_pm_opp_of_remove_table()
515 static inline int devm_pm_opp_of_add_table(struct device *dev) in devm_pm_opp_of_add_table()
517 return -EOPNOTSUPP; in devm_pm_opp_of_add_table()
522 return -EOPNOTSUPP; in dev_pm_opp_of_cpumask_add_table()
529 static inline int dev_pm_opp_of_get_sharing_cpus(struct device *cpu_dev, struct cpumask *cpumask) in dev_pm_opp_of_get_sharing_cpus()
531 return -EOPNOTSUPP; in dev_pm_opp_of_get_sharing_cpus()
534 static inline struct device_node *dev_pm_opp_of_get_opp_desc_node(struct device *dev) in dev_pm_opp_of_get_opp_desc_node()
544 static inline int dev_pm_opp_of_register_em(struct device *dev, in dev_pm_opp_of_register_em()
547 return -EOPNOTSUPP; in dev_pm_opp_of_register_em()
550 static inline void dev_pm_opp_of_unregister_em(struct device *dev) in dev_pm_opp_of_unregister_em()
554 static inline int dev_pm_opp_calc_power(struct device *dev, unsigned long *uW, in dev_pm_opp_calc_power()
557 return -EOPNOTSUPP; in dev_pm_opp_calc_power()
562 return -EOPNOTSUPP; in of_get_required_opp_performance_state()
565 static inline bool dev_pm_opp_of_has_required_opp(struct device *dev) in dev_pm_opp_of_has_required_opp()
570 static inline int dev_pm_opp_of_find_icc_paths(struct device *dev, struct opp_table *opp_table) in dev_pm_opp_of_find_icc_paths()
572 return -EOPNOTSUPP; in dev_pm_opp_of_find_icc_paths()
578 static inline int dev_pm_opp_add(struct device *dev, unsigned long freq, in dev_pm_opp_add()
590 static inline int dev_pm_opp_set_regulators(struct device *dev, in dev_pm_opp_set_regulators()
605 static inline int devm_pm_opp_set_regulators(struct device *dev, in devm_pm_opp_set_regulators()
615 /* Supported-hw helpers */
616 static inline int dev_pm_opp_set_supported_hw(struct device *dev, in dev_pm_opp_set_supported_hw()
633 static inline int devm_pm_opp_set_supported_hw(struct device *dev, in devm_pm_opp_set_supported_hw()
646 static inline int dev_pm_opp_set_clkname(struct device *dev, const char *name) in dev_pm_opp_set_clkname()
661 static inline int devm_pm_opp_set_clkname(struct device *dev, const char *name) in devm_pm_opp_set_clkname()
671 /* config-regulators helpers */
672 static inline int dev_pm_opp_set_config_regulators(struct device *dev, in dev_pm_opp_set_config_regulators()
687 /* prop-name helpers */
688 static inline int dev_pm_opp_set_prop_name(struct device *dev, const char *name) in dev_pm_opp_set_prop_name()