Skip to content

Commit

Permalink
clk: qcom: reset: Allow specifying custom reset delay
Browse files Browse the repository at this point in the history
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>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20220706134132.3623415-4-stephan.gerhold@kernkonzept.com
  • Loading branch information
stephan-gh authored and andersson committed Sep 14, 2022
1 parent bf37a05 commit 2cb8a39
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 1 deletion.
4 changes: 3 additions & 1 deletion drivers/clk/qcom/reset.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down
1 change: 1 addition & 0 deletions drivers/clk/qcom/reset.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
struct qcom_reset_map {
unsigned int reg;
u8 bit;
u8 udelay;
};

struct regmap;
Expand Down

0 comments on commit 2cb8a39

Please sign in to comment.