This series is the result of a longer debugging session on a phyCORE STM32MP1 board. It turned out that the 'regulator' command prints the valid voltage range that a regulator has, but by no means makes sure that a regulator is set to a voltage inside that range, but instead happily enables a regulator with whatever default voltage it happens to have. On my Phytec board this resulted in the ethernet phy regulator being enabled with a too low voltage with the effect that ethernet was working with a very high package loss. This series fixes that. Another bonus of this series is that the regulator command now prints the regulators in a tree structure instead of a plain list. Sascha Sascha Hauer (11): regulator: rename variable rd to rdev regulator: merge struct regulator_internal fields into struct regulator_dev regulator: introduce regulator logging functions. regulator: add regulator_get_voltage_internal() regulator: Add missing cases in regulator_map_voltage() regulator: stpmic1: add .get_voltage_sel regulator: stpmic1: add .supply_name regulator: register regulator as last step in of_regulator_register() regulator: Set initial voltage regulator: drop struct regulator_dev::supply_name regulator: print regulator tree drivers/regulator/bcm2835.c | 2 +- drivers/regulator/core.c | 377 +++++++++++++++----------- drivers/regulator/stpmic1_regulator.c | 11 + include/regulator.h | 24 +- 4 files changed, 254 insertions(+), 160 deletions(-) -- 2.39.2