Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752719AbcDOQYv (ORCPT ); Fri, 15 Apr 2016 12:24:51 -0400 Received: from avon.wwwdotorg.org ([70.85.31.133]:57436 "EHLO avon.wwwdotorg.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750970AbcDOQYt (ORCPT ); Fri, 15 Apr 2016 12:24:49 -0400 Subject: Re: [PATCH 4/7] soc/tegra: pmc: Add interface to set voltage of IO rails To: Laxman Dewangan References: <1460473007-11535-1-git-send-email-ldewangan@nvidia.com> <1460473007-11535-5-git-send-email-ldewangan@nvidia.com> Cc: thierry.reding@gmail.com, linus.walleij@linaro.org, gnurou@gmail.com, robh+dt@kernel.org, mark.rutland@arm.com, jonathanh@nvidia.com, linux-tegra@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org From: Stephen Warren Message-ID: <571115CE.50906@wwwdotorg.org> Date: Fri, 15 Apr 2016 10:24:46 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: <1460473007-11535-5-git-send-email-ldewangan@nvidia.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1218 Lines: 29 On 04/12/2016 08:56 AM, Laxman Dewangan wrote: > NVIDIA Tegra210 supports some of the IO interface which can operate > at 1.8V or 3.3V I/O rail voltage levels. SW needs to configure > Tegra PMC register to set different voltage level of IO interface based > on IO rail voltage from power supply i.e. power regulators. > > Add APIs to set and get IO rail voltage from the client driver. > diff --git a/drivers/soc/tegra/pmc.c b/drivers/soc/tegra/pmc.c > +static struct tegra_io_rail_voltage_bit_info tegra210_io_rail_voltage_info[] = { > + TEGRA_IO_RAIL_VOLTAGE(SDMMC1, 12), > + TEGRA_IO_RAIL_VOLTAGE(SDMMC3, 13), > + TEGRA_IO_RAIL_VOLTAGE(AUDIO_HV, 18), > + TEGRA_IO_RAIL_VOLTAGE(DMIC, 20), > + TEGRA_IO_RAIL_VOLTAGE(GPIO, 21), > + TEGRA_IO_RAIL_VOLTAGE(SPI_HV, 23), > +}; That table is likely specific to Tegra210, yet ... > +static int tegra_io_rail_voltage_get_bit_pos(int io_rail_id) > +int tegra_io_rail_voltage_set(int io_rail, int val) > +int tegra_io_rail_voltage_get(int io_rail) ... these functions are all named as if they are generic. Presumably they will indeed be needed for the next chip too? How will you prevent their use, or turn these functions into no-ops, or return errors, on other SoCs?