[PATCH v3 4/6] bus: ti-sysc: Add support for software reset
From: Faiz Abbas <hidden>
Date: 2018-06-07 10:22:53
Also in:
linux-clk, linux-devicetree, linux-omap, lkml
From: Faiz Abbas <hidden>
Date: 2018-06-07 10:22:53
Also in:
linux-clk, linux-devicetree, linux-omap, lkml
Hi, On Thursday 07 June 2018 01:05 PM, Tony Lindgren wrote:
* 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? Thanks, Faiz