Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933330AbcKVM6m (ORCPT ); Tue, 22 Nov 2016 07:58:42 -0500 Received: from mail-qt0-f171.google.com ([209.85.216.171]:35747 "EHLO mail-qt0-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933270AbcKVM6d (ORCPT ); Tue, 22 Nov 2016 07:58:33 -0500 MIME-Version: 1.0 In-Reply-To: <1479810013-29894-3-git-send-email-ldewangan@nvidia.com> References: <1479810013-29894-1-git-send-email-ldewangan@nvidia.com> <1479810013-29894-3-git-send-email-ldewangan@nvidia.com> From: Linus Walleij Date: Tue, 22 Nov 2016 13:58:32 +0100 Message-ID: Subject: Re: [PATCH V3 2/2] pinctrl: tegra: Add driver to configure voltage and power of io pads To: Laxman Dewangan Cc: Rob Herring , Stephen Warren , "thierry.reding@gmail.com" , Mark Rutland , Alexandre Courbot , "linux-gpio@vger.kernel.org" , "devicetree@vger.kernel.org" , "linux-tegra@vger.kernel.org" , "linux-kernel@vger.kernel.org" , Joe Perches , Jon Hunter Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1651 Lines: 42 On Tue, Nov 22, 2016 at 11:20 AM, Laxman Dewangan 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 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