From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bjorn Andersson Subject: Re: [PATCH 2/3] pinctrl: Device tree bindings for Qualcomm pm8xxx gpio block Date: Tue, 15 Jul 2014 17:23:51 -0700 Message-ID: References: <1404782785-1824-1-git-send-email-bjorn.andersson@sonymobile.com> <1404782785-1824-3-git-send-email-bjorn.andersson@sonymobile.com> <53C095EA.90000@codeaurora.org> <1405346335.13503.25.camel@iivanov-dev> <53C449A3.2010404@codeaurora.org> <1405406114.13503.40.camel@iivanov-dev> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Return-path: In-Reply-To: <1405406114.13503.40.camel@iivanov-dev> Sender: linux-arm-msm-owner@vger.kernel.org To: "Ivan T. Ivanov" Cc: Stephen Boyd , Linus Walleij , Bjorn Andersson , Rob Herring , Mark Rutland , "linux-arm-kernel@lists.infradead.org" , "linux-arm-msm@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "devicetree@vger.kernel.org" List-Id: devicetree@vger.kernel.org On Mon, Jul 14, 2014 at 11:35 PM, Ivan T. Ivanov wrote: > On Mon, 2014-07-14 at 14:20 -0700, Stephen Boyd wrote: [..] >> Isn't this document only for the gpios? I think you're talking about the >> MPPs, which also exist on these generation of pmics. We should probably >> avoid mixing the two (gpios and mpps) in one binding because they're >> really different hardware. > > I don't know. For me "gpio" looks like function of the pin hardware. > >> >> > So I will like >> > to keep "function" property for selecting one of the above functions. >> > Choosing between "normal", "paired"... options in QPNP pinctrl driver >> > is supported trough passing values, defined in DT header file, to >> > "output-high" property. Please don't kill me :-). >> >> Overloading output-high to choose the MPP mode doesn't seem to follow >> the generic pinconfig binding. Does output-high even take a value? Why >> can't we use the function property? > > No, no. using value of the output-high|low" is just to select > "normal", "paired"... thing. Function selection is via "function" > property. Currently QPNP support following functions "gpio", "mpp-ain", > "mpp-aout", "mpp-cs". > Hi Ivan, >>From your comment I presume that you don't have access to the documentation for these blocks. The pmic sports two types of pins; gpios and mpps (multi-purpose-pin). These are different hardware blocks; i.e. not a configuration thing. The gpios can be input, output or both and they can be configured as gpio, paired, function 1 or function 2 (+ some test modes). So here it makes sense to have the functions "gpio", "paired" and the valid function combinations. The mpps can be input, output or both; in either digital or analog mode. Or they can be a current sink. When configured as analog input you select which adc the pin should be routed to. Here it makes sense to have the functions "digital", "analog" and "current-sink" I think. Regards, Bjorn