devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Geert Uytterhoeven <geert+renesas-gXvu3+zWzMSzQB+pC5nmwQ@public.gmane.org>
To: Simon Horman <horms-/R6kz+dDXgpPR4JQBCEnsQ@public.gmane.org>,
	Magnus Damm <magnus.damm-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	Laurent Pinchart
	<laurent.pinchart-ryLnwIuWjnjg/C1BVhZhaw@public.gmane.org>,
	Kuninori Morimoto
	<kuninori.morimoto.gx-zM6kxYcvzFBBDgjK7y7TUQ@public.gmane.org>
Cc: linux-renesas-soc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	Geert Uytterhoeven
	<geert+renesas-gXvu3+zWzMSzQB+pC5nmwQ@public.gmane.org>
Subject: [PATCH v2 0/4] arm: renesas: Add reset control properties
Date: Thu, 16 Mar 2017 15:07:22 +0100	[thread overview]
Message-ID: <1489673246-11015-1-git-send-email-geert+renesas@glider.be> (raw)

	Hi Simon, Magnus, Laurent, Morimoto-san,

This patch series describes the reset control topology for on-SoC devices
connected to the Renesas Clock Pulse Generator / Module Standby and
Software Reset module on the R-Car H3 and M3-W, RZ/G1M, and RZ/G1E SoCs.

Resets usually match the corresponding module clocks.  Exceptions are:
  - The Display Unit has only 2 resets, one per channel pair, cfr.
    "[PATCH v2] dt-bindings: drm: rcar-du: Document optional reset
    properties" (http://www.spinics.net/lists/dri-devel/msg134637.html),
  - The audio module has resets for the Serial Sound Interfaces only.
    Adding resets and reset-names properties depends on a DT binding
    update for renesas,rsnd (note: the DT binding documentation in
    Documentation/devicetree/bindings/sound/renesas,rsnd.txt doesn't
    even document clocks and clock-names?).
Upon request from Laurent for the DU, and upon a DT bindings update
for rcar_sound, the addition of resets (and reset-names) properties for
these complex modules is postponed.

Note that this patch series contains hardware description only.
Actual reset policy is to be defined and implemented separately.
Also, this is an optional feature, to be enabled explicitly using
CONFIG_RESET_CONTROLLER=y.  When enabled, an on-SoC device can be reset
easily using device_reset(), or by using the reset_control_*() API when
more fine-grained control is desired.

Possible use cases are (not exhaustive):
  - Reset a device before use, to make sure it's in a predefined state, and
    doesn't depend on earlier configuration by e.g. the boot loader,
  - Reset a device after detecting an anomaly,
  - Reset a device to verify suspend/resume is handled correctly by the
    driver in case the device would be part of a power domain on a
    different/future SoC.

Dependencies and impact:
  - The corresponding driver changes to the CGP/MSSR driver are already
    present in v4.11-rc1.
  - These patches have no impact as long as CONFIG_RESET_CONTROLLER=n.
    However, if CONFIG_RESET_CONTROLLER=y and resets properties are
    prsesent in DTS, the EHCI and OHCI drivers already deassert reset as
    part of their initialization sequences, and put the devices back
    into reset state in case initialization failed, or on unbind.
    I'm not aware of other relevant drivers already using reset control.

For testing, these patches are also available in the
topic/renesas-cpg-mssr-reset-dts-v2 branch of my renesas-drivers git
repository at
git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git

This has been tested on the R-Car Gen3 Salvator-X (H3 and M3-W) and the
R-Car M2-W (using out-of-tree driver modifications) Koelsch development
boards, by inspecting device register contents before and after reset,
and by comparing them with their documented reset values.

Changes compared to v1:
  - Break out from "[PATCH 0/8] Renesas CPG/MSSR Reset Control Support"
    (https://lkml.org/lkml/2017/1/20/336),
  - Postpone adding resets and reset-names properties for complex
    devices (du, rcar_sound),
  - Rebase on top of renesas-devel-20170313-v4.11-rc2,
  - Add reset properties to recently added device nodes.

Thanks for applying!

Geert Uytterhoeven (4):
  arm64: dts: r8a7795: Add reset control properties
  arm64: dts: r8a7796: Add reset control properties
  ARM: dts: r8a7743: Add reset control properties
  ARM: dts: r8a7745: Add reset control properties

 arch/arm/boot/dts/r8a7743.dtsi           | 24 +++++++++
 arch/arm/boot/dts/r8a7745.dtsi           | 24 +++++++++
 arch/arm64/boot/dts/renesas/r8a7795.dtsi | 93 ++++++++++++++++++++++++++++++++
 arch/arm64/boot/dts/renesas/r8a7796.dtsi | 46 ++++++++++++++++
 4 files changed, 187 insertions(+)

-- 
2.7.4

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert-Td1EMuHUCqxL1ZNQvxDV9g@public.gmane.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
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

             reply	other threads:[~2017-03-16 14:07 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-16 14:07 Geert Uytterhoeven [this message]
2017-03-16 14:07 ` [PATCH v2 1/4] arm64: dts: r8a7795: Add reset control properties Geert Uytterhoeven
     [not found] ` <1489673246-11015-1-git-send-email-geert+renesas-gXvu3+zWzMSzQB+pC5nmwQ@public.gmane.org>
2017-03-16 14:07   ` [PATCH v2 2/4] arm64: dts: r8a7796: " Geert Uytterhoeven
2017-03-16 14:07   ` [PATCH v2 3/4] ARM: dts: r8a7743: " Geert Uytterhoeven
2017-03-16 14:07   ` [PATCH v2 4/4] ARM: dts: r8a7745: " Geert Uytterhoeven
2017-03-20  8:28 ` [PATCH v2 0/4] arm: renesas: " Simon Horman
2017-03-20  9:31   ` Geert Uytterhoeven
     [not found]     ` <CAMuHMdUdFUBh=2azMLWJ1Bm34pP3OnesqdvR1ZQ14JgMtuqecw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-03-21  8:20       ` 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=1489673246-11015-1-git-send-email-geert+renesas@glider.be \
    --to=geert+renesas-gxvu3+zwzmszqb+pc5nmwq@public.gmane.org \
    --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=horms-/R6kz+dDXgpPR4JQBCEnsQ@public.gmane.org \
    --cc=kuninori.morimoto.gx-zM6kxYcvzFBBDgjK7y7TUQ@public.gmane.org \
    --cc=laurent.pinchart-ryLnwIuWjnjg/C1BVhZhaw@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-renesas-soc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=magnus.damm-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.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).