Lines Matching +full:can +full:- +full:disable
5 (C) 2009-2010 Nishanth Menon <nm@ti.com>, Texas Instruments Incorporated
20 -------------------------------------------------
22 Complex SoCs of today consists of a multiple sub-modules working in conjunction.
25 facilitate this, sub-modules in a SoC are grouped into domains, allowing some
39 We can represent these as three OPPs as the following {Hz, uV} tuples:
41 - {300000000, 1000000}
42 - {800000000, 1200000}
43 - {1000000000, 1300000}
46 ----------------------------------------
50 is located in include/linux/pm_opp.h. OPP library can be enabled by enabling
57 (users) -> registers a set of default OPPs -> (library)
58 SoC framework -> modifies on required cases certain OPPs -> OPP layer
59 -> queries to search/retrieve information ->
73 SoC framework might choose to disable a higher frequency OPP to safely continue
74 operations until that OPP could be re-enabled if possible.
82 which can then be used for dev_pm_opp_enable/disable functions to make an
86 get_opp_count if dev_pm_opp_enable/disable functions are invoked for a
96 optimally- typical numbers range to be less than 5. The list generated by
98 operation. The SoC framework can subsequently control the availability of the
99 OPPs dynamically using the dev_pm_opp_enable / disable functions.
104 is assumed to be available and control of its availability can be done
105 with the dev_pm_opp_enable/disable functions. OPP library
146 higher frequency could be made available, it can use this function to
186 Example 2: A simplified implementation of a SoC cpufreq_driver->target::
197 /* do something when we can't satisfy the req */
237 /* Disable 1GHz if it was enabled */
251 retrieved using the search functions, the following functions can be used by SoC
293 return -EINVAL;
295 return -EINVAL;
301 Example: Lets say a co-processor in the SoC needs to know the available
302 frequencies in a table, the main processor can notify as following::
325 domain is represented by a device pointer. The relationship to OPP can be
329 |- device 1
330 | |- opp 1 (availability, freq, voltage)
331 | |- opp 2 ..
333 | `- opp n ..
334 |- device 2
336 `- device m
354 dev_pm_opp_add, but the availability of the OPP can be modified
355 by dev_pm_opp_enable/disable functions.
366 +-----+ /- dev_pm_opp_enable
367 dev_pm_opp_add --> | opp | <-------
368 | +-----+ \- dev_pm_opp_disable
369 \-------> domain_info(device)
372 /-- dev_pm_opp_find_freq_ceil ---\ +-----+
373 domain_info<---- dev_pm_opp_find_freq_exact -----> | opp |
374 \-- dev_pm_opp_find_freq_floor ---/ +-----+
377 +-----+ /- dev_pm_opp_get_voltage
378 | opp | <---
379 +-----+ \- dev_pm_opp_get_freq
381 domain_info <- dev_pm_opp_get_opp_count