• Chen-Yu Tsai's avatar
    regulator: Use bitfield values for range selectors · 269cb04b
    Chen-Yu Tsai authored
    Right now the regulator helpers expect raw register values for the range
    selectors. This is different from the voltage selectors, which are
    normalized as bitfield values. This leads to a bit of confusion. Also,
    raw values are harder to copy from datasheets or match up with them,
    as datasheets will typically have bitfield values.
    
    Make the helpers expect bitfield values, and convert existing users. The
    field in regulator_desc is renamed to |linear_range_selectors_bitfield|.
    This is intended to cause drivers added in the same merge window and
    out-of-tree drivers using the incorrect variable and values to break,
    preventing incorrect values being used on actual hardware and potentially
    producing magic smoke.
    
    Also include bitops.h explicitly for ffs(), and reorder the header include
    statements. While at it, also replace module.h with export.h, since the
    only use is EXPORT_SYMBOL_GPL.
    Signed-off-by: default avatarChen-Yu Tsai <wenst@chromium.org>
    Link: https://lore.kernel.org/r/20230714081408.274567-1-wenst@chromium.orgSigned-off-by: default avatarMark Brown <broonie@kernel.org>
    269cb04b
tps6287x-regulator.c 4.78 KB