aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-10-08 17:03:09 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2014-10-08 17:03:09 -0400
commit4a4743e840d06a5772be7c21110807165c5b3c9f (patch)
tree2088dbe4a4680a8e637a079232cfc6c02077cddd
parentda01e61428aa2b5c424fddc11178498462d8c77f (diff)
parent5df27823b5552e885e02c1ea0d2f52326d7d710c (diff)
Merge tag 'fixes-nc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC non-critical bug fixes from Arnd Bergmann: "These are bug fixes for harmless problems that were not important enough to get fixed in 3.17. The majority of these are OMAP specific, but there are also a couple for Marvell mvebu, cns3xxx, and others, as well as some updates for the MAINTAINERS file. In particular, Robert Jarzmik and Daniel Mack now volunteered to help out maintaining the PXA platform, Krzysztof Halasa took over the cns3xxx platform, Carlo Caione is the maintainer for the new Amlogic meson platform, and Matthias Brugger is now listed for the mediatek platform he recently contributed" * tag 'fixes-nc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (42 commits) MAINTAINERS: update Shawn's email address MAINTAINERS: condense some Tegra related entries MAINTAINERS: add Alexandre Courbot for Tegra MAINTAINERS: CNS3xxx and IXP4xx update. MAINTAINERS: Add maintainers entry for Mediatek SoCs arm, vt8500, LLVMLlinux: Use mcr instead of mcr% for mach-vt8500 MAINTAINERS: add a third maintainer to mach-bcm CNS3xxx: Fix PCIe read size limit. CNS3xxx: Fix logical PCIe topology. CNS3xxx: Fix debug UART. MAINTAINERS: Add entry for the Amlogic MesonX SoCs MAINTAINERS: update ARM pxa maintainers ARM: at91/PMC: don't forget to write PMC_PCDR register to disable clocks ARM: at91: fix at91sam9263ek DT mmc pinmuxing settings ARM: mvebu: Netgear RN102: Use Hardware BCH ECC ARM: Kirkwood: Fix DT based DSA. ARM: OMAP2+: make of_device_ids const ARM: omap2: make arrays containing machine compatible strings const ARM: LPC32xx: Fix reset function ARM: mvebu: Netgear RN2120: Use Hardware BCH ECC ...
-rw-r--r--MAINTAINERS49
-rw-r--r--arch/arm/Kconfig.debug7
-rw-r--r--arch/arm/boot/dts/Makefile4
-rw-r--r--arch/arm/boot/dts/am335x-bone-common.dtsi3
-rw-r--r--arch/arm/boot/dts/am335x-bone.dts5
-rw-r--r--arch/arm/boot/dts/am335x-boneblack.dts5
-rw-r--r--arch/arm/boot/dts/armada-370-netgear-rn102.dts4
-rw-r--r--arch/arm/boot/dts/armada-370-netgear-rn104.dts4
-rw-r--r--arch/arm/boot/dts/armada-xp-netgear-rn2120.dts4
-rw-r--r--arch/arm/boot/dts/at91sam9263.dtsi2
-rw-r--r--arch/arm/boot/dts/kirkwood-mv88f6281gtw-ge.dts16
-rw-r--r--arch/arm/boot/dts/kirkwood-rd88f6281-a.dts43
-rw-r--r--arch/arm/boot/dts/kirkwood-rd88f6281-a0.dts26
-rw-r--r--arch/arm/boot/dts/kirkwood-rd88f6281-z0.dts (renamed from arch/arm/boot/dts/kirkwood-rd88f6281-a1.dts)18
-rw-r--r--arch/arm/boot/dts/kirkwood-rd88f6281.dtsi27
-rw-r--r--arch/arm/boot/dts/kirkwood.dtsi4
-rw-r--r--arch/arm/boot/dts/omap4-panda-common.dtsi3
-rw-r--r--arch/arm/boot/dts/omap4-panda-es.dts5
-rw-r--r--arch/arm/boot/dts/omap4-panda.dts5
-rw-r--r--arch/arm/mach-at91/clock.c1
-rw-r--r--arch/arm/mach-cns3xxx/cns3420vb.c1
-rw-r--r--arch/arm/mach-cns3xxx/core.c1
-rw-r--r--arch/arm/mach-cns3xxx/core.h6
-rw-r--r--arch/arm/mach-cns3xxx/pcie.c49
-rw-r--r--arch/arm/mach-davinci/board-da850-evm.c15
-rw-r--r--arch/arm/mach-lpc32xx/common.c29
-rw-r--r--arch/arm/mach-omap2/board-generic.c26
-rw-r--r--arch/arm/mach-omap2/common.h2
-rw-r--r--arch/arm/mach-omap2/gpmc.c2
-rw-r--r--arch/arm/mach-omap2/irq.c2
-rw-r--r--arch/arm/mach-omap2/omap-mpuss-lowpower.c4
-rw-r--r--arch/arm/mach-omap2/pdata-quirks.c2
-rw-r--r--arch/arm/mach-omap2/pm44xx.c9
-rw-r--r--arch/arm/mach-omap2/powerdomain.c79
-rw-r--r--arch/arm/mach-omap2/powerdomain.h4
-rw-r--r--arch/arm/mach-omap2/powerdomains54xx_data.c12
-rw-r--r--arch/arm/mach-omap2/powerdomains7xx_data.c14
-rw-r--r--arch/arm/mach-omap2/prm_common.c2
-rw-r--r--arch/arm/mach-omap2/timer.c6
-rw-r--r--arch/arm/mach-spear/Kconfig9
-rw-r--r--arch/arm/mach-vt8500/vt8500.c2
-rw-r--r--drivers/ata/Kconfig2
-rw-r--r--drivers/cpufreq/Kconfig.arm4
-rw-r--r--drivers/cpuidle/Kconfig.arm2
-rw-r--r--drivers/leds/Kconfig4
-rw-r--r--drivers/rtc/Kconfig2
-rw-r--r--drivers/thermal/Kconfig2
-rw-r--r--drivers/watchdog/Kconfig2
48 files changed, 327 insertions, 202 deletions
diff --git a/MAINTAINERS b/MAINTAINERS
index 27bd1cc05a6b..efc5d4bffac6 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -846,6 +846,12 @@ M: Emilio López <emilio@elopez.com.ar>
846S: Maintained 846S: Maintained
847F: drivers/clk/sunxi/ 847F: drivers/clk/sunxi/
848 848
849ARM/Amlogic MesonX SoC support
850M: Carlo Caione <carlo@caione.org>
851L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
852S: Maintained
853N: meson[x68]
854
849ARM/ATMEL AT91RM9200 AND AT91SAM ARM ARCHITECTURES 855ARM/ATMEL AT91RM9200 AND AT91SAM ARM ARCHITECTURES
850M: Andrew Victor <linux@maxim.org.za> 856M: Andrew Victor <linux@maxim.org.za>
851M: Nicolas Ferre <nicolas.ferre@atmel.com> 857M: Nicolas Ferre <nicolas.ferre@atmel.com>
@@ -872,10 +878,9 @@ S: Maintained
872F: arch/arm/mach-highbank/ 878F: arch/arm/mach-highbank/
873 879
874ARM/CAVIUM NETWORKS CNS3XXX MACHINE SUPPORT 880ARM/CAVIUM NETWORKS CNS3XXX MACHINE SUPPORT
875M: Anton Vorontsov <anton@enomsg.org> 881M: Krzysztof Halasa <khalasa@piap.pl>
876S: Maintained 882S: Maintained
877F: arch/arm/mach-cns3xxx/ 883F: arch/arm/mach-cns3xxx/
878T: git git://git.infradead.org/users/cbou/linux-cns3xxx.git
879 884
880ARM/CIRRUS LOGIC CLPS711X ARM ARCHITECTURE 885ARM/CIRRUS LOGIC CLPS711X ARM ARCHITECTURE
881M: Alexander Shiyan <shc_work@mail.ru> 886M: Alexander Shiyan <shc_work@mail.ru>
@@ -975,7 +980,7 @@ F: arch/arm/include/asm/hardware/dec21285.h
975F: arch/arm/mach-footbridge/ 980F: arch/arm/mach-footbridge/
976 981
977ARM/FREESCALE IMX / MXC ARM ARCHITECTURE 982ARM/FREESCALE IMX / MXC ARM ARCHITECTURE
978M: Shawn Guo <shawn.guo@freescale.com> 983M: Shawn Guo <shawn.guo@linaro.org>
979M: Sascha Hauer <kernel@pengutronix.de> 984M: Sascha Hauer <kernel@pengutronix.de>
980L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 985L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
981S: Maintained 986S: Maintained
@@ -1060,7 +1065,7 @@ S: Maintained
1060 1065
1061ARM/INTEL IXP4XX ARM ARCHITECTURE 1066ARM/INTEL IXP4XX ARM ARCHITECTURE
1062M: Imre Kaloz <kaloz@openwrt.org> 1067M: Imre Kaloz <kaloz@openwrt.org>
1063M: Krzysztof Halasa <khc@pm.waw.pl> 1068M: Krzysztof Halasa <khalasa@piap.pl>
1064L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 1069L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
1065S: Maintained 1070S: Maintained
1066F: arch/arm/mach-ixp4xx/ 1071F: arch/arm/mach-ixp4xx/
@@ -1156,6 +1161,16 @@ W: http://www.digriz.org.uk/ts78xx/kernel
1156S: Maintained 1161S: Maintained
1157F: arch/arm/mach-orion5x/ts78xx-* 1162F: arch/arm/mach-orion5x/ts78xx-*
1158 1163
1164ARM/Mediatek SoC support
1165M: Matthias Brugger <matthias.bgg@gmail.com>
1166L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
1167S: Maintained
1168F: arch/arm/boot/dts/mt6*
1169F: arch/arm/boot/dts/mt8*
1170F: arch/arm/mach-mediatek/
1171N: mtk
1172K: mediatek
1173
1159ARM/MICREL KS8695 ARCHITECTURE 1174ARM/MICREL KS8695 ARCHITECTURE
1160M: Greg Ungerer <gerg@uclinux.org> 1175M: Greg Ungerer <gerg@uclinux.org>
1161L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 1176L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@ -1367,7 +1382,6 @@ F: arch/arm/boot/dts/sh*
1367F: arch/arm/configs/ape6evm_defconfig 1382F: arch/arm/configs/ape6evm_defconfig
1368F: arch/arm/configs/armadillo800eva_defconfig 1383F: arch/arm/configs/armadillo800eva_defconfig
1369F: arch/arm/configs/bockw_defconfig 1384F: arch/arm/configs/bockw_defconfig
1370F: arch/arm/configs/genmai_defconfig
1371F: arch/arm/configs/koelsch_defconfig 1385F: arch/arm/configs/koelsch_defconfig
1372F: arch/arm/configs/kzm9g_defconfig 1386F: arch/arm/configs/kzm9g_defconfig
1373F: arch/arm/configs/lager_defconfig 1387F: arch/arm/configs/lager_defconfig
@@ -2021,6 +2035,7 @@ F: drivers/net/ethernet/broadcom/bnx2x/
2021BROADCOM BCM281XX/BCM11XXX/BCM216XX ARM ARCHITECTURE 2035BROADCOM BCM281XX/BCM11XXX/BCM216XX ARM ARCHITECTURE
2022M: Christian Daudt <bcm@fixthebug.org> 2036M: Christian Daudt <bcm@fixthebug.org>
2023M: Matt Porter <mporter@linaro.org> 2037M: Matt Porter <mporter@linaro.org>
2038M: Florian Fainelli <f.fainelli@gmail.com>
2024L: bcm-kernel-feedback-list@broadcom.com 2039L: bcm-kernel-feedback-list@broadcom.com
2025T: git git://github.com/broadcom/mach-bcm 2040T: git git://github.com/broadcom/mach-bcm
2026S: Maintained 2041S: Maintained
@@ -4796,7 +4811,7 @@ S: Odd fixes
4796F: drivers/dma/iop-adma.c 4811F: drivers/dma/iop-adma.c
4797 4812
4798INTEL IXP4XX QMGR, NPE, ETHERNET and HSS SUPPORT 4813INTEL IXP4XX QMGR, NPE, ETHERNET and HSS SUPPORT
4799M: Krzysztof Halasa <khc@pm.waw.pl> 4814M: Krzysztof Halasa <khalasa@piap.pl>
4800S: Maintained 4815S: Maintained
4801F: arch/arm/mach-ixp4xx/include/mach/qmgr.h 4816F: arch/arm/mach-ixp4xx/include/mach/qmgr.h
4802F: arch/arm/mach-ixp4xx/include/mach/npe.h 4817F: arch/arm/mach-ixp4xx/include/mach/npe.h
@@ -7322,12 +7337,12 @@ F: drivers/video/backlight/pwm_bl.c
7322F: include/linux/pwm_backlight.h 7337F: include/linux/pwm_backlight.h
7323 7338
7324PXA2xx/PXA3xx SUPPORT 7339PXA2xx/PXA3xx SUPPORT
7325M: Eric Miao <eric.y.miao@gmail.com> 7340M: Daniel Mack <daniel@zonque.org>
7326M: Russell King <linux@arm.linux.org.uk>
7327M: Haojian Zhuang <haojian.zhuang@gmail.com> 7341M: Haojian Zhuang <haojian.zhuang@gmail.com>
7342M: Robert Jarzmik <robert.jarzmik@free.fr>
7328L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 7343L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
7329T: git git://github.com/hzhuang1/linux.git 7344T: git git://github.com/hzhuang1/linux.git
7330T: git git://git.linaro.org/people/ycmiao/pxa-linux.git 7345T: git git://github.com/rjarzmik/linux.git
7331S: Maintained 7346S: Maintained
7332F: arch/arm/mach-pxa/ 7347F: arch/arm/mach-pxa/
7333F: drivers/pcmcia/pxa2xx* 7348F: drivers/pcmcia/pxa2xx*
@@ -9044,17 +9059,13 @@ F: drivers/media/rc/ttusbir.c
9044TEGRA ARCHITECTURE SUPPORT 9059TEGRA ARCHITECTURE SUPPORT
9045M: Stephen Warren <swarren@wwwdotorg.org> 9060M: Stephen Warren <swarren@wwwdotorg.org>
9046M: Thierry Reding <thierry.reding@gmail.com> 9061M: Thierry Reding <thierry.reding@gmail.com>
9062M: Alexandre Courbot <gnurou@gmail.com>
9047L: linux-tegra@vger.kernel.org 9063L: linux-tegra@vger.kernel.org
9048Q: http://patchwork.ozlabs.org/project/linux-tegra/list/ 9064Q: http://patchwork.ozlabs.org/project/linux-tegra/list/
9049T: git git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux.git 9065T: git git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux.git
9050S: Supported 9066S: Supported
9051N: [^a-z]tegra 9067N: [^a-z]tegra
9052 9068
9053TEGRA ASOC DRIVER
9054M: Stephen Warren <swarren@wwwdotorg.org>
9055S: Supported
9056F: sound/soc/tegra/
9057
9058TEGRA CLOCK DRIVER 9069TEGRA CLOCK DRIVER
9059M: Peter De Schrijver <pdeschrijver@nvidia.com> 9070M: Peter De Schrijver <pdeschrijver@nvidia.com>
9060M: Prashant Gaikwad <pgaikwad@nvidia.com> 9071M: Prashant Gaikwad <pgaikwad@nvidia.com>
@@ -9066,11 +9077,6 @@ M: Laxman Dewangan <ldewangan@nvidia.com>
9066S: Supported 9077S: Supported
9067F: drivers/dma/tegra20-apb-dma.c 9078F: drivers/dma/tegra20-apb-dma.c
9068 9079
9069TEGRA GPIO DRIVER
9070M: Stephen Warren <swarren@wwwdotorg.org>
9071S: Supported
9072F: drivers/gpio/gpio-tegra.c
9073
9074TEGRA I2C DRIVER 9080TEGRA I2C DRIVER
9075M: Laxman Dewangan <ldewangan@nvidia.com> 9081M: Laxman Dewangan <ldewangan@nvidia.com>
9076S: Supported 9082S: Supported
@@ -9087,11 +9093,6 @@ M: Laxman Dewangan <ldewangan@nvidia.com>
9087S: Supported 9093S: Supported
9088F: drivers/input/keyboard/tegra-kbc.c 9094F: drivers/input/keyboard/tegra-kbc.c
9089 9095
9090TEGRA PINCTRL DRIVER
9091M: Stephen Warren <swarren@wwwdotorg.org>
9092S: Supported
9093F: drivers/pinctrl/pinctrl-tegra*
9094
9095TEGRA PWM DRIVER 9096TEGRA PWM DRIVER
9096M: Thierry Reding <thierry.reding@gmail.com> 9097M: Thierry Reding <thierry.reding@gmail.com>
9097S: Supported 9098S: Supported
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
index b11ad54f8d17..6a5b4968b46e 100644
--- a/arch/arm/Kconfig.debug
+++ b/arch/arm/Kconfig.debug
@@ -147,7 +147,7 @@ choice
147 config DEBUG_CNS3XXX 147 config DEBUG_CNS3XXX
148 bool "Kernel Kernel low-level debugging on Cavium Networks CNS3xxx" 148 bool "Kernel Kernel low-level debugging on Cavium Networks CNS3xxx"
149 depends on ARCH_CNS3XXX 149 depends on ARCH_CNS3XXX
150 select DEBUG_UART_PL01X 150 select DEBUG_UART_8250
151 help 151 help
152 Say Y here if you want the debug print routines to direct 152 Say Y here if you want the debug print routines to direct
153 their output to the CNS3xxx UART0. 153 their output to the CNS3xxx UART0.
@@ -1068,7 +1068,7 @@ config DEBUG_UART_PHYS
1068 default 0x02530c00 if DEBUG_KEYSTONE_UART0 1068 default 0x02530c00 if DEBUG_KEYSTONE_UART0
1069 default 0x02531000 if DEBUG_KEYSTONE_UART1 1069 default 0x02531000 if DEBUG_KEYSTONE_UART1
1070 default 0x03010fe0 if ARCH_RPC 1070 default 0x03010fe0 if ARCH_RPC
1071 default 0x10009000 if DEBUG_REALVIEW_STD_PORT || DEBUG_CNS3XXX || \ 1071 default 0x10009000 if DEBUG_REALVIEW_STD_PORT || \
1072 DEBUG_VEXPRESS_UART0_CA9 1072 DEBUG_VEXPRESS_UART0_CA9
1073 default 0x1010c000 if DEBUG_REALVIEW_PB1176_PORT 1073 default 0x1010c000 if DEBUG_REALVIEW_PB1176_PORT
1074 default 0x10124000 if DEBUG_RK3X_UART0 1074 default 0x10124000 if DEBUG_RK3X_UART0
@@ -1094,6 +1094,7 @@ config DEBUG_UART_PHYS
1094 default 0x50008000 if DEBUG_S3C24XX_UART && (DEBUG_S3C_UART2 || \ 1094 default 0x50008000 if DEBUG_S3C24XX_UART && (DEBUG_S3C_UART2 || \
1095 DEBUG_S3C2410_UART2) 1095 DEBUG_S3C2410_UART2)
1096 default 0x7c0003f8 if FOOTBRIDGE 1096 default 0x7c0003f8 if FOOTBRIDGE
1097 default 0x78000000 if DEBUG_CNS3XXX
1097 default 0x80070000 if DEBUG_IMX23_UART 1098 default 0x80070000 if DEBUG_IMX23_UART
1098 default 0x80074000 if DEBUG_IMX28_UART 1099 default 0x80074000 if DEBUG_IMX28_UART
1099 default 0x80230000 if DEBUG_PICOXCELL_UART 1100 default 0x80230000 if DEBUG_PICOXCELL_UART
@@ -1133,7 +1134,6 @@ config DEBUG_UART_VIRT
1133 default 0xe0010fe0 if ARCH_RPC 1134 default 0xe0010fe0 if ARCH_RPC
1134 default 0xe1000000 if DEBUG_MSM_UART 1135 default 0xe1000000 if DEBUG_MSM_UART
1135 default 0xf0000be0 if ARCH_EBSA110 1136 default 0xf0000be0 if ARCH_EBSA110
1136 default 0xf0009000 if DEBUG_CNS3XXX
1137 default 0xf01fb000 if DEBUG_NOMADIK_UART 1137 default 0xf01fb000 if DEBUG_NOMADIK_UART
1138 default 0xf0201000 if DEBUG_BCM2835 1138 default 0xf0201000 if DEBUG_BCM2835
1139 default 0xf1000300 if DEBUG_BCM_5301X 1139 default 0xf1000300 if DEBUG_BCM_5301X
@@ -1155,6 +1155,7 @@ config DEBUG_UART_VIRT
1155 default 0xf8009000 if DEBUG_VEXPRESS_UART0_CA9 1155 default 0xf8009000 if DEBUG_VEXPRESS_UART0_CA9
1156 default 0xf8090000 if DEBUG_VEXPRESS_UART0_RS1 1156 default 0xf8090000 if DEBUG_VEXPRESS_UART0_RS1
1157 default 0xfa71e000 if DEBUG_QCOM_UARTDM 1157 default 0xfa71e000 if DEBUG_QCOM_UARTDM
1158 default 0xfb002000 if DEBUG_CNS3XXX
1158 default 0xfb009000 if DEBUG_REALVIEW_STD_PORT 1159 default 0xfb009000 if DEBUG_REALVIEW_STD_PORT
1159 default 0xfb10c000 if DEBUG_REALVIEW_PB1176_PORT 1160 default 0xfb10c000 if DEBUG_REALVIEW_PB1176_PORT
1160 default 0xfd000000 if ARCH_SPEAR3XX || ARCH_SPEAR6XX 1161 default 0xfd000000 if ARCH_SPEAR3XX || ARCH_SPEAR6XX
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index b8c5cd3ddeb9..e6aa6e77a3ec 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -144,8 +144,8 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += kirkwood-b3.dtb \
144 kirkwood-openrd-client.dtb \ 144 kirkwood-openrd-client.dtb \
145 kirkwood-openrd-ultimate.dtb \ 145 kirkwood-openrd-ultimate.dtb \
146 kirkwood-rd88f6192.dtb \ 146 kirkwood-rd88f6192.dtb \
147 kirkwood-rd88f6281-a0.dtb \ 147 kirkwood-rd88f6281-z0.dtb \
148 kirkwood-rd88f6281-a1.dtb \ 148 kirkwood-rd88f6281-a.dtb \
149 kirkwood-rs212.dtb \ 149 kirkwood-rs212.dtb \
150 kirkwood-rs409.dtb \ 150 kirkwood-rs409.dtb \
151 kirkwood-rs411.dtb \ 151 kirkwood-rs411.dtb \
diff --git a/arch/arm/boot/dts/am335x-bone-common.dtsi b/arch/arm/boot/dts/am335x-bone-common.dtsi
index bde1777b62be..d9d98697cca9 100644
--- a/arch/arm/boot/dts/am335x-bone-common.dtsi
+++ b/arch/arm/boot/dts/am335x-bone-common.dtsi
@@ -7,9 +7,6 @@
7 */ 7 */
8 8
9/ { 9/ {
10 model = "TI AM335x BeagleBone";
11 compatible = "ti,am335x-bone", "ti,am33xx";
12
13 cpus { 10 cpus {
14 cpu@0 { 11 cpu@0 {
15 cpu0-supply = <&dcdc2_reg>; 12 cpu0-supply = <&dcdc2_reg>;
diff --git a/arch/arm/boot/dts/am335x-bone.dts b/arch/arm/boot/dts/am335x-bone.dts
index 94ee427a6db1..83d40f7655e5 100644
--- a/arch/arm/boot/dts/am335x-bone.dts
+++ b/arch/arm/boot/dts/am335x-bone.dts
@@ -10,6 +10,11 @@
10#include "am33xx.dtsi" 10#include "am33xx.dtsi"
11#include "am335x-bone-common.dtsi" 11#include "am335x-bone-common.dtsi"
12 12
13/ {
14 model = "TI AM335x BeagleBone";
15 compatible = "ti,am335x-bone", "ti,am33xx";
16};
17
13&ldo3_reg { 18&ldo3_reg {
14 regulator-min-microvolt = <1800000>; 19 regulator-min-microvolt = <1800000>;
15 regulator-max-microvolt = <3300000>; 20 regulator-max-microvolt = <3300000>;
diff --git a/arch/arm/boot/dts/am335x-boneblack.dts b/arch/arm/boot/dts/am335x-boneblack.dts
index 305975d3f531..901739fcb85a 100644
--- a/arch/arm/boot/dts/am335x-boneblack.dts
+++ b/arch/arm/boot/dts/am335x-boneblack.dts
@@ -10,6 +10,11 @@
10#include "am33xx.dtsi" 10#include "am33xx.dtsi"
11#include "am335x-bone-common.dtsi" 11#include "am335x-bone-common.dtsi"
12 12
13/ {
14 model = "TI AM335x BeagleBone Black";
15 compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx";
16};
17
13&ldo3_reg { 18&ldo3_reg {
14 regulator-min-microvolt = <1800000>; 19 regulator-min-microvolt = <1800000>;
15 regulator-max-microvolt = <1800000>; 20 regulator-max-microvolt = <1800000>;
diff --git a/arch/arm/boot/dts/armada-370-netgear-rn102.dts b/arch/arm/boot/dts/armada-370-netgear-rn102.dts
index d6d572e5af32..285524fb915e 100644
--- a/arch/arm/boot/dts/armada-370-netgear-rn102.dts
+++ b/arch/arm/boot/dts/armada-370-netgear-rn102.dts
@@ -143,6 +143,10 @@
143 marvell,nand-enable-arbiter; 143 marvell,nand-enable-arbiter;
144 nand-on-flash-bbt; 144 nand-on-flash-bbt;
145 145
146 /* Use Hardware BCH ECC */
147 nand-ecc-strength = <4>;
148 nand-ecc-step-size = <512>;
149
146 partition@0 { 150 partition@0 {
147 label = "u-boot"; 151 label = "u-boot";
148 reg = <0x0000000 0x180000>; /* 1.5MB */ 152 reg = <0x0000000 0x180000>; /* 1.5MB */
diff --git a/arch/arm/boot/dts/armada-370-netgear-rn104.dts b/arch/arm/boot/dts/armada-370-netgear-rn104.dts
index c5fe8b5dcdc7..4ec1ce561d34 100644
--- a/arch/arm/boot/dts/armada-370-netgear-rn104.dts
+++ b/arch/arm/boot/dts/armada-370-netgear-rn104.dts
@@ -145,6 +145,10 @@
145 marvell,nand-enable-arbiter; 145 marvell,nand-enable-arbiter;
146 nand-on-flash-bbt; 146 nand-on-flash-bbt;
147 147
148 /* Use Hardware BCH ECC */
149 nand-ecc-strength = <4>;
150 nand-ecc-step-size = <512>;
151
148 partition@0 { 152 partition@0 {
149 label = "u-boot"; 153 label = "u-boot";
150 reg = <0x0000000 0x180000>; /* 1.5MB */ 154 reg = <0x0000000 0x180000>; /* 1.5MB */
diff --git a/arch/arm/boot/dts/armada-xp-netgear-rn2120.dts b/arch/arm/boot/dts/armada-xp-netgear-rn2120.dts
index 0cf999abc4ed..c5ed85a70ed9 100644
--- a/arch/arm/boot/dts/armada-xp-netgear-rn2120.dts
+++ b/arch/arm/boot/dts/armada-xp-netgear-rn2120.dts
@@ -223,6 +223,10 @@
223 marvell,nand-enable-arbiter; 223 marvell,nand-enable-arbiter;
224 nand-on-flash-bbt; 224 nand-on-flash-bbt;
225 225
226 /* Use Hardware BCH ECC */
227 nand-ecc-strength = <4>;
228 nand-ecc-step-size = <512>;
229
226 partition@0 { 230 partition@0 {
227 label = "u-boot"; 231 label = "u-boot";
228 reg = <0x0000000 0x180000>; /* 1.5MB */ 232 reg = <0x0000000 0x180000>; /* 1.5MB */
diff --git a/arch/arm/boot/dts/at91sam9263.dtsi b/arch/arm/boot/dts/at91sam9263.dtsi
index bb23c2d33cf8..5e95a8053445 100644
--- a/arch/arm/boot/dts/at91sam9263.dtsi
+++ b/arch/arm/boot/dts/at91sam9263.dtsi
@@ -834,6 +834,7 @@
834 compatible = "atmel,hsmci"; 834 compatible = "atmel,hsmci";
835 reg = <0xfff80000 0x600>; 835 reg = <0xfff80000 0x600>;
836 interrupts = <10 IRQ_TYPE_LEVEL_HIGH 0>; 836 interrupts = <10 IRQ_TYPE_LEVEL_HIGH 0>;
837 pinctrl-names = "default";
837 #address-cells = <1>; 838 #address-cells = <1>;
838 #size-cells = <0>; 839 #size-cells = <0>;
839 clocks = <&mci0_clk>; 840 clocks = <&mci0_clk>;
@@ -845,6 +846,7 @@
845 compatible = "atmel,hsmci"; 846 compatible = "atmel,hsmci";
846 reg = <0xfff84000 0x600>; 847 reg = <0xfff84000 0x600>;
847 interrupts = <11 IRQ_TYPE_LEVEL_HIGH 0>; 848 interrupts = <11 IRQ_TYPE_LEVEL_HIGH 0>;
849 pinctrl-names = "default";
848 #address-cells = <1>; 850 #address-cells = <1>;
849 #size-cells = <0>; 851 #size-cells = <0>;
850 clocks = <&mci1_clk>; 852 clocks = <&mci1_clk>;
diff --git a/arch/arm/boot/dts/kirkwood-mv88f6281gtw-ge.dts b/arch/arm/boot/dts/kirkwood-mv88f6281gtw-ge.dts
index 8f76d28759a3..f82827d6fcff 100644
--- a/arch/arm/boot/dts/kirkwood-mv88f6281gtw-ge.dts
+++ b/arch/arm/boot/dts/kirkwood-mv88f6281gtw-ge.dts
@@ -123,11 +123,11 @@
123 123
124 dsa@0 { 124 dsa@0 {
125 compatible = "marvell,dsa"; 125 compatible = "marvell,dsa";
126 #address-cells = <2>; 126 #address-cells = <1>;
127 #size-cells = <0>; 127 #size-cells = <0>;
128 128
129 dsa,ethernet = <&eth0>; 129 dsa,ethernet = <&eth0port>;
130 dsa,mii-bus = <&ethphy0>; 130 dsa,mii-bus = <&mdio>;
131 131
132 switch@0 { 132 switch@0 {
133 #address-cells = <1>; 133 #address-cells = <1>;
@@ -169,17 +169,13 @@
169 169
170&mdio { 170&mdio {
171 status = "okay"; 171 status = "okay";
172
173 ethphy0: ethernet-phy@ff {
174 reg = <0xff>; /* No phy attached */
175 speed = <1000>;
176 duplex = <1>;
177 };
178}; 172};
179 173
180&eth0 { 174&eth0 {
181 status = "okay"; 175 status = "okay";
176
182 ethernet0-port@0 { 177 ethernet0-port@0 {
183 phy-handle = <&ethphy0>; 178 speed = <1000>;
179 duplex = <1>;
184 }; 180 };
185}; 181};
diff --git a/arch/arm/boot/dts/kirkwood-rd88f6281-a.dts b/arch/arm/boot/dts/kirkwood-rd88f6281-a.dts
new file mode 100644
index 000000000000..f2e08b3b33ea
--- /dev/null
+++ b/arch/arm/boot/dts/kirkwood-rd88f6281-a.dts
@@ -0,0 +1,43 @@
1/*
2 * Marvell RD88F6181 A Board descrition
3 *
4 * Andrew Lunn <andrew@lunn.ch>
5 *
6 * This file is licensed under the terms of the GNU General Public
7 * License version 2. This program is licensed "as is" without any
8 * warranty of any kind, whether express or implied.
9 *
10 * This file contains the definitions for the board with the A0 or
11 * higher stepping of the SoC. The ethernet switch does not have a
12 * "wan" port.
13 */
14
15/dts-v1/;
16#include "kirkwood-rd88f6281.dtsi"
17
18/ {
19 model = "Marvell RD88f6281 Reference design, with A0 or higher SoC";
20 compatible = "marvell,rd88f6281-a", "marvell,rd88f6281","marvell,kirkwood-88f6281", "marvell,kirkwood";
21
22 dsa@0 {
23 switch@0 {
24 reg = <10 0>; /* MDIO address 10, switch 0 in tree */
25 };
26 };
27};
28
29&mdio {
30 status = "okay";
31
32 ethphy1: ethernet-phy@11 {
33 reg = <11>;
34 };
35};
36
37&eth1 {
38 status = "okay";
39
40 ethernet1-port@0 {
41 phy-handle = <&ethphy1>;
42 };
43};
diff --git a/arch/arm/boot/dts/kirkwood-rd88f6281-a0.dts b/arch/arm/boot/dts/kirkwood-rd88f6281-a0.dts
deleted file mode 100644
index a803bbb70bc8..000000000000
--- a/arch/arm/boot/dts/kirkwood-rd88f6281-a0.dts
+++ /dev/null
@@ -1,26 +0,0 @@
1/*
2 * Marvell RD88F6181 A0 Board descrition
3 *
4 * Andrew Lunn <andrew@lunn.ch>
5 *
6 * This file is licensed under the terms of the GNU General Public
7 * License version 2. This program is licensed "as is" without any
8 * warranty of any kind, whether express or implied.
9 *
10 * This file contains the definitions for the board with the A0 variant of
11 * the SoC. The ethernet switch does not have a "wan" port.
12 */
13
14/dts-v1/;
15#include "kirkwood-rd88f6281.dtsi"
16
17/ {
18 model = "Marvell RD88f6281 Reference design, with A0 SoC";
19 compatible = "marvell,rd88f6281-a0", "marvell,rd88f6281","marvell,kirkwood-88f6281", "marvell,kirkwood";
20
21 dsa@0 {
22 switch@0 {
23 reg = <10 0>; /* MDIO address 10, switch 0 in tree */
24 };
25 };
26}; \ No newline at end of file
diff --git a/arch/arm/boot/dts/kirkwood-rd88f6281-a1.dts b/arch/arm/boot/dts/kirkwood-rd88f6281-z0.dts
index baeebbf1d8c7..f4272b64ed7f 100644
--- a/arch/arm/boot/dts/kirkwood-rd88f6281-a1.dts
+++ b/arch/arm/boot/dts/kirkwood-rd88f6281-z0.dts
@@ -1,5 +1,5 @@
1/* 1/*
2 * Marvell RD88F6181 A1 Board descrition 2 * Marvell RD88F6181 Z0 stepping descrition
3 * 3 *
4 * Andrew Lunn <andrew@lunn.ch> 4 * Andrew Lunn <andrew@lunn.ch>
5 * 5 *
@@ -7,17 +7,17 @@
7 * License version 2. This program is licensed "as is" without any 7 * License version 2. This program is licensed "as is" without any
8 * warranty of any kind, whether express or implied. 8 * warranty of any kind, whether express or implied.
9 * 9 *
10 * This file contains the definitions for the board with the A1 variant of 10 * This file contains the definitions for the board using the Z0
11 * the SoC. The ethernet switch has a "wan" port. 11 * stepping of the SoC. The ethernet switch has a "wan" port.
12 */ 12*/
13 13
14/dts-v1/; 14/dts-v1/;
15 15
16#include "kirkwood-rd88f6281.dtsi" 16#include "kirkwood-rd88f6281.dtsi"
17 17
18/ { 18/ {
19 model = "Marvell RD88f6281 Reference design, with A1 SoC"; 19 model = "Marvell RD88f6281 Reference design, with Z0 SoC";
20 compatible = "marvell,rd88f6281-a1", "marvell,rd88f6281","marvell,kirkwood-88f6281", "marvell,kirkwood"; 20 compatible = "marvell,rd88f6281-z0", "marvell,rd88f6281","marvell,kirkwood-88f6281", "marvell,kirkwood";
21 21
22 dsa@0 { 22 dsa@0 {
23 switch@0 { 23 switch@0 {
@@ -28,4 +28,8 @@
28 }; 28 };
29 }; 29 };
30 }; 30 };
31}; \ No newline at end of file 31};
32
33&eth1 {
34 status = "disabled";
35};
diff --git a/arch/arm/boot/dts/kirkwood-rd88f6281.dtsi b/arch/arm/boot/dts/kirkwood-rd88f6281.dtsi
index 26cf0e0ccefd..d195e884b3b5 100644
--- a/arch/arm/boot/dts/kirkwood-rd88f6281.dtsi
+++ b/arch/arm/boot/dts/kirkwood-rd88f6281.dtsi
@@ -37,7 +37,6 @@
37 37
38 ocp@f1000000 { 38 ocp@f1000000 {
39 pinctrl: pin-controller@10000 { 39 pinctrl: pin-controller@10000 {
40 pinctrl-0 = <&pmx_sdio_cd>;
41 pinctrl-names = "default"; 40 pinctrl-names = "default";
42 41
43 pmx_sdio_cd: pmx-sdio-cd { 42 pmx_sdio_cd: pmx-sdio-cd {
@@ -69,8 +68,8 @@
69 #address-cells = <2>; 68 #address-cells = <2>;
70 #size-cells = <0>; 69 #size-cells = <0>;
71 70
72 dsa,ethernet = <&eth0>; 71 dsa,ethernet = <&eth0port>;
73 dsa,mii-bus = <&ethphy1>; 72 dsa,mii-bus = <&mdio>;
74 73
75 switch@0 { 74 switch@0 {
76 #address-cells = <1>; 75 #address-cells = <1>;
@@ -119,35 +118,19 @@
119 }; 118 };
120 119
121 partition@300000 { 120 partition@300000 {
122 label = "data"; 121 label = "rootfs";
123 reg = <0x0300000 0x500000>; 122 reg = <0x0300000 0x500000>;
124 }; 123 };
125}; 124};
126 125
127&mdio { 126&mdio {
128 status = "okay"; 127 status = "okay";
129
130 ethphy0: ethernet-phy@0 {
131 reg = <0>;
132 };
133
134 ethphy1: ethernet-phy@ff {
135 reg = <0xff>; /* No PHY attached */
136 speed = <1000>;
137 duple = <1>;
138 };
139}; 128};
140 129
141&eth0 { 130&eth0 {
142 status = "okay"; 131 status = "okay";
143 ethernet0-port@0 { 132 ethernet0-port@0 {
144 phy-handle = <&ethphy0>; 133 speed = <1000>;
145 }; 134 duplex = <1>;
146};
147
148&eth1 {
149 status = "okay";
150 ethernet1-port@0 {
151 phy-handle = <&ethphy1>;
152 }; 135 };
153}; 136};
diff --git a/arch/arm/boot/dts/kirkwood.dtsi b/arch/arm/boot/dts/kirkwood.dtsi
index afc640cd80c5..464f09a1a4a5 100644
--- a/arch/arm/boot/dts/kirkwood.dtsi
+++ b/arch/arm/boot/dts/kirkwood.dtsi
@@ -309,7 +309,7 @@
309 marvell,tx-checksum-limit = <1600>; 309 marvell,tx-checksum-limit = <1600>;
310 status = "disabled"; 310 status = "disabled";
311 311
312 ethernet0-port@0 { 312 eth0port: ethernet0-port@0 {
313 compatible = "marvell,kirkwood-eth-port"; 313 compatible = "marvell,kirkwood-eth-port";
314 reg = <0>; 314 reg = <0>;
315 interrupts = <11>; 315 interrupts = <11>;
@@ -342,7 +342,7 @@
342 pinctrl-names = "default"; 342 pinctrl-names = "default";
343 status = "disabled"; 343 status = "disabled";
344 344
345 ethernet1-port@0 { 345 eth1port: ethernet1-port@0 {
346 compatible = "marvell,kirkwood-eth-port"; 346 compatible = "marvell,kirkwood-eth-port";
347 reg = <0>; 347 reg = <0>;
348 interrupts = <15>; 348 interrupts = <15>;
diff --git a/arch/arm/boot/dts/omap4-panda-common.dtsi b/arch/arm/boot/dts/omap4-panda-common.dtsi
index 8cfa3c8a72b0..150513506c19 100644
--- a/arch/arm/boot/dts/omap4-panda-common.dtsi
+++ b/arch/arm/boot/dts/omap4-panda-common.dtsi
@@ -8,9 +8,6 @@
8#include "elpida_ecb240abacn.dtsi" 8#include "elpida_ecb240abacn.dtsi"
9 9
10/ { 10/ {
11 model = "TI OMAP4 PandaBoard";
12 compatible = "ti,omap4-panda", "ti,omap4430", "ti,omap4";
13
14 memory { 11 memory {
15 device_type = "memory"; 12 device_type = "memory";
16 reg = <0x80000000 0x40000000>; /* 1 GB */ 13 reg = <0x80000000 0x40000000>; /* 1 GB */
diff --git a/arch/arm/boot/dts/omap4-panda-es.dts b/arch/arm/boot/dts/omap4-panda-es.dts
index 816d1c95b592..2f1dabcc6adf 100644
--- a/arch/arm/boot/dts/omap4-panda-es.dts
+++ b/arch/arm/boot/dts/omap4-panda-es.dts
@@ -10,6 +10,11 @@
10#include "omap4460.dtsi" 10#include "omap4460.dtsi"
11#include "omap4-panda-common.dtsi" 11#include "omap4-panda-common.dtsi"
12 12
13/ {
14 model = "TI OMAP4 PandaBoard-ES";
15 compatible = "ti,omap4-panda-es", "ti,omap4-panda", "ti,omap4460", "ti,omap4430", "ti,omap4";
16};
17
13/* Audio routing is differnet between PandaBoard4430 and PandaBoardES */ 18/* Audio routing is differnet between PandaBoard4430 and PandaBoardES */
14&sound { 19&sound {
15 ti,model = "PandaBoardES"; 20 ti,model = "PandaBoardES";
diff --git a/arch/arm/boot/dts/omap4-panda.dts b/arch/arm/boot/dts/omap4-panda.dts
index 6189a8b77d7f..a0e28b2e254e 100644
--- a/arch/arm/boot/dts/omap4-panda.dts
+++ b/arch/arm/boot/dts/omap4-panda.dts
@@ -9,3 +9,8 @@
9 9
10#include "omap443x.dtsi" 10#include "omap443x.dtsi"
11#include "omap4-panda-common.dtsi" 11#include "omap4-panda-common.dtsi"
12
13/ {
14 model = "TI OMAP4 PandaBoard";
15 compatible = "ti,omap4-panda", "ti,omap4430", "ti,omap4";
16};
diff --git a/arch/arm/mach-at91/clock.c b/arch/arm/mach-at91/clock.c
index 034529d801b2..d66f102c352a 100644
--- a/arch/arm/mach-at91/clock.c
+++ b/arch/arm/mach-at91/clock.c
@@ -962,6 +962,7 @@ static int __init at91_clock_reset(void)
962 } 962 }
963 963
964 at91_pmc_write(AT91_PMC_SCDR, scdr); 964 at91_pmc_write(AT91_PMC_SCDR, scdr);
965 at91_pmc_write(AT91_PMC_PCDR, pcdr);
965 if (cpu_is_sama5d3()) 966 if (cpu_is_sama5d3())
966 at91_pmc_write(AT91_PMC_PCDR1, pcdr1); 967 at91_pmc_write(AT91_PMC_PCDR1, pcdr1);
967 968
diff --git a/arch/arm/mach-cns3xxx/cns3420vb.c b/arch/arm/mach-cns3xxx/cns3420vb.c
index d863d8729edc..6428bcc77e87 100644
--- a/arch/arm/mach-cns3xxx/cns3420vb.c
+++ b/arch/arm/mach-cns3xxx/cns3420vb.c
@@ -250,5 +250,6 @@ MACHINE_START(CNS3420VB, "Cavium Networks CNS3420 Validation Board")
250 .init_irq = cns3xxx_init_irq, 250 .init_irq = cns3xxx_init_irq,
251 .init_time = cns3xxx_timer_init, 251 .init_time = cns3xxx_timer_init,
252 .init_machine = cns3420_init, 252 .init_machine = cns3420_init,
253 .init_late = cns3xxx_pcie_init_late,
253 .restart = cns3xxx_restart, 254 .restart = cns3xxx_restart,
254MACHINE_END 255MACHINE_END
diff --git a/arch/arm/mach-cns3xxx/core.c b/arch/arm/mach-cns3xxx/core.c
index f85449a6accd..4e9837ded96d 100644
--- a/arch/arm/mach-cns3xxx/core.c
+++ b/arch/arm/mach-cns3xxx/core.c
@@ -404,5 +404,6 @@ DT_MACHINE_START(CNS3XXX_DT, "Cavium Networks CNS3xxx")
404 .init_irq = cns3xxx_init_irq, 404 .init_irq = cns3xxx_init_irq,
405 .init_time = cns3xxx_timer_init, 405 .init_time = cns3xxx_timer_init,
406 .init_machine = cns3xxx_init, 406 .init_machine = cns3xxx_init,
407 .init_late = cns3xxx_pcie_init_late,
407 .restart = cns3xxx_restart, 408 .restart = cns3xxx_restart,
408MACHINE_END 409MACHINE_END
diff --git a/arch/arm/mach-cns3xxx/core.h b/arch/arm/mach-cns3xxx/core.h
index 5218b6198dc2..dc5df7f1e39f 100644
--- a/arch/arm/mach-cns3xxx/core.h
+++ b/arch/arm/mach-cns3xxx/core.h
@@ -21,6 +21,12 @@ void __init cns3xxx_l2x0_init(void);
21static inline void cns3xxx_l2x0_init(void) {} 21static inline void cns3xxx_l2x0_init(void) {}
22#endif /* CONFIG_CACHE_L2X0 */ 22#endif /* CONFIG_CACHE_L2X0 */
23 23
24#ifdef CONFIG_PCI
25extern void __init cns3xxx_pcie_init_late(void);
26#else
27static inline void __init cns3xxx_pcie_init_late(void) {}
28#endif
29
24void __init cns3xxx_map_io(void); 30void __init cns3xxx_map_io(void);
25void __init cns3xxx_init_irq(void); 31void __init cns3xxx_init_irq(void);
26void cns3xxx_power_off(void); 32void cns3xxx_power_off(void);
diff --git a/arch/arm/mach-cns3xxx/pcie.c b/arch/arm/mach-cns3xxx/pcie.c
index 413134c54452..45d6bd09e6ef 100644
--- a/arch/arm/mach-cns3xxx/pcie.c
+++ b/arch/arm/mach-cns3xxx/pcie.c
@@ -60,11 +60,10 @@ static void __iomem *cns3xxx_pci_cfg_base(struct pci_bus *bus,
60 struct cns3xxx_pcie *cnspci = pbus_to_cnspci(bus); 60 struct cns3xxx_pcie *cnspci = pbus_to_cnspci(bus);
61 int busno = bus->number; 61 int busno = bus->number;
62 int slot = PCI_SLOT(devfn); 62 int slot = PCI_SLOT(devfn);
63 int offset;
64 void __iomem *base; 63 void __iomem *base;
65 64
66 /* If there is no link, just show the CNS PCI bridge. */ 65 /* If there is no link, just show the CNS PCI bridge. */
67 if (!cnspci->linked && (busno > 0 || slot > 0)) 66 if (!cnspci->linked && busno > 0)
68 return NULL; 67 return NULL;
69 68
70 /* 69 /*
@@ -72,22 +71,21 @@ static void __iomem *cns3xxx_pci_cfg_base(struct pci_bus *bus,
72 * we still want to access it. For this to work, we must place 71 * we still want to access it. For this to work, we must place
73 * the first device on the same bus as the CNS PCI bridge. 72 * the first device on the same bus as the CNS PCI bridge.
74 */ 73 */
75 if (busno == 0) { /* directly connected PCIe bus */ 74 if (busno == 0) { /* internal PCIe bus, host bridge device */
76 switch (slot) { 75 if (devfn == 0) /* device# and function# are ignored by hw */
77 case 0: /* host bridge device, function 0 only */
78 base = cnspci->host_regs; 76 base = cnspci->host_regs;
79 break; 77 else
80 case 1: /* directly connected device */ 78 return NULL; /* no such device */
79
80 } else if (busno == 1) { /* directly connected PCIe device */
81 if (slot == 0) /* device# is ignored by hw */
81 base = cnspci->cfg0_regs; 82 base = cnspci->cfg0_regs;
82 break; 83 else
83 default:
84 return NULL; /* no such device */ 84 return NULL; /* no such device */
85 }
86 } else /* remote PCI bus */ 85 } else /* remote PCI bus */
87 base = cnspci->cfg1_regs; 86 base = cnspci->cfg1_regs + ((busno & 0xf) << 20);
88 87
89 offset = ((busno & 0xf) << 20) | (devfn << 12) | (where & 0xffc); 88 return base + (where & 0xffc) + (devfn << 12);
90 return base + offset;
91} 89}
92 90
93static int cns3xxx_pci_read_config(struct pci_bus *bus, unsigned int devfn, 91static int cns3xxx_pci_read_config(struct pci_bus *bus, unsigned int devfn,
@@ -167,7 +165,7 @@ static struct pci_ops cns3xxx_pcie_ops = {
167static int cns3xxx_pcie_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) 165static int cns3xxx_pcie_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
168{ 166{
169 struct cns3xxx_pcie *cnspci = pdev_to_cnspci(dev); 167 struct cns3xxx_pcie *cnspci = pdev_to_cnspci(dev);
170 int irq = cnspci->irqs[slot]; 168 int irq = cnspci->irqs[!!dev->bus->number];
171 169
172 pr_info("PCIe map irq: %04d:%02x:%02x.%02x slot %d, pin %d, irq: %d\n", 170 pr_info("PCIe map irq: %04d:%02x:%02x.%02x slot %d, pin %d, irq: %d\n",
173 pci_domain_nr(dev->bus), dev->bus->number, PCI_SLOT(dev->devfn), 171 pci_domain_nr(dev->bus), dev->bus->number, PCI_SLOT(dev->devfn),
@@ -297,15 +295,19 @@ static void __init cns3xxx_pcie_hw_init(struct cns3xxx_pcie *cnspci)
297 return; 295 return;
298 296
299 /* Set Device Max_Read_Request_Size to 128 byte */ 297 /* Set Device Max_Read_Request_Size to 128 byte */
300 devfn = PCI_DEVFN(1, 0); 298 bus.number = 1; /* directly connected PCIe device */
299 devfn = PCI_DEVFN(0, 0);
301 pos = pci_bus_find_capability(&bus, devfn, PCI_CAP_ID_EXP); 300 pos = pci_bus_find_capability(&bus, devfn, PCI_CAP_ID_EXP);
302 pci_bus_read_config_word(&bus, devfn, pos + PCI_EXP_DEVCTL, &dc); 301 pci_bus_read_config_word(&bus, devfn, pos + PCI_EXP_DEVCTL, &dc);
303 dc &= ~(0x3 << 12); /* Clear Device Control Register [14:12] */ 302 if (dc & PCI_EXP_DEVCTL_READRQ) {
304 pci_bus_write_config_word(&bus, devfn, pos + PCI_EXP_DEVCTL, dc); 303 dc &= ~PCI_EXP_DEVCTL_READRQ;
305 pci_bus_read_config_word(&bus, devfn, pos + PCI_EXP_DEVCTL, &dc); 304 pci_bus_write_config_word(&bus, devfn, pos + PCI_EXP_DEVCTL, dc);
306 if (!(dc & (0x3 << 12))) 305 pci_bus_read_config_word(&bus, devfn, pos + PCI_EXP_DEVCTL, &dc);
307 pr_info("PCIe: Set Device Max_Read_Request_Size to 128 byte\n"); 306 if (dc & PCI_EXP_DEVCTL_READRQ)
308 307 pr_warn("PCIe: Unable to set device Max_Read_Request_Size\n");
308 else
309 pr_info("PCIe: Max_Read_Request_Size set to 128 bytes\n");
310 }
309 /* Disable PCIe0 Interrupt Mask INTA to INTD */ 311 /* Disable PCIe0 Interrupt Mask INTA to INTD */
310 __raw_writel(~0x3FFF, MISC_PCIE_INT_MASK(port)); 312 __raw_writel(~0x3FFF, MISC_PCIE_INT_MASK(port));
311} 313}
@@ -318,7 +320,7 @@ static int cns3xxx_pcie_abort_handler(unsigned long addr, unsigned int fsr,
318 return 0; 320 return 0;
319} 321}
320 322
321static int __init cns3xxx_pcie_init(void) 323void __init cns3xxx_pcie_init_late(void)
322{ 324{
323 int i; 325 int i;
324 326
@@ -337,7 +339,4 @@ static int __init cns3xxx_pcie_init(void)
337 } 339 }
338 340
339 pci_assign_unassigned_resources(); 341 pci_assign_unassigned_resources();
340
341 return 0;
342} 342}
343device_initcall(cns3xxx_pcie_init);
diff --git a/arch/arm/mach-davinci/board-da850-evm.c b/arch/arm/mach-davinci/board-da850-evm.c
index 234c5bb091f5..fa11415e906a 100644
--- a/arch/arm/mach-davinci/board-da850-evm.c
+++ b/arch/arm/mach-davinci/board-da850-evm.c
@@ -35,6 +35,7 @@
35#include <linux/platform_data/uio_pruss.h> 35#include <linux/platform_data/uio_pruss.h>
36#include <linux/regulator/machine.h> 36#include <linux/regulator/machine.h>
37#include <linux/regulator/tps6507x.h> 37#include <linux/regulator/tps6507x.h>
38#include <linux/regulator/fixed.h>
38#include <linux/spi/spi.h> 39#include <linux/spi/spi.h>
39#include <linux/spi/flash.h> 40#include <linux/spi/flash.h>
40#include <linux/wl12xx.h> 41#include <linux/wl12xx.h>
@@ -842,6 +843,16 @@ static int da850_lcd_hw_init(void)
842 return 0; 843 return 0;
843} 844}
844 845
846/* Fixed regulator support */
847static struct regulator_consumer_supply fixed_supplies[] = {
848 /* Baseboard 3.3V: 5V -> TPS73701DCQ -> 3.3V */
849 REGULATOR_SUPPLY("AVDD", "1-0018"),
850 REGULATOR_SUPPLY("DRVDD", "1-0018"),
851
852 /* Baseboard 1.8V: 5V -> TPS73701DCQ -> 1.8V */
853 REGULATOR_SUPPLY("DVDD", "1-0018"),
854};
855
845/* TPS65070 voltage regulator support */ 856/* TPS65070 voltage regulator support */
846 857
847/* 3.3V */ 858/* 3.3V */
@@ -865,6 +876,7 @@ static struct regulator_consumer_supply tps65070_dcdc2_consumers[] = {
865 { 876 {
866 .supply = "dvdd3318_c", 877 .supply = "dvdd3318_c",
867 }, 878 },
879 REGULATOR_SUPPLY("IOVDD", "1-0018"),
868}; 880};
869 881
870/* 1.2V */ 882/* 1.2V */
@@ -936,6 +948,7 @@ static struct regulator_init_data tps65070_regulator_data[] = {
936 .valid_ops_mask = (REGULATOR_CHANGE_VOLTAGE | 948 .valid_ops_mask = (REGULATOR_CHANGE_VOLTAGE |
937 REGULATOR_CHANGE_STATUS), 949 REGULATOR_CHANGE_STATUS),
938 .boot_on = 1, 950 .boot_on = 1,
951 .always_on = 1,
939 }, 952 },
940 .num_consumer_supplies = ARRAY_SIZE(tps65070_dcdc2_consumers), 953 .num_consumer_supplies = ARRAY_SIZE(tps65070_dcdc2_consumers),
941 .consumer_supplies = tps65070_dcdc2_consumers, 954 .consumer_supplies = tps65070_dcdc2_consumers,
@@ -1446,6 +1459,8 @@ static __init void da850_evm_init(void)
1446 if (ret) 1459 if (ret)
1447 pr_warn("%s: GPIO init failed: %d\n", __func__, ret); 1460 pr_warn("%s: GPIO init failed: %d\n", __func__, ret);
1448 1461
1462 regulator_register_fixed(0, fixed_supplies, ARRAY_SIZE(fixed_supplies));
1463
1449 ret = pmic_tps65070_init(); 1464 ret = pmic_tps65070_init();
1450 if (ret) 1465 if (ret)
1451 pr_warn("%s: TPS65070 PMIC init failed: %d\n", __func__, ret); 1466 pr_warn("%s: TPS65070 PMIC init failed: %d\n", __func__, ret);
diff --git a/arch/arm/mach-lpc32xx/common.c b/arch/arm/mach-lpc32xx/common.c
index de03620d7fa7..716e83eb1db8 100644
--- a/arch/arm/mach-lpc32xx/common.c
+++ b/arch/arm/mach-lpc32xx/common.c
@@ -57,20 +57,6 @@ int clk_is_sysclk_mainosc(void)
57} 57}
58 58
59/* 59/*
60 * System reset via the watchdog timer
61 */
62static void lpc32xx_watchdog_reset(void)
63{
64 /* Make sure WDT clocks are enabled */
65 __raw_writel(LPC32XX_CLKPWR_PWMCLK_WDOG_EN,
66 LPC32XX_CLKPWR_TIMER_CLK_CTRL);
67
68 /* Instant assert of RESETOUT_N with pulse length 1mS */
69 __raw_writel(13000, io_p2v(LPC32XX_WDTIM_BASE + 0x18));
70 __raw_writel(0x70, io_p2v(LPC32XX_WDTIM_BASE + 0xC));
71}
72
73/*
74 * Detects and returns IRAM size for the device variation 60 * Detects and returns IRAM size for the device variation
75 */ 61 */
76#define LPC32XX_IRAM_BANK_SIZE SZ_128K 62#define LPC32XX_IRAM_BANK_SIZE SZ_128K
@@ -210,16 +196,13 @@ void __init lpc32xx_map_io(void)
210 196
211void lpc23xx_restart(enum reboot_mode mode, const char *cmd) 197void lpc23xx_restart(enum reboot_mode mode, const char *cmd)
212{ 198{
213 switch (mode) { 199 /* Make sure WDT clocks are enabled */
214 case REBOOT_SOFT: 200 __raw_writel(LPC32XX_CLKPWR_PWMCLK_WDOG_EN,
215 case REBOOT_HARD: 201 LPC32XX_CLKPWR_TIMER_CLK_CTRL);
216 lpc32xx_watchdog_reset();
217 break;
218 202
219 default: 203 /* Instant assert of RESETOUT_N with pulse length 1mS */
220 /* Do nothing */ 204 __raw_writel(13000, io_p2v(LPC32XX_WDTIM_BASE + 0x18));
221 break; 205 __raw_writel(0x70, io_p2v(LPC32XX_WDTIM_BASE + 0xC));
222 }
223 206
224 /* Wait for watchdog to reset system */ 207 /* Wait for watchdog to reset system */
225 while (1) 208 while (1)
diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-omap2/board-generic.c
index 9480997ba616..0b311d51425f 100644
--- a/arch/arm/mach-omap2/board-generic.c
+++ b/arch/arm/mach-omap2/board-generic.c
@@ -27,7 +27,7 @@
27#define gic_of_init NULL 27#define gic_of_init NULL
28#endif 28#endif
29 29
30static struct of_device_id omap_dt_match_table[] __initdata = { 30static const struct of_device_id omap_dt_match_table[] __initconst = {
31 { .compatible = "simple-bus", }, 31 { .compatible = "simple-bus", },
32 { .compatible = "ti,omap-infra", }, 32 { .compatible = "ti,omap-infra", },
33 { } 33 { }
@@ -43,7 +43,7 @@ static void __init omap_generic_init(void)
43} 43}
44 44
45#ifdef CONFIG_SOC_OMAP2420 45#ifdef CONFIG_SOC_OMAP2420
46static const char *omap242x_boards_compat[] __initconst = { 46static const char *const omap242x_boards_compat[] __initconst = {
47 "ti,omap2420", 47 "ti,omap2420",
48 NULL, 48 NULL,
49}; 49};
@@ -62,7 +62,7 @@ MACHINE_END
62#endif 62#endif
63 63
64#ifdef CONFIG_SOC_OMAP2430 64#ifdef CONFIG_SOC_OMAP2430
65static const char *omap243x_boards_compat[] __initconst = { 65static const char *const omap243x_boards_compat[] __initconst = {
66 "ti,omap2430", 66 "ti,omap2430",
67 NULL, 67 NULL,
68}; 68};
@@ -81,7 +81,7 @@ MACHINE_END
81#endif 81#endif
82 82
83#ifdef CONFIG_ARCH_OMAP3 83#ifdef CONFIG_ARCH_OMAP3
84static const char *omap3_boards_compat[] __initconst = { 84static const char *const omap3_boards_compat[] __initconst = {
85 "ti,omap3430", 85 "ti,omap3430",
86 "ti,omap3", 86 "ti,omap3",
87 NULL, 87 NULL,
@@ -100,7 +100,7 @@ DT_MACHINE_START(OMAP3_DT, "Generic OMAP3 (Flattened Device Tree)")
100 .restart = omap3xxx_restart, 100 .restart = omap3xxx_restart,
101MACHINE_END 101MACHINE_END
102 102
103static const char *omap36xx_boards_compat[] __initconst = { 103static const char *const omap36xx_boards_compat[] __initconst = {
104 "ti,omap36xx", 104 "ti,omap36xx",
105 NULL, 105 NULL,
106}; 106};
@@ -118,7 +118,7 @@ DT_MACHINE_START(OMAP36XX_DT, "Generic OMAP36xx (Flattened Device Tree)")
118 .restart = omap3xxx_restart, 118 .restart = omap3xxx_restart,
119MACHINE_END 119MACHINE_END
120 120
121static const char *omap3_gp_boards_compat[] __initconst = { 121static const char *const omap3_gp_boards_compat[] __initconst = {
122 "ti,omap3-beagle", 122 "ti,omap3-beagle",
123 "timll,omap3-devkit8000", 123 "timll,omap3-devkit8000",
124 NULL, 124 NULL,
@@ -137,7 +137,7 @@ DT_MACHINE_START(OMAP3_GP_DT, "Generic OMAP3-GP (Flattened Device Tree)")
137 .restart = omap3xxx_restart, 137 .restart = omap3xxx_restart,
138MACHINE_END 138MACHINE_END
139 139
140static const char *am3517_boards_compat[] __initconst = { 140static const char *const am3517_boards_compat[] __initconst = {
141 "ti,am3517", 141 "ti,am3517",
142 NULL, 142 NULL,
143}; 143};
@@ -157,7 +157,7 @@ MACHINE_END
157#endif 157#endif
158 158
159#ifdef CONFIG_SOC_AM33XX 159#ifdef CONFIG_SOC_AM33XX
160static const char *am33xx_boards_compat[] __initconst = { 160static const char *const am33xx_boards_compat[] __initconst = {
161 "ti,am33xx", 161 "ti,am33xx",
162 NULL, 162 NULL,
163}; 163};
@@ -177,7 +177,7 @@ MACHINE_END
177#endif 177#endif
178 178
179#ifdef CONFIG_ARCH_OMAP4 179#ifdef CONFIG_ARCH_OMAP4
180static const char *omap4_boards_compat[] __initconst = { 180static const char *const omap4_boards_compat[] __initconst = {
181 "ti,omap4460", 181 "ti,omap4460",
182 "ti,omap4430", 182 "ti,omap4430",
183 "ti,omap4", 183 "ti,omap4",
@@ -199,7 +199,7 @@ MACHINE_END
199#endif 199#endif
200 200
201#ifdef CONFIG_SOC_OMAP5 201#ifdef CONFIG_SOC_OMAP5
202static const char *omap5_boards_compat[] __initconst = { 202static const char *const omap5_boards_compat[] __initconst = {
203 "ti,omap5432", 203 "ti,omap5432",
204 "ti,omap5430", 204 "ti,omap5430",
205 "ti,omap5", 205 "ti,omap5",
@@ -221,7 +221,7 @@ MACHINE_END
221#endif 221#endif
222 222
223#ifdef CONFIG_SOC_AM43XX 223#ifdef CONFIG_SOC_AM43XX
224static const char *am43_boards_compat[] __initconst = { 224static const char *const am43_boards_compat[] __initconst = {
225 "ti,am4372", 225 "ti,am4372",
226 "ti,am43", 226 "ti,am43",
227 NULL, 227 NULL,
@@ -240,7 +240,7 @@ MACHINE_END
240#endif 240#endif
241 241
242#ifdef CONFIG_SOC_DRA7XX 242#ifdef CONFIG_SOC_DRA7XX
243static const char *dra74x_boards_compat[] __initconst = { 243static const char *const dra74x_boards_compat[] __initconst = {
244 "ti,dra742", 244 "ti,dra742",
245 "ti,dra7", 245 "ti,dra7",
246 NULL, 246 NULL,
@@ -259,7 +259,7 @@ DT_MACHINE_START(DRA74X_DT, "Generic DRA74X (Flattened Device Tree)")
259 .restart = omap44xx_restart, 259 .restart = omap44xx_restart,
260MACHINE_END 260MACHINE_END
261 261
262static const char *dra72x_boards_compat[] __initconst = { 262static const char *const dra72x_boards_compat[] __initconst = {
263 "ti,dra722", 263 "ti,dra722",
264 NULL, 264 NULL,
265}; 265};
diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h
index dc571f1d3b8a..79664411e794 100644
--- a/arch/arm/mach-omap2/common.h
+++ b/arch/arm/mach-omap2/common.h
@@ -307,7 +307,7 @@ static inline void omap4_cpu_resume(void)
307 307
308#endif 308#endif
309 309
310void pdata_quirks_init(struct of_device_id *); 310void pdata_quirks_init(const struct of_device_id *);
311void omap_auxdata_legacy_init(struct device *dev); 311void omap_auxdata_legacy_init(struct device *dev);
312void omap_pcs_legacy_init(int irq, void (*rearm)(void)); 312void omap_pcs_legacy_init(int irq, void (*rearm)(void));
313 313
diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c
index 2f97228f188a..a4d52c42a438 100644
--- a/arch/arm/mach-omap2/gpmc.c
+++ b/arch/arm/mach-omap2/gpmc.c
@@ -1243,7 +1243,7 @@ int gpmc_cs_program_settings(int cs, struct gpmc_settings *p)
1243} 1243}
1244 1244
1245#ifdef CONFIG_OF 1245#ifdef CONFIG_OF
1246static struct of_device_id gpmc_dt_ids[] = { 1246static const struct of_device_id gpmc_dt_ids[] = {
1247 { .compatible = "ti,omap2420-gpmc" }, 1247 { .compatible = "ti,omap2420-gpmc" },
1248 { .compatible = "ti,omap2430-gpmc" }, 1248 { .compatible = "ti,omap2430-gpmc" },
1249 { .compatible = "ti,omap3430-gpmc" }, /* omap3430 & omap3630 */ 1249 { .compatible = "ti,omap3430-gpmc" }, /* omap3430 & omap3630 */
diff --git a/arch/arm/mach-omap2/irq.c b/arch/arm/mach-omap2/irq.c
index 35b8590c322e..604a976abf14 100644
--- a/arch/arm/mach-omap2/irq.c
+++ b/arch/arm/mach-omap2/irq.c
@@ -289,7 +289,7 @@ int __init intc_of_init(struct device_node *node,
289 return 0; 289 return 0;
290} 290}
291 291
292static struct of_device_id irq_match[] __initdata = { 292static const struct of_device_id irq_match[] __initconst = {
293 { .compatible = "ti,omap2-intc", .data = intc_of_init, }, 293 { .compatible = "ti,omap2-intc", .data = intc_of_init, },
294 { } 294 { }
295}; 295};
diff --git a/arch/arm/mach-omap2/omap-mpuss-lowpower.c b/arch/arm/mach-omap2/omap-mpuss-lowpower.c
index 4001325f90fb..e9cdacfe1923 100644
--- a/arch/arm/mach-omap2/omap-mpuss-lowpower.c
+++ b/arch/arm/mach-omap2/omap-mpuss-lowpower.c
@@ -298,6 +298,10 @@ int omap4_hotplug_cpu(unsigned int cpu, unsigned int power_state)
298 if (omap_rev() == OMAP4430_REV_ES1_0) 298 if (omap_rev() == OMAP4430_REV_ES1_0)
299 return -ENXIO; 299 return -ENXIO;
300 300
301 /* Use the achievable power state for the domain */
302 power_state = pwrdm_get_valid_lp_state(pm_info->pwrdm,
303 false, power_state);
304
301 if (power_state == PWRDM_POWER_OFF) 305 if (power_state == PWRDM_POWER_OFF)
302 cpu_state = 1; 306 cpu_state = 1;
303 307
diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c
index 90c88d498485..05a8c8b07449 100644
--- a/arch/arm/mach-omap2/pdata-quirks.c
+++ b/arch/arm/mach-omap2/pdata-quirks.c
@@ -405,7 +405,7 @@ static void pdata_quirks_check(struct pdata_init *quirks)
405 } 405 }
406} 406}
407 407
408void __init pdata_quirks_init(struct of_device_id *omap_dt_match_table) 408void __init pdata_quirks_init(const struct of_device_id *omap_dt_match_table)
409{ 409{
410 omap_sdrc_init(NULL, NULL); 410 omap_sdrc_init(NULL, NULL);
411 pdata_quirks_check(auxdata_quirks); 411 pdata_quirks_check(auxdata_quirks);
diff --git a/arch/arm/mach-omap2/pm44xx.c b/arch/arm/mach-omap2/pm44xx.c
index 0dda6cf8b855..0bfce38a744a 100644
--- a/arch/arm/mach-omap2/pm44xx.c
+++ b/arch/arm/mach-omap2/pm44xx.c
@@ -29,6 +29,7 @@ u16 pm44xx_errata;
29struct power_state { 29struct power_state {
30 struct powerdomain *pwrdm; 30 struct powerdomain *pwrdm;
31 u32 next_state; 31 u32 next_state;
32 u32 next_logic_state;
32#ifdef CONFIG_SUSPEND 33#ifdef CONFIG_SUSPEND
33 u32 saved_state; 34 u32 saved_state;
34 u32 saved_logic_state; 35 u32 saved_logic_state;
@@ -54,7 +55,7 @@ static int omap4_pm_suspend(void)
54 /* Set targeted power domain states by suspend */ 55 /* Set targeted power domain states by suspend */
55 list_for_each_entry(pwrst, &pwrst_list, node) { 56 list_for_each_entry(pwrst, &pwrst_list, node) {
56 omap_set_pwrdm_state(pwrst->pwrdm, pwrst->next_state); 57 omap_set_pwrdm_state(pwrst->pwrdm, pwrst->next_state);
57 pwrdm_set_logic_retst(pwrst->pwrdm, PWRDM_POWER_OFF); 58 pwrdm_set_logic_retst(pwrst->pwrdm, pwrst->next_logic_state);
58 } 59 }
59 60
60 /* 61 /*
@@ -120,7 +121,11 @@ static int __init pwrdms_setup(struct powerdomain *pwrdm, void *unused)
120 return -ENOMEM; 121 return -ENOMEM;
121 122
122 pwrst->pwrdm = pwrdm; 123 pwrst->pwrdm = pwrdm;
123 pwrst->next_state = PWRDM_POWER_RET; 124 pwrst->next_state = pwrdm_get_valid_lp_state(pwrdm, false,
125 PWRDM_POWER_RET);
126 pwrst->next_logic_state = pwrdm_get_valid_lp_state(pwrdm, true,
127 PWRDM_POWER_OFF);
128
124 list_add(&pwrst->node, &pwrst_list); 129 list_add(&pwrst->node, &pwrst_list);
125 130
126 return omap_set_pwrdm_state(pwrst->pwrdm, pwrst->next_state); 131 return omap_set_pwrdm_state(pwrst->pwrdm, pwrst->next_state);
diff --git a/arch/arm/mach-omap2/powerdomain.c b/arch/arm/mach-omap2/powerdomain.c
index faebd5f076af..7fb033eca0a5 100644
--- a/arch/arm/mach-omap2/powerdomain.c
+++ b/arch/arm/mach-omap2/powerdomain.c
@@ -546,7 +546,8 @@ int pwrdm_for_each_clkdm(struct powerdomain *pwrdm,
546 return -EINVAL; 546 return -EINVAL;
547 547
548 for (i = 0; i < PWRDM_MAX_CLKDMS && !ret; i++) 548 for (i = 0; i < PWRDM_MAX_CLKDMS && !ret; i++)
549 ret = (*fn)(pwrdm, pwrdm->pwrdm_clkdms[i]); 549 if (pwrdm->pwrdm_clkdms[i])
550 ret = (*fn)(pwrdm, pwrdm->pwrdm_clkdms[i]);
550 551
551 return ret; 552 return ret;
552} 553}
@@ -1080,6 +1081,82 @@ int pwrdm_post_transition(struct powerdomain *pwrdm)
1080} 1081}
1081 1082
1082/** 1083/**
1084 * pwrdm_get_valid_lp_state() - Find best match deep power state
1085 * @pwrdm: power domain for which we want to find best match
1086 * @is_logic_state: Are we looking for logic state match here? Should
1087 * be one of PWRDM_xxx macro values
1088 * @req_state: requested power state
1089 *
1090 * Returns: closest match for requested power state. default fallback
1091 * is RET for logic state and ON for power state.
1092 *
1093 * This does a search from the power domain data looking for the
1094 * closest valid power domain state that the hardware can achieve.
1095 * PRCM definitions for PWRSTCTRL allows us to program whatever
1096 * configuration we'd like, and PRCM will actually attempt such
1097 * a transition, however if the powerdomain does not actually support it,
1098 * we endup with a hung system. The valid power domain states are already
1099 * available in our powerdomain data files. So this function tries to do
1100 * the following:
1101 * a) find if we have an exact match to the request - no issues.
1102 * b) else find if a deeper power state is possible.
1103 * c) failing which, it tries to find closest higher power state for the
1104 * request.
1105 */
1106u8 pwrdm_get_valid_lp_state(struct powerdomain *pwrdm,
1107 bool is_logic_state, u8 req_state)
1108{
1109 u8 pwrdm_states = is_logic_state ? pwrdm->pwrsts_logic_ret :
1110 pwrdm->pwrsts;
1111 /* For logic, ret is highest and others, ON is highest */
1112 u8 default_pwrst = is_logic_state ? PWRDM_POWER_RET : PWRDM_POWER_ON;
1113 u8 new_pwrst;
1114 bool found;
1115
1116 /* If it is already supported, nothing to search */
1117 if (pwrdm_states & BIT(req_state))
1118 return req_state;
1119
1120 if (!req_state)
1121 goto up_search;
1122
1123 /*
1124 * So, we dont have a exact match
1125 * Can we get a deeper power state match?
1126 */
1127 new_pwrst = req_state - 1;
1128 found = true;
1129 while (!(pwrdm_states & BIT(new_pwrst))) {
1130 /* No match even at OFF? Not available */
1131 if (new_pwrst == PWRDM_POWER_OFF) {
1132 found = false;
1133 break;
1134 }
1135 new_pwrst--;
1136 }
1137
1138 if (found)
1139 goto done;
1140
1141up_search:
1142 /* OK, no deeper ones, can we get a higher match? */
1143 new_pwrst = req_state + 1;
1144 while (!(pwrdm_states & BIT(new_pwrst))) {
1145 if (new_pwrst > PWRDM_POWER_ON) {
1146 WARN(1, "powerdomain: %s: Fix max powerstate to ON\n",
1147 pwrdm->name);
1148 return PWRDM_POWER_ON;
1149 }
1150
1151 if (new_pwrst == default_pwrst)
1152 break;
1153 new_pwrst++;
1154 }
1155done:
1156 return new_pwrst;
1157}
1158
1159/**
1083 * omap_set_pwrdm_state - change a powerdomain's current power state 1160 * omap_set_pwrdm_state - change a powerdomain's current power state
1084 * @pwrdm: struct powerdomain * to change the power state of 1161 * @pwrdm: struct powerdomain * to change the power state of
1085 * @pwrst: power state to change to 1162 * @pwrst: power state to change to
diff --git a/arch/arm/mach-omap2/powerdomain.h b/arch/arm/mach-omap2/powerdomain.h
index f4727117f6cc..11bd4dd7d8d6 100644
--- a/arch/arm/mach-omap2/powerdomain.h
+++ b/arch/arm/mach-omap2/powerdomain.h
@@ -39,6 +39,7 @@
39#define PWRSTS_OFF_RET (PWRSTS_OFF | PWRSTS_RET) 39#define PWRSTS_OFF_RET (PWRSTS_OFF | PWRSTS_RET)
40#define PWRSTS_RET_ON (PWRSTS_RET | PWRSTS_ON) 40#define PWRSTS_RET_ON (PWRSTS_RET | PWRSTS_ON)
41#define PWRSTS_OFF_RET_ON (PWRSTS_OFF_RET | PWRSTS_ON) 41#define PWRSTS_OFF_RET_ON (PWRSTS_OFF_RET | PWRSTS_ON)
42#define PWRSTS_INA_ON (PWRSTS_INACTIVE | PWRSTS_ON)
42 43
43 44
44/* 45/*
@@ -219,6 +220,9 @@ struct voltagedomain *pwrdm_get_voltdm(struct powerdomain *pwrdm);
219 220
220int pwrdm_get_mem_bank_count(struct powerdomain *pwrdm); 221int pwrdm_get_mem_bank_count(struct powerdomain *pwrdm);
221 222
223u8 pwrdm_get_valid_lp_state(struct powerdomain *pwrdm,
224 bool is_logic_state, u8 req_state);
225
222int pwrdm_set_next_pwrst(struct powerdomain *pwrdm, u8 pwrst); 226int pwrdm_set_next_pwrst(struct powerdomain *pwrdm, u8 pwrst);
223int pwrdm_read_next_pwrst(struct powerdomain *pwrdm); 227int pwrdm_read_next_pwrst(struct powerdomain *pwrdm);
224int pwrdm_read_pwrst(struct powerdomain *pwrdm); 228int pwrdm_read_pwrst(struct powerdomain *pwrdm);
diff --git a/arch/arm/mach-omap2/powerdomains54xx_data.c b/arch/arm/mach-omap2/powerdomains54xx_data.c
index ce1d752af991..60d7ed8ef8ca 100644
--- a/arch/arm/mach-omap2/powerdomains54xx_data.c
+++ b/arch/arm/mach-omap2/powerdomains54xx_data.c
@@ -35,7 +35,7 @@ static struct powerdomain core_54xx_pwrdm = {
35 .prcm_offs = OMAP54XX_PRM_CORE_INST, 35 .prcm_offs = OMAP54XX_PRM_CORE_INST,
36 .prcm_partition = OMAP54XX_PRM_PARTITION, 36 .prcm_partition = OMAP54XX_PRM_PARTITION,
37 .pwrsts = PWRSTS_RET_ON, 37 .pwrsts = PWRSTS_RET_ON,
38 .pwrsts_logic_ret = PWRSTS_OFF_RET, 38 .pwrsts_logic_ret = PWRSTS_RET,
39 .banks = 5, 39 .banks = 5,
40 .pwrsts_mem_ret = { 40 .pwrsts_mem_ret = {
41 [0] = PWRSTS_OFF_RET, /* core_nret_bank */ 41 [0] = PWRSTS_OFF_RET, /* core_nret_bank */
@@ -107,8 +107,8 @@ static struct powerdomain cpu0_54xx_pwrdm = {
107 .voltdm = { .name = "mpu" }, 107 .voltdm = { .name = "mpu" },
108 .prcm_offs = OMAP54XX_PRCM_MPU_PRM_C0_INST, 108 .prcm_offs = OMAP54XX_PRCM_MPU_PRM_C0_INST,
109 .prcm_partition = OMAP54XX_PRCM_MPU_PARTITION, 109 .prcm_partition = OMAP54XX_PRCM_MPU_PARTITION,
110 .pwrsts = PWRSTS_OFF_RET_ON, 110 .pwrsts = PWRSTS_RET_ON,
111 .pwrsts_logic_ret = PWRSTS_OFF_RET, 111 .pwrsts_logic_ret = PWRSTS_RET,
112 .banks = 1, 112 .banks = 1,
113 .pwrsts_mem_ret = { 113 .pwrsts_mem_ret = {
114 [0] = PWRSTS_OFF_RET, /* cpu0_l1 */ 114 [0] = PWRSTS_OFF_RET, /* cpu0_l1 */
@@ -124,8 +124,8 @@ static struct powerdomain cpu1_54xx_pwrdm = {
124 .voltdm = { .name = "mpu" }, 124 .voltdm = { .name = "mpu" },
125 .prcm_offs = OMAP54XX_PRCM_MPU_PRM_C1_INST, 125 .prcm_offs = OMAP54XX_PRCM_MPU_PRM_C1_INST,
126 .prcm_partition = OMAP54XX_PRCM_MPU_PARTITION, 126 .prcm_partition = OMAP54XX_PRCM_MPU_PARTITION,
127 .pwrsts = PWRSTS_OFF_RET_ON, 127 .pwrsts = PWRSTS_RET_ON,
128 .pwrsts_logic_ret = PWRSTS_OFF_RET, 128 .pwrsts_logic_ret = PWRSTS_RET,
129 .banks = 1, 129 .banks = 1,
130 .pwrsts_mem_ret = { 130 .pwrsts_mem_ret = {
131 [0] = PWRSTS_OFF_RET, /* cpu1_l1 */ 131 [0] = PWRSTS_OFF_RET, /* cpu1_l1 */
@@ -158,7 +158,7 @@ static struct powerdomain mpu_54xx_pwrdm = {
158 .prcm_offs = OMAP54XX_PRM_MPU_INST, 158 .prcm_offs = OMAP54XX_PRM_MPU_INST,
159 .prcm_partition = OMAP54XX_PRM_PARTITION, 159 .prcm_partition = OMAP54XX_PRM_PARTITION,
160 .pwrsts = PWRSTS_RET_ON, 160 .pwrsts = PWRSTS_RET_ON,
161 .pwrsts_logic_ret = PWRSTS_OFF_RET, 161 .pwrsts_logic_ret = PWRSTS_RET,
162 .banks = 2, 162 .banks = 2,
163 .pwrsts_mem_ret = { 163 .pwrsts_mem_ret = {
164 [0] = PWRSTS_OFF_RET, /* mpu_l2 */ 164 [0] = PWRSTS_OFF_RET, /* mpu_l2 */
diff --git a/arch/arm/mach-omap2/powerdomains7xx_data.c b/arch/arm/mach-omap2/powerdomains7xx_data.c
index 48151d1cfde0..287a2037aa16 100644
--- a/arch/arm/mach-omap2/powerdomains7xx_data.c
+++ b/arch/arm/mach-omap2/powerdomains7xx_data.c
@@ -160,8 +160,8 @@ static struct powerdomain core_7xx_pwrdm = {
160 .name = "core_pwrdm", 160 .name = "core_pwrdm",
161 .prcm_offs = DRA7XX_PRM_CORE_INST, 161 .prcm_offs = DRA7XX_PRM_CORE_INST,
162 .prcm_partition = DRA7XX_PRM_PARTITION, 162 .prcm_partition = DRA7XX_PRM_PARTITION,
163 .pwrsts = PWRSTS_RET_ON, 163 .pwrsts = PWRSTS_INA_ON,
164 .pwrsts_logic_ret = PWRSTS_OFF_RET, 164 .pwrsts_logic_ret = PWRSTS_RET,
165 .banks = 5, 165 .banks = 5,
166 .pwrsts_mem_ret = { 166 .pwrsts_mem_ret = {
167 [0] = PWRSTS_OFF_RET, /* core_nret_bank */ 167 [0] = PWRSTS_OFF_RET, /* core_nret_bank */
@@ -193,8 +193,8 @@ static struct powerdomain cpu0_7xx_pwrdm = {
193 .name = "cpu0_pwrdm", 193 .name = "cpu0_pwrdm",
194 .prcm_offs = DRA7XX_MPU_PRCM_PRM_C0_INST, 194 .prcm_offs = DRA7XX_MPU_PRCM_PRM_C0_INST,
195 .prcm_partition = DRA7XX_MPU_PRCM_PARTITION, 195 .prcm_partition = DRA7XX_MPU_PRCM_PARTITION,
196 .pwrsts = PWRSTS_OFF_RET_ON, 196 .pwrsts = PWRSTS_RET_ON,
197 .pwrsts_logic_ret = PWRSTS_OFF_RET, 197 .pwrsts_logic_ret = PWRSTS_RET,
198 .banks = 1, 198 .banks = 1,
199 .pwrsts_mem_ret = { 199 .pwrsts_mem_ret = {
200 [0] = PWRSTS_OFF_RET, /* cpu0_l1 */ 200 [0] = PWRSTS_OFF_RET, /* cpu0_l1 */
@@ -209,8 +209,8 @@ static struct powerdomain cpu1_7xx_pwrdm = {
209 .name = "cpu1_pwrdm", 209 .name = "cpu1_pwrdm",
210 .prcm_offs = DRA7XX_MPU_PRCM_PRM_C1_INST, 210 .prcm_offs = DRA7XX_MPU_PRCM_PRM_C1_INST,
211 .prcm_partition = DRA7XX_MPU_PRCM_PARTITION, 211 .prcm_partition = DRA7XX_MPU_PRCM_PARTITION,
212 .pwrsts = PWRSTS_OFF_RET_ON, 212 .pwrsts = PWRSTS_RET_ON,
213 .pwrsts_logic_ret = PWRSTS_OFF_RET, 213 .pwrsts_logic_ret = PWRSTS_RET,
214 .banks = 1, 214 .banks = 1,
215 .pwrsts_mem_ret = { 215 .pwrsts_mem_ret = {
216 [0] = PWRSTS_OFF_RET, /* cpu1_l1 */ 216 [0] = PWRSTS_OFF_RET, /* cpu1_l1 */
@@ -243,7 +243,7 @@ static struct powerdomain mpu_7xx_pwrdm = {
243 .prcm_offs = DRA7XX_PRM_MPU_INST, 243 .prcm_offs = DRA7XX_PRM_MPU_INST,
244 .prcm_partition = DRA7XX_PRM_PARTITION, 244 .prcm_partition = DRA7XX_PRM_PARTITION,
245 .pwrsts = PWRSTS_RET_ON, 245 .pwrsts = PWRSTS_RET_ON,
246 .pwrsts_logic_ret = PWRSTS_OFF_RET, 246 .pwrsts_logic_ret = PWRSTS_RET,
247 .banks = 2, 247 .banks = 2,
248 .pwrsts_mem_ret = { 248 .pwrsts_mem_ret = {
249 [0] = PWRSTS_OFF_RET, /* mpu_l2 */ 249 [0] = PWRSTS_OFF_RET, /* mpu_l2 */
diff --git a/arch/arm/mach-omap2/prm_common.c b/arch/arm/mach-omap2/prm_common.c
index 76ca320f007c..74054b813600 100644
--- a/arch/arm/mach-omap2/prm_common.c
+++ b/arch/arm/mach-omap2/prm_common.c
@@ -467,7 +467,7 @@ int prm_unregister(struct prm_ll_data *pld)
467 return 0; 467 return 0;
468} 468}
469 469
470static struct of_device_id omap_prcm_dt_match_table[] = { 470static const struct of_device_id omap_prcm_dt_match_table[] = {
471 { .compatible = "ti,am3-prcm" }, 471 { .compatible = "ti,am3-prcm" },
472 { .compatible = "ti,am3-scrm" }, 472 { .compatible = "ti,am3-scrm" },
473 { .compatible = "ti,am4-prcm" }, 473 { .compatible = "ti,am4-prcm" },
diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c
index 43d03fbf4c0b..4f61148ec168 100644
--- a/arch/arm/mach-omap2/timer.c
+++ b/arch/arm/mach-omap2/timer.c
@@ -141,7 +141,7 @@ static struct property device_disabled = {
141 .value = "disabled", 141 .value = "disabled",
142}; 142};
143 143
144static struct of_device_id omap_timer_match[] __initdata = { 144static const struct of_device_id omap_timer_match[] __initconst = {
145 { .compatible = "ti,omap2420-timer", }, 145 { .compatible = "ti,omap2420-timer", },
146 { .compatible = "ti,omap3430-timer", }, 146 { .compatible = "ti,omap3430-timer", },
147 { .compatible = "ti,omap4430-timer", }, 147 { .compatible = "ti,omap4430-timer", },
@@ -162,7 +162,7 @@ static struct of_device_id omap_timer_match[] __initdata = {
162 * the timer node in device-tree as disabled, to prevent the kernel from 162 * the timer node in device-tree as disabled, to prevent the kernel from
163 * registering this timer as a platform device and so no one else can use it. 163 * registering this timer as a platform device and so no one else can use it.
164 */ 164 */
165static struct device_node * __init omap_get_timer_dt(struct of_device_id *match, 165static struct device_node * __init omap_get_timer_dt(const struct of_device_id *match,
166 const char *property) 166 const char *property)
167{ 167{
168 struct device_node *np; 168 struct device_node *np;
@@ -388,7 +388,7 @@ static u64 notrace dmtimer_read_sched_clock(void)
388 return 0; 388 return 0;
389} 389}
390 390
391static struct of_device_id omap_counter_match[] __initdata = { 391static const struct of_device_id omap_counter_match[] __initconst = {
392 { .compatible = "ti,omap-counter32k", }, 392 { .compatible = "ti,omap-counter32k", },
393 { } 393 { }
394}; 394};
diff --git a/arch/arm/mach-spear/Kconfig b/arch/arm/mach-spear/Kconfig
index 6fd4dc88160b..b6f4bda273b3 100644
--- a/arch/arm/mach-spear/Kconfig
+++ b/arch/arm/mach-spear/Kconfig
@@ -4,7 +4,6 @@
4 4
5menuconfig PLAT_SPEAR 5menuconfig PLAT_SPEAR
6 bool "ST SPEAr Family" if ARCH_MULTI_V7 || ARCH_MULTI_V5 6 bool "ST SPEAr Family" if ARCH_MULTI_V7 || ARCH_MULTI_V5
7 default PLAT_SPEAR_SINGLE
8 select ARCH_REQUIRE_GPIOLIB 7 select ARCH_REQUIRE_GPIOLIB
9 select ARM_AMBA 8 select ARM_AMBA
10 select CLKSRC_MMIO 9 select CLKSRC_MMIO
@@ -13,7 +12,7 @@ if PLAT_SPEAR
13 12
14config ARCH_SPEAR13XX 13config ARCH_SPEAR13XX
15 bool "ST SPEAr13xx" 14 bool "ST SPEAr13xx"
16 depends on ARCH_MULTI_V7 || PLAT_SPEAR_SINGLE 15 depends on ARCH_MULTI_V7
17 select ARM_GIC 16 select ARM_GIC
18 select GPIO_SPEAR_SPICS 17 select GPIO_SPEAR_SPICS
19 select HAVE_ARM_SCU if SMP 18 select HAVE_ARM_SCU if SMP
@@ -44,7 +43,7 @@ endif #ARCH_SPEAR13XX
44 43
45config ARCH_SPEAR3XX 44config ARCH_SPEAR3XX
46 bool "ST SPEAr3xx" 45 bool "ST SPEAr3xx"
47 depends on ARCH_MULTI_V5 || PLAT_SPEAR_SINGLE 46 depends on ARCH_MULTI_V5
48 depends on !ARCH_SPEAR13XX 47 depends on !ARCH_SPEAR13XX
49 select ARM_VIC 48 select ARM_VIC
50 select PINCTRL 49 select PINCTRL
@@ -75,7 +74,7 @@ endif
75 74
76config ARCH_SPEAR6XX 75config ARCH_SPEAR6XX
77 bool "ST SPEAr6XX" 76 bool "ST SPEAr6XX"
78 depends on ARCH_MULTI_V5 || PLAT_SPEAR_SINGLE 77 depends on ARCH_MULTI_V5
79 depends on !ARCH_SPEAR13XX 78 depends on !ARCH_SPEAR13XX
80 select ARM_VIC 79 select ARM_VIC
81 help 80 help
@@ -88,7 +87,7 @@ config MACH_SPEAR600
88 Supports ST SPEAr600 boards configured via the device-tree 87 Supports ST SPEAr600 boards configured via the device-tree
89 88
90config ARCH_SPEAR_AUTO 89config ARCH_SPEAR_AUTO
91 def_bool PLAT_SPEAR_SINGLE 90 bool
92 depends on !ARCH_SPEAR13XX && !ARCH_SPEAR6XX 91 depends on !ARCH_SPEAR13XX && !ARCH_SPEAR6XX
93 select ARCH_SPEAR3XX 92 select ARCH_SPEAR3XX
94 93
diff --git a/arch/arm/mach-vt8500/vt8500.c b/arch/arm/mach-vt8500/vt8500.c
index 2da7be31e7e2..3bc0dc9a4d69 100644
--- a/arch/arm/mach-vt8500/vt8500.c
+++ b/arch/arm/mach-vt8500/vt8500.c
@@ -69,7 +69,7 @@ static void vt8500_power_off(void)
69{ 69{
70 local_irq_disable(); 70 local_irq_disable();
71 writew(5, pmc_base + VT8500_HCR_REG); 71 writew(5, pmc_base + VT8500_HCR_REG);
72 asm("mcr%? p15, 0, %0, c7, c0, 4" : : "r" (0)); 72 asm("mcr p15, 0, %0, c7, c0, 4" : : "r" (0));
73} 73}
74 74
75static void __init vt8500_init(void) 75static void __init vt8500_init(void)
diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig
index e1b92788c225..cd4cccbfd2ab 100644
--- a/drivers/ata/Kconfig
+++ b/drivers/ata/Kconfig
@@ -299,7 +299,7 @@ config SATA_HIGHBANK
299 299
300config SATA_MV 300config SATA_MV
301 tristate "Marvell SATA support" 301 tristate "Marvell SATA support"
302 depends on PCI || ARCH_DOVE || ARCH_KIRKWOOD || ARCH_MV78XX0 || \ 302 depends on PCI || ARCH_DOVE || ARCH_MV78XX0 || \
303 ARCH_MVEBU || ARCH_ORION5X || COMPILE_TEST 303 ARCH_MVEBU || ARCH_ORION5X || COMPILE_TEST
304 select GENERIC_PHY 304 select GENERIC_PHY
305 help 305 help
diff --git a/drivers/cpufreq/Kconfig.arm b/drivers/cpufreq/Kconfig.arm
index 7364a538e056..28c666c80149 100644
--- a/drivers/cpufreq/Kconfig.arm
+++ b/drivers/cpufreq/Kconfig.arm
@@ -77,7 +77,7 @@ config ARM_EXYNOS5440_CPUFREQ
77 77
78config ARM_EXYNOS_CPU_FREQ_BOOST_SW 78config ARM_EXYNOS_CPU_FREQ_BOOST_SW
79 bool "EXYNOS Frequency Overclocking - Software" 79 bool "EXYNOS Frequency Overclocking - Software"
80 depends on ARM_EXYNOS_CPUFREQ 80 depends on ARM_EXYNOS_CPUFREQ && THERMAL
81 select CPU_FREQ_BOOST_SW 81 select CPU_FREQ_BOOST_SW
82 select EXYNOS_THERMAL 82 select EXYNOS_THERMAL
83 help 83 help
@@ -119,7 +119,7 @@ config ARM_INTEGRATOR
119 If in doubt, say Y. 119 If in doubt, say Y.
120 120
121config ARM_KIRKWOOD_CPUFREQ 121config ARM_KIRKWOOD_CPUFREQ
122 def_bool ARCH_KIRKWOOD || MACH_KIRKWOOD 122 def_bool MACH_KIRKWOOD
123 help 123 help
124 This adds the CPUFreq driver for Marvell Kirkwood 124 This adds the CPUFreq driver for Marvell Kirkwood
125 SoCs. 125 SoCs.
diff --git a/drivers/cpuidle/Kconfig.arm b/drivers/cpuidle/Kconfig.arm
index 38cff69ffe06..58bcd0d166ec 100644
--- a/drivers/cpuidle/Kconfig.arm
+++ b/drivers/cpuidle/Kconfig.arm
@@ -28,7 +28,7 @@ config ARM_HIGHBANK_CPUIDLE
28 28
29config ARM_KIRKWOOD_CPUIDLE 29config ARM_KIRKWOOD_CPUIDLE
30 bool "CPU Idle Driver for Marvell Kirkwood SoCs" 30 bool "CPU Idle Driver for Marvell Kirkwood SoCs"
31 depends on ARCH_KIRKWOOD || MACH_KIRKWOOD 31 depends on MACH_KIRKWOOD
32 help 32 help
33 This adds the CPU Idle driver for Marvell Kirkwood SoCs. 33 This adds the CPU Idle driver for Marvell Kirkwood SoCs.
34 34
diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig
index 8c96e2ddf43b..f6ef7bb2dc11 100644
--- a/drivers/leds/Kconfig
+++ b/drivers/leds/Kconfig
@@ -410,7 +410,7 @@ config LEDS_MC13783
410config LEDS_NS2 410config LEDS_NS2
411 tristate "LED support for Network Space v2 GPIO LEDs" 411 tristate "LED support for Network Space v2 GPIO LEDs"
412 depends on LEDS_CLASS 412 depends on LEDS_CLASS
413 depends on ARCH_KIRKWOOD || MACH_KIRKWOOD 413 depends on MACH_KIRKWOOD
414 default y 414 default y
415 help 415 help
416 This option enable support for the dual-GPIO LED found on the 416 This option enable support for the dual-GPIO LED found on the
@@ -420,7 +420,7 @@ config LEDS_NS2
420config LEDS_NETXBIG 420config LEDS_NETXBIG
421 tristate "LED support for Big Network series LEDs" 421 tristate "LED support for Big Network series LEDs"
422 depends on LEDS_CLASS 422 depends on LEDS_CLASS
423 depends on ARCH_KIRKWOOD || MACH_KIRKWOOD 423 depends on MACH_KIRKWOOD
424 default y 424 default y
425 help 425 help
426 This option enable support for LEDs found on the LaCie 2Big 426 This option enable support for LEDs found on the LaCie 2Big
diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig
index a168e96142b9..fae9464eed9c 100644
--- a/drivers/rtc/Kconfig
+++ b/drivers/rtc/Kconfig
@@ -1198,7 +1198,7 @@ config RTC_DRV_TX4939
1198 1198
1199config RTC_DRV_MV 1199config RTC_DRV_MV
1200 tristate "Marvell SoC RTC" 1200 tristate "Marvell SoC RTC"
1201 depends on ARCH_KIRKWOOD || ARCH_DOVE || ARCH_MVEBU 1201 depends on ARCH_DOVE || ARCH_MVEBU
1202 help 1202 help
1203 If you say yes here you will get support for the in-chip RTC 1203 If you say yes here you will get support for the in-chip RTC
1204 that can be found in some of Marvell's SoC devices, such as 1204 that can be found in some of Marvell's SoC devices, such as
diff --git a/drivers/thermal/Kconfig b/drivers/thermal/Kconfig
index 693208eb9047..ef5587fe2c69 100644
--- a/drivers/thermal/Kconfig
+++ b/drivers/thermal/Kconfig
@@ -143,7 +143,7 @@ config RCAR_THERMAL
143 143
144config KIRKWOOD_THERMAL 144config KIRKWOOD_THERMAL
145 tristate "Temperature sensor on Marvell Kirkwood SoCs" 145 tristate "Temperature sensor on Marvell Kirkwood SoCs"
146 depends on ARCH_KIRKWOOD || MACH_KIRKWOOD 146 depends on MACH_KIRKWOOD
147 depends on OF 147 depends on OF
148 help 148 help
149 Support for the Kirkwood thermal sensor driver into the Linux thermal 149 Support for the Kirkwood thermal sensor driver into the Linux thermal
diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
index f57312fced80..1d1330a78af3 100644
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
@@ -301,7 +301,7 @@ config DAVINCI_WATCHDOG
301 301
302config ORION_WATCHDOG 302config ORION_WATCHDOG
303 tristate "Orion watchdog" 303 tristate "Orion watchdog"
304 depends on ARCH_ORION5X || ARCH_KIRKWOOD || ARCH_DOVE || MACH_DOVE || ARCH_MVEBU 304 depends on ARCH_ORION5X || ARCH_DOVE || MACH_DOVE || ARCH_MVEBU
305 select WATCHDOG_CORE 305 select WATCHDOG_CORE
306 help 306 help
307 Say Y here if to include support for the watchdog timer 307 Say Y here if to include support for the watchdog timer