I am using a board with i.MX6Q processor and LTC3676 PMIC. At the moment I would like to realize how is a PMIC actually connected and instantiated in Linux. I looked at the i.MX6 Linux user manual, and there was explained that the on the top sits the regulator core drive, followed by the PF100-core driver and followed by the PF100 regulator driver (although my current sources have only pfuze100-regulator driver).
I see that regulator core driver has very general commands which internally call API of the actual PMIC. I also see that inside the device tree, it is possible to have a PMIC entry with its child regulators.
What I do not understand at the moment is how Linux knows which regulator is used for SoC core voltage, which one provides VDD_ARM, etc. I belive that when scaling the frequency down, the system should know which voltage can be lowered.