All of lore.kernel.org
 help / color / mirror / Atom feed
From: Linus Walleij <linus.walleij@linaro.org>
To: Tony Lindgren <tony@atomide.com>
Cc: Gary Bisson <gary.bisson@boundarydevices.com>,
	Grygorii Strashko <grygorii.strashko@ti.com>,
	Mark Rutland <mark.rutland@arm.com>, Nishanth Menon <nm@ti.com>,
	Rob Herring <robh+dt@kernel.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-gpio@vger.kernel.org" <linux-gpio@vger.kernel.org>,
	Linux-OMAP <linux-omap@vger.kernel.org>,
	Lokesh Vutla <lokeshvutla@ti.com>
Subject: Re: [PATCH 2/2] pinctrl: Introduce TI IOdelay configuration driver
Date: Mon, 9 Jan 2017 19:46:23 +0100	[thread overview]
Message-ID: <CACRpkdYCmrWyyKNkaqeUxtLV8HrmjgcXrULVvLbFhmt64wsVyQ@mail.gmail.com> (raw)
In-Reply-To: <20170105185414.27247-3-tony@atomide.com>

On Thu, Jan 5, 2017 at 7:54 PM, Tony Lindgren <tony@atomide.com> wrote:

> From: Nishanth Menon <nm@ti.com>
>
> SoC family such as DRA7 family of processors have, in addition
> to the regular muxing of pins (as done by pinctrl-single), a separate
> hardware module called IODelay which is also expected to be configured.
> The "IODelay" module has it's own register space that is independent
> of the control module and the padconf register area.
>
> With recent changes to the pinctrl framework, we can now support
> this hardware with a reasonably minimal driver by using #pinctrl-cells,
> GENERIC_PINCTRL_GROUPS and GENERIC_PINMUX_FUNCTIONS.
>
> It is advocated strongly in TI's official documentation considering
> the existing design of the DRA7 family of processors during mux or
> IODelay reconfiguration, there is a potential for a significant glitch
> which may cause functional impairment to certain hardware. It is
> hence recommended to do as little of muxing as absolutely necessary
> without I/O isolation (which can only be done in initial stages of
> bootloader).
>
> NOTE: with the system wide I/O isolation scheme present in DRA7 SoC
> family, it is not reasonable to do stop all I/O operations for every
> such pad configuration scheme. So, we will let it glitch when used in
> this mode.
>
> Even with the above limitation, certain functionality such as MMC has
> mandatory need for IODelay reconfiguration requirements, depending on
> speed of transfer. In these cases, with careful examination of usecase
> involved, the expected glitch can be controlled such that it does not
> impact functionality.
>
> In short, IODelay module support as a padconf driver being introduced
> here is not expected to do SoC wide I/O Isolation and is meant for
> a limited subset of IODelay configuration requirements that need to
> be dynamic and whose glitchy behavior will not cause functionality
> failure for that interface.
>
> IMPORTANT NOTE: we take the approach of keeping LOCK_BITs cleared
> to 0x0 at all times, even when configuring Manual IO Timing Modes.
> This is done by eliminating the LOCK_BIT=1 setting from Step
> of the Manual IO timing Mode configuration procedure. This option
> leaves the CFG_* registers unprotected from unintended writes to the
> CTRL_CORE_PAD_* registers while Manual IO Timing Modes are configured.
>
> This approach is taken to allow for a generic driver to exist in kernel
> world that has to be used carefully in required usecases.
>
> Signed-off-by: Nishanth Menon <nm@ti.com>
> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
> [tony@atomide.com: updated to use generic pinctrl functions, added
>  binding documentation, updated comments]
> Acked-by: Rob Herring <robh@kernel.org>
> Signed-off-by: Tony Lindgren <tony@atomide.com>

Oh what a hardware mess. But very nicely isolated now.
Patch applied!

Yours,
Linus Walleij

  reply	other threads:[~2017-01-09 18:46 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-05 18:54 [PATCHv3 0/2] Add TI iodelay driver using #pinctrl-cells Tony Lindgren
     [not found] ` <20170105185414.27247-1-tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2017-01-05 18:54   ` [PATCH 1/2] pinctrl: core: Make dt_free_map optional Tony Lindgren
2017-01-05 18:54   ` [PATCH 2/2] pinctrl: Introduce TI IOdelay configuration driver Tony Lindgren
2017-01-09 18:46     ` Linus Walleij [this message]
  -- strict thread matches above, loose matches on Subject: below --
2016-12-30 18:37 [PATCH 0/2] Add TI iodelay driver using #pinctrl-cells Tony Lindgren
2016-12-30 18:37 ` [PATCH 2/2] pinctrl: Introduce TI IOdelay configuration driver Tony Lindgren
     [not found]   ` <20161230183732.5595-3-tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2016-12-31 22:52     ` kbuild test robot
     [not found]       ` <201701010645.EBjk2p8Y%fengguang.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-01-02 18:04         ` Tony Lindgren
2017-01-01  2:02     ` kbuild test robot
2017-01-02 22:12     ` Tony Lindgren
2017-01-04 13:32       ` Rob Herring
2017-01-04 15:38       ` Nishanth Menon
     [not found]         ` <63a8a1ec-343a-8c96-a0d2-21d81f7ad10e-l0cyMroinI0@public.gmane.org>
2017-01-04 16:05           ` Tony Lindgren
     [not found]             ` <20170104160511.GF25222-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2017-01-04 16:51               ` Nishanth Menon
     [not found]       ` <20170102221228.GH9325-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2017-01-04 17:57         ` Nishanth Menon
2017-01-05 18:50           ` Tony Lindgren
2015-03-04  0:00 [PATCH 0/2] pinctrl: Introduce support for iodelay module in TI SoCs Nishanth Menon
2015-03-04  0:00 ` [PATCH 2/2] pinctrl: Introduce TI IOdelay configuration driver Nishanth Menon
2015-03-04  0:00   ` Nishanth Menon
2015-03-04  0:00   ` Nishanth Menon
2015-03-04 22:58   ` Paul Bolle
2015-03-04 22:58     ` Paul Bolle
2015-03-04 22:58     ` Tony Lindgren
2015-03-04 22:58       ` Tony Lindgren
2015-03-05  2:22       ` Nishanth Menon
2015-03-05  2:22         ` Nishanth Menon
2015-03-05  2:22         ` Nishanth Menon
2015-03-10 11:03   ` Linus Walleij
2015-03-10 11:03     ` Linus Walleij
2015-03-10 11:03     ` Linus Walleij
2015-03-11 12:39     ` Nishanth Menon
2015-03-11 12:39       ` Nishanth Menon
2015-03-11 12:39       ` Nishanth Menon

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=CACRpkdYCmrWyyKNkaqeUxtLV8HrmjgcXrULVvLbFhmt64wsVyQ@mail.gmail.com \
    --to=linus.walleij@linaro.org \
    --cc=devicetree@vger.kernel.org \
    --cc=gary.bisson@boundarydevices.com \
    --cc=grygorii.strashko@ti.com \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=lokeshvutla@ti.com \
    --cc=mark.rutland@arm.com \
    --cc=nm@ti.com \
    --cc=robh+dt@kernel.org \
    --cc=tony@atomide.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.