From dd5a9dae76c6ca5ec77fd35f660b13c8f1e63494 Mon Sep 17 00:00:00 2001 From: "Kirill A. Shutemov" Date: Sat, 24 Mar 2012 00:01:52 +0200 Subject: [PATCH] --- yaml --- r: 296733 b: refs/heads/master c: a1978f74da69565a2e472394c7dcb2cfb31b3e45 h: refs/heads/master i: 296731: c377b44cfcc60a49eaaf5baf2cfee33a48ae4bd9 v: v3 --- [refs] | 2 +- .../Documentation/ABI/testing/sysfs-bus-rpmsg | 75 - trunk/Documentation/clk.txt | 233 -- .../devicetree/bindings/arm/atmel-aic.txt | 38 - .../devicetree/bindings/arm/atmel-at91.txt | 92 - .../devicetree/bindings/arm/atmel-pmc.txt | 11 - .../devicetree/bindings/arm/fsl.txt | 22 - .../devicetree/bindings/arm/mrvl.txt | 6 - .../devicetree/bindings/arm/omap/intc.txt | 27 - .../devicetree/bindings/arm/spear.txt | 8 - .../devicetree/bindings/arm/tegra/emc.txt | 100 - .../bindings/arm/tegra/nvidia,tegra20-pmc.txt | 19 - .../devicetree/bindings/arm/twd.txt | 48 - .../devicetree/bindings/arm/vexpress.txt | 146 - .../bindings/dma/tegra20-apbdma.txt | 30 - .../devicetree/bindings/gpio/gpio_atmel.txt | 20 - .../devicetree/bindings/gpio/gpio_i2c.txt | 32 - .../devicetree/bindings/gpio/gpio_nvidia.txt | 36 +- .../devicetree/bindings/gpio/mrvl-gpio.txt | 23 - .../devicetree/bindings/i2c/mrvl-i2c.txt | 37 - .../devicetree/bindings/mtd/atmel-nand.txt | 41 - .../devicetree/bindings/mtd/nand.txt | 7 - .../devicetree/bindings/rtc/sa1100-rtc.txt | 17 - .../bindings/serial/mrvl-serial.txt | 4 - .../devicetree/bindings/usb/atmel-usb.txt | 49 - .../devicetree/bindings/usb/tegra-usb.txt | 13 - .../feature-removal-schedule.txt | 14 + trunk/Documentation/filesystems/ext4.txt | 8 + trunk/Documentation/remoteproc.txt | 322 -- trunk/Documentation/rpmsg.txt | 293 -- trunk/MAINTAINERS | 23 +- trunk/arch/arm/Kconfig | 39 +- trunk/arch/arm/Kconfig.debug | 8 +- trunk/arch/arm/Makefile | 3 +- trunk/arch/arm/boot/compressed/head.S | 2 +- trunk/arch/arm/boot/dts/am3517_mt_ventoux.dts | 27 - trunk/arch/arm/boot/dts/at91sam9g20.dtsi | 131 +- trunk/arch/arm/boot/dts/at91sam9g25ek.dts | 49 - trunk/arch/arm/boot/dts/at91sam9g45.dtsi | 151 +- trunk/arch/arm/boot/dts/at91sam9m10g45ek.dts | 118 +- trunk/arch/arm/boot/dts/at91sam9x5.dtsi | 264 -- trunk/arch/arm/boot/dts/at91sam9x5cm.dtsi | 74 - trunk/arch/arm/boot/dts/db8500.dtsi | 275 -- .../arch/arm/boot/dts/exynos5250-smdk5250.dts | 26 - trunk/arch/arm/boot/dts/exynos5250.dtsi | 413 --- trunk/arch/arm/boot/dts/highbank.dts | 8 +- .../arm/boot/dts/imx27-phytec-phycore.dts | 76 - trunk/arch/arm/boot/dts/imx27.dtsi | 217 -- trunk/arch/arm/boot/dts/imx51-babbage.dts | 91 +- trunk/arch/arm/boot/dts/imx6q-arm2.dts | 14 - trunk/arch/arm/boot/dts/imx6q-sabrelite.dts | 34 - trunk/arch/arm/boot/dts/imx6q.dtsi | 6 +- .../arch/arm/boot/dts/kirkwood-dreamplug.dts | 24 - trunk/arch/arm/boot/dts/kirkwood.dtsi | 36 - trunk/arch/arm/boot/dts/omap3-beagle.dts | 9 + trunk/arch/arm/boot/dts/omap3-evm.dts | 20 - trunk/arch/arm/boot/dts/omap3.dtsi | 35 +- trunk/arch/arm/boot/dts/omap4-panda.dts | 9 + trunk/arch/arm/boot/dts/omap4-sdp.dts | 9 + trunk/arch/arm/boot/dts/omap4.dtsi | 38 +- trunk/arch/arm/boot/dts/pxa168-aspenite.dts | 38 - trunk/arch/arm/boot/dts/pxa168.dtsi | 98 - trunk/arch/arm/boot/dts/snowball.dts | 139 - trunk/arch/arm/boot/dts/spear600-evb.dts | 47 - trunk/arch/arm/boot/dts/spear600.dtsi | 174 - trunk/arch/arm/boot/dts/tegra-cardhu.dts | 34 - trunk/arch/arm/boot/dts/tegra-harmony.dts | 45 +- trunk/arch/arm/boot/dts/tegra-paz00.dts | 57 - trunk/arch/arm/boot/dts/tegra-seaboard.dts | 79 - trunk/arch/arm/boot/dts/tegra-trimslice.dts | 12 - trunk/arch/arm/boot/dts/tegra-ventana.dts | 42 - trunk/arch/arm/boot/dts/tegra20.dtsi | 50 +- trunk/arch/arm/boot/dts/tegra30.dtsi | 61 +- .../arch/arm/boot/dts/usb_a9g20-dab-mmx.dtsi | 96 - trunk/arch/arm/boot/dts/usb_a9g20.dts | 97 +- trunk/arch/arm/boot/dts/vexpress-v2m-rs1.dtsi | 201 -- trunk/arch/arm/boot/dts/vexpress-v2m.dtsi | 200 -- .../arm/boot/dts/vexpress-v2p-ca15-tc1.dts | 157 - trunk/arch/arm/boot/dts/vexpress-v2p-ca5s.dts | 162 - trunk/arch/arm/boot/dts/vexpress-v2p-ca9.dts | 192 - trunk/arch/arm/common/Kconfig | 3 + trunk/arch/arm/common/Makefile | 1 + trunk/arch/arm/common/sa1111.c | 281 +- .../{mach-rpc/time.c => common/time-acorn.c} | 2 +- trunk/arch/arm/common/timer-sp.c | 17 +- trunk/arch/arm/configs/at91cap9_defconfig | 108 + trunk/arch/arm/configs/at91sam9g20_defconfig | 3 - trunk/arch/arm/configs/imx_v4_v5_defconfig | 19 - trunk/arch/arm/configs/imx_v6_v7_defconfig | 39 +- trunk/arch/arm/configs/lpc32xx_defconfig | 145 - trunk/arch/arm/configs/magician_defconfig | 2 +- trunk/arch/arm/configs/mini2440_defconfig | 2 +- trunk/arch/arm/configs/mxs_defconfig | 20 +- trunk/arch/arm/configs/s3c2410_defconfig | 57 +- trunk/arch/arm/configs/tct_hammer_defconfig | 2 +- trunk/arch/arm/configs/tegra_defconfig | 33 +- trunk/arch/arm/configs/u8500_defconfig | 1 - .../arch/arm/include/asm/hardware/arm_timer.h | 5 - trunk/arch/arm/include/asm/hardware/sa1111.h | 156 +- .../arch/arm/include/asm/hardware/timer-sp.h | 15 +- trunk/arch/arm/include/asm/localtimer.h | 37 +- trunk/arch/arm/include/asm/smp_twd.h | 25 +- trunk/arch/arm/kernel/Makefile | 4 + .../arm/{mach-ep93xx => kernel}/crunch-bits.S | 0 .../arch/arm/{mach-ep93xx => kernel}/crunch.c | 4 +- trunk/arch/arm/{mach-rpc => kernel}/ecard.c | 134 +- trunk/arch/arm/{mach-rpc => kernel}/ecard.h | 0 trunk/arch/arm/kernel/smp.c | 22 +- trunk/arch/arm/kernel/smp_twd.c | 123 +- trunk/arch/arm/mach-at91/Kconfig | 33 +- trunk/arch/arm/mach-at91/Makefile | 5 +- trunk/arch/arm/mach-at91/Makefile.boot | 14 +- trunk/arch/arm/mach-at91/at91cap9.c | 404 +++ trunk/arch/arm/mach-at91/at91cap9_devices.c | 1273 +++++++ trunk/arch/arm/mach-at91/at91rm9200.c | 8 +- trunk/arch/arm/mach-at91/at91rm9200_devices.c | 14 +- trunk/arch/arm/mach-at91/at91rm9200_time.c | 37 +- trunk/arch/arm/mach-at91/at91sam9260.c | 31 +- .../arch/arm/mach-at91/at91sam9260_devices.c | 59 +- trunk/arch/arm/mach-at91/at91sam9261.c | 10 +- .../arch/arm/mach-at91/at91sam9261_devices.c | 31 +- trunk/arch/arm/mach-at91/at91sam9263.c | 11 +- .../arch/arm/mach-at91/at91sam9263_devices.c | 72 +- trunk/arch/arm/mach-at91/at91sam926x_time.c | 68 +- trunk/arch/arm/mach-at91/at91sam9_alt_reset.S | 12 +- trunk/arch/arm/mach-at91/at91sam9g45.c | 16 +- .../arch/arm/mach-at91/at91sam9g45_devices.c | 146 +- trunk/arch/arm/mach-at91/at91sam9g45_reset.S | 12 +- trunk/arch/arm/mach-at91/at91sam9rl.c | 10 +- trunk/arch/arm/mach-at91/at91sam9rl_devices.c | 31 +- trunk/arch/arm/mach-at91/at91sam9x5.c | 359 -- trunk/arch/arm/mach-at91/at91x40.c | 2 +- trunk/arch/arm/mach-at91/at91x40_time.c | 28 +- trunk/arch/arm/mach-at91/board-afeb-9260v1.c | 1 - trunk/arch/arm/mach-at91/board-cam60.c | 1 - trunk/arch/arm/mach-at91/board-cap9adk.c | 396 +++ trunk/arch/arm/mach-at91/board-cpu9krea.c | 6 +- trunk/arch/arm/mach-at91/board-cpuat91.c | 1 - trunk/arch/arm/mach-at91/board-dt.c | 76 +- trunk/arch/arm/mach-at91/board-eco920.c | 5 +- trunk/arch/arm/mach-at91/board-flexibity.c | 12 +- trunk/arch/arm/mach-at91/board-kb9202.c | 2 - trunk/arch/arm/mach-at91/board-neocore926.c | 1 - trunk/arch/arm/mach-at91/board-picotux200.c | 1 - trunk/arch/arm/mach-at91/board-qil-a9260.c | 2 - trunk/arch/arm/mach-at91/board-rm9200dk.c | 3 - trunk/arch/arm/mach-at91/board-rm9200ek.c | 1 - trunk/arch/arm/mach-at91/board-sam9-l9260.c | 1 - trunk/arch/arm/mach-at91/board-sam9260ek.c | 2 - trunk/arch/arm/mach-at91/board-sam9261ek.c | 2 - trunk/arch/arm/mach-at91/board-sam9263ek.c | 2 - trunk/arch/arm/mach-at91/board-sam9g20ek.c | 2 - trunk/arch/arm/mach-at91/board-sam9m10g45ek.c | 82 +- trunk/arch/arm/mach-at91/board-sam9rlek.c | 2 - trunk/arch/arm/mach-at91/board-snapper9260.c | 11 +- trunk/arch/arm/mach-at91/board-stamp9g20.c | 1 - trunk/arch/arm/mach-at91/board-usb-a926x.c | 2 - trunk/arch/arm/mach-at91/board-yl-9200.c | 4 +- trunk/arch/arm/mach-at91/clock.c | 224 +- trunk/arch/arm/mach-at91/cpuidle.c | 11 +- trunk/arch/arm/mach-at91/generic.h | 19 +- trunk/arch/arm/mach-at91/gpio.c | 625 +--- .../arm/mach-at91/include/mach/at91_matrix.h | 23 - .../arm/mach-at91/include/mach/at91_pio.h | 25 - .../arm/mach-at91/include/mach/at91_pmc.h | 118 +- .../arm/mach-at91/include/mach/at91_ramc.h | 32 - .../arm/mach-at91/include/mach/at91_shdwc.h | 4 +- .../arch/arm/mach-at91/include/mach/at91_st.h | 32 +- .../arm/mach-at91/include/mach/at91cap9.h | 122 + .../mach-at91/include/mach/at91cap9_matrix.h | 137 + .../arm/mach-at91/include/mach/at91rm9200.h | 10 +- .../mach-at91/include/mach/at91rm9200_mc.h | 58 +- .../include/mach/at91rm9200_sdramc.h | 63 - .../arm/mach-at91/include/mach/at91sam9260.h | 14 +- .../include/mach/at91sam9260_matrix.h | 36 +- .../arm/mach-at91/include/mach/at91sam9261.h | 10 +- .../include/mach/at91sam9261_matrix.h | 18 +- .../arm/mach-at91/include/mach/at91sam9263.h | 12 +- .../include/mach/at91sam9263_matrix.h | 74 +- .../mach-at91/include/mach/at91sam9_ddrsdr.h | 16 + .../mach-at91/include/mach/at91sam9_sdramc.h | 6 + .../arm/mach-at91/include/mach/at91sam9g45.h | 12 +- .../include/mach/at91sam9g45_matrix.h | 84 +- .../arm/mach-at91/include/mach/at91sam9rl.h | 7 +- .../include/mach/at91sam9rl_matrix.h | 42 +- .../arm/mach-at91/include/mach/at91sam9x5.h | 74 - .../include/mach/at91sam9x5_matrix.h | 53 - .../arch/arm/mach-at91/include/mach/at91x40.h | 18 +- trunk/arch/arm/mach-at91/include/mach/board.h | 17 +- trunk/arch/arm/mach-at91/include/mach/cpu.h | 21 + trunk/arch/arm/mach-at91/include/mach/gpio.h | 17 +- .../arm/mach-at91/include/mach/hardware.h | 9 +- trunk/arch/arm/mach-at91/include/mach/io.h | 18 + trunk/arch/arm/mach-at91/irq.c | 132 +- trunk/arch/arm/mach-at91/pm.c | 41 +- trunk/arch/arm/mach-at91/pm.h | 96 +- trunk/arch/arm/mach-at91/pm_slowclock.S | 275 +- trunk/arch/arm/mach-at91/setup.c | 184 +- trunk/arch/arm/mach-at91/soc.h | 5 + trunk/arch/arm/mach-davinci/board-dm355-evm.c | 3 +- .../arm/mach-davinci/board-dm355-leopard.c | 3 +- trunk/arch/arm/mach-davinci/board-dm365-evm.c | 3 +- .../arch/arm/mach-davinci/board-dm644x-evm.c | 135 +- .../arch/arm/mach-davinci/board-dm646x-evm.c | 32 +- .../arch/arm/mach-davinci/board-neuros-osd2.c | 3 +- trunk/arch/arm/mach-davinci/board-sffsdr.c | 3 +- trunk/arch/arm/mach-davinci/cpufreq.c | 2 +- trunk/arch/arm/mach-davinci/da850.c | 2 +- trunk/arch/arm/mach-davinci/davinci.h | 102 - trunk/arch/arm/mach-davinci/devices.c | 32 +- trunk/arch/arm/mach-davinci/dm355.c | 3 +- trunk/arch/arm/mach-davinci/dm365.c | 19 +- trunk/arch/arm/mach-davinci/dm644x.c | 193 +- trunk/arch/arm/mach-davinci/dm646x.c | 21 +- trunk/arch/arm/mach-davinci/dma.c | 6 +- .../arm/mach-davinci/include/mach/dm355.h | 32 + .../arm/mach-davinci/include/mach/dm365.h | 53 +- .../arm/mach-davinci/include/mach/dm644x.h | 47 + .../arm/mach-davinci/include/mach/dm646x.h | 42 +- .../arch/arm/mach-davinci/include/mach/edma.h | 5 - .../arm/mach-davinci/include/mach/hardware.h | 2 + trunk/arch/arm/mach-ebsa110/core.c | 13 +- trunk/arch/arm/mach-ebsa110/core.h | 41 - .../arm/mach-ebsa110/include/mach/hardware.h | 39 + trunk/arch/arm/mach-ebsa110/io.c | 20 - trunk/arch/arm/mach-ebsa110/leds.c | 2 - trunk/arch/arm/mach-ep93xx/Makefile | 3 - trunk/arch/arm/mach-ep93xx/adssphere.c | 1 - trunk/arch/arm/mach-ep93xx/clock.c | 1 - trunk/arch/arm/mach-ep93xx/core.c | 35 +- trunk/arch/arm/mach-ep93xx/dma.c | 2 - trunk/arch/arm/mach-ep93xx/edb93xx.c | 1 - trunk/arch/arm/mach-ep93xx/gesbc9312.c | 1 - .../mach-ep93xx/include/mach/ep93xx-regs.h | 191 +- .../mach-ep93xx/include/mach/gpio-ep93xx.h | 10 - .../arm/mach-ep93xx/include/mach/hardware.h | 1 + .../arm/mach-ep93xx/include/mach/platform.h | 14 + trunk/arch/arm/mach-ep93xx/micro9.c | 1 - trunk/arch/arm/mach-ep93xx/simone.c | 2 - trunk/arch/arm/mach-ep93xx/snappercl15.c | 2 - trunk/arch/arm/mach-ep93xx/soc.h | 213 -- trunk/arch/arm/mach-ep93xx/ts72xx.c | 1 - trunk/arch/arm/mach-ep93xx/vision_ep9307.c | 2 - trunk/arch/arm/mach-exynos/Kconfig | 42 +- trunk/arch/arm/mach-exynos/Makefile | 8 +- trunk/arch/arm/mach-exynos/clock-exynos4.c | 1581 --------- trunk/arch/arm/mach-exynos/clock-exynos4.h | 30 - trunk/arch/arm/mach-exynos/clock-exynos4210.c | 48 +- trunk/arch/arm/mach-exynos/clock-exynos4212.c | 32 +- trunk/arch/arm/mach-exynos/clock-exynos5.c | 1247 ------- trunk/arch/arm/mach-exynos/clock.c | 1564 +++++++++ trunk/arch/arm/mach-exynos/common.c | 524 +-- trunk/arch/arm/mach-exynos/common.h | 40 +- trunk/arch/arm/mach-exynos/cpuidle.c | 151 +- trunk/arch/arm/mach-exynos/dev-ahci.c | 4 +- trunk/arch/arm/mach-exynos/dev-audio.c | 4 +- trunk/arch/arm/mach-exynos/dev-uart.c | 78 - trunk/arch/arm/mach-exynos/dma.c | 125 +- .../mach-exynos/include/mach/debug-macro.S | 9 +- .../mach-exynos/include/mach/exynos4-clock.h | 43 + .../arch/arm/mach-exynos/include/mach/gpio.h | 239 +- .../arch/arm/mach-exynos/include/mach/irqs.h | 595 +--- trunk/arch/arm/mach-exynos/include/mach/map.h | 55 +- trunk/arch/arm/mach-exynos/include/mach/pmu.h | 2 - .../arm/mach-exynos/include/mach/regs-clock.h | 478 +-- .../arm/mach-exynos/include/mach/regs-gpio.h | 20 +- .../arm/mach-exynos/include/mach/regs-pmu.h | 1 - .../arm/mach-exynos/include/mach/uncompress.h | 17 +- trunk/arch/arm/mach-exynos/mach-exynos4-dt.c | 8 +- trunk/arch/arm/mach-exynos/mach-exynos5-dt.c | 78 - trunk/arch/arm/mach-exynos/mach-nuri.c | 84 +- trunk/arch/arm/mach-exynos/mach-origen.c | 39 +- trunk/arch/arm/mach-exynos/mach-smdkv310.c | 3 - .../arm/mach-exynos/mach-universal_c210.c | 84 +- trunk/arch/arm/mach-exynos/mct.c | 62 +- trunk/arch/arm/mach-exynos/platsmp.c | 9 +- trunk/arch/arm/mach-exynos/pm.c | 55 +- trunk/arch/arm/mach-exynos/pm_domains.c | 6 - trunk/arch/arm/mach-exynos/setup-i2c0.c | 9 +- trunk/arch/arm/mach-highbank/Makefile | 1 + trunk/arch/arm/mach-highbank/highbank.c | 5 +- .../arm/mach-highbank/include/mach/memory.h | 1 + trunk/arch/arm/mach-highbank/localtimer.c | 40 + trunk/arch/arm/mach-imx/Kconfig | 14 +- trunk/arch/arm/mach-imx/Makefile | 6 +- trunk/arch/arm/mach-imx/Makefile.boot | 3 - trunk/arch/arm/mach-imx/clock-imx27.c | 18 - trunk/arch/arm/mach-imx/clock-imx31.c | 2 +- trunk/arch/arm/mach-imx/clock-imx35.c | 166 +- trunk/arch/arm/mach-imx/clock-imx6q.c | 74 +- trunk/arch/arm/mach-imx/cpu-imx5.c | 36 + .../{crmregs-imx3.h => crmregs-imx31.h} | 16 +- trunk/arch/arm/mach-imx/imx27-dt.c | 89 - trunk/arch/arm/mach-imx/imx51-dt.c | 1 - trunk/arch/arm/mach-imx/imx53-dt.c | 1 - trunk/arch/arm/mach-imx/lluart.c | 2 +- trunk/arch/arm/mach-imx/localtimer.c | 35 + trunk/arch/arm/mach-imx/mach-armadillo5x0.c | 2 +- .../arm/mach-imx/mach-imx27_visstrim_m10.c | 139 +- trunk/arch/arm/mach-imx/mach-imx6q.c | 3 - trunk/arch/arm/mach-imx/mach-mx21ads.c | 16 +- trunk/arch/arm/mach-imx/mach-mx27_3ds.c | 108 - trunk/arch/arm/mach-imx/mach-mx31ads.c | 35 +- trunk/arch/arm/mach-imx/mach-mx31moboard.c | 6 +- trunk/arch/arm/mach-imx/mach-mx35_3ds.c | 216 -- trunk/arch/arm/mach-imx/mach-pcm038.c | 2 +- trunk/arch/arm/mach-imx/mm-imx3.c | 13 +- trunk/arch/arm/mach-imx/mm-imx5.c | 10 - trunk/arch/arm/mach-imx/pm-imx3.c | 37 - trunk/arch/arm/mach-imx/pm-imx5.c | 4 +- trunk/arch/arm/mach-kirkwood/Kconfig | 14 - trunk/arch/arm/mach-kirkwood/Makefile | 2 - trunk/arch/arm/mach-kirkwood/Makefile.boot | 2 - .../arch/arm/mach-kirkwood/board-dreamplug.c | 152 - trunk/arch/arm/mach-kirkwood/board-dt.c | 75 - trunk/arch/arm/mach-kirkwood/common.c | 11 +- trunk/arch/arm/mach-kirkwood/common.h | 15 - trunk/arch/arm/mach-lpc32xx/Kconfig | 25 - trunk/arch/arm/mach-lpc32xx/clock.c | 183 +- trunk/arch/arm/mach-lpc32xx/common.c | 69 - trunk/arch/arm/mach-lpc32xx/common.h | 6 +- .../arm/mach-lpc32xx/include/mach/board.h | 24 - .../arm/mach-lpc32xx/include/mach/platform.h | 51 +- trunk/arch/arm/mach-lpc32xx/irq.c | 4 - trunk/arch/arm/mach-lpc32xx/phy3250.c | 6 - trunk/arch/arm/mach-lpc32xx/pm.c | 2 +- trunk/arch/arm/mach-lpc32xx/timer.c | 48 +- trunk/arch/arm/mach-mmp/Kconfig | 10 - trunk/arch/arm/mach-mmp/Makefile | 1 - trunk/arch/arm/mach-mmp/include/mach/pxa910.h | 1 - .../arm/mach-mmp/include/mach/regs-apbc.h | 1 - .../arch/arm/mach-mmp/include/mach/regs-rtc.h | 23 - trunk/arch/arm/mach-mmp/mmp-dt.c | 75 - trunk/arch/arm/mach-mmp/mmp2.c | 1 - trunk/arch/arm/mach-mmp/pxa168.c | 3 - trunk/arch/arm/mach-mmp/pxa910.c | 28 - trunk/arch/arm/mach-mmp/ttc_dkb.c | 1 - trunk/arch/arm/mach-msm/timer.c | 79 +- trunk/arch/arm/mach-mxs/Kconfig | 16 - trunk/arch/arm/mach-mxs/Makefile | 1 - trunk/arch/arm/mach-mxs/clock-mx23.c | 35 +- trunk/arch/arm/mach-mxs/clock-mx28.c | 58 +- trunk/arch/arm/mach-mxs/devices-mx23.h | 4 - trunk/arch/arm/mach-mxs/devices-mx28.h | 4 - trunk/arch/arm/mach-mxs/devices/Kconfig | 3 - trunk/arch/arm/mach-mxs/devices/Makefile | 1 - .../arm/mach-mxs/devices/platform-gpmi-nand.c | 81 - .../arm/mach-mxs/devices/platform-mxs-mmc.c | 2 - trunk/arch/arm/mach-mxs/include/mach/common.h | 2 - .../mach-mxs/include/mach/devices-common.h | 10 - trunk/arch/arm/mach-mxs/include/mach/digctl.h | 1 - trunk/arch/arm/mach-mxs/include/mach/mxs.h | 29 +- .../arm/mach-mxs/include/mach/uncompress.h | 13 +- trunk/arch/arm/mach-mxs/mach-apx4devkit.c | 260 -- trunk/arch/arm/mach-mxs/mach-m28evk.c | 7 +- trunk/arch/arm/mach-mxs/mach-mx28evk.c | 80 +- trunk/arch/arm/mach-mxs/system.c | 16 - trunk/arch/arm/mach-nomadik/board-nhk8815.c | 7 +- .../arm/mach-nomadik/include/mach/setup.h | 19 + trunk/arch/arm/mach-omap1/Kconfig | 4 - .../arm/mach-omap1/ams-delta-fiq-handler.S | 3 +- trunk/arch/arm/mach-omap1/ams-delta-fiq.c | 1 - trunk/arch/arm/mach-omap1/board-ams-delta.c | 322 +- trunk/arch/arm/mach-omap1/board-fsample.c | 7 +- trunk/arch/arm/mach-omap1/board-h2.c | 6 +- trunk/arch/arm/mach-omap1/board-h3.c | 8 +- trunk/arch/arm/mach-omap1/board-htcherald.c | 5 +- trunk/arch/arm/mach-omap1/board-innovator.c | 7 +- trunk/arch/arm/mach-omap1/board-nokia770.c | 6 +- trunk/arch/arm/mach-omap1/board-osk.c | 7 +- trunk/arch/arm/mach-omap1/board-palmte.c | 4 +- trunk/arch/arm/mach-omap1/board-palmtt.c | 9 +- trunk/arch/arm/mach-omap1/board-palmz71.c | 9 +- trunk/arch/arm/mach-omap1/board-perseus2.c | 7 +- trunk/arch/arm/mach-omap1/board-sx1.c | 6 +- trunk/arch/arm/mach-omap1/board-voiceblue.c | 6 +- trunk/arch/arm/mach-omap1/clock.c | 5 +- trunk/arch/arm/mach-omap1/clock_data.c | 5 +- trunk/arch/arm/mach-omap1/common.h | 1 - trunk/arch/arm/mach-omap1/devices.c | 8 +- trunk/arch/arm/mach-omap1/dma.c | 2 +- trunk/arch/arm/mach-omap1/flash.c | 4 +- trunk/arch/arm/mach-omap1/fpga.c | 5 +- trunk/arch/arm/mach-omap1/gpio15xx.c | 7 +- trunk/arch/arm/mach-omap1/gpio16xx.c | 47 +- trunk/arch/arm/mach-omap1/gpio7xx.c | 14 +- trunk/arch/arm/mach-omap1/id.c | 3 - .../arm/mach-omap1/include/mach/entry-macro.S | 4 +- .../arm/mach-omap1/include/mach/hardware.h | 36 - trunk/arch/arm/mach-omap1/include/mach/io.h | 43 +- .../arch/arm/mach-omap1/include/mach/memory.h | 3 +- trunk/arch/arm/mach-omap1/io.c | 5 +- trunk/arch/arm/mach-omap1/iomap.h | 42 - trunk/arch/arm/mach-omap1/irq.c | 4 +- trunk/arch/arm/mach-omap1/lcd_dma.c | 3 +- trunk/arch/arm/mach-omap1/mcbsp.c | 5 +- trunk/arch/arm/mach-omap1/pm.c | 4 +- trunk/arch/arm/mach-omap1/reset.c | 3 +- trunk/arch/arm/mach-omap1/sleep.S | 4 - trunk/arch/arm/mach-omap1/sram.S | 4 - trunk/arch/arm/mach-omap1/time.c | 3 +- trunk/arch/arm/mach-omap1/timer32k.c | 7 +- trunk/arch/arm/mach-omap2/Kconfig | 8 +- trunk/arch/arm/mach-omap2/Makefile | 13 +- trunk/arch/arm/mach-omap2/am35xx-emac.c | 117 - trunk/arch/arm/mach-omap2/am35xx-emac.h | 15 - trunk/arch/arm/mach-omap2/board-2430sdp.c | 2 +- trunk/arch/arm/mach-omap2/board-3430sdp.c | 5 +- trunk/arch/arm/mach-omap2/board-4430sdp.c | 9 +- trunk/arch/arm/mach-omap2/board-am3517evm.c | 119 +- trunk/arch/arm/mach-omap2/board-cm-t35.c | 6 +- trunk/arch/arm/mach-omap2/board-cm-t3517.c | 2 - trunk/arch/arm/mach-omap2/board-devkit8000.c | 4 +- trunk/arch/arm/mach-omap2/board-flash.c | 2 +- trunk/arch/arm/mach-omap2/board-generic.c | 111 +- trunk/arch/arm/mach-omap2/board-igep0020.c | 6 +- trunk/arch/arm/mach-omap2/board-ldp.c | 3 +- trunk/arch/arm/mach-omap2/board-n8x0.c | 9 +- trunk/arch/arm/mach-omap2/board-omap3beagle.c | 10 +- trunk/arch/arm/mach-omap2/board-omap3evm.c | 7 +- trunk/arch/arm/mach-omap2/board-omap3logic.c | 4 +- .../arch/arm/mach-omap2/board-omap3pandora.c | 26 +- .../arch/arm/mach-omap2/board-omap3stalker.c | 15 +- .../arm/mach-omap2/board-omap3touchbook.c | 17 +- trunk/arch/arm/mach-omap2/board-omap4panda.c | 12 +- trunk/arch/arm/mach-omap2/board-overo.c | 3 +- trunk/arch/arm/mach-omap2/board-rm680.c | 16 +- .../arm/mach-omap2/board-rx51-peripherals.c | 30 +- .../arch/arm/mach-omap2/board-zoom-display.c | 5 +- .../arm/mach-omap2/board-zoom-peripherals.c | 4 +- .../arm/mach-omap2/clkt2xxx_virt_prcm_set.c | 1 - trunk/arch/arm/mach-omap2/clkt_clksel.c | 1 - trunk/arch/arm/mach-omap2/clkt_dpll.c | 1 - trunk/arch/arm/mach-omap2/clock2420_data.c | 3 - trunk/arch/arm/mach-omap2/clock2430.c | 2 - trunk/arch/arm/mach-omap2/clock2430_data.c | 2 - trunk/arch/arm/mach-omap2/clock2xxx.c | 1 - trunk/arch/arm/mach-omap2/clock3xxx.c | 1 - trunk/arch/arm/mach-omap2/clock3xxx_data.c | 3 +- trunk/arch/arm/mach-omap2/clock44xx_data.c | 3 - trunk/arch/arm/mach-omap2/cm2xxx_3xxx.c | 4 +- trunk/arch/arm/mach-omap2/cm44xx.c | 2 +- trunk/arch/arm/mach-omap2/cminst44xx.c | 2 +- .../arm/mach-omap2/common-board-devices.c | 9 +- trunk/arch/arm/mach-omap2/common.c | 5 +- trunk/arch/arm/mach-omap2/common.h | 19 - trunk/arch/arm/mach-omap2/control.c | 4 +- trunk/arch/arm/mach-omap2/control.h | 6 +- trunk/arch/arm/mach-omap2/devices.c | 17 +- trunk/arch/arm/mach-omap2/display.c | 9 +- trunk/arch/arm/mach-omap2/dma.c | 2 +- trunk/arch/arm/mach-omap2/emu.c | 4 - trunk/arch/arm/mach-omap2/gpio.c | 38 +- trunk/arch/arm/mach-omap2/gpmc-nand.c | 1 - trunk/arch/arm/mach-omap2/gpmc-onenand.c | 1 - trunk/arch/arm/mach-omap2/gpmc-smsc911x.c | 11 +- trunk/arch/arm/mach-omap2/gpmc.c | 2 - trunk/arch/arm/mach-omap2/hsmmc.c | 123 +- trunk/arch/arm/mach-omap2/hsmmc.h | 12 +- trunk/arch/arm/mach-omap2/id.c | 188 +- trunk/arch/arm/mach-omap2/include/mach/io.h | 46 +- trunk/arch/arm/mach-omap2/io.c | 68 +- trunk/arch/arm/mach-omap2/irq.c | 65 +- trunk/arch/arm/mach-omap2/mcbsp.c | 2 +- trunk/arch/arm/mach-omap2/mux.c | 16 +- trunk/arch/arm/mach-omap2/mux.h | 2 +- trunk/arch/arm/mach-omap2/omap-hotplug.c | 2 +- .../arch/arm/mach-omap2/omap-mpuss-lowpower.c | 4 +- trunk/arch/arm/mach-omap2/omap-smp.c | 3 +- trunk/arch/arm/mach-omap2/omap-wakeupgen.c | 53 +- .../arm/mach-omap2/omap_hwmod_3xxx_data.c | 31 +- .../arm/mach-omap2/omap_hwmod_44xx_data.c | 20 +- trunk/arch/arm/mach-omap2/opp2420_data.c | 2 - trunk/arch/arm/mach-omap2/opp2430_data.c | 2 - trunk/arch/arm/mach-omap2/pm-debug.c | 6 +- trunk/arch/arm/mach-omap2/pm.c | 125 +- trunk/arch/arm/mach-omap2/pm.h | 3 +- trunk/arch/arm/mach-omap2/pm24xx.c | 100 +- trunk/arch/arm/mach-omap2/pm34xx.c | 88 +- trunk/arch/arm/mach-omap2/pm44xx.c | 57 +- .../arch/arm/mach-omap2/powerdomain-common.c | 1 - .../arm/mach-omap2/powerdomain2xxx_3xxx.c | 1 - trunk/arch/arm/mach-omap2/powerdomain44xx.c | 1 - .../arm/mach-omap2/powerdomains3xxx_data.c | 1 - trunk/arch/arm/mach-omap2/prcm_mpu44xx.c | 2 +- trunk/arch/arm/mach-omap2/prm44xx.c | 3 +- trunk/arch/arm/mach-omap2/prminst44xx.c | 2 +- trunk/arch/arm/mach-omap2/sdram-nokia.c | 1 + trunk/arch/arm/mach-omap2/sdrc2xxx.c | 6 +- trunk/arch/arm/mach-omap2/serial.c | 4 + trunk/arch/arm/mach-omap2/sleep24xx.S | 1 + trunk/arch/arm/mach-omap2/sleep34xx.S | 5 +- .../arch/arm/mach-omap2/smartreflex-class3.c | 1 - trunk/arch/arm/mach-omap2/smartreflex.c | 229 +- trunk/arch/arm/mach-omap2/smartreflex.h | 10 - trunk/arch/arm/mach-omap2/sr_device.c | 13 +- trunk/arch/arm/mach-omap2/sram242x.S | 4 +- trunk/arch/arm/mach-omap2/sram243x.S | 4 +- trunk/arch/arm/mach-omap2/sram34xx.S | 5 +- trunk/arch/arm/mach-omap2/timer-mpu.c | 39 + trunk/arch/arm/mach-omap2/timer.c | 22 +- trunk/arch/arm/mach-omap2/vc.c | 1 - trunk/arch/arm/mach-omap2/vp.c | 4 +- trunk/arch/arm/mach-pxa/devices.c | 28 +- trunk/arch/arm/mach-pxa/hx4700.c | 77 +- .../arm/mach-pxa/include/mach/mfp-pxa27x.h | 2 - trunk/arch/arm/mach-pxa/lubbock.c | 1 - trunk/arch/arm/mach-pxa/magician.c | 33 +- trunk/arch/arm/mach-pxa/pxa3xx.c | 1 - trunk/arch/arm/mach-pxa/pxa95x.c | 1 - trunk/arch/arm/mach-realview/realview_eb.c | 27 +- .../arch/arm/mach-realview/realview_pb11mp.c | 21 +- trunk/arch/arm/mach-realview/realview_pbx.c | 20 +- trunk/arch/arm/mach-rpc/Makefile | 2 +- trunk/arch/arm/mach-rpc/include/mach/irqs.h | 2 + trunk/arch/arm/mach-rpc/riscpc.c | 45 +- trunk/arch/arm/mach-s3c2410/Kconfig | 154 + trunk/arch/arm/mach-s3c2410/Makefile | 26 + .../Makefile.boot | 0 .../{mach-s3c24xx => mach-s3c2410}/bast-ide.c | 0 .../{mach-s3c24xx => mach-s3c2410}/bast-irq.c | 0 trunk/arch/arm/mach-s3c2410/common.h | 17 + .../dma-s3c2410.c => mach-s3c2410/dma.c} | 0 .../h1940-bluetooth.c | 0 .../include/mach/anubis-cpld.h | 0 .../include/mach/anubis-irq.h | 0 .../include/mach/anubis-map.h | 0 .../include/mach/bast-cpld.h | 0 .../include/mach/bast-irq.h | 0 .../include/mach/bast-map.h | 0 .../include/mach/bast-pmu.h | 0 .../include/mach/debug-macro.S | 0 .../include/mach/dma.h | 0 .../include/mach/entry-macro.S | 0 .../include/mach/fb.h | 0 .../include/mach/gpio-fns.h | 0 .../include/mach/gpio-nrs.h | 0 .../include/mach/gpio-track.h | 0 .../include/mach/gpio.h | 0 .../include/mach/h1940-latch.h | 0 .../include/mach/h1940.h | 0 .../include/mach/hardware.h | 0 .../include/mach/idle.h | 0 .../include/mach/io.h | 0 .../include/mach/irqs.h | 0 .../include/mach/leds-gpio.h | 0 .../include/mach/map.h | 0 .../include/mach/osiris-cpld.h | 0 .../include/mach/osiris-map.h | 0 .../include/mach/otom-map.h | 0 .../include/mach/pm-core.h | 0 .../include/mach/regs-clock.h | 0 .../include/mach/regs-dsc.h | 0 .../include/mach/regs-gpio.h | 0 .../include/mach/regs-gpioj.h | 0 .../include/mach/regs-irq.h | 0 .../include/mach/regs-lcd.h | 0 .../include/mach/regs-mem.h | 0 .../include/mach/regs-power.h | 0 .../include/mach/regs-s3c2412-mem.h | 0 .../include/mach/regs-s3c2412.h | 0 .../include/mach/regs-s3c2416-mem.h | 0 .../include/mach/regs-s3c2416.h | 0 .../include/mach/regs-s3c2443-clock.h | 0 .../include/mach/regs-sdi.h | 0 .../arm/mach-s3c2410/include/mach/spi.h} | 20 +- .../include/mach/tick.h | 0 .../include/mach/timex.h | 0 .../include/mach/uncompress.h | 0 .../include/mach/vr1000-cpld.h | 0 .../include/mach/vr1000-irq.h | 0 .../include/mach/vr1000-map.h | 0 .../mach-amlm5900.c | 0 .../mach-bast.c | 3 +- .../mach-h1940.c | 12 +- .../{mach-s3c24xx => mach-s3c2410}/mach-n30.c | 0 .../mach-otom.c | 0 .../mach-qt2410.c | 0 .../mach-smdk2410.c | 0 .../mach-tct_hammer.c | 0 .../mach-vr1000.c | 3 +- .../nor-simtec.c} | 2 +- .../simtec.h => mach-s3c2410/nor-simtec.h} | 9 +- .../{mach-s3c24xx => mach-s3c2410}/pm-h1940.S | 0 .../pm-s3c2410.c => mach-s3c2410/pm.c} | 0 .../{mach-s3c24xx => mach-s3c2410}/s3c2410.c | 0 .../sleep-s3c2410.S => mach-s3c2410/sleep.S} | 0 .../usb-simtec.c} | 2 +- trunk/arch/arm/mach-s3c2410/usb-simtec.h | 16 + trunk/arch/arm/mach-s3c2412/Kconfig | 85 + trunk/arch/arm/mach-s3c2412/Makefile | 12 + .../clock-s3c2412.c => mach-s3c2412/clock.c} | 0 .../dma-s3c2412.c => mach-s3c2412/dma.c} | 0 .../irq-s3c2412.c => mach-s3c2412/irq.c} | 0 .../mach-jive.c | 0 .../mach-smdk2413.c | 0 .../mach-vstms.c | 0 .../pm-s3c2412.c => mach-s3c2412/pm.c} | 0 .../{mach-s3c24xx => mach-s3c2412}/s3c2412.c | 0 .../sleep-s3c2412.S => mach-s3c2412/sleep.S} | 0 trunk/arch/arm/mach-s3c2416/Kconfig | 60 + trunk/arch/arm/mach-s3c2416/Makefile | 22 + .../clock-s3c2416.c => mach-s3c2416/clock.c} | 7 + .../irq-s3c2416.c => mach-s3c2416/irq.c} | 0 .../mach-smdk2416.c | 8 +- .../pm-s3c2416.c => mach-s3c2416/pm.c} | 0 .../{mach-s3c24xx => mach-s3c2416}/s3c2416.c | 2 - .../setup-sdhci-gpio.c | 0 trunk/arch/arm/mach-s3c2440/Kconfig | 165 + trunk/arch/arm/mach-s3c2440/Makefile | 26 +- .../clock-s3c2440.c => mach-s3c2440/clock.c} | 0 trunk/arch/arm/mach-s3c2440/common.h | 17 + .../dma-s3c2440.c => mach-s3c2440/dma.c} | 0 .../include/mach/gta02.h | 0 .../irq-s3c2440.c => mach-s3c2440/irq.c} | 0 .../mach-anubis.c | 1 - .../mach-at2440evb.c | 0 .../mach-gta02.c | 6 +- .../mach-mini2440.c | 0 .../mach-nexcoder.c | 0 .../mach-osiris-dvs.c | 0 .../mach-osiris.c | 0 .../mach-rx1950.c | 12 +- .../mach-rx3715.c | 0 .../mach-smdk2440.c | 0 .../{mach-s3c24xx => mach-s3c2440}/s3c2440.c | 0 .../{mach-s3c24xx => mach-s3c2440}/s3c2442.c | 0 .../s3c244x-clock.c} | 0 .../s3c244x-irq.c} | 0 .../{mach-s3c24xx => mach-s3c2440}/s3c244x.c | 0 trunk/arch/arm/mach-s3c2443/Kconfig | 32 + trunk/arch/arm/mach-s3c2443/Makefile | 20 + .../clock-s3c2443.c => mach-s3c2443/clock.c} | 7 + .../dma-s3c2443.c => mach-s3c2443/dma.c} | 30 +- .../irq-s3c2443.c => mach-s3c2443/irq.c} | 0 .../mach-smdk2443.c | 0 .../{mach-s3c24xx => mach-s3c2443}/s3c2443.c | 2 - trunk/arch/arm/mach-s3c24xx/Kconfig | 538 --- trunk/arch/arm/mach-s3c24xx/Makefile | 95 - trunk/arch/arm/mach-s3c64xx/Kconfig | 9 - trunk/arch/arm/mach-s3c64xx/Makefile | 2 - trunk/arch/arm/mach-s3c64xx/clock.c | 121 +- trunk/arch/arm/mach-s3c64xx/common.h | 2 + trunk/arch/arm/mach-s3c64xx/cpuidle.c | 91 - trunk/arch/arm/mach-s3c64xx/irq-pm.c | 2 +- .../arm/mach-s3c64xx/mach-crag6410-module.c | 31 +- trunk/arch/arm/mach-s3c64xx/mach-crag6410.c | 71 +- trunk/arch/arm/mach-s3c64xx/mach-smartq.c | 3 - trunk/arch/arm/mach-s3c64xx/mach-smdk6410.c | 4 - trunk/arch/arm/mach-s3c64xx/setup-usb-phy.c | 90 - trunk/arch/arm/mach-s5p64x0/clock.c | 11 +- trunk/arch/arm/mach-s5p64x0/dma.c | 12 +- .../mach-s5p64x0/include/mach/s5p64x0-clock.h | 7 + trunk/arch/arm/mach-s5pc100/clock.c | 28 +- trunk/arch/arm/mach-s5pc100/dma.c | 16 +- trunk/arch/arm/mach-s5pv210/Kconfig | 15 - trunk/arch/arm/mach-s5pv210/Makefile | 1 - trunk/arch/arm/mach-s5pv210/clock.c | 5 - trunk/arch/arm/mach-s5pv210/dma.c | 16 +- .../arch/arm/mach-s5pv210/include/mach/map.h | 4 - .../arm/mach-s5pv210/include/mach/regs-sys.h | 4 + trunk/arch/arm/mach-s5pv210/mach-aquila.c | 1 - trunk/arch/arm/mach-s5pv210/mach-goni.c | 2 +- trunk/arch/arm/mach-s5pv210/mach-smdkc110.c | 14 - trunk/arch/arm/mach-s5pv210/mach-smdkv210.c | 17 +- trunk/arch/arm/mach-s5pv210/setup-usb-phy.c | 90 - trunk/arch/arm/mach-sa1100/Makefile | 2 +- trunk/arch/arm/mach-sa1100/assabet.c | 194 +- trunk/arch/arm/mach-sa1100/badge4.c | 42 +- trunk/arch/arm/mach-sa1100/cerf.c | 17 +- trunk/arch/arm/mach-sa1100/clock.c | 82 +- trunk/arch/arm/mach-sa1100/collie.c | 55 +- trunk/arch/arm/mach-sa1100/dma.c | 348 ++ trunk/arch/arm/mach-sa1100/generic.c | 159 +- trunk/arch/arm/mach-sa1100/generic.h | 7 +- trunk/arch/arm/mach-sa1100/h3100.c | 25 +- trunk/arch/arm/mach-sa1100/h3600.c | 34 +- trunk/arch/arm/mach-sa1100/h3xxx.c | 13 +- trunk/arch/arm/mach-sa1100/hackkit.c | 13 +- .../arm/mach-sa1100/include/mach/SA-1100.h | 229 +- trunk/arch/arm/mach-sa1100/include/mach/dma.h | 117 + .../arch/arm/mach-sa1100/include/mach/irqs.h | 27 +- trunk/arch/arm/mach-sa1100/include/mach/mcp.h | 2 +- .../arm/mach-sa1100/include/mach/neponset.h | 52 +- .../arm/mach-sa1100/include/mach/shannon.h | 2 +- trunk/arch/arm/mach-sa1100/irq.c | 8 +- trunk/arch/arm/mach-sa1100/jornada720.c | 46 +- trunk/arch/arm/mach-sa1100/lart.c | 82 - trunk/arch/arm/mach-sa1100/nanoengine.c | 13 +- trunk/arch/arm/mach-sa1100/neponset.c | 549 ++- trunk/arch/arm/mach-sa1100/pci-nanoengine.c | 8 +- trunk/arch/arm/mach-sa1100/pleb.c | 25 +- trunk/arch/arm/mach-sa1100/shannon.c | 27 +- trunk/arch/arm/mach-sa1100/simpad.c | 24 +- trunk/arch/arm/mach-sa1100/sleep.S | 37 +- trunk/arch/arm/mach-sa1100/ssp.c | 2 +- trunk/arch/arm/mach-sa1100/time.c | 1 - trunk/arch/arm/mach-shmobile/Makefile | 1 + trunk/arch/arm/mach-shmobile/board-ag5evm.c | 39 +- trunk/arch/arm/mach-shmobile/board-ap4evb.c | 43 +- trunk/arch/arm/mach-shmobile/board-bonito.c | 44 +- trunk/arch/arm/mach-shmobile/board-g3evm.c | 38 +- trunk/arch/arm/mach-shmobile/board-g4evm.c | 38 +- trunk/arch/arm/mach-shmobile/board-kota2.c | 38 +- trunk/arch/arm/mach-shmobile/board-mackerel.c | 48 +- trunk/arch/arm/mach-shmobile/board-marzen.c | 62 +- trunk/arch/arm/mach-shmobile/clock-r8a7740.c | 8 +- trunk/arch/arm/mach-shmobile/clock-r8a7779.c | 4 +- trunk/arch/arm/mach-shmobile/clock-sh7367.c | 8 +- trunk/arch/arm/mach-shmobile/clock-sh7372.c | 10 +- trunk/arch/arm/mach-shmobile/clock-sh7377.c | 8 +- trunk/arch/arm/mach-shmobile/clock-sh73a0.c | 14 +- trunk/arch/arm/mach-shmobile/clock.c | 2 +- .../arm/mach-shmobile/include/mach/common.h | 11 +- trunk/arch/arm/mach-shmobile/localtimer.c | 26 + trunk/arch/arm/mach-shmobile/platsmp.c | 1 + trunk/arch/arm/mach-shmobile/setup-r8a7740.c | 45 - trunk/arch/arm/mach-shmobile/setup-r8a7779.c | 54 - trunk/arch/arm/mach-shmobile/setup-sh7367.c | 32 - trunk/arch/arm/mach-shmobile/setup-sh7372.c | 39 - trunk/arch/arm/mach-shmobile/setup-sh7377.c | 32 - trunk/arch/arm/mach-shmobile/setup-sh73a0.c | 32 - trunk/arch/arm/mach-shmobile/smp-r8a7779.c | 8 +- trunk/arch/arm/mach-shmobile/smp-sh73a0.c | 8 +- trunk/arch/arm/mach-shmobile/timer.c | 16 +- trunk/arch/arm/mach-spear6xx/Kconfig | 7 +- trunk/arch/arm/mach-spear6xx/Makefile | 6 + trunk/arch/arm/mach-spear6xx/clock.c | 14 +- trunk/arch/arm/mach-spear6xx/spear600.c | 25 + trunk/arch/arm/mach-spear6xx/spear600_evb.c | 54 + trunk/arch/arm/mach-spear6xx/spear6xx.c | 132 +- trunk/arch/arm/mach-tegra/Kconfig | 18 +- trunk/arch/arm/mach-tegra/Makefile | 10 +- trunk/arch/arm/mach-tegra/apbio.c | 145 - trunk/arch/arm/mach-tegra/apbio.h | 39 - trunk/arch/arm/mach-tegra/board-dt-tegra20.c | 6 +- trunk/arch/arm/mach-tegra/board-dt-tegra30.c | 26 +- .../arm/mach-tegra/board-harmony-pinmux.c | 6 +- .../arch/arm/mach-tegra/board-harmony-power.c | 18 +- trunk/arch/arm/mach-tegra/board-harmony.c | 2 +- trunk/arch/arm/mach-tegra/board-seaboard.c | 5 +- trunk/arch/arm/mach-tegra/clock.c | 22 - trunk/arch/arm/mach-tegra/clock.h | 15 - trunk/arch/arm/mach-tegra/common.c | 27 +- trunk/arch/arm/mach-tegra/cpuidle.c | 107 - trunk/arch/arm/mach-tegra/dma.c | 128 +- trunk/arch/arm/mach-tegra/flowctrl.c | 62 - trunk/arch/arm/mach-tegra/flowctrl.h | 42 - trunk/arch/arm/mach-tegra/fuse.c | 113 +- trunk/arch/arm/mach-tegra/fuse.h | 38 +- trunk/arch/arm/mach-tegra/headsmp.S | 167 +- trunk/arch/arm/mach-tegra/include/mach/clk.h | 10 - .../arm/mach-tegra/include/mach/debug-macro.S | 88 +- .../arm/mach-tegra/include/mach/gpio-tegra.h | 2 + .../arch/arm/mach-tegra/include/mach/iomap.h | 6 - .../arm/mach-tegra/include/mach/irammap.h | 35 - trunk/arch/arm/mach-tegra/include/mach/irqs.h | 7 +- .../arm/mach-tegra/include/mach/powergate.h | 15 +- .../arm/mach-tegra/include/mach/uncompress.h | 120 +- trunk/arch/arm/mach-tegra/irq.c | 20 +- trunk/arch/arm/mach-tegra/localtimer.c | 26 + trunk/arch/arm/mach-tegra/pcie.c | 16 +- trunk/arch/arm/mach-tegra/platsmp.c | 137 +- trunk/arch/arm/mach-tegra/pmc.c | 76 - trunk/arch/arm/mach-tegra/pmc.h | 23 - trunk/arch/arm/mach-tegra/powergate.c | 53 +- trunk/arch/arm/mach-tegra/reset.c | 84 - trunk/arch/arm/mach-tegra/reset.h | 50 - trunk/arch/arm/mach-tegra/sleep.S | 91 - trunk/arch/arm/mach-tegra/tegra2_clocks.c | 32 +- trunk/arch/arm/mach-tegra/tegra2_emc.c | 224 +- trunk/arch/arm/mach-tegra/tegra2_emc.h | 11 +- trunk/arch/arm/mach-tegra/tegra30_clocks.c | 3099 ----------------- trunk/arch/arm/mach-tegra/timer.c | 22 +- trunk/arch/arm/mach-tegra/usb_phy.c | 11 - trunk/arch/arm/mach-ux500/Kconfig | 51 +- trunk/arch/arm/mach-ux500/Makefile | 3 +- trunk/arch/arm/mach-ux500/Makefile.boot | 1 - .../arm/mach-ux500/board-mop500-regulators.c | 28 - trunk/arch/arm/mach-ux500/board-mop500-sdi.c | 31 +- .../arm/mach-ux500/board-mop500-u8500uib.c | 1 + trunk/arch/arm/mach-ux500/board-mop500.c | 173 +- trunk/arch/arm/mach-ux500/board-mop500.h | 10 +- trunk/arch/arm/mach-ux500/board-u5500-sdi.c | 4 +- trunk/arch/arm/mach-ux500/board-u5500.c | 27 +- trunk/arch/arm/mach-ux500/cache-l2x0.c | 7 +- trunk/arch/arm/mach-ux500/clock.c | 7 - trunk/arch/arm/mach-ux500/clock.h | 1 - trunk/arch/arm/mach-ux500/cpu-db5500.c | 36 +- trunk/arch/arm/mach-ux500/cpu-db8500.c | 44 +- trunk/arch/arm/mach-ux500/cpu.c | 90 +- trunk/arch/arm/mach-ux500/devices-common.c | 79 +- trunk/arch/arm/mach-ux500/devices-common.h | 83 +- trunk/arch/arm/mach-ux500/devices-db5500.h | 116 +- trunk/arch/arm/mach-ux500/devices-db8500.c | 6 - trunk/arch/arm/mach-ux500/devices-db8500.h | 176 +- trunk/arch/arm/mach-ux500/dma-db5500.c | 3 +- .../arm/mach-ux500/include/mach/db8500-regs.h | 3 - .../arm/mach-ux500/include/mach/hardware.h | 2 - trunk/arch/arm/mach-ux500/include/mach/irqs.h | 2 +- .../arch/arm/mach-ux500/include/mach/setup.h | 11 +- trunk/arch/arm/mach-ux500/include/mach/usb.h | 4 +- trunk/arch/arm/mach-ux500/localtimer.c | 29 + trunk/arch/arm/mach-ux500/timer.c | 44 +- trunk/arch/arm/mach-ux500/usb.c | 7 +- trunk/arch/arm/mach-vexpress/Kconfig | 47 +- trunk/arch/arm/mach-vexpress/Makefile.boot | 6 - trunk/arch/arm/mach-vexpress/core.h | 9 +- trunk/arch/arm/mach-vexpress/ct-ca9x4.c | 67 +- .../arm/mach-vexpress/include/mach/ct-ca9x4.h | 3 + .../mach-vexpress/include/mach/debug-macro.S | 30 +- .../arm/mach-vexpress/include/mach/irqs.h | 2 +- .../mach-vexpress/include/mach/motherboard.h | 58 +- .../mach-vexpress/include/mach/uncompress.h | 22 +- trunk/arch/arm/mach-vexpress/platsmp.c | 160 +- trunk/arch/arm/mach-vexpress/v2m.c | 281 +- trunk/arch/arm/plat-mxc/avic.c | 2 +- trunk/arch/arm/plat-mxc/cpu.c | 24 - .../arm/plat-mxc/devices/platform-ahci-imx.c | 16 +- trunk/arch/arm/plat-mxc/epit.c | 2 +- .../arm/plat-mxc/include/mach/board-mx31ads.h | 33 + trunk/arch/arm/plat-mxc/include/mach/common.h | 10 - .../arm/plat-mxc/include/mach/debug-macro.S | 2 +- trunk/arch/arm/plat-mxc/include/mach/dma.h | 3 +- .../arm/plat-mxc/include/mach/iomux-mx25.h | 42 +- trunk/arch/arm/plat-mxc/pwm.c | 4 +- trunk/arch/arm/plat-mxc/system.c | 2 +- trunk/arch/arm/plat-mxc/time.c | 2 +- .../arch/arm/plat-nomadik/include/plat/mtu.h | 4 +- trunk/arch/arm/plat-nomadik/timer.c | 33 +- trunk/arch/arm/plat-omap/Kconfig | 3 - trunk/arch/arm/plat-omap/clock.c | 1 + trunk/arch/arm/plat-omap/counter_32k.c | 1 - trunk/arch/arm/plat-omap/dma.c | 4 +- trunk/arch/arm/plat-omap/dmtimer.c | 21 +- .../plat-omap/include/plat/board-ams-delta.h | 49 +- trunk/arch/arm/plat-omap/include/plat/cpu.h | 9 +- trunk/arch/arm/plat-omap/include/plat/gpio.h | 29 +- .../arm/plat-omap/include/plat/hardware.h | 6 - .../iomap.h => plat-omap/include/plat/io.h} | 80 +- .../arch/arm/plat-omap/include/plat/keypad.h | 2 - trunk/arch/arm/plat-omap/include/plat/mcspi.h | 3 + .../arm/plat-omap/include/plat/omap_device.h | 9 +- .../arm/plat-omap/include/plat/omap_hwmod.h | 2 + .../arm/plat-omap/include/plat/remoteproc.h | 57 - .../arch/arm/plat-omap/include/plat/serial.h | 1 + trunk/arch/arm/plat-omap/include/plat/sram.h | 1 - trunk/arch/arm/plat-omap/include/plat/tc.h | 17 + .../arm/plat-omap/include/plat/uncompress.h | 1 - trunk/arch/arm/plat-omap/include/plat/usb.h | 41 - trunk/arch/arm/plat-omap/mailbox.c | 2 +- trunk/arch/arm/plat-omap/mux.c | 5 +- trunk/arch/arm/plat-omap/omap-pm-noop.c | 2 +- trunk/arch/arm/plat-omap/omap_device.c | 46 +- trunk/arch/arm/plat-omap/sram.c | 23 +- trunk/arch/arm/plat-omap/usb.c | 4 - trunk/arch/arm/plat-orion/common.c | 7 +- .../arch/arm/plat-orion/include/plat/audio.h | 1 + trunk/arch/arm/plat-s3c24xx/Kconfig | 57 +- trunk/arch/arm/plat-s3c24xx/Makefile | 19 +- .../common-smdk.c | 0 .../simtec-pm.c => plat-s3c24xx/pm-simtec.c} | 0 .../s3c2443-clock.c} | 90 +- .../setup-i2c.c | 0 .../{mach-s3c24xx => plat-s3c24xx}/setup-ts.c | 0 .../simtec-audio.c | 2 - .../arm/plat-s3c24xx/spi-bus0-gpe11_12_13.c | 36 + .../arm/plat-s3c24xx/spi-bus1-gpd8_9_10.c | 38 + .../arch/arm/plat-s3c24xx/spi-bus1-gpg5_6_7.c | 36 + trunk/arch/arm/plat-s5p/Kconfig | 18 +- trunk/arch/arm/plat-s5p/Makefile | 3 +- trunk/arch/arm/plat-s5p/clock.c | 36 - trunk/arch/arm/plat-s5p/irq-eint.c | 2 +- trunk/arch/arm/plat-s5p/irq-gpioint.c | 2 +- trunk/arch/arm/plat-s5p/irq-pm.c | 25 +- trunk/arch/arm/plat-s5p/sleep.S | 44 +- trunk/arch/arm/plat-samsung/Kconfig | 4 +- trunk/arch/arm/plat-samsung/clock.c | 12 +- trunk/arch/arm/plat-samsung/dev-backlight.c | 4 +- trunk/arch/arm/plat-samsung/devs.c | 81 +- trunk/arch/arm/plat-samsung/dma-ops.c | 2 +- .../plat-samsung/include/plat/audio-simtec.h | 3 + .../arm/plat-samsung/include/plat/clock.h | 22 +- .../arch/arm/plat-samsung/include/plat/cpu.h | 10 - .../arch/arm/plat-samsung/include/plat/devs.h | 4 - .../arm/plat-samsung/include/plat/dma-pl330.h | 16 - .../arm/plat-samsung/include/plat/regs-dma.h | 2 +- .../arm/plat-samsung/include/plat/regs-rtc.h | 81 +- .../include/plat/regs-usb-hsotg-phy.h | 7 +- .../arm/plat-samsung/include/plat/rtc-core.h | 27 - .../arm/plat-samsung/include/plat/s3c2410.h | 2 + .../arm/plat-samsung/include/plat/s3c2443.h | 20 + .../arm/plat-samsung/include/plat/s5p-clock.h | 6 - .../arm/plat-samsung/include/plat/sdhci.h | 2 - .../arm/plat-samsung/include/plat/udc-hs.h | 5 - .../plat-samsung/include/plat/uncompress.h | 2 - trunk/arch/arm/plat-samsung/irq-vic-timer.c | 16 - trunk/arch/arm/plat-samsung/platformdata.c | 2 - trunk/arch/arm/plat-versatile/Makefile | 1 + trunk/arch/arm/plat-versatile/localtimer.c | 27 + trunk/arch/avr32/boards/atngw100/setup.c | 1 - trunk/arch/avr32/boards/atstk1000/atstk1002.c | 1 - trunk/arch/avr32/mach-at32ap/at32ap700x.c | 2 + .../avr32/mach-at32ap/include/mach/board.h | 13 +- .../arch/avr32/mach-at32ap/include/mach/cpu.h | 3 + trunk/arch/microblaze/Kconfig | 33 +- trunk/arch/microblaze/boot/Makefile | 2 +- trunk/arch/microblaze/include/asm/fixmap.h | 109 - trunk/arch/microblaze/include/asm/highmem.h | 96 - trunk/arch/microblaze/include/asm/mmu.h | 12 - trunk/arch/microblaze/include/asm/page.h | 2 +- trunk/arch/microblaze/include/asm/pgtable.h | 3 +- trunk/arch/microblaze/include/asm/setup.h | 3 +- trunk/arch/microblaze/include/asm/system.h | 1 - trunk/arch/microblaze/include/asm/uaccess.h | 2 +- trunk/arch/microblaze/kernel/cpu/cpuinfo.c | 2 - trunk/arch/microblaze/kernel/early_printk.c | 16 +- trunk/arch/microblaze/kernel/head.S | 129 +- .../microblaze/kernel/hw_exception_handler.S | 13 +- trunk/arch/microblaze/kernel/intc.c | 4 +- trunk/arch/microblaze/kernel/misc.S | 13 +- trunk/arch/microblaze/kernel/setup.c | 24 +- trunk/arch/microblaze/kernel/timer.c | 6 +- trunk/arch/microblaze/kernel/vmlinux.lds.S | 2 +- trunk/arch/microblaze/mm/Makefile | 1 - trunk/arch/microblaze/mm/highmem.c | 88 - trunk/arch/microblaze/mm/init.c | 224 +- trunk/arch/microblaze/mm/pgtable.c | 20 +- trunk/arch/s390/Kconfig | 1 - trunk/arch/s390/include/asm/cpu_mf.h | 95 - trunk/arch/s390/include/asm/irq.h | 2 - trunk/arch/s390/include/asm/perf_event.h | 12 +- trunk/arch/s390/kernel/Makefile | 1 - trunk/arch/s390/kernel/irq.c | 23 - trunk/arch/s390/kernel/perf_cpum_cf.c | 690 ---- trunk/arch/s390/kernel/perf_event.c | 125 - trunk/arch/s390/mm/mmap.c | 2 + trunk/arch/s390/oprofile/hwsampler.c | 52 +- trunk/arch/sh/boards/mach-highlander/setup.c | 2 +- trunk/arch/sh/boards/mach-sdk7786/setup.c | 2 +- trunk/arch/sh/include/asm/clock.h | 2 +- trunk/arch/sh/kernel/cpu/sh2/clock-sh7619.c | 12 +- trunk/arch/sh/kernel/cpu/sh2a/clock-sh7201.c | 12 +- trunk/arch/sh/kernel/cpu/sh2a/clock-sh7203.c | 12 +- trunk/arch/sh/kernel/cpu/sh2a/clock-sh7206.c | 12 +- trunk/arch/sh/kernel/cpu/sh3/clock-sh3.c | 12 +- trunk/arch/sh/kernel/cpu/sh3/clock-sh7705.c | 12 +- trunk/arch/sh/kernel/cpu/sh3/clock-sh7706.c | 12 +- trunk/arch/sh/kernel/cpu/sh3/clock-sh7709.c | 12 +- trunk/arch/sh/kernel/cpu/sh3/clock-sh7710.c | 12 +- trunk/arch/sh/kernel/cpu/sh3/clock-sh7712.c | 10 +- trunk/arch/sh/kernel/cpu/sh4/clock-sh4-202.c | 6 +- trunk/arch/sh/kernel/cpu/sh4/clock-sh4.c | 12 +- trunk/arch/sh/kernel/cpu/sh4a/clock-sh7343.c | 4 +- trunk/arch/sh/kernel/cpu/sh4a/clock-sh7366.c | 4 +- trunk/arch/sh/kernel/cpu/sh4a/clock-sh7722.c | 4 +- trunk/arch/sh/kernel/cpu/sh4a/clock-sh7723.c | 4 +- trunk/arch/sh/kernel/cpu/sh4a/clock-sh7724.c | 6 +- trunk/arch/sh/kernel/cpu/sh4a/clock-sh7757.c | 2 +- trunk/arch/sh/kernel/cpu/sh4a/clock-sh7763.c | 14 +- trunk/arch/sh/kernel/cpu/sh4a/clock-sh7770.c | 12 +- trunk/arch/sh/kernel/cpu/sh4a/clock-sh7780.c | 14 +- trunk/arch/sh/kernel/cpu/sh4a/clock-sh7785.c | 2 +- trunk/arch/sh/kernel/cpu/sh4a/clock-sh7786.c | 2 +- trunk/arch/sh/kernel/cpu/sh4a/clock-shx3.c | 2 +- trunk/arch/sh/kernel/cpu/sh5/clock-sh5.c | 12 +- trunk/arch/um/Kconfig.common | 1 - trunk/arch/um/Makefile | 5 +- trunk/arch/um/defconfig | 655 +--- trunk/arch/um/drivers/chan.h | 18 +- trunk/arch/um/drivers/chan_kern.c | 198 +- trunk/arch/um/drivers/chan_user.h | 2 + trunk/arch/um/drivers/line.c | 258 +- trunk/arch/um/drivers/line.h | 29 +- trunk/arch/um/drivers/mconsole_kern.c | 2 +- trunk/arch/um/drivers/net_kern.c | 2 +- trunk/arch/um/drivers/port_kern.c | 4 +- trunk/arch/um/drivers/random.c | 2 +- trunk/arch/um/drivers/ssl.c | 41 +- trunk/arch/um/drivers/stdio_console.c | 46 +- trunk/arch/um/drivers/ubd_kern.c | 46 +- trunk/arch/um/drivers/ubd_user.c | 8 +- trunk/arch/um/drivers/{ubd.h => ubd_user.h} | 0 trunk/arch/um/drivers/xterm_kern.c | 2 +- trunk/arch/um/include/asm/Kbuild | 2 +- trunk/arch/um/include/asm/asm-offsets.h | 1 + trunk/arch/um/include/asm/auxvec.h | 4 + trunk/arch/um/include/asm/current.h | 13 + trunk/arch/um/include/asm/delay.h | 18 + trunk/arch/um/include/asm/io.h | 57 + trunk/arch/um/include/asm/mutex.h | 9 + trunk/arch/um/include/asm/param.h | 20 + trunk/arch/um/include/asm/pci.h | 6 + trunk/arch/um/include/asm/pgalloc.h | 3 +- trunk/arch/um/include/asm/pgtable.h | 2 - trunk/arch/um/include/asm/ptrace-generic.h | 1 + trunk/arch/um/include/shared/common-offsets.h | 2 + trunk/arch/um/include/shared/kern_util.h | 2 +- trunk/arch/um/kernel/Makefile | 2 +- trunk/arch/um/kernel/process.c | 4 +- trunk/arch/um/kernel/sigio.c | 2 +- trunk/arch/um/kernel/time.c | 2 +- trunk/arch/um/os-Linux/Makefile | 2 + trunk/arch/um/os-Linux/user_syms.c | 2 +- trunk/arch/um/scripts/Makefile.rules | 7 +- trunk/arch/x86/Makefile.um | 4 + trunk/arch/x86/um/Kconfig | 4 +- trunk/arch/x86/um/asm/processor.h | 10 - trunk/arch/x86/um/asm/processor_32.h | 10 + trunk/arch/x86/um/asm/processor_64.h | 10 + trunk/arch/x86/um/bugs_32.c | 4 +- trunk/drivers/Kconfig | 4 - trunk/drivers/Makefile | 2 - trunk/drivers/block/rbd.c | 730 ++-- trunk/drivers/block/rbd_types.h | 4 + trunk/drivers/char/hw_random/omap-rng.c | 2 - trunk/drivers/clk/Kconfig | 37 - trunk/drivers/clk/Makefile | 2 - trunk/drivers/clk/clk-divider.c | 200 -- trunk/drivers/clk/clk-fixed-rate.c | 82 - trunk/drivers/clk/clk-gate.c | 150 - trunk/drivers/clk/clk-mux.c | 116 - trunk/drivers/clk/clk.c | 1461 -------- trunk/drivers/clocksource/tcb_clksrc.c | 90 +- trunk/drivers/devfreq/exynos4_bus.c | 230 +- trunk/drivers/dma/Kconfig | 9 - trunk/drivers/dma/Makefile | 1 - trunk/drivers/dma/sa11x0-dma.c | 1109 ------ trunk/drivers/gpio/gpio-ep93xx.c | 7 + trunk/drivers/gpio/gpio-omap.c | 1106 +++--- trunk/drivers/gpio/gpio-sa1100.c | 1 - trunk/drivers/gpio/gpio-samsung.c | 487 +-- trunk/drivers/gpio/gpio-tegra.c | 59 +- .../drivers/gpu/drm/gma500/mdfld_dsi_output.c | 5 +- trunk/drivers/i2c/busses/i2c-gpio.c | 98 +- trunk/drivers/i2c/busses/i2c-imx.c | 4 +- trunk/drivers/i2c/busses/i2c-pxa.c | 95 +- trunk/drivers/input/keyboard/jornada720_kbd.c | 1 - trunk/drivers/input/serio/ams_delta_serio.c | 54 +- trunk/drivers/input/serio/rpckbd.c | 44 +- trunk/drivers/input/serio/sa1111ps2.c | 59 +- trunk/drivers/input/touchscreen/Kconfig | 2 +- .../drivers/input/touchscreen/jornada720_ts.c | 1 - trunk/drivers/leds/Kconfig | 9 +- trunk/drivers/leds/Makefile | 1 + trunk/drivers/leds/leds-ams-delta.c | 126 + trunk/drivers/mfd/Kconfig | 5 +- trunk/drivers/mfd/mcp-core.c | 49 +- trunk/drivers/mfd/mcp-sa11x0.c | 198 +- trunk/drivers/mfd/ucb1x00-assabet.c | 46 +- trunk/drivers/mfd/ucb1x00-core.c | 433 ++- trunk/drivers/mfd/ucb1x00-ts.c | 39 +- trunk/drivers/misc/atmel_tclib.c | 64 +- trunk/drivers/mmc/host/Kconfig | 2 +- trunk/drivers/mmc/host/at91_mci.c | 1 + trunk/drivers/mmc/host/sdhci-esdhc-imx.c | 6 +- trunk/drivers/mmc/host/sdhci-s3c.c | 6 +- trunk/drivers/mtd/Kconfig | 2 +- trunk/drivers/mtd/devices/Kconfig | 1 - trunk/drivers/mtd/maps/Kconfig | 1 - trunk/drivers/mtd/maps/sa1100-flash.c | 112 + trunk/drivers/mtd/nand/Kconfig | 4 +- trunk/drivers/mtd/nand/ams-delta.c | 74 +- trunk/drivers/mtd/nand/atmel_nand.c | 136 +- trunk/drivers/mtd/onenand/Kconfig | 1 - trunk/drivers/net/Space.c | 2 - trunk/drivers/net/ethernet/cirrus/Kconfig | 19 +- trunk/drivers/net/ethernet/cirrus/cs89x0.c | 148 +- .../drivers/net/ethernet/freescale/gianfar.c | 39 +- .../drivers/net/ethernet/freescale/gianfar.h | 2 +- .../net/ethernet/qlogic/qlcnic/qlcnic.h | 4 +- .../net/ethernet/qlogic/qlcnic/qlcnic_main.c | 4 +- trunk/drivers/net/ethernet/smsc/smc91x.c | 2 +- trunk/drivers/net/irda/Kconfig | 2 +- trunk/drivers/net/irda/sa1100_ir.c | 959 +++-- trunk/drivers/net/usb/cdc-phonet.c | 6 +- trunk/drivers/net/usb/qmi_wwan.c | 36 - trunk/drivers/net/wireless/iwlegacy/3945.c | 3 +- .../drivers/net/wireless/iwlegacy/4965-mac.c | 3 +- .../drivers/net/wireless/iwlwifi/iwl-agn-rx.c | 2 +- trunk/drivers/of/Kconfig | 4 - trunk/drivers/of/Makefile | 1 - trunk/drivers/of/of_mtd.c | 85 - trunk/drivers/pcmcia/at91_cf.c | 5 +- trunk/drivers/pcmcia/sa1111_generic.c | 55 +- trunk/drivers/pcmcia/sa1111_neponset.c | 7 +- trunk/drivers/regulator/Kconfig | 8 + trunk/drivers/regulator/Makefile | 1 + trunk/drivers/regulator/bq24022.c | 162 + trunk/drivers/remoteproc/Kconfig | 28 - trunk/drivers/remoteproc/Makefile | 9 - trunk/drivers/remoteproc/omap_remoteproc.c | 229 -- trunk/drivers/remoteproc/omap_remoteproc.h | 69 - trunk/drivers/remoteproc/remoteproc_core.c | 1586 --------- trunk/drivers/remoteproc/remoteproc_debugfs.c | 179 - .../drivers/remoteproc/remoteproc_internal.h | 44 - trunk/drivers/remoteproc/remoteproc_virtio.c | 289 -- trunk/drivers/rpmsg/Kconfig | 10 - trunk/drivers/rpmsg/Makefile | 1 - trunk/drivers/rpmsg/virtio_rpmsg_bus.c | 1054 ------ trunk/drivers/rtc/Kconfig | 6 +- trunk/drivers/rtc/rtc-at91sam9.c | 85 +- trunk/drivers/rtc/rtc-mv.c | 9 - trunk/drivers/rtc/rtc-s3c.c | 71 +- trunk/drivers/rtc/rtc-sa1100.c | 210 +- trunk/drivers/s390/cio/qdio_main.c | 1 + trunk/drivers/s390/cio/qdio_setup.c | 3 +- trunk/drivers/scsi/arm/arxescsi.c | 2 +- trunk/drivers/scsi/arm/fas216.c | 4 +- trunk/drivers/scsi/arm/fas216.h | 4 + trunk/drivers/sh/clk/cpg.c | 16 +- trunk/drivers/spi/Kconfig | 2 +- trunk/drivers/spi/spi-orion.c | 5 + trunk/drivers/spi/spi-s3c24xx.c | 2 +- trunk/drivers/staging/ste_rmi4/Makefile | 2 +- trunk/drivers/tty/serial/atmel_serial.c | 2 - trunk/drivers/tty/serial/imx.c | 7 +- trunk/drivers/tty/serial/pxa.c | 49 +- trunk/drivers/tty/serial/sa1100.c | 1 - trunk/drivers/usb/Kconfig | 4 +- trunk/drivers/usb/gadget/Kconfig | 8 +- trunk/drivers/usb/gadget/at91_udc.c | 49 +- trunk/drivers/usb/gadget/atmel_usba_udc.c | 6 +- trunk/drivers/usb/gadget/f_phonet.c | 2 +- trunk/drivers/usb/host/ehci-atmel.c | 24 +- trunk/drivers/usb/host/ohci-at91.c | 106 +- trunk/drivers/usb/host/ohci-hcd.c | 2 +- trunk/drivers/usb/host/ohci-sa1111.c | 297 +- trunk/drivers/usb/serial/option.c | 6 +- trunk/drivers/vhost/net.c | 2 +- trunk/drivers/vhost/vhost.c | 11 +- trunk/drivers/vhost/vhost.h | 2 +- trunk/drivers/video/Kconfig | 2 +- trunk/drivers/video/backlight/ep93xx_bl.c | 25 +- trunk/drivers/video/ep93xx-fb.c | 18 +- trunk/drivers/video/omap/lcd_ams_delta.c | 27 +- trunk/drivers/video/omap2/dss/dispc.c | 5 + trunk/drivers/video/omap2/dss/dss.c | 3 - trunk/drivers/video/sa1100fb.c | 493 ++- trunk/drivers/video/sa1100fb.h | 76 +- trunk/drivers/watchdog/Kconfig | 2 +- trunk/drivers/watchdog/at91rm9200_wdt.c | 8 +- trunk/drivers/watchdog/ep93xx_wdt.c | 51 +- trunk/drivers/watchdog/orion_wdt.c | 24 +- trunk/fs/9p/vfs_super.c | 2 +- trunk/fs/ceph/inode.c | 11 +- trunk/fs/ceph/mds_client.c | 7 +- trunk/fs/ceph/snap.c | 2 +- trunk/fs/ceph/super.c | 19 +- trunk/fs/ceph/super.h | 4 +- trunk/fs/ceph/xattr.c | 202 +- trunk/fs/dcache.c | 3 +- trunk/fs/ext3/balloc.c | 84 +- trunk/fs/ext3/inode.c | 9 +- trunk/fs/ext4/balloc.c | 63 +- trunk/fs/ext4/dir.c | 13 +- trunk/fs/ext4/ext4.h | 34 +- trunk/fs/ext4/ext4_extents.h | 4 +- trunk/fs/ext4/ext4_jbd2.h | 128 +- trunk/fs/ext4/extents.c | 330 +- trunk/fs/ext4/fsync.c | 2 - trunk/fs/ext4/ialloc.c | 260 +- trunk/fs/ext4/inode.c | 95 +- trunk/fs/ext4/mballoc.c | 342 +- trunk/fs/ext4/mballoc.h | 20 +- trunk/fs/ext4/migrate.c | 2 +- trunk/fs/ext4/mmp.c | 4 +- trunk/fs/ext4/namei.c | 2 +- trunk/fs/ext4/page-io.c | 18 +- trunk/fs/ext4/resize.c | 37 +- trunk/fs/ext4/super.c | 1075 +++--- trunk/fs/ext4/xattr.c | 25 +- trunk/fs/fs-writeback.c | 22 +- trunk/fs/hostfs/hostfs.h | 3 +- trunk/fs/hostfs/hostfs_kern.c | 5 +- trunk/fs/hostfs/hostfs_user.c | 4 +- trunk/fs/jbd2/checkpoint.c | 140 +- trunk/fs/jbd2/commit.c | 47 +- trunk/fs/jbd2/journal.c | 361 +- trunk/fs/jbd2/recovery.c | 5 +- trunk/fs/jbd2/revoke.c | 12 +- trunk/fs/jbd2/transaction.c | 48 +- trunk/fs/quota/dquot.c | 189 +- trunk/fs/udf/balloc.c | 84 +- trunk/fs/udf/ialloc.c | 1 - trunk/fs/udf/inode.c | 20 +- trunk/fs/udf/super.c | 5 +- trunk/fs/udf/udf_i.h | 1 - trunk/include/linux/atmel_tc.h | 10 - trunk/include/linux/ceph/libceph.h | 2 +- trunk/include/linux/ceph/messenger.h | 5 +- trunk/include/linux/clk-private.h | 196 -- trunk/include/linux/clk-provider.h | 300 -- trunk/include/linux/clk.h | 68 +- trunk/include/linux/fs.h | 13 + trunk/include/linux/jbd2.h | 12 +- trunk/include/linux/journal-head.h | 2 - trunk/include/linux/mfd/mcp.h | 14 +- trunk/include/linux/mfd/ucb1x00.h | 38 +- trunk/include/linux/mod_devicetable.h | 9 - trunk/include/linux/of.h | 16 - trunk/include/linux/of_mtd.h | 19 - trunk/include/linux/platform_data/atmel.h | 27 - trunk/include/linux/platform_data/tegra_emc.h | 34 - trunk/include/linux/regulator/bq24022.h | 24 + trunk/include/linux/remoteproc.h | 478 --- trunk/include/linux/rpmsg.h | 326 -- trunk/include/linux/sa11x0-dma.h | 24 - trunk/include/linux/sh_clk.h | 5 +- trunk/include/linux/skbuff.h | 2 +- trunk/include/linux/spi/orion_spi.h | 1 + trunk/include/linux/virtio_ids.h | 1 - .../net/netfilter/nf_conntrack_l4proto.h | 4 - .../net/netfilter/nf_conntrack_timeout.h | 2 +- trunk/include/trace/events/jbd2.h | 29 +- trunk/include/video/sa1100fb.h | 63 - trunk/lib/Kconfig | 5 - trunk/mm/page-writeback.c | 2 - trunk/net/9p/client.c | 26 +- trunk/net/ceph/ceph_common.c | 26 +- trunk/net/ceph/messenger.c | 456 ++- trunk/net/ceph/osdmap.c | 3 +- trunk/net/core/skbuff.c | 4 +- trunk/net/ipv6/route.c | 8 +- trunk/net/netfilter/nf_conntrack_core.c | 39 +- trunk/net/netfilter/nf_conntrack_proto.c | 21 - trunk/net/netfilter/nfnetlink_cttimeout.c | 45 +- trunk/net/netfilter/xt_CT.c | 31 +- trunk/net/netfilter/xt_LOG.c | 12 +- trunk/samples/Kconfig | 8 - trunk/samples/Makefile | 2 +- trunk/samples/rpmsg/Makefile | 1 - trunk/samples/rpmsg/rpmsg_client_sample.c | 100 - trunk/sound/soc/imx/imx-audmux.c | 8 +- trunk/sound/soc/omap/ams-delta.c | 34 +- trunk/sound/soc/samsung/Kconfig | 12 +- trunk/tools/virtio/linux/hrtimer.h | 0 trunk/tools/virtio/linux/module.h | 0 trunk/tools/virtio/linux/virtio.h | 3 - 1239 files changed, 19408 insertions(+), 46275 deletions(-) delete mode 100644 trunk/Documentation/ABI/testing/sysfs-bus-rpmsg delete mode 100644 trunk/Documentation/clk.txt delete mode 100644 trunk/Documentation/devicetree/bindings/arm/atmel-aic.txt delete mode 100644 trunk/Documentation/devicetree/bindings/arm/atmel-at91.txt delete mode 100644 trunk/Documentation/devicetree/bindings/arm/atmel-pmc.txt delete mode 100644 trunk/Documentation/devicetree/bindings/arm/mrvl.txt delete mode 100644 trunk/Documentation/devicetree/bindings/arm/omap/intc.txt delete mode 100644 trunk/Documentation/devicetree/bindings/arm/spear.txt delete mode 100644 trunk/Documentation/devicetree/bindings/arm/tegra/emc.txt delete mode 100644 trunk/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt delete mode 100644 trunk/Documentation/devicetree/bindings/arm/twd.txt delete mode 100644 trunk/Documentation/devicetree/bindings/arm/vexpress.txt delete mode 100644 trunk/Documentation/devicetree/bindings/dma/tegra20-apbdma.txt delete mode 100644 trunk/Documentation/devicetree/bindings/gpio/gpio_atmel.txt delete mode 100644 trunk/Documentation/devicetree/bindings/gpio/gpio_i2c.txt delete mode 100644 trunk/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt delete mode 100644 trunk/Documentation/devicetree/bindings/i2c/mrvl-i2c.txt delete mode 100644 trunk/Documentation/devicetree/bindings/mtd/atmel-nand.txt delete mode 100644 trunk/Documentation/devicetree/bindings/mtd/nand.txt delete mode 100644 trunk/Documentation/devicetree/bindings/rtc/sa1100-rtc.txt delete mode 100644 trunk/Documentation/devicetree/bindings/serial/mrvl-serial.txt delete mode 100644 trunk/Documentation/devicetree/bindings/usb/atmel-usb.txt delete mode 100644 trunk/Documentation/remoteproc.txt delete mode 100644 trunk/Documentation/rpmsg.txt delete mode 100644 trunk/arch/arm/boot/dts/am3517_mt_ventoux.dts delete mode 100644 trunk/arch/arm/boot/dts/at91sam9g25ek.dts delete mode 100644 trunk/arch/arm/boot/dts/at91sam9x5.dtsi delete mode 100644 trunk/arch/arm/boot/dts/at91sam9x5cm.dtsi delete mode 100644 trunk/arch/arm/boot/dts/db8500.dtsi delete mode 100644 trunk/arch/arm/boot/dts/exynos5250-smdk5250.dts delete mode 100644 trunk/arch/arm/boot/dts/exynos5250.dtsi delete mode 100644 trunk/arch/arm/boot/dts/imx27-phytec-phycore.dts delete mode 100644 trunk/arch/arm/boot/dts/imx27.dtsi delete mode 100644 trunk/arch/arm/boot/dts/kirkwood-dreamplug.dts delete mode 100644 trunk/arch/arm/boot/dts/kirkwood.dtsi delete mode 100644 trunk/arch/arm/boot/dts/omap3-evm.dts delete mode 100644 trunk/arch/arm/boot/dts/pxa168-aspenite.dts delete mode 100644 trunk/arch/arm/boot/dts/pxa168.dtsi delete mode 100644 trunk/arch/arm/boot/dts/snowball.dts delete mode 100644 trunk/arch/arm/boot/dts/spear600-evb.dts delete mode 100644 trunk/arch/arm/boot/dts/spear600.dtsi delete mode 100644 trunk/arch/arm/boot/dts/usb_a9g20-dab-mmx.dtsi delete mode 100644 trunk/arch/arm/boot/dts/vexpress-v2m-rs1.dtsi delete mode 100644 trunk/arch/arm/boot/dts/vexpress-v2m.dtsi delete mode 100644 trunk/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts delete mode 100644 trunk/arch/arm/boot/dts/vexpress-v2p-ca5s.dts delete mode 100644 trunk/arch/arm/boot/dts/vexpress-v2p-ca9.dts rename trunk/arch/arm/{mach-rpc/time.c => common/time-acorn.c} (98%) create mode 100644 trunk/arch/arm/configs/at91cap9_defconfig delete mode 100644 trunk/arch/arm/configs/lpc32xx_defconfig rename trunk/arch/arm/{mach-ep93xx => kernel}/crunch-bits.S (100%) rename trunk/arch/arm/{mach-ep93xx => kernel}/crunch.c (98%) rename trunk/arch/arm/{mach-rpc => kernel}/ecard.c (90%) rename trunk/arch/arm/{mach-rpc => kernel}/ecard.h (100%) create mode 100644 trunk/arch/arm/mach-at91/at91cap9.c create mode 100644 trunk/arch/arm/mach-at91/at91cap9_devices.c delete mode 100644 trunk/arch/arm/mach-at91/at91sam9x5.c create mode 100644 trunk/arch/arm/mach-at91/board-cap9adk.c delete mode 100644 trunk/arch/arm/mach-at91/include/mach/at91_matrix.h delete mode 100644 trunk/arch/arm/mach-at91/include/mach/at91_ramc.h create mode 100644 trunk/arch/arm/mach-at91/include/mach/at91cap9.h create mode 100644 trunk/arch/arm/mach-at91/include/mach/at91cap9_matrix.h delete mode 100644 trunk/arch/arm/mach-at91/include/mach/at91rm9200_sdramc.h delete mode 100644 trunk/arch/arm/mach-at91/include/mach/at91sam9x5.h delete mode 100644 trunk/arch/arm/mach-at91/include/mach/at91sam9x5_matrix.h delete mode 100644 trunk/arch/arm/mach-davinci/davinci.h create mode 100644 trunk/arch/arm/mach-davinci/include/mach/dm355.h create mode 100644 trunk/arch/arm/mach-davinci/include/mach/dm644x.h delete mode 100644 trunk/arch/arm/mach-ebsa110/core.h delete mode 100644 trunk/arch/arm/mach-ep93xx/soc.h delete mode 100644 trunk/arch/arm/mach-exynos/clock-exynos4.c delete mode 100644 trunk/arch/arm/mach-exynos/clock-exynos4.h delete mode 100644 trunk/arch/arm/mach-exynos/clock-exynos5.c create mode 100644 trunk/arch/arm/mach-exynos/clock.c delete mode 100644 trunk/arch/arm/mach-exynos/dev-uart.c create mode 100644 trunk/arch/arm/mach-exynos/include/mach/exynos4-clock.h delete mode 100644 trunk/arch/arm/mach-exynos/mach-exynos5-dt.c create mode 100644 trunk/arch/arm/mach-highbank/include/mach/memory.h create mode 100644 trunk/arch/arm/mach-highbank/localtimer.c rename trunk/arch/arm/mach-imx/{crmregs-imx3.h => crmregs-imx31.h} (94%) delete mode 100644 trunk/arch/arm/mach-imx/imx27-dt.c create mode 100644 trunk/arch/arm/mach-imx/localtimer.c delete mode 100644 trunk/arch/arm/mach-imx/pm-imx3.c delete mode 100644 trunk/arch/arm/mach-kirkwood/board-dreamplug.c delete mode 100644 trunk/arch/arm/mach-kirkwood/board-dt.c delete mode 100644 trunk/arch/arm/mach-lpc32xx/include/mach/board.h delete mode 100644 trunk/arch/arm/mach-mmp/include/mach/regs-rtc.h delete mode 100644 trunk/arch/arm/mach-mmp/mmp-dt.c delete mode 100644 trunk/arch/arm/mach-mxs/devices/platform-gpmi-nand.c delete mode 100644 trunk/arch/arm/mach-mxs/mach-apx4devkit.c create mode 100644 trunk/arch/arm/mach-nomadik/include/mach/setup.h delete mode 100644 trunk/arch/arm/mach-omap1/iomap.h delete mode 100644 trunk/arch/arm/mach-omap2/am35xx-emac.c delete mode 100644 trunk/arch/arm/mach-omap2/am35xx-emac.h create mode 100644 trunk/arch/arm/mach-omap2/timer-mpu.c rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/Makefile.boot (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/bast-ide.c (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/bast-irq.c (100%) create mode 100644 trunk/arch/arm/mach-s3c2410/common.h rename trunk/arch/arm/{mach-s3c24xx/dma-s3c2410.c => mach-s3c2410/dma.c} (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/h1940-bluetooth.c (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/anubis-cpld.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/anubis-irq.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/anubis-map.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/bast-cpld.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/bast-irq.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/bast-map.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/bast-pmu.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/debug-macro.S (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/dma.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/entry-macro.S (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/fb.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/gpio-fns.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/gpio-nrs.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/gpio-track.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/gpio.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/h1940-latch.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/h1940.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/hardware.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/idle.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/io.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/irqs.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/leds-gpio.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/map.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/osiris-cpld.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/osiris-map.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/otom-map.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/pm-core.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/regs-clock.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/regs-dsc.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/regs-gpio.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/regs-gpioj.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/regs-irq.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/regs-lcd.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/regs-mem.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/regs-power.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/regs-s3c2412-mem.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/regs-s3c2412.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/regs-s3c2416-mem.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/regs-s3c2416.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/regs-s3c2443-clock.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/regs-sdi.h (100%) rename trunk/{include/linux/spi/s3c24xx.h => arch/arm/mach-s3c2410/include/mach/spi.h} (56%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/tick.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/timex.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/uncompress.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/vr1000-cpld.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/vr1000-irq.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/include/mach/vr1000-map.h (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/mach-amlm5900.c (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/mach-bast.c (99%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/mach-h1940.c (98%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/mach-n30.c (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/mach-otom.c (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/mach-qt2410.c (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/mach-smdk2410.c (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/mach-tct_hammer.c (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/mach-vr1000.c (99%) rename trunk/arch/arm/{mach-s3c24xx/simtec-nor.c => mach-s3c2410/nor-simtec.c} (98%) rename trunk/arch/arm/{mach-s3c24xx/simtec.h => mach-s3c2410/nor-simtec.h} (63%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/pm-h1940.S (100%) rename trunk/arch/arm/{mach-s3c24xx/pm-s3c2410.c => mach-s3c2410/pm.c} (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2410}/s3c2410.c (100%) rename trunk/arch/arm/{mach-s3c24xx/sleep-s3c2410.S => mach-s3c2410/sleep.S} (100%) rename trunk/arch/arm/{mach-s3c24xx/simtec-usb.c => mach-s3c2410/usb-simtec.c} (99%) create mode 100644 trunk/arch/arm/mach-s3c2410/usb-simtec.h rename trunk/arch/arm/{mach-s3c24xx/clock-s3c2412.c => mach-s3c2412/clock.c} (100%) rename trunk/arch/arm/{mach-s3c24xx/dma-s3c2412.c => mach-s3c2412/dma.c} (100%) rename trunk/arch/arm/{mach-s3c24xx/irq-s3c2412.c => mach-s3c2412/irq.c} (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2412}/mach-jive.c (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2412}/mach-smdk2413.c (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2412}/mach-vstms.c (100%) rename trunk/arch/arm/{mach-s3c24xx/pm-s3c2412.c => mach-s3c2412/pm.c} (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2412}/s3c2412.c (100%) rename trunk/arch/arm/{mach-s3c24xx/sleep-s3c2412.S => mach-s3c2412/sleep.S} (100%) create mode 100644 trunk/arch/arm/mach-s3c2416/Kconfig create mode 100644 trunk/arch/arm/mach-s3c2416/Makefile rename trunk/arch/arm/{mach-s3c24xx/clock-s3c2416.c => mach-s3c2416/clock.c} (96%) rename trunk/arch/arm/{mach-s3c24xx/irq-s3c2416.c => mach-s3c2416/irq.c} (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2416}/mach-smdk2416.c (96%) rename trunk/arch/arm/{mach-s3c24xx/pm-s3c2416.c => mach-s3c2416/pm.c} (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2416}/s3c2416.c (98%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2416}/setup-sdhci-gpio.c (100%) rename trunk/arch/arm/{mach-s3c24xx/clock-s3c2440.c => mach-s3c2440/clock.c} (100%) create mode 100644 trunk/arch/arm/mach-s3c2440/common.h rename trunk/arch/arm/{mach-s3c24xx/dma-s3c2440.c => mach-s3c2440/dma.c} (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2440}/include/mach/gta02.h (100%) rename trunk/arch/arm/{mach-s3c24xx/irq-s3c2440.c => mach-s3c2440/irq.c} (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2440}/mach-anubis.c (99%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2440}/mach-at2440evb.c (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2440}/mach-gta02.c (99%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2440}/mach-mini2440.c (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2440}/mach-nexcoder.c (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2440}/mach-osiris-dvs.c (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2440}/mach-osiris.c (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2440}/mach-rx1950.c (98%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2440}/mach-rx3715.c (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2440}/mach-smdk2440.c (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2440}/s3c2440.c (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2440}/s3c2442.c (100%) rename trunk/arch/arm/{mach-s3c24xx/clock-s3c244x.c => mach-s3c2440/s3c244x-clock.c} (100%) rename trunk/arch/arm/{mach-s3c24xx/irq-s3c244x.c => mach-s3c2440/s3c244x-irq.c} (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2440}/s3c244x.c (100%) create mode 100644 trunk/arch/arm/mach-s3c2443/Kconfig create mode 100644 trunk/arch/arm/mach-s3c2443/Makefile rename trunk/arch/arm/{mach-s3c24xx/clock-s3c2443.c => mach-s3c2443/clock.c} (97%) rename trunk/arch/arm/{mach-s3c24xx/dma-s3c2443.c => mach-s3c2443/dma.c} (85%) rename trunk/arch/arm/{mach-s3c24xx/irq-s3c2443.c => mach-s3c2443/irq.c} (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2443}/mach-smdk2443.c (100%) rename trunk/arch/arm/{mach-s3c24xx => mach-s3c2443}/s3c2443.c (97%) delete mode 100644 trunk/arch/arm/mach-s3c24xx/Kconfig delete mode 100644 trunk/arch/arm/mach-s3c24xx/Makefile delete mode 100644 trunk/arch/arm/mach-s3c64xx/cpuidle.c delete mode 100644 trunk/arch/arm/mach-s3c64xx/setup-usb-phy.c delete mode 100644 trunk/arch/arm/mach-s5pv210/setup-usb-phy.c create mode 100644 trunk/arch/arm/mach-sa1100/dma.c create mode 100644 trunk/arch/arm/mach-sa1100/include/mach/dma.h create mode 100644 trunk/arch/arm/mach-shmobile/localtimer.c create mode 100644 trunk/arch/arm/mach-spear6xx/spear600.c create mode 100644 trunk/arch/arm/mach-spear6xx/spear600_evb.c delete mode 100644 trunk/arch/arm/mach-tegra/apbio.c delete mode 100644 trunk/arch/arm/mach-tegra/apbio.h delete mode 100644 trunk/arch/arm/mach-tegra/cpuidle.c delete mode 100644 trunk/arch/arm/mach-tegra/flowctrl.c delete mode 100644 trunk/arch/arm/mach-tegra/flowctrl.h delete mode 100644 trunk/arch/arm/mach-tegra/include/mach/irammap.h create mode 100644 trunk/arch/arm/mach-tegra/localtimer.c delete mode 100644 trunk/arch/arm/mach-tegra/pmc.c delete mode 100644 trunk/arch/arm/mach-tegra/pmc.h delete mode 100644 trunk/arch/arm/mach-tegra/reset.c delete mode 100644 trunk/arch/arm/mach-tegra/reset.h delete mode 100644 trunk/arch/arm/mach-tegra/sleep.S delete mode 100644 trunk/arch/arm/mach-tegra/tegra30_clocks.c create mode 100644 trunk/arch/arm/mach-ux500/localtimer.c create mode 100644 trunk/arch/arm/plat-mxc/include/mach/board-mx31ads.h rename trunk/arch/arm/{mach-omap2/iomap.h => plat-omap/include/plat/io.h} (77%) delete mode 100644 trunk/arch/arm/plat-omap/include/plat/remoteproc.h rename trunk/arch/arm/{mach-s3c24xx => plat-s3c24xx}/common-smdk.c (100%) rename trunk/arch/arm/{mach-s3c24xx/simtec-pm.c => plat-s3c24xx/pm-simtec.c} (100%) rename trunk/arch/arm/{mach-s3c24xx/common-s3c2443.c => plat-s3c24xx/s3c2443-clock.c} (88%) rename trunk/arch/arm/{mach-s3c24xx => plat-s3c24xx}/setup-i2c.c (100%) rename trunk/arch/arm/{mach-s3c24xx => plat-s3c24xx}/setup-ts.c (100%) rename trunk/arch/arm/{mach-s3c24xx => plat-s3c24xx}/simtec-audio.c (98%) create mode 100644 trunk/arch/arm/plat-s3c24xx/spi-bus0-gpe11_12_13.c create mode 100644 trunk/arch/arm/plat-s3c24xx/spi-bus1-gpd8_9_10.c create mode 100644 trunk/arch/arm/plat-s3c24xx/spi-bus1-gpg5_6_7.c delete mode 100644 trunk/arch/arm/plat-samsung/include/plat/rtc-core.h create mode 100644 trunk/arch/arm/plat-versatile/localtimer.c delete mode 100644 trunk/arch/microblaze/include/asm/fixmap.h delete mode 100644 trunk/arch/microblaze/include/asm/highmem.h delete mode 100644 trunk/arch/microblaze/mm/highmem.c delete mode 100644 trunk/arch/s390/include/asm/cpu_mf.h delete mode 100644 trunk/arch/s390/kernel/perf_cpum_cf.c delete mode 100644 trunk/arch/s390/kernel/perf_event.c rename trunk/arch/um/drivers/{ubd.h => ubd_user.h} (100%) create mode 100644 trunk/arch/um/include/asm/asm-offsets.h create mode 100644 trunk/arch/um/include/asm/auxvec.h create mode 100644 trunk/arch/um/include/asm/current.h create mode 100644 trunk/arch/um/include/asm/delay.h create mode 100644 trunk/arch/um/include/asm/io.h create mode 100644 trunk/arch/um/include/asm/mutex.h create mode 100644 trunk/arch/um/include/asm/param.h create mode 100644 trunk/arch/um/include/asm/pci.h delete mode 100644 trunk/drivers/clk/clk-divider.c delete mode 100644 trunk/drivers/clk/clk-fixed-rate.c delete mode 100644 trunk/drivers/clk/clk-gate.c delete mode 100644 trunk/drivers/clk/clk-mux.c delete mode 100644 trunk/drivers/clk/clk.c delete mode 100644 trunk/drivers/dma/sa11x0-dma.c create mode 100644 trunk/drivers/leds/leds-ams-delta.c delete mode 100644 trunk/drivers/of/of_mtd.c create mode 100644 trunk/drivers/regulator/bq24022.c delete mode 100644 trunk/drivers/remoteproc/Kconfig delete mode 100644 trunk/drivers/remoteproc/Makefile delete mode 100644 trunk/drivers/remoteproc/omap_remoteproc.c delete mode 100644 trunk/drivers/remoteproc/omap_remoteproc.h delete mode 100644 trunk/drivers/remoteproc/remoteproc_core.c delete mode 100644 trunk/drivers/remoteproc/remoteproc_debugfs.c delete mode 100644 trunk/drivers/remoteproc/remoteproc_internal.h delete mode 100644 trunk/drivers/remoteproc/remoteproc_virtio.c delete mode 100644 trunk/drivers/rpmsg/Kconfig delete mode 100644 trunk/drivers/rpmsg/Makefile delete mode 100644 trunk/drivers/rpmsg/virtio_rpmsg_bus.c delete mode 100644 trunk/include/linux/clk-private.h delete mode 100644 trunk/include/linux/clk-provider.h delete mode 100644 trunk/include/linux/of_mtd.h delete mode 100644 trunk/include/linux/platform_data/atmel.h delete mode 100644 trunk/include/linux/platform_data/tegra_emc.h create mode 100644 trunk/include/linux/regulator/bq24022.h delete mode 100644 trunk/include/linux/remoteproc.h delete mode 100644 trunk/include/linux/rpmsg.h delete mode 100644 trunk/include/linux/sa11x0-dma.h delete mode 100644 trunk/include/video/sa1100fb.h delete mode 100644 trunk/samples/rpmsg/Makefile delete mode 100644 trunk/samples/rpmsg/rpmsg_client_sample.c delete mode 100644 trunk/tools/virtio/linux/hrtimer.h delete mode 100644 trunk/tools/virtio/linux/module.h diff --git a/[refs] b/[refs] index 4ad6dcdd57d5..e64d19ef1edd 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 735e941caa9a35f933297af0ab1e0ad6447411c4 +refs/heads/master: a1978f74da69565a2e472394c7dcb2cfb31b3e45 diff --git a/trunk/Documentation/ABI/testing/sysfs-bus-rpmsg b/trunk/Documentation/ABI/testing/sysfs-bus-rpmsg deleted file mode 100644 index 189e419a5a2d..000000000000 --- a/trunk/Documentation/ABI/testing/sysfs-bus-rpmsg +++ /dev/null @@ -1,75 +0,0 @@ -What: /sys/bus/rpmsg/devices/.../name -Date: June 2011 -KernelVersion: 3.3 -Contact: Ohad Ben-Cohen -Description: - Every rpmsg device is a communication channel with a remote - processor. Channels are identified with a (textual) name, - which is maximum 32 bytes long (defined as RPMSG_NAME_SIZE in - rpmsg.h). - - This sysfs entry contains the name of this channel. - -What: /sys/bus/rpmsg/devices/.../src -Date: June 2011 -KernelVersion: 3.3 -Contact: Ohad Ben-Cohen -Description: - Every rpmsg device is a communication channel with a remote - processor. Channels have a local ("source") rpmsg address, - and remote ("destination") rpmsg address. When an entity - starts listening on one end of a channel, it assigns it with - a unique rpmsg address (a 32 bits integer). This way when - inbound messages arrive to this address, the rpmsg core - dispatches them to the listening entity (a kernel driver). - - This sysfs entry contains the src (local) rpmsg address - of this channel. If it contains 0xffffffff, then an address - wasn't assigned (can happen if no driver exists for this - channel). - -What: /sys/bus/rpmsg/devices/.../dst -Date: June 2011 -KernelVersion: 3.3 -Contact: Ohad Ben-Cohen -Description: - Every rpmsg device is a communication channel with a remote - processor. Channels have a local ("source") rpmsg address, - and remote ("destination") rpmsg address. When an entity - starts listening on one end of a channel, it assigns it with - a unique rpmsg address (a 32 bits integer). This way when - inbound messages arrive to this address, the rpmsg core - dispatches them to the listening entity. - - This sysfs entry contains the dst (remote) rpmsg address - of this channel. If it contains 0xffffffff, then an address - wasn't assigned (can happen if the kernel driver that - is attached to this channel is exposing a service to the - remote processor. This make it a local rpmsg server, - and it is listening for inbound messages that may be sent - from any remote rpmsg client; it is not bound to a single - remote entity). - -What: /sys/bus/rpmsg/devices/.../announce -Date: June 2011 -KernelVersion: 3.3 -Contact: Ohad Ben-Cohen -Description: - Every rpmsg device is a communication channel with a remote - processor. Channels are identified by a textual name (see - /sys/bus/rpmsg/devices/.../name above) and have a local - ("source") rpmsg address, and remote ("destination") rpmsg - address. - - A channel is first created when an entity, whether local - or remote, starts listening on it for messages (and is thus - called an rpmsg server). - - When that happens, a "name service" announcement is sent - to the other processor, in order to let it know about the - creation of the channel (this way remote clients know they - can start sending messages). - - This sysfs entry tells us whether the channel is a local - server channel that is announced (values are either - true or false). diff --git a/trunk/Documentation/clk.txt b/trunk/Documentation/clk.txt deleted file mode 100644 index 1943fae014fd..000000000000 --- a/trunk/Documentation/clk.txt +++ /dev/null @@ -1,233 +0,0 @@ - The Common Clk Framework - Mike Turquette - -This document endeavours to explain the common clk framework details, -and how to port a platform over to this framework. It is not yet a -detailed explanation of the clock api in include/linux/clk.h, but -perhaps someday it will include that information. - - Part 1 - introduction and interface split - -The common clk framework is an interface to control the clock nodes -available on various devices today. This may come in the form of clock -gating, rate adjustment, muxing or other operations. This framework is -enabled with the CONFIG_COMMON_CLK option. - -The interface itself is divided into two halves, each shielded from the -details of its counterpart. First is the common definition of struct -clk which unifies the framework-level accounting and infrastructure that -has traditionally been duplicated across a variety of platforms. Second -is a common implementation of the clk.h api, defined in -drivers/clk/clk.c. Finally there is struct clk_ops, whose operations -are invoked by the clk api implementation. - -The second half of the interface is comprised of the hardware-specific -callbacks registered with struct clk_ops and the corresponding -hardware-specific structures needed to model a particular clock. For -the remainder of this document any reference to a callback in struct -clk_ops, such as .enable or .set_rate, implies the hardware-specific -implementation of that code. Likewise, references to struct clk_foo -serve as a convenient shorthand for the implementation of the -hardware-specific bits for the hypothetical "foo" hardware. - -Tying the two halves of this interface together is struct clk_hw, which -is defined in struct clk_foo and pointed to within struct clk. This -allows easy for navigation between the two discrete halves of the common -clock interface. - - Part 2 - common data structures and api - -Below is the common struct clk definition from -include/linux/clk-private.h, modified for brevity: - - struct clk { - const char *name; - const struct clk_ops *ops; - struct clk_hw *hw; - char **parent_names; - struct clk **parents; - struct clk *parent; - struct hlist_head children; - struct hlist_node child_node; - ... - }; - -The members above make up the core of the clk tree topology. The clk -api itself defines several driver-facing functions which operate on -struct clk. That api is documented in include/linux/clk.h. - -Platforms and devices utilizing the common struct clk use the struct -clk_ops pointer in struct clk to perform the hardware-specific parts of -the operations defined in clk.h: - - struct clk_ops { - int (*prepare)(struct clk_hw *hw); - void (*unprepare)(struct clk_hw *hw); - int (*enable)(struct clk_hw *hw); - void (*disable)(struct clk_hw *hw); - int (*is_enabled)(struct clk_hw *hw); - unsigned long (*recalc_rate)(struct clk_hw *hw, - unsigned long parent_rate); - long (*round_rate)(struct clk_hw *hw, unsigned long, - unsigned long *); - int (*set_parent)(struct clk_hw *hw, u8 index); - u8 (*get_parent)(struct clk_hw *hw); - int (*set_rate)(struct clk_hw *hw, unsigned long); - void (*init)(struct clk_hw *hw); - }; - - Part 3 - hardware clk implementations - -The strength of the common struct clk comes from its .ops and .hw pointers -which abstract the details of struct clk from the hardware-specific bits, and -vice versa. To illustrate consider the simple gateable clk implementation in -drivers/clk/clk-gate.c: - -struct clk_gate { - struct clk_hw hw; - void __iomem *reg; - u8 bit_idx; - ... -}; - -struct clk_gate contains struct clk_hw hw as well as hardware-specific -knowledge about which register and bit controls this clk's gating. -Nothing about clock topology or accounting, such as enable_count or -notifier_count, is needed here. That is all handled by the common -framework code and struct clk. - -Let's walk through enabling this clk from driver code: - - struct clk *clk; - clk = clk_get(NULL, "my_gateable_clk"); - - clk_prepare(clk); - clk_enable(clk); - -The call graph for clk_enable is very simple: - -clk_enable(clk); - clk->ops->enable(clk->hw); - [resolves to...] - clk_gate_enable(hw); - [resolves struct clk gate with to_clk_gate(hw)] - clk_gate_set_bit(gate); - -And the definition of clk_gate_set_bit: - -static void clk_gate_set_bit(struct clk_gate *gate) -{ - u32 reg; - - reg = __raw_readl(gate->reg); - reg |= BIT(gate->bit_idx); - writel(reg, gate->reg); -} - -Note that to_clk_gate is defined as: - -#define to_clk_gate(_hw) container_of(_hw, struct clk_gate, clk) - -This pattern of abstraction is used for every clock hardware -representation. - - Part 4 - supporting your own clk hardware - -When implementing support for a new type of clock it only necessary to -include the following header: - -#include - -include/linux/clk.h is included within that header and clk-private.h -must never be included from the code which implements the operations for -a clock. More on that below in Part 5. - -To construct a clk hardware structure for your platform you must define -the following: - -struct clk_foo { - struct clk_hw hw; - ... hardware specific data goes here ... -}; - -To take advantage of your data you'll need to support valid operations -for your clk: - -struct clk_ops clk_foo_ops { - .enable = &clk_foo_enable; - .disable = &clk_foo_disable; -}; - -Implement the above functions using container_of: - -#define to_clk_foo(_hw) container_of(_hw, struct clk_foo, hw) - -int clk_foo_enable(struct clk_hw *hw) -{ - struct clk_foo *foo; - - foo = to_clk_foo(hw); - - ... perform magic on foo ... - - return 0; -}; - -Below is a matrix detailing which clk_ops are mandatory based upon the -hardware capbilities of that clock. A cell marked as "y" means -mandatory, a cell marked as "n" implies that either including that -callback is invalid or otherwise uneccesary. Empty cells are either -optional or must be evaluated on a case-by-case basis. - - clock hardware characteristics - ----------------------------------------------------------- - | gate | change rate | single parent | multiplexer | root | - |------|-------------|---------------|-------------|------| -.prepare | | | | | | -.unprepare | | | | | | - | | | | | | -.enable | y | | | | | -.disable | y | | | | | -.is_enabled | y | | | | | - | | | | | | -.recalc_rate | | y | | | | -.round_rate | | y | | | | -.set_rate | | y | | | | - | | | | | | -.set_parent | | | n | y | n | -.get_parent | | | n | y | n | - | | | | | | -.init | | | | | | - ----------------------------------------------------------- - -Finally, register your clock at run-time with a hardware-specific -registration function. This function simply populates struct clk_foo's -data and then passes the common struct clk parameters to the framework -with a call to: - -clk_register(...) - -See the basic clock types in drivers/clk/clk-*.c for examples. - - Part 5 - static initialization of clock data - -For platforms with many clocks (often numbering into the hundreds) it -may be desirable to statically initialize some clock data. This -presents a problem since the definition of struct clk should be hidden -from everyone except for the clock core in drivers/clk/clk.c. - -To get around this problem struct clk's definition is exposed in -include/linux/clk-private.h along with some macros for more easily -initializing instances of the basic clock types. These clocks must -still be initialized with the common clock framework via a call to -__clk_init. - -clk-private.h must NEVER be included by code which implements struct -clk_ops callbacks, nor must it be included by any logic which pokes -around inside of struct clk at run-time. To do so is a layering -violation. - -To better enforce this policy, always follow this simple rule: any -statically initialized clock data MUST be defined in a separate file -from the logic that implements its ops. Basically separate the logic -from the data and all is well. diff --git a/trunk/Documentation/devicetree/bindings/arm/atmel-aic.txt b/trunk/Documentation/devicetree/bindings/arm/atmel-aic.txt deleted file mode 100644 index aabca4f83402..000000000000 --- a/trunk/Documentation/devicetree/bindings/arm/atmel-aic.txt +++ /dev/null @@ -1,38 +0,0 @@ -* Advanced Interrupt Controller (AIC) - -Required properties: -- compatible: Should be "atmel,-aic" -- interrupt-controller: Identifies the node as an interrupt controller. -- interrupt-parent: For single AIC system, it is an empty property. -- #interrupt-cells: The number of cells to define the interrupts. It sould be 2. - The first cell is the IRQ number (aka "Peripheral IDentifier" on datasheet). - The second cell is used to specify flags: - bits[3:0] trigger type and level flags: - 1 = low-to-high edge triggered. - 2 = high-to-low edge triggered. - 4 = active high level-sensitive. - 8 = active low level-sensitive. - Valid combinations are 1, 2, 3, 4, 8. - Default flag for internal sources should be set to 4 (active high). -- reg: Should contain AIC registers location and length - -Examples: - /* - * AIC - */ - aic: interrupt-controller@fffff000 { - compatible = "atmel,at91rm9200-aic"; - interrupt-controller; - interrupt-parent; - #interrupt-cells = <2>; - reg = <0xfffff000 0x200>; - }; - - /* - * An interrupt generating device that is wired to an AIC. - */ - dma: dma-controller@ffffec00 { - compatible = "atmel,at91sam9g45-dma"; - reg = <0xffffec00 0x200>; - interrupts = <21 4>; - }; diff --git a/trunk/Documentation/devicetree/bindings/arm/atmel-at91.txt b/trunk/Documentation/devicetree/bindings/arm/atmel-at91.txt deleted file mode 100644 index ecc81e368715..000000000000 --- a/trunk/Documentation/devicetree/bindings/arm/atmel-at91.txt +++ /dev/null @@ -1,92 +0,0 @@ -Atmel AT91 device tree bindings. -================================ - -PIT Timer required properties: -- compatible: Should be "atmel,at91sam9260-pit" -- reg: Should contain registers location and length -- interrupts: Should contain interrupt for the PIT which is the IRQ line - shared across all System Controller members. - -TC/TCLIB Timer required properties: -- compatible: Should be "atmel,-pit". - can be "at91rm9200" or "at91sam9x5" -- reg: Should contain registers location and length -- interrupts: Should contain all interrupts for the TC block - Note that you can specify several interrupt cells if the TC - block has one interrupt per channel. - -Examples: - -One interrupt per TC block: - tcb0: timer@fff7c000 { - compatible = "atmel,at91rm9200-tcb"; - reg = <0xfff7c000 0x100>; - interrupts = <18 4>; - }; - -One interrupt per TC channel in a TC block: - tcb1: timer@fffdc000 { - compatible = "atmel,at91rm9200-tcb"; - reg = <0xfffdc000 0x100>; - interrupts = <26 4 27 4 28 4>; - }; - -RSTC Reset Controller required properties: -- compatible: Should be "atmel,-rstc". - can be "at91sam9260" or "at91sam9g45" -- reg: Should contain registers location and length - -Example: - - rstc@fffffd00 { - compatible = "atmel,at91sam9260-rstc"; - reg = <0xfffffd00 0x10>; - }; - -RAMC SDRAM/DDR Controller required properties: -- compatible: Should be "atmel,at91sam9260-sdramc", - "atmel,at91sam9g45-ddramc", -- reg: Should contain registers location and length - For at91sam9263 and at91sam9g45 you must specify 2 entries. - -Examples: - - ramc0: ramc@ffffe800 { - compatible = "atmel,at91sam9g45-ddramc"; - reg = <0xffffe800 0x200>; - }; - - ramc0: ramc@ffffe400 { - compatible = "atmel,at91sam9g45-ddramc"; - reg = <0xffffe400 0x200 - 0xffffe600 0x200>; - }; - -SHDWC Shutdown Controller - -required properties: -- compatible: Should be "atmel,-shdwc". - can be "at91sam9260", "at91sam9rl" or "at91sam9x5". -- reg: Should contain registers location and length - -optional properties: -- atmel,wakeup-mode: String, operation mode of the wakeup mode. - Supported values are: "none", "high", "low", "any". -- atmel,wakeup-counter: Counter on Wake-up 0 (between 0x0 and 0xf). - -optional at91sam9260 properties: -- atmel,wakeup-rtt-timer: boolean to enable Real-time Timer Wake-up. - -optional at91sam9rl properties: -- atmel,wakeup-rtc-timer: boolean to enable Real-time Clock Wake-up. -- atmel,wakeup-rtt-timer: boolean to enable Real-time Timer Wake-up. - -optional at91sam9x5 properties: -- atmel,wakeup-rtc-timer: boolean to enable Real-time Clock Wake-up. - -Example: - - rstc@fffffd00 { - compatible = "atmel,at91sam9260-rstc"; - reg = <0xfffffd00 0x10>; - }; diff --git a/trunk/Documentation/devicetree/bindings/arm/atmel-pmc.txt b/trunk/Documentation/devicetree/bindings/arm/atmel-pmc.txt deleted file mode 100644 index 389bed5056e8..000000000000 --- a/trunk/Documentation/devicetree/bindings/arm/atmel-pmc.txt +++ /dev/null @@ -1,11 +0,0 @@ -* Power Management Controller (PMC) - -Required properties: -- compatible: Should be "atmel,at91rm9200-pmc" -- reg: Should contain PMC registers location and length - -Examples: - pmc: pmc@fffffc00 { - compatible = "atmel,at91rm9200-pmc"; - reg = <0xfffffc00 0x100>; - }; diff --git a/trunk/Documentation/devicetree/bindings/arm/fsl.txt b/trunk/Documentation/devicetree/bindings/arm/fsl.txt index bfbc771a65f8..54bdddadf1cf 100644 --- a/trunk/Documentation/devicetree/bindings/arm/fsl.txt +++ b/trunk/Documentation/devicetree/bindings/arm/fsl.txt @@ -28,25 +28,3 @@ Required root node properties: i.MX6 Quad SABRE Lite Board Required root node properties: - compatible = "fsl,imx6q-sabrelite", "fsl,imx6q"; - -Generic i.MX boards -------------------- - -No iomux setup is done for these boards, so this must have been configured -by the bootloader for boards to work with the generic bindings. - -i.MX27 generic board -Required root node properties: - - compatible = "fsl,imx27"; - -i.MX51 generic board -Required root node properties: - - compatible = "fsl,imx51"; - -i.MX53 generic board -Required root node properties: - - compatible = "fsl,imx53"; - -i.MX6q generic board -Required root node properties: - - compatible = "fsl,imx6q"; diff --git a/trunk/Documentation/devicetree/bindings/arm/mrvl.txt b/trunk/Documentation/devicetree/bindings/arm/mrvl.txt deleted file mode 100644 index d8de933e9d81..000000000000 --- a/trunk/Documentation/devicetree/bindings/arm/mrvl.txt +++ /dev/null @@ -1,6 +0,0 @@ -Marvell Platforms Device Tree Bindings ----------------------------------------------------- - -PXA168 Aspenite Board -Required root node properties: - - compatible = "mrvl,pxa168-aspenite", "mrvl,pxa168"; diff --git a/trunk/Documentation/devicetree/bindings/arm/omap/intc.txt b/trunk/Documentation/devicetree/bindings/arm/omap/intc.txt deleted file mode 100644 index f2583e6ec060..000000000000 --- a/trunk/Documentation/devicetree/bindings/arm/omap/intc.txt +++ /dev/null @@ -1,27 +0,0 @@ -* OMAP Interrupt Controller - -OMAP2/3 are using a TI interrupt controller that can support several -configurable number of interrupts. - -Main node required properties: - -- compatible : should be: - "ti,omap2-intc" -- interrupt-controller : Identifies the node as an interrupt controller -- #interrupt-cells : Specifies the number of cells needed to encode an - interrupt source. The type shall be a and the value shall be 1. - - The cell contains the interrupt number in the range [0-128]. -- ti,intc-size: Number of interrupts handled by the interrupt controller. -- reg: physical base address and size of the intc registers map. - -Example: - - intc: interrupt-controller@1 { - compatible = "ti,omap2-intc"; - interrupt-controller; - #interrupt-cells = <1>; - ti,intc-size = <96>; - reg = <0x48200000 0x1000>; - }; - diff --git a/trunk/Documentation/devicetree/bindings/arm/spear.txt b/trunk/Documentation/devicetree/bindings/arm/spear.txt deleted file mode 100644 index f8e54f092328..000000000000 --- a/trunk/Documentation/devicetree/bindings/arm/spear.txt +++ /dev/null @@ -1,8 +0,0 @@ -ST SPEAr Platforms Device Tree Bindings ---------------------------------------- - -Boards with the ST SPEAr600 SoC shall have the following properties: - -Required root node property: - -compatible = "st,spear600"; diff --git a/trunk/Documentation/devicetree/bindings/arm/tegra/emc.txt b/trunk/Documentation/devicetree/bindings/arm/tegra/emc.txt deleted file mode 100644 index 09335f8eee00..000000000000 --- a/trunk/Documentation/devicetree/bindings/arm/tegra/emc.txt +++ /dev/null @@ -1,100 +0,0 @@ -Embedded Memory Controller - -Properties: -- name : Should be emc -- #address-cells : Should be 1 -- #size-cells : Should be 0 -- compatible : Should contain "nvidia,tegra20-emc". -- reg : Offset and length of the register set for the device -- nvidia,use-ram-code : If present, the sub-nodes will be addressed - and chosen using the ramcode board selector. If omitted, only one - set of tables can be present and said tables will be used - irrespective of ram-code configuration. - -Child device nodes describe the memory settings for different configurations and clock rates. - -Example: - - emc@7000f400 { - #address-cells = < 1 >; - #size-cells = < 0 >; - compatible = "nvidia,tegra20-emc"; - reg = <0x7000f4000 0x200>; - } - - -Embedded Memory Controller ram-code table - -If the emc node has the nvidia,use-ram-code property present, then the -next level of nodes below the emc table are used to specify which settings -apply for which ram-code settings. - -If the emc node lacks the nvidia,use-ram-code property, this level is omitted -and the tables are stored directly under the emc node (see below). - -Properties: - -- name : Should be emc-tables -- nvidia,ram-code : the binary representation of the ram-code board strappings - for which this node (and children) are valid. - - - -Embedded Memory Controller configuration table - -This is a table containing the EMC register settings for the various -operating speeds of the memory controller. They are always located as -subnodes of the emc controller node. - -There are two ways of specifying which tables to use: - -* The simplest is if there is just one set of tables in the device tree, - and they will always be used (based on which frequency is used). - This is the preferred method, especially when firmware can fill in - this information based on the specific system information and just - pass it on to the kernel. - -* The slightly more complex one is when more than one memory configuration - might exist on the system. The Tegra20 platform handles this during - early boot by selecting one out of possible 4 memory settings based - on a 2-pin "ram code" bootstrap setting on the board. The values of - these strappings can be read through a register in the SoC, and thus - used to select which tables to use. - -Properties: -- name : Should be emc-table -- compatible : Should contain "nvidia,tegra20-emc-table". -- reg : either an opaque enumerator to tell different tables apart, or - the valid frequency for which the table should be used (in kHz). -- clock-frequency : the clock frequency for the EMC at which this - table should be used (in kHz). -- nvidia,emc-registers : a 46 word array of EMC registers to be programmed - for operation at the 'clock-frequency' setting. - The order and contents of the registers are: - RC, RFC, RAS, RP, R2W, W2R, R2P, W2P, RD_RCD, WR_RCD, RRD, REXT, - WDV, QUSE, QRST, QSAFE, RDV, REFRESH, BURST_REFRESH_NUM, PDEX2WR, - PDEX2RD, PCHG2PDEN, ACT2PDEN, AR2PDEN, RW2PDEN, TXSR, TCKE, TFAW, - TRPAB, TCLKSTABLE, TCLKSTOP, TREFBW, QUSE_EXTRA, FBIO_CFG6, ODT_WRITE, - ODT_READ, FBIO_CFG5, CFG_DIG_DLL, DLL_XFORM_DQS, DLL_XFORM_QUSE, - ZCAL_REF_CNT, ZCAL_WAIT_CNT, AUTO_CAL_INTERVAL, CFG_CLKTRIM_0, - CFG_CLKTRIM_1, CFG_CLKTRIM_2 - - emc-table@166000 { - reg = <166000>; - compatible = "nvidia,tegra20-emc-table"; - clock-frequency = < 166000 >; - nvidia,emc-registers = < 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 >; - }; - - emc-table@333000 { - reg = <333000>; - compatible = "nvidia,tegra20-emc-table"; - clock-frequency = < 333000 >; - nvidia,emc-registers = < 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 >; - }; diff --git a/trunk/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt b/trunk/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt deleted file mode 100644 index b5846e21cc2e..000000000000 --- a/trunk/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt +++ /dev/null @@ -1,19 +0,0 @@ -NVIDIA Tegra Power Management Controller (PMC) - -Properties: -- name : Should be pmc -- compatible : Should contain "nvidia,tegra-pmc". -- reg : Offset and length of the register set for the device -- nvidia,invert-interrupt : If present, inverts the PMU interrupt signal. - The PMU is an external Power Management Unit, whose interrupt output - signal is fed into the PMC. This signal is optionally inverted, and then - fed into the ARM GIC. The PMC is not involved in the detection or - handling of this interrupt signal, merely its inversion. - -Example: - -pmc@7000f400 { - compatible = "nvidia,tegra20-pmc"; - reg = <0x7000e400 0x400>; - nvidia,invert-interrupt; -}; diff --git a/trunk/Documentation/devicetree/bindings/arm/twd.txt b/trunk/Documentation/devicetree/bindings/arm/twd.txt deleted file mode 100644 index 75b8610939fa..000000000000 --- a/trunk/Documentation/devicetree/bindings/arm/twd.txt +++ /dev/null @@ -1,48 +0,0 @@ -* ARM Timer Watchdog - -ARM 11MP, Cortex-A5 and Cortex-A9 are often associated with a per-core -Timer-Watchdog (aka TWD), which provides both a per-cpu local timer -and watchdog. - -The TWD is usually attached to a GIC to deliver its two per-processor -interrupts. - -** Timer node required properties: - -- compatible : Should be one of: - "arm,cortex-a9-twd-timer" - "arm,cortex-a5-twd-timer" - "arm,arm11mp-twd-timer" - -- interrupts : One interrupt to each core - -- reg : Specify the base address and the size of the TWD timer - register window. - -Example: - - twd-timer@2c000600 { - compatible = "arm,arm11mp-twd-timer""; - reg = <0x2c000600 0x20>; - interrupts = <1 13 0xf01>; - }; - -** Watchdog node properties: - -- compatible : Should be one of: - "arm,cortex-a9-twd-wdt" - "arm,cortex-a5-twd-wdt" - "arm,arm11mp-twd-wdt" - -- interrupts : One interrupt to each core - -- reg : Specify the base address and the size of the TWD watchdog - register window. - -Example: - - twd-watchdog@2c000620 { - compatible = "arm,arm11mp-twd-wdt"; - reg = <0x2c000620 0x20>; - interrupts = <1 14 0xf01>; - }; diff --git a/trunk/Documentation/devicetree/bindings/arm/vexpress.txt b/trunk/Documentation/devicetree/bindings/arm/vexpress.txt deleted file mode 100644 index ec8b50cbb2e8..000000000000 --- a/trunk/Documentation/devicetree/bindings/arm/vexpress.txt +++ /dev/null @@ -1,146 +0,0 @@ -ARM Versatile Express boards family ------------------------------------ - -ARM's Versatile Express platform consists of a motherboard and one -or more daughterboards (tiles). The motherboard provides a set of -peripherals. Processor and RAM "live" on the tiles. - -The motherboard and each core tile should be described by a separate -Device Tree source file, with the tile's description including -the motherboard file using a /include/ directive. As the motherboard -can be initialized in one of two different configurations ("memory -maps"), care must be taken to include the correct one. - -Required properties in the root node: -- compatible value: - compatible = "arm,vexpress,", "arm,vexpress"; - where is the full tile model name (as used in the tile's - Technical Reference Manual), eg.: - - for Coretile Express A5x2 (V2P-CA5s): - compatible = "arm,vexpress,v2p-ca5s", "arm,vexpress"; - - for Coretile Express A9x4 (V2P-CA9): - compatible = "arm,vexpress,v2p-ca9", "arm,vexpress"; - If a tile comes in several variants or can be used in more then one - configuration, the compatible value should be: - compatible = "arm,vexpress,,", \ - "arm,vexpress,", "arm,vexpress"; - eg: - - Coretile Express A15x2 (V2P-CA15) with Tech Chip 1: - compatible = "arm,vexpress,v2p-ca15,tc1", \ - "arm,vexpress,v2p-ca15", "arm,vexpress"; - - LogicTile Express 13MG (V2F-2XV6) running Cortex-A7 (3 cores) SMM: - compatible = "arm,vexpress,v2f-2xv6,ca7x3", \ - "arm,vexpress,v2f-2xv6", "arm,vexpress"; - -Optional properties in the root node: -- tile model name (use name from the tile's Technical Reference - Manual, eg. "V2P-CA5s") - model = ""; -- tile's HBI number (unique ARM's board model ID, visible on the - PCB's silkscreen) in hexadecimal transcription: - arm,hbi = <0xhbi> - eg: - - for Coretile Express A5x2 (V2P-CA5s) HBI-0191: - arm,hbi = <0x191>; - - Coretile Express A9x4 (V2P-CA9) HBI-0225: - arm,hbi = <0x225>; - -Top-level standard "cpus" node is required. It must contain a node -with device_type = "cpu" property for every available core, eg.: - - cpus { - #address-cells = <1>; - #size-cells = <0>; - - cpu@0 { - device_type = "cpu"; - compatible = "arm,cortex-a5"; - reg = <0>; - }; - }; - -The motherboard description file provides a single "motherboard" node -using 2 address cells corresponding to the Static Memory Bus used -between the motherboard and the tile. The first cell defines the Chip -Select (CS) line number, the second cell address offset within the CS. -All interrupt lines between the motherboard and the tile are active -high and are described using single cell. - -Optional properties of the "motherboard" node: -- motherboard's memory map variant: - arm,v2m-memory-map = ""; - where name is one of: - - "rs1" - for RS1 map (i.a. peripherals on CS3); this map is also - referred to as "ARM Cortex-A Series memory map": - arm,v2m-memory-map = "rs1"; - When this property is missing, the motherboard is using the original - memory map (also known as the "Legacy memory map", primarily used - with the original CoreTile Express A9x4) with peripherals on CS7. - -Motherboard .dtsi files provide a set of labelled peripherals that -can be used to obtain required phandle in the tile's "aliases" node: -- UARTs, note that the numbers correspond to the physical connectors - on the motherboard's back panel: - v2m_serial0, v2m_serial1, v2m_serial2 and v2m_serial3 -- I2C controllers: - v2m_i2c_dvi and v2m_i2c_pcie -- SP804 timers: - v2m_timer01 and v2m_timer23 - -Current Linux implementation requires a "arm,v2m_timer" alias -pointing at one of the motherboard's SP804 timers, if it is to be -used as the system timer. This alias should be defined in the -motherboard files. - -The tile description must define "ranges", "interrupt-map-mask" and -"interrupt-map" properties to translate the motherboard's address -and interrupt space into one used by the tile's processor. - -Abbreviated example: - -/dts-v1/; - -/ { - model = "V2P-CA5s"; - arm,hbi = <0x225>; - compatible = "arm,vexpress-v2p-ca5s", "arm,vexpress"; - interrupt-parent = <&gic>; - #address-cells = <1>; - #size-cells = <1>; - - chosen { }; - - aliases { - serial0 = &v2m_serial0; - }; - - cpus { - #address-cells = <1>; - #size-cells = <0>; - - cpu@0 { - device_type = "cpu"; - compatible = "arm,cortex-a5"; - reg = <0>; - }; - }; - - gic: interrupt-controller@2c001000 { - compatible = "arm,cortex-a9-gic"; - #interrupt-cells = <3>; - #address-cells = <0>; - interrupt-controller; - reg = <0x2c001000 0x1000>, - <0x2c000100 0x100>; - }; - - motherboard { - /* CS0 is visible at 0x08000000 */ - ranges = <0 0 0x08000000 0x04000000>; - interrupt-map-mask = <0 0 63>; - /* Active high IRQ 0 is connected to GIC's SPI0 */ - interrupt-map = <0 0 0 &gic 0 0 4>; - }; -}; - -/include/ "vexpress-v2m-rs1.dtsi" diff --git a/trunk/Documentation/devicetree/bindings/dma/tegra20-apbdma.txt b/trunk/Documentation/devicetree/bindings/dma/tegra20-apbdma.txt deleted file mode 100644 index 90fa7da525b8..000000000000 --- a/trunk/Documentation/devicetree/bindings/dma/tegra20-apbdma.txt +++ /dev/null @@ -1,30 +0,0 @@ -* NVIDIA Tegra APB DMA controller - -Required properties: -- compatible: Should be "nvidia,-apbdma" -- reg: Should contain DMA registers location and length. This shuld include - all of the per-channel registers. -- interrupts: Should contain all of the per-channel DMA interrupts. - -Examples: - -apbdma: dma@6000a000 { - compatible = "nvidia,tegra20-apbdma"; - reg = <0x6000a000 0x1200>; - interrupts = < 0 136 0x04 - 0 137 0x04 - 0 138 0x04 - 0 139 0x04 - 0 140 0x04 - 0 141 0x04 - 0 142 0x04 - 0 143 0x04 - 0 144 0x04 - 0 145 0x04 - 0 146 0x04 - 0 147 0x04 - 0 148 0x04 - 0 149 0x04 - 0 150 0x04 - 0 151 0x04 >; -}; diff --git a/trunk/Documentation/devicetree/bindings/gpio/gpio_atmel.txt b/trunk/Documentation/devicetree/bindings/gpio/gpio_atmel.txt deleted file mode 100644 index 66efc804806a..000000000000 --- a/trunk/Documentation/devicetree/bindings/gpio/gpio_atmel.txt +++ /dev/null @@ -1,20 +0,0 @@ -* Atmel GPIO controller (PIO) - -Required properties: -- compatible: "atmel,-gpio", where is at91rm9200 or at91sam9x5. -- reg: Should contain GPIO controller registers location and length -- interrupts: Should be the port interrupt shared by all the pins. -- #gpio-cells: Should be two. The first cell is the pin number and - the second cell is used to specify optional parameters (currently - unused). -- gpio-controller: Marks the device node as a GPIO controller. - -Example: - pioA: gpio@fffff200 { - compatible = "atmel,at91rm9200-gpio"; - reg = <0xfffff200 0x100>; - interrupts = <2 4>; - #gpio-cells = <2>; - gpio-controller; - }; - diff --git a/trunk/Documentation/devicetree/bindings/gpio/gpio_i2c.txt b/trunk/Documentation/devicetree/bindings/gpio/gpio_i2c.txt deleted file mode 100644 index 4f8ec947c6bd..000000000000 --- a/trunk/Documentation/devicetree/bindings/gpio/gpio_i2c.txt +++ /dev/null @@ -1,32 +0,0 @@ -Device-Tree bindings for i2c gpio driver - -Required properties: - - compatible = "i2c-gpio"; - - gpios: sda and scl gpio - - -Optional properties: - - i2c-gpio,sda-open-drain: sda as open drain - - i2c-gpio,scl-open-drain: scl as open drain - - i2c-gpio,scl-output-only: scl as output only - - i2c-gpio,delay-us: delay between GPIO operations (may depend on each platform) - - i2c-gpio,timeout-ms: timeout to get data - -Example nodes: - -i2c@0 { - compatible = "i2c-gpio"; - gpios = <&pioA 23 0 /* sda */ - &pioA 24 0 /* scl */ - >; - i2c-gpio,sda-open-drain; - i2c-gpio,scl-open-drain; - i2c-gpio,delay-us = <2>; /* ~100 kHz */ - #address-cells = <1>; - #size-cells = <0>; - - rv3029c2@56 { - compatible = "rv3029c2"; - reg = <0x56>; - }; -}; diff --git a/trunk/Documentation/devicetree/bindings/gpio/gpio_nvidia.txt b/trunk/Documentation/devicetree/bindings/gpio/gpio_nvidia.txt index 023c9526e5f8..eb4b530d64e1 100644 --- a/trunk/Documentation/devicetree/bindings/gpio/gpio_nvidia.txt +++ b/trunk/Documentation/devicetree/bindings/gpio/gpio_nvidia.txt @@ -1,40 +1,8 @@ -NVIDIA Tegra GPIO controller +NVIDIA Tegra 2 GPIO controller Required properties: -- compatible : "nvidia,tegra-gpio" -- reg : Physical base address and length of the controller's registers. -- interrupts : The interrupt outputs from the controller. For Tegra20, - there should be 7 interrupts specified, and for Tegra30, there should - be 8 interrupts specified. +- compatible : "nvidia,tegra20-gpio" - #gpio-cells : Should be two. The first cell is the pin number and the second cell is used to specify optional parameters: - bit 0 specifies polarity (0 for normal, 1 for inverted) - gpio-controller : Marks the device node as a GPIO controller. -- #interrupt-cells : Should be 2. - The first cell is the GPIO number. - The second cell is used to specify flags: - bits[3:0] trigger type and level flags: - 1 = low-to-high edge triggered. - 2 = high-to-low edge triggered. - 4 = active high level-sensitive. - 8 = active low level-sensitive. - Valid combinations are 1, 2, 3, 4, 8. -- interrupt-controller : Marks the device node as an interrupt controller. - -Example: - -gpio: gpio@6000d000 { - compatible = "nvidia,tegra20-gpio"; - reg = < 0x6000d000 0x1000 >; - interrupts = < 0 32 0x04 - 0 33 0x04 - 0 34 0x04 - 0 35 0x04 - 0 55 0x04 - 0 87 0x04 - 0 89 0x04 >; - #gpio-cells = <2>; - gpio-controller; - #interrupt-cells = <2>; - interrupt-controller; -}; diff --git a/trunk/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt b/trunk/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt deleted file mode 100644 index 1e34cfe5ebea..000000000000 --- a/trunk/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt +++ /dev/null @@ -1,23 +0,0 @@ -* Marvell PXA GPIO controller - -Required properties: -- compatible : Should be "mrvl,pxa-gpio" or "mrvl,mmp-gpio" -- reg : Address and length of the register set for the device -- interrupts : Should be the port interrupt shared by all gpio pins, if -- interrupt-name : Should be the name of irq resource. - one number. -- gpio-controller : Marks the device node as a gpio controller. -- #gpio-cells : Should be one. It is the pin number. - -Example: - - gpio: gpio@d4019000 { - compatible = "mrvl,mmp-gpio", "mrvl,pxa-gpio"; - reg = <0xd4019000 0x1000>; - interrupts = <49>, <17>, <18>; - interrupt-name = "gpio_mux", "gpio0", "gpio1"; - gpio-controller; - #gpio-cells = <1>; - interrupt-controller; - #interrupt-cells = <1>; - }; diff --git a/trunk/Documentation/devicetree/bindings/i2c/mrvl-i2c.txt b/trunk/Documentation/devicetree/bindings/i2c/mrvl-i2c.txt deleted file mode 100644 index 071eb3caae91..000000000000 --- a/trunk/Documentation/devicetree/bindings/i2c/mrvl-i2c.txt +++ /dev/null @@ -1,37 +0,0 @@ -* I2C - -Required properties : - - - reg : Offset and length of the register set for the device - - compatible : should be "mrvl,mmp-twsi" where CHIP is the name of a - compatible processor, e.g. pxa168, pxa910, mmp2, mmp3. - For the pxa2xx/pxa3xx, an additional node "mrvl,pxa-i2c" is required - as shown in the example below. - -Recommended properties : - - - interrupts : where a is the interrupt number and b is a - field that represents an encoding of the sense and level - information for the interrupt. This should be encoded based on - the information in section 2) depending on the type of interrupt - controller you have. - - interrupt-parent : the phandle for the interrupt controller that - services interrupts for this device. - - mrvl,i2c-polling : Disable interrupt of i2c controller. Polling - status register of i2c controller instead. - - mrvl,i2c-fast-mode : Enable fast mode of i2c controller. - -Examples: - twsi1: i2c@d4011000 { - compatible = "mrvl,mmp-twsi", "mrvl,pxa-i2c"; - reg = <0xd4011000 0x1000>; - interrupts = <7>; - mrvl,i2c-fast-mode; - }; - - twsi2: i2c@d4025000 { - compatible = "mrvl,mmp-twsi", "mrvl,pxa-i2c"; - reg = <0xd4025000 0x1000>; - interrupts = <58>; - }; - diff --git a/trunk/Documentation/devicetree/bindings/mtd/atmel-nand.txt b/trunk/Documentation/devicetree/bindings/mtd/atmel-nand.txt deleted file mode 100644 index 5903ecf6e895..000000000000 --- a/trunk/Documentation/devicetree/bindings/mtd/atmel-nand.txt +++ /dev/null @@ -1,41 +0,0 @@ -Atmel NAND flash - -Required properties: -- compatible : "atmel,at91rm9200-nand". -- reg : should specify localbus address and size used for the chip, - and if availlable the ECC. -- atmel,nand-addr-offset : offset for the address latch. -- atmel,nand-cmd-offset : offset for the command latch. -- #address-cells, #size-cells : Must be present if the device has sub-nodes - representing partitions. - -- gpios : specifies the gpio pins to control the NAND device. detect is an - optional gpio and may be set to 0 if not present. - -Optional properties: -- nand-ecc-mode : String, operation mode of the NAND ecc mode, soft by default. - Supported values are: "none", "soft", "hw", "hw_syndrome", "hw_oob_first", - "soft_bch". -- nand-bus-width : 8 or 16 bus width if not present 8 -- nand-on-flash-bbt: boolean to enable on flash bbt option if not present false - -Examples: -nand0: nand@40000000,0 { - compatible = "atmel,at91rm9200-nand"; - #address-cells = <1>; - #size-cells = <1>; - reg = <0x40000000 0x10000000 - 0xffffe800 0x200 - >; - atmel,nand-addr-offset = <21>; - atmel,nand-cmd-offset = <22>; - nand-on-flash-bbt; - nand-ecc-mode = "soft"; - gpios = <&pioC 13 0 - &pioC 14 0 - 0 - >; - partition@0 { - ... - }; -}; diff --git a/trunk/Documentation/devicetree/bindings/mtd/nand.txt b/trunk/Documentation/devicetree/bindings/mtd/nand.txt deleted file mode 100644 index 03855c8c492a..000000000000 --- a/trunk/Documentation/devicetree/bindings/mtd/nand.txt +++ /dev/null @@ -1,7 +0,0 @@ -* MTD generic binding - -- nand-ecc-mode : String, operation mode of the NAND ecc mode. - Supported values are: "none", "soft", "hw", "hw_syndrome", "hw_oob_first", - "soft_bch". -- nand-bus-width : 8 or 16 bus width if not present 8 -- nand-on-flash-bbt: boolean to enable on flash bbt option if not present false diff --git a/trunk/Documentation/devicetree/bindings/rtc/sa1100-rtc.txt b/trunk/Documentation/devicetree/bindings/rtc/sa1100-rtc.txt deleted file mode 100644 index 0cda19ad4859..000000000000 --- a/trunk/Documentation/devicetree/bindings/rtc/sa1100-rtc.txt +++ /dev/null @@ -1,17 +0,0 @@ -* Marvell Real Time Clock controller - -Required properties: -- compatible: should be "mrvl,sa1100-rtc" -- reg: physical base address of the controller and length of memory mapped - region. -- interrupts: Should be two. The first interrupt number is the rtc alarm - interrupt and the second interrupt number is the rtc hz interrupt. -- interrupt-names: Assign name of irq resource. - -Example: - rtc: rtc@d4010000 { - compatible = "mrvl,mmp-rtc"; - reg = <0xd4010000 0x1000>; - interrupts = <5>, <6>; - interrupt-name = "rtc 1Hz", "rtc alarm"; - }; diff --git a/trunk/Documentation/devicetree/bindings/serial/mrvl-serial.txt b/trunk/Documentation/devicetree/bindings/serial/mrvl-serial.txt deleted file mode 100644 index d744340de887..000000000000 --- a/trunk/Documentation/devicetree/bindings/serial/mrvl-serial.txt +++ /dev/null @@ -1,4 +0,0 @@ -PXA UART controller - -Required properties: -- compatible : should be "mrvl,mmp-uart" or "mrvl,pxa-uart". diff --git a/trunk/Documentation/devicetree/bindings/usb/atmel-usb.txt b/trunk/Documentation/devicetree/bindings/usb/atmel-usb.txt deleted file mode 100644 index 60bd2150a3e6..000000000000 --- a/trunk/Documentation/devicetree/bindings/usb/atmel-usb.txt +++ /dev/null @@ -1,49 +0,0 @@ -Atmel SOC USB controllers - -OHCI - -Required properties: - - compatible: Should be "atmel,at91rm9200-ohci" for USB controllers - used in host mode. - - num-ports: Number of ports. - - atmel,vbus-gpio: If present, specifies a gpio that needs to be - activated for the bus to be powered. - - atmel,oc-gpio: If present, specifies a gpio that needs to be - activated for the overcurrent detection. - -usb0: ohci@00500000 { - compatible = "atmel,at91rm9200-ohci", "usb-ohci"; - reg = <0x00500000 0x100000>; - interrupts = <20 4>; - num-ports = <2>; -}; - -EHCI - -Required properties: - - compatible: Should be "atmel,at91sam9g45-ehci" for USB controllers - used in host mode. - -usb1: ehci@00800000 { - compatible = "atmel,at91sam9g45-ehci", "usb-ehci"; - reg = <0x00800000 0x100000>; - interrupts = <22 4>; -}; - -AT91 USB device controller - -Required properties: - - compatible: Should be "atmel,at91rm9200-udc" - - reg: Address and length of the register set for the device - - interrupts: Should contain macb interrupt - -Optional properties: - - atmel,vbus-gpio: If present, specifies a gpio that needs to be - activated for the bus to be powered. - -usb1: gadget@fffa4000 { - compatible = "atmel,at91rm9200-udc"; - reg = <0xfffa4000 0x4000>; - interrupts = <10 4>; - atmel,vbus-gpio = <&pioC 5 0>; -}; diff --git a/trunk/Documentation/devicetree/bindings/usb/tegra-usb.txt b/trunk/Documentation/devicetree/bindings/usb/tegra-usb.txt index 007005ddbe12..035d63d5646d 100644 --- a/trunk/Documentation/devicetree/bindings/usb/tegra-usb.txt +++ b/trunk/Documentation/devicetree/bindings/usb/tegra-usb.txt @@ -11,16 +11,3 @@ Required properties : - phy_type : Should be one of "ulpi" or "utmi". - nvidia,vbus-gpio : If present, specifies a gpio that needs to be activated for the bus to be powered. - -Optional properties: - - dr_mode : dual role mode. Indicates the working mode for - nvidia,tegra20-ehci compatible controllers. Can be "host", "peripheral", - or "otg". Default to "host" if not defined for backward compatibility. - host means this is a host controller - peripheral means it is device controller - otg means it can operate as either ("on the go") - - nvidia,has-legacy-mode : boolean indicates whether this controller can - operate in legacy mode (as APX 2500 / 2600). In legacy mode some - registers are accessed through the APB_MISC base address instead of - the USB controller. Since this is a legacy issue it probably does not - warrant a compatible string of its own. diff --git a/trunk/Documentation/feature-removal-schedule.txt b/trunk/Documentation/feature-removal-schedule.txt index 0cad4803ffac..4bfd982f8080 100644 --- a/trunk/Documentation/feature-removal-schedule.txt +++ b/trunk/Documentation/feature-removal-schedule.txt @@ -513,6 +513,20 @@ Who: Bjorn Helgaas ---------------------------- +What: The CAP9 SoC family will be removed +When: 3.4 +Files: arch/arm/mach-at91/at91cap9.c + arch/arm/mach-at91/at91cap9_devices.c + arch/arm/mach-at91/include/mach/at91cap9.h + arch/arm/mach-at91/include/mach/at91cap9_matrix.h + arch/arm/mach-at91/include/mach/at91cap9_ddrsdr.h + arch/arm/mach-at91/board-cap9adk.c +Why: The code is not actively maintained and platforms are now hard to find. +Who: Nicolas Ferre + Jean-Christophe PLAGNIOL-VILLARD + +---------------------------- + What: Low Performance USB Block driver ("CONFIG_BLK_DEV_UB") When: 3.6 Why: This driver provides support for USB storage devices like "USB diff --git a/trunk/Documentation/filesystems/ext4.txt b/trunk/Documentation/filesystems/ext4.txt index 1b7f9acbcbbe..8c10bf375c73 100644 --- a/trunk/Documentation/filesystems/ext4.txt +++ b/trunk/Documentation/filesystems/ext4.txt @@ -144,6 +144,9 @@ journal_async_commit Commit block can be written to disk without waiting mount the device. This will enable 'journal_checksum' internally. +journal=update Update the ext4 file system's journal to the current + format. + journal_dev=devnum When the external journal device's major/minor numbers have changed, this option allows the user to specify the new journal location. The journal device is @@ -353,6 +356,11 @@ nouid32 Disables 32-bit UIDs and GIDs. This is for interoperability with older kernels which only store and expect 16-bit values. +resize Allows to resize filesystem to the end of the last + existing block group, further resize has to be done + with resize2fs either online, or offline. It can be + used only with conjunction with remount. + block_validity This options allows to enables/disables the in-kernel noblock_validity facility for tracking filesystem metadata blocks within internal data structures. This allows multi- diff --git a/trunk/Documentation/remoteproc.txt b/trunk/Documentation/remoteproc.txt deleted file mode 100644 index 70a048cd3fa3..000000000000 --- a/trunk/Documentation/remoteproc.txt +++ /dev/null @@ -1,322 +0,0 @@ -Remote Processor Framework - -1. Introduction - -Modern SoCs typically have heterogeneous remote processor devices in asymmetric -multiprocessing (AMP) configurations, which may be running different instances -of operating system, whether it's Linux or any other flavor of real-time OS. - -OMAP4, for example, has dual Cortex-A9, dual Cortex-M3 and a C64x+ DSP. -In a typical configuration, the dual cortex-A9 is running Linux in a SMP -configuration, and each of the other three cores (two M3 cores and a DSP) -is running its own instance of RTOS in an AMP configuration. - -The remoteproc framework allows different platforms/architectures to -control (power on, load firmware, power off) those remote processors while -abstracting the hardware differences, so the entire driver doesn't need to be -duplicated. In addition, this framework also adds rpmsg virtio devices -for remote processors that supports this kind of communication. This way, -platform-specific remoteproc drivers only need to provide a few low-level -handlers, and then all rpmsg drivers will then just work -(for more information about the virtio-based rpmsg bus and its drivers, -please read Documentation/rpmsg.txt). -Registration of other types of virtio devices is now also possible. Firmwares -just need to publish what kind of virtio devices do they support, and then -remoteproc will add those devices. This makes it possible to reuse the -existing virtio drivers with remote processor backends at a minimal development -cost. - -2. User API - - int rproc_boot(struct rproc *rproc) - - Boot a remote processor (i.e. load its firmware, power it on, ...). - If the remote processor is already powered on, this function immediately - returns (successfully). - Returns 0 on success, and an appropriate error value otherwise. - Note: to use this function you should already have a valid rproc - handle. There are several ways to achieve that cleanly (devres, pdata, - the way remoteproc_rpmsg.c does this, or, if this becomes prevalent, we - might also consider using dev_archdata for this). See also - rproc_get_by_name() below. - - void rproc_shutdown(struct rproc *rproc) - - Power off a remote processor (previously booted with rproc_boot()). - In case @rproc is still being used by an additional user(s), then - this function will just decrement the power refcount and exit, - without really powering off the device. - Every call to rproc_boot() must (eventually) be accompanied by a call - to rproc_shutdown(). Calling rproc_shutdown() redundantly is a bug. - Notes: - - we're not decrementing the rproc's refcount, only the power refcount. - which means that the @rproc handle stays valid even after - rproc_shutdown() returns, and users can still use it with a subsequent - rproc_boot(), if needed. - - don't call rproc_shutdown() to unroll rproc_get_by_name(), exactly - because rproc_shutdown() _does not_ decrement the refcount of @rproc. - To decrement the refcount of @rproc, use rproc_put() (but _only_ if - you acquired @rproc using rproc_get_by_name()). - - struct rproc *rproc_get_by_name(const char *name) - - Find an rproc handle using the remote processor's name, and then - boot it. If it's already powered on, then just immediately return - (successfully). Returns the rproc handle on success, and NULL on failure. - This function increments the remote processor's refcount, so always - use rproc_put() to decrement it back once rproc isn't needed anymore. - Note: currently rproc_get_by_name() and rproc_put() are not used anymore - by the rpmsg bus and its drivers. We need to scrutinize the use cases - that still need them, and see if we can migrate them to use the non - name-based boot/shutdown interface. - - void rproc_put(struct rproc *rproc) - - Decrement @rproc's power refcount and shut it down if it reaches zero - (essentially by just calling rproc_shutdown), and then decrement @rproc's - validity refcount too. - After this function returns, @rproc may _not_ be used anymore, and its - handle should be considered invalid. - This function should be called _iff_ the @rproc handle was grabbed by - calling rproc_get_by_name(). - -3. Typical usage - -#include - -/* in case we were given a valid 'rproc' handle */ -int dummy_rproc_example(struct rproc *my_rproc) -{ - int ret; - - /* let's power on and boot our remote processor */ - ret = rproc_boot(my_rproc); - if (ret) { - /* - * something went wrong. handle it and leave. - */ - } - - /* - * our remote processor is now powered on... give it some work - */ - - /* let's shut it down now */ - rproc_shutdown(my_rproc); -} - -4. API for implementors - - struct rproc *rproc_alloc(struct device *dev, const char *name, - const struct rproc_ops *ops, - const char *firmware, int len) - - Allocate a new remote processor handle, but don't register - it yet. Required parameters are the underlying device, the - name of this remote processor, platform-specific ops handlers, - the name of the firmware to boot this rproc with, and the - length of private data needed by the allocating rproc driver (in bytes). - - This function should be used by rproc implementations during - initialization of the remote processor. - After creating an rproc handle using this function, and when ready, - implementations should then call rproc_register() to complete - the registration of the remote processor. - On success, the new rproc is returned, and on failure, NULL. - - Note: _never_ directly deallocate @rproc, even if it was not registered - yet. Instead, if you just need to unroll rproc_alloc(), use rproc_free(). - - void rproc_free(struct rproc *rproc) - - Free an rproc handle that was allocated by rproc_alloc. - This function should _only_ be used if @rproc was only allocated, - but not registered yet. - If @rproc was already successfully registered (by calling - rproc_register()), then use rproc_unregister() instead. - - int rproc_register(struct rproc *rproc) - - Register @rproc with the remoteproc framework, after it has been - allocated with rproc_alloc(). - This is called by the platform-specific rproc implementation, whenever - a new remote processor device is probed. - Returns 0 on success and an appropriate error code otherwise. - Note: this function initiates an asynchronous firmware loading - context, which will look for virtio devices supported by the rproc's - firmware. - If found, those virtio devices will be created and added, so as a result - of registering this remote processor, additional virtio drivers might get - probed. - - int rproc_unregister(struct rproc *rproc) - - Unregister a remote processor, and decrement its refcount. - If its refcount drops to zero, then @rproc will be freed. If not, - it will be freed later once the last reference is dropped. - - This function should be called when the platform specific rproc - implementation decides to remove the rproc device. it should - _only_ be called if a previous invocation of rproc_register() - has completed successfully. - - After rproc_unregister() returns, @rproc is _not_ valid anymore and - it shouldn't be used. More specifically, don't call rproc_free() - or try to directly free @rproc after rproc_unregister() returns; - none of these are needed, and calling them is a bug. - - Returns 0 on success and -EINVAL if @rproc isn't valid. - -5. Implementation callbacks - -These callbacks should be provided by platform-specific remoteproc -drivers: - -/** - * struct rproc_ops - platform-specific device handlers - * @start: power on the device and boot it - * @stop: power off the device - * @kick: kick a virtqueue (virtqueue id given as a parameter) - */ -struct rproc_ops { - int (*start)(struct rproc *rproc); - int (*stop)(struct rproc *rproc); - void (*kick)(struct rproc *rproc, int vqid); -}; - -Every remoteproc implementation should at least provide the ->start and ->stop -handlers. If rpmsg/virtio functionality is also desired, then the ->kick handler -should be provided as well. - -The ->start() handler takes an rproc handle and should then power on the -device and boot it (use rproc->priv to access platform-specific private data). -The boot address, in case needed, can be found in rproc->bootaddr (remoteproc -core puts there the ELF entry point). -On success, 0 should be returned, and on failure, an appropriate error code. - -The ->stop() handler takes an rproc handle and powers the device down. -On success, 0 is returned, and on failure, an appropriate error code. - -The ->kick() handler takes an rproc handle, and an index of a virtqueue -where new message was placed in. Implementations should interrupt the remote -processor and let it know it has pending messages. Notifying remote processors -the exact virtqueue index to look in is optional: it is easy (and not -too expensive) to go through the existing virtqueues and look for new buffers -in the used rings. - -6. Binary Firmware Structure - -At this point remoteproc only supports ELF32 firmware binaries. However, -it is quite expected that other platforms/devices which we'd want to -support with this framework will be based on different binary formats. - -When those use cases show up, we will have to decouple the binary format -from the framework core, so we can support several binary formats without -duplicating common code. - -When the firmware is parsed, its various segments are loaded to memory -according to the specified device address (might be a physical address -if the remote processor is accessing memory directly). - -In addition to the standard ELF segments, most remote processors would -also include a special section which we call "the resource table". - -The resource table contains system resources that the remote processor -requires before it should be powered on, such as allocation of physically -contiguous memory, or iommu mapping of certain on-chip peripherals. -Remotecore will only power up the device after all the resource table's -requirement are met. - -In addition to system resources, the resource table may also contain -resource entries that publish the existence of supported features -or configurations by the remote processor, such as trace buffers and -supported virtio devices (and their configurations). - -The resource table begins with this header: - -/** - * struct resource_table - firmware resource table header - * @ver: version number - * @num: number of resource entries - * @reserved: reserved (must be zero) - * @offset: array of offsets pointing at the various resource entries - * - * The header of the resource table, as expressed by this structure, - * contains a version number (should we need to change this format in the - * future), the number of available resource entries, and their offsets - * in the table. - */ -struct resource_table { - u32 ver; - u32 num; - u32 reserved[2]; - u32 offset[0]; -} __packed; - -Immediately following this header are the resource entries themselves, -each of which begins with the following resource entry header: - -/** - * struct fw_rsc_hdr - firmware resource entry header - * @type: resource type - * @data: resource data - * - * Every resource entry begins with a 'struct fw_rsc_hdr' header providing - * its @type. The content of the entry itself will immediately follow - * this header, and it should be parsed according to the resource type. - */ -struct fw_rsc_hdr { - u32 type; - u8 data[0]; -} __packed; - -Some resources entries are mere announcements, where the host is informed -of specific remoteproc configuration. Other entries require the host to -do something (e.g. allocate a system resource). Sometimes a negotiation -is expected, where the firmware requests a resource, and once allocated, -the host should provide back its details (e.g. address of an allocated -memory region). - -Here are the various resource types that are currently supported: - -/** - * enum fw_resource_type - types of resource entries - * - * @RSC_CARVEOUT: request for allocation of a physically contiguous - * memory region. - * @RSC_DEVMEM: request to iommu_map a memory-based peripheral. - * @RSC_TRACE: announces the availability of a trace buffer into which - * the remote processor will be writing logs. - * @RSC_VDEV: declare support for a virtio device, and serve as its - * virtio header. - * @RSC_LAST: just keep this one at the end - * - * Please note that these values are used as indices to the rproc_handle_rsc - * lookup table, so please keep them sane. Moreover, @RSC_LAST is used to - * check the validity of an index before the lookup table is accessed, so - * please update it as needed. - */ -enum fw_resource_type { - RSC_CARVEOUT = 0, - RSC_DEVMEM = 1, - RSC_TRACE = 2, - RSC_VDEV = 3, - RSC_LAST = 4, -}; - -For more details regarding a specific resource type, please see its -dedicated structure in include/linux/remoteproc.h. - -We also expect that platform-specific resource entries will show up -at some point. When that happens, we could easily add a new RSC_PLATFORM -type, and hand those resources to the platform-specific rproc driver to handle. - -7. Virtio and remoteproc - -The firmware should provide remoteproc information about virtio devices -that it supports, and their configurations: a RSC_VDEV resource entry -should specify the virtio device id (as in virtio_ids.h), virtio features, -virtio config space, vrings information, etc. - -When a new remote processor is registered, the remoteproc framework -will look for its resource table and will register the virtio devices -it supports. A firmware may support any number of virtio devices, and -of any type (a single remote processor can also easily support several -rpmsg virtio devices this way, if desired). - -Of course, RSC_VDEV resource entries are only good enough for static -allocation of virtio devices. Dynamic allocations will also be made possible -using the rpmsg bus (similar to how we already do dynamic allocations of -rpmsg channels; read more about it in rpmsg.txt). diff --git a/trunk/Documentation/rpmsg.txt b/trunk/Documentation/rpmsg.txt deleted file mode 100644 index 409d9f964c5b..000000000000 --- a/trunk/Documentation/rpmsg.txt +++ /dev/null @@ -1,293 +0,0 @@ -Remote Processor Messaging (rpmsg) Framework - -Note: this document describes the rpmsg bus and how to write rpmsg drivers. -To learn how to add rpmsg support for new platforms, check out remoteproc.txt -(also a resident of Documentation/). - -1. Introduction - -Modern SoCs typically employ heterogeneous remote processor devices in -asymmetric multiprocessing (AMP) configurations, which may be running -different instances of operating system, whether it's Linux or any other -flavor of real-time OS. - -OMAP4, for example, has dual Cortex-A9, dual Cortex-M3 and a C64x+ DSP. -Typically, the dual cortex-A9 is running Linux in a SMP configuration, -and each of the other three cores (two M3 cores and a DSP) is running -its own instance of RTOS in an AMP configuration. - -Typically AMP remote processors employ dedicated DSP codecs and multimedia -hardware accelerators, and therefore are often used to offload CPU-intensive -multimedia tasks from the main application processor. - -These remote processors could also be used to control latency-sensitive -sensors, drive random hardware blocks, or just perform background tasks -while the main CPU is idling. - -Users of those remote processors can either be userland apps (e.g. multimedia -frameworks talking with remote OMX components) or kernel drivers (controlling -hardware accessible only by the remote processor, reserving kernel-controlled -resources on behalf of the remote processor, etc..). - -Rpmsg is a virtio-based messaging bus that allows kernel drivers to communicate -with remote processors available on the system. In turn, drivers could then -expose appropriate user space interfaces, if needed. - -When writing a driver that exposes rpmsg communication to userland, please -keep in mind that remote processors might have direct access to the -system's physical memory and other sensitive hardware resources (e.g. on -OMAP4, remote cores and hardware accelerators may have direct access to the -physical memory, gpio banks, dma controllers, i2c bus, gptimers, mailbox -devices, hwspinlocks, etc..). Moreover, those remote processors might be -running RTOS where every task can access the entire memory/devices exposed -to the processor. To minimize the risks of rogue (or buggy) userland code -exploiting remote bugs, and by that taking over the system, it is often -desired to limit userland to specific rpmsg channels (see definition below) -it can send messages on, and if possible, minimize how much control -it has over the content of the messages. - -Every rpmsg device is a communication channel with a remote processor (thus -rpmsg devices are called channels). Channels are identified by a textual name -and have a local ("source") rpmsg address, and remote ("destination") rpmsg -address. - -When a driver starts listening on a channel, its rx callback is bound with -a unique rpmsg local address (a 32-bit integer). This way when inbound messages -arrive, the rpmsg core dispatches them to the appropriate driver according -to their destination address (this is done by invoking the driver's rx handler -with the payload of the inbound message). - - -2. User API - - int rpmsg_send(struct rpmsg_channel *rpdev, void *data, int len); - - sends a message across to the remote processor on a given channel. - The caller should specify the channel, the data it wants to send, - and its length (in bytes). The message will be sent on the specified - channel, i.e. its source and destination address fields will be - set to the channel's src and dst addresses. - - In case there are no TX buffers available, the function will block until - one becomes available (i.e. until the remote processor consumes - a tx buffer and puts it back on virtio's used descriptor ring), - or a timeout of 15 seconds elapses. When the latter happens, - -ERESTARTSYS is returned. - The function can only be called from a process context (for now). - Returns 0 on success and an appropriate error value on failure. - - int rpmsg_sendto(struct rpmsg_channel *rpdev, void *data, int len, u32 dst); - - sends a message across to the remote processor on a given channel, - to a destination address provided by the caller. - The caller should specify the channel, the data it wants to send, - its length (in bytes), and an explicit destination address. - The message will then be sent to the remote processor to which the - channel belongs, using the channel's src address, and the user-provided - dst address (thus the channel's dst address will be ignored). - - In case there are no TX buffers available, the function will block until - one becomes available (i.e. until the remote processor consumes - a tx buffer and puts it back on virtio's used descriptor ring), - or a timeout of 15 seconds elapses. When the latter happens, - -ERESTARTSYS is returned. - The function can only be called from a process context (for now). - Returns 0 on success and an appropriate error value on failure. - - int rpmsg_send_offchannel(struct rpmsg_channel *rpdev, u32 src, u32 dst, - void *data, int len); - - sends a message across to the remote processor, using the src and dst - addresses provided by the user. - The caller should specify the channel, the data it wants to send, - its length (in bytes), and explicit source and destination addresses. - The message will then be sent to the remote processor to which the - channel belongs, but the channel's src and dst addresses will be - ignored (and the user-provided addresses will be used instead). - - In case there are no TX buffers available, the function will block until - one becomes available (i.e. until the remote processor consumes - a tx buffer and puts it back on virtio's used descriptor ring), - or a timeout of 15 seconds elapses. When the latter happens, - -ERESTARTSYS is returned. - The function can only be called from a process context (for now). - Returns 0 on success and an appropriate error value on failure. - - int rpmsg_trysend(struct rpmsg_channel *rpdev, void *data, int len); - - sends a message across to the remote processor on a given channel. - The caller should specify the channel, the data it wants to send, - and its length (in bytes). The message will be sent on the specified - channel, i.e. its source and destination address fields will be - set to the channel's src and dst addresses. - - In case there are no TX buffers available, the function will immediately - return -ENOMEM without waiting until one becomes available. - The function can only be called from a process context (for now). - Returns 0 on success and an appropriate error value on failure. - - int rpmsg_trysendto(struct rpmsg_channel *rpdev, void *data, int len, u32 dst) - - sends a message across to the remote processor on a given channel, - to a destination address provided by the user. - The user should specify the channel, the data it wants to send, - its length (in bytes), and an explicit destination address. - The message will then be sent to the remote processor to which the - channel belongs, using the channel's src address, and the user-provided - dst address (thus the channel's dst address will be ignored). - - In case there are no TX buffers available, the function will immediately - return -ENOMEM without waiting until one becomes available. - The function can only be called from a process context (for now). - Returns 0 on success and an appropriate error value on failure. - - int rpmsg_trysend_offchannel(struct rpmsg_channel *rpdev, u32 src, u32 dst, - void *data, int len); - - sends a message across to the remote processor, using source and - destination addresses provided by the user. - The user should specify the channel, the data it wants to send, - its length (in bytes), and explicit source and destination addresses. - The message will then be sent to the remote processor to which the - channel belongs, but the channel's src and dst addresses will be - ignored (and the user-provided addresses will be used instead). - - In case there are no TX buffers available, the function will immediately - return -ENOMEM without waiting until one becomes available. - The function can only be called from a process context (for now). - Returns 0 on success and an appropriate error value on failure. - - struct rpmsg_endpoint *rpmsg_create_ept(struct rpmsg_channel *rpdev, - void (*cb)(struct rpmsg_channel *, void *, int, void *, u32), - void *priv, u32 addr); - - every rpmsg address in the system is bound to an rx callback (so when - inbound messages arrive, they are dispatched by the rpmsg bus using the - appropriate callback handler) by means of an rpmsg_endpoint struct. - - This function allows drivers to create such an endpoint, and by that, - bind a callback, and possibly some private data too, to an rpmsg address - (either one that is known in advance, or one that will be dynamically - assigned for them). - - Simple rpmsg drivers need not call rpmsg_create_ept, because an endpoint - is already created for them when they are probed by the rpmsg bus - (using the rx callback they provide when they registered to the rpmsg bus). - - So things should just work for simple drivers: they already have an - endpoint, their rx callback is bound to their rpmsg address, and when - relevant inbound messages arrive (i.e. messages which their dst address - equals to the src address of their rpmsg channel), the driver's handler - is invoked to process it. - - That said, more complicated drivers might do need to allocate - additional rpmsg addresses, and bind them to different rx callbacks. - To accomplish that, those drivers need to call this function. - Drivers should provide their channel (so the new endpoint would bind - to the same remote processor their channel belongs to), an rx callback - function, an optional private data (which is provided back when the - rx callback is invoked), and an address they want to bind with the - callback. If addr is RPMSG_ADDR_ANY, then rpmsg_create_ept will - dynamically assign them an available rpmsg address (drivers should have - a very good reason why not to always use RPMSG_ADDR_ANY here). - - Returns a pointer to the endpoint on success, or NULL on error. - - void rpmsg_destroy_ept(struct rpmsg_endpoint *ept); - - destroys an existing rpmsg endpoint. user should provide a pointer - to an rpmsg endpoint that was previously created with rpmsg_create_ept(). - - int register_rpmsg_driver(struct rpmsg_driver *rpdrv); - - registers an rpmsg driver with the rpmsg bus. user should provide - a pointer to an rpmsg_driver struct, which contains the driver's - ->probe() and ->remove() functions, an rx callback, and an id_table - specifying the names of the channels this driver is interested to - be probed with. - - void unregister_rpmsg_driver(struct rpmsg_driver *rpdrv); - - unregisters an rpmsg driver from the rpmsg bus. user should provide - a pointer to a previously-registered rpmsg_driver struct. - Returns 0 on success, and an appropriate error value on failure. - - -3. Typical usage - -The following is a simple rpmsg driver, that sends an "hello!" message -on probe(), and whenever it receives an incoming message, it dumps its -content to the console. - -#include -#include -#include - -static void rpmsg_sample_cb(struct rpmsg_channel *rpdev, void *data, int len, - void *priv, u32 src) -{ - print_hex_dump(KERN_INFO, "incoming message:", DUMP_PREFIX_NONE, - 16, 1, data, len, true); -} - -static int rpmsg_sample_probe(struct rpmsg_channel *rpdev) -{ - int err; - - dev_info(&rpdev->dev, "chnl: 0x%x -> 0x%x\n", rpdev->src, rpdev->dst); - - /* send a message on our channel */ - err = rpmsg_send(rpdev, "hello!", 6); - if (err) { - pr_err("rpmsg_send failed: %d\n", err); - return err; - } - - return 0; -} - -static void __devexit rpmsg_sample_remove(struct rpmsg_channel *rpdev) -{ - dev_info(&rpdev->dev, "rpmsg sample client driver is removed\n"); -} - -static struct rpmsg_device_id rpmsg_driver_sample_id_table[] = { - { .name = "rpmsg-client-sample" }, - { }, -}; -MODULE_DEVICE_TABLE(rpmsg, rpmsg_driver_sample_id_table); - -static struct rpmsg_driver rpmsg_sample_client = { - .drv.name = KBUILD_MODNAME, - .drv.owner = THIS_MODULE, - .id_table = rpmsg_driver_sample_id_table, - .probe = rpmsg_sample_probe, - .callback = rpmsg_sample_cb, - .remove = __devexit_p(rpmsg_sample_remove), -}; - -static int __init init(void) -{ - return register_rpmsg_driver(&rpmsg_sample_client); -} -module_init(init); - -static void __exit fini(void) -{ - unregister_rpmsg_driver(&rpmsg_sample_client); -} -module_exit(fini); - -Note: a similar sample which can be built and loaded can be found -in samples/rpmsg/. - -4. Allocations of rpmsg channels: - -At this point we only support dynamic allocations of rpmsg channels. - -This is possible only with remote processors that have the VIRTIO_RPMSG_F_NS -virtio device feature set. This feature bit means that the remote -processor supports dynamic name service announcement messages. - -When this feature is enabled, creation of rpmsg devices (i.e. channels) -is completely dynamic: the remote processor announces the existence of a -remote rpmsg service by sending a name service message (which contains -the name and rpmsg addr of the remote service, see struct rpmsg_ns_msg). - -This message is then handled by the rpmsg bus, which in turn dynamically -creates and registers an rpmsg channel (which represents the remote service). -If/when a relevant rpmsg driver is registered, it will be immediately probed -by the bus, and can then start sending messages to the remote service. - -The plan is also to add static creation of rpmsg channels via the virtio -config space, but it's not implemented yet. diff --git a/trunk/MAINTAINERS b/trunk/MAINTAINERS index 3d11fa581bb7..f47091abb8f7 100644 --- a/trunk/MAINTAINERS +++ b/trunk/MAINTAINERS @@ -786,6 +786,7 @@ M: Sascha Hauer L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) S: Maintained T: git git://git.pengutronix.de/git/imx/linux-2.6.git +F: arch/arm/mach-mx*/ F: arch/arm/mach-imx/ F: arch/arm/plat-mxc/ @@ -815,12 +816,9 @@ S: Maintained ARM/H4700 (HP IPAQ HX4700) MACHINE SUPPORT M: Philipp Zabel -M: Paul Parsons -L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) S: Maintained F: arch/arm/mach-pxa/hx4700.c F: arch/arm/mach-pxa/include/mach/hx4700.h -F: sound/soc/pxa/hx4700.c ARM/HP JORNADA 7XX MACHINE SUPPORT M: Kristoffer Ericson @@ -5422,7 +5420,7 @@ F: drivers/media/video/pvrusb2/ PXA2xx/PXA3xx SUPPORT M: Eric Miao M: Russell King -M: Haojian Zhuang +M: Haojian Zhuang L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) T: git git://github.com/hzhuang1/linux.git T: git git://git.linaro.org/people/ycmiao/pxa-linux.git @@ -5437,7 +5435,7 @@ F: sound/soc/pxa MMP SUPPORT M: Eric Miao -M: Haojian Zhuang +M: Haojian Zhuang L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) T: git git://github.com/hzhuang1/linux.git T: git git://git.linaro.org/people/ycmiao/pxa-linux.git @@ -5634,13 +5632,6 @@ S: Supported F: drivers/base/regmap/ F: include/linux/regmap.h -REMOTE PROCESSOR (REMOTEPROC) SUBSYSTEM -M: Ohad Ben-Cohen -S: Maintained -F: drivers/remoteproc/ -F: Documentation/remoteproc.txt -F: include/linux/remoteproc.txt - RFKILL M: Johannes Berg L: linux-wireless@vger.kernel.org @@ -6071,8 +6062,7 @@ F: arch/arm/mach-s3c2410/bast-irq.c TI DAVINCI MACHINE SUPPORT M: Sekhar Nori M: Kevin Hilman -L: davinci-linux-open-source@linux.davincidsp.com (moderated for non-subscribers) -T: git git://gitorious.org/linux-davinci/linux-davinci.git +L: davinci-linux-open-source@linux.davincidsp.com (subscribers-only) Q: http://patchwork.kernel.org/project/linux-davinci/list/ S: Supported F: arch/arm/mach-davinci @@ -6615,10 +6605,9 @@ F: include/linux/if_team.h TEGRA SUPPORT M: Colin Cross M: Olof Johansson -M: Stephen Warren +M: Stephen Warren L: linux-tegra@vger.kernel.org -Q: http://patchwork.ozlabs.org/project/linux-tegra/list/ -T: git git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra.git +T: git git://git.kernel.org/pub/scm/linux/kernel/git/olof/tegra.git S: Supported F: arch/arm/mach-tegra diff --git a/trunk/arch/arm/Kconfig b/trunk/arch/arm/Kconfig index 5098564d5879..87693e631129 100644 --- a/trunk/arch/arm/Kconfig +++ b/trunk/arch/arm/Kconfig @@ -325,10 +325,9 @@ config ARCH_AT91 select ARCH_REQUIRE_GPIOLIB select HAVE_CLK select CLKDEV_LOOKUP - select IRQ_DOMAIN help This enables support for systems based on the Atmel AT91RM9200, - AT91SAM9 processors. + AT91SAM9 and AT91CAP9 processors. config ARCH_BCMRING bool "Broadcom BCMRING" @@ -738,6 +737,7 @@ config ARCH_RPC bool "RiscPC" select ARCH_ACORN select FIQ + select TIMER_ACORN select ARCH_MAY_HAVE_PC_FDC select HAVE_PATA_PLATFORM select ISA_DMA_API @@ -760,31 +760,31 @@ config ARCH_SA1100 select ARCH_HAS_CPUFREQ select CPU_FREQ select GENERIC_CLOCKEVENTS - select CLKDEV_LOOKUP + select HAVE_CLK select HAVE_SCHED_CLOCK select TICK_ONESHOT select ARCH_REQUIRE_GPIOLIB select HAVE_IDE select NEED_MACH_MEMORY_H - select SPARSE_IRQ help Support for StrongARM 11x0 based boards. -config ARCH_S3C24XX - bool "Samsung S3C24XX SoCs" +config ARCH_S3C2410 + bool "Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443, S3C2450" select GENERIC_GPIO select ARCH_HAS_CPUFREQ select HAVE_CLK select CLKDEV_LOOKUP select ARCH_USES_GETTIMEOFFSET select HAVE_S3C2410_I2C if I2C - select HAVE_S3C_RTC if RTC_CLASS - select HAVE_S3C2410_WATCHDOG if WATCHDOG help - Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443 - and S3C2450 SoCs based systems, such as the Simtec Electronics BAST - (), the IPAQ 1940 or the - Samsung SMDK2410 development board (and derivatives). + Samsung S3C2410X CPU based systems, such as the Simtec Electronics + BAST (), the IPAQ 1940 or + the Samsung SMDK2410 development board (and derivatives). + + Note, the S3C2416 and the S3C2450 are so close that they even share + the same SoC ID code. This means that there is no separate machine + directory (no arch/arm/mach-s3c2450) as the S3C2416 was first. config ARCH_S3C64XX bool "Samsung S3C64XX" @@ -907,7 +907,6 @@ config ARCH_U300 config ARCH_U8500 bool "ST-Ericsson U8500 Series" - depends on MMU select CPU_V7 select ARM_AMBA select GENERIC_CLOCKEVENTS @@ -1073,10 +1072,12 @@ source "arch/arm/plat-s5p/Kconfig" source "arch/arm/plat-spear/Kconfig" -source "arch/arm/mach-s3c24xx/Kconfig" -if ARCH_S3C24XX +if ARCH_S3C2410 +source "arch/arm/mach-s3c2410/Kconfig" source "arch/arm/mach-s3c2412/Kconfig" +source "arch/arm/mach-s3c2416/Kconfig" source "arch/arm/mach-s3c2440/Kconfig" +source "arch/arm/mach-s3c2443/Kconfig" endif if ARCH_S3C64XX @@ -1132,7 +1133,6 @@ config PLAT_VERSATILE config ARM_TIMER_SP804 bool select CLKSRC_MMIO - select HAVE_SCHED_CLOCK source arch/arm/mm/Kconfig @@ -1583,8 +1583,7 @@ config LOCAL_TIMERS config ARCH_NR_GPIO int default 1024 if ARCH_SHMOBILE || ARCH_TEGRA - default 355 if ARCH_U8500 - default 264 if MACH_H4700 + default 350 if ARCH_U8500 default 0 help Maximum number of GPIOs in the system. @@ -1595,7 +1594,7 @@ source kernel/Kconfig.preempt config HZ int - default 200 if ARCH_EBSA110 || ARCH_S3C24XX || ARCH_S5P64X0 || \ + default 200 if ARCH_EBSA110 || ARCH_S3C2410 || ARCH_S5P64X0 || \ ARCH_S5PV210 || ARCH_EXYNOS4 default OMAP_32K_TIMER_HZ if ARCH_OMAP && OMAP_32K_TIMER default AT91_TIMER_HZ if ARCH_AT91 @@ -2121,7 +2120,7 @@ config CPU_FREQ_S3C config CPU_FREQ_S3C24XX bool "CPUfreq driver for Samsung S3C24XX series CPUs (EXPERIMENTAL)" - depends on ARCH_S3C24XX && CPU_FREQ && EXPERIMENTAL + depends on ARCH_S3C2410 && CPU_FREQ && EXPERIMENTAL select CPU_FREQ_S3C help This enables the CPUfreq driver for the Samsung S3C24XX family diff --git a/trunk/arch/arm/Kconfig.debug b/trunk/arch/arm/Kconfig.debug index 66ca8014ff3e..03646c4c13d1 100644 --- a/trunk/arch/arm/Kconfig.debug +++ b/trunk/arch/arm/Kconfig.debug @@ -86,7 +86,7 @@ choice depends on HAVE_AT91_DBGU0 config AT91_DEBUG_LL_DBGU1 - bool "Kernel low-level debugging on 9263 and 9g45" + bool "Kernel low-level debugging on 9263, 9g45 and cap9" depends on HAVE_AT91_DBGU1 config DEBUG_CLPS711X_UART1 @@ -180,12 +180,12 @@ choice Say Y here if you want kernel low-level debugging support on i.MX50 or i.MX53. - config DEBUG_IMX6Q_UART4 - bool "i.MX6Q Debug UART4" + config DEBUG_IMX6Q_UART + bool "i.MX6Q Debug UART" depends on SOC_IMX6Q help Say Y here if you want kernel low-level debugging support - on i.MX6Q UART4. + on i.MX6Q. config DEBUG_MSM_UART1 bool "Kernel low-level debugging messages via MSM UART1" diff --git a/trunk/arch/arm/Makefile b/trunk/arch/arm/Makefile index dcb088e868fe..1683bfb9166f 100644 --- a/trunk/arch/arm/Makefile +++ b/trunk/arch/arm/Makefile @@ -174,13 +174,12 @@ machine-$(CONFIG_ARCH_PRIMA2) := prima2 machine-$(CONFIG_ARCH_PXA) := pxa machine-$(CONFIG_ARCH_REALVIEW) := realview machine-$(CONFIG_ARCH_RPC) := rpc -machine-$(CONFIG_ARCH_S3C24XX) := s3c24xx s3c2412 s3c2440 +machine-$(CONFIG_ARCH_S3C2410) := s3c2410 s3c2412 s3c2416 s3c2440 s3c2443 machine-$(CONFIG_ARCH_S3C64XX) := s3c64xx machine-$(CONFIG_ARCH_S5P64X0) := s5p64x0 machine-$(CONFIG_ARCH_S5PC100) := s5pc100 machine-$(CONFIG_ARCH_S5PV210) := s5pv210 machine-$(CONFIG_ARCH_EXYNOS4) := exynos -machine-$(CONFIG_ARCH_EXYNOS5) := exynos machine-$(CONFIG_ARCH_SA1100) := sa1100 machine-$(CONFIG_ARCH_SHARK) := shark machine-$(CONFIG_ARCH_SHMOBILE) := shmobile diff --git a/trunk/arch/arm/boot/compressed/head.S b/trunk/arch/arm/boot/compressed/head.S index 5f6045f1766c..c5d60250d43d 100644 --- a/trunk/arch/arm/boot/compressed/head.S +++ b/trunk/arch/arm/boot/compressed/head.S @@ -58,7 +58,7 @@ add \rb, \rb, #0x00010000 @ Ser1 #endif .endm -#elif defined(CONFIG_ARCH_S3C24XX) +#elif defined(CONFIG_ARCH_S3C2410) .macro loadsp, rb, tmp mov \rb, #0x50000000 add \rb, \rb, #0x4000 * CONFIG_S3C_LOWLEVEL_UART_PORT diff --git a/trunk/arch/arm/boot/dts/am3517_mt_ventoux.dts b/trunk/arch/arm/boot/dts/am3517_mt_ventoux.dts deleted file mode 100644 index 5eb26d7d9b4e..000000000000 --- a/trunk/arch/arm/boot/dts/am3517_mt_ventoux.dts +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (C) 2011 Ilya Yanok, EmCraft Systems - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -/dts-v1/; - -/include/ "omap3.dtsi" - -/ { - model = "TeeJet Mt.Ventoux"; - compatible = "teejet,mt_ventoux", "ti,omap3"; - - memory { - device_type = "memory"; - reg = <0x80000000 0x10000000>; /* 256 MB */ - }; - - /* AM35xx doesn't have IVA */ - soc { - iva { - status = "disabled"; - }; - }; -}; diff --git a/trunk/arch/arm/boot/dts/at91sam9g20.dtsi b/trunk/arch/arm/boot/dts/at91sam9g20.dtsi index 92f36627e7f8..07603b8c9503 100644 --- a/trunk/arch/arm/boot/dts/at91sam9g20.dtsi +++ b/trunk/arch/arm/boot/dts/at91sam9g20.dtsi @@ -23,11 +23,6 @@ serial4 = &usart3; serial5 = &usart4; serial6 = &usart5; - gpio0 = &pioA; - gpio1 = &pioB; - gpio2 = &pioC; - tcb0 = &tcb0; - tcb1 = &tcb1; }; cpus { cpu@0 { @@ -52,89 +47,24 @@ ranges; aic: interrupt-controller@fffff000 { - #interrupt-cells = <2>; + #interrupt-cells = <1>; compatible = "atmel,at91rm9200-aic"; interrupt-controller; interrupt-parent; reg = <0xfffff000 0x200>; }; - ramc0: ramc@ffffea00 { - compatible = "atmel,at91sam9260-sdramc"; - reg = <0xffffea00 0x200>; - }; - - pmc: pmc@fffffc00 { - compatible = "atmel,at91rm9200-pmc"; - reg = <0xfffffc00 0x100>; - }; - - rstc@fffffd00 { - compatible = "atmel,at91sam9260-rstc"; - reg = <0xfffffd00 0x10>; - }; - - shdwc@fffffd10 { - compatible = "atmel,at91sam9260-shdwc"; - reg = <0xfffffd10 0x10>; - }; - - pit: timer@fffffd30 { - compatible = "atmel,at91sam9260-pit"; - reg = <0xfffffd30 0xf>; - interrupts = <1 4>; - }; - - tcb0: timer@fffa0000 { - compatible = "atmel,at91rm9200-tcb"; - reg = <0xfffa0000 0x100>; - interrupts = <17 4 18 4 19 4>; - }; - - tcb1: timer@fffdc000 { - compatible = "atmel,at91rm9200-tcb"; - reg = <0xfffdc000 0x100>; - interrupts = <26 4 27 4 28 4>; - }; - - pioA: gpio@fffff400 { - compatible = "atmel,at91rm9200-gpio"; - reg = <0xfffff400 0x100>; - interrupts = <2 4>; - #gpio-cells = <2>; - gpio-controller; - interrupt-controller; - }; - - pioB: gpio@fffff600 { - compatible = "atmel,at91rm9200-gpio"; - reg = <0xfffff600 0x100>; - interrupts = <3 4>; - #gpio-cells = <2>; - gpio-controller; - interrupt-controller; - }; - - pioC: gpio@fffff800 { - compatible = "atmel,at91rm9200-gpio"; - reg = <0xfffff800 0x100>; - interrupts = <4 4>; - #gpio-cells = <2>; - gpio-controller; - interrupt-controller; - }; - dbgu: serial@fffff200 { compatible = "atmel,at91sam9260-usart"; reg = <0xfffff200 0x200>; - interrupts = <1 4>; + interrupts = <1>; status = "disabled"; }; usart0: serial@fffb0000 { compatible = "atmel,at91sam9260-usart"; reg = <0xfffb0000 0x200>; - interrupts = <6 4>; + interrupts = <6>; atmel,use-dma-rx; atmel,use-dma-tx; status = "disabled"; @@ -143,7 +73,7 @@ usart1: serial@fffb4000 { compatible = "atmel,at91sam9260-usart"; reg = <0xfffb4000 0x200>; - interrupts = <7 4>; + interrupts = <7>; atmel,use-dma-rx; atmel,use-dma-tx; status = "disabled"; @@ -152,7 +82,7 @@ usart2: serial@fffb8000 { compatible = "atmel,at91sam9260-usart"; reg = <0xfffb8000 0x200>; - interrupts = <8 4>; + interrupts = <8>; atmel,use-dma-rx; atmel,use-dma-tx; status = "disabled"; @@ -161,7 +91,7 @@ usart3: serial@fffd0000 { compatible = "atmel,at91sam9260-usart"; reg = <0xfffd0000 0x200>; - interrupts = <23 4>; + interrupts = <23>; atmel,use-dma-rx; atmel,use-dma-tx; status = "disabled"; @@ -170,7 +100,7 @@ usart4: serial@fffd4000 { compatible = "atmel,at91sam9260-usart"; reg = <0xfffd4000 0x200>; - interrupts = <24 4>; + interrupts = <24>; atmel,use-dma-rx; atmel,use-dma-tx; status = "disabled"; @@ -179,7 +109,7 @@ usart5: serial@fffd8000 { compatible = "atmel,at91sam9260-usart"; reg = <0xfffd8000 0x200>; - interrupts = <25 4>; + interrupts = <25>; atmel,use-dma-rx; atmel,use-dma-tx; status = "disabled"; @@ -188,52 +118,9 @@ macb0: ethernet@fffc4000 { compatible = "cdns,at32ap7000-macb", "cdns,macb"; reg = <0xfffc4000 0x100>; - interrupts = <21 4>; - status = "disabled"; - }; - - usb1: gadget@fffa4000 { - compatible = "atmel,at91rm9200-udc"; - reg = <0xfffa4000 0x4000>; - interrupts = <10 4>; + interrupts = <21>; status = "disabled"; }; }; - - nand0: nand@40000000 { - compatible = "atmel,at91rm9200-nand"; - #address-cells = <1>; - #size-cells = <1>; - reg = <0x40000000 0x10000000 - 0xffffe800 0x200 - >; - atmel,nand-addr-offset = <21>; - atmel,nand-cmd-offset = <22>; - gpios = <&pioC 13 0 - &pioC 14 0 - 0 - >; - status = "disabled"; - }; - - usb0: ohci@00500000 { - compatible = "atmel,at91rm9200-ohci", "usb-ohci"; - reg = <0x00500000 0x100000>; - interrupts = <20 4>; - status = "disabled"; - }; - }; - - i2c@0 { - compatible = "i2c-gpio"; - gpios = <&pioA 23 0 /* sda */ - &pioA 24 0 /* scl */ - >; - i2c-gpio,sda-open-drain; - i2c-gpio,scl-open-drain; - i2c-gpio,delay-us = <2>; /* ~100 kHz */ - #address-cells = <1>; - #size-cells = <0>; - status = "disabled"; }; }; diff --git a/trunk/arch/arm/boot/dts/at91sam9g25ek.dts b/trunk/arch/arm/boot/dts/at91sam9g25ek.dts deleted file mode 100644 index ac0dc0031dda..000000000000 --- a/trunk/arch/arm/boot/dts/at91sam9g25ek.dts +++ /dev/null @@ -1,49 +0,0 @@ -/* - * at91sam9g25ek.dts - Device Tree file for AT91SAM9G25-EK board - * - * Copyright (C) 2012 Atmel, - * 2012 Nicolas Ferre - * - * Licensed under GPLv2 or later. - */ -/dts-v1/; -/include/ "at91sam9x5.dtsi" -/include/ "at91sam9x5cm.dtsi" - -/ { - model = "Atmel AT91SAM9G25-EK"; - compatible = "atmel,at91sam9g25ek", "atmel,at91sam9x5ek", "atmel,at91sam9x5", "atmel,at91sam9"; - - chosen { - bootargs = "128M console=ttyS0,115200 root=/dev/mtdblock1 rw rootfstype=ubifs ubi.mtd=1 root=ubi0:rootfs"; - }; - - ahb { - apb { - dbgu: serial@fffff200 { - status = "okay"; - }; - - usart0: serial@f801c000 { - status = "okay"; - }; - - macb0: ethernet@f802c000 { - phy-mode = "rmii"; - status = "okay"; - }; - }; - - usb0: ohci@00600000 { - status = "okay"; - num-ports = <2>; - atmel,vbus-gpio = <&pioD 19 0 - &pioD 20 0 - >; - }; - - usb1: ehci@00700000 { - status = "okay"; - }; - }; -}; diff --git a/trunk/arch/arm/boot/dts/at91sam9g45.dtsi b/trunk/arch/arm/boot/dts/at91sam9g45.dtsi index 3d0c32fb218f..fffa005300a4 100644 --- a/trunk/arch/arm/boot/dts/at91sam9g45.dtsi +++ b/trunk/arch/arm/boot/dts/at91sam9g45.dtsi @@ -22,13 +22,6 @@ serial2 = &usart1; serial3 = &usart2; serial4 = &usart3; - gpio0 = &pioA; - gpio1 = &pioB; - gpio2 = &pioC; - gpio3 = &pioD; - gpio4 = &pioE; - tcb0 = &tcb0; - tcb1 = &tcb1; }; cpus { cpu@0 { @@ -53,115 +46,30 @@ ranges; aic: interrupt-controller@fffff000 { - #interrupt-cells = <2>; + #interrupt-cells = <1>; compatible = "atmel,at91rm9200-aic"; interrupt-controller; interrupt-parent; reg = <0xfffff000 0x200>; }; - ramc0: ramc@ffffe400 { - compatible = "atmel,at91sam9g45-ddramc"; - reg = <0xffffe400 0x200 - 0xffffe600 0x200>; - }; - - pmc: pmc@fffffc00 { - compatible = "atmel,at91rm9200-pmc"; - reg = <0xfffffc00 0x100>; - }; - - rstc@fffffd00 { - compatible = "atmel,at91sam9g45-rstc"; - reg = <0xfffffd00 0x10>; - }; - - pit: timer@fffffd30 { - compatible = "atmel,at91sam9260-pit"; - reg = <0xfffffd30 0xf>; - interrupts = <1 4>; - }; - - - shdwc@fffffd10 { - compatible = "atmel,at91sam9rl-shdwc"; - reg = <0xfffffd10 0x10>; - }; - - tcb0: timer@fff7c000 { - compatible = "atmel,at91rm9200-tcb"; - reg = <0xfff7c000 0x100>; - interrupts = <18 4>; - }; - - tcb1: timer@fffd4000 { - compatible = "atmel,at91rm9200-tcb"; - reg = <0xfffd4000 0x100>; - interrupts = <18 4>; - }; - dma: dma-controller@ffffec00 { compatible = "atmel,at91sam9g45-dma"; reg = <0xffffec00 0x200>; - interrupts = <21 4>; - }; - - pioA: gpio@fffff200 { - compatible = "atmel,at91rm9200-gpio"; - reg = <0xfffff200 0x100>; - interrupts = <2 4>; - #gpio-cells = <2>; - gpio-controller; - interrupt-controller; - }; - - pioB: gpio@fffff400 { - compatible = "atmel,at91rm9200-gpio"; - reg = <0xfffff400 0x100>; - interrupts = <3 4>; - #gpio-cells = <2>; - gpio-controller; - interrupt-controller; - }; - - pioC: gpio@fffff600 { - compatible = "atmel,at91rm9200-gpio"; - reg = <0xfffff600 0x100>; - interrupts = <4 4>; - #gpio-cells = <2>; - gpio-controller; - interrupt-controller; - }; - - pioD: gpio@fffff800 { - compatible = "atmel,at91rm9200-gpio"; - reg = <0xfffff800 0x100>; - interrupts = <5 4>; - #gpio-cells = <2>; - gpio-controller; - interrupt-controller; - }; - - pioE: gpio@fffffa00 { - compatible = "atmel,at91rm9200-gpio"; - reg = <0xfffffa00 0x100>; - interrupts = <5 4>; - #gpio-cells = <2>; - gpio-controller; - interrupt-controller; + interrupts = <21>; }; dbgu: serial@ffffee00 { compatible = "atmel,at91sam9260-usart"; reg = <0xffffee00 0x200>; - interrupts = <1 4>; + interrupts = <1>; status = "disabled"; }; usart0: serial@fff8c000 { compatible = "atmel,at91sam9260-usart"; reg = <0xfff8c000 0x200>; - interrupts = <7 4>; + interrupts = <7>; atmel,use-dma-rx; atmel,use-dma-tx; status = "disabled"; @@ -170,7 +78,7 @@ usart1: serial@fff90000 { compatible = "atmel,at91sam9260-usart"; reg = <0xfff90000 0x200>; - interrupts = <8 4>; + interrupts = <8>; atmel,use-dma-rx; atmel,use-dma-tx; status = "disabled"; @@ -179,7 +87,7 @@ usart2: serial@fff94000 { compatible = "atmel,at91sam9260-usart"; reg = <0xfff94000 0x200>; - interrupts = <9 4>; + interrupts = <9>; atmel,use-dma-rx; atmel,use-dma-tx; status = "disabled"; @@ -188,7 +96,7 @@ usart3: serial@fff98000 { compatible = "atmel,at91sam9260-usart"; reg = <0xfff98000 0x200>; - interrupts = <10 4>; + interrupts = <10>; atmel,use-dma-rx; atmel,use-dma-tx; status = "disabled"; @@ -197,52 +105,9 @@ macb0: ethernet@fffbc000 { compatible = "cdns,at32ap7000-macb", "cdns,macb"; reg = <0xfffbc000 0x100>; - interrupts = <25 4>; + interrupts = <25>; status = "disabled"; }; }; - - nand0: nand@40000000 { - compatible = "atmel,at91rm9200-nand"; - #address-cells = <1>; - #size-cells = <1>; - reg = <0x40000000 0x10000000 - 0xffffe200 0x200 - >; - atmel,nand-addr-offset = <21>; - atmel,nand-cmd-offset = <22>; - gpios = <&pioC 8 0 - &pioC 14 0 - 0 - >; - status = "disabled"; - }; - - usb0: ohci@00700000 { - compatible = "atmel,at91rm9200-ohci", "usb-ohci"; - reg = <0x00700000 0x100000>; - interrupts = <22 4>; - status = "disabled"; - }; - - usb1: ehci@00800000 { - compatible = "atmel,at91sam9g45-ehci", "usb-ehci"; - reg = <0x00800000 0x100000>; - interrupts = <22 4>; - status = "disabled"; - }; - }; - - i2c@0 { - compatible = "i2c-gpio"; - gpios = <&pioA 20 0 /* sda */ - &pioA 21 0 /* scl */ - >; - i2c-gpio,sda-open-drain; - i2c-gpio,scl-open-drain; - i2c-gpio,delay-us = <5>; /* ~100 kHz */ - #address-cells = <1>; - #size-cells = <0>; - status = "disabled"; }; }; diff --git a/trunk/arch/arm/boot/dts/at91sam9m10g45ek.dts b/trunk/arch/arm/boot/dts/at91sam9m10g45ek.dts index c4c8ae4123d5..a387e7704ce1 100644 --- a/trunk/arch/arm/boot/dts/at91sam9m10g45ek.dts +++ b/trunk/arch/arm/boot/dts/at91sam9m10g45ek.dts @@ -14,24 +14,13 @@ compatible = "atmel,at91sam9m10g45ek", "atmel,at91sam9g45", "atmel,at91sam9"; chosen { - bootargs = "mem=64M console=ttyS0,115200 root=/dev/mtdblock1 rw rootfstype=jffs2"; + bootargs = "mem=64M console=ttyS0,115200 mtdparts=atmel_nand:4M(bootstrap/uboot/kernel)ro,60M(rootfs),-(data) root=/dev/mtdblock1 rw rootfstype=jffs2"; }; memory@70000000 { reg = <0x70000000 0x4000000>; }; - clocks { - #address-cells = <1>; - #size-cells = <1>; - ranges; - - main_clock: clock@0 { - compatible = "atmel,osc", "fixed-clock"; - clock-frequency = <12000000>; - }; - }; - ahb { apb { dbgu: serial@ffffee00 { @@ -47,110 +36,5 @@ status = "okay"; }; }; - - nand0: nand@40000000 { - nand-bus-width = <8>; - nand-ecc-mode = "soft"; - nand-on-flash-bbt; - status = "okay"; - - boot@0 { - label = "bootstrap/uboot/kernel"; - reg = <0x0 0x400000>; - }; - - rootfs@400000 { - label = "rootfs"; - reg = <0x400000 0x3C00000>; - }; - - data@4000000 { - label = "data"; - reg = <0x4000000 0xC000000>; - }; - }; - - usb0: ohci@00700000 { - status = "okay"; - num-ports = <2>; - atmel,vbus-gpio = <&pioD 1 0 - &pioD 3 0>; - }; - - usb1: ehci@00800000 { - status = "okay"; - }; - }; - - leds { - compatible = "gpio-leds"; - - d8 { - label = "d8"; - gpios = <&pioD 30 0>; - linux,default-trigger = "heartbeat"; - }; - - d6 { - label = "d6"; - gpios = <&pioD 0 1>; - linux,default-trigger = "nand-disk"; - }; - - d7 { - label = "d7"; - gpios = <&pioD 31 1>; - linux,default-trigger = "mmc0"; - }; - }; - - gpio_keys { - compatible = "gpio-keys"; - #address-cells = <1>; - #size-cells = <0>; - - left_click { - label = "left_click"; - gpios = <&pioB 6 1>; - linux,code = <272>; - gpio-key,wakeup; - }; - - right_click { - label = "right_click"; - gpios = <&pioB 7 1>; - linux,code = <273>; - gpio-key,wakeup; - }; - - left { - label = "Joystick Left"; - gpios = <&pioB 14 1>; - linux,code = <105>; - }; - - right { - label = "Joystick Right"; - gpios = <&pioB 15 1>; - linux,code = <106>; - }; - - up { - label = "Joystick Up"; - gpios = <&pioB 16 1>; - linux,code = <103>; - }; - - down { - label = "Joystick Down"; - gpios = <&pioB 17 1>; - linux,code = <108>; - }; - - enter { - label = "Joystick Press"; - gpios = <&pioB 18 1>; - linux,code = <28>; - }; }; }; diff --git a/trunk/arch/arm/boot/dts/at91sam9x5.dtsi b/trunk/arch/arm/boot/dts/at91sam9x5.dtsi deleted file mode 100644 index c111001f254e..000000000000 --- a/trunk/arch/arm/boot/dts/at91sam9x5.dtsi +++ /dev/null @@ -1,264 +0,0 @@ -/* - * at91sam9x5.dtsi - Device Tree Include file for AT91SAM9x5 family SoC - * applies to AT91SAM9G15, AT91SAM9G25, AT91SAM9G35, - * AT91SAM9X25, AT91SAM9X35 SoC - * - * Copyright (C) 2012 Atmel, - * 2012 Nicolas Ferre - * - * Licensed under GPLv2 or later. - */ - -/include/ "skeleton.dtsi" - -/ { - model = "Atmel AT91SAM9x5 family SoC"; - compatible = "atmel,at91sam9x5"; - interrupt-parent = <&aic>; - - aliases { - serial0 = &dbgu; - serial1 = &usart0; - serial2 = &usart1; - serial3 = &usart2; - gpio0 = &pioA; - gpio1 = &pioB; - gpio2 = &pioC; - gpio3 = &pioD; - tcb0 = &tcb0; - tcb1 = &tcb1; - }; - cpus { - cpu@0 { - compatible = "arm,arm926ejs"; - }; - }; - - memory@20000000 { - reg = <0x20000000 0x10000000>; - }; - - ahb { - compatible = "simple-bus"; - #address-cells = <1>; - #size-cells = <1>; - ranges; - - apb { - compatible = "simple-bus"; - #address-cells = <1>; - #size-cells = <1>; - ranges; - - aic: interrupt-controller@fffff000 { - #interrupt-cells = <2>; - compatible = "atmel,at91rm9200-aic"; - interrupt-controller; - interrupt-parent; - reg = <0xfffff000 0x200>; - }; - - ramc0: ramc@ffffe800 { - compatible = "atmel,at91sam9g45-ddramc"; - reg = <0xffffe800 0x200>; - }; - - pmc: pmc@fffffc00 { - compatible = "atmel,at91rm9200-pmc"; - reg = <0xfffffc00 0x100>; - }; - - rstc@fffffe00 { - compatible = "atmel,at91sam9g45-rstc"; - reg = <0xfffffe00 0x10>; - }; - - shdwc@fffffe10 { - compatible = "atmel,at91sam9x5-shdwc"; - reg = <0xfffffe10 0x10>; - }; - - pit: timer@fffffe30 { - compatible = "atmel,at91sam9260-pit"; - reg = <0xfffffe30 0xf>; - interrupts = <1 4>; - }; - - tcb0: timer@f8008000 { - compatible = "atmel,at91sam9x5-tcb"; - reg = <0xf8008000 0x100>; - interrupts = <17 4>; - }; - - tcb1: timer@f800c000 { - compatible = "atmel,at91sam9x5-tcb"; - reg = <0xf800c000 0x100>; - interrupts = <17 4>; - }; - - dma0: dma-controller@ffffec00 { - compatible = "atmel,at91sam9g45-dma"; - reg = <0xffffec00 0x200>; - interrupts = <20 4>; - }; - - dma1: dma-controller@ffffee00 { - compatible = "atmel,at91sam9g45-dma"; - reg = <0xffffee00 0x200>; - interrupts = <21 4>; - }; - - pioA: gpio@fffff400 { - compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio"; - reg = <0xfffff400 0x100>; - interrupts = <2 4>; - #gpio-cells = <2>; - gpio-controller; - interrupt-controller; - }; - - pioB: gpio@fffff600 { - compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio"; - reg = <0xfffff600 0x100>; - interrupts = <2 4>; - #gpio-cells = <2>; - gpio-controller; - interrupt-controller; - }; - - pioC: gpio@fffff800 { - compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio"; - reg = <0xfffff800 0x100>; - interrupts = <3 4>; - #gpio-cells = <2>; - gpio-controller; - interrupt-controller; - }; - - pioD: gpio@fffffa00 { - compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio"; - reg = <0xfffffa00 0x100>; - interrupts = <3 4>; - #gpio-cells = <2>; - gpio-controller; - interrupt-controller; - }; - - dbgu: serial@fffff200 { - compatible = "atmel,at91sam9260-usart"; - reg = <0xfffff200 0x200>; - interrupts = <1 4>; - status = "disabled"; - }; - - usart0: serial@f801c000 { - compatible = "atmel,at91sam9260-usart"; - reg = <0xf801c000 0x200>; - interrupts = <5 4>; - atmel,use-dma-rx; - atmel,use-dma-tx; - status = "disabled"; - }; - - usart1: serial@f8020000 { - compatible = "atmel,at91sam9260-usart"; - reg = <0xf8020000 0x200>; - interrupts = <6 4>; - atmel,use-dma-rx; - atmel,use-dma-tx; - status = "disabled"; - }; - - usart2: serial@f8024000 { - compatible = "atmel,at91sam9260-usart"; - reg = <0xf8024000 0x200>; - interrupts = <7 4>; - atmel,use-dma-rx; - atmel,use-dma-tx; - status = "disabled"; - }; - - macb0: ethernet@f802c000 { - compatible = "cdns,at32ap7000-macb", "cdns,macb"; - reg = <0xf802c000 0x100>; - interrupts = <24 4>; - status = "disabled"; - }; - - macb1: ethernet@f8030000 { - compatible = "cdns,at32ap7000-macb", "cdns,macb"; - reg = <0xf8030000 0x100>; - interrupts = <27 4>; - status = "disabled"; - }; - }; - - nand0: nand@40000000 { - compatible = "atmel,at91rm9200-nand"; - #address-cells = <1>; - #size-cells = <1>; - reg = <0x40000000 0x10000000 - >; - atmel,nand-addr-offset = <21>; - atmel,nand-cmd-offset = <22>; - gpios = <&pioC 8 0 - &pioC 14 0 - 0 - >; - status = "disabled"; - }; - - usb0: ohci@00600000 { - compatible = "atmel,at91rm9200-ohci", "usb-ohci"; - reg = <0x00600000 0x100000>; - interrupts = <22 4>; - status = "disabled"; - }; - - usb1: ehci@00700000 { - compatible = "atmel,at91sam9g45-ehci", "usb-ehci"; - reg = <0x00700000 0x100000>; - interrupts = <22 4>; - status = "disabled"; - }; - }; - - i2c@0 { - compatible = "i2c-gpio"; - gpios = <&pioA 30 0 /* sda */ - &pioA 31 0 /* scl */ - >; - i2c-gpio,sda-open-drain; - i2c-gpio,scl-open-drain; - i2c-gpio,delay-us = <2>; /* ~100 kHz */ - #address-cells = <1>; - #size-cells = <0>; - status = "disabled"; - }; - - i2c@1 { - compatible = "i2c-gpio"; - gpios = <&pioC 0 0 /* sda */ - &pioC 1 0 /* scl */ - >; - i2c-gpio,sda-open-drain; - i2c-gpio,scl-open-drain; - i2c-gpio,delay-us = <2>; /* ~100 kHz */ - #address-cells = <1>; - #size-cells = <0>; - status = "disabled"; - }; - - i2c@2 { - compatible = "i2c-gpio"; - gpios = <&pioB 4 0 /* sda */ - &pioB 5 0 /* scl */ - >; - i2c-gpio,sda-open-drain; - i2c-gpio,scl-open-drain; - i2c-gpio,delay-us = <2>; /* ~100 kHz */ - #address-cells = <1>; - #size-cells = <0>; - status = "disabled"; - }; -}; diff --git a/trunk/arch/arm/boot/dts/at91sam9x5cm.dtsi b/trunk/arch/arm/boot/dts/at91sam9x5cm.dtsi deleted file mode 100644 index 67936f83c694..000000000000 --- a/trunk/arch/arm/boot/dts/at91sam9x5cm.dtsi +++ /dev/null @@ -1,74 +0,0 @@ -/* - * at91sam9x5cm.dtsi - Device Tree Include file for AT91SAM9x5 CPU Module - * - * Copyright (C) 2012 Atmel, - * 2012 Nicolas Ferre - * - * Licensed under GPLv2 or later. - */ - -/ { - memory@20000000 { - reg = <0x20000000 0x8000000>; - }; - - clocks { - #address-cells = <1>; - #size-cells = <1>; - ranges; - - main_clock: clock@0 { - compatible = "atmel,osc", "fixed-clock"; - clock-frequency = <12000000>; - }; - }; - - ahb { - nand0: nand@40000000 { - nand-bus-width = <8>; - nand-ecc-mode = "soft"; - nand-on-flash-bbt; - status = "okay"; - - at91bootstrap@0 { - label = "at91bootstrap"; - reg = <0x0 0x40000>; - }; - - uboot@40000 { - label = "u-boot"; - reg = <0x40000 0x80000>; - }; - - ubootenv@c0000 { - label = "U-Boot Env"; - reg = <0xc0000 0x140000>; - }; - - kernel@200000 { - label = "kernel"; - reg = <0x200000 0x600000>; - }; - - rootfs@800000 { - label = "rootfs"; - reg = <0x800000 0x1f800000>; - }; - }; - }; - - leds { - compatible = "gpio-leds"; - - pb18 { - label = "pb18"; - gpios = <&pioB 18 1>; - linux,default-trigger = "heartbeat"; - }; - - pd21 { - label = "pd21"; - gpios = <&pioD 21 0>; - }; - }; -}; diff --git a/trunk/arch/arm/boot/dts/db8500.dtsi b/trunk/arch/arm/boot/dts/db8500.dtsi deleted file mode 100644 index d73dce645667..000000000000 --- a/trunk/arch/arm/boot/dts/db8500.dtsi +++ /dev/null @@ -1,275 +0,0 @@ -/* - * Copyright 2012 Linaro Ltd - * - * The code contained herein is licensed under the GNU General Public - * License. You may obtain a copy of the GNU General Public License - * Version 2 or later at the following locations: - * - * http://www.opensource.org/licenses/gpl-license.html - * http://www.gnu.org/copyleft/gpl.html - */ - -/include/ "skeleton.dtsi" - -/ { - soc-u9500 { - #address-cells = <1>; - #size-cells = <1>; - compatible = "stericsson,db8500"; - interrupt-parent = <&intc>; - ranges; - - intc: interrupt-controller@a0411000 { - compatible = "arm,cortex-a9-gic"; - #interrupt-cells = <3>; - #address-cells = <1>; - interrupt-controller; - interrupt-parent; - reg = <0xa0411000 0x1000>, - <0xa0410100 0x100>; - }; - - L2: l2-cache { - compatible = "arm,pl310-cache"; - reg = <0xa0412000 0x1000>; - interrupts = <0 13 4>; - cache-unified; - cache-level = <2>; - }; - - pmu { - compatible = "arm,cortex-a9-pmu"; - interrupts = <0 7 0x4>; - }; - - timer@a0410600 { - compatible = "arm,cortex-a9-twd-timer"; - reg = <0xa0410600 0x20>; - interrupts = <1 13 0x304>; - }; - - rtc@80154000 { - compatible = "stericsson,db8500-rtc"; - reg = <0x80154000 0x1000>; - interrupts = <0 18 0x4>; - }; - - gpio0: gpio@8012e000 { - compatible = "stericsson,db8500-gpio", - "stmicroelectronics,nomadik-gpio"; - reg = <0x8012e000 0x80>; - interrupts = <0 119 0x4>; - supports-sleepmode; - gpio-controller; - }; - - gpio1: gpio@8012e080 { - compatible = "stericsson,db8500-gpio", - "stmicroelectronics,nomadik-gpio"; - reg = <0x8012e080 0x80>; - interrupts = <0 120 0x4>; - supports-sleepmode; - gpio-controller; - }; - - gpio2: gpio@8000e000 { - compatible = "stericsson,db8500-gpio", - "stmicroelectronics,nomadik-gpio"; - reg = <0x8000e000 0x80>; - interrupts = <0 121 0x4>; - supports-sleepmode; - gpio-controller; - }; - - gpio3: gpio@8000e080 { - compatible = "stericsson,db8500-gpio", - "stmicroelectronics,nomadik-gpio"; - reg = <0x8000e080 0x80>; - interrupts = <0 122 0x4>; - supports-sleepmode; - gpio-controller; - }; - - gpio4: gpio@8000e100 { - compatible = "stericsson,db8500-gpio", - "stmicroelectronics,nomadik-gpio"; - reg = <0x8000e100 0x80>; - interrupts = <0 123 0x4>; - supports-sleepmode; - gpio-controller; - }; - - gpio5: gpio@8000e180 { - compatible = "stericsson,db8500-gpio", - "stmicroelectronics,nomadik-gpio"; - reg = <0x8000e180 0x80>; - interrupts = <0 124 0x4>; - supports-sleepmode; - gpio-controller; - }; - - gpio6: gpio@8011e000 { - compatible = "stericsson,db8500-gpio", - "stmicroelectronics,nomadik-gpio"; - reg = <0x8011e000 0x80>; - interrupts = <0 125 0x4>; - supports-sleepmode; - gpio-controller; - }; - - gpio7: gpio@8011e080 { - compatible = "stericsson,db8500-gpio", - "stmicroelectronics,nomadik-gpio"; - reg = <0x8011e080 0x80>; - interrupts = <0 126 0x4>; - supports-sleepmode; - gpio-controller; - }; - - gpio8: gpio@a03fe000 { - compatible = "stericsson,db8500-gpio", - "stmicroelectronics,nomadik-gpio"; - reg = <0xa03fe000 0x80>; - interrupts = <0 127 0x4>; - supports-sleepmode; - gpio-controller; - }; - - usb@a03e0000 { - compatible = "stericsson,db8500-musb", - "mentor,musb"; - reg = <0xa03e0000 0x10000>; - interrupts = <0 23 0x4>; - }; - - dma-controller@801C0000 { - compatible = "stericsson,db8500-dma40", - "stericsson,dma40"; - reg = <0x801C0000 0x1000 0x40010000 0x800>; - interrupts = <0 25 0x4>; - }; - - prcmu@80157000 { - compatible = "stericsson,db8500-prcmu"; - reg = <0x80157000 0x1000>; - interrupts = <46 47>; - #address-cells = <1>; - #size-cells = <0>; - - ab8500@5 { - compatible = "stericsson,ab8500"; - reg = <5>; /* mailbox 5 is i2c */ - interrupts = <0 40 0x4>; - }; - }; - - i2c@80004000 { - compatible = "stericsson,db8500-i2c", "stmicroelectronics,nomadik-i2c"; - reg = <0x80004000 0x1000>; - interrupts = <0 21 0x4>; - #address-cells = <1>; - #size-cells = <0>; - }; - - i2c@80122000 { - compatible = "stericsson,db8500-i2c", "stmicroelectronics,nomadik-i2c"; - reg = <0x80122000 0x1000>; - interrupts = <0 22 0x4>; - #address-cells = <1>; - #size-cells = <0>; - }; - - i2c@80128000 { - compatible = "stericsson,db8500-i2c", "stmicroelectronics,nomadik-i2c"; - reg = <0x80128000 0x1000>; - interrupts = <0 55 0x4>; - #address-cells = <1>; - #size-cells = <0>; - }; - - i2c@80110000 { - compatible = "stericsson,db8500-i2c", "stmicroelectronics,nomadik-i2c"; - reg = <0x80110000 0x1000>; - interrupts = <0 12 0x4>; - #address-cells = <1>; - #size-cells = <0>; - }; - - i2c@8012a000 { - compatible = "stericsson,db8500-i2c", "stmicroelectronics,nomadik-i2c"; - reg = <0x8012a000 0x1000>; - interrupts = <0 51 0x4>; - #address-cells = <1>; - #size-cells = <0>; - }; - - ssp@80002000 { - compatible = "arm,pl022", "arm,primecell"; - reg = <80002000 0x1000>; - interrupts = <0 14 0x4>; - #address-cells = <1>; - #size-cells = <0>; - status = "disabled"; - - // Add one of these for each child device - cs-gpios = <&gpio0 31 &gpio4 14 &gpio4 16 &gpio6 22 &gpio7 0>; - - }; - - uart@80120000 { - compatible = "arm,pl011", "arm,primecell"; - reg = <0x80120000 0x1000>; - interrupts = <0 11 0x4>; - status = "disabled"; - }; - uart@80121000 { - compatible = "arm,pl011", "arm,primecell"; - reg = <0x80121000 0x1000>; - interrupts = <0 19 0x4>; - status = "disabled"; - }; - uart@80007000 { - compatible = "arm,pl011", "arm,primecell"; - reg = <0x80007000 0x1000>; - interrupts = <0 26 0x4>; - status = "disabled"; - }; - - sdi@80126000 { - compatible = "arm,pl18x", "arm,primecell"; - reg = <0x80126000 0x1000>; - interrupts = <0 60 0x4>; - status = "disabled"; - }; - sdi@80118000 { - compatible = "arm,pl18x", "arm,primecell"; - reg = <0x80118000 0x1000>; - interrupts = <0 50 0x4>; - status = "disabled"; - }; - sdi@80005000 { - compatible = "arm,pl18x", "arm,primecell"; - reg = <0x80005000 0x1000>; - interrupts = <0 41 0x4>; - status = "disabled"; - }; - sdi@80119000 { - compatible = "arm,pl18x", "arm,primecell"; - reg = <0x80119000 0x1000>; - interrupts = <0 59 0x4>; - status = "disabled"; - }; - sdi@80114000 { - compatible = "arm,pl18x", "arm,primecell"; - reg = <0x80114000 0x1000>; - interrupts = <0 99 0x4>; - status = "disabled"; - }; - sdi@80008000 { - compatible = "arm,pl18x", "arm,primecell"; - reg = <0x80114000 0x1000>; - interrupts = <0 100 0x4>; - status = "disabled"; - }; - }; -}; diff --git a/trunk/arch/arm/boot/dts/exynos5250-smdk5250.dts b/trunk/arch/arm/boot/dts/exynos5250-smdk5250.dts deleted file mode 100644 index 399d17b231d2..000000000000 --- a/trunk/arch/arm/boot/dts/exynos5250-smdk5250.dts +++ /dev/null @@ -1,26 +0,0 @@ -/* - * SAMSUNG SMDK5250 board device tree source - * - * Copyright (c) 2012 Samsung Electronics Co., Ltd. - * http://www.samsung.com - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. -*/ - -/dts-v1/; -/include/ "exynos5250.dtsi" - -/ { - model = "SAMSUNG SMDK5250 board based on EXYNOS5250"; - compatible = "samsung,smdk5250", "samsung,exynos5250"; - - memory { - reg = <0x40000000 0x80000000>; - }; - - chosen { - bootargs = "root=/dev/ram0 rw ramdisk=8192 console=ttySAC1,115200"; - }; -}; diff --git a/trunk/arch/arm/boot/dts/exynos5250.dtsi b/trunk/arch/arm/boot/dts/exynos5250.dtsi deleted file mode 100644 index dfc433599436..000000000000 --- a/trunk/arch/arm/boot/dts/exynos5250.dtsi +++ /dev/null @@ -1,413 +0,0 @@ -/* - * SAMSUNG EXYNOS5250 SoC device tree source - * - * Copyright (c) 2012 Samsung Electronics Co., Ltd. - * http://www.samsung.com - * - * SAMSUNG EXYNOS5250 SoC device nodes are listed in this file. - * EXYNOS5250 based board files can include this file and provide - * values for board specfic bindings. - * - * Note: This file does not include device nodes for all the controllers in - * EXYNOS5250 SoC. As device tree coverage for EXYNOS5250 increases, - * additional nodes can be added to this file. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. -*/ - -/include/ "skeleton.dtsi" - -/ { - compatible = "samsung,exynos5250"; - interrupt-parent = <&gic>; - - gic:interrupt-controller@10490000 { - compatible = "arm,cortex-a9-gic"; - #interrupt-cells = <3>; - interrupt-controller; - reg = <0x10490000 0x1000>, <0x10480000 0x100>; - }; - - watchdog { - compatible = "samsung,s3c2410-wdt"; - reg = <0x101D0000 0x100>; - interrupts = <0 42 0>; - }; - - rtc { - compatible = "samsung,s3c6410-rtc"; - reg = <0x101E0000 0x100>; - interrupts = <0 43 0>, <0 44 0>; - }; - - sdhci@12200000 { - compatible = "samsung,exynos4210-sdhci"; - reg = <0x12200000 0x100>; - interrupts = <0 75 0>; - }; - - sdhci@12210000 { - compatible = "samsung,exynos4210-sdhci"; - reg = <0x12210000 0x100>; - interrupts = <0 76 0>; - }; - - sdhci@12220000 { - compatible = "samsung,exynos4210-sdhci"; - reg = <0x12220000 0x100>; - interrupts = <0 77 0>; - }; - - sdhci@12230000 { - compatible = "samsung,exynos4210-sdhci"; - reg = <0x12230000 0x100>; - interrupts = <0 78 0>; - }; - - serial@12C00000 { - compatible = "samsung,exynos4210-uart"; - reg = <0x12C00000 0x100>; - interrupts = <0 51 0>; - }; - - serial@12C10000 { - compatible = "samsung,exynos4210-uart"; - reg = <0x12C10000 0x100>; - interrupts = <0 52 0>; - }; - - serial@12C20000 { - compatible = "samsung,exynos4210-uart"; - reg = <0x12C20000 0x100>; - interrupts = <0 53 0>; - }; - - serial@12C30000 { - compatible = "samsung,exynos4210-uart"; - reg = <0x12C30000 0x100>; - interrupts = <0 54 0>; - }; - - i2c@12C60000 { - compatible = "samsung,s3c2440-i2c"; - reg = <0x12C60000 0x100>; - interrupts = <0 56 0>; - }; - - i2c@12C70000 { - compatible = "samsung,s3c2440-i2c"; - reg = <0x12C70000 0x100>; - interrupts = <0 57 0>; - }; - - i2c@12C80000 { - compatible = "samsung,s3c2440-i2c"; - reg = <0x12C80000 0x100>; - interrupts = <0 58 0>; - }; - - i2c@12C90000 { - compatible = "samsung,s3c2440-i2c"; - reg = <0x12C90000 0x100>; - interrupts = <0 59 0>; - }; - - i2c@12CA0000 { - compatible = "samsung,s3c2440-i2c"; - reg = <0x12CA0000 0x100>; - interrupts = <0 60 0>; - }; - - i2c@12CB0000 { - compatible = "samsung,s3c2440-i2c"; - reg = <0x12CB0000 0x100>; - interrupts = <0 61 0>; - }; - - i2c@12CC0000 { - compatible = "samsung,s3c2440-i2c"; - reg = <0x12CC0000 0x100>; - interrupts = <0 62 0>; - }; - - i2c@12CD0000 { - compatible = "samsung,s3c2440-i2c"; - reg = <0x12CD0000 0x100>; - interrupts = <0 63 0>; - }; - - amba { - #address-cells = <1>; - #size-cells = <1>; - compatible = "arm,amba-bus"; - interrupt-parent = <&gic>; - ranges; - - pdma0: pdma@121A0000 { - compatible = "arm,pl330", "arm,primecell"; - reg = <0x121A0000 0x1000>; - interrupts = <0 34 0>; - }; - - pdma1: pdma@121B0000 { - compatible = "arm,pl330", "arm,primecell"; - reg = <0x121B0000 0x1000>; - interrupts = <0 35 0>; - }; - - mdma0: pdma@10800000 { - compatible = "arm,pl330", "arm,primecell"; - reg = <0x10800000 0x1000>; - interrupts = <0 33 0>; - }; - - mdma1: pdma@11C10000 { - compatible = "arm,pl330", "arm,primecell"; - reg = <0x11C10000 0x1000>; - interrupts = <0 124 0>; - }; - }; - - gpio-controllers { - #address-cells = <1>; - #size-cells = <1>; - gpio-controller; - ranges; - - gpa0: gpio-controller@11400000 { - compatible = "samsung,exynos4-gpio"; - reg = <0x11400000 0x20>; - #gpio-cells = <4>; - }; - - gpa1: gpio-controller@11400020 { - compatible = "samsung,exynos4-gpio"; - reg = <0x11400020 0x20>; - #gpio-cells = <4>; - }; - - gpa2: gpio-controller@11400040 { - compatible = "samsung,exynos4-gpio"; - reg = <0x11400040 0x20>; - #gpio-cells = <4>; - }; - - gpb0: gpio-controller@11400060 { - compatible = "samsung,exynos4-gpio"; - reg = <0x11400060 0x20>; - #gpio-cells = <4>; - }; - - gpb1: gpio-controller@11400080 { - compatible = "samsung,exynos4-gpio"; - reg = <0x11400080 0x20>; - #gpio-cells = <4>; - }; - - gpb2: gpio-controller@114000A0 { - compatible = "samsung,exynos4-gpio"; - reg = <0x114000A0 0x20>; - #gpio-cells = <4>; - }; - - gpb3: gpio-controller@114000C0 { - compatible = "samsung,exynos4-gpio"; - reg = <0x114000C0 0x20>; - #gpio-cells = <4>; - }; - - gpc0: gpio-controller@114000E0 { - compatible = "samsung,exynos4-gpio"; - reg = <0x114000E0 0x20>; - #gpio-cells = <4>; - }; - - gpc1: gpio-controller@11400100 { - compatible = "samsung,exynos4-gpio"; - reg = <0x11400100 0x20>; - #gpio-cells = <4>; - }; - - gpc2: gpio-controller@11400120 { - compatible = "samsung,exynos4-gpio"; - reg = <0x11400120 0x20>; - #gpio-cells = <4>; - }; - - gpc3: gpio-controller@11400140 { - compatible = "samsung,exynos4-gpio"; - reg = <0x11400140 0x20>; - #gpio-cells = <4>; - }; - - gpd0: gpio-controller@11400160 { - compatible = "samsung,exynos4-gpio"; - reg = <0x11400160 0x20>; - #gpio-cells = <4>; - }; - - gpd1: gpio-controller@11400180 { - compatible = "samsung,exynos4-gpio"; - reg = <0x11400180 0x20>; - #gpio-cells = <4>; - }; - - gpy0: gpio-controller@114001A0 { - compatible = "samsung,exynos4-gpio"; - reg = <0x114001A0 0x20>; - #gpio-cells = <4>; - }; - - gpy1: gpio-controller@114001C0 { - compatible = "samsung,exynos4-gpio"; - reg = <0x114001C0 0x20>; - #gpio-cells = <4>; - }; - - gpy2: gpio-controller@114001E0 { - compatible = "samsung,exynos4-gpio"; - reg = <0x114001E0 0x20>; - #gpio-cells = <4>; - }; - - gpy3: gpio-controller@11400200 { - compatible = "samsung,exynos4-gpio"; - reg = <0x11400200 0x20>; - #gpio-cells = <4>; - }; - - gpy4: gpio-controller@11400220 { - compatible = "samsung,exynos4-gpio"; - reg = <0x11400220 0x20>; - #gpio-cells = <4>; - }; - - gpy5: gpio-controller@11400240 { - compatible = "samsung,exynos4-gpio"; - reg = <0x11400240 0x20>; - #gpio-cells = <4>; - }; - - gpy6: gpio-controller@11400260 { - compatible = "samsung,exynos4-gpio"; - reg = <0x11400260 0x20>; - #gpio-cells = <4>; - }; - - gpx0: gpio-controller@11400C00 { - compatible = "samsung,exynos4-gpio"; - reg = <0x11400C00 0x20>; - #gpio-cells = <4>; - }; - - gpx1: gpio-controller@11400C20 { - compatible = "samsung,exynos4-gpio"; - reg = <0x11400C20 0x20>; - #gpio-cells = <4>; - }; - - gpx2: gpio-controller@11400C40 { - compatible = "samsung,exynos4-gpio"; - reg = <0x11400C40 0x20>; - #gpio-cells = <4>; - }; - - gpx3: gpio-controller@11400C60 { - compatible = "samsung,exynos4-gpio"; - reg = <0x11400C60 0x20>; - #gpio-cells = <4>; - }; - - gpe0: gpio-controller@13400000 { - compatible = "samsung,exynos4-gpio"; - reg = <0x13400000 0x20>; - #gpio-cells = <4>; - }; - - gpe1: gpio-controller@13400020 { - compatible = "samsung,exynos4-gpio"; - reg = <0x13400020 0x20>; - #gpio-cells = <4>; - }; - - gpf0: gpio-controller@13400040 { - compatible = "samsung,exynos4-gpio"; - reg = <0x13400040 0x20>; - #gpio-cells = <4>; - }; - - gpf1: gpio-controller@13400060 { - compatible = "samsung,exynos4-gpio"; - reg = <0x13400060 0x20>; - #gpio-cells = <4>; - }; - - gpg0: gpio-controller@13400080 { - compatible = "samsung,exynos4-gpio"; - reg = <0x13400080 0x20>; - #gpio-cells = <4>; - }; - - gpg1: gpio-controller@134000A0 { - compatible = "samsung,exynos4-gpio"; - reg = <0x134000A0 0x20>; - #gpio-cells = <4>; - }; - - gpg2: gpio-controller@134000C0 { - compatible = "samsung,exynos4-gpio"; - reg = <0x134000C0 0x20>; - #gpio-cells = <4>; - }; - - gph0: gpio-controller@134000E0 { - compatible = "samsung,exynos4-gpio"; - reg = <0x134000E0 0x20>; - #gpio-cells = <4>; - }; - - gph1: gpio-controller@13400100 { - compatible = "samsung,exynos4-gpio"; - reg = <0x13400100 0x20>; - #gpio-cells = <4>; - }; - - gpv0: gpio-controller@10D10000 { - compatible = "samsung,exynos4-gpio"; - reg = <0x10D10000 0x20>; - #gpio-cells = <4>; - }; - - gpv1: gpio-controller@10D10020 { - compatible = "samsung,exynos4-gpio"; - reg = <0x10D10020 0x20>; - #gpio-cells = <4>; - }; - - gpv2: gpio-controller@10D10040 { - compatible = "samsung,exynos4-gpio"; - reg = <0x10D10040 0x20>; - #gpio-cells = <4>; - }; - - gpv3: gpio-controller@10D10060 { - compatible = "samsung,exynos4-gpio"; - reg = <0x10D10060 0x20>; - #gpio-cells = <4>; - }; - - gpv4: gpio-controller@10D10080 { - compatible = "samsung,exynos4-gpio"; - reg = <0x10D10080 0x20>; - #gpio-cells = <4>; - }; - - gpz: gpio-controller@03860000 { - compatible = "samsung,exynos4-gpio"; - reg = <0x03860000 0x20>; - #gpio-cells = <4>; - }; - }; -}; diff --git a/trunk/arch/arm/boot/dts/highbank.dts b/trunk/arch/arm/boot/dts/highbank.dts index 37c0ff9c8b90..305635bd45c0 100644 --- a/trunk/arch/arm/boot/dts/highbank.dts +++ b/trunk/arch/arm/boot/dts/highbank.dts @@ -72,15 +72,15 @@ ranges; timer@fff10600 { - compatible = "arm,cortex-a9-twd-timer"; + compatible = "arm,smp-twd"; reg = <0xfff10600 0x20>; - interrupts = <1 13 0xf01>; + interrupts = <1 13 0xf04>; }; watchdog@fff10620 { - compatible = "arm,cortex-a9-twd-wdt"; + compatible = "arm,cortex-a9-wdt"; reg = <0xfff10620 0x20>; - interrupts = <1 14 0xf01>; + interrupts = <1 14 0xf04>; }; intc: interrupt-controller@fff11000 { diff --git a/trunk/arch/arm/boot/dts/imx27-phytec-phycore.dts b/trunk/arch/arm/boot/dts/imx27-phytec-phycore.dts deleted file mode 100644 index a51a08fc2af9..000000000000 --- a/trunk/arch/arm/boot/dts/imx27-phytec-phycore.dts +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright 2012 Sascha Hauer, Pengutronix - * - * The code contained herein is licensed under the GNU General Public - * License. You may obtain a copy of the GNU General Public License - * Version 2 or later at the following locations: - * - * http://www.opensource.org/licenses/gpl-license.html - * http://www.gnu.org/copyleft/gpl.html - */ - -/dts-v1/; -/include/ "imx27.dtsi" - -/ { - model = "Phytec pcm038"; - compatible = "phytec,imx27-pcm038", "fsl,imx27"; - - memory { - reg = <0x0 0x0>; - }; - - soc { - aipi@10000000 { /* aipi */ - - wdog@10002000 { - status = "okay"; - }; - - uart@1000a000 { - fsl,uart-has-rtscts; - status = "okay"; - }; - - uart@1000b000 { - fsl,uart-has-rtscts; - status = "okay"; - }; - - uart@1000c000 { - fsl,uart-has-rtscts; - status = "okay"; - }; - - fec@1002b000 { - status = "okay"; - }; - - i2c@1001d000 { - clock-frequency = <400000>; - status = "okay"; - at24@4c { - compatible = "at,24c32"; - pagesize = <32>; - reg = <0x52>; - }; - pcf8563@51 { - compatible = "nxp,pcf8563"; - reg = <0x51>; - }; - lm75@4a { - compatible = "national,lm75"; - reg = <0x4a>; - }; - }; - }; - }; - - nor_flash@c0000000 { - compatible = "cfi-flash"; - bank-width = <2>; - reg = <0xc0000000 0x02000000>; - #address-cells = <1>; - #size-cells = <1>; - }; -}; diff --git a/trunk/arch/arm/boot/dts/imx27.dtsi b/trunk/arch/arm/boot/dts/imx27.dtsi deleted file mode 100644 index bc5e7d5ddd54..000000000000 --- a/trunk/arch/arm/boot/dts/imx27.dtsi +++ /dev/null @@ -1,217 +0,0 @@ -/* - * Copyright 2012 Sascha Hauer, Pengutronix - * - * The code contained herein is licensed under the GNU General Public - * License. You may obtain a copy of the GNU General Public License - * Version 2 or later at the following locations: - * - * http://www.opensource.org/licenses/gpl-license.html - * http://www.gnu.org/copyleft/gpl.html - */ - -/include/ "skeleton.dtsi" - -/ { - aliases { - serial0 = &uart1; - serial1 = &uart2; - serial2 = &uart3; - serial3 = &uart4; - serial4 = &uart5; - serial5 = &uart6; - }; - - avic: avic-interrupt-controller@e0000000 { - compatible = "fsl,imx27-avic", "fsl,avic"; - interrupt-controller; - #interrupt-cells = <1>; - reg = <0x10040000 0x1000>; - }; - - clocks { - #address-cells = <1>; - #size-cells = <0>; - - osc26m { - compatible = "fsl,imx-osc26m", "fixed-clock"; - clock-frequency = <26000000>; - }; - }; - - soc { - #address-cells = <1>; - #size-cells = <1>; - compatible = "simple-bus"; - interrupt-parent = <&avic>; - ranges; - - aipi@10000000 { /* AIPI1 */ - compatible = "fsl,aipi-bus", "simple-bus"; - #address-cells = <1>; - #size-cells = <1>; - reg = <0x10000000 0x10000000>; - ranges; - - wdog@10002000 { - compatible = "fsl,imx27-wdt", "fsl,imx21-wdt"; - reg = <0x10002000 0x4000>; - interrupts = <27>; - status = "disabled"; - }; - - uart1: uart@1000a000 { - compatible = "fsl,imx27-uart", "fsl,imx21-uart"; - reg = <0x1000a000 0x1000>; - interrupts = <20>; - status = "disabled"; - }; - - uart2: uart@1000b000 { - compatible = "fsl,imx27-uart", "fsl,imx21-uart"; - reg = <0x1000b000 0x1000>; - interrupts = <19>; - status = "disabled"; - }; - - uart3: uart@1000c000 { - compatible = "fsl,imx27-uart", "fsl,imx21-uart"; - reg = <0x1000c000 0x1000>; - interrupts = <18>; - status = "disabled"; - }; - - uart4: uart@1000d000 { - compatible = "fsl,imx27-uart", "fsl,imx21-uart"; - reg = <0x1000d000 0x1000>; - interrupts = <17>; - status = "disabled"; - }; - - cspi1: cspi@1000e000 { - #address-cells = <1>; - #size-cells = <0>; - compatible = "fsl,imx27-cspi"; - reg = <0x1000e000 0x1000>; - interrupts = <16>; - status = "disabled"; - }; - - cspi2: cspi@1000f000 { - #address-cells = <1>; - #size-cells = <0>; - compatible = "fsl,imx27-cspi"; - reg = <0x1000f000 0x1000>; - interrupts = <15>; - status = "disabled"; - }; - - i2c1: i2c@10012000 { - #address-cells = <1>; - #size-cells = <0>; - compatible = "fsl,imx27-i2c", "fsl,imx1-i2c"; - reg = <0x10012000 0x1000>; - interrupts = <12>; - status = "disabled"; - }; - - gpio1: gpio@10015000 { - compatible = "fsl,imx27-gpio", "fsl,imx21-gpio"; - reg = <0x10015000 0x100>; - interrupts = <8>; - gpio-controller; - #gpio-cells = <2>; - interrupt-controller; - #interrupt-cells = <1>; - }; - - gpio2: gpio@10015100 { - compatible = "fsl,imx27-gpio", "fsl,imx21-gpio"; - reg = <0x10015100 0x100>; - interrupts = <8>; - gpio-controller; - #gpio-cells = <2>; - interrupt-controller; - #interrupt-cells = <1>; - }; - - gpio3: gpio@10015200 { - compatible = "fsl,imx27-gpio", "fsl,imx21-gpio"; - reg = <0x10015200 0x100>; - interrupts = <8>; - gpio-controller; - #gpio-cells = <2>; - interrupt-controller; - #interrupt-cells = <1>; - }; - - gpio4: gpio@10015300 { - compatible = "fsl,imx27-gpio", "fsl,imx21-gpio"; - reg = <0x10015300 0x100>; - interrupts = <8>; - gpio-controller; - #gpio-cells = <2>; - interrupt-controller; - #interrupt-cells = <1>; - }; - - gpio5: gpio@10015400 { - compatible = "fsl,imx27-gpio", "fsl,imx21-gpio"; - reg = <0x10015400 0x100>; - interrupts = <8>; - gpio-controller; - #gpio-cells = <2>; - interrupt-controller; - #interrupt-cells = <1>; - }; - - gpio6: gpio@10015500 { - compatible = "fsl,imx27-gpio", "fsl,imx21-gpio"; - reg = <0x10015500 0x100>; - interrupts = <8>; - gpio-controller; - #gpio-cells = <2>; - interrupt-controller; - #interrupt-cells = <1>; - }; - - cspi3: cspi@10017000 { - #address-cells = <1>; - #size-cells = <0>; - compatible = "fsl,imx27-cspi"; - reg = <0x10017000 0x1000>; - interrupts = <6>; - status = "disabled"; - }; - - uart5: uart@1001b000 { - compatible = "fsl,imx27-uart", "fsl,imx21-uart"; - reg = <0x1001b000 0x1000>; - interrupts = <49>; - status = "disabled"; - }; - - uart6: uart@1001c000 { - compatible = "fsl,imx27-uart", "fsl,imx21-uart"; - reg = <0x1001c000 0x1000>; - interrupts = <48>; - status = "disabled"; - }; - - i2c2: i2c@1001d000 { - #address-cells = <1>; - #size-cells = <0>; - compatible = "fsl,imx27-i2c", "fsl,imx1-i2c"; - reg = <0x1001d000 0x1000>; - interrupts = <1>; - status = "disabled"; - }; - - fec: fec@1002b000 { - compatible = "fsl,imx27-fec"; - reg = <0x1002b000 0x4000>; - interrupts = <50>; - status = "disabled"; - }; - }; - }; -}; diff --git a/trunk/arch/arm/boot/dts/imx51-babbage.dts b/trunk/arch/arm/boot/dts/imx51-babbage.dts index 9949e6060dee..564cb8c19f15 100644 --- a/trunk/arch/arm/boot/dts/imx51-babbage.dts +++ b/trunk/arch/arm/boot/dts/imx51-babbage.dts @@ -56,95 +56,8 @@ compatible = "fsl,mc13892"; spi-max-frequency = <6000000>; reg = <0>; - interrupt-parent = <&gpio1>; - interrupts = <8>; - - regulators { - sw1_reg: sw1 { - regulator-min-microvolt = <600000>; - regulator-max-microvolt = <1375000>; - regulator-boot-on; - regulator-always-on; - }; - - sw2_reg: sw2 { - regulator-min-microvolt = <900000>; - regulator-max-microvolt = <1850000>; - regulator-boot-on; - regulator-always-on; - }; - - sw3_reg: sw3 { - regulator-min-microvolt = <1100000>; - regulator-max-microvolt = <1850000>; - regulator-boot-on; - regulator-always-on; - }; - - sw4_reg: sw4 { - regulator-min-microvolt = <1100000>; - regulator-max-microvolt = <1850000>; - regulator-boot-on; - regulator-always-on; - }; - - vpll_reg: vpll { - regulator-min-microvolt = <1050000>; - regulator-max-microvolt = <1800000>; - regulator-boot-on; - regulator-always-on; - }; - - vdig_reg: vdig { - regulator-min-microvolt = <1650000>; - regulator-max-microvolt = <1650000>; - regulator-boot-on; - }; - - vsd_reg: vsd { - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <3150000>; - }; - - vusb2_reg: vusb2 { - regulator-min-microvolt = <2400000>; - regulator-max-microvolt = <2775000>; - regulator-boot-on; - regulator-always-on; - }; - - vvideo_reg: vvideo { - regulator-min-microvolt = <2775000>; - regulator-max-microvolt = <2775000>; - }; - - vaudio_reg: vaudio { - regulator-min-microvolt = <2300000>; - regulator-max-microvolt = <3000000>; - }; - - vcam_reg: vcam { - regulator-min-microvolt = <2500000>; - regulator-max-microvolt = <3000000>; - }; - - vgen1_reg: vgen1 { - regulator-min-microvolt = <1200000>; - regulator-max-microvolt = <1200000>; - }; - - vgen2_reg: vgen2 { - regulator-min-microvolt = <1200000>; - regulator-max-microvolt = <3150000>; - regulator-always-on; - }; - - vgen3_reg: vgen3 { - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <2900000>; - regulator-always-on; - }; - }; + mc13xxx-irq-gpios = <&gpio1 8 0>; + fsl,mc13xxx-uses-regulator; }; flash: at45db321d@1 { diff --git a/trunk/arch/arm/boot/dts/imx6q-arm2.dts b/trunk/arch/arm/boot/dts/imx6q-arm2.dts index ce1c8238c897..c3977e0478b9 100644 --- a/trunk/arch/arm/boot/dts/imx6q-arm2.dts +++ b/trunk/arch/arm/boot/dts/imx6q-arm2.dts @@ -36,13 +36,11 @@ usdhc@02198000 { /* uSDHC3 */ cd-gpios = <&gpio6 11 0>; wp-gpios = <&gpio6 14 0>; - vmmc-supply = <®_3p3v>; status = "okay"; }; usdhc@0219c000 { /* uSDHC4 */ fsl,card-wired; - vmmc-supply = <®_3p3v>; status = "okay"; }; @@ -52,18 +50,6 @@ }; }; - regulators { - compatible = "simple-bus"; - - reg_3p3v: 3p3v { - compatible = "regulator-fixed"; - regulator-name = "3P3V"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - regulator-always-on; - }; - }; - leds { compatible = "gpio-leds"; diff --git a/trunk/arch/arm/boot/dts/imx6q-sabrelite.dts b/trunk/arch/arm/boot/dts/imx6q-sabrelite.dts index 4663a4e5a285..08d920de7286 100644 --- a/trunk/arch/arm/boot/dts/imx6q-sabrelite.dts +++ b/trunk/arch/arm/boot/dts/imx6q-sabrelite.dts @@ -32,52 +32,18 @@ usdhc@02198000 { /* uSDHC3 */ cd-gpios = <&gpio7 0 0>; wp-gpios = <&gpio7 1 0>; - vmmc-supply = <®_3p3v>; status = "okay"; }; usdhc@0219c000 { /* uSDHC4 */ cd-gpios = <&gpio2 6 0>; wp-gpios = <&gpio2 7 0>; - vmmc-supply = <®_3p3v>; status = "okay"; }; uart2: uart@021e8000 { status = "okay"; }; - - i2c@021a0000 { /* I2C1 */ - status = "okay"; - clock-frequency = <100000>; - - codec: sgtl5000@0a { - compatible = "fsl,sgtl5000"; - reg = <0x0a>; - VDDA-supply = <®_2p5v>; - VDDIO-supply = <®_3p3v>; - }; - }; - }; - }; - - regulators { - compatible = "simple-bus"; - - reg_2p5v: 2p5v { - compatible = "regulator-fixed"; - regulator-name = "2P5V"; - regulator-min-microvolt = <2500000>; - regulator-max-microvolt = <2500000>; - regulator-always-on; - }; - - reg_3p3v: 3p3v { - compatible = "regulator-fixed"; - regulator-name = "3P3V"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - regulator-always-on; }; }; }; diff --git a/trunk/arch/arm/boot/dts/imx6q.dtsi b/trunk/arch/arm/boot/dts/imx6q.dtsi index 4905f51a106f..263e8f3664b5 100644 --- a/trunk/arch/arm/boot/dts/imx6q.dtsi +++ b/trunk/arch/arm/boot/dts/imx6q.dtsi @@ -88,9 +88,9 @@ ranges; timer@00a00600 { - compatible = "arm,cortex-a9-twd-timer"; - reg = <0x00a00600 0x20>; - interrupts = <1 13 0xf01>; + compatible = "arm,smp-twd"; + reg = <0x00a00600 0x100>; + interrupts = <1 13 0xf4>; }; L2: l2-cache@00a02000 { diff --git a/trunk/arch/arm/boot/dts/kirkwood-dreamplug.dts b/trunk/arch/arm/boot/dts/kirkwood-dreamplug.dts deleted file mode 100644 index a5376b84227f..000000000000 --- a/trunk/arch/arm/boot/dts/kirkwood-dreamplug.dts +++ /dev/null @@ -1,24 +0,0 @@ -/dts-v1/; - -/include/ "kirkwood.dtsi" - -/ { - model = "Globalscale Technologies Dreamplug"; - compatible = "globalscale,dreamplug-003-ds2001", "globalscale,dreamplug", "mrvl,kirkwood-88f6281", "mrvl,kirkwood"; - - memory { - device_type = "memory"; - reg = <0x00000000 0x20000000>; - }; - - chosen { - bootargs = "console=ttyS0,115200n8 earlyprintk"; - }; - - ocp@f1000000 { - serial@12000 { - clock-frequency = <200000000>; - status = "ok"; - }; - }; -}; diff --git a/trunk/arch/arm/boot/dts/kirkwood.dtsi b/trunk/arch/arm/boot/dts/kirkwood.dtsi deleted file mode 100644 index 3474ef890945..000000000000 --- a/trunk/arch/arm/boot/dts/kirkwood.dtsi +++ /dev/null @@ -1,36 +0,0 @@ -/include/ "skeleton.dtsi" - -/ { - compatible = "mrvl,kirkwood"; - - ocp@f1000000 { - compatible = "simple-bus"; - ranges = <0 0xf1000000 0x1000000>; - #address-cells = <1>; - #size-cells = <1>; - - serial@12000 { - compatible = "ns16550a"; - reg = <0x12000 0x100>; - reg-shift = <2>; - interrupts = <33>; - /* set clock-frequency in board dts */ - status = "disabled"; - }; - - serial@12100 { - compatible = "ns16550a"; - reg = <0x12100 0x100>; - reg-shift = <2>; - interrupts = <34>; - /* set clock-frequency in board dts */ - status = "disabled"; - }; - - rtc@10300 { - compatible = "mrvl,kirkwood-rtc", "mrvl,orion-rtc"; - reg = <0x10300 0x20>; - interrupts = <53>; - }; - }; -}; diff --git a/trunk/arch/arm/boot/dts/omap3-beagle.dts b/trunk/arch/arm/boot/dts/omap3-beagle.dts index 9f72cd4cf308..9486be62bcdd 100644 --- a/trunk/arch/arm/boot/dts/omap3-beagle.dts +++ b/trunk/arch/arm/boot/dts/omap3-beagle.dts @@ -13,6 +13,15 @@ model = "TI OMAP3 BeagleBoard"; compatible = "ti,omap3-beagle", "ti,omap3"; + /* + * Since the initial device tree board file does not create any + * devices (MMC, network...), the only way to boot is to provide a + * ramdisk. + */ + chosen { + bootargs = "root=/dev/ram0 rw console=ttyO2,115200n8 initrd=0x81600000,20M ramdisk_size=20480 no_console_suspend debug earlyprintk"; + }; + memory { device_type = "memory"; reg = <0x80000000 0x20000000>; /* 512 MB */ diff --git a/trunk/arch/arm/boot/dts/omap3-evm.dts b/trunk/arch/arm/boot/dts/omap3-evm.dts deleted file mode 100644 index 2eee16ec59b4..000000000000 --- a/trunk/arch/arm/boot/dts/omap3-evm.dts +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/ - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -/dts-v1/; - -/include/ "omap3.dtsi" - -/ { - model = "TI OMAP3 EVM (OMAP3530, AM/DM37x)"; - compatible = "ti,omap3-evm", "ti,omap3"; - - memory { - device_type = "memory"; - reg = <0x80000000 0x10000000>; /* 256 MB */ - }; -}; diff --git a/trunk/arch/arm/boot/dts/omap3.dtsi b/trunk/arch/arm/boot/dts/omap3.dtsi index c6121357c1eb..216c3317461d 100644 --- a/trunk/arch/arm/boot/dts/omap3.dtsi +++ b/trunk/arch/arm/boot/dts/omap3.dtsi @@ -61,57 +61,34 @@ ranges; ti,hwmods = "l3_main"; - intc: interrupt-controller@48200000 { - compatible = "ti,omap2-intc"; + intc: interrupt-controller@1 { + compatible = "ti,omap3-intc"; interrupt-controller; #interrupt-cells = <1>; - ti,intc-size = <96>; - reg = <0x48200000 0x1000>; }; - uart1: serial@4806a000 { + uart1: serial@0x4806a000 { compatible = "ti,omap3-uart"; ti,hwmods = "uart1"; clock-frequency = <48000000>; }; - uart2: serial@4806c000 { + uart2: serial@0x4806c000 { compatible = "ti,omap3-uart"; ti,hwmods = "uart2"; clock-frequency = <48000000>; }; - uart3: serial@49020000 { + uart3: serial@0x49020000 { compatible = "ti,omap3-uart"; ti,hwmods = "uart3"; clock-frequency = <48000000>; }; - uart4: serial@49042000 { + uart4: serial@0x49042000 { compatible = "ti,omap3-uart"; ti,hwmods = "uart4"; clock-frequency = <48000000>; }; - - i2c1: i2c@48070000 { - compatible = "ti,omap3-i2c"; - #address-cells = <1>; - #size-cells = <0>; - ti,hwmods = "i2c1"; - }; - - i2c2: i2c@48072000 { - compatible = "ti,omap3-i2c"; - #address-cells = <1>; - #size-cells = <0>; - ti,hwmods = "i2c2"; - }; - - i2c3: i2c@48060000 { - compatible = "ti,omap3-i2c"; - #address-cells = <1>; - #size-cells = <0>; - ti,hwmods = "i2c3"; - }; }; }; diff --git a/trunk/arch/arm/boot/dts/omap4-panda.dts b/trunk/arch/arm/boot/dts/omap4-panda.dts index 9755ad5917f8..c7026578ce7d 100644 --- a/trunk/arch/arm/boot/dts/omap4-panda.dts +++ b/trunk/arch/arm/boot/dts/omap4-panda.dts @@ -13,6 +13,15 @@ model = "TI OMAP4 PandaBoard"; compatible = "ti,omap4-panda", "ti,omap4430", "ti,omap4"; + /* + * Since the initial device tree board file does not create any + * devices (MMC, network...), the only way to boot is to provide a + * ramdisk. + */ + chosen { + bootargs = "root=/dev/ram0 rw console=ttyO2,115200n8 initrd=0x81600000,20M ramdisk_size=20480 no_console_suspend debug"; + }; + memory { device_type = "memory"; reg = <0x80000000 0x40000000>; /* 1 GB */ diff --git a/trunk/arch/arm/boot/dts/omap4-sdp.dts b/trunk/arch/arm/boot/dts/omap4-sdp.dts index 63c6b2b2bf42..066e28c90328 100644 --- a/trunk/arch/arm/boot/dts/omap4-sdp.dts +++ b/trunk/arch/arm/boot/dts/omap4-sdp.dts @@ -13,6 +13,15 @@ model = "TI OMAP4 SDP board"; compatible = "ti,omap4-sdp", "ti,omap4430", "ti,omap4"; + /* + * Since the initial device tree board file does not create any + * devices (MMC, network...), the only way to boot is to provide a + * ramdisk. + */ + chosen { + bootargs = "root=/dev/ram0 rw console=ttyO2,115200n8 initrd=0x81600000,20M ramdisk_size=20480 no_console_suspend debug"; + }; + memory { device_type = "memory"; reg = <0x80000000 0x40000000>; /* 1 GB */ diff --git a/trunk/arch/arm/boot/dts/omap4.dtsi b/trunk/arch/arm/boot/dts/omap4.dtsi index 3d35559e77bc..e8fe75fac7c5 100644 --- a/trunk/arch/arm/boot/dts/omap4.dtsi +++ b/trunk/arch/arm/boot/dts/omap4.dtsi @@ -99,61 +99,33 @@ gic: interrupt-controller@48241000 { compatible = "arm,cortex-a9-gic"; interrupt-controller; - #interrupt-cells = <3>; + #interrupt-cells = <1>; reg = <0x48241000 0x1000>, <0x48240100 0x0100>; }; - uart1: serial@4806a000 { + uart1: serial@0x4806a000 { compatible = "ti,omap4-uart"; ti,hwmods = "uart1"; clock-frequency = <48000000>; }; - uart2: serial@4806c000 { + uart2: serial@0x4806c000 { compatible = "ti,omap4-uart"; ti,hwmods = "uart2"; clock-frequency = <48000000>; }; - uart3: serial@48020000 { + uart3: serial@0x48020000 { compatible = "ti,omap4-uart"; ti,hwmods = "uart3"; clock-frequency = <48000000>; }; - uart4: serial@4806e000 { + uart4: serial@0x4806e000 { compatible = "ti,omap4-uart"; ti,hwmods = "uart4"; clock-frequency = <48000000>; }; - - i2c1: i2c@48070000 { - compatible = "ti,omap4-i2c"; - #address-cells = <1>; - #size-cells = <0>; - ti,hwmods = "i2c1"; - }; - - i2c2: i2c@48072000 { - compatible = "ti,omap4-i2c"; - #address-cells = <1>; - #size-cells = <0>; - ti,hwmods = "i2c2"; - }; - - i2c3: i2c@48060000 { - compatible = "ti,omap4-i2c"; - #address-cells = <1>; - #size-cells = <0>; - ti,hwmods = "i2c3"; - }; - - i2c4: i2c@48350000 { - compatible = "ti,omap4-i2c"; - #address-cells = <1>; - #size-cells = <0>; - ti,hwmods = "i2c4"; - }; }; }; diff --git a/trunk/arch/arm/boot/dts/pxa168-aspenite.dts b/trunk/arch/arm/boot/dts/pxa168-aspenite.dts deleted file mode 100644 index e762facb3fa4..000000000000 --- a/trunk/arch/arm/boot/dts/pxa168-aspenite.dts +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (C) 2012 Marvell Technology Group Ltd. - * Author: Haojian Zhuang - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * publishhed by the Free Software Foundation. - */ - -/dts-v1/; -/include/ "pxa168.dtsi" - -/ { - model = "Marvell PXA168 Aspenite Development Board"; - compatible = "mrvl,pxa168-aspenite", "mrvl,pxa168"; - - chosen { - bootargs = "console=ttyS0,115200 root=/dev/nfs nfsroot=192.168.1.100:/nfsroot/ ip=192.168.1.101:192.168.1.100::255.255.255.0::eth0:on"; - }; - - memory { - reg = <0x00000000 0x04000000>; - }; - - soc { - apb@d4000000 { - uart1: uart@d4017000 { - status = "okay"; - }; - twsi1: i2c@d4011000 { - status = "okay"; - }; - rtc: rtc@d4010000 { - status = "okay"; - }; - }; - }; -}; diff --git a/trunk/arch/arm/boot/dts/pxa168.dtsi b/trunk/arch/arm/boot/dts/pxa168.dtsi deleted file mode 100644 index d32d5128f225..000000000000 --- a/trunk/arch/arm/boot/dts/pxa168.dtsi +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright (C) 2012 Marvell Technology Group Ltd. - * Author: Haojian Zhuang - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * publishhed by the Free Software Foundation. - */ - -/include/ "skeleton.dtsi" - -/ { - aliases { - serial0 = &uart1; - serial1 = &uart2; - serial2 = &uart3; - i2c0 = &twsi1; - i2c1 = &twsi2; - }; - - intc: intc-interrupt-controller@d4282000 { - compatible = "mrvl,mmp-intc", "mrvl,intc"; - interrupt-controller; - #interrupt-cells = <1>; - reg = <0xd4282000 0x1000>; - }; - - soc { - #address-cells = <1>; - #size-cells = <1>; - compatible = "simple-bus"; - interrupt-parent = <&intc>; - ranges; - - apb@d4000000 { /* APB */ - compatible = "mrvl,apb-bus", "simple-bus"; - #address-cells = <1>; - #size-cells = <1>; - reg = <0xd4000000 0x00200000>; - ranges; - - uart1: uart@d4017000 { - compatible = "mrvl,mmp-uart", "mrvl,pxa-uart"; - reg = <0xd4017000 0x1000>; - interrupts = <27>; - status = "disabled"; - }; - - uart2: uart@d4018000 { - compatible = "mrvl,mmp-uart", "mrvl,pxa-uart"; - reg = <0xd4018000 0x1000>; - interrupts = <28>; - status = "disabled"; - }; - - uart3: uart@d4026000 { - compatible = "mrvl,mmp-uart", "mrvl,pxa-uart"; - reg = <0xd4026000 0x1000>; - interrupts = <29>; - status = "disabled"; - }; - - gpio: gpio@d4019000 { - compatible = "mrvl,mmp-gpio", "mrvl,pxa-gpio"; - reg = <0xd4019000 0x1000>; - interrupts = <49>; - interrupt-names = "gpio_mux"; - gpio-controller; - #gpio-cells = <1>; - interrupt-controller; - #interrupt-cells = <1>; - }; - - twsi1: i2c@d4011000 { - compatible = "mrvl,mmp-twsi", "mrvl,pxa-i2c"; - reg = <0xd4011000 0x1000>; - interrupts = <7>; - mrvl,i2c-fast-mode; - status = "disabled"; - }; - - twsi2: i2c@d4025000 { - compatible = "mrvl,mmp-twsi", "mrvl,pxa-i2c"; - reg = <0xd4025000 0x1000>; - interrupts = <58>; - status = "disabled"; - }; - - rtc: rtc@d4010000 { - compatible = "mrvl,mmp-rtc"; - reg = <0xd4010000 0x1000>; - interrupts = <5 6>; - interrupt-names = "rtc 1Hz", "rtc alarm"; - status = "disabled"; - }; - }; - }; -}; diff --git a/trunk/arch/arm/boot/dts/snowball.dts b/trunk/arch/arm/boot/dts/snowball.dts deleted file mode 100644 index 359c6d679156..000000000000 --- a/trunk/arch/arm/boot/dts/snowball.dts +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Copyright 2011 ST-Ericsson AB - * - * The code contained herein is licensed under the GNU General Public - * License. You may obtain a copy of the GNU General Public License - * Version 2 or later at the following locations: - * - * http://www.opensource.org/licenses/gpl-license.html - * http://www.gnu.org/copyleft/gpl.html - */ - -/dts-v1/; -/include/ "db8500.dtsi" - -/ { - model = "Calao Systems Snowball platform with device tree"; - compatible = "calaosystems,snowball-a9500"; - - memory { - reg = <0x00000000 0x20000000>; - }; - - gpio_keys { - compatible = "gpio-keys"; - #address-cells = <1>; - #size-cells = <0>; - - button@1 { - debounce_interval = <50>; - wakeup = <1>; - linux,code = <2>; - label = "userpb"; - gpios = <&gpio1 0>; - }; - button@2 { - debounce_interval = <50>; - wakeup = <1>; - linux,code = <3>; - label = "userpb"; - gpios = <&gpio4 23>; - }; - button@3 { - debounce_interval = <50>; - wakeup = <1>; - linux,code = <4>; - label = "userpb"; - gpios = <&gpio4 23>; - }; - button@4 { - debounce_interval = <50>; - wakeup = <1>; - linux,code = <5>; - label = "userpb"; - gpios = <&gpio5 1>; - }; - button@5 { - debounce_interval = <50>; - wakeup = <1>; - linux,code = <6>; - label = "userpb"; - gpios = <&gpio5 2>; - }; - }; - - leds { - compatible = "gpio-leds"; - used-led { - label = "user_led"; - gpios = <&gpio4 14>; - }; - }; - - soc-u9500 { - - external-bus@50000000 { - compatible = "simple-bus"; - reg = <0x50000000 0x10000000>; - #address-cells = <1>; - #size-cells = <1>; - ranges; - - ethernet@50000000 { - compatible = "smsc,9111"; - reg = <0x50000000 0x10000>; - interrupts = <12>; - interrupt-parent = <&gpio4>; - }; - }; - - sdi@80126000 { - status = "enabled"; - cd-gpios = <&gpio6 26>; - }; - - sdi@80114000 { - status = "enabled"; - }; - - uart@80120000 { - status = "okay"; - }; - - uart@80121000 { - status = "okay"; - }; - - uart@80007000 { - status = "okay"; - }; - - i2c@80004000 { - tc3589x@42 { - //compatible = "tc3589x"; - reg = <0x42>; - interrupts = <25>; - interrupt-parent = <&gpio6>; - }; - tps61052@33 { - //compatible = "tps61052"; - reg = <0x33>; - }; - }; - - i2c@80128000 { - lp5521@0x33 { - // compatible = "lp5521"; - reg = <0x33>; - }; - lp5521@0x34 { - // compatible = "lp5521"; - reg = <0x34>; - }; - bh1780@0x29 { - // compatible = "rohm,bh1780gli"; - reg = <0x33>; - }; - }; - }; -}; diff --git a/trunk/arch/arm/boot/dts/spear600-evb.dts b/trunk/arch/arm/boot/dts/spear600-evb.dts deleted file mode 100644 index 636292e18c90..000000000000 --- a/trunk/arch/arm/boot/dts/spear600-evb.dts +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 2012 Stefan Roese - * - * The code contained herein is licensed under the GNU General Public - * License. You may obtain a copy of the GNU General Public License - * Version 2 or later at the following locations: - * - * http://www.opensource.org/licenses/gpl-license.html - * http://www.gnu.org/copyleft/gpl.html - */ - -/dts-v1/; -/include/ "spear600.dtsi" - -/ { - model = "ST SPEAr600 Evaluation Board"; - compatible = "st,spear600-evb", "st,spear600"; - #address-cells = <1>; - #size-cells = <1>; - - memory { - device_type = "memory"; - reg = <0 0x10000000>; - }; - - ahb { - gmac: ethernet@e0800000 { - phy-mode = "gmii"; - status = "okay"; - }; - - apb { - serial@d0000000 { - status = "okay"; - }; - - serial@d0080000 { - status = "okay"; - }; - - i2c@d0200000 { - clock-frequency = <400000>; - status = "okay"; - }; - }; - }; -}; diff --git a/trunk/arch/arm/boot/dts/spear600.dtsi b/trunk/arch/arm/boot/dts/spear600.dtsi deleted file mode 100644 index ebe0885a2b98..000000000000 --- a/trunk/arch/arm/boot/dts/spear600.dtsi +++ /dev/null @@ -1,174 +0,0 @@ -/* - * Copyright 2012 Stefan Roese - * - * The code contained herein is licensed under the GNU General Public - * License. You may obtain a copy of the GNU General Public License - * Version 2 or later at the following locations: - * - * http://www.opensource.org/licenses/gpl-license.html - * http://www.gnu.org/copyleft/gpl.html - */ - -/include/ "skeleton.dtsi" - -/ { - compatible = "st,spear600"; - - cpus { - cpu@0 { - compatible = "arm,arm926ejs"; - }; - }; - - memory { - device_type = "memory"; - reg = <0 0x40000000>; - }; - - ahb { - #address-cells = <1>; - #size-cells = <1>; - compatible = "simple-bus"; - ranges = <0xd0000000 0xd0000000 0x30000000>; - - vic0: interrupt-controller@f1100000 { - compatible = "arm,pl190-vic"; - interrupt-controller; - reg = <0xf1100000 0x1000>; - #interrupt-cells = <1>; - }; - - vic1: interrupt-controller@f1000000 { - compatible = "arm,pl190-vic"; - interrupt-controller; - reg = <0xf1000000 0x1000>; - #interrupt-cells = <1>; - }; - - gmac: ethernet@e0800000 { - compatible = "st,spear600-gmac"; - reg = <0xe0800000 0x8000>; - interrupt-parent = <&vic1>; - interrupts = <24 23>; - interrupt-names = "macirq", "eth_wake_irq"; - status = "disabled"; - }; - - fsmc: flash@d1800000 { - compatible = "st,spear600-fsmc-nand"; - #address-cells = <1>; - #size-cells = <1>; - reg = <0xd1800000 0x1000 /* FSMC Register */ - 0xd2000000 0x4000>; /* NAND Base */ - reg-names = "fsmc_regs", "nand_data"; - st,ale-off = <0x20000>; - st,cle-off = <0x10000>; - status = "disabled"; - }; - - smi: flash@fc000000 { - compatible = "st,spear600-smi"; - #address-cells = <1>; - #size-cells = <1>; - reg = <0xfc000000 0x1000>; - interrupt-parent = <&vic1>; - interrupts = <12>; - status = "disabled"; - }; - - ehci@e1800000 { - compatible = "st,spear600-ehci", "usb-ehci"; - reg = <0xe1800000 0x1000>; - interrupt-parent = <&vic1>; - interrupts = <27>; - status = "disabled"; - }; - - ehci@e2000000 { - compatible = "st,spear600-ehci", "usb-ehci"; - reg = <0xe2000000 0x1000>; - interrupt-parent = <&vic1>; - interrupts = <29>; - status = "disabled"; - }; - - ohci@e1900000 { - compatible = "st,spear600-ohci", "usb-ohci"; - reg = <0xe1900000 0x1000>; - interrupt-parent = <&vic1>; - interrupts = <26>; - status = "disabled"; - }; - - ohci@e2100000 { - compatible = "st,spear600-ohci", "usb-ohci"; - reg = <0xe2100000 0x1000>; - interrupt-parent = <&vic1>; - interrupts = <28>; - status = "disabled"; - }; - - apb { - #address-cells = <1>; - #size-cells = <1>; - compatible = "simple-bus"; - ranges = <0xd0000000 0xd0000000 0x30000000>; - - serial@d0000000 { - compatible = "arm,pl011", "arm,primecell"; - reg = <0xd0000000 0x1000>; - interrupt-parent = <&vic0>; - interrupts = <24>; - status = "disabled"; - }; - - serial@d0080000 { - compatible = "arm,pl011", "arm,primecell"; - reg = <0xd0080000 0x1000>; - interrupt-parent = <&vic0>; - interrupts = <25>; - status = "disabled"; - }; - - /* local/cpu GPIO */ - gpio0: gpio@f0100000 { - #gpio-cells = <2>; - compatible = "arm,pl061", "arm,primecell"; - gpio-controller; - reg = <0xf0100000 0x1000>; - interrupt-parent = <&vic0>; - interrupts = <18>; - }; - - /* basic GPIO */ - gpio1: gpio@fc980000 { - #gpio-cells = <2>; - compatible = "arm,pl061", "arm,primecell"; - gpio-controller; - reg = <0xfc980000 0x1000>; - interrupt-parent = <&vic1>; - interrupts = <19>; - }; - - /* appl GPIO */ - gpio2: gpio@d8100000 { - #gpio-cells = <2>; - compatible = "arm,pl061", "arm,primecell"; - gpio-controller; - reg = <0xd8100000 0x1000>; - interrupt-parent = <&vic1>; - interrupts = <4>; - }; - - i2c@d0200000 { - #address-cells = <1>; - #size-cells = <0>; - compatible = "snps,designware-i2c"; - reg = <0xd0200000 0x1000>; - interrupt-parent = <&vic0>; - interrupts = <28>; - status = "disabled"; - }; - }; - }; -}; diff --git a/trunk/arch/arm/boot/dts/tegra-cardhu.dts b/trunk/arch/arm/boot/dts/tegra-cardhu.dts index ac3fb7558459..70c41fc897d7 100644 --- a/trunk/arch/arm/boot/dts/tegra-cardhu.dts +++ b/trunk/arch/arm/boot/dts/tegra-cardhu.dts @@ -14,22 +14,6 @@ clock-frequency = < 408000000 >; }; - serial@70006040 { - status = "disable"; - }; - - serial@70006200 { - status = "disable"; - }; - - serial@70006300 { - status = "disable"; - }; - - serial@70006400 { - status = "disable"; - }; - i2c@7000c000 { clock-frequency = <100000>; }; @@ -49,22 +33,4 @@ i2c@7000d000 { clock-frequency = <100000>; }; - - sdhci@78000000 { - cd-gpios = <&gpio 69 0>; /* gpio PI5 */ - wp-gpios = <&gpio 155 0>; /* gpio PT3 */ - power-gpios = <&gpio 31 0>; /* gpio PD7 */ - }; - - sdhci@78000200 { - status = "disable"; - }; - - sdhci@78000400 { - status = "disable"; - }; - - sdhci@78000400 { - support-8bit; - }; }; diff --git a/trunk/arch/arm/boot/dts/tegra-harmony.dts b/trunk/arch/arm/boot/dts/tegra-harmony.dts index 6e8447dc0202..80afa1b70b80 100644 --- a/trunk/arch/arm/boot/dts/tegra-harmony.dts +++ b/trunk/arch/arm/boot/dts/tegra-harmony.dts @@ -10,25 +10,19 @@ reg = < 0x00000000 0x40000000 >; }; - pmc@7000f400 { - nvidia,invert-interrupt; - }; - i2c@7000c000 { clock-frequency = <400000>; - wm8903: wm8903@1a { + codec: wm8903@1a { compatible = "wlf,wm8903"; reg = <0x1a>; - interrupt-parent = <&gpio>; - interrupts = < 187 0x04 >; + interrupts = < 347 >; gpio-controller; #gpio-cells = <2>; - micdet-cfg = <0>; - micdet-delay = <100>; - gpio-cfg = < 0xffffffff 0xffffffff 0 0xffffffff 0xffffffff >; + /* 0x8000 = Not configured */ + gpio-cfg = < 0x8000 0x8000 0 0x8000 0x8000 >; }; }; @@ -44,32 +38,13 @@ clock-frequency = <400000>; }; - i2s@70002a00 { - status = "disable"; - }; - sound { - compatible = "nvidia,tegra-audio-wm8903-harmony", - "nvidia,tegra-audio-wm8903"; - nvidia,model = "NVIDIA Tegra Harmony"; - - nvidia,audio-routing = - "Headphone Jack", "HPOUTR", - "Headphone Jack", "HPOUTL", - "Int Spk", "ROP", - "Int Spk", "RON", - "Int Spk", "LOP", - "Int Spk", "LON", - "Mic Jack", "MICBIAS", - "IN1L", "Mic Jack"; - - nvidia,i2s-controller = <&tegra_i2s1>; - nvidia,audio-codec = <&wm8903>; - - nvidia,spkr-en-gpios = <&wm8903 2 0>; - nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */ - nvidia,int-mic-en-gpios = <&gpio 184 0>; /*gpio PX0 */ - nvidia,ext-mic-en-gpios = <&gpio 185 0>; /* gpio PX1 */ + compatible = "nvidia,harmony-sound", "nvidia,tegra-wm8903"; + + spkr-en-gpios = <&codec 2 0>; + hp-det-gpios = <&gpio 178 0>; + int-mic-en-gpios = <&gpio 184 0>; + ext-mic-en-gpios = <&gpio 185 0>; }; serial@70006000 { diff --git a/trunk/arch/arm/boot/dts/tegra-paz00.dts b/trunk/arch/arm/boot/dts/tegra-paz00.dts index 6c02abb469d4..825d2957da0b 100644 --- a/trunk/arch/arm/boot/dts/tegra-paz00.dts +++ b/trunk/arch/arm/boot/dts/tegra-paz00.dts @@ -12,13 +12,6 @@ i2c@7000c000 { clock-frequency = <400000>; - - alc5632: alc5632@1e { - compatible = "realtek,alc5632"; - reg = <0x1e>; - gpio-controller; - #gpio-cells = <2>; - }; }; i2c@7000c400 { @@ -42,35 +35,6 @@ i2c@7000d000 { clock-frequency = <400000>; - - adt7461@4c { - compatible = "adi,adt7461"; - reg = <0x4c>; - }; - }; - - i2s@70002a00 { - status = "disable"; - }; - - sound { - compatible = "nvidia,tegra-audio-alc5632-paz00", - "nvidia,tegra-audio-alc5632"; - - nvidia,model = "Compal PAZ00"; - - nvidia,audio-routing = - "Int Spk", "SPKOUT", - "Int Spk", "SPKOUTN", - "Headset Mic", "MICBIAS1", - "MIC1", "Headset Mic", - "Headset Stereophone", "HPR", - "Headset Stereophone", "HPL", - "DMICDAT", "Digital Mic"; - - nvidia,audio-codec = <&alc5632>; - nvidia,i2s-controller = <&tegra_i2s1>; - nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */ }; serial@70006000 { @@ -110,25 +74,4 @@ sdhci@c8000600 { support-8bit; }; - - gpio-keys { - compatible = "gpio-keys"; - - power { - label = "Power"; - gpios = <&gpio 79 1>; /* gpio PJ7, active low */ - linux,code = <116>; /* KEY_POWER */ - gpio-key,wakeup; - }; - }; - - gpio-leds { - compatible = "gpio-leds"; - - wifi { - label = "wifi-led"; - gpios = <&gpio 24 0>; - linux,default-trigger = "rfkill0"; - }; - }; }; diff --git a/trunk/arch/arm/boot/dts/tegra-seaboard.dts b/trunk/arch/arm/boot/dts/tegra-seaboard.dts index dbf1c5a171c2..b55a02e34ba7 100644 --- a/trunk/arch/arm/boot/dts/tegra-seaboard.dts +++ b/trunk/arch/arm/boot/dts/tegra-seaboard.dts @@ -13,20 +13,6 @@ i2c@7000c000 { clock-frequency = <400000>; - - wm8903: wm8903@1a { - compatible = "wlf,wm8903"; - reg = <0x1a>; - interrupt-parent = <&gpio>; - interrupts = < 187 0x04 >; - - gpio-controller; - #gpio-cells = <2>; - - micdet-cfg = <0>; - micdet-delay = <100>; - gpio-cfg = < 0xffffffff 0xffffffff 0 0xffffffff 0xffffffff >; - }; }; i2c@7000c400 { @@ -46,32 +32,6 @@ }; }; - i2s@70002a00 { - status = "disable"; - }; - - sound { - compatible = "nvidia,tegra-audio-wm8903-seaboard", - "nvidia,tegra-audio-wm8903"; - nvidia,model = "NVIDIA Tegra Seaboard"; - - nvidia,audio-routing = - "Headphone Jack", "HPOUTR", - "Headphone Jack", "HPOUTL", - "Int Spk", "ROP", - "Int Spk", "RON", - "Int Spk", "LOP", - "Int Spk", "LON", - "Mic Jack", "MICBIAS", - "IN1R", "Mic Jack"; - - nvidia,i2s-controller = <&tegra_i2s1>; - nvidia,audio-codec = <&wm8903>; - - nvidia,spkr-en-gpios = <&wm8903 2 0>; - nvidia,hp-det-gpios = <&gpio 185 0>; /* gpio PX1 */ - }; - serial@70006000 { status = "disable"; }; @@ -112,7 +72,6 @@ usb@c5000000 { nvidia,vbus-gpio = <&gpio 24 0>; /* PD0 */ - dr_mode = "otg"; }; gpio-keys { @@ -134,42 +93,4 @@ gpio-key,wakeup; }; }; - - emc@7000f400 { - emc-table@190000 { - reg = < 190000 >; - compatible = "nvidia,tegra20-emc-table"; - clock-frequency = < 190000 >; - nvidia,emc-registers = < 0x0000000c 0x00000026 - 0x00000009 0x00000003 0x00000004 0x00000004 - 0x00000002 0x0000000c 0x00000003 0x00000003 - 0x00000002 0x00000001 0x00000004 0x00000005 - 0x00000004 0x00000009 0x0000000d 0x0000059f - 0x00000000 0x00000003 0x00000003 0x00000003 - 0x00000003 0x00000001 0x0000000b 0x000000c8 - 0x00000003 0x00000007 0x00000004 0x0000000f - 0x00000002 0x00000000 0x00000000 0x00000002 - 0x00000000 0x00000000 0x00000083 0xa06204ae - 0x007dc010 0x00000000 0x00000000 0x00000000 - 0x00000000 0x00000000 0x00000000 0x00000000 >; - }; - - emc-table@380000 { - reg = < 380000 >; - compatible = "nvidia,tegra20-emc-table"; - clock-frequency = < 380000 >; - nvidia,emc-registers = < 0x00000017 0x0000004b - 0x00000012 0x00000006 0x00000004 0x00000005 - 0x00000003 0x0000000c 0x00000006 0x00000006 - 0x00000003 0x00000001 0x00000004 0x00000005 - 0x00000004 0x00000009 0x0000000d 0x00000b5f - 0x00000000 0x00000003 0x00000003 0x00000006 - 0x00000006 0x00000001 0x00000011 0x000000c8 - 0x00000003 0x0000000e 0x00000007 0x0000000f - 0x00000002 0x00000000 0x00000000 0x00000002 - 0x00000000 0x00000000 0x00000083 0xe044048b - 0x007d8010 0x00000000 0x00000000 0x00000000 - 0x00000000 0x00000000 0x00000000 0x00000000 >; - }; - }; }; diff --git a/trunk/arch/arm/boot/dts/tegra-trimslice.dts b/trunk/arch/arm/boot/dts/tegra-trimslice.dts index 252476867b54..3b3ee7db99f3 100644 --- a/trunk/arch/arm/boot/dts/tegra-trimslice.dts +++ b/trunk/arch/arm/boot/dts/tegra-trimslice.dts @@ -26,18 +26,6 @@ status = "disable"; }; - i2s@70002800 { - status = "disable"; - }; - - i2s@70002a00 { - status = "disable"; - }; - - das@70000c00 { - status = "disable"; - }; - serial@70006000 { clock-frequency = < 216000000 >; }; diff --git a/trunk/arch/arm/boot/dts/tegra-ventana.dts b/trunk/arch/arm/boot/dts/tegra-ventana.dts index 2dcff8728e90..c7d3b87f29df 100644 --- a/trunk/arch/arm/boot/dts/tegra-ventana.dts +++ b/trunk/arch/arm/boot/dts/tegra-ventana.dts @@ -12,20 +12,6 @@ i2c@7000c000 { clock-frequency = <400000>; - - wm8903: wm8903@1a { - compatible = "wlf,wm8903"; - reg = <0x1a>; - interrupt-parent = <&gpio>; - interrupts = < 187 0x04 >; - - gpio-controller; - #gpio-cells = <2>; - - micdet-cfg = <0>; - micdet-delay = <100>; - gpio-cfg = < 0xffffffff 0xffffffff 0 0xffffffff 0xffffffff >; - }; }; i2c@7000c400 { @@ -40,34 +26,6 @@ clock-frequency = <400000>; }; - i2s@70002a00 { - status = "disable"; - }; - - sound { - compatible = "nvidia,tegra-audio-wm8903-ventana", - "nvidia,tegra-audio-wm8903"; - nvidia,model = "NVIDIA Tegra Ventana"; - - nvidia,audio-routing = - "Headphone Jack", "HPOUTR", - "Headphone Jack", "HPOUTL", - "Int Spk", "ROP", - "Int Spk", "RON", - "Int Spk", "LOP", - "Int Spk", "LON", - "Mic Jack", "MICBIAS", - "IN1L", "Mic Jack"; - - nvidia,i2s-controller = <&tegra_i2s1>; - nvidia,audio-codec = <&wm8903>; - - nvidia,spkr-en-gpios = <&wm8903 2 0>; - nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */ - nvidia,int-mic-en-gpios = <&gpio 184 0>; /*gpio PX0 */ - nvidia,ext-mic-en-gpios = <&gpio 185 0>; /* gpio PX1 */ - }; - serial@70006000 { status = "disable"; }; diff --git a/trunk/arch/arm/boot/dts/tegra20.dtsi b/trunk/arch/arm/boot/dts/tegra20.dtsi index 108e894a8926..3da7afd45322 100644 --- a/trunk/arch/arm/boot/dts/tegra20.dtsi +++ b/trunk/arch/arm/boot/dts/tegra20.dtsi @@ -4,11 +4,6 @@ compatible = "nvidia,tegra20"; interrupt-parent = <&intc>; - pmc@7000f400 { - compatible = "nvidia,tegra20-pmc"; - reg = <0x7000e400 0x400>; - }; - intc: interrupt-controller@50041000 { compatible = "arm,cortex-a9-gic"; interrupt-controller; @@ -17,33 +12,6 @@ < 0x50040100 0x0100 >; }; - pmu { - compatible = "arm,cortex-a9-pmu"; - interrupts = <0 56 0x04 - 0 57 0x04>; - }; - - apbdma: dma@6000a000 { - compatible = "nvidia,tegra20-apbdma"; - reg = <0x6000a000 0x1200>; - interrupts = < 0 104 0x04 - 0 105 0x04 - 0 106 0x04 - 0 107 0x04 - 0 108 0x04 - 0 109 0x04 - 0 110 0x04 - 0 111 0x04 - 0 112 0x04 - 0 113 0x04 - 0 114 0x04 - 0 115 0x04 - 0 116 0x04 - 0 117 0x04 - 0 118 0x04 - 0 119 0x04 >; - }; - i2c@7000c000 { #address-cells = <1>; #size-cells = <0>; @@ -76,18 +44,18 @@ interrupts = < 0 53 0x04 >; }; - tegra_i2s1: i2s@70002800 { + i2s@70002800 { compatible = "nvidia,tegra20-i2s"; reg = <0x70002800 0x200>; interrupts = < 0 13 0x04 >; - nvidia,dma-request-selector = < &apbdma 2 >; + dma-channel = < 2 >; }; - tegra_i2s2: i2s@70002a00 { + i2s@70002a00 { compatible = "nvidia,tegra20-i2s"; reg = <0x70002a00 0x200>; interrupts = < 0 3 0x04 >; - nvidia,dma-request-selector = < &apbdma 1 >; + dma-channel = < 1 >; }; das@70000c00 { @@ -107,8 +75,6 @@ 0 89 0x04 >; #gpio-cells = <2>; gpio-controller; - #interrupt-cells = <2>; - interrupt-controller; }; pinmux: pinmux@70000000 { @@ -154,13 +120,6 @@ interrupts = < 0 91 0x04 >; }; - emc@7000f400 { - #address-cells = <1>; - #size-cells = <0>; - compatible = "nvidia,tegra20-emc"; - reg = <0x7000f400 0x200>; - }; - sdhci@c8000000 { compatible = "nvidia,tegra20-sdhci"; reg = <0xc8000000 0x200>; @@ -190,7 +149,6 @@ reg = <0xc5000000 0x4000>; interrupts = < 0 20 0x04 >; phy_type = "utmi"; - nvidia,has-legacy-mode; }; usb@c5004000 { diff --git a/trunk/arch/arm/boot/dts/tegra30.dtsi b/trunk/arch/arm/boot/dts/tegra30.dtsi index 62a7b39f1c9a..ee7db9892e02 100644 --- a/trunk/arch/arm/boot/dts/tegra30.dtsi +++ b/trunk/arch/arm/boot/dts/tegra30.dtsi @@ -4,11 +4,6 @@ compatible = "nvidia,tegra30"; interrupt-parent = <&intc>; - pmc@7000f400 { - compatible = "nvidia,tegra20-pmc", "nvidia,tegra30-pmc"; - reg = <0x7000e400 0x400>; - }; - intc: interrupt-controller@50041000 { compatible = "arm,cortex-a9-gic"; interrupt-controller; @@ -17,51 +12,6 @@ < 0x50040100 0x0100 >; }; - pmu { - compatible = "arm,cortex-a9-pmu"; - interrupts = <0 144 0x04 - 0 145 0x04 - 0 146 0x04 - 0 147 0x04>; - }; - - apbdma: dma@6000a000 { - compatible = "nvidia,tegra30-apbdma", "nvidia,tegra20-apbdma"; - reg = <0x6000a000 0x1400>; - interrupts = < 0 104 0x04 - 0 105 0x04 - 0 106 0x04 - 0 107 0x04 - 0 108 0x04 - 0 109 0x04 - 0 110 0x04 - 0 111 0x04 - 0 112 0x04 - 0 113 0x04 - 0 114 0x04 - 0 115 0x04 - 0 116 0x04 - 0 117 0x04 - 0 118 0x04 - 0 119 0x04 - 0 128 0x04 - 0 129 0x04 - 0 130 0x04 - 0 131 0x04 - 0 132 0x04 - 0 133 0x04 - 0 134 0x04 - 0 135 0x04 - 0 136 0x04 - 0 137 0x04 - 0 138 0x04 - 0 139 0x04 - 0 140 0x04 - 0 141 0x04 - 0 142 0x04 - 0 143 0x04 >; - }; - i2c@7000c000 { #address-cells = <1>; #size-cells = <0>; @@ -105,18 +55,9 @@ gpio: gpio@6000d000 { compatible = "nvidia,tegra30-gpio", "nvidia,tegra20-gpio"; reg = < 0x6000d000 0x1000 >; - interrupts = < 0 32 0x04 - 0 33 0x04 - 0 34 0x04 - 0 35 0x04 - 0 55 0x04 - 0 87 0x04 - 0 89 0x04 - 0 125 0x04 >; + interrupts = < 0 32 0x04 0 33 0x04 0 34 0x04 0 35 0x04 0 55 0x04 0 87 0x04 0 89 0x04 >; #gpio-cells = <2>; gpio-controller; - #interrupt-cells = <2>; - interrupt-controller; }; serial@70006000 { diff --git a/trunk/arch/arm/boot/dts/usb_a9g20-dab-mmx.dtsi b/trunk/arch/arm/boot/dts/usb_a9g20-dab-mmx.dtsi deleted file mode 100644 index ad3eca17c436..000000000000 --- a/trunk/arch/arm/boot/dts/usb_a9g20-dab-mmx.dtsi +++ /dev/null @@ -1,96 +0,0 @@ -/* - * calao-dab-mmx.dtsi - Device Tree Include file for Calao DAB-MMX Daughter Board - * - * Copyright (C) 2011 Jean-Christophe PLAGNIOL-VILLARD - * - * Licensed under GPLv2. - */ - -/ { - ahb { - apb { - usart1: serial@fffb4000 { - status = "okay"; - }; - - usart3: serial@fffd0000 { - status = "okay"; - }; - }; - }; - - i2c-gpio@0 { - status = "okay"; - }; - - leds { - compatible = "gpio-leds"; - - user_led1 { - label = "user_led1"; - gpios = <&pioB 20 1>; - }; - -/* -* led already used by mother board but active as high -* user_led2 { -* label = "user_led2"; -* gpios = <&pioB 21 1>; -* }; -*/ - user_led3 { - label = "user_led3"; - gpios = <&pioB 22 1>; - }; - - user_led4 { - label = "user_led4"; - gpios = <&pioB 23 1>; - }; - - red { - label = "red"; - gpios = <&pioB 24 1>; - }; - - orange { - label = "orange"; - gpios = <&pioB 30 1>; - }; - - green { - label = "green"; - gpios = <&pioB 31 1>; - }; - }; - - gpio_keys { - compatible = "gpio-keys"; - #address-cells = <1>; - #size-cells = <0>; - - user_pb1 { - label = "user_pb1"; - gpios = <&pioB 25 1>; - linux,code = <0x100>; - }; - - user_pb2 { - label = "user_pb2"; - gpios = <&pioB 13 1>; - linux,code = <0x101>; - }; - - user_pb3 { - label = "user_pb3"; - gpios = <&pioA 26 1>; - linux,code = <0x102>; - }; - - user_pb4 { - label = "user_pb4"; - gpios = <&pioC 9 1>; - linux,code = <0x103>; - }; - }; -}; diff --git a/trunk/arch/arm/boot/dts/usb_a9g20.dts b/trunk/arch/arm/boot/dts/usb_a9g20.dts index 3b3c4e0fa79f..f04b535477f5 100644 --- a/trunk/arch/arm/boot/dts/usb_a9g20.dts +++ b/trunk/arch/arm/boot/dts/usb_a9g20.dts @@ -13,24 +13,13 @@ compatible = "calao,usb-a9g20", "atmel,at91sam9g20", "atmel,at91sam9"; chosen { - bootargs = "mem=64M console=ttyS0,115200 root=/dev/mtdblock5 rw rootfstype=ubifs"; + bootargs = "mem=64M console=ttyS0,115200 mtdparts=atmel_nand:128k(at91bootstrap),256k(barebox)ro,128k(bareboxenv),128k(bareboxenv2),4M(kernel),120M(rootfs),-(data) root=/dev/mtdblock5 rw rootfstype=ubifs"; }; memory@20000000 { reg = <0x20000000 0x4000000>; }; - clocks { - #address-cells = <1>; - #size-cells = <1>; - ranges; - - main_clock: clock@0 { - compatible = "atmel,osc", "fixed-clock"; - clock-frequency = <12000000>; - }; - }; - ahb { apb { dbgu: serial@fffff200 { @@ -41,90 +30,6 @@ phy-mode = "rmii"; status = "okay"; }; - - usb1: gadget@fffa4000 { - atmel,vbus-gpio = <&pioC 5 0>; - status = "okay"; - }; - }; - - nand0: nand@40000000 { - nand-bus-width = <8>; - nand-ecc-mode = "soft"; - nand-on-flash-bbt; - status = "okay"; - - at91bootstrap@0 { - label = "at91bootstrap"; - reg = <0x0 0x20000>; - }; - - barebox@20000 { - label = "barebox"; - reg = <0x20000 0x40000>; - }; - - bareboxenv@60000 { - label = "bareboxenv"; - reg = <0x60000 0x20000>; - }; - - bareboxenv2@80000 { - label = "bareboxenv2"; - reg = <0x80000 0x20000>; - }; - - kernel@a0000 { - label = "kernel"; - reg = <0xa0000 0x400000>; - }; - - rootfs@4a0000 { - label = "rootfs"; - reg = <0x4a0000 0x7800000>; - }; - - data@7ca0000 { - label = "data"; - reg = <0x7ca0000 0x8360000>; - }; - }; - - usb0: ohci@00500000 { - num-ports = <2>; - status = "okay"; - }; - }; - - leds { - compatible = "gpio-leds"; - - user_led { - label = "user_led"; - gpios = <&pioB 21 1>; - linux,default-trigger = "heartbeat"; - }; - }; - - gpio_keys { - compatible = "gpio-keys"; - #address-cells = <1>; - #size-cells = <0>; - - user_pb { - label = "user_pb"; - gpios = <&pioB 10 1>; - linux,code = <28>; - gpio-key,wakeup; - }; - }; - - i2c@0 { - status = "okay"; - - rv3029c2@56 { - compatible = "rv3029c2"; - reg = <0x56>; }; }; }; diff --git a/trunk/arch/arm/boot/dts/vexpress-v2m-rs1.dtsi b/trunk/arch/arm/boot/dts/vexpress-v2m-rs1.dtsi deleted file mode 100644 index 16076e2d0934..000000000000 --- a/trunk/arch/arm/boot/dts/vexpress-v2m-rs1.dtsi +++ /dev/null @@ -1,201 +0,0 @@ -/* - * ARM Ltd. Versatile Express - * - * Motherboard Express uATX - * V2M-P1 - * - * HBI-0190D - * - * RS1 memory map ("ARM Cortex-A Series memory map" in the board's - * Technical Reference Manual) - * - * WARNING! The hardware described in this file is independent from the - * original variant (vexpress-v2m.dtsi), but there is a strong - * correspondence between the two configurations. - * - * TAKE CARE WHEN MAINTAINING THIS FILE TO PROPAGATE ANY RELEVANT - * CHANGES TO vexpress-v2m.dtsi! - */ - -/ { - aliases { - arm,v2m_timer = &v2m_timer01; - }; - - motherboard { - compatible = "simple-bus"; - arm,v2m-memory-map = "rs1"; - #address-cells = <2>; /* SMB chipselect number and offset */ - #size-cells = <1>; - #interrupt-cells = <1>; - - flash@0,00000000 { - compatible = "arm,vexpress-flash", "cfi-flash"; - reg = <0 0x00000000 0x04000000>, - <4 0x00000000 0x04000000>; - bank-width = <4>; - }; - - psram@1,00000000 { - compatible = "arm,vexpress-psram", "mtd-ram"; - reg = <1 0x00000000 0x02000000>; - bank-width = <4>; - }; - - vram@2,00000000 { - compatible = "arm,vexpress-vram"; - reg = <2 0x00000000 0x00800000>; - }; - - ethernet@2,02000000 { - compatible = "smsc,lan9118", "smsc,lan9115"; - reg = <2 0x02000000 0x10000>; - interrupts = <15>; - phy-mode = "mii"; - reg-io-width = <4>; - smsc,irq-active-high; - smsc,irq-push-pull; - }; - - usb@2,03000000 { - compatible = "nxp,usb-isp1761"; - reg = <2 0x03000000 0x20000>; - interrupts = <16>; - port1-otg; - }; - - iofpga@3,00000000 { - compatible = "arm,amba-bus", "simple-bus"; - #address-cells = <1>; - #size-cells = <1>; - ranges = <0 3 0 0x200000>; - - sysreg@010000 { - compatible = "arm,vexpress-sysreg"; - reg = <0x010000 0x1000>; - }; - - sysctl@020000 { - compatible = "arm,sp810", "arm,primecell"; - reg = <0x020000 0x1000>; - }; - - /* PCI-E I2C bus */ - v2m_i2c_pcie: i2c@030000 { - compatible = "arm,versatile-i2c"; - reg = <0x030000 0x1000>; - - #address-cells = <1>; - #size-cells = <0>; - - pcie-switch@60 { - compatible = "idt,89hpes32h8"; - reg = <0x60>; - }; - }; - - aaci@040000 { - compatible = "arm,pl041", "arm,primecell"; - reg = <0x040000 0x1000>; - interrupts = <11>; - }; - - mmci@050000 { - compatible = "arm,pl180", "arm,primecell"; - reg = <0x050000 0x1000>; - interrupts = <9 10>; - }; - - kmi@060000 { - compatible = "arm,pl050", "arm,primecell"; - reg = <0x060000 0x1000>; - interrupts = <12>; - }; - - kmi@070000 { - compatible = "arm,pl050", "arm,primecell"; - reg = <0x070000 0x1000>; - interrupts = <13>; - }; - - v2m_serial0: uart@090000 { - compatible = "arm,pl011", "arm,primecell"; - reg = <0x090000 0x1000>; - interrupts = <5>; - }; - - v2m_serial1: uart@0a0000 { - compatible = "arm,pl011", "arm,primecell"; - reg = <0x0a0000 0x1000>; - interrupts = <6>; - }; - - v2m_serial2: uart@0b0000 { - compatible = "arm,pl011", "arm,primecell"; - reg = <0x0b0000 0x1000>; - interrupts = <7>; - }; - - v2m_serial3: uart@0c0000 { - compatible = "arm,pl011", "arm,primecell"; - reg = <0x0c0000 0x1000>; - interrupts = <8>; - }; - - wdt@0f0000 { - compatible = "arm,sp805", "arm,primecell"; - reg = <0x0f0000 0x1000>; - interrupts = <0>; - }; - - v2m_timer01: timer@110000 { - compatible = "arm,sp804", "arm,primecell"; - reg = <0x110000 0x1000>; - interrupts = <2>; - }; - - v2m_timer23: timer@120000 { - compatible = "arm,sp804", "arm,primecell"; - reg = <0x120000 0x1000>; - }; - - /* DVI I2C bus */ - v2m_i2c_dvi: i2c@160000 { - compatible = "arm,versatile-i2c"; - reg = <0x160000 0x1000>; - - #address-cells = <1>; - #size-cells = <0>; - - dvi-transmitter@39 { - compatible = "sil,sii9022-tpi", "sil,sii9022"; - reg = <0x39>; - }; - - dvi-transmitter@60 { - compatible = "sil,sii9022-cpi", "sil,sii9022"; - reg = <0x60>; - }; - }; - - rtc@170000 { - compatible = "arm,pl031", "arm,primecell"; - reg = <0x170000 0x1000>; - interrupts = <4>; - }; - - compact-flash@1a0000 { - compatible = "arm,vexpress-cf", "ata-generic"; - reg = <0x1a0000 0x100 - 0x1a0100 0xf00>; - reg-shift = <2>; - }; - - clcd@1f0000 { - compatible = "arm,pl111", "arm,primecell"; - reg = <0x1f0000 0x1000>; - interrupts = <14>; - }; - }; - }; -}; diff --git a/trunk/arch/arm/boot/dts/vexpress-v2m.dtsi b/trunk/arch/arm/boot/dts/vexpress-v2m.dtsi deleted file mode 100644 index a6c9c7c82d53..000000000000 --- a/trunk/arch/arm/boot/dts/vexpress-v2m.dtsi +++ /dev/null @@ -1,200 +0,0 @@ -/* - * ARM Ltd. Versatile Express - * - * Motherboard Express uATX - * V2M-P1 - * - * HBI-0190D - * - * Original memory map ("Legacy memory map" in the board's - * Technical Reference Manual) - * - * WARNING! The hardware described in this file is independent from the - * RS1 variant (vexpress-v2m-rs1.dtsi), but there is a strong - * correspondence between the two configurations. - * - * TAKE CARE WHEN MAINTAINING THIS FILE TO PROPAGATE ANY RELEVANT - * CHANGES TO vexpress-v2m-rs1.dtsi! - */ - -/ { - aliases { - arm,v2m_timer = &v2m_timer01; - }; - - motherboard { - compatible = "simple-bus"; - #address-cells = <2>; /* SMB chipselect number and offset */ - #size-cells = <1>; - #interrupt-cells = <1>; - - flash@0,00000000 { - compatible = "arm,vexpress-flash", "cfi-flash"; - reg = <0 0x00000000 0x04000000>, - <1 0x00000000 0x04000000>; - bank-width = <4>; - }; - - psram@2,00000000 { - compatible = "arm,vexpress-psram", "mtd-ram"; - reg = <2 0x00000000 0x02000000>; - bank-width = <4>; - }; - - vram@3,00000000 { - compatible = "arm,vexpress-vram"; - reg = <3 0x00000000 0x00800000>; - }; - - ethernet@3,02000000 { - compatible = "smsc,lan9118", "smsc,lan9115"; - reg = <3 0x02000000 0x10000>; - interrupts = <15>; - phy-mode = "mii"; - reg-io-width = <4>; - smsc,irq-active-high; - smsc,irq-push-pull; - }; - - usb@3,03000000 { - compatible = "nxp,usb-isp1761"; - reg = <3 0x03000000 0x20000>; - interrupts = <16>; - port1-otg; - }; - - iofpga@7,00000000 { - compatible = "arm,amba-bus", "simple-bus"; - #address-cells = <1>; - #size-cells = <1>; - ranges = <0 7 0 0x20000>; - - sysreg@00000 { - compatible = "arm,vexpress-sysreg"; - reg = <0x00000 0x1000>; - }; - - sysctl@01000 { - compatible = "arm,sp810", "arm,primecell"; - reg = <0x01000 0x1000>; - }; - - /* PCI-E I2C bus */ - v2m_i2c_pcie: i2c@02000 { - compatible = "arm,versatile-i2c"; - reg = <0x02000 0x1000>; - - #address-cells = <1>; - #size-cells = <0>; - - pcie-switch@60 { - compatible = "idt,89hpes32h8"; - reg = <0x60>; - }; - }; - - aaci@04000 { - compatible = "arm,pl041", "arm,primecell"; - reg = <0x04000 0x1000>; - interrupts = <11>; - }; - - mmci@05000 { - compatible = "arm,pl180", "arm,primecell"; - reg = <0x05000 0x1000>; - interrupts = <9 10>; - }; - - kmi@06000 { - compatible = "arm,pl050", "arm,primecell"; - reg = <0x06000 0x1000>; - interrupts = <12>; - }; - - kmi@07000 { - compatible = "arm,pl050", "arm,primecell"; - reg = <0x07000 0x1000>; - interrupts = <13>; - }; - - v2m_serial0: uart@09000 { - compatible = "arm,pl011", "arm,primecell"; - reg = <0x09000 0x1000>; - interrupts = <5>; - }; - - v2m_serial1: uart@0a000 { - compatible = "arm,pl011", "arm,primecell"; - reg = <0x0a000 0x1000>; - interrupts = <6>; - }; - - v2m_serial2: uart@0b000 { - compatible = "arm,pl011", "arm,primecell"; - reg = <0x0b000 0x1000>; - interrupts = <7>; - }; - - v2m_serial3: uart@0c000 { - compatible = "arm,pl011", "arm,primecell"; - reg = <0x0c000 0x1000>; - interrupts = <8>; - }; - - wdt@0f000 { - compatible = "arm,sp805", "arm,primecell"; - reg = <0x0f000 0x1000>; - interrupts = <0>; - }; - - v2m_timer01: timer@11000 { - compatible = "arm,sp804", "arm,primecell"; - reg = <0x11000 0x1000>; - interrupts = <2>; - }; - - v2m_timer23: timer@12000 { - compatible = "arm,sp804", "arm,primecell"; - reg = <0x12000 0x1000>; - }; - - /* DVI I2C bus */ - v2m_i2c_dvi: i2c@16000 { - compatible = "arm,versatile-i2c"; - reg = <0x16000 0x1000>; - - #address-cells = <1>; - #size-cells = <0>; - - dvi-transmitter@39 { - compatible = "sil,sii9022-tpi", "sil,sii9022"; - reg = <0x39>; - }; - - dvi-transmitter@60 { - compatible = "sil,sii9022-cpi", "sil,sii9022"; - reg = <0x60>; - }; - }; - - rtc@17000 { - compatible = "arm,pl031", "arm,primecell"; - reg = <0x17000 0x1000>; - interrupts = <4>; - }; - - compact-flash@1a000 { - compatible = "arm,vexpress-cf", "ata-generic"; - reg = <0x1a000 0x100 - 0x1a100 0xf00>; - reg-shift = <2>; - }; - - clcd@1f000 { - compatible = "arm,pl111", "arm,primecell"; - reg = <0x1f000 0x1000>; - interrupts = <14>; - }; - }; - }; -}; diff --git a/trunk/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts b/trunk/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts deleted file mode 100644 index 941b161ab78c..000000000000 --- a/trunk/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts +++ /dev/null @@ -1,157 +0,0 @@ -/* - * ARM Ltd. Versatile Express - * - * CoreTile Express A15x2 (version with Test Chip 1) - * Cortex-A15 MPCore (V2P-CA15) - * - * HBI-0237A - */ - -/dts-v1/; - -/ { - model = "V2P-CA15"; - arm,hbi = <0x237>; - compatible = "arm,vexpress,v2p-ca15,tc1", "arm,vexpress,v2p-ca15", "arm,vexpress"; - interrupt-parent = <&gic>; - #address-cells = <1>; - #size-cells = <1>; - - chosen { }; - - aliases { - serial0 = &v2m_serial0; - serial1 = &v2m_serial1; - serial2 = &v2m_serial2; - serial3 = &v2m_serial3; - i2c0 = &v2m_i2c_dvi; - i2c1 = &v2m_i2c_pcie; - }; - - cpus { - #address-cells = <1>; - #size-cells = <0>; - - cpu@0 { - device_type = "cpu"; - compatible = "arm,cortex-a15"; - reg = <0>; - }; - - cpu@1 { - device_type = "cpu"; - compatible = "arm,cortex-a15"; - reg = <1>; - }; - }; - - memory@80000000 { - device_type = "memory"; - reg = <0x80000000 0x40000000>; - }; - - hdlcd@2b000000 { - compatible = "arm,hdlcd"; - reg = <0x2b000000 0x1000>; - interrupts = <0 85 4>; - }; - - memory-controller@2b0a0000 { - compatible = "arm,pl341", "arm,primecell"; - reg = <0x2b0a0000 0x1000>; - }; - - wdt@2b060000 { - compatible = "arm,sp805", "arm,primecell"; - reg = <0x2b060000 0x1000>; - interrupts = <98>; - }; - - gic: interrupt-controller@2c001000 { - compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic"; - #interrupt-cells = <3>; - #address-cells = <0>; - interrupt-controller; - reg = <0x2c001000 0x1000>, - <0x2c002000 0x100>; - }; - - memory-controller@7ffd0000 { - compatible = "arm,pl354", "arm,primecell"; - reg = <0x7ffd0000 0x1000>; - interrupts = <0 86 4>, - <0 87 4>; - }; - - dma@7ffb0000 { - compatible = "arm,pl330", "arm,primecell"; - reg = <0x7ffb0000 0x1000>; - interrupts = <0 92 4>, - <0 88 4>, - <0 89 4>, - <0 90 4>, - <0 91 4>; - }; - - pmu { - compatible = "arm,cortex-a15-pmu", "arm,cortex-a9-pmu"; - interrupts = <0 68 4>, - <0 69 4>; - }; - - motherboard { - ranges = <0 0 0x08000000 0x04000000>, - <1 0 0x14000000 0x04000000>, - <2 0 0x18000000 0x04000000>, - <3 0 0x1c000000 0x04000000>, - <4 0 0x0c000000 0x04000000>, - <5 0 0x10000000 0x04000000>; - - interrupt-map-mask = <0 0 63>; - interrupt-map = <0 0 0 &gic 0 0 4>, - <0 0 1 &gic 0 1 4>, - <0 0 2 &gic 0 2 4>, - <0 0 3 &gic 0 3 4>, - <0 0 4 &gic 0 4 4>, - <0 0 5 &gic 0 5 4>, - <0 0 6 &gic 0 6 4>, - <0 0 7 &gic 0 7 4>, - <0 0 8 &gic 0 8 4>, - <0 0 9 &gic 0 9 4>, - <0 0 10 &gic 0 10 4>, - <0 0 11 &gic 0 11 4>, - <0 0 12 &gic 0 12 4>, - <0 0 13 &gic 0 13 4>, - <0 0 14 &gic 0 14 4>, - <0 0 15 &gic 0 15 4>, - <0 0 16 &gic 0 16 4>, - <0 0 17 &gic 0 17 4>, - <0 0 18 &gic 0 18 4>, - <0 0 19 &gic 0 19 4>, - <0 0 20 &gic 0 20 4>, - <0 0 21 &gic 0 21 4>, - <0 0 22 &gic 0 22 4>, - <0 0 23 &gic 0 23 4>, - <0 0 24 &gic 0 24 4>, - <0 0 25 &gic 0 25 4>, - <0 0 26 &gic 0 26 4>, - <0 0 27 &gic 0 27 4>, - <0 0 28 &gic 0 28 4>, - <0 0 29 &gic 0 29 4>, - <0 0 30 &gic 0 30 4>, - <0 0 31 &gic 0 31 4>, - <0 0 32 &gic 0 32 4>, - <0 0 33 &gic 0 33 4>, - <0 0 34 &gic 0 34 4>, - <0 0 35 &gic 0 35 4>, - <0 0 36 &gic 0 36 4>, - <0 0 37 &gic 0 37 4>, - <0 0 38 &gic 0 38 4>, - <0 0 39 &gic 0 39 4>, - <0 0 40 &gic 0 40 4>, - <0 0 41 &gic 0 41 4>, - <0 0 42 &gic 0 42 4>; - }; -}; - -/include/ "vexpress-v2m-rs1.dtsi" diff --git a/trunk/arch/arm/boot/dts/vexpress-v2p-ca5s.dts b/trunk/arch/arm/boot/dts/vexpress-v2p-ca5s.dts deleted file mode 100644 index 6905e66d4748..000000000000 --- a/trunk/arch/arm/boot/dts/vexpress-v2p-ca5s.dts +++ /dev/null @@ -1,162 +0,0 @@ -/* - * ARM Ltd. Versatile Express - * - * CoreTile Express A5x2 - * Cortex-A5 MPCore (V2P-CA5s) - * - * HBI-0225B - */ - -/dts-v1/; - -/ { - model = "V2P-CA5s"; - arm,hbi = <0x225>; - compatible = "arm,vexpress,v2p-ca5s", "arm,vexpress"; - interrupt-parent = <&gic>; - #address-cells = <1>; - #size-cells = <1>; - - chosen { }; - - aliases { - serial0 = &v2m_serial0; - serial1 = &v2m_serial1; - serial2 = &v2m_serial2; - serial3 = &v2m_serial3; - i2c0 = &v2m_i2c_dvi; - i2c1 = &v2m_i2c_pcie; - }; - - cpus { - #address-cells = <1>; - #size-cells = <0>; - - cpu@0 { - device_type = "cpu"; - compatible = "arm,cortex-a5"; - reg = <0>; - next-level-cache = <&L2>; - }; - - cpu@1 { - device_type = "cpu"; - compatible = "arm,cortex-a5"; - reg = <1>; - next-level-cache = <&L2>; - }; - }; - - memory@80000000 { - device_type = "memory"; - reg = <0x80000000 0x40000000>; - }; - - hdlcd@2a110000 { - compatible = "arm,hdlcd"; - reg = <0x2a110000 0x1000>; - interrupts = <0 85 4>; - }; - - memory-controller@2a150000 { - compatible = "arm,pl341", "arm,primecell"; - reg = <0x2a150000 0x1000>; - }; - - memory-controller@2a190000 { - compatible = "arm,pl354", "arm,primecell"; - reg = <0x2a190000 0x1000>; - interrupts = <0 86 4>, - <0 87 4>; - }; - - scu@2c000000 { - compatible = "arm,cortex-a5-scu"; - reg = <0x2c000000 0x58>; - }; - - timer@2c000600 { - compatible = "arm,cortex-a5-twd-timer"; - reg = <0x2c000600 0x38>; - interrupts = <1 2 0x304>, - <1 3 0x304>; - }; - - gic: interrupt-controller@2c001000 { - compatible = "arm,corex-a5-gic", "arm,cortex-a9-gic"; - #interrupt-cells = <3>; - #address-cells = <0>; - interrupt-controller; - reg = <0x2c001000 0x1000>, - <0x2c000100 0x100>; - }; - - L2: cache-controller@2c0f0000 { - compatible = "arm,pl310-cache"; - reg = <0x2c0f0000 0x1000>; - interrupts = <0 84 4>; - cache-level = <2>; - }; - - pmu { - compatible = "arm,cortex-a5-pmu", "arm,cortex-a9-pmu"; - interrupts = <0 68 4>, - <0 69 4>; - }; - - motherboard { - ranges = <0 0 0x08000000 0x04000000>, - <1 0 0x14000000 0x04000000>, - <2 0 0x18000000 0x04000000>, - <3 0 0x1c000000 0x04000000>, - <4 0 0x0c000000 0x04000000>, - <5 0 0x10000000 0x04000000>; - - interrupt-map-mask = <0 0 63>; - interrupt-map = <0 0 0 &gic 0 0 4>, - <0 0 1 &gic 0 1 4>, - <0 0 2 &gic 0 2 4>, - <0 0 3 &gic 0 3 4>, - <0 0 4 &gic 0 4 4>, - <0 0 5 &gic 0 5 4>, - <0 0 6 &gic 0 6 4>, - <0 0 7 &gic 0 7 4>, - <0 0 8 &gic 0 8 4>, - <0 0 9 &gic 0 9 4>, - <0 0 10 &gic 0 10 4>, - <0 0 11 &gic 0 11 4>, - <0 0 12 &gic 0 12 4>, - <0 0 13 &gic 0 13 4>, - <0 0 14 &gic 0 14 4>, - <0 0 15 &gic 0 15 4>, - <0 0 16 &gic 0 16 4>, - <0 0 17 &gic 0 17 4>, - <0 0 18 &gic 0 18 4>, - <0 0 19 &gic 0 19 4>, - <0 0 20 &gic 0 20 4>, - <0 0 21 &gic 0 21 4>, - <0 0 22 &gic 0 22 4>, - <0 0 23 &gic 0 23 4>, - <0 0 24 &gic 0 24 4>, - <0 0 25 &gic 0 25 4>, - <0 0 26 &gic 0 26 4>, - <0 0 27 &gic 0 27 4>, - <0 0 28 &gic 0 28 4>, - <0 0 29 &gic 0 29 4>, - <0 0 30 &gic 0 30 4>, - <0 0 31 &gic 0 31 4>, - <0 0 32 &gic 0 32 4>, - <0 0 33 &gic 0 33 4>, - <0 0 34 &gic 0 34 4>, - <0 0 35 &gic 0 35 4>, - <0 0 36 &gic 0 36 4>, - <0 0 37 &gic 0 37 4>, - <0 0 38 &gic 0 38 4>, - <0 0 39 &gic 0 39 4>, - <0 0 40 &gic 0 40 4>, - <0 0 41 &gic 0 41 4>, - <0 0 42 &gic 0 42 4>; - }; -}; - -/include/ "vexpress-v2m-rs1.dtsi" diff --git a/trunk/arch/arm/boot/dts/vexpress-v2p-ca9.dts b/trunk/arch/arm/boot/dts/vexpress-v2p-ca9.dts deleted file mode 100644 index da778693be54..000000000000 --- a/trunk/arch/arm/boot/dts/vexpress-v2p-ca9.dts +++ /dev/null @@ -1,192 +0,0 @@ -/* - * ARM Ltd. Versatile Express - * - * CoreTile Express A9x4 - * Cortex-A9 MPCore (V2P-CA9) - * - * HBI-0191B - */ - -/dts-v1/; - -/ { - model = "V2P-CA9"; - arm,hbi = <0x191>; - compatible = "arm,vexpress,v2p-ca9", "arm,vexpress"; - interrupt-parent = <&gic>; - #address-cells = <1>; - #size-cells = <1>; - - chosen { }; - - aliases { - serial0 = &v2m_serial0; - serial1 = &v2m_serial1; - serial2 = &v2m_serial2; - serial3 = &v2m_serial3; - i2c0 = &v2m_i2c_dvi; - i2c1 = &v2m_i2c_pcie; - }; - - cpus { - #address-cells = <1>; - #size-cells = <0>; - - cpu@0 { - device_type = "cpu"; - compatible = "arm,cortex-a9"; - reg = <0>; - next-level-cache = <&L2>; - }; - - cpu@1 { - device_type = "cpu"; - compatible = "arm,cortex-a9"; - reg = <1>; - next-level-cache = <&L2>; - }; - - cpu@2 { - device_type = "cpu"; - compatible = "arm,cortex-a9"; - reg = <2>; - next-level-cache = <&L2>; - }; - - cpu@3 { - device_type = "cpu"; - compatible = "arm,cortex-a9"; - reg = <3>; - next-level-cache = <&L2>; - }; - }; - - memory@60000000 { - device_type = "memory"; - reg = <0x60000000 0x40000000>; - }; - - clcd@10020000 { - compatible = "arm,pl111", "arm,primecell"; - reg = <0x10020000 0x1000>; - interrupts = <0 44 4>; - }; - - memory-controller@100e0000 { - compatible = "arm,pl341", "arm,primecell"; - reg = <0x100e0000 0x1000>; - }; - - memory-controller@100e1000 { - compatible = "arm,pl354", "arm,primecell"; - reg = <0x100e1000 0x1000>; - interrupts = <0 45 4>, - <0 46 4>; - }; - - timer@100e4000 { - compatible = "arm,sp804", "arm,primecell"; - reg = <0x100e4000 0x1000>; - interrupts = <0 48 4>, - <0 49 4>; - }; - - watchdog@100e5000 { - compatible = "arm,sp805", "arm,primecell"; - reg = <0x100e5000 0x1000>; - interrupts = <0 51 4>; - }; - - scu@1e000000 { - compatible = "arm,cortex-a9-scu"; - reg = <0x1e000000 0x58>; - }; - - timer@1e000600 { - compatible = "arm,cortex-a9-twd-timer"; - reg = <0x1e000600 0x20>; - interrupts = <1 2 0xf04>, - <1 3 0xf04>; - }; - - gic: interrupt-controller@1e001000 { - compatible = "arm,cortex-a9-gic"; - #interrupt-cells = <3>; - #address-cells = <0>; - interrupt-controller; - reg = <0x1e001000 0x1000>, - <0x1e000100 0x100>; - }; - - L2: cache-controller@1e00a000 { - compatible = "arm,pl310-cache"; - reg = <0x1e00a000 0x1000>; - interrupts = <0 43 4>; - cache-level = <2>; - arm,data-latency = <1 1 1>; - arm,tag-latency = <1 1 1>; - }; - - pmu { - compatible = "arm,cortex-a9-pmu"; - interrupts = <0 60 4>, - <0 61 4>, - <0 62 4>, - <0 63 4>; - }; - - motherboard { - ranges = <0 0 0x40000000 0x04000000>, - <1 0 0x44000000 0x04000000>, - <2 0 0x48000000 0x04000000>, - <3 0 0x4c000000 0x04000000>, - <7 0 0x10000000 0x00020000>; - - interrupt-map-mask = <0 0 63>; - interrupt-map = <0 0 0 &gic 0 0 4>, - <0 0 1 &gic 0 1 4>, - <0 0 2 &gic 0 2 4>, - <0 0 3 &gic 0 3 4>, - <0 0 4 &gic 0 4 4>, - <0 0 5 &gic 0 5 4>, - <0 0 6 &gic 0 6 4>, - <0 0 7 &gic 0 7 4>, - <0 0 8 &gic 0 8 4>, - <0 0 9 &gic 0 9 4>, - <0 0 10 &gic 0 10 4>, - <0 0 11 &gic 0 11 4>, - <0 0 12 &gic 0 12 4>, - <0 0 13 &gic 0 13 4>, - <0 0 14 &gic 0 14 4>, - <0 0 15 &gic 0 15 4>, - <0 0 16 &gic 0 16 4>, - <0 0 17 &gic 0 17 4>, - <0 0 18 &gic 0 18 4>, - <0 0 19 &gic 0 19 4>, - <0 0 20 &gic 0 20 4>, - <0 0 21 &gic 0 21 4>, - <0 0 22 &gic 0 22 4>, - <0 0 23 &gic 0 23 4>, - <0 0 24 &gic 0 24 4>, - <0 0 25 &gic 0 25 4>, - <0 0 26 &gic 0 26 4>, - <0 0 27 &gic 0 27 4>, - <0 0 28 &gic 0 28 4>, - <0 0 29 &gic 0 29 4>, - <0 0 30 &gic 0 30 4>, - <0 0 31 &gic 0 31 4>, - <0 0 32 &gic 0 32 4>, - <0 0 33 &gic 0 33 4>, - <0 0 34 &gic 0 34 4>, - <0 0 35 &gic 0 35 4>, - <0 0 36 &gic 0 36 4>, - <0 0 37 &gic 0 37 4>, - <0 0 38 &gic 0 38 4>, - <0 0 39 &gic 0 39 4>, - <0 0 40 &gic 0 40 4>, - <0 0 41 &gic 0 41 4>, - <0 0 42 &gic 0 42 4>; - }; -}; - -/include/ "vexpress-v2m.dtsi" diff --git a/trunk/arch/arm/common/Kconfig b/trunk/arch/arm/common/Kconfig index 3bb1d7589bd9..81a933eb0903 100644 --- a/trunk/arch/arm/common/Kconfig +++ b/trunk/arch/arm/common/Kconfig @@ -35,6 +35,9 @@ config DMABOUNCE bool select ZONE_DMA +config TIMER_ACORN + bool + config SHARP_LOCOMO bool diff --git a/trunk/arch/arm/common/Makefile b/trunk/arch/arm/common/Makefile index 69feafe7286c..6ea9b6f3607a 100644 --- a/trunk/arch/arm/common/Makefile +++ b/trunk/arch/arm/common/Makefile @@ -9,6 +9,7 @@ obj-$(CONFIG_PL330) += pl330.o obj-$(CONFIG_SA1111) += sa1111.o obj-$(CONFIG_PCI_HOST_VIA82C505) += via82c505.o obj-$(CONFIG_DMABOUNCE) += dmabounce.o +obj-$(CONFIG_TIMER_ACORN) += time-acorn.o obj-$(CONFIG_SHARP_LOCOMO) += locomo.o obj-$(CONFIG_SHARP_PARAM) += sharpsl_param.o obj-$(CONFIG_SHARP_SCOOP) += scoop.o diff --git a/trunk/arch/arm/common/sa1111.c b/trunk/arch/arm/common/sa1111.c index 9173d112ea01..61691cdbdcf2 100644 --- a/trunk/arch/arm/common/sa1111.c +++ b/trunk/arch/arm/common/sa1111.c @@ -16,7 +16,6 @@ */ #include #include -#include #include #include #include @@ -29,8 +28,9 @@ #include #include -#include #include +#include +#include #include #include @@ -86,10 +86,8 @@ #define IRQ_S1_CD_VALID (52) #define IRQ_S0_BVD1_STSCHG (53) #define IRQ_S1_BVD1_STSCHG (54) -#define SA1111_IRQ_NR (55) -extern void sa1110_mb_enable(void); -extern void sa1110_mb_disable(void); +extern void __init sa1110_mb_enable(void); /* * We keep the following data for the overall SA1111. Note that the @@ -106,7 +104,6 @@ struct sa1111 { int irq_base; /* base for cascaded on-chip IRQs */ spinlock_t lock; void __iomem *base; - struct sa1111_platform_data *pdata; #ifdef CONFIG_PM void *saved_state; #endif @@ -121,7 +118,6 @@ static struct sa1111 *g_sa1111; struct sa1111_dev_info { unsigned long offset; unsigned long skpcr_mask; - bool dma; unsigned int devid; unsigned int irq[6]; }; @@ -130,7 +126,6 @@ static struct sa1111_dev_info sa1111_devices[] = { { .offset = SA1111_USB, .skpcr_mask = SKPCR_UCLKEN, - .dma = true, .devid = SA1111_DEVID_USB, .irq = { IRQ_USBPWR, @@ -144,7 +139,6 @@ static struct sa1111_dev_info sa1111_devices[] = { { .offset = 0x0600, .skpcr_mask = SKPCR_I2SCLKEN | SKPCR_L3CLKEN, - .dma = true, .devid = SA1111_DEVID_SAC, .irq = { AUDXMTDMADONEA, @@ -161,7 +155,7 @@ static struct sa1111_dev_info sa1111_devices[] = { { .offset = SA1111_KBD, .skpcr_mask = SKPCR_PTCLKEN, - .devid = SA1111_DEVID_PS2_KBD, + .devid = SA1111_DEVID_PS2, .irq = { IRQ_TPRXINT, IRQ_TPTXINT @@ -170,7 +164,7 @@ static struct sa1111_dev_info sa1111_devices[] = { { .offset = SA1111_MSE, .skpcr_mask = SKPCR_PMCLKEN, - .devid = SA1111_DEVID_PS2_MSE, + .devid = SA1111_DEVID_PS2, .irq = { IRQ_MSRXINT, IRQ_MSTXINT @@ -440,28 +434,16 @@ static struct irq_chip sa1111_high_chip = { .irq_set_wake = sa1111_wake_highirq, }; -static int sa1111_setup_irq(struct sa1111 *sachip, unsigned irq_base) +static void sa1111_setup_irq(struct sa1111 *sachip) { void __iomem *irqbase = sachip->base + SA1111_INTC; - unsigned i, irq; - int ret; + unsigned int irq; /* * We're guaranteed that this region hasn't been taken. */ request_mem_region(sachip->phys + SA1111_INTC, 512, "irq"); - ret = irq_alloc_descs(-1, irq_base, SA1111_IRQ_NR, -1); - if (ret <= 0) { - dev_err(sachip->dev, "unable to allocate %u irqs: %d\n", - SA1111_IRQ_NR, ret); - if (ret == 0) - ret = -EINVAL; - return ret; - } - - sachip->irq_base = ret; - /* disable all IRQs */ sa1111_writel(0, irqbase + SA1111_INTEN0); sa1111_writel(0, irqbase + SA1111_INTEN1); @@ -481,16 +463,14 @@ static int sa1111_setup_irq(struct sa1111 *sachip, unsigned irq_base) sa1111_writel(~0, irqbase + SA1111_INTSTATCLR0); sa1111_writel(~0, irqbase + SA1111_INTSTATCLR1); - for (i = IRQ_GPAIN0; i <= SSPROR; i++) { - irq = sachip->irq_base + i; + for (irq = IRQ_GPAIN0; irq <= SSPROR; irq++) { irq_set_chip_and_handler(irq, &sa1111_low_chip, handle_edge_irq); irq_set_chip_data(irq, sachip); set_irq_flags(irq, IRQF_VALID | IRQF_PROBE); } - for (i = AUDXMTDMADONEA; i <= IRQ_S1_BVD1_STSCHG; i++) { - irq = sachip->irq_base + i; + for (irq = AUDXMTDMADONEA; irq <= IRQ_S1_BVD1_STSCHG; irq++) { irq_set_chip_and_handler(irq, &sa1111_high_chip, handle_edge_irq); irq_set_chip_data(irq, sachip); @@ -503,11 +483,6 @@ static int sa1111_setup_irq(struct sa1111 *sachip, unsigned irq_base) irq_set_irq_type(sachip->irq, IRQ_TYPE_EDGE_RISING); irq_set_handler_data(sachip->irq, sachip); irq_set_chained_handler(sachip->irq, sa1111_irq_handler); - - dev_info(sachip->dev, "Providing IRQ%u-%u\n", - sachip->irq_base, sachip->irq_base + SA1111_IRQ_NR - 1); - - return 0; } /* @@ -606,10 +581,41 @@ sa1111_configure_smc(struct sa1111 *sachip, int sdram, unsigned int drac, } #endif +#ifdef CONFIG_DMABOUNCE +/* + * According to the "Intel StrongARM SA-1111 Microprocessor Companion + * Chip Specification Update" (June 2000), erratum #7, there is a + * significant bug in the SA1111 SDRAM shared memory controller. If + * an access to a region of memory above 1MB relative to the bank base, + * it is important that address bit 10 _NOT_ be asserted. Depending + * on the configuration of the RAM, bit 10 may correspond to one + * of several different (processor-relative) address bits. + * + * This routine only identifies whether or not a given DMA address + * is susceptible to the bug. + * + * This should only get called for sa1111_device types due to the + * way we configure our device dma_masks. + */ +static int sa1111_needs_bounce(struct device *dev, dma_addr_t addr, size_t size) +{ + /* + * Section 4.6 of the "Intel StrongARM SA-1111 Development Module + * User's Guide" mentions that jumpers R51 and R52 control the + * target of SA-1111 DMA (either SDRAM bank 0 on Assabet, or + * SDRAM bank 1 on Neponset). The default configuration selects + * Assabet, so any address in bank 1 is necessarily invalid. + */ + return (machine_is_assabet() || machine_is_pfs168()) && + (addr >= 0xc8000000 || (addr + size) >= 0xc8000000); +} +#endif + static void sa1111_dev_release(struct device *_dev) { struct sa1111_dev *dev = SA1111_DEV(_dev); + release_resource(&dev->res); kfree(dev); } @@ -618,58 +624,67 @@ sa1111_init_one_child(struct sa1111 *sachip, struct resource *parent, struct sa1111_dev_info *info) { struct sa1111_dev *dev; - unsigned i; int ret; dev = kzalloc(sizeof(struct sa1111_dev), GFP_KERNEL); if (!dev) { ret = -ENOMEM; - goto err_alloc; + goto out; } - device_initialize(&dev->dev); dev_set_name(&dev->dev, "%4.4lx", info->offset); dev->devid = info->devid; dev->dev.parent = sachip->dev; dev->dev.bus = &sa1111_bus_type; dev->dev.release = sa1111_dev_release; + dev->dev.coherent_dma_mask = sachip->dev->coherent_dma_mask; dev->res.start = sachip->phys + info->offset; dev->res.end = dev->res.start + 511; dev->res.name = dev_name(&dev->dev); dev->res.flags = IORESOURCE_MEM; dev->mapbase = sachip->base + info->offset; dev->skpcr_mask = info->skpcr_mask; + memmove(dev->irq, info->irq, sizeof(dev->irq)); + + ret = request_resource(parent, &dev->res); + if (ret) { + printk("SA1111: failed to allocate resource for %s\n", + dev->res.name); + dev_set_name(&dev->dev, NULL); + kfree(dev); + goto out; + } + - for (i = 0; i < ARRAY_SIZE(info->irq); i++) - dev->irq[i] = sachip->irq_base + info->irq[i]; + ret = device_register(&dev->dev); + if (ret) { + release_resource(&dev->res); + kfree(dev); + goto out; + } +#ifdef CONFIG_DMABOUNCE /* - * If the parent device has a DMA mask associated with it, and - * this child supports DMA, propagate it down to the children. + * If the parent device has a DMA mask associated with it, + * propagate it down to the children. */ - if (info->dma && sachip->dev->dma_mask) { + if (sachip->dev->dma_mask) { dev->dma_mask = *sachip->dev->dma_mask; dev->dev.dma_mask = &dev->dma_mask; - dev->dev.coherent_dma_mask = sachip->dev->coherent_dma_mask; - } - ret = request_resource(parent, &dev->res); - if (ret) { - dev_err(sachip->dev, "failed to allocate resource for %s\n", - dev->res.name); - goto err_resource; + if (dev->dma_mask != 0xffffffffUL) { + ret = dmabounce_register_dev(&dev->dev, 1024, 4096, + sa1111_needs_bounce); + if (ret) { + dev_err(&dev->dev, "SA1111: Failed to register" + " with dmabounce\n"); + device_unregister(&dev->dev); + } + } } +#endif - ret = device_add(&dev->dev); - if (ret) - goto err_add; - return 0; - - err_add: - release_resource(&dev->res); - err_resource: - put_device(&dev->dev); - err_alloc: +out: return ret; } @@ -683,21 +698,16 @@ sa1111_init_one_child(struct sa1111 *sachip, struct resource *parent, * Returns: * %-ENODEV device not found. * %-EBUSY physical address already marked in-use. - * %-EINVAL no platform data passed * %0 successful. */ static int __devinit __sa1111_probe(struct device *me, struct resource *mem, int irq) { - struct sa1111_platform_data *pd = me->platform_data; struct sa1111 *sachip; unsigned long id; unsigned int has_devs; int i, ret = -ENODEV; - if (!pd) - return -EINVAL; - sachip = kzalloc(sizeof(struct sa1111), GFP_KERNEL); if (!sachip) return -ENOMEM; @@ -717,7 +727,6 @@ __sa1111_probe(struct device *me, struct resource *mem, int irq) sachip->dev = me; dev_set_drvdata(sachip->dev, sachip); - sachip->pdata = pd; sachip->phys = mem->start; sachip->irq = irq; @@ -750,16 +759,6 @@ __sa1111_probe(struct device *me, struct resource *mem, int irq) */ sa1111_wake(sachip); - /* - * The interrupt controller must be initialised before any - * other device to ensure that the interrupts are available. - */ - if (sachip->irq != NO_IRQ) { - ret = sa1111_setup_irq(sachip, pd->irq_base); - if (ret) - goto err_unmap; - } - #ifdef CONFIG_ARCH_SA1100 { unsigned int val; @@ -790,14 +789,24 @@ __sa1111_probe(struct device *me, struct resource *mem, int irq) } #endif + /* + * The interrupt controller must be initialised before any + * other device to ensure that the interrupts are available. + */ + if (sachip->irq != NO_IRQ) + sa1111_setup_irq(sachip); + g_sa1111 = sachip; has_devs = ~0; - if (pd) - has_devs &= ~pd->disable_devs; + if (machine_is_assabet() || machine_is_jornada720() || + machine_is_badge4()) + has_devs &= ~(1 << 4); + else + has_devs &= ~(1 << 1); for (i = 0; i < ARRAY_SIZE(sa1111_devices); i++) - if (sa1111_devices[i].devid & has_devs) + if (has_devs & (1 << i)) sa1111_init_one_child(sachip, mem, &sa1111_devices[i]); return 0; @@ -815,10 +824,7 @@ __sa1111_probe(struct device *me, struct resource *mem, int irq) static int sa1111_remove_one(struct device *dev, void *data) { - struct sa1111_dev *sadev = SA1111_DEV(dev); - device_del(&sadev->dev); - release_resource(&sadev->res); - put_device(&sadev->dev); + device_unregister(dev); return 0; } @@ -840,7 +846,6 @@ static void __sa1111_remove(struct sa1111 *sachip) if (sachip->irq != NO_IRQ) { irq_set_chained_handler(sachip->irq, NULL); irq_set_handler_data(sachip->irq, NULL); - irq_free_descs(sachip->irq_base, SA1111_IRQ_NR); release_mem_region(sachip->phys + SA1111_INTC, 512); } @@ -899,9 +904,6 @@ static int sa1111_suspend(struct platform_device *dev, pm_message_t state) save->skpwm0 = sa1111_readl(base + SA1111_SKPWM0); save->skpwm1 = sa1111_readl(base + SA1111_SKPWM1); - sa1111_writel(0, sachip->base + SA1111_SKPWM0); - sa1111_writel(0, sachip->base + SA1111_SKPWM1); - base = sachip->base + SA1111_INTC; save->intpol0 = sa1111_readl(base + SA1111_INTPOL0); save->intpol1 = sa1111_readl(base + SA1111_INTPOL1); @@ -917,15 +919,13 @@ static int sa1111_suspend(struct platform_device *dev, pm_message_t state) */ val = sa1111_readl(sachip->base + SA1111_SKCR); sa1111_writel(val | SKCR_SLEEP, sachip->base + SA1111_SKCR); + sa1111_writel(0, sachip->base + SA1111_SKPWM0); + sa1111_writel(0, sachip->base + SA1111_SKPWM1); clk_disable(sachip->clk); spin_unlock_irqrestore(&sachip->lock, flags); -#ifdef CONFIG_ARCH_SA1100 - sa1110_mb_disable(); -#endif - return 0; } @@ -966,11 +966,6 @@ static int sa1111_resume(struct platform_device *dev) */ sa1111_wake(sachip); -#ifdef CONFIG_ARCH_SA1100 - /* Enable the memory bus request/grant signals */ - sa1110_mb_enable(); -#endif - /* * Only lock for write ops. Also, sa1111_wake must be called with * released spinlock! @@ -1058,7 +1053,6 @@ static struct platform_driver sa1111_device_driver = { .resume = sa1111_resume, .driver = { .name = "sa1111", - .owner = THIS_MODULE, }, }; @@ -1244,23 +1238,16 @@ EXPORT_SYMBOL(sa1111_set_sleep_io); * sa1111_enable_device - enable an on-chip SA1111 function block * @sadev: SA1111 function block device to enable */ -int sa1111_enable_device(struct sa1111_dev *sadev) +void sa1111_enable_device(struct sa1111_dev *sadev) { struct sa1111 *sachip = sa1111_chip_driver(sadev); unsigned long flags; unsigned int val; - int ret = 0; - - if (sachip->pdata && sachip->pdata->enable) - ret = sachip->pdata->enable(sachip->pdata->data, sadev->devid); - if (ret == 0) { - spin_lock_irqsave(&sachip->lock, flags); - val = sa1111_readl(sachip->base + SA1111_SKPCR); - sa1111_writel(val | sadev->skpcr_mask, sachip->base + SA1111_SKPCR); - spin_unlock_irqrestore(&sachip->lock, flags); - } - return ret; + spin_lock_irqsave(&sachip->lock, flags); + val = sa1111_readl(sachip->base + SA1111_SKPCR); + sa1111_writel(val | sadev->skpcr_mask, sachip->base + SA1111_SKPCR); + spin_unlock_irqrestore(&sachip->lock, flags); } EXPORT_SYMBOL(sa1111_enable_device); @@ -1278,9 +1265,6 @@ void sa1111_disable_device(struct sa1111_dev *sadev) val = sa1111_readl(sachip->base + SA1111_SKPCR); sa1111_writel(val & ~sadev->skpcr_mask, sachip->base + SA1111_SKPCR); spin_unlock_irqrestore(&sachip->lock, flags); - - if (sachip->pdata && sachip->pdata->disable) - sachip->pdata->disable(sachip->pdata->data, sadev->devid); } EXPORT_SYMBOL(sa1111_disable_device); @@ -1295,7 +1279,7 @@ static int sa1111_match(struct device *_dev, struct device_driver *_drv) struct sa1111_dev *dev = SA1111_DEV(_dev); struct sa1111_driver *drv = SA1111_DRV(_drv); - return dev->devid & drv->devid; + return dev->devid == drv->devid; } static int sa1111_bus_suspend(struct device *dev, pm_message_t state) @@ -1320,14 +1304,6 @@ static int sa1111_bus_resume(struct device *dev) return ret; } -static void sa1111_bus_shutdown(struct device *dev) -{ - struct sa1111_driver *drv = SA1111_DRV(dev->driver); - - if (drv && drv->shutdown) - drv->shutdown(SA1111_DEV(dev)); -} - static int sa1111_bus_probe(struct device *dev) { struct sa1111_dev *sadev = SA1111_DEV(dev); @@ -1357,7 +1333,6 @@ struct bus_type sa1111_bus_type = { .remove = sa1111_bus_remove, .suspend = sa1111_bus_suspend, .resume = sa1111_bus_resume, - .shutdown = sa1111_bus_shutdown, }; EXPORT_SYMBOL(sa1111_bus_type); @@ -1374,70 +1349,9 @@ void sa1111_driver_unregister(struct sa1111_driver *driver) } EXPORT_SYMBOL(sa1111_driver_unregister); -#ifdef CONFIG_DMABOUNCE -/* - * According to the "Intel StrongARM SA-1111 Microprocessor Companion - * Chip Specification Update" (June 2000), erratum #7, there is a - * significant bug in the SA1111 SDRAM shared memory controller. If - * an access to a region of memory above 1MB relative to the bank base, - * it is important that address bit 10 _NOT_ be asserted. Depending - * on the configuration of the RAM, bit 10 may correspond to one - * of several different (processor-relative) address bits. - * - * This routine only identifies whether or not a given DMA address - * is susceptible to the bug. - * - * This should only get called for sa1111_device types due to the - * way we configure our device dma_masks. - */ -static int sa1111_needs_bounce(struct device *dev, dma_addr_t addr, size_t size) -{ - /* - * Section 4.6 of the "Intel StrongARM SA-1111 Development Module - * User's Guide" mentions that jumpers R51 and R52 control the - * target of SA-1111 DMA (either SDRAM bank 0 on Assabet, or - * SDRAM bank 1 on Neponset). The default configuration selects - * Assabet, so any address in bank 1 is necessarily invalid. - */ - return (machine_is_assabet() || machine_is_pfs168()) && - (addr >= 0xc8000000 || (addr + size) >= 0xc8000000); -} - -static int sa1111_notifier_call(struct notifier_block *n, unsigned long action, - void *data) -{ - struct sa1111_dev *dev = SA1111_DEV(data); - - switch (action) { - case BUS_NOTIFY_ADD_DEVICE: - if (dev->dev.dma_mask && dev->dma_mask < 0xffffffffUL) { - int ret = dmabounce_register_dev(&dev->dev, 1024, 4096, - sa1111_needs_bounce); - if (ret) - dev_err(&dev->dev, "failed to register with dmabounce: %d\n", ret); - } - break; - - case BUS_NOTIFY_DEL_DEVICE: - if (dev->dev.dma_mask && dev->dma_mask < 0xffffffffUL) - dmabounce_unregister_dev(&dev->dev); - break; - } - return NOTIFY_OK; -} - -static struct notifier_block sa1111_bus_notifier = { - .notifier_call = sa1111_notifier_call, -}; -#endif - static int __init sa1111_init(void) { int ret = bus_register(&sa1111_bus_type); -#ifdef CONFIG_DMABOUNCE - if (ret == 0) - bus_register_notifier(&sa1111_bus_type, &sa1111_bus_notifier); -#endif if (ret == 0) platform_driver_register(&sa1111_device_driver); return ret; @@ -1446,9 +1360,6 @@ static int __init sa1111_init(void) static void __exit sa1111_exit(void) { platform_driver_unregister(&sa1111_device_driver); -#ifdef CONFIG_DMABOUNCE - bus_unregister_notifier(&sa1111_bus_type, &sa1111_bus_notifier); -#endif bus_unregister(&sa1111_bus_type); } diff --git a/trunk/arch/arm/mach-rpc/time.c b/trunk/arch/arm/common/time-acorn.c similarity index 98% rename from trunk/arch/arm/mach-rpc/time.c rename to trunk/arch/arm/common/time-acorn.c index 581fca934bb3..deeed561b168 100644 --- a/trunk/arch/arm/mach-rpc/time.c +++ b/trunk/arch/arm/common/time-acorn.c @@ -85,7 +85,7 @@ static struct irqaction ioc_timer_irq = { static void __init ioc_timer_init(void) { ioctime_init(); - setup_irq(IRQ_TIMER0, &ioc_timer_irq); + setup_irq(IRQ_TIMER, &ioc_timer_irq); } struct sys_timer ioc_timer = { diff --git a/trunk/arch/arm/common/timer-sp.c b/trunk/arch/arm/common/timer-sp.c index df13a3ffff35..8794a34eae61 100644 --- a/trunk/arch/arm/common/timer-sp.c +++ b/trunk/arch/arm/common/timer-sp.c @@ -26,7 +26,6 @@ #include #include -#include #include static long __init sp804_get_clock_rate(const char *name) @@ -68,16 +67,7 @@ static long __init sp804_get_clock_rate(const char *name) return rate; } -static void __iomem *sched_clock_base; - -static u32 sp804_read(void) -{ - return ~readl_relaxed(sched_clock_base + TIMER_VALUE); -} - -void __init __sp804_clocksource_and_sched_clock_init(void __iomem *base, - const char *name, - int use_sched_clock) +void __init sp804_clocksource_init(void __iomem *base, const char *name) { long rate = sp804_get_clock_rate(name); @@ -93,11 +83,6 @@ void __init __sp804_clocksource_and_sched_clock_init(void __iomem *base, clocksource_mmio_init(base + TIMER_VALUE, name, rate, 200, 32, clocksource_mmio_readl_down); - - if (use_sched_clock) { - sched_clock_base = base; - setup_sched_clock(sp804_read, 32, rate); - } } diff --git a/trunk/arch/arm/configs/at91cap9_defconfig b/trunk/arch/arm/configs/at91cap9_defconfig new file mode 100644 index 000000000000..8826eb218e73 --- /dev/null +++ b/trunk/arch/arm/configs/at91cap9_defconfig @@ -0,0 +1,108 @@ +CONFIG_EXPERIMENTAL=y +# CONFIG_LOCALVERSION_AUTO is not set +# CONFIG_SWAP is not set +CONFIG_SYSVIPC=y +CONFIG_LOG_BUF_SHIFT=14 +CONFIG_BLK_DEV_INITRD=y +CONFIG_SLAB=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +# CONFIG_BLK_DEV_BSG is not set +# CONFIG_IOSCHED_DEADLINE is not set +# CONFIG_IOSCHED_CFQ is not set +CONFIG_ARCH_AT91=y +CONFIG_ARCH_AT91CAP9=y +CONFIG_MACH_AT91CAP9ADK=y +CONFIG_MTD_AT91_DATAFLASH_CARD=y +CONFIG_AT91_PROGRAMMABLE_CLOCKS=y +# CONFIG_ARM_THUMB is not set +CONFIG_AEABI=y +CONFIG_LEDS=y +CONFIG_LEDS_CPU=y +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CMDLINE="console=ttyS0,115200 root=/dev/ram0 rw" +CONFIG_FPE_NWFPE=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_BOOTP=y +CONFIG_IP_PNP_RARP=y +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_LRO is not set +# CONFIG_INET_DIAG is not set +# CONFIG_IPV6 is not set +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +CONFIG_MTD=y +CONFIG_MTD_CMDLINE_PARTS=y +CONFIG_MTD_CHAR=y +CONFIG_MTD_BLOCK=y +CONFIG_MTD_CFI=y +CONFIG_MTD_JEDECPROBE=y +CONFIG_MTD_CFI_AMDSTD=y +CONFIG_MTD_PHYSMAP=y +CONFIG_MTD_DATAFLASH=y +CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_ATMEL=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_SIZE=8192 +CONFIG_SCSI=y +CONFIG_BLK_DEV_SD=y +CONFIG_SCSI_MULTI_LUN=y +CONFIG_NETDEVICES=y +CONFIG_MII=y +CONFIG_MACB=y +# CONFIG_INPUT_MOUSEDEV_PSAUX is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_ADS7846=y +# CONFIG_SERIO is not set +CONFIG_SERIAL_ATMEL=y +CONFIG_SERIAL_ATMEL_CONSOLE=y +CONFIG_HW_RANDOM=y +CONFIG_I2C=y +CONFIG_I2C_CHARDEV=y +CONFIG_SPI=y +CONFIG_SPI_ATMEL=y +# CONFIG_HWMON is not set +CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_NOWAYOUT=y +CONFIG_FB=y +CONFIG_FB_ATMEL=y +CONFIG_LOGO=y +# CONFIG_LOGO_LINUX_MONO is not set +# CONFIG_LOGO_LINUX_CLUT224 is not set +# CONFIG_USB_HID is not set +CONFIG_USB=y +CONFIG_USB_DEVICEFS=y +CONFIG_USB_MON=y +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_STORAGE=y +CONFIG_USB_GADGET=y +CONFIG_USB_ETH=m +CONFIG_USB_FILE_STORAGE=m +CONFIG_MMC=y +CONFIG_MMC_AT91=m +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_AT91SAM9=y +CONFIG_EXT2_FS=y +CONFIG_VFAT_FS=y +CONFIG_TMPFS=y +CONFIG_JFFS2_FS=y +CONFIG_CRAMFS=y +CONFIG_NFS_FS=y +CONFIG_ROOT_NFS=y +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_CODEPAGE_850=y +CONFIG_NLS_ISO8859_1=y +CONFIG_DEBUG_FS=y +CONFIG_DEBUG_KERNEL=y +CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_USER=y diff --git a/trunk/arch/arm/configs/at91sam9g20_defconfig b/trunk/arch/arm/configs/at91sam9g20_defconfig index 994d331b2319..9123568d9a8d 100644 --- a/trunk/arch/arm/configs/at91sam9g20_defconfig +++ b/trunk/arch/arm/configs/at91sam9g20_defconfig @@ -74,8 +74,6 @@ CONFIG_LEGACY_PTY_COUNT=16 CONFIG_SERIAL_ATMEL=y CONFIG_SERIAL_ATMEL_CONSOLE=y CONFIG_HW_RANDOM=y -CONFIG_I2C=y -CONFIG_I2C_GPIO=y CONFIG_SPI=y CONFIG_SPI_ATMEL=y CONFIG_SPI_SPIDEV=y @@ -107,7 +105,6 @@ CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_TRIGGER_TIMER=y CONFIG_LEDS_TRIGGER_HEARTBEAT=y CONFIG_RTC_CLASS=y -CONFIG_RTC_DRV_RV3029C2=y CONFIG_RTC_DRV_AT91SAM9=y CONFIG_EXT2_FS=y CONFIG_MSDOS_FS=y diff --git a/trunk/arch/arm/configs/imx_v4_v5_defconfig b/trunk/arch/arm/configs/imx_v4_v5_defconfig index b5ac644e12af..a22e93079063 100644 --- a/trunk/arch/arm/configs/imx_v4_v5_defconfig +++ b/trunk/arch/arm/configs/imx_v4_v5_defconfig @@ -45,7 +45,6 @@ CONFIG_FPE_NWFPE=y CONFIG_FPE_NWFPE_XP=y CONFIG_PM_DEBUG=y CONFIG_NET=y -CONFIG_SMSC911X=y CONFIG_PACKET=y CONFIG_UNIX=y CONFIG_INET=y @@ -69,7 +68,6 @@ CONFIG_MTD_CFI=y CONFIG_MTD_CFI_ADV_OPTIONS=y CONFIG_MTD_CFI_GEOMETRY=y # CONFIG_MTD_MAP_BANK_WIDTH_1 is not set -CONFIG_MTD_MAP_BANK_WIDTH_4=y # CONFIG_MTD_CFI_I2 is not set CONFIG_MTD_CFI_INTELEXT=y CONFIG_MTD_PHYSMAP=y @@ -80,8 +78,6 @@ CONFIG_MISC_DEVICES=y CONFIG_EEPROM_AT24=y CONFIG_EEPROM_AT25=y CONFIG_NETDEVICES=y -CONFIG_CS89x0=y -CONFIG_CS89x0_PLATFORM=y CONFIG_DM9000=y CONFIG_SMC91X=y CONFIG_SMC911X=y @@ -119,21 +115,6 @@ CONFIG_FB_IMX=y CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_LCD_CLASS_DEVICE=y CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_LCD_L4F00242T03=y -CONFIG_MEDIA_SUPPORT=y -CONFIG_VIDEO_DEV=y -CONFIG_VIDEO_V4L2_COMMON=y -CONFIG_VIDEO_MEDIA=y -CONFIG_VIDEO_V4L2=y -CONFIG_VIDEOBUF_GEN=y -CONFIG_VIDEOBUF_DMA_CONTIG=y -CONFIG_VIDEOBUF2_CORE=y -CONFIG_VIDEO_CAPTURE_DRIVERS=y -CONFIG_V4L_PLATFORM_DRIVERS=y -CONFIG_SOC_CAMERA=y -CONFIG_SOC_CAMERA_OV2640=y -CONFIG_VIDEO_MX2_HOSTSUPPORT=y -CONFIG_VIDEO_MX2=y CONFIG_BACKLIGHT_PWM=y CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FONTS=y diff --git a/trunk/arch/arm/configs/imx_v6_v7_defconfig b/trunk/arch/arm/configs/imx_v6_v7_defconfig index dc6f6411bbf5..3a4fb2e5fc68 100644 --- a/trunk/arch/arm/configs/imx_v6_v7_defconfig +++ b/trunk/arch/arm/configs/imx_v6_v7_defconfig @@ -5,7 +5,6 @@ CONFIG_SYSVIPC=y CONFIG_LOG_BUF_SHIFT=18 CONFIG_CGROUPS=y CONFIG_RELAY=y -CONFIG_BLK_DEV_INITRD=y CONFIG_EXPERT=y # CONFIG_SLUB_DEBUG is not set # CONFIG_COMPAT_BRK is not set @@ -13,6 +12,7 @@ CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y CONFIG_MODVERSIONS=y CONFIG_MODULE_SRCVERSION_ALL=y +# CONFIG_LBDAF is not set # CONFIG_BLK_DEV_BSG is not set CONFIG_ARCH_MXC=y CONFIG_MACH_MX31LILLY=y @@ -26,6 +26,7 @@ CONFIG_MACH_ARMADILLO5X0=y CONFIG_MACH_KZM_ARM11_01=y CONFIG_MACH_PCM043=y CONFIG_MACH_MX35_3DS=y +CONFIG_MACH_EUKREA_CPUIMX35=y CONFIG_MACH_VPR200=y CONFIG_MACH_IMX51_DT=y CONFIG_MACH_MX51_3DS=y @@ -81,9 +82,8 @@ CONFIG_PATA_IMX=y CONFIG_NETDEVICES=y # CONFIG_NET_VENDOR_BROADCOM is not set # CONFIG_NET_VENDOR_CHELSIO is not set -CONFIG_CS89x0=y -CONFIG_CS89x0_PLATFORM=y # CONFIG_NET_VENDOR_FARADAY is not set +CONFIG_FEC=y # CONFIG_NET_VENDOR_INTEL is not set # CONFIG_NET_VENDOR_MARVELL is not set # CONFIG_NET_VENDOR_MICREL is not set @@ -126,40 +126,7 @@ CONFIG_WATCHDOG=y CONFIG_IMX2_WDT=y CONFIG_MFD_MC13XXX=y CONFIG_REGULATOR=y -CONFIG_REGULATOR_FIXED_VOLTAGE=y -CONFIG_REGULATOR_MC13783=y CONFIG_REGULATOR_MC13892=y -CONFIG_MEDIA_SUPPORT=y -CONFIG_VIDEO_V4L2=y -CONFIG_VIDEO_DEV=y -CONFIG_VIDEO_V4L2_COMMON=y -CONFIG_VIDEOBUF_GEN=y -CONFIG_VIDEOBUF2_CORE=y -CONFIG_VIDEOBUF2_MEMOPS=y -CONFIG_VIDEOBUF2_DMA_CONTIG=y -CONFIG_VIDEO_CAPTURE_DRIVERS=y -CONFIG_V4L_PLATFORM_DRIVERS=y -CONFIG_SOC_CAMERA=y -CONFIG_SOC_CAMERA_OV2640=y -CONFIG_MX3_VIDEO=y -CONFIG_VIDEO_MX3=y -CONFIG_FB=y -CONFIG_FB_MX3=y -CONFIG_BACKLIGHT_LCD_SUPPORT=y -CONFIG_LCD_CLASS_DEVICE=y -CONFIG_LCD_L4F00242T03=y -CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_BACKLIGHT_GENERIC=y -CONFIG_DUMMY_CONSOLE=y -CONFIG_FRAMEBUFFER_CONSOLE=y -CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y -CONFIG_FONTS=y -CONFIG_FONT_8x8=y -CONFIG_FONT_8x16=y -CONFIG_LOGO=y -CONFIG_LOGO_LINUX_MONO=y -CONFIG_LOGO_LINUX_VGA16=y -CONFIG_LOGO_LINUX_CLUT224=y CONFIG_USB=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_MXC=y diff --git a/trunk/arch/arm/configs/lpc32xx_defconfig b/trunk/arch/arm/configs/lpc32xx_defconfig deleted file mode 100644 index fb2088171ca9..000000000000 --- a/trunk/arch/arm/configs/lpc32xx_defconfig +++ /dev/null @@ -1,145 +0,0 @@ -CONFIG_EXPERIMENTAL=y -CONFIG_SYSVIPC=y -CONFIG_IKCONFIG=y -CONFIG_IKCONFIG_PROC=y -CONFIG_LOG_BUF_SHIFT=14 -CONFIG_SYSFS_DEPRECATED=y -CONFIG_SYSFS_DEPRECATED_V2=y -CONFIG_BLK_DEV_INITRD=y -CONFIG_CC_OPTIMIZE_FOR_SIZE=y -CONFIG_SYSCTL_SYSCALL=y -CONFIG_EMBEDDED=y -CONFIG_SLAB=y -CONFIG_MODULES=y -CONFIG_MODULE_UNLOAD=y -# CONFIG_BLK_DEV_BSG is not set -CONFIG_PARTITION_ADVANCED=y -CONFIG_ARCH_LPC32XX=y -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y -CONFIG_PREEMPT=y -CONFIG_AEABI=y -CONFIG_ZBOOT_ROM_TEXT=0x0 -CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE="console=ttyS0,115200n81 root=/dev/ram0" -CONFIG_CPU_IDLE=y -CONFIG_FPE_NWFPE=y -CONFIG_VFP=y -# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set -CONFIG_BINFMT_AOUT=y -CONFIG_NET=y -CONFIG_PACKET=y -CONFIG_UNIX=y -CONFIG_INET=y -CONFIG_IP_MULTICAST=y -CONFIG_IP_PNP=y -CONFIG_IP_PNP_DHCP=y -CONFIG_IP_PNP_BOOTP=y -# CONFIG_INET_XFRM_MODE_TRANSPORT is not set -# CONFIG_INET_XFRM_MODE_TUNNEL is not set -# CONFIG_INET_XFRM_MODE_BEET is not set -# CONFIG_INET_LRO is not set -# CONFIG_INET_DIAG is not set -# CONFIG_IPV6 is not set -# CONFIG_WIRELESS is not set -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -# CONFIG_FW_LOADER is not set -CONFIG_MTD=y -CONFIG_MTD_CMDLINE_PARTS=y -CONFIG_MTD_CHAR=y -CONFIG_MTD_BLOCK=y -CONFIG_MTD_NAND=y -CONFIG_MTD_NAND_MUSEUM_IDS=y -CONFIG_BLK_DEV_LOOP=y -CONFIG_BLK_DEV_CRYPTOLOOP=y -CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_COUNT=1 -CONFIG_BLK_DEV_RAM_SIZE=16384 -CONFIG_MISC_DEVICES=y -CONFIG_EEPROM_AT25=y -CONFIG_SCSI=y -CONFIG_BLK_DEV_SD=y -CONFIG_NETDEVICES=y -CONFIG_MII=y -CONFIG_PHYLIB=y -CONFIG_SMSC_PHY=y -# CONFIG_WLAN is not set -# CONFIG_INPUT_MOUSEDEV_PSAUX is not set -CONFIG_INPUT_MOUSEDEV_SCREEN_X=240 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=320 -CONFIG_INPUT_EVDEV=y -# CONFIG_INPUT_MOUSE is not set -CONFIG_INPUT_TOUCHSCREEN=y -CONFIG_TOUCHSCREEN_LPC32XX=y -# CONFIG_LEGACY_PTYS is not set -CONFIG_SERIAL_8250=y -CONFIG_SERIAL_8250_CONSOLE=y -# CONFIG_HW_RANDOM is not set -CONFIG_I2C=y -CONFIG_I2C_CHARDEV=y -CONFIG_I2C_PNX=y -CONFIG_SPI=y -CONFIG_SPI_PL022=y -CONFIG_GPIO_SYSFS=y -# CONFIG_HWMON is not set -CONFIG_WATCHDOG=y -CONFIG_PNX4008_WATCHDOG=y -CONFIG_FB=y -CONFIG_FB_ARMCLCD=y -CONFIG_FRAMEBUFFER_CONSOLE=y -CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y -CONFIG_LOGO=y -# CONFIG_LOGO_LINUX_MONO is not set -# CONFIG_LOGO_LINUX_VGA16 is not set -CONFIG_SOUND=y -CONFIG_SND=y -CONFIG_SND_SEQUENCER=y -CONFIG_SND_MIXER_OSS=y -CONFIG_SND_PCM_OSS=y -CONFIG_SND_SEQUENCER_OSS=y -CONFIG_SND_DYNAMIC_MINORS=y -# CONFIG_SND_VERBOSE_PROCFS is not set -# CONFIG_SND_DRIVERS is not set -# CONFIG_SND_ARM is not set -# CONFIG_SND_SPI is not set -CONFIG_SND_SOC=y -# CONFIG_HID_SUPPORT is not set -CONFIG_USB=y -CONFIG_USB_STORAGE=y -CONFIG_USB_LIBUSUAL=y -CONFIG_MMC=y -# CONFIG_MMC_BLOCK_BOUNCE is not set -CONFIG_MMC_ARMMMCI=y -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=y -CONFIG_LEDS_GPIO=y -CONFIG_LEDS_TRIGGERS=y -CONFIG_LEDS_TRIGGER_HEARTBEAT=y -CONFIG_RTC_CLASS=y -CONFIG_RTC_INTF_DEV_UIE_EMUL=y -CONFIG_RTC_DRV_LPC32XX=y -CONFIG_EXT2_FS=y -CONFIG_AUTOFS4_FS=y -CONFIG_MSDOS_FS=y -CONFIG_VFAT_FS=y -CONFIG_TMPFS=y -CONFIG_JFFS2_FS=y -CONFIG_JFFS2_FS_WBUF_VERIFY=y -CONFIG_CRAMFS=y -CONFIG_NFS_FS=y -CONFIG_NFS_V3=y -CONFIG_ROOT_NFS=y -CONFIG_NLS_CODEPAGE_437=y -CONFIG_NLS_ASCII=y -CONFIG_NLS_ISO8859_1=y -CONFIG_NLS_UTF8=y -# CONFIG_SCHED_DEBUG is not set -# CONFIG_DEBUG_PREEMPT is not set -CONFIG_DEBUG_INFO=y -# CONFIG_FTRACE is not set -# CONFIG_ARM_UNWIND is not set -CONFIG_DEBUG_LL=y -CONFIG_EARLY_PRINTK=y -CONFIG_CRYPTO_ANSI_CPRNG=y -# CONFIG_CRYPTO_HW is not set -CONFIG_CRC_CCITT=y diff --git a/trunk/arch/arm/configs/magician_defconfig b/trunk/arch/arm/configs/magician_defconfig index a691ef4c6008..443675d317e6 100644 --- a/trunk/arch/arm/configs/magician_defconfig +++ b/trunk/arch/arm/configs/magician_defconfig @@ -101,7 +101,7 @@ CONFIG_MFD_ASIC3=y CONFIG_HTC_EGPIO=y CONFIG_HTC_PASIC3=y CONFIG_REGULATOR=y -CONFIG_REGULATOR_GPIO=y +CONFIG_REGULATOR_BQ24022=y CONFIG_FB=y CONFIG_FB_PXA=y CONFIG_FB_PXA_OVERLAY=y diff --git a/trunk/arch/arm/configs/mini2440_defconfig b/trunk/arch/arm/configs/mini2440_defconfig index 42da9183acc8..2472a9585834 100644 --- a/trunk/arch/arm/configs/mini2440_defconfig +++ b/trunk/arch/arm/configs/mini2440_defconfig @@ -13,7 +13,7 @@ CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y # CONFIG_BLK_DEV_BSG is not set CONFIG_BLK_DEV_INTEGRITY=y -CONFIG_ARCH_S3C24XX=y +CONFIG_ARCH_S3C2410=y CONFIG_S3C_ADC=y CONFIG_S3C24XX_PWM=y CONFIG_MACH_MINI2440=y diff --git a/trunk/arch/arm/configs/mxs_defconfig b/trunk/arch/arm/configs/mxs_defconfig index 1ebbf451c48d..6ee781bf6bf1 100644 --- a/trunk/arch/arm/configs/mxs_defconfig +++ b/trunk/arch/arm/configs/mxs_defconfig @@ -77,10 +77,10 @@ CONFIG_DEVPTS_MULTIPLE_INSTANCES=y CONFIG_SERIAL_AMBA_PL011=y CONFIG_SERIAL_AMBA_PL011_CONSOLE=y # CONFIG_HW_RANDOM is not set -CONFIG_I2C=y +CONFIG_I2C=m # CONFIG_I2C_COMPAT is not set -CONFIG_I2C_CHARDEV=y -CONFIG_I2C_MXS=y +CONFIG_I2C_CHARDEV=m +CONFIG_I2C_MXS=m CONFIG_SPI=y CONFIG_SPI_GPIO=m CONFIG_DEBUG_GPIO=y @@ -90,20 +90,6 @@ CONFIG_GPIO_SYSFS=y CONFIG_DISPLAY_SUPPORT=m # CONFIG_HID_SUPPORT is not set # CONFIG_USB_SUPPORT is not set -CONFIG_SOUND=y -CONFIG_SND=y -CONFIG_SND_TIMER=y -CONFIG_SND_PCM=y -CONFIG_SND_JACK=y -CONFIG_SND_DRIVERS=y -CONFIG_SND_ARM=y -CONFIG_SND_SOC=y -CONFIG_SND_MXS_SOC=y -CONFIG_SND_SOC_MXS_SGTL5000=y -CONFIG_SND_SOC_I2C_AND_SPI=y -CONFIG_SND_SOC_SGTL5000=y -CONFIG_REGULATOR=y -CONFIG_REGULATOR_FIXED_VOLTAGE=y CONFIG_MMC=y CONFIG_MMC_MXS=y CONFIG_RTC_CLASS=y diff --git a/trunk/arch/arm/configs/s3c2410_defconfig b/trunk/arch/arm/configs/s3c2410_defconfig index 193448f31284..f9096c1b0a65 100644 --- a/trunk/arch/arm/configs/s3c2410_defconfig +++ b/trunk/arch/arm/configs/s3c2410_defconfig @@ -3,47 +3,40 @@ CONFIG_SYSVIPC=y CONFIG_IKCONFIG=m CONFIG_IKCONFIG_PROC=y CONFIG_LOG_BUF_SHIFT=16 +CONFIG_SYSFS_DEPRECATED_V2=y CONFIG_BLK_DEV_INITRD=y CONFIG_SLAB=y CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y # CONFIG_BLK_DEV_BSG is not set -CONFIG_PARTITION_ADVANCED=y -CONFIG_BSD_DISKLABEL=y -CONFIG_SOLARIS_X86_PARTITION=y -CONFIG_ARCH_S3C24XX=y +CONFIG_ARCH_S3C2410=y CONFIG_S3C_BOOT_ERROR_RESET=y CONFIG_S3C_ADC=y CONFIG_S3C24XX_PWM=y -CONFIG_CPU_S3C2412=y -CONFIG_CPU_S3C2416=y -CONFIG_CPU_S3C2440=y -CONFIG_CPU_S3C2442=y -CONFIG_CPU_S3C2443=y -CONFIG_MACH_AML_M5900=y -CONFIG_ARCH_BAST=y +CONFIG_ARCH_SMDK2410=y CONFIG_ARCH_H1940=y CONFIG_MACH_N30=y +CONFIG_ARCH_BAST=y CONFIG_MACH_OTOM=y -CONFIG_MACH_QT2410=y -CONFIG_ARCH_SMDK2410=y +CONFIG_MACH_AML_M5900=y CONFIG_MACH_TCT_HAMMER=y CONFIG_MACH_VR1000=y +CONFIG_MACH_QT2410=y CONFIG_MACH_JIVE=y CONFIG_MACH_SMDK2412=y CONFIG_MACH_VSTMS=y CONFIG_MACH_SMDK2416=y CONFIG_MACH_ANUBIS=y -CONFIG_MACH_AT2440EVB=y -CONFIG_MACH_MINI2440=y -CONFIG_MACH_NEXCODER_2440=y +CONFIG_MACH_NEO1973_GTA02=y CONFIG_MACH_OSIRIS=y CONFIG_MACH_OSIRIS_DVS=m CONFIG_MACH_RX3715=y CONFIG_ARCH_S3C2440=y -CONFIG_MACH_NEO1973_GTA02=y -CONFIG_MACH_RX1950=y +CONFIG_MACH_NEXCODER_2440=y CONFIG_SMDK2440_CPU2442=y +CONFIG_MACH_AT2440EVB=y +CONFIG_MACH_MINI2440=y +CONFIG_MACH_RX1950=y CONFIG_MACH_SMDK2443=y # CONFIG_ARM_THUMB is not set CONFIG_ZBOOT_ROM_TEXT=0x0 @@ -52,6 +45,7 @@ CONFIG_CMDLINE="root=/dev/hda1 ro init=/bin/bash console=ttySAC0" CONFIG_FPE_NWFPE=y CONFIG_FPE_NWFPE_XP=y CONFIG_BINFMT_AOUT=y +CONFIG_PM=y CONFIG_APM_EMULATION=m CONFIG_NET=y CONFIG_PACKET=y @@ -64,6 +58,7 @@ CONFIG_IP_PNP=y CONFIG_IP_PNP_DHCP=y CONFIG_IP_PNP_BOOTP=y CONFIG_NET_IPIP=m +CONFIG_NET_IPGRE=m CONFIG_INET_AH=m CONFIG_INET_ESP=m CONFIG_INET_IPCOMP=m @@ -85,6 +80,7 @@ CONFIG_IPV6_MIP6=m CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m CONFIG_IPV6_TUNNEL=m CONFIG_NETFILTER=y +CONFIG_NETFILTER_NETLINK_QUEUE=m CONFIG_NF_CONNTRACK=m CONFIG_NF_CONNTRACK_EVENTS=y CONFIG_NF_CT_PROTO_DCCP=m @@ -142,6 +138,7 @@ CONFIG_IP_VS=m CONFIG_NF_CONNTRACK_IPV4=m CONFIG_IP_NF_QUEUE=m CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_MATCH_ADDRTYPE=m CONFIG_IP_NF_MATCH_AH=m CONFIG_IP_NF_MATCH_ECN=m CONFIG_IP_NF_MATCH_TTL=m @@ -153,6 +150,7 @@ CONFIG_NF_NAT=m CONFIG_IP_NF_TARGET_MASQUERADE=m CONFIG_IP_NF_TARGET_NETMAP=m CONFIG_IP_NF_TARGET_REDIRECT=m +CONFIG_NF_NAT_SNMP_BASIC=m CONFIG_IP_NF_MANGLE=m CONFIG_IP_NF_TARGET_CLUSTERIP=m CONFIG_IP_NF_TARGET_ECN=m @@ -179,6 +177,8 @@ CONFIG_IP6_NF_TARGET_REJECT=m CONFIG_IP6_NF_MANGLE=m CONFIG_IP6_NF_RAW=m CONFIG_BT=m +CONFIG_BT_L2CAP=m +CONFIG_BT_SCO=m CONFIG_BT_RFCOMM=m CONFIG_BT_RFCOMM_TTY=y CONFIG_BT_BNEP=m @@ -199,6 +199,7 @@ CONFIG_MAC80211_MESH=y CONFIG_MAC80211_LEDS=y CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" CONFIG_MTD=y +CONFIG_MTD_PARTITIONS=y CONFIG_MTD_REDBOOT_PARTS=y CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y CONFIG_MTD_CMDLINE_PARTS=y @@ -220,6 +221,9 @@ CONFIG_BLK_DEV_NBD=m CONFIG_BLK_DEV_UB=m CONFIG_BLK_DEV_RAM=y CONFIG_ATA_OVER_ETH=m +CONFIG_EEPROM_AT25=m +CONFIG_EEPROM_LEGACY=m +CONFIG_EEPROM_93CX6=m CONFIG_IDE=y CONFIG_BLK_DEV_IDECD=y CONFIG_BLK_DEV_IDETAPE=m @@ -236,6 +240,7 @@ CONFIG_SCSI_MULTI_LUN=y CONFIG_SCSI_CONSTANTS=y CONFIG_SCSI_SCAN_ASYNC=y CONFIG_NETDEVICES=y +CONFIG_NET_ETHERNET=y CONFIG_DM9000=y CONFIG_INPUT_EVDEV=y CONFIG_MOUSE_APPLETOUCH=m @@ -269,6 +274,7 @@ CONFIG_JOYSTICK_XPAD_LEDS=y CONFIG_INPUT_TOUCHSCREEN=y CONFIG_TOUCHSCREEN_USB_COMPOSITE=m CONFIG_INPUT_MISC=y +CONFIG_INPUT_ATI_REMOTE=m CONFIG_INPUT_ATI_REMOTE2=m CONFIG_INPUT_KEYSPAN_REMOTE=m CONFIG_INPUT_POWERMATE=m @@ -294,6 +300,7 @@ CONFIG_I2C_SIMTEC=y CONFIG_SPI=y CONFIG_SPI_GPIO=m CONFIG_SPI_S3C24XX=m +CONFIG_SPI_S3C24XX_GPIO=m CONFIG_SPI_SPIDEV=m CONFIG_SPI_TLE62X0=m CONFIG_SENSORS_LM75=m @@ -308,6 +315,7 @@ CONFIG_FB_MODE_HELPERS=y CONFIG_FB_S3C2410=y CONFIG_FB_SM501=y CONFIG_BACKLIGHT_PWM=m +# CONFIG_VGA_CONSOLE is not set CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_SOUND=y CONFIG_SND=y @@ -322,6 +330,10 @@ CONFIG_SND_VERBOSE_PRINTK=y CONFIG_SND_USB_AUDIO=m CONFIG_SND_USB_CAIAQ=m CONFIG_SND_SOC=y +CONFIG_SND_S3C24XX_SOC=y +CONFIG_SND_S3C24XX_SOC_JIVE_WM8750=m +CONFIG_SND_S3C24XX_SOC_SMDK2443_WM9710=m +CONFIG_SND_S3C24XX_SOC_LN2440SBC_ALC650=m # CONFIG_USB_HID is not set CONFIG_USB=y CONFIG_USB_DEVICEFS=y @@ -375,7 +387,9 @@ CONFIG_MMC_TEST=m CONFIG_MMC_SDHCI=m CONFIG_MMC_SPI=m CONFIG_MMC_S3C=y +CONFIG_LEDS_CLASS=m CONFIG_LEDS_S3C24XX=m +CONFIG_LEDS_H1940=m CONFIG_LEDS_PCA9532=m CONFIG_LEDS_GPIO=m CONFIG_LEDS_PCA955X=m @@ -396,6 +410,8 @@ CONFIG_EXT3_FS=y CONFIG_EXT3_FS_POSIX_ACL=y CONFIG_EXT4_FS=m CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_INOTIFY=y +CONFIG_AUTOFS_FS=m CONFIG_AUTOFS4_FS=m CONFIG_FUSE_FS=m CONFIG_ISO9660_FS=y @@ -420,6 +436,9 @@ CONFIG_NFSD=m CONFIG_NFSD_V3_ACL=y CONFIG_NFSD_V4=y CONFIG_CIFS=m +CONFIG_PARTITION_ADVANCED=y +CONFIG_BSD_DISKLABEL=y +CONFIG_SOLARIS_X86_PARTITION=y CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_CODEPAGE_737=m CONFIG_NLS_CODEPAGE_775=m @@ -462,7 +481,9 @@ CONFIG_MAGIC_SYSRQ=y CONFIG_DEBUG_KERNEL=y CONFIG_DEBUG_MUTEXES=y CONFIG_DEBUG_INFO=y +# CONFIG_RCU_CPU_STALL_DETECTOR is not set CONFIG_SYSCTL_SYSCALL_CHECK=y CONFIG_DEBUG_USER=y +CONFIG_DEBUG_ERRORS=y CONFIG_DEBUG_LL=y # CONFIG_CRYPTO_ANSI_CPRNG is not set diff --git a/trunk/arch/arm/configs/tct_hammer_defconfig b/trunk/arch/arm/configs/tct_hammer_defconfig index 1d24f8458bef..95c0f0d63db6 100644 --- a/trunk/arch/arm/configs/tct_hammer_defconfig +++ b/trunk/arch/arm/configs/tct_hammer_defconfig @@ -14,7 +14,7 @@ CONFIG_SLOB=y CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y # CONFIG_BLK_DEV_BSG is not set -CONFIG_ARCH_S3C24XX=y +CONFIG_ARCH_S3C2410=y CONFIG_MACH_TCT_HAMMER=y CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 diff --git a/trunk/arch/arm/configs/tegra_defconfig b/trunk/arch/arm/configs/tegra_defconfig index 351d6708c3ae..fd5d3041d717 100644 --- a/trunk/arch/arm/configs/tegra_defconfig +++ b/trunk/arch/arm/configs/tegra_defconfig @@ -11,14 +11,11 @@ CONFIG_RT_GROUP_SCHED=y CONFIG_BLK_DEV_INITRD=y # CONFIG_ELF_CORE is not set CONFIG_EMBEDDED=y -CONFIG_PERF_EVENTS=y CONFIG_SLAB=y CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y # CONFIG_BLK_DEV_BSG is not set -CONFIG_PARTITION_ADVANCED=y -CONFIG_EFI_PARTITION=y # CONFIG_IOSCHED_DEADLINE is not set # CONFIG_IOSCHED_CFQ is not set CONFIG_ARCH_TEGRA=y @@ -30,20 +27,18 @@ CONFIG_MACH_PAZ00=y CONFIG_MACH_TRIMSLICE=y CONFIG_MACH_WARIO=y CONFIG_MACH_VENTANA=y -CONFIG_TEGRA_EMC_SCALING_ENABLE=y +CONFIG_TEGRA_DEBUG_UARTD=y +CONFIG_ARM_ERRATA_742230=y CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y CONFIG_SMP=y +CONFIG_NR_CPUS=2 CONFIG_PREEMPT=y CONFIG_AEABI=y # CONFIG_OABI_COMPAT is not set CONFIG_HIGHMEM=y CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_AUTO_ZRELADDR=y -CONFIG_CPU_FREQ=y -CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y -CONFIG_CPU_IDLE=y CONFIG_VFP=y CONFIG_NET=y CONFIG_PACKET=y @@ -73,6 +68,7 @@ CONFIG_IPV6_MULTIPLE_TABLES=y # CONFIG_FIRMWARE_IN_KERNEL is not set CONFIG_PROC_DEVICETREE=y CONFIG_BLK_DEV_LOOP=y +CONFIG_MISC_DEVICES=y CONFIG_AD525X_DPOT=y CONFIG_AD525X_DPOT_I2C=y CONFIG_ICS932S401=y @@ -80,7 +76,6 @@ CONFIG_APDS9802ALS=y CONFIG_ISL29003=y CONFIG_SCSI=y CONFIG_BLK_DEV_SD=y -CONFIG_BLK_DEV_SR=y # CONFIG_SCSI_LOWLEVEL is not set CONFIG_NETDEVICES=y CONFIG_DUMMY=y @@ -90,7 +85,8 @@ CONFIG_USB_USBNET=y CONFIG_USB_NET_SMSC75XX=y CONFIG_USB_NET_SMSC95XX=y # CONFIG_WLAN is not set -CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT is not set +# CONFIG_SERIO is not set # CONFIG_VT is not set # CONFIG_LEGACY_PTYS is not set # CONFIG_DEVKMEM is not set @@ -100,15 +96,13 @@ CONFIG_SERIAL_OF_PLATFORM=y # CONFIG_HW_RANDOM is not set CONFIG_I2C=y # CONFIG_I2C_COMPAT is not set +# CONFIG_I2C_HELPER_AUTO is not set CONFIG_I2C_TEGRA=y CONFIG_SPI=y CONFIG_SPI_TEGRA=y CONFIG_SENSORS_LM90=y CONFIG_MFD_TPS6586X=y CONFIG_REGULATOR=y -CONFIG_REGULATOR_FIXED_VOLTAGE=y -CONFIG_REGULATOR_VIRTUAL_CONSUMER=y -CONFIG_REGULATOR_GPIO=y CONFIG_REGULATOR_TPS6586X=y CONFIG_SOUND=y CONFIG_SND=y @@ -122,13 +116,11 @@ CONFIG_SND_SOC=y CONFIG_SND_SOC_TEGRA=y CONFIG_SND_SOC_TEGRA_WM8903=y CONFIG_SND_SOC_TEGRA_TRIMSLICE=y -CONFIG_SND_SOC_TEGRA_ALC5632=y CONFIG_USB=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_TEGRA=y CONFIG_USB_STORAGE=y CONFIG_MMC=y -CONFIG_MMC_BLOCK_MINORS=16 CONFIG_MMC_SDHCI=y CONFIG_MMC_SDHCI_PLTFM=y CONFIG_MMC_SDHCI_TEGRA=y @@ -138,11 +130,6 @@ CONFIG_STAGING=y CONFIG_IIO=y CONFIG_SENSORS_ISL29018=y CONFIG_SENSORS_AK8975=y -CONFIG_MFD_NVEC=y -CONFIG_KEYBOARD_NVEC=y -CONFIG_SERIO_NVEC_PS2=y -CONFIG_TEGRA_IOMMU_GART=y -CONFIG_TEGRA_IOMMU_SMMU=y CONFIG_EXT2_FS=y CONFIG_EXT2_FS_XATTR=y CONFIG_EXT2_FS_POSIX_ACL=y @@ -151,12 +138,13 @@ CONFIG_EXT3_FS=y # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set CONFIG_EXT3_FS_POSIX_ACL=y CONFIG_EXT3_FS_SECURITY=y -CONFIG_EXT4_FS=y # CONFIG_DNOTIFY is not set CONFIG_VFAT_FS=y CONFIG_TMPFS=y CONFIG_NFS_FS=y CONFIG_ROOT_NFS=y +CONFIG_PARTITION_ADVANCED=y +CONFIG_EFI_PARTITION=y CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_ISO8859_1=y CONFIG_PRINTK_TIME=y @@ -174,8 +162,9 @@ CONFIG_DEBUG_SG=y CONFIG_DEBUG_LL=y CONFIG_EARLY_PRINTK=y CONFIG_CRYPTO_ECB=y +CONFIG_CRYPTO_AES=y CONFIG_CRYPTO_ARC4=y CONFIG_CRYPTO_TWOFISH=y # CONFIG_CRYPTO_ANSI_CPRNG is not set -CONFIG_CRYPTO_DEV_TEGRA_AES=y CONFIG_CRC_CCITT=y +CONFIG_CRC16=y diff --git a/trunk/arch/arm/configs/u8500_defconfig b/trunk/arch/arm/configs/u8500_defconfig index 889d73ac1ae1..2d7b6e7b7271 100644 --- a/trunk/arch/arm/configs/u8500_defconfig +++ b/trunk/arch/arm/configs/u8500_defconfig @@ -13,7 +13,6 @@ CONFIG_UX500_SOC_DB8500=y CONFIG_MACH_HREFV60=y CONFIG_MACH_SNOWBALL=y CONFIG_MACH_U5500=y -CONFIG_MACH_UX500_DT=y CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y CONFIG_SMP=y diff --git a/trunk/arch/arm/include/asm/hardware/arm_timer.h b/trunk/arch/arm/include/asm/hardware/arm_timer.h index d6030ff599db..c0f4e7bf22de 100644 --- a/trunk/arch/arm/include/asm/hardware/arm_timer.h +++ b/trunk/arch/arm/include/asm/hardware/arm_timer.h @@ -9,12 +9,7 @@ * * Integrator AP has 16-bit timers, Integrator CP, Versatile and Realview * can have 16-bit or 32-bit selectable via a bit in the control register. - * - * Every SP804 contains two identical timers. */ -#define TIMER_1_BASE 0x00 -#define TIMER_2_BASE 0x20 - #define TIMER_LOAD 0x00 /* ACVR rw */ #define TIMER_VALUE 0x04 /* ACVR ro */ #define TIMER_CTRL 0x08 /* ACVR rw */ diff --git a/trunk/arch/arm/include/asm/hardware/sa1111.h b/trunk/arch/arm/include/asm/hardware/sa1111.h index 7c2bbc7f0be1..92ed254c175b 100644 --- a/trunk/arch/arm/include/asm/hardware/sa1111.h +++ b/trunk/arch/arm/include/asm/hardware/sa1111.h @@ -132,9 +132,33 @@ #define SKPCR_DCLKEN (1<<7) #define SKPCR_PWMCLKEN (1<<8) -/* USB Host controller */ +/* + * USB Host controller + */ #define SA1111_USB 0x0400 +/* + * Offsets from SA1111_USB_BASE + */ +#define SA1111_USB_STATUS 0x0118 +#define SA1111_USB_RESET 0x011c +#define SA1111_USB_IRQTEST 0x0120 + +#define USB_RESET_FORCEIFRESET (1 << 0) +#define USB_RESET_FORCEHCRESET (1 << 1) +#define USB_RESET_CLKGENRESET (1 << 2) +#define USB_RESET_SIMSCALEDOWN (1 << 3) +#define USB_RESET_USBINTTEST (1 << 4) +#define USB_RESET_SLEEPSTBYEN (1 << 5) +#define USB_RESET_PWRSENSELOW (1 << 6) +#define USB_RESET_PWRCTRLLOW (1 << 7) + +#define USB_STATUS_IRQHCIRMTWKUP (1 << 7) +#define USB_STATUS_IRQHCIBUFFACC (1 << 8) +#define USB_STATUS_NIRQHCIM (1 << 9) +#define USB_STATUS_NHCIMFCLR (1 << 10) +#define USB_STATUS_USBPWRSENSE (1 << 11) + /* * Serial Audio Controller * @@ -303,6 +327,22 @@ * PC_SSR GPIO Block C Sleep State */ +#define _PA_DDR _SA1111( 0x1000 ) +#define _PA_DRR _SA1111( 0x1004 ) +#define _PA_DWR _SA1111( 0x1004 ) +#define _PA_SDR _SA1111( 0x1008 ) +#define _PA_SSR _SA1111( 0x100c ) +#define _PB_DDR _SA1111( 0x1010 ) +#define _PB_DRR _SA1111( 0x1014 ) +#define _PB_DWR _SA1111( 0x1014 ) +#define _PB_SDR _SA1111( 0x1018 ) +#define _PB_SSR _SA1111( 0x101c ) +#define _PC_DDR _SA1111( 0x1020 ) +#define _PC_DRR _SA1111( 0x1024 ) +#define _PC_DWR _SA1111( 0x1024 ) +#define _PC_SDR _SA1111( 0x1028 ) +#define _PC_SSR _SA1111( 0x102c ) + #define SA1111_GPIO 0x1000 #define SA1111_GPIO_PADDR (0x000) @@ -385,30 +425,106 @@ #define SA1111_WAKEPOL0 0x0034 #define SA1111_WAKEPOL1 0x0038 -/* PS/2 Trackpad and Mouse Interfaces */ +/* + * PS/2 Trackpad and Mouse Interfaces + * + * Registers + * PS2CR Control Register + * PS2STAT Status Register + * PS2DATA Transmit/Receive Data register + * PS2CLKDIV Clock Division Register + * PS2PRECNT Clock Precount Register + * PS2TEST1 Test register 1 + * PS2TEST2 Test register 2 + * PS2TEST3 Test register 3 + * PS2TEST4 Test register 4 + */ + #define SA1111_KBD 0x0a00 #define SA1111_MSE 0x0c00 -/* PCMCIA Interface */ -#define SA1111_PCMCIA 0x1600 +/* + * These are offsets from the above bases. + */ +#define SA1111_PS2CR 0x0000 +#define SA1111_PS2STAT 0x0004 +#define SA1111_PS2DATA 0x0008 +#define SA1111_PS2CLKDIV 0x000c +#define SA1111_PS2PRECNT 0x0010 + +#define PS2CR_ENA 0x08 +#define PS2CR_FKD 0x02 +#define PS2CR_FKC 0x01 + +#define PS2STAT_STP 0x0100 +#define PS2STAT_TXE 0x0080 +#define PS2STAT_TXB 0x0040 +#define PS2STAT_RXF 0x0020 +#define PS2STAT_RXB 0x0010 +#define PS2STAT_ENA 0x0008 +#define PS2STAT_RXP 0x0004 +#define PS2STAT_KBD 0x0002 +#define PS2STAT_KBC 0x0001 +/* + * PCMCIA Interface + * + * Registers + * PCSR Status Register + * PCCR Control Register + * PCSSR Sleep State Register + */ + +#define SA1111_PCMCIA 0x1600 + +/* + * These are offsets from the above base. + */ +#define SA1111_PCCR 0x0000 +#define SA1111_PCSSR 0x0004 +#define SA1111_PCSR 0x0008 + +#define PCSR_S0_READY (1<<0) +#define PCSR_S1_READY (1<<1) +#define PCSR_S0_DETECT (1<<2) +#define PCSR_S1_DETECT (1<<3) +#define PCSR_S0_VS1 (1<<4) +#define PCSR_S0_VS2 (1<<5) +#define PCSR_S1_VS1 (1<<6) +#define PCSR_S1_VS2 (1<<7) +#define PCSR_S0_WP (1<<8) +#define PCSR_S1_WP (1<<9) +#define PCSR_S0_BVD1 (1<<10) +#define PCSR_S0_BVD2 (1<<11) +#define PCSR_S1_BVD1 (1<<12) +#define PCSR_S1_BVD2 (1<<13) + +#define PCCR_S0_RST (1<<0) +#define PCCR_S1_RST (1<<1) +#define PCCR_S0_FLT (1<<2) +#define PCCR_S1_FLT (1<<3) +#define PCCR_S0_PWAITEN (1<<4) +#define PCCR_S1_PWAITEN (1<<5) +#define PCCR_S0_PSE (1<<6) +#define PCCR_S1_PSE (1<<7) + +#define PCSSR_S0_SLEEP (1<<0) +#define PCSSR_S1_SLEEP (1<<1) extern struct bus_type sa1111_bus_type; -#define SA1111_DEVID_SBI (1 << 0) -#define SA1111_DEVID_SK (1 << 1) -#define SA1111_DEVID_USB (1 << 2) -#define SA1111_DEVID_SAC (1 << 3) -#define SA1111_DEVID_SSP (1 << 4) -#define SA1111_DEVID_PS2 (3 << 5) -#define SA1111_DEVID_PS2_KBD (1 << 5) -#define SA1111_DEVID_PS2_MSE (1 << 6) -#define SA1111_DEVID_GPIO (1 << 7) -#define SA1111_DEVID_INT (1 << 8) -#define SA1111_DEVID_PCMCIA (1 << 9) +#define SA1111_DEVID_SBI 0 +#define SA1111_DEVID_SK 1 +#define SA1111_DEVID_USB 2 +#define SA1111_DEVID_SAC 3 +#define SA1111_DEVID_SSP 4 +#define SA1111_DEVID_PS2 5 +#define SA1111_DEVID_GPIO 6 +#define SA1111_DEVID_INT 7 +#define SA1111_DEVID_PCMCIA 8 struct sa1111_dev { struct device dev; @@ -432,7 +548,6 @@ struct sa1111_driver { int (*remove)(struct sa1111_dev *); int (*suspend)(struct sa1111_dev *, pm_message_t); int (*resume)(struct sa1111_dev *); - void (*shutdown)(struct sa1111_dev *); }; #define SA1111_DRV(_d) container_of((_d), struct sa1111_driver, drv) @@ -440,10 +555,9 @@ struct sa1111_driver { #define SA1111_DRIVER_NAME(_sadev) ((_sadev)->dev.driver->name) /* - * These frob the SKPCR register, and call platform specific - * enable/disable functions. + * These frob the SKPCR register. */ -int sa1111_enable_device(struct sa1111_dev *); +void sa1111_enable_device(struct sa1111_dev *); void sa1111_disable_device(struct sa1111_dev *); unsigned int sa1111_pll_clock(struct sa1111_dev *); @@ -466,10 +580,6 @@ void sa1111_set_sleep_io(struct sa1111_dev *sadev, unsigned int bits, unsigned i struct sa1111_platform_data { int irq_base; /* base for cascaded on-chip IRQs */ - unsigned disable_devs; - void *data; - int (*enable)(void *, unsigned); - void (*disable)(void *, unsigned); }; #endif /* _ASM_ARCH_SA1111 */ diff --git a/trunk/arch/arm/include/asm/hardware/timer-sp.h b/trunk/arch/arm/include/asm/hardware/timer-sp.h index 2dd9d3f83f29..4384d81eee79 100644 --- a/trunk/arch/arm/include/asm/hardware/timer-sp.h +++ b/trunk/arch/arm/include/asm/hardware/timer-sp.h @@ -1,15 +1,2 @@ -void __sp804_clocksource_and_sched_clock_init(void __iomem *, - const char *, int); - -static inline void sp804_clocksource_init(void __iomem *base, const char *name) -{ - __sp804_clocksource_and_sched_clock_init(base, name, 0); -} - -static inline void sp804_clocksource_and_sched_clock_init(void __iomem *base, - const char *name) -{ - __sp804_clocksource_and_sched_clock_init(base, name, 1); -} - +void sp804_clocksource_init(void __iomem *, const char *); void sp804_clockevents_init(void __iomem *, unsigned int, const char *); diff --git a/trunk/arch/arm/include/asm/localtimer.h b/trunk/arch/arm/include/asm/localtimer.h index f77ffc1eb0c2..c6a18424888e 100644 --- a/trunk/arch/arm/include/asm/localtimer.h +++ b/trunk/arch/arm/include/asm/localtimer.h @@ -11,24 +11,47 @@ #define __ASM_ARM_LOCALTIMER_H #include +#include struct clock_event_device; -struct local_timer_ops { - int (*setup)(struct clock_event_device *); - void (*stop)(struct clock_event_device *); -}; +/* + * Setup a per-cpu timer, whether it be a local timer or dummy broadcast + */ +void percpu_timer_setup(void); #ifdef CONFIG_LOCAL_TIMERS + +#ifdef CONFIG_HAVE_ARM_TWD + +#include "smp_twd.h" + +#define local_timer_stop(c) twd_timer_stop((c)) + +#else + +/* + * Stop the local timer + */ +void local_timer_stop(struct clock_event_device *); + +#endif + /* - * Register a local timer driver + * Setup a local timer interrupt for a CPU. */ -int local_timer_register(struct local_timer_ops *); +int local_timer_setup(struct clock_event_device *); + #else -static inline int local_timer_register(struct local_timer_ops *ops) + +static inline int local_timer_setup(struct clock_event_device *evt) { return -ENXIO; } + +static inline void local_timer_stop(struct clock_event_device *evt) +{ +} #endif #endif diff --git a/trunk/arch/arm/include/asm/smp_twd.h b/trunk/arch/arm/include/asm/smp_twd.h index 0f01f4677bd2..ef9ffba97ad8 100644 --- a/trunk/arch/arm/include/asm/smp_twd.h +++ b/trunk/arch/arm/include/asm/smp_twd.h @@ -18,28 +18,11 @@ #define TWD_TIMER_CONTROL_PERIODIC (1 << 1) #define TWD_TIMER_CONTROL_IT_ENABLE (1 << 2) -#include +struct clock_event_device; -struct twd_local_timer { - struct resource res[2]; -}; +extern void __iomem *twd_base; -#define DEFINE_TWD_LOCAL_TIMER(name,base,irq) \ -struct twd_local_timer name __initdata = { \ - .res = { \ - DEFINE_RES_MEM(base, 0x10), \ - DEFINE_RES_IRQ(irq), \ - }, \ -}; - -int twd_local_timer_register(struct twd_local_timer *); - -#ifdef CONFIG_HAVE_ARM_TWD -void twd_local_timer_of_register(void); -#else -static inline void twd_local_timer_of_register(void) -{ -} -#endif +void twd_timer_setup(struct clock_event_device *); +void twd_timer_stop(struct clock_event_device *); #endif diff --git a/trunk/arch/arm/kernel/Makefile b/trunk/arch/arm/kernel/Makefile index 3a274878412e..43b740d0e374 100644 --- a/trunk/arch/arm/kernel/Makefile +++ b/trunk/arch/arm/kernel/Makefile @@ -23,6 +23,7 @@ obj-$(CONFIG_LEDS) += leds.o obj-$(CONFIG_OC_ETM) += etm.o obj-$(CONFIG_ISA_DMA_API) += dma.o +obj-$(CONFIG_ARCH_ACORN) += ecard.o obj-$(CONFIG_FIQ) += fiq.o fiqasm.o obj-$(CONFIG_MODULES) += armksyms.o module.o obj-$(CONFIG_ARTHUR) += arthur.o @@ -61,6 +62,9 @@ obj-$(CONFIG_SWP_EMULATE) += swp_emulate.o CFLAGS_swp_emulate.o := -Wa,-march=armv7-a obj-$(CONFIG_HAVE_HW_BREAKPOINT) += hw_breakpoint.o +obj-$(CONFIG_CRUNCH) += crunch.o crunch-bits.o +AFLAGS_crunch-bits.o := -Wa,-mcpu=ep9312 + obj-$(CONFIG_CPU_XSCALE) += xscale-cp0.o obj-$(CONFIG_CPU_XSC3) += xscale-cp0.o obj-$(CONFIG_CPU_MOHAWK) += xscale-cp0.o diff --git a/trunk/arch/arm/mach-ep93xx/crunch-bits.S b/trunk/arch/arm/kernel/crunch-bits.S similarity index 100% rename from trunk/arch/arm/mach-ep93xx/crunch-bits.S rename to trunk/arch/arm/kernel/crunch-bits.S diff --git a/trunk/arch/arm/mach-ep93xx/crunch.c b/trunk/arch/arm/kernel/crunch.c similarity index 98% rename from trunk/arch/arm/mach-ep93xx/crunch.c rename to trunk/arch/arm/kernel/crunch.c index 74753e2df603..25ef223ba7f3 100644 --- a/trunk/arch/arm/mach-ep93xx/crunch.c +++ b/trunk/arch/arm/kernel/crunch.c @@ -16,11 +16,9 @@ #include #include #include - +#include #include -#include "soc.h" - struct crunch_state *crunch_owner; void crunch_task_release(struct thread_info *thread) diff --git a/trunk/arch/arm/mach-rpc/ecard.c b/trunk/arch/arm/kernel/ecard.c similarity index 90% rename from trunk/arch/arm/mach-rpc/ecard.c rename to trunk/arch/arm/kernel/ecard.c index b91bc87b3dcf..1651d4950744 100644 --- a/trunk/arch/arm/mach-rpc/ecard.c +++ b/trunk/arch/arm/kernel/ecard.c @@ -42,7 +42,6 @@ #include #include #include -#include #include #include @@ -55,6 +54,10 @@ #include "ecard.h" +#ifndef CONFIG_ARCH_RPC +#define HAVE_EXPMASK +#endif + struct ecard_request { void (*fn)(struct ecard_request *); ecard_t *ec; @@ -74,6 +77,9 @@ struct expcard_blacklist { static ecard_t *cards; static ecard_t *slot_to_expcard[MAX_ECARDS]; static unsigned int ectcr; +#ifdef HAS_EXPMASK +static unsigned int have_expmask; +#endif /* List of descriptions of cards which don't have an extended * identification, or chunk directories containing a description. @@ -385,10 +391,22 @@ int ecard_readchunk(struct in_chunk_dir *cd, ecard_t *ec, int id, int num) static void ecard_def_irq_enable(ecard_t *ec, int irqnr) { +#ifdef HAS_EXPMASK + if (irqnr < 4 && have_expmask) { + have_expmask |= 1 << irqnr; + __raw_writeb(have_expmask, EXPMASK_ENABLE); + } +#endif } static void ecard_def_irq_disable(ecard_t *ec, int irqnr) { +#ifdef HAS_EXPMASK + if (irqnr < 4 && have_expmask) { + have_expmask &= ~(1 << irqnr); + __raw_writeb(have_expmask, EXPMASK_ENABLE); + } +#endif } static int ecard_def_irq_pending(ecard_t *ec) @@ -428,7 +446,7 @@ static expansioncard_ops_t ecard_default_ops = { */ static void ecard_irq_unmask(struct irq_data *d) { - ecard_t *ec = irq_data_get_irq_chip_data(d); + ecard_t *ec = slot_to_ecard(d->irq - 32); if (ec) { if (!ec->ops) @@ -444,7 +462,7 @@ static void ecard_irq_unmask(struct irq_data *d) static void ecard_irq_mask(struct irq_data *d) { - ecard_t *ec = irq_data_get_irq_chip_data(d); + ecard_t *ec = slot_to_ecard(d->irq - 32); if (ec) { if (!ec->ops) @@ -561,7 +579,7 @@ ecard_irq_handler(unsigned int irq, struct irq_desc *desc) for (ec = cards; ec; ec = ec->next) { int pending; - if (!ec->claimed || !ec->irq || ec->slot_no == 8) + if (!ec->claimed || ec->irq == NO_IRQ || ec->slot_no == 8) continue; if (ec->ops && ec->ops->irqpending) @@ -580,6 +598,83 @@ ecard_irq_handler(unsigned int irq, struct irq_desc *desc) ecard_check_lockup(desc); } +#ifdef HAS_EXPMASK +static unsigned char priority_masks[] = +{ + 0xf0, 0xf1, 0xf3, 0xf7, 0xff, 0xff, 0xff, 0xff +}; + +static unsigned char first_set[] = +{ + 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, + 0x03, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00 +}; + +static void +ecard_irqexp_handler(unsigned int irq, struct irq_desc *desc) +{ + const unsigned int statusmask = 15; + unsigned int status; + + status = __raw_readb(EXPMASK_STATUS) & statusmask; + if (status) { + unsigned int slot = first_set[status]; + ecard_t *ec = slot_to_ecard(slot); + + if (ec->claimed) { + /* + * this ugly code is so that we can operate a + * prioritorising system: + * + * Card 0 highest priority + * Card 1 + * Card 2 + * Card 3 lowest priority + * + * Serial cards should go in 0/1, ethernet/scsi in 2/3 + * otherwise you will lose serial data at high speeds! + */ + generic_handle_irq(ec->irq); + } else { + printk(KERN_WARNING "card%d: interrupt from unclaimed " + "card???\n", slot); + have_expmask &= ~(1 << slot); + __raw_writeb(have_expmask, EXPMASK_ENABLE); + } + } else + printk(KERN_WARNING "Wild interrupt from backplane (masks)\n"); +} + +static int __init ecard_probeirqhw(void) +{ + ecard_t *ec; + int found; + + __raw_writeb(0x00, EXPMASK_ENABLE); + __raw_writeb(0xff, EXPMASK_STATUS); + found = (__raw_readb(EXPMASK_STATUS) & 15) == 0; + __raw_writeb(0xff, EXPMASK_ENABLE); + + if (found) { + printk(KERN_DEBUG "Expansion card interrupt " + "management hardware found\n"); + + /* for each card present, set a bit to '1' */ + have_expmask = 0x80000000; + + for (ec = cards; ec; ec = ec->next) + have_expmask |= 1 << ec->slot_no; + + __raw_writeb(have_expmask, EXPMASK_ENABLE); + } + + return found; +} +#else +#define ecard_irqexp_handler NULL +#define ecard_probeirqhw() (0) +#endif + static void __iomem *__ecard_address(ecard_t *ec, card_type_t type, card_speed_t speed) { void __iomem *address = NULL; @@ -711,8 +806,8 @@ static struct expansion_card *__init ecard_alloc_card(int type, int slot) ec->slot_no = slot; ec->easi = type == ECARD_EASI; - ec->irq = 0; - ec->fiq = 0; + ec->irq = NO_IRQ; + ec->fiq = NO_IRQ; ec->dma = NO_DMA; ec->ops = &ecard_default_ops; @@ -883,7 +978,8 @@ EXPORT_SYMBOL(ecardm_iomap); * If bit 1 of the first byte of the card is set, then the * card does not exist. */ -static int __init ecard_probe(int slot, unsigned irq, card_type_t type) +static int __init +ecard_probe(int slot, card_type_t type) { ecard_t **ecp; ecard_t *ec; @@ -937,18 +1033,18 @@ static int __init ecard_probe(int slot, unsigned irq, card_type_t type) break; } - ec->irq = irq; - /* * hook the interrupt handlers */ if (slot < 8) { + ec->irq = 32 + slot; irq_set_chip_and_handler(ec->irq, &ecard_chip, handle_level_irq); - irq_set_chip_data(ec->irq, ec); set_irq_flags(ec->irq, IRQF_VALID); } + if (slot == 8) + ec->irq = 11; #ifdef CONFIG_ARCH_RPC /* On RiscPC, only first two slots have DMA capability */ if (slot < 2) @@ -978,30 +1074,28 @@ static int __init ecard_probe(int slot, unsigned irq, card_type_t type) static int __init ecard_init(void) { struct task_struct *task; - int slot, irqbase; - - irqbase = irq_alloc_descs(-1, 0, 8, -1); - if (irqbase < 0) - return irqbase; + int slot, irqhw; task = kthread_run(ecard_task, NULL, "kecardd"); if (IS_ERR(task)) { printk(KERN_ERR "Ecard: unable to create kernel thread: %ld\n", PTR_ERR(task)); - irq_free_descs(irqbase, 8); return PTR_ERR(task); } printk("Probing expansion cards\n"); for (slot = 0; slot < 8; slot ++) { - if (ecard_probe(slot, irqbase + slot, ECARD_EASI) == -ENODEV) - ecard_probe(slot, irqbase + slot, ECARD_IOC); + if (ecard_probe(slot, ECARD_EASI) == -ENODEV) + ecard_probe(slot, ECARD_IOC); } - ecard_probe(8, 11, ECARD_IOC); + ecard_probe(8, ECARD_IOC); + + irqhw = ecard_probeirqhw(); - irq_set_chained_handler(IRQ_EXPANSIONCARD, ecard_irq_handler); + irq_set_chained_handler(IRQ_EXPANSIONCARD, + irqhw ? ecard_irqexp_handler : ecard_irq_handler); ecard_proc_init(); diff --git a/trunk/arch/arm/mach-rpc/ecard.h b/trunk/arch/arm/kernel/ecard.h similarity index 100% rename from trunk/arch/arm/mach-rpc/ecard.h rename to trunk/arch/arm/kernel/ecard.h diff --git a/trunk/arch/arm/kernel/smp.c b/trunk/arch/arm/kernel/smp.c index 8f8cce2c46c4..d616ed51e7a7 100644 --- a/trunk/arch/arm/kernel/smp.c +++ b/trunk/arch/arm/kernel/smp.c @@ -246,8 +246,6 @@ static void __cpuinit smp_store_cpu_info(unsigned int cpuid) store_cpu_topology(cpuid); } -static void percpu_timer_setup(void); - /* * This is the secondary CPU boot entry. We're using this CPUs * idle thread stack, but a set of temporary page tables. @@ -454,20 +452,7 @@ static void __cpuinit broadcast_timer_setup(struct clock_event_device *evt) clockevents_register_device(evt); } -static struct local_timer_ops *lt_ops; - -#ifdef CONFIG_LOCAL_TIMERS -int local_timer_register(struct local_timer_ops *ops) -{ - if (lt_ops) - return -EBUSY; - - lt_ops = ops; - return 0; -} -#endif - -static void __cpuinit percpu_timer_setup(void) +void __cpuinit percpu_timer_setup(void) { unsigned int cpu = smp_processor_id(); struct clock_event_device *evt = &per_cpu(percpu_clockevent, cpu); @@ -475,7 +460,7 @@ static void __cpuinit percpu_timer_setup(void) evt->cpumask = cpumask_of(cpu); evt->broadcast = smp_timer_broadcast; - if (!lt_ops || lt_ops->setup(evt)) + if (local_timer_setup(evt)) broadcast_timer_setup(evt); } @@ -490,8 +475,7 @@ static void percpu_timer_stop(void) unsigned int cpu = smp_processor_id(); struct clock_event_device *evt = &per_cpu(percpu_clockevent, cpu); - if (lt_ops) - lt_ops->stop(evt); + local_timer_stop(evt); } #endif diff --git a/trunk/arch/arm/kernel/smp_twd.c b/trunk/arch/arm/kernel/smp_twd.c index fef42b21cecb..7a79b24597b2 100644 --- a/trunk/arch/arm/kernel/smp_twd.c +++ b/trunk/arch/arm/kernel/smp_twd.c @@ -18,23 +18,20 @@ #include #include #include -#include +#include #include -#include -#include #include #include #include /* set up by the platform code */ -static void __iomem *twd_base; +void __iomem *twd_base; static struct clk *twd_clk; static unsigned long twd_timer_rate; static struct clock_event_device __percpu **twd_evt; -static int twd_ppi; static void twd_set_mode(enum clock_event_mode mode, struct clock_event_device *clk) @@ -80,7 +77,7 @@ static int twd_set_next_event(unsigned long evt, * If a local timer interrupt has occurred, acknowledge and return 1. * Otherwise, return 0. */ -static int twd_timer_ack(void) +int twd_timer_ack(void) { if (__raw_readl(twd_base + TWD_TIMER_INTSTAT)) { __raw_writel(1, twd_base + TWD_TIMER_INTSTAT); @@ -90,7 +87,7 @@ static int twd_timer_ack(void) return 0; } -static void twd_timer_stop(struct clock_event_device *clk) +void twd_timer_stop(struct clock_event_device *clk) { twd_set_mode(CLOCK_EVT_MODE_UNUSED, clk); disable_percpu_irq(clk->irq); @@ -225,10 +222,28 @@ static struct clk *twd_get_clock(void) /* * Setup the local clock events for a CPU. */ -static int __cpuinit twd_timer_setup(struct clock_event_device *clk) +void __cpuinit twd_timer_setup(struct clock_event_device *clk) { struct clock_event_device **this_cpu_clk; + if (!twd_evt) { + int err; + + twd_evt = alloc_percpu(struct clock_event_device *); + if (!twd_evt) { + pr_err("twd: can't allocate memory\n"); + return; + } + + err = request_percpu_irq(clk->irq, twd_handler, + "twd", twd_evt); + if (err) { + pr_err("twd: can't register interrupt %d (%d)\n", + clk->irq, err); + return; + } + } + if (!twd_clk) twd_clk = twd_get_clock(); @@ -245,7 +260,6 @@ static int __cpuinit twd_timer_setup(struct clock_event_device *clk) clk->rating = 350; clk->set_mode = twd_set_mode; clk->set_next_event = twd_set_next_event; - clk->irq = twd_ppi; this_cpu_clk = __this_cpu_ptr(twd_evt); *this_cpu_clk = clk; @@ -253,95 +267,4 @@ static int __cpuinit twd_timer_setup(struct clock_event_device *clk) clockevents_config_and_register(clk, twd_timer_rate, 0xf, 0xffffffff); enable_percpu_irq(clk->irq, 0); - - return 0; -} - -static struct local_timer_ops twd_lt_ops __cpuinitdata = { - .setup = twd_timer_setup, - .stop = twd_timer_stop, -}; - -static int __init twd_local_timer_common_register(void) -{ - int err; - - twd_evt = alloc_percpu(struct clock_event_device *); - if (!twd_evt) { - err = -ENOMEM; - goto out_free; - } - - err = request_percpu_irq(twd_ppi, twd_handler, "twd", twd_evt); - if (err) { - pr_err("twd: can't register interrupt %d (%d)\n", twd_ppi, err); - goto out_free; - } - - err = local_timer_register(&twd_lt_ops); - if (err) - goto out_irq; - - return 0; - -out_irq: - free_percpu_irq(twd_ppi, twd_evt); -out_free: - iounmap(twd_base); - twd_base = NULL; - free_percpu(twd_evt); - - return err; } - -int __init twd_local_timer_register(struct twd_local_timer *tlt) -{ - if (twd_base || twd_evt) - return -EBUSY; - - twd_ppi = tlt->res[1].start; - - twd_base = ioremap(tlt->res[0].start, resource_size(&tlt->res[0])); - if (!twd_base) - return -ENOMEM; - - return twd_local_timer_common_register(); -} - -#ifdef CONFIG_OF -const static struct of_device_id twd_of_match[] __initconst = { - { .compatible = "arm,cortex-a9-twd-timer", }, - { .compatible = "arm,cortex-a5-twd-timer", }, - { .compatible = "arm,arm11mp-twd-timer", }, - { }, -}; - -void __init twd_local_timer_of_register(void) -{ - struct device_node *np; - int err; - - np = of_find_matching_node(NULL, twd_of_match); - if (!np) { - err = -ENODEV; - goto out; - } - - twd_ppi = irq_of_parse_and_map(np, 0); - if (!twd_ppi) { - err = -EINVAL; - goto out; - } - - twd_base = of_iomap(np, 0); - if (!twd_base) { - err = -ENOMEM; - goto out; - } - - err = twd_local_timer_common_register(); - -out: - WARN(err, "twd_local_timer_of_register failed (%d)\n", err); -} -#endif diff --git a/trunk/arch/arm/mach-at91/Kconfig b/trunk/arch/arm/mach-at91/Kconfig index 45db05d8d94c..71feb00a1e99 100644 --- a/trunk/arch/arm/mach-at91/Kconfig +++ b/trunk/arch/arm/mach-at91/Kconfig @@ -20,11 +20,9 @@ config HAVE_AT91_USART5 config AT91_SAM9_ALT_RESET bool - default !ARCH_AT91X40 config AT91_SAM9G45_RESET bool - default !ARCH_AT91X40 menu "Atmel AT91 System-on-Chip" @@ -47,6 +45,7 @@ config ARCH_AT91SAM9260 select HAVE_AT91_USART4 select HAVE_AT91_USART5 select HAVE_NET_MACB + select AT91_SAM9_ALT_RESET config ARCH_AT91SAM9261 bool "AT91SAM9261" @@ -54,6 +53,7 @@ config ARCH_AT91SAM9261 select GENERIC_CLOCKEVENTS select HAVE_FB_ATMEL select HAVE_AT91_DBGU0 + select AT91_SAM9_ALT_RESET config ARCH_AT91SAM9G10 bool "AT91SAM9G10" @@ -61,6 +61,7 @@ config ARCH_AT91SAM9G10 select GENERIC_CLOCKEVENTS select HAVE_AT91_DBGU0 select HAVE_FB_ATMEL + select AT91_SAM9_ALT_RESET config ARCH_AT91SAM9263 bool "AT91SAM9263" @@ -69,6 +70,7 @@ config ARCH_AT91SAM9263 select HAVE_FB_ATMEL select HAVE_NET_MACB select HAVE_AT91_DBGU1 + select AT91_SAM9_ALT_RESET config ARCH_AT91SAM9RL bool "AT91SAM9RL" @@ -77,6 +79,7 @@ config ARCH_AT91SAM9RL select HAVE_AT91_USART3 select HAVE_FB_ATMEL select HAVE_AT91_DBGU0 + select AT91_SAM9_ALT_RESET config ARCH_AT91SAM9G20 bool "AT91SAM9G20" @@ -87,6 +90,7 @@ config ARCH_AT91SAM9G20 select HAVE_AT91_USART4 select HAVE_AT91_USART5 select HAVE_NET_MACB + select AT91_SAM9_ALT_RESET config ARCH_AT91SAM9G45 bool "AT91SAM9G45" @@ -96,14 +100,16 @@ config ARCH_AT91SAM9G45 select HAVE_FB_ATMEL select HAVE_NET_MACB select HAVE_AT91_DBGU1 + select AT91_SAM9G45_RESET -config ARCH_AT91SAM9X5 - bool "AT91SAM9x5 family" +config ARCH_AT91CAP9 + bool "AT91CAP9" select CPU_ARM926T select GENERIC_CLOCKEVENTS select HAVE_FB_ATMEL select HAVE_NET_MACB - select HAVE_AT91_DBGU0 + select HAVE_AT91_DBGU1 + select AT91_SAM9G45_RESET config ARCH_AT91X40 bool "AT91x40" @@ -441,6 +447,21 @@ endif # ---------------------------------------------------------- +if ARCH_AT91CAP9 + +comment "AT91CAP9 Board Type" + +config MACH_AT91CAP9ADK + bool "Atmel AT91CAP9A-DK Evaluation Kit" + select HAVE_AT91_DATAFLASH_CARD + help + Select this if you are using Atmel's AT91CAP9A-DK Evaluation Kit. + + +endif + +# ---------------------------------------------------------- + if ARCH_AT91X40 comment "AT91X40 Board Type" @@ -523,7 +544,7 @@ config AT91_EARLY_DBGU0 depends on HAVE_AT91_DBGU0 config AT91_EARLY_DBGU1 - bool "DBGU on 9263 and 9g45" + bool "DBGU on 9263, 9g45 and cap9" depends on HAVE_AT91_DBGU1 config AT91_EARLY_USART0 diff --git a/trunk/arch/arm/mach-at91/Makefile b/trunk/arch/arm/mach-at91/Makefile index 8512e53bed93..705e1fbded39 100644 --- a/trunk/arch/arm/mach-at91/Makefile +++ b/trunk/arch/arm/mach-at91/Makefile @@ -20,7 +20,7 @@ obj-$(CONFIG_ARCH_AT91SAM9263) += at91sam9263.o at91sam926x_time.o at91sam9263_d obj-$(CONFIG_ARCH_AT91SAM9RL) += at91sam9rl.o at91sam926x_time.o at91sam9rl_devices.o sam9_smc.o obj-$(CONFIG_ARCH_AT91SAM9G20) += at91sam9260.o at91sam926x_time.o at91sam9260_devices.o sam9_smc.o obj-$(CONFIG_ARCH_AT91SAM9G45) += at91sam9g45.o at91sam926x_time.o at91sam9g45_devices.o sam9_smc.o -obj-$(CONFIG_ARCH_AT91SAM9X5) += at91sam9x5.o at91sam926x_time.o sam9_smc.o +obj-$(CONFIG_ARCH_AT91CAP9) += at91cap9.o at91sam926x_time.o at91cap9_devices.o sam9_smc.o obj-$(CONFIG_ARCH_AT91X40) += at91x40.o at91x40_time.o # AT91RM9200 board-specific support @@ -81,6 +81,9 @@ obj-$(CONFIG_MACH_AT91SAM9M10G45EK) += board-sam9m10g45ek.o # AT91SAM board with device-tree obj-$(CONFIG_MACH_AT91SAM_DT) += board-dt.o +# AT91CAP9 board-specific support +obj-$(CONFIG_MACH_AT91CAP9ADK) += board-cap9adk.o + # AT91X40 board-specific support obj-$(CONFIG_MACH_AT91EB01) += board-eb01.o diff --git a/trunk/arch/arm/mach-at91/Makefile.boot b/trunk/arch/arm/mach-at91/Makefile.boot index 0da66ca4a4f8..8ddafadfdc7d 100644 --- a/trunk/arch/arm/mach-at91/Makefile.boot +++ b/trunk/arch/arm/mach-at91/Makefile.boot @@ -3,7 +3,11 @@ # PARAMS_PHYS must be within 4MB of ZRELADDR # INITRD_PHYS must be in RAM -ifeq ($(CONFIG_ARCH_AT91SAM9G45),y) +ifeq ($(CONFIG_ARCH_AT91CAP9),y) + zreladdr-y += 0x70008000 +params_phys-y := 0x70000100 +initrd_phys-y := 0x70410000 +else ifeq ($(CONFIG_ARCH_AT91SAM9G45),y) zreladdr-y += 0x70008000 params_phys-y := 0x70000100 initrd_phys-y := 0x70410000 @@ -13,10 +17,4 @@ params_phys-y := 0x20000100 initrd_phys-y := 0x20410000 endif -# Keep dtb files sorted alphabetically for each SoC -# sam9g20 -dtb-$(CONFIG_MACH_AT91SAM_DT) += usb_a9g20.dtb -# sam9g45 -dtb-$(CONFIG_MACH_AT91SAM_DT) += at91sam9m10g45ek.dtb -# sam9x5 -dtb-$(CONFIG_MACH_AT91SAM_DT) += at91sam9g25ek.dtb +dtb-$(CONFIG_MACH_AT91SAM_DT) += at91sam9m10g45ek.dtb usb_a9g20.dtb diff --git a/trunk/arch/arm/mach-at91/at91cap9.c b/trunk/arch/arm/mach-at91/at91cap9.c new file mode 100644 index 000000000000..8967d75c2ea3 --- /dev/null +++ b/trunk/arch/arm/mach-at91/at91cap9.c @@ -0,0 +1,404 @@ +/* + * arch/arm/mach-at91/at91cap9.c + * + * Copyright (C) 2007 Stelian Pop + * Copyright (C) 2007 Lead Tech Design + * Copyright (C) 2007 Atmel Corporation. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + */ + +#include + +#include +#include +#include +#include + +#include +#include +#include + +#include "soc.h" +#include "generic.h" +#include "clock.h" +#include "sam9_smc.h" + +/* -------------------------------------------------------------------- + * Clocks + * -------------------------------------------------------------------- */ + +/* + * The peripheral clocks. + */ +static struct clk pioABCD_clk = { + .name = "pioABCD_clk", + .pmc_mask = 1 << AT91CAP9_ID_PIOABCD, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk mpb0_clk = { + .name = "mpb0_clk", + .pmc_mask = 1 << AT91CAP9_ID_MPB0, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk mpb1_clk = { + .name = "mpb1_clk", + .pmc_mask = 1 << AT91CAP9_ID_MPB1, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk mpb2_clk = { + .name = "mpb2_clk", + .pmc_mask = 1 << AT91CAP9_ID_MPB2, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk mpb3_clk = { + .name = "mpb3_clk", + .pmc_mask = 1 << AT91CAP9_ID_MPB3, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk mpb4_clk = { + .name = "mpb4_clk", + .pmc_mask = 1 << AT91CAP9_ID_MPB4, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk usart0_clk = { + .name = "usart0_clk", + .pmc_mask = 1 << AT91CAP9_ID_US0, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk usart1_clk = { + .name = "usart1_clk", + .pmc_mask = 1 << AT91CAP9_ID_US1, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk usart2_clk = { + .name = "usart2_clk", + .pmc_mask = 1 << AT91CAP9_ID_US2, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk mmc0_clk = { + .name = "mci0_clk", + .pmc_mask = 1 << AT91CAP9_ID_MCI0, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk mmc1_clk = { + .name = "mci1_clk", + .pmc_mask = 1 << AT91CAP9_ID_MCI1, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk can_clk = { + .name = "can_clk", + .pmc_mask = 1 << AT91CAP9_ID_CAN, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk twi_clk = { + .name = "twi_clk", + .pmc_mask = 1 << AT91CAP9_ID_TWI, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk spi0_clk = { + .name = "spi0_clk", + .pmc_mask = 1 << AT91CAP9_ID_SPI0, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk spi1_clk = { + .name = "spi1_clk", + .pmc_mask = 1 << AT91CAP9_ID_SPI1, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk ssc0_clk = { + .name = "ssc0_clk", + .pmc_mask = 1 << AT91CAP9_ID_SSC0, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk ssc1_clk = { + .name = "ssc1_clk", + .pmc_mask = 1 << AT91CAP9_ID_SSC1, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk ac97_clk = { + .name = "ac97_clk", + .pmc_mask = 1 << AT91CAP9_ID_AC97C, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk tcb_clk = { + .name = "tcb_clk", + .pmc_mask = 1 << AT91CAP9_ID_TCB, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk pwm_clk = { + .name = "pwm_clk", + .pmc_mask = 1 << AT91CAP9_ID_PWMC, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk macb_clk = { + .name = "pclk", + .pmc_mask = 1 << AT91CAP9_ID_EMAC, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk aestdes_clk = { + .name = "aestdes_clk", + .pmc_mask = 1 << AT91CAP9_ID_AESTDES, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk adc_clk = { + .name = "adc_clk", + .pmc_mask = 1 << AT91CAP9_ID_ADC, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk isi_clk = { + .name = "isi_clk", + .pmc_mask = 1 << AT91CAP9_ID_ISI, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk lcdc_clk = { + .name = "lcdc_clk", + .pmc_mask = 1 << AT91CAP9_ID_LCDC, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk dma_clk = { + .name = "dma_clk", + .pmc_mask = 1 << AT91CAP9_ID_DMA, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk udphs_clk = { + .name = "udphs_clk", + .pmc_mask = 1 << AT91CAP9_ID_UDPHS, + .type = CLK_TYPE_PERIPHERAL, +}; +static struct clk ohci_clk = { + .name = "ohci_clk", + .pmc_mask = 1 << AT91CAP9_ID_UHP, + .type = CLK_TYPE_PERIPHERAL, +}; + +static struct clk *periph_clocks[] __initdata = { + &pioABCD_clk, + &mpb0_clk, + &mpb1_clk, + &mpb2_clk, + &mpb3_clk, + &mpb4_clk, + &usart0_clk, + &usart1_clk, + &usart2_clk, + &mmc0_clk, + &mmc1_clk, + &can_clk, + &twi_clk, + &spi0_clk, + &spi1_clk, + &ssc0_clk, + &ssc1_clk, + &ac97_clk, + &tcb_clk, + &pwm_clk, + &macb_clk, + &aestdes_clk, + &adc_clk, + &isi_clk, + &lcdc_clk, + &dma_clk, + &udphs_clk, + &ohci_clk, + // irq0 .. irq1 +}; + +static struct clk_lookup periph_clocks_lookups[] = { + /* One additional fake clock for macb_hclk */ + CLKDEV_CON_ID("hclk", &macb_clk), + CLKDEV_CON_DEV_ID("hclk", "atmel_usba_udc", &utmi_clk), + CLKDEV_CON_DEV_ID("pclk", "atmel_usba_udc", &udphs_clk), + CLKDEV_CON_DEV_ID("mci_clk", "at91_mci.0", &mmc0_clk), + CLKDEV_CON_DEV_ID("mci_clk", "at91_mci.1", &mmc1_clk), + CLKDEV_CON_DEV_ID("spi_clk", "atmel_spi.0", &spi0_clk), + CLKDEV_CON_DEV_ID("spi_clk", "atmel_spi.1", &spi1_clk), + CLKDEV_CON_DEV_ID("t0_clk", "atmel_tcb.0", &tcb_clk), + CLKDEV_CON_DEV_ID("pclk", "ssc.0", &ssc0_clk), + CLKDEV_CON_DEV_ID("pclk", "ssc.1", &ssc1_clk), + /* fake hclk clock */ + CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &ohci_clk), + CLKDEV_CON_ID("pioA", &pioABCD_clk), + CLKDEV_CON_ID("pioB", &pioABCD_clk), + CLKDEV_CON_ID("pioC", &pioABCD_clk), + CLKDEV_CON_ID("pioD", &pioABCD_clk), +}; + +static struct clk_lookup usart_clocks_lookups[] = { + CLKDEV_CON_DEV_ID("usart", "atmel_usart.0", &mck), + CLKDEV_CON_DEV_ID("usart", "atmel_usart.1", &usart0_clk), + CLKDEV_CON_DEV_ID("usart", "atmel_usart.2", &usart1_clk), + CLKDEV_CON_DEV_ID("usart", "atmel_usart.3", &usart2_clk), +}; + +/* + * The four programmable clocks. + * You must configure pin multiplexing to bring these signals out. + */ +static struct clk pck0 = { + .name = "pck0", + .pmc_mask = AT91_PMC_PCK0, + .type = CLK_TYPE_PROGRAMMABLE, + .id = 0, +}; +static struct clk pck1 = { + .name = "pck1", + .pmc_mask = AT91_PMC_PCK1, + .type = CLK_TYPE_PROGRAMMABLE, + .id = 1, +}; +static struct clk pck2 = { + .name = "pck2", + .pmc_mask = AT91_PMC_PCK2, + .type = CLK_TYPE_PROGRAMMABLE, + .id = 2, +}; +static struct clk pck3 = { + .name = "pck3", + .pmc_mask = AT91_PMC_PCK3, + .type = CLK_TYPE_PROGRAMMABLE, + .id = 3, +}; + +static void __init at91cap9_register_clocks(void) +{ + int i; + + for (i = 0; i < ARRAY_SIZE(periph_clocks); i++) + clk_register(periph_clocks[i]); + + clkdev_add_table(periph_clocks_lookups, + ARRAY_SIZE(periph_clocks_lookups)); + clkdev_add_table(usart_clocks_lookups, + ARRAY_SIZE(usart_clocks_lookups)); + + clk_register(&pck0); + clk_register(&pck1); + clk_register(&pck2); + clk_register(&pck3); +} + +static struct clk_lookup console_clock_lookup; + +void __init at91cap9_set_console_clock(int id) +{ + if (id >= ARRAY_SIZE(usart_clocks_lookups)) + return; + + console_clock_lookup.con_id = "usart"; + console_clock_lookup.clk = usart_clocks_lookups[id].clk; + clkdev_add(&console_clock_lookup); +} + +/* -------------------------------------------------------------------- + * GPIO + * -------------------------------------------------------------------- */ + +static struct at91_gpio_bank at91cap9_gpio[] __initdata = { + { + .id = AT91CAP9_ID_PIOABCD, + .regbase = AT91CAP9_BASE_PIOA, + }, { + .id = AT91CAP9_ID_PIOABCD, + .regbase = AT91CAP9_BASE_PIOB, + }, { + .id = AT91CAP9_ID_PIOABCD, + .regbase = AT91CAP9_BASE_PIOC, + }, { + .id = AT91CAP9_ID_PIOABCD, + .regbase = AT91CAP9_BASE_PIOD, + } +}; + +static void at91cap9_idle(void) +{ + at91_sys_write(AT91_PMC_SCDR, AT91_PMC_PCK); + cpu_do_idle(); +} + +/* -------------------------------------------------------------------- + * AT91CAP9 processor initialization + * -------------------------------------------------------------------- */ + +static void __init at91cap9_map_io(void) +{ + at91_init_sram(0, AT91CAP9_SRAM_BASE, AT91CAP9_SRAM_SIZE); +} + +static void __init at91cap9_ioremap_registers(void) +{ + at91_ioremap_shdwc(AT91CAP9_BASE_SHDWC); + at91_ioremap_rstc(AT91CAP9_BASE_RSTC); + at91sam926x_ioremap_pit(AT91CAP9_BASE_PIT); + at91sam9_ioremap_smc(0, AT91CAP9_BASE_SMC); +} + +static void __init at91cap9_initialize(void) +{ + arm_pm_idle = at91cap9_idle; + arm_pm_restart = at91sam9g45_restart; + at91_extern_irq = (1 << AT91CAP9_ID_IRQ0) | (1 << AT91CAP9_ID_IRQ1); + + /* Register GPIO subsystem */ + at91_gpio_init(at91cap9_gpio, 4); + + /* Remember the silicon revision */ + if (cpu_is_at91cap9_revB()) + system_rev = 0xB; + else if (cpu_is_at91cap9_revC()) + system_rev = 0xC; +} + +/* -------------------------------------------------------------------- + * Interrupt initialization + * -------------------------------------------------------------------- */ + +/* + * The default interrupt priority levels (0 = lowest, 7 = highest). + */ +static unsigned int at91cap9_default_irq_priority[NR_AIC_IRQS] __initdata = { + 7, /* Advanced Interrupt Controller (FIQ) */ + 7, /* System Peripherals */ + 1, /* Parallel IO Controller A, B, C and D */ + 0, /* MP Block Peripheral 0 */ + 0, /* MP Block Peripheral 1 */ + 0, /* MP Block Peripheral 2 */ + 0, /* MP Block Peripheral 3 */ + 0, /* MP Block Peripheral 4 */ + 5, /* USART 0 */ + 5, /* USART 1 */ + 5, /* USART 2 */ + 0, /* Multimedia Card Interface 0 */ + 0, /* Multimedia Card Interface 1 */ + 3, /* CAN */ + 6, /* Two-Wire Interface */ + 5, /* Serial Peripheral Interface 0 */ + 5, /* Serial Peripheral Interface 1 */ + 4, /* Serial Synchronous Controller 0 */ + 4, /* Serial Synchronous Controller 1 */ + 5, /* AC97 Controller */ + 0, /* Timer Counter 0, 1 and 2 */ + 0, /* Pulse Width Modulation Controller */ + 3, /* Ethernet */ + 0, /* Advanced Encryption Standard, Triple DES*/ + 0, /* Analog-to-Digital Converter */ + 0, /* Image Sensor Interface */ + 3, /* LCD Controller */ + 0, /* DMA Controller */ + 2, /* USB Device Port */ + 2, /* USB Host port */ + 0, /* Advanced Interrupt Controller (IRQ0) */ + 0, /* Advanced Interrupt Controller (IRQ1) */ +}; + +struct at91_init_soc __initdata at91cap9_soc = { + .map_io = at91cap9_map_io, + .default_irq_priority = at91cap9_default_irq_priority, + .ioremap_registers = at91cap9_ioremap_registers, + .register_clocks = at91cap9_register_clocks, + .init = at91cap9_initialize, +}; diff --git a/trunk/arch/arm/mach-at91/at91cap9_devices.c b/trunk/arch/arm/mach-at91/at91cap9_devices.c new file mode 100644 index 000000000000..d298fb7cb210 --- /dev/null +++ b/trunk/arch/arm/mach-at91/at91cap9_devices.c @@ -0,0 +1,1273 @@ +/* + * arch/arm/mach-at91/at91cap9_devices.c + * + * Copyright (C) 2007 Stelian Pop + * Copyright (C) 2007 Lead Tech Design + * Copyright (C) 2007 Atmel Corporation. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + */ +#include +#include +#include + +#include +#include +#include +#include + +#include