Home
last modified time | relevance | path

Searched +full:pm +full:- +full:domains (Results 1 – 25 of 266) sorted by relevance

1234567891011

/openbmc/linux/Documentation/devicetree/bindings/power/
H A Dpower_domain.txt1 * Generic PM domains
3 System on chip designs are often divided into multiple PM domains that can be
7 This device tree binding can be used to bind PM domain consumer devices with
8 their PM domains provided by PM domain providers. A PM domain provider can be
9 represented by any node in the device tree and can provide one or more PM
10 domains. A consumer node can refer to the provider by a phandle and a set of
11 phandle arguments (so called PM domain specifiers) of length specified by the
12 #power-domain-cells property in the PM domain provider node.
14 ==PM domain providers==
16 See power-domain.yaml.
[all …]
H A Dpower-domain.yaml1 # 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#
7 title: Generic PM domains
10 - Rafael J. Wysocki <rjw@rjwysocki.net>
11 - Kevin Hilman <khilman@kernel.org>
12 - Ulf Hansson <ulf.hansson@linaro.org>
15 System on chip designs are often divided into multiple PM domains that can be
19 This device tree binding can be used to bind PM domain consumer devices with
[all …]
H A Drenesas,sysc-rmobile.yaml1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
3 ---
4 $id: http://devicetree.org/schemas/power/renesas,sysc-rmobile.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Renesas R-Mobile System Controller
10 - Geert Uytterhoeven <geert+renesas@glider.be>
11 - Magnus Damm <magnus.damm@gmail.com>
14 The R-Mobile System Controller provides the following functions:
15 - Boot mode management,
16 - Reset generation,
[all …]
/openbmc/linux/Documentation/devicetree/bindings/arm/ux500/
H A Dpower_domain.txt1 * ST-Ericsson UX500 PM Domains
3 UX500 supports multiple PM domains which are used to gate power to one or
6 The implementation of PM domains for UX500 are based upon the generic PM domain
9 ==PM domain providers==
12 - compatible: Must be "stericsson,ux500-pm-domains".
13 - #power-domain-cells : Number of cells in a power domain specifier, must be 1.
17 compatible = "stericsson,ux500-pm-domains";
18 #power-domain-cells = <1>;
21 ==PM domain consumers==
24 - power-domains: A phandle and PM domain specifier. Below are the list of
[all …]
/openbmc/linux/drivers/pmdomain/xilinx/
H A Dzynqmp-pm-domains.c1 // SPDX-License-Identifier: GPL-2.0
3 * ZynqMP Generic PM domain support
5 * Copyright (C) 2015-2019 Xilinx, Inc.
20 #include <linux/firmware/xlnx-zynqmp.h>
27 * struct zynqmp_pm_domain - Wrapper around struct generic_pm_domain
29 * @node_id: PM node ID corresponding to device inside PM domain
30 * @requested: The PM node mapped to the PM domain has been requested
42 * zynqmp_gpd_is_active_wakeup_path() - Check if device is in wakeup source
65 * zynqmp_gpd_power_on() - Power on PM domain
66 * @domain: Generic PM domain
[all …]
/openbmc/linux/drivers/soc/amlogic/
H A DKconfig1 # SPDX-License-Identifier: GPL-2.0-only
30 tristate "Amlogic Meson GX Power Domains driver"
32 depends on PM && OF
37 Say yes to expose Amlogic Meson GX Power Domains as
38 Generic Power Domains.
41 tristate "Amlogic Meson Everything-Else Power Domains driver"
43 depends on PM && OF
48 Say yes to expose Amlogic Meson Everything-Else Power Domains as
49 Generic Power Domains.
52 tristate "Amlogic Meson Secure Power Domains driver"
[all …]
/openbmc/linux/Documentation/devicetree/bindings/bus/
H A Dsimple-pm-bus.yaml1 # SPDX-License-Identifier: GPL-2.0
3 ---
4 $id: http://devicetree.org/schemas/bus/simple-pm-bus.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Simple Power-Managed Bus
10 - Geert Uytterhoeven <geert+renesas@glider.be>
13 A Simple Power-Managed Bus is a transparent bus that doesn't need a real
16 However, its bus controller is part of a PM domain, or under the control
17 of a functional clock. Hence, the bus controller's PM domain and/or
19 on-SoC or externally) to function.
[all …]
H A Dfsl,imx8qxp-pixel-link-msi-bus.yaml1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
3 ---
4 $id: http://devicetree.org/schemas/bus/fsl,imx8qxp-pixel-link-msi-bus.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
10 - Liu Ying <victor.liu@nxp.com>
18 i.MX8qxp pixel link MSI bus is a simple memory-mapped bus. Two input clocks,
35 - $ref: simple-pm-bus.yaml#
37 # We need a select here so we don't match all nodes with 'simple-pm-bus'.
43 - fsl,imx8qxp-display-pixel-link-msi-bus
44 - fsl,imx8qm-display-pixel-link-msi-bus
[all …]
/openbmc/linux/drivers/base/power/
H A Dcommon.c1 // SPDX-License-Identifier: GPL-2.0
3 * drivers/base/power/common.c - Common device power management code.
18 * dev_pm_get_subsys_data - Create or refcount power.subsys_data for device.
31 return -ENOMEM; in dev_pm_get_subsys_data()
33 spin_lock_irq(&dev->power.lock); in dev_pm_get_subsys_data()
35 if (dev->power.subsys_data) { in dev_pm_get_subsys_data()
36 dev->power.subsys_data->refcount++; in dev_pm_get_subsys_data()
38 spin_lock_init(&psd->lock); in dev_pm_get_subsys_data()
39 psd->refcount = 1; in dev_pm_get_subsys_data()
40 dev->power.subsys_data = psd; in dev_pm_get_subsys_data()
[all …]
H A Ddomain.c1 // SPDX-License-Identifier: GPL-2.0
3 * drivers/base/power/domain.c - Common code related to device power domains.
7 #define pr_fmt(fmt) "PM: " fmt
35 __routine = genpd->dev_ops.callback; \
54 mutex_lock(&genpd->mlock); in genpd_lock_mtx()
60 mutex_lock_nested(&genpd->mlock, depth); in genpd_lock_nested_mtx()
65 return mutex_lock_interruptible(&genpd->mlock); in genpd_lock_interruptible_mtx()
70 return mutex_unlock(&genpd->mlock); in genpd_unlock_mtx()
81 __acquires(&genpd->slock) in genpd_lock_spin()
85 spin_lock_irqsave(&genpd->slock, flags); in genpd_lock_spin()
[all …]
/openbmc/linux/drivers/pmdomain/renesas/
H A Drmobile-sysc.c1 // SPDX-License-Identifier: GPL-2.0
9 * based on pm-sh7372.c
19 #include <linux/pm.h>
49 unsigned int mask = BIT(rmobile_pd->bit_shift); in rmobile_pd_power_down()
52 if (rmobile_pd->suspend) { in rmobile_pd_power_down()
53 int ret = rmobile_pd->suspend(); in rmobile_pd_power_down()
59 if (readl(rmobile_pd->base + PSTR) & mask) { in rmobile_pd_power_down()
60 writel(mask, rmobile_pd->base + SPDCR); in rmobile_pd_power_down()
62 readl_poll_timeout_atomic(rmobile_pd->base + SPDCR, val, in rmobile_pd_power_down()
66 pr_debug("%s: Power off, 0x%08x -> PSTR = 0x%08x\n", genpd->name, mask, in rmobile_pd_power_down()
[all …]
H A Drcar-gen4-sysc.c1 // SPDX-License-Identifier: GPL-2.0
3 * R-Car Gen4 SYSC Power management support
22 #include "rcar-gen4-sysc.h"
26 #define SYSCPONSR(x) (0x800 + ((x) * 0x4)) /* Power-ON Status Register 0 */
27 #define SYSCPOFFSR(x) (0x808 + ((x) * 0x4)) /* Power-OFF Status Register */
39 #define PWRON_PWROFF BIT(0) /* Power-ON/OFF request */
45 #define PDRSR_OFF BIT(0) /* Power-OFF state */
46 #define PDRSR_ON BIT(4) /* Power-ON state */
47 #define PDRSR_OFF_STATE BIT(8) /* Processing Power-OFF sequence */
48 #define PDRSR_ON_STATE BIT(12) /* Processing Power-ON sequence */
[all …]
H A Drcar-sysc.c1 // SPDX-License-Identifier: GPL-2.0
3 * R-Car SYSC Power management support
6 * Copyright (C) 2015-2017 Glider bvba
19 #include <linux/soc/renesas/rcar-sysc.h>
21 #include "rcar-sysc.h"
37 * Use WFI to power off, CPG/APMU to resume ARM cores on R-Car Gen2
38 * Use PSCI on R-Car Gen3
57 #define RCAR_PD_ALWAYS_ON 32 /* Always-on power area */
88 return -EAGAIN; in rcar_sysc_pwr_on_off()
91 iowrite32(BIT(sysc_ch->chan_bit), in rcar_sysc_pwr_on_off()
[all …]
/openbmc/u-boot/doc/device-tree-bindings/power/
H A Dti,sci-pm-domain.txt11 PM Domain Node
13 The PM domain node represents the global PM domain managed by the SYSFW. Because
18 --------------------
19 - compatible: Must be "ti,sci-pm-domain"
20 - #power-domain-cells: Must be 1 so that an id can be provided in each
24 ----------------
26 compatible = "ti,am654-system-controller";
28 k3_pds: power-controller {
29 compatible = "ti,sci-pm-domain";
30 #power-domain-cells = <1>;
[all …]
/openbmc/linux/drivers/soc/bcm/
H A DKconfig1 # SPDX-License-Identifier: GPL-2.0-only
8 select PM_GENERIC_DOMAINS if PM
11 This enables support for the BCM2835 power domains and reset
12 controller. Any usage of power domains by the Raspberry Pi
20 select PM_GENERIC_DOMAINS if PM
22 This enables support for the RPi power domains which can be enabled
39 Enables drivers for the Broadcom Set-Top Box (STB) series of chips.
49 select PM_GENERIC_DOMAINS if PM
59 select PM_GENERIC_DOMAINS if PM
61 This enables support for the BCM63xx power domains controller on
/openbmc/linux/drivers/pmdomain/st/
H A Dste-ux500-pm-domain.c1 // SPDX-License-Identifier: GPL-2.0-only
7 * Implements PM domains using the generic PM domain for ux500.
18 #include <dt-bindings/arm/ux500_pm_domains.h>
23 * Handle the gating of the PM domain regulator here. in pd_power_off()
25 * Drivers/subsystems handling devices in the PM domain needs to perform in pd_power_off()
26 * register context save/restore from their respective runtime PM in pd_power_off()
27 * callbacks, to be able to enable PM domain gating/ungating. in pd_power_off()
35 * Handle the ungating of the PM domain regulator here. in pd_power_on()
37 * Drivers/subsystems handling devices in the PM domain needs to perform in pd_power_on()
38 * register context save/restore from their respective runtime PM in pd_power_on()
[all …]
/openbmc/linux/drivers/pmdomain/bcm/
H A Dbcm2835-power.c1 // SPDX-License-Identifier: GPL-2.0+
8 #include <dt-bindings/soc/bcm2835-pm.h>
12 #include <linux/mfd/bcm2835-pm.h>
16 #include <linux/reset-controller.h>
109 #define PM_READ(reg) readl(power->base + (reg))
110 #define PM_WRITE(reg, val) writel(PM_PASSWORD | (val), power->base + (reg))
140 /* PM registers. */
148 struct bcm2835_power_domain domains[BCM2835_POWER_DOMAIN_COUNT]; member
154 void __iomem *base = power->asb; in bcm2835_asb_control()
163 if (power->rpivid_asb) in bcm2835_asb_control()
[all …]
/openbmc/linux/drivers/pmdomain/mediatek/
H A Dmtk-pm-domains.c1 // SPDX-License-Identifier: GPL-2.0-only
6 #include <linux/clk-provider.h>
19 #include "mt6795-pm-domains.h"
20 #include "mt8167-pm-domains.h"
21 #include "mt8173-pm-domains.h"
22 #include "mt8183-pm-domains.h"
23 #include "mt8186-pm-domains.h"
24 #include "mt8188-pm-domains.h"
25 #include "mt8192-pm-domains.h"
26 #include "mt8195-pm-domains.h"
[all …]
/openbmc/linux/Documentation/devicetree/bindings/soc/bcm/
H A Dbrcm,bcm2835-pm.yaml1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
3 ---
4 $id: http://devicetree.org/schemas/soc/bcm/brcm,bcm2835-pm.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: BCM2835 PM (Power domains, watchdog)
10 The PM block controls power domains and some reset lines, and includes a
14 - Nicolas Saenz Julienne <nsaenz@kernel.org>
17 - $ref: /schemas/watchdog/watchdog.yaml#
22 - enum:
23 - brcm,bcm2835-pm
[all …]
/openbmc/linux/drivers/soc/xilinx/
H A DKconfig1 # SPDX-License-Identifier: GPL-2.0
6 depends on PM && ZYNQMP_FIRMWARE
20 bool "Enable Zynq MPSoC generic PM domains"
22 depends on PM && ZYNQMP_FIRMWARE
25 Say yes to enable device power management through PM domains
/openbmc/linux/drivers/cpuidle/
H A Dcpuidle-psci-domain.c1 // 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()
37 if (!state->data) in psci_pd_power_off()
41 return -EBUSY; in psci_pd_power_off()
44 pd_state = state->data; in psci_pd_power_off()
55 int ret = -ENOMEM; in psci_pd_init()
65 pd->flags |= GENPD_FLAG_IRQ_SAFE | GENPD_FLAG_CPU_DOMAIN; in psci_pd_init()
72 pd->power_off = psci_pd_power_off; in psci_pd_init()
[all …]
/openbmc/linux/Documentation/driver-api/pm/
H A Ddevices.rst1 .. SPDX-License-Identifier: GPL-2.0
10 :Copyright: |copy| 2010-2011 Rafael J. Wysocki <rjw@sisk.pl>, Novell Inc.
18 management (PM) code is also driver-specific. Most drivers will do very
22 This writeup gives an overview of how drivers interact with system-wide
25 background for the domain-specific work you'd do with any specific driver.
31 Drivers will use one or both of these models to put devices into low-power
36 Drivers can enter low-power states as part of entering system-wide
37 low-power states like "suspend" (also known as "suspend-to-RAM"), or
39 "suspend-to-disk").
42 by implementing various role-specific suspend and resume methods to
[all …]
/openbmc/linux/Documentation/trace/
H A Devents-power.rst8 - 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,
62 3. Power domains events
64 The power domain events are used for power domains transitions
72 4. PM QoS events
[all …]
/openbmc/linux/Documentation/devicetree/bindings/usb/
H A Dti,am62-usb.yaml1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
3 ---
4 $id: http://devicetree.org/schemas/usb/ti,am62-usb.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: TI's AM62 wrapper module for the Synopsys USBSS-DRD controller
10 - Aswath Govindraju <a-govindraju@ti.com>
14 const: ti,am62-usb
21 power-domains:
23 PM domain provider node and an args specifier containing
25 Documentation/devicetree/bindings/soc/ti/sci-pm-domain.yaml
[all …]
/openbmc/linux/drivers/gpu/drm/nouveau/nvkm/engine/pm/
H A Dbase.c36 nvkm_pm_count_perfdom(struct nvkm_pm *pm) in nvkm_pm_count_perfdom() argument
41 list_for_each_entry(dom, &pm->domains, head) in nvkm_pm_count_perfdom()
53 for (i = 0; i < dom->signal_nr; i++) { in nvkm_perfdom_count_perfsig()
54 if (dom->signal[i].name) in nvkm_perfdom_count_perfsig()
62 nvkm_perfdom_find(struct nvkm_pm *pm, int di) in nvkm_perfdom_find() argument
67 list_for_each_entry(dom, &pm->domains, head) { in nvkm_perfdom_find()
75 nvkm_perfsig_find(struct nvkm_pm *pm, u8 di, u8 si, struct nvkm_perfdom **pdom) in nvkm_perfsig_find() argument
80 dom = nvkm_perfdom_find(pm, di); in nvkm_perfsig_find()
86 if (!dom->signal[si].name) in nvkm_perfsig_find()
88 return &dom->signal[si]; in nvkm_perfsig_find()
[all …]

1234567891011