summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2013-03-04 09:21:37 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2013-03-04 09:21:37 +0100
commit13408877f4c0d4b2784d3388dd4481369205e46a (patch)
tree81bd24a8bac468785989c5b8b82a489befcddc5a
parent908bc8ce45f428658dab5826eb6fa2e5d9151aa1 (diff)
parent14743045fb31bd1d2d4b7eb2ccd2e956b44b01bd (diff)
downloadbarebox-13408877f4c0d4b2784d3388dd4481369205e46a.tar.gz
barebox-13408877f4c0d4b2784d3388dd4481369205e46a.tar.xz
Merge branch 'for-next/misc'
-rw-r--r--arch/arm/boards/a9m2410/Makefile3
-rw-r--r--arch/arm/boards/a9m2440/Makefile3
-rw-r--r--arch/arm/boards/archosg9/Makefile3
-rw-r--r--arch/arm/boards/at91sam9261ek/Makefile4
-rw-r--r--arch/arm/boards/at91sam9263ek/Makefile4
-rw-r--r--arch/arm/boards/beagle/Makefile3
-rw-r--r--arch/arm/boards/beagle/env/config-board (renamed from arch/arm/boards/beagle/env/init/config-board)0
-rw-r--r--arch/arm/boards/beaglebone/Makefile5
-rw-r--r--arch/arm/boards/ccxmx51/Makefile7
-rw-r--r--arch/arm/boards/chumby_falconwing/Makefile3
-rw-r--r--arch/arm/boards/clep7212/Makefile4
-rw-r--r--arch/arm/boards/crystalfontz-cfa10036/Makefile3
-rw-r--r--arch/arm/boards/crystalfontz-cfa10036/env/config-board (renamed from arch/arm/boards/crystalfontz-cfa10036/env/init/config-board)0
-rw-r--r--arch/arm/boards/edb93xx/Makefile4
-rw-r--r--arch/arm/boards/efika-mx-smartbook/Makefile6
-rw-r--r--arch/arm/boards/efika-mx-smartbook/env/config-board (renamed from arch/arm/boards/efika-mx-smartbook/env/init/config-board)0
-rw-r--r--arch/arm/boards/eukrea_cpuimx25/Makefile6
-rw-r--r--arch/arm/boards/eukrea_cpuimx27/Makefile3
-rw-r--r--arch/arm/boards/eukrea_cpuimx27/eukrea_cpuimx27.c4
-rw-r--r--arch/arm/boards/eukrea_cpuimx35/Makefile6
-rw-r--r--arch/arm/boards/eukrea_cpuimx51/Makefile6
-rw-r--r--arch/arm/boards/freescale-mx23-evk/Makefile3
-rw-r--r--arch/arm/boards/freescale-mx25-3-stack/Makefile3
-rw-r--r--arch/arm/boards/freescale-mx28-evk/Makefile3
-rw-r--r--arch/arm/boards/freescale-mx35-3-stack/Makefile6
-rw-r--r--arch/arm/boards/freescale-mx51-pdk/Makefile6
-rw-r--r--arch/arm/boards/freescale-mx51-pdk/env/config-board (renamed from arch/arm/boards/freescale-mx51-pdk/env/init/config-board)0
-rw-r--r--arch/arm/boards/freescale-mx53-loco/Makefile6
-rw-r--r--arch/arm/boards/freescale-mx53-loco/env/config-board (renamed from arch/arm/boards/freescale-mx53-loco/env/init/config-board)0
-rw-r--r--arch/arm/boards/freescale-mx53-smd/Makefile6
-rw-r--r--arch/arm/boards/freescale-mx6-arm2/Makefile7
-rw-r--r--arch/arm/boards/freescale-mx6-sabrelite/Makefile7
-rw-r--r--arch/arm/boards/freescale-mx6-sabrelite/env/config-board (renamed from arch/arm/boards/freescale-mx6-sabrelite/env/init/config-board)0
-rw-r--r--arch/arm/boards/friendlyarm-mini2440/Makefile4
-rw-r--r--arch/arm/boards/friendlyarm-mini6410/Makefile3
-rw-r--r--arch/arm/boards/friendlyarm-tiny210/Makefile4
-rw-r--r--arch/arm/boards/friendlyarm-tiny6410/Makefile5
-rw-r--r--arch/arm/boards/guf-cupid/Makefile3
-rw-r--r--arch/arm/boards/guf-neso/Makefile3
-rw-r--r--arch/arm/boards/guf-vincell/Makefile3
-rw-r--r--arch/arm/boards/imx21ads/Makefile3
-rw-r--r--arch/arm/boards/imx233-olinuxino/Makefile3
-rw-r--r--arch/arm/boards/imx27ads/Makefile3
-rw-r--r--arch/arm/boards/karo-tx25/Makefile3
-rw-r--r--arch/arm/boards/karo-tx28/Makefile3
-rw-r--r--arch/arm/boards/karo-tx51/Makefile6
-rw-r--r--arch/arm/boards/karo-tx53/Makefile6
-rw-r--r--arch/arm/boards/karo-tx53/env/config-board (renamed from arch/arm/boards/karo-tx53/env/init/config-board)0
-rw-r--r--arch/arm/boards/mioa701/Makefile3
-rw-r--r--arch/arm/boards/mmccpu/Makefile4
-rw-r--r--arch/arm/boards/netx/Makefile4
-rw-r--r--arch/arm/boards/nhk8815/Makefile3
-rw-r--r--arch/arm/boards/omap343xdsp/Makefile3
-rw-r--r--arch/arm/boards/omap3evm/Makefile3
-rw-r--r--arch/arm/boards/panda/Makefile3
-rw-r--r--arch/arm/boards/panda/env/config-board (renamed from arch/arm/boards/panda/env/init/config-board)0
-rw-r--r--arch/arm/boards/pcm027/Makefile3
-rw-r--r--arch/arm/boards/pcm037/Makefile3
-rw-r--r--arch/arm/boards/pcm037/env/config-board (renamed from arch/arm/boards/pcm037/env/init/config-board)0
-rw-r--r--arch/arm/boards/pcm038/Makefile4
-rw-r--r--arch/arm/boards/pcm038/env/config-board (renamed from arch/arm/boards/pcm038/env/init/config-board)0
-rw-r--r--arch/arm/boards/pcm043/Makefile3
-rw-r--r--arch/arm/boards/pcm049/Makefile4
-rw-r--r--arch/arm/boards/pcm051/Makefile3
-rw-r--r--arch/arm/boards/phycard-a-l1/Makefile3
-rw-r--r--arch/arm/boards/phycard-a-xl2/Makefile4
-rw-r--r--arch/arm/boards/phycard-i.MX27/Makefile3
-rw-r--r--arch/arm/boards/pm9261/Makefile4
-rw-r--r--arch/arm/boards/pm9263/Makefile4
-rw-r--r--arch/arm/boards/raspberry-pi/Makefile3
-rw-r--r--arch/arm/boards/scb9328/Makefile3
-rw-r--r--arch/arm/boards/telit-evk-pro3/env/config-board (renamed from arch/arm/boards/telit-evk-pro3/env/init/config-board)0
-rw-r--r--arch/arm/boards/tny-a926x/Makefile4
-rw-r--r--arch/arm/boards/toshiba-ac100/Makefile3
-rw-r--r--arch/arm/boards/tqma53/Makefile6
-rw-r--r--arch/arm/boards/tqma53/env/config-board (renamed from arch/arm/boards/tqma53/env/init/config-board)0
-rw-r--r--arch/arm/boards/usb-a926x/Makefile4
-rw-r--r--arch/arm/boards/versatile/Makefile3
-rw-r--r--arch/arm/configs/archosg9_defconfig4
-rw-r--r--arch/arm/configs/eukrea_cpuimx27_defconfig2
-rw-r--r--arch/arm/configs/omap3530_beagle_defconfig2
-rw-r--r--arch/arm/configs/pcm049_defconfig2
-rw-r--r--arch/arm/mach-at91/Makefile4
-rw-r--r--arch/arm/mach-ep93xx/Makefile5
-rw-r--r--arch/arm/mach-imx/Kconfig4
-rw-r--r--arch/arm/mach-imx/Makefile6
-rw-r--r--arch/arm/mach-omap/Makefile2
-rw-r--r--arch/sandbox/board/hostfile.c8
-rw-r--r--commands/nandtest.c44
-rw-r--r--common/hush.c24
-rw-r--r--defaultenv-2/base/bin/init1
-rw-r--r--defaultenv-2/base/config8
-rw-r--r--drivers/ata/Kconfig1
-rw-r--r--drivers/ata/ahci.c8
-rw-r--r--drivers/ata/intf_platform_ide.c8
-rw-r--r--drivers/ata/pata-imx.c8
-rw-r--r--drivers/ata/sata-imx.c8
-rw-r--r--drivers/base/driver.c2
-rw-r--r--drivers/gpio/Kconfig2
-rw-r--r--drivers/i2c/busses/i2c-gpio.c7
-rw-r--r--drivers/i2c/busses/i2c-imx.c7
-rw-r--r--drivers/i2c/busses/i2c-omap.c8
-rw-r--r--drivers/i2c/busses/i2c-versatile.c8
-rw-r--r--drivers/input/gpio_keys.c8
-rw-r--r--drivers/input/imx_keypad.c8
-rw-r--r--drivers/mci/Makefile2
-rw-r--r--drivers/mci/atmel_mci.c8
-rw-r--r--drivers/mci/imx-esdhc.c9
-rw-r--r--drivers/mci/imx.c10
-rw-r--r--drivers/mci/mxs.c9
-rw-r--r--drivers/mci/omap_hsmmc.c13
-rw-r--r--drivers/mci/pxamci.c9
-rw-r--r--drivers/mci/s3c.c9
-rw-r--r--drivers/mfd/Kconfig26
-rw-r--r--drivers/mfd/Makefile18
-rw-r--r--drivers/misc/jtag.c8
-rw-r--r--drivers/mtd/devices/docg3.c8
-rw-r--r--drivers/mtd/nand/atmel_nand.c8
-rw-r--r--drivers/mtd/nand/nand_imx.c12
-rw-r--r--drivers/mtd/nand/nand_mxs.c8
-rw-r--r--drivers/mtd/nand/nand_omap_gpmc.c8
-rw-r--r--drivers/mtd/nand/nand_s3c24xx.c12
-rw-r--r--drivers/mtd/nand/nomadik_nand.c9
-rw-r--r--drivers/net/Kconfig1
-rw-r--r--drivers/net/altera_tse.c10
-rw-r--r--drivers/net/at91_ether.c8
-rw-r--r--drivers/net/cpsw.c8
-rw-r--r--drivers/net/cs8900.c9
-rw-r--r--drivers/net/davinci_emac.c9
-rw-r--r--drivers/net/designware.c8
-rw-r--r--drivers/net/dm9k.c9
-rw-r--r--drivers/net/ep93xx.c9
-rw-r--r--drivers/net/fec_imx.c9
-rw-r--r--drivers/net/fec_mpc5200.c10
-rw-r--r--drivers/net/gianfar.c9
-rw-r--r--drivers/net/ks8851_mll.c9
-rw-r--r--drivers/net/macb.c9
-rw-r--r--drivers/net/netx_eth.c10
-rw-r--r--drivers/net/smc91111.c21
-rw-r--r--drivers/net/smc911x.c10
-rw-r--r--drivers/net/tap.c9
-rw-r--r--drivers/nor/cfi_flash.c8
-rw-r--r--drivers/serial/Makefile6
-rw-r--r--drivers/spi/altera_spi.c8
-rw-r--r--drivers/spi/atmel_spi.c9
-rw-r--r--drivers/spi/imx_spi.c10
-rw-r--r--drivers/spi/omap3_spi.c8
-rw-r--r--drivers/usb/gadget/at91_udc.c8
-rw-r--r--drivers/usb/gadget/fsl_udc.c9
-rw-r--r--drivers/usb/gadget/pxa27x_udc.c9
-rw-r--r--drivers/usb/host/ehci-atmel.c8
-rw-r--r--drivers/usb/host/ehci-hcd.c10
-rw-r--r--drivers/usb/host/ohci-at91.c8
-rw-r--r--drivers/usb/host/ohci-hcd.c10
-rw-r--r--drivers/usb/imx/chipidea-imx.c7
-rw-r--r--drivers/usb/otg/Kconfig2
-rw-r--r--drivers/video/atmel_hlcdfb.c7
-rw-r--r--drivers/video/atmel_lcdfb.c7
-rw-r--r--drivers/video/imx-ipu-fb.c8
-rw-r--r--drivers/video/imx.c9
-rw-r--r--drivers/video/pxa.c8
-rw-r--r--drivers/video/s3c24xx.c8
-rw-r--r--drivers/video/sdl.c7
-rw-r--r--drivers/video/stm.c8
-rw-r--r--drivers/w1/masters/w1-gpio.c7
-rw-r--r--drivers/watchdog/im28wd.c9
-rw-r--r--drivers/watchdog/imxwd.c8
-rw-r--r--fs/fs.c88
-rw-r--r--include/driver.h16
-rw-r--r--include/fs.h4
-rw-r--r--include/getopt.h2
-rw-r--r--include/linux/log2.h9
-rw-r--r--include/mfd/mc34704.h6
-rw-r--r--include/mfd/twl-core.h6
-rw-r--r--include/mfd/twl4030.h6
-rw-r--r--include/mfd/twl6030.h6
-rw-r--r--include/sizes.h12
-rw-r--r--include/usb/usb.h2
-rw-r--r--lib/getopt.c4
-rw-r--r--net/dhcp.c4
-rw-r--r--scripts/Makefile.lib8
-rw-r--r--scripts/bareboxenv.c16
182 files changed, 398 insertions, 812 deletions
diff --git a/arch/arm/boards/a9m2410/Makefile b/arch/arm/boards/a9m2410/Makefile
index 6842c844b..4bf737c1f 100644
--- a/arch/arm/boards/a9m2410/Makefile
+++ b/arch/arm/boards/a9m2410/Makefile
@@ -1,4 +1,3 @@
-obj-y += lowlevel_init.o
-pbl-y += lowlevel_init.o
+lwl-y += lowlevel_init.o
obj-y += a9m2410.o
diff --git a/arch/arm/boards/a9m2440/Makefile b/arch/arm/boards/a9m2440/Makefile
index 8a8f36df0..f21d389c1 100644
--- a/arch/arm/boards/a9m2440/Makefile
+++ b/arch/arm/boards/a9m2440/Makefile
@@ -1,5 +1,4 @@
-obj-y += lowlevel_init.o
-pbl-y += lowlevel_init.o
+lwl-y += lowlevel_init.o
obj-y += a9m2440.o
obj-$(CONFIG_MACH_A9M2410DEV) += a9m2410dev.o
diff --git a/arch/arm/boards/archosg9/Makefile b/arch/arm/boards/archosg9/Makefile
index 4cc5a2ef1..a78956f4e 100644
--- a/arch/arm/boards/archosg9/Makefile
+++ b/arch/arm/boards/archosg9/Makefile
@@ -1,4 +1,3 @@
obj-y += board.o
obj-$(CONFIG_ARM_BOARD_APPEND_ATAG) += archos_features.o
-obj-y += lowlevel.o mux.o
-pbl-y += lowlevel.o mux.o
+lwl-y += lowlevel.o mux.o
diff --git a/arch/arm/boards/at91sam9261ek/Makefile b/arch/arm/boards/at91sam9261ek/Makefile
index 170278317..1398c26a0 100644
--- a/arch/arm/boards/at91sam9261ek/Makefile
+++ b/arch/arm/boards/at91sam9261ek/Makefile
@@ -1,5 +1,3 @@
obj-y += init.o
-obj-$(CONFIG_HAVE_AT91_LOWLEVEL_INIT) += lowlevel_init.o
-
-pbl-$(CONFIG_HAVE_AT91_LOWLEVEL_INIT) += lowlevel_init.o
+lwl-$(CONFIG_HAVE_AT91_LOWLEVEL_INIT) += lowlevel_init.o
diff --git a/arch/arm/boards/at91sam9263ek/Makefile b/arch/arm/boards/at91sam9263ek/Makefile
index 170278317..1398c26a0 100644
--- a/arch/arm/boards/at91sam9263ek/Makefile
+++ b/arch/arm/boards/at91sam9263ek/Makefile
@@ -1,5 +1,3 @@
obj-y += init.o
-obj-$(CONFIG_HAVE_AT91_LOWLEVEL_INIT) += lowlevel_init.o
-
-pbl-$(CONFIG_HAVE_AT91_LOWLEVEL_INIT) += lowlevel_init.o
+lwl-$(CONFIG_HAVE_AT91_LOWLEVEL_INIT) += lowlevel_init.o
diff --git a/arch/arm/boards/beagle/Makefile b/arch/arm/boards/beagle/Makefile
index 88c223aa6..01c7a259e 100644
--- a/arch/arm/boards/beagle/Makefile
+++ b/arch/arm/boards/beagle/Makefile
@@ -1,3 +1,2 @@
obj-y += board.o
-obj-y += lowlevel.o
-pbl-y += lowlevel.o
+lwl-y += lowlevel.o
diff --git a/arch/arm/boards/beagle/env/init/config-board b/arch/arm/boards/beagle/env/config-board
index cc0820a08..cc0820a08 100644
--- a/arch/arm/boards/beagle/env/init/config-board
+++ b/arch/arm/boards/beagle/env/config-board
diff --git a/arch/arm/boards/beaglebone/Makefile b/arch/arm/boards/beaglebone/Makefile
index 3b7261c7c..092c31d6b 100644
--- a/arch/arm/boards/beaglebone/Makefile
+++ b/arch/arm/boards/beaglebone/Makefile
@@ -1,5 +1,2 @@
-obj-y += lowlevel.o
-pbl-y += lowlevel.o
+lwl-y += lowlevel.o
obj-y += board.o
-obj-y += lowlevel.o
-pbl-y += lowlevel.o
diff --git a/arch/arm/boards/ccxmx51/Makefile b/arch/arm/boards/ccxmx51/Makefile
index d39253329..422c91916 100644
--- a/arch/arm/boards/ccxmx51/Makefile
+++ b/arch/arm/boards/ccxmx51/Makefile
@@ -1,5 +1,4 @@
-obj-y += flash_header.o ccxmx51.o
-pbl-y += flash_header.o
+obj-y += ccxmx51.o
+lwl-y += flash_header.o
+lwl-y += lowlevel.o
obj-$(CONFIG_MACH_CCMX51_BASEBOARD) += ccxmx51js.o
-obj-y += lowlevel.o
-pbl-y += lowlevel.o
diff --git a/arch/arm/boards/chumby_falconwing/Makefile b/arch/arm/boards/chumby_falconwing/Makefile
index 360b55cf4..cf92c6a9e 100644
--- a/arch/arm/boards/chumby_falconwing/Makefile
+++ b/arch/arm/boards/chumby_falconwing/Makefile
@@ -1,3 +1,2 @@
obj-y = falconwing.o
-obj-y += lowlevel.o
-pbl-y += lowlevel.o
+lwl-y += lowlevel.o
diff --git a/arch/arm/boards/clep7212/Makefile b/arch/arm/boards/clep7212/Makefile
index a63aeaef3..4b0304feb 100644
--- a/arch/arm/boards/clep7212/Makefile
+++ b/arch/arm/boards/clep7212/Makefile
@@ -1,2 +1,2 @@
-obj-y += lowlevel.o clep7212.o
-pbl-y += lowlevel.o
+obj-y += clep7212.o
+lwl-y += lowlevel.o
diff --git a/arch/arm/boards/crystalfontz-cfa10036/Makefile b/arch/arm/boards/crystalfontz-cfa10036/Makefile
index 0b701ed5a..5b764a698 100644
--- a/arch/arm/boards/crystalfontz-cfa10036/Makefile
+++ b/arch/arm/boards/crystalfontz-cfa10036/Makefile
@@ -1,3 +1,2 @@
obj-y += cfa10036.o hwdetect.o
-obj-y += lowlevel.o
-pbl-y += lowlevel.o
+lwl-y += lowlevel.o
diff --git a/arch/arm/boards/crystalfontz-cfa10036/env/init/config-board b/arch/arm/boards/crystalfontz-cfa10036/env/config-board
index b99866ecf..b99866ecf 100644
--- a/arch/arm/boards/crystalfontz-cfa10036/env/init/config-board
+++ b/arch/arm/boards/crystalfontz-cfa10036/env/config-board
diff --git a/arch/arm/boards/edb93xx/Makefile b/arch/arm/boards/edb93xx/Makefile
index 945c963ff..eec5ed265 100644
--- a/arch/arm/boards/edb93xx/Makefile
+++ b/arch/arm/boards/edb93xx/Makefile
@@ -1,3 +1,3 @@
-obj-y += edb93xx.o flash_cfg.o pll_cfg.o sdram_cfg.o
-pbl-y += edb93xx.o flash_cfg.o pll_cfg.o sdram_cfg.o
+obj-y += edb93xx.o
+lwl-y += flash_cfg.o pll_cfg.o sdram_cfg.o
diff --git a/arch/arm/boards/efika-mx-smartbook/Makefile b/arch/arm/boards/efika-mx-smartbook/Makefile
index 6ca1c069c..a2c3104e6 100644
--- a/arch/arm/boards/efika-mx-smartbook/Makefile
+++ b/arch/arm/boards/efika-mx-smartbook/Makefile
@@ -1,5 +1,3 @@
-obj-y += lowlevel.o
-pbl-y += lowlevel.o
obj-y += board.o
-obj-y += flash_header.o
-pbl-y += flash_header.o
+lwl-y += lowlevel.o
+lwl-y += flash_header.o
diff --git a/arch/arm/boards/efika-mx-smartbook/env/init/config-board b/arch/arm/boards/efika-mx-smartbook/env/config-board
index 22993f9c2..22993f9c2 100644
--- a/arch/arm/boards/efika-mx-smartbook/env/init/config-board
+++ b/arch/arm/boards/efika-mx-smartbook/env/config-board
diff --git a/arch/arm/boards/eukrea_cpuimx25/Makefile b/arch/arm/boards/eukrea_cpuimx25/Makefile
index 56ed63f55..203fcfb7f 100644
--- a/arch/arm/boards/eukrea_cpuimx25/Makefile
+++ b/arch/arm/boards/eukrea_cpuimx25/Makefile
@@ -16,8 +16,6 @@
#
#
-obj-y += lowlevel.o
-pbl-y += lowlevel.o
obj-y += eukrea_cpuimx25.o
-obj-$(CONFIG_ARCH_IMX_INTERNAL_BOOT) += flash_header.o
-pbl-$(CONFIG_ARCH_IMX_INTERNAL_BOOT) += flash_header.o
+lwl-$(CONFIG_ARCH_IMX_INTERNAL_BOOT) += flash_header.o
+lwl-y += lowlevel.o
diff --git a/arch/arm/boards/eukrea_cpuimx27/Makefile b/arch/arm/boards/eukrea_cpuimx27/Makefile
index fe6d37615..2c3148abd 100644
--- a/arch/arm/boards/eukrea_cpuimx27/Makefile
+++ b/arch/arm/boards/eukrea_cpuimx27/Makefile
@@ -1,4 +1,3 @@
-obj-y += lowlevel_init.o
-pbl-y += lowlevel_init.o
+lwl-y += lowlevel_init.o
obj-y += eukrea_cpuimx27.o
diff --git a/arch/arm/boards/eukrea_cpuimx27/eukrea_cpuimx27.c b/arch/arm/boards/eukrea_cpuimx27/eukrea_cpuimx27.c
index 65b6c4484..d6905815a 100644
--- a/arch/arm/boards/eukrea_cpuimx27/eukrea_cpuimx27.c
+++ b/arch/arm/boards/eukrea_cpuimx27/eukrea_cpuimx27.c
@@ -230,14 +230,14 @@ console_initcall(eukrea_cpuimx27_console_init);
static int eukrea_cpuimx27_late_init(void)
{
-#ifdef CONFIG_I2C_LP3972
+#ifdef CONFIG_MFD_LP3972
struct i2c_client *client;
u8 reg[1];
#endif
console_flush();
imx27_add_fec(&fec_info);
-#ifdef CONFIG_I2C_LP3972
+#ifdef CONFIG_MFD_LP3972
client = lp3972_get_client();
if (!client)
return -ENODEV;
diff --git a/arch/arm/boards/eukrea_cpuimx35/Makefile b/arch/arm/boards/eukrea_cpuimx35/Makefile
index bdf06124f..227b76bbb 100644
--- a/arch/arm/boards/eukrea_cpuimx35/Makefile
+++ b/arch/arm/boards/eukrea_cpuimx35/Makefile
@@ -16,8 +16,6 @@
#
#
-obj-y += lowlevel.o
-pbl-y += lowlevel.o
obj-y += eukrea_cpuimx35.o
-obj-$(CONFIG_ARCH_IMX_INTERNAL_BOOT) += flash_header.o
-pbl-$(CONFIG_ARCH_IMX_INTERNAL_BOOT) += flash_header.o
+lwl-y += lowlevel.o
+lwl-$(CONFIG_ARCH_IMX_INTERNAL_BOOT) += flash_header.o
diff --git a/arch/arm/boards/eukrea_cpuimx51/Makefile b/arch/arm/boards/eukrea_cpuimx51/Makefile
index 1a237971b..1509c9245 100644
--- a/arch/arm/boards/eukrea_cpuimx51/Makefile
+++ b/arch/arm/boards/eukrea_cpuimx51/Makefile
@@ -1,5 +1,3 @@
obj-y += eukrea_cpuimx51.o
-obj-y += flash_header.o
-pbl-y += flash_header.o
-obj-y += lowlevel.o
-pbl-y += lowlevel.o
+lwl-y += flash_header.o
+lwl-y += lowlevel.o
diff --git a/arch/arm/boards/freescale-mx23-evk/Makefile b/arch/arm/boards/freescale-mx23-evk/Makefile
index 93866033a..3e0026252 100644
--- a/arch/arm/boards/freescale-mx23-evk/Makefile
+++ b/arch/arm/boards/freescale-mx23-evk/Makefile
@@ -1,4 +1,3 @@
#
obj-y := mx23-evk.o
-obj-y += lowlevel.o
-pbl-y += lowlevel.o
+lwl-y += lowlevel.o
diff --git a/arch/arm/boards/freescale-mx25-3-stack/Makefile b/arch/arm/boards/freescale-mx25-3-stack/Makefile
index 2c0240638..52c416e3a 100644
--- a/arch/arm/boards/freescale-mx25-3-stack/Makefile
+++ b/arch/arm/boards/freescale-mx25-3-stack/Makefile
@@ -16,6 +16,5 @@
#
#
-obj-y += lowlevel_init.o
-pbl-y += lowlevel_init.o
+lwl-y += lowlevel_init.o
obj-y += 3stack.o
diff --git a/arch/arm/boards/freescale-mx28-evk/Makefile b/arch/arm/boards/freescale-mx28-evk/Makefile
index 20396107f..a74ec2451 100644
--- a/arch/arm/boards/freescale-mx28-evk/Makefile
+++ b/arch/arm/boards/freescale-mx28-evk/Makefile
@@ -1,3 +1,2 @@
obj-y += mx28-evk.o
-obj-y += lowlevel.o
-pbl-y += lowlevel.o
+lwl-y += lowlevel.o
diff --git a/arch/arm/boards/freescale-mx35-3-stack/Makefile b/arch/arm/boards/freescale-mx35-3-stack/Makefile
index 3f224f6ad..a1110c2e0 100644
--- a/arch/arm/boards/freescale-mx35-3-stack/Makefile
+++ b/arch/arm/boards/freescale-mx35-3-stack/Makefile
@@ -1,6 +1,4 @@
-obj-y += lowlevel_init.o
-pbl-y += lowlevel_init.o
obj-y += 3stack.o
-obj-$(CONFIG_ARCH_IMX_INTERNAL_BOOT) += flash_header.o
-pbl-$(CONFIG_ARCH_IMX_INTERNAL_BOOT) += flash_header.o
+lwl-y += lowlevel_init.o
+lwl-$(CONFIG_ARCH_IMX_INTERNAL_BOOT) += flash_header.o
diff --git a/arch/arm/boards/freescale-mx51-pdk/Makefile b/arch/arm/boards/freescale-mx51-pdk/Makefile
index 2f4597618..d44f69771 100644
--- a/arch/arm/boards/freescale-mx51-pdk/Makefile
+++ b/arch/arm/boards/freescale-mx51-pdk/Makefile
@@ -1,5 +1,3 @@
obj-y += board.o
-obj-y += flash_header.o
-pbl-y += flash_header.o
-obj-y += lowlevel.o
-pbl-y += lowlevel.o
+lwl-y += flash_header.o
+lwl-y += lowlevel.o
diff --git a/arch/arm/boards/freescale-mx51-pdk/env/init/config-board b/arch/arm/boards/freescale-mx51-pdk/env/config-board
index cfc483eb3..cfc483eb3 100644
--- a/arch/arm/boards/freescale-mx51-pdk/env/init/config-board
+++ b/arch/arm/boards/freescale-mx51-pdk/env/config-board
diff --git a/arch/arm/boards/freescale-mx53-loco/Makefile b/arch/arm/boards/freescale-mx53-loco/Makefile
index 2f4597618..d44f69771 100644
--- a/arch/arm/boards/freescale-mx53-loco/Makefile
+++ b/arch/arm/boards/freescale-mx53-loco/Makefile
@@ -1,5 +1,3 @@
obj-y += board.o
-obj-y += flash_header.o
-pbl-y += flash_header.o
-obj-y += lowlevel.o
-pbl-y += lowlevel.o
+lwl-y += flash_header.o
+lwl-y += lowlevel.o
diff --git a/arch/arm/boards/freescale-mx53-loco/env/init/config-board b/arch/arm/boards/freescale-mx53-loco/env/config-board
index a6cf69ddb..a6cf69ddb 100644
--- a/arch/arm/boards/freescale-mx53-loco/env/init/config-board
+++ b/arch/arm/boards/freescale-mx53-loco/env/config-board
diff --git a/arch/arm/boards/freescale-mx53-smd/Makefile b/arch/arm/boards/freescale-mx53-smd/Makefile
index 2f4597618..d44f69771 100644
--- a/arch/arm/boards/freescale-mx53-smd/Makefile
+++ b/arch/arm/boards/freescale-mx53-smd/Makefile
@@ -1,5 +1,3 @@
obj-y += board.o
-obj-y += flash_header.o
-pbl-y += flash_header.o
-obj-y += lowlevel.o
-pbl-y += lowlevel.o
+lwl-y += flash_header.o
+lwl-y += lowlevel.o
diff --git a/arch/arm/boards/freescale-mx6-arm2/Makefile b/arch/arm/boards/freescale-mx6-arm2/Makefile
index 21fb7d9f9..d44f69771 100644
--- a/arch/arm/boards/freescale-mx6-arm2/Makefile
+++ b/arch/arm/boards/freescale-mx6-arm2/Makefile
@@ -1,4 +1,3 @@
-obj-y += board.o flash_header.o
-pbl-y += flash_header.o
-obj-y += lowlevel.o
-pbl-y += lowlevel.o
+obj-y += board.o
+lwl-y += flash_header.o
+lwl-y += lowlevel.o
diff --git a/arch/arm/boards/freescale-mx6-sabrelite/Makefile b/arch/arm/boards/freescale-mx6-sabrelite/Makefile
index 21fb7d9f9..d44f69771 100644
--- a/arch/arm/boards/freescale-mx6-sabrelite/Makefile
+++ b/arch/arm/boards/freescale-mx6-sabrelite/Makefile
@@ -1,4 +1,3 @@
-obj-y += board.o flash_header.o
-pbl-y += flash_header.o
-obj-y += lowlevel.o
-pbl-y += lowlevel.o
+obj-y += board.o
+lwl-y += flash_header.o
+lwl-y += lowlevel.o
diff --git a/arch/arm/boards/freescale-mx6-sabrelite/env/init/config-board b/arch/arm/boards/freescale-mx6-sabrelite/env/config-board
index e39e4b614..e39e4b614 100644
--- a/arch/arm/boards/freescale-mx6-sabrelite/env/init/config-board
+++ b/arch/arm/boards/freescale-mx6-sabrelite/env/config-board
diff --git a/arch/arm/boards/friendlyarm-mini2440/Makefile b/arch/arm/boards/friendlyarm-mini2440/Makefile
index f56e80382..da3520cc8 100644
--- a/arch/arm/boards/friendlyarm-mini2440/Makefile
+++ b/arch/arm/boards/friendlyarm-mini2440/Makefile
@@ -1,3 +1,3 @@
-obj-y += mini2440.o lowlevel_init.o
-pbl-y += lowlevel_init.o
+obj-y += mini2440.o
+lwl-y += lowlevel_init.o
diff --git a/arch/arm/boards/friendlyarm-mini6410/Makefile b/arch/arm/boards/friendlyarm-mini6410/Makefile
index d5fa853e2..0710d3929 100644
--- a/arch/arm/boards/friendlyarm-mini6410/Makefile
+++ b/arch/arm/boards/friendlyarm-mini6410/Makefile
@@ -1,3 +1,2 @@
obj-y += mini6410.o
-obj-y += lowlevel.o
-pbl-y += lowlevel.o
+lwl-y += lowlevel.o
diff --git a/arch/arm/boards/friendlyarm-tiny210/Makefile b/arch/arm/boards/friendlyarm-tiny210/Makefile
index 20060a53e..7deb17873 100644
--- a/arch/arm/boards/friendlyarm-tiny210/Makefile
+++ b/arch/arm/boards/friendlyarm-tiny210/Makefile
@@ -1,2 +1,2 @@
-obj-y += tiny210.o lowlevel.o
-pbl-y += lowlevel.o
+obj-y += tiny210.o
+lwl-y += lowlevel.o
diff --git a/arch/arm/boards/friendlyarm-tiny6410/Makefile b/arch/arm/boards/friendlyarm-tiny6410/Makefile
index eb0e0edc9..bf17eaa2e 100644
--- a/arch/arm/boards/friendlyarm-tiny6410/Makefile
+++ b/arch/arm/boards/friendlyarm-tiny6410/Makefile
@@ -1,4 +1,3 @@
obj-y += tiny6410.o
-obj-y += lowlevel.o
-pbl-y += lowlevel.o
-obj-$(CONFIG_MACH_TINY6410_FA) += development-board.o
+lwl-y += lowlevel.o
+lwl-$(CONFIG_MACH_TINY6410_FA) += development-board.o
diff --git a/arch/arm/boards/guf-cupid/Makefile b/arch/arm/boards/guf-cupid/Makefile
index e2e53c0ad..b33952c2b 100644
--- a/arch/arm/boards/guf-cupid/Makefile
+++ b/arch/arm/boards/guf-cupid/Makefile
@@ -16,6 +16,5 @@
#
#
-obj-y += lowlevel.o
-pbl-y += lowlevel.o
+lwl-y += lowlevel.o
obj-y += board.o
diff --git a/arch/arm/boards/guf-neso/Makefile b/arch/arm/boards/guf-neso/Makefile
index 89f0aba1a..81263ccab 100644
--- a/arch/arm/boards/guf-neso/Makefile
+++ b/arch/arm/boards/guf-neso/Makefile
@@ -1,4 +1,3 @@
-obj-y += lowlevel.o
-pbl-y += lowlevel.o
+lwl-y += lowlevel.o
obj-y += board.o
obj-y += pll_init.o
diff --git a/arch/arm/boards/guf-vincell/Makefile b/arch/arm/boards/guf-vincell/Makefile
index 8f4f9787d..aa30b7f2e 100644
--- a/arch/arm/boards/guf-vincell/Makefile
+++ b/arch/arm/boards/guf-vincell/Makefile
@@ -1,3 +1,2 @@
obj-y += board.o
-obj-y += flash_header.o lowlevel.o
-pbl-y += flash_header.o lowlevel.o
+lwl-y += flash_header.o lowlevel.o
diff --git a/arch/arm/boards/imx21ads/Makefile b/arch/arm/boards/imx21ads/Makefile
index e18f7d9c3..a43425b9e 100644
--- a/arch/arm/boards/imx21ads/Makefile
+++ b/arch/arm/boards/imx21ads/Makefile
@@ -1,3 +1,2 @@
-obj-y += lowlevel_init.o
-pbl-y += lowlevel_init.o
+lwl-y += lowlevel_init.o
obj-y += imx21ads.o
diff --git a/arch/arm/boards/imx233-olinuxino/Makefile b/arch/arm/boards/imx233-olinuxino/Makefile
index b8d92234c..644f7e580 100644
--- a/arch/arm/boards/imx233-olinuxino/Makefile
+++ b/arch/arm/boards/imx233-olinuxino/Makefile
@@ -1,3 +1,2 @@
obj-y = imx23-olinuxino.o
-obj-y += lowlevel.o
-pbl-y += lowlevel.o
+lwl-y += lowlevel.o
diff --git a/arch/arm/boards/imx27ads/Makefile b/arch/arm/boards/imx27ads/Makefile
index 88d1baf61..398db9b6b 100644
--- a/arch/arm/boards/imx27ads/Makefile
+++ b/arch/arm/boards/imx27ads/Makefile
@@ -1,4 +1,3 @@
-obj-y += lowlevel_init.o
-pbl-y += lowlevel_init.o
+lwl-y += lowlevel_init.o
obj-y += imx27ads.o
diff --git a/arch/arm/boards/karo-tx25/Makefile b/arch/arm/boards/karo-tx25/Makefile
index 62a546e69..58453b66c 100644
--- a/arch/arm/boards/karo-tx25/Makefile
+++ b/arch/arm/boards/karo-tx25/Makefile
@@ -16,6 +16,5 @@
#
#
-obj-y += lowlevel.o
-pbl-y += lowlevel.o
+lwl-y += lowlevel.o
obj-y += board.o
diff --git a/arch/arm/boards/karo-tx28/Makefile b/arch/arm/boards/karo-tx28/Makefile
index c90bf360e..c7d7398cf 100644
--- a/arch/arm/boards/karo-tx28/Makefile
+++ b/arch/arm/boards/karo-tx28/Makefile
@@ -1,4 +1,3 @@
obj-y += tx28.o
obj-$(CONFIG_MACH_TX28STK5) += tx28-stk5.o
-obj-y += lowlevel.o
-pbl-y += lowlevel.o
+lwl-y += lowlevel.o
diff --git a/arch/arm/boards/karo-tx51/Makefile b/arch/arm/boards/karo-tx51/Makefile
index 00f2b0521..988abea5a 100644
--- a/arch/arm/boards/karo-tx51/Makefile
+++ b/arch/arm/boards/karo-tx51/Makefile
@@ -1,5 +1,3 @@
obj-y += tx51.o
-obj-$(CONFIG_ARCH_IMX_INTERNAL_BOOT) += flash_header.o
-pbl-$(CONFIG_ARCH_IMX_INTERNAL_BOOT) += flash_header.o
-obj-y += lowlevel.o
-pbl-y += lowlevel.o
+lwl-$(CONFIG_ARCH_IMX_INTERNAL_BOOT) += flash_header.o
+lwl-y += lowlevel.o
diff --git a/arch/arm/boards/karo-tx53/Makefile b/arch/arm/boards/karo-tx53/Makefile
index 2f4597618..d44f69771 100644
--- a/arch/arm/boards/karo-tx53/Makefile
+++ b/arch/arm/boards/karo-tx53/Makefile
@@ -1,5 +1,3 @@
obj-y += board.o
-obj-y += flash_header.o
-pbl-y += flash_header.o
-obj-y += lowlevel.o
-pbl-y += lowlevel.o
+lwl-y += flash_header.o
+lwl-y += lowlevel.o
diff --git a/arch/arm/boards/karo-tx53/env/init/config-board b/arch/arm/boards/karo-tx53/env/config-board
index 3ebfac6c9..3ebfac6c9 100644
--- a/arch/arm/boards/karo-tx53/env/init/config-board
+++ b/arch/arm/boards/karo-tx53/env/config-board
diff --git a/arch/arm/boards/mioa701/Makefile b/arch/arm/boards/mioa701/Makefile
index 88c223aa6..01c7a259e 100644
--- a/arch/arm/boards/mioa701/Makefile
+++ b/arch/arm/boards/mioa701/Makefile
@@ -1,3 +1,2 @@
obj-y += board.o
-obj-y += lowlevel.o
-pbl-y += lowlevel.o
+lwl-y += lowlevel.o
diff --git a/arch/arm/boards/mmccpu/Makefile b/arch/arm/boards/mmccpu/Makefile
index 170278317..1398c26a0 100644
--- a/arch/arm/boards/mmccpu/Makefile
+++ b/arch/arm/boards/mmccpu/Makefile
@@ -1,5 +1,3 @@
obj-y += init.o
-obj-$(CONFIG_HAVE_AT91_LOWLEVEL_INIT) += lowlevel_init.o
-
-pbl-$(CONFIG_HAVE_AT91_LOWLEVEL_INIT) += lowlevel_init.o
+lwl-$(CONFIG_HAVE_AT91_LOWLEVEL_INIT) += lowlevel_init.o
diff --git a/arch/arm/boards/netx/Makefile b/arch/arm/boards/netx/Makefile
index ad694cd27..90979ace8 100644
--- a/arch/arm/boards/netx/Makefile
+++ b/arch/arm/boards/netx/Makefile
@@ -1,2 +1,2 @@
-obj-y += netx.o platform.o
-pbl-y += platform.o
+obj-y += netx.o
+lwl-y += platform.o
diff --git a/arch/arm/boards/nhk8815/Makefile b/arch/arm/boards/nhk8815/Makefile
index dbb2a713f..f4298529a 100644
--- a/arch/arm/boards/nhk8815/Makefile
+++ b/arch/arm/boards/nhk8815/Makefile
@@ -1,3 +1,2 @@
obj-y += setup.o
-obj-y += lowlevel.o
-pbl-y += lowlevel.o
+lwl-y += lowlevel.o
diff --git a/arch/arm/boards/omap343xdsp/Makefile b/arch/arm/boards/omap343xdsp/Makefile
index 88c223aa6..01c7a259e 100644
--- a/arch/arm/boards/omap343xdsp/Makefile
+++ b/arch/arm/boards/omap343xdsp/Makefile
@@ -1,3 +1,2 @@
obj-y += board.o
-obj-y += lowlevel.o
-pbl-y += lowlevel.o
+lwl-y += lowlevel.o
diff --git a/arch/arm/boards/omap3evm/Makefile b/arch/arm/boards/omap3evm/Makefile
index 88c223aa6..01c7a259e 100644
--- a/arch/arm/boards/omap3evm/Makefile
+++ b/arch/arm/boards/omap3evm/Makefile
@@ -1,3 +1,2 @@
obj-y += board.o
-obj-y += lowlevel.o
-pbl-y += lowlevel.o
+lwl-y += lowlevel.o
diff --git a/arch/arm/boards/panda/Makefile b/arch/arm/boards/panda/Makefile
index 53b9d5b88..5d4eb10b9 100644
--- a/arch/arm/boards/panda/Makefile
+++ b/arch/arm/boards/panda/Makefile
@@ -1,3 +1,2 @@
obj-y += board.o
-obj-y += lowlevel.o mux.o
-pbl-y += lowlevel.o mux.o
+lwl-y += lowlevel.o mux.o
diff --git a/arch/arm/boards/panda/env/init/config-board b/arch/arm/boards/panda/env/config-board
index 27e733965..27e733965 100644
--- a/arch/arm/boards/panda/env/init/config-board
+++ b/arch/arm/boards/panda/env/config-board
diff --git a/arch/arm/boards/pcm027/Makefile b/arch/arm/boards/pcm027/Makefile
index 1602c0a57..040cf9394 100644
--- a/arch/arm/boards/pcm027/Makefile
+++ b/arch/arm/boards/pcm027/Makefile
@@ -1,3 +1,2 @@
obj-y += board.o
-obj-y += lowlevel_init.o
-pbl-y += lowlevel_init.o
+lwl-y += lowlevel_init.o
diff --git a/arch/arm/boards/pcm037/Makefile b/arch/arm/boards/pcm037/Makefile
index 859501ce9..6c9ca6942 100644
--- a/arch/arm/boards/pcm037/Makefile
+++ b/arch/arm/boards/pcm037/Makefile
@@ -16,6 +16,5 @@
#
#
-obj-y += lowlevel.o
-pbl-y += lowlevel.o
+lwl-y += lowlevel.o
obj-y += pcm037.o
diff --git a/arch/arm/boards/pcm037/env/init/config-board b/arch/arm/boards/pcm037/env/config-board
index 03f9e97fc..03f9e97fc 100644
--- a/arch/arm/boards/pcm037/env/init/config-board
+++ b/arch/arm/boards/pcm037/env/config-board
diff --git a/arch/arm/boards/pcm038/Makefile b/arch/arm/boards/pcm038/Makefile
index 2c1b74d30..bfb55d398 100644
--- a/arch/arm/boards/pcm038/Makefile
+++ b/arch/arm/boards/pcm038/Makefile
@@ -1,3 +1,3 @@
-obj-y += lowlevel.o pcm038.o
-pbl-y += lowlevel.o
+obj-y += pcm038.o
+lwl-y += lowlevel.o
obj-$(CONFIG_MACH_PCM970_BASEBOARD) += pcm970.o
diff --git a/arch/arm/boards/pcm038/env/init/config-board b/arch/arm/boards/pcm038/env/config-board
index 93fd41bcf..93fd41bcf 100644
--- a/arch/arm/boards/pcm038/env/init/config-board
+++ b/arch/arm/boards/pcm038/env/config-board
diff --git a/arch/arm/boards/pcm043/Makefile b/arch/arm/boards/pcm043/Makefile
index 08d9a3606..72275ead7 100644
--- a/arch/arm/boards/pcm043/Makefile
+++ b/arch/arm/boards/pcm043/Makefile
@@ -16,6 +16,5 @@
#
#
-obj-y += lowlevel.o
-pbl-y += lowlevel.o
+lwl-y += lowlevel.o
obj-y += pcm043.o
diff --git a/arch/arm/boards/pcm049/Makefile b/arch/arm/boards/pcm049/Makefile
index df3764ca6..5d4eb10b9 100644
--- a/arch/arm/boards/pcm049/Makefile
+++ b/arch/arm/boards/pcm049/Makefile
@@ -1,2 +1,2 @@
-obj-y += board.o mux.o lowlevel.o
-pbl-y += lowlevel.o mux.o
+obj-y += board.o
+lwl-y += lowlevel.o mux.o
diff --git a/arch/arm/boards/pcm051/Makefile b/arch/arm/boards/pcm051/Makefile
index 8a571d909..092c31d6b 100644
--- a/arch/arm/boards/pcm051/Makefile
+++ b/arch/arm/boards/pcm051/Makefile
@@ -1,3 +1,2 @@
-obj-y += lowlevel.o
-pbl-y += lowlevel.o
+lwl-y += lowlevel.o
obj-y += board.o
diff --git a/arch/arm/boards/phycard-a-l1/Makefile b/arch/arm/boards/phycard-a-l1/Makefile
index 5565c3d06..a71feec39 100644
--- a/arch/arm/boards/phycard-a-l1/Makefile
+++ b/arch/arm/boards/phycard-a-l1/Makefile
@@ -15,5 +15,4 @@
#
obj-y += pca-a-l1.o
-obj-y += lowlevel.o
-pbl-y += lowlevel.o
+lwl-y += lowlevel.o
diff --git a/arch/arm/boards/phycard-a-xl2/Makefile b/arch/arm/boards/phycard-a-xl2/Makefile
index ae0208939..64782e0fc 100644
--- a/arch/arm/boards/phycard-a-xl2/Makefile
+++ b/arch/arm/boards/phycard-a-xl2/Makefile
@@ -13,5 +13,5 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
-obj-y += pca-a-xl2.o mux.o lowlevel.o
-pbl-y += mux.o lowlevel.o
+obj-y += pca-a-xl2.o
+lwl-y += mux.o lowlevel.o
diff --git a/arch/arm/boards/phycard-i.MX27/Makefile b/arch/arm/boards/phycard-i.MX27/Makefile
index 60253e55b..bbff2893f 100644
--- a/arch/arm/boards/phycard-i.MX27/Makefile
+++ b/arch/arm/boards/phycard-i.MX27/Makefile
@@ -1,4 +1,3 @@
-obj-y += lowlevel_init.o
-pbl-y += lowlevel_init.o
+lwl-y += lowlevel_init.o
obj-y += pca100.o
diff --git a/arch/arm/boards/pm9261/Makefile b/arch/arm/boards/pm9261/Makefile
index 170278317..1398c26a0 100644
--- a/arch/arm/boards/pm9261/Makefile
+++ b/arch/arm/boards/pm9261/Makefile
@@ -1,5 +1,3 @@
obj-y += init.o
-obj-$(CONFIG_HAVE_AT91_LOWLEVEL_INIT) += lowlevel_init.o
-
-pbl-$(CONFIG_HAVE_AT91_LOWLEVEL_INIT) += lowlevel_init.o
+lwl-$(CONFIG_HAVE_AT91_LOWLEVEL_INIT) += lowlevel_init.o
diff --git a/arch/arm/boards/pm9263/Makefile b/arch/arm/boards/pm9263/Makefile
index 170278317..1398c26a0 100644
--- a/arch/arm/boards/pm9263/Makefile
+++ b/arch/arm/boards/pm9263/Makefile
@@ -1,5 +1,3 @@
obj-y += init.o
-obj-$(CONFIG_HAVE_AT91_LOWLEVEL_INIT) += lowlevel_init.o
-
-pbl-$(CONFIG_HAVE_AT91_LOWLEVEL_INIT) += lowlevel_init.o
+lwl-$(CONFIG_HAVE_AT91_LOWLEVEL_INIT) += lowlevel_init.o
diff --git a/arch/arm/boards/raspberry-pi/Makefile b/arch/arm/boards/raspberry-pi/Makefile
index 825b30b3c..978383aea 100644
--- a/arch/arm/boards/raspberry-pi/Makefile
+++ b/arch/arm/boards/raspberry-pi/Makefile
@@ -1,3 +1,2 @@
obj-$(CONFIG_MACH_RPI) += rpi.o
-obj-y += lowlevel.o
-pbl-y += lowlevel.o
+lwl-y += lowlevel.o
diff --git a/arch/arm/boards/scb9328/Makefile b/arch/arm/boards/scb9328/Makefile
index 69d397022..002f21839 100644
--- a/arch/arm/boards/scb9328/Makefile
+++ b/arch/arm/boards/scb9328/Makefile
@@ -1,4 +1,3 @@
-obj-y += lowlevel_init.o
-pbl-y += lowlevel_init.o
+lwl-y += lowlevel_init.o
obj-y += scb9328.o
diff --git a/arch/arm/boards/telit-evk-pro3/env/init/config-board b/arch/arm/boards/telit-evk-pro3/env/config-board
index 741b90213..741b90213 100644
--- a/arch/arm/boards/telit-evk-pro3/env/init/config-board
+++ b/arch/arm/boards/telit-evk-pro3/env/config-board
diff --git a/arch/arm/boards/tny-a926x/Makefile b/arch/arm/boards/tny-a926x/Makefile
index caa71639f..45b10ec63 100644
--- a/arch/arm/boards/tny-a926x/Makefile
+++ b/arch/arm/boards/tny-a926x/Makefile
@@ -5,6 +5,4 @@ obj-$(CONFIG_AT91_BOOTSTRAP) += $(bootstrap-y)
lowlevel_init-$(CONFIG_MACH_TNY_A9263) = tny_a9263_lowlevel_init.o
-obj-$(CONFIG_HAVE_AT91_LOWLEVEL_INIT) += $(lowlevel_init-y)
-
-pbl-$(CONFIG_HAVE_AT91_LOWLEVEL_INIT) += $(lowlevel_init-y)
+lwl-$(CONFIG_HAVE_AT91_LOWLEVEL_INIT) += $(lowlevel_init-y)
diff --git a/arch/arm/boards/toshiba-ac100/Makefile b/arch/arm/boards/toshiba-ac100/Makefile
index 5b7435117..4d321e162 100644
--- a/arch/arm/boards/toshiba-ac100/Makefile
+++ b/arch/arm/boards/toshiba-ac100/Makefile
@@ -1,4 +1,3 @@
obj-y += board.o
obj-$(CONFIG_DRIVER_SERIAL_NS16550) += serial.o
-obj-y += lowlevel.o
-pbl-y += lowlevel.o
+lwl-y += lowlevel.o
diff --git a/arch/arm/boards/tqma53/Makefile b/arch/arm/boards/tqma53/Makefile
index 2f4597618..d44f69771 100644
--- a/arch/arm/boards/tqma53/Makefile
+++ b/arch/arm/boards/tqma53/Makefile
@@ -1,5 +1,3 @@
obj-y += board.o
-obj-y += flash_header.o
-pbl-y += flash_header.o
-obj-y += lowlevel.o
-pbl-y += lowlevel.o
+lwl-y += flash_header.o
+lwl-y += lowlevel.o
diff --git a/arch/arm/boards/tqma53/env/init/config-board b/arch/arm/boards/tqma53/env/config-board
index 477643831..477643831 100644
--- a/arch/arm/boards/tqma53/env/init/config-board
+++ b/arch/arm/boards/tqma53/env/config-board
diff --git a/arch/arm/boards/usb-a926x/Makefile b/arch/arm/boards/usb-a926x/Makefile
index 88f163f5f..f1370a4df 100644
--- a/arch/arm/boards/usb-a926x/Makefile
+++ b/arch/arm/boards/usb-a926x/Makefile
@@ -5,6 +5,4 @@ obj-$(CONFIG_AT91_BOOTSTRAP) += $(bootstrap-y)
lowlevel_init-$(CONFIG_MACH_USB_A9263) = usb_a9263_lowlevel_init.o
-obj-$(CONFIG_HAVE_AT91_LOWLEVEL_INIT) += $(lowlevel_init-y)
-
-pbl-$(CONFIG_HAVE_AT91_LOWLEVEL_INIT) += $(lowlevel_init-y)
+lwl-$(CONFIG_HAVE_AT91_LOWLEVEL_INIT) += $(lowlevel_init-y)
diff --git a/arch/arm/boards/versatile/Makefile b/arch/arm/boards/versatile/Makefile
index 9dc6869a4..89232a788 100644
--- a/arch/arm/boards/versatile/Makefile
+++ b/arch/arm/boards/versatile/Makefile
@@ -1,3 +1,2 @@
obj-$(CONFIG_MACH_VERSATILEPB) += versatilepb.o
-obj-y += lowlevel.o
-pbl-y += lowlevel.o
+lwl-y += lowlevel.o
diff --git a/arch/arm/configs/archosg9_defconfig b/arch/arm/configs/archosg9_defconfig
index 9a051dac8..452d2ec47 100644
--- a/arch/arm/configs/archosg9_defconfig
+++ b/arch/arm/configs/archosg9_defconfig
@@ -59,8 +59,8 @@ CONFIG_BAUDRATE=115200
# CONFIG_SPI is not set
CONFIG_I2C=y
CONFIG_I2C_OMAP=y
-CONFIG_I2C_TWLCORE=y
-CONFIG_I2C_TWL6030=y
+CONFIG_MFD_TWLCORE=y
+CONFIG_MFD_TWL6030=y
CONFIG_MCI=y
CONFIG_MCI_STARTUP=y
CONFIG_MCI_OMAP_HSMMC=y
diff --git a/arch/arm/configs/eukrea_cpuimx27_defconfig b/arch/arm/configs/eukrea_cpuimx27_defconfig
index 880941d2f..c751d1cef 100644
--- a/arch/arm/configs/eukrea_cpuimx27_defconfig
+++ b/arch/arm/configs/eukrea_cpuimx27_defconfig
@@ -45,7 +45,7 @@ CONFIG_DRIVER_NET_FEC_IMX=y
# CONFIG_SPI is not set
CONFIG_I2C=y
CONFIG_I2C_IMX=y
-CONFIG_I2C_LP3972=y
+CONFIG_MFD_LP3972=y
CONFIG_DRIVER_CFI=y
# CONFIG_DRIVER_CFI_AMD is not set
# CONFIG_DRIVER_CFI_BANK_WIDTH_1 is not set
diff --git a/arch/arm/configs/omap3530_beagle_defconfig b/arch/arm/configs/omap3530_beagle_defconfig
index 1807e04d3..e3eee8dfc 100644
--- a/arch/arm/configs/omap3530_beagle_defconfig
+++ b/arch/arm/configs/omap3530_beagle_defconfig
@@ -80,7 +80,7 @@ CONFIG_USB_TWL4030=y
CONFIG_MCI=y
CONFIG_MCI_STARTUP=y
CONFIG_MCI_OMAP_HSMMC=y
-CONFIG_I2C_TWL4030=y
+CONFIG_MFD_TWL4030=y
CONFIG_FS_TFTP=y
CONFIG_FS_NFS=y
CONFIG_FS_FAT=y
diff --git a/arch/arm/configs/pcm049_defconfig b/arch/arm/configs/pcm049_defconfig
index 19df95a3c..80dbd710f 100644
--- a/arch/arm/configs/pcm049_defconfig
+++ b/arch/arm/configs/pcm049_defconfig
@@ -64,7 +64,7 @@ CONFIG_USB=y
CONFIG_MCI=y
CONFIG_MCI_STARTUP=y
CONFIG_MCI_OMAP_HSMMC=y
-CONFIG_I2C_TWL6030=y
+CONFIG_MFD_TWL6030=y
CONFIG_FS_TFTP=y
CONFIG_FS_FAT=y
CONFIG_FS_FAT_WRITE=y
diff --git a/arch/arm/mach-at91/Makefile b/arch/arm/mach-at91/Makefile
index 53ca57043..f098e0eab 100644
--- a/arch/arm/mach-at91/Makefile
+++ b/arch/arm/mach-at91/Makefile
@@ -12,9 +12,7 @@ lowlevel_init-$(CONFIG_SOC_AT91SAM9X5) += at91sam9x5_lowlevel_init.o
lowlevel_init-$(CONFIG_SOC_AT91SAM9N12) += at91sam9n12_lowlevel_init.o
lowlevel_init-$(CONFIG_ARCH_AT91RM9200) = at91rm9200_lowlevel_init.o
lowlevel_init-$(CONFIG_ARCH_SAMA5D3) += sama5d3_lowlevel_init.o
-obj-y += $(lowlevel_init-y)
-
-pbl-y += $(lowlevel_init-y)
+lwl-y += $(lowlevel_init-y)
obj-$(CONFIG_AT91SAM9_RESET) += at91sam9_reset.o
obj-$(CONFIG_AT91SAM9G45_RESET) += at91sam9g45_reset.o
diff --git a/arch/arm/mach-ep93xx/Makefile b/arch/arm/mach-ep93xx/Makefile
index 0ff0b6692..fc0cb1afc 100644
--- a/arch/arm/mach-ep93xx/Makefile
+++ b/arch/arm/mach-ep93xx/Makefile
@@ -1,4 +1,3 @@
-obj-y += clocksource.o gpio.o led.o header.o
+obj-y += clocksource.o gpio.o header.o
-obj-y += lowlevel_init.o
-pbl-y += lowlevel_init.o led.o
+lwl-y += lowlevel_init.o led.o
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index 3b2fdc295..1308f3c3d 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -249,7 +249,7 @@ config MACH_EUKREA_CPUIMX25
config MACH_FREESCALE_MX25_3STACK
bool "Freescale MX25 3stack"
select I2C
- select I2C_MC34704
+ select MFD_MC34704
help
Say Y here if you are using the Freescale MX25 3stack board equipped
with a Freescale i.MX25 Processor
@@ -357,7 +357,7 @@ config MACH_FREESCALE_MX35_3STACK
select I2C
select I2C_IMX
select MFD_MC13XXX
- select I2C_MC9SDZ60
+ select MFD_MC9SDZ60
help
Say Y here if you are using the Freescale MX35 3stack board equipped
with a Freescale i.MX35 Processor
diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile
index 1c280353b..4adf52221 100644
--- a/arch/arm/mach-imx/Makefile
+++ b/arch/arm/mach-imx/Makefile
@@ -11,11 +11,7 @@ pbl-$(CONFIG_ARCH_IMX53) += imx53.o imx5.o esdctl-v4.o
obj-$(CONFIG_ARCH_IMX6) += imx6.o iomux-v3.o usb-imx6.o clk-imx6.o
obj-$(CONFIG_IMX_IIM) += iim.o
obj-$(CONFIG_NAND_IMX) += nand.o
-ifdef CONFIG_PBL_IMAGE
-pbl-$(CONFIG_ARCH_IMX_EXTERNAL_BOOT_NAND) += external-nand-boot.o
-else
-obj-$(CONFIG_ARCH_IMX_EXTERNAL_BOOT_NAND) += external-nand-boot.o
-endif
+lwl-$(CONFIG_ARCH_IMX_EXTERNAL_BOOT_NAND) += external-nand-boot.o
obj-$(CONFIG_COMMON_CLK) += clk-pllv1.o clk-pllv2.o clk-pllv3.o clk-pfd.o
obj-y += devices.o imx.o esdctl.o
obj-y += boot.o
diff --git a/arch/arm/mach-omap/Makefile b/arch/arm/mach-omap/Makefile
index 94e42c6e7..aaa0ceaa6 100644
--- a/arch/arm/mach-omap/Makefile
+++ b/arch/arm/mach-omap/Makefile
@@ -28,6 +28,6 @@ obj-$(CONFIG_OMAP3_CLOCK_CONFIG) += omap3_clock.o
pbl-$(CONFIG_OMAP3_CLOCK_CONFIG) += omap3_clock.o
obj-$(CONFIG_OMAP_GPMC) += gpmc.o devices-gpmc-nand.o
obj-$(CONFIG_SHELL_NONE) += xload.o
-obj-$(CONFIG_I2C_TWL6030) += omap4_twl6030_mmc.o
+obj-$(CONFIG_MFD_TWL6030) += omap4_twl6030_mmc.o
obj-$(CONFIG_OMAP4_USBBOOT) += omap4_rom_usb.o
obj-y += gpio.o
diff --git a/arch/sandbox/board/hostfile.c b/arch/sandbox/board/hostfile.c
index a3ebe19fa..48c6ea35a 100644
--- a/arch/sandbox/board/hostfile.c
+++ b/arch/sandbox/board/hostfile.c
@@ -89,13 +89,7 @@ static struct driver_d hf_drv = {
.probe = hf_probe,
.info = hf_info,
};
-
-static int hf_init(void)
-{
- return platform_driver_register(&hf_drv);
-}
-
-device_initcall(hf_init);
+device_platform_driver(hf_drv);
int barebox_register_filedev(struct hf_platform_data *hf)
{
diff --git a/commands/nandtest.c b/commands/nandtest.c
index f08f8eb88..ba15ecfb3 100644
--- a/commands/nandtest.c
+++ b/commands/nandtest.c
@@ -43,41 +43,17 @@ static unsigned int ecc_stats_over;
static unsigned int ecc_failed_cnt;
/*
- * Implementation of pread with lseek and read.
- */
-static ssize_t pread(int fd, void *buf, size_t count, loff_t offset)
-{
- int ret;
-
- /* Seek to offset */
- ret = lseek(fd, offset, SEEK_SET);
- if (ret < 0)
- perror("lseek");
-
- /* Read from flash and put it into buf */
- ret = read(fd, buf, count);
- if (ret < 0)
- perror("read");
-
- return 0;
-}
-
-/*
* Implementation of pwrite with lseek and write.
*/
-static ssize_t pwrite(int fd, const void *buf,
+static ssize_t __pwrite(int fd, const void *buf,
size_t count, loff_t offset, loff_t length)
{
- int ret;
-
- ret = lseek(fd, offset, SEEK_SET);
- if (ret < 0)
- perror("lseek");
+ ssize_t ret;
/* Write buf to flash */
- ret = write(fd, buf, count);
+ ret = pwrite(fd, buf, count, offset);
if (ret < 0) {
- perror("write");
+ perror("pwrite");
if (markbad) {
printf("\nMark block bad at 0x%08llx\n",
offset + memregion.offset);
@@ -88,7 +64,7 @@ static ssize_t pwrite(int fd, const void *buf,
}
flush(fd);
- return 0;
+ return ret;
}
/*
@@ -119,7 +95,7 @@ static int erase_and_write(loff_t ofs, unsigned char *data,
for (i = 0; i < meminfo.erasesize;
i += meminfo.writesize) {
/* Write data to given offset */
- pwrite(fd, data + i, meminfo.writesize,
+ __pwrite(fd, data + i, meminfo.writesize,
ofs + i, length);
/* Read data from offset */
@@ -136,7 +112,7 @@ static int erase_and_write(loff_t ofs, unsigned char *data,
newstats.corrected - oldstats.corrected,
ofs + memregion.offset + i);
init_progression_bar(length);
- show_progress(ofs);
+ show_progress(ofs + i);
if ((newstats.corrected-oldstats.corrected) >=
MAX_ECC_BITS) {
/* Increment ECC stats that
@@ -154,7 +130,7 @@ static int erase_and_write(loff_t ofs, unsigned char *data,
printf("\nECC failed at page 0x%08llx\n",
ofs + memregion.offset + i);
init_progression_bar(length);
- show_progress(ofs);
+ show_progress(ofs + i);
oldstats.failed = newstats.failed;
ecc_failed_cnt++;
}
@@ -316,8 +292,8 @@ static int do_nandtest(int argc, char *argv[])
for (iter = 0; iter < nr_iterations; iter++) {
init_progression_bar(length);
- for (test_ofs = flash_offset;
- test_ofs < flash_offset + length;
+ for (test_ofs = 0;
+ test_ofs < length;
test_ofs += meminfo.erasesize) {
show_progress(test_ofs);
srand(seed);
diff --git a/common/hush.c b/common/hush.c
index 1f468f601..b5e111a01 100644
--- a/common/hush.c
+++ b/common/hush.c
@@ -335,6 +335,19 @@ static int b_addchr(o_string *o, int ch)
return 0;
}
+static int b_addstr(o_string *o, const char *str)
+{
+ int ret;
+
+ while (*str) {
+ ret = b_addchr(o, *str++);
+ if (ret)
+ return ret;
+ }
+
+ return 0;
+}
+
static void b_reset(o_string *o)
{
o->length = 0;
@@ -782,7 +795,8 @@ static int run_pipe_real(struct p_context *ctx, struct pipe *pi)
remove_quotes(globbuf.gl_pathc, globbuf.gl_pathv);
- if (!strcmp(globbuf.gl_pathv[0], "getopt")) {
+ if (!strcmp(globbuf.gl_pathv[0], "getopt") &&
+ IS_ENABLED(CONFIG_HUSH_GETOPT)) {
ret = builtin_getopt(ctx, child, globbuf.gl_pathc, globbuf.gl_pathv);
} else if (!strcmp(globbuf.gl_pathv[0], "exit")) {
ret = builtin_exit(ctx, child, globbuf.gl_pathc, globbuf.gl_pathv);
@@ -1406,6 +1420,14 @@ static int handle_dollar(o_string *dest, struct p_context *ctx, struct in_str *i
}
b_addchr(dest, SPECIAL_VAR_SYMBOL);
break;
+ case '*':
+ for (i = 1; i < ctx->global_argc; i++) {
+ b_addstr(dest, ctx->global_argv[i]);
+ b_addchr(dest, ' ');
+ }
+
+ advance = 1;
+ break;
default:
b_addchr(dest, '$');
}
diff --git a/defaultenv-2/base/bin/init b/defaultenv-2/base/bin/init
index b606b634a..e4a7feef7 100644
--- a/defaultenv-2/base/bin/init
+++ b/defaultenv-2/base/bin/init
@@ -13,6 +13,7 @@ global linux.bootargs.dyn.ip
global linux.bootargs.dyn.root
global editcmd=sedit
+/env/config-board
/env/config
if [ -e /env/menu ]; then
diff --git a/defaultenv-2/base/config b/defaultenv-2/base/config
index 189e5a68f..dec059533 100644
--- a/defaultenv-2/base/config
+++ b/defaultenv-2/base/config
@@ -6,16 +6,16 @@
#global.hostname=
# set to false if you do not want to have colors
-global.allow_color=true
+#global.allow_color=true
# user (used for network filenames)
-global.user=none
+#global.user=none
# timeout in seconds before the default boot entry is started
-global.autoboot_timeout=3
+#global.autoboot_timeout=3
# default boot entry (one of /env/boot/*)
-global.boot.default=net
+#global.boot.default=net
# base bootargs
#global.linux.bootargs.base="console=ttyS0,115200"
diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig
index ff6528acf..42f2065a6 100644
--- a/drivers/ata/Kconfig
+++ b/drivers/ata/Kconfig
@@ -38,6 +38,7 @@ config DISK_AHCI
select DISK_DRIVE
config DISK_AHCI_IMX
+ depends on ARCH_IMX
depends on DISK_AHCI
bool "i.MX AHCI support"
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index 2d6e42232..4d5b52afe 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -685,10 +685,4 @@ static struct driver_d ahci_driver = {
.info = ahci_info,
.of_compatible = DRV_OF_COMPAT(ahci_dt_ids),
};
-
-static int ahci_init(void)
-{
- return platform_driver_register(&ahci_driver);
-}
-
-device_initcall(ahci_init);
+device_platform_driver(ahci_driver);
diff --git a/drivers/ata/intf_platform_ide.c b/drivers/ata/intf_platform_ide.c
index 6473b38ba..0b56eb4aa 100644
--- a/drivers/ata/intf_platform_ide.c
+++ b/drivers/ata/intf_platform_ide.c
@@ -108,13 +108,7 @@ static struct driver_d platform_ide_driver = {
.name = "ide_intf",
.probe = platform_ide_probe,
};
-
-static int platform_ide_init(void)
-{
- return platform_driver_register(&platform_ide_driver);
-}
-
-device_initcall(platform_ide_init);
+device_platform_driver(platform_ide_driver);
/**
* @file
diff --git a/drivers/ata/pata-imx.c b/drivers/ata/pata-imx.c
index 202f53756..5d4488345 100644
--- a/drivers/ata/pata-imx.c
+++ b/drivers/ata/pata-imx.c
@@ -194,10 +194,4 @@ static struct driver_d imx_pata_driver = {
.name = "imx-pata",
.probe = imx_pata_probe,
};
-
-static int imx_pata_init(void)
-{
- return platform_driver_register(&imx_pata_driver);
-}
-
-device_initcall(imx_pata_init);
+device_platform_driver(imx_pata_driver);
diff --git a/drivers/ata/sata-imx.c b/drivers/ata/sata-imx.c
index fc57f5f10..bd48fae1f 100644
--- a/drivers/ata/sata-imx.c
+++ b/drivers/ata/sata-imx.c
@@ -146,10 +146,4 @@ static struct driver_d imx_sata_driver = {
.info = ahci_info,
.id_table = imx_sata_ids,
};
-
-static int ahci_init(void)
-{
- return platform_driver_register(&imx_sata_driver);
-}
-
-device_initcall(ahci_init);
+device_platform_driver(imx_sata_driver);
diff --git a/drivers/base/driver.c b/drivers/base/driver.c
index d4066fc17..fa30c6805 100644
--- a/drivers/base/driver.c
+++ b/drivers/base/driver.c
@@ -230,7 +230,7 @@ int register_driver(struct driver_d *drv)
}
EXPORT_SYMBOL(register_driver);
-static struct resource *dev_get_resource(struct device_d *dev, int num)
+struct resource *dev_get_resource(struct device_d *dev, int num)
{
int i, n = 0;
diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
index 89be6843a..5500ad112 100644
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -17,7 +17,7 @@ config GPIO_PL061
Say yes here to support the PrimeCell PL061 GPIO device
config GPIO_STMPE
- depends on I2C_STMPE
+ depends on MFD_STMPE
bool "STMPE GPIO Expander"
endmenu
diff --git a/drivers/i2c/busses/i2c-gpio.c b/drivers/i2c/busses/i2c-gpio.c
index 98ce2d59a..8b49c2c1b 100644
--- a/drivers/i2c/busses/i2c-gpio.c
+++ b/drivers/i2c/busses/i2c-gpio.c
@@ -169,9 +169,4 @@ static struct driver_d i2c_gpio_driver = {
.name = "i2c-gpio",
.probe = i2c_gpio_probe,
};
-
-static int __init i2c_gpio_init(void)
-{
- return platform_driver_register(&i2c_gpio_driver);
-}
-device_initcall(i2c_gpio_init);
+device_platform_driver(i2c_gpio_driver);
diff --git a/drivers/i2c/busses/i2c-imx.c b/drivers/i2c/busses/i2c-imx.c
index 68348eb15..9fcfd5c6f 100644
--- a/drivers/i2c/busses/i2c-imx.c
+++ b/drivers/i2c/busses/i2c-imx.c
@@ -576,9 +576,4 @@ static struct driver_d i2c_fsl_driver = {
.probe = i2c_fsl_probe,
.name = DRIVER_NAME,
};
-
-static int __init i2c_adap_fsl_init(void)
-{
- return platform_driver_register(&i2c_fsl_driver);
-}
-device_initcall(i2c_adap_fsl_init);
+device_platform_driver(i2c_fsl_driver);
diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
index f371875aa..503443f9b 100644
--- a/drivers/i2c/busses/i2c-omap.c
+++ b/drivers/i2c/busses/i2c-omap.c
@@ -860,13 +860,7 @@ static struct driver_d omap_i2c_driver = {
.probe = i2c_omap_probe,
.name = DRIVER_NAME,
};
-
-/* I2C may be needed to bring up other drivers */
-static int __init omap_i2c_init_driver(void)
-{
- return platform_driver_register(&omap_i2c_driver);
-}
-device_initcall(omap_i2c_init_driver);
+device_platform_driver(omap_i2c_driver);
MODULE_AUTHOR("MontaVista Software, Inc. (and others)");
MODULE_DESCRIPTION("TI OMAP I2C bus adapter");
diff --git a/drivers/i2c/busses/i2c-versatile.c b/drivers/i2c/busses/i2c-versatile.c
index 7c993226f..d395e1d2f 100644
--- a/drivers/i2c/busses/i2c-versatile.c
+++ b/drivers/i2c/busses/i2c-versatile.c
@@ -103,10 +103,4 @@ static struct driver_d i2c_versatile_driver = {
.name = "versatile-i2c",
.probe = i2c_versatile_probe,
};
-
-static int __init i2c_versatile_init(void)
-{
- return platform_driver_register(&i2c_versatile_driver);
-}
-
-device_initcall(i2c_versatile_init);
+device_platform_driver(i2c_versatile_driver);
diff --git a/drivers/input/gpio_keys.c b/drivers/input/gpio_keys.c
index 543ad1a47..b02e0ede3 100644
--- a/drivers/input/gpio_keys.c
+++ b/drivers/input/gpio_keys.c
@@ -106,10 +106,4 @@ static struct driver_d gpio_keys_driver = {
.name = "gpio_keys",
.probe = gpio_keys_probe,
};
-
-static int gpio_keys_init(void)
-{
- platform_driver_register(&gpio_keys_driver);
- return 0;
-}
-device_initcall(gpio_keys_init);
+device_platform_driver(gpio_keys_driver);
diff --git a/drivers/input/imx_keypad.c b/drivers/input/imx_keypad.c
index f6c3b1b8b..2ee3d0fa0 100644
--- a/drivers/input/imx_keypad.c
+++ b/drivers/input/imx_keypad.c
@@ -454,10 +454,4 @@ static struct driver_d imx_keypad_driver = {
.name = "imx-kpp",
.probe = imx_keypad_probe,
};
-
-static int imx_keypad_init(void)
-{
- platform_driver_register(&imx_keypad_driver);
- return 0;
-}
-device_initcall(imx_keypad_init);
+device_platform_driver(imx_keypad_driver);
diff --git a/drivers/mci/Makefile b/drivers/mci/Makefile
index b7bb84629..d46d5f50e 100644
--- a/drivers/mci/Makefile
+++ b/drivers/mci/Makefile
@@ -4,7 +4,7 @@ obj-$(CONFIG_MCI_S3C) += s3c.o
obj-$(CONFIG_MCI_IMX) += imx.o
obj-$(CONFIG_MCI_IMX_ESDHC) += imx-esdhc.o
obj-$(CONFIG_MCI_OMAP_HSMMC) += omap_hsmmc.o
-obj-$(CONFIG_I2C_TWL6030) += twl6030.o
+obj-$(CONFIG_MFD_TWL6030) += twl6030.o
obj-$(CONFIG_MCI_PXA) += pxamci.o
obj-$(CONFIG_MCI_ATMEL) += atmel_mci.o
obj-$(CONFIG_MCI_SPI) += mci_spi.o
diff --git a/drivers/mci/atmel_mci.c b/drivers/mci/atmel_mci.c
index dbfb53cb4..f03240310 100644
--- a/drivers/mci/atmel_mci.c
+++ b/drivers/mci/atmel_mci.c
@@ -619,10 +619,4 @@ static struct driver_d atmci_driver = {
.info = atmci_info,
#endif
};
-
-static int atmci_init_driver(void)
-{
- platform_driver_register(&atmci_driver);
- return 0;
-}
-device_initcall(atmci_init_driver);
+device_platform_driver(atmci_driver);
diff --git a/drivers/mci/imx-esdhc.c b/drivers/mci/imx-esdhc.c
index aad1b8696..8c2695cde 100644
--- a/drivers/mci/imx-esdhc.c
+++ b/drivers/mci/imx-esdhc.c
@@ -583,11 +583,4 @@ static struct driver_d fsl_esdhc_driver = {
.probe = fsl_esdhc_probe,
.of_compatible = DRV_OF_COMPAT(fsl_esdhc_compatible),
};
-
-static int fsl_esdhc_init_driver(void)
-{
- platform_driver_register(&fsl_esdhc_driver);
- return 0;
-}
-
-device_initcall(fsl_esdhc_init_driver);
+device_platform_driver(fsl_esdhc_driver);
diff --git a/drivers/mci/imx.c b/drivers/mci/imx.c
index 072ca9379..1210a1d2b 100644
--- a/drivers/mci/imx.c
+++ b/drivers/mci/imx.c
@@ -524,12 +524,4 @@ static struct driver_d mxcmci_driver = {
.name = DRIVER_NAME,
.probe = mxcmci_probe,
};
-
-static int mxcmci_init_driver(void)
-{
- platform_driver_register(&mxcmci_driver);
- return 0;
-}
-
-device_initcall(mxcmci_init_driver);
-
+device_platform_driver(mxcmci_driver);
diff --git a/drivers/mci/mxs.c b/drivers/mci/mxs.c
index b5b36650b..c65796bb9 100644
--- a/drivers/mci/mxs.c
+++ b/drivers/mci/mxs.c
@@ -760,11 +760,4 @@ static struct driver_d mxs_mci_driver = {
.info = mxs_mci_info,
#endif
};
-
-static int mxs_mci_init_driver(void)
-{
- platform_driver_register(&mxs_mci_driver);
- return 0;
-}
-
-device_initcall(mxs_mci_init_driver);
+device_platform_driver(mxs_mci_driver);
diff --git a/drivers/mci/omap_hsmmc.c b/drivers/mci/omap_hsmmc.c
index ffcb4ae75..b379c31fa 100644
--- a/drivers/mci/omap_hsmmc.c
+++ b/drivers/mci/omap_hsmmc.c
@@ -29,7 +29,7 @@
#include <mach/omap_hsmmc.h>
-#if defined(CONFIG_I2C_TWL6030) && \
+#if defined(CONFIG_MFD_TWL6030) && \
defined(CONFIG_MCI_OMAP_HSMMC) && \
defined(CONFIG_ARCH_OMAP4)
#include <mach/omap4_twl6030_mmc.h>
@@ -235,7 +235,7 @@ static int mmc_init_setup(struct mci_host *mci, struct device_d *dev)
* It's necessary to do this here, because
* you need to set up this at probetime.
*/
-#if defined(CONFIG_I2C_TWL6030) && \
+#if defined(CONFIG_MFD_TWL6030) && \
defined(CONFIG_MCI_OMAP_HSMMC) && \
defined(CONFIG_ARCH_OMAP4)
set_up_mmc_voltage_omap4();
@@ -630,11 +630,4 @@ static struct driver_d omap_mmc_driver = {
.probe = omap_mmc_probe,
.id_table = omap_mmc_ids,
};
-
-static int omap_mmc_init_driver(void)
-{
- platform_driver_register(&omap_mmc_driver);
- return 0;
-}
-
-device_initcall(omap_mmc_init_driver);
+device_platform_driver(omap_mmc_driver);
diff --git a/drivers/mci/pxamci.c b/drivers/mci/pxamci.c
index c18e63a00..c1380d1fd 100644
--- a/drivers/mci/pxamci.c
+++ b/drivers/mci/pxamci.c
@@ -378,11 +378,4 @@ static struct driver_d pxamci_driver = {
.name = DRIVER_NAME,
.probe = pxamci_probe,
};
-
-static int __init pxamci_init_driver(void)
-{
- platform_driver_register(&pxamci_driver);
- return 0;
-}
-
-device_initcall(pxamci_init_driver);
+device_platform_driver(pxamci_driver);
diff --git a/drivers/mci/s3c.c b/drivers/mci/s3c.c
index 3e5d6d986..4e7345c8d 100644
--- a/drivers/mci/s3c.c
+++ b/drivers/mci/s3c.c
@@ -767,11 +767,4 @@ static struct driver_d s3c_mci_driver = {
.info = s3c_info,
#endif
};
-
-static int s3c_mci_init_driver(void)
-{
- platform_driver_register(&s3c_mci_driver);
- return 0;
-}
-
-device_initcall(s3c_mci_init_driver);
+device_platform_driver(s3c_mci_driver);
diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
index a253de380..c506d6782 100644
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -1,10 +1,14 @@
menu MFD
+config MFD_LP3972
+ depends on I2C
+ bool "LP3972 driver"
+
config MFD_MC13XXX
depends on I2C || SPI
bool "MC13XXX a.k.a. PMIC driver (MC13783, MC13892)"
-config I2C_MC34704
+config MFD_MC34704
depends on I2C
bool "MC34704 PMIC driver"
@@ -12,29 +16,25 @@ config MFD_MC34708
depends on I2C || SPI
bool "MC34708 PMIC driver"
-config I2C_MC9SDZ60
+config MFD_MC9SDZ60
depends on I2C
bool "MC9SDZ60 driver"
-config I2C_LP3972
+config MFD_STMPE
depends on I2C
- bool "LP3972 driver"
+ bool "STMPE-i2c driver"
-config I2C_TWLCORE
+config MFD_TWLCORE
bool
-config I2C_TWL4030
+config MFD_TWL4030
depends on I2C
- select I2C_TWLCORE
+ select MFD_TWLCORE
bool "TWL4030 driver"
-config I2C_TWL6030
+config MFD_TWL6030
depends on I2C
- select I2C_TWLCORE
+ select MFD_TWLCORE
bool "TWL6030 driver"
-config I2C_STMPE
- depends on I2C
- bool "STMPE-i2c driver"
-
endmenu
diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
index a242eaf67..542fb0fb3 100644
--- a/drivers/mfd/Makefile
+++ b/drivers/mfd/Makefile
@@ -1,9 +1,9 @@
-obj-$(CONFIG_MFD_MC13XXX) += mc13xxx.o
-obj-$(CONFIG_I2C_MC34704) += mc34704.o
-obj-$(CONFIG_MFD_MC34708) += mc34708.o
-obj-$(CONFIG_I2C_MC9SDZ60) += mc9sdz60.o
-obj-$(CONFIG_I2C_LP3972) += lp3972.o
-obj-$(CONFIG_I2C_TWLCORE) += twl-core.o
-obj-$(CONFIG_I2C_TWL4030) += twl4030.o
-obj-$(CONFIG_I2C_TWL6030) += twl6030.o
-obj-$(CONFIG_I2C_STMPE) += stmpe-i2c.o
+obj-$(CONFIG_MFD_LP3972) += lp3972.o
+obj-$(CONFIG_MFD_MC13XXX) += mc13xxx.o
+obj-$(CONFIG_MFD_MC34704) += mc34704.o
+obj-$(CONFIG_MFD_MC34708) += mc34708.o
+obj-$(CONFIG_MFD_MC9SDZ60) += mc9sdz60.o
+obj-$(CONFIG_MFD_STMPE) += stmpe-i2c.o
+obj-$(CONFIG_MFD_TWLCORE) += twl-core.o
+obj-$(CONFIG_MFD_TWL4030) += twl4030.o
+obj-$(CONFIG_MFD_TWL6030) += twl6030.o
diff --git a/drivers/misc/jtag.c b/drivers/misc/jtag.c
index 6c5dea4f2..d302237e3 100644
--- a/drivers/misc/jtag.c
+++ b/drivers/misc/jtag.c
@@ -376,13 +376,7 @@ static struct driver_d jtag_driver = {
.remove = jtag_remove,
.info = jtag_info,
};
-
-static int jtag_module_init(void)
-{
- return platform_driver_register(&jtag_driver);
-}
-
-device_initcall(jtag_module_init);
+device_platform_driver(jtag_driver);
MODULE_AUTHOR("Davide Rizzo <elpa.rizzo@gmail.com>");
MODULE_AUTHOR("Wjatscheslaw Stoljarski <wjatscheslaw.stoljarski@kiwigrid.com>");
diff --git a/drivers/mtd/devices/docg3.c b/drivers/mtd/devices/docg3.c
index 2f89900e4..af3d174cd 100644
--- a/drivers/mtd/devices/docg3.c
+++ b/drivers/mtd/devices/docg3.c
@@ -1199,10 +1199,4 @@ static struct driver_d g3_driver = {
.name = "docg3",
.probe = docg3_probe,
};
-
-static int __init docg3_init(void)
-{
- return platform_driver_register(&g3_driver);
-}
-
-device_initcall(docg3_init);
+device_platform_driver(g3_driver);
diff --git a/drivers/mtd/nand/atmel_nand.c b/drivers/mtd/nand/atmel_nand.c
index 2a57dbbd7..63484f819 100644
--- a/drivers/mtd/nand/atmel_nand.c
+++ b/drivers/mtd/nand/atmel_nand.c
@@ -1242,13 +1242,7 @@ static struct driver_d atmel_nand_driver = {
.name = "atmel_nand",
.probe = atmel_nand_probe,
};
-
-static int __init atmel_nand_init(void)
-{
- return platform_driver_register(&atmel_nand_driver);
-}
-
-device_initcall(atmel_nand_init);
+device_platform_driver(atmel_nand_driver);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Rick Bronson");
diff --git a/drivers/mtd/nand/nand_imx.c b/drivers/mtd/nand/nand_imx.c
index a56c65ff8..dd668619d 100644
--- a/drivers/mtd/nand/nand_imx.c
+++ b/drivers/mtd/nand/nand_imx.c
@@ -1277,17 +1277,7 @@ static struct driver_d imx_nand_driver = {
.name = "imx_nand",
.probe = imxnd_probe,
};
-
-/*
- * Main initialization routine
- * @return 0 if successful; non-zero otherwise
- */
-static int __init imx_nand_init(void)
-{
- return platform_driver_register(&imx_nand_driver);
-}
-
-device_initcall(imx_nand_init);
+device_platform_driver(imx_nand_driver);
MODULE_AUTHOR("Freescale Semiconductor, Inc.");
MODULE_DESCRIPTION("MXC NAND MTD driver");
diff --git a/drivers/mtd/nand/nand_mxs.c b/drivers/mtd/nand/nand_mxs.c
index bc345262a..3812ac9dd 100644
--- a/drivers/mtd/nand/nand_mxs.c
+++ b/drivers/mtd/nand/nand_mxs.c
@@ -1265,13 +1265,7 @@ static struct driver_d mxs_nand_driver = {
.name = "mxs_nand",
.probe = mxs_nand_probe,
};
-
-static int __init mxs_nand_init(void)
-{
- return platform_driver_register(&mxs_nand_driver);
-}
-
-device_initcall(mxs_nand_init);
+device_platform_driver(mxs_nand_driver);
MODULE_AUTHOR("Denx Software Engeneering and Wolfram Sang");
MODULE_DESCRIPTION("MXS NAND MTD driver");
diff --git a/drivers/mtd/nand/nand_omap_gpmc.c b/drivers/mtd/nand/nand_omap_gpmc.c
index 9050a8d0b..7849db5b1 100644
--- a/drivers/mtd/nand/nand_omap_gpmc.c
+++ b/drivers/mtd/nand/nand_omap_gpmc.c
@@ -1081,10 +1081,4 @@ static struct driver_d gpmc_nand_driver = {
.name = "gpmc_nand",
.probe = gpmc_nand_probe,
};
-
-static int gpmc_nand_init(void)
-{
- return platform_driver_register(&gpmc_nand_driver);
-}
-
-device_initcall(gpmc_nand_init);
+device_platform_driver(gpmc_nand_driver);
diff --git a/drivers/mtd/nand/nand_s3c24xx.c b/drivers/mtd/nand/nand_s3c24xx.c
index aef7fa9ba..fef94328b 100644
--- a/drivers/mtd/nand/nand_s3c24xx.c
+++ b/drivers/mtd/nand/nand_s3c24xx.c
@@ -494,6 +494,7 @@ static struct driver_d s3c24x0_nand_driver = {
.name = "s3c24x0_nand",
.probe = s3c24x0_nand_probe,
};
+device_platform_driver(s3c24x0_nand_driver);
#ifdef CONFIG_S3C_NAND_BOOT
@@ -646,17 +647,6 @@ BAREBOX_CMD_END
#endif /* CONFIG_S3C_NAND_BOOT */
-/*
- * Main initialization routine
- * @return 0 if successful; non-zero otherwise
- */
-static int __init s3c24x0_nand_init(void)
-{
- return platform_driver_register(&s3c24x0_nand_driver);
-}
-
-device_initcall(s3c24x0_nand_init);
-
/**
* @file
* @brief Support for various kinds of NAND devices
diff --git a/drivers/mtd/nand/nomadik_nand.c b/drivers/mtd/nand/nomadik_nand.c
index 768b19c7b..834b6ac32 100644
--- a/drivers/mtd/nand/nomadik_nand.c
+++ b/drivers/mtd/nand/nomadik_nand.c
@@ -234,14 +234,7 @@ static struct driver_d nomadik_nand_driver = {
.probe = nomadik_nand_probe,
.name = "nomadik_nand",
};
-
-static int __init nand_nomadik_init(void)
-{
- pr_info("Nomadik NAND driver\n");
- return platform_driver_register(&nomadik_nand_driver);
-}
-
-device_initcall(nand_nomadik_init);
+device_platform_driver(nomadik_nand_driver);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("ST Microelectronics (sachin.verma@st.com)");
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index bcf245dcd..2736094b8 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -36,6 +36,7 @@ config DRIVER_NET_CS8900
config DRIVER_NET_CPSW
bool "CPSW ethernet driver"
+ depends on ARCH_OMAP
select PHYLIB
config DRIVER_NET_SMC911X
diff --git a/drivers/net/altera_tse.c b/drivers/net/altera_tse.c
index f0e907e78..1a442781a 100644
--- a/drivers/net/altera_tse.c
+++ b/drivers/net/altera_tse.c
@@ -557,12 +557,4 @@ static struct driver_d altera_tse_driver = {
.name = "altera_tse",
.probe = tse_probe,
};
-
-static int tse_init(void)
-{
- platform_driver_register(&altera_tse_driver);
- return 0;
-}
-
-device_initcall(tse_init);
-
+device_platform_driver(altera_tse_driver);
diff --git a/drivers/net/at91_ether.c b/drivers/net/at91_ether.c
index a0854dff5..dad78155f 100644
--- a/drivers/net/at91_ether.c
+++ b/drivers/net/at91_ether.c
@@ -366,10 +366,4 @@ static struct driver_d at91_ether_driver = {
.probe = at91_ether_probe,
.remove = at91_ether_remove,
};
-
-static int at91_ether_driver_init(void)
-{
- platform_driver_register(&at91_ether_driver);
- return 0;
-}
-device_initcall(at91_ether_driver_init);
+device_platform_driver(at91_ether_driver);
diff --git a/drivers/net/cpsw.c b/drivers/net/cpsw.c
index 58c097afe..e51a8b1b6 100644
--- a/drivers/net/cpsw.c
+++ b/drivers/net/cpsw.c
@@ -1061,10 +1061,4 @@ static struct driver_d cpsw_driver = {
.name = "cpsw",
.probe = cpsw_probe,
};
-
-static int cpsw_register(void)
-{
- return platform_driver_register(&cpsw_driver);
-}
-
-device_initcall(cpsw_register);
+device_platform_driver(cpsw_driver);
diff --git a/drivers/net/cs8900.c b/drivers/net/cs8900.c
index b1ef3902c..b0d045a4e 100644
--- a/drivers/net/cs8900.c
+++ b/drivers/net/cs8900.c
@@ -468,11 +468,4 @@ static struct driver_d cs8900_driver = {
.probe = cs8900_probe,
.info = cs8900_info,
};
-
-static int cs8900_init(void)
-{
- platform_driver_register(&cs8900_driver);
- return 0;
-}
-
-device_initcall(cs8900_init);
+device_platform_driver(cs8900_driver);
diff --git a/drivers/net/davinci_emac.c b/drivers/net/davinci_emac.c
index 989e119c3..7848f50b9 100644
--- a/drivers/net/davinci_emac.c
+++ b/drivers/net/davinci_emac.c
@@ -608,11 +608,4 @@ static struct driver_d davinci_emac_driver = {
.probe = davinci_emac_probe,
.remove = davinci_emac_remove,
};
-
-static int davinci_emac_register(void)
-{
- platform_driver_register(&davinci_emac_driver);
- return 0;
-}
-
-device_initcall(davinci_emac_register);
+device_platform_driver(davinci_emac_driver);
diff --git a/drivers/net/designware.c b/drivers/net/designware.c
index f803e6693..a6b32b9b2 100644
--- a/drivers/net/designware.c
+++ b/drivers/net/designware.c
@@ -455,10 +455,4 @@ static struct driver_d dwc_ether_driver = {
.probe = dwc_ether_probe,
.remove = dwc_ether_remove,
};
-
-static int dwc_ether_driver_init(void)
-{
- platform_driver_register(&dwc_ether_driver);
- return 0;
-}
-device_initcall(dwc_ether_driver_init);
+device_platform_driver(dwc_ether_driver);
diff --git a/drivers/net/dm9k.c b/drivers/net/dm9k.c
index 8be0f1664..090482c0a 100644
--- a/drivers/net/dm9k.c
+++ b/drivers/net/dm9k.c
@@ -780,11 +780,4 @@ static struct driver_d dm9k_driver = {
.name = "dm9000",
.probe = dm9k_probe,
};
-
-static int dm9k_init(void)
-{
- platform_driver_register(&dm9k_driver);
- return 0;
-}
-
-device_initcall(dm9k_init);
+device_platform_driver(dm9k_driver);
diff --git a/drivers/net/ep93xx.c b/drivers/net/ep93xx.c
index 37c9f0a81..1ecef1339 100644
--- a/drivers/net/ep93xx.c
+++ b/drivers/net/ep93xx.c
@@ -663,11 +663,4 @@ static struct driver_d ep93xx_eth_driver = {
.name = "ep93xx_eth",
.probe = ep93xx_eth_probe,
};
-
-static int ep93xx_eth_init(void)
-{
- platform_driver_register(&ep93xx_eth_driver);
- return 0;
-}
-
-device_initcall(ep93xx_eth_init);
+device_platform_driver(ep93xx_eth_driver);
diff --git a/drivers/net/fec_imx.c b/drivers/net/fec_imx.c
index 1767ef8bc..578000ac1 100644
--- a/drivers/net/fec_imx.c
+++ b/drivers/net/fec_imx.c
@@ -779,14 +779,7 @@ static struct driver_d fec_driver = {
.of_compatible = DRV_OF_COMPAT(imx_fec_dt_ids),
.id_table = imx_fec_ids,
};
-
-static int fec_register(void)
-{
- platform_driver_register(&fec_driver);
- return 0;
-}
-
-device_initcall(fec_register);
+device_platform_driver(fec_driver);
/**
* @file
diff --git a/drivers/net/fec_mpc5200.c b/drivers/net/fec_mpc5200.c
index a14c8d1c4..9ef5350aa 100644
--- a/drivers/net/fec_mpc5200.c
+++ b/drivers/net/fec_mpc5200.c
@@ -717,12 +717,4 @@ static struct driver_d mpc5xxx_driver = {
.probe = mpc5xxx_fec_probe,
.remove = mpc5xxx_fec_remove,
};
-
-static int mpc5xxx_fec_register(void)
-{
- platform_driver_register(&mpc5xxx_driver);
- return 0;
-}
-
-device_initcall(mpc5xxx_fec_register);
-
+device_platform_driver(mpc5xxx_driver);
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c
index 55675baea..96055bd39 100644
--- a/drivers/net/gianfar.c
+++ b/drivers/net/gianfar.c
@@ -528,11 +528,4 @@ static struct driver_d gfar_eth_driver = {
.name = "gfar",
.probe = gfar_probe,
};
-
-static int gfar_eth_init(void)
-{
- platform_driver_register(&gfar_eth_driver);
- return 0;
-}
-
-device_initcall(gfar_eth_init);
+device_platform_driver(gfar_eth_driver);
diff --git a/drivers/net/ks8851_mll.c b/drivers/net/ks8851_mll.c
index 79b88f216..9c0e5a7a1 100644
--- a/drivers/net/ks8851_mll.c
+++ b/drivers/net/ks8851_mll.c
@@ -873,11 +873,4 @@ static struct driver_d ks8851_driver = {
.name = "ks8851_mll",
.probe = ks8851_probe,
};
-
-static int ks8851_init(void)
-{
- platform_driver_register(&ks8851_driver);
- return 0;
-}
-
-device_initcall(ks8851_init);
+device_platform_driver(ks8851_driver);
diff --git a/drivers/net/macb.c b/drivers/net/macb.c
index 0cfad0540..8602437a0 100644
--- a/drivers/net/macb.c
+++ b/drivers/net/macb.c
@@ -666,11 +666,4 @@ static struct driver_d macb_driver = {
.name = "macb",
.probe = macb_probe,
};
-
-static int macb_driver_init(void)
-{
- debug("%s\n", __func__);
- platform_driver_register(&macb_driver);
- return 0;
-}
-device_initcall(macb_driver_init);
+device_platform_driver(macb_driver);
diff --git a/drivers/net/netx_eth.c b/drivers/net/netx_eth.c
index e2b5591d2..9ca9bce1f 100644
--- a/drivers/net/netx_eth.c
+++ b/drivers/net/netx_eth.c
@@ -276,12 +276,4 @@ static struct driver_d netx_eth_driver = {
.name = "netx-eth",
.probe = netx_eth_probe,
};
-
-static int netx_eth_init(void)
-{
- platform_driver_register(&netx_eth_driver);
- return 0;
-}
-
-device_initcall(netx_eth_init);
-
+device_platform_driver(netx_eth_driver);
diff --git a/drivers/net/smc91111.c b/drivers/net/smc91111.c
index ac978d91d..48183dd4f 100644
--- a/drivers/net/smc91111.c
+++ b/drivers/net/smc91111.c
@@ -935,7 +935,7 @@ static int smc91c111_eth_send(struct eth_device *edev, void *packet,
if (numPages > 7) {
printf ("%s: Far too big packet error. \n", SMC_DEV_NAME);
- return 0;
+ return -EOVERFLOW;
}
/* now, try to allocate the memory */
@@ -965,7 +965,7 @@ again:
if (try < SMC_ALLOC_MAX_TRY)
goto again;
else
- return 0;
+ return -ETIMEDOUT;
}
PRINTK2 ("%s: memory allocation, try %d succeeded ...\n",
@@ -980,7 +980,7 @@ again:
if (packet_no & AR_FAILED) {
/* or isn't there? BAD CHIP! */
printf ("%s: Memory allocation failed. \n", SMC_DEV_NAME);
- return 0;
+ return -ENOMEM;
}
/* we have a packet address, so tell the card to use it */
@@ -1046,7 +1046,7 @@ again:
SMC_outb(priv, saved_pnr, PN_REG );
SMC_outw(priv, saved_ptr, PTR_REG );
- return length;
+ return 0;
}
static void smc91c111_eth_halt(struct eth_device *edev)
@@ -1152,10 +1152,10 @@ static int smc91c111_eth_rx(struct eth_device *edev)
if (!is_error) {
/* Pass the packet up to the protocol layers. */
net_receive(NetRxPackets[0], packet_length);
- return packet_length;
+ return 0;
}
- return 0;
+ return -EINVAL;
}
static int smc91c111_get_ethaddr(struct eth_device *edev, unsigned char *m)
@@ -1319,11 +1319,4 @@ static struct driver_d smc91c111_driver = {
.name = "smc91c111",
.probe = smc91c111_probe,
};
-
-static int smc91c111_init(void)
-{
- platform_driver_register(&smc91c111_driver);
- return 0;
-}
-
-device_initcall(smc91c111_init);
+device_platform_driver(smc91c111_driver);
diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c
index 28c69ba87..3b94779cd 100644
--- a/drivers/net/smc911x.c
+++ b/drivers/net/smc911x.c
@@ -638,12 +638,4 @@ static struct driver_d smc911x_driver = {
.name = "smc911x",
.probe = smc911x_probe,
};
-
-static int smc911x_init(void)
-{
- platform_driver_register(&smc911x_driver);
- return 0;
-}
-
-device_initcall(smc911x_init);
-
+device_platform_driver(smc911x_driver);
diff --git a/drivers/net/tap.c b/drivers/net/tap.c
index 1cf4e1861..436b0e085 100644
--- a/drivers/net/tap.c
+++ b/drivers/net/tap.c
@@ -109,11 +109,4 @@ static struct driver_d tap_driver = {
.name = "tap",
.probe = tap_probe,
};
-
-static int tap_init(void)
-{
- platform_driver_register(&tap_driver);
- return 0;
-}
-
-device_initcall(tap_init);
+device_platform_driver(tap_driver);
diff --git a/drivers/nor/cfi_flash.c b/drivers/nor/cfi_flash.c
index 637f98b10..acdc38654 100644
--- a/drivers/nor/cfi_flash.c
+++ b/drivers/nor/cfi_flash.c
@@ -1035,10 +1035,4 @@ static struct driver_d cfi_driver = {
.info = cfi_info,
.of_compatible = DRV_OF_COMPAT(cfi_dt_ids),
};
-
-static int cfi_init(void)
-{
- return platform_driver_register(&cfi_driver);
-}
-
-device_initcall(cfi_init);
+device_platform_driver(cfi_driver);
diff --git a/drivers/serial/Makefile b/drivers/serial/Makefile
index 893e282c6..16a54c268 100644
--- a/drivers/serial/Makefile
+++ b/drivers/serial/Makefile
@@ -1,9 +1,3 @@
-# atmel_usart.o
-# ns9750_serial.o
-# s3c4510b_uart.o
-# serial_max3100.o
-# serial_pl010.o
-# serial_xuartlite.o
obj-$(CONFIG_DRIVER_SERIAL_ARM_DCC) += arm_dcc.o
obj-$(CONFIG_SERIAL_AMBA_PL011) += amba-pl011.o
obj-$(CONFIG_DRIVER_SERIAL_IMX) += serial_imx.o
diff --git a/drivers/spi/altera_spi.c b/drivers/spi/altera_spi.c
index a08976127..60e124ff7 100644
--- a/drivers/spi/altera_spi.c
+++ b/drivers/spi/altera_spi.c
@@ -239,10 +239,4 @@ static struct driver_d altera_spi_driver = {
.name = "altera_spi",
.probe = altera_spi_probe,
};
-
-static int altera_spi_driver_init(void)
-{
- return platform_driver_register(&altera_spi_driver);
-}
-
-device_initcall(altera_spi_driver_init);
+device_platform_driver(altera_spi_driver);
diff --git a/drivers/spi/atmel_spi.c b/drivers/spi/atmel_spi.c
index 478f5d3b6..a0f63d84f 100644
--- a/drivers/spi/atmel_spi.c
+++ b/drivers/spi/atmel_spi.c
@@ -437,11 +437,4 @@ static struct driver_d atmel_spi_driver = {
.name = "atmel_spi",
.probe = atmel_spi_probe,
};
-
-static int atmel_spi_init(void)
-{
- platform_driver_register(&atmel_spi_driver);
- return 0;
-}
-
-device_initcall(atmel_spi_init);
+device_platform_driver(atmel_spi_driver);
diff --git a/drivers/spi/imx_spi.c b/drivers/spi/imx_spi.c
index 950180fec..b749337da 100644
--- a/drivers/spi/imx_spi.c
+++ b/drivers/spi/imx_spi.c
@@ -598,12 +598,4 @@ static struct driver_d imx_spi_driver = {
.probe = imx_spi_probe,
.of_compatible = DRV_OF_COMPAT(imx_spi_dt_ids),
};
-
-static int imx_spi_init(void)
-{
- platform_driver_register(&imx_spi_driver);
- return 0;
-}
-
-device_initcall(imx_spi_init);
-
+device_platform_driver(imx_spi_driver);
diff --git a/drivers/spi/omap3_spi.c b/drivers/spi/omap3_spi.c
index f81b4aa9d..e6581dfd3 100644
--- a/drivers/spi/omap3_spi.c
+++ b/drivers/spi/omap3_spi.c
@@ -390,10 +390,4 @@ static struct driver_d omap3_spi_driver = {
.name = "omap3_spi",
.probe = omap3_spi_probe,
};
-
-static int omap3_spi_init(void)
-{
- return platform_driver_register(&omap3_spi_driver);
-}
-
-device_initcall(omap3_spi_init);
+device_platform_driver(omap3_spi_driver);
diff --git a/drivers/usb/gadget/at91_udc.c b/drivers/usb/gadget/at91_udc.c
index 3899db29f..917ec4d00 100644
--- a/drivers/usb/gadget/at91_udc.c
+++ b/drivers/usb/gadget/at91_udc.c
@@ -1537,10 +1537,4 @@ static struct driver_d at91_udc_driver = {
.name = driver_name,
.probe = at91udc_probe,
};
-
-static int at91_udc_init(void)
-{
- platform_driver_register(&at91_udc_driver);
- return 0;
-}
-device_initcall(at91_udc_init);
+device_platform_driver(at91_udc_driver);
diff --git a/drivers/usb/gadget/fsl_udc.c b/drivers/usb/gadget/fsl_udc.c
index 0a7c3ae26..855dd931c 100644
--- a/drivers/usb/gadget/fsl_udc.c
+++ b/drivers/usb/gadget/fsl_udc.c
@@ -2330,11 +2330,4 @@ static struct driver_d fsl_udc_driver = {
.name = "fsl-udc",
.probe = fsl_udc_probe,
};
-
-static int fsl_udc_init(void)
-{
- platform_driver_register(&fsl_udc_driver);
- return 0;
-}
-
-device_initcall(fsl_udc_init);
+device_platform_driver(fsl_udc_driver);
diff --git a/drivers/usb/gadget/pxa27x_udc.c b/drivers/usb/gadget/pxa27x_udc.c
index 1ccc23248..b18d7c5db 100644
--- a/drivers/usb/gadget/pxa27x_udc.c
+++ b/drivers/usb/gadget/pxa27x_udc.c
@@ -1512,11 +1512,4 @@ static struct driver_d udc_driver = {
.name = "pxa27x-udc",
.probe = pxa_udc_probe,
};
-
-static int __init pxa27x_udc_init(void)
-{
- platform_driver_register(&udc_driver);
- return 0;
-}
-
-device_initcall(pxa27x_udc_init);
+device_platform_driver(udc_driver);
diff --git a/drivers/usb/host/ehci-atmel.c b/drivers/usb/host/ehci-atmel.c
index 5957b8e1d..11b1a894e 100644
--- a/drivers/usb/host/ehci-atmel.c
+++ b/drivers/usb/host/ehci-atmel.c
@@ -87,10 +87,4 @@ static struct driver_d atmel_ehci_driver = {
.probe = atmel_ehci_probe,
.remove = atmel_ehci_remove,
};
-
-static int atmel_ehci_init(void)
-{
- platform_driver_register(&atmel_ehci_driver);
- return 0;
-}
-device_initcall(atmel_ehci_init);
+device_platform_driver(atmel_ehci_driver);
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
index d0d6ae4cc..d83e01cc8 100644
--- a/drivers/usb/host/ehci-hcd.c
+++ b/drivers/usb/host/ehci-hcd.c
@@ -909,12 +909,4 @@ static struct driver_d ehci_driver = {
.probe = ehci_probe,
.remove = ehci_remove,
};
-
-static int ehcil_init(void)
-{
- platform_driver_register(&ehci_driver);
- return 0;
-}
-
-device_initcall(ehcil_init);
-
+device_platform_driver(ehci_driver);
diff --git a/drivers/usb/host/ohci-at91.c b/drivers/usb/host/ohci-at91.c
index b2598f2a5..0f5c8f130 100644
--- a/drivers/usb/host/ohci-at91.c
+++ b/drivers/usb/host/ohci-at91.c
@@ -85,10 +85,4 @@ static struct driver_d at91_ohci_driver = {
.probe = at91_ohci_probe,
.remove = at91_ohci_remove,
};
-
-static int at91_ohci_init(void)
-{
- platform_driver_register(&at91_ohci_driver);
- return 0;
-}
-device_initcall(at91_ohci_init);
+device_platform_driver(at91_ohci_driver);
diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c
index d9b5f608a..ad39bcf6a 100644
--- a/drivers/usb/host/ohci-hcd.c
+++ b/drivers/usb/host/ohci-hcd.c
@@ -1819,12 +1819,4 @@ static struct driver_d ohci_driver = {
.name = "ohci",
.probe = ohci_probe,
};
-
-static int ohcil_init(void)
-{
- platform_driver_register(&ohci_driver);
- return 0;
-}
-
-device_initcall(ohcil_init);
-
+device_platform_driver(ohci_driver);
diff --git a/drivers/usb/imx/chipidea-imx.c b/drivers/usb/imx/chipidea-imx.c
index 5b4c0812c..495ad6246 100644
--- a/drivers/usb/imx/chipidea-imx.c
+++ b/drivers/usb/imx/chipidea-imx.c
@@ -83,9 +83,4 @@ static struct driver_d imx_chipidea_driver = {
.name = "imx-usb",
.probe = imx_chipidea_probe,
};
-
-static int imx_chipidea_init(void)
-{
- return platform_driver_register(&imx_chipidea_driver);
-}
-device_initcall(imx_chipidea_init);
+device_platform_driver(imx_chipidea_driver);
diff --git a/drivers/usb/otg/Kconfig b/drivers/usb/otg/Kconfig
index 892c21ebe..2c9fb46e4 100644
--- a/drivers/usb/otg/Kconfig
+++ b/drivers/usb/otg/Kconfig
@@ -4,5 +4,5 @@ config USB_ULPI
Support for transceivers that conforms ULPI specification.
config USB_TWL4030
- depends on I2C_TWL4030
+ depends on MFD_TWL4030
bool "TWL4030 Transceiver support"
diff --git a/drivers/video/atmel_hlcdfb.c b/drivers/video/atmel_hlcdfb.c
index 78a737d0b..29565981c 100644
--- a/drivers/video/atmel_hlcdfb.c
+++ b/drivers/video/atmel_hlcdfb.c
@@ -289,9 +289,4 @@ static struct driver_d atmel_hlcdc_driver = {
.name = "atmel_hlcdfb",
.probe = atmel_hlcdc_probe,
};
-
-static int atmel_hlcdc_init(void)
-{
- return platform_driver_register(&atmel_hlcdc_driver);
-}
-device_initcall(atmel_hlcdc_init);
+device_platform_driver(atmel_hlcdc_driver);
diff --git a/drivers/video/atmel_lcdfb.c b/drivers/video/atmel_lcdfb.c
index 08888cc9b..e9164e32d 100644
--- a/drivers/video/atmel_lcdfb.c
+++ b/drivers/video/atmel_lcdfb.c
@@ -255,9 +255,4 @@ static struct driver_d atmel_lcdc_driver = {
.name = "atmel_lcdfb",
.probe = atmel_lcdc_probe,
};
-
-static int atmel_lcdc_init(void)
-{
- return platform_driver_register(&atmel_lcdc_driver);
-}
-device_initcall(atmel_lcdc_init);
+device_platform_driver(atmel_lcdc_driver);
diff --git a/drivers/video/imx-ipu-fb.c b/drivers/video/imx-ipu-fb.c
index a29920d7d..db8b8323b 100644
--- a/drivers/video/imx-ipu-fb.c
+++ b/drivers/video/imx-ipu-fb.c
@@ -1039,13 +1039,7 @@ static struct driver_d imx3fb_driver = {
.probe = imxfb_probe,
.remove = imxfb_remove,
};
-
-static int imx3fb_init(void)
-{
- return platform_driver_register(&imx3fb_driver);
-}
-
-device_initcall(imx3fb_init);
+device_platform_driver(imx3fb_driver);
/**
* @file
diff --git a/drivers/video/imx.c b/drivers/video/imx.c
index a1ccf0aec..736e8d08e 100644
--- a/drivers/video/imx.c
+++ b/drivers/video/imx.c
@@ -597,11 +597,4 @@ static struct driver_d imxfb_driver = {
.probe = imxfb_probe,
.remove = imxfb_remove,
};
-
-static int imxfb_init(void)
-{
- return platform_driver_register(&imxfb_driver);
-}
-
-device_initcall(imxfb_init);
-
+device_platform_driver(imxfb_driver);
diff --git a/drivers/video/pxa.c b/drivers/video/pxa.c
index cec9d147d..529190bae 100644
--- a/drivers/video/pxa.c
+++ b/drivers/video/pxa.c
@@ -545,10 +545,4 @@ static struct driver_d pxafb_driver = {
.probe = pxafb_probe,
.remove = pxafb_remove,
};
-
-static int pxafb_init(void)
-{
- return platform_driver_register(&pxafb_driver);
-}
-
-device_initcall(pxafb_init);
+device_platform_driver(pxafb_driver);
diff --git a/drivers/video/s3c24xx.c b/drivers/video/s3c24xx.c
index 6dd49e249..d641cfaa2 100644
--- a/drivers/video/s3c24xx.c
+++ b/drivers/video/s3c24xx.c
@@ -406,13 +406,7 @@ static struct driver_d s3cfb_driver = {
.info = s3cfb_info,
#endif
};
-
-static int s3cfb_init(void)
-{
- return platform_driver_register(&s3cfb_driver);
-}
-
-device_initcall(s3cfb_init);
+device_platform_driver(s3cfb_driver);
/**
* The S3C244x LCD controller supports passive (CSTN/STN) and active (TFT) LC displays
diff --git a/drivers/video/sdl.c b/drivers/video/sdl.c
index 0021a0686..8dec5e577 100644
--- a/drivers/video/sdl.c
+++ b/drivers/video/sdl.c
@@ -93,9 +93,4 @@ static struct driver_d sdlfb_driver = {
.probe = sdlfb_probe,
.remove = sdlfb_remove,
};
-
-static int sdlfb_init(void)
-{
- return platform_driver_register(&sdlfb_driver);
-}
-device_initcall(sdlfb_init);
+device_platform_driver(sdlfb_driver);
diff --git a/drivers/video/stm.c b/drivers/video/stm.c
index 28c7b6eb5..cefdef2ab 100644
--- a/drivers/video/stm.c
+++ b/drivers/video/stm.c
@@ -516,13 +516,7 @@ static struct driver_d stmfb_driver = {
.probe = stmfb_probe,
.info = stmfb_info,
};
-
-static int stmfb_init(void)
-{
- return platform_driver_register(&stmfb_driver);
-}
-
-device_initcall(stmfb_init);
+device_platform_driver(stmfb_driver);
/**
* @file
diff --git a/drivers/w1/masters/w1-gpio.c b/drivers/w1/masters/w1-gpio.c
index 0a3794d14..946e9d334 100644
--- a/drivers/w1/masters/w1-gpio.c
+++ b/drivers/w1/masters/w1-gpio.c
@@ -108,9 +108,4 @@ static struct driver_d w1_gpio_driver = {
.name = "w1-gpio",
.probe = w1_gpio_probe,
};
-
-static int __init w1_gpio_init(void)
-{
- return platform_driver_register(&w1_gpio_driver);
-}
-device_initcall(w1_gpio_init);
+device_platform_driver(w1_gpio_driver);
diff --git a/drivers/watchdog/im28wd.c b/drivers/watchdog/im28wd.c
index bc1936978..96cfe9a4f 100644
--- a/drivers/watchdog/im28wd.c
+++ b/drivers/watchdog/im28wd.c
@@ -150,11 +150,4 @@ static struct driver_d imx28_wd_driver = {
.probe = imx28_wd_probe,
.remove = imx28_wd_remove,
};
-
-static int imx28_wd_init(void)
-{
- platform_driver_register(&imx28_wd_driver);
- return 0;
-}
-
-device_initcall(imx28_wd_init);
+device_platform_driver(imx28_wd_driver);
diff --git a/drivers/watchdog/imxwd.c b/drivers/watchdog/imxwd.c
index c422f9819..78f0f3829 100644
--- a/drivers/watchdog/imxwd.c
+++ b/drivers/watchdog/imxwd.c
@@ -226,10 +226,4 @@ static struct driver_d imx_wd_driver = {
.of_compatible = DRV_OF_COMPAT(imx_wdt_dt_ids),
.id_table = imx_wdt_ids,
};
-
-static int imx_wd_init(void)
-{
- return platform_driver_register(&imx_wd_driver);
-}
-
-device_initcall(imx_wd_init);
+device_platform_driver(imx_wd_driver);
diff --git a/fs/fs.c b/fs/fs.c
index f84051613..6346112e5 100644
--- a/fs/fs.c
+++ b/fs/fs.c
@@ -754,17 +754,12 @@ int ioctl(int fd, int request, void *buf)
return ret;
}
-int read(int fd, void *buf, size_t count)
+static ssize_t __read(FILE *f, void *buf, size_t count)
{
struct device_d *dev;
struct fs_driver_d *fsdrv;
- FILE *f;
int ret;
- if (check_fd(fd))
- return -errno;
-
- f = &files[fd];
dev = f->dev;
fsdrv = dev_to_fs_driver(dev);
@@ -777,18 +772,14 @@ int read(int fd, void *buf, size_t count)
ret = fsdrv->read(dev, f, buf, count);
- if (ret > 0)
- f->pos += ret;
if (ret < 0)
errno = -ret;
return ret;
}
-EXPORT_SYMBOL(read);
-ssize_t write(int fd, const void *buf, size_t count)
+ssize_t pread(int fd, void *buf, size_t count, loff_t offset)
{
- struct device_d *dev;
- struct fs_driver_d *fsdrv;
+ loff_t pos;
FILE *f;
int ret;
@@ -796,6 +787,40 @@ ssize_t write(int fd, const void *buf, size_t count)
return -errno;
f = &files[fd];
+
+ pos = f->pos;
+ f->pos = offset;
+ ret = __read(f, buf, count);
+ f->pos = pos;
+
+ return ret;
+}
+EXPORT_SYMBOL(pread);
+
+ssize_t read(int fd, void *buf, size_t count)
+{
+ FILE *f;
+ int ret;
+
+ if (check_fd(fd))
+ return -errno;
+
+ f = &files[fd];
+
+ ret = __read(f, buf, count);
+
+ if (ret > 0)
+ f->pos += ret;
+ return ret;
+}
+EXPORT_SYMBOL(read);
+
+static ssize_t __write(FILE *f, const void *buf, size_t count)
+{
+ struct device_d *dev;
+ struct fs_driver_d *fsdrv;
+ int ret;
+
dev = f->dev;
fsdrv = dev_to_fs_driver(dev);
@@ -812,13 +837,48 @@ ssize_t write(int fd, const void *buf, size_t count)
}
}
ret = fsdrv->write(dev, f, buf, count);
- if (ret > 0)
- f->pos += ret;
out:
if (ret < 0)
errno = -ret;
return ret;
}
+
+ssize_t pwrite(int fd, const void *buf, size_t count, loff_t offset)
+{
+ loff_t pos;
+ FILE *f;
+ int ret;
+
+ if (check_fd(fd))
+ return -errno;
+
+ f = &files[fd];
+
+ pos = f->pos;
+ f->pos = offset;
+ ret = __write(f, buf, count);
+ f->pos = pos;
+
+ return ret;
+}
+EXPORT_SYMBOL(pwrite);
+
+ssize_t write(int fd, const void *buf, size_t count)
+{
+ FILE *f;
+ int ret;
+
+ if (check_fd(fd))
+ return -errno;
+
+ f = &files[fd];
+
+ ret = __write(f, buf, count);
+
+ if (ret > 0)
+ f->pos += ret;
+ return ret;
+}
EXPORT_SYMBOL(write);
int flush(int fd)
diff --git a/include/driver.h b/include/driver.h
index 31f5d6984..46c56c0ac 100644
--- a/include/driver.h
+++ b/include/driver.h
@@ -193,6 +193,10 @@ static inline const char *dev_name(const struct device_d *dev)
}
/*
+ * get resource 'num' for a device
+ */
+struct resource *dev_get_resource(struct device_d *dev, int num);
+/*
* get resource base 'name' for a device
*/
struct resource *dev_get_resource_by_name(struct device_d *dev,
@@ -390,6 +394,18 @@ extern struct list_head bus_list;
extern struct bus_type platform_bus;
int platform_driver_register(struct driver_d *drv);
+
+/* device_platform_driver() - Helper macro for drivers that don't do
+ * anything special in module registration. This eliminates a lot of
+ * boilerplate. Each module may only use this macro once.
+ */
+#define device_platform_driver(drv) \
+ static int __init drv ## _register(void) \
+ { \
+ return platform_driver_register(&drv); \
+ } \
+ device_initcall(drv ## _register)
+
int platform_device_register(struct device_d *new_device);
struct file_operations {
diff --git a/include/fs.h b/include/fs.h
index 919daab67..7c4e46175 100644
--- a/include/fs.h
+++ b/include/fs.h
@@ -113,9 +113,11 @@ int close(int fd);
int flush(int fd);
int lstat(const char *filename, struct stat *s);
int stat(const char *filename, struct stat *s);
-int read(int fd, void *buf, size_t count);
+ssize_t read(int fd, void *buf, size_t count);
+ssize_t pread(int fd, void *buf, size_t count, loff_t offset);
int ioctl(int fd, int request, void *buf);
ssize_t write(int fd, const void *buf, size_t count);
+ssize_t pwrite(int fd, const void *buf, size_t count, loff_t offset);
#define SEEK_SET 1
#define SEEK_CUR 2
diff --git a/include/getopt.h b/include/getopt.h
index f23175fb8..4f48ba8fd 100644
--- a/include/getopt.h
+++ b/include/getopt.h
@@ -35,7 +35,7 @@ extern char *optarg;
* - options can be mixed with nonoptions (like ls /bin -R)
*/
-int getopt(int argc, char *argv[], char *optstring);
+int getopt(int argc, char *argv[], const char *optstring);
struct getopt_context {
int opterr;
diff --git a/include/linux/log2.h b/include/linux/log2.h
index 389043a93..d9913f06b 100644
--- a/include/linux/log2.h
+++ b/include/linux/log2.h
@@ -54,6 +54,15 @@ bool is_power_of_2(unsigned long n)
return (n != 0 && ((n & (n - 1)) == 0));
}
+/*
+ * round up to nearest power of two
+ */
+static inline __attribute__((const))
+unsigned long __roundup_pow_of_two(unsigned long n)
+{
+ return 1UL << fls(n - 1);
+}
+
/**
* ilog2 - log of base 2 of 32-bit or a 64-bit unsigned value
* @n - parameter
diff --git a/include/mfd/mc34704.h b/include/mfd/mc34704.h
index a3723d72a..c42546d7c 100644
--- a/include/mfd/mc34704.h
+++ b/include/mfd/mc34704.h
@@ -10,8 +10,8 @@
*
*/
-#ifndef __I2C_MC34704_H
-#define __I2C_MC34704_H
+#ifndef __MFD_MC34704_H
+#define __MFD_MC34704_H
struct mc34704 {
struct cdev cdev;
@@ -23,4 +23,4 @@ extern struct mc34704 *mc34704_get(void);
extern int mc34704_reg_read(struct mc34704 *mc34704, u8 reg, u8 *val);
extern int mc34704_reg_write(struct mc34704 *mc34704, u8 reg, u8 val);
-#endif /* __I2C_MC34704_H */
+#endif /* __MFD_MC34704_H */
diff --git a/include/mfd/twl-core.h b/include/mfd/twl-core.h
index 2ab616943..f090032b3 100644
--- a/include/mfd/twl-core.h
+++ b/include/mfd/twl-core.h
@@ -9,8 +9,8 @@
*
*/
-#ifndef __I2C_TWLCORE_H__
-#define __I2C_TWLCORE_H__
+#ifndef __MFD_TWLCORE_H__
+#define __MFD_TWLCORE_H__
#include <common.h>
#include <i2c/i2c.h>
@@ -27,4 +27,4 @@ extern int twlcore_reg_read(struct twlcore *twlcore, u16 reg, u8 *val);
extern int twlcore_reg_write(struct twlcore *twlcore, u16 reg, u8 val);
extern int twlcore_set_bits(struct twlcore *twlcore, u16 reg, u8 mask, u8 val);
-#endif /* __I2C_TWLCORE_H__ */
+#endif /* __MFD_TWLCORE_H__ */
diff --git a/include/mfd/twl4030.h b/include/mfd/twl4030.h
index bc54ea66a..c04507152 100644
--- a/include/mfd/twl4030.h
+++ b/include/mfd/twl4030.h
@@ -6,8 +6,8 @@
*
*/
-#ifndef __I2C_TWL4030_H__
-#define __I2C_TWL4030_H__
+#ifndef __MFD_TWL4030_H__
+#define __MFD_TWL4030_H__
#include <mfd/twl-core.h>
@@ -469,4 +469,4 @@ static inline int twl4030_set_bits(struct twl4030 *twl4030,
return twlcore_set_bits(&(twl4030->core), reg, mask, val);
}
-#endif /* __I2C_TWL4030_H__ */
+#endif /* __MFD_TWL4030_H__ */
diff --git a/include/mfd/twl6030.h b/include/mfd/twl6030.h
index bb4f77322..733a67097 100644
--- a/include/mfd/twl6030.h
+++ b/include/mfd/twl6030.h
@@ -5,8 +5,8 @@
*
*/
-#ifndef __I2C_TWL6030_H__
-#define __I2C_TWL6030_H__
+#ifndef __MFD_TWL6030_H__
+#define __MFD_TWL6030_H__
#include <mfd/twl-core.h>
@@ -424,4 +424,4 @@ static inline int twl6030_set_bits(struct twl6030 *twl6030,
return twlcore_set_bits(&twl6030->core, reg, mask, val);
}
-#endif /* __I2C_TWL6030_H__ */
+#endif /* __MFD_TWL6030_H__ */
diff --git a/include/sizes.h b/include/sizes.h
index c47f90685..6f91e9b4b 100644
--- a/include/sizes.h
+++ b/include/sizes.h
@@ -17,7 +17,19 @@
#define __sizes_h 1
/* handy sizes */
+#define SZ_1 0x00000001
+#define SZ_2 0x00000002
+#define SZ_4 0x00000004
+#define SZ_8 0x00000008
+#define SZ_16 0x00000010
+#define SZ_32 0x00000020
+#define SZ_64 0x00000040
+#define SZ_128 0x00000080
+#define SZ_256 0x00000100
+#define SZ_512 0x00000200
+
#define SZ_1K 0x00000400
+#define SZ_2K 0x00000800
#define SZ_4K 0x00001000
#define SZ_8K 0x00002000
#define SZ_16K 0x00004000
diff --git a/include/usb/usb.h b/include/usb/usb.h
index 4649ee2a9..afccf706d 100644
--- a/include/usb/usb.h
+++ b/include/usb/usb.h
@@ -270,7 +270,7 @@ void usb_rescan(void);
#ifdef __LITTLE_ENDIAN
# define swap_16(x) (x)
# define swap_32(x) (x)
-#elif defined BIG_ENDIAN
+#elif defined __BIG_ENDIAN
# define swap_16(x) __swap_16(x)
# define swap_32(x) __swap_32(x)
#else
diff --git a/lib/getopt.c b/lib/getopt.c
index ead915099..fd12a886e 100644
--- a/lib/getopt.c
+++ b/lib/getopt.c
@@ -56,10 +56,10 @@ void getopt_context_restore(struct getopt_context *gc)
}
EXPORT_SYMBOL(getopt_context_restore);
-int getopt(int argc, char *argv[], char *optstring)
+int getopt(int argc, char *argv[], const char *optstring)
{
char curopt; /* current option character */
- char *curoptp; /* pointer to the current option in optstring */
+ const char *curoptp; /* pointer to the current option in optstring */
while(1) {
debug("optindex: %d nonopts: %d optind: %d\n", optindex, nonopts, optind);
diff --git a/net/dhcp.c b/net/dhcp.c
index 768255e18..8233ec350 100644
--- a/net/dhcp.c
+++ b/net/dhcp.c
@@ -829,8 +829,8 @@ BAREBOX_MAGICVAR_NAMED(global_hostname, global.hostname, "hostname to send or re
BAREBOX_MAGICVAR_NAMED(global_dhcp_bootfile, global.dhcp.bootfile, "bootfile returned from DHCP request");
BAREBOX_MAGICVAR_NAMED(global_dhcp_rootpath, global.dhcp.rootpath, "rootpath returned from DHCP request");
BAREBOX_MAGICVAR_NAMED(global_dhcp_vendor_id, global.dhcp.vendor_id, "vendor id to send to the DHCP server");
-BAREBOX_MAGICVAR_NAMED(global_dhcp_client_uuid, global.dhcp.client_uuid, "cliend uuid to send to the DHCP server");
-BAREBOX_MAGICVAR_NAMED(global_dhcp_client_id, global.dhcp.client_id, "cliend id to send to the DHCP server");
+BAREBOX_MAGICVAR_NAMED(global_dhcp_client_uuid, global.dhcp.client_uuid, "client uuid to send to the DHCP server");
+BAREBOX_MAGICVAR_NAMED(global_dhcp_client_id, global.dhcp.client_id, "client id to send to the DHCP server");
BAREBOX_MAGICVAR_NAMED(global_dhcp_user_class, global.dhcp.user_class, "user class to send to the DHCP server");
BAREBOX_MAGICVAR_NAMED(global_dhcp_tftp_server_name, global.dhcp.tftp_server_name, "TFTP server Name returned from DHCP request");
BAREBOX_MAGICVAR_NAMED(global_dhcp_oftree_file, global.dhcp.oftree_file, "OF tree returned from DHCP request (option 224)");
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index f7d672160..871c44b48 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -21,6 +21,14 @@ lib-y := $(filter-out $(obj-y), $(sort $(lib-y) $(lib-m)))
# o if we encounter foo/ in $(obj-m), remove it from $(obj-m)
# and add the directory to the list of dirs to descend into: $(subdir-m)
+# lowlevel is present in the PBL if enabled
+# otherwise in barebox
+ifeq ($(CONFIG_PBL_IMAGE), y)
+pbl-y += $(lwl-y)
+else
+obj-y += $(lwl-y)
+endif
+
# for non dirs add pbl- prefix to the target
# so we recompile the source with custom flags and custom quiet
__pbl-y := $(notdir $(pbl-y))
diff --git a/scripts/bareboxenv.c b/scripts/bareboxenv.c
index 9284c0b08..6d6d55b1d 100644
--- a/scripts/bareboxenv.c
+++ b/scripts/bareboxenv.c
@@ -137,7 +137,7 @@ void usage(char *prgname)
int main(int argc, char *argv[])
{
int opt;
- int save = 0, load = 0, pad = 0, fd;
+ int save = 0, load = 0, pad = 0, err = 0, fd;
char *filename = NULL, *dirname = NULL;
int verbose = 0;
@@ -190,12 +190,20 @@ int main(int argc, char *argv[])
if (load) {
if (verbose)
printf("loading env from file %s to %s\n", filename, dirname);
- envfs_load(filename, dirname, 0);
+
+ err = envfs_load(filename, dirname, 0);
+
+ if (verbose && err)
+ printf("loading env failed: %d\n", err);
}
if (save) {
if (verbose)
printf("saving contents of %s to file %s\n", dirname, filename);
- envfs_save(filename, dirname);
+
+ err = envfs_save(filename, dirname);
+
+ if (verbose && err)
+ printf("saving env failed: %d\n", err);
}
- exit(0);
+ exit(err ? 1 : 0);
}