Linux on ARM based TI OMAP SoCs
 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>, Jon Hunter <jon-hunter@ti.com>
Subject: [PATCH 02/14] ARM: OMAP2+: Add variable to store number of GPMC waitpins
Date: Tue, 26 Feb 2013 11:30:29 -0600	[thread overview]
Message-ID: <1361899842-30303-3-git-send-email-jon-hunter@ti.com> (raw)
In-Reply-To: <1361899842-30303-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 |   14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c
index 410e1ba..1c63de0 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;
@@ -1305,6 +1308,14 @@ 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) {
+		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) {
@@ -1383,6 +1394,9 @@ static int gpmc_probe(struct platform_device *pdev)
 	/* 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-02-26 17:31 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-26 17:30 [PATCH 00/14] ARM: OMAP2+: GPMC clean-up and DT update Jon Hunter
2013-02-26 17:30 ` [PATCH 01/14] ARM: OMAP2+: Simplify code configuring ONENAND devices Jon Hunter
2013-02-26 17:30 ` Jon Hunter [this message]
2013-02-26 17:30 ` [PATCH 03/14] ARM: OMAP2+: Add structure for storing GPMC settings Jon Hunter
2013-02-26 17:30 ` [PATCH 04/14] ARM: OMAP2+: Add function for configuring " Jon Hunter
2013-02-28  6:05   ` Philip, Avinash
     [not found]     ` <518397C60809E147AF5323E0420B992E3EA8F007-Er742YJ7I/eIQmiDNMet8wC/G2K4zDHf@public.gmane.org>
2013-02-28 15:52       ` Jon Hunter
2013-02-28 17:12         ` Jon Hunter
2013-03-01  5:33           ` Philip, Avinash
2013-03-01 15:43             ` Jon Hunter
     [not found]               ` <5130CCA9.10905-l0cyMroinI0@public.gmane.org>
2013-03-04 10:05                 ` Philip, Avinash
2013-02-26 17:30 ` [PATCH 05/14] ARM: OMAP2+: Convert ONENAND to use gpmc_cs_program_settings() Jon Hunter
2013-02-26 17:30 ` [PATCH 06/14] ARM: OMAP2+: Convert NAND " Jon Hunter
     [not found]   ` <1361899842-30303-7-git-send-email-jon-hunter-l0cyMroinI0@public.gmane.org>
2013-02-28 10:38     ` Philip, Avinash
2013-02-28 16:02       ` Jon Hunter
2013-03-01  5:40         ` Philip, Avinash
     [not found]           ` <518397C60809E147AF5323E0420B992E3EA90C46-Er742YJ7I/eIQmiDNMet8wC/G2K4zDHf@public.gmane.org>
2013-03-01 15:50             ` Jon Hunter
2013-02-26 17:30 ` [PATCH 07/14] ARM: OMAP2+: Convert SMC91x " Jon Hunter
2013-02-26 17:30 ` [PATCH 08/14] ARM: OMAP2+: Convert TUSB " Jon Hunter
2013-02-26 17:30 ` [PATCH 09/14] ARM: OMAP2+: Don't configure of chip-select options in gpmc_cs_configure() Jon Hunter
2013-02-26 17:30 ` [PATCH 10/14] ARM: OMAP2+: Add function to read GPMC settings from device-tree Jon Hunter
2013-02-26 17:30 ` [PATCH 11/14] ARM: OMAP2+: Add device-tree support for NOR flash Jon Hunter
2013-03-01 21:25   ` Ezequiel Garcia
2013-03-01 22:24     ` Jon Hunter
2013-03-04 11:57   ` Ezequiel Garcia
2013-03-04 17:51     ` Jon Hunter
     [not found]       ` <5134DF2A.4050209-l0cyMroinI0@public.gmane.org>
2013-03-04 18:19         ` Jon Hunter
2013-03-05 14:34   ` Mark Jackson
2013-03-05 14:46     ` Jon Hunter
2013-03-05 16:20       ` Mark Jackson
2013-03-05 17:30         ` Jon Hunter
2013-03-05 17:43           ` Ezequiel Garcia
2013-03-05 18:41             ` Jon Hunter
2013-03-05 21:34           ` Jon Hunter
2013-03-06 10:23             ` Mark Jackson
2013-03-06 13:30               ` Mark Jackson
2013-03-06 16:44                 ` Jon Hunter
2013-03-06 16:48                   ` Mark Jackson
2013-03-06 17:00                     ` Jon Hunter
2013-03-06 18:01                       ` Jon Hunter
2013-03-06 11:58             ` Ezequiel Garcia
2013-03-06 16:46               ` Jon Hunter
2013-03-06 16:54                 ` Ezequiel Garcia
2013-03-07 13:02                   ` Ezequiel Garcia
2013-02-26 17:30 ` [PATCH 12/14] ARM: OMAP2+: Add additional GPMC timing parameters Jon Hunter
     [not found]   ` <1361899842-30303-13-git-send-email-jon-hunter-l0cyMroinI0@public.gmane.org>
2013-03-01 20:11     ` Ezequiel Garcia
2013-03-01 20:12       ` Ezequiel Garcia
2013-03-01 22:27         ` Jon Hunter
2013-03-01 22:27       ` Jon Hunter
2013-02-26 17:30 ` [PATCH 13/14] ARM: OMAP2+: Convert NAND to retrieve GPMC settings from DT Jon Hunter
2013-02-26 17:30 ` [PATCH 14/14] ARM: OMAP2+: Convert ONENAND " Jon Hunter

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=1361899842-30303-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=grant.likely@secretlab.ca \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-omap@vger.kernel.org \
    --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