From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hans de Goede Subject: Re: [PATCH 1/2] iio: sun4i-lradc: Add binding documentation Date: Sat, 2 Jul 2016 13:45:18 +0200 Message-ID: <9b02394e-b38b-c804-780b-e9707c292486@redhat.com> References: <1467406855-9677-1-git-send-email-alexandre.belloni@free-electrons.com> <777642fd-5e77-206f-a503-23bbf187e6f3@redhat.com> <20160702110227.GB4604@lukather> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20160702110227.GB4604@lukather> Sender: devicetree-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: Maxime Ripard Cc: Chen-Yu Tsai , Alexandre Belloni , Jonathan Cameron , linux-iio-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-arm-kernel , linux-kernel , Rob Herring , devicetree List-Id: devicetree@vger.kernel.org Hi, On 02-07-16 13:02, Maxime Ripard wrote: > On Sat, Jul 02, 2016 at 11:32:07AM +0200, Hans de Goede wrote: >> Hi, >> >> On 02-07-16 11:12, Chen-Yu Tsai wrote: >>> Hi, >>> >>> On Sat, Jul 2, 2016 at 5:00 AM, Alexandre Belloni >>> wrote: >>>> Document the bindings for the Allwinner LRADC. >>> >>> We already have Documentation/devicetree/bindings/input/sun4i-lradc-keys.txt >>> and I'm pretty sure Hans (CC-ed) argued that this is not a generic ADC >>> block. >> >> Right, this block is used on many tablets and some dev boards to >> provide buttons (as in the hid type) and the block is designed for >> this purpose, giving an irq when the adc level crosses a certain >> threshold. >> >> Sure it can be used in a more generic way, but that is not its >> primary goal. > > We've always had a different view on this, but it's a detail :) > >> So any generic purpose adc driver must not break the current >> use-case (which is already used in mainline kernel dts files >> in plenty of cases). > > Yep. > >> I believe that the best way to deal with this is to add an >> "allwinner,general-purpose-mode" flag to the existing binding >> (as well as document general purpose mode in the existing >> binding rather then in a new binding doc). >> >> That seems to be the right thing to do purely looking at this >> from a dt binding pov. > > There's a way simpler solution: if there's no child nodes, it's meant > to be used as an ADC, otherwise, as input. > > The logic will have to be a bit more complex than that, since there's > two channels, and you could only require one for the buttons, leaving > the other one available as an ADC. > > But that doesn't require any new property. True, if there are no button nodes, then go general-purpose will work too. >> For the implementation of this we can simpy have 2 drivers, >> then both drivers can check the flag and if present return >> -ENODEV from the existing input driver and likewise if not >> present return -ENODEV from the iio driver. >> >> We may actually use a similar solution for the touchscreen >> controller which can also be alternatively used as a generic >> purpose adc. > > There's no need to keep both drivers as long as we keep the features > and bindings. That is also true. Regards, Hans -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html