/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 <rjw@rjwysocki.net> 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# 10 - Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> 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 40 - description: 44 - description: 52 - const: arm,psci-0.2 [all …]
|
/linux/drivers/cpuidle/ |
H A D | dt_idle_genpd.c | 1 // SPDX-License-Identifier: GPL-2.0-only 12 #define pr_fmt(fmt) "dt-idle-genpd: " fmt 26 struct genpd_power_state *states, int state_count) in pd_parse_state_nodes() argument 32 ret = parse_state(to_of_node(states[i].fwnode), &state); in pd_parse_state_nodes() 38 ret = -ENOMEM; in pd_parse_state_nodes() 42 states[i].data = state_buf; in pd_parse_state_nodes() 48 i--; in pd_parse_state_nodes() 49 for (; i >= 0; i--) in pd_parse_state_nodes() 50 kfree(states[i].data); in pd_parse_state_nodes() 56 struct genpd_power_state **states, in pd_parse_states() argument [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" 55 ds->pd = pd; in psci_set_domain_state() 56 ds->state_idx = state_idx; in psci_set_domain_state() 57 ds->state = state; in psci_set_domain_state() 70 u32 *states = data->psci_states; in __psci_enter_domain_idle_state() local 71 struct device *pd_dev = data->dev; in __psci_enter_domain_idle_state() 73 u32 state = states[idx]; in __psci_enter_domain_idle_state() 78 return -1; in __psci_enter_domain_idle_state() [all …]
|
H A D | Kconfig.arm | 1 # SPDX-License-Identifier: GPL-2.0-only 3 # ARM CPU Idle drivers 6 bool "Generic ARM CPU idle Driver" 12 It provides a generic idle driver whose idle states are configured 13 at run-time through DT nodes. The CPUidle suspend backend is 14 initialized by calling the CPU operations init idle hook 18 bool "PSCI CPU idle Driver" 24 It provides an idle driver that is capable of detecting and 25 managing idle states through the PSCI firmware interface. 28 - If the idle states are described with the non-hierarchical layout, [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" 35 struct genpd_power_state *state = &pd->states[pd->state_idx]; in psci_pd_power_off() 38 if (!state->data) in psci_pd_power_off() 42 return -EBUSY; in psci_pd_power_off() 44 /* OSI mode is enabled, set the corresponding domain state. */ in psci_pd_power_off() 45 pd_state = state->data; in psci_pd_power_off() 46 psci_set_domain_state(pd, pd->state_idx, *pd_state); in psci_pd_power_off() 56 int ret = -ENOMEM; in psci_pd_init() [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 | sdm845-cheza.dtsi | 1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 8 #include <dt-bindings/input/input.h> 9 #include <dt-bindings/regulator/qcom,rpmh-regulator.h> 25 stdout-path = "serial0:115200n8"; 29 compatible = "pwm-backlight"; 31 enable-gpios = <&tlmm 37 GPIO_ACTIVE_HIGH>; 32 power-supply = <&ppvar_sys>; 33 pinctrl-names = "default"; 34 pinctrl-0 = <&ap_edp_bklten>; 37 /* FIXED REGULATORS - parents above children */ [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 | 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 | sm6350.dtsi | 1 // SPDX-License-Identifier: BSD-3-Clause 7 #include <dt-bindings/clock/qcom,dispcc-sm6350.h> 8 #include <dt-bindings/clock/qcom,dsi-phy-28nm.h> 9 #include <dt-bindings/clock/qcom,gcc-sm6350.h> 10 #include <dt-bindings/clock/qcom,gpucc-sm6350.h> 11 #include <dt-bindings/clock/qcom,rpmh.h> 12 #include <dt-bindings/clock/qcom,sm6350-camcc.h> 13 #include <dt-bindings/dma/qcom-gpi.h> 14 #include <dt-bindings/gpio/gpio.h> 15 #include <dt-bindings/interconnect/qcom,icc.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 | sm8750.dtsi | 1 // SPDX-License-Identifier: BSD-3-Clause 6 #include <dt-bindings/clock/qcom,rpmh.h> 7 #include <dt-bindings/clock/qcom,sm8750-gcc.h> 8 #include <dt-bindings/clock/qcom,sm8750-tcsr.h> 9 #include <dt-bindings/dma/qcom-gpi.h> 10 #include <dt-bindings/interconnect/qcom,icc.h> 11 #include <dt-bindings/interconnect/qcom,sm8750-rpmh.h> 12 #include <dt-bindings/interrupt-controller/arm-gic.h> 13 #include <dt-bindings/mailbox/qcom-ipcc.h> 14 #include <dt-bindings/power/qcom,rpmhpd.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 | 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 …]
|
/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 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 36 - At the time this documentation was written, the debug driver mainly relies on [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/arch/arm/mach-omap2/ |
H A D | pm33xx-core.c | 1 // SPDX-License-Identifier: GPL-2.0 5 * Copyright (C) 2016-2018 Texas Instruments Incorporated - https://www.ti.com/ 18 #include <linux/platform_data/gpio-omap.h> 33 #include "omap-secure.h" 52 return -ENOMEM; in am43xx_map_scu() 60 pr_warn("WARNING: This platform does not support off-mode, entering DeepSleep suspend.\n"); in am33xx_check_off_mode_enable() 69 * Check for am437x-gp-evm which has the right Hardware design to in am43xx_check_off_mode_enable() 72 if (of_machine_is_compatible("ti,am437x-gp-evm") && enable_off_mode) in am43xx_check_off_mode_enable() 75 pr_warn("WARNING: This platform does not support off-mode, entering DeepSleep suspend.\n"); in am43xx_check_off_mode_enable() 80 static int amx3_common_init(int (*idle)(u32 wfi_flags)) in amx3_common_init() [all …]
|
/linux/Documentation/devicetree/bindings/cpufreq/ |
H A D | qcom-cpufreq-nvmem.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/cpufreq/qcom-cpufreq-nvmem.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Ilia Lin <ilia.lin@kernel.org> 16 CPR provides a power domain with multiple levels that are selected depending 17 on the CPU OPP in use. The CPUFreq driver sets the CPR power domain level 28 - qcom,apq8064 29 - qcom,apq8096 30 - qcom,ipq5332 [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. 20 if (dev->power.subsys_data && dev->power.subsys_data->domain_data) { in dev_update_qos_constraint() 21 struct gpd_timing_data *td = dev_gpd_data(dev)->td; in dev_update_qos_constraint() 24 * Only take suspend-time QoS constraints of devices into in dev_update_qos_constraint() 30 constraint_ns = td ? td->effective_constraint_ns : in dev_update_qos_constraint() 34 * The child is not in a domain and there's no info on its in dev_update_qos_constraint() 50 * default_suspend_ok - Default PM domain governor routine to suspend devices. 57 struct gpd_timing_data *td = dev_gpd_data(dev)->td; in default_suspend_ok() 63 spin_lock_irqsave(&dev->power.lock, flags); in default_suspend_ok() [all …]
|
H A D | core.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * drivers/base/power/domain.c - Common code related to device power domains. 37 __routine = genpd->dev_ops.callback; \ 56 mutex_lock(&genpd->mlock); in genpd_lock_mtx() 62 mutex_lock_nested(&genpd->mlock, depth); in genpd_lock_nested_mtx() 67 return mutex_lock_interruptible(&genpd->mlock); in genpd_lock_interruptible_mtx() 72 return mutex_unlock(&genpd->mlock); in genpd_unlock_mtx() 83 __acquires(&genpd->slock) in genpd_lock_spin() 87 spin_lock_irqsave(&genpd->slock, flags); in genpd_lock_spin() 88 genpd->lock_flags = flags; in genpd_lock_spin() [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 22 ----------------- 24 A 'cpu' event class gathers the CPU-related events: cpuidle and 39 Note: the value of '-1' or '4294967295' for state means an exit from the current state, 41 enters the idle state 4, while trace_cpu_idle(PWR_EVENT_EXIT, smp_processor_id()) 42 means that the system exits the previous idle state. 46 correctly draw the states diagrams and to calculate accurate statistics etc. [all …]
|
/linux/Documentation/devicetree/bindings/opp/ |
H A D | opp-v2-kryo-cpu.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/opp/opp-v2-kryo-cpu.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Ilia Lin <ilia.lin@kernel.org> 13 - $ref: opp-v2-base.yaml# 22 The qcom-cpufreq-nvmem driver reads the efuse value from the SoC to provide 25 operating-points-v2 table when it is parsed by the OPP framework. 30 - operating-points-v2-krait-cpu 31 - operating-points-v2-kryo-cpu [all …]
|
/linux/Documentation/devicetree/bindings/mmc/ |
H A D | ti-omap-hsmmc.txt | 10 -------------------- 11 - compatible: 12 Should be "ti,omap2-hsmmc", for OMAP2 controllers 13 Should be "ti,omap3-hsmmc", for OMAP3 controllers 14 Should be "ti,omap3-pre-es3-hsmmc" for OMAP3 controllers pre ES3.0 15 Should be "ti,omap4-hsmmc", for OMAP4 controllers 16 Should be "ti,am33xx-hsmmc", for AM335x controllers 17 Should be "ti,k2g-hsmmc", "ti,omap4-hsmmc" for 66AK2G controllers. 20 --------------------------------- 22 - ti,hwmods: Must be "mmc<n>", n is controller instance starting 1. [all …]
|
/linux/include/linux/ |
H A D | pm_domain.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 3 * pm_domain.h - Definitions and headers related to device power domains. 25 * PD_FLAG_NO_DEV_LINK: As the default behaviour creates a device-link 26 * for every PM domain that gets attached, this 29 * PD_FLAG_DEV_LINK_ON: Add the DL_FLAG_RPM_ACTIVE to power-on the 30 * supplier and its PM domain when creating the 31 * device-links. 37 * index for the attached PM domain. 68 * ->power_on|off(), doesn't sleep. Hence, these 70 * enables genpd to power on/off the PM domain, [all …]
|