regulators: creating a regulator device for the AC/USB/BAT/charge component of a PMIC?
Mark, Liam,
A couple of the regulators I'm looking at (I guess many/most in fact) are structured as:
Battery, AC, USB, ... -> PMIC -> main output (unregulated?)
main output -> PMIC input pins for some of the SW-controllable regulators. This is an external connection on the board.
Should this "main output" be represented as a regulator itself?
In more graphical/concrete terms, take the TPS6586x:
+---------------+
| |
AC --> | \ |
USB --> | |------> SYS | >---\
BAT --> | / | |
| VIN_SM0 | <---/
| v |
| SM0 OUT | ---> other devices
...... where SM0 is one of the regulators the driver already exposes.
I assume SYS should be an explicit regulator device, because all the other regulators within the PMIC can be set up to require that a supply be specified (in the DT, a vin-sm0-supply property is mandatory for the TPS6586x driver), so some regulator object must exist and be provided as the supply.
The alternative would be to this would be to ignore this aspect of the PMIC, and just create a standalone fixed regulator to act as the supply for the SM0 regulator. However, this doesn't seem like an accurate model of the HW.
However, some of the regulators in the TPS6586x at least are fed directly from the SYS output by an internal connection within the PMIC (e.g. LDO5). Currently, the driver sets up these regulators as having no supply, which seems wrong too. Presumably the PMIC driver should internally hook up its SYS as LDO5's supply without needing any platform data or DT ldo5-supply property to do this?
What are your thoughts here?
Quoted 4 lines · Stephen Warren
A couple of the regulators I'm looking at (I guess many/most in fact) are structured as:
Battery, AC, USB, ... -> PMIC -> main output (unregulated?)
Yes, that's very normal.
Quoted 1 line
Should this "main output" be represented as a regulator itself?
It can be if you like - most things will be depending on it, often what people call the battery supply is actually the main power rail in the schematic. Having it there certainly won't do any harm and may be useful.
Quoted 6 lines
However, some of the regulators in the TPS6586x at least are fed directly from the SYS output by an internal connection within the PMIC (e.g. LDO5). Currently, the driver sets up these regulators as having no supply, which seems wrong too. Presumably the PMIC driver should internally hook up its SYS as LDO5's supply without needing any platform data or DT ldo5-supply property to do this?
Yes, I think if we're going to represent such supplies the driver should just do it and not force everyone to cut'n'paste. Though to be honest if it's a supply that's purely internal to the primary PMIC there's no real need, if the system core rail gets turned off software really isn't an issue any more.