On Tue, Nov 22, 2016 at 11:20 AM, Laxman Dewangan <ldewangan@xxxxxxxxxx> wrote: > NVIDIA Tegra124 and later SoCs support the multi-voltage level and > low power state of some of its IO pads. The IO pads can work in > the voltage of the 1.8V and 3.3V of IO voltage from IO power rail > sources. When IO interfaces are not used then IO pads can be > configure in low power state to reduce the power consumption from > that IO pads. > > On Tegra124, the voltage level of IO power rail source is auto > detected by hardware(SoC) and hence it is only require to configure > in low power mode if IO pads are not used. > > On T210 onwards, the auto-detection of voltage level from IO power > rail is removed from SoC and hence SW need to configure the PMC > register explicitly to set proper voltage in IO pads based on > IO rail power source voltage. > > This driver adds the IO pad driver to configure the power state and > IO pad voltage based on the usage and power tree via pincontrol > framework. The configuration can be static and dynamic. > > Signed-off-by: Laxman Dewangan <ldewangan@xxxxxxxxxx> Overall very nice! > + rinfo->regulator = devm_regulator_get_optional(dev, > + soc_data->cfg[i].vsupply); Please just use devm_regulator_get(). As has been discussed at lenth elsewhere "optional" in regulator_get_optional does *not* mean "software optional", it means "hardware optional". Such as a terminal that may have a voltage connected or not be connected to anything at all. If the system does not define a regulator you will anyway get a dummy regulator. Yours, Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe linux-tegra" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html