linux-mtd.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: Thierry Reding <thierry.reding@gmail.com>
To: Paul Cercueil <paul@crapouillou.net>
Cc: Linus Walleij <linus.walleij@linaro.org>,
	Rob Herring <robh+dt@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Ralf Baechle <ralf@linux-mips.org>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	Boris Brezillon <boris.brezillon@free-electrons.com>,
	Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>,
	Maarten ter Huurne <maarten@treewalker.org>,
	Lars-Peter Clausen <lars@metafoo.de>,
	Paul Burton <paul.burton@imgtec.com>,
	linux-gpio@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mips@linux-mips.org,
	linux-mmc@vger.kernel.org, linux-mtd@lists.infradead.org,
	linux-pwm@vger.kernel.org, linux-fbdev@vger.kernel.org,
	james.hogan@imgtec.com
Subject: Re: [PATCH 00/13] Ingenic JZ4740 / JZ4780 pinctrl driver
Date: Wed, 18 Jan 2017 08:15:30 +0100	[thread overview]
Message-ID: <20170118071530.GA18989@ulmo.ba.sec> (raw)
In-Reply-To: <20170117231421.16310-1-paul@crapouillou.net>

[-- Attachment #1: Type: text/plain, Size: 2322 bytes --]

On Wed, Jan 18, 2017 at 12:14:08AM +0100, Paul Cercueil wrote:
[...]
> One problem still unresolved: the pinctrl framework does not allow us to
> configure each pin on demand (someone please prove me wrong), when the
> various PWM channels are requested or released. For instance, the PWM
> channels can be configured from sysfs, which would require all PWM pins
> to be configured properly beforehand for the PWM function, eventually
> causing conflicts with other platform or board drivers.

Still catching up on a lot of email, so I haven't gone through the
entire series. But I don't think the above is true.

My understanding is that you can have separate pin groups for each
pin (provided the hardware supports that) and then control each of
these groups dynamically at runtime.

That is you could have the PWM driver's ->request() and ->free()
call into the pinctrl framework to select the correct pinmux
configuration as necessary.

> The proper solution here would be to modify the pwm-jz4740 driver to
> handle only one PWM channel, and create an instance of this driver
> for each one of the 8 PWM channels. Then, it could use the pinctrl
> framework to dynamically configure the PWM pin it controls.

That could probably work. From only looking at the JZ4740 PWM driver
there's no separate IP block to deal with the PWM outputs, but they are
merely GPIOs controller via a timer, so one instance per GPIO seems like
a fine solution to me.

> Until this can be done, the only jz4740 board supported upstream
> (Qi lb60) could configure all of its connected PWM pins in PWM function
> mode, if those are not used by other drivers nor by GPIOs on the
> board. The only jz4780 board upstream (CI20) does not yet support the
> PWM driver.

Typically all of the pinmux is pre-determined by the board design. That
is if you've got 8 pins that can be driven by a PWM signal, not all of
those might be exposed by the design. If, say, only 0-4 and 6 expose the
PWM signal while 5 and 7 expose a different function then you can simply
use a static pinmux configuration and ignore PWMs 5 and 7. Even if
someone were to configure them, the signal would simply go nowhere.

Of course you'd have to check that your hardware actually matches those
assumptions. They certainly apply to many SoCs that I've come across.

Thierry

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

       reply	other threads:[~2017-01-18  7:15 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20170117231421.16310-1-paul@crapouillou.net>
2017-01-18  7:15 ` Thierry Reding [this message]
     [not found]   ` <27071da2f01d48141e8ac3dfaa13255d@mail.crapouillou.net>
2017-01-20  8:40     ` [PATCH 00/13] Ingenic JZ4740 / JZ4780 pinctrl driver Linus Walleij
     [not found]     ` <20170122144947.16158-1-paul@crapouillou.net>
     [not found]       ` <20170122144947.16158-11-paul@crapouillou.net>
2017-01-23 10:40         ` [PATCH v2 10/14] mmc: jz4740: Let the pinctrl driver configure the pins Ulf Hansson
     [not found]       ` <20170122144947.16158-2-paul@crapouillou.net>
2017-01-27 11:18         ` [PATCH v2 01/14] Documentation: dt/bindings: Document pinctrl-ingenic Linus Walleij
     [not found]           ` <08e9505d2d366557950f8e6a4e81f57a@mail.crapouillou.net>
2017-01-31 12:59             ` Linus Walleij
     [not found]     ` <CGME20170125185254epcas5p15b40cad57649dc77afe8d2fd316687ff@epcas5p1.samsung.com>
     [not found]       ` <20170125185207.23902-13-paul@crapouillou.net>
2017-01-30 16:10         ` [PATCH v3 12/14] fbdev: jz4740-fb: Let the pinctrl driver configure the pins Bartlomiej Zolnierkiewicz
     [not found]     ` <20170125185207.23902-1-paul@crapouillou.net>
     [not found]       ` <20170125185207.23902-3-paul@crapouillou.net>
2017-01-30 20:33         ` [PATCH v3 02/14] Documentation: dt/bindings: Document pinctrl-gpio Rob Herring
     [not found]       ` <20170125185207.23902-2-paul@crapouillou.net>
2017-01-30 20:36         ` [PATCH v3 01/14] Documentation: dt/bindings: Document pinctrl-ingenic Rob Herring
     [not found]           ` <12dc62a7255bd453ff4e5e89f93ebc58@mail.crapouillou.net>
2017-01-31 13:09             ` Linus Walleij
     [not found]               ` <fd3c507484a9ee34a08c9f92e60624db@mail.crapouillou.net>
2017-02-20 13:56                 ` Linus Walleij
     [not found]                   ` <f19fea79c2616455f5f08070923428cc@crapouillou.net>
2017-02-23  9:59                     ` Linus Walleij
     [not found]         ` <20170402204244.14216-1-paul@crapouillou.net>
     [not found]           ` <20170402204244.14216-2-paul@crapouillou.net>
2017-04-04 14:48             ` [PATCH v4 01/14] " Rob Herring
     [not found]             ` <20170428200824.10906-1-paul@crapouillou.net>
     [not found]               ` <20170428200824.10906-3-paul@crapouillou.net>
2017-05-05 19:57                 ` [PATCH v5 02/14] dt/bindings: Document gpio-ingenic Rob Herring
     [not found]               ` <20170428200824.10906-4-paul@crapouillou.net>
     [not found]                 ` <7941dbfbaeaf5c23bb177e66165060d3@crapouillou.net>
2017-05-11 11:01                   ` [PATCH v5 03/14] pinctrl: add a pinctrl driver for the Ingenic jz47xx SoCs Linus Walleij
     [not found]               ` <20170428200824.10906-5-paul@crapouillou.net>
     [not found]                 ` <3a779fca-5a56-44e5-2acf-12b8abdaf906@crapouillou.net>
2017-05-11 11:06                   ` [PATCH v5 04/14] GPIO: Add gpio-ingenic driver Linus Walleij
     [not found]               ` <20170428200824.10906-6-paul@crapouillou.net>
2017-05-11 11:08                 ` [PATCH v5 05/14] MIPS: ingenic: Enable pinctrl for all ingenic SoCs Linus Walleij
2017-05-22 15:31                 ` Linus Walleij
2017-07-02 16:35                   ` Paul Cercueil
2017-07-03  9:07                     ` Linus Walleij
2017-07-03 13:55                       ` Ralf Baechle
2017-07-31 13:29                         ` Linus Walleij
     [not found]           ` <20170402204244.14216-3-paul@crapouillou.net>
2017-04-04 14:52             ` [PATCH v4 02/14] dt/bindings: Document gpio-ingenic Rob Herring
     [not found]           ` <20170402204244.14216-14-paul@crapouillou.net>
2017-04-06 14:40             ` [PATCH v4 13/14] pwm: jz4740: Let the pinctrl driver configure the pins Thierry Reding
     [not found]           ` <20170402204244.14216-5-paul@crapouillou.net>
2017-04-03 14:15             ` [PATCH v4 04/14] GPIO: Add gpio-ingenic driver kbuild test robot
2017-04-07  9:34             ` Linus Walleij
     [not found]           ` <20170402204244.14216-4-paul@crapouillou.net>
2017-04-07  9:41             ` [PATCH v4 03/14] pinctrl-ingenic: add a pinctrl driver for the Ingenic jz47xx SoCs Linus Walleij
2017-04-07 10:56               ` Lee Jones
     [not found]           ` <20170402204244.14216-7-paul@crapouillou.net>
2017-04-03  9:57             ` [PATCH v4 06/14] MIPS: jz4740: DTS: Add nodes for ingenic pinctrl and gpio drivers Sergei Shtylyov
     [not found]               ` <cf809000718514ba612b4f7b477586a9@crapouillou.net>
2017-04-03 10:32                 ` Sergei Shtylyov
2017-04-07  9:44             ` Linus Walleij
     [not found]               ` <e4aaf8c3e8a54df2c5878f8e873e290f@crapouillou.net>
2017-04-24 12:58                 ` Linus Walleij
     [not found]       ` <20170125185207.23902-4-paul@crapouillou.net>
2017-01-31 14:05         ` [PATCH v3 03/14] pinctrl-ingenic: add a pinctrl driver for the Ingenic jz47xx SoCs Linus Walleij
     [not found]       ` <20170125185207.23902-7-paul@crapouillou.net>
2017-01-31 14:16         ` [PATCH v3 06/14] MIPS: jz4740: DTS: Add nodes for ingenic pinctrl and gpio drivers Linus Walleij
     [not found]       ` <20170125185207.23902-5-paul@crapouillou.net>
2017-01-31 14:13         ` [PATCH v3 04/14] GPIO: Add gpio-ingenic driver Linus Walleij
     [not found]           ` <b032ad924ae905ce4fd11535d08c29a8@mail.crapouillou.net>
2017-02-12 20:48             ` Linus Walleij
2017-01-31 14:20         ` Linus Walleij
     [not found]           ` <699f0c63e95ecdafe6946fdcdbb97a37@mail.crapouillou.net>
2017-02-03 13:58             ` Linus Walleij
     [not found] ` <20170117231421.16310-13-paul@crapouillou.net>
2017-01-18  7:20   ` [PATCH 12/13] pwm: jz4740: Let the pinctrl driver configure the pins Thierry Reding
     [not found] ` <20170117231421.16310-14-paul@crapouillou.net>
2017-01-18  7:27   ` [PATCH 13/13] MIPS: jz4740: Remove custom GPIO code Thierry Reding
2017-01-19  9:07   ` Linus Walleij
     [not found] ` <20170117231421.16310-3-paul@crapouillou.net>
2017-01-18 10:16   ` [PATCH 02/13] pinctrl-jz4740: add a pinctrl driver for the Ingenic jz4740 SoC Linus Walleij
     [not found] ` <20170117231421.16310-2-paul@crapouillou.net>
2017-01-18 23:45   ` [PATCH 01/13] Documentation: dt/bindings: Document pinctrl-ingenic Linus Walleij
     [not found] ` <20170117231421.16310-6-paul@crapouillou.net>
2017-01-18 23:50   ` [PATCH 05/13] MIPS: jz4740: DTS: Add node for the jz4740-pinctrl driver Linus Walleij
2017-01-19  6:38 ` [PATCH 00/13] Ingenic JZ4740 / JZ4780 pinctrl driver Linus Walleij
     [not found] ` <20170117231421.16310-10-paul@crapouillou.net>
2017-01-19 10:55   ` [PATCH 09/13] mmc: jz4740: Let the pinctrl driver configure the pins Ulf Hansson
     [not found] ` <20170117231421.16310-11-paul@crapouillou.net>
2017-01-27 17:33   ` [PATCH 10/13] mtd: nand: " Boris Brezillon

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=20170118071530.GA18989@ulmo.ba.sec \
    --to=thierry.reding@gmail.com \
    --cc=b.zolnierkie@samsung.com \
    --cc=boris.brezillon@free-electrons.com \
    --cc=devicetree@vger.kernel.org \
    --cc=james.hogan@imgtec.com \
    --cc=lars@metafoo.de \
    --cc=linus.walleij@linaro.org \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@linux-mips.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=linux-pwm@vger.kernel.org \
    --cc=maarten@treewalker.org \
    --cc=mark.rutland@arm.com \
    --cc=paul.burton@imgtec.com \
    --cc=paul@crapouillou.net \
    --cc=ralf@linux-mips.org \
    --cc=robh+dt@kernel.org \
    --cc=ulf.hansson@linaro.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).