The ConnectCore 6UL contains an NXP PF3000 Power Management IC (PMIC). The PMIC is connected to the CPU via the I2C1 port (address 0x08).

The PMIC has the following features:

  • Four buck regulators

  • One boost regulator

  • Six low-dropout (LDO) regulators

  • Coin cell charger

  • DDR reference voltage

  • Battery-backed memory (4 bytes)

Kernel configuration

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

  • Freescale PFUZE100/PFUZE200 regulator driver (CONFIG_REGULATOR_PFUZE100)

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

Kernel driver

The driver for PF3000 driver is located at:

File Description


PF3000 driver

Device tree bindings and customization

The PF3000 device tree binding is documented at Documentation/devicetree/bindings/regulator/pfuze100.txt.

The PMIC and its regulators are defined on the ConnectCore 6UL device tree at arch/arm/boot/dts/imx6ul-ccimx6ul.dtsi. Some regulators are used internally inside the ConnectCore 6UL 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 6UL internal regulators

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



Powers several interfaces inside the module



Internal CPU power supply



DDR3 power supply



Internal CPU power supply



DDR reference voltage



CPU ADC reference voltage



Wireless chip power supply



Internal CPU power supply

ConnectCore 6UL external regulators

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

Device tree alias PF3000 regulator Type Default voltage Usage on ConnectCore 6UL SBC Express Usage on ConnectCore 6UL SBC Pro



Boost regulator

5 V



Buck regulator

3.3 V

Ethernet PHY, microSD, Raspberry PI, Grove, UART, JTAG, bootstrap.

2x Ethernet PHY, microSD, eMMC, UART RS-232, I/O expander, USB hub, LVDS, parallel LCD, parallel camera, audio, CAN, XBee, NTAG, bootstrap



LDO regulator

1.5 V



LDO regulator

1.8 V

LVDS, audio



Coin cell charger

3 V

External coin cell

Digi recommends you use the device tree alias for modifying the ConnectCore 6UL 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 6UL SBC Pro, the parallel LCD to LVDS converter is powered by PMIC LDO4. The LCD property lcd-supply allows you to define a power supply that will be controlled by the LCD driver.

ConnectCore 6UL SBC Pro device tree
&lcdif {
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_lcdif_dat0_17
    lcd-supply = <&ldo4_ext>;    /* BU90T82 LVDS bridge power */
    display = <&f10a0102>;
    status = "disabled";


Read and write PMIC non-volatile registers

Besides the regulators, the PF3000 PMIC allows access to four 8-bit registers (MEMA .. MEMD) whose value is maintained by coin cell battery. The four registers can be read or written as binary data all at once through the sysfs.

To read them:

# hexdump -Cv /sys/devices/soc0/soc/2100000.aips-bus/21a0000.i2c/i2c-0/0-0008/nvram
00000000  00 00 00 00                                       |....|

To write hex values (for example MEMA=0x01, MEMB=0xAA, MEMC=0x02, MEMD=0xEF):

# printf "\x01\xAA\x02\xEF" | dd of=/sys/devices/soc0/soc/2100000.aips-bus/21a0000.i2c/i2c-0/0-0008/nvram
0+1 records in
0+1 records out