Skip to content

Commit 386cb76

Browse files
committed
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: [email protected] Reviewed-by: Rob Herring <[email protected]> Signed-off-by: Tony Lindgren <[email protected]>
1 parent aaa29bb commit 386cb76

File tree

4 files changed

+11
-3
lines changed

4 files changed

+11
-3
lines changed

Documentation/devicetree/bindings/bus/ti-sysc.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,8 @@ Optional properties:
9494

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

97+
- ti,no-idle interconnect target module should not be idled
98+
9799
Example: Single instance of MUSB controller on omap4 using interconnect ranges
98100
using offsets from l4_cfg second segment (0x4a000000 + 0x80000 = 0x4a0ab000):
99101

arch/arm/mach-omap2/omap_hwmod.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3675,6 +3675,8 @@ int omap_hwmod_init_module(struct device *dev,
36753675
if (error)
36763676
return error;
36773677

3678+
if (data->cfg->quirks & SYSC_QUIRK_NO_IDLE)
3679+
oh->flags |= HWMOD_NO_IDLE;
36783680
if (data->cfg->quirks & SYSC_QUIRK_NO_IDLE_ON_INIT)
36793681
oh->flags |= HWMOD_INIT_NO_IDLE;
36803682
if (data->cfg->quirks & SYSC_QUIRK_NO_RESET_ON_INIT)

drivers/bus/ti-sysc.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -920,7 +920,8 @@ static int sysc_init_module(struct sysc *ddata)
920920
{
921921
int error;
922922

923-
if (ddata->cfg.quirks & SYSC_QUIRK_NO_IDLE_ON_INIT) {
923+
if (ddata->cfg.quirks &
924+
(SYSC_QUIRK_NO_IDLE | SYSC_QUIRK_NO_IDLE_ON_INIT)) {
924925
ddata->revision = sysc_read_revision(ddata);
925926
goto rev_quirks;
926927
}
@@ -1281,6 +1282,8 @@ static const struct sysc_dts_quirk sysc_dts_quirks[] = {
12811282
.mask = SYSC_QUIRK_NO_IDLE_ON_INIT, },
12821283
{ .name = "ti,no-reset-on-init",
12831284
.mask = SYSC_QUIRK_NO_RESET_ON_INIT, },
1285+
{ .name = "ti,no-idle",
1286+
.mask = SYSC_QUIRK_NO_IDLE, },
12841287
};
12851288

12861289
static void sysc_parse_dts_quirks(struct sysc *ddata, struct device_node *np,

include/linux/platform_data/ti-sysc.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,9 @@ struct sysc_regbits {
4646
s8 emufree_shift;
4747
};
4848

49-
#define SYSC_QUIRK_LEGACY_IDLE BIT(8)
50-
#define SYSC_QUIRK_RESET_STATUS BIT(7)
49+
#define SYSC_QUIRK_LEGACY_IDLE BIT(9)
50+
#define SYSC_QUIRK_RESET_STATUS BIT(8)
51+
#define SYSC_QUIRK_NO_IDLE BIT(7)
5152
#define SYSC_QUIRK_NO_IDLE_ON_INIT BIT(6)
5253
#define SYSC_QUIRK_NO_RESET_ON_INIT BIT(5)
5354
#define SYSC_QUIRK_OPT_CLKS_NEEDED BIT(4)

0 commit comments

Comments
 (0)