From: Matt Porter <mporter@ti.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
"Hans J. Koch" <hjk@hansjkoch.de>,
Benoit Cousson <b-cousson@ti.com>, Paul Walmsley <paul@pwsan.com>,
Sekhar Nori <nsekhar@ti.com>
Cc: Tony Lindgren <tony@atomide.com>,
Russell King <linux@arm.linux.org.uk>,
Linux OMAP List <linux-omap@vger.kernel.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Linux ARM Kernel List <linux-arm-kernel@lists.infradead.org>,
Linux DaVinci Kernel List
<davinci-linux-open-source@linux.davincidsp.com>
Subject: [PATCH v2 6/7] ARM: omap: add DT support for deasserting hardware reset lines
Date: Fri, 28 Sep 2012 15:37:51 -0400 [thread overview]
Message-ID: <1348861072-14507-7-git-send-email-mporter@ti.com> (raw)
In-Reply-To: <1348861072-14507-1-git-send-email-mporter@ti.com>
This optional binding extension allows specification of a hwmod
and associate hardware reset line which should be deasserted for
the device to be functional.
The implementation works for reference as to the problem that
exists for utilizing uio_pruss on AM33xx but is suboptimal. The
problem is that this deassertion occurs before clocks are enabled
and we are warned that the hard reset failed. Ideally the list of
rst lines requested to be deasserted would be cached and used within
the hwmod enable sequencing (instead of it just returning if any
hardware reset line is asserted).
Signed-off-by: Matt Porter <mporter@ti.com>
---
.../devicetree/bindings/arm/omap/omap.txt | 2 ++
arch/arm/plat-omap/omap_device.c | 25 ++++++++++++++++++--
2 files changed, 25 insertions(+), 2 deletions(-)
diff --git a/Documentation/devicetree/bindings/arm/omap/omap.txt b/Documentation/devicetree/bindings/arm/omap/omap.txt
index d0051a7..3133a4b 100644
--- a/Documentation/devicetree/bindings/arm/omap/omap.txt
+++ b/Documentation/devicetree/bindings/arm/omap/omap.txt
@@ -21,6 +21,8 @@ Required properties:
Optional properties:
- ti,no_idle_on_suspend: When present, it prevents the PM to idle the module
during suspend.
+- ti,deassert-hard-reset: list of hwmod and hardware reset line name pairs
+ (ascii strings) to be deasserted upon device instantiation.
Example:
diff --git a/arch/arm/plat-omap/omap_device.c b/arch/arm/plat-omap/omap_device.c
index d5f617c..d1ae68c 100644
--- a/arch/arm/plat-omap/omap_device.c
+++ b/arch/arm/plat-omap/omap_device.c
@@ -330,8 +330,8 @@ static int omap_device_build_from_dt(struct platform_device *pdev)
struct omap_device *od;
struct omap_hwmod *oh;
struct device_node *node = pdev->dev.of_node;
- const char *oh_name;
- int oh_cnt, i, ret = 0;
+ const char *oh_name, *rst_name;
+ int oh_cnt, dstr_cnt, i, ret = 0;
oh_cnt = of_property_count_strings(node, "ti,hwmods");
if (!oh_cnt || IS_ERR_VALUE(oh_cnt)) {
@@ -376,6 +376,27 @@ static int omap_device_build_from_dt(struct platform_device *pdev)
if (of_get_property(node, "ti,no_idle_on_suspend", NULL))
omap_device_disable_idle_on_suspend(pdev);
+ dstr_cnt =
+ of_property_count_strings(node, "ti,deassert-hard-reset");
+ if (dstr_cnt > 0) {
+ for (i = 0; i < dstr_cnt; i += 2) {
+ of_property_read_string_index(
+ node, "ti,deassert-hard-reset", i,
+ &oh_name);
+ of_property_read_string_index(
+ node, "ti,deassert-hard-reset", i+1,
+ &rst_name);
+ oh = omap_hwmod_lookup(oh_name);
+ if (!oh) {
+ dev_warn(&pdev->dev,
+ "Cannot parse deassert property for '%s'\n",
+ oh_name);
+ break;
+ }
+ omap_hwmod_deassert_hardreset(oh, rst_name);
+ }
+ }
+
pdev->dev.pm_domain = &omap_device_pm_domain;
odbfd_exit1:
--
1.7.9.5
next prev parent reply other threads:[~2012-09-28 19:38 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-28 19:37 [PATCH v2 0/7] uio_pruss cleanup and platform support Matt Porter
2012-09-28 19:37 ` [PATCH v2 1/7] uio: uio_pruss: replace private SRAM API with genalloc Matt Porter
2012-09-28 19:37 ` [PATCH v2 2/7] uio: uio_pruss: add support for am33xx Matt Porter
2012-09-28 19:37 ` [PATCH v2 3/7] uio: dt: add TI PRUSS binding Matt Porter
2012-09-28 19:37 ` [PATCH v2 4/7] ARM: davinci: Add support for an L3RAM gen_pool Matt Porter
2012-10-01 12:04 ` Sekhar Nori
2012-10-01 12:32 ` Matt Porter
2012-10-01 13:50 ` Ben Gardiner
2012-10-02 11:13 ` Sekhar Nori
2012-10-02 15:51 ` Ben Gardiner
2012-10-02 16:20 ` Matt Porter
2012-10-01 13:56 ` Matt Porter
2012-10-02 10:02 ` Sekhar Nori
2012-10-02 16:14 ` Matt Porter
2012-09-28 19:37 ` [PATCH v2 5/7] ARM: davinci: Add support for PRUSS on DA850 Matt Porter
2012-09-28 19:37 ` Matt Porter [this message]
2012-09-28 19:37 ` [PATCH v2 7/7] ARM: dts: AM33xx PRUSS support Matt Porter
2012-09-29 18:34 ` [PATCH v2 0/7] uio_pruss cleanup and platform support Paul Walmsley
2012-10-01 12:54 ` Matt Porter
2012-10-03 15:00 ` Matt Porter
2012-10-05 4:43 ` Hebbar, Gururaja
2012-10-05 21:28 ` Matt Porter
2012-10-08 5:13 ` Hebbar, Gururaja
2015-08-02 18:42 ` Matwey V. Kornilov
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=1348861072-14507-7-git-send-email-mporter@ti.com \
--to=mporter@ti.com \
--cc=b-cousson@ti.com \
--cc=davinci-linux-open-source@linux.davincidsp.com \
--cc=gregkh@linuxfoundation.org \
--cc=hjk@hansjkoch.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=nsekhar@ti.com \
--cc=paul@pwsan.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®