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: Tue, 30 Oct 2018 19:34:11 +0000 [thread overview]
Message-ID: <1540928050.30311.94.camel@impinj.com> (raw)
In-Reply-To: <20181030170026.licamhckbznuvcse@pengutronix.de>
On Tue, 2018-10-30 at 18:00 +0100, Marco Felsch wrote:
> On 18-10-30 06:13, Guenter Roeck wrote:
> > On 10/30/18 3:47 AM, Marco Felsch wrote:
> > >
> hwmon-gpio-simple sounds ok for me.
>
> > The most difficult part of such a driver would probably be to define acceptable
> > devicetree properties.
>
> That's true! One possible solution could be:
>
> hwmon_dev {
> compatible = "hwmon-gpio-simple";
> name = "gpio-generic-hwmon";
> update-interval-ms = 100;
>
> hwmon-gpio-simple,dev@0 {
> reg = <0>;
> gpio = <gpio3 15 GPIO_ACTIVE_LOW>;
> hwmon-gpio-simple,type = "in";
> hwmon-gpio-simple,report = "crit_alarm";
> };
>
> hwmon-gpio-simple,dev@1 {
> reg = <1>;
> gpio = <gpio3 19 GPIO_ACTIVE_LOW>;
> hwmon-gpio-simple,type = "temp";
> hwmon-gpio-simple,report = "alarm";
> };
> };
Here's some options:
hwmon_dev {
/* Orthogonal to existing "gpio-fan" binding. */
compatible = "gpio-alarm";
/* Standard DT property for GPIO users is [<name>-]gpios */
alarm-gpios = <&gpio3 15 GPIO_ACTIVE_LOW>,
<&gpio3 19 GPIO_ACTIVE_LOW>;
/* A <prop>-names property is also a DT standard */
alarm-gpios-names = "in0", "temp0";
};
The driver can create hwmon alarm attribute(s) based on the name(s). I
used "alarm" as it seemed to fit the pattern established by the "fan"
driver. Both the gpio-fan and gpio-alarm driver use gpios, but I think
considering them one driver for that reason does not make sense.
The names are very Linuxy, something that is not liked in DT bindings.
It also doesn't extend well if you need to add more attributes to each
alarm. Here's something that's more like what I did for the gpio-leds
binding.
hwmon_dev {
compatible = "gpio-alarm";
voltage@0 {
label = "Battery Voltage Low";
type = "voltage";
alarm-gpios = <&gpio3 15 GPIO_ACTIVE_LOW>;
};
cputemp@0 {
label = "CPU Temperature Critical";
type = "temperature";
interrupt-parent = <&gpio3>;
interrupts = <19 IRQ_TYPE_LEVEL_LOW>;
};
};
Supporting interrupts instead of just a gpio would allow for edge
triggering.
I can also see that someone might want to create some kind of time
based hysteresis for circuits that don't have that. While it would be
very easy to add a "linux,debounce = <1000>;" property, I imagine that
would be rejected as configuration in the DT binding.
next prev parent reply other threads:[~2018-10-31 4:29 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
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 [this message]
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=1540928050.30311.94.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