diff options
| -rw-r--r-- | Documentation/devicetree/bindings/arm/omap/omap.txt | 1 | ||||
| -rw-r--r-- | arch/arm/boot/dts/armada-xp-axpwifiap.dts | 4 | ||||
| -rw-r--r-- | arch/arm/boot/dts/armada-xp-db.dts | 4 | ||||
| -rw-r--r-- | arch/arm/boot/dts/armada-xp-gp.dts | 4 | ||||
| -rw-r--r-- | arch/arm/boot/dts/armada-xp-lenovo-ix4-300d.dts | 4 | ||||
| -rw-r--r-- | arch/arm/boot/dts/armada-xp-linksys-mamba.dts | 4 | ||||
| -rw-r--r-- | arch/arm/boot/dts/armada-xp-matrix.dts | 4 | ||||
| -rw-r--r-- | arch/arm/boot/dts/armada-xp-netgear-rn2120.dts | 4 | ||||
| -rw-r--r-- | arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts | 6 | ||||
| -rw-r--r-- | arch/arm/boot/dts/armada-xp-synology-ds414.dts | 4 | ||||
| -rw-r--r-- | arch/arm/boot/dts/dra7.dtsi | 10 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/omap_hwmod.c | 9 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/omap_hwmod.h | 3 |
13 files changed, 41 insertions, 20 deletions
diff --git a/Documentation/devicetree/bindings/arm/omap/omap.txt b/Documentation/devicetree/bindings/arm/omap/omap.txt index a2bd593881ca..66422d663184 100644 --- a/Documentation/devicetree/bindings/arm/omap/omap.txt +++ b/Documentation/devicetree/bindings/arm/omap/omap.txt | |||
| @@ -23,6 +23,7 @@ Optional properties: | |||
| 23 | during suspend. | 23 | during suspend. |
| 24 | - ti,no-reset-on-init: When present, the module should not be reset at init | 24 | - ti,no-reset-on-init: When present, the module should not be reset at init |
| 25 | - ti,no-idle-on-init: When present, the module should not be idled at init | 25 | - ti,no-idle-on-init: When present, the module should not be idled at init |
| 26 | - ti,no-idle: When present, the module is never allowed to idle. | ||
| 26 | 27 | ||
| 27 | Example: | 28 | Example: |
| 28 | 29 | ||
diff --git a/arch/arm/boot/dts/armada-xp-axpwifiap.dts b/arch/arm/boot/dts/armada-xp-axpwifiap.dts index 23fc670c0427..5c21b236721f 100644 --- a/arch/arm/boot/dts/armada-xp-axpwifiap.dts +++ b/arch/arm/boot/dts/armada-xp-axpwifiap.dts | |||
| @@ -70,8 +70,8 @@ | |||
| 70 | soc { | 70 | soc { |
| 71 | ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xf1000000 0x100000 | 71 | ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xf1000000 0x100000 |
| 72 | MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000 | 72 | MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000 |
| 73 | MBUS_ID(0x09, 0x09) 0 0 0xf8100000 0x10000 | 73 | MBUS_ID(0x09, 0x09) 0 0 0xf1100000 0x10000 |
| 74 | MBUS_ID(0x09, 0x05) 0 0 0xf8110000 0x10000>; | 74 | MBUS_ID(0x09, 0x05) 0 0 0xf1110000 0x10000>; |
| 75 | 75 | ||
| 76 | pcie-controller { | 76 | pcie-controller { |
| 77 | status = "okay"; | 77 | status = "okay"; |
diff --git a/arch/arm/boot/dts/armada-xp-db.dts b/arch/arm/boot/dts/armada-xp-db.dts index f774101416a5..ebe1d267406d 100644 --- a/arch/arm/boot/dts/armada-xp-db.dts +++ b/arch/arm/boot/dts/armada-xp-db.dts | |||
| @@ -76,8 +76,8 @@ | |||
| 76 | ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xf1000000 0x100000 | 76 | ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xf1000000 0x100000 |
| 77 | MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000 | 77 | MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000 |
| 78 | MBUS_ID(0x01, 0x2f) 0 0 0xf0000000 0x1000000 | 78 | MBUS_ID(0x01, 0x2f) 0 0 0xf0000000 0x1000000 |
| 79 | MBUS_ID(0x09, 0x09) 0 0 0xf8100000 0x10000 | 79 | MBUS_ID(0x09, 0x09) 0 0 0xf1100000 0x10000 |
| 80 | MBUS_ID(0x09, 0x05) 0 0 0xf8110000 0x10000>; | 80 | MBUS_ID(0x09, 0x05) 0 0 0xf1110000 0x10000>; |
| 81 | 81 | ||
| 82 | devbus-bootcs { | 82 | devbus-bootcs { |
| 83 | status = "okay"; | 83 | status = "okay"; |
diff --git a/arch/arm/boot/dts/armada-xp-gp.dts b/arch/arm/boot/dts/armada-xp-gp.dts index 4878d7353069..5730b875c4f5 100644 --- a/arch/arm/boot/dts/armada-xp-gp.dts +++ b/arch/arm/boot/dts/armada-xp-gp.dts | |||
| @@ -95,8 +95,8 @@ | |||
| 95 | ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xf1000000 0x100000 | 95 | ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xf1000000 0x100000 |
| 96 | MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000 | 96 | MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000 |
| 97 | MBUS_ID(0x01, 0x2f) 0 0 0xf0000000 0x1000000 | 97 | MBUS_ID(0x01, 0x2f) 0 0 0xf0000000 0x1000000 |
| 98 | MBUS_ID(0x09, 0x09) 0 0 0xf8100000 0x10000 | 98 | MBUS_ID(0x09, 0x09) 0 0 0xf1100000 0x10000 |
| 99 | MBUS_ID(0x09, 0x05) 0 0 0xf8110000 0x10000>; | 99 | MBUS_ID(0x09, 0x05) 0 0 0xf1110000 0x10000>; |
| 100 | 100 | ||
| 101 | devbus-bootcs { | 101 | devbus-bootcs { |
| 102 | status = "okay"; | 102 | status = "okay"; |
diff --git a/arch/arm/boot/dts/armada-xp-lenovo-ix4-300d.dts b/arch/arm/boot/dts/armada-xp-lenovo-ix4-300d.dts index fb9e1bbf2338..8af463f26ea1 100644 --- a/arch/arm/boot/dts/armada-xp-lenovo-ix4-300d.dts +++ b/arch/arm/boot/dts/armada-xp-lenovo-ix4-300d.dts | |||
| @@ -65,8 +65,8 @@ | |||
| 65 | soc { | 65 | soc { |
| 66 | ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xd0000000 0x100000 | 66 | ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xd0000000 0x100000 |
| 67 | MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000 | 67 | MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000 |
| 68 | MBUS_ID(0x09, 0x09) 0 0 0xf8100000 0x10000 | 68 | MBUS_ID(0x09, 0x09) 0 0 0xf1100000 0x10000 |
| 69 | MBUS_ID(0x09, 0x05) 0 0 0xf8110000 0x10000>; | 69 | MBUS_ID(0x09, 0x05) 0 0 0xf1110000 0x10000>; |
| 70 | 70 | ||
| 71 | pcie-controller { | 71 | pcie-controller { |
| 72 | status = "okay"; | 72 | status = "okay"; |
diff --git a/arch/arm/boot/dts/armada-xp-linksys-mamba.dts b/arch/arm/boot/dts/armada-xp-linksys-mamba.dts index 6e9820e141f8..b89e6cf1271a 100644 --- a/arch/arm/boot/dts/armada-xp-linksys-mamba.dts +++ b/arch/arm/boot/dts/armada-xp-linksys-mamba.dts | |||
| @@ -70,8 +70,8 @@ | |||
| 70 | soc { | 70 | soc { |
| 71 | ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xf1000000 0x100000 | 71 | ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xf1000000 0x100000 |
| 72 | MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000 | 72 | MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000 |
| 73 | MBUS_ID(0x09, 0x09) 0 0 0xf8100000 0x10000 | 73 | MBUS_ID(0x09, 0x09) 0 0 0xf1100000 0x10000 |
| 74 | MBUS_ID(0x09, 0x05) 0 0 0xf8110000 0x10000>; | 74 | MBUS_ID(0x09, 0x05) 0 0 0xf1110000 0x10000>; |
| 75 | 75 | ||
| 76 | pcie-controller { | 76 | pcie-controller { |
| 77 | status = "okay"; | 77 | status = "okay"; |
diff --git a/arch/arm/boot/dts/armada-xp-matrix.dts b/arch/arm/boot/dts/armada-xp-matrix.dts index 6ab33837a2b6..6522b04f4a8e 100644 --- a/arch/arm/boot/dts/armada-xp-matrix.dts +++ b/arch/arm/boot/dts/armada-xp-matrix.dts | |||
| @@ -68,8 +68,8 @@ | |||
| 68 | soc { | 68 | soc { |
| 69 | ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xf1000000 0x100000 | 69 | ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xf1000000 0x100000 |
| 70 | MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000 | 70 | MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000 |
| 71 | MBUS_ID(0x09, 0x09) 0 0 0xf8100000 0x10000 | 71 | MBUS_ID(0x09, 0x09) 0 0 0xf1100000 0x10000 |
| 72 | MBUS_ID(0x09, 0x05) 0 0 0xf8110000 0x10000>; | 72 | MBUS_ID(0x09, 0x05) 0 0 0xf1110000 0x10000>; |
| 73 | 73 | ||
| 74 | internal-regs { | 74 | internal-regs { |
| 75 | serial@12000 { | 75 | serial@12000 { |
diff --git a/arch/arm/boot/dts/armada-xp-netgear-rn2120.dts b/arch/arm/boot/dts/armada-xp-netgear-rn2120.dts index 62175a8848bc..d19f44c70925 100644 --- a/arch/arm/boot/dts/armada-xp-netgear-rn2120.dts +++ b/arch/arm/boot/dts/armada-xp-netgear-rn2120.dts | |||
| @@ -64,8 +64,8 @@ | |||
| 64 | soc { | 64 | soc { |
| 65 | ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xd0000000 0x100000 | 65 | ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xd0000000 0x100000 |
| 66 | MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000 | 66 | MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000 |
| 67 | MBUS_ID(0x09, 0x09) 0 0 0xf8100000 0x10000 | 67 | MBUS_ID(0x09, 0x09) 0 0 0xf1100000 0x10000 |
| 68 | MBUS_ID(0x09, 0x05) 0 0 0xf8110000 0x10000>; | 68 | MBUS_ID(0x09, 0x05) 0 0 0xf1110000 0x10000>; |
| 69 | 69 | ||
| 70 | pcie-controller { | 70 | pcie-controller { |
| 71 | status = "okay"; | 71 | status = "okay"; |
diff --git a/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts b/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts index a5db17782e08..853bd392a4fe 100644 --- a/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts +++ b/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts | |||
| @@ -65,9 +65,9 @@ | |||
| 65 | soc { | 65 | soc { |
| 66 | ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xd0000000 0x100000 | 66 | ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xd0000000 0x100000 |
| 67 | MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000 | 67 | MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000 |
| 68 | MBUS_ID(0x01, 0x2f) 0 0 0xf0000000 0x8000000 | 68 | MBUS_ID(0x01, 0x2f) 0 0 0xe8000000 0x8000000 |
| 69 | MBUS_ID(0x09, 0x09) 0 0 0xf8100000 0x10000 | 69 | MBUS_ID(0x09, 0x09) 0 0 0xf1100000 0x10000 |
| 70 | MBUS_ID(0x09, 0x05) 0 0 0xf8110000 0x10000>; | 70 | MBUS_ID(0x09, 0x05) 0 0 0xf1110000 0x10000>; |
| 71 | 71 | ||
| 72 | devbus-bootcs { | 72 | devbus-bootcs { |
| 73 | status = "okay"; | 73 | status = "okay"; |
diff --git a/arch/arm/boot/dts/armada-xp-synology-ds414.dts b/arch/arm/boot/dts/armada-xp-synology-ds414.dts index 2391b11dc546..d17dab0a6f51 100644 --- a/arch/arm/boot/dts/armada-xp-synology-ds414.dts +++ b/arch/arm/boot/dts/armada-xp-synology-ds414.dts | |||
| @@ -78,8 +78,8 @@ | |||
| 78 | soc { | 78 | soc { |
| 79 | ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xf1000000 0x100000 | 79 | ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xf1000000 0x100000 |
| 80 | MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000 | 80 | MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000 |
| 81 | MBUS_ID(0x09, 0x09) 0 0 0xf8100000 0x10000 | 81 | MBUS_ID(0x09, 0x09) 0 0 0xf1100000 0x10000 |
| 82 | MBUS_ID(0x09, 0x05) 0 0 0xf8110000 0x10000>; | 82 | MBUS_ID(0x09, 0x05) 0 0 0xf1110000 0x10000>; |
| 83 | 83 | ||
| 84 | pcie-controller { | 84 | pcie-controller { |
| 85 | status = "okay"; | 85 | status = "okay"; |
diff --git a/arch/arm/boot/dts/dra7.dtsi b/arch/arm/boot/dts/dra7.dtsi index c4d9175b90dc..f82aa44c3cee 100644 --- a/arch/arm/boot/dts/dra7.dtsi +++ b/arch/arm/boot/dts/dra7.dtsi | |||
| @@ -1500,6 +1500,16 @@ | |||
| 1500 | 0x48485200 0x2E00>; | 1500 | 0x48485200 0x2E00>; |
| 1501 | #address-cells = <1>; | 1501 | #address-cells = <1>; |
| 1502 | #size-cells = <1>; | 1502 | #size-cells = <1>; |
| 1503 | |||
| 1504 | /* | ||
| 1505 | * Do not allow gating of cpsw clock as workaround | ||
| 1506 | * for errata i877. Keeping internal clock disabled | ||
| 1507 | * causes the device switching characteristics | ||
| 1508 | * to degrade over time and eventually fail to meet | ||
| 1509 | * the data manual delay time/skew specs. | ||
| 1510 | */ | ||
| 1511 | ti,no-idle; | ||
| 1512 | |||
| 1503 | /* | 1513 | /* |
| 1504 | * rx_thresh_pend | 1514 | * rx_thresh_pend |
| 1505 | * rx_pend | 1515 | * rx_pend |
diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c index e9f65fec55c0..b6d62e4cdfdd 100644 --- a/arch/arm/mach-omap2/omap_hwmod.c +++ b/arch/arm/mach-omap2/omap_hwmod.c | |||
| @@ -2200,6 +2200,11 @@ static int _enable(struct omap_hwmod *oh) | |||
| 2200 | */ | 2200 | */ |
| 2201 | static int _idle(struct omap_hwmod *oh) | 2201 | static int _idle(struct omap_hwmod *oh) |
| 2202 | { | 2202 | { |
| 2203 | if (oh->flags & HWMOD_NO_IDLE) { | ||
| 2204 | oh->_int_flags |= _HWMOD_SKIP_ENABLE; | ||
| 2205 | return 0; | ||
| 2206 | } | ||
| 2207 | |||
| 2203 | pr_debug("omap_hwmod: %s: idling\n", oh->name); | 2208 | pr_debug("omap_hwmod: %s: idling\n", oh->name); |
| 2204 | 2209 | ||
| 2205 | if (oh->_state != _HWMOD_STATE_ENABLED) { | 2210 | if (oh->_state != _HWMOD_STATE_ENABLED) { |
| @@ -2504,6 +2509,8 @@ static int __init _init(struct omap_hwmod *oh, void *data) | |||
| 2504 | oh->flags |= HWMOD_INIT_NO_RESET; | 2509 | oh->flags |= HWMOD_INIT_NO_RESET; |
| 2505 | if (of_find_property(np, "ti,no-idle-on-init", NULL)) | 2510 | if (of_find_property(np, "ti,no-idle-on-init", NULL)) |
| 2506 | oh->flags |= HWMOD_INIT_NO_IDLE; | 2511 | oh->flags |= HWMOD_INIT_NO_IDLE; |
| 2512 | if (of_find_property(np, "ti,no-idle", NULL)) | ||
| 2513 | oh->flags |= HWMOD_NO_IDLE; | ||
| 2507 | } | 2514 | } |
| 2508 | 2515 | ||
| 2509 | oh->_state = _HWMOD_STATE_INITIALIZED; | 2516 | oh->_state = _HWMOD_STATE_INITIALIZED; |
| @@ -2630,7 +2637,7 @@ static void __init _setup_postsetup(struct omap_hwmod *oh) | |||
| 2630 | * XXX HWMOD_INIT_NO_IDLE does not belong in hwmod data - | 2637 | * XXX HWMOD_INIT_NO_IDLE does not belong in hwmod data - |
| 2631 | * it should be set by the core code as a runtime flag during startup | 2638 | * it should be set by the core code as a runtime flag during startup |
| 2632 | */ | 2639 | */ |
| 2633 | if ((oh->flags & HWMOD_INIT_NO_IDLE) && | 2640 | if ((oh->flags & (HWMOD_INIT_NO_IDLE | HWMOD_NO_IDLE)) && |
| 2634 | (postsetup_state == _HWMOD_STATE_IDLE)) { | 2641 | (postsetup_state == _HWMOD_STATE_IDLE)) { |
| 2635 | oh->_int_flags |= _HWMOD_SKIP_ENABLE; | 2642 | oh->_int_flags |= _HWMOD_SKIP_ENABLE; |
| 2636 | postsetup_state = _HWMOD_STATE_ENABLED; | 2643 | postsetup_state = _HWMOD_STATE_ENABLED; |
diff --git a/arch/arm/mach-omap2/omap_hwmod.h b/arch/arm/mach-omap2/omap_hwmod.h index 76bce11c85a4..7c7a31169475 100644 --- a/arch/arm/mach-omap2/omap_hwmod.h +++ b/arch/arm/mach-omap2/omap_hwmod.h | |||
| @@ -525,6 +525,8 @@ struct omap_hwmod_omap4_prcm { | |||
| 525 | * or idled. | 525 | * or idled. |
| 526 | * HWMOD_OPT_CLKS_NEEDED: The optional clocks are needed for the module to | 526 | * HWMOD_OPT_CLKS_NEEDED: The optional clocks are needed for the module to |
| 527 | * operate and they need to be handled at the same time as the main_clk. | 527 | * operate and they need to be handled at the same time as the main_clk. |
| 528 | * HWMOD_NO_IDLE: Do not idle the hwmod at all. Useful to handle certain | ||
| 529 | * IPs like CPSW on DRA7, where clocks to this module cannot be disabled. | ||
| 528 | */ | 530 | */ |
| 529 | #define HWMOD_SWSUP_SIDLE (1 << 0) | 531 | #define HWMOD_SWSUP_SIDLE (1 << 0) |
| 530 | #define HWMOD_SWSUP_MSTANDBY (1 << 1) | 532 | #define HWMOD_SWSUP_MSTANDBY (1 << 1) |
| @@ -541,6 +543,7 @@ struct omap_hwmod_omap4_prcm { | |||
| 541 | #define HWMOD_SWSUP_SIDLE_ACT (1 << 12) | 543 | #define HWMOD_SWSUP_SIDLE_ACT (1 << 12) |
| 542 | #define HWMOD_RECONFIG_IO_CHAIN (1 << 13) | 544 | #define HWMOD_RECONFIG_IO_CHAIN (1 << 13) |
| 543 | #define HWMOD_OPT_CLKS_NEEDED (1 << 14) | 545 | #define HWMOD_OPT_CLKS_NEEDED (1 << 14) |
| 546 | #define HWMOD_NO_IDLE (1 << 15) | ||
| 544 | 547 | ||
| 545 | /* | 548 | /* |
| 546 | * omap_hwmod._int_flags definitions | 549 | * omap_hwmod._int_flags definitions |
