• H
    regulator: add a summary tree in debugfs · 7c225ec9
    Heiko Stübner 提交于
    On modern systems the regulator hierarchy can get quite long and nested
    with regulators supplying other regulators. In some cases when debugging
    it might be nice to get a tree of these regulators, their consumers
    and the regulation constraints in one go.
    
    To achieve this add a regulator_summary sysfs node, similar to
    clk_summary in the common clock framework, that walks the regulator
    list and creates a tree out of the regulators, their consumers and
    core per-regulator settings.
    
    On a rk3288-firefly the regulator_summary would for example look
    something like:
    
     regulator                      use open bypass   value     min     max
    -----------------------------------------------------------------------
     vcc_sys                          0   12      0  5000mV  5000mV  5000mV
        vcc_lan                       1    1      0  3300mV  3300mV  3300mV
           ff290000.ethernet                                    0mV     0mV
        vcca_33                       0    0      0  3300mV  3300mV  3300mV
        vcca_18                       0    0      0  1800mV  1800mV  1800mV
        vdd10_lcd                     0    0      0  1000mV  1000mV  1000mV
        vccio_sd                      0    0      0  3300mV  3300mV  3300mV
        vcc_20                        0    3      0  2000mV  2000mV  2000mV
           vcc18_lcd                  0    0      0  1800mV  1800mV  1800mV
           vcc_18                     0    2      0  1800mV  1800mV  1800mV
              ff100000.saradc                                   0mV     0mV
              ff0d0000.dwmmc                                 1650mV  1950mV
           vdd_10                     0    0      0  1000mV  1000mV  1000mV
        vdd_log                       0    0      0  1100mV  1100mV  1100mV
        vcc_io                        0    3      0  3300mV  3300mV  3300mV
           ff0f0000.dwmmc                                    3300mV  3400mV
           vcc_flash                  1    1      0  1800mV  1800mV  1800mV
              ff0f0000.dwmmc                                 1700mV  1950mV
           vcc_sd                     1    1      0  3300mV  3300mV  3300mV
              ff0c0000.dwmmc                                 3300mV  3400mV
        vcc_ddr                       0    0      0  1200mV  1200mV  1200mV
        vdd_gpu                       0    0      0  1000mV   850mV  1350mV
        vdd_cpu                       0    1      0   900mV   850mV  1350mV
           cpu0                                               900mV   900mV
        vcc_5v                        0    2      0  5000mV  5000mV  5000mV
           vcc_otg_5v                 0    0      0  5000mV  5000mV  5000mV
           vcc_host_5v                0    0      0  5000mV  5000mV  5000mV
     regulator-dummy                  0    0      0     0mV     0mV     0mV
    Signed-off-by: NHeiko Stuebner <heiko@sntech.de>
    Signed-off-by: NMark Brown <broonie@kernel.org>
    7c225ec9
core.c 107.2 KB