From 55a9d5d99dbd475e735de9b5b89efa39909a4b92 Mon Sep 17 00:00:00 2001 From: Stefan Roese Date: Fri, 16 Mar 2012 14:03:23 +0100 Subject: [PATCH] --- yaml --- r: 296710 b: refs/heads/master c: 9652e8bd16e73f7a34cabf1ab114aaa5c97db660 h: refs/heads/master v: v3 --- [refs] | 2 +- .../ABI/testing/sysfs-devices-soc | 58 - trunk/Documentation/IRQ-domain.txt | 117 -- .../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 | 18 - .../devicetree/bindings/gpio/led.txt | 6 +- .../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/vendor-prefixes.txt | 1 + trunk/Documentation/dynamic-debug-howto.txt | 30 +- .../feature-removal-schedule.txt | 14 + trunk/Documentation/filesystems/debugfs.txt | 5 +- trunk/Documentation/hwmon/jc42 | 26 +- trunk/Documentation/input/alps.txt | 3 +- trunk/Documentation/kernel-parameters.txt | 6 + trunk/MAINTAINERS | 15 +- trunk/Makefile | 2 +- trunk/arch/alpha/include/asm/futex.h | 2 +- trunk/arch/arm/Kconfig | 5 +- trunk/arch/arm/Kconfig.debug | 158 +- trunk/arch/arm/boot/.gitignore | 1 + 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 ---- 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 +- 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 | 18 - trunk/arch/arm/boot/dts/tegra-harmony.dts | 45 +- trunk/arch/arm/boot/dts/tegra-paz00.dts | 31 - trunk/arch/arm/boot/dts/tegra-seaboard.dts | 78 - 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 | 47 +- trunk/arch/arm/boot/dts/tegra30.dtsi | 59 +- .../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/gic.c | 95 +- trunk/arch/arm/common/vic.c | 16 +- trunk/arch/arm/configs/at91cap9_defconfig | 108 ++ trunk/arch/arm/configs/at91sam9g20_defconfig | 3 - trunk/arch/arm/configs/u8500_defconfig | 1 - .../arch/arm/include/asm/hardware/arm_timer.h | 5 - trunk/arch/arm/include/asm/hardware/gic.h | 4 +- trunk/arch/arm/include/asm/hardware/vic.h | 2 - trunk/arch/arm/include/asm/localtimer.h | 37 +- trunk/arch/arm/include/asm/pmu.h | 2 +- trunk/arch/arm/include/asm/smp_twd.h | 25 +- trunk/arch/arm/include/asm/system.h | 1 - trunk/arch/arm/kernel/ecard.c | 1 + trunk/arch/arm/kernel/perf_event.c | 45 +- trunk/arch/arm/kernel/perf_event_v6.c | 22 +- trunk/arch/arm/kernel/perf_event_v7.c | 11 +- trunk/arch/arm/kernel/perf_event_xscale.c | 20 +- trunk/arch/arm/kernel/process.c | 27 +- 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 | 396 +++++ trunk/arch/arm/mach-at91/at91cap9_devices.c | 1273 +++++++++++++++++ trunk/arch/arm/mach-at91/at91rm9200.c | 16 +- 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 | 25 +- .../arch/arm/mach-at91/at91sam9260_devices.c | 59 +- trunk/arch/arm/mach-at91/at91sam9261.c | 4 - .../arch/arm/mach-at91/at91sam9261_devices.c | 31 +- trunk/arch/arm/mach-at91/at91sam9263.c | 5 - .../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 | 9 - .../arch/arm/mach-at91/at91sam9g45_devices.c | 146 +- trunk/arch/arm/mach-at91/at91sam9g45_reset.S | 12 +- trunk/arch/arm/mach-at91/at91sam9rl.c | 4 - trunk/arch/arm/mach-at91/at91sam9rl_devices.c | 31 +- trunk/arch/arm/mach-at91/at91sam9x5.c | 359 ----- trunk/arch/arm/mach-at91/at91x40.c | 12 - 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 + .../arch/arm/mach-at91/include/mach/system.h | 50 + 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-bcmring/core.c | 23 +- .../arm/mach-bcmring/include/mach/system.h | 28 + trunk/arch/arm/mach-clps711x/common.c | 16 - .../arm/mach-clps711x/include/mach/system.h | 35 + .../arm/mach-cns3xxx/include/mach/system.h | 25 + .../arm/mach-davinci/include/mach/system.h | 21 + .../arch/arm/mach-dove/include/mach/system.h | 17 + trunk/arch/arm/mach-ebsa110/core.c | 25 - .../arm/mach-ebsa110/include/mach/system.h | 37 + trunk/arch/arm/mach-ep93xx/core.c | 46 +- .../arm/mach-ep93xx/include/mach/system.h | 7 + trunk/arch/arm/mach-ep93xx/vision_ep9307.c | 2 + trunk/arch/arm/mach-exynos/common.c | 14 +- trunk/arch/arm/mach-exynos/dma.c | 38 +- .../arm/mach-exynos/include/mach/system.h | 20 + .../arm/mach-exynos/mach-universal_c210.c | 2 + trunk/arch/arm/mach-exynos/mct.c | 18 +- .../arm/mach-footbridge/include/mach/system.h | 13 + trunk/arch/arm/mach-gemini/Makefile | 2 +- trunk/arch/arm/mach-gemini/idle.c | 29 - .../arm/mach-gemini/include/mach/system.h | 14 + trunk/arch/arm/mach-gemini/irq.c | 4 +- trunk/arch/arm/mach-h720x/common.c | 18 - .../arch/arm/mach-h720x/include/mach/system.h | 27 + trunk/arch/arm/mach-highbank/Makefile | 1 + trunk/arch/arm/mach-highbank/highbank.c | 3 - .../arm/mach-highbank/include/mach/system.h | 24 + trunk/arch/arm/mach-highbank/localtimer.c | 40 + trunk/arch/arm/mach-imx/Kconfig | 8 - trunk/arch/arm/mach-imx/Makefile | 2 +- trunk/arch/arm/mach-imx/Makefile.boot | 3 - trunk/arch/arm/mach-imx/clock-imx27.c | 18 - trunk/arch/arm/mach-imx/imx27-dt.c | 89 -- trunk/arch/arm/mach-imx/imx51-dt.c | 5 +- trunk/arch/arm/mach-imx/imx53-dt.c | 5 +- trunk/arch/arm/mach-imx/localtimer.c | 35 + trunk/arch/arm/mach-imx/mach-imx6q.c | 6 +- trunk/arch/arm/mach-imx/mm-imx3.c | 52 +- trunk/arch/arm/mach-imx/mm-imx5.c | 28 +- trunk/arch/arm/mach-imx/pm-imx27.c | 3 +- trunk/arch/arm/mach-integrator/core.c | 70 +- trunk/arch/arm/mach-integrator/impd1.c | 9 +- .../arm/mach-integrator/include/mach/system.h | 33 + .../arch/arm/mach-integrator/integrator_cp.c | 49 +- .../arm/mach-iop13xx/include/mach/system.h | 13 + .../arm/mach-iop32x/include/mach/system.h | 13 + .../arm/mach-iop33x/include/mach/system.h | 13 + .../arm/mach-ixp2000/include/mach/system.h | 14 + trunk/arch/arm/mach-ixp23xx/core.c | 3 - .../arm/mach-ixp23xx/include/mach/system.h | 16 + trunk/arch/arm/mach-ixp4xx/common.c | 6 - .../arm/mach-ixp4xx/include/mach/system.h | 19 + .../arm/mach-kirkwood/include/mach/system.h | 17 + .../arm/mach-ks8695/include/mach/system.h | 27 + .../arm/mach-lpc32xx/include/mach/system.h | 27 + trunk/arch/arm/mach-lpc32xx/phy3250.c | 32 +- trunk/arch/arm/mach-mmp/Kconfig | 10 - trunk/arch/arm/mach-mmp/Makefile | 1 - trunk/arch/arm/mach-mmp/include/mach/system.h | 16 + trunk/arch/arm/mach-mmp/mmp-dt.c | 75 - trunk/arch/arm/mach-mmp/pxa168.c | 2 - trunk/arch/arm/mach-msm/board-msm8x60.c | 8 +- trunk/arch/arm/mach-msm/idle.S | 36 + trunk/arch/arm/mach-msm/idle.c | 49 - trunk/arch/arm/mach-msm/include/mach/system.h | 1 + trunk/arch/arm/mach-msm/timer.c | 79 +- .../arm/mach-mv78xx0/include/mach/system.h | 17 + trunk/arch/arm/mach-mxs/devices.c | 8 +- trunk/arch/arm/mach-mxs/devices/amba-duart.c | 2 +- trunk/arch/arm/mach-mxs/include/mach/system.h | 25 + trunk/arch/arm/mach-mxs/pm.c | 3 +- trunk/arch/arm/mach-netx/fb.c | 13 +- .../arch/arm/mach-netx/include/mach/system.h | 28 + trunk/arch/arm/mach-nomadik/board-nhk8815.c | 24 +- trunk/arch/arm/mach-nomadik/cpu-8815.c | 9 +- .../arm/mach-nomadik/include/mach/setup.h | 19 + .../arm/mach-nomadik/include/mach/system.h | 32 + .../arch/arm/mach-omap1/include/mach/system.h | 5 + trunk/arch/arm/mach-omap1/pm.c | 19 +- trunk/arch/arm/mach-omap2/Kconfig | 1 + trunk/arch/arm/mach-omap2/Makefile | 1 + trunk/arch/arm/mach-omap2/board-generic.c | 111 +- trunk/arch/arm/mach-omap2/common.h | 12 - trunk/arch/arm/mach-omap2/emu.c | 26 +- trunk/arch/arm/mach-omap2/id.c | 1 + .../arch/arm/mach-omap2/include/mach/system.h | 5 + trunk/arch/arm/mach-omap2/irq.c | 60 +- trunk/arch/arm/mach-omap2/mailbox.c | 3 +- trunk/arch/arm/mach-omap2/omap-iommu.c | 3 +- trunk/arch/arm/mach-omap2/omap4-common.c | 2 + trunk/arch/arm/mach-omap2/pm.c | 8 - trunk/arch/arm/mach-omap2/pm24xx.c | 4 +- trunk/arch/arm/mach-omap2/pm34xx.c | 6 +- trunk/arch/arm/mach-omap2/pm44xx.c | 8 +- trunk/arch/arm/mach-omap2/prm_common.c | 1 + trunk/arch/arm/mach-omap2/timer-mpu.c | 39 + trunk/arch/arm/mach-omap2/timer.c | 22 +- trunk/arch/arm/mach-omap2/twl-common.c | 1 - .../arm/mach-orion5x/include/mach/system.h | 19 + .../arm/mach-picoxcell/include/mach/system.h | 26 + .../arm/mach-pnx4008/include/mach/system.h | 29 + .../arm/mach-prima2/include/mach/system.h | 17 + trunk/arch/arm/mach-prima2/irq.c | 2 +- trunk/arch/arm/mach-pxa/generic.h | 1 - trunk/arch/arm/mach-pxa/include/mach/system.h | 15 + trunk/arch/arm/mach-pxa/mfp-pxa2xx.c | 7 + trunk/arch/arm/mach-pxa/pxa25x.c | 2 +- trunk/arch/arm/mach-pxa/pxa27x.c | 2 +- trunk/arch/arm/mach-pxa/pxa3xx.c | 1 - trunk/arch/arm/mach-pxa/pxa95x.c | 1 - trunk/arch/arm/mach-realview/core.h | 20 +- .../mach-realview/include/mach/irqs-pb1176.h | 2 +- .../arm/mach-realview/include/mach/system.h | 33 + trunk/arch/arm/mach-realview/realview_eb.c | 105 +- .../arch/arm/mach-realview/realview_pb1176.c | 78 +- .../arch/arm/mach-realview/realview_pb11mp.c | 99 +- trunk/arch/arm/mach-realview/realview_pba8.c | 78 +- trunk/arch/arm/mach-realview/realview_pbx.c | 98 +- trunk/arch/arm/mach-rpc/include/mach/system.h | 13 + .../arm/mach-s3c2410/include/mach/system.h | 54 + trunk/arch/arm/mach-s3c2412/s3c2412.c | 4 +- trunk/arch/arm/mach-s3c2416/s3c2416.c | 3 + trunk/arch/arm/mach-s3c2440/common.h | 2 +- trunk/arch/arm/mach-s3c2440/mach-anubis.c | 2 +- trunk/arch/arm/mach-s3c2440/mach-at2440evb.c | 2 +- trunk/arch/arm/mach-s3c2440/mach-gta02.c | 2 +- trunk/arch/arm/mach-s3c2440/mach-mini2440.c | 2 +- trunk/arch/arm/mach-s3c2440/mach-nexcoder.c | 2 +- trunk/arch/arm/mach-s3c2440/mach-osiris.c | 2 +- trunk/arch/arm/mach-s3c2440/mach-rx1950.c | 2 +- trunk/arch/arm/mach-s3c2440/mach-rx3715.c | 2 +- trunk/arch/arm/mach-s3c2440/mach-smdk2440.c | 2 +- trunk/arch/arm/mach-s3c2440/s3c2440.c | 13 - trunk/arch/arm/mach-s3c2440/s3c244x.c | 12 + .../arm/mach-s3c64xx/include/mach/system.h | 19 + trunk/arch/arm/mach-s5p64x0/common.c | 15 +- trunk/arch/arm/mach-s5p64x0/dma.c | 22 +- .../arm/mach-s5p64x0/include/mach/system.h | 21 + trunk/arch/arm/mach-s5pc100/common.c | 12 + trunk/arch/arm/mach-s5pc100/dma.c | 38 +- .../arm/mach-s5pc100/include/mach/system.h | 19 + trunk/arch/arm/mach-s5pv210/common.c | 12 + trunk/arch/arm/mach-s5pv210/dma.c | 38 +- .../arm/mach-s5pv210/include/mach/system.h | 21 + .../arm/mach-sa1100/include/mach/system.h | 9 + trunk/arch/arm/mach-shark/core.c | 6 - .../arch/arm/mach-shark/include/mach/system.h | 13 + trunk/arch/arm/mach-shmobile/Makefile | 1 + .../arm/mach-shmobile/include/mach/common.h | 2 - .../arm/mach-shmobile/include/mach/system.h | 5 + trunk/arch/arm/mach-shmobile/localtimer.c | 26 + trunk/arch/arm/mach-shmobile/platsmp.c | 1 + 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 | 10 - .../arm/mach-spear3xx/include/mach/system.h | 19 + trunk/arch/arm/mach-spear3xx/spear300.c | 14 +- trunk/arch/arm/mach-spear3xx/spear3xx.c | 27 +- trunk/arch/arm/mach-spear6xx/Kconfig | 7 +- trunk/arch/arm/mach-spear6xx/Makefile | 6 - trunk/arch/arm/mach-spear6xx/clock.c | 14 +- .../arm/mach-spear6xx/include/mach/system.h | 19 + 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/Makefile | 2 +- trunk/arch/arm/mach-tegra/common.c | 3 +- .../arch/arm/mach-tegra/include/mach/system.h | 28 + trunk/arch/arm/mach-tegra/localtimer.c | 26 + trunk/arch/arm/mach-tegra/timer.c | 22 +- trunk/arch/arm/mach-u300/core.c | 85 +- .../arch/arm/mach-u300/include/mach/system.h | 14 + trunk/arch/arm/mach-ux500/Kconfig | 9 +- trunk/arch/arm/mach-ux500/Makefile | 1 + trunk/arch/arm/mach-ux500/Makefile.boot | 1 - trunk/arch/arm/mach-ux500/board-mop500-sdi.c | 31 +- trunk/arch/arm/mach-ux500/board-mop500.c | 171 +-- trunk/arch/arm/mach-ux500/board-mop500.h | 8 +- 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/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 | 92 +- 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.h | 176 +-- trunk/arch/arm/mach-ux500/dma-db5500.c | 3 +- .../arm/mach-ux500/include/mach/db8500-regs.h | 3 - .../arch/arm/mach-ux500/include/mach/setup.h | 11 +- .../arch/arm/mach-ux500/include/mach/system.h | 20 + 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-versatile/core.c | 77 +- trunk/arch/arm/mach-versatile/core.h | 20 +- .../arm/mach-versatile/include/mach/system.h | 33 + trunk/arch/arm/mach-versatile/versatile_pb.c | 18 +- trunk/arch/arm/mach-vexpress/Kconfig | 47 +- trunk/arch/arm/mach-vexpress/Makefile.boot | 6 - trunk/arch/arm/mach-vexpress/core.h | 24 +- trunk/arch/arm/mach-vexpress/ct-ca9x4.c | 75 +- .../arm/mach-vexpress/include/mach/ct-ca9x4.h | 5 +- .../mach-vexpress/include/mach/debug-macro.S | 30 +- .../arm/mach-vexpress/include/mach/irqs.h | 2 +- .../mach-vexpress/include/mach/motherboard.h | 58 +- .../arm/mach-vexpress/include/mach/system.h | 33 + .../mach-vexpress/include/mach/uncompress.h | 22 +- trunk/arch/arm/mach-vexpress/platsmp.c | 160 +-- trunk/arch/arm/mach-vexpress/v2m.c | 301 +--- .../arm/mach-vt8500/include/mach/system.h | 5 + trunk/arch/arm/mach-w90x900/dev.c | 1 - .../arm/mach-w90x900/include/mach/system.h | 19 + .../arch/arm/mach-zynq/include/mach/system.h | 23 + trunk/arch/arm/mm/proc-v7.S | 4 +- trunk/arch/arm/plat-mxc/include/mach/common.h | 1 - trunk/arch/arm/plat-mxc/include/mach/system.h | 25 + .../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/include/plat/irqs.h | 10 +- .../arch/arm/plat-omap/include/plat/system.h | 15 + trunk/arch/arm/plat-omap/omap_device.c | 2 +- trunk/arch/arm/plat-s3c24xx/cpu.c | 27 - trunk/arch/arm/plat-s3c24xx/dma.c | 2 +- trunk/arch/arm/plat-samsung/devs.c | 2 +- .../arch/arm/plat-spear/include/plat/system.h | 26 + trunk/arch/arm/plat-spear/time.c | 6 +- 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/c6x/Kconfig | 1 - trunk/arch/c6x/include/asm/irq.h | 245 +++- trunk/arch/c6x/include/asm/processor.h | 4 +- trunk/arch/c6x/kernel/irq.c | 612 +++++++- trunk/arch/c6x/platforms/megamod-pic.c | 25 +- trunk/arch/microblaze/Kconfig | 1 - trunk/arch/microblaze/include/asm/hardirq.h | 16 + trunk/arch/microblaze/include/asm/irq.h | 42 +- trunk/arch/microblaze/kernel/intc.c | 61 +- trunk/arch/microblaze/kernel/irq.c | 24 +- trunk/arch/microblaze/kernel/setup.c | 2 + trunk/arch/mips/Kconfig | 1 - trunk/arch/mips/alchemy/common/time.c | 2 +- trunk/arch/mips/ath79/dev-wmac.c | 2 +- trunk/arch/mips/configs/nlm_xlp_defconfig | 4 +- trunk/arch/mips/configs/nlm_xlr_defconfig | 4 +- trunk/arch/mips/configs/powertv_defconfig | 2 +- trunk/arch/mips/include/asm/irq.h | 5 +- .../include/asm/mach-au1x00/gpio-au1300.h | 20 +- trunk/arch/mips/include/asm/page.h | 3 - trunk/arch/mips/kernel/prom.c | 14 + trunk/arch/mips/kernel/smp-bmips.c | 1 - trunk/arch/mips/kernel/traps.c | 2 +- trunk/arch/mips/kernel/vmlinux.lds.S | 1 - trunk/arch/mips/mm/fault.c | 36 +- trunk/arch/mips/pci/pci.c | 5 +- trunk/arch/mips/pmc-sierra/yosemite/ht-irq.c | 10 - trunk/arch/mips/txx9/generic/7segled.c | 2 +- trunk/arch/openrisc/include/asm/prom.h | 10 +- trunk/arch/powerpc/Kconfig | 1 - trunk/arch/powerpc/include/asm/ehv_pic.h | 2 +- trunk/arch/powerpc/include/asm/i8259.h | 2 +- trunk/arch/powerpc/include/asm/irq.h | 247 +++- trunk/arch/powerpc/include/asm/mpic.h | 2 +- trunk/arch/powerpc/include/asm/xics.h | 2 +- trunk/arch/powerpc/kernel/irq.c | 617 +++++++- .../powerpc/platforms/512x/mpc5121_ads_cpld.c | 12 +- trunk/arch/powerpc/platforms/52xx/media5200.c | 15 +- .../arch/powerpc/platforms/52xx/mpc52xx_gpt.c | 16 +- .../arch/powerpc/platforms/52xx/mpc52xx_pic.c | 12 +- .../powerpc/platforms/82xx/pq2ads-pci-pic.c | 14 +- .../platforms/85xx/socrates_fpga_pic.c | 15 +- trunk/arch/powerpc/platforms/86xx/gef_pic.c | 15 +- trunk/arch/powerpc/platforms/cell/axon_msi.c | 29 +- .../powerpc/platforms/cell/beat_interrupt.c | 16 +- trunk/arch/powerpc/platforms/cell/interrupt.c | 16 +- .../arch/powerpc/platforms/cell/spider-pic.c | 14 +- .../platforms/embedded6xx/flipper-pic.c | 24 +- .../powerpc/platforms/embedded6xx/hlwd-pic.c | 29 +- trunk/arch/powerpc/platforms/iseries/irq.c | 11 +- trunk/arch/powerpc/platforms/powermac/pic.c | 26 +- trunk/arch/powerpc/platforms/powermac/smp.c | 9 +- trunk/arch/powerpc/platforms/ps3/interrupt.c | 11 +- trunk/arch/powerpc/platforms/wsp/opb_pic.c | 26 +- trunk/arch/powerpc/sysdev/cpm1.c | 9 +- trunk/arch/powerpc/sysdev/cpm2_pic.c | 23 +- trunk/arch/powerpc/sysdev/ehv_pic.c | 14 +- trunk/arch/powerpc/sysdev/fsl_msi.c | 10 +- trunk/arch/powerpc/sysdev/fsl_msi.h | 2 +- trunk/arch/powerpc/sysdev/i8259.c | 15 +- trunk/arch/powerpc/sysdev/ipic.c | 31 +- trunk/arch/powerpc/sysdev/ipic.h | 2 +- trunk/arch/powerpc/sysdev/mpc8xx_pic.c | 11 +- trunk/arch/powerpc/sysdev/mpic.c | 17 +- trunk/arch/powerpc/sysdev/mpic_msi.c | 2 +- trunk/arch/powerpc/sysdev/mv64x60_pic.c | 11 +- trunk/arch/powerpc/sysdev/qe_lib/qe_ic.c | 26 +- trunk/arch/powerpc/sysdev/qe_lib/qe_ic.h | 2 +- trunk/arch/powerpc/sysdev/tsi108_pci.c | 13 +- trunk/arch/powerpc/sysdev/uic.c | 26 +- trunk/arch/powerpc/sysdev/xics/xics-common.c | 25 +- trunk/arch/powerpc/sysdev/xilinx_intc.c | 19 +- trunk/arch/sparc/include/asm/prom.h | 10 +- trunk/arch/x86/Kconfig | 5 - trunk/arch/x86/crypto/aesni-intel_glue.c | 12 +- trunk/arch/x86/crypto/crc32c-intel.c | 11 +- .../x86/crypto/ghash-clmulni-intel_glue.c | 12 +- trunk/arch/x86/ia32/ia32_aout.c | 14 +- trunk/arch/x86/include/asm/cpu_device_id.h | 13 - trunk/arch/x86/include/asm/cpufeature.h | 1 - trunk/arch/x86/include/asm/irq_controller.h | 12 + trunk/arch/x86/include/asm/prom.h | 10 + trunk/arch/x86/kernel/cpu/Makefile | 1 - trunk/arch/x86/kernel/cpu/match.c | 92 -- trunk/arch/x86/kernel/cpu/scattered.c | 1 - trunk/arch/x86/kernel/devicetree.c | 101 +- trunk/arch/x86/kernel/microcode_core.c | 15 - trunk/arch/x86/lib/delay.c | 4 +- trunk/arch/x86/mm/hugetlbpage.c | 4 +- trunk/arch/x86/pci/acpi.c | 22 +- trunk/drivers/acpi/processor_driver.c | 1 - trunk/drivers/acpi/processor_perflib.c | 22 - trunk/drivers/amba/bus.c | 105 +- trunk/drivers/base/Kconfig | 3 - trunk/drivers/base/Makefile | 1 - trunk/drivers/base/bus.c | 6 +- trunk/drivers/base/cpu.c | 11 - trunk/drivers/base/driver.c | 35 +- trunk/drivers/base/soc.c | 183 --- trunk/drivers/block/floppy.c | 2 +- trunk/drivers/clocksource/tcb_clksrc.c | 90 +- trunk/drivers/cpufreq/cpufreq-nforce2.c | 8 - trunk/drivers/cpufreq/e_powersaver.c | 20 +- trunk/drivers/cpufreq/elanfreq.c | 14 +- trunk/drivers/cpufreq/gx-suspmod.c | 9 +- trunk/drivers/cpufreq/longhaul.c | 8 +- trunk/drivers/cpufreq/longrun.c | 13 +- trunk/drivers/cpufreq/p4-clockmod.c | 17 +- trunk/drivers/cpufreq/powernow-k6.c | 12 +- trunk/drivers/cpufreq/powernow-k7.c | 14 +- trunk/drivers/cpufreq/powernow-k8.c | 19 +- trunk/drivers/cpufreq/sc520_freq.c | 14 +- trunk/drivers/cpufreq/speedstep-centrino.c | 24 +- trunk/drivers/cpufreq/speedstep-ich.c | 15 - trunk/drivers/cpufreq/speedstep-lib.c | 1 - trunk/drivers/cpufreq/speedstep-smi.c | 15 - trunk/drivers/crypto/padlock-aes.c | 9 +- trunk/drivers/crypto/padlock-sha.c | 16 +- trunk/drivers/gpio/gpio-mpc8xxx.c | 30 +- trunk/drivers/gpu/drm/gma500/cdv_device.c | 2 + trunk/drivers/gpu/drm/gma500/framebuffer.c | 1 - trunk/drivers/gpu/drm/gma500/gtt.c | 9 +- trunk/drivers/gpu/drm/radeon/r600.c | 3 + .../gpu/drm/radeon/r600_blit_shaders.c | 8 + trunk/drivers/gpu/drm/radeon/r600d.h | 1 + .../gpu/drm/radeon/radeon_connectors.c | 2 +- trunk/drivers/gpu/drm/radeon/radeon_display.c | 18 +- .../drivers/gpu/drm/radeon/radeon_encoders.c | 6 +- trunk/drivers/gpu/drm/radeon/radeon_fb.c | 11 +- trunk/drivers/gpu/drm/radeon/radeon_mode.h | 2 +- trunk/drivers/hid/hid-core.c | 6 +- trunk/drivers/hid/hid-ids.h | 3 + trunk/drivers/hid/hid-input.c | 9 +- trunk/drivers/hid/usbhid/hid-quirks.c | 1 + trunk/drivers/hv/channel_mgmt.c | 87 ++ trunk/drivers/hv/hv.c | 4 +- trunk/drivers/hv/hv_kvp.c | 43 +- trunk/drivers/hv/hv_kvp.h | 184 +++ trunk/drivers/hv/hv_util.c | 3 + trunk/drivers/hv/hyperv_vmbus.h | 5 +- trunk/drivers/hwmon/Kconfig | 5 +- trunk/drivers/hwmon/coretemp.c | 17 +- trunk/drivers/hwmon/jc42.c | 30 +- trunk/drivers/hwmon/pmbus/pmbus_core.c | 3 +- trunk/drivers/hwmon/pmbus/zl6100.c | 10 +- trunk/drivers/hwmon/via-cputemp.c | 16 +- trunk/drivers/i2c/busses/i2c-gpio.c | 98 +- trunk/drivers/i2c/busses/i2c-pxa.c | 95 +- trunk/drivers/idle/intel_idle.c | 116 +- trunk/drivers/input/evdev.c | 2 +- trunk/drivers/input/gameport/gameport.c | 1 + trunk/drivers/input/misc/twl4030-vibra.c | 6 +- trunk/drivers/input/mouse/alps.c | 7 +- trunk/drivers/input/serio/serio.c | 1 + trunk/drivers/input/tablet/Kconfig | 2 + trunk/drivers/input/tablet/wacom_wac.c | 2 +- trunk/drivers/iommu/amd_iommu_init.c | 2 +- trunk/drivers/md/dm-flakey.c | 2 +- trunk/drivers/md/dm-io.c | 23 +- trunk/drivers/md/dm-ioctl.c | 2 +- trunk/drivers/md/dm-raid.c | 17 +- trunk/drivers/md/dm-thin-metadata.c | 25 +- trunk/drivers/md/raid1.c | 2 +- trunk/drivers/md/raid10.c | 38 +- .../drivers/media/video/cx18/cx18-alsa-main.c | 1 + trunk/drivers/media/video/ivtv/ivtvfb.c | 2 + .../media/video/s5p-fimc/fimc-mdevice.c | 5 +- .../drivers/media/video/s5p-tv/mixer_video.c | 1 + trunk/drivers/mfd/Kconfig | 1 - trunk/drivers/mfd/ab8500-core.c | 5 +- trunk/drivers/mfd/mfd-core.c | 2 +- trunk/drivers/mfd/s5m-core.c | 2 +- trunk/drivers/mfd/tps65910.c | 2 +- trunk/drivers/mfd/tps65912-core.c | 2 +- trunk/drivers/mfd/twl-core.c | 21 +- trunk/drivers/mfd/wm8350-irq.c | 1 - trunk/drivers/mfd/wm8994-core.c | 14 + trunk/drivers/mfd/wm8994-regmap.c | 1 + trunk/drivers/misc/atmel_tclib.c | 64 +- trunk/drivers/misc/c2port/core.c | 4 +- trunk/drivers/mmc/core/core.c | 3 + trunk/drivers/mmc/core/host.c | 4 +- trunk/drivers/mmc/core/mmc.c | 3 + trunk/drivers/mmc/core/sd.c | 8 +- trunk/drivers/mmc/core/sdio.c | 8 + trunk/drivers/mmc/host/at91_mci.c | 1 + trunk/drivers/mmc/host/atmel-mci.c | 21 +- trunk/drivers/mmc/host/mmci.c | 9 +- trunk/drivers/mmc/host/sdhci-esdhc-imx.c | 5 +- trunk/drivers/mtd/nand/atmel_nand.c | 136 +- trunk/drivers/net/caif/caif_hsi.c | 2 +- .../net/ethernet/atheros/atl1c/atl1c_main.c | 2 +- trunk/drivers/net/ethernet/broadcom/tg3.c | 51 +- .../net/ethernet/chelsio/cxgb4/cxgb4_main.c | 2 + .../ethernet/chelsio/cxgb4vf/cxgb4vf_main.c | 2 + trunk/drivers/net/ethernet/cisco/enic/enic.h | 2 +- .../net/ethernet/cisco/enic/enic_main.c | 2 +- .../drivers/net/ethernet/ibm/ehea/ehea_main.c | 4 +- trunk/drivers/net/ethernet/mellanox/mlx4/qp.c | 5 - .../ethernet/mellanox/mlx4/resource_tracker.c | 3 +- .../ethernet/oki-semi/pch_gbe/pch_gbe_param.c | 15 +- .../net/ethernet/packetengines/Kconfig | 1 + trunk/drivers/net/ethernet/qlogic/qla3xxx.c | 5 +- trunk/drivers/net/ethernet/realtek/r8169.c | 13 + trunk/drivers/net/hyperv/netvsc_drv.c | 4 +- trunk/drivers/net/phy/mdio-gpio.c | 4 +- trunk/drivers/net/phy/phy_device.c | 6 +- trunk/drivers/net/usb/usbnet.c | 2 + trunk/drivers/net/vmxnet3/vmxnet3_drv.c | 7 +- trunk/drivers/net/vmxnet3/vmxnet3_int.h | 4 +- .../net/wireless/ath/ath9k/ar5008_phy.c | 25 +- .../net/wireless/ath/ath9k/ar9002_hw.c | 19 + trunk/drivers/net/wireless/ath/ath9k/hw.h | 1 - trunk/drivers/net/wireless/ath/carl9170/tx.c | 9 +- .../net/wireless/brcm80211/brcmsmac/ampdu.c | 12 +- .../net/wireless/iwlwifi/iwl-agn-lib.c | 2 +- .../net/wireless/iwlwifi/iwl-agn-sta.c | 10 +- trunk/drivers/net/wireless/mwifiex/cfg80211.c | 1 + trunk/drivers/net/wireless/rt2x00/rt2x00dev.c | 3 +- trunk/drivers/of/Kconfig | 4 - trunk/drivers/of/Makefile | 1 - trunk/drivers/of/fdt.c | 1 - trunk/drivers/of/of_mdio.c | 2 +- trunk/drivers/of/of_mtd.c | 85 -- trunk/drivers/of/platform.c | 10 +- trunk/drivers/pci/pci-driver.c | 52 +- trunk/drivers/pci/xen-pcifront.c | 3 +- trunk/drivers/pcmcia/at91_cf.c | 5 +- trunk/drivers/pcmcia/ds.c | 11 +- trunk/drivers/pps/pps.c | 4 +- trunk/drivers/rapidio/devices/tsi721.c | 5 +- trunk/drivers/regulator/da9052-regulator.c | 8 +- trunk/drivers/regulator/tps65910-regulator.c | 2 +- trunk/drivers/rtc/rtc-at91sam9.c | 85 +- trunk/drivers/rtc/rtc-r9701.c | 14 +- trunk/drivers/s390/cio/ccwgroup.c | 2 + trunk/drivers/s390/cio/device.c | 8 +- trunk/drivers/s390/cio/qdio_main.c | 4 +- trunk/drivers/s390/net/smsgiucv_app.c | 9 +- trunk/drivers/scsi/sd_dif.c | 2 +- trunk/drivers/spi/spi-pl022.c | 2 +- trunk/drivers/ssb/main.c | 20 +- trunk/drivers/tty/Kconfig | 2 +- trunk/drivers/tty/serial/atmel_serial.c | 2 - trunk/drivers/tty/serial/pxa.c | 49 +- trunk/drivers/usb/Kconfig | 2 +- trunk/drivers/usb/core/driver.c | 66 +- trunk/drivers/usb/dwc3/dwc3-pci.c | 12 +- trunk/drivers/usb/gadget/Kconfig | 4 +- trunk/drivers/usb/gadget/at91_udc.c | 49 +- trunk/drivers/usb/gadget/atmel_usba_udc.c | 6 +- trunk/drivers/usb/host/ehci-atmel.c | 24 +- trunk/drivers/usb/host/ehci-fsl.c | 11 +- trunk/drivers/usb/host/ehci-fsl.h | 1 - trunk/drivers/usb/host/ohci-at91.c | 106 +- trunk/drivers/w1/masters/w1-gpio.c | 3 +- trunk/drivers/watchdog/at91rm9200_wdt.c | 8 +- trunk/fs/aio.c | 24 +- trunk/fs/binfmt_aout.c | 14 +- trunk/fs/btrfs/backref.c | 8 +- trunk/fs/btrfs/reada.c | 2 +- trunk/fs/cifs/dir.c | 20 +- trunk/fs/cifs/inode.c | 28 +- trunk/fs/dcache.c | 20 + trunk/fs/debugfs/inode.c | 149 +- trunk/fs/exec.c | 18 +- trunk/fs/sysfs/dir.c | 228 ++- trunk/fs/sysfs/inode.c | 3 + trunk/fs/sysfs/mount.c | 2 +- trunk/fs/sysfs/sysfs.h | 18 +- trunk/include/acpi/processor.h | 1 - trunk/include/linux/amba/bus.h | 36 - trunk/include/linux/amba/serial.h | 2 + trunk/include/linux/atmel_tc.h | 10 - trunk/include/linux/connector.h | 1 - trunk/include/linux/cpu.h | 7 - trunk/include/linux/dcache.h | 20 - trunk/include/linux/device.h | 10 +- trunk/include/linux/dynamic_debug.h | 19 +- trunk/include/linux/hyperv.h | 146 -- trunk/include/linux/irqdomain.h | 191 +-- trunk/include/linux/kmsg_dump.h | 9 +- trunk/include/linux/memcontrol.h | 5 - trunk/include/linux/mod_devicetable.h | 21 - trunk/include/linux/netdevice.h | 8 +- trunk/include/linux/of.h | 24 +- trunk/include/linux/of_address.h | 33 +- trunk/include/linux/of_irq.h | 4 +- trunk/include/linux/of_mtd.h | 19 - trunk/include/linux/of_platform.h | 12 +- trunk/include/linux/pci.h | 13 - trunk/include/linux/percpu.h | 29 +- trunk/include/linux/platform_data/atmel.h | 27 - trunk/include/linux/printk.h | 8 +- trunk/include/linux/sched.h | 3 +- trunk/include/linux/sys_soc.h | 37 - trunk/include/linux/tcp.h | 3 +- trunk/include/net/inetpeer.h | 4 +- trunk/include/net/tcp.h | 5 +- trunk/kernel/fork.c | 60 +- trunk/kernel/hung_task.c | 11 +- trunk/kernel/irq/irqdomain.c | 828 ++--------- trunk/kernel/irq/manage.c | 44 +- trunk/kernel/kprobes.c | 12 +- trunk/kernel/printk.c | 6 + trunk/kernel/sched/core.c | 4 +- trunk/lib/debugobjects.c | 14 +- trunk/lib/dma-debug.c | 3 +- trunk/lib/dynamic_debug.c | 270 ++-- trunk/lib/vsprintf.c | 12 +- trunk/mm/huge_memory.c | 6 +- trunk/mm/hugetlb.c | 2 +- trunk/mm/ksm.c | 11 - trunk/mm/memcontrol.c | 102 +- trunk/mm/mempolicy.c | 3 +- trunk/mm/migrate.c | 2 - trunk/mm/mlock.c | 3 +- trunk/mm/mmap.c | 17 +- trunk/mm/mprotect.c | 3 +- trunk/mm/page_cgroup.c | 4 +- trunk/mm/percpu-vm.c | 3 +- trunk/mm/swap.c | 8 +- trunk/mm/swap_state.c | 10 - trunk/net/bridge/br_multicast.c | 7 +- trunk/net/bridge/br_netfilter.c | 32 +- trunk/net/bridge/br_stp.c | 8 +- trunk/net/bridge/br_stp_if.c | 3 +- trunk/net/bridge/netfilter/ebtables.c | 26 +- trunk/net/core/rtnetlink.c | 18 +- trunk/net/ipv4/inetpeer.c | 81 +- trunk/net/ipv4/route.c | 12 +- trunk/net/ipv4/tcp_input.c | 23 +- trunk/net/ipv6/addrconf.c | 4 + trunk/net/mac80211/iface.c | 3 + trunk/net/mac80211/rate.c | 2 +- trunk/net/netfilter/nf_conntrack_core.c | 8 +- trunk/net/netfilter/nf_conntrack_netlink.c | 3 - trunk/net/openvswitch/actions.c | 44 +- trunk/net/openvswitch/datapath.c | 3 + trunk/scripts/mod/file2alias.c | 24 - trunk/sound/pci/hda/patch_realtek.c | 17 + trunk/sound/pci/rme9652/hdspm.c | 1 + trunk/sound/soc/samsung/neo1973_wm8753.c | 4 +- trunk/tools/hv/hv_kvp_daemon.c | 62 +- trunk/tools/perf/builtin-record.c | 33 +- trunk/tools/perf/builtin-top.c | 23 +- trunk/tools/perf/perf.h | 1 + trunk/tools/perf/util/top.h | 1 + trunk/tools/perf/util/util.c | 2 +- 777 files changed, 11959 insertions(+), 14210 deletions(-) delete mode 100644 trunk/Documentation/ABI/testing/sysfs-devices-soc delete mode 100644 trunk/Documentation/IRQ-domain.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 create 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/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/imx27-phytec-phycore.dts delete mode 100644 trunk/arch/arm/boot/dts/imx27.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 create mode 100644 trunk/arch/arm/boot/dts/spear600-evb.dts create 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 create mode 100644 trunk/arch/arm/configs/at91cap9_defconfig 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 create mode 100644 trunk/arch/arm/mach-at91/include/mach/system.h create mode 100644 trunk/arch/arm/mach-bcmring/include/mach/system.h create mode 100644 trunk/arch/arm/mach-clps711x/include/mach/system.h create mode 100644 trunk/arch/arm/mach-cns3xxx/include/mach/system.h create mode 100644 trunk/arch/arm/mach-davinci/include/mach/system.h create mode 100644 trunk/arch/arm/mach-dove/include/mach/system.h create mode 100644 trunk/arch/arm/mach-ebsa110/include/mach/system.h create mode 100644 trunk/arch/arm/mach-ep93xx/include/mach/system.h create mode 100644 trunk/arch/arm/mach-exynos/include/mach/system.h create mode 100644 trunk/arch/arm/mach-footbridge/include/mach/system.h delete mode 100644 trunk/arch/arm/mach-gemini/idle.c create mode 100644 trunk/arch/arm/mach-h720x/include/mach/system.h create mode 100644 trunk/arch/arm/mach-highbank/include/mach/system.h create mode 100644 trunk/arch/arm/mach-highbank/localtimer.c delete mode 100644 trunk/arch/arm/mach-imx/imx27-dt.c create mode 100644 trunk/arch/arm/mach-imx/localtimer.c create mode 100644 trunk/arch/arm/mach-integrator/include/mach/system.h create mode 100644 trunk/arch/arm/mach-iop13xx/include/mach/system.h create mode 100644 trunk/arch/arm/mach-iop32x/include/mach/system.h create mode 100644 trunk/arch/arm/mach-iop33x/include/mach/system.h create mode 100644 trunk/arch/arm/mach-ixp2000/include/mach/system.h create mode 100644 trunk/arch/arm/mach-ixp23xx/include/mach/system.h create mode 100644 trunk/arch/arm/mach-ixp4xx/include/mach/system.h create mode 100644 trunk/arch/arm/mach-kirkwood/include/mach/system.h create mode 100644 trunk/arch/arm/mach-ks8695/include/mach/system.h create mode 100644 trunk/arch/arm/mach-lpc32xx/include/mach/system.h create mode 100644 trunk/arch/arm/mach-mmp/include/mach/system.h delete mode 100644 trunk/arch/arm/mach-mmp/mmp-dt.c create mode 100644 trunk/arch/arm/mach-msm/idle.S delete mode 100644 trunk/arch/arm/mach-msm/idle.c create mode 100644 trunk/arch/arm/mach-mv78xx0/include/mach/system.h create mode 100644 trunk/arch/arm/mach-mxs/include/mach/system.h create mode 100644 trunk/arch/arm/mach-netx/include/mach/system.h create mode 100644 trunk/arch/arm/mach-nomadik/include/mach/setup.h create mode 100644 trunk/arch/arm/mach-nomadik/include/mach/system.h create mode 100644 trunk/arch/arm/mach-omap1/include/mach/system.h create mode 100644 trunk/arch/arm/mach-omap2/include/mach/system.h create mode 100644 trunk/arch/arm/mach-omap2/timer-mpu.c create mode 100644 trunk/arch/arm/mach-orion5x/include/mach/system.h create mode 100644 trunk/arch/arm/mach-picoxcell/include/mach/system.h create mode 100644 trunk/arch/arm/mach-pnx4008/include/mach/system.h create mode 100644 trunk/arch/arm/mach-prima2/include/mach/system.h create mode 100644 trunk/arch/arm/mach-pxa/include/mach/system.h create mode 100644 trunk/arch/arm/mach-realview/include/mach/system.h create mode 100644 trunk/arch/arm/mach-rpc/include/mach/system.h create mode 100644 trunk/arch/arm/mach-s3c2410/include/mach/system.h create mode 100644 trunk/arch/arm/mach-s3c64xx/include/mach/system.h create mode 100644 trunk/arch/arm/mach-s5p64x0/include/mach/system.h create mode 100644 trunk/arch/arm/mach-s5pc100/include/mach/system.h create mode 100644 trunk/arch/arm/mach-s5pv210/include/mach/system.h create mode 100644 trunk/arch/arm/mach-sa1100/include/mach/system.h create mode 100644 trunk/arch/arm/mach-shark/include/mach/system.h create mode 100644 trunk/arch/arm/mach-shmobile/localtimer.c create mode 100644 trunk/arch/arm/mach-spear3xx/include/mach/system.h create mode 100644 trunk/arch/arm/mach-spear6xx/include/mach/system.h delete mode 100644 trunk/arch/arm/mach-spear6xx/spear600.c delete mode 100644 trunk/arch/arm/mach-spear6xx/spear600_evb.c create mode 100644 trunk/arch/arm/mach-tegra/include/mach/system.h create mode 100644 trunk/arch/arm/mach-tegra/localtimer.c create mode 100644 trunk/arch/arm/mach-u300/include/mach/system.h create mode 100644 trunk/arch/arm/mach-ux500/include/mach/system.h create mode 100644 trunk/arch/arm/mach-ux500/localtimer.c create mode 100644 trunk/arch/arm/mach-versatile/include/mach/system.h create mode 100644 trunk/arch/arm/mach-vexpress/include/mach/system.h create mode 100644 trunk/arch/arm/mach-w90x900/include/mach/system.h create mode 100644 trunk/arch/arm/mach-zynq/include/mach/system.h create mode 100644 trunk/arch/arm/plat-mxc/include/mach/system.h create mode 100644 trunk/arch/arm/plat-omap/include/plat/system.h create mode 100644 trunk/arch/arm/plat-spear/include/plat/system.h create mode 100644 trunk/arch/arm/plat-versatile/localtimer.c delete mode 100644 trunk/arch/x86/include/asm/cpu_device_id.h create mode 100644 trunk/arch/x86/include/asm/irq_controller.h delete mode 100644 trunk/arch/x86/kernel/cpu/match.c delete mode 100644 trunk/drivers/base/soc.c create mode 100644 trunk/drivers/hv/hv_kvp.h delete mode 100644 trunk/drivers/of/of_mtd.c 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/sys_soc.h diff --git a/[refs] b/[refs] index 3ac5c381fa31..698ea58916dc 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d4ef467aea0fdcd5e75a4bbfaf97e579bbe532f3 +refs/heads/master: 9652e8bd16e73f7a34cabf1ab114aaa5c97db660 diff --git a/trunk/Documentation/ABI/testing/sysfs-devices-soc b/trunk/Documentation/ABI/testing/sysfs-devices-soc deleted file mode 100644 index 6d9cc253f2b2..000000000000 --- a/trunk/Documentation/ABI/testing/sysfs-devices-soc +++ /dev/null @@ -1,58 +0,0 @@ -What: /sys/devices/socX -Date: January 2012 -contact: Lee Jones -Description: - The /sys/devices/ directory contains a sub-directory for each - System-on-Chip (SoC) device on a running platform. Information - regarding each SoC can be obtained by reading sysfs files. This - functionality is only available if implemented by the platform. - - The directory created for each SoC will also house information - about devices which are commonly contained in /sys/devices/platform. - It has been agreed that if an SoC device exists, its supported - devices would be better suited to appear as children of that SoC. - -What: /sys/devices/socX/machine -Date: January 2012 -contact: Lee Jones -Description: - Read-only attribute common to all SoCs. Contains the SoC machine - name (e.g. Ux500). - -What: /sys/devices/socX/family -Date: January 2012 -contact: Lee Jones -Description: - Read-only attribute common to all SoCs. Contains SoC family name - (e.g. DB8500). - -What: /sys/devices/socX/soc_id -Date: January 2012 -contact: Lee Jones -Description: - Read-only attribute supported by most SoCs. In the case of - ST-Ericsson's chips this contains the SoC serial number. - -What: /sys/devices/socX/revision -Date: January 2012 -contact: Lee Jones -Description: - Read-only attribute supported by most SoCs. Contains the SoC's - manufacturing revision number. - -What: /sys/devices/socX/process -Date: January 2012 -contact: Lee Jones -Description: - Read-only attribute supported ST-Ericsson's silicon. Contains the - the process by which the silicon chip was manufactured. - -What: /sys/bus/soc -Date: January 2012 -contact: Lee Jones -Description: - The /sys/bus/soc/ directory contains the usual sub-folders - expected under most buses. /sys/bus/soc/devices is of particular - interest, as it contains a symlink for each SoC device found on - the system. Each symlink points back into the aforementioned - /sys/devices/socX devices. diff --git a/trunk/Documentation/IRQ-domain.txt b/trunk/Documentation/IRQ-domain.txt deleted file mode 100644 index 27dcaabfb4db..000000000000 --- a/trunk/Documentation/IRQ-domain.txt +++ /dev/null @@ -1,117 +0,0 @@ -irq_domain interrupt number mapping library - -The current design of the Linux kernel uses a single large number -space where each separate IRQ source is assigned a different number. -This is simple when there is only one interrupt controller, but in -systems with multiple interrupt controllers the kernel must ensure -that each one gets assigned non-overlapping allocations of Linux -IRQ numbers. - -The irq_alloc_desc*() and irq_free_desc*() APIs provide allocation of -irq numbers, but they don't provide any support for reverse mapping of -the controller-local IRQ (hwirq) number into the Linux IRQ number -space. - -The irq_domain library adds mapping between hwirq and IRQ numbers on -top of the irq_alloc_desc*() API. An irq_domain to manage mapping is -preferred over interrupt controller drivers open coding their own -reverse mapping scheme. - -irq_domain also implements translation from Device Tree interrupt -specifiers to hwirq numbers, and can be easily extended to support -other IRQ topology data sources. - -=== irq_domain usage === -An interrupt controller driver creates and registers an irq_domain by -calling one of the irq_domain_add_*() functions (each mapping method -has a different allocator function, more on that later). The function -will return a pointer to the irq_domain on success. The caller must -provide the allocator function with an irq_domain_ops structure with -the .map callback populated as a minimum. - -In most cases, the irq_domain will begin empty without any mappings -between hwirq and IRQ numbers. Mappings are added to the irq_domain -by calling irq_create_mapping() which accepts the irq_domain and a -hwirq number as arguments. If a mapping for the hwirq doesn't already -exist then it will allocate a new Linux irq_desc, associate it with -the hwirq, and call the .map() callback so the driver can perform any -required hardware setup. - -When an interrupt is received, irq_find_mapping() function should -be used to find the Linux IRQ number from the hwirq number. - -If the driver has the Linux IRQ number or the irq_data pointer, and -needs to know the associated hwirq number (such as in the irq_chip -callbacks) then it can be directly obtained from irq_data->hwirq. - -=== Types of irq_domain mappings === -There are several mechanisms available for reverse mapping from hwirq -to Linux irq, and each mechanism uses a different allocation function. -Which reverse map type should be used depends on the use case. Each -of the reverse map types are described below: - -==== Linear ==== -irq_domain_add_linear() - -The linear reverse map maintains a fixed size table indexed by the -hwirq number. When a hwirq is mapped, an irq_desc is allocated for -the hwirq, and the IRQ number is stored in the table. - -The Linear map is a good choice when the maximum number of hwirqs is -fixed and a relatively small number (~ < 256). The advantages of this -map are fixed time lookup for IRQ numbers, and irq_descs are only -allocated for in-use IRQs. The disadvantage is that the table must be -as large as the largest possible hwirq number. - -The majority of drivers should use the linear map. - -==== Tree ==== -irq_domain_add_tree() - -The irq_domain maintains a radix tree map from hwirq numbers to Linux -IRQs. When an hwirq is mapped, an irq_desc is allocated and the -hwirq is used as the lookup key for the radix tree. - -The tree map is a good choice if the hwirq number can be very large -since it doesn't need to allocate a table as large as the largest -hwirq number. The disadvantage is that hwirq to IRQ number lookup is -dependent on how many entries are in the table. - -Very few drivers should need this mapping. At the moment, powerpc -iseries is the only user. - -==== No Map ===- -irq_domain_add_nomap() - -The No Map mapping is to be used when the hwirq number is -programmable in the hardware. In this case it is best to program the -Linux IRQ number into the hardware itself so that no mapping is -required. Calling irq_create_direct_mapping() will allocate a Linux -IRQ number and call the .map() callback so that driver can program the -Linux IRQ number into the hardware. - -Most drivers cannot use this mapping. - -==== Legacy ==== -irq_domain_add_legacy() -irq_domain_add_legacy_isa() - -The Legacy mapping is a special case for drivers that already have a -range of irq_descs allocated for the hwirqs. It is used when the -driver cannot be immediately converted to use the linear mapping. For -example, many embedded system board support files use a set of #defines -for IRQ numbers that are passed to struct device registrations. In that -case the Linux IRQ numbers cannot be dynamically assigned and the legacy -mapping should be used. - -The legacy map assumes a contiguous range of IRQ numbers has already -been allocated for the controller and that the IRQ number can be -calculated by adding a fixed offset to the hwirq number, and -visa-versa. The disadvantage is that it requires the interrupt -controller to manage IRQ allocations and it requires an irq_desc to be -allocated for every hwirq, even if it is unused. - -The legacy map should only be used if fixed IRQ mappings must be -supported. For example, ISA controllers would use the legacy map for -mapping Linux IRQs 0-15 so that existing ISA drivers get the correct IRQ -numbers. 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 new file mode 100644 index 000000000000..f8e54f092328 --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/arm/spear.txt @@ -0,0 +1,8 @@ +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 50b363c5b884..eb4b530d64e1 100644 --- a/trunk/Documentation/devicetree/bindings/gpio/gpio_nvidia.txt +++ b/trunk/Documentation/devicetree/bindings/gpio/gpio_nvidia.txt @@ -2,25 +2,7 @@ NVIDIA Tegra 2 GPIO controller Required properties: - compatible : "nvidia,tegra20-gpio" -- reg : Physical base address and length of the controller's registers. -- interrupts : The interrupt outputs from the controller. - #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. - -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; -}; diff --git a/trunk/Documentation/devicetree/bindings/gpio/led.txt b/trunk/Documentation/devicetree/bindings/gpio/led.txt index 141087cf3107..fd2bd56e7195 100644 --- a/trunk/Documentation/devicetree/bindings/gpio/led.txt +++ b/trunk/Documentation/devicetree/bindings/gpio/led.txt @@ -7,9 +7,9 @@ Each LED is represented as a sub-node of the gpio-leds device. Each node's name represents the name of the corresponding LED. LED sub-node properties: -- gpios : Should specify the LED's GPIO, see "Specifying GPIO information - for devices" in Documentation/devicetree/booting-without-of.txt. Active - low LEDs should be indicated using flags in the GPIO specifier. +- gpios : Should specify the LED's GPIO, see "gpios property" in + Documentation/devicetree/gpio.txt. Active low LEDs should be + indicated using flags in the GPIO specifier. - label : (optional) The label for this LED. If omitted, the label is taken from the node name (excluding the unit address). - linux,default-trigger : (optional) This parameter, if present, is a 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/vendor-prefixes.txt b/trunk/Documentation/devicetree/bindings/vendor-prefixes.txt index ecc6a6cd26c1..a20008ab319a 100644 --- a/trunk/Documentation/devicetree/bindings/vendor-prefixes.txt +++ b/trunk/Documentation/devicetree/bindings/vendor-prefixes.txt @@ -30,6 +30,7 @@ national National Semiconductor nintendo Nintendo nvidia NVIDIA nxp NXP Semiconductors +picochip Picochip Ltd powervr Imagination Technologies qcom Qualcomm, Inc. ramtron Ramtron International diff --git a/trunk/Documentation/dynamic-debug-howto.txt b/trunk/Documentation/dynamic-debug-howto.txt index 74e6c7782678..f959909d7154 100644 --- a/trunk/Documentation/dynamic-debug-howto.txt +++ b/trunk/Documentation/dynamic-debug-howto.txt @@ -12,7 +12,7 @@ dynamically enabled per-callsite. Dynamic debug has even more useful features: * Simple query language allows turning on and off debugging statements by - matching any combination of 0 or 1 of: + matching any combination of: - source filename - function name @@ -79,24 +79,31 @@ Command Language Reference ========================== At the lexical level, a command comprises a sequence of words separated -by spaces or tabs. So these are all equivalent: +by whitespace characters. Note that newlines are treated as word +separators and do *not* end a command or allow multiple commands to +be done together. So these are all equivalent: nullarbor:~ # echo -c 'file svcsock.c line 1603 +p' > /dynamic_debug/control nullarbor:~ # echo -c ' file svcsock.c line 1603 +p ' > /dynamic_debug/control +nullarbor:~ # echo -c 'file svcsock.c\nline 1603 +p' > + /dynamic_debug/control nullarbor:~ # echo -n 'file svcsock.c line 1603 +p' > /dynamic_debug/control -Command submissions are bounded by a write() system call. -Multiple commands can be written together, separated by ';' or '\n'. +Commands are bounded by a write() system call. If you want to do +multiple commands you need to do a separate "echo" for each, like: - ~# echo "func pnpacpi_get_resources +p; func pnp_assign_mem +p" \ - > /dynamic_debug/control +nullarbor:~ # echo 'file svcsock.c line 1603 +p' > /proc/dprintk ;\ +> echo 'file svcsock.c line 1563 +p' > /proc/dprintk -If your query set is big, you can batch them too: +or even like: - ~# cat query-batch-file > /dynamic_debug/control +nullarbor:~ # ( +> echo 'file svcsock.c line 1603 +p' ;\ +> echo 'file svcsock.c line 1563 +p' ;\ +> ) > /proc/dprintk At the syntactical level, a command comprises a sequence of match specifications, followed by a flags change specification. @@ -137,12 +144,11 @@ func func svc_tcp_accept file - The given string is compared against either the full pathname, the - src-root relative pathname, or the basename of the source file of - each callsite. Examples: + The given string is compared against either the full + pathname or the basename of the source file of each + callsite. Examples: file svcsock.c - file kernel/freezer.c file /usr/src/packages/BUILD/sgi-enhancednfs-1.4/default/net/sunrpc/svcsock.c module diff --git a/trunk/Documentation/feature-removal-schedule.txt b/trunk/Documentation/feature-removal-schedule.txt index 1bea46a54b1c..a0ffac029a0d 100644 --- a/trunk/Documentation/feature-removal-schedule.txt +++ b/trunk/Documentation/feature-removal-schedule.txt @@ -510,3 +510,17 @@ Why: The pci_scan_bus_parented() interface creates a new root bus. The convert to using pci_scan_root_bus() so they can supply a list of bus resources when the bus is created. 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 diff --git a/trunk/Documentation/filesystems/debugfs.txt b/trunk/Documentation/filesystems/debugfs.txt index 4e2575873187..6872c91bce35 100644 --- a/trunk/Documentation/filesystems/debugfs.txt +++ b/trunk/Documentation/filesystems/debugfs.txt @@ -14,10 +14,7 @@ Debugfs is typically mounted with a command like: mount -t debugfs none /sys/kernel/debug -(Or an equivalent /etc/fstab line). -The debugfs root directory is accessible by anyone by default. To -restrict access to the tree the "uid", "gid" and "mode" mount -options can be used. +(Or an equivalent /etc/fstab line). Note that the debugfs API is exported GPL-only to modules. diff --git a/trunk/Documentation/hwmon/jc42 b/trunk/Documentation/hwmon/jc42 index a22ecf48f255..52729a756c1b 100644 --- a/trunk/Documentation/hwmon/jc42 +++ b/trunk/Documentation/hwmon/jc42 @@ -7,21 +7,29 @@ Supported chips: Addresses scanned: I2C 0x18 - 0x1f Datasheets: http://www.analog.com/static/imported-files/data_sheets/ADT7408.pdf - * IDT TSE2002B3, TS3000B3 - Prefix: 'tse2002b3', 'ts3000b3' + * Atmel AT30TS00 + Prefix: 'at30ts00' Addresses scanned: I2C 0x18 - 0x1f Datasheets: - http://www.idt.com/products/getdoc.cfm?docid=18715691 - http://www.idt.com/products/getdoc.cfm?docid=18715692 + http://www.atmel.com/Images/doc8585.pdf + * IDT TSE2002B3, TSE2002GB2, TS3000B3, TS3000GB2 + Prefix: 'tse2002', 'ts3000' + Addresses scanned: I2C 0x18 - 0x1f + Datasheets: + http://www.idt.com/sites/default/files/documents/IDT_TSE2002B3C_DST_20100512_120303152056.pdf + http://www.idt.com/sites/default/files/documents/IDT_TSE2002GB2A1_DST_20111107_120303145914.pdf + http://www.idt.com/sites/default/files/documents/IDT_TS3000B3A_DST_20101129_120303152013.pdf + http://www.idt.com/sites/default/files/documents/IDT_TS3000GB2A1_DST_20111104_120303151012.pdf * Maxim MAX6604 Prefix: 'max6604' Addresses scanned: I2C 0x18 - 0x1f Datasheets: http://datasheets.maxim-ic.com/en/ds/MAX6604.pdf - * Microchip MCP9805, MCP98242, MCP98243, MCP9843 - Prefixes: 'mcp9805', 'mcp98242', 'mcp98243', 'mcp9843' + * Microchip MCP9804, MCP9805, MCP98242, MCP98243, MCP9843 + Prefixes: 'mcp9804', 'mcp9805', 'mcp98242', 'mcp98243', 'mcp9843' Addresses scanned: I2C 0x18 - 0x1f Datasheets: + http://ww1.microchip.com/downloads/en/DeviceDoc/22203C.pdf http://ww1.microchip.com/downloads/en/DeviceDoc/21977b.pdf http://ww1.microchip.com/downloads/en/DeviceDoc/21996a.pdf http://ww1.microchip.com/downloads/en/DeviceDoc/22153c.pdf @@ -48,6 +56,12 @@ Supported chips: Datasheets: http://www.st.com/stonline/products/literature/ds/13447/stts424.pdf http://www.st.com/stonline/products/literature/ds/13448/stts424e02.pdf + * ST Microelectronics STTS2002, STTS3000 + Prefix: 'stts2002', 'stts3000' + Addresses scanned: I2C 0x18 - 0x1f + Datasheets: + http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00225278.pdf + http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATA_BRIEF/CD00270920.pdf * JEDEC JC 42.4 compliant temperature sensor chips Prefix: 'jc42' Addresses scanned: I2C 0x18 - 0x1f diff --git a/trunk/Documentation/input/alps.txt b/trunk/Documentation/input/alps.txt index f274c28b5103..2f95308251d4 100644 --- a/trunk/Documentation/input/alps.txt +++ b/trunk/Documentation/input/alps.txt @@ -13,7 +13,8 @@ Detection All ALPS touchpads should respond to the "E6 report" command sequence: E8-E6-E6-E6-E9. An ALPS touchpad should respond with either 00-00-0A or -00-00-64. +00-00-64 if no buttons are pressed. The bits 0-2 of the first byte will be 1s +if some buttons are pressed. If the E6 report is successful, the touchpad model is identified using the "E7 report" sequence: E8-E7-E7-E7-E9. The response is the model signature and is diff --git a/trunk/Documentation/kernel-parameters.txt b/trunk/Documentation/kernel-parameters.txt index 033d4e69b43b..d99fd9c0ec0e 100644 --- a/trunk/Documentation/kernel-parameters.txt +++ b/trunk/Documentation/kernel-parameters.txt @@ -2211,6 +2211,12 @@ bytes respectively. Such letter suffixes can also be entirely omitted. default: off. + printk.always_kmsg_dump= + Trigger kmsg_dump for cases other than kernel oops or + panics + Format: (1/Y/y=enable, 0/N/n=disable) + default: disabled + printk.time= Show timing data prefixed to each printk message line Format: (1/Y/y=enable, 0/N/n=disable) diff --git a/trunk/MAINTAINERS b/trunk/MAINTAINERS index f096b0d8e973..3321d75c6c7f 100644 --- a/trunk/MAINTAINERS +++ b/trunk/MAINTAINERS @@ -962,7 +962,7 @@ F: drivers/tty/serial/msm_serial.c F: drivers/platform/msm/ F: drivers/*/pm8???-* F: include/linux/mfd/pm8xxx/ -T: git git://codeaurora.org/quic/kernel/davidb/linux-msm.git +T: git git://git.kernel.org/pub/scm/linux/kernel/git/davidb/linux-msm.git S: Maintained ARM/TOSA MACHINE SUPPORT @@ -1310,7 +1310,7 @@ F: drivers/atm/ F: include/linux/atm* ATMEL AT91 MCI DRIVER -M: Nicolas Ferre +M: Ludovic Desroches L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) W: http://www.atmel.com/products/AT91/ W: http://www.at91.com/ @@ -1318,7 +1318,7 @@ S: Maintained F: drivers/mmc/host/at91_mci.c ATMEL AT91 / AT32 MCI DRIVER -M: Nicolas Ferre +M: Ludovic Desroches S: Maintained F: drivers/mmc/host/atmel-mci.c F: drivers/mmc/host/atmel-mci-regs.h @@ -3638,15 +3638,6 @@ S: Maintained T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq/core F: kernel/irq/ -IRQ DOMAINS (IRQ NUMBER MAPPING LIBRARY) -M: Benjamin Herrenschmidt -M: Grant Likely -T: git git://git.secretlab.ca/git/linux-2.6.git irqdomain/next -S: Maintained -F: Documentation/IRQ-domain.txt -F: include/linux/irqdomain.h -F: kernel/irq/irqdomain.c - ISAPNP M: Jaroslav Kysela S: Maintained diff --git a/trunk/Makefile b/trunk/Makefile index 66d13c917bc7..56d481727c30 100644 --- a/trunk/Makefile +++ b/trunk/Makefile @@ -1,7 +1,7 @@ VERSION = 3 PATCHLEVEL = 3 SUBLEVEL = 0 -EXTRAVERSION = -rc6 +EXTRAVERSION = -rc7 NAME = Saber-toothed Squirrel # *DOCUMENTATION* diff --git a/trunk/arch/alpha/include/asm/futex.h b/trunk/arch/alpha/include/asm/futex.h index e8a761aee088..f939794363ac 100644 --- a/trunk/arch/alpha/include/asm/futex.h +++ b/trunk/arch/alpha/include/asm/futex.h @@ -108,7 +108,7 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr, " lda $31,3b-2b(%0)\n" " .previous\n" : "+r"(ret), "=&r"(prev), "=&r"(cmp) - : "r"(uaddr), "r"((long)oldval), "r"(newval) + : "r"(uaddr), "r"((long)(int)oldval), "r"(newval) : "memory"); *uval = prev; diff --git a/trunk/arch/arm/Kconfig b/trunk/arch/arm/Kconfig index cabd8f556a1f..dfb0312f4e73 100644 --- a/trunk/arch/arm/Kconfig +++ b/trunk/arch/arm/Kconfig @@ -322,10 +322,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" @@ -1281,7 +1280,7 @@ config ARM_ERRATA_743622 depends on CPU_V7 help This option enables the workaround for the 743622 Cortex-A9 - (r2p0..r2p2) erratum. Under very rare conditions, a faulty + (r2p*) erratum. Under very rare conditions, a faulty optimisation in the Cortex-A9 Store Buffer may lead to data corruption. This workaround sets a specific bit in the diagnostic register of the Cortex-A9 which disables the Store Buffer diff --git a/trunk/arch/arm/Kconfig.debug b/trunk/arch/arm/Kconfig.debug index b895a2a92da8..e0d236d7ff73 100644 --- a/trunk/arch/arm/Kconfig.debug +++ b/trunk/arch/arm/Kconfig.debug @@ -81,14 +81,47 @@ choice prompt "Kernel low-level debugging port" depends on DEBUG_LL + config DEBUG_LL_UART_NONE + bool "No low-level debugging UART" + help + Say Y here if your platform doesn't provide a UART option + below. This relies on your platform choosing the right UART + definition internally in order for low-level debugging to + work. + + config DEBUG_ICEDCC + bool "Kernel low-level debugging via EmbeddedICE DCC channel" + help + Say Y here if you want the debug print routines to direct + their output to the EmbeddedICE macrocell's DCC channel using + co-processor 14. This is known to work on the ARM9 style ICE + channel and on the XScale with the PEEDI. + + Note that the system will appear to hang during boot if there + is nothing connected to read from the DCC. + config AT91_DEBUG_LL_DBGU0 bool "Kernel low-level debugging on rm9200, 9260/9g20, 9261/9g10 and 9rl" 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_FOOTBRIDGE_COM1 + bool "Kernel low-level debugging messages via footbridge 8250 at PCI COM1" + depends on FOOTBRIDGE + help + Say Y here if you want the debug print routines to direct + their output to the 8250 at PCI COM1. + + config DEBUG_DC21285_PORT + bool "Kernel low-level debugging messages via footbridge serial port" + depends on FOOTBRIDGE + help + Say Y here if you want the debug print routines to direct + their output to the serial port in the DC21285 (Footbridge). + config DEBUG_CLPS711X_UART1 bool "Kernel low-level debugging messages via UART1" depends on ARCH_CLPS711X @@ -103,20 +136,6 @@ choice Say Y here if you want the debug print routines to direct their output to the second serial port on these devices. - config DEBUG_DC21285_PORT - bool "Kernel low-level debugging messages via footbridge serial port" - depends on FOOTBRIDGE - help - Say Y here if you want the debug print routines to direct - their output to the serial port in the DC21285 (Footbridge). - - config DEBUG_FOOTBRIDGE_COM1 - bool "Kernel low-level debugging messages via footbridge 8250 at PCI COM1" - depends on FOOTBRIDGE - help - Say Y here if you want the debug print routines to direct - their output to the 8250 at PCI COM1. - config DEBUG_HIGHBANK_UART bool "Kernel low-level debugging messages via Highbank UART" depends on ARCH_HIGHBANK @@ -187,42 +206,38 @@ choice Say Y here if you want kernel low-level debugging support on i.MX6Q. - config DEBUG_MSM_UART1 - bool "Kernel low-level debugging messages via MSM UART1" - depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50 + config DEBUG_S3C_UART0 + depends on PLAT_SAMSUNG + bool "Use S3C UART 0 for low-level debug" help Say Y here if you want the debug print routines to direct - their output to the first serial port on MSM devices. + their output to UART 0. The port must have been initialised + by the boot-loader before use. - config DEBUG_MSM_UART2 - bool "Kernel low-level debugging messages via MSM UART2" - depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50 - help - Say Y here if you want the debug print routines to direct - their output to the second serial port on MSM devices. + The uncompressor code port configuration is now handled + by CONFIG_S3C_LOWLEVEL_UART_PORT. - config DEBUG_MSM_UART3 - bool "Kernel low-level debugging messages via MSM UART3" - depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50 + config DEBUG_S3C_UART1 + depends on PLAT_SAMSUNG + bool "Use S3C UART 1 for low-level debug" help Say Y here if you want the debug print routines to direct - their output to the third serial port on MSM devices. + their output to UART 1. The port must have been initialised + by the boot-loader before use. - config DEBUG_MSM8660_UART - bool "Kernel low-level debugging messages via MSM 8660 UART" - depends on ARCH_MSM8X60 - select MSM_HAS_DEBUG_UART_HS - help - Say Y here if you want the debug print routines to direct - their output to the serial port on MSM 8660 devices. + The uncompressor code port configuration is now handled + by CONFIG_S3C_LOWLEVEL_UART_PORT. - config DEBUG_MSM8960_UART - bool "Kernel low-level debugging messages via MSM 8960 UART" - depends on ARCH_MSM8960 - select MSM_HAS_DEBUG_UART_HS + config DEBUG_S3C_UART2 + depends on PLAT_SAMSUNG + bool "Use S3C UART 2 for low-level debug" help Say Y here if you want the debug print routines to direct - their output to the serial port on MSM 8960 devices. + their output to UART 2. The port must have been initialised + by the boot-loader before use. + + The uncompressor code port configuration is now handled + by CONFIG_S3C_LOWLEVEL_UART_PORT. config DEBUG_REALVIEW_STD_PORT bool "RealView Default UART" @@ -240,57 +255,42 @@ choice their output to the standard serial port on the RealView PB1176 platform. - config DEBUG_S3C_UART0 - depends on PLAT_SAMSUNG - bool "Use S3C UART 0 for low-level debug" + config DEBUG_MSM_UART1 + bool "Kernel low-level debugging messages via MSM UART1" + depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50 help Say Y here if you want the debug print routines to direct - their output to UART 0. The port must have been initialised - by the boot-loader before use. - - The uncompressor code port configuration is now handled - by CONFIG_S3C_LOWLEVEL_UART_PORT. + their output to the first serial port on MSM devices. - config DEBUG_S3C_UART1 - depends on PLAT_SAMSUNG - bool "Use S3C UART 1 for low-level debug" + config DEBUG_MSM_UART2 + bool "Kernel low-level debugging messages via MSM UART2" + depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50 help Say Y here if you want the debug print routines to direct - their output to UART 1. The port must have been initialised - by the boot-loader before use. - - The uncompressor code port configuration is now handled - by CONFIG_S3C_LOWLEVEL_UART_PORT. + their output to the second serial port on MSM devices. - config DEBUG_S3C_UART2 - depends on PLAT_SAMSUNG - bool "Use S3C UART 2 for low-level debug" + config DEBUG_MSM_UART3 + bool "Kernel low-level debugging messages via MSM UART3" + depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50 help Say Y here if you want the debug print routines to direct - their output to UART 2. The port must have been initialised - by the boot-loader before use. - - The uncompressor code port configuration is now handled - by CONFIG_S3C_LOWLEVEL_UART_PORT. + their output to the third serial port on MSM devices. - config DEBUG_LL_UART_NONE - bool "No low-level debugging UART" + config DEBUG_MSM8660_UART + bool "Kernel low-level debugging messages via MSM 8660 UART" + depends on ARCH_MSM8X60 + select MSM_HAS_DEBUG_UART_HS help - Say Y here if your platform doesn't provide a UART option - below. This relies on your platform choosing the right UART - definition internally in order for low-level debugging to - work. + Say Y here if you want the debug print routines to direct + their output to the serial port on MSM 8660 devices. - config DEBUG_ICEDCC - bool "Kernel low-level debugging via EmbeddedICE DCC channel" + config DEBUG_MSM8960_UART + bool "Kernel low-level debugging messages via MSM 8960 UART" + depends on ARCH_MSM8960 + select MSM_HAS_DEBUG_UART_HS help Say Y here if you want the debug print routines to direct - their output to the EmbeddedICE macrocell's DCC channel using - co-processor 14. This is known to work on the ARM9 style ICE - channel and on the XScale with the PEEDI. - - Note that the system will appear to hang during boot if there - is nothing connected to read from the DCC. + their output to the serial port on MSM 8960 devices. endchoice diff --git a/trunk/arch/arm/boot/.gitignore b/trunk/arch/arm/boot/.gitignore index ce1c5ff746e7..3c79f85975aa 100644 --- a/trunk/arch/arm/boot/.gitignore +++ b/trunk/arch/arm/boot/.gitignore @@ -3,3 +3,4 @@ zImage xipImage bootpImage uImage +*.dtb 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/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/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 new file mode 100644 index 000000000000..636292e18c90 --- /dev/null +++ b/trunk/arch/arm/boot/dts/spear600-evb.dts @@ -0,0 +1,47 @@ +/* + * 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 new file mode 100644 index 000000000000..ebe0885a2b98 --- /dev/null +++ b/trunk/arch/arm/boot/dts/spear600.dtsi @@ -0,0 +1,174 @@ +/* + * 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 73263501f581..70c41fc897d7 100644 --- a/trunk/arch/arm/boot/dts/tegra-cardhu.dts +++ b/trunk/arch/arm/boot/dts/tegra-cardhu.dts @@ -33,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 3c1ff5a43fb7..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 { @@ -44,30 +37,6 @@ clock-frequency = <400000>; }; - 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 { clock-frequency = <216000000>; }; diff --git a/trunk/arch/arm/boot/dts/tegra-seaboard.dts b/trunk/arch/arm/boot/dts/tegra-seaboard.dts index 876d5c92ce36..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"; }; @@ -133,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 d2bc7e7ad06d..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 { @@ -152,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>; diff --git a/trunk/arch/arm/boot/dts/tegra30.dtsi b/trunk/arch/arm/boot/dts/tegra30.dtsi index e957051f8645..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,14 +55,7 @@ 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; }; 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/gic.c b/trunk/arch/arm/common/gic.c index f0783be17352..c47d6199b784 100644 --- a/trunk/arch/arm/common/gic.c +++ b/trunk/arch/arm/common/gic.c @@ -51,6 +51,7 @@ union gic_base { }; struct gic_chip_data { + unsigned int irq_offset; union gic_base dist_base; union gic_base cpu_base; #ifdef CONFIG_CPU_PM @@ -60,7 +61,9 @@ struct gic_chip_data { u32 __percpu *saved_ppi_enable; u32 __percpu *saved_ppi_conf; #endif - struct irq_domain *domain; +#ifdef CONFIG_IRQ_DOMAIN + struct irq_domain domain; +#endif unsigned int gic_irqs; #ifdef CONFIG_GIC_NON_BANKED void __iomem *(*get_base)(union gic_base *); @@ -279,7 +282,7 @@ asmlinkage void __exception_irq_entry gic_handle_irq(struct pt_regs *regs) irqnr = irqstat & ~0x1c00; if (likely(irqnr > 15 && irqnr < 1021)) { - irqnr = irq_find_mapping(gic->domain, irqnr); + irqnr = irq_domain_to_irq(&gic->domain, irqnr); handle_IRQ(irqnr, regs); continue; } @@ -311,8 +314,8 @@ static void gic_handle_cascade_irq(unsigned int irq, struct irq_desc *desc) if (gic_irq == 1023) goto out; - cascade_irq = irq_find_mapping(chip_data->domain, gic_irq); - if (unlikely(gic_irq < 32 || gic_irq > 1020)) + cascade_irq = irq_domain_to_irq(&chip_data->domain, gic_irq); + if (unlikely(gic_irq < 32 || gic_irq > 1020 || cascade_irq >= NR_IRQS)) do_bad_IRQ(cascade_irq, desc); else generic_handle_irq(cascade_irq); @@ -345,9 +348,10 @@ void __init gic_cascade_irq(unsigned int gic_nr, unsigned int irq) static void __init gic_dist_init(struct gic_chip_data *gic) { - unsigned int i; + unsigned int i, irq; u32 cpumask; unsigned int gic_irqs = gic->gic_irqs; + struct irq_domain *domain = &gic->domain; void __iomem *base = gic_data_dist_base(gic); u32 cpu = cpu_logical_map(smp_processor_id()); @@ -382,6 +386,23 @@ static void __init gic_dist_init(struct gic_chip_data *gic) for (i = 32; i < gic_irqs; i += 32) writel_relaxed(0xffffffff, base + GIC_DIST_ENABLE_CLEAR + i * 4 / 32); + /* + * Setup the Linux IRQ subsystem. + */ + irq_domain_for_each_irq(domain, i, irq) { + if (i < 32) { + irq_set_percpu_devid(irq); + irq_set_chip_and_handler(irq, &gic_chip, + handle_percpu_devid_irq); + set_irq_flags(irq, IRQF_VALID | IRQF_NOAUTOEN); + } else { + irq_set_chip_and_handler(irq, &gic_chip, + handle_fasteoi_irq); + set_irq_flags(irq, IRQF_VALID | IRQF_PROBE); + } + irq_set_chip_data(irq, gic); + } + writel_relaxed(1, base + GIC_DIST_CTRL); } @@ -597,27 +618,11 @@ static void __init gic_pm_init(struct gic_chip_data *gic) } #endif -static int gic_irq_domain_map(struct irq_domain *d, unsigned int irq, - irq_hw_number_t hw) -{ - if (hw < 32) { - irq_set_percpu_devid(irq); - irq_set_chip_and_handler(irq, &gic_chip, - handle_percpu_devid_irq); - set_irq_flags(irq, IRQF_VALID | IRQF_NOAUTOEN); - } else { - irq_set_chip_and_handler(irq, &gic_chip, - handle_fasteoi_irq); - set_irq_flags(irq, IRQF_VALID | IRQF_PROBE); - } - irq_set_chip_data(irq, d->host_data); - return 0; -} - -static int gic_irq_domain_xlate(struct irq_domain *d, - struct device_node *controller, - const u32 *intspec, unsigned int intsize, - unsigned long *out_hwirq, unsigned int *out_type) +#ifdef CONFIG_OF +static int gic_irq_domain_dt_translate(struct irq_domain *d, + struct device_node *controller, + const u32 *intspec, unsigned int intsize, + unsigned long *out_hwirq, unsigned int *out_type) { if (d->of_node != controller) return -EINVAL; @@ -634,23 +639,26 @@ static int gic_irq_domain_xlate(struct irq_domain *d, *out_type = intspec[2] & IRQ_TYPE_SENSE_MASK; return 0; } +#endif const struct irq_domain_ops gic_irq_domain_ops = { - .map = gic_irq_domain_map, - .xlate = gic_irq_domain_xlate, +#ifdef CONFIG_OF + .dt_translate = gic_irq_domain_dt_translate, +#endif }; void __init gic_init_bases(unsigned int gic_nr, int irq_start, void __iomem *dist_base, void __iomem *cpu_base, - u32 percpu_offset, struct device_node *node) + u32 percpu_offset) { - irq_hw_number_t hwirq_base; struct gic_chip_data *gic; - int gic_irqs, irq_base; + struct irq_domain *domain; + int gic_irqs; BUG_ON(gic_nr >= MAX_GIC_NR); gic = &gic_data[gic_nr]; + domain = &gic->domain; #ifdef CONFIG_GIC_NON_BANKED if (percpu_offset) { /* Frankein-GIC without banked registers... */ unsigned int cpu; @@ -686,10 +694,10 @@ void __init gic_init_bases(unsigned int gic_nr, int irq_start, * For primary GICs, skip over SGIs. * For secondary GICs, skip over PPIs, too. */ - hwirq_base = 32; + domain->hwirq_base = 32; if (gic_nr == 0) { if ((irq_start & 31) > 0) { - hwirq_base = 16; + domain->hwirq_base = 16; if (irq_start != -1) irq_start = (irq_start & ~31) + 16; } @@ -705,17 +713,17 @@ void __init gic_init_bases(unsigned int gic_nr, int irq_start, gic_irqs = 1020; gic->gic_irqs = gic_irqs; - gic_irqs -= hwirq_base; /* calculate # of irqs to allocate */ - irq_base = irq_alloc_descs(irq_start, 16, gic_irqs, numa_node_id()); - if (IS_ERR_VALUE(irq_base)) { + domain->nr_irq = gic_irqs - domain->hwirq_base; + domain->irq_base = irq_alloc_descs(irq_start, 16, domain->nr_irq, + numa_node_id()); + if (IS_ERR_VALUE(domain->irq_base)) { WARN(1, "Cannot allocate irq_descs @ IRQ%d, assuming pre-allocated\n", irq_start); - irq_base = irq_start; + domain->irq_base = irq_start; } - gic->domain = irq_domain_add_legacy(node, gic_irqs, irq_base, - hwirq_base, &gic_irq_domain_ops, gic); - if (WARN_ON(!gic->domain)) - return; + domain->priv = gic; + domain->ops = &gic_irq_domain_ops; + irq_domain_add(domain); gic_chip.flags |= gic_arch_extn.flags; gic_dist_init(gic); @@ -760,6 +768,7 @@ int __init gic_of_init(struct device_node *node, struct device_node *parent) void __iomem *dist_base; u32 percpu_offset; int irq; + struct irq_domain *domain = &gic_data[gic_cnt].domain; if (WARN_ON(!node)) return -ENODEV; @@ -773,7 +782,9 @@ int __init gic_of_init(struct device_node *node, struct device_node *parent) if (of_property_read_u32(node, "cpu-offset", &percpu_offset)) percpu_offset = 0; - gic_init_bases(gic_cnt, -1, dist_base, cpu_base, percpu_offset, node); + domain->of_node = of_node_get(node); + + gic_init_bases(gic_cnt, -1, dist_base, cpu_base, percpu_offset); if (parent) { irq = irq_of_parse_and_map(node, 0); diff --git a/trunk/arch/arm/common/vic.c b/trunk/arch/arm/common/vic.c index 7a66311f3066..dcb004a804c7 100644 --- a/trunk/arch/arm/common/vic.c +++ b/trunk/arch/arm/common/vic.c @@ -56,7 +56,7 @@ struct vic_device { u32 int_enable; u32 soft_int; u32 protect; - struct irq_domain *domain; + struct irq_domain domain; }; /* we cannot allocate memory when VICs are initially registered */ @@ -192,8 +192,14 @@ static void __init vic_register(void __iomem *base, unsigned int irq, v->resume_sources = resume_sources; v->irq = irq; vic_id++; - v->domain = irq_domain_add_legacy(node, 32, irq, 0, - &irq_domain_simple_ops, v); + + v->domain.irq_base = irq; + v->domain.nr_irq = 32; +#ifdef CONFIG_OF_IRQ + v->domain.of_node = of_node_get(node); +#endif /* CONFIG_OF */ + v->domain.ops = &irq_domain_simple_ops; + irq_domain_add(&v->domain); } static void vic_ack_irq(struct irq_data *d) @@ -342,7 +348,7 @@ static void __init vic_init_st(void __iomem *base, unsigned int irq_start, vic_register(base, irq_start, 0, node); } -void __init __vic_init(void __iomem *base, unsigned int irq_start, +static void __init __vic_init(void __iomem *base, unsigned int irq_start, u32 vic_sources, u32 resume_sources, struct device_node *node) { @@ -438,7 +444,7 @@ static int handle_one_vic(struct vic_device *vic, struct pt_regs *regs) stat = readl_relaxed(vic->base + VIC_IRQ_STATUS); while (stat) { irq = ffs(stat) - 1; - handle_IRQ(irq_find_mapping(vic->domain, irq), regs); + handle_IRQ(irq_domain_to_irq(&vic->domain, irq), regs); stat &= ~(1 << irq); handled = 1; } 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/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/gic.h b/trunk/arch/arm/include/asm/hardware/gic.h index 4b1ce6cd477f..4bdfe0018696 100644 --- a/trunk/arch/arm/include/asm/hardware/gic.h +++ b/trunk/arch/arm/include/asm/hardware/gic.h @@ -39,7 +39,7 @@ struct device_node; extern struct irq_chip gic_arch_extn; void gic_init_bases(unsigned int, int, void __iomem *, void __iomem *, - u32 offset, struct device_node *); + u32 offset); int gic_of_init(struct device_node *node, struct device_node *parent); void gic_secondary_init(unsigned int); void gic_handle_irq(struct pt_regs *regs); @@ -49,7 +49,7 @@ void gic_raise_softirq(const struct cpumask *mask, unsigned int irq); static inline void gic_init(unsigned int nr, int start, void __iomem *dist , void __iomem *cpu) { - gic_init_bases(nr, start, dist, cpu, 0, NULL); + gic_init_bases(nr, start, dist, cpu, 0); } #endif diff --git a/trunk/arch/arm/include/asm/hardware/vic.h b/trunk/arch/arm/include/asm/hardware/vic.h index e14af1a1a320..f42ebd619590 100644 --- a/trunk/arch/arm/include/asm/hardware/vic.h +++ b/trunk/arch/arm/include/asm/hardware/vic.h @@ -47,8 +47,6 @@ struct device_node; struct pt_regs; -void __vic_init(void __iomem *base, unsigned int irq_start, u32 vic_sources, - u32 resume_sources, struct device_node *node); void vic_init(void __iomem *base, unsigned int irq_start, u32 vic_sources, u32 resume_sources); int vic_of_init(struct device_node *node, struct device_node *parent); void vic_handle_irq(struct pt_regs *regs); 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/pmu.h b/trunk/arch/arm/include/asm/pmu.h index b5a5be2536c1..90114faa9f3c 100644 --- a/trunk/arch/arm/include/asm/pmu.h +++ b/trunk/arch/arm/include/asm/pmu.h @@ -134,7 +134,7 @@ int __init armpmu_register(struct arm_pmu *armpmu, char *name, int type); u64 armpmu_event_update(struct perf_event *event, struct hw_perf_event *hwc, - int idx, int overflow); + int idx); int armpmu_event_set_period(struct perf_event *event, struct hw_perf_event *hwc, 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/include/asm/system.h b/trunk/arch/arm/include/asm/system.h index 424aa458c487..e4c96cc6ec0c 100644 --- a/trunk/arch/arm/include/asm/system.h +++ b/trunk/arch/arm/include/asm/system.h @@ -110,7 +110,6 @@ extern void cpu_init(void); void soft_restart(unsigned long); extern void (*arm_pm_restart)(char str, const char *cmd); -extern void (*arm_pm_idle)(void); #define UDBG_UNDEFINED (1 << 0) #define UDBG_SYSCALL (1 << 1) diff --git a/trunk/arch/arm/kernel/ecard.c b/trunk/arch/arm/kernel/ecard.c index 4dd0edab6a65..1651d4950744 100644 --- a/trunk/arch/arm/kernel/ecard.c +++ b/trunk/arch/arm/kernel/ecard.c @@ -242,6 +242,7 @@ static void ecard_init_pgtables(struct mm_struct *mm) memcpy(dst_pgd, src_pgd, sizeof(pgd_t) * (EASI_SIZE / PGDIR_SIZE)); + vma.vm_flags = VM_EXEC; vma.vm_mm = mm; flush_tlb_range(&vma, IO_START, IO_START + IO_SIZE); diff --git a/trunk/arch/arm/kernel/perf_event.c b/trunk/arch/arm/kernel/perf_event.c index 5bb91bf3d47f..b2abfa18f137 100644 --- a/trunk/arch/arm/kernel/perf_event.c +++ b/trunk/arch/arm/kernel/perf_event.c @@ -180,7 +180,7 @@ armpmu_event_set_period(struct perf_event *event, u64 armpmu_event_update(struct perf_event *event, struct hw_perf_event *hwc, - int idx, int overflow) + int idx) { struct arm_pmu *armpmu = to_arm_pmu(event->pmu); u64 delta, prev_raw_count, new_raw_count; @@ -193,13 +193,7 @@ armpmu_event_update(struct perf_event *event, new_raw_count) != prev_raw_count) goto again; - new_raw_count &= armpmu->max_period; - prev_raw_count &= armpmu->max_period; - - if (overflow) - delta = armpmu->max_period - prev_raw_count + new_raw_count + 1; - else - delta = new_raw_count - prev_raw_count; + delta = (new_raw_count - prev_raw_count) & armpmu->max_period; local64_add(delta, &event->count); local64_sub(delta, &hwc->period_left); @@ -216,7 +210,7 @@ armpmu_read(struct perf_event *event) if (hwc->idx < 0) return; - armpmu_event_update(event, hwc, hwc->idx, 0); + armpmu_event_update(event, hwc, hwc->idx); } static void @@ -232,7 +226,7 @@ armpmu_stop(struct perf_event *event, int flags) if (!(hwc->state & PERF_HES_STOPPED)) { armpmu->disable(hwc, hwc->idx); barrier(); /* why? */ - armpmu_event_update(event, hwc, hwc->idx, 0); + armpmu_event_update(event, hwc, hwc->idx); hwc->state |= PERF_HES_STOPPED | PERF_HES_UPTODATE; } } @@ -518,7 +512,13 @@ __hw_perf_event_init(struct perf_event *event) hwc->config_base |= (unsigned long)mapping; if (!hwc->sample_period) { - hwc->sample_period = armpmu->max_period; + /* + * For non-sampling runs, limit the sample_period to half + * of the counter width. That way, the new counter value + * is far less likely to overtake the previous one unless + * you have some serious IRQ latency issues. + */ + hwc->sample_period = armpmu->max_period >> 1; hwc->last_period = hwc->sample_period; local64_set(&hwc->period_left, hwc->sample_period); } @@ -679,6 +679,28 @@ static void __init cpu_pmu_init(struct arm_pmu *armpmu) armpmu->type = ARM_PMU_DEVICE_CPU; } +/* + * PMU hardware loses all context when a CPU goes offline. + * When a CPU is hotplugged back in, since some hardware registers are + * UNKNOWN at reset, the PMU must be explicitly reset to avoid reading + * junk values out of them. + */ +static int __cpuinit pmu_cpu_notify(struct notifier_block *b, + unsigned long action, void *hcpu) +{ + if ((action & ~CPU_TASKS_FROZEN) != CPU_STARTING) + return NOTIFY_DONE; + + if (cpu_pmu && cpu_pmu->reset) + cpu_pmu->reset(NULL); + + return NOTIFY_OK; +} + +static struct notifier_block __cpuinitdata pmu_cpu_notifier = { + .notifier_call = pmu_cpu_notify, +}; + /* * CPU PMU identification and registration. */ @@ -730,6 +752,7 @@ init_hw_perf_events(void) pr_info("enabled with %s PMU driver, %d counters available\n", cpu_pmu->name, cpu_pmu->num_events); cpu_pmu_init(cpu_pmu); + register_cpu_notifier(&pmu_cpu_notifier); armpmu_register(cpu_pmu, "cpu", PERF_TYPE_RAW); } else { pr_info("no hardware support available\n"); diff --git a/trunk/arch/arm/kernel/perf_event_v6.c b/trunk/arch/arm/kernel/perf_event_v6.c index 533be9930ec2..b78af0cc6ef3 100644 --- a/trunk/arch/arm/kernel/perf_event_v6.c +++ b/trunk/arch/arm/kernel/perf_event_v6.c @@ -467,23 +467,6 @@ armv6pmu_enable_event(struct hw_perf_event *hwc, raw_spin_unlock_irqrestore(&events->pmu_lock, flags); } -static int counter_is_active(unsigned long pmcr, int idx) -{ - unsigned long mask = 0; - if (idx == ARMV6_CYCLE_COUNTER) - mask = ARMV6_PMCR_CCOUNT_IEN; - else if (idx == ARMV6_COUNTER0) - mask = ARMV6_PMCR_COUNT0_IEN; - else if (idx == ARMV6_COUNTER1) - mask = ARMV6_PMCR_COUNT1_IEN; - - if (mask) - return pmcr & mask; - - WARN_ONCE(1, "invalid counter number (%d)\n", idx); - return 0; -} - static irqreturn_t armv6pmu_handle_irq(int irq_num, void *dev) @@ -513,7 +496,8 @@ armv6pmu_handle_irq(int irq_num, struct perf_event *event = cpuc->events[idx]; struct hw_perf_event *hwc; - if (!counter_is_active(pmcr, idx)) + /* Ignore if we don't have an event. */ + if (!event) continue; /* @@ -524,7 +508,7 @@ armv6pmu_handle_irq(int irq_num, continue; hwc = &event->hw; - armpmu_event_update(event, hwc, idx, 1); + armpmu_event_update(event, hwc, idx); data.period = event->hw.last_period; if (!armpmu_event_set_period(event, hwc, idx)) continue; diff --git a/trunk/arch/arm/kernel/perf_event_v7.c b/trunk/arch/arm/kernel/perf_event_v7.c index 6933244c68f9..4d7095af2ab3 100644 --- a/trunk/arch/arm/kernel/perf_event_v7.c +++ b/trunk/arch/arm/kernel/perf_event_v7.c @@ -809,6 +809,11 @@ static inline int armv7_pmnc_disable_intens(int idx) counter = ARMV7_IDX_TO_COUNTER(idx); asm volatile("mcr p15, 0, %0, c9, c14, 2" : : "r" (BIT(counter))); + isb(); + /* Clear the overflow flag in case an interrupt is pending. */ + asm volatile("mcr p15, 0, %0, c9, c12, 3" : : "r" (BIT(counter))); + isb(); + return idx; } @@ -955,6 +960,10 @@ static irqreturn_t armv7pmu_handle_irq(int irq_num, void *dev) struct perf_event *event = cpuc->events[idx]; struct hw_perf_event *hwc; + /* Ignore if we don't have an event. */ + if (!event) + continue; + /* * We have a single interrupt for all counters. Check that * each counter has overflowed before we process it. @@ -963,7 +972,7 @@ static irqreturn_t armv7pmu_handle_irq(int irq_num, void *dev) continue; hwc = &event->hw; - armpmu_event_update(event, hwc, idx, 1); + armpmu_event_update(event, hwc, idx); data.period = event->hw.last_period; if (!armpmu_event_set_period(event, hwc, idx)) continue; diff --git a/trunk/arch/arm/kernel/perf_event_xscale.c b/trunk/arch/arm/kernel/perf_event_xscale.c index 3b99d8269829..71a21e6712f5 100644 --- a/trunk/arch/arm/kernel/perf_event_xscale.c +++ b/trunk/arch/arm/kernel/perf_event_xscale.c @@ -255,11 +255,14 @@ xscale1pmu_handle_irq(int irq_num, void *dev) struct perf_event *event = cpuc->events[idx]; struct hw_perf_event *hwc; + if (!event) + continue; + if (!xscale1_pmnc_counter_has_overflowed(pmnc, idx)) continue; hwc = &event->hw; - armpmu_event_update(event, hwc, idx, 1); + armpmu_event_update(event, hwc, idx); data.period = event->hw.last_period; if (!armpmu_event_set_period(event, hwc, idx)) continue; @@ -592,11 +595,14 @@ xscale2pmu_handle_irq(int irq_num, void *dev) struct perf_event *event = cpuc->events[idx]; struct hw_perf_event *hwc; - if (!xscale2_pmnc_counter_has_overflowed(pmnc, idx)) + if (!event) + continue; + + if (!xscale2_pmnc_counter_has_overflowed(of_flags, idx)) continue; hwc = &event->hw; - armpmu_event_update(event, hwc, idx, 1); + armpmu_event_update(event, hwc, idx); data.period = event->hw.last_period; if (!armpmu_event_set_period(event, hwc, idx)) continue; @@ -663,7 +669,7 @@ xscale2pmu_enable_event(struct hw_perf_event *hwc, int idx) static void xscale2pmu_disable_event(struct hw_perf_event *hwc, int idx) { - unsigned long flags, ien, evtsel; + unsigned long flags, ien, evtsel, of_flags; struct pmu_hw_events *events = cpu_pmu->get_hw_events(); ien = xscale2pmu_read_int_enable(); @@ -672,26 +678,31 @@ xscale2pmu_disable_event(struct hw_perf_event *hwc, int idx) switch (idx) { case XSCALE_CYCLE_COUNTER: ien &= ~XSCALE2_CCOUNT_INT_EN; + of_flags = XSCALE2_CCOUNT_OVERFLOW; break; case XSCALE_COUNTER0: ien &= ~XSCALE2_COUNT0_INT_EN; evtsel &= ~XSCALE2_COUNT0_EVT_MASK; evtsel |= XSCALE_PERFCTR_UNUSED << XSCALE2_COUNT0_EVT_SHFT; + of_flags = XSCALE2_COUNT0_OVERFLOW; break; case XSCALE_COUNTER1: ien &= ~XSCALE2_COUNT1_INT_EN; evtsel &= ~XSCALE2_COUNT1_EVT_MASK; evtsel |= XSCALE_PERFCTR_UNUSED << XSCALE2_COUNT1_EVT_SHFT; + of_flags = XSCALE2_COUNT1_OVERFLOW; break; case XSCALE_COUNTER2: ien &= ~XSCALE2_COUNT2_INT_EN; evtsel &= ~XSCALE2_COUNT2_EVT_MASK; evtsel |= XSCALE_PERFCTR_UNUSED << XSCALE2_COUNT2_EVT_SHFT; + of_flags = XSCALE2_COUNT2_OVERFLOW; break; case XSCALE_COUNTER3: ien &= ~XSCALE2_COUNT3_INT_EN; evtsel &= ~XSCALE2_COUNT3_EVT_MASK; evtsel |= XSCALE_PERFCTR_UNUSED << XSCALE2_COUNT3_EVT_SHFT; + of_flags = XSCALE2_COUNT3_OVERFLOW; break; default: WARN_ONCE(1, "invalid counter number (%d)\n", idx); @@ -701,6 +712,7 @@ xscale2pmu_disable_event(struct hw_perf_event *hwc, int idx) raw_spin_lock_irqsave(&events->pmu_lock, flags); xscale2pmu_write_event_select(evtsel); xscale2pmu_write_int_enable(ien); + xscale2pmu_write_overflow_flags(of_flags); raw_spin_unlock_irqrestore(&events->pmu_lock, flags); } diff --git a/trunk/arch/arm/kernel/process.c b/trunk/arch/arm/kernel/process.c index 008e7ce766a7..971d65c253a9 100644 --- a/trunk/arch/arm/kernel/process.c +++ b/trunk/arch/arm/kernel/process.c @@ -61,6 +61,8 @@ extern void setup_mm_for_reboot(void); static volatile int hlt_counter; +#include + void disable_hlt(void) { hlt_counter++; @@ -179,17 +181,13 @@ void cpu_idle_wait(void) EXPORT_SYMBOL_GPL(cpu_idle_wait); /* - * This is our default idle handler. + * This is our default idle handler. We need to disable + * interrupts here to ensure we don't miss a wakeup call. */ - -void (*arm_pm_idle)(void); - static void default_idle(void) { - if (arm_pm_idle) - arm_pm_idle(); - else - cpu_do_idle(); + if (!need_resched()) + arch_idle(); local_irq_enable(); } @@ -217,10 +215,6 @@ void cpu_idle(void) cpu_die(); #endif - /* - * We need to disable interrupts here - * to ensure we don't miss a wakeup call. - */ local_irq_disable(); #ifdef CONFIG_PL310_ERRATA_769419 wmb(); @@ -228,18 +222,19 @@ void cpu_idle(void) if (hlt_counter) { local_irq_enable(); cpu_relax(); - } else if (!need_resched()) { + } else { stop_critical_timings(); if (cpuidle_idle_call()) pm_idle(); start_critical_timings(); /* - * pm_idle functions must always - * return with IRQs enabled. + * This will eventually be removed - pm_idle + * functions should always return with IRQs + * enabled. */ WARN_ON(irqs_disabled()); - } else local_irq_enable(); + } } leds_event(led_idle_end); rcu_idle_exit(); diff --git a/trunk/arch/arm/kernel/smp.c b/trunk/arch/arm/kernel/smp.c index 1ad84a6c9bfb..cdeb727527d3 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. @@ -461,20 +459,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); @@ -482,7 +467,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); } @@ -497,8 +482,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..a42edc25a87e --- /dev/null +++ b/trunk/arch/arm/mach-at91/at91cap9.c @@ -0,0 +1,396 @@ +/* + * 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 "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, + } +}; + +/* -------------------------------------------------------------------- + * 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_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