linux-acpi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Enrico Weigelt, metux IT consult" <lkml@metux.net>
To: Jan Kiszka <jan.kiszka@siemens.com>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Mika Westerberg <mika.westerberg@linux.intel.com>,
	Linus Walleij <linus.walleij@linaro.org>,
	Bartosz Golaszewski <bgolaszewski@baylibre.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	linux-gpio@vger.kernel.org, linux-acpi@vger.kernel.org,
	"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
Subject: Re: [PATCH 2/2] gpio: sch: Add interrupt support
Date: Mon, 29 Apr 2019 13:09:20 +0200	[thread overview]
Message-ID: <ea29ee73-705b-7d13-0084-11274db02394@metux.net> (raw)
In-Reply-To: <2f3da791-4a10-c2c4-dc5a-22ad16ed7be6@siemens.com>

On 26.04.19 18:03, Jan Kiszka wrote:

> Leaving that blunt hack aside:
> 
> import mraa
> 
> pin = mraa.Gpio(13)
> pin.dir(mraa.DIR_OUT)
> pin.write(1)
> 
> And the same goes for nodejs, java and c++.

Such trivial wrappers are easy write in the coffe break.
For those usecases the good old sysfs interface is really sufficient.

(I'm frequently replacing those kind of "abstraction layers" of sevaral
10kLoC in various client projects by just a few lines of really tiny
shim ...)

And relying on numeric gpio ids is generally a bad idea.
(exactly one of the kind of problems why certain clients call me in
great despair, when it broke again :p)

> Moreover, this allows you to abstract away where "Pin 13" actually came
> from on that board if the kernel changes (BSP -> upstream...) or the
> extension board or ... 

As said: numeric pin IDs are a *bad* idea.
If it's a *name* (=string), then that seems to be a usecase for labels.
For convenience, you could just pupulate the fs w/ proper symlinks that
are named by the pin names from the schematics.

> We will exploit that when moving to a completely
> different base hardware with the next revision or our IOT2000.

When doing that, you could also kick out Intel and move to ARM, as quite
everybody else does ;-)

<snip>

> You also have to keep the class of "cool, I've just created my first
> Node.RED node!" IoT newbies in mind.

As said above: writing a small js wrapper for that is just a coffee
break job.

> These higher abstraction help to
> keep them away from the wrong lower APIs - or enable them to do
> something at all ("Cool, I've just connected my first two nodes!"). 

gpio's are already very low-level. Highlevel would be things like keys,
leds, etc.

That's one of the things I frequently have to teach my clients: first
make yourself clear about what you're *actually* doing with these pins
and then pick the right drivers.

Okay, we could talk about creating some nice oftree-overlay generators,
to make it easier for newbies. Or create some small DSL, perhaps w/ some
tiny GUI editor. But don't let them play w/ raw gpio's - this quickly
goes horribly wrong (I've seen that in the field, many times).

It's nice, that you folks (Siemens) are now doing your own controller,
so you can finally throw out the ugly AMX+co crap. But please don't
repeat their mistakes. We don't need yet another raspi for building
automation - we need a different programming model than the old PLC-
style spaghetti configuration :p

(oh, and if you add ATEX and railways certification, I might have a new
customer for you ;-))

Okay, that's getting far OT, so maybe we should continue off-list ;-)

> By far not all of them have consultants at hand.

They better should :p

> And while we only ship our IOT2000 image with mraa and all the fun as
> reference image, it's way more for quite a few users. Even if you do not
> want to look behind the curtains of certain software components (that we
> primarily inherited and then started to clean up), they are working, or
> we would have heard.

Maybe because some field techs rather grab some beers and go to some
friend who happens to be a linux hacker, instead of burning their time
on the official channels those big corporate structures ;-)


--mtx

-- 
Enrico Weigelt, metux IT consult
Free software and Linux embedded engineering
info@metux.net -- +49-151-27565287

  parent reply	other threads:[~2019-04-29 11:09 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <cover.1555579429.git.jan.kiszka@siemens.com>
     [not found] ` <c9f40465c6effc7b8efd6cbf8461d71d80c80033.1555579429.git.jan.kiszka@siemens.com>
2019-04-24  7:58   ` [PATCH 2/2] gpio: sch: Add interrupt support Mika Westerberg
2019-04-24  7:58     ` Mika Westerberg
2019-04-24  8:12     ` Jan Kiszka
2019-04-24  8:12       ` Jan Kiszka
2019-04-24  8:18       ` Mika Westerberg
2019-04-24  8:18         ` Mika Westerberg
2019-04-24  8:25         ` Jan Kiszka
2019-04-24  8:25           ` Jan Kiszka
2019-04-24  8:42           ` Mika Westerberg
2019-04-24  8:42             ` Mika Westerberg
2019-04-24  9:36             ` Jan Kiszka
2019-04-24  9:36               ` Jan Kiszka
2019-04-24  9:45               ` Mika Westerberg
2019-04-24  9:45                 ` Mika Westerberg
2019-04-24  9:48                 ` Jan Kiszka
2019-04-24  9:48                   ` Jan Kiszka
2019-04-24 10:01                   ` Mika Westerberg
2019-04-24 10:01                     ` Mika Westerberg
2019-04-24 10:19                     ` Jan Kiszka
2019-04-24 10:19                       ` Jan Kiszka
2019-04-24 10:33                       ` Mika Westerberg
2019-04-24 10:33                         ` Mika Westerberg
2019-04-24 10:39                         ` Jan Kiszka
2019-04-24 10:39                           ` Jan Kiszka
2019-04-24 10:46                           ` Mika Westerberg
2019-04-24 10:46                             ` Mika Westerberg
2019-04-24 12:41                             ` Jan Kiszka
2019-04-24 12:41                               ` Jan Kiszka
2019-04-24 13:13                               ` Mika Westerberg
2019-04-24 13:13                                 ` Mika Westerberg
2019-04-24 14:24                                 ` Jan Kiszka
2019-04-24 14:24                                   ` Jan Kiszka
2019-04-24 15:33                                   ` Mika Westerberg
2019-04-24 15:33                                     ` Mika Westerberg
2019-04-26 13:06                           ` Andy Shevchenko
2019-04-26 13:06                             ` Andy Shevchenko
2019-04-26 13:36                             ` Jan Kiszka
2019-04-26 13:36                               ` Jan Kiszka
2019-04-26 14:42                               ` Enrico Weigelt, metux IT consult
2019-04-26 14:42                                 ` Enrico Weigelt, metux IT consult
2019-04-26 15:31                                 ` Manivannan Sadhasivam
2019-04-26 15:31                                   ` Manivannan Sadhasivam
2019-04-26 16:03                                 ` Jan Kiszka
2019-04-26 16:03                                   ` Jan Kiszka
2019-04-26 17:20                                   ` Andy Shevchenko
2019-04-26 17:20                                     ` Andy Shevchenko
2019-04-26 17:33                                     ` Manivannan Sadhasivam
2019-04-26 17:33                                       ` Manivannan Sadhasivam
2019-04-26 17:39                                       ` Jan Kiszka
2019-04-26 17:39                                         ` Jan Kiszka
2019-04-26 17:46                                         ` Manivannan Sadhasivam
2019-04-26 17:46                                           ` Manivannan Sadhasivam
2019-04-26 17:52                                           ` Jan Kiszka
2019-04-26 17:52                                             ` Jan Kiszka
2019-04-26 17:56                                             ` Manivannan Sadhasivam
2019-04-26 17:56                                               ` Manivannan Sadhasivam
2019-04-26 17:44                                       ` Andy Shevchenko
2019-04-26 17:44                                         ` Andy Shevchenko
2019-04-26 17:52                                         ` Manivannan Sadhasivam
2019-04-26 17:52                                           ` Manivannan Sadhasivam
2019-04-26 18:26                                           ` Andy Shevchenko
2019-04-26 18:26                                             ` Andy Shevchenko
2019-04-26 17:37                                     ` Jan Kiszka
2019-04-26 17:37                                       ` Jan Kiszka
2019-04-29 11:09                                   ` Enrico Weigelt, metux IT consult [this message]
2019-04-29 11:09                                     ` Enrico Weigelt, metux IT consult
2019-05-16 12:20                                     ` Linus Walleij
2019-04-26 14:41                             ` Linus Walleij
2019-04-26 14:41                               ` Linus Walleij
2019-04-26 15:44                               ` Jan Kiszka
2019-04-26 15:44                                 ` Jan Kiszka

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=ea29ee73-705b-7d13-0084-11274db02394@metux.net \
    --to=lkml@metux.net \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=bgolaszewski@baylibre.com \
    --cc=jan.kiszka@siemens.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mika.westerberg@linux.intel.com \
    --cc=rafael.j.wysocki@intel.com \
    /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 NNTP newsgroup(s).