devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jon Hunter <jon-hunter@ti.com>
To: Rob Herring <rob.herring@calxeda.com>,
	Grant Likely <grant.likely@secretlab.ca>,
	Tony Lindgren <tony@atomide.com>,
	Benoit Cousson <b-cousson@ti.com>
Cc: device-tree <devicetree-discuss@lists.ozlabs.org>,
	linux-omap <linux-omap@vger.kernel.org>,
	linux-arm <linux-arm-kernel@lists.infradead.org>,
	Daniel Mack <zonque@gmail.com>,
	Ezequiel Garcia <elezegarcia@gmail.com>,
	Mark Jackson <mpfj-list@mimc.co.uk>,
	Jon Hunter <jon-hunter@ti.com>
Subject: [PATCH V3 02/18] ARM: OMAP2+: Add variable to store number of GPMC waitpins
Date: Fri, 15 Mar 2013 10:21:00 -0500	[thread overview]
Message-ID: <1363360876-13617-3-git-send-email-jon-hunter@ti.com> (raw)
In-Reply-To: <1363360876-13617-1-git-send-email-jon-hunter@ti.com>

The GPMC has wait-pin signals that can be assigned to a chip-select
to monitor the ready signal of an external device. Add a variable to
indicate the total number of wait-pins for a given device. This will
allow us to detect if the wait-pin being selected is valid or not.

When booting with device-tree read the number of wait-pins from the
device-tree blob. When device-tree is not used set the number of
wait-pins to 4 which is valid for OMAP2-5 devices. Newer devices
that have less wait-pins (such as AM335x) only support booting with
device-tree and so hard-coding the wait-pin number when not using
device-tree is fine.

Signed-off-by: Jon Hunter <jon-hunter@ti.com>
---
 arch/arm/mach-omap2/gpmc.c |   16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c
index ef655d9..88a261c 100644
--- a/arch/arm/mach-omap2/gpmc.c
+++ b/arch/arm/mach-omap2/gpmc.c
@@ -108,6 +108,8 @@
 #define	GPMC_HAS_WR_ACCESS		0x1
 #define	GPMC_HAS_WR_DATA_MUX_BUS	0x2
 
+#define GPMC_NR_WAITPINS		4
+
 /* XXX: Only NAND irq has been considered,currently these are the only ones used
  */
 #define	GPMC_NR_IRQ		2
@@ -153,6 +155,7 @@ static struct resource	gpmc_cs_mem[GPMC_CS_NUM];
 static DEFINE_SPINLOCK(gpmc_mem_lock);
 /* Define chip-selects as reserved by default until probe completes */
 static unsigned int gpmc_cs_map = ((1 << GPMC_CS_NUM) - 1);
+static unsigned int gpmc_nr_waitpins;
 static struct device *gpmc_dev;
 static int gpmc_irq;
 static resource_size_t phys_base, mem_size;
@@ -1297,6 +1300,13 @@ static int gpmc_probe_dt(struct platform_device *pdev)
 	if (!of_id)
 		return 0;
 
