The ConnectCore MP25 contains an STM STPMIC25A Power Management IC (PMIC). The PMIC is connected to the CPU via the I2C7 port (address 0x33).

The PMIC has the following features:

  • Seven buck regulators

  • Eight low-dropout (LDO) regulators

  • DDR reference voltage

Kernel configuration

You can manage the driver support through the following kernel configuration option:

  • SCMI based regulator driver (CONFIG_REGULATOR_ARM_SCMI)

This option is enabled as built-in on the default ConnectCore MP25 kernel configuration file.

Kernel driver

The driver for STPMIC25A driver is located at:

File Description

drivers/regulator/scmi-regulator.c

SCMI based regulator driver

Device tree bindings and customization

The PMIC is considered a secure device and, as such, it is defined on the secure monitor (OP-TEE) device tree at core/arch/arm/dts/ccmp25.dts.

Linux (non-secure world) is able to access the PMIC regulators by means of the System Controller and Management Interface (SCMI). The ConnectCore MP25 device tree on the Linux kernel contains a device node called scmi_regu whose regulators can be used by Linux.

Some regulators are used internally inside the ConnectCore MP25 and some are used externally on the carrier board. The settings of the external regulators can be modified in the carrier board device tree if required by your platform.

ConnectCore MP25 internal regulators

The following regulators are used internally on the ConnectCore MP25 and their parameters should not be modified.
Device tree alias STPMIC25A regulator Description

vddcpu

buck1

Internal CPU power supply

vddcore

buck2

Internal power supply

vddgpu_pmic

buck3

Internal GPU power supply

v1v8

buck5

Internal 1.8V power supply

vdd_ddr

buck6

Internal DDR power supply

v3v3

buck7

Internal 3.3V power supply

vdd_emmc

ldo2

eMMC power supply

ldo8_1v8_rf

ldo8

1.8V Wi-Fi power supply (for variants with wireless)

ConnectCore MP25 external regulators

The following regulators are routed outside the ConnectCore MP25 and may be used in the carrier board:

Device tree alias STPMIC25A regulator Type Default voltage Usage on ConnectCore MP25 Development Kit

v3v3

buck7

Buck regulator

3.3 V

RS232, RS485, Ethernet PHY, USB hub, Audio

ldo7

ldo7

LDO regulator

1.8 V

HDMI

ldo8_1v8_rf

ldo8

LDO regulator

1.8 V

Not used. Can only be used on variants without Wi-Fi

Digi recommends you use the device tree alias for modifying the ConnectCore MP25 external regulator parameters in the final platform DTS file.

Example of a regulator consumer in the device tree

Certain device drivers have a property in the form propname-supply to help users define them as consumers of a power regulator. You can use this property to provide the phandle of the regulator that powers the device. This mechanism reduces the overall power consumption of the system by allowing the driver to enable the regulator when the interface is being used and disable it (or set a lower voltage) when the system goes to suspend or the driver is unloaded.

For example, on the ConnectCore MP25 Development Kit, the Micro SD connector is powered by PMIC buck4. The sdmmc property vmmc-supply allows you to define a power supply that will be controlled by the MMC driver.

ConnectCore MP25 Development Kit device tree
&sdmmc3 {
	pinctrl-names = "default", "opendrain", "sleep";
	pinctrl-0 = <&sdmmc3_b4_pins_a>;
	pinctrl-1 = <&sdmmc3_b4_od_pins_a>;
	pinctrl-2 = <&sdmmc3_b4_sleep_pins_a>;
	cd-gpios = <&gpioi 6 GPIO_ACTIVE_HIGH>;
	disable-wp;
	st,neg-edge;
	no-1-8-v;
	bus-width = <4>;
	vmmc-supply = <&reg_3v3_board>; /* card's VDD pin */
	vqmmc-supply = <&scmi_vddio3>;
	status = "okay";
};