From: Marc Kleine-Budde <mkl@pengutronix.de>
To: linux-can@vger.kernel.org
Cc: wsa@the-dreams.de, linux-omap@vger.kernel.org, rogerq@ti.com,
kernel@pengutronix.de, Marc Kleine-Budde <mkl@pengutronix.de>
Subject: [PATCH v8 5/8] can: c_can: Add support for START pulse in RAMINIT sequence
Date: Fri, 14 Nov 2014 19:09:48 +0100 [thread overview]
Message-ID: <1415988591-6032-6-git-send-email-mkl@pengutronix.de> (raw)
In-Reply-To: <1415988591-6032-1-git-send-email-mkl@pengutronix.de>
From: Roger Quadros <rogerq@ti.com>
Some SoCs e.g. (TI DRA7xx) need a START pulse to start the
RAMINIT sequence i.e. START bit must be set and cleared before
checking for the DONE bit status.
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
---
drivers/net/can/c_can/c_can.h | 1 +
drivers/net/can/c_can/c_can_platform.c | 7 +++++++
2 files changed, 8 insertions(+)
diff --git a/drivers/net/can/c_can/c_can.h b/drivers/net/can/c_can/c_can.h
index 28a73d14ea8d..8acdc7fa4792 100644
--- a/drivers/net/can/c_can/c_can.h
+++ b/drivers/net/can/c_can/c_can.h
@@ -188,6 +188,7 @@ struct c_can_raminit {
struct regmap *syscon; /* for raminit ctrl. reg. access */
unsigned int reg; /* register index within syscon */
struct raminit_bits bits;
+ bool needs_pulse;
};
/* c_can private data structure */
diff --git a/drivers/net/can/c_can/c_can_platform.c b/drivers/net/can/c_can/c_can_platform.c
index 1fbfa1d59c29..41fa460c3592 100644
--- a/drivers/net/can/c_can/c_can_platform.c
+++ b/drivers/net/can/c_can/c_can_platform.c
@@ -120,6 +120,12 @@ static void c_can_hw_raminit_syscon(const struct c_can_priv *priv, bool enable)
ctrl |= 1 << raminit->bits.start;
regmap_write(raminit->syscon, raminit->reg, ctrl);
+ /* clear START bit if start pulse is needed */
+ if (raminit->needs_pulse) {
+ ctrl &= ~(1 << raminit->bits.start);
+ regmap_write(raminit->syscon, raminit->reg, ctrl);
+ }
+
ctrl |= 1 << raminit->bits.done;
c_can_hw_raminit_wait_syscon(priv, mask, ctrl);
}
@@ -325,6 +331,7 @@ static int c_can_plat_probe(struct platform_device *pdev)
}
raminit->bits = drvdata->raminit_bits[id];
+ raminit->needs_pulse = drvdata->raminit_pulse;
priv->raminit = c_can_hw_raminit_syscon;
} else {
--
2.1.1
next prev parent reply other threads:[~2014-11-14 18:09 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-14 18:09 [PATCH v8 0/8] can: c_can: Use syscon regmap for TI specific RAMINIT register Marc Kleine-Budde
2014-11-14 18:09 ` [PATCH v8 1/8] can: c_can: Add timeout to c_can_hw_raminit_ti() Marc Kleine-Budde
2014-11-14 18:09 ` [PATCH v8 2/8] can: c_can: Introduce c_can_driver_data structure Marc Kleine-Budde
2014-11-14 18:09 ` [PATCH v8 3/8] can: c_can: Add RAMINIT register information to driver data Marc Kleine-Budde
2014-11-14 18:09 ` [PATCH v8 4/8] can: c_can: Add syscon/regmap RAMINIT mechanism Marc Kleine-Budde
2015-01-05 9:18 ` Tomi Valkeinen
2015-01-07 9:56 ` Roger Quadros
2014-11-14 18:09 ` Marc Kleine-Budde [this message]
2014-11-14 18:09 ` [PATCH v8 6/8] can: c_can: Disable pins when CAN interface is down Marc Kleine-Budde
2014-11-14 18:09 ` [PATCH v8 7/8] can: c_can: Add support for TI DRA7 DCAN Marc Kleine-Budde
2014-11-14 18:09 ` [PATCH v8 8/8] can: c_can: Add support for TI am3352 DCAN Marc Kleine-Budde
2014-11-17 12:07 ` [PATCH v8 0/8] can: c_can: Use syscon regmap for TI specific RAMINIT register Roger Quadros
2014-11-17 12:09 ` [PATCH v8 9/9] net: can: c_can: Add support for TI am4372 DCAN Roger Quadros
2014-11-17 12:12 ` Marc Kleine-Budde
2014-11-17 12:31 ` Roger Quadros
2014-11-17 14:19 ` Roger Quadros
2014-11-17 14:31 ` Marc Kleine-Budde
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=1415988591-6032-6-git-send-email-mkl@pengutronix.de \
--to=mkl@pengutronix.de \
--cc=kernel@pengutronix.de \
--cc=linux-can@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=rogerq@ti.com \
--cc=wsa@the-dreams.de \
/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).