From: Stephan Gerhold <stephan.gerhold@kernkonzept.com>
To: Bjorn Andersson <bjorn.andersson@linaro.org>
Cc: Andy Gross <agross@kernel.org>,
Konrad Dybcio <konrad.dybcio@somainline.org>,
Michael Turquette <mturquette@baylibre.com>,
Stephen Boyd <sboyd@kernel.org>, Rob Herring <robh+dt@kernel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
Philipp Zabel <p.zabel@pengutronix.de>,
Stephan Gerhold <stephan@gerhold.net>,
linux-arm-msm@vger.kernel.org, linux-clk@vger.kernel.org,
devicetree@vger.kernel.org,
Dominik Kobinski <dominikkobinski314@gmail.com>,
Stephan Gerhold <stephan.gerhold@kernkonzept.com>
Subject: [PATCH v2 3/6] clk: qcom: reset: Allow specifying custom reset delay
Date: Wed, 6 Jul 2022 15:41:29 +0200 [thread overview]
Message-ID: <20220706134132.3623415-4-stephan.gerhold@kernkonzept.com> (raw)
In-Reply-To: <20220706134132.3623415-1-stephan.gerhold@kernkonzept.com>
The amount of time required between asserting and deasserting the reset
signal can vary depending on the involved hardware component. Sometimes
1 us might not be enough and a larger delay is necessary to conform to
the specifications.
Usually this is worked around in the consuming drivers, by replacing
reset_control_reset() with a sequence of reset_control_assert(), waiting
for a custom delay, followed by reset_control_deassert().
However, in some cases the driver making use of the reset is generic and
can be used with different reset controllers. In this case the reset
time requirement is better handled directly by the reset controller
driver.
Make this possible by adding an "udelay" field to the qcom_reset_map
that allows setting a different reset delay (in microseconds).
Signed-off-by: Stephan Gerhold <stephan.gerhold@kernkonzept.com>
---
See the next patch for a real example with the USB PHY on MSM8909.
Changes in v2: None.
---
drivers/clk/qcom/reset.c | 4 +++-
drivers/clk/qcom/reset.h | 1 +
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/clk/qcom/reset.c b/drivers/clk/qcom/reset.c
index 819d194be8f7..2a16adb572d2 100644
--- a/drivers/clk/qcom/reset.c
+++ b/drivers/clk/qcom/reset.c
@@ -13,8 +13,10 @@
static int qcom_reset(struct reset_controller_dev *rcdev, unsigned long id)
{
+ struct qcom_reset_controller *rst = to_qcom_reset_controller(rcdev);
+
rcdev->ops->assert(rcdev, id);
- udelay(1);
+ udelay(rst->reset_map[id].udelay ?: 1); /* use 1 us as default */
rcdev->ops->deassert(rcdev, id);
return 0;
}
diff --git a/drivers/clk/qcom/reset.h b/drivers/clk/qcom/reset.h
index 2a08b5e282c7..b8c113582072 100644
--- a/drivers/clk/qcom/reset.h
+++ b/drivers/clk/qcom/reset.h
@@ -11,6 +11,7 @@
struct qcom_reset_map {
unsigned int reg;
u8 bit;
+ u8 udelay;
};
struct regmap;
--
2.30.2
next prev parent reply other threads:[~2022-07-06 13:42 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-06 13:41 [PATCH v2 0/6] clk: qcom: Add clocks for MSM8909 Stephan Gerhold
2022-07-06 13:41 ` [PATCH v2 1/6] dt-bindings: clock: Add schema for MSM8909 GCC Stephan Gerhold
2022-07-06 15:26 ` Krzysztof Kozlowski
2022-07-06 13:41 ` [PATCH v2 2/6] clk: qcom: Add driver " Stephan Gerhold
2022-07-06 13:41 ` Stephan Gerhold [this message]
2022-07-06 13:41 ` [PATCH v2 4/6] clk: qcom: gcc-msm8909: Increase delay for USB PHY reset Stephan Gerhold
2022-07-06 13:41 ` [PATCH v2 5/6] dt-bindings: clock: qcom,rpmcc: Add MSM8909 Stephan Gerhold
2022-07-06 13:41 ` [PATCH v2 6/6] clk: qcom: smd-rpm: Add clocks for MSM8909 Stephan Gerhold
2022-09-15 3:37 ` [PATCH v2 0/6] clk: qcom: " Bjorn Andersson
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=20220706134132.3623415-4-stephan.gerhold@kernkonzept.com \
--to=stephan.gerhold@kernkonzept.com \
--cc=agross@kernel.org \
--cc=bjorn.andersson@linaro.org \
--cc=devicetree@vger.kernel.org \
--cc=dominikkobinski314@gmail.com \
--cc=konrad.dybcio@somainline.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-clk@vger.kernel.org \
--cc=mturquette@baylibre.com \
--cc=p.zabel@pengutronix.de \
--cc=robh+dt@kernel.org \
--cc=sboyd@kernel.org \
--cc=stephan@gerhold.net \
/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).