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 6842c844b2..4bf737c1fc 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 8a8f36df02..f21d389c14 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 4cc5a2ef13..a78956f4e4 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 1702783170..1398c26a0f 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 1702783170..1398c26a0f 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 88c223aa6f..01c7a259e9 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 cc0820a089..cc0820a089 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 3b7261c7c1..092c31d6b2 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 d392533295..422c91916a 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 360b55cf48..cf92c6a9ea 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 a63aeaef39..4b0304feb3 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 0b701ed5af..5b764a6981 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 b99866ecfe..b99866ecfe 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 945c963ffd..eec5ed2658 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 6ca1c069c4..a2c3104e6c 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 22993f9c29..22993f9c29 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 56ed63f555..203fcfb7f1 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 fe6d376159..2c3148abd0 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 65b6c44843..d6905815a6 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 bdf06124fd..227b76bbb8 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 1a237971bc..1509c92455 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 93866033ab..3e0026252c 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 2c02406383..52c416e3a5 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 20396107f6..a74ec2451b 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 3f224f6ad2..a1110c2e0b 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 2f45976184..d44f697718 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 cfc483eb3d..cfc483eb3d 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 2f45976184..d44f697718 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 a6cf69ddbc..a6cf69ddbc 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 2f45976184..d44f697718 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 21fb7d9f93..d44f697718 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 21fb7d9f93..d44f697718 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 e39e4b6141..e39e4b6141 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 f56e80382a..da3520cc81 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 d5fa853e2d..0710d3929a 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 20060a53e3..7deb178739 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 eb0e0edc94..bf17eaa2ef 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 e2e53c0ada..b33952c2b7 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 89f0aba1af..81263ccab0 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 8f4f9787d2..aa30b7f2e7 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 e18f7d9c3c..a43425b9ea 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 b8d92234ce..644f7e5802 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 88d1baf619..398db9b6b9 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 62a546e699..58453b66cd 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 c90bf360ea..c7d7398cf3 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 00f2b0521e..988abea5ad 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 2f45976184..d44f697718 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 3ebfac6c9b..3ebfac6c9b 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 88c223aa6f..01c7a259e9 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 1702783170..1398c26a0f 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 ad694cd272..90979ace8f 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 dbb2a713f0..f4298529a0 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 88c223aa6f..01c7a259e9 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 88c223aa6f..01c7a259e9 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 53b9d5b88b..5d4eb10b9b 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 27e7339658..27e7339658 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 1602c0a572..040cf93944 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 859501ce92..6c9ca6942f 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 03f9e97fca..03f9e97fca 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 2c1b74d306..bfb55d398e 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 93fd41bcf1..93fd41bcf1 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 08d9a3606f..72275ead78 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 df3764ca6a..5d4eb10b9b 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 8a571d9098..092c31d6b2 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 5565c3d060..a71feec396 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 ae02089394..64782e0fc2 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 60253e55b9..bbff2893ff 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 1702783170..1398c26a0f 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 1702783170..1398c26a0f 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 825b30b3cb..978383aeaa 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 69d3970223..002f218391 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 741b90213f..741b90213f 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 caa71639fe..45b10ec63f 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 5b74351178..4d321e1622 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 2f45976184..d44f697718 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 4776438315..4776438315 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 88f163f5fb..f1370a4df0 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 9dc6869a4c..89232a7884 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 9a051dac81..452d2ec475 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 880941d2f1..c751d1cef6 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 1807e04d39..e3eee8dfc1 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 19df95a3c8..80dbd710f6 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 53ca570436..f098e0eabb 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 0ff0b66920..fc0cb1afcd 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 3b2fdc295b..1308f3c3db 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 1c280353bd..4adf522219 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 94e42c6e75..aaa0ceaa62 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 a3ebe19fa5..48c6ea35a8 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 f08f8eb886..ba15ecfb33 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 1f468f601a..b5e111a019 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 b606b634a2..e4a7feef79 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 189e5a68f2..dec0595333 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 ff6528acf4..42f2065a61 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 2d6e42232f..4d5b52afe5 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 6473b38ba3..0b56eb4aa8 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 202f537569..5d44883453 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 fc57f5f104..bd48fae1f4 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 d4066fc178..fa30c68059 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 89be6843ae..5500ad1121 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 98ce2d59ab..8b49c2c1bf 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 68348eb159..9fcfd5c6f7 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 f371875aad..503443f9bf 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 7c993226f8..d395e1d2fd 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 543ad1a470..b02e0ede34 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 f6c3b1b8bb..2ee3d0fa00 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 b7bb846291..d46d5f50e8 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 dbfb53cb42..f032403109 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 aad1b86962..8c2695cded 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 072ca93794..1210a1d2b1 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 b5b36650bf..c65796bb93 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 ffcb4ae75c..b379c31fae 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 c18e63a00b..c1380d1fd8 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 3e5d6d986c..4e7345c8d5 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 a253de3806..c506d6782b 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 a242eaf677..542fb0fb3a 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 6c5dea4f2b..d302237e37 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 2f89900e43..af3d174cd6 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 2a57dbbd71..63484f8196 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 a56c65ff8c..dd668619d5 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 bc345262ad..3812ac9ddb 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 9050a8d0bc..7849db5b11 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 aef7fa9ba1..fef94328b1 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 768b19c7be..834b6ac32a 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 bcf245dcdc..2736094b8b 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 f0e907e78e..1a442781a9 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 a0854dff52..dad78155fa 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 58c097afe4..e51a8b1b6e 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 b1ef3902c4..b0d045a4e9 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 989e119c38..7848f50b9b 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 f803e6693a..a6b32b9b2e 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 8be0f16646..090482c0ad 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 37c9f0a81e..1ecef13394 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 1767ef8bc0..578000ac1b 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 a14c8d1c4f..9ef5350aaf 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 55675baea6..96055bd39c 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 79b88f216a..9c0e5a7a10 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 0cfad05406..8602437a09 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 e2b5591d25..9ca9bce1f8 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 ac978d91dc..48183dd4fa 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 28c69ba872..3b94779cd9 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 1cf4e1861b..436b0e085a 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 637f98b10a..acdc38654f 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 893e282c63..16a54c268a 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 a089761278..60e124ff77 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 478f5d3b61..a0f63d84f5 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 950180fec6..b749337daf 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 f81b4aa9d1..e6581dfd32 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 3899db29f2..917ec4d006 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 0a7c3ae269..855dd931c2 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 1ccc232484..b18d7c5dbd 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 5957b8e1d0..11b1a894e1 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 d0d6ae4cc3..d83e01cc83 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 b2598f2a5d..0f5c8f1307 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 d9b5f608a8..ad39bcf6ad 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 5b4c0812cf..495ad6246e 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 892c21ebee..2c9fb46e4d 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 78a737d0b9..29565981c9 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 08888cc9ba..e9164e32db 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 a29920d7dd..db8b8323b0 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 a1ccf0aec8..736e8d08e2 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 cec9d147d2..529190baec 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 6dd49e249b..d641cfaa27 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 0021a06866..8dec5e5778 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 28c7b6eb55..cefdef2ab5 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 0a3794d144..946e9d3340 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 bc19369782..96cfe9a4f4 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 c422f9819c..78f0f38290 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 f840516136..6346112e52 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 31f5d69848..46c56c0acf 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 919daab673..7c4e46175a 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 f23175fb87..4f48ba8fd9 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 389043a93c..d9913f06bd 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 a3723d72a9..c42546d7c5 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 2ab6169433..f090032b3f 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 bc54ea66a1..c045071527 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 bb4f773225..733a670973 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 c47f906853..6f91e9b4bd 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 4649ee2a9e..afccf706d7 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 ead9150994..fd12a886ec 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 768255e184..8233ec3502 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 f7d672160c..871c44b482 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 9284c0b083..6d6d55b1db 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);
}