+	ret = of_property_read_u32(pdev->dev.of_node, "gpmc,num-waitpins",
+				   &gpmc_nr_waitpins);
+	if (ret < 0) {
+		pr_err("%s: number of wait pins not found!\n", __func__);
+		return ret;
+	}
+
 	for_each_node_by_name(child, "nand") {
 		ret = gpmc_probe_nand_child(pdev, child);
 		if (ret < 0) {
@@ -1372,6 +1382,12 @@ static int gpmc_probe(struct platform_device *pdev)
 	if (gpmc_setup_irq() < 0)
 		dev_warn(gpmc_dev, "gpmc_setup_irq failed\n");
 
+	/* Now the GPMC is initialised, unreserve the chip-selects */
+	gpmc_cs_map = 0;
+
+	if (!pdev->dev.of_node)
+		gpmc_nr_waitpins = GPMC_NR_WAITPINS;
+
 	rc = gpmc_probe_dt(pdev);
 	if (rc < 0) {
 		clk_disable_unprepare(gpmc_l3_clk);
-- 
1.7.10.4


  parent reply	other threads:[~2013-03-15 15:21 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-15 15:20 [PATCH V3 00/18] ARM: OMAP2+: GPMC clean-up and DT update Jon Hunter
2013-03-15 15:20 ` [PATCH V3 01/18] ARM: OMAP2+: Simplify code configuring ONENAND devices Jon Hunter
2013-03-15 15:21 ` Jon Hunter [this message]
2013-03-16 20:59   ` [PATCH V3 02/18] ARM: OMAP2+: Add variable to store number of GPMC waitpins Ezequiel Garcia
2013-03-18 13:43     ` Jon Hunter
2013-03-15 15:21 ` [PATCH V3 03/18] ARM: OMAP2+: Add structure for storing GPMC settings Jon Hunter
2013-03-15 15:21 ` [PATCH V3 04/18] ARM: OMAP2+: Add function for configuring " Jon Hunter
2013-03-15 15:21 ` [PATCH V3 05/18] ARM: OMAP2+: Convert ONENAND to use gpmc_cs_program_settings() Jon Hunter
2013-03-15 15:21 ` [PATCH V3 06/18] ARM: OMAP2+: Convert NAND " Jon Hunter
2013-03-15 15:21 ` [PATCH V3 07/18] ARM: OMAP2+: Convert SMC91x " Jon Hunter
2013-03-15 15:21 ` [PATCH V3 08/18] ARM: OMAP2+: Convert TUSB " Jon Hunter
2013-03-15 15:21 ` [PATCH V3 09/18] ARM: OMAP2+: Don't configure of chip-select options in gpmc_cs_configure() Jon Hunter
2013-03-15 15:21 ` [PATCH V3 10/18] ARM: OMAP2+: Add function to read GPMC settings from device-tree Jon Hunter
2013-03-17  5:24   ` Ezequiel Garcia
2013-03-18 13:43     ` Jon Hunter
2013-03-15 15:21 ` [PATCH V3 11/18] ARM: OMAP2+: Add device-tree support for NOR flash Jon Hunter
2013-03-15 15:21 ` [PATCH V3 12/18] ARM: OMAP2+: Add additional GPMC timing parameters Jon Hunter
2013-03-18 14:07   ` Rob Herring
2013-03-18 14:32     ` Jon Hunter
2013-03-18 15:59       ` Jon Hunter
2013-03-15 15:21 ` [PATCH V3 13/18] ARM: OMAP2+: Convert NAND to retrieve GPMC settings from DT Jon Hunter
2013-03-15 15:21 ` [PATCH V3 14/18] ARM: OMAP2+: Convert ONENAND " Jon Hunter
2013-03-15 15:21 ` [PATCH V3 15/18] ARM: OMAP2+: Detect incorrectly aligned GPMC base address Jon Hunter
2013-03-15 15:21 ` [PATCH V3 16/18] ARM: OMAP2+: Remove unnecesssary GPMC definitions and variable Jon Hunter
2013-03-15 15:21 ` [PATCH V3 17/18] ARM: OMAP2+: Allow GPMC probe to complete even if CS mapping fails Jon Hunter
2013-03-15 15:21 ` [PATCH V3 18/18] ARM: OMAP2+: return -ENODEV if GPMC child device creation fails Jon Hunter
2013-03-17  5:34 ` [PATCH V3 00/18] ARM: OMAP2+: GPMC clean-up and DT update Ezequiel Garcia

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=1363360876-13617-3-git-send-email-jon-hunter@ti.com \
    --to=jon-hunter@ti.com \
    --cc=b-cousson@ti.com \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=elezegarcia@gmail.com \
    --cc=grant.likely@secretlab.ca \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=mpfj-list@mimc.co.uk \
    --cc=rob.herring@calxeda.com \
    --cc=tony@atomide.com \
    --cc=zonque@gmail.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;
as well as URLs for NNTP newsgroup(s).