/linux/Documentation/devicetree/bindings/power/ |
H A D | power-domain.yaml | 1 # SPDX-License-Identifier: GPL-2.0 3 --- 4 $id: http://devicetree.org/schemas/power/power-domain.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Rafael J. Wysocki <rafael@kernel.org> 11 - Kevin Hilman <khilman@kernel.org> 12 - Ulf Hansson <ulf.hansson@linaro.org> 20 This device tree binding can be used to bind PM domain consumer devices with 21 their PM domains provided by PM domain providers. A PM domain provider can be 24 phandle arguments (so called PM domain specifiers) of length specified by the [all …]
|
/linux/Documentation/devicetree/bindings/arm/ |
H A D | psci.yaml | 1 # SPDX-License-Identifier: GPL-2.0 3 --- 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Power State Coordination Interface (PSCI) 10 - Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> 14 ARM DEN 0022A ("Power State Coordination Interface System Software on ARM 15 processors") can be used by Linux to initiate various CPU-centric power 25 r0 => 32-bit Function ID / return value 26 {r1 - r3} => Parameters 31 [2] Power State Coordination Interface (PSCI) specification [all …]
|
/linux/drivers/cpuidle/ |
H A D | cpuidle-riscv-sbi.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * RISC-V SBI CPU idle driver. 9 #define pr_fmt(fmt) "cpuidle-riscv-sbi: " fmt 40 u32 state; member 48 static inline void sbi_set_domain_state(u32 state) in sbi_set_domain_state() argument 52 data->available = true; in sbi_set_domain_state() 53 data->state = state; in sbi_set_domain_state() 60 return data->state; in sbi_get_domain_state() 67 data->available = false; in sbi_clear_domain_state() 74 return data->available; in sbi_is_domain_state_available() [all …]
|
H A D | cpuidle-psci.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * PSCI CPU idle driver. 30 #include "cpuidle-psci.h" 42 u32 state; member 50 u32 state) in psci_set_domain_state() argument 54 ds->pd = pd; in psci_set_domain_state() 55 ds->state_idx = state_idx; in psci_set_domain_state() 56 ds->state = state; in psci_set_domain_state() 61 __this_cpu_write(psci_domain_state.state, 0); in psci_clear_domain_state() 69 u32 *states = data->psci_states; in __psci_enter_domain_idle_state() [all …]
|
H A D | dt_idle_genpd.c | 1 // SPDX-License-Identifier: GPL-2.0-only 12 #define pr_fmt(fmt) "dt-idle-genpd: " fmt 29 u32 state, *state_buf; in pd_parse_state_nodes() local 32 ret = parse_state(to_of_node(states[i].fwnode), &state); in pd_parse_state_nodes() 38 ret = -ENOMEM; in pd_parse_state_nodes() 41 *state_buf = state; in pd_parse_state_nodes() 48 i--; in pd_parse_state_nodes() 49 for (; i >= 0; i--) in pd_parse_state_nodes() 61 /* Parse the domain idle states. */ in pd_parse_states() 66 /* Fill out the dt specifics for each found state. */ in pd_parse_states() [all …]
|
H A D | cpuidle-psci-domain.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * PM domains for CPUs via genpd - managed by cpuidle-psci. 22 #include "cpuidle-psci.h" 34 struct genpd_power_state *state = &pd->states[pd->state_idx]; in psci_pd_power_off() local 37 if (!state->data) in psci_pd_power_off() 40 /* OSI mode is enabled, set the corresponding domain state. */ in psci_pd_power_off() 41 pd_state = state->data; in psci_pd_power_off() 42 psci_set_domain_state(pd, pd->state_idx, *pd_state); in psci_pd_power_off() 52 int ret = -ENOMEM; in psci_pd_init() 62 pd->flags |= GENPD_FLAG_IRQ_SAFE | GENPD_FLAG_CPU_DOMAIN; in psci_pd_init() [all …]
|
/linux/Documentation/trace/coresight/ |
H A D | coresight-cpu-debug.rst | 9 ------------ 11 Coresight CPU debug module is defined in ARMv8-a architecture reference manual 13 debug module and it is mainly used for two modes: self-hosted debug and 16 explore debugging method which rely on self-hosted debug mode, this document 19 The debug module provides sample-based profiling extension, which can be used 20 to sample CPU program counter, secure state and exception level, etc; usually 21 every CPU has one dedicated debug module to be connected. Based on self-hosted 29 -------------- 31 - During driver registration, it uses EDDEVID and EDDEVID1 - two device ID 32 registers to decide if sample-based profiling is implemented or not. On some [all …]
|
/linux/arch/arm64/boot/dts/qcom/ |
H A D | sm4450.dtsi | 1 // SPDX-License-Identifier: BSD-3-Clause 6 #include <dt-bindings/clock/qcom,rpmh.h> 7 #include <dt-bindings/clock/qcom,sm4450-camcc.h> 8 #include <dt-bindings/clock/qcom,sm4450-dispcc.h> 9 #include <dt-bindings/clock/qcom,sm4450-gcc.h> 10 #include <dt-bindings/clock/qcom,sm4450-gpucc.h> 11 #include <dt-bindings/gpio/gpio.h> 12 #include <dt-bindings/interrupt-controller/arm-gic.h> 13 #include <dt-bindings/power/qcom,rpmhpd.h> 14 #include <dt-bindings/power/qcom-rpmpd.h> [all …]
|
H A D | sdx75.dtsi | 1 // SPDX-License-Identifier: BSD-3-Clause 9 #include <dt-bindings/clock/qcom,rpmh.h> 10 #include <dt-bindings/clock/qcom,sdx75-gcc.h> 11 #include <dt-bindings/dma/qcom-gpi.h> 12 #include <dt-bindings/gpio/gpio.h> 13 #include <dt-bindings/interconnect/qcom,icc.h> 14 #include <dt-bindings/interconnect/qcom,sdx75.h> 15 #include <dt-bindings/interrupt-controller/arm-gic.h> 16 #include <dt-bindings/mailbox/qcom-ipcc.h> 17 #include <dt-bindings/power/qcom,rpmhpd.h> [all …]
|
H A D | sdm670.dtsi | 1 // SPDX-License-Identifier: GPL-2.0 9 #include <dt-bindings/clock/qcom,camcc-sdm845.h> 10 #include <dt-bindings/clock/qcom,dispcc-sdm845.h> 11 #include <dt-bindings/clock/qcom,dsi-phy-28nm.h> 12 #include <dt-bindings/clock/qcom,gcc-sdm845.h> 13 #include <dt-bindings/clock/qcom,gpucc-sdm845.h> 14 #include <dt-bindings/clock/qcom,rpmh.h> 15 #include <dt-bindings/dma/qcom-gpi.h> 16 #include <dt-bindings/gpio/gpio.h> 17 #include <dt-bindings/interconnect/qcom,osm-l3.h> [all …]
|
H A D | qdu1000.dtsi | 1 // SPDX-License-Identifier: BSD-3-Clause 6 #include <dt-bindings/clock/qcom,qdu1000-gcc.h> 7 #include <dt-bindings/clock/qcom,rpmh.h> 8 #include <dt-bindings/dma/qcom-gpi.h> 9 #include <dt-bindings/gpio/gpio.h> 10 #include <dt-bindings/interconnect/qcom,icc.h> 11 #include <dt-bindings/interconnect/qcom,qdu1000-rpmh.h> 12 #include <dt-bindings/interrupt-controller/arm-gic.h> 13 #include <dt-bindings/power/qcom-rpmpd.h> 14 #include <dt-bindings/soc/qcom,rpmh-rsc.h> [all …]
|
H A D | sm6115.dtsi | 1 // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 6 #include <dt-bindings/clock/qcom,dsi-phy-28nm.h> 7 #include <dt-bindings/clock/qcom,gcc-sm6115.h> 8 #include <dt-bindings/clock/qcom,sm6115-dispcc.h> 9 #include <dt-bindings/clock/qcom,sm6115-gpucc.h> 10 #include <dt-bindings/clock/qcom,rpmcc.h> 11 #include <dt-bindings/dma/qcom-gpi.h> 12 #include <dt-bindings/firmware/qcom,scm.h> 13 #include <dt-bindings/gpio/gpio.h> 14 #include <dt-bindings/interconnect/qcom,rpm-icc.h> [all …]
|
H A D | msm8917.dtsi | 1 // SPDX-License-Identifier: GPL-2.0-only 3 #include <dt-bindings/clock/qcom,dsi-phy-28nm.h> 4 #include <dt-bindings/clock/qcom,gcc-msm8917.h> 5 #include <dt-bindings/clock/qcom,rpmcc.h> 6 #include <dt-bindings/interrupt-controller/arm-gic.h> 7 #include <dt-bindings/power/qcom-rpmpd.h> 8 #include <dt-bindings/thermal/thermal.h> 11 interrupt-parent = <&intc>; 13 #address-cells = <2>; 14 #size-cells = <2>; [all …]
|
H A D | sdm630.dtsi | 1 // SPDX-License-Identifier: BSD-3-Clause 7 #include <dt-bindings/clock/qcom,dsi-phy-28nm.h> 8 #include <dt-bindings/clock/qcom,gcc-sdm660.h> 9 #include <dt-bindings/clock/qcom,gpucc-sdm660.h> 10 #include <dt-bindings/clock/qcom,mmcc-sdm660.h> 11 #include <dt-bindings/clock/qcom,rpmcc.h> 12 #include <dt-bindings/firmware/qcom,scm.h> 13 #include <dt-bindings/interconnect/qcom,sdm660.h> 14 #include <dt-bindings/power/qcom-rpmpd.h> 15 #include <dt-bindings/gpio/gpio.h> [all …]
|
/linux/kernel/sched/ |
H A D | ext_idle.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * BPF extensible scheduler class: Documentation/scheduler/sched-ext.rst 5 * Built-in idle CPU tracking policy. 14 /* Enable/disable built-in idle CPU selection policy */ 17 /* Enable/disable per-node idle cpumasks */ 27 * cpumasks to track idle CPUs within each NUMA node. 30 * from is used to track all the idle CPUs in the system. 38 * Global host-wide idle cpumasks (used when SCX_OPS_BUILTIN_IDLE_PER_NODE 44 * Per-node idle cpumasks. 49 * Local per-CPU cpumasks (used to generate temporary idle cpumasks). [all …]
|
/linux/drivers/pmdomain/ |
H A D | governor.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * drivers/base/power/domain_governor.c - Governors for device PM domains. 21 if (dev->power.subsys_data && dev->power.subsys_data->domain_data) { in dev_update_qos_constraint() 22 struct gpd_timing_data *td = dev_gpd_data(dev)->td; in dev_update_qos_constraint() 25 * Only take suspend-time QoS constraints of devices into in dev_update_qos_constraint() 31 constraint_ns = td ? td->effective_constraint_ns : in dev_update_qos_constraint() 35 * The child is not in a domain and there's no info on its in dev_update_qos_constraint() 51 * default_suspend_ok - Default PM domain governor routine to suspend devices. 58 struct gpd_timing_data *td = dev_gpd_data(dev)->td; in default_suspend_ok() 64 spin_lock_irqsave(&dev->power.lock, flags); in default_suspend_ok() [all …]
|
/linux/arch/arm/mach-omap2/ |
H A D | clockdomain.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 6 * Copyright (C) 2008-2011 Nokia Corporation 29 * CLKDM_MISSING_IDLE_REPORTING: The idle status of the IP blocks and 31 * the PRCM when determining whether the clockdomain is idle. 33 * hardware-supervised idle mode, the PRCM may transition the 34 * enclosing powerdomain to a low power state, even when devices 38 * force-sleep mode, then the HW_AUTO mode will be used to put the 40 * the force-wakeup mode, then it will be used whenever a clock or 58 * struct clkdm_autodep - clkdm deps to add when entering/exiting hwsup mode 59 * @clkdm: clockdomain to add wkdep+sleepdep on - set name member only [all …]
|
H A D | cm33xx.c | 1 // SPDX-License-Identifier: GPL-2.0-only 5 * Copyright (C) 2011-2012 Texas Instruments Incorporated - https://www.ti.com/ 20 #include "cm-regbits-34xx.h" 21 #include "cm-regbits-33xx.h" 33 * 0x2 idle: Module is in Idle mode (only OCP part). It is functional if 57 /* Read-modify-write a register in CM */ 82 * _clkctrl_idlest - read a CM_*_CLKCTRL register; mask & shift IDLEST bitfield 98 * _is_module_ready - can module registers be accessed without causing an abort? 116 * _clktrctrl_write - write @c to a CM_CLKSTCTRL.CLKTRCTRL register bitfield 121 * @c must be the unshifted value for CLKTRCTRL - i.e., this function [all …]
|
/linux/Documentation/trace/ |
H A D | events-power.rst | 8 - Power state switch which reports events related to suspend (S-states), 9 cpuidle (C-states) and cpufreq (P-states) 10 - System clock related changes 11 - Power domains related changes and transitions 18 1. Power state switch events 22 ----------------- 24 A 'cpu' event class gathers the CPU-related events: cpuidle and 28 cpu_idle "state=%lu cpu_id=%lu" 29 cpu_frequency "state=%lu cpu_id=%lu" 36 machine_suspend "state=%lu" [all …]
|
/linux/Documentation/ABI/testing/ |
H A D | sysfs-class-regulator | 1 What: /sys/class/regulator/.../state 7 state. This reports the regulator enable control, for 20 supplying power to the system (unless some non-Linux 23 'unknown' means software cannot determine the state, or 24 the reported state is invalid. 38 - off 39 - on 40 - error 41 - fast 42 - normal [all …]
|
/linux/arch/arm64/boot/dts/freescale/ |
H A D | imx943.dtsi | 1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 10 #address-cells = <1>; 11 #size-cells = <0>; 13 idle-states { 14 entry-method = "psci"; 16 cpu_pd_wait: cpu-pd-wait { 17 compatible = "arm,idle-state"; 18 arm,psci-suspend-param = <0x0010033>; 19 local-timer-stop; 20 entry-latency-us = <1000>; [all …]
|
/linux/include/linux/ |
H A D | cpu_pm.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 16 * When a CPU goes to a low power state that turns off power to the CPU's 17 * power domain, the contents of some blocks (floating point coprocessors, 18 * interrupt controllers, caches, timers) in the same power domain can 19 * be lost. The cpm_pm notifiers provide a method for platform idle, suspend, 29 * CPU. They are used to save per-cpu context for affected blocks. 31 * CPU cluster notifications apply to all CPUs in a single power domain. They 33 * after all the CPUs in the power domain have been notified of the low power 34 * state. 41 /* A single cpu is entering a low power state */ [all …]
|
/linux/tools/power/x86/turbostat/ |
H A D | turbostat.8 | 3 turbostat \- Report processor frequency and idle statistics 12 .RB [ "\--interval seconds" ] 15 idle power-state statistics, temperature and power on X86 processors. 19 in one-shot upon its completion. 22 The 5-second interval can be changed using the --interval option. 26 Options can be specified with a single or double '-', and only as much of the option 27 name as necessary to disambiguate it from others is necessary. Note that options are case-sensitiv… 29 \fB--add attributes\fP add column with counter having specified 'attributes'. The 'location' attri… 39 … event for given device from /sys/bus/event_source/devices/<device>/events/<event> eg. c1-residency 40 …perf/cstate_core/c1-residency would then use /sys/bus/event_source/devices/cstate_core/events/c1-r… [all …]
|
/linux/include/xen/interface/io/ |
H A D | tpmif.h | 6 * This file is in the public domain. 14 * Xenbus state machine 19 * 3. Frontend populates ring-ref, event-channel, feature-protocol-v2 21 * 5. Backend maps grant and event channel, verifies feature-protocol-v2 23 * 7. Frontend verifies feature-protocol-v2, transitions to Connected 26 * 1. State is changed to XenbusStateClosing 28 * 3. Backend unmaps grant and event, changes state to InitWait 32 VTPM_STATE_IDLE, /* no contents / vTPM idle / cancel complete */ 34 VTPM_STATE_FINISH, /* response ready / vTPM idle */ 37 /* The backend should only change state to IDLE or FINISH, while the [all …]
|
/linux/kernel/ |
H A D | cpu_pm.c | 1 // SPDX-License-Identifier: GPL-2.0-only 18 * Notifications for cpu_pm will be issued by the idle task itself, which can 53 * cpu_pm_register_notifier - register a driver with cpu_pm 74 * cpu_pm_unregister_notifier - unregister a driver with cpu_pm 94 * cpu_pm_enter - CPU low power entry notifier 96 * Notifies listeners that a single CPU is entering a low power state that may 97 * cause some blocks in the same power domain as the cpu to reset. 102 * co-processor, interrupt controller and its PM extensions, local CPU 115 * cpu_pm_exit - CPU low power exit notifier 117 * Notifies listeners that a single CPU is exiting a low power state that may [all …]
|