summaryrefslogtreecommitdiff
path: root/drivers/power
AgeCommit message (Collapse)Author
6 dayspower: domain: Add Renesas R-Car R8A78000 X5H MDLC power domain and reset driverMarek Vasut
Add Renesas R-Car R8A78000 X5H MDLC power domain and reset driver, which serves as a remap driver between DT power domain and reset IDs and SCMI power domain and reset IDs in case U-Boot runs on Cortex-A, and as a direct hardware access driver for RSIP. The R-Car X5H SCP firmware uses different SCMI power domain and reset IDs in different versions of the SCP firmware, which makes this remapping necessary. The SCMI base protocol version is updated for each new SCP firmware version, it is therefore possible to determine which SCP firmware version is running on the platform from the base protocol and then determine which remapping table to use for DT power domain and reset ID to SCMI power domain and reset ID remapping. Currently supported versions are SCP 4.28, 4.31, 4.32 . The DT power domain and reset ID to SCMI power domain and reset ID remap and call mechanism is simple. Unlike SCMI clock protocol driver, the SCMI reset and power domain protocol drivers register only a single device. This driver looks up that single device, obtains its reset or power domain ops, sets up struct reset_ctl or struct power_domain with remapped SCMI ID, and invokes operations directly on the device. In case of RSIP, all power domains are already enabled by BootROM or early SoC initialization code, the driver therefore only acts as a stub for the power domain part. The reset part operates as a direct hardware access reset driver. Signed-off-by: Marek Vasut <[email protected]>
2026-05-12power: domain: apple: Add "apple,t8103-pmgr-pwrstate" compatibleJanne Grunau
After discussion with the devicetree maintainers we agreed to not extend lists with the generic compatible "apple,pmgr-pwrstate" anymore [1]. Use "apple,t8103-pmgr-pwrstate" as base compatible as it is the SoC driver and bindings were originally written for. The t602x (M2 Pro/Max/Ultra) devicetrees submitted in [2] use this compatible as fallback instead of "apple,pmgr-pwrstate". Link: https://lore.kernel.org/asahi/[email protected]/ [1] Link: https://lore.kernel.org/asahi/[email protected]/ [2] Signed-off-by: Janne Grunau <[email protected]> Acked-by: Mark Kettenis <[email protected]>
2026-05-06power: regulator: Correct Kconfig for PFUZE100Peng Fan
Use CONFIG_$(PHASE_)DM_REGULATOR_PFUZE100 as the build condition for pfuze100 regulator driver. Add Kconfig option for SPL_DM_REGULATOR_PFUZE100. To avoid break current platforms, set the Kconfig default value same as PMIC_PFUZE100. Signed-off-by: Peng Fan <[email protected]>
2026-05-06power: regulator: pfuze100: support non-independent modePeng Fan
Some BUCKs could work in single/dual phase mode, not in independent mode. In single/dual phase mode, registers of both regulators, must be identically set. So configure mode and value for both BUCKs. CONF registers are not touched, leave them as default OTP settings. PFUZE100/200 SW3A/B, could work in single/dual phase mode, so introduce a new macro by adding a pointer to the SW3B descriptor. Signed-off-by: Peng Fan <[email protected]>
2026-05-06power: regulator: pfuze100: support high output voltage modePeng Fan
Some PFUZE regulators can operate in either low or high output voltage mode, with different minimum voltages and voltage step sizes selected by a hardware control bit. However, the current PFUZE100 regulator driver assumes low output voltage mode only, resulting in incorrect voltage calculation and programming when high voltage mode is enabled. Extend the regulator descriptor to describe high output voltage mode by adding a mask to detect the mode and a dedicated voltage description (min_uV and step size). Update voltage get/set handling to dynamically select the correct voltage parameters based on the high voltage mode bit. Signed-off-by: Peng Fan <[email protected]>
2026-05-06power: regulator: pfuze100: Fix min_uV usagePeng Fan
regulator-min-microvolt in device tree is not always match the minimal voltage in the pmic datasheet, direclty using the min value from device tree as base may cause wrong voltage settings being written. Directly use the min_uV from datasheet to avoid wrong settings. Signed-off-by: Peng Fan <[email protected]>
2026-05-06power: regulator: tps65941: Enable FPWM bitsNeha Malcom Francis
Depending on the phase selection (single or multi), the FPWM bits configured forces the regulator to operate in PWM mode. In case of multi-phase selection, the FPWM_MP bits enforce the regulator to also operate in multi-phase. This fixes correct multi-phase operation. While at this, correct incorrect macro alignment as well. Fixes: 065a452ae6a1 ("power: regulator: tps65941: add regulator support") Link: https://www.ti.com/lit/ds/symlink/tps6594-q1.pdf Signed-off-by: Keerthy <[email protected]> Signed-off-by: Takuma Fujiwara <[email protected]> Signed-off-by: Neha Malcom Francis <[email protected]> Reviewed-by: Udit Kumar <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2026-04-29power: pmic: mtk-pwrap: add MT8195 supportJulien Stephan
Add mt8195 support. Support comes directly from commit e88edc977b00 ("soc: mediatek: pwrap: add pwrap driver for MT8195 SoC") from the Linux Kernel. Signed-off-by: Julien Stephan <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: David Lechner <[email protected]>
2026-04-29power: pmic: mtk-pwrap: use tabs for alignmentJulien Stephan
Fix mt8188_regs definition to use tabs instead of spaces for alignment to be consistent with other definitions. Reviewed-by: Macpaul Lin <[email protected]> Signed-off-by: Julien Stephan <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: David Lechner <[email protected]>
2026-04-29power: pmic: mtk-pwrap: use pmic compatible to select child infoDavid Lechner
Change the logic for selecting pmic_children_info to use the compatible string from the devicetree instead of expecting the pwrap (part of the MCU) to correspond to the separate PMIC chip. In addition to being more correct, it also saves a few lines of code for each MCU type that is added by dropping the enum and type field. Reviewed-by: Julien Stephan <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: David Lechner <[email protected]>
2026-04-29power: pmic: mtk-pwrap: remove interrupt related codeDavid Lechner
Remove the interrupt related code in mtk-pwrap driver. This was just enabling interrupts without any handler. Even if we did have a handler, the only thing we could do is log a message. Since U-Boot isn't long running, this likely wouldn't be very useful. Reviewed-by: Julien Stephan <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: David Lechner <[email protected]>
2026-04-29power: pmic: mtk-pwrap: drop PWRAP_SLV_CAP_DUALIO on mt6359David Lechner
Drop the PWRAP_SLV_CAP_DUALIO flag from the mt6359 PMIC definition. The mt6359p variant of the PMIC does support dual I/O. Prior to this change, the driver would attempt to write to the PWRAP_DEW_DIO_EN register, which was not defined, so would write register 0 (DONE2). Reviewed-by: Julien Stephan <[email protected]> Reviewed-by: Macpaul Lin <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: David Lechner <[email protected]>
2026-04-29power: pmic: mtk-pwrap: add init capability flagDavid Lechner
Add a PWRAP_CAP_INIT capability flag to specify if it is safe to call pwrap_init() or not. Not all targets define the registers accessed by pwrap_init(). In that case, it is expected that an earlier bootloader has already initialized the PMIC. If not, we now return an error instead of trying to access undefined registers. Reviewed-by: Julien Stephan <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: David Lechner <[email protected]>
2026-04-29power: pmic: mtk-pwrap: add PWRAP_CAP_WDT_SRC flagDavid Lechner
Add a PWRAP_CAP_WDT_SRC flag to indicate if a PMIC wrapper has a WDT_SRC or not. Then use this to conditionally enable the watchdog timer. Prior to this change, since the register was not defined, it defaulted to 0, so the wrong register (DONE2) was being written to. Reviewed-by: Julien Stephan <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: David Lechner <[email protected]>
2026-04-29power: pmic: mtk-pwrap: fix file descriptionDavid Lechner
Fix the comment at the start of the file to accurately describe what this file does. The old description was likely copied from the related regulator driver. Reviewed-by: Julien Stephan <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: David Lechner <[email protected]>
2026-04-27regulator: qcom-rpmh-regulator: add support for PM7550 regulatorsLuca Weiss
Add the PM7550 regulator data found on Qualcomm Milos devices. The tables are imported from the Linux driver (tag v7.0-rc4). The SMPS regulators were not added now. Reviewed-by: Sumit Garg <[email protected]> Signed-off-by: Luca Weiss <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Casey Connolly <[email protected]>
2026-04-27power-domain: Add warning when power-domain driver is missingAswin Murugan
Update dev_power_domain_ctrl() to log a warning if the power-domain driver is not found (-ENODEV). Return 0 in this case to allow continued execution, while preserving error handling for other failures. Reviewed-by: Varadarajan Narayanan <[email protected]> Signed-off-by: Aswin Murugan <[email protected]> Reviewed-by: Sumit Garg <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Casey Connolly <[email protected]>
2026-04-27power-domain: Add QCOM RPMH Power Domain Driver SupportBalaji Selvanathan
Added support for Qualcomm RPMH power domain driver, responsible for managing power domains on Qualcomm SoCs. This is a port of the Linux RPMHPD driver [1] and sa8775p related changes. The power domain driver currently has support to power on and off MMCX power domain of sa8775p; support for other soc entries power domains are stubbed, in future, the required soc support can be added. [1]: https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/pmdomain/qcom/rpmhpd.c?id=3d25d46a255a83f94d7d4d4216f38aafc8e116b Reviewed-by: Neil Armstrong <[email protected]> Signed-off-by: Balaji Selvanathan <[email protected]> Signed-off-by: Aswin Murugan <[email protected]> Reviewed-by: Sumit Garg <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Casey Connolly <[email protected]>
2026-04-06Merge branch 'next'Tom Rini
2026-03-30sysreset: Rework tests around SYSRESET_CMD_POWEROFFTom Rini
As exposed by "make randconfig", we have an issue around how SYSRESET_CMD_POWEROFF is typically selected. We cannot rely only on CMD_POWEROFF as SYSRESET_CMD_POWEROFF must also be tested for its own dependency of SYSRESET. Signed-off-by: Tom Rini <[email protected]>
2026-03-25Merge branch 'staging' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-tegra into next
2026-03-24power: regulator: qcom: Correct dependenecies for DM_REGULATOR_QCOM_USB_VBUSTom Rini
The DM_REGULATOR_QCOM_USB_VBUS functionality can only work with DM_PMIC enabled as well, so express this dependency in Kconfig. Signed-off-by: Tom Rini <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Casey Connolly <[email protected]>
2026-03-23dm: regulator: fix missing quote in error messageDavid Lechner
Fix a missing closing quote in the error message when a regulator name is not unique. Signed-off-by: David Lechner <[email protected]> Reviewed-by: Julien Stephan <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2026-03-22power: pmic: enable sysreset function with device tree propertySvyatoslav Ryhel
Add a condition to enable the PMIC sysreset function via the system-power-controller device tree property in addition to the existing Kconfig dependency, provided the PMIC supports it. Signed-off-by: Svyatoslav Ryhel <[email protected]> Reviewed-by: Quentin Schulz <[email protected]> # RK8xx
2026-03-22power: cpcap: make regulator node names case independentSvyatoslav Ryhel
The Linux kernel CPCAP driver uses uppercase regulator node names, while this driver uses lowercase. Since regulator names can be case-insensitive, update the driver to support both uppercase and lowercase node names. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2026-03-22power: pmic: cpcap: add Mapphone and Mot compatiblesSvyatoslav Ryhel
Add Mapphone and Mot compatibles supported by Linux kernel. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2026-03-22power: regulator: cpcap: remove bit_offset_from_cpcap_lowest_voltageSvyatoslav Ryhel
The bit_offset_from_cpcap_lowest_voltage value was inherited from the downstream kernel as a quirk. With the correct voltage table, it is no longer needed. An additional benefit is that SW1, SW2, and SW4 now share the same voltage table. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2026-03-09Merge tag 'v2026.04-rc4' into nextTom Rini
Prepare v2026.04-rc4
2026-02-26power: domain: Validate device tree node in dev_power_domain_ctrlPeng Fan
Similar to pinctrl_select_state(), add dev_has_ofnode() check before doing the real work. Device(scmi_base.0) does not have a real device node, ofnode_null() is assigned as the device tree node for scmi base protocol device: 'commit 7eb4eb541c14 ("firmware: scmi: install base protocol to SCMI agent")' However with recent update in 'commit 0535e46d55d7 ("scripts/dtc: Update to upstream version v1.7.2-35-g52f07dcca47c")', SPL panic in fdt_check_node_offset_()->fdt_next_tag(), because offset is -1 and SPL_OF_LIBFDT_ASSUME_MASK is 0xFF. So need to validate device tree node. Reported-by: Ye Li <[email protected]> Closes: https://lore.kernel.org/u-boot/[email protected]/ Signed-off-by: Peng Fan <[email protected]>
2026-02-25power: regulator: Kconfig: add SPL_DM_REGULATOR_FAN53555Heinrich Schuchardt
Symbol CONFIG_SPL_DM_REGULATOR_FAN53555 is selected by SPL_DM_PMIC_FAN53555 and used in a Makefile. But the symbol definition is missing. Add the missing configuration symbol. Signed-off-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Peng Fan <[email protected]> Reviewed-by: Quentin Schulz <[email protected]> Reviewed-by: Tom Rini <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2026-02-25power: pmic: mtk-pwrap: add MediaTek PMIC Wrapper driverJulien Masson
Add support for the PMIC wrapper (pwrap) IP block found on MediaTek MT8365 and similar SoCs. On these SoCs the PMIC is connected via SPI. The SPI controller is not directly visible to the CPU, but only through the PMIC wrapper inside the SoC. Signed-off-by: Julien Masson <[email protected]> Co-developed-by: Macpaul Lin <[email protected]> Signed-off-by: Macpaul Lin <[email protected]> Co-developed-by: Bo-Chen Chen <[email protected]> Signed-off-by: Bo-Chen Chen <[email protected]> Signed-off-by: David Lechner <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2026-02-25power: regulator: mt6359: add driver for MT6359PBo-Chen Chen
Add a new regulator driver for MT6359P and similar PMIC chips. The MT6359P is a eco version for MT6359 regulator. For the MT8391 platform, we use the MT6359P (MT6365) as the main PMIC. The MT6359 and MT6359P have different register maps. Therefore, on the MT8391 platform, we only provide support for the MT6359P. If support for the MT6359 PMIC it can be added later. Signed-off-by: Bo-Chen Chen <[email protected]> Signed-off-by: David Lechner <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2026-02-25power: regulator: add MediaTek MT6357 driverJulien Masson
Add a driver for the power regulators of the MediaTek MT6357 PMIC chip. Signed-off-by: Julien Masson <[email protected]> Co-developed-by: Macpaul Lin <[email protected]> Signed-off-by: Macpaul Lin <[email protected]> Signed-off-by: David Lechner <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2026-02-17Merge patch series "treewide: Clean up usage of DECLARE_GLOBAL_DATA_PTR"Tom Rini
Peng Fan (OSS) <[email protected]> says: This patch set primarily removes unused DECLARE_GLOBAL_DATA_PTR instances. Many files declare DECLARE_GLOBAL_DATA_PTR and include asm/global_data.h even though gd is never used. In these cases, asm/global_data.h is effectively treated as a proxy header, which is not a good practice. Following the Include What You Use principle, files should include only the headers they actually depend on, rather than relying on global_data.h indirectly. This approach is also adopted in Linux kernel [1]. The first few patches are prepartion to avoid building break after remove the including of global_data.h. A script is for filtering the files: list=`find . -name "*.[ch]"` for source in ${list} do result=`sed -n '/DECLARE_GLOBAL_DATA_PTR/p' ${source}` if [ "${result}" == "DECLARE_GLOBAL_DATA_PTR;" ]; then echo "Found in ${source}" result=`sed -n '/\<gd\>/p' ${source}` result2=`sed -n '/\<gd_/p' ${source}` result3=`sed -n '/\<gd->/p' ${source}` if [ "${result}" == "" ] && [ "${result2}" == "" ] && [ "${result3}" == "" ];then echo "Cleanup ${source}" sed -i '/DECLARE_GLOBAL_DATA_PTR/{N;/\n[[:space:]]*$/d;s/.*\n//;}' ${source} sed -i '/DECLARE_GLOBAL_DATA_PTR/d' ${source} sed -i '/global_data.h/d' ${source} git add ${source} fi fi done [1] https://lpc.events/event/17/contributions/1620/attachments/1228/2520/Linux%20Kernel%20Header%20Optimization.pdf CI: https://github.com/u-boot/u-boot/pull/865 Link: https://lore.kernel.org/r/[email protected]
2026-02-17treewide: Clean up DECLARE_GLOBAL_DATA_PTR usagePeng Fan
Remove DECLARE_GLOBAL_DATA_PTR from files where gd is not used, and drop the unnecessary inclusion of asm/global_data.h. Headers should be included directly by the files that need them, rather than indirectly via global_data.h. Reviewed-by: Patrice Chotard <[email protected]> #STMicroelectronics boards and STM32MP1 ram test driver Tested-by: Anshul Dalal <[email protected]> #TI boards Acked-by: Yao Zi <[email protected]> #TH1520 Signed-off-by: Peng Fan <[email protected]>
2026-02-14Replace TARGET namespace and cleanup properlyTien Fong Chee
TARGET namespace is for machines / boards / what-have-you that building U-Boot for. Simply replace from TARGET to ARCH make things more clear and proper for ALL SoCFPGA. Signed-off-by: Brian Sune <[email protected]> Reviewed-by: Tien Fong Chee <[email protected]> # Conflicts: # drivers/ddr/altera/Makefile
2026-01-25power: regulator: enable AWP318W SPL supportYixun Lan
Add the descriptions for the DC/DC regulators of the AXP318W, and enable it when CONFIG_AXP318W_POWER is enabled. Signed-off-by: Yixun Lan <[email protected]> Reviewed-by: Andre Przywara <[email protected]>
2026-01-25power: regulator: add AXP318W supportYixun Lan
The PMIC is also known as AXP819 in vendor pmu code For DCDC6, 8, 9, the underlying hardware support more than two levels voltage step tuning, but for now only first two levels are implemented in this driver, hence highest voltage will be limited at seccond level. It actual meets board requirement in current design, and we've verified it in Radxa Cubie A7A board. Following are detail explanation of voltage tuning stpes for those DCDCs: DCDC | voltage range | units | steps | implemented 6 | 0.5 - 1.2 | 10 mV | 71 | Y . | 1.22 - 1.54 | 20 mV | 17 | Y . | 1.8 - 2.4 | 20 mV | 31 | N . | 2.44 - 2.76 | 40 mV | 9 | N -------------------------------------------------- 8/9 | 0.5 - 1.2 | 10 mV | 71 | Y . | 1.22 - 1.84 | 20 mV | 32 | Y . | 1.9 - 3.4 | 100mV | 16 | N Signed-off-by: Yixun Lan <[email protected]> Reviewed-by: Andre Przywara <[email protected]>
2026-01-22power: regulator: common: fix compilation issueJulien Stephan
If CONFIG_DM_GPIO is not enabled, compilation fails with the following errors: aarch64-none-linux-gnu-ld: drivers/power/regulator/regulator_common.o: in function `regulator_common_of_to_plat': <...>/u-boot/drivers/power/regulator/regulator_common.c:30: undefined reference to `gpio_request_by_name' aarch64-none-linux-gnu-ld: drivers/power/regulator/regulator_common.o: in function `regulator_common_get_enable': <...>/u-boot/drivers/power/regulator/regulator_common.c:57: undefined reference to `dm_gpio_get_value' aarch64-none-linux-gnu-ld: drivers/power/regulator/regulator_common.o: in function `regulator_common_set_enable': <...>/u-boot/drivers/power/regulator/regulator_common.c:92: undefined reference to `dm_gpio_set_value' make: *** [Makefile:2029: u-boot] Error 139 Since the enable gpio is optional we can conditionally skip these calls. Reviewed-by: Tanmay Kathpalia <[email protected]> Reviewed-by: Peng Fan <[email protected]> Signed-off-by: Julien Stephan <[email protected]> Reviewed-by: Quentin Schulz <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2026-01-22power: regulator: common: use dm_gpio_is_valid helperJulien Stephan
Use dm_gpio_is_valid() helper function instead of manually checking the gpio. Reviewed-by: Peng Fan <[email protected]> Reviewed-by: Tanmay Kathpalia <[email protected]> Reviewed-by: Neil Armstrong <[email protected]> Signed-off-by: Julien Stephan <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2026-01-22power: regulator: common: remove unnecessary debug traceJulien Stephan
Drop the ftrace like debug() that checkpatch --strict complains about: WARNING: Unnecessary ftrace-like logging - prefer using ftrace Reviewed-by: Peng Fan <[email protected]> Reviewed-by: Tanmay Kathpalia <[email protected]> Reviewed-by: Neil Armstrong <[email protected]> Signed-off-by: Julien Stephan <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2026-01-14power: regulator: qcom-rpmh: correctly map pmic modeCasey Connolly
Currently we don't properly map between the regulator mode ID enum and the appropriate register values in the mode map, as a result we always unintentionally vote for retention mode if we actually attempt to set it. In the set_mode path we did find the appropriate entry in the mode map but we wrote the id instead of the register values. Clean this up and properly map id -> mode and vice versa. Link: https://patch.msgid.link/[email protected] Signed-off-by: Casey Connolly <[email protected]>
2026-01-14power: regulator: qcom-rpmh: read votes from rpmhCasey Connolly
Make use of the new RPMh read support to fetch regulator values that may have been voted on by a previous bootloader stage. This allows commands like "regulator status" to report the actual votes programmed into hardware (though not necessarily the actual states of the regulators once the votes have been aggregated). Link: https://patch.msgid.link/[email protected] Signed-off-by: Casey Connolly <[email protected]>
2026-01-14regulator: qcom-rpmh-regulator: add support for PM8150 PM8350 PM7325Aswin Murugan
Add the PM8150, PM8350, and PM7325 regulator data found on Qualcomm platforms. These regulator tables are imported from the Linux driver to enable support for these PMICs in U-Boot. Signed-off-by: Aswin Murugan <[email protected]> Reviewed-by: Neil Armstrong <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Casey Connolly <[email protected]>
2026-01-09dm: core: Default to using DEVRES outside of xPLTom Rini
The devm alloc functions that we have may follow the Linux kernel model where allocations are (almost always) automatically free()'d. However, quite often we don't enable, in full U-Boot, the tracking and free()'ing functionality. This in turn leads to memory leaks because the driver author expects that since the functions have the same name as in the Linux Kernel they have the same behavior. In turn we then get functionally correct commits such as commit 00e1fed93c8c ("firmware: ti_sci: Fix memory leaks in devm_ti_sci_get_of_resource") that manually add these calls. Rather than manually tracking allocations and implementing free()s, rework things so that we follow expectations by enabling the DEVRES functionality (outside of xPL phases). This turns DEVRES from a prompted symbol to a symbol that must be select'd, and we now remove our non-managed alloc/free functions from outside of xPL builds. Reviewed-by: Michael Trimarchi <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2025-12-24power: regulator: Fix dependency of SPL_DM_REGULATOR_GPIOPeng Fan
gpio-regulator uses dm gpio API, so it depends on SPL_DM_GPIO, not SPL_GPIO. Reported-by: Tom Rini <[email protected]> Reviewed-by: Tom Rini <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2025-12-24power: regulator: remove SPL_REGULATOR_PWM due to unmeetable SPL_DM_PWM ↵Quentin Schulz
dependency SPL_DM_PWM option simply doesn't exist. Moreover, drivers/pwm is only included by drivers/Makefile for non-xPL stages so making SPL_REGULATOR_PWM properly build for SPL/xPL is more involved than just adding an SPL_DM_PWM option. Reading the original commit (ddc824f89aa8 ("power: regulator: Allow PWM regulator to be omitted from SPL."), the intent seemingly wasn't to allow building support in XPL but rather to allow removing it which is done by using $(PHASE_) ($(SPL_) at that time) in the Makefile. If anyone needs that, let them figure out what they need to do without misleading potential users of this symbol by simply removing it. Fixes: 2a846e04c622 ("power: regulator: Correct dependencies on SPL_REGULATOR_PWM") Signed-off-by: Quentin Schulz <[email protected]> Reviewed-by: Anshul Dalal <[email protected]> Reviewed-by: Kory Maincent <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2025-12-24power: regulator: fix dependency for REGULATOR_PWMQuentin Schulz
The PWM regulator driver is a uclass driver, thus requiring DM_PWM to be enabled to be actually usable (and with the appropriate PWM controller driver enabled as well, but that we cannot enforce easily), so let's add this missing dependency. Fixes: 1a01695615f9 ("power: regulator: add pwm regulator") Signed-off-by: Quentin Schulz <[email protected]> Reviewed-by: Udit Kumar <[email protected]> Reviewed-by: Anshul Dalal <[email protected]> Reviewed-by: Kory Maincent <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2025-12-12power: domain: Add ti-omap-prm stubMarkus Schneider-Pargmann (TI.com)
Upstream DT uses simple-pm-bus instead of simple-bus. simple-pm-bus requires power domain support. On am33xx, PRM manages power domains but all domains are enabled at boot. Add stub driver with custom of_xlate that expects no argumetns to allow simple-pm-bus and dependent devices to probe. Signed-off-by: Markus Schneider-Pargmann (TI.com) <[email protected]>
2025-11-27power: domain: ti: fix ti_pd_get() to return after verifying transitionSiddharth Vadapalli
The helper function "ti_pd_get()" is responsible for powering on a domain if it is powered off. In the current implementation, if a power domain is determined to be powered off - no prior users and the PDCTL register indicates that the user desired state is OFF, then powering on the domain constitutes setting 'PDCTL_STATE_ON' field of the PDCTL register. While the current implementation indeed requests the power domain to be transition to the ON state, the helper function "ti_pd_get()" doesn't verify that the power domain has 'transitioned' to the ON state before returning to its caller. As a result, it is possible that the device(s) belonging to the power domain may be accessed before it is truly powered on, leading to a bus abort. Fix this by waiting for the power domain to transition to the ON state by using "ti_pd_wait()" before returning from "ti_pd_get()". Fixes: 144464bd2c67 ("power: domain: Introduce driver for raw TI K3 PDs") Signed-off-by: Siddharth Vadapalli <[email protected]> Tested-by: Hrushikesh Salunke <[email protected]>