linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Geert Uytterhoeven <geert@linux-m68k.org>
To: Chris Brandt <Chris.Brandt@renesas.com>
Cc: Linus Walleij <linus.walleij@linaro.org>,
	jmondi <jacopo@jmondi.org>,
	Andy Shevchenko <andy.shevchenko@gmail.com>,
	Jacopo Mondi <jacopo+renesas@jmondi.org>,
	Geert Uytterhoeven <geert+renesas@glider.be>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	Rob Herring <robh+dt@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Russell King - ARM Linux <linux@armlinux.org.uk>,
	Linux-Renesas <linux-renesas-soc@vger.kernel.org>,
	"linux-gpio@vger.kernel.org" <linux-gpio@vger.kernel.org>,
	devicetree <devicetree@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v5 01/10] pinctrl: generic: Add bi-directional and output-enable
Date: Fri, 12 May 2017 14:25:23 +0200	[thread overview]
Message-ID: <CAMuHMdWVsuq9eucz9hz47oBtEvBGW2sJ8-G7L4hDk53CNnxd2A@mail.gmail.com> (raw)
In-Reply-To: <SG2PR06MB1165FF6C0F4DBD8987BC396A8AE20@SG2PR06MB1165.apcprd06.prod.outlook.com>

Hi Chris,

On Fri, May 12, 2017 at 2:13 PM, Chris Brandt <Chris.Brandt@renesas.com> wrote:
> On Friday, May 12, 2017, Geert Uytterhoeven wrote:
>> Jacopo, Chris: Would two bits per pin/function (none, input, output,
>> bidir)
>> be sufficient?
>> That makes one u16 per pin. So roughtly 12 ports x 16 pins => 384 bytes.
>> Plus code to handle it. After all not that bad...
>
> OK...I give up!
> If that's what it takes to get it, I'm fine.
>
> NOTE, your math is a little off, the issue is that depending on the
> function that you use, you might need to do extra settings, so you'd
> have to have a lookup table for every pin & function.
> Each pin can have 1 of 8 functions (which is good because a 'byte' has
> 8 bits).
>
> So,
>  12 ports x 16 pins => 384 bytes  (this table would just be for checking if bi-dir is needed)
>  12 ports x 16 pins => 384 bytes  (this table would just be for checking if input is needed)
>  12 ports x 16 pins => 384 bytes  (this table would just be for checking if input is needed)
         ------------
>                      1,152 bytes

12 x 16 = 192, not 384.

Do you need all possible combinations of input, output, and bi-dir?
I assumed they're mutually exclusive. If not, you need 3 bits/pin/function.

> But then...there are package variations so you need another entire
> table for those parts.
>    1,152 bytes x 2 = 2,304 bytes

With packages, do you mean e.g. RZ/A1H vs. RZ/A1L? These indeed differ, but
should use different compatible values.
Or do you mean QFP/BGA256 vs. BGA324? Isn't the former a subset of the latter?

> #What we should really do is just make a look-up table (tables) for the
> 'special' ones. But, we can have that discussion in a different thread.

Yep, depending on what gives the smallest code/data size.

> There is still a need for "input-enable" and "output-enable" for the timer
> pins. Because, when you choose the pin to be connected to the MTU2 timer,
> the pin can be used as either input-capture/output-compare/PWM and that's
> the user's choice. So that's probably a valid usage of the generic pin
> properties for configuration.

OK.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

  reply	other threads:[~2017-05-12 12:25 UTC|newest]

Thread overview: 79+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-27  8:19 [PATCH v5 00/10] Renesas RZ/A1 pin and gpio controller Jacopo Mondi
2017-04-27  8:19 ` [PATCH v5 01/10] pinctrl: generic: Add bi-directional and output-enable Jacopo Mondi
2017-04-27 14:56   ` Andy Shevchenko
2017-04-28  8:32     ` Linus Walleij
2017-04-28 10:09       ` Geert Uytterhoeven
2017-05-07  7:50         ` Linus Walleij
2017-04-28 12:07       ` Chris Brandt
2017-04-28 12:15         ` Andy Shevchenko
2017-04-28 13:18           ` Chris Brandt
2017-04-28 14:53             ` Andy Shevchenko
2017-04-28 15:16               ` Chris Brandt
2017-04-28 15:37                 ` Andy Shevchenko
2017-04-28 16:46                   ` Chris Brandt
2017-05-07  7:52               ` Linus Walleij
2017-05-08 16:01                 ` jmondi
2017-05-08 16:08                   ` Andy Shevchenko
2017-05-08 17:02                     ` Chris Brandt
2017-05-08 18:26                       ` Andy Shevchenko
2017-05-08 20:05                         ` Chris Brandt
2017-05-08 17:25                     ` jmondi
2017-05-08 17:47                       ` Andy Shevchenko
2017-05-09  9:55                         ` jmondi
2017-05-08 21:19                       ` Linus Walleij
2017-05-09 10:54                         ` Geert Uytterhoeven
2017-05-12  9:00                           ` Linus Walleij
2017-05-12  9:04                           ` Linus Walleij
2017-05-12 11:11                             ` Geert Uytterhoeven
2017-05-12 12:13                               ` Chris Brandt
2017-05-12 12:25                                 ` Geert Uytterhoeven [this message]
2017-05-12 12:57                                   ` Chris Brandt
2017-05-12 11:44                             ` Chris Brandt
2017-05-23 10:08                         ` Dong Aisheng
2017-05-23 18:37                           ` jmondi
2017-05-29  8:45                             ` Linus Walleij
2017-05-29 10:42                               ` jmondi
2017-05-30 14:12                                 ` Chris Brandt
2017-06-09  7:26                                 ` Dong Aisheng
2017-06-09  7:50                                   ` jmondi
2017-06-11 21:45                                     ` Linus Walleij
2017-06-12  9:44                                       ` jmondi
2017-06-13  6:25                                         ` Dong Aisheng
2017-06-15 11:11                                           ` jmondi
2017-06-19 15:43                                             ` Dong Aisheng
2017-04-27  8:19 ` [PATCH v5 02/10] pinctrl: generic: Add macros to unpack properties Jacopo Mondi
2017-04-27  8:37   ` Geert Uytterhoeven
2017-04-28  8:16   ` Linus Walleij
2017-04-28 10:06     ` Geert Uytterhoeven
2017-04-28 12:49     ` jmondi
2017-04-28 16:23     ` Andy Shevchenko
2017-04-27  8:19 ` [PATCH v5 03/10] pinctrl: Renesas RZ/A1 pin and gpio controller Jacopo Mondi
2017-04-27  8:37   ` Geert Uytterhoeven
2017-04-27  8:19 ` [PATCH v5 04/10] dt-bindings: pinctrl: Add RZ/A1 bindings doc Jacopo Mondi
2017-04-27  8:37   ` Geert Uytterhoeven
2017-04-28 21:03   ` Rob Herring
2017-04-27  8:19 ` [PATCH v5 05/10] arm: dts: dt-bindings: Add Renesas RZ/A1 pinctrl header Jacopo Mondi
2017-04-27  8:38   ` Geert Uytterhoeven
2017-04-28  5:19     ` Simon Horman
2017-04-27  8:19 ` [PATCH v5 06/10] arm: dts: r7s72100: Add pin controller node Jacopo Mondi
2017-04-27  8:19 ` [PATCH v5 07/10] arm: dts: genmai: Add SCIF2 pin group Jacopo Mondi
2017-04-28  5:21   ` Simon Horman
2017-04-27  8:19 ` [PATCH v5 08/10] arm: dts: genmai: Add RIIC2 " Jacopo Mondi
2017-04-27  8:19 ` [PATCH v5 09/10] arm: dts: genmai: Add user led device nodes Jacopo Mondi
2017-04-27  8:19 ` [PATCH v5 10/10] arm: dts: genmai: Add ethernet pin group Jacopo Mondi
2017-04-27  9:56   ` Geert Uytterhoeven
2017-04-27 10:48     ` Chris Brandt
2017-04-28  5:22       ` Simon Horman
2017-04-28  7:18       ` Geert Uytterhoeven
2017-04-28 14:48         ` Chris Brandt
2017-05-05 12:06           ` Linus Walleij
2017-05-05 12:20             ` Geert Uytterhoeven
2017-05-05 12:45             ` Chris Brandt
2017-05-11 13:48               ` Linus Walleij
2017-04-28  8:49   ` Linus Walleij
2017-04-28 13:50     ` Chris Brandt
2017-04-27  8:42 ` [PATCH v5 00/10] Renesas RZ/A1 pin and gpio controller Geert Uytterhoeven
2017-04-28  5:22   ` Simon Horman
2017-04-28  7:24   ` jmondi
2017-04-28  7:30     ` Geert Uytterhoeven
2017-04-28  7:31     ` Simon Horman

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=CAMuHMdWVsuq9eucz9hz47oBtEvBGW2sJ8-G7L4hDk53CNnxd2A@mail.gmail.com \
    --to=geert@linux-m68k.org \
    --cc=Chris.Brandt@renesas.com \
    --cc=andy.shevchenko@gmail.com \
    --cc=devicetree@vger.kernel.org \
    --cc=geert+renesas@glider.be \
    --cc=jacopo+renesas@jmondi.org \
    --cc=jacopo@jmondi.org \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=mark.rutland@arm.com \
    --cc=robh+dt@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 NNTP newsgroup(s).