/Linux-v5.15/drivers/base/power/ |
D | runtime.c | 69 if (dev->power.disable_depth > 0) in update_pm_runtime_accounting() 72 last = dev->power.accounting_timestamp; in update_pm_runtime_accounting() 75 dev->power.accounting_timestamp = now; in update_pm_runtime_accounting() 87 if (dev->power.runtime_status == RPM_SUSPENDED) in update_pm_runtime_accounting() 88 dev->power.suspended_time += delta; in update_pm_runtime_accounting() 90 dev->power.active_time += delta; in update_pm_runtime_accounting() 96 dev->power.runtime_status = status; in __update_runtime_status() 104 spin_lock_irqsave(&dev->power.lock, flags); in rpm_get_accounted_time() 107 time = suspended ? dev->power.suspended_time : dev->power.active_time; in rpm_get_accounted_time() 109 spin_unlock_irqrestore(&dev->power.lock, flags); in rpm_get_accounted_time() [all …]
|
D | qos.c | 54 struct dev_pm_qos *qos = dev->power.qos; in __dev_pm_qos_flags() 58 lockdep_assert_held(&dev->power.lock); in __dev_pm_qos_flags() 84 spin_lock_irqsave(&dev->power.lock, irqflags); in dev_pm_qos_flags() 86 spin_unlock_irqrestore(&dev->power.lock, irqflags); in dev_pm_qos_flags() 100 lockdep_assert_held(&dev->power.lock); in __dev_pm_qos_resume_latency() 112 struct dev_pm_qos *qos = dev->power.qos; in dev_pm_qos_read_value() 116 spin_lock_irqsave(&dev->power.lock, flags); in dev_pm_qos_read_value() 136 spin_unlock_irqrestore(&dev->power.lock, flags); in dev_pm_qos_read_value() 153 struct dev_pm_qos *qos = req->dev->power.qos; in apply_constraint() 169 req->dev->power.set_latency_tolerance(req->dev, value); in apply_constraint() [all …]
|
D | sysfs.c | 105 dev->power.runtime_auto ? ctrl_auto : ctrl_on); in control_show() 155 if (dev->power.runtime_error) { in runtime_status_show() 157 } else if (dev->power.disable_depth) { in runtime_status_show() 160 switch (dev->power.runtime_status) { in runtime_status_show() 186 if (!dev->power.use_autosuspend) in autosuspend_delay_ms_show() 189 return sysfs_emit(buf, "%d\n", dev->power.autosuspend_delay); in autosuspend_delay_ms_show() 197 if (!dev->power.use_autosuspend) in autosuspend_delay_ms_store() 248 ret = dev_pm_qos_update_request(dev->power.qos->resume_latency_req, in pm_qos_resume_latency_us_store() 355 spin_lock_irq(&dev->power.lock); in wakeup_count_show() 356 if (dev->power.wakeup) { in wakeup_count_show() [all …]
|
D | main.c | 100 dev->power.is_prepared = false; in device_pm_sleep_init() 101 dev->power.is_suspended = false; in device_pm_sleep_init() 102 dev->power.is_noirq_suspended = false; in device_pm_sleep_init() 103 dev->power.is_late_suspended = false; in device_pm_sleep_init() 104 init_completion(&dev->power.completion); in device_pm_sleep_init() 105 complete_all(&dev->power.completion); in device_pm_sleep_init() 106 dev->power.wakeup = NULL; in device_pm_sleep_init() 107 INIT_LIST_HEAD(&dev->power.entry); in device_pm_sleep_init() 140 if (dev->parent && dev->parent->power.is_prepared) in device_pm_add() 143 list_add_tail(&dev->power.entry, &dpm_list); in device_pm_add() [all …]
|
/Linux-v5.15/drivers/staging/nvec/ |
D | nvec_power.c | 87 struct nvec_power *power = in nvec_power_notifier() local 95 if (power->on != res->plu) { in nvec_power_notifier() 96 power->on = res->plu; in nvec_power_notifier() 109 static void get_bat_mfg_data(struct nvec_power *power) in get_bat_mfg_data() argument 116 nvec_write_async(power->nvec, buf, 2); in get_bat_mfg_data() 123 struct nvec_power *power = in nvec_power_bat_notifier() local 134 if (power->bat_present == 0) { in nvec_power_bat_notifier() 136 get_bat_mfg_data(power); in nvec_power_bat_notifier() 139 power->bat_present = 1; in nvec_power_bat_notifier() 143 power->bat_status = in nvec_power_bat_notifier() [all …]
|
/Linux-v5.15/drivers/power/supply/ |
D | axp20x_usb_power.c | 77 static bool axp20x_usb_vbus_needs_polling(struct axp20x_usb_power *power) in axp20x_usb_vbus_needs_polling() argument 84 if (power->axp20x_id >= AXP221_ID && !power->online) in axp20x_usb_vbus_needs_polling() 92 struct axp20x_usb_power *power = devid; in axp20x_usb_power_irq() local 94 power_supply_changed(power->supply); in axp20x_usb_power_irq() 96 mod_delayed_work(system_power_efficient_wq, &power->vbus_detect, DEBOUNCE_TIME); in axp20x_usb_power_irq() 103 struct axp20x_usb_power *power = in axp20x_usb_power_poll_vbus() local 108 ret = regmap_read(power->regmap, AXP20X_PWR_INPUT_STATUS, &val); in axp20x_usb_power_poll_vbus() 113 if (val != power->old_status) in axp20x_usb_power_poll_vbus() 114 power_supply_changed(power->supply); in axp20x_usb_power_poll_vbus() 116 power->old_status = val; in axp20x_usb_power_poll_vbus() [all …]
|
D | axp20x_ac_power.c | 54 struct axp20x_ac_power *power = devid; in axp20x_ac_power_irq() local 56 power_supply_changed(power->supply); in axp20x_ac_power_irq() 65 struct axp20x_ac_power *power = power_supply_get_drvdata(psy); in axp20x_ac_power_get_property() local 70 ret = regmap_read(power->regmap, AXP20X_PWR_INPUT_STATUS, ®); in axp20x_ac_power_get_property() 83 ret = regmap_read(power->regmap, AXP20X_PWR_INPUT_STATUS, ®); in axp20x_ac_power_get_property() 91 ret = regmap_read(power->regmap, AXP20X_PWR_INPUT_STATUS, ®); in axp20x_ac_power_get_property() 98 if (val->intval && power->has_acin_path_sel) { in axp20x_ac_power_get_property() 99 ret = regmap_read(power->regmap, AXP813_ACIN_PATH_CTRL, in axp20x_ac_power_get_property() 110 ret = iio_read_channel_processed(power->acin_v, &val->intval); in axp20x_ac_power_get_property() 120 ret = iio_read_channel_processed(power->acin_i, &val->intval); in axp20x_ac_power_get_property() [all …]
|
D | wm831x_power.c | 536 struct wm831x_power *power; in wm831x_power_probe() local 539 power = devm_kzalloc(&pdev->dev, sizeof(struct wm831x_power), in wm831x_power_probe() 541 if (power == NULL) in wm831x_power_probe() 544 power->wm831x = wm831x; in wm831x_power_probe() 545 platform_set_drvdata(pdev, power); in wm831x_power_probe() 548 snprintf(power->wall_name, sizeof(power->wall_name), in wm831x_power_probe() 550 snprintf(power->battery_name, sizeof(power->wall_name), in wm831x_power_probe() 552 snprintf(power->usb_name, sizeof(power->wall_name), in wm831x_power_probe() 555 snprintf(power->wall_name, sizeof(power->wall_name), in wm831x_power_probe() 557 snprintf(power->battery_name, sizeof(power->wall_name), in wm831x_power_probe() [all …]
|
/Linux-v5.15/drivers/net/ipa/ |
D | ipa_power.c | 111 static int ipa_interconnect_init(struct ipa_power *power, struct device *dev, in ipa_interconnect_init() argument 118 count = power->interconnect_count; in ipa_interconnect_init() 122 power->interconnect = interconnect; in ipa_interconnect_init() 134 while (interconnect-- > power->interconnect) in ipa_interconnect_init() 136 kfree(power->interconnect); in ipa_interconnect_init() 137 power->interconnect = NULL; in ipa_interconnect_init() 143 static void ipa_interconnect_exit(struct ipa_power *power) in ipa_interconnect_exit() argument 147 interconnect = power->interconnect + power->interconnect_count; in ipa_interconnect_exit() 148 while (interconnect-- > power->interconnect) in ipa_interconnect_exit() 150 kfree(power->interconnect); in ipa_interconnect_exit() [all …]
|
/Linux-v5.15/drivers/gpu/drm/msm/dp/ |
D | dp_power.c | 27 static void dp_power_regulator_disable(struct dp_power_private *power) in dp_power_regulator_disable() argument 29 struct regulator_bulk_data *s = power->supplies; in dp_power_regulator_disable() 30 const struct dp_reg_entry *regs = power->parser->regulator_cfg->regs; in dp_power_regulator_disable() 31 int num = power->parser->regulator_cfg->num; in dp_power_regulator_disable() 43 static int dp_power_regulator_enable(struct dp_power_private *power) in dp_power_regulator_enable() argument 45 struct regulator_bulk_data *s = power->supplies; in dp_power_regulator_enable() 46 const struct dp_reg_entry *regs = power->parser->regulator_cfg->regs; in dp_power_regulator_enable() 47 int num = power->parser->regulator_cfg->num; in dp_power_regulator_enable() 77 static int dp_power_regulator_init(struct dp_power_private *power) in dp_power_regulator_init() argument 79 struct regulator_bulk_data *s = power->supplies; in dp_power_regulator_init() [all …]
|
/Linux-v5.15/drivers/soc/bcm/ |
D | bcm2835-power.c | 109 #define PM_READ(reg) readl(power->base + (reg)) 110 #define PM_WRITE(reg, val) writel(PM_PASSWORD | (val), power->base + (reg)) 129 #define ASB_READ(reg) readl(power->asb + (reg)) 130 #define ASB_WRITE(reg, val) writel(PM_PASSWORD | (val), power->asb + (reg)) 134 struct bcm2835_power *power; member 151 static int bcm2835_asb_enable(struct bcm2835_power *power, u32 reg) in bcm2835_asb_enable() argument 171 static int bcm2835_asb_disable(struct bcm2835_power *power, u32 reg) in bcm2835_asb_disable() argument 193 struct bcm2835_power *power = pd->power; in bcm2835_power_power_off() local 209 struct bcm2835_power *power = pd->power; in bcm2835_power_power_on() local 210 struct device *dev = power->dev; in bcm2835_power_power_on() [all …]
|
/Linux-v5.15/Documentation/devicetree/bindings/soc/mediatek/ |
D | scpsys.txt | 4 The System Control Processor System (SCPSYS) has several power management 7 The System Power Manager (SPM) inside the SCPSYS is for the MTCMOS power 11 power/power-domain.yaml. It provides the power domains defined in 12 - include/dt-bindings/power/mt8173-power.h 13 - include/dt-bindings/power/mt6797-power.h 14 - include/dt-bindings/power/mt6765-power.h 15 - include/dt-bindings/power/mt2701-power.h 16 - include/dt-bindings/power/mt2712-power.h 17 - include/dt-bindings/power/mt7622-power.h 30 - #power-domain-cells: Must be 1 [all …]
|
/Linux-v5.15/drivers/soc/bcm/bcm63xx/ |
D | bcm63xx-power.c | 21 struct bcm63xx_power *power; member 41 struct bcm63xx_power *power = pmd->power; in bcm63xx_power_get_state() local 48 *is_on = !(__raw_readl(power->base) & pmd->mask); in bcm63xx_power_get_state() 55 struct bcm63xx_power *power = pmd->power; in bcm63xx_power_set_state() local 62 spin_lock_irqsave(&power->lock, flags); in bcm63xx_power_set_state() 63 val = __raw_readl(power->base); in bcm63xx_power_set_state() 68 __raw_writel(val, power->base); in bcm63xx_power_set_state() 69 spin_unlock_irqrestore(&power->lock, flags); in bcm63xx_power_set_state() 96 struct bcm63xx_power *power; in bcm63xx_power_probe() local 101 power = devm_kzalloc(dev, sizeof(*power), GFP_KERNEL); in bcm63xx_power_probe() [all …]
|
/Linux-v5.15/Documentation/devicetree/bindings/power/ |
D | power_domain.txt | 4 used for power gating of selected IP blocks for power saving by reduced leakage 12 #power-domain-cells property in the PM domain provider node. 16 See power-domain.yaml. 21 - power-domains : A list of PM domain specifiers, as defined by bindings of 22 the power controller that is the PM domain provider. 25 - power-domain-names : A list of power domain name strings sorted in the same 26 order as the power-domains property. Consumers drivers will use 27 power-domain-names to match power domains with power-domains 35 power-domains = <&power 0>; 36 power-domain-names = "io"; [all …]
|
/Linux-v5.15/arch/arm/boot/dts/ |
D | bcm2835-rpi.dtsi | 1 #include <dt-bindings/power/raspberrypi-power.h> 24 power: power { label 25 compatible = "raspberrypi,bcm2835-power"; 27 #power-domain-cells = <1>; 67 power-domains = <&power RPI_POWER_DOMAIN_USB>; 71 power-domains = <&power RPI_POWER_DOMAIN_VEC>; 76 power-domains = <&power RPI_POWER_DOMAIN_DSI0>; 80 power-domains = <&power RPI_POWER_DOMAIN_DSI1>;
|
/Linux-v5.15/Documentation/devicetree/bindings/soc/bcm/ |
D | raspberrypi,bcm2835-power.txt | 1 Raspberry Pi power domain driver 5 - compatible: Should be "raspberrypi,bcm2835-power". 7 - #power-domain-cells: Should be <1>, we providing multiple power domains. 9 The valid defines for power domain are: 37 power: power { 38 compatible = "raspberrypi,bcm2835-power"; 40 #power-domain-cells = <1>; 43 Example for using power domain: 46 power-domains = <&power RPI_POWER_DOMAIN_USB>;
|
/Linux-v5.15/arch/powerpc/boot/dts/fsl/ |
D | e6500_power_isa.dtsi | 37 power-isa-version = "2.06"; 38 power-isa-b; // Base 39 power-isa-e; // Embedded 40 power-isa-atb; // Alternate Time Base 41 power-isa-cs; // Cache Specification 42 power-isa-ds; // Decorated Storage 43 power-isa-e.ed; // Embedded.Enhanced Debug 44 power-isa-e.pd; // Embedded.External PID 45 power-isa-e.hv; // Embedded.Hypervisor 46 power-isa-e.le; // Embedded.Little-Endian [all …]
|
D | e5500_power_isa.dtsi | 37 power-isa-version = "2.06"; 38 power-isa-b; // Base 39 power-isa-e; // Embedded 40 power-isa-atb; // Alternate Time Base 41 power-isa-cs; // Cache Specification 42 power-isa-ds; // Decorated Storage 43 power-isa-e.ed; // Embedded.Enhanced Debug 44 power-isa-e.pd; // Embedded.External PID 45 power-isa-e.hv; // Embedded.Hypervisor 46 power-isa-e.le; // Embedded.Little-Endian [all …]
|
/Linux-v5.15/arch/arm64/boot/dts/mediatek/ |
D | mt8167.dtsi | 10 #include <dt-bindings/power/mt8167-power.h> 41 #power-domain-cells = <1>; 43 spm: power-controller { 44 compatible = "mediatek,mt8167-power-controller"; 47 #power-domain-cells = <1>; 49 /* power domains of the SoC */ 50 power-domain@MT8167_POWER_DOMAIN_MM { 54 #power-domain-cells = <0>; 58 power-domain@MT8167_POWER_DOMAIN_VDEC { 63 #power-domain-cells = <0>; [all …]
|
/Linux-v5.15/Documentation/ABI/testing/ |
D | sysfs-class-powercap | 6 The powercap/ class sub directory belongs to the power cap 8 Documentation/power/powercap/powercap.rst for details. 16 Here <control type> determines how the power is going to be 17 controlled. A <control type> can contain multiple power zones. 24 This allows to enable/disable power capping for a "control type". 25 This status affects every power zone using this "control_type. 27 What: /sys/class/powercap/<control type>/<power zone> 32 A power zone is a single or a collection of devices, which can 33 be independently monitored and controlled. A power zone sysfs 37 What: /sys/class/powercap/<control type>/<power zone>/<child power zone> [all …]
|
/Linux-v5.15/Documentation/hwmon/ |
D | occ.rst | 17 sensor data as well as perform thermal and power management on the system. 77 power[1-n]_input 78 Latest measured power reading of the component in 80 power[1-n]_average 81 Average power of the component in microwatts. 82 power[1-n]_average_interval 83 The amount of time over which the power average 86 [with power sensor version < 2] 88 power[1-n]_label 91 [with power sensor version >= 2] [all …]
|
/Linux-v5.15/drivers/usb/musb/ |
D | musb_virthub.c | 25 u8 power; in musb_host_finish_resume() local 31 power = musb_readb(musb->mregs, MUSB_POWER); in musb_host_finish_resume() 32 power &= ~MUSB_POWER_RESUME; in musb_host_finish_resume() 33 musb_dbg(musb, "root port resume stopped, power %02x", power); in musb_host_finish_resume() 34 musb_writeb(musb->mregs, MUSB_POWER, power); in musb_host_finish_resume() 54 u8 power; in musb_port_suspend() local 65 power = musb_readb(mbase, MUSB_POWER); in musb_port_suspend() 69 if (power & MUSB_POWER_RESUME) in musb_port_suspend() 72 if (!(power & MUSB_POWER_SUSPENDM)) { in musb_port_suspend() 73 power |= MUSB_POWER_SUSPENDM; in musb_port_suspend() [all …]
|
/Linux-v5.15/Documentation/power/powercap/ |
D | powercap.rst | 5 The power capping framework provides a consistent interface between the kernel 6 and the user space that allows power capping drivers to expose the settings to 12 The framework exposes power capping devices to user space via sysfs in the 14 'control types', which correspond to different methods of power capping. For 17 corresponds to the use of idle injection for controlling power. 20 monitored using the power capping method determined by the control type the 21 given zone belongs to. They each contain attributes for monitoring power, as 22 well as controls represented in the form of power constraints. If the parts of 23 the system represented by different power zones are hierarchical (that is, one 24 bigger part consists of multiple smaller parts that each have their own power [all …]
|
D | dtpm.rst | 12 Another aspect is to sustain the performance for a given power budget, 15 reduce the battery charging because the dissipated power is too high 16 compared with the power consumed by other devices. 19 different devices by limiting their power given an application 23 the device power by limiting and/or balancing a power budget among 27 device power. 34 driver to do the connection with the power manageable device. 36 The DTPM is a tree representation describing the power constraints 39 The nodes of the tree are a virtual description aggregating the power 40 characteristics of the children nodes and their power limitations. [all …]
|
/Linux-v5.15/Documentation/devicetree/bindings/mfd/ |
D | twl4030-power.txt | 1 Texas Instruments TWL family (twl4030) reset and power management module 3 The power management module inside the TWL family provides several facilities 4 to control the power resources, including power scripts. For now, the 9 "ti,twl4030-power" 10 "ti,twl4030-power-reset" 11 "ti,twl4030-power-idle" 12 "ti,twl4030-power-idle-osc-off" 14 The use of ti,twl4030-power-reset is recommended at least on 17 When using ti,twl4030-power-idle, the TI recommended configuration 20 When using ti,twl4030-power-idle-osc-off, the TI recommended [all …]
|