Re: [PATCH 2/3] arm64: dts: qcom: pm8998: Add adc node

From: Matthias Kaehlcke
Date: Thu Sep 06 2018 - 16:36:19 EST


On Thu, Sep 06, 2018 at 11:34:32AM -0700, Doug Anderson wrote:
> Hi,
>
> On Mon, Aug 27, 2018 at 10:10 AM, Matthias Kaehlcke <mka@xxxxxxxxxxxx> wrote:
> > On Fri, Aug 10, 2018 at 05:09:17PM -0700, Doug Anderson wrote:
> >> Hi,
> >>
> >> On Wed, Aug 8, 2018 at 12:13 PM, Matthias Kaehlcke <mka@xxxxxxxxxxxx> wrote:
> >> > This adds the adc node to pm8998 based on the examples in the
> >> > bindings. It also fixes the order of the included headers.
> >> >
> >> > Signed-off-by: Matthias Kaehlcke <mka@xxxxxxxxxxxx>
> >> > ---
> >> > arch/arm64/boot/dts/qcom/pm8998.dtsi | 13 ++++++++++++-
> >> > 1 file changed, 12 insertions(+), 1 deletion(-)
> >> >
> >> > diff --git a/arch/arm64/boot/dts/qcom/pm8998.dtsi b/arch/arm64/boot/dts/qcom/pm8998.dtsi
> >> > index 92bed1e7d4bb..f70f6101bceb 100644
> >> > --- a/arch/arm64/boot/dts/qcom/pm8998.dtsi
> >> > +++ b/arch/arm64/boot/dts/qcom/pm8998.dtsi
> >> > @@ -1,8 +1,9 @@
> >> > // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> >> > /* Copyright 2018 Google LLC. */
> >> >
> >> > -#include <dt-bindings/spmi/spmi.h>
> >> > +#include <dt-bindings/iio/qcom,spmi-vadc.h>
> >> > #include <dt-bindings/interrupt-controller/irq.h>
> >> > +#include <dt-bindings/spmi/spmi.h>
> >> >
> >> > &spmi_bus {
> >> > pm8998_lsid0: pmic@0 {
> >> > @@ -11,6 +12,16 @@
> >> > #address-cells = <1>;
> >> > #size-cells = <0>;
> >> >
> >> > + pm8998_adc: adc@3100 {
> >> > + compatible = "qcom,spmi-adc-rev2";
> >> > + reg = <0x3100>;
> >> > + interrupts = <0x0 0x31 0x0 IRQ_TYPE_EDGE_RISING>;
> >> > + #address-cells = <1>;
> >> > + #size-cells = <0>;
> >> > + #io-channel-cells = <1>;
> >> > + io-channel-ranges;
> >> > + };
> >>
> >> I'm a little confused about what the "io-channel-ranges" does here.
> >> The documentation isn't clear at all to me for it. If I'm reading it
> >> right it's also supposed to be for iio-consumers, but you're using it
> >> in a provider. I see you copied this from the example. Maybe the
> >> example is wrong? ...or I'm just confused...
> >
> > Yes, I copied it from the example, its use here is also not clear to
> > me, other ADC providers like adc@126c0000 in exynos3250.dtsi or
> > adc@180a6000 in bcm-cygnus.dtsi also specify it ...
> >
> > Siddartha/Jonathan, could you help to clarify if "io-channel-ranges"
> > should really be specified here as the DT example suggests?
>
> Does everything work if you just remove the "io-channel-ranges"?

Yes, the ADC channels are still available within the kernel and
through sysfs and provide reasonable values.

> We could remove it and always add it back in later if someone could
> explain what it's for or if we find a reason why it was needed? ...or
> we have any other ideas for how to get this resolved? :(

Sounds good, I'll respin with 'io-channel-ranges' removed.