/openbmc/linux/Documentation/ABI/testing/ |
H A D | sysfs-class-powercap | 4 Contact: linux-pm@vger.kernel.org 13 Contact: linux-pm@vger.kernel.org 22 Contact: linux-pm@vger.kernel.org 30 Contact: linux-pm@vger.kernel.org 35 E.g. intel-rapl:0:1:1. 40 Contact: linux-pm@vger.kernel.org 51 Contact: linux-pm@vger.kernel.org 58 Contact: linux-pm@vger.kernel.org 60 Current energy counter in micro-joules. Write "0" to reset. 62 read-only. [all …]
|
/openbmc/linux/Documentation/power/powercap/ |
H A D | powercap.rst | 15 example, the intel-rapl control type represents the Intel "Running Average 16 Power Limit" (RAPL) technology, whereas the 'idle-injection' control type 35 └──intel-rapl 36 ├──intel-rapl:0 43 │ ├──device -> ../../intel-rapl 45 │ ├──intel-rapl:0:0 52 │ │ ├──device -> ../../intel-rapl:0 60 │ │ ├──subsystem -> ../../../../../../class/power_cap 62 │ ├──intel-rapl:0:1 69 │ │ ├──device -> ../../intel-rapl:0 [all …]
|
/openbmc/linux/include/linux/ |
H A D | powercap.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 24 * struct powercap_control_type_ops - Define control type callbacks 47 * struct powercap_control_type - Defines a powercap control_type 58 * @node: linked-list node 61 * zones, which use same method to control power. E.g. RAPL, RAPL-PCI etc. 75 * struct powercap_zone_ops - Define power zone callbacks 77 * micro-joules. 78 * @get_energy_uj: Get current energy counter in micro-joules. 79 * @reset_energy_uj: Reset micro-joules energy counter. 81 * micro-watts. [all …]
|
H A D | energy_model.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 14 * struct em_perf_state - Performance state of a performance domain 40 * struct em_perf_domain - Performance domain 51 * must have the same micro-architecture. Performance domains often have 52 * a 1-to-1 mapping with CPUFreq policies. In case of other devices the @cpus 65 * EM_PERF_DOMAIN_MICROWATTS: The power values are in micro-Watts or some 78 #define em_span_cpus(em) (to_cpumask((em)->cpus)) 79 #define em_is_artificial(em) ((em)->flags & EM_PERF_DOMAIN_ARTIFICIAL) 83 * The max power value in micro-Watts. The limit of 64 Watts is set as 88 #define EM_MAX_POWER (64000000) /* 64 Watts */ [all …]
|
/openbmc/linux/arch/x86/events/amd/ |
H A D | power.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Performance events - AMD Processor Power Reporting Mechanism 5 * Copyright (C) 2016 Advanced Micro Devices, Inc. 16 /* Event code: LSB 8 bits, passed in attr->config any other bit is reserved. */ 45 struct hw_perf_event *hwc = &event->hw; in event_update() 49 prev_pwr_acc = hwc->pwr_acc; in event_update() 50 prev_ptsc = hwc->ptsc; in event_update() 56 * final value (delta) is micro-Watts. Then add it to the event count. in event_update() 60 delta -= prev_pwr_acc; in event_update() 62 delta = new_pwr_acc - prev_pwr_acc; in event_update() [all …]
|
/openbmc/linux/Documentation/power/ |
H A D | energy-model.rst | 1 .. SPDX-License-Identifier: GPL-2.0 8 ----------- 12 subsystems willing to use that information to make energy-aware decisions. 18 each and every client subsystem to re-implement support for each and every 23 The power values might be expressed in micro-Watts or in an 'abstract scale'. 26 can be found in the Energy-Aware Scheduler documentation 27 Documentation/scheduler/sched-energy.rst. For some subsystems like thermal or 30 thus the real micro-Watts might be needed. An example of these requirements can 32 Documentation/driver-api/thermal/power_allocator.rst. 36 an 'abstract scale' deriving real energy in micro-Joules would not be possible. [all …]
|
/openbmc/linux/drivers/fpga/ |
H A D | dfl-fme-main.c | 1 // SPDX-License-Identifier: GPL-2.0 5 * Copyright (C) 2017-2018 Intel Corporation, Inc. 18 #include <linux/hwmon-sysfs.h> 23 #include <linux/fpga-dfl.h> 26 #include "dfl-fme.h" 141 struct dfl_fpga_cdev *cdev = pdata->dfl_cdev; in fme_hdr_ioctl_release_port() 145 return -EFAULT; in fme_hdr_ioctl_release_port() 153 struct dfl_fpga_cdev *cdev = pdata->dfl_cdev; in fme_hdr_ioctl_assign_port() 157 return -EFAULT; in fme_hdr_ioctl_assign_port() 166 struct dfl_feature_platform_data *pdata = dev_get_platdata(&pdev->dev); in fme_hdr_ioctl() [all …]
|
/openbmc/linux/tools/power/cpupower/utils/ |
H A D | powercap-info.c | 1 // SPDX-License-Identifier: GPL-2.0-only 31 for (i = 0; i < zone->tree_depth && i < POWERCAP_MAX_TREE_DEPTH; i++) in powercap_print_one_zone() 34 printf("%sZone: %s", pr_prefix, zone->name); in powercap_print_one_zone() 40 if (zone->has_power_uw) in powercap_print_one_zone() 41 printf(_("%sPower can be monitored in micro Jules\n"), in powercap_print_one_zone() 44 if (zone->has_energy_uj) in powercap_print_one_zone() 45 printf(_("%sPower can be monitored in micro Watts\n"), in powercap_print_one_zone() 73 return -1; in powercap_show() 103 case -1: in cmd_cap_info()
|
/openbmc/linux/Documentation/devicetree/bindings/iio/adc/ |
H A D | richtek,rtq6056.yaml | 1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 3 --- 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: RTQ6056 Bi-Directional Current and Power Monitor with 16-bit ADC 10 - ChiYuan Huang <cy_huang@richtek.com> 13 The RTQ6056 is a high accuracy current-sense monitor with I2C and SMBus 18 voltage, converts into the current in amperes, and power in watts through 19 internal analog-to-digital converter ADC. The programmable calibration, 24 https://www.richtek.com/assets/product_file/RTQ6056/DSQ6056-00.pdf 33 "#io-channel-cells": [all …]
|
/openbmc/linux/drivers/hwmon/ |
H A D | iio_hwmon.c | 1 // SPDX-License-Identifier: GPL-2.0-only 16 #include <linux/hwmon-sysfs.h> 21 * struct iio_hwmon_state - device instance state 49 struct iio_channel *chan = &state->channels[sattr->index]; in iio_hwmon_read_val() 61 result *= 1000; /* mili-Watts to micro-Watts conversion */ in iio_hwmon_read_val() 68 struct device *dev = &pdev->dev; in iio_hwmon_probe() 81 if (ret == -ENODEV) in iio_hwmon_probe() 82 ret = -EPROBE_DEFER; in iio_hwmon_probe() 89 return -ENOMEM; in iio_hwmon_probe() 91 st->channels = channels; in iio_hwmon_probe() [all …]
|
H A D | corsair-psu.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * corsair-psu.c - Linux driver for Corsair power supplies with HID sensors interface 12 #include <linux/hwmon-sysfs.h> 29 * - commands are byte sized opcodes 30 * - length is the sum of all bytes of the commands/params 31 * - the micro-controller of most of these PSUs support concatenation in the request and reply, 33 * - the driver uses raw events to be accessible from userspace (though this is not really 35 * - a reply always starts with the length and command in the same order the request used it 36 * - length of the reply data is specific to the command used 37 * - some of the commands work on a rail and can be switched to a specific rail (0 = 12v, [all …]
|
H A D | ibmpowernv.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 14 #include <linux/hwmon-sysfs.h> 46 #define INVALID_INDEX (-1U) 53 "ibm,opal-sensor-cooling-fan", 54 "ibm,opal-sensor-amb-temp", 55 "ibm,opal-sensor-power-supply", 56 "ibm,opal-sensor-power" 60 const char *name; /* matches property 'sensor-type' */ 105 if (sdata->sgrp_data && !sdata->sgrp_data->enable) in show_sensor() 106 return -ENODATA; in show_sensor() [all …]
|
/openbmc/linux/Documentation/hwmon/ |
H A D | aquacomputer_d5next.rst | 1 .. SPDX-License-Identifier: GPL-2.0-or-later 3 Kernel driver aquacomputer-d5next 23 ----------- 35 available through debugfs are the serial number, firmware version and power-on 37 temperature curves directly from the pump. If it's not connected, the fan-related 63 filled with coolant. Pump RPM and flow can be set to enhance on-device calculations, 80 ----------- 86 ------------- 89 temp[1-20]_input Physical/virtual temperature sensors (in millidegrees Celsius) 90 temp[1-8]_offset Temperature sensor correction offset (in millidegrees Celsius) [all …]
|
/openbmc/linux/kernel/power/ |
H A D | energy_model.c | 1 // SPDX-License-Identifier: GPL-2.0 5 * Copyright (c) 2018-2021, Arm ltd. 28 return (dev->bus == &cpu_subsys); in _is_cpu_device() 39 snprintf(name, sizeof(name), "ps:%lu", ps->frequency); in em_debug_create_ps() 41 /* Create per-ps directory */ in em_debug_create_ps() 43 debugfs_create_ulong("frequency", 0444, d, &ps->frequency); in em_debug_create_ps() 44 debugfs_create_ulong("power", 0444, d, &ps->power); in em_debug_create_ps() 45 debugfs_create_ulong("cost", 0444, d, &ps->cost); in em_debug_create_ps() 46 debugfs_create_ulong("inefficient", 0444, d, &ps->flags); in em_debug_create_ps() 51 seq_printf(s, "%*pbl\n", cpumask_pr_args(to_cpumask(s->private))); in em_debug_cpus_show() [all …]
|
/openbmc/linux/Documentation/devicetree/bindings/opp/ |
H A D | opp-v2-base.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/opp/opp-v2-base.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Viresh Kumar <viresh.kumar@linaro.org> 13 Devices work at voltage-current-frequency combinations and some implementations 25 pattern: '^opp-table(-[a-z0-9]+)?$' 27 opp-shared: 36 '^opp(-?[0-9]+)*$': 39 One or more OPP nodes describing voltage-current-frequency combinations. [all …]
|
/openbmc/linux/drivers/cpufreq/ |
H A D | mediatek-cpufreq-hw.c | 1 // SPDX-License-Identifier: GPL-2.0 63 policy = cpufreq_cpu_get_raw(cpu_dev->id); in mtk_cpufreq_get_cpu_power() 65 return -EINVAL; in mtk_cpufreq_get_cpu_power() 67 data = policy->driver_data; in mtk_cpufreq_get_cpu_power() 69 for (i = 0; i < data->nr_opp; i++) { in mtk_cpufreq_get_cpu_power() 70 if (data->table[i].frequency < *KHz) in mtk_cpufreq_get_cpu_power() 73 i--; in mtk_cpufreq_get_cpu_power() 75 *KHz = data->table[i].frequency; in mtk_cpufreq_get_cpu_power() 76 /* Provide micro-Watts value to the Energy Model */ in mtk_cpufreq_get_cpu_power() 77 *uW = readl_relaxed(data->reg_bases[REG_EM_POWER_TBL] + in mtk_cpufreq_get_cpu_power() [all …]
|
/openbmc/linux/drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/ |
H A D | smu13_driver_if_v13_0_0.h | 2 * Copyright 2021 Advanced Micro Devices, Inc. 503 uint8_t SnapToDiscrete; // 0 - Fine grained DPM, 1 - Discrete DPM 506 LinearInt_t ConversionToAvfsClk; // Transfer function to AVFS Clock (GHz->GHz) 875 uint16_t Power[PPT_THROTTLER_COUNT][POWER_SOURCE_COUNT]; // Watts 953 …uint16_t SocketPowerLimitAc[PPT_THROTTLER_COUNT]; // In Watts. Power limit that PMFW attempts to c… 954 …uint16_t SocketPowerLimitDc[PPT_THROTTLER_COUNT]; // In Watts. Power limit that PMFW attempts to … 956 uint16_t SocketPowerLimitSmartShift2; // In Watts. Power limit used SmartShift 1007 …uint16_t Vmin_Hot_T0[PMFW_VOLT_PLANE_COUNT]; //In mV(Q2) Initial (pre-aging) Vse… 1008 …uint16_t Vmin_Cold_T0[PMFW_VOLT_PLANE_COUNT]; //In mV(Q2) Initial (pre-aging) Vse… 1009 …uint16_t Vmin_Hot_Eol[PMFW_VOLT_PLANE_COUNT]; //In mV(Q2) End-of-life Vset to be … [all …]
|
H A D | smu13_driver_if_v13_0_7.h | 2 * Copyright 2022 Advanced Micro Devices, Inc. 504 uint8_t SnapToDiscrete; // 0 - Fine grained DPM, 1 - Discrete DPM 507 LinearInt_t ConversionToAvfsClk; // Transfer function to AVFS Clock (GHz->GHz) 884 uint16_t Power[PPT_THROTTLER_COUNT][POWER_SOURCE_COUNT]; // Watts 962 …uint16_t SocketPowerLimitAc[PPT_THROTTLER_COUNT]; // In Watts. Power limit that PMFW attempts to c… 963 …uint16_t SocketPowerLimitDc[PPT_THROTTLER_COUNT]; // In Watts. Power limit that PMFW attempts to … 965 uint16_t SocketPowerLimitSmartShift2; // In Watts. Power limit used SmartShift 1016 …uint16_t Vmin_Hot_T0[PMFW_VOLT_PLANE_COUNT]; //In mV(Q2) Initial (pre-aging) Vse… 1017 …uint16_t Vmin_Cold_T0[PMFW_VOLT_PLANE_COUNT]; //In mV(Q2) Initial (pre-aging) Vse… 1018 …uint16_t Vmin_Hot_Eol[PMFW_VOLT_PLANE_COUNT]; //In mV(Q2) End-of-life Vset to be … [all …]
|
H A D | smu13_driver_if_aldebaran.h | 2 * Copyright 2020 Advanced Micro Devices, Inc. 268 LinearInt_t ConversionToAvfsClk; // Transfer function to AVFS Clock (GHz->GHz) 269 QuadraticInt_t SsCurve; // Slow-slow curve (GHz->V) 280 uint16_t PptLimit; // Watts 388 uint32_t ApccPlusResidencyLimit; //PCC residency % (0-100) 467 // Padding - ignore 502 // Padding - ignore
|
H A D | smu11_driver_if_sienna_cichlid.h | 2 * Copyright 2020 Advanced Micro Devices, Inc. 53 #define MAX_GFXCLK_DPM_LEVEL (NUM_GFXCLK_DPM_LEVELS - 1) 54 #define MAX_SMNCLK_DPM_LEVEL (NUM_SMNCLK_DPM_LEVELS - 1) 55 #define MAX_SOCCLK_DPM_LEVEL (NUM_SOCCLK_DPM_LEVELS - 1) 56 #define MAX_MP0CLK_DPM_LEVEL (NUM_MP0CLK_DPM_LEVELS - 1) 57 #define MAX_DCLK_DPM_LEVEL (NUM_DCLK_DPM_LEVELS - 1) 58 #define MAX_VCLK_DPM_LEVEL (NUM_VCLK_DPM_LEVELS - 1) 59 #define MAX_DCEFCLK_DPM_LEVEL (NUM_DCEFCLK_DPM_LEVELS - 1) 60 #define MAX_DISPCLK_DPM_LEVEL (NUM_DISPCLK_DPM_LEVELS - 1) 61 #define MAX_PIXCLK_DPM_LEVEL (NUM_PIXCLK_DPM_LEVELS - 1) [all …]
|
/openbmc/linux/drivers/gpu/drm/amd/pm/powerplay/inc/ |
H A D | smu9_driver_if.h | 2 * Copyright 2016 Advanced Micro Devices, Inc. 46 #define MAX_GFXCLK_DPM_LEVEL (NUM_GFXCLK_DPM_LEVELS - 1) 47 #define MAX_UVD_DPM_LEVEL (NUM_UVD_DPM_LEVELS - 1) 48 #define MAX_VCE_DPM_LEVEL (NUM_VCE_DPM_LEVELS - 1) 49 #define MAX_MP0CLK_DPM_LEVEL (NUM_MP0CLK_DPM_LEVELS - 1) 50 #define MAX_UCLK_DPM_LEVEL (NUM_UCLK_DPM_LEVELS - 1) 51 #define MAX_SOCCLK_DPM_LEVEL (NUM_SOCCLK_DPM_LEVELS - 1) 52 #define MAX_DCEFCLK_DPM_LEVEL (NUM_DCEFCLK_DPM_LEVELS - 1) 53 #define MAX_LINK_DPM_LEVEL (NUM_LINK_LEVELS - 1) 65 #define MAX_EVV_VOLTAGE_LEVEL (NUM_EVV_VOLTAGE_LEVELS - 1) [all …]
|
/openbmc/linux/drivers/gpu/drm/amd/include/ |
H A D | amd_acpi.h | 2 * Copyright 2012 Advanced Micro Devices, Inc. 48 u8 thermal_state; /* thermal state: state id (0: exit state, non-0: state) */ 52 u8 backlight_level; /* panel backlight level (0-255) */ 64 u8 ipnut_signal; /* input signal in range 0-255 */ 73 u8 min_input_signal; /* max input signal in range 0-255 */ 74 u8 max_input_signal; /* min input signal in range 0-255 */ 94 u16 client_id; /* client id (bit 2-0: func num, 7-3: dev num, 15-8: bus num) */ 108 u16 dgpu_id; /* client id (bit 2-0: func num, 7-3: dev num, 15-8: bus num) */ 154 * WORD - structure size in bytes (includes size field) 155 * WORD - version [all …]
|
/openbmc/linux/drivers/gpu/drm/amd/pm/swsmu/smu13/ |
H A D | yellow_carp_ppt.c | 2 * Copyright 2020 Advanced Micro Devices, Inc. 153 struct smu_table_context *smu_table = &smu->smu_table; in yellow_carp_init_smc_tables() 154 struct smu_table *tables = smu_table->tables; in yellow_carp_init_smc_tables() 163 smu_table->clocks_table = kzalloc(sizeof(DpmClocks_t), GFP_KERNEL); in yellow_carp_init_smc_tables() 164 if (!smu_table->clocks_table) in yellow_carp_init_smc_tables() 167 smu_table->metrics_table = kzalloc(sizeof(SmuMetrics_t), GFP_KERNEL); in yellow_carp_init_smc_tables() 168 if (!smu_table->metrics_table) in yellow_carp_init_smc_tables() 170 smu_table->metrics_time = 0; in yellow_carp_init_smc_tables() 172 smu_table->watermarks_table = kzalloc(sizeof(Watermarks_t), GFP_KERNEL); in yellow_carp_init_smc_tables() 173 if (!smu_table->watermarks_table) in yellow_carp_init_smc_tables() [all …]
|
/openbmc/linux/drivers/gpu/drm/amd/pm/swsmu/inc/ |
H A D | amdgpu_smu.h | 2 * Copyright 2019 Advanced Micro Devices, Inc. 215 SMU_PPT_LIMIT_MIN = -1, 571 * struct pptable_funcs - Callbacks used to interact with the SMU. 1039 * @set_power_limit: Set power limit in watts. 1096 * @set_xgmi_pstate: Set inter-chip global memory interconnect pstate. 1111 * 0 - GFXOFF(default). 1112 * 1 - Transition out of GFX State. 1113 * 2 - Not in GFXOFF. 1114 * 3 - Transition into GFXOFF. 1120 * query since system power-up [all …]
|
/openbmc/linux/drivers/opp/ |
H A D | of.c | 1 // SPDX-License-Identifier: GPL-2.0-only 5 * Copyright (C) 2009-2010 Texas Instruments Incorporated. 34 /* "operating-points-v2" can be an array for power domain providers */ in _opp_of_get_opp_desc_node() 35 return of_parse_phandle(np, "operating-points-v2", index); in _opp_of_get_opp_desc_node() 41 return _opp_of_get_opp_desc_node(dev->of_node, 0); in dev_pm_opp_of_get_opp_desc_node() 50 np = _opp_of_get_opp_desc_node(dev->of_node, index); in _managed_opp() 55 if (opp_table->np == np) { in _managed_opp() 58 * so will have same node-pointer, np. in _managed_opp() 61 * OPP table contains a "opp-shared" property. in _managed_opp() 63 if (opp_table->shared_opp == OPP_TABLE_ACCESS_SHARED) { in _managed_opp() [all …]
|