Linux-IIO Archive mirror
 help / color / mirror / Atom feed
From: "João Paulo Gonçalves" <jpaulo.silvagoncalves@gmail.com>
To: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: joao.goncalves@toradex.com
Subject: Supporting a Device with Switchable Current/Voltage Measurement
Date: Wed, 1 May 2024 20:38:53 -0300	[thread overview]
Message-ID: <20240501233853.32y4ev7jvas5ahdz@joaog-nb> (raw)

Hello all,

We need to support a hardware that can measure current and voltage on
the same differential analog input, similar to a multimeter. The mode
of measurement is controlled by a GPIO switch and goes to different
ADC inputs depending on the mode. If the switch is enabled, a current
loop with a shunt is enabled for current measurement; otherwise, voltage
is measured. From the software point of view, we are considering using
the iio-rescale driver as a consumer of an ADC IIO parent device. One
of the problems is that we need to change the mode of measurement at
runtime, but we are trying to avoid using some userspace "hack". The
other is that for a minimal solution to enable the mode from boot, we
can use a gpio-hog and control it with overlays. However,
still would be better that this was done by the kernel. Do you know
or have some guidance on how to properly support this in the kernel?

For the in kernel gpio solution, this is a draft of DT we are thinking:

current-sense {
      compatible = "current-sense-shunt";
      io-channels = <&adc 0>;
      gpio = <&main_gpio0 29 GPIO_ACTIVE_HIGH>;
      shunt-resistor-micro-ohms = <3300000>;      
};

voltage-sense {
        compatible = "voltage-divider";
        io-channels = <&adc 1>;
        gpio = <&main_gpio0 29 GPIO_ACTIVE_LOW>;
        output-ohms = <22>;
        full-ohms = <222>;
};

Regards,
João Paulo Gonçalves


             reply	other threads:[~2024-05-01 23:39 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-01 23:38 João Paulo Gonçalves [this message]
2024-05-02  0:31 ` Supporting a Device with Switchable Current/Voltage Measurement Bagas Sanjaya
2024-05-02  0:42   ` João Paulo Silva Gonçalves
2024-05-02  0:50     ` Bagas Sanjaya
2024-05-02 12:36 ` Jonathan Cameron
2024-05-02 13:49   ` Peter Rosin
2024-05-02 14:05     ` Peter Rosin
2024-05-02 14:53       ` jpaulo.silvagoncalves
2024-05-02 15:09       ` Jonathan Cameron
2024-05-02 16:43         ` Peter Rosin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240501233853.32y4ev7jvas5ahdz@joaog-nb \
    --to=jpaulo.silvagoncalves@gmail.com \
    --cc=joao.goncalves@toradex.com \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).