The ConnectCore MP13 contains an STM STPMIC1D Power Management IC (PMIC). The PMIC is connected to the CPU via the I2C4 port (address 0x33).
The PMIC has the following features:
-
Four buck regulators
-
One boost regulator
-
Six low-dropout (LDO) regulators
-
DDR reference voltage
Kernel configuration
You can manage the driver support through the following kernel configuration option:
-
ST Microelectronics STPMIC1 PMIC driver (
CONFIG_MFD_STPMIC1
)
This option is enabled as built-in on the default ConnectCore MP13 kernel configuration file.
Kernel driver
The driver for STPMIC1 driver is located at:
File | Description |
---|---|
STPMIC1 driver |
Device tree bindings and customization
The STPMIC1 device tree binding is documented at Documentation/devicetree/bindings/mfd/st,stpmic1.yaml
.
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/ccmp13-dvk.dtsi
.
Linux (non-secure world) is able to access the PMIC regulators by means of the System Controller and Management Interface (SCMI).
The ConnectCore MP13 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 MP13 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 MP13 internal regulators
The following regulators are used internally on the ConnectCore MP13 and their parameters should not be modified. |
Device tree alias | STPMIC1 regulator | Description |
---|---|---|
|
buck1 |
Internal CPU power supply |
|
buck2 |
Internal DDR power supply |
|
buck3 |
SOM and DVK power supply |
|
buck4 |
Internal SoC power supply |
|
ldo1 |
Internal ADC reference voltage |
|
ldo4 |
VDD_3V3_USBHS voltage supply |
ConnectCore MP13 external regulators
The following regulators are routed outside the ConnectCore MP13 and may be used in the carrier board:
Device tree alias | STPMIC1 regulator | Type | Default voltage | Usage on ConnectCore MP13 Development Kit |
---|---|---|---|---|
|
buck3 |
Buck regulator |
3.3 V |
RS232, RS485, Ethernet PHY, USB hub, Audio |
|
ldo2 |
LDO regulator |
0 V |
not used |
|
ldo5 |
LDO regulator |
3.3 V |
not used |
|
ldo6 |
LDO regulator |
1.8 V |
Audio |
|
pwr_sw1 |
SW1 regulator |
5 V |
USB OTG |
|
pwr_sw2 |
SW2 regulator |
5 V |
not used |
Digi recommends you use the device tree alias for modifying the ConnectCore MP13 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 MP13 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.
&sdmmc2 {
pinctrl-names = "default", "opendrain", "sleep";
pinctrl-0 = <&sdmmc2_b4_pins_a>;
pinctrl-1 = <&sdmmc2_b4_od_pins_a>;
pinctrl-2 = <&sdmmc2_b4_sleep_pins_a>;
broken-cd;
disable-wp;
st,neg-edge;
bus-width = <4>;
vmmc-supply = <&scmi_vdd_sd>;
status = "okay";
};