diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-02-17 12:15:46 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-02-17 12:15:46 -0500 |
commit | 4025fa97ff39db054b47b9cdb9f3980480637668 (patch) | |
tree | 1be796bfa9b2d7f8b6f9a05034f9cede3eb28e8d | |
parent | c397f8fa4379040bada53256c848e62c8b060392 (diff) | |
parent | 11fe05de8b73816b7d12309ae55ca61c531c4e06 (diff) |
Merge tag 'fixes-non-critical-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC non-critical fixes from Olof Johansson:
"Here's a small collection of fixes accrued during the last release
that weren't considered severe enough to merge during the -rc series.
A few of these are around resurrecting TI81xx support that's been
broken for quite a while, the rest are smaller fixes -- most for PXA
but a few across the board.
There are also some updates to MAINTAINERS here, in particular for
Broadcom platforms"
* tag 'fixes-non-critical-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (23 commits)
MAINTAINERS: fix git repositories for Broadcom SoCs
ARM: pxa: fix broken isa interrupts for zeus and viper
ARM: DRA7: hwmod: Fix boot crash with DEBUG_LL enabled on UART3
ARM: OMAP: DRA7: hwmod: Make gpmc software supervised as the smart idle is broken
ARM: AM43xx: hwmod: set DSS submodule parent hwmods
ARM: OMAP2+: hwmod: print error if wait_target_ready() failed
MAINTAINERS: add maintainer for OMAP hwmod data
ARM: OMAP2+: Disable omap3 PM init for ti81xx
ARM: OMAP2+: Fix reboot for 81xx
ARM: OMAP2+: Fix dm814 and dm816 for clocks and timer init
ARM: OMAP2+: Fix ti81xx class type
ARM: OMAP2+: Fix ti81xx devtype
ARM: OMAP2+: Fix error handling for omap2_clk_enable_init_clocks
MAINTAINERS: add a git entry for BMIPS-based BCM7xxx SoCs
MAINTAINERS: add a git entry for BCM7xxx ARM-based SoCs
MAINTAINERS: update Broadcom Cygnus SoC git tree
MAINTAINERS: move BCM63xx ARM-based SoCs git tree
hx4700: regulator: declare full constraints
ARM: pxa: add regulator_has_full_constraints to spitz board file
ARM: pxa: add regulator_has_full_constraints to poodle board file
...
-rw-r--r-- | MAINTAINERS | 12 | ||||
-rw-r--r-- | arch/arm/mach-omap2/Makefile | 1 | ||||
-rw-r--r-- | arch/arm/mach-omap2/clock.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-omap2/common.h | 11 | ||||
-rw-r--r-- | arch/arm/mach-omap2/control.h | 4 | ||||
-rw-r--r-- | arch/arm/mach-omap2/id.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-omap2/io.c | 26 | ||||
-rw-r--r-- | arch/arm/mach-omap2/omap_hwmod.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_43xx_data.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 5 | ||||
-rw-r--r-- | arch/arm/mach-omap2/powerdomains3xxx_data.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-omap2/prm_common.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-omap2/soc.h | 4 | ||||
-rw-r--r-- | arch/arm/mach-omap2/ti81xx-restart.c | 34 | ||||
-rw-r--r-- | arch/arm/mach-omap2/timer.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-pxa/Kconfig | 6 | ||||
-rw-r--r-- | arch/arm/mach-pxa/corgi.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-pxa/hx4700.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-pxa/include/mach/irqs.h | 10 | ||||
-rw-r--r-- | arch/arm/mach-pxa/poodle.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-pxa/spitz.c | 2 |
21 files changed, 113 insertions, 28 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index e75c21840815..b27178c87444 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
@@ -2144,7 +2144,7 @@ F: arch/arm/boot/dts/bcm470* | |||
2144 | BROADCOM BCM63XX ARM ARCHITECTURE | 2144 | BROADCOM BCM63XX ARM ARCHITECTURE |
2145 | M: Florian Fainelli <f.fainelli@gmail.com> | 2145 | M: Florian Fainelli <f.fainelli@gmail.com> |
2146 | L: linux-arm-kernel@lists.infradead.org | 2146 | L: linux-arm-kernel@lists.infradead.org |
2147 | T: git git://git.github.com/brcm/linux.git | 2147 | T: git git://github.com/broadcom/arm-bcm63xx.git |
2148 | S: Maintained | 2148 | S: Maintained |
2149 | F: arch/arm/mach-bcm/bcm63xx.c | 2149 | F: arch/arm/mach-bcm/bcm63xx.c |
2150 | F: arch/arm/include/debug/bcm63xx.S | 2150 | F: arch/arm/include/debug/bcm63xx.S |
@@ -2161,6 +2161,7 @@ M: Brian Norris <computersforpeace@gmail.com> | |||
2161 | M: Gregory Fong <gregory.0xf0@gmail.com> | 2161 | M: Gregory Fong <gregory.0xf0@gmail.com> |
2162 | M: Florian Fainelli <f.fainelli@gmail.com> | 2162 | M: Florian Fainelli <f.fainelli@gmail.com> |
2163 | L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) | 2163 | L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) |
2164 | T: git git://github.com/broadcom/stblinux.git | ||
2164 | S: Maintained | 2165 | S: Maintained |
2165 | F: arch/arm/mach-bcm/*brcmstb* | 2166 | F: arch/arm/mach-bcm/*brcmstb* |
2166 | F: arch/arm/boot/dts/bcm7*.dts* | 2167 | F: arch/arm/boot/dts/bcm7*.dts* |
@@ -2170,6 +2171,7 @@ BROADCOM BMIPS MIPS ARCHITECTURE | |||
2170 | M: Kevin Cernekee <cernekee@gmail.com> | 2171 | M: Kevin Cernekee <cernekee@gmail.com> |
2171 | M: Florian Fainelli <f.fainelli@gmail.com> | 2172 | M: Florian Fainelli <f.fainelli@gmail.com> |
2172 | L: linux-mips@linux-mips.org | 2173 | L: linux-mips@linux-mips.org |
2174 | T: git git://github.com/broadcom/stblinux.git | ||
2173 | S: Maintained | 2175 | S: Maintained |
2174 | F: arch/mips/bmips/* | 2176 | F: arch/mips/bmips/* |
2175 | F: arch/mips/include/asm/mach-bmips/* | 2177 | F: arch/mips/include/asm/mach-bmips/* |
@@ -2212,7 +2214,7 @@ M: Ray Jui <rjui@broadcom.com> | |||
2212 | M: Scott Branden <sbranden@broadcom.com> | 2214 | M: Scott Branden <sbranden@broadcom.com> |
2213 | L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) | 2215 | L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) |
2214 | L: bcm-kernel-feedback-list@broadcom.com | 2216 | L: bcm-kernel-feedback-list@broadcom.com |
2215 | T: git git://git.github.com/brcm/linux.git | 2217 | T: git git://github.com/broadcom/cygnus-linux.git |
2216 | S: Maintained | 2218 | S: Maintained |
2217 | N: iproc | 2219 | N: iproc |
2218 | N: cygnus | 2220 | N: cygnus |
@@ -7044,6 +7046,12 @@ L: linux-omap@vger.kernel.org | |||
7044 | S: Maintained | 7046 | S: Maintained |
7045 | F: arch/arm/mach-omap2/omap_hwmod.* | 7047 | F: arch/arm/mach-omap2/omap_hwmod.* |
7046 | 7048 | ||
7049 | OMAP HWMOD DATA | ||
7050 | M: Paul Walmsley <paul@pwsan.com> | ||
7051 | L: linux-omap@vger.kernel.org | ||
7052 | S: Maintained | ||
7053 | F: arch/arm/mach-omap2/omap_hwmod*data* | ||
7054 | |||
7047 | OMAP HWMOD DATA FOR OMAP4-BASED DEVICES | 7055 | OMAP HWMOD DATA FOR OMAP4-BASED DEVICES |
7048 | M: Benoît Cousson <bcousson@baylibre.com> | 7056 | M: Benoît Cousson <bcousson@baylibre.com> |
7049 | L: linux-omap@vger.kernel.org | 7057 | L: linux-omap@vger.kernel.org |
diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile index 5d27dfdef66b..3a6463f88ea2 100644 --- a/arch/arm/mach-omap2/Makefile +++ b/arch/arm/mach-omap2/Makefile | |||
@@ -58,6 +58,7 @@ AFLAGS_sram34xx.o :=-Wa,-march=armv7-a | |||
58 | # Restart code (OMAP4/5 currently in omap4-common.c) | 58 | # Restart code (OMAP4/5 currently in omap4-common.c) |
59 | obj-$(CONFIG_SOC_OMAP2420) += omap2-restart.o | 59 | obj-$(CONFIG_SOC_OMAP2420) += omap2-restart.o |
60 | obj-$(CONFIG_SOC_OMAP2430) += omap2-restart.o | 60 | obj-$(CONFIG_SOC_OMAP2430) += omap2-restart.o |
61 | obj-$(CONFIG_SOC_TI81XX) += ti81xx-restart.o | ||
61 | obj-$(CONFIG_SOC_AM33XX) += am33xx-restart.o | 62 | obj-$(CONFIG_SOC_AM33XX) += am33xx-restart.o |
62 | obj-$(CONFIG_SOC_AM43XX) += omap4-restart.o | 63 | obj-$(CONFIG_SOC_AM43XX) += omap4-restart.o |
63 | obj-$(CONFIG_ARCH_OMAP3) += omap3-restart.o | 64 | obj-$(CONFIG_ARCH_OMAP3) += omap3-restart.o |
diff --git a/arch/arm/mach-omap2/clock.c b/arch/arm/mach-omap2/clock.c index 6ad5b4dbd33e..4ae4ccebced2 100644 --- a/arch/arm/mach-omap2/clock.c +++ b/arch/arm/mach-omap2/clock.c | |||
@@ -620,6 +620,9 @@ void omap2_clk_enable_init_clocks(const char **clk_names, u8 num_clocks) | |||
620 | 620 | ||
621 | for (i = 0; i < num_clocks; i++) { | 621 | for (i = 0; i < num_clocks; i++) { |
622 | init_clk = clk_get(NULL, clk_names[i]); | 622 | init_clk = clk_get(NULL, clk_names[i]); |
623 | if (WARN(IS_ERR(init_clk), "could not find init clock %s\n", | ||
624 | clk_names[i])) | ||
625 | continue; | ||
623 | clk_prepare_enable(init_clk); | 626 | clk_prepare_enable(init_clk); |
624 | } | 627 | } |
625 | } | 628 | } |
diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h index 3933b8aa4f01..46e24581d624 100644 --- a/arch/arm/mach-omap2/common.h +++ b/arch/arm/mach-omap2/common.h | |||
@@ -118,7 +118,8 @@ void omap3630_init_early(void); | |||
118 | void omap3_init_early(void); /* Do not use this one */ | 118 | void omap3_init_early(void); /* Do not use this one */ |
119 | void am33xx_init_early(void); | 119 | void am33xx_init_early(void); |
120 | void am35xx_init_early(void); | 120 | void am35xx_init_early(void); |
121 | void ti81xx_init_early(void); | 121 | void ti814x_init_early(void); |
122 | void ti816x_init_early(void); | ||
122 | void am33xx_init_early(void); | 123 | void am33xx_init_early(void); |
123 | void am43xx_init_early(void); | 124 | void am43xx_init_early(void); |
124 | void am43xx_init_late(void); | 125 | void am43xx_init_late(void); |
@@ -171,6 +172,14 @@ static inline void omap3xxx_restart(enum reboot_mode mode, const char *cmd) | |||
171 | } | 172 | } |
172 | #endif | 173 | #endif |
173 | 174 | ||
175 | #ifdef CONFIG_SOC_TI81XX | ||
176 | void ti81xx_restart(enum reboot_mode mode, const char *cmd); | ||
177 | #else | ||
178 | static inline void ti81xx_restart(enum reboot_mode mode, const char *cmd) | ||
179 | { | ||
180 | } | ||
181 | #endif | ||
182 | |||
174 | #if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5) || \ | 183 | #if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5) || \ |
175 | defined(CONFIG_SOC_DRA7XX) || defined(CONFIG_SOC_AM43XX) | 184 | defined(CONFIG_SOC_DRA7XX) || defined(CONFIG_SOC_AM43XX) |
176 | void omap44xx_restart(enum reboot_mode mode, const char *cmd); | 185 | void omap44xx_restart(enum reboot_mode mode, const char *cmd); |
diff --git a/arch/arm/mach-omap2/control.h b/arch/arm/mach-omap2/control.h index a80ac2d70bb1..b8a487181210 100644 --- a/arch/arm/mach-omap2/control.h +++ b/arch/arm/mach-omap2/control.h | |||
@@ -53,6 +53,7 @@ | |||
53 | #define OMAP343X_CONTROL_GENERAL_WKUP 0xa60 | 53 | #define OMAP343X_CONTROL_GENERAL_WKUP 0xa60 |
54 | 54 | ||
55 | /* TI81XX spefic control submodules */ | 55 | /* TI81XX spefic control submodules */ |
56 | #define TI81XX_CONTROL_DEVBOOT 0x040 | ||
56 | #define TI81XX_CONTROL_DEVCONF 0x600 | 57 | #define TI81XX_CONTROL_DEVCONF 0x600 |
57 | 58 | ||
58 | /* Control register offsets - read/write with omap_ctrl_{read,write}{bwl}() */ | 59 | /* Control register offsets - read/write with omap_ctrl_{read,write}{bwl}() */ |
@@ -246,6 +247,9 @@ | |||
246 | #define OMAP3_PADCONF_SAD2D_MSTANDBY 0x250 | 247 | #define OMAP3_PADCONF_SAD2D_MSTANDBY 0x250 |
247 | #define OMAP3_PADCONF_SAD2D_IDLEACK 0x254 | 248 | #define OMAP3_PADCONF_SAD2D_IDLEACK 0x254 |
248 | 249 | ||
250 | /* TI81XX CONTROL_DEVBOOT register offsets */ | ||
251 | #define TI81XX_CONTROL_STATUS (TI81XX_CONTROL_DEVBOOT + 0x000) | ||
252 | |||
249 | /* TI81XX CONTROL_DEVCONF register offsets */ | 253 | /* TI81XX CONTROL_DEVCONF register offsets */ |
250 | #define TI81XX_CONTROL_DEVICE_ID (TI81XX_CONTROL_DEVCONF + 0x000) | 254 | #define TI81XX_CONTROL_DEVICE_ID (TI81XX_CONTROL_DEVCONF + 0x000) |
251 | 255 | ||
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c index c25feba05818..2a2f4d56e4c8 100644 --- a/arch/arm/mach-omap2/id.c +++ b/arch/arm/mach-omap2/id.c | |||
@@ -56,6 +56,8 @@ int omap_type(void) | |||
56 | 56 | ||
57 | if (cpu_is_omap24xx()) { | 57 | if (cpu_is_omap24xx()) { |
58 | val = omap_ctrl_readl(OMAP24XX_CONTROL_STATUS); | 58 | val = omap_ctrl_readl(OMAP24XX_CONTROL_STATUS); |
59 | } else if (cpu_is_ti81xx()) { | ||
60 | val = omap_ctrl_readl(TI81XX_CONTROL_STATUS); | ||
59 | } else if (soc_is_am33xx() || soc_is_am43xx()) { | 61 | } else if (soc_is_am33xx() || soc_is_am43xx()) { |
60 | val = omap_ctrl_readl(AM33XX_CONTROL_STATUS); | 62 | val = omap_ctrl_readl(AM33XX_CONTROL_STATUS); |
61 | } else if (cpu_is_omap34xx()) { | 63 | } else if (cpu_is_omap34xx()) { |
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c index a1bd6affb508..e4a5630149e1 100644 --- a/arch/arm/mach-omap2/io.c +++ b/arch/arm/mach-omap2/io.c | |||
@@ -492,9 +492,28 @@ void __init am35xx_init_early(void) | |||
492 | omap_clk_soc_init = am35xx_dt_clk_init; | 492 | omap_clk_soc_init = am35xx_dt_clk_init; |
493 | } | 493 | } |
494 | 494 | ||
495 | void __init ti81xx_init_early(void) | 495 | void __init ti814x_init_early(void) |
496 | { | 496 | { |
497 | omap2_set_globals_tap(OMAP343X_CLASS, | 497 | omap2_set_globals_tap(TI814X_CLASS, |
498 | OMAP2_L4_IO_ADDRESS(TI81XX_TAP_BASE)); | ||
499 | omap2_set_globals_control(OMAP2_L4_IO_ADDRESS(TI81XX_CTRL_BASE), | ||
500 | NULL); | ||
501 | omap2_set_globals_prm(OMAP2_L4_IO_ADDRESS(TI81XX_PRCM_BASE)); | ||
502 | omap2_set_globals_cm(OMAP2_L4_IO_ADDRESS(TI81XX_PRCM_BASE), NULL); | ||
503 | omap3xxx_check_revision(); | ||
504 | ti81xx_check_features(); | ||
505 | omap3xxx_voltagedomains_init(); | ||
506 | omap3xxx_powerdomains_init(); | ||
507 | omap3xxx_clockdomains_init(); | ||
508 | omap3xxx_hwmod_init(); | ||
509 | omap_hwmod_init_postsetup(); | ||
510 | if (of_have_populated_dt()) | ||
511 | omap_clk_soc_init = ti81xx_dt_clk_init; | ||
512 | } | ||
513 | |||
514 | void __init ti816x_init_early(void) | ||
515 | { | ||
516 | omap2_set_globals_tap(TI816X_CLASS, | ||
498 | OMAP2_L4_IO_ADDRESS(TI81XX_TAP_BASE)); | 517 | OMAP2_L4_IO_ADDRESS(TI81XX_TAP_BASE)); |
499 | omap2_set_globals_control(OMAP2_L4_IO_ADDRESS(TI81XX_CTRL_BASE), | 518 | omap2_set_globals_control(OMAP2_L4_IO_ADDRESS(TI81XX_CTRL_BASE), |
500 | NULL); | 519 | NULL); |
@@ -509,8 +528,6 @@ void __init ti81xx_init_early(void) | |||
509 | omap_hwmod_init_postsetup(); | 528 | omap_hwmod_init_postsetup(); |
510 | if (of_have_populated_dt()) | 529 | if (of_have_populated_dt()) |
511 | omap_clk_soc_init = ti81xx_dt_clk_init; | 530 | omap_clk_soc_init = ti81xx_dt_clk_init; |
512 | else | ||
513 | omap_clk_soc_init = omap3xxx_clk_init; | ||
514 | } | 531 | } |
515 | 532 | ||
516 | void __init omap3_init_late(void) | 533 | void __init omap3_init_late(void) |
@@ -551,7 +568,6 @@ void __init am35xx_init_late(void) | |||
551 | void __init ti81xx_init_late(void) | 568 | void __init ti81xx_init_late(void) |
552 | { | 569 | { |
553 | omap_common_late_init(); | 570 | omap_common_late_init(); |
554 | omap3_pm_init(); | ||
555 | omap2_clk_enable_autoidle_all(); | 571 | omap2_clk_enable_autoidle_all(); |
556 | } | 572 | } |
557 | #endif | 573 | #endif |
diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c index 9025ffffd2dc..2af58570cb65 100644 --- a/arch/arm/mach-omap2/omap_hwmod.c +++ b/arch/arm/mach-omap2/omap_hwmod.c | |||
@@ -2155,8 +2155,8 @@ static int _enable(struct omap_hwmod *oh) | |||
2155 | if (soc_ops.disable_module) | 2155 | if (soc_ops.disable_module) |
2156 | soc_ops.disable_module(oh); | 2156 | soc_ops.disable_module(oh); |
2157 | _disable_clocks(oh); | 2157 | _disable_clocks(oh); |
2158 | pr_debug("omap_hwmod: %s: _wait_target_ready: %d\n", | 2158 | pr_err("omap_hwmod: %s: _wait_target_ready failed: %d\n", |
2159 | oh->name, r); | 2159 | oh->name, r); |
2160 | 2160 | ||
2161 | if (oh->clkdm) | 2161 | if (oh->clkdm) |
2162 | clkdm_hwmod_disable(oh->clkdm, oh); | 2162 | clkdm_hwmod_disable(oh->clkdm, oh); |
diff --git a/arch/arm/mach-omap2/omap_hwmod_43xx_data.c b/arch/arm/mach-omap2/omap_hwmod_43xx_data.c index 5c6c8410160e..8eb85925e444 100644 --- a/arch/arm/mach-omap2/omap_hwmod_43xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_43xx_data.c | |||
@@ -498,6 +498,7 @@ static struct omap_hwmod am43xx_dss_dispc_hwmod = { | |||
498 | }, | 498 | }, |
499 | }, | 499 | }, |
500 | .dev_attr = &am43xx_dss_dispc_dev_attr, | 500 | .dev_attr = &am43xx_dss_dispc_dev_attr, |
501 | .parent_hwmod = &am43xx_dss_core_hwmod, | ||
501 | }; | 502 | }; |
502 | 503 | ||
503 | /* rfbi */ | 504 | /* rfbi */ |
@@ -512,6 +513,7 @@ static struct omap_hwmod am43xx_dss_rfbi_hwmod = { | |||
512 | .clkctrl_offs = AM43XX_CM_PER_DSS_CLKCTRL_OFFSET, | 513 | .clkctrl_offs = AM43XX_CM_PER_DSS_CLKCTRL_OFFSET, |
513 | }, | 514 | }, |
514 | }, | 515 | }, |
516 | .parent_hwmod = &am43xx_dss_core_hwmod, | ||
515 | }; | 517 | }; |
516 | 518 | ||
517 | /* Interfaces */ | 519 | /* Interfaces */ |
diff --git a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c index ffd6604cd546..e8692e7675b8 100644 --- a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c | |||
@@ -819,7 +819,8 @@ static struct omap_hwmod dra7xx_gpmc_hwmod = { | |||
819 | .name = "gpmc", | 819 | .name = "gpmc", |
820 | .class = &dra7xx_gpmc_hwmod_class, | 820 | .class = &dra7xx_gpmc_hwmod_class, |
821 | .clkdm_name = "l3main1_clkdm", | 821 | .clkdm_name = "l3main1_clkdm", |
822 | .flags = HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET, | 822 | .flags = (HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET | |
823 | HWMOD_SWSUP_SIDLE), | ||
823 | .main_clk = "l3_iclk_div", | 824 | .main_clk = "l3_iclk_div", |
824 | .prcm = { | 825 | .prcm = { |
825 | .omap4 = { | 826 | .omap4 = { |
@@ -2017,7 +2018,7 @@ static struct omap_hwmod dra7xx_uart3_hwmod = { | |||
2017 | .class = &dra7xx_uart_hwmod_class, | 2018 | .class = &dra7xx_uart_hwmod_class, |
2018 | .clkdm_name = "l4per_clkdm", | 2019 | .clkdm_name = "l4per_clkdm", |
2019 | .main_clk = "uart3_gfclk_mux", | 2020 | .main_clk = "uart3_gfclk_mux", |
2020 | .flags = HWMOD_SWSUP_SIDLE_ACT, | 2021 | .flags = HWMOD_SWSUP_SIDLE_ACT | DEBUG_OMAP4UART3_FLAGS, |
2021 | .prcm = { | 2022 | .prcm = { |
2022 | .omap4 = { | 2023 | .omap4 = { |
2023 | .clkctrl_offs = DRA7XX_CM_L4PER_UART3_CLKCTRL_OFFSET, | 2024 | .clkctrl_offs = DRA7XX_CM_L4PER_UART3_CLKCTRL_OFFSET, |
diff --git a/arch/arm/mach-omap2/powerdomains3xxx_data.c b/arch/arm/mach-omap2/powerdomains3xxx_data.c index 328c1037cb60..70bc7066a4c2 100644 --- a/arch/arm/mach-omap2/powerdomains3xxx_data.c +++ b/arch/arm/mach-omap2/powerdomains3xxx_data.c | |||
@@ -464,7 +464,7 @@ void __init omap3xxx_powerdomains_init(void) | |||
464 | { | 464 | { |
465 | unsigned int rev; | 465 | unsigned int rev; |
466 | 466 | ||
467 | if (!cpu_is_omap34xx()) | 467 | if (!cpu_is_omap34xx() && !cpu_is_ti81xx()) |
468 | return; | 468 | return; |
469 | 469 | ||
470 | pwrdm_register_platform_funcs(&omap3_pwrdm_operations); | 470 | pwrdm_register_platform_funcs(&omap3_pwrdm_operations); |
diff --git a/arch/arm/mach-omap2/prm_common.c b/arch/arm/mach-omap2/prm_common.c index dea2833ca627..264b5e29404d 100644 --- a/arch/arm/mach-omap2/prm_common.c +++ b/arch/arm/mach-omap2/prm_common.c | |||
@@ -581,6 +581,10 @@ static const struct of_device_id omap_prcm_dt_match_table[] = { | |||
581 | { .compatible = "ti,am3-scrm" }, | 581 | { .compatible = "ti,am3-scrm" }, |
582 | { .compatible = "ti,am4-prcm" }, | 582 | { .compatible = "ti,am4-prcm" }, |
583 | { .compatible = "ti,am4-scrm" }, | 583 | { .compatible = "ti,am4-scrm" }, |
584 | { .compatible = "ti,dm814-prcm" }, | ||
585 | { .compatible = "ti,dm814-scrm" }, | ||
586 | { .compatible = "ti,dm816-prcm" }, | ||
587 | { .compatible = "ti,dm816-scrm" }, | ||
584 | { .compatible = "ti,omap2-prcm" }, | 588 | { .compatible = "ti,omap2-prcm" }, |
585 | { .compatible = "ti,omap2-scrm" }, | 589 | { .compatible = "ti,omap2-scrm" }, |
586 | { .compatible = "ti,omap3-prm" }, | 590 | { .compatible = "ti,omap3-prm" }, |
diff --git a/arch/arm/mach-omap2/soc.h b/arch/arm/mach-omap2/soc.h index c1a3b4416311..f97654d11ea5 100644 --- a/arch/arm/mach-omap2/soc.h +++ b/arch/arm/mach-omap2/soc.h | |||
@@ -423,13 +423,13 @@ IS_OMAP_TYPE(3430, 0x3430) | |||
423 | #define OMAP3630_REV_ES1_1 (OMAP363X_CLASS | (0x1 << 8)) | 423 | #define OMAP3630_REV_ES1_1 (OMAP363X_CLASS | (0x1 << 8)) |
424 | #define OMAP3630_REV_ES1_2 (OMAP363X_CLASS | (0x2 << 8)) | 424 | #define OMAP3630_REV_ES1_2 (OMAP363X_CLASS | (0x2 << 8)) |
425 | 425 | ||
426 | #define TI816X_CLASS 0x81600034 | 426 | #define TI816X_CLASS 0x81600081 |
427 | #define TI8168_REV_ES1_0 TI816X_CLASS | 427 | #define TI8168_REV_ES1_0 TI816X_CLASS |
428 | #define TI8168_REV_ES1_1 (TI816X_CLASS | (0x1 << 8)) | 428 | #define TI8168_REV_ES1_1 (TI816X_CLASS | (0x1 << 8)) |
429 | #define TI8168_REV_ES2_0 (TI816X_CLASS | (0x2 << 8)) | 429 | #define TI8168_REV_ES2_0 (TI816X_CLASS | (0x2 << 8)) |
430 | #define TI8168_REV_ES2_1 (TI816X_CLASS | (0x3 << 8)) | 430 | #define TI8168_REV_ES2_1 (TI816X_CLASS | (0x3 << 8)) |
431 | 431 | ||
432 | #define TI814X_CLASS 0x81400034 | 432 | #define TI814X_CLASS 0x81400081 |
433 | #define TI8148_REV_ES1_0 TI814X_CLASS | 433 | #define TI8148_REV_ES1_0 TI814X_CLASS |
434 | #define TI8148_REV_ES2_0 (TI814X_CLASS | (0x1 << 8)) | 434 | #define TI8148_REV_ES2_0 (TI814X_CLASS | (0x1 << 8)) |
435 | #define TI8148_REV_ES2_1 (TI814X_CLASS | (0x2 << 8)) | 435 | #define TI8148_REV_ES2_1 (TI814X_CLASS | (0x2 << 8)) |
diff --git a/arch/arm/mach-omap2/ti81xx-restart.c b/arch/arm/mach-omap2/ti81xx-restart.c new file mode 100644 index 000000000000..6c3ce7c46ddd --- /dev/null +++ b/arch/arm/mach-omap2/ti81xx-restart.c | |||
@@ -0,0 +1,34 @@ | |||
1 | /* | ||
2 | * This program is free software; you can redistribute it and/or modify | ||
3 | * it under the terms of the GNU General Public License version 2 as | ||
4 | * published by the Free Software Foundation. | ||
5 | */ | ||
6 | #include <linux/kernel.h> | ||
7 | #include <linux/init.h> | ||
8 | #include <linux/reboot.h> | ||
9 | |||
10 | #include "iomap.h" | ||
11 | #include "common.h" | ||
12 | #include "control.h" | ||
13 | #include "prm3xxx.h" | ||
14 | |||
15 | #define TI81XX_PRM_DEVICE_RSTCTRL 0x00a0 | ||
16 | #define TI81XX_GLOBAL_RST_COLD BIT(1) | ||
17 | |||
18 | /** | ||
19 | * ti81xx_restart - trigger a software restart of the SoC | ||
20 | * @mode: the "reboot mode", see arch/arm/kernel/{setup,process}.c | ||
21 | * @cmd: passed from the userspace program rebooting the system (if provided) | ||
22 | * | ||
23 | * Resets the SoC. For @cmd, see the 'reboot' syscall in | ||
24 | * kernel/sys.c. No return value. | ||
25 | * | ||
26 | * NOTE: Warm reset does not seem to work, may require resetting | ||
27 | * clocks to bypass mode. | ||
28 | */ | ||
29 | void ti81xx_restart(enum reboot_mode mode, const char *cmd) | ||
30 | { | ||
31 | omap2_prm_set_mod_reg_bits(TI81XX_GLOBAL_RST_COLD, 0, | ||
32 | TI81XX_PRM_DEVICE_RSTCTRL); | ||
33 | while (1); | ||
34 | } | ||
diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c index 7d45c84c69ba..cef67af9e9b8 100644 --- a/arch/arm/mach-omap2/timer.c +++ b/arch/arm/mach-omap2/timer.c | |||
@@ -147,6 +147,8 @@ static const struct of_device_id omap_timer_match[] __initconst = { | |||
147 | { .compatible = "ti,omap3430-timer", }, | 147 | { .compatible = "ti,omap3430-timer", }, |
148 | { .compatible = "ti,omap4430-timer", }, | 148 | { .compatible = "ti,omap4430-timer", }, |
149 | { .compatible = "ti,omap5430-timer", }, | 149 | { .compatible = "ti,omap5430-timer", }, |
150 | { .compatible = "ti,dm814-timer", }, | ||
151 | { .compatible = "ti,dm816-timer", }, | ||
150 | { .compatible = "ti,am335x-timer", }, | 152 | { .compatible = "ti,am335x-timer", }, |
151 | { .compatible = "ti,am335x-timer-1ms", }, | 153 | { .compatible = "ti,am335x-timer-1ms", }, |
152 | { } | 154 | { } |
diff --git a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig index 83efe914bf7d..8896e71586f5 100644 --- a/arch/arm/mach-pxa/Kconfig +++ b/arch/arm/mach-pxa/Kconfig | |||
@@ -6,7 +6,6 @@ comment "Intel/Marvell Dev Platforms (sorted by hardware release time)" | |||
6 | 6 | ||
7 | config MACH_PXA27X_DT | 7 | config MACH_PXA27X_DT |
8 | bool "Support PXA27x platforms from device tree" | 8 | bool "Support PXA27x platforms from device tree" |
9 | select CPU_PXA27x | ||
10 | select POWER_SUPPLY | 9 | select POWER_SUPPLY |
11 | select PXA27x | 10 | select PXA27x |
12 | select USE_OF | 11 | select USE_OF |
@@ -84,14 +83,12 @@ config ARCH_VIPER | |||
84 | select I2C_GPIO if I2C=y | 83 | select I2C_GPIO if I2C=y |
85 | select ISA | 84 | select ISA |
86 | select PXA25x | 85 | select PXA25x |
87 | select PXA_HAVE_ISA_IRQS | ||
88 | 86 | ||
89 | config MACH_ARCOM_ZEUS | 87 | config MACH_ARCOM_ZEUS |
90 | bool "Arcom/Eurotech ZEUS SBC" | 88 | bool "Arcom/Eurotech ZEUS SBC" |
91 | select ARCOM_PCMCIA | 89 | select ARCOM_PCMCIA |
92 | select ISA | 90 | select ISA |
93 | select PXA27x | 91 | select PXA27x |
94 | select PXA_HAVE_ISA_IRQS | ||
95 | 92 | ||
96 | config MACH_BALLOON3 | 93 | config MACH_BALLOON3 |
97 | bool "Balloon 3 board" | 94 | bool "Balloon 3 board" |
@@ -691,9 +688,6 @@ config SHARPSL_PM_MAX1111 | |||
691 | select SPI | 688 | select SPI |
692 | select SPI_MASTER | 689 | select SPI_MASTER |
693 | 690 | ||
694 | config PXA_HAVE_ISA_IRQS | ||
695 | bool | ||
696 | |||
697 | config PXA310_ULPI | 691 | config PXA310_ULPI |
698 | bool | 692 | bool |
699 | 693 | ||
diff --git a/arch/arm/mach-pxa/corgi.c b/arch/arm/mach-pxa/corgi.c index 06022b235730..89f790dda93e 100644 --- a/arch/arm/mach-pxa/corgi.c +++ b/arch/arm/mach-pxa/corgi.c | |||
@@ -26,6 +26,7 @@ | |||
26 | #include <linux/i2c.h> | 26 | #include <linux/i2c.h> |
27 | #include <linux/i2c/pxa-i2c.h> | 27 | #include <linux/i2c/pxa-i2c.h> |
28 | #include <linux/io.h> | 28 | #include <linux/io.h> |
29 | #include <linux/regulator/machine.h> | ||
29 | #include <linux/spi/spi.h> | 30 | #include <linux/spi/spi.h> |
30 | #include <linux/spi/ads7846.h> | 31 | #include <linux/spi/ads7846.h> |
31 | #include <linux/spi/corgi_lcd.h> | 32 | #include <linux/spi/corgi_lcd.h> |
@@ -752,6 +753,8 @@ static void __init corgi_init(void) | |||
752 | sharpsl_nand_partitions[1].size = 53 * 1024 * 1024; | 753 | sharpsl_nand_partitions[1].size = 53 * 1024 * 1024; |
753 | 754 | ||
754 | platform_add_devices(devices, ARRAY_SIZE(devices)); | 755 | platform_add_devices(devices, ARRAY_SIZE(devices)); |
756 | |||
757 | regulator_has_full_constraints(); | ||
755 | } | 758 | } |
756 | 759 | ||
757 | static void __init fixup_corgi(struct tag *tags, char **cmdline) | 760 | static void __init fixup_corgi(struct tag *tags, char **cmdline) |
diff --git a/arch/arm/mach-pxa/hx4700.c b/arch/arm/mach-pxa/hx4700.c index c66ad4edc5e3..5fb41ad6e3bc 100644 --- a/arch/arm/mach-pxa/hx4700.c +++ b/arch/arm/mach-pxa/hx4700.c | |||
@@ -893,6 +893,8 @@ static void __init hx4700_init(void) | |||
893 | mdelay(10); | 893 | mdelay(10); |
894 | gpio_set_value(GPIO71_HX4700_ASIC3_nRESET, 1); | 894 | gpio_set_value(GPIO71_HX4700_ASIC3_nRESET, 1); |
895 | mdelay(10); | 895 | mdelay(10); |
896 | |||
897 | regulator_has_full_constraints(); | ||
896 | } | 898 | } |
897 | 899 | ||
898 | MACHINE_START(H4700, "HP iPAQ HX4700") | 900 | MACHINE_START(H4700, "HP iPAQ HX4700") |
diff --git a/arch/arm/mach-pxa/include/mach/irqs.h b/arch/arm/mach-pxa/include/mach/irqs.h index 48c2fd851686..7e3ea351f3c7 100644 --- a/arch/arm/mach-pxa/include/mach/irqs.h +++ b/arch/arm/mach-pxa/include/mach/irqs.h | |||
@@ -12,14 +12,10 @@ | |||
12 | #ifndef __ASM_MACH_IRQS_H | 12 | #ifndef __ASM_MACH_IRQS_H |
13 | #define __ASM_MACH_IRQS_H | 13 | #define __ASM_MACH_IRQS_H |
14 | 14 | ||
15 | #ifdef CONFIG_PXA_HAVE_ISA_IRQS | 15 | #include <asm/irq.h> |
16 | #define PXA_ISA_IRQ(x) (x) | ||
17 | #define PXA_ISA_IRQ_NUM (16) | ||
18 | #else | ||
19 | #define PXA_ISA_IRQ_NUM (0) | ||
20 | #endif | ||
21 | 16 | ||
22 | #define PXA_IRQ(x) (PXA_ISA_IRQ_NUM + (x)) | 17 | #define PXA_ISA_IRQ(x) (x) |
18 | #define PXA_IRQ(x) (NR_IRQS_LEGACY + (x)) | ||
23 | 19 | ||
24 | #define IRQ_SSP3 PXA_IRQ(0) /* SSP3 service request */ | 20 | #define IRQ_SSP3 PXA_IRQ(0) /* SSP3 service request */ |
25 | #define IRQ_MSL PXA_IRQ(1) /* MSL Interface interrupt */ | 21 | #define IRQ_MSL PXA_IRQ(1) /* MSL Interface interrupt */ |
diff --git a/arch/arm/mach-pxa/poodle.c b/arch/arm/mach-pxa/poodle.c index 29019beae591..195b1121c8f1 100644 --- a/arch/arm/mach-pxa/poodle.c +++ b/arch/arm/mach-pxa/poodle.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <linux/gpio.h> | 25 | #include <linux/gpio.h> |
26 | #include <linux/i2c.h> | 26 | #include <linux/i2c.h> |
27 | #include <linux/i2c/pxa-i2c.h> | 27 | #include <linux/i2c/pxa-i2c.h> |
28 | #include <linux/regulator/machine.h> | ||
28 | #include <linux/spi/spi.h> | 29 | #include <linux/spi/spi.h> |
29 | #include <linux/spi/ads7846.h> | 30 | #include <linux/spi/ads7846.h> |
30 | #include <linux/spi/pxa2xx_spi.h> | 31 | #include <linux/spi/pxa2xx_spi.h> |
@@ -455,6 +456,7 @@ static void __init poodle_init(void) | |||
455 | pxa_set_i2c_info(NULL); | 456 | pxa_set_i2c_info(NULL); |
456 | i2c_register_board_info(0, ARRAY_AND_SIZE(poodle_i2c_devices)); | 457 | i2c_register_board_info(0, ARRAY_AND_SIZE(poodle_i2c_devices)); |
457 | poodle_init_spi(); | 458 | poodle_init_spi(); |
459 | regulator_has_full_constraints(); | ||
458 | } | 460 | } |
459 | 461 | ||
460 | static void __init fixup_poodle(struct tag *tags, char **cmdline) | 462 | static void __init fixup_poodle(struct tag *tags, char **cmdline) |
diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c index 962a7f31f596..f4e2e2719580 100644 --- a/arch/arm/mach-pxa/spitz.c +++ b/arch/arm/mach-pxa/spitz.c | |||
@@ -979,6 +979,8 @@ static void __init spitz_init(void) | |||
979 | spitz_nand_init(); | 979 | spitz_nand_init(); |
980 | spitz_i2c_init(); | 980 | spitz_i2c_init(); |
981 | spitz_audio_init(); | 981 | spitz_audio_init(); |
982 | |||
983 | regulator_has_full_constraints(); | ||
982 | } | 984 | } |
983 | 985 | ||
984 | static void __init spitz_fixup(struct tag *tags, char **cmdline) | 986 | static void __init spitz_fixup(struct tag *tags, char **cmdline) |