Thread (25 messages) 25 messages, 3 authors, 2018-07-05

[PATCH v3 4/6] bus: ti-sysc: Add support for software reset

From: Faiz Abbas <hidden>
Date: 2018-06-11 06:26:54
Also in: linux-clk, linux-devicetree, linux-omap, lkml


On Monday 11 June 2018 11:39 AM, Tony Lindgren wrote:
* Faiz Abbas [off-list ref] [180611 06:09]:
quoted
Hi Tony,

On Friday 08 June 2018 11:51 AM, Tony Lindgren wrote:
quoted
* Faiz Abbas [off-list ref] [180607 10:24]:
quoted
Hi,

On Thursday 07 June 2018 01:05 PM, Tony Lindgren wrote:
quoted
* Faiz Abbas [off-list ref] [180606 06:14]:
quoted
+static int sysc_reset(struct sysc *ddata)
+{
+	int offset = ddata->offsets[SYSC_SYSCONFIG];
+	int val = sysc_read(ddata, offset);
+
+	val |= (0x1 << ddata->cap->regbits->srst_shift);
+	sysc_write(ddata, offset, val);
+
+	/* Poll on reset status */
+	if (ddata->cfg.quirks & SYSC_QUIRK_RESET_STATUS) {
+		offset = ddata->offsets[SYSC_SYSSTATUS];
+
+		return readl_poll_timeout(ddata->module_va + offset, val,
+				(val & ddata->cfg.syss_mask) == 0x0,
+				100, MAX_MODULE_SOFTRESET_WAIT);
+	}
+
+	return 0;
+}
I wonder if we should also add SYSS_QUIRK_RESET_STATUS in
addition to SYSC_QUIRK_RESET status to make it easy to
read the right register?
I assumed SYSC_QUIRK is the prefix to indicate the ti-sysc driver not
the register. Are there layouts in which the reset status bit is in the
sysconfig register rather than the sysstatus register?
Yes we can have reset status bit in either syss or syssconfig register.
You mean sysstatus and sysconfig right?
Yup.
quoted
quoted
We detect that in sysc_init_syss_mask() but we should also set something
at that point to make it clear which reset to use. But as we don't need
the quirk flag, it's probably set a function pointer after the detection.
So how about let's have two functions sysc_reset() and sysc_syss_reset()
and then we can implement sysc_syss_reset() in a separate patch after
testing it when we have a non-platform data using example for
sysc_syss_reset().
Shouldn't the function I add be called sysc_syss_reset()? The reset
status bit is in the sysstatus.
Yes
Great. I thought I completely misunderstood you. But I don't see what
adding another function will accomplish. A QUIRK flag used in the same
function would work well enough.

Regards,
Faiz
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help