Skip to content

Commit 7d25c4e

Browse files
ParvathiPudikhilman
authored andcommitted
bus: ti-sysc: PRUSS OCP configuration
Updates OCP master port configuration to enable memory access outside of the PRU-ICSS subsystem. This set of changes configures PRUSS_SYSCFG.STANDBY_INIT bit to enable the OCP master ports during resume sequence and disables the OCP master ports during suspend sequence (applicable only on SoCs using OCP interconnect like the OMAP family). Signed-off-by: Parvathi Pudi <[email protected]> Reviewed-by: Andreas Kemnade <[email protected]> Link: https://lore.kernel.org/r/[email protected] [khilman: multi-line comment style cleanup] Signed-off-by: Kevin Hilman <[email protected]>
1 parent 7397daf commit 7d25c4e

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

drivers/bus/ti-sysc.c

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2036,6 +2036,21 @@ static void sysc_module_disable_quirk_pruss(struct sysc *ddata)
20362036
sysc_write(ddata, ddata->offsets[SYSC_SYSCONFIG], reg);
20372037
}
20382038

2039+
static void sysc_module_enable_quirk_pruss(struct sysc *ddata)
2040+
{
2041+
u32 reg;
2042+
2043+
reg = sysc_read(ddata, ddata->offsets[SYSC_SYSCONFIG]);
2044+
2045+
/*
2046+
* Clearing the SYSC_PRUSS_STANDBY_INIT bit - Updates OCP master
2047+
* port configuration to enable memory access outside of the
2048+
* PRU-ICSS subsystem.
2049+
*/
2050+
reg &= (~SYSC_PRUSS_STANDBY_INIT);
2051+
sysc_write(ddata, ddata->offsets[SYSC_SYSCONFIG], reg);
2052+
}
2053+
20392054
static void sysc_init_module_quirks(struct sysc *ddata)
20402055
{
20412056
if (ddata->legacy_mode || !ddata->name)
@@ -2088,8 +2103,10 @@ static void sysc_init_module_quirks(struct sysc *ddata)
20882103
ddata->module_disable_quirk = sysc_reset_done_quirk_wdt;
20892104
}
20902105

2091-
if (ddata->cfg.quirks & SYSC_MODULE_QUIRK_PRUSS)
2106+
if (ddata->cfg.quirks & SYSC_MODULE_QUIRK_PRUSS) {
2107+
ddata->module_enable_quirk = sysc_module_enable_quirk_pruss;
20922108
ddata->module_disable_quirk = sysc_module_disable_quirk_pruss;
2109+
}
20932110
}
20942111

20952112
static int sysc_clockdomain_init(struct sysc *ddata)

0 commit comments

Comments
 (0)