IMX7D power saving?

I’m trying to reduce the power consumption of the imx7d+iris or imx7d+viola.
What could i disable/alter in the device tree or userspace?
I’ve read in another thread that reducing the frequency of the cpu’s doesn’t make any worthwhile difference.
Governor is set to powersave

Functionality not used

  • headless (disabled lcdif)
  • adc, pwm, sai (already disabled those)
  • audio
  • flexcan
  • usb (except for recovery mode)
  • caam (not sure what to disable for this)
  • gpmi (unless this is also used by emmc instead of just nand?)

Related question, how do i remove a pinctrl group? (so have my dts undo the pinmux from anothe dts(i))

Hi @Michielt ,

Thanks for using the Toradex Community.

There are different methods you could try. Some are easier, while others might be a bit more complex.

  • You could remove certain drivers, which you do not need at all, completely from the kernel.
  • It is also recommended to set unused pins into a fixed state (either pull up or pull down) You will need to do some experimenting to figure out which of the two states uses less power.
  • A more extreme approach would be to avoid the A7 core altogether and transfer everything over to the M4 core. This is definitely not trivial, but there is the possibility that this would have a great impact.
  • I would also suggest you contract NXP directly, they might have some additional tips and how to further lower the power consumption.

Do you have specific pinctrl groups in mind?

Best Regards
Kevin

Made a mistake in my listing ‘functionality not used’ → headless, meant to say it’s headless so functionality not used is gpu etc.

  • How would removing drivers that aren’t used in the kernel attribute to power consumption?
  • Aren’t gpio’s defaulted to weak pull up?
  • Moving everything to the M4 core isn’t feasable. If i could do that i wouldn’t use a IMX7D.

The answer i was looking for was more along the lines of “You can disable x in the device tree” but i’ll post the question in the nxp forum.

Regarding the pinctrl, i don’t have a specific group in mind, just wondered how to ‘undo’ a pinctrl group.
Like /delete-property/ is used to remove a specific property.

Hi @Michielt

Made a mistake in my listing ‘functionality not used’ → headless, meant to say it’s headless so functionality not used is gpu etc.

Anyway there is no GPU in iMX7, so you don’t need to turn it off, but you can disable the rgb interface.

How would removing drivers that aren’t used in the kernel attribute to power consumption?

This is with the combination of not using the devices in the devicetree.

Aren’t gpio’s defaulted to weak pull up?

It depends on the pin muxing, some are already assigned for a function. The reset state of every Pin can be found in the Datasheet of the SoM or the reference Manual.

Moving everything to the M4 core isn’t feasable. If i could do that i wouldn’t use a IMX7D

The idea was more to only use A5 when needed and run the system on M4 to save Power.

The answer i was looking for was more along the lines of “You can disable x in the device tree” but i’ll post the question in the nxp forum.

Yes, this is a good way to go. Let us know what you found out.

Regarding the pinctrl, i don’t have a specific group in mind, just wondered how to ‘undo’ a pinctrl group.
Like /delete-property/ is used to remove a specific property.

For trying you can use the /delete-property/ but at the end its the best to remove everything what is not needed from the devicetree.

Best regards,
Jaski