Page 1 of 1

CM3 and I2C to MXL7704 PMIC

Posted: Wed Apr 18, 2018 12:25 pm
by adun
Hi,
If one would want to use the new MXL7704 PMIC on a custom CM carrier board how should the connection to the VC I2C bus be?
The firmware is bitbashing I2C on GPIO 46/47 but those pins are not accessible on CM3. Can the MXL7704 be connected to two other GPIO pins and will there be an option to let the firmware multiplex its I2C bus to those pins?
Same question would also apply to a possible future CM3+ with BCM2837B0 onboard.

Best regards

Re: CM3 and I2C to MXL7704 PMIC

Posted: Wed Apr 18, 2018 1:06 pm
by 6by9
AIUI On a CM3 the firmware is already talking to a basic PMIC to take VBAT and optimise it for Vcore. It won't know how to talk to a MXL7704 as well.

You could use an MXL7704 to take whatever input you have and generate the multiple rails required for the CM3 (3V3, 1V8, VBatt, VDac). Add your own Linux kernel driver for status monitoring (if required) over whichever I2C bus you fancy.

Re: CM3 and I2C to MXL7704 PMIC

Posted: Wed Apr 18, 2018 1:22 pm
by PhilE
That's correct. The firmware is capable of controlling one external (to the SoC) PMIC, and the type is fixed for each board-variant. If you need a second PMIC on your carrier then something other than the firmware should be controlling it.

Re: CM3 and I2C to MXL7704 PMIC

Posted: Wed Apr 18, 2018 2:10 pm
by adun
Thanks a lot for clearing this up.
So would I still have to use a GPIO for the firmware to detect undervoltage since the MXL7704 will only be controlled by linux ?

Re: CM3 and I2C to MXL7704 PMIC

Posted: Wed Apr 18, 2018 2:24 pm
by PhilE
Yes, I think so, unless you use the mailbox interface to control turbo mode from Linux.

Re: CM3 and I2C to MXL7704 PMIC

Posted: Wed Apr 18, 2018 2:25 pm
by 6by9
adun wrote:
Wed Apr 18, 2018 2:10 pm
Thanks a lot for clearing this up.
So would I still have to use a GPIO for the firmware to detect undervoltage since the MXL7704 will only be controlled by linux ?
Yes. pin_define@POWER_LOW is set to absent by default for CM1/CM3, but can be set to any GPIO if you want that functionality on your CM based system.
(Overlapped with Phil!)