Commit 386cb766 authored by Tony Lindgren's avatar Tony Lindgren
Browse files

bus: ti-sysc: Handle missed no-idle property in addition to no-idle-on-init



We have ti,no-idle in use in addition to ti,no-idle-on-init but we're
missing handling for it in the ti-sysc interconnect target module driver.

Let's also group the idle defines together and update the binding
documentation for it.

Cc: devicetree@vger.kernel.org
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
parent aaa29bb0
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -94,6 +94,8 @@ Optional properties:

- ti,no-idle-on-init	interconnect target module should not be idled at init

- ti,no-idle		interconnect target module should not be idled

Example: Single instance of MUSB controller on omap4 using interconnect ranges
using offsets from l4_cfg second segment (0x4a000000 + 0x80000 = 0x4a0ab000):

+2 −0
Original line number Diff line number Diff line
@@ -3675,6 +3675,8 @@ int omap_hwmod_init_module(struct device *dev,
	if (error)
		return error;

	if (data->cfg->quirks & SYSC_QUIRK_NO_IDLE)
		oh->flags |= HWMOD_NO_IDLE;
	if (data->cfg->quirks & SYSC_QUIRK_NO_IDLE_ON_INIT)
		oh->flags |= HWMOD_INIT_NO_IDLE;
	if (data->cfg->quirks & SYSC_QUIRK_NO_RESET_ON_INIT)
+4 −1
Original line number Diff line number Diff line
@@ -920,7 +920,8 @@ static int sysc_init_module(struct sysc *ddata)
{
	int error;

	if (ddata->cfg.quirks & SYSC_QUIRK_NO_IDLE_ON_INIT) {
	if (ddata->cfg.quirks &
	    (SYSC_QUIRK_NO_IDLE | SYSC_QUIRK_NO_IDLE_ON_INIT)) {
		ddata->revision = sysc_read_revision(ddata);
		goto rev_quirks;
	}
@@ -1281,6 +1282,8 @@ static const struct sysc_dts_quirk sysc_dts_quirks[] = {
	  .mask = SYSC_QUIRK_NO_IDLE_ON_INIT, },
	{ .name = "ti,no-reset-on-init",
	  .mask = SYSC_QUIRK_NO_RESET_ON_INIT, },
	{ .name = "ti,no-idle",
	  .mask = SYSC_QUIRK_NO_IDLE, },
};

static void sysc_parse_dts_quirks(struct sysc *ddata, struct device_node *np,
+3 −2
Original line number Diff line number Diff line
@@ -46,8 +46,9 @@ struct sysc_regbits {
	s8 emufree_shift;
};

#define SYSC_QUIRK_LEGACY_IDLE		BIT(8)
#define SYSC_QUIRK_RESET_STATUS		BIT(7)
#define SYSC_QUIRK_LEGACY_IDLE		BIT(9)
#define SYSC_QUIRK_RESET_STATUS		BIT(8)
#define SYSC_QUIRK_NO_IDLE		BIT(7)
#define SYSC_QUIRK_NO_IDLE_ON_INIT	BIT(6)
#define SYSC_QUIRK_NO_RESET_ON_INIT	BIT(5)
#define SYSC_QUIRK_OPT_CLKS_NEEDED	BIT(4)