On 2019-11-14 17:03, Avri Altman wrote:
Hi,
Add reset control for host controller so that host controller can be
reset as
required in its power up sequence.
Signed-off-by: Can Guo <cang@xxxxxxxxxxxxxx>
+ ret = reset_control_assert(host->core_reset);
+ if (ret) {
+ dev_err(hba->dev, "%s: core_reset assert failed, err =
%d\n",
+ __func__, ret);
+ goto out;
+ }
+
+ /*
+ * The hardware requirement for delay between assert/deassert
+ * is at least 3-4 sleep clock (32.7KHz) cycles, which comes
to
+ * ~125us (4/32768). To be on the safe side add 200us delay.
+ */
+ usleep_range(200, 210);
Aren't you sleeping anyway in your reset_control_ops?
For our cases, reset_control_assert uses the reset_control_ops->assert()
we registered for
node &clock_gcc. There is no sleep or delay in Q's
reset_control_ops->assert() func.
+
+ ret = reset_control_deassert(host->core_reset);
+ if (ret)
+ dev_err(hba->dev, "%s: core_reset deassert failed, err
= %d\n",
+ __func__, ret);
+
+ usleep_range(1000, 1100);
ditto
Same as above.
Best Regards,
Can Guo.