public inbox for linux-hwmon@vger.kernel.org
 help / color / mirror / Atom feed
From: Trent Piepho <tpiepho@impinj.com>
To: "linux@roeck-us.net" <linux@roeck-us.net>,
	"m.felsch@pengutronix.de" <m.felsch@pengutronix.de>
Cc: "dmitry.torokhov@gmail.com" <dmitry.torokhov@gmail.com>,
	"linux-hwmon@vger.kernel.org" <linux-hwmon@vger.kernel.org>,
	"jdelvare@suse.com" <jdelvare@suse.com>,
	"kernel@pengutronix.de" <kernel@pengutronix.de>
Subject: Re: [PATCH v2 2/2] hwmon: add generic GPIO brownout support
Date: Mon, 29 Oct 2018 21:16:38 +0000	[thread overview]
Message-ID: <1540847798.30311.47.camel@impinj.com> (raw)
In-Reply-To: <20181029195238.GA24689@roeck-us.net>

On Mon, 2018-10-29 at 12:52 -0700, Guenter Roeck wrote:
> On Mon, Oct 29, 2018 at 03:35:21PM +0100, Marco Felsch wrote:
> > Most the time low voltage detection happens on a external device
> > e.g. a pmic or any other hw-logic. Some of such devices can pass the
> > power state (good/bad) to the host via i2c or by toggling a gpio.
> > 
> > This patch adds the support to evaluate a gpio line to determine
> > the power good/bad state. The state is represented by the
> > in0_lcrit_alarm. Furthermore the driver supports to release device from
> > their driver upon a low voltage detection. This feature is supported by
> > OF-based firmware only.
> > 
> 
> NACK, sorry.
> 
> hwmon is strictly about monitoring, not about taking any action, and much
> less about removing devices from the system after some status change,
> it be a gpio pin value or anything else. Other than that, the driver simply
> maps a gpio pin to a (pretty much arbitrary) sysfs attribute, for which
> a driver isn't really needed.
> 
> I don't know if there is a space in the kernel for handling the problem
> you are trying to solve, but it isn't hwmon.

If we ignore the ability to stop other devices, how is this not a hwmon
device with just alarm features?

It seems to map the hwmon interface quite directly.

Consider, what if we had a "classic" hwmon chip, but on this board the
I2C/LPC/SPI interface was not connected as an appropriate master was
not available, and the default configuration of the chip was
acceptable.  The chip's alarm outputs are connected to GPIOs, as it
normal for a hwmon chip with alarm outputs.

Are the alarms no longer appropriate to appear in hwmon?  But if we
connect the chip's I2C interface, then those same alarms should appear
in hwmon?

That just doesn't make sense to me.

Also consider the gpio-fan driver.  That's pretty much just an
interface to a gpio too.

Or consider the leds-gpio driver.  That allows a gpio controlled LED to
appear in the kernel's led subsystem.  It doesn't do anything besides
turn the gpio on and off.  It's hardly needed if all we cared about was
controlling the LED in some way.  Yet it's used quite often.

So it seems perfectly correct to me that a GPIO based hardware
monitoring alarm should appear in the kernel's hardware monitoring
subsystem with all the other hardware monitoring alarms.

The ability of the hwmon driver to cause certain other devices to be
removed is a different question.

  reply	other threads:[~2018-10-29 21:16 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-29 14:35 [PATCH v2 0/2] Add GPIO brownout detection support Marco Felsch
2018-10-29 14:35 ` [PATCH v2 1/2] dt-binding: hwmon: add gpio-brownout bindings Marco Felsch
2018-10-29 14:35 ` [PATCH v2 2/2] hwmon: add generic GPIO brownout support Marco Felsch
2018-10-29 19:52   ` Guenter Roeck
2018-10-29 21:16     ` Trent Piepho [this message]
2018-10-30  1:12       ` Guenter Roeck
2018-10-30 10:47         ` Marco Felsch
2018-10-30 13:13           ` Guenter Roeck
2018-10-30 17:00             ` Marco Felsch
2018-10-30 19:34               ` Trent Piepho
2018-10-30 20:11                 ` Guenter Roeck
2018-11-01 10:40                   ` Marco Felsch
2018-11-01 13:01                     ` Guenter Roeck
2018-11-01 14:53                       ` Marco Felsch
2018-11-01 15:14                         ` Guenter Roeck
2018-11-01 18:21                           ` Trent Piepho
2018-11-02  6:38                             ` Marco Felsch
2018-11-02 23:05                               ` Trent Piepho
2018-11-05  8:19                                 ` Marco Felsch
2018-11-06 20:50                                   ` Trent Piepho
2018-11-07  9:35                                     ` Marco Felsch
2018-11-07 18:07                                       ` Trent Piepho
2018-11-01 13:02                     ` Guenter Roeck
2018-11-01 14:58                       ` Marco Felsch
2018-11-01 15:08                         ` Guenter Roeck
2018-11-01 17:41                     ` Trent Piepho
2018-11-02  6:48                       ` Marco Felsch
2018-10-30 19:56               ` Guenter Roeck
2018-11-01  9:44                 ` Marco Felsch
2018-10-30 18:54           ` Trent Piepho
2018-10-30 18:49         ` Trent Piepho
2018-10-30 20:13           ` Guenter Roeck

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=1540847798.30311.47.camel@impinj.com \
    --to=tpiepho@impinj.com \
    --cc=dmitry.torokhov@gmail.com \
    --cc=jdelvare@suse.com \
    --cc=kernel@pengutronix.de \
    --cc=linux-hwmon@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=m.felsch@pengutronix.de \
    /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