From: l.stach@pengutronix.de (Lucas Stach)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 4/4] ARM: dts: mt8135: Add pinctrl node for mt8135.
Date: Thu, 02 Oct 2014 16:28:56 +0200 [thread overview]
Message-ID: <1412260136.4875.9.camel@pengutronix.de> (raw)
In-Reply-To: <CACRpkdbtN-BDEwpJO2swnOjCe3UJhD5WOXXKBV0hPOe2M2=k7Q@mail.gmail.com>
Hi Linus,
Am Donnerstag, den 02.10.2014, 16:02 +0200 schrieb Linus Walleij:
> On Wed, Sep 24, 2014 at 2:40 PM, Sascha Hauer <s.hauer@pengutronix.de> wrote:
> > On Wed, Sep 24, 2014 at 01:23:09PM +0200, Linus Walleij wrote:
>
> >> I haven't got to reviewing the driver, but this looks just wrong.
> >>
> >> Have the magic numbers in the driver.
> >>
> >> Use strings to describe functions, not integers.
> >
> > Interrupts, clocks, gpios, dma channels, nearly everything in the device tree is
> > arbitrarily numbered. Instead of "irq-i2c0" we have <0 36 IRQ_TYPE_LEVEL_HIGH>
> > in the device tree. These numbers can be resolved efficiently in the
> > driver by shifting them to get a bitmask or by adding them as offset to
> > a register base.
> > Why do you want to make pinctrl different?
>
> Because pin control is about combining groups of pins with
> certain functions.
>
> > Thanks to the recently
> > introduced defines in the device trees these numbers are not magic at
> > all anymore.
>
> Yeah that is good but not what I'm after here.
>
> >> We need to move toward standardized device tree bindings
> >> for this stuff, and that means using strings, not magic
> >> numbers.
> >
> > Agreed for standardized device tree bindings, but not for using strings.
>
> What is the alternative? Device Tree is very much about strings,
> as is shown by the pin config bindings.
>
Mhm, maybe we are still talking about different things but I just don't
get your point. Traditionally DT is more about plain numbers than
strings. Look at the early examples of PCI or other bus bindings,
defined back in the IEEE 1275 days. Almost everything back then has
been mapped to plain numbers.
Using strings only bloats the DT, not only in it's source form, but also
as a compiled DTB. Having a verbose string based binding is just painful
to work with (I can tell from experience here, as I personally built the
pinmux setup for two Tegra boards). Working with a condensed number
based binding like the one used on i.MX is much easier IMHO.
Most importantly I don't see any benefit in writing:
pin_state_a {
pins = "i2c0_scl", "i2c0_sda";
function = "i2c0";
};
instead of
#include <dt-binding/pinctrl/mediatek_foo.h>
pin_state_a {
pins = <I2C0_SCL>, <I2C0_SDA>;
function = <I2C0>;
}
Using plain integers makes it much easier to index into pinctrl driver
specific arrays without doing all this string matching in the kernel. It
seems we are eating CPU cycles here for no good reason.
Could you please explain where you see the benefit of using strings
instead of plain integers with proper binding defines attached to them?
Regards,
Lucas
--
Pengutronix e.K. | Lucas Stach |
Industrial Linux Solutions | http://www.pengutronix.de/ |
next prev parent reply other threads:[~2014-10-02 14:28 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-23 3:39 [PATCH v2 0/4] Add Mediatek SoC Pinctrl/GPIO driver for MT8135 Hongzhou.Yang
2014-09-23 3:39 ` [PATCH v2 1/4] arm: mediatek: Add config option for mediatek SoCs Hongzhou.Yang
2014-09-23 3:39 ` [PATCH v2 2/4] ARM: mediatek: Add Pinctrl/GPIO driver for mt8135 Hongzhou.Yang
2014-10-02 13:38 ` Linus Walleij
2014-10-06 10:35 ` Joe.C
2014-10-21 9:08 ` Linus Walleij
2014-09-23 3:39 ` [PATCH v2 3/4] dt-bindings: Add pinctrl bindings for mt65xx/mt81xx Hongzhou.Yang
2014-10-02 14:00 ` Linus Walleij
2014-10-02 14:41 ` Lucas Stach
2014-10-21 8:45 ` Linus Walleij
2014-09-23 3:39 ` [PATCH v2 4/4] ARM: dts: mt8135: Add pinctrl node for mt8135 Hongzhou.Yang
2014-09-23 13:03 ` Arnd Bergmann
2014-09-23 13:58 ` Joe.C
2014-09-23 14:10 ` Arnd Bergmann
2014-09-23 14:29 ` Joe.C
2014-09-23 14:55 ` Sascha Hauer
2014-09-23 14:16 ` Chen-Yu Tsai
2014-09-23 15:08 ` Joe.C
2014-09-24 11:23 ` Linus Walleij
2014-09-24 12:40 ` Sascha Hauer
2014-09-26 5:32 ` Sascha Hauer
2014-10-02 14:02 ` Linus Walleij
2014-10-02 14:28 ` Lucas Stach [this message]
2014-10-21 8:58 ` Linus Walleij
2014-10-06 7:18 ` Sascha Hauer
2014-10-21 9:02 ` Linus Walleij
2014-09-23 13:28 ` [PATCH v2 0/4] Add Mediatek SoC Pinctrl/GPIO driver for MT8135 Matthias Brugger
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=1412260136.4875.9.camel@pengutronix.de \
--to=l.stach@pengutronix.de \
--cc=linux-arm-kernel@lists.infradead.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 NNTP newsgroup(s).