From f952f31a541d5c1b52486c1fe6302787ee9e558a Mon Sep 17 00:00:00 2001 From: Leo Yan Date: Mon, 15 Aug 2011 11:09:52 +0800 Subject: [PATCH] --- yaml --- r: 274109 b: refs/heads/master c: 3c7241bd36e2a618fe20c91f6c69cc20f2d981f2 h: refs/heads/master i: 274107: e496f7b5b3ca7b19e07eb5dcc3ad613f5e5f9d74 v: v3 --- [refs] | 2 +- trunk/Documentation/kernel-parameters.txt | 7 +- trunk/Documentation/networking/ip-sysctl.txt | 4 +- trunk/Documentation/networking/scaling.txt | 12 +- trunk/MAINTAINERS | 9 +- trunk/Makefile | 2 +- trunk/arch/arm/Kconfig | 8 +- trunk/arch/arm/Makefile | 4 +- trunk/arch/arm/boot/dts/prima2-cb.dts | 9 +- trunk/arch/arm/common/vic.c | 1 - trunk/arch/arm/configs/exynos4_defconfig | 1 - trunk/arch/arm/configs/mx1_defconfig | 91 + trunk/arch/arm/configs/mx21_defconfig | 97 + .../{imx_v4_v5_defconfig => mx27_defconfig} | 68 +- .../configs/{mx5_defconfig => mx51_defconfig} | 60 +- trunk/arch/arm/include/asm/hardware/pl080.h | 4 - trunk/arch/arm/include/asm/localtimer.h | 2 + trunk/arch/arm/kernel/perf_event_v7.c | 4 +- trunk/arch/arm/mach-at91/at91cap9.c | 2 - trunk/arch/arm/mach-at91/at91cap9_devices.c | 6 - trunk/arch/arm/mach-at91/at91rm9200.c | 2 - trunk/arch/arm/mach-at91/at91rm9200_devices.c | 8 - trunk/arch/arm/mach-at91/at91sam9260.c | 2 - .../arch/arm/mach-at91/at91sam9260_devices.c | 8 - trunk/arch/arm/mach-at91/at91sam9261.c | 29 +- .../arch/arm/mach-at91/at91sam9261_devices.c | 8 - trunk/arch/arm/mach-at91/at91sam9263.c | 2 - .../arch/arm/mach-at91/at91sam9263_devices.c | 6 - trunk/arch/arm/mach-at91/at91sam9g45.c | 2 - .../arch/arm/mach-at91/at91sam9g45_devices.c | 6 - trunk/arch/arm/mach-at91/include/mach/board.h | 5 - trunk/arch/arm/mach-davinci/Kconfig | 10 - trunk/arch/arm/mach-davinci/board-da850-evm.c | 114 - trunk/arch/arm/mach-davinci/da850.c | 9 - .../arch/arm/mach-davinci/include/mach/mmc.h | 3 - .../arch/arm/mach-davinci/include/mach/mux.h | 10 - trunk/arch/arm/mach-exynos4/Kconfig | 120 +- trunk/arch/arm/mach-exynos4/Makefile | 14 +- .../arch/arm/mach-exynos4/clock-exynos4210.c | 139 - .../arch/arm/mach-exynos4/clock-exynos4212.c | 118 - trunk/arch/arm/mach-exynos4/clock.c | 428 +- trunk/arch/arm/mach-exynos4/cpu.c | 59 +- trunk/arch/arm/mach-exynos4/dma.c | 300 +- .../arm/mach-exynos4/include/mach/clkdev.h | 7 + .../arch/arm/mach-exynos4/include/mach/dma.h | 4 +- .../mach-exynos4/include/mach/entry-macro.S | 29 +- .../mach-exynos4/include/mach/exynos4-clock.h | 43 - .../mach-exynos4/include/mach/i2c-hdmiphy.h | 16 - .../arch/arm/mach-exynos4/include/mach/irqs.h | 6 - .../arch/arm/mach-exynos4/include/mach/map.h | 16 +- .../arm/mach-exynos4/include/mach/pm-core.h | 8 +- .../arch/arm/mach-exynos4/include/mach/pmu.h | 7 - .../include/mach}/pwm-clock.h | 39 +- .../mach-exynos4/include/mach/regs-clock.h | 54 +- .../arm/mach-exynos4/include/mach/regs-mct.h | 5 +- .../arm/mach-exynos4/include/mach/regs-pmu.h | 74 +- trunk/arch/arm/mach-exynos4/mach-nuri.c | 192 +- trunk/arch/arm/mach-exynos4/mach-origen.c | 700 ---- trunk/arch/arm/mach-exynos4/mach-smdk4x12.c | 302 -- trunk/arch/arm/mach-exynos4/mach-smdkc210.c | 309 ++ trunk/arch/arm/mach-exynos4/mach-smdkv310.c | 129 +- .../arm/mach-exynos4/mach-universal_c210.c | 312 +- trunk/arch/arm/mach-exynos4/mct.c | 166 +- trunk/arch/arm/mach-exynos4/platsmp.c | 13 +- trunk/arch/arm/mach-exynos4/pm.c | 86 +- trunk/arch/arm/mach-exynos4/pmu.c | 353 +- trunk/arch/arm/mach-exynos4/setup-sdhci.c | 47 + .../arm/{plat-s5p => mach-exynos4}/sleep.S | 13 +- trunk/arch/arm/mach-imx/Kconfig | 52 +- trunk/arch/arm/mach-imx/Makefile | 15 +- trunk/arch/arm/mach-imx/cache-l2x0.c | 56 + trunk/arch/arm/mach-imx/clock-imx25.c | 6 - trunk/arch/arm/mach-imx/clock-imx27.c | 6 +- trunk/arch/arm/mach-imx/clock-imx31.c | 8 +- trunk/arch/arm/mach-imx/clock-imx35.c | 7 +- trunk/arch/arm/mach-imx/cpu-imx25.c | 41 - trunk/arch/arm/mach-imx/cpu-imx27.c | 28 +- trunk/arch/arm/mach-imx/cpu-imx31.c | 49 +- trunk/arch/arm/mach-imx/cpu-imx35.c | 30 +- trunk/arch/arm/mach-imx/devices-imx27.h | 4 - trunk/arch/arm/mach-imx/devices-imx31.h | 4 - trunk/arch/arm/mach-imx/devices-imx35.h | 4 - trunk/arch/arm/mach-imx/mach-apf9328.c | 1 - trunk/arch/arm/mach-imx/mach-armadillo5x0.c | 19 +- trunk/arch/arm/mach-imx/mach-bug.c | 1 - trunk/arch/arm/mach-imx/mach-cpuimx27.c | 1 - trunk/arch/arm/mach-imx/mach-cpuimx35.c | 3 +- .../arch/arm/mach-imx/mach-eukrea_cpuimx25.c | 1 - .../arm/mach-imx/mach-imx27_visstrim_m10.c | 1 - trunk/arch/arm/mach-imx/mach-imx27ipcam.c | 1 - trunk/arch/arm/mach-imx/mach-imx27lite.c | 1 - trunk/arch/arm/mach-imx/mach-kzm_arm11_01.c | 1 - trunk/arch/arm/mach-imx/mach-mx1ads.c | 17 +- trunk/arch/arm/mach-imx/mach-mx21ads.c | 1 - trunk/arch/arm/mach-imx/mach-mx25_3ds.c | 11 - trunk/arch/arm/mach-imx/mach-mx27_3ds.c | 3 +- trunk/arch/arm/mach-imx/mach-mx27ads.c | 1 - trunk/arch/arm/mach-imx/mach-mx31_3ds.c | 1 - trunk/arch/arm/mach-imx/mach-mx31ads.c | 1 - trunk/arch/arm/mach-imx/mach-mx31lilly.c | 1 - trunk/arch/arm/mach-imx/mach-mx31lite.c | 1 - trunk/arch/arm/mach-imx/mach-mx31moboard.c | 18 - trunk/arch/arm/mach-imx/mach-mx35_3ds.c | 1 - trunk/arch/arm/mach-imx/mach-mxt_td60.c | 1 - trunk/arch/arm/mach-imx/mach-pca100.c | 1 - trunk/arch/arm/mach-imx/mach-pcm037.c | 1 - trunk/arch/arm/mach-imx/mach-pcm038.c | 1 - trunk/arch/arm/mach-imx/mach-pcm043.c | 1 - trunk/arch/arm/mach-imx/mach-qong.c | 2 - trunk/arch/arm/mach-imx/mach-scb9328.c | 1 - trunk/arch/arm/mach-imx/mach-vpr200.c | 3 +- trunk/arch/arm/mach-imx/mm-imx3.c | 256 -- trunk/arch/arm/mach-imx/mm-imx31.c | 91 + trunk/arch/arm/mach-imx/mm-imx35.c | 109 + trunk/arch/arm/mach-imx/pm-imx27.c | 2 +- trunk/arch/arm/mach-mmp/Makefile | 2 +- trunk/arch/arm/mach-mmp/include/mach/sram.h | 35 + trunk/arch/arm/mach-mmp/sram.c | 168 + trunk/arch/arm/mach-mx5/Kconfig | 29 +- trunk/arch/arm/mach-mx5/Makefile | 3 +- trunk/arch/arm/mach-mx5/board-cpuimx51.c | 28 +- trunk/arch/arm/mach-mx5/board-cpuimx51sd.c | 26 +- trunk/arch/arm/mach-mx5/board-mx50_rdp.c | 1 - trunk/arch/arm/mach-mx5/board-mx51_3ds.c | 2 +- trunk/arch/arm/mach-mx5/board-mx51_babbage.c | 27 +- trunk/arch/arm/mach-mx5/board-mx51_efikamx.c | 14 +- trunk/arch/arm/mach-mx5/board-mx51_efikasb.c | 25 +- trunk/arch/arm/mach-mx5/board-mx53_ard.c | 5 +- trunk/arch/arm/mach-mx5/board-mx53_evk.c | 1 - trunk/arch/arm/mach-mx5/board-mx53_loco.c | 21 - trunk/arch/arm/mach-mx5/board-mx53_smd.c | 1 - trunk/arch/arm/mach-mx5/clock-mx51-mx53.c | 14 +- trunk/arch/arm/mach-mx5/cpu.c | 74 +- trunk/arch/arm/mach-mx5/devices-imx51.h | 17 - trunk/arch/arm/mach-mx5/devices-imx53.h | 4 - trunk/arch/arm/mach-mx5/devices.c | 120 + trunk/arch/arm/mach-mx5/devices.h | 5 + trunk/arch/arm/mach-mx5/ehci.c | 2 +- .../arm/mach-mx5/eukrea_mbimx51-baseboard.c | 3 +- .../arm/mach-mx5/eukrea_mbimxsd-baseboard.c | 6 +- trunk/arch/arm/mach-mx5/mm-mx50.c | 72 + trunk/arch/arm/mach-mx5/mm.c | 90 +- trunk/arch/arm/mach-mx5/mx51_efika.c | 20 +- trunk/arch/arm/mach-mx5/pm-imx5.c | 3 +- trunk/arch/arm/mach-mx5/system.c | 1 - trunk/arch/arm/mach-mxs/Kconfig | 6 - trunk/arch/arm/mach-mxs/Makefile | 6 +- trunk/arch/arm/mach-mxs/clock-mx28.c | 8 +- trunk/arch/arm/mach-mxs/devices-mx23.h | 2 - trunk/arch/arm/mach-mxs/devices-mx28.h | 5 - trunk/arch/arm/mach-mxs/devices/Kconfig | 6 - trunk/arch/arm/mach-mxs/devices/Makefile | 2 - .../arm/mach-mxs/devices/platform-mxs-saif.c | 60 - .../mach-mxs/devices/platform-rtc-stmp3xxx.c | 51 - .../mach-mxs/include/mach/devices-common.h | 12 - trunk/arch/arm/mach-mxs/include/mach/gpio.h | 4 + trunk/arch/arm/mach-mxs/include/mach/mxs.h | 2 - trunk/arch/arm/mach-mxs/mach-mx23evk.c | 2 +- trunk/arch/arm/mach-mxs/mach-mx28evk.c | 98 +- trunk/arch/arm/mach-mxs/mach-stmp378x_devb.c | 2 +- trunk/arch/arm/mach-mxs/mach-tx28.c | 1 - trunk/arch/arm/mach-mxs/{mm.c => mm-mx23.c} | 19 - trunk/arch/arm/mach-mxs/mm-mx28.c | 44 + trunk/arch/arm/mach-omap2/board-2430sdp.c | 3 +- trunk/arch/arm/mach-omap2/hsmmc.c | 12 +- trunk/arch/arm/mach-omap2/usb-musb.c | 3 - trunk/arch/arm/mach-prima2/Makefile | 1 - trunk/arch/arm/mach-prima2/irq.c | 3 - trunk/arch/arm/mach-prima2/rtciobrg.c | 139 - trunk/arch/arm/mach-s3c2410/Kconfig | 7 + trunk/arch/arm/mach-s3c2410/Makefile | 1 + trunk/arch/arm/mach-s3c2410/dma.c | 14 + trunk/arch/arm/mach-s3c2410/gpio.c | 72 + .../arch/arm/mach-s3c2410/include/mach/dma.h | 20 +- .../arm/mach-s3c2410/include/mach/gpio-fns.h | 99 +- .../arm/mach-s3c2410/include/mach/gpio-nrs.h | 2 +- .../mach-s3c2410/include/mach/gpio-track.h | 6 +- .../arch/arm/mach-s3c2410/include/mach/map.h | 52 +- .../arm/mach-s3c2410/include/mach/pm-core.h | 2 +- .../include/mach/regs-s3c2443-clock.h | 2 - trunk/arch/arm/mach-s3c2410/mach-h1940.c | 6 +- trunk/arch/arm/mach-s3c2410/s3c2410.c | 6 +- trunk/arch/arm/mach-s3c2412/Kconfig | 1 + trunk/arch/arm/mach-s3c2412/Makefile | 1 + trunk/arch/arm/mach-s3c2412/dma.c | 22 +- trunk/arch/arm/mach-s3c2412/gpio.c | 2 +- trunk/arch/arm/mach-s3c2412/s3c2412.c | 2 + trunk/arch/arm/mach-s3c2416/Kconfig | 1 + trunk/arch/arm/mach-s3c2416/clock.c | 50 +- trunk/arch/arm/mach-s3c2416/s3c2416.c | 9 +- trunk/arch/arm/mach-s3c2416/setup-sdhci.c | 37 + trunk/arch/arm/mach-s3c2440/Kconfig | 4 + trunk/arch/arm/mach-s3c2440/dma.c | 17 + trunk/arch/arm/mach-s3c2440/s3c2440.c | 6 +- trunk/arch/arm/mach-s3c2440/s3c2442.c | 6 +- trunk/arch/arm/mach-s3c2443/Kconfig | 1 + trunk/arch/arm/mach-s3c2443/clock.c | 160 +- trunk/arch/arm/mach-s3c2443/dma.c | 27 + trunk/arch/arm/mach-s3c2443/s3c2443.c | 7 +- trunk/arch/arm/mach-s3c64xx/Kconfig | 1 - trunk/arch/arm/mach-s3c64xx/Makefile | 3 +- trunk/arch/arm/mach-s3c64xx/clock.c | 13 +- trunk/arch/arm/mach-s3c64xx/cpu.c | 26 +- trunk/arch/arm/mach-s3c64xx/dma.c | 12 +- trunk/arch/arm/mach-s3c64xx/gpiolib.c | 290 ++ .../arm/mach-s3c64xx/include/mach/clkdev.h | 7 + .../arm/mach-s3c64xx/include/mach/crag6410.h | 23 - .../arch/arm/mach-s3c64xx/include/mach/dma.h | 8 +- .../arch/arm/mach-s3c64xx/include/mach/map.h | 9 +- .../arch/arm/mach-s3c64xx/include/mach/pll.h | 45 + .../arm/mach-s3c64xx/include/mach/pm-core.h | 2 +- .../arm/mach-s3c64xx/include/mach/pwm-clock.h | 56 + .../arm/mach-s3c64xx/include/mach/regs-sys.h | 3 - .../include/mach}/s3c6400.h | 2 +- .../include/mach}/s3c6410.h | 2 +- trunk/arch/arm/mach-s3c64xx/mach-anw6410.c | 2 +- .../arm/mach-s3c64xx/mach-crag6410-module.c | 182 - trunk/arch/arm/mach-s3c64xx/mach-crag6410.c | 111 +- trunk/arch/arm/mach-s3c64xx/mach-hmt.c | 2 +- trunk/arch/arm/mach-s3c64xx/mach-mini6410.c | 10 +- trunk/arch/arm/mach-s3c64xx/mach-ncp.c | 2 +- trunk/arch/arm/mach-s3c64xx/mach-real6410.c | 10 +- trunk/arch/arm/mach-s3c64xx/mach-smartq5.c | 2 +- trunk/arch/arm/mach-s3c64xx/mach-smartq7.c | 2 +- trunk/arch/arm/mach-s3c64xx/mach-smdk6400.c | 2 +- trunk/arch/arm/mach-s3c64xx/mach-smdk6410.c | 10 +- trunk/arch/arm/mach-s3c64xx/pm.c | 4 - trunk/arch/arm/mach-s3c64xx/s3c6400.c | 2 +- trunk/arch/arm/mach-s3c64xx/s3c6410.c | 4 +- trunk/arch/arm/mach-s3c64xx/setup-sdhci.c | 48 + trunk/arch/arm/mach-s5p64x0/Kconfig | 18 +- trunk/arch/arm/mach-s5p64x0/Makefile | 4 +- trunk/arch/arm/mach-s5p64x0/clock-s5p6440.c | 10 +- trunk/arch/arm/mach-s5p64x0/clock-s5p6450.c | 10 +- trunk/arch/arm/mach-s5p64x0/cpu.c | 3 - trunk/arch/arm/mach-s5p64x0/dev-spi.c | 8 +- trunk/arch/arm/mach-s5p64x0/dma.c | 276 +- trunk/arch/arm/mach-s5p64x0/gpiolib.c | 7 +- .../arm/mach-s5p64x0/include/mach/clkdev.h | 7 + .../arch/arm/mach-s5p64x0/include/mach/dma.h | 4 +- .../arch/arm/mach-s5p64x0/include/mach/irqs.h | 4 - .../arch/arm/mach-s5p64x0/include/mach/map.h | 4 - .../arm/mach-s5p64x0/include/mach/pm-core.h | 117 - .../arm/mach-s5p64x0/include/mach/pwm-clock.h | 68 + .../mach-s5p64x0/include/mach/regs-clock.h | 33 - .../arm/mach-s5p64x0/include/mach/regs-gpio.h | 21 - trunk/arch/arm/mach-s5p64x0/irq-eint.c | 5 +- trunk/arch/arm/mach-s5p64x0/irq-pm.c | 92 - trunk/arch/arm/mach-s5p64x0/mach-smdk6440.c | 82 +- trunk/arch/arm/mach-s5p64x0/mach-smdk6450.c | 83 +- trunk/arch/arm/mach-s5p64x0/pm.c | 204 - trunk/arch/arm/mach-s5p64x0/setup-fb-24bpp.c | 29 - trunk/arch/arm/mach-s5pc100/Kconfig | 2 +- trunk/arch/arm/mach-s5pc100/clock.c | 15 +- trunk/arch/arm/mach-s5pc100/dma.c | 324 +- .../arm/mach-s5pc100/include/mach/clkdev.h | 7 + .../arch/arm/mach-s5pc100/include/mach/dma.h | 4 +- .../arm/mach-s5pc100/include/mach/pwm-clock.h | 56 + trunk/arch/arm/mach-s5pc100/mach-smdkc100.c | 8 +- trunk/arch/arm/mach-s5pc100/setup-sdhci.c | 42 + trunk/arch/arm/mach-s5pv210/Kconfig | 12 +- trunk/arch/arm/mach-s5pv210/Makefile | 2 +- trunk/arch/arm/mach-s5pv210/clock.c | 151 +- trunk/arch/arm/mach-s5pv210/cpu.c | 4 - trunk/arch/arm/mach-s5pv210/dma.c | 317 +- .../arm/mach-s5pv210/include/mach/clkdev.h | 7 + .../arch/arm/mach-s5pv210/include/mach/dma.h | 4 +- .../mach-s5pv210/include/mach/i2c-hdmiphy.h | 16 - .../arch/arm/mach-s5pv210/include/mach/irqs.h | 4 +- .../arch/arm/mach-s5pv210/include/mach/map.h | 13 - .../arm/mach-s5pv210/include/mach/pm-core.h | 2 +- .../arm/mach-s5pv210/include/mach/pwm-clock.h | 70 + .../mach-s5pv210/include/mach/regs-clock.h | 3 +- trunk/arch/arm/mach-s5pv210/mach-goni.c | 62 - trunk/arch/arm/mach-s5pv210/mach-smdkv210.c | 8 +- trunk/arch/arm/mach-s5pv210/setup-sdhci.c | 41 + trunk/arch/arm/mach-s5pv210/sleep.S | 52 + trunk/arch/arm/mach-tegra/cpu-tegra.c | 1 - trunk/arch/arm/mach-ux500/Kconfig | 1 + trunk/arch/arm/mm/init.c | 7 + trunk/arch/arm/plat-mxc/Kconfig | 39 +- trunk/arch/arm/plat-mxc/audmux-v2.c | 18 +- trunk/arch/arm/plat-mxc/avic.c | 91 +- trunk/arch/arm/plat-mxc/cpu.c | 9 - trunk/arch/arm/plat-mxc/devices.c | 14 + trunk/arch/arm/plat-mxc/devices/Kconfig | 5 +- trunk/arch/arm/plat-mxc/devices/Makefile | 1 - .../plat-mxc/devices/platform-fsl-usb2-udc.c | 5 - .../arm/plat-mxc/devices/platform-imx-i2c.c | 6 - .../arm/plat-mxc/devices/platform-mxc-ehci.c | 9 - .../arm/plat-mxc/devices/platform-pata_imx.c | 59 - trunk/arch/arm/plat-mxc/include/mach/common.h | 27 +- .../plat-mxc/include/mach/devices-common.h | 8 - .../arm/plat-mxc/include/mach/entry-macro.S | 58 +- trunk/arch/arm/plat-mxc/include/mach/gpio.h | 9 +- .../arch/arm/plat-mxc/include/mach/hardware.h | 13 +- trunk/arch/arm/plat-mxc/include/mach/io.h | 22 +- .../arm/plat-mxc/include/mach/iomux-mx3.h | 1 - .../arm/plat-mxc/include/mach/iomux-mx51.h | 2270 +++++++---- .../arm/plat-mxc/include/mach/iomux-mx53.h | 3530 +++++++++++------ .../arch/arm/plat-mxc/include/mach/iomux-v3.h | 1 - trunk/arch/arm/plat-mxc/include/mach/memory.h | 16 +- trunk/arch/arm/plat-mxc/include/mach/mx25.h | 5 - trunk/arch/arm/plat-mxc/include/mach/mx35.h | 2 +- trunk/arch/arm/plat-mxc/include/mach/mx3x.h | 18 +- trunk/arch/arm/plat-mxc/include/mach/mx51.h | 183 +- trunk/arch/arm/plat-mxc/include/mach/mx53.h | 1 - trunk/arch/arm/plat-mxc/include/mach/mxc.h | 7 + trunk/arch/arm/plat-mxc/include/mach/system.h | 35 +- trunk/arch/arm/plat-mxc/irq-common.c | 21 +- trunk/arch/arm/plat-mxc/irq-common.h | 3 +- trunk/arch/arm/plat-mxc/pwm.c | 2 +- trunk/arch/arm/plat-mxc/system.c | 3 - trunk/arch/arm/plat-mxc/tzic.c | 32 +- trunk/arch/arm/plat-s3c24xx/Kconfig | 1 + trunk/arch/arm/plat-s3c24xx/Makefile | 2 + trunk/arch/arm/plat-s3c24xx/cpu.c | 9 +- trunk/arch/arm/plat-s3c24xx/dma.c | 10 +- trunk/arch/arm/plat-s3c24xx/gpio.c | 96 + trunk/arch/arm/plat-s3c24xx/gpiolib.c | 229 ++ .../arm/plat-s3c24xx/include/mach/clkdev.h | 7 + .../arm/plat-s3c24xx/include/mach/pwm-clock.h | 55 + .../include/plat/audio-simtec.h | 2 +- .../include/plat/common-smdk.h | 2 +- .../include/plat/cpu-freq-core.h | 5 +- .../include/plat/fiq.h | 2 +- .../include/plat/irq.h | 25 +- .../arch/arm/plat-s3c24xx/include/plat/map.h | 100 + .../include/plat/mci.h | 10 +- .../arch/arm/plat-s3c24xx/include/plat/pll.h | 62 + .../include/plat/regs-dma.h | 112 +- .../arm/plat-s3c24xx/include/plat/regs-iis.h | 68 + .../arm/plat-s3c24xx/include/plat/regs-spi.h | 81 + .../include/plat/regs-udc.h | 132 +- .../include/plat/s3c2410.h | 2 +- .../include/plat/s3c2412.h | 2 +- .../include/plat/s3c2416.h | 2 +- .../include/plat/s3c2443.h | 9 +- .../include/plat/s3c244x.h | 2 +- .../include/plat/udc.h | 4 +- trunk/arch/arm/plat-s3c24xx/s3c2443-clock.c | 192 +- trunk/arch/arm/plat-s5p/Kconfig | 25 +- trunk/arch/arm/plat-s5p/Makefile | 6 +- trunk/arch/arm/plat-s5p/cpu.c | 46 +- trunk/arch/arm/plat-s5p/dev-i2c-hdmiphy.c | 59 - trunk/arch/arm/plat-s5p/dev-tv.c | 98 - .../include/plat/camport.h | 6 +- .../include/plat/ehci.h | 6 +- .../include/plat/exynos4.h | 7 +- .../include/plat/irqs.h | 8 +- .../include/plat/map-s5p.h | 6 +- .../include/plat/mfc.h | 6 +- .../include/plat/mipi_csis.h | 6 +- trunk/arch/arm/plat-s5p/include/plat/pll.h | 153 + .../include/plat/regs-srom.h | 8 +- .../include/plat/reset.h | 8 +- .../include/plat/s5p-clock.h | 2 +- .../include/plat/s5p-time.h | 2 +- .../include/plat/s5p6440.h | 2 +- .../include/plat/s5p6450.h | 2 +- .../include/plat/s5pc100.h | 2 +- .../include/plat/s5pv210.h | 2 +- .../include/plat/sysmmu.h | 6 +- .../include/plat/system-reset.h | 2 +- .../include/plat/usb-phy.h | 6 +- trunk/arch/arm/plat-s5p/irq-gpioint.c | 16 +- trunk/arch/arm/plat-samsung/Kconfig | 36 +- trunk/arch/arm/plat-samsung/Makefile | 8 +- trunk/arch/arm/plat-samsung/adc.c | 43 +- trunk/arch/arm/plat-samsung/cpu.c | 58 - trunk/arch/arm/plat-samsung/dev-hsmmc.c | 19 +- trunk/arch/arm/plat-samsung/dev-hsmmc1.c | 19 +- trunk/arch/arm/plat-samsung/dev-hsmmc2.c | 19 +- trunk/arch/arm/plat-samsung/dev-hsmmc3.c | 19 +- trunk/arch/arm/plat-samsung/dev-ts.c | 9 - trunk/arch/arm/plat-samsung/dma-ops.c | 131 - trunk/arch/arm/plat-samsung/gpio-config.c | 431 ++ trunk/arch/arm/plat-samsung/gpio.c | 167 + .../arm/plat-samsung/include/plat/adc-core.h | 2 +- .../arch/arm/plat-samsung/include/plat/cpu.h | 113 +- .../arch/arm/plat-samsung/include/plat/devs.h | 6 - .../arm/plat-samsung/include/plat/dma-ops.h | 63 - .../plat-samsung/include/plat/dma-s3c24xx.h | 8 +- .../arch/arm/plat-samsung/include/plat/dma.h | 10 +- trunk/arch/arm/plat-samsung/include/plat/fb.h | 7 - .../include/plat/gpio-cfg-helpers.h | 172 +- .../arm/plat-samsung/include/plat/gpio-cfg.h | 34 +- .../arm/plat-samsung/include/plat/gpio-core.h | 97 +- .../arm/plat-samsung/include/plat/gpio-fns.h | 98 - .../arch/arm/plat-samsung/include/plat/iic.h | 1 - .../arm/plat-samsung/include/plat/map-s3c.h | 84 - .../arch/arm/plat-samsung/include/plat/pll.h | 323 -- .../arm/plat-samsung/include/plat/pll6553x.h | 51 + trunk/arch/arm/plat-samsung/include/plat/pm.h | 10 +- .../arm/plat-samsung/include/plat/regs-adc.h | 3 - .../arm/plat-samsung/include/plat/regs-iis.h | 70 - .../arm/plat-samsung/include/plat/regs-spi.h | 48 - .../plat/{dma-pl330.h => s3c-dma-pl330.h} | 24 +- .../include/plat/s3c-pl330-pdata.h | 32 + .../arm/plat-samsung/include/plat/sdhci.h | 64 +- .../arm/plat-samsung/include/plat/tv-core.h | 44 - trunk/arch/arm/plat-samsung/platformdata.c | 20 - trunk/arch/arm/plat-samsung/pm-gpio.c | 72 +- trunk/arch/arm/plat-samsung/pm.c | 6 +- trunk/arch/arm/plat-samsung/pwm-clock.c | 13 +- trunk/arch/arm/plat-samsung/s3c-dma-ops.c | 130 - trunk/arch/arm/plat-samsung/s3c-pl330.c | 1244 ++++++ trunk/arch/mips/Kconfig | 6 + trunk/arch/mips/alchemy/common/platform.c | 2 +- trunk/arch/mips/alchemy/common/power.c | 22 +- trunk/arch/mips/alchemy/devboards/bcsr.c | 4 + .../mips/alchemy/devboards/db1200/setup.c | 7 - trunk/arch/mips/ar7/irq.c | 3 +- trunk/arch/mips/bcm63xx/irq.c | 1 + trunk/arch/mips/cobalt/irq.c | 1 + trunk/arch/mips/dec/setup.c | 4 + trunk/arch/mips/emma/markeins/irq.c | 2 +- .../cpu-feature-overrides.h | 1 - .../include/asm/mach-powertv/dma-coherence.h | 1 - trunk/arch/mips/include/asm/stackframe.h | 4 +- trunk/arch/mips/jz4740/gpio.c | 52 +- trunk/arch/mips/kernel/ftrace.c | 39 +- trunk/arch/mips/kernel/i8259.c | 3 +- trunk/arch/mips/kernel/linux32.c | 7 + trunk/arch/mips/kernel/scall64-n32.S | 2 +- trunk/arch/mips/kernel/scall64-o32.S | 2 +- trunk/arch/mips/kernel/signal.c | 3 + trunk/arch/mips/kernel/traps.c | 16 +- trunk/arch/mips/kernel/vpe.c | 2 +- trunk/arch/mips/lantiq/irq.c | 6 +- trunk/arch/mips/lantiq/xway/ebu.c | 1 - trunk/arch/mips/lantiq/xway/pmu.c | 1 - trunk/arch/mips/lasat/interrupt.c | 1 + trunk/arch/mips/loongson/fuloong-2e/irq.c | 1 + trunk/arch/mips/loongson/lemote-2f/irq.c | 3 +- trunk/arch/mips/mm/mmap.c | 48 +- trunk/arch/mips/mm/tlbex.c | 6 +- trunk/arch/mips/mti-malta/malta-int.c | 6 +- trunk/arch/mips/netlogic/xlr/Makefile | 2 +- trunk/arch/mips/pci/pci-lantiq.c | 9 +- trunk/arch/mips/pci/pci-rc32434.c | 2 +- trunk/arch/mips/pmc-sierra/msp71xx/msp_irq.c | 6 +- trunk/arch/mips/pnx8550/common/int.c | 2 +- trunk/arch/mips/sgi-ip22/ip22-int.c | 10 +- trunk/arch/mips/sni/rm200.c | 1 + trunk/arch/mips/vr41xx/common/irq.c | 1 + trunk/arch/powerpc/platforms/powermac/pci.c | 14 + trunk/arch/s390/include/asm/elf.h | 3 +- trunk/arch/s390/mm/pgtable.c | 7 +- trunk/arch/sparc/include/asm/pgtsrmmu.h | 2 +- trunk/arch/sparc/include/asm/spitfire.h | 2 + trunk/arch/sparc/include/asm/xor_64.h | 4 +- trunk/arch/sparc/kernel/cpu.c | 12 + trunk/arch/sparc/kernel/cpumap.c | 2 + trunk/arch/sparc/kernel/head_64.S | 25 +- trunk/arch/sparc/kernel/pci.c | 3 +- trunk/arch/sparc/kernel/process_32.c | 3 +- trunk/arch/sparc/kernel/process_64.c | 3 - trunk/arch/sparc/kernel/setup_32.c | 2 +- trunk/arch/sparc/kernel/setup_64.c | 18 +- trunk/arch/sparc/kernel/signal32.c | 21 +- trunk/arch/sparc/kernel/signal_32.c | 32 +- trunk/arch/sparc/kernel/signal_64.c | 32 +- trunk/arch/sparc/mm/init_64.c | 5 + trunk/arch/sparc/mm/leon_mm.c | 2 +- trunk/arch/tile/kernel/intvec_32.S | 2 +- trunk/arch/tile/lib/atomic_asm_32.S | 2 +- trunk/arch/x86/kernel/rtc.c | 23 +- trunk/arch/x86/kernel/vsyscall_64.c | 2 +- trunk/arch/x86/mm/init.c | 3 +- trunk/arch/x86/pci/acpi.c | 11 + trunk/arch/x86/platform/mrst/mrst.c | 22 +- trunk/arch/x86/platform/mrst/vrtc.c | 9 + trunk/block/blk-core.c | 13 +- trunk/block/blk-sysfs.c | 5 + trunk/crypto/ghash-generic.c | 6 + trunk/drivers/dma/Kconfig | 3 +- trunk/drivers/dma/amba-pl08x.c | 455 ++- trunk/drivers/dma/at_hdmac.c | 159 +- trunk/drivers/dma/at_hdmac_regs.h | 24 - trunk/drivers/dma/dmatest.c | 23 +- trunk/drivers/dma/imx-sdma.c | 47 +- trunk/drivers/dma/mxs-dma.c | 45 +- trunk/drivers/dma/pl330.c | 229 +- trunk/drivers/gpio/Kconfig | 16 + trunk/drivers/gpio/Makefile | 7 +- trunk/drivers/gpio/gpio-exynos4.c | 385 ++ trunk/drivers/gpio/gpio-mxc.c | 12 - trunk/drivers/gpio/gpio-mxs.c | 2 - trunk/drivers/gpio/gpio-omap.c | 2 +- trunk/drivers/gpio/gpio-pca953x.c | 1 + trunk/drivers/gpio/gpio-plat-samsung.c | 205 + trunk/drivers/gpio/gpio-s5pc100.c | 354 ++ trunk/drivers/gpio/gpio-s5pv210.c | 287 ++ trunk/drivers/gpio/gpio-samsung.c | 2712 ------------- trunk/drivers/gpu/drm/i915/i915_drv.c | 4 +- trunk/drivers/gpu/drm/i915/intel_display.c | 22 +- trunk/drivers/gpu/drm/i915/intel_drv.h | 3 - trunk/drivers/gpu/drm/i915/intel_sdvo.c | 88 +- trunk/drivers/gpu/drm/radeon/atom.c | 15 +- trunk/drivers/gpu/drm/radeon/atom.h | 1 + trunk/drivers/gpu/drm/radeon/atombios_crtc.c | 2 +- trunk/drivers/gpu/drm/radeon/atombios_dp.c | 28 +- trunk/drivers/gpu/drm/radeon/evergreen.c | 44 - trunk/drivers/gpu/drm/radeon/ni.c | 32 - .../gpu/drm/radeon/radeon_connectors.c | 29 +- trunk/drivers/gpu/drm/radeon/radeon_cursor.c | 40 +- .../drivers/gpu/drm/radeon/radeon_encoders.c | 26 +- trunk/drivers/gpu/drm/radeon/rv770.c | 51 - trunk/drivers/gpu/drm/ttm/ttm_bo_util.c | 2 +- trunk/drivers/hwmon/coretemp.c | 28 +- trunk/drivers/hwmon/w83627ehf.c | 20 +- trunk/drivers/ide/Kconfig | 24 +- trunk/drivers/ide/ide-disk.c | 7 +- trunk/drivers/infiniband/hw/cxgb3/iwch_cm.c | 10 +- trunk/drivers/input/tablet/wacom_wac.c | 7 +- trunk/drivers/iommu/intel-iommu.c | 75 +- trunk/drivers/md/dm-crypt.c | 2 + trunk/drivers/md/dm-flakey.c | 4 +- trunk/drivers/md/dm-kcopyd.c | 1 + trunk/drivers/md/dm-raid.c | 2 +- trunk/drivers/md/dm-table.c | 32 +- trunk/drivers/md/md.c | 22 +- trunk/drivers/md/md.h | 2 +- trunk/drivers/md/multipath.c | 3 +- trunk/drivers/md/raid1.c | 3 +- trunk/drivers/md/raid10.c | 5 +- trunk/drivers/md/raid5.c | 6 +- trunk/drivers/media/video/omap/omap_vout.c | 13 - trunk/drivers/media/video/omap3isp/ispccdc.c | 1 + trunk/drivers/media/video/uvc/uvc_driver.c | 2 +- trunk/drivers/media/video/uvc/uvc_entity.c | 2 +- trunk/drivers/media/video/uvc/uvc_video.c | 10 +- trunk/drivers/media/video/uvc/uvcvideo.h | 2 +- trunk/drivers/media/video/v4l2-dev.c | 11 + trunk/drivers/media/video/v4l2-device.c | 2 + trunk/drivers/mfd/jz4740-adc.c | 2 +- trunk/drivers/misc/lis3lv02d/lis3lv02d.c | 14 +- trunk/drivers/mmc/host/davinci_mmc.c | 13 - trunk/drivers/mmc/host/s3cmci.c | 6 +- trunk/drivers/net/bnx2x/bnx2x.h | 18 +- trunk/drivers/net/bnx2x/bnx2x_cmn.h | 2 +- trunk/drivers/net/bnx2x/bnx2x_dcb.c | 1 + trunk/drivers/net/bnx2x/bnx2x_main.c | 16 +- trunk/drivers/net/bnx2x/bnx2x_reg.h | 12 + trunk/drivers/net/bonding/bond_3ad.c | 3 +- trunk/drivers/net/bonding/bond_alb.c | 3 +- trunk/drivers/net/bonding/bond_main.c | 20 +- trunk/drivers/net/can/mscan/mscan.c | 11 +- trunk/drivers/net/cxgb3/cxgb3_offload.c | 23 +- trunk/drivers/net/cxgb3/l2t.c | 15 +- trunk/drivers/net/cxgb3/l2t.h | 16 +- trunk/drivers/net/cxgb4/cxgb4_main.c | 3 + trunk/drivers/net/ibmveth.c | 4 +- trunk/drivers/net/macvlan.c | 2 +- trunk/drivers/net/mlx4/en_tx.c | 6 +- trunk/drivers/net/netconsole.c | 5 + trunk/drivers/net/pch_gbe/pch_gbe_main.c | 56 +- trunk/drivers/net/phy/dp83640.c | 4 +- trunk/drivers/net/pptp.c | 22 +- trunk/drivers/net/r8169.c | 90 +- trunk/drivers/net/smsc911x.c | 2 + trunk/drivers/net/tg3.c | 2 +- .../wireless/ath/ath9k/ar9003_2p2_initvals.h | 2 +- trunk/drivers/net/wireless/ath/ath9k/recv.c | 10 +- .../drivers/net/wireless/iwlegacy/iwl-core.c | 4 +- .../drivers/net/wireless/iwlegacy/iwl-hcmd.c | 2 +- trunk/drivers/net/wireless/iwlegacy/iwl-tx.c | 4 +- .../net/wireless/iwlegacy/iwl3945-base.c | 8 +- .../net/wireless/iwlegacy/iwl4965-base.c | 10 +- trunk/drivers/net/wireless/iwlwifi/iwl-scan.c | 30 +- trunk/drivers/net/wireless/rtlwifi/usb.c | 1 + trunk/drivers/net/xen-netback/interface.c | 4 +- trunk/drivers/pci/pci.c | 6 +- trunk/drivers/pci/probe.c | 14 +- trunk/drivers/s390/cio/cio.c | 8 +- trunk/drivers/scsi/3w-9xxx.c | 2 + trunk/drivers/scsi/Makefile | 2 +- trunk/drivers/scsi/aacraid/commsup.c | 2 + trunk/drivers/scsi/cxgbi/cxgb3i/cxgb3i.c | 2 +- trunk/drivers/scsi/libsas/sas_expander.c | 12 +- trunk/drivers/scsi/qla2xxx/qla_os.c | 9 +- trunk/drivers/spi/spi-s3c64xx.c | 175 +- trunk/drivers/spi/spi-topcliff-pch.c | 93 +- trunk/drivers/staging/octeon/ethernet-rx.c | 3 +- trunk/drivers/tty/serial/lantiq.c | 4 +- trunk/drivers/usb/host/ohci-at91.c | 239 +- trunk/fs/btrfs/file.c | 24 +- trunk/fs/btrfs/ioctl.c | 11 +- trunk/fs/cifs/connect.c | 2 +- trunk/fs/xfs/xfs_buf_item.c | 3 +- trunk/fs/xfs/xfs_dquot_item.c | 10 +- trunk/fs/xfs/xfs_inode_item.c | 10 +- trunk/fs/xfs/xfs_linux.h | 2 + trunk/fs/xfs/xfs_super.c | 13 +- trunk/fs/xfs/xfs_trans.h | 2 +- trunk/fs/xfs/xfs_trans_ail.c | 83 +- trunk/fs/xfs/xfs_trans_priv.h | 8 +- trunk/include/linux/amba/pl08x.h | 14 +- trunk/include/linux/amba/pl330.h | 6 +- trunk/include/linux/device-mapper.h | 5 + trunk/include/linux/dmaengine.h | 13 +- trunk/include/linux/irqdomain.h | 1 + trunk/include/linux/pci.h | 3 +- trunk/include/linux/ptp_classify.h | 13 +- trunk/include/linux/rtc/sirfsoc_rtciobrg.h | 18 - trunk/include/linux/sched.h | 1 - trunk/include/net/ip_vs.h | 1 + trunk/include/net/udplite.h | 63 +- trunk/include/trace/events/writeback.h | 10 +- trunk/init/main.c | 4 +- trunk/kernel/irq/irqdomain.c | 6 +- trunk/kernel/posix-cpu-timers.c | 12 +- trunk/kernel/resource.c | 7 +- trunk/kernel/sched.c | 26 +- trunk/kernel/sched_rt.c | 4 +- trunk/kernel/sys.c | 2 +- trunk/mm/migrate.c | 8 +- trunk/net/batman-adv/soft-interface.c | 10 +- trunk/net/bluetooth/l2cap_sock.c | 4 + trunk/net/bluetooth/rfcomm/sock.c | 3 + trunk/net/bluetooth/sco.c | 5 +- trunk/net/bridge/br_device.c | 3 - trunk/net/bridge/br_if.c | 9 +- trunk/net/bridge/br_netlink.c | 1 + trunk/net/bridge/br_private.h | 1 + trunk/net/can/bcm.c | 53 +- trunk/net/ceph/ceph_common.c | 1 + trunk/net/ceph/messenger.c | 1 + trunk/net/ceph/osd_client.c | 4 +- trunk/net/ceph/osdmap.c | 84 +- trunk/net/core/fib_rules.c | 5 +- trunk/net/ipv4/tcp_input.c | 4 +- trunk/net/ipv4/tcp_ipv4.c | 11 +- trunk/net/ipv4/tcp_minisocks.c | 1 + trunk/net/ipv6/af_inet6.c | 1 + trunk/net/ipv6/ip6mr.c | 8 +- trunk/net/ipv6/route.c | 4 +- trunk/net/ipv6/tcp_ipv6.c | 11 +- trunk/net/l2tp/l2tp_core.c | 4 +- trunk/net/netfilter/ipvs/ip_vs_ctl.c | 133 +- trunk/net/netfilter/ipvs/ip_vs_sync.c | 6 + trunk/net/netfilter/nf_conntrack_proto_gre.c | 4 +- trunk/net/packet/af_packet.c | 5 +- trunk/net/rds/iw_rdma.c | 13 +- trunk/net/wireless/nl80211.c | 5 +- trunk/net/x25/af_x25.c | 40 +- trunk/net/x25/x25_dev.c | 6 + trunk/net/x25/x25_facilities.c | 10 +- trunk/net/x25/x25_in.c | 43 +- trunk/net/x25/x25_link.c | 3 + trunk/net/x25/x25_subr.c | 14 +- trunk/net/xfrm/xfrm_policy.c | 10 +- trunk/security/security.c | 1 + trunk/sound/pci/hda/hda_intel.c | 10 +- trunk/sound/pci/hda/patch_conexant.c | 1 + trunk/sound/soc/codecs/wm8753.c | 4 +- trunk/sound/soc/omap/mcpdm.c | 2 +- trunk/sound/soc/omap/mcpdm.h | 2 +- trunk/sound/soc/pxa/zylonite.c | 8 +- trunk/sound/soc/samsung/ac97.c | 10 +- trunk/sound/soc/samsung/dma.c | 148 +- trunk/sound/soc/samsung/dma.h | 4 +- trunk/tools/perf/util/evsel.c | 7 +- 664 files changed, 15211 insertions(+), 15944 deletions(-) create mode 100644 trunk/arch/arm/configs/mx1_defconfig create mode 100644 trunk/arch/arm/configs/mx21_defconfig rename trunk/arch/arm/configs/{imx_v4_v5_defconfig => mx27_defconfig} (69%) rename trunk/arch/arm/configs/{mx5_defconfig => mx51_defconfig} (82%) delete mode 100644 trunk/arch/arm/mach-exynos4/clock-exynos4210.c delete mode 100644 trunk/arch/arm/mach-exynos4/clock-exynos4212.c create mode 100644 trunk/arch/arm/mach-exynos4/include/mach/clkdev.h delete mode 100644 trunk/arch/arm/mach-exynos4/include/mach/exynos4-clock.h delete mode 100644 trunk/arch/arm/mach-exynos4/include/mach/i2c-hdmiphy.h rename trunk/arch/arm/{plat-samsung/include/plat => mach-exynos4/include/mach}/pwm-clock.h (68%) delete mode 100644 trunk/arch/arm/mach-exynos4/mach-origen.c delete mode 100644 trunk/arch/arm/mach-exynos4/mach-smdk4x12.c create mode 100644 trunk/arch/arm/mach-exynos4/mach-smdkc210.c rename trunk/arch/arm/{plat-s5p => mach-exynos4}/sleep.S (81%) create mode 100644 trunk/arch/arm/mach-imx/cache-l2x0.c delete mode 100644 trunk/arch/arm/mach-imx/cpu-imx25.c delete mode 100644 trunk/arch/arm/mach-imx/mm-imx3.c create mode 100644 trunk/arch/arm/mach-imx/mm-imx31.c create mode 100644 trunk/arch/arm/mach-imx/mm-imx35.c create mode 100644 trunk/arch/arm/mach-mmp/include/mach/sram.h create mode 100644 trunk/arch/arm/mach-mmp/sram.c create mode 100644 trunk/arch/arm/mach-mx5/devices.c create mode 100644 trunk/arch/arm/mach-mx5/devices.h create mode 100644 trunk/arch/arm/mach-mx5/mm-mx50.c delete mode 100644 trunk/arch/arm/mach-mxs/devices/platform-mxs-saif.c delete mode 100644 trunk/arch/arm/mach-mxs/devices/platform-rtc-stmp3xxx.c rename trunk/arch/arm/mach-mxs/{mm.c => mm-mx23.c} (75%) create mode 100644 trunk/arch/arm/mach-mxs/mm-mx28.c delete mode 100644 trunk/arch/arm/mach-prima2/rtciobrg.c create mode 100644 trunk/arch/arm/mach-s3c2410/gpio.c create mode 100644 trunk/arch/arm/mach-s3c64xx/gpiolib.c create mode 100644 trunk/arch/arm/mach-s3c64xx/include/mach/clkdev.h delete mode 100644 trunk/arch/arm/mach-s3c64xx/include/mach/crag6410.h create mode 100644 trunk/arch/arm/mach-s3c64xx/include/mach/pll.h create mode 100644 trunk/arch/arm/mach-s3c64xx/include/mach/pwm-clock.h rename trunk/arch/arm/{plat-samsung/include/plat => mach-s3c64xx/include/mach}/s3c6400.h (94%) rename trunk/arch/arm/{plat-samsung/include/plat => mach-s3c64xx/include/mach}/s3c6410.h (93%) delete mode 100644 trunk/arch/arm/mach-s3c64xx/mach-crag6410-module.c create mode 100644 trunk/arch/arm/mach-s5p64x0/include/mach/clkdev.h delete mode 100644 trunk/arch/arm/mach-s5p64x0/include/mach/pm-core.h create mode 100644 trunk/arch/arm/mach-s5p64x0/include/mach/pwm-clock.h delete mode 100644 trunk/arch/arm/mach-s5p64x0/irq-pm.c delete mode 100644 trunk/arch/arm/mach-s5p64x0/pm.c delete mode 100644 trunk/arch/arm/mach-s5p64x0/setup-fb-24bpp.c create mode 100644 trunk/arch/arm/mach-s5pc100/include/mach/clkdev.h create mode 100644 trunk/arch/arm/mach-s5pc100/include/mach/pwm-clock.h create mode 100644 trunk/arch/arm/mach-s5pv210/include/mach/clkdev.h delete mode 100644 trunk/arch/arm/mach-s5pv210/include/mach/i2c-hdmiphy.h create mode 100644 trunk/arch/arm/mach-s5pv210/include/mach/pwm-clock.h create mode 100644 trunk/arch/arm/mach-s5pv210/sleep.S delete mode 100644 trunk/arch/arm/plat-mxc/devices/platform-pata_imx.c create mode 100644 trunk/arch/arm/plat-s3c24xx/gpio.c create mode 100644 trunk/arch/arm/plat-s3c24xx/gpiolib.c create mode 100644 trunk/arch/arm/plat-s3c24xx/include/mach/clkdev.h create mode 100644 trunk/arch/arm/plat-s3c24xx/include/mach/pwm-clock.h rename trunk/arch/arm/{plat-samsung => plat-s3c24xx}/include/plat/audio-simtec.h (95%) rename trunk/arch/arm/{plat-samsung => plat-s3c24xx}/include/plat/common-smdk.h (87%) rename trunk/arch/arm/{plat-samsung => plat-s3c24xx}/include/plat/cpu-freq-core.h (98%) rename trunk/arch/arm/{plat-samsung => plat-s3c24xx}/include/plat/fiq.h (88%) rename trunk/arch/arm/{plat-samsung => plat-s3c24xx}/include/plat/irq.h (81%) create mode 100644 trunk/arch/arm/plat-s3c24xx/include/plat/map.h rename trunk/arch/arm/{plat-samsung => plat-s3c24xx}/include/plat/mci.h (90%) create mode 100644 trunk/arch/arm/plat-s3c24xx/include/plat/pll.h rename trunk/arch/arm/{plat-samsung => plat-s3c24xx}/include/plat/regs-dma.h (58%) create mode 100644 trunk/arch/arm/plat-s3c24xx/include/plat/regs-iis.h create mode 100644 trunk/arch/arm/plat-s3c24xx/include/plat/regs-spi.h rename trunk/arch/arm/{plat-samsung => plat-s3c24xx}/include/plat/regs-udc.h (51%) rename trunk/arch/arm/{plat-samsung => plat-s3c24xx}/include/plat/s3c2410.h (93%) rename trunk/arch/arm/{plat-samsung => plat-s3c24xx}/include/plat/s3c2412.h (92%) rename trunk/arch/arm/{plat-samsung => plat-s3c24xx}/include/plat/s3c2416.h (92%) rename trunk/arch/arm/{plat-samsung => plat-s3c24xx}/include/plat/s3c2443.h (87%) rename trunk/arch/arm/{plat-samsung => plat-s3c24xx}/include/plat/s3c244x.h (94%) rename trunk/arch/arm/{plat-samsung => plat-s3c24xx}/include/plat/udc.h (95%) delete mode 100644 trunk/arch/arm/plat-s5p/dev-i2c-hdmiphy.c delete mode 100644 trunk/arch/arm/plat-s5p/dev-tv.c rename trunk/arch/arm/{plat-samsung => plat-s5p}/include/plat/camport.h (86%) rename trunk/arch/arm/{plat-samsung => plat-s5p}/include/plat/ehci.h (84%) rename trunk/arch/arm/{plat-samsung => plat-s5p}/include/plat/exynos4.h (83%) rename trunk/arch/arm/{plat-samsung => plat-s5p}/include/plat/irqs.h (96%) rename trunk/arch/arm/{plat-samsung => plat-s5p}/include/plat/map-s5p.h (94%) rename trunk/arch/arm/{plat-samsung => plat-s5p}/include/plat/mfc.h (90%) rename trunk/arch/arm/{plat-samsung => plat-s5p}/include/plat/mipi_csis.h (90%) create mode 100644 trunk/arch/arm/plat-s5p/include/plat/pll.h rename trunk/arch/arm/{plat-samsung => plat-s5p}/include/plat/regs-srom.h (89%) rename trunk/arch/arm/{plat-samsung => plat-s5p}/include/plat/reset.h (66%) rename trunk/arch/arm/{plat-samsung => plat-s5p}/include/plat/s5p-clock.h (96%) rename trunk/arch/arm/{plat-samsung => plat-s5p}/include/plat/s5p-time.h (94%) rename trunk/arch/arm/{plat-samsung => plat-s5p}/include/plat/s5p6440.h (94%) rename trunk/arch/arm/{plat-samsung => plat-s5p}/include/plat/s5p6450.h (94%) rename trunk/arch/arm/{plat-samsung => plat-s5p}/include/plat/s5pc100.h (94%) rename trunk/arch/arm/{plat-samsung => plat-s5p}/include/plat/s5pv210.h (94%) rename trunk/arch/arm/{plat-samsung => plat-s5p}/include/plat/sysmmu.h (96%) rename trunk/arch/arm/{plat-samsung => plat-s5p}/include/plat/system-reset.h (92%) rename trunk/arch/arm/{plat-samsung => plat-s5p}/include/plat/usb-phy.h (83%) delete mode 100644 trunk/arch/arm/plat-samsung/cpu.c delete mode 100644 trunk/arch/arm/plat-samsung/dma-ops.c create mode 100644 trunk/arch/arm/plat-samsung/gpio-config.c create mode 100644 trunk/arch/arm/plat-samsung/gpio.c delete mode 100644 trunk/arch/arm/plat-samsung/include/plat/dma-ops.h delete mode 100644 trunk/arch/arm/plat-samsung/include/plat/gpio-fns.h delete mode 100644 trunk/arch/arm/plat-samsung/include/plat/map-s3c.h delete mode 100644 trunk/arch/arm/plat-samsung/include/plat/pll.h create mode 100644 trunk/arch/arm/plat-samsung/include/plat/pll6553x.h delete mode 100644 trunk/arch/arm/plat-samsung/include/plat/regs-iis.h delete mode 100644 trunk/arch/arm/plat-samsung/include/plat/regs-spi.h rename trunk/arch/arm/plat-samsung/include/plat/{dma-pl330.h => s3c-dma-pl330.h} (84%) create mode 100644 trunk/arch/arm/plat-samsung/include/plat/s3c-pl330-pdata.h delete mode 100644 trunk/arch/arm/plat-samsung/include/plat/tv-core.h delete mode 100644 trunk/arch/arm/plat-samsung/s3c-dma-ops.c create mode 100644 trunk/arch/arm/plat-samsung/s3c-pl330.c create mode 100644 trunk/drivers/gpio/gpio-exynos4.c create mode 100644 trunk/drivers/gpio/gpio-plat-samsung.c create mode 100644 trunk/drivers/gpio/gpio-s5pc100.c create mode 100644 trunk/drivers/gpio/gpio-s5pv210.c delete mode 100644 trunk/drivers/gpio/gpio-samsung.c delete mode 100644 trunk/include/linux/rtc/sirfsoc_rtciobrg.h diff --git a/[refs] b/[refs] index 3633edcf3c8c..33c09de34ea5 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 11f0d9311c6e9ed928dc98ce6e9d14c0ee274b05 +refs/heads/master: 3c7241bd36e2a618fe20c91f6c69cc20f2d981f2 diff --git a/trunk/Documentation/kernel-parameters.txt b/trunk/Documentation/kernel-parameters.txt index 854ed5ca7e3f..d6e6724446c8 100644 --- a/trunk/Documentation/kernel-parameters.txt +++ b/trunk/Documentation/kernel-parameters.txt @@ -2706,10 +2706,11 @@ bytes respectively. Such letter suffixes can also be entirely omitted. functions are at fixed addresses, they make nice targets for exploits that can control RIP. - emulate [default] Vsyscalls turn into traps and are - emulated reasonably safely. + emulate Vsyscalls turn into traps and are emulated + reasonably safely. - native Vsyscalls are native syscall instructions. + native [default] Vsyscalls are native syscall + instructions. This is a little bit faster than trapping and makes a few dynamic recompilers work better than they would in emulation mode. diff --git a/trunk/Documentation/networking/ip-sysctl.txt b/trunk/Documentation/networking/ip-sysctl.txt index 81546990f41c..ca5cdcd0f0e3 100644 --- a/trunk/Documentation/networking/ip-sysctl.txt +++ b/trunk/Documentation/networking/ip-sysctl.txt @@ -1042,7 +1042,7 @@ conf/interface/*: The functional behaviour for certain settings is different depending on whether local forwarding is enabled or not. -accept_ra - BOOLEAN +accept_ra - INTEGER Accept Router Advertisements; autoconfigure using them. Possible values are: @@ -1106,7 +1106,7 @@ dad_transmits - INTEGER The amount of Duplicate Address Detection probes to send. Default: 1 -forwarding - BOOLEAN +forwarding - INTEGER Configure interface-specific Host/Router behaviour. Note: It is recommended to have the same setting on all diff --git a/trunk/Documentation/networking/scaling.txt b/trunk/Documentation/networking/scaling.txt index 58fd7414e6c0..fe67b5c79f0f 100644 --- a/trunk/Documentation/networking/scaling.txt +++ b/trunk/Documentation/networking/scaling.txt @@ -27,7 +27,7 @@ applying a filter to each packet that assigns it to one of a small number of logical flows. Packets for each flow are steered to a separate receive queue, which in turn can be processed by separate CPUs. This mechanism is generally known as “Receive-side Scaling” (RSS). The goal of RSS and -the other scaling techniques to increase performance uniformly. +the other scaling techniques is to increase performance uniformly. Multi-queue distribution can also be used for traffic prioritization, but that is not the focus of these techniques. @@ -186,10 +186,10 @@ are steered using plain RPS. Multiple table entries may point to the same CPU. Indeed, with many flows and few CPUs, it is very likely that a single application thread handles flows with many different flow hashes. -rps_sock_table is a global flow table that contains the *desired* CPU for -flows: the CPU that is currently processing the flow in userspace. Each -table value is a CPU index that is updated during calls to recvmsg and -sendmsg (specifically, inet_recvmsg(), inet_sendmsg(), inet_sendpage() +rps_sock_flow_table is a global flow table that contains the *desired* CPU +for flows: the CPU that is currently processing the flow in userspace. +Each table value is a CPU index that is updated during calls to recvmsg +and sendmsg (specifically, inet_recvmsg(), inet_sendmsg(), inet_sendpage() and tcp_splice_read()). When the scheduler moves a thread to a new CPU while it has outstanding @@ -243,7 +243,7 @@ configured. The number of entries in the global flow table is set through: The number of entries in the per-queue flow table are set through: - /sys/class/net//queues/tx-/rps_flow_cnt + /sys/class/net//queues/rx-/rps_flow_cnt == Suggested Configuration diff --git a/trunk/MAINTAINERS b/trunk/MAINTAINERS index ae8820e173a2..6185d0513584 100644 --- a/trunk/MAINTAINERS +++ b/trunk/MAINTAINERS @@ -2460,7 +2460,7 @@ S: Supported F: drivers/infiniband/hw/ehca/ EHEA (IBM pSeries eHEA 10Gb ethernet adapter) DRIVER -M: Breno Leitao +M: Thadeu Lima de Souza Cascardo L: netdev@vger.kernel.org S: Maintained F: drivers/net/ehea/ @@ -3313,7 +3313,7 @@ M: David Woodhouse L: iommu@lists.linux-foundation.org T: git git://git.infradead.org/iommu-2.6.git S: Supported -F: drivers/pci/intel-iommu.c +F: drivers/iommu/intel-iommu.c F: include/linux/intel-iommu.h INTEL IOP-ADMA DMA DRIVER @@ -6366,15 +6366,14 @@ F: net/ipv4/tcp_lp.c TEGRA SUPPORT M: Colin Cross -M: Erik Gilling M: Olof Johansson +M: Stephen Warren L: linux-tegra@vger.kernel.org -T: git git://android.git.kernel.org/kernel/tegra.git +T: git git://git.kernel.org/pub/scm/linux/kernel/git/olof/tegra.git S: Supported F: arch/arm/mach-tegra TEHUTI ETHERNET DRIVER -M: Alexander Indenbaum M: Andy Gospodarek L: netdev@vger.kernel.org S: Supported diff --git a/trunk/Makefile b/trunk/Makefile index 73bb458ecfd3..07bc92544e9c 100644 --- a/trunk/Makefile +++ b/trunk/Makefile @@ -1,7 +1,7 @@ VERSION = 3 PATCHLEVEL = 1 SUBLEVEL = 0 -EXTRAVERSION = -rc8 +EXTRAVERSION = NAME = "Divemaster Edition" # *DOCUMENTATION* diff --git a/trunk/arch/arm/Kconfig b/trunk/arch/arm/Kconfig index 012ff5fbb7e8..f03ccaec9701 100644 --- a/trunk/arch/arm/Kconfig +++ b/trunk/arch/arm/Kconfig @@ -397,7 +397,6 @@ config ARCH_MXC select CLKSRC_MMIO select GENERIC_IRQ_CHIP select HAVE_SCHED_CLOCK - select MULTI_IRQ_HANDLER help Support for Freescale MXC/iMX-based family of processors @@ -559,6 +558,7 @@ config ARCH_MMP select TICK_ONESHOT select PLAT_PXA select SPARSE_IRQ + select GENERIC_ALLOCATOR help Support for Marvell's PXA168/PXA910(MMP) and MMP2 processor line. @@ -716,7 +716,6 @@ config ARCH_S3C64XX select CPU_V6 select ARM_VIC select HAVE_CLK - select HAVE_TCM select CLKDEV_LOOKUP select NO_IOPORT select ARCH_USES_GETTIMEOFFSET @@ -726,6 +725,9 @@ config ARCH_S3C64XX select SAMSUNG_IRQ_VIC_TIMER select SAMSUNG_IRQ_UART select S3C_GPIO_TRACK + select S3C_GPIO_PULL_UPDOWN + select S3C_GPIO_CFG_S3C24XX + select S3C_GPIO_CFG_S3C64XX select S3C_DEV_NAND select USB_ARCH_HAS_OHCI select SAMSUNG_GPIOLIB_4BIT @@ -2095,7 +2097,7 @@ menu "Power management options" source "kernel/power/Kconfig" config ARCH_SUSPEND_POSSIBLE - depends on !ARCH_S5PC100 + depends on !ARCH_S5P64X0 && !ARCH_S5PC100 depends on CPU_ARM920T || CPU_ARM926T || CPU_SA1100 || \ CPU_V6 || CPU_V6K || CPU_V7 || CPU_XSC3 || CPU_XSCALE def_bool y diff --git a/trunk/arch/arm/Makefile b/trunk/arch/arm/Makefile index 9260c293405c..70c424eaf7b0 100644 --- a/trunk/arch/arm/Makefile +++ b/trunk/arch/arm/Makefile @@ -154,7 +154,9 @@ machine-$(CONFIG_ARCH_LPC32XX) := lpc32xx machine-$(CONFIG_ARCH_MMP) := mmp machine-$(CONFIG_ARCH_MSM) := msm machine-$(CONFIG_ARCH_MV78XX0) := mv78xx0 -machine-$(CONFIG_ARCH_IMX_V4_V5) := imx +machine-$(CONFIG_ARCH_MX1) := imx +machine-$(CONFIG_ARCH_MX2) := imx +machine-$(CONFIG_ARCH_MX25) := imx machine-$(CONFIG_ARCH_MX3) := imx machine-$(CONFIG_ARCH_MX5) := mx5 machine-$(CONFIG_ARCH_MXS) := mxs diff --git a/trunk/arch/arm/boot/dts/prima2-cb.dts b/trunk/arch/arm/boot/dts/prima2-cb.dts index 17b6737c4ee5..6fecc88065b2 100644 --- a/trunk/arch/arm/boot/dts/prima2-cb.dts +++ b/trunk/arch/arm/boot/dts/prima2-cb.dts @@ -67,11 +67,6 @@ compatible = "sirf,prima2-rstc"; reg = <0x88010000 0x1000>; }; - - rsc-controller@88020000 { - compatible = "sirf,prima2-rsc"; - reg = <0x88020000 0x1000>; - }; }; mem-iobg { @@ -279,7 +274,7 @@ gpio: gpio-controller@b0120000 { #gpio-cells = <2>; #interrupt-cells = <2>; - compatible = "sirf,prima2-gpio-pinmux"; + compatible = "sirf,prima2-gpio"; reg = <0xb0120000 0x10000>; gpio-controller; interrupt-controller; @@ -363,7 +358,7 @@ }; rtc-iobg { - compatible = "sirf,prima2-rtciobg", "sirf-prima2-rtciobg-bus"; + compatible = "sirf,prima2-rtciobg", "simple-bus"; #address-cells = <1>; #size-cells = <1>; reg = <0x80030000 0x10000>; diff --git a/trunk/arch/arm/common/vic.c b/trunk/arch/arm/common/vic.c index 7aa4262ada7a..197f81c77351 100644 --- a/trunk/arch/arm/common/vic.c +++ b/trunk/arch/arm/common/vic.c @@ -259,7 +259,6 @@ static void __init vic_disable(void __iomem *base) writel(0, base + VIC_INT_SELECT); writel(0, base + VIC_INT_ENABLE); writel(~0, base + VIC_INT_ENABLE_CLEAR); - writel(0, base + VIC_IRQ_STATUS); writel(0, base + VIC_ITCR); writel(~0, base + VIC_INT_SOFT_CLEAR); } diff --git a/trunk/arch/arm/configs/exynos4_defconfig b/trunk/arch/arm/configs/exynos4_defconfig index cd40bb56e568..da53ff3b4d70 100644 --- a/trunk/arch/arm/configs/exynos4_defconfig +++ b/trunk/arch/arm/configs/exynos4_defconfig @@ -11,7 +11,6 @@ CONFIG_MACH_SMDKV310=y CONFIG_MACH_ARMLEX4210=y CONFIG_MACH_UNIVERSAL_C210=y CONFIG_MACH_NURI=y -CONFIG_MACH_ORIGEN=y CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y CONFIG_SMP=y diff --git a/trunk/arch/arm/configs/mx1_defconfig b/trunk/arch/arm/configs/mx1_defconfig new file mode 100644 index 000000000000..c9436d0bf593 --- /dev/null +++ b/trunk/arch/arm/configs/mx1_defconfig @@ -0,0 +1,91 @@ +CONFIG_EXPERIMENTAL=y +CONFIG_SYSVIPC=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=14 +CONFIG_SYSFS_DEPRECATED_V2=y +CONFIG_EXPERT=y +CONFIG_SLAB=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +CONFIG_MODVERSIONS=y +# CONFIG_BLK_DEV_BSG is not set +CONFIG_ARCH_MXC=y +CONFIG_ARCH_MX1=y +CONFIG_ARCH_MX1ADS=y +CONFIG_MACH_SCB9328=y +CONFIG_MACH_APF9328=y +CONFIG_MXC_IRQ_PRIOR=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_PREEMPT=y +CONFIG_AEABI=y +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CMDLINE="noinitrd console=ttymxc0,115200 root=/dev/mtdblock2 rw ip=off" +CONFIG_PM=y +CONFIG_PM_DEBUG=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=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_FW_LOADER=m +CONFIG_MTD=y +CONFIG_MTD_PARTITIONS=y +CONFIG_MTD_CMDLINE_PARTS=y +CONFIG_MTD_CHAR=y +CONFIG_MTD_BLOCK=y +CONFIG_MTD_CFI=y +CONFIG_MTD_PHYSMAP=y +# CONFIG_BLK_DEV is not set +# CONFIG_MISC_DEVICES is not set +CONFIG_NETDEVICES=y +CONFIG_PHYLIB=y +CONFIG_SMSC_PHY=y +CONFIG_NET_ETHERNET=y +CONFIG_DM9000=y +# CONFIG_NETDEV_1000 is not set +# CONFIG_NETDEV_10000 is not set +# CONFIG_INPUT is not set +# CONFIG_SERIO is not set +# CONFIG_VT is not set +CONFIG_SERIAL_IMX=y +CONFIG_SERIAL_IMX_CONSOLE=y +# CONFIG_LEGACY_PTYS is not set +# CONFIG_HW_RANDOM is not set +CONFIG_I2C=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_IMX=y +CONFIG_W1=y +CONFIG_W1_MASTER_MXC=y +CONFIG_W1_SLAVE_THERM=y +# CONFIG_HWMON is not set +CONFIG_FB=y +CONFIG_USB_GADGET=y +CONFIG_USB_GADGET_IMX=y +CONFIG_USB_ETH=m +CONFIG_MMC=y +CONFIG_MMC_MXC=y +# CONFIG_DNOTIFY is not set +CONFIG_INOTIFY=y +CONFIG_TMPFS=y +CONFIG_JFFS2_FS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V3=y +CONFIG_NFS_V4=y +CONFIG_ROOT_NFS=y +# CONFIG_ENABLE_WARN_DEPRECATED is not set +# CONFIG_ENABLE_MUST_CHECK is not set +# CONFIG_RCU_CPU_STALL_DETECTOR is not set +CONFIG_SYSCTL_SYSCALL_CHECK=y +# CONFIG_CRYPTO_ANSI_CPRNG is not set diff --git a/trunk/arch/arm/configs/mx21_defconfig b/trunk/arch/arm/configs/mx21_defconfig new file mode 100644 index 000000000000..411f88dd4402 --- /dev/null +++ b/trunk/arch/arm/configs/mx21_defconfig @@ -0,0 +1,97 @@ +CONFIG_EXPERIMENTAL=y +# CONFIG_SWAP is not set +CONFIG_SYSVIPC=y +CONFIG_LOG_BUF_SHIFT=14 +CONFIG_SYSFS_DEPRECATED_V2=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_EXPERT=y +CONFIG_KALLSYMS_EXTRA_PASS=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_MXC=y +CONFIG_ARCH_MX2=y +CONFIG_MACH_MX21ADS=y +CONFIG_MXC_PWM=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_PREEMPT=y +CONFIG_AEABI=y +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_NET=y +CONFIG_INET=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +# 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_FW_LOADER is not set +CONFIG_MTD=y +CONFIG_MTD_DEBUG=y +CONFIG_MTD_DEBUG_VERBOSE=3 +CONFIG_MTD_PARTITIONS=y +CONFIG_MTD_REDBOOT_PARTS=y +CONFIG_MTD_CMDLINE_PARTS=y +CONFIG_MTD_CHAR=y +CONFIG_MTD_BLOCK=y +CONFIG_MTD_CFI=y +CONFIG_MTD_CFI_ADV_OPTIONS=y +CONFIG_MTD_CFI_GEOMETRY=y +# CONFIG_MTD_MAP_BANK_WIDTH_1 is not set +CONFIG_MTD_CFI_AMDSTD=y +CONFIG_MTD_PHYSMAP=y +CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_MXC=y +CONFIG_NETDEVICES=y +CONFIG_NET_ETHERNET=y +CONFIG_MII=y +# CONFIG_NETDEV_1000 is not set +# CONFIG_NETDEV_10000 is not set +# CONFIG_INPUT_MOUSEDEV is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +CONFIG_INPUT_TOUCHSCREEN=y +# CONFIG_SERIO is not set +# CONFIG_CONSOLE_TRANSLATIONS is not set +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_NR_UARTS=1 +CONFIG_SERIAL_IMX=y +CONFIG_SERIAL_IMX_CONSOLE=y +# CONFIG_LEGACY_PTYS is not set +# CONFIG_HW_RANDOM is not set +CONFIG_I2C=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_IMX=y +CONFIG_SPI=y +# CONFIG_HWMON is not set +CONFIG_FB=y +CONFIG_FB_IMX=y +# CONFIG_VGA_CONSOLE is not set +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FONTS=y +CONFIG_FONT_8x8=y +CONFIG_LOGO=y +# CONFIG_HID_SUPPORT is not set +# CONFIG_USB_SUPPORT is not set +CONFIG_MMC=y +CONFIG_MMC_MXC=y +# CONFIG_DNOTIFY is not set +CONFIG_MSDOS_FS=y +CONFIG_TMPFS=y +CONFIG_JFFS2_FS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V3=y +CONFIG_ROOT_NFS=y +# CONFIG_RCU_CPU_STALL_DETECTOR is not set +CONFIG_SYSCTL_SYSCALL_CHECK=y +# CONFIG_CRYPTO_ANSI_CPRNG is not set diff --git a/trunk/arch/arm/configs/imx_v4_v5_defconfig b/trunk/arch/arm/configs/mx27_defconfig similarity index 69% rename from trunk/arch/arm/configs/imx_v4_v5_defconfig rename to trunk/arch/arm/configs/mx27_defconfig index 11a4192197c8..9ad4c656c9bd 100644 --- a/trunk/arch/arm/configs/imx_v4_v5_defconfig +++ b/trunk/arch/arm/configs/mx27_defconfig @@ -3,7 +3,9 @@ CONFIG_EXPERIMENTAL=y CONFIG_SYSVIPC=y CONFIG_POSIX_MQUEUE=y CONFIG_LOG_BUF_SHIFT=14 +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_EXPERT=y +CONFIG_KALLSYMS_EXTRA_PASS=y # CONFIG_COMPAT_BRK is not set CONFIG_SLAB=y CONFIG_PROFILING=y @@ -15,12 +17,8 @@ CONFIG_MODULE_UNLOAD=y # CONFIG_IOSCHED_DEADLINE is not set # CONFIG_IOSCHED_CFQ is not set CONFIG_ARCH_MXC=y -CONFIG_ARCH_IMX_V4_V5=y -CONFIG_ARCH_MX1ADS=y -CONFIG_MACH_SCB9328=y -CONFIG_MACH_MX21ADS=y -CONFIG_MACH_MX25_3DS=y -CONFIG_MACH_EUKREA_CPUIMX25=y +CONFIG_ARCH_MX2=y +CONFIG_MACH_MX27=y CONFIG_MACH_MX27ADS=y CONFIG_MACH_PCM038=y CONFIG_MACH_CPUIMX27=y @@ -31,7 +29,6 @@ CONFIG_MACH_IMX27_VISSTRIM_M10=y CONFIG_MACH_IMX27LITE=y CONFIG_MACH_PCA100=y CONFIG_MACH_MXT_TD60=y -CONFIG_MACH_IMX27IPCAM=y CONFIG_MXC_IRQ_PRIOR=y CONFIG_MXC_PWM=y CONFIG_NO_HZ=y @@ -42,6 +39,7 @@ CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 CONFIG_FPE_NWFPE=y CONFIG_FPE_NWFPE_XP=y +CONFIG_PM=y CONFIG_PM_DEBUG=y CONFIG_NET=y CONFIG_PACKET=y @@ -57,9 +55,8 @@ CONFIG_IP_PNP_DHCP=y # CONFIG_INET_DIAG is not set # CONFIG_IPV6 is not set CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -CONFIG_DEVTMPFS=y -CONFIG_DEVTMPFS_MOUNT=y CONFIG_MTD=y +CONFIG_MTD_PARTITIONS=y CONFIG_MTD_CMDLINE_PARTS=y CONFIG_MTD_CHAR=y CONFIG_MTD_BLOCK=y @@ -72,15 +69,12 @@ CONFIG_MTD_CFI_GEOMETRY=y CONFIG_MTD_CFI_INTELEXT=y CONFIG_MTD_PHYSMAP=y CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_MXC=y CONFIG_MTD_UBI=y -CONFIG_MISC_DEVICES=y CONFIG_EEPROM_AT24=y -CONFIG_EEPROM_AT25=y CONFIG_NETDEVICES=y CONFIG_NET_ETHERNET=y -CONFIG_SMC91X=y -CONFIG_DM9000=y -CONFIG_SMC911X=y +CONFIG_FEC=y # CONFIG_NETDEV_1000 is not set # CONFIG_NETDEV_10000 is not set # CONFIG_INPUT_MOUSEDEV is not set @@ -90,10 +84,10 @@ CONFIG_INPUT_EVDEV=y CONFIG_INPUT_TOUCHSCREEN=y CONFIG_TOUCHSCREEN_ADS7846=m # CONFIG_SERIO is not set -# CONFIG_LEGACY_PTYS is not set CONFIG_SERIAL_8250=m CONFIG_SERIAL_IMX=y CONFIG_SERIAL_IMX_CONSOLE=y +# CONFIG_LEGACY_PTYS is not set # CONFIG_HW_RANDOM is not set CONFIG_I2C=y CONFIG_I2C_CHARDEV=y @@ -104,56 +98,19 @@ CONFIG_W1=y CONFIG_W1_MASTER_MXC=y CONFIG_W1_SLAVE_THERM=y # CONFIG_HWMON is not set -CONFIG_WATCHDOG=y -CONFIG_IMX2_WDT=y -CONFIG_MFD_MC13XXX=y -CONFIG_REGULATOR=y -CONFIG_REGULATOR_MC13783=y -CONFIG_REGULATOR_MC13892=y CONFIG_FB=y CONFIG_FB_IMX=y -CONFIG_BACKLIGHT_LCD_SUPPORT=y -CONFIG_LCD_CLASS_DEVICE=y -CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_BACKLIGHT_PWM=y CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FONTS=y CONFIG_FONT_8x8=y -CONFIG_LOGO=y -CONFIG_SOUND=y -CONFIG_SND=y -# CONFIG_SND_ARM is not set -# CONFIG_SND_SPI is not set -CONFIG_SND_SOC=y -CONFIG_SND_IMX_SOC=y -CONFIG_SND_SOC_MX27VIS_AIC32X4=y -CONFIG_SND_SOC_PHYCORE_AC97=y -CONFIG_SND_SOC_EUKREA_TLV320=y -CONFIG_USB_HID=m -CONFIG_USB=y +# CONFIG_HID_SUPPORT is not set +CONFIG_USB=m # CONFIG_USB_DEVICE_CLASS is not set -CONFIG_USB_EHCI_HCD=y -CONFIG_USB_EHCI_MXC=y CONFIG_USB_ULPI=y CONFIG_MMC=y CONFIG_MMC_MXC=y -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=y -CONFIG_LEDS_MC13783=y -CONFIG_LEDS_TRIGGERS=y -CONFIG_LEDS_TRIGGER_TIMER=y -CONFIG_LEDS_TRIGGER_HEARTBEAT=y -CONFIG_LEDS_TRIGGER_BACKLIGHT=y -CONFIG_LEDS_TRIGGER_GPIO=y -CONFIG_LEDS_TRIGGER_DEFAULT_ON=y CONFIG_RTC_CLASS=y CONFIG_RTC_DRV_PCF8563=y -CONFIG_RTC_DRV_IMXDI=y -CONFIG_RTC_MXC=y -CONFIG_DMADEVICES=y -CONFIG_IMX_SDMA=y -CONFIG_IMX_DMA=y -# CONFIG_IOMMU_SUPPORT is not set # CONFIG_DNOTIFY is not set # CONFIG_PROC_PAGE_MONITOR is not set CONFIG_TMPFS=y @@ -162,9 +119,12 @@ CONFIG_UBIFS_FS=y CONFIG_NFS_FS=y CONFIG_NFS_V3=y CONFIG_ROOT_NFS=y +CONFIG_NLS=y CONFIG_NLS_CODEPAGE_437=m CONFIG_NLS_CODEPAGE_850=m CONFIG_NLS_ISO8859_1=y CONFIG_NLS_ISO8859_15=m +CONFIG_DEBUG_FS=y +# CONFIG_RCU_CPU_STALL_DETECTOR is not set CONFIG_SYSCTL_SYSCALL_CHECK=y # CONFIG_CRYPTO_ANSI_CPRNG is not set diff --git a/trunk/arch/arm/configs/mx5_defconfig b/trunk/arch/arm/configs/mx51_defconfig similarity index 82% rename from trunk/arch/arm/configs/mx5_defconfig rename to trunk/arch/arm/configs/mx51_defconfig index d0d8dfece37e..88c5802a2351 100644 --- a/trunk/arch/arm/configs/mx5_defconfig +++ b/trunk/arch/arm/configs/mx51_defconfig @@ -1,6 +1,5 @@ CONFIG_EXPERIMENTAL=y # CONFIG_LOCALVERSION_AUTO is not set -CONFIG_KERNEL_LZO=y CONFIG_SYSVIPC=y CONFIG_LOG_BUF_SHIFT=18 CONFIG_RELAY=y @@ -14,29 +13,21 @@ CONFIG_MODULE_SRCVERSION_ALL=y # CONFIG_LBDAF is not set # CONFIG_BLK_DEV_BSG is not set CONFIG_ARCH_MXC=y -CONFIG_ARCH_MX5=y +CONFIG_ARCH_MX51=y CONFIG_MACH_MX51_BABBAGE=y CONFIG_MACH_MX51_3DS=y CONFIG_MACH_EUKREA_CPUIMX51=y -CONFIG_MACH_EUKREA_CPUIMX51SD=y -CONFIG_MACH_MX51_EFIKAMX=y -CONFIG_MACH_MX51_EFIKASB=y -CONFIG_MACH_MX53_EVK=y -CONFIG_MACH_MX53_SMD=y -CONFIG_MACH_MX53_LOCO=y -CONFIG_MACH_MX53_ARD=y -CONFIG_MXC_PWM=y CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y -CONFIG_VMSPLIT_2G=y CONFIG_PREEMPT_VOLUNTARY=y CONFIG_AEABI=y # CONFIG_OABI_COMPAT is not set CONFIG_DEFAULT_MMAP_MIN_ADDR=32768 -CONFIG_CMDLINE="noinitrd console=ttymxc0,115200" +CONFIG_CMDLINE="noinitrd console=ttymxc0,115200 root=/dev/nfs nfsroot=192.168.0.101:/shared/nfs ip=dhcp" CONFIG_VFP=y CONFIG_NEON=y CONFIG_BINFMT_MISC=m +CONFIG_PM=y CONFIG_PM_DEBUG=y CONFIG_PM_TEST_SUSPEND=y CONFIG_NET=y @@ -51,13 +42,13 @@ CONFIG_IP_PNP_DHCP=y # CONFIG_INET_LRO is not set # CONFIG_IPV6 is not set # CONFIG_WIRELESS is not set -CONFIG_DEVTMPFS=y -CONFIG_DEVTMPFS_MOUNT=y # CONFIG_STANDALONE is not set CONFIG_CONNECTOR=y CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_SIZE=65536 +# CONFIG_MISC_DEVICES is not set +CONFIG_SCSI=y # CONFIG_SCSI_PROC_FS is not set CONFIG_BLK_DEV_SD=y CONFIG_SCSI_MULTI_LUN=y @@ -65,10 +56,8 @@ CONFIG_SCSI_CONSTANTS=y CONFIG_SCSI_LOGGING=y CONFIG_SCSI_SCAN_ASYNC=y # CONFIG_SCSI_LOWLEVEL is not set -CONFIG_ATA=y -CONFIG_PATA_IMX=y +CONFIG_ATA=m CONFIG_NETDEVICES=y -CONFIG_MII=m CONFIG_MARVELL_PHY=y CONFIG_DAVICOM_PHY=y CONFIG_QSEMI_PHY=y @@ -82,57 +71,49 @@ CONFIG_REALTEK_PHY=y CONFIG_NATIONAL_PHY=y CONFIG_STE10XP=y CONFIG_LSI_ET1011C_PHY=y -CONFIG_MICREL_PHY=y +CONFIG_MDIO_BITBANG=y +CONFIG_MDIO_GPIO=y CONFIG_NET_ETHERNET=y +CONFIG_MII=m +CONFIG_FEC=y # CONFIG_NETDEV_1000 is not set # CONFIG_NETDEV_10000 is not set # CONFIG_WLAN is not set +CONFIG_INPUT_FF_MEMLESS=m # CONFIG_INPUT_MOUSEDEV_PSAUX is not set CONFIG_INPUT_EVDEV=y -CONFIG_INPUT_EVBUG=m CONFIG_KEYBOARD_GPIO=y +CONFIG_INPUT_EVBUG=m CONFIG_MOUSE_PS2=m CONFIG_MOUSE_PS2_ELANTECH=y -CONFIG_INPUT_MISC=y -CONFIG_INPUT_MMA8450=y CONFIG_SERIO_SERPORT=m CONFIG_VT_HW_CONSOLE_BINDING=y -# CONFIG_LEGACY_PTYS is not set # CONFIG_DEVKMEM is not set CONFIG_SERIAL_IMX=y CONFIG_SERIAL_IMX_CONSOLE=y +# CONFIG_LEGACY_PTYS is not set CONFIG_HW_RANDOM=y CONFIG_I2C=y # CONFIG_I2C_COMPAT is not set -CONFIG_I2C_CHARDEV=y +CONFIG_I2C_CHARDEV=m # CONFIG_I2C_HELPER_AUTO is not set CONFIG_I2C_ALGOBIT=m CONFIG_I2C_ALGOPCF=m CONFIG_I2C_ALGOPCA=m -CONFIG_I2C_IMX=y -CONFIG_SPI=y -CONFIG_SPI_IMX=y CONFIG_GPIO_SYSFS=y # CONFIG_HWMON is not set -CONFIG_WATCHDOG=y -CONFIG_IMX2_WDT=y -CONFIG_MFD_MC13XXX=y -CONFIG_REGULATOR=y -CONFIG_REGULATOR_MC13892=y +# CONFIG_HID_SUPPORT is not set CONFIG_USB=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_MXC=y CONFIG_USB_STORAGE=y CONFIG_MMC=y CONFIG_MMC_BLOCK=m -CONFIG_MMC_SDHCI=y -CONFIG_MMC_SDHCI_PLTFM=y -CONFIG_MMC_SDHCI_ESDHC_IMX=y +CONFIG_MMC_SDHCI=m CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y CONFIG_RTC_CLASS=y CONFIG_RTC_INTF_DEV_UIE_EMUL=y -CONFIG_RTC_MXC=y CONFIG_EXT2_FS=y CONFIG_EXT2_FS_XATTR=y CONFIG_EXT2_FS_POSIX_ACL=y @@ -146,6 +127,7 @@ CONFIG_EXT4_FS_SECURITY=y CONFIG_QUOTA=y CONFIG_QUOTA_NETLINK_INTERFACE=y # CONFIG_PRINT_QUOTA_WARNING is not set +CONFIG_AUTOFS_FS=y CONFIG_AUTOFS4_FS=y CONFIG_FUSE_FS=y CONFIG_ISO9660_FS=m @@ -169,13 +151,17 @@ CONFIG_NLS_ISO8859_15=m CONFIG_NLS_UTF8=y CONFIG_MAGIC_SYSRQ=y CONFIG_DEBUG_FS=y +CONFIG_DEBUG_KERNEL=y # CONFIG_SCHED_DEBUG is not set # CONFIG_DEBUG_BUGVERBOSE is not set +# CONFIG_RCU_CPU_STALL_DETECTOR is not set # CONFIG_FTRACE is not set # CONFIG_ARM_UNWIND is not set +CONFIG_DEBUG_LL=y +CONFIG_EARLY_PRINTK=y CONFIG_SECURITYFS=y -CONFIG_CRYPTO_DEFLATE=m -CONFIG_CRYPTO_LZO=m +CONFIG_CRYPTO_DEFLATE=y +CONFIG_CRYPTO_LZO=y # CONFIG_CRYPTO_ANSI_CPRNG is not set # CONFIG_CRYPTO_HW is not set CONFIG_CRC_CCITT=m diff --git a/trunk/arch/arm/include/asm/hardware/pl080.h b/trunk/arch/arm/include/asm/hardware/pl080.h index 33c78d7af2e1..e4a04e4e5627 100644 --- a/trunk/arch/arm/include/asm/hardware/pl080.h +++ b/trunk/arch/arm/include/asm/hardware/pl080.h @@ -21,9 +21,6 @@ * OneNAND features. */ -#ifndef ASM_PL080_H -#define ASM_PL080_H - #define PL080_INT_STATUS (0x00) #define PL080_TC_STATUS (0x04) #define PL080_TC_CLEAR (0x08) @@ -141,4 +138,3 @@ struct pl080s_lli { u32 control1; }; -#endif /* ASM_PL080_H */ diff --git a/trunk/arch/arm/include/asm/localtimer.h b/trunk/arch/arm/include/asm/localtimer.h index 080d74f8128d..ff66638ff54d 100644 --- a/trunk/arch/arm/include/asm/localtimer.h +++ b/trunk/arch/arm/include/asm/localtimer.h @@ -10,6 +10,8 @@ #ifndef __ASM_ARM_LOCALTIMER_H #define __ASM_ARM_LOCALTIMER_H +#include + struct clock_event_device; /* diff --git a/trunk/arch/arm/kernel/perf_event_v7.c b/trunk/arch/arm/kernel/perf_event_v7.c index 4c851834f68e..6be3e2e4d838 100644 --- a/trunk/arch/arm/kernel/perf_event_v7.c +++ b/trunk/arch/arm/kernel/perf_event_v7.c @@ -321,8 +321,8 @@ static const unsigned armv7_a9_perf_map[PERF_COUNT_HW_MAX] = { [PERF_COUNT_HW_CPU_CYCLES] = ARMV7_PERFCTR_CPU_CYCLES, [PERF_COUNT_HW_INSTRUCTIONS] = ARMV7_PERFCTR_INST_OUT_OF_RENAME_STAGE, - [PERF_COUNT_HW_CACHE_REFERENCES] = ARMV7_PERFCTR_COHERENT_LINE_HIT, - [PERF_COUNT_HW_CACHE_MISSES] = ARMV7_PERFCTR_COHERENT_LINE_MISS, + [PERF_COUNT_HW_CACHE_REFERENCES] = ARMV7_PERFCTR_DCACHE_ACCESS, + [PERF_COUNT_HW_CACHE_MISSES] = ARMV7_PERFCTR_DCACHE_REFILL, [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = ARMV7_PERFCTR_PC_WRITE, [PERF_COUNT_HW_BRANCH_MISSES] = ARMV7_PERFCTR_PC_BRANCH_MIS_PRED, [PERF_COUNT_HW_BUS_CYCLES] = ARMV7_PERFCTR_CLOCK_CYCLES, diff --git a/trunk/arch/arm/mach-at91/at91cap9.c b/trunk/arch/arm/mach-at91/at91cap9.c index ecdd54dd68c6..bfc684441ef8 100644 --- a/trunk/arch/arm/mach-at91/at91cap9.c +++ b/trunk/arch/arm/mach-at91/at91cap9.c @@ -219,8 +219,6 @@ static struct clk_lookup periph_clocks_lookups[] = { 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), }; static struct clk_lookup usart_clocks_lookups[] = { diff --git a/trunk/arch/arm/mach-at91/at91cap9_devices.c b/trunk/arch/arm/mach-at91/at91cap9_devices.c index b46615a59355..dba0d8d8a4bd 100644 --- a/trunk/arch/arm/mach-at91/at91cap9_devices.c +++ b/trunk/arch/arm/mach-at91/at91cap9_devices.c @@ -80,12 +80,6 @@ void __init at91_add_device_usbh(struct at91_usbh_data *data) at91_set_gpio_output(data->vbus_pin[i], 0); } - /* Enable overcurrent notification */ - for (i = 0; i < data->ports; i++) { - if (data->overcurrent_pin[i]) - at91_set_gpio_input(data->overcurrent_pin[i], 1); - } - usbh_data = *data; platform_device_register(&at91_usbh_device); } diff --git a/trunk/arch/arm/mach-at91/at91rm9200.c b/trunk/arch/arm/mach-at91/at91rm9200.c index 713d3bdbd284..f73302dbc6a5 100644 --- a/trunk/arch/arm/mach-at91/at91rm9200.c +++ b/trunk/arch/arm/mach-at91/at91rm9200.c @@ -193,8 +193,6 @@ static struct clk_lookup periph_clocks_lookups[] = { CLKDEV_CON_DEV_ID("pclk", "ssc.0", &ssc0_clk), CLKDEV_CON_DEV_ID("pclk", "ssc.1", &ssc1_clk), CLKDEV_CON_DEV_ID("pclk", "ssc.2", &ssc2_clk), - /* fake hclk clock */ - CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &ohci_clk), }; static struct clk_lookup usart_clocks_lookups[] = { diff --git a/trunk/arch/arm/mach-at91/at91rm9200_devices.c b/trunk/arch/arm/mach-at91/at91rm9200_devices.c index 3f2711391a69..7227755ffec6 100644 --- a/trunk/arch/arm/mach-at91/at91rm9200_devices.c +++ b/trunk/arch/arm/mach-at91/at91rm9200_devices.c @@ -60,17 +60,9 @@ static struct platform_device at91rm9200_usbh_device = { void __init at91_add_device_usbh(struct at91_usbh_data *data) { - int i; - if (!data) return; - /* Enable overcurrent notification */ - for (i = 0; i < data->ports; i++) { - if (data->overcurrent_pin[i]) - at91_set_gpio_input(data->overcurrent_pin[i], 1); - } - usbh_data = *data; platform_device_register(&at91rm9200_usbh_device); } diff --git a/trunk/arch/arm/mach-at91/at91sam9260.c b/trunk/arch/arm/mach-at91/at91sam9260.c index a9be75825e34..cb397be14448 100644 --- a/trunk/arch/arm/mach-at91/at91sam9260.c +++ b/trunk/arch/arm/mach-at91/at91sam9260.c @@ -199,8 +199,6 @@ static struct clk_lookup periph_clocks_lookups[] = { CLKDEV_CON_DEV_ID("t4_clk", "atmel_tcb.1", &tc4_clk), CLKDEV_CON_DEV_ID("t5_clk", "atmel_tcb.1", &tc5_clk), CLKDEV_CON_DEV_ID("pclk", "ssc.0", &ssc_clk), - /* fake hclk clock */ - CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &ohci_clk), }; static struct clk_lookup usart_clocks_lookups[] = { diff --git a/trunk/arch/arm/mach-at91/at91sam9260_devices.c b/trunk/arch/arm/mach-at91/at91sam9260_devices.c index 344075fbb39e..39f81f47b4ba 100644 --- a/trunk/arch/arm/mach-at91/at91sam9260_devices.c +++ b/trunk/arch/arm/mach-at91/at91sam9260_devices.c @@ -61,17 +61,9 @@ static struct platform_device at91_usbh_device = { void __init at91_add_device_usbh(struct at91_usbh_data *data) { - int i; - if (!data) return; - /* Enable overcurrent notification */ - for (i = 0; i < data->ports; i++) { - if (data->overcurrent_pin[i]) - at91_set_gpio_input(data->overcurrent_pin[i], 1); - } - usbh_data = *data; platform_device_register(&at91_usbh_device); } diff --git a/trunk/arch/arm/mach-at91/at91sam9261.c b/trunk/arch/arm/mach-at91/at91sam9261.c index 658a5185abfd..6c8e3b5f669f 100644 --- a/trunk/arch/arm/mach-at91/at91sam9261.c +++ b/trunk/arch/arm/mach-at91/at91sam9261.c @@ -129,20 +129,6 @@ static struct clk lcdc_clk = { .type = CLK_TYPE_PERIPHERAL, }; -/* HClocks */ -static struct clk hck0 = { - .name = "hck0", - .pmc_mask = AT91_PMC_HCK0, - .type = CLK_TYPE_SYSTEM, - .id = 0, -}; -static struct clk hck1 = { - .name = "hck1", - .pmc_mask = AT91_PMC_HCK1, - .type = CLK_TYPE_SYSTEM, - .id = 1, -}; - static struct clk *periph_clocks[] __initdata = { &pioA_clk, &pioB_clk, @@ -175,7 +161,6 @@ static struct clk_lookup periph_clocks_lookups[] = { CLKDEV_CON_DEV_ID("pclk", "ssc.0", &ssc0_clk), CLKDEV_CON_DEV_ID("pclk", "ssc.1", &ssc1_clk), CLKDEV_CON_DEV_ID("pclk", "ssc.2", &ssc2_clk), - CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &hck0), }; static struct clk_lookup usart_clocks_lookups[] = { @@ -214,6 +199,20 @@ static struct clk pck3 = { .id = 3, }; +/* HClocks */ +static struct clk hck0 = { + .name = "hck0", + .pmc_mask = AT91_PMC_HCK0, + .type = CLK_TYPE_SYSTEM, + .id = 0, +}; +static struct clk hck1 = { + .name = "hck1", + .pmc_mask = AT91_PMC_HCK1, + .type = CLK_TYPE_SYSTEM, + .id = 1, +}; + static void __init at91sam9261_register_clocks(void) { int i; diff --git a/trunk/arch/arm/mach-at91/at91sam9261_devices.c b/trunk/arch/arm/mach-at91/at91sam9261_devices.c index 3b8fb79d6b10..0f917928eeb7 100644 --- a/trunk/arch/arm/mach-at91/at91sam9261_devices.c +++ b/trunk/arch/arm/mach-at91/at91sam9261_devices.c @@ -64,17 +64,9 @@ static struct platform_device at91sam9261_usbh_device = { void __init at91_add_device_usbh(struct at91_usbh_data *data) { - int i; - if (!data) return; - /* Enable overcurrent notification */ - for (i = 0; i < data->ports; i++) { - if (data->overcurrent_pin[i]) - at91_set_gpio_input(data->overcurrent_pin[i], 1); - } - usbh_data = *data; platform_device_register(&at91sam9261_usbh_device); } diff --git a/trunk/arch/arm/mach-at91/at91sam9263.c b/trunk/arch/arm/mach-at91/at91sam9263.c index f83fbb0ee0c5..044f3c927e64 100644 --- a/trunk/arch/arm/mach-at91/at91sam9263.c +++ b/trunk/arch/arm/mach-at91/at91sam9263.c @@ -189,8 +189,6 @@ static struct clk_lookup periph_clocks_lookups[] = { 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), - /* fake hclk clock */ - CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &ohci_clk), }; static struct clk_lookup usart_clocks_lookups[] = { diff --git a/trunk/arch/arm/mach-at91/at91sam9263_devices.c b/trunk/arch/arm/mach-at91/at91sam9263_devices.c index d4aef76a092d..a050f41fc860 100644 --- a/trunk/arch/arm/mach-at91/at91sam9263_devices.c +++ b/trunk/arch/arm/mach-at91/at91sam9263_devices.c @@ -74,12 +74,6 @@ void __init at91_add_device_usbh(struct at91_usbh_data *data) at91_set_gpio_output(data->vbus_pin[i], 0); } - /* Enable overcurrent notification */ - for (i = 0; i < data->ports; i++) { - if (data->overcurrent_pin[i]) - at91_set_gpio_input(data->overcurrent_pin[i], 1); - } - usbh_data = *data; platform_device_register(&at91_usbh_device); } diff --git a/trunk/arch/arm/mach-at91/at91sam9g45.c b/trunk/arch/arm/mach-at91/at91sam9g45.c index 8f5db7b9e6ea..e04c5fb6f1ee 100644 --- a/trunk/arch/arm/mach-at91/at91sam9g45.c +++ b/trunk/arch/arm/mach-at91/at91sam9g45.c @@ -215,8 +215,6 @@ static struct clk_lookup periph_clocks_lookups[] = { CLKDEV_CON_DEV_ID("t0_clk", "atmel_tcb.1", &tcb0_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", &uhphs_clk), }; static struct clk_lookup usart_clocks_lookups[] = { diff --git a/trunk/arch/arm/mach-at91/at91sam9g45_devices.c b/trunk/arch/arm/mach-at91/at91sam9g45_devices.c index e4a98574893d..600bffb01edb 100644 --- a/trunk/arch/arm/mach-at91/at91sam9g45_devices.c +++ b/trunk/arch/arm/mach-at91/at91sam9g45_devices.c @@ -124,12 +124,6 @@ void __init at91_add_device_usbh_ohci(struct at91_usbh_data *data) at91_set_gpio_output(data->vbus_pin[i], 0); } - /* Enable overcurrent notification */ - for (i = 0; i < data->ports; i++) { - if (data->overcurrent_pin[i]) - at91_set_gpio_input(data->overcurrent_pin[i], 1); - } - usbh_ohci_data = *data; platform_device_register(&at91_usbh_ohci_device); } diff --git a/trunk/arch/arm/mach-at91/include/mach/board.h b/trunk/arch/arm/mach-at91/include/mach/board.h index d07767f4052e..ed544a0d5a1d 100644 --- a/trunk/arch/arm/mach-at91/include/mach/board.h +++ b/trunk/arch/arm/mach-at91/include/mach/board.h @@ -98,11 +98,6 @@ extern void __init at91_add_device_eth(struct at91_eth_data *data); struct at91_usbh_data { u8 ports; /* number of ports on root hub */ u8 vbus_pin[2]; /* port power-control pin */ - u8 vbus_pin_inverted; - u8 overcurrent_supported; - u8 overcurrent_pin[2]; - u8 overcurrent_status[2]; - u8 overcurrent_changed[2]; }; extern void __init at91_add_device_usbh(struct at91_usbh_data *data); extern void __init at91_add_device_usbh_ohci(struct at91_usbh_data *data); diff --git a/trunk/arch/arm/mach-davinci/Kconfig b/trunk/arch/arm/mach-davinci/Kconfig index 32d837d8eab9..c0deacae778d 100644 --- a/trunk/arch/arm/mach-davinci/Kconfig +++ b/trunk/arch/arm/mach-davinci/Kconfig @@ -192,16 +192,6 @@ config DA850_UI_RMII endchoice -config DA850_WL12XX - bool "AM18x wl1271 daughter board" - depends on MACH_DAVINCI_DA850_EVM - help - The wl1271 daughter card for AM18x EVMs is a combo wireless - connectivity add-on card, based on the LS Research TiWi module with - Texas Instruments' wl1271 solution. - Say Y if you want to use a wl1271 expansion card connected to the - AM18x EVM. - config GPIO_PCA953X default MACH_DAVINCI_DA850_EVM diff --git a/trunk/arch/arm/mach-davinci/board-da850-evm.c b/trunk/arch/arm/mach-davinci/board-da850-evm.c index cb7a1f0b299f..008d51407cd7 100644 --- a/trunk/arch/arm/mach-davinci/board-da850-evm.c +++ b/trunk/arch/arm/mach-davinci/board-da850-evm.c @@ -31,8 +31,6 @@ #include #include #include -#include -#include #include #include @@ -51,9 +49,6 @@ #define DA850_MMCSD_CD_PIN GPIO_TO_PIN(4, 0) #define DA850_MMCSD_WP_PIN GPIO_TO_PIN(4, 1) -#define DA850_WLAN_EN GPIO_TO_PIN(6, 9) -#define DA850_WLAN_IRQ GPIO_TO_PIN(6, 10) - #define DA850_MII_MDIO_CLKEN_PIN GPIO_TO_PIN(2, 6) static struct mtd_partition da850evm_spiflash_part[] = { @@ -1148,110 +1143,6 @@ static __init int da850_evm_init_cpufreq(void) static __init int da850_evm_init_cpufreq(void) { return 0; } #endif -#ifdef CONFIG_DA850_WL12XX - -static void wl12xx_set_power(int index, bool power_on) -{ - static bool power_state; - - pr_debug("Powering %s wl12xx", power_on ? "on" : "off"); - - if (power_on == power_state) - return; - power_state = power_on; - - if (power_on) { - /* Power up sequence required for wl127x devices */ - gpio_set_value(DA850_WLAN_EN, 1); - usleep_range(15000, 15000); - gpio_set_value(DA850_WLAN_EN, 0); - usleep_range(1000, 1000); - gpio_set_value(DA850_WLAN_EN, 1); - msleep(70); - } else { - gpio_set_value(DA850_WLAN_EN, 0); - } -} - -static struct davinci_mmc_config da850_wl12xx_mmc_config = { - .set_power = wl12xx_set_power, - .wires = 4, - .max_freq = 25000000, - .caps = MMC_CAP_4_BIT_DATA | MMC_CAP_NONREMOVABLE | - MMC_CAP_POWER_OFF_CARD, - .version = MMC_CTLR_VERSION_2, -}; - -static const short da850_wl12xx_pins[] __initconst = { - DA850_MMCSD1_DAT_0, DA850_MMCSD1_DAT_1, DA850_MMCSD1_DAT_2, - DA850_MMCSD1_DAT_3, DA850_MMCSD1_CLK, DA850_MMCSD1_CMD, - DA850_GPIO6_9, DA850_GPIO6_10, - -1 -}; - -static struct wl12xx_platform_data da850_wl12xx_wlan_data __initdata = { - .irq = -1, - .board_ref_clock = WL12XX_REFCLOCK_38, - .platform_quirks = WL12XX_PLATFORM_QUIRK_EDGE_IRQ, -}; - -static __init int da850_wl12xx_init(void) -{ - int ret; - - ret = davinci_cfg_reg_list(da850_wl12xx_pins); - if (ret) { - pr_err("wl12xx/mmc mux setup failed: %d\n", ret); - goto exit; - } - - ret = da850_register_mmcsd1(&da850_wl12xx_mmc_config); - if (ret) { - pr_err("wl12xx/mmc registration failed: %d\n", ret); - goto exit; - } - - ret = gpio_request_one(DA850_WLAN_EN, GPIOF_OUT_INIT_LOW, "wl12xx_en"); - if (ret) { - pr_err("Could not request wl12xx enable gpio: %d\n", ret); - goto exit; - } - - ret = gpio_request_one(DA850_WLAN_IRQ, GPIOF_IN, "wl12xx_irq"); - if (ret) { - pr_err("Could not request wl12xx irq gpio: %d\n", ret); - goto free_wlan_en; - } - - da850_wl12xx_wlan_data.irq = gpio_to_irq(DA850_WLAN_IRQ); - - ret = wl12xx_set_platform_data(&da850_wl12xx_wlan_data); - if (ret) { - pr_err("Could not set wl12xx data: %d\n", ret); - goto free_wlan_irq; - } - - return 0; - -free_wlan_irq: - gpio_free(DA850_WLAN_IRQ); - -free_wlan_en: - gpio_free(DA850_WLAN_EN); - -exit: - return ret; -} - -#else /* CONFIG_DA850_WL12XX */ - -static __init int da850_wl12xx_init(void) -{ - return 0; -} - -#endif /* CONFIG_DA850_WL12XX */ - #define DA850EVM_SATA_REFCLKPN_RATE (100 * 1000 * 1000) static __init void da850_evm_init(void) @@ -1306,11 +1197,6 @@ static __init void da850_evm_init(void) if (ret) pr_warning("da850_evm_init: mmcsd0 registration failed:" " %d\n", ret); - - ret = da850_wl12xx_init(); - if (ret) - pr_warning("da850_evm_init: wl12xx initialization" - " failed: %d\n", ret); } davinci_serial_init(&da850_evm_uart_config); diff --git a/trunk/arch/arm/mach-davinci/da850.c b/trunk/arch/arm/mach-davinci/da850.c index 0cf0d8845422..935dbed5c541 100644 --- a/trunk/arch/arm/mach-davinci/da850.c +++ b/trunk/arch/arm/mach-davinci/da850.c @@ -535,13 +535,6 @@ static const struct mux_config da850_pins[] = { MUX_CFG(DA850, MMCSD0_DAT_3, 10, 20, 15, 2, false) MUX_CFG(DA850, MMCSD0_CLK, 10, 0, 15, 2, false) MUX_CFG(DA850, MMCSD0_CMD, 10, 4, 15, 2, false) - /* MMC/SD1 function */ - MUX_CFG(DA850, MMCSD1_DAT_0, 18, 8, 15, 2, false) - MUX_CFG(DA850, MMCSD1_DAT_1, 19, 16, 15, 2, false) - MUX_CFG(DA850, MMCSD1_DAT_2, 19, 12, 15, 2, false) - MUX_CFG(DA850, MMCSD1_DAT_3, 19, 8, 15, 2, false) - MUX_CFG(DA850, MMCSD1_CLK, 18, 12, 15, 2, false) - MUX_CFG(DA850, MMCSD1_CMD, 18, 16, 15, 2, false) /* EMIF2.5/EMIFA function */ MUX_CFG(DA850, EMA_D_7, 9, 0, 15, 1, false) MUX_CFG(DA850, EMA_D_6, 9, 4, 15, 1, false) @@ -600,8 +593,6 @@ static const struct mux_config da850_pins[] = { MUX_CFG(DA850, GPIO3_13, 7, 8, 15, 8, false) MUX_CFG(DA850, GPIO4_0, 10, 28, 15, 8, false) MUX_CFG(DA850, GPIO4_1, 10, 24, 15, 8, false) - MUX_CFG(DA850, GPIO6_9, 13, 24, 15, 8, false) - MUX_CFG(DA850, GPIO6_10, 13, 20, 15, 8, false) MUX_CFG(DA850, GPIO6_13, 13, 8, 15, 8, false) MUX_CFG(DA850, RTC_ALARM, 0, 28, 15, 2, false) #endif diff --git a/trunk/arch/arm/mach-davinci/include/mach/mmc.h b/trunk/arch/arm/mach-davinci/include/mach/mmc.h index 5ba6b22ce338..d4f1e9675069 100644 --- a/trunk/arch/arm/mach-davinci/include/mach/mmc.h +++ b/trunk/arch/arm/mach-davinci/include/mach/mmc.h @@ -12,9 +12,6 @@ struct davinci_mmc_config { /* get_cd()/get_wp() may sleep */ int (*get_cd)(int module); int (*get_ro)(int module); - - void (*set_power)(int module, bool on); - /* wires == 0 is equivalent to wires == 4 (4-bit parallel) */ u8 wires; diff --git a/trunk/arch/arm/mach-davinci/include/mach/mux.h b/trunk/arch/arm/mach-davinci/include/mach/mux.h index a7e92fca32e6..5d4e0fed828a 100644 --- a/trunk/arch/arm/mach-davinci/include/mach/mux.h +++ b/trunk/arch/arm/mach-davinci/include/mach/mux.h @@ -857,14 +857,6 @@ enum davinci_da850_index { DA850_MMCSD0_CLK, DA850_MMCSD0_CMD, - /* MMC/SD1 function */ - DA850_MMCSD1_DAT_0, - DA850_MMCSD1_DAT_1, - DA850_MMCSD1_DAT_2, - DA850_MMCSD1_DAT_3, - DA850_MMCSD1_CLK, - DA850_MMCSD1_CMD, - /* EMIF2.5/EMIFA function */ DA850_EMA_D_7, DA850_EMA_D_6, @@ -924,8 +916,6 @@ enum davinci_da850_index { DA850_GPIO3_13, DA850_GPIO4_0, DA850_GPIO4_1, - DA850_GPIO6_9, - DA850_GPIO6_10, DA850_GPIO6_13, DA850_RTC_ALARM, }; diff --git a/trunk/arch/arm/mach-exynos4/Kconfig b/trunk/arch/arm/mach-exynos4/Kconfig index 4924838e9acc..0c77ab99fa16 100644 --- a/trunk/arch/arm/mach-exynos4/Kconfig +++ b/trunk/arch/arm/mach-exynos4/Kconfig @@ -11,24 +11,10 @@ if ARCH_EXYNOS4 config CPU_EXYNOS4210 bool - select SAMSUNG_DMADEV - select S5P_PM if PM - select S5P_SLEEP if PM + select S3C_PL330_DMA help Enable EXYNOS4210 CPU support -config SOC_EXYNOS4212 - bool - select S5P_PM if PM - select S5P_SLEEP if PM - help - Enable EXYNOS4212 SoC support - -config SOC_EXYNOS4412 - bool - help - Enable EXYNOS4412 SoC support - config EXYNOS4_MCT bool default y @@ -125,11 +111,24 @@ config EXYNOS4_SETUP_USB_PHY menu "EXYNOS4 Machines" -comment "EXYNOS4210 Boards" - config MACH_SMDKC210 bool "SMDKC210" - select MACH_SMDKV310 + select CPU_EXYNOS4210 + select S5P_DEV_FIMD0 + select S3C_DEV_RTC + select S3C_DEV_WDT + select S3C_DEV_I2C1 + select S3C_DEV_HSMMC + select S3C_DEV_HSMMC1 + select S3C_DEV_HSMMC2 + select S3C_DEV_HSMMC3 + select SAMSUNG_DEV_PWM + select SAMSUNG_DEV_BACKLIGHT + select EXYNOS4_DEV_PD + select EXYNOS4_DEV_SYSMMU + select EXYNOS4_SETUP_FIMD0 + select EXYNOS4_SETUP_I2C1 + select EXYNOS4_SETUP_SDHCI help Machine support for Samsung SMDKC210 @@ -140,14 +139,6 @@ config MACH_SMDKV310 select S3C_DEV_RTC select S3C_DEV_WDT select S3C_DEV_I2C1 - select S5P_DEV_FIMC0 - select S5P_DEV_FIMC1 - select S5P_DEV_FIMC2 - select S5P_DEV_FIMC3 - select S5P_DEV_I2C_HDMIPHY - select S5P_DEV_MFC - select S5P_DEV_TV - select S5P_DEV_USB_EHCI select S3C_DEV_HSMMC select S3C_DEV_HSMMC1 select S3C_DEV_HSMMC2 @@ -162,7 +153,6 @@ config MACH_SMDKV310 select EXYNOS4_SETUP_I2C1 select EXYNOS4_SETUP_KEYPAD select EXYNOS4_SETUP_SDHCI - select EXYNOS4_SETUP_USB_PHY help Machine support for Samsung SMDKV310 @@ -188,26 +178,19 @@ config MACH_UNIVERSAL_C210 select S5P_DEV_FIMC1 select S5P_DEV_FIMC2 select S5P_DEV_FIMC3 - select S5P_DEV_CSIS0 - select S5P_DEV_FIMD0 select S3C_DEV_HSMMC select S3C_DEV_HSMMC2 select S3C_DEV_HSMMC3 select S3C_DEV_I2C1 select S3C_DEV_I2C3 select S3C_DEV_I2C5 - select S5P_DEV_I2C_HDMIPHY select S5P_DEV_MFC select S5P_DEV_ONENAND - select S5P_DEV_TV select EXYNOS4_DEV_PD - select EXYNOS4_SETUP_FIMD0 select EXYNOS4_SETUP_I2C1 select EXYNOS4_SETUP_I2C3 select EXYNOS4_SETUP_I2C5 select EXYNOS4_SETUP_SDHCI - select EXYNOS4_SETUP_FIMC - select S5P_SETUP_MIPIPHY help Machine support for Samsung Mobile Universal S5PC210 Reference Board. @@ -215,95 +198,26 @@ config MACH_UNIVERSAL_C210 config MACH_NURI bool "Mobile NURI Board" select CPU_EXYNOS4210 - select S5P_GPIO_INT select S3C_DEV_WDT - select S3C_DEV_RTC - select S5P_DEV_FIMD0 select S3C_DEV_HSMMC select S3C_DEV_HSMMC2 select S3C_DEV_HSMMC3 select S3C_DEV_I2C1 select S3C_DEV_I2C3 select S3C_DEV_I2C5 - select S5P_DEV_CSIS0 - select S5P_DEV_FIMC0 - select S5P_DEV_FIMC1 - select S5P_DEV_FIMC2 - select S5P_DEV_FIMC3 select S5P_DEV_MFC select S5P_DEV_USB_EHCI - select S5P_SETUP_MIPIPHY select EXYNOS4_DEV_PD - select EXYNOS4_SETUP_FIMC - select EXYNOS4_SETUP_FIMD0 select EXYNOS4_SETUP_I2C1 select EXYNOS4_SETUP_I2C3 select EXYNOS4_SETUP_I2C5 select EXYNOS4_SETUP_SDHCI select EXYNOS4_SETUP_USB_PHY - select S5P_SETUP_MIPIPHY select SAMSUNG_DEV_PWM select SAMSUNG_DEV_ADC help Machine support for Samsung Mobile NURI Board. -config MACH_ORIGEN - bool "ORIGEN" - select CPU_EXYNOS4210 - select S3C_DEV_RTC - select S3C_DEV_WDT - select S3C_DEV_HSMMC - select S3C_DEV_HSMMC2 - select S5P_DEV_FIMC0 - select S5P_DEV_FIMC1 - select S5P_DEV_FIMC2 - select S5P_DEV_FIMC3 - select S5P_DEV_FIMD0 - select S5P_DEV_I2C_HDMIPHY - select S5P_DEV_MFC - select S5P_DEV_TV - select S5P_DEV_USB_EHCI - select SAMSUNG_DEV_BACKLIGHT - select SAMSUNG_DEV_PWM - select EXYNOS4_DEV_PD - select EXYNOS4_SETUP_FIMD0 - select EXYNOS4_SETUP_SDHCI - select EXYNOS4_SETUP_USB_PHY - help - Machine support for ORIGEN based on Samsung EXYNOS4210 - -comment "EXYNOS4212 Boards" - -config MACH_SMDK4212 - bool "SMDK4212" - select SOC_EXYNOS4212 - select S3C_DEV_HSMMC2 - select S3C_DEV_HSMMC3 - select S3C_DEV_I2C1 - select S3C_DEV_I2C3 - select S3C_DEV_I2C7 - select S3C_DEV_RTC - select S3C_DEV_WDT - select SAMSUNG_DEV_BACKLIGHT - select SAMSUNG_DEV_KEYPAD - select SAMSUNG_DEV_PWM - select EXYNOS4_SETUP_I2C1 - select EXYNOS4_SETUP_I2C3 - select EXYNOS4_SETUP_I2C7 - select EXYNOS4_SETUP_KEYPAD - select EXYNOS4_SETUP_SDHCI - help - Machine support for Samsung SMDK4212 - -comment "EXYNOS4412 Boards" - -config MACH_SMDK4412 - bool "SMDK4412" - select SOC_EXYNOS4412 - select MACH_SMDK4212 - help - Machine support for Samsung SMDK4412 - endmenu comment "Configuration for HSMMC bus width" diff --git a/trunk/arch/arm/mach-exynos4/Makefile b/trunk/arch/arm/mach-exynos4/Makefile index 2bb18f431db9..b7fe1d7b0b1f 100644 --- a/trunk/arch/arm/mach-exynos4/Makefile +++ b/trunk/arch/arm/mach-exynos4/Makefile @@ -12,11 +12,9 @@ obj- := # Core support for EXYNOS4 system -obj-$(CONFIG_ARCH_EXYNOS4) += cpu.o init.o clock.o irq-combiner.o -obj-$(CONFIG_ARCH_EXYNOS4) += setup-i2c0.o irq-eint.o dma.o pmu.o -obj-$(CONFIG_CPU_EXYNOS4210) += clock-exynos4210.o -obj-$(CONFIG_SOC_EXYNOS4212) += clock-exynos4212.o -obj-$(CONFIG_PM) += pm.o +obj-$(CONFIG_CPU_EXYNOS4210) += cpu.o init.o clock.o irq-combiner.o +obj-$(CONFIG_CPU_EXYNOS4210) += setup-i2c0.o irq-eint.o dma.o pmu.o +obj-$(CONFIG_PM) += pm.o sleep.o obj-$(CONFIG_CPU_IDLE) += cpuidle.o obj-$(CONFIG_SMP) += platsmp.o headsmp.o @@ -27,15 +25,11 @@ obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o # machine support -obj-$(CONFIG_MACH_SMDKC210) += mach-smdkv310.o +obj-$(CONFIG_MACH_SMDKC210) += mach-smdkc210.o obj-$(CONFIG_MACH_SMDKV310) += mach-smdkv310.o obj-$(CONFIG_MACH_ARMLEX4210) += mach-armlex4210.o obj-$(CONFIG_MACH_UNIVERSAL_C210) += mach-universal_c210.o obj-$(CONFIG_MACH_NURI) += mach-nuri.o -obj-$(CONFIG_MACH_ORIGEN) += mach-origen.o - -obj-$(CONFIG_MACH_SMDK4212) += mach-smdk4x12.o -obj-$(CONFIG_MACH_SMDK4412) += mach-smdk4x12.o # device support diff --git a/trunk/arch/arm/mach-exynos4/clock-exynos4210.c b/trunk/arch/arm/mach-exynos4/clock-exynos4210.c deleted file mode 100644 index b9d5ef670eb4..000000000000 --- a/trunk/arch/arm/mach-exynos4/clock-exynos4210.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * linux/arch/arm/mach-exynos4/clock-exynos4210.c - * - * Copyright (c) 2011 Samsung Electronics Co., Ltd. - * http://www.samsung.com - * - * EXYNOS4210 - Clock support - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. -*/ - -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -static struct sleep_save exynos4210_clock_save[] = { - SAVE_ITEM(S5P_CLKSRC_IMAGE), - SAVE_ITEM(S5P_CLKSRC_LCD1), - SAVE_ITEM(S5P_CLKDIV_IMAGE), - SAVE_ITEM(S5P_CLKDIV_LCD1), - SAVE_ITEM(S5P_CLKSRC_MASK_LCD1), - SAVE_ITEM(S5P_CLKGATE_IP_IMAGE_4210), - SAVE_ITEM(S5P_CLKGATE_IP_LCD1), - SAVE_ITEM(S5P_CLKGATE_IP_PERIR_4210), -}; - -static struct clksrc_clk *sysclks[] = { - /* nothing here yet */ -}; - -static int exynos4_clksrc_mask_lcd1_ctrl(struct clk *clk, int enable) -{ - return s5p_gatectrl(S5P_CLKSRC_MASK_LCD1, clk, enable); -} - -static struct clksrc_clk clksrcs[] = { - { - .clk = { - .name = "sclk_sata", - .id = -1, - .enable = exynos4_clksrc_mask_fsys_ctrl, - .ctrlbit = (1 << 24), - }, - .sources = &clkset_mout_corebus, - .reg_src = { .reg = S5P_CLKSRC_FSYS, .shift = 24, .size = 1 }, - .reg_div = { .reg = S5P_CLKDIV_FSYS0, .shift = 20, .size = 4 }, - }, { - .clk = { - .name = "sclk_fimd", - .devname = "exynos4-fb.1", - .enable = exynos4_clksrc_mask_lcd1_ctrl, - .ctrlbit = (1 << 0), - }, - .sources = &clkset_group, - .reg_src = { .reg = S5P_CLKSRC_LCD1, .shift = 0, .size = 4 }, - .reg_div = { .reg = S5P_CLKDIV_LCD1, .shift = 0, .size = 4 }, - }, -}; - -static struct clk init_clocks_off[] = { - { - .name = "sataphy", - .id = -1, - .parent = &clk_aclk_133.clk, - .enable = exynos4_clk_ip_fsys_ctrl, - .ctrlbit = (1 << 3), - }, { - .name = "sata", - .id = -1, - .parent = &clk_aclk_133.clk, - .enable = exynos4_clk_ip_fsys_ctrl, - .ctrlbit = (1 << 10), - }, { - .name = "fimd", - .devname = "exynos4-fb.1", - .enable = exynos4_clk_ip_lcd1_ctrl, - .ctrlbit = (1 << 0), - }, -}; - -#ifdef CONFIG_PM_SLEEP -static int exynos4210_clock_suspend(void) -{ - s3c_pm_do_save(exynos4210_clock_save, ARRAY_SIZE(exynos4210_clock_save)); - - return 0; -} - -static void exynos4210_clock_resume(void) -{ - s3c_pm_do_restore_core(exynos4210_clock_save, ARRAY_SIZE(exynos4210_clock_save)); -} - -#else -#define exynos4210_clock_suspend NULL -#define exynos4210_clock_resume NULL -#endif - -struct syscore_ops exynos4210_clock_syscore_ops = { - .suspend = exynos4210_clock_suspend, - .resume = exynos4210_clock_resume, -}; - -void __init exynos4210_register_clocks(void) -{ - int ptr; - - clk_mout_mpll.reg_src.reg = S5P_CLKSRC_CPU; - clk_mout_mpll.reg_src.shift = 8; - clk_mout_mpll.reg_src.size = 1; - - for (ptr = 0; ptr < ARRAY_SIZE(sysclks); ptr++) - s3c_register_clksrc(sysclks[ptr], 1); - - s3c_register_clksrc(clksrcs, ARRAY_SIZE(clksrcs)); - - s3c_register_clocks(init_clocks_off, ARRAY_SIZE(init_clocks_off)); - s3c_disable_clocks(init_clocks_off, ARRAY_SIZE(init_clocks_off)); - - register_syscore_ops(&exynos4210_clock_syscore_ops); -} diff --git a/trunk/arch/arm/mach-exynos4/clock-exynos4212.c b/trunk/arch/arm/mach-exynos4/clock-exynos4212.c deleted file mode 100644 index 77d5decb34fd..000000000000 --- a/trunk/arch/arm/mach-exynos4/clock-exynos4212.c +++ /dev/null @@ -1,118 +0,0 @@ -/* - * linux/arch/arm/mach-exynos4/clock-exynos4212.c - * - * Copyright (c) 2011 Samsung Electronics Co., Ltd. - * http://www.samsung.com - * - * EXYNOS4212 - Clock support - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. -*/ - -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -static struct sleep_save exynos4212_clock_save[] = { - SAVE_ITEM(S5P_CLKSRC_IMAGE), - SAVE_ITEM(S5P_CLKDIV_IMAGE), - SAVE_ITEM(S5P_CLKGATE_IP_IMAGE_4212), - SAVE_ITEM(S5P_CLKGATE_IP_PERIR_4212), -}; - -static struct clk *clk_src_mpll_user_list[] = { - [0] = &clk_fin_mpll, - [1] = &clk_mout_mpll.clk, -}; - -static struct clksrc_sources clk_src_mpll_user = { - .sources = clk_src_mpll_user_list, - .nr_sources = ARRAY_SIZE(clk_src_mpll_user_list), -}; - -static struct clksrc_clk clk_mout_mpll_user = { - .clk = { - .name = "mout_mpll_user", - }, - .sources = &clk_src_mpll_user, - .reg_src = { .reg = S5P_CLKSRC_CPU, .shift = 24, .size = 1 }, -}; - -static struct clksrc_clk *sysclks[] = { - &clk_mout_mpll_user, -}; - -static struct clksrc_clk clksrcs[] = { - /* nothing here yet */ -}; - -static struct clk init_clocks_off[] = { - /* nothing here yet */ -}; - -#ifdef CONFIG_PM_SLEEP -static int exynos4212_clock_suspend(void) -{ - s3c_pm_do_save(exynos4212_clock_save, ARRAY_SIZE(exynos4212_clock_save)); - - return 0; -} - -static void exynos4212_clock_resume(void) -{ - s3c_pm_do_restore_core(exynos4212_clock_save, ARRAY_SIZE(exynos4212_clock_save)); -} - -#else -#define exynos4212_clock_suspend NULL -#define exynos4212_clock_resume NULL -#endif - -struct syscore_ops exynos4212_clock_syscore_ops = { - .suspend = exynos4212_clock_suspend, - .resume = exynos4212_clock_resume, -}; - -void __init exynos4212_register_clocks(void) -{ - int ptr; - - /* usbphy1 is removed */ - clkset_group_list[4] = NULL; - - /* mout_mpll_user is used */ - clkset_group_list[6] = &clk_mout_mpll_user.clk; - clkset_aclk_top_list[0] = &clk_mout_mpll_user.clk; - - clk_mout_mpll.reg_src.reg = S5P_CLKSRC_DMC; - clk_mout_mpll.reg_src.shift = 12; - clk_mout_mpll.reg_src.size = 1; - - for (ptr = 0; ptr < ARRAY_SIZE(sysclks); ptr++) - s3c_register_clksrc(sysclks[ptr], 1); - - s3c_register_clksrc(clksrcs, ARRAY_SIZE(clksrcs)); - - s3c_register_clocks(init_clocks_off, ARRAY_SIZE(init_clocks_off)); - s3c_disable_clocks(init_clocks_off, ARRAY_SIZE(init_clocks_off)); - - register_syscore_ops(&exynos4212_clock_syscore_ops); -} diff --git a/trunk/arch/arm/mach-exynos4/clock.c b/trunk/arch/arm/mach-exynos4/clock.c index db616916d7a4..86964d2e9e1b 100644 --- a/trunk/arch/arm/mach-exynos4/clock.c +++ b/trunk/arch/arm/mach-exynos4/clock.c @@ -13,7 +13,6 @@ #include #include #include -#include #include #include @@ -21,101 +20,29 @@ #include #include #include -#include -#include #include #include #include -#include - -static struct sleep_save exynos4_clock_save[] = { - SAVE_ITEM(S5P_CLKDIV_LEFTBUS), - SAVE_ITEM(S5P_CLKGATE_IP_LEFTBUS), - SAVE_ITEM(S5P_CLKDIV_RIGHTBUS), - SAVE_ITEM(S5P_CLKGATE_IP_RIGHTBUS), - SAVE_ITEM(S5P_CLKSRC_TOP0), - SAVE_ITEM(S5P_CLKSRC_TOP1), - SAVE_ITEM(S5P_CLKSRC_CAM), - SAVE_ITEM(S5P_CLKSRC_TV), - SAVE_ITEM(S5P_CLKSRC_MFC), - SAVE_ITEM(S5P_CLKSRC_G3D), - SAVE_ITEM(S5P_CLKSRC_LCD0), - SAVE_ITEM(S5P_CLKSRC_MAUDIO), - SAVE_ITEM(S5P_CLKSRC_FSYS), - SAVE_ITEM(S5P_CLKSRC_PERIL0), - SAVE_ITEM(S5P_CLKSRC_PERIL1), - SAVE_ITEM(S5P_CLKDIV_CAM), - SAVE_ITEM(S5P_CLKDIV_TV), - SAVE_ITEM(S5P_CLKDIV_MFC), - SAVE_ITEM(S5P_CLKDIV_G3D), - SAVE_ITEM(S5P_CLKDIV_LCD0), - SAVE_ITEM(S5P_CLKDIV_MAUDIO), - SAVE_ITEM(S5P_CLKDIV_FSYS0), - SAVE_ITEM(S5P_CLKDIV_FSYS1), - SAVE_ITEM(S5P_CLKDIV_FSYS2), - SAVE_ITEM(S5P_CLKDIV_FSYS3), - SAVE_ITEM(S5P_CLKDIV_PERIL0), - SAVE_ITEM(S5P_CLKDIV_PERIL1), - SAVE_ITEM(S5P_CLKDIV_PERIL2), - SAVE_ITEM(S5P_CLKDIV_PERIL3), - SAVE_ITEM(S5P_CLKDIV_PERIL4), - SAVE_ITEM(S5P_CLKDIV_PERIL5), - SAVE_ITEM(S5P_CLKDIV_TOP), - SAVE_ITEM(S5P_CLKSRC_MASK_TOP), - SAVE_ITEM(S5P_CLKSRC_MASK_CAM), - SAVE_ITEM(S5P_CLKSRC_MASK_TV), - SAVE_ITEM(S5P_CLKSRC_MASK_LCD0), - SAVE_ITEM(S5P_CLKSRC_MASK_MAUDIO), - SAVE_ITEM(S5P_CLKSRC_MASK_FSYS), - SAVE_ITEM(S5P_CLKSRC_MASK_PERIL0), - SAVE_ITEM(S5P_CLKSRC_MASK_PERIL1), - SAVE_ITEM(S5P_CLKDIV2_RATIO), - SAVE_ITEM(S5P_CLKGATE_SCLKCAM), - SAVE_ITEM(S5P_CLKGATE_IP_CAM), - SAVE_ITEM(S5P_CLKGATE_IP_TV), - SAVE_ITEM(S5P_CLKGATE_IP_MFC), - SAVE_ITEM(S5P_CLKGATE_IP_G3D), - SAVE_ITEM(S5P_CLKGATE_IP_LCD0), - SAVE_ITEM(S5P_CLKGATE_IP_FSYS), - SAVE_ITEM(S5P_CLKGATE_IP_GPS), - SAVE_ITEM(S5P_CLKGATE_IP_PERIL), - SAVE_ITEM(S5P_CLKGATE_BLOCK), - SAVE_ITEM(S5P_CLKSRC_MASK_DMC), - SAVE_ITEM(S5P_CLKSRC_DMC), - SAVE_ITEM(S5P_CLKDIV_DMC0), - SAVE_ITEM(S5P_CLKDIV_DMC1), - SAVE_ITEM(S5P_CLKGATE_IP_DMC), - SAVE_ITEM(S5P_CLKSRC_CPU), - SAVE_ITEM(S5P_CLKDIV_CPU), - SAVE_ITEM(S5P_CLKDIV_CPU + 0x4), - SAVE_ITEM(S5P_CLKGATE_SCLKCPU), - SAVE_ITEM(S5P_CLKGATE_IP_CPU), -}; - -struct clk clk_sclk_hdmi27m = { + +static struct clk clk_sclk_hdmi27m = { .name = "sclk_hdmi27m", .rate = 27000000, }; -struct clk clk_sclk_hdmiphy = { +static struct clk clk_sclk_hdmiphy = { .name = "sclk_hdmiphy", }; -struct clk clk_sclk_usbphy0 = { +static struct clk clk_sclk_usbphy0 = { .name = "sclk_usbphy0", .rate = 27000000, }; -struct clk clk_sclk_usbphy1 = { +static struct clk clk_sclk_usbphy1 = { .name = "sclk_usbphy1", }; -static struct clk dummy_apb_pclk = { - .name = "apb_pclk", - .id = -1, -}; - static int exynos4_clksrc_mask_top_ctrl(struct clk *clk, int enable) { return s5p_gatectrl(S5P_CLKSRC_MASK_TOP, clk, enable); @@ -131,7 +58,12 @@ static int exynos4_clksrc_mask_lcd0_ctrl(struct clk *clk, int enable) return s5p_gatectrl(S5P_CLKSRC_MASK_LCD0, clk, enable); } -int exynos4_clksrc_mask_fsys_ctrl(struct clk *clk, int enable) +static int exynos4_clksrc_mask_lcd1_ctrl(struct clk *clk, int enable) +{ + return s5p_gatectrl(S5P_CLKSRC_MASK_LCD1, clk, enable); +} + +static int exynos4_clksrc_mask_fsys_ctrl(struct clk *clk, int enable) { return s5p_gatectrl(S5P_CLKSRC_MASK_FSYS, clk, enable); } @@ -151,11 +83,6 @@ static int exynos4_clk_ip_mfc_ctrl(struct clk *clk, int enable) return s5p_gatectrl(S5P_CLKGATE_IP_MFC, clk, enable); } -static int exynos4_clksrc_mask_tv_ctrl(struct clk *clk, int enable) -{ - return s5p_gatectrl(S5P_CLKSRC_MASK_TV, clk, enable); -} - static int exynos4_clk_ip_cam_ctrl(struct clk *clk, int enable) { return s5p_gatectrl(S5P_CLKGATE_IP_CAM, clk, enable); @@ -176,12 +103,12 @@ static int exynos4_clk_ip_lcd0_ctrl(struct clk *clk, int enable) return s5p_gatectrl(S5P_CLKGATE_IP_LCD0, clk, enable); } -int exynos4_clk_ip_lcd1_ctrl(struct clk *clk, int enable) +static int exynos4_clk_ip_lcd1_ctrl(struct clk *clk, int enable) { return s5p_gatectrl(S5P_CLKGATE_IP_LCD1, clk, enable); } -int exynos4_clk_ip_fsys_ctrl(struct clk *clk, int enable) +static int exynos4_clk_ip_fsys_ctrl(struct clk *clk, int enable) { return s5p_gatectrl(S5P_CLKGATE_IP_FSYS, clk, enable); } @@ -196,16 +123,6 @@ static int exynos4_clk_ip_perir_ctrl(struct clk *clk, int enable) return s5p_gatectrl(S5P_CLKGATE_IP_PERIR, clk, enable); } -static int exynos4_clk_hdmiphy_ctrl(struct clk *clk, int enable) -{ - return s5p_gatectrl(S5P_HDMI_PHY_CONTROL, clk, enable); -} - -static int exynos4_clk_dac_ctrl(struct clk *clk, int enable) -{ - return s5p_gatectrl(S5P_DAC_PHY_CONTROL, clk, enable); -} - /* Core list of CMU_CPU side */ static struct clksrc_clk clk_mout_apll = { @@ -216,7 +133,7 @@ static struct clksrc_clk clk_mout_apll = { .reg_src = { .reg = S5P_CLKSRC_CPU, .shift = 0, .size = 1 }, }; -struct clksrc_clk clk_sclk_apll = { +static struct clksrc_clk clk_sclk_apll = { .clk = { .name = "sclk_apll", .parent = &clk_mout_apll.clk, @@ -224,7 +141,7 @@ struct clksrc_clk clk_sclk_apll = { .reg_div = { .reg = S5P_CLKDIV_CPU, .shift = 24, .size = 3 }, }; -struct clksrc_clk clk_mout_epll = { +static struct clksrc_clk clk_mout_epll = { .clk = { .name = "mout_epll", }, @@ -232,13 +149,12 @@ struct clksrc_clk clk_mout_epll = { .reg_src = { .reg = S5P_CLKSRC_TOP0, .shift = 4, .size = 1 }, }; -struct clksrc_clk clk_mout_mpll = { +static struct clksrc_clk clk_mout_mpll = { .clk = { .name = "mout_mpll", }, .sources = &clk_src_mpll, - - /* reg_src will be added in each SoCs' clock */ + .reg_src = { .reg = S5P_CLKSRC_CPU, .shift = 8, .size = 1 }, }; static struct clk *clkset_moutcore_list[] = { @@ -308,12 +224,12 @@ static struct clksrc_clk clk_periphclk = { /* Core list of CMU_CORE side */ -struct clk *clkset_corebus_list[] = { +static struct clk *clkset_corebus_list[] = { [0] = &clk_mout_mpll.clk, [1] = &clk_sclk_apll.clk, }; -struct clksrc_sources clkset_mout_corebus = { +static struct clksrc_sources clkset_mout_corebus = { .sources = clkset_corebus_list, .nr_sources = ARRAY_SIZE(clkset_corebus_list), }; @@ -368,12 +284,12 @@ static struct clksrc_clk clk_pclk_acp = { /* Core list of CMU_TOP side */ -struct clk *clkset_aclk_top_list[] = { +static struct clk *clkset_aclk_top_list[] = { [0] = &clk_mout_mpll.clk, [1] = &clk_sclk_apll.clk, }; -struct clksrc_sources clkset_aclk = { +static struct clksrc_sources clkset_aclk = { .sources = clkset_aclk_top_list, .nr_sources = ARRAY_SIZE(clkset_aclk_top_list), }; @@ -405,7 +321,7 @@ static struct clksrc_clk clk_aclk_160 = { .reg_div = { .reg = S5P_CLKDIV_TOP, .shift = 8, .size = 3 }, }; -struct clksrc_clk clk_aclk_133 = { +static struct clksrc_clk clk_aclk_133 = { .clk = { .name = "aclk_133", }, @@ -444,7 +360,7 @@ static struct clksrc_sources clkset_sclk_vpll = { .nr_sources = ARRAY_SIZE(clkset_sclk_vpll_list), }; -struct clksrc_clk clk_sclk_vpll = { +static struct clksrc_clk clk_sclk_vpll = { .clk = { .name = "sclk_vpll", }, @@ -493,6 +409,16 @@ static struct clk init_clocks_off[] = { .devname = "exynos4-fb.0", .enable = exynos4_clk_ip_lcd0_ctrl, .ctrlbit = (1 << 0), + }, { + .name = "fimd", + .devname = "exynos4-fb.1", + .enable = exynos4_clk_ip_lcd1_ctrl, + .ctrlbit = (1 << 0), + }, { + .name = "sataphy", + .parent = &clk_aclk_133.clk, + .enable = exynos4_clk_ip_fsys_ctrl, + .ctrlbit = (1 << 3), }, { .name = "hsmmc", .devname = "s3c-sdhci.0", @@ -522,49 +448,19 @@ static struct clk init_clocks_off[] = { .parent = &clk_aclk_133.clk, .enable = exynos4_clk_ip_fsys_ctrl, .ctrlbit = (1 << 9), - }, { - .name = "dac", - .devname = "s5p-sdo", - .enable = exynos4_clk_ip_tv_ctrl, - .ctrlbit = (1 << 2), - }, { - .name = "mixer", - .devname = "s5p-mixer", - .enable = exynos4_clk_ip_tv_ctrl, - .ctrlbit = (1 << 1), - }, { - .name = "vp", - .devname = "s5p-mixer", - .enable = exynos4_clk_ip_tv_ctrl, - .ctrlbit = (1 << 0), - }, { - .name = "hdmi", - .devname = "exynos4-hdmi", - .enable = exynos4_clk_ip_tv_ctrl, - .ctrlbit = (1 << 3), - }, { - .name = "hdmiphy", - .devname = "exynos4-hdmi", - .enable = exynos4_clk_hdmiphy_ctrl, - .ctrlbit = (1 << 0), - }, { - .name = "dacphy", - .devname = "s5p-sdo", - .enable = exynos4_clk_dac_ctrl, - .ctrlbit = (1 << 0), }, { .name = "sata", .parent = &clk_aclk_133.clk, .enable = exynos4_clk_ip_fsys_ctrl, .ctrlbit = (1 << 10), }, { - .name = "dma", - .devname = "dma-pl330.0", + .name = "pdma", + .devname = "s3c-pl330.0", .enable = exynos4_clk_ip_fsys_ctrl, .ctrlbit = (1 << 0), }, { - .name = "dma", - .devname = "dma-pl330.1", + .name = "pdma", + .devname = "s3c-pl330.1", .enable = exynos4_clk_ip_fsys_ctrl, .ctrlbit = (1 << 1), }, { @@ -684,12 +580,6 @@ static struct clk init_clocks_off[] = { .parent = &clk_aclk_100.clk, .enable = exynos4_clk_ip_peril_ctrl, .ctrlbit = (1 << 13), - }, { - .name = "i2c", - .devname = "s3c2440-hdmiphy-i2c", - .parent = &clk_aclk_100.clk, - .enable = exynos4_clk_ip_peril_ctrl, - .ctrlbit = (1 << 14), }, { .name = "SYSMMU_MDMA", .enable = exynos4_clk_ip_image_ctrl, @@ -783,7 +673,7 @@ static struct clk init_clocks[] = { } }; -struct clk *clkset_group_list[] = { +static struct clk *clkset_group_list[] = { [0] = &clk_ext_xtal_mux, [1] = &clk_xusbxti, [2] = &clk_sclk_hdmi27m, @@ -795,7 +685,7 @@ struct clk *clkset_group_list[] = { [8] = &clk_sclk_vpll.clk, }; -struct clksrc_sources clkset_group = { +static struct clksrc_sources clkset_group = { .sources = clkset_group_list, .nr_sources = ARRAY_SIZE(clkset_group_list), }; @@ -892,81 +782,6 @@ static struct clksrc_sources clkset_mout_mfc = { .nr_sources = ARRAY_SIZE(clkset_mout_mfc_list), }; -static struct clk *clkset_sclk_dac_list[] = { - [0] = &clk_sclk_vpll.clk, - [1] = &clk_sclk_hdmiphy, -}; - -static struct clksrc_sources clkset_sclk_dac = { - .sources = clkset_sclk_dac_list, - .nr_sources = ARRAY_SIZE(clkset_sclk_dac_list), -}; - -static struct clksrc_clk clk_sclk_dac = { - .clk = { - .name = "sclk_dac", - .enable = exynos4_clksrc_mask_tv_ctrl, - .ctrlbit = (1 << 8), - }, - .sources = &clkset_sclk_dac, - .reg_src = { .reg = S5P_CLKSRC_TV, .shift = 8, .size = 1 }, -}; - -static struct clksrc_clk clk_sclk_pixel = { - .clk = { - .name = "sclk_pixel", - .parent = &clk_sclk_vpll.clk, - }, - .reg_div = { .reg = S5P_CLKDIV_TV, .shift = 0, .size = 4 }, -}; - -static struct clk *clkset_sclk_hdmi_list[] = { - [0] = &clk_sclk_pixel.clk, - [1] = &clk_sclk_hdmiphy, -}; - -static struct clksrc_sources clkset_sclk_hdmi = { - .sources = clkset_sclk_hdmi_list, - .nr_sources = ARRAY_SIZE(clkset_sclk_hdmi_list), -}; - -static struct clksrc_clk clk_sclk_hdmi = { - .clk = { - .name = "sclk_hdmi", - .enable = exynos4_clksrc_mask_tv_ctrl, - .ctrlbit = (1 << 0), - }, - .sources = &clkset_sclk_hdmi, - .reg_src = { .reg = S5P_CLKSRC_TV, .shift = 0, .size = 1 }, -}; - -static struct clk *clkset_sclk_mixer_list[] = { - [0] = &clk_sclk_dac.clk, - [1] = &clk_sclk_hdmi.clk, -}; - -static struct clksrc_sources clkset_sclk_mixer = { - .sources = clkset_sclk_mixer_list, - .nr_sources = ARRAY_SIZE(clkset_sclk_mixer_list), -}; - -static struct clksrc_clk clk_sclk_mixer = { - .clk = { - .name = "sclk_mixer", - .enable = exynos4_clksrc_mask_tv_ctrl, - .ctrlbit = (1 << 4), - }, - .sources = &clkset_sclk_mixer, - .reg_src = { .reg = S5P_CLKSRC_TV, .shift = 4, .size = 1 }, -}; - -static struct clksrc_clk *sclk_tv[] = { - &clk_sclk_dac, - &clk_sclk_pixel, - &clk_sclk_hdmi, - &clk_sclk_mixer, -}; - static struct clksrc_clk clk_dout_mmc0 = { .clk = { .name = "dout_mmc0", @@ -1150,6 +965,25 @@ static struct clksrc_clk clksrcs[] = { .sources = &clkset_group, .reg_src = { .reg = S5P_CLKSRC_LCD0, .shift = 0, .size = 4 }, .reg_div = { .reg = S5P_CLKDIV_LCD0, .shift = 0, .size = 4 }, + }, { + .clk = { + .name = "sclk_fimd", + .devname = "exynos4-fb.1", + .enable = exynos4_clksrc_mask_lcd1_ctrl, + .ctrlbit = (1 << 0), + }, + .sources = &clkset_group, + .reg_src = { .reg = S5P_CLKSRC_LCD1, .shift = 0, .size = 4 }, + .reg_div = { .reg = S5P_CLKDIV_LCD1, .shift = 0, .size = 4 }, + }, { + .clk = { + .name = "sclk_sata", + .enable = exynos4_clksrc_mask_fsys_ctrl, + .ctrlbit = (1 << 24), + }, + .sources = &clkset_mout_corebus, + .reg_src = { .reg = S5P_CLKSRC_FSYS, .shift = 24, .size = 1 }, + .reg_div = { .reg = S5P_CLKDIV_FSYS0, .shift = 20, .size = 4 }, }, { .clk = { .name = "sclk_spi", @@ -1280,91 +1114,20 @@ static int xtal_rate; static unsigned long exynos4_fout_apll_get_rate(struct clk *clk) { - if (soc_is_exynos4210()) - return s5p_get_pll45xx(xtal_rate, __raw_readl(S5P_APLL_CON0), - pll_4508); - else if (soc_is_exynos4212() || soc_is_exynos4412()) - return s5p_get_pll35xx(xtal_rate, __raw_readl(S5P_APLL_CON0)); - else - return 0; + return s5p_get_pll45xx(xtal_rate, __raw_readl(S5P_APLL_CON0), pll_4508); } static struct clk_ops exynos4_fout_apll_ops = { .get_rate = exynos4_fout_apll_get_rate, }; -static u32 vpll_div[][8] = { - { 54000000, 3, 53, 3, 1024, 0, 17, 0 }, - { 108000000, 3, 53, 2, 1024, 0, 17, 0 }, -}; - -static unsigned long exynos4_vpll_get_rate(struct clk *clk) -{ - return clk->rate; -} - -static int exynos4_vpll_set_rate(struct clk *clk, unsigned long rate) -{ - unsigned int vpll_con0, vpll_con1 = 0; - unsigned int i; - - /* Return if nothing changed */ - if (clk->rate == rate) - return 0; - - vpll_con0 = __raw_readl(S5P_VPLL_CON0); - vpll_con0 &= ~(0x1 << 27 | \ - PLL90XX_MDIV_MASK << PLL46XX_MDIV_SHIFT | \ - PLL90XX_PDIV_MASK << PLL46XX_PDIV_SHIFT | \ - PLL90XX_SDIV_MASK << PLL46XX_SDIV_SHIFT); - - vpll_con1 = __raw_readl(S5P_VPLL_CON1); - vpll_con1 &= ~(PLL46XX_MRR_MASK << PLL46XX_MRR_SHIFT | \ - PLL46XX_MFR_MASK << PLL46XX_MFR_SHIFT | \ - PLL4650C_KDIV_MASK << PLL46XX_KDIV_SHIFT); - - for (i = 0; i < ARRAY_SIZE(vpll_div); i++) { - if (vpll_div[i][0] == rate) { - vpll_con0 |= vpll_div[i][1] << PLL46XX_PDIV_SHIFT; - vpll_con0 |= vpll_div[i][2] << PLL46XX_MDIV_SHIFT; - vpll_con0 |= vpll_div[i][3] << PLL46XX_SDIV_SHIFT; - vpll_con1 |= vpll_div[i][4] << PLL46XX_KDIV_SHIFT; - vpll_con1 |= vpll_div[i][5] << PLL46XX_MFR_SHIFT; - vpll_con1 |= vpll_div[i][6] << PLL46XX_MRR_SHIFT; - vpll_con0 |= vpll_div[i][7] << 27; - break; - } - } - - if (i == ARRAY_SIZE(vpll_div)) { - printk(KERN_ERR "%s: Invalid Clock VPLL Frequency\n", - __func__); - return -EINVAL; - } - - __raw_writel(vpll_con0, S5P_VPLL_CON0); - __raw_writel(vpll_con1, S5P_VPLL_CON1); - - /* Wait for VPLL lock */ - while (!(__raw_readl(S5P_VPLL_CON0) & (1 << PLL46XX_LOCKED_SHIFT))) - continue; - - clk->rate = rate; - return 0; -} - -static struct clk_ops exynos4_vpll_ops = { - .get_rate = exynos4_vpll_get_rate, - .set_rate = exynos4_vpll_set_rate, -}; - void __init_or_cpufreq exynos4_setup_clocks(void) { struct clk *xtal_clk; - unsigned long apll = 0; - unsigned long mpll = 0; - unsigned long epll = 0; - unsigned long vpll = 0; + unsigned long apll; + unsigned long mpll; + unsigned long epll; + unsigned long vpll; unsigned long vpllsrc; unsigned long xtal; unsigned long armclk; @@ -1388,34 +1151,18 @@ void __init_or_cpufreq exynos4_setup_clocks(void) printk(KERN_DEBUG "%s: xtal is %ld\n", __func__, xtal); - if (soc_is_exynos4210()) { - apll = s5p_get_pll45xx(xtal, __raw_readl(S5P_APLL_CON0), - pll_4508); - mpll = s5p_get_pll45xx(xtal, __raw_readl(S5P_MPLL_CON0), - pll_4508); - epll = s5p_get_pll46xx(xtal, __raw_readl(S5P_EPLL_CON0), - __raw_readl(S5P_EPLL_CON1), pll_4600); - - vpllsrc = clk_get_rate(&clk_vpllsrc.clk); - vpll = s5p_get_pll46xx(vpllsrc, __raw_readl(S5P_VPLL_CON0), - __raw_readl(S5P_VPLL_CON1), pll_4650c); - } else if (soc_is_exynos4212() || soc_is_exynos4412()) { - apll = s5p_get_pll35xx(xtal, __raw_readl(S5P_APLL_CON0)); - mpll = s5p_get_pll35xx(xtal, __raw_readl(S5P_MPLL_CON0)); - epll = s5p_get_pll36xx(xtal, __raw_readl(S5P_EPLL_CON0), - __raw_readl(S5P_EPLL_CON1)); - - vpllsrc = clk_get_rate(&clk_vpllsrc.clk); - vpll = s5p_get_pll36xx(vpllsrc, __raw_readl(S5P_VPLL_CON0), - __raw_readl(S5P_VPLL_CON1)); - } else { - /* nothing */ - } + apll = s5p_get_pll45xx(xtal, __raw_readl(S5P_APLL_CON0), pll_4508); + mpll = s5p_get_pll45xx(xtal, __raw_readl(S5P_MPLL_CON0), pll_4508); + epll = s5p_get_pll46xx(xtal, __raw_readl(S5P_EPLL_CON0), + __raw_readl(S5P_EPLL_CON1), pll_4600); + + vpllsrc = clk_get_rate(&clk_vpllsrc.clk); + vpll = s5p_get_pll46xx(vpllsrc, __raw_readl(S5P_VPLL_CON0), + __raw_readl(S5P_VPLL_CON1), pll_4650c); clk_fout_apll.ops = &exynos4_fout_apll_ops; clk_fout_mpll.rate = mpll; clk_fout_epll.rate = epll; - clk_fout_vpll.ops = &exynos4_vpll_ops; clk_fout_vpll.rate = vpll; printk(KERN_INFO "EXYNOS4: PLL settings, A=%ld, M=%ld, E=%ld V=%ld", @@ -1443,32 +1190,7 @@ void __init_or_cpufreq exynos4_setup_clocks(void) } static struct clk *clks[] __initdata = { - &clk_sclk_hdmi27m, - &clk_sclk_hdmiphy, - &clk_sclk_usbphy0, - &clk_sclk_usbphy1, -}; - -#ifdef CONFIG_PM_SLEEP -static int exynos4_clock_suspend(void) -{ - s3c_pm_do_save(exynos4_clock_save, ARRAY_SIZE(exynos4_clock_save)); - return 0; -} - -static void exynos4_clock_resume(void) -{ - s3c_pm_do_restore_core(exynos4_clock_save, ARRAY_SIZE(exynos4_clock_save)); -} - -#else -#define exynos4_clock_suspend NULL -#define exynos4_clock_resume NULL -#endif - -struct syscore_ops exynos4_clock_syscore_ops = { - .suspend = exynos4_clock_suspend, - .resume = exynos4_clock_resume, + /* Nothing here yet */ }; void __init exynos4_register_clocks(void) @@ -1480,17 +1202,11 @@ void __init exynos4_register_clocks(void) for (ptr = 0; ptr < ARRAY_SIZE(sysclks); ptr++) s3c_register_clksrc(sysclks[ptr], 1); - for (ptr = 0; ptr < ARRAY_SIZE(sclk_tv); ptr++) - s3c_register_clksrc(sclk_tv[ptr], 1); - s3c_register_clksrc(clksrcs, ARRAY_SIZE(clksrcs)); s3c_register_clocks(init_clocks, ARRAY_SIZE(init_clocks)); s3c_register_clocks(init_clocks_off, ARRAY_SIZE(init_clocks_off)); s3c_disable_clocks(init_clocks_off, ARRAY_SIZE(init_clocks_off)); - register_syscore_ops(&exynos4_clock_syscore_ops); - s3c24xx_register_clock(&dummy_apb_pclk); - s3c_pwmclk_init(); } diff --git a/trunk/arch/arm/mach-exynos4/cpu.c b/trunk/arch/arm/mach-exynos4/cpu.c index 5b1765b37f75..746d6fc6d397 100644 --- a/trunk/arch/arm/mach-exynos4/cpu.c +++ b/trunk/arch/arm/mach-exynos4/cpu.c @@ -28,13 +28,10 @@ #include #include #include -#include #include #include -unsigned int gic_bank_offset __read_mostly; - extern int combiner_init(unsigned int combiner_nr, void __iomem *base, unsigned int irq_start); extern void combiner_cascade_irq(unsigned int combiner_nr, unsigned int irq); @@ -46,6 +43,11 @@ static struct map_desc exynos4_iodesc[] __initdata = { .pfn = __phys_to_pfn(EXYNOS4_PA_SYSTIMER), .length = SZ_4K, .type = MT_DEVICE, + }, { + .virtual = (unsigned long)S5P_VA_SYSRAM, + .pfn = __phys_to_pfn(EXYNOS4_PA_SYSRAM), + .length = SZ_4K, + .type = MT_DEVICE, }, { .virtual = (unsigned long)S5P_VA_CMU, .pfn = __phys_to_pfn(EXYNOS4_PA_CMU), @@ -119,24 +121,6 @@ static struct map_desc exynos4_iodesc[] __initdata = { }, }; -static struct map_desc exynos4_iodesc0[] __initdata = { - { - .virtual = (unsigned long)S5P_VA_SYSRAM, - .pfn = __phys_to_pfn(EXYNOS4_PA_SYSRAM0), - .length = SZ_4K, - .type = MT_DEVICE, - }, -}; - -static struct map_desc exynos4_iodesc1[] __initdata = { - { - .virtual = (unsigned long)S5P_VA_SYSRAM, - .pfn = __phys_to_pfn(EXYNOS4_PA_SYSRAM1), - .length = SZ_4K, - .type = MT_DEVICE, - }, -}; - static void exynos4_idle(void) { if (!need_resched()) @@ -159,11 +143,6 @@ void __init exynos4_map_io(void) { iotable_init(exynos4_iodesc, ARRAY_SIZE(exynos4_iodesc)); - if (soc_is_exynos4210() && samsung_rev() == EXYNOS4210_REV_0) - iotable_init(exynos4_iodesc0, ARRAY_SIZE(exynos4_iodesc0)); - else - iotable_init(exynos4_iodesc1, ARRAY_SIZE(exynos4_iodesc1)); - /* initialize device information early */ exynos4_default_sdhci0(); exynos4_default_sdhci1(); @@ -183,7 +162,6 @@ void __init exynos4_map_io(void) s3c_i2c2_setname("s3c2440-i2c"); s5p_fb_setname(0, "exynos4-fb"); - s5p_hdmi_setname("exynos4-hdmi"); } void __init exynos4_init_clocks(int xtal) @@ -192,37 +170,24 @@ void __init exynos4_init_clocks(int xtal) s3c24xx_register_baseclocks(xtal); s5p_register_clocks(xtal); - - if (soc_is_exynos4210()) - exynos4210_register_clocks(); - else if (soc_is_exynos4212() || soc_is_exynos4412()) - exynos4212_register_clocks(); - exynos4_register_clocks(); exynos4_setup_clocks(); } -static void exynos4_gic_irq_fix_base(struct irq_data *d) +static void exynos4_gic_irq_eoi(struct irq_data *d) { struct gic_chip_data *gic_data = irq_data_get_irq_chip_data(d); gic_data->cpu_base = S5P_VA_GIC_CPU + - (gic_bank_offset * smp_processor_id()); - - gic_data->dist_base = S5P_VA_GIC_DIST + - (gic_bank_offset * smp_processor_id()); + (EXYNOS4_GIC_BANK_OFFSET * smp_processor_id()); } void __init exynos4_init_irq(void) { int irq; - gic_bank_offset = soc_is_exynos4412() ? 0x4000 : 0x8000; - - gic_init(0, IRQ_PPI(0), S5P_VA_GIC_DIST, S5P_VA_GIC_CPU); - gic_arch_extn.irq_eoi = exynos4_gic_irq_fix_base; - gic_arch_extn.irq_unmask = exynos4_gic_irq_fix_base; - gic_arch_extn.irq_mask = exynos4_gic_irq_fix_base; + gic_init(0, IRQ_SPI(0), S5P_VA_GIC_DIST, S5P_VA_GIC_CPU); + gic_arch_extn.irq_eoi = exynos4_gic_irq_eoi; for (irq = 0; irq < MAX_COMBINER_NR; irq++) { @@ -258,11 +223,7 @@ static int __init exynos4_l2x0_cache_init(void) { /* TAG, Data Latency Control: 2cycle */ __raw_writel(0x110, S5P_VA_L2CC + L2X0_TAG_LATENCY_CTRL); - - if (soc_is_exynos4210()) - __raw_writel(0x110, S5P_VA_L2CC + L2X0_DATA_LATENCY_CTRL); - else if (soc_is_exynos4212() || soc_is_exynos4412()) - __raw_writel(0x120, S5P_VA_L2CC + L2X0_DATA_LATENCY_CTRL); + __raw_writel(0x110, S5P_VA_L2CC + L2X0_DATA_LATENCY_CTRL); /* L2X0 Prefetch Control */ __raw_writel(0x30000007, S5P_VA_L2CC + L2X0_PREFETCH_CTRL); diff --git a/trunk/arch/arm/mach-exynos4/dma.c b/trunk/arch/arm/mach-exynos4/dma.c index 9667c61e64fb..564bb530f332 100644 --- a/trunk/arch/arm/mach-exynos4/dma.c +++ b/trunk/arch/arm/mach-exynos4/dma.c @@ -21,229 +21,151 @@ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +#include #include -#include -#include -#include #include #include #include #include -#include + +#include static u64 dma_dmamask = DMA_BIT_MASK(32); -struct dma_pl330_peri pdma0_peri[28] = { - { - .peri_id = (u8)DMACH_PCM0_RX, - .rqtype = DEVTOMEM, - }, { - .peri_id = (u8)DMACH_PCM0_TX, - .rqtype = MEMTODEV, - }, { - .peri_id = (u8)DMACH_PCM2_RX, - .rqtype = DEVTOMEM, - }, { - .peri_id = (u8)DMACH_PCM2_TX, - .rqtype = MEMTODEV, - }, { - .peri_id = (u8)DMACH_MSM_REQ0, - }, { - .peri_id = (u8)DMACH_MSM_REQ2, - }, { - .peri_id = (u8)DMACH_SPI0_RX, - .rqtype = DEVTOMEM, - }, { - .peri_id = (u8)DMACH_SPI0_TX, - .rqtype = MEMTODEV, - }, { - .peri_id = (u8)DMACH_SPI2_RX, - .rqtype = DEVTOMEM, - }, { - .peri_id = (u8)DMACH_SPI2_TX, - .rqtype = MEMTODEV, - }, { - .peri_id = (u8)DMACH_I2S0S_TX, - .rqtype = MEMTODEV, - }, { - .peri_id = (u8)DMACH_I2S0_RX, - .rqtype = DEVTOMEM, - }, { - .peri_id = (u8)DMACH_I2S0_TX, - .rqtype = MEMTODEV, - }, { - .peri_id = (u8)DMACH_UART0_RX, - .rqtype = DEVTOMEM, - }, { - .peri_id = (u8)DMACH_UART0_TX, - .rqtype = MEMTODEV, - }, { - .peri_id = (u8)DMACH_UART2_RX, - .rqtype = DEVTOMEM, - }, { - .peri_id = (u8)DMACH_UART2_TX, - .rqtype = MEMTODEV, - }, { - .peri_id = (u8)DMACH_UART4_RX, - .rqtype = DEVTOMEM, - }, { - .peri_id = (u8)DMACH_UART4_TX, - .rqtype = MEMTODEV, - }, { - .peri_id = (u8)DMACH_SLIMBUS0_RX, - .rqtype = DEVTOMEM, - }, { - .peri_id = (u8)DMACH_SLIMBUS0_TX, - .rqtype = MEMTODEV, - }, { - .peri_id = (u8)DMACH_SLIMBUS2_RX, - .rqtype = DEVTOMEM, - }, { - .peri_id = (u8)DMACH_SLIMBUS2_TX, - .rqtype = MEMTODEV, - }, { - .peri_id = (u8)DMACH_SLIMBUS4_RX, - .rqtype = DEVTOMEM, - }, { - .peri_id = (u8)DMACH_SLIMBUS4_TX, - .rqtype = MEMTODEV, - }, { - .peri_id = (u8)DMACH_AC97_MICIN, - .rqtype = DEVTOMEM, - }, { - .peri_id = (u8)DMACH_AC97_PCMIN, - .rqtype = DEVTOMEM, - }, { - .peri_id = (u8)DMACH_AC97_PCMOUT, - .rqtype = MEMTODEV, +static struct resource exynos4_pdma0_resource[] = { + [0] = { + .start = EXYNOS4_PA_PDMA0, + .end = EXYNOS4_PA_PDMA0 + SZ_4K, + .flags = IORESOURCE_MEM, + }, + [1] = { + .start = IRQ_PDMA0, + .end = IRQ_PDMA0, + .flags = IORESOURCE_IRQ, }, }; -struct dma_pl330_platdata exynos4_pdma0_pdata = { - .nr_valid_peri = ARRAY_SIZE(pdma0_peri), - .peri = pdma0_peri, +static struct s3c_pl330_platdata exynos4_pdma0_pdata = { + .peri = { + [0] = DMACH_PCM0_RX, + [1] = DMACH_PCM0_TX, + [2] = DMACH_PCM2_RX, + [3] = DMACH_PCM2_TX, + [4] = DMACH_MSM_REQ0, + [5] = DMACH_MSM_REQ2, + [6] = DMACH_SPI0_RX, + [7] = DMACH_SPI0_TX, + [8] = DMACH_SPI2_RX, + [9] = DMACH_SPI2_TX, + [10] = DMACH_I2S0S_TX, + [11] = DMACH_I2S0_RX, + [12] = DMACH_I2S0_TX, + [13] = DMACH_I2S2_RX, + [14] = DMACH_I2S2_TX, + [15] = DMACH_UART0_RX, + [16] = DMACH_UART0_TX, + [17] = DMACH_UART2_RX, + [18] = DMACH_UART2_TX, + [19] = DMACH_UART4_RX, + [20] = DMACH_UART4_TX, + [21] = DMACH_SLIMBUS0_RX, + [22] = DMACH_SLIMBUS0_TX, + [23] = DMACH_SLIMBUS2_RX, + [24] = DMACH_SLIMBUS2_TX, + [25] = DMACH_SLIMBUS4_RX, + [26] = DMACH_SLIMBUS4_TX, + [27] = DMACH_AC97_MICIN, + [28] = DMACH_AC97_PCMIN, + [29] = DMACH_AC97_PCMOUT, + [30] = DMACH_MAX, + [31] = DMACH_MAX, + }, }; -struct amba_device exynos4_device_pdma0 = { - .dev = { - .init_name = "dma-pl330.0", +static struct platform_device exynos4_device_pdma0 = { + .name = "s3c-pl330", + .id = 0, + .num_resources = ARRAY_SIZE(exynos4_pdma0_resource), + .resource = exynos4_pdma0_resource, + .dev = { .dma_mask = &dma_dmamask, .coherent_dma_mask = DMA_BIT_MASK(32), .platform_data = &exynos4_pdma0_pdata, }, - .res = { - .start = EXYNOS4_PA_PDMA0, - .end = EXYNOS4_PA_PDMA0 + SZ_4K, - .flags = IORESOURCE_MEM, - }, - .irq = {IRQ_PDMA0, NO_IRQ}, - .periphid = 0x00041330, }; -struct dma_pl330_peri pdma1_peri[25] = { - { - .peri_id = (u8)DMACH_PCM0_RX, - .rqtype = DEVTOMEM, - }, { - .peri_id = (u8)DMACH_PCM0_TX, - .rqtype = MEMTODEV, - }, { - .peri_id = (u8)DMACH_PCM1_RX, - .rqtype = DEVTOMEM, - }, { - .peri_id = (u8)DMACH_PCM1_TX, - .rqtype = MEMTODEV, - }, { - .peri_id = (u8)DMACH_MSM_REQ1, - }, { - .peri_id = (u8)DMACH_MSM_REQ3, - }, { - .peri_id = (u8)DMACH_SPI1_RX, - .rqtype = DEVTOMEM, - }, { - .peri_id = (u8)DMACH_SPI1_TX, - .rqtype = MEMTODEV, - }, { - .peri_id = (u8)DMACH_I2S0S_TX, - .rqtype = MEMTODEV, - }, { - .peri_id = (u8)DMACH_I2S0_RX, - .rqtype = DEVTOMEM, - }, { - .peri_id = (u8)DMACH_I2S0_TX, - .rqtype = MEMTODEV, - }, { - .peri_id = (u8)DMACH_I2S1_RX, - .rqtype = DEVTOMEM, - }, { - .peri_id = (u8)DMACH_I2S1_TX, - .rqtype = MEMTODEV, - }, { - .peri_id = (u8)DMACH_UART0_RX, - .rqtype = DEVTOMEM, - }, { - .peri_id = (u8)DMACH_UART0_TX, - .rqtype = MEMTODEV, - }, { - .peri_id = (u8)DMACH_UART1_RX, - .rqtype = DEVTOMEM, - }, { - .peri_id = (u8)DMACH_UART1_TX, - .rqtype = MEMTODEV, - }, { - .peri_id = (u8)DMACH_UART3_RX, - .rqtype = DEVTOMEM, - }, { - .peri_id = (u8)DMACH_UART3_TX, - .rqtype = MEMTODEV, - }, { - .peri_id = (u8)DMACH_SLIMBUS1_RX, - .rqtype = DEVTOMEM, - }, { - .peri_id = (u8)DMACH_SLIMBUS1_TX, - .rqtype = MEMTODEV, - }, { - .peri_id = (u8)DMACH_SLIMBUS3_RX, - .rqtype = DEVTOMEM, - }, { - .peri_id = (u8)DMACH_SLIMBUS3_TX, - .rqtype = MEMTODEV, - }, { - .peri_id = (u8)DMACH_SLIMBUS5_RX, - .rqtype = DEVTOMEM, - }, { - .peri_id = (u8)DMACH_SLIMBUS5_TX, - .rqtype = MEMTODEV, +static struct resource exynos4_pdma1_resource[] = { + [0] = { + .start = EXYNOS4_PA_PDMA1, + .end = EXYNOS4_PA_PDMA1 + SZ_4K, + .flags = IORESOURCE_MEM, + }, + [1] = { + .start = IRQ_PDMA1, + .end = IRQ_PDMA1, + .flags = IORESOURCE_IRQ, }, }; -struct dma_pl330_platdata exynos4_pdma1_pdata = { - .nr_valid_peri = ARRAY_SIZE(pdma1_peri), - .peri = pdma1_peri, +static struct s3c_pl330_platdata exynos4_pdma1_pdata = { + .peri = { + [0] = DMACH_PCM0_RX, + [1] = DMACH_PCM0_TX, + [2] = DMACH_PCM1_RX, + [3] = DMACH_PCM1_TX, + [4] = DMACH_MSM_REQ1, + [5] = DMACH_MSM_REQ3, + [6] = DMACH_SPI1_RX, + [7] = DMACH_SPI1_TX, + [8] = DMACH_I2S0S_TX, + [9] = DMACH_I2S0_RX, + [10] = DMACH_I2S0_TX, + [11] = DMACH_I2S1_RX, + [12] = DMACH_I2S1_TX, + [13] = DMACH_UART0_RX, + [14] = DMACH_UART0_TX, + [15] = DMACH_UART1_RX, + [16] = DMACH_UART1_TX, + [17] = DMACH_UART3_RX, + [18] = DMACH_UART3_TX, + [19] = DMACH_SLIMBUS1_RX, + [20] = DMACH_SLIMBUS1_TX, + [21] = DMACH_SLIMBUS3_RX, + [22] = DMACH_SLIMBUS3_TX, + [23] = DMACH_SLIMBUS5_RX, + [24] = DMACH_SLIMBUS5_TX, + [25] = DMACH_SLIMBUS0AUX_RX, + [26] = DMACH_SLIMBUS0AUX_TX, + [27] = DMACH_SPDIF, + [28] = DMACH_MAX, + [29] = DMACH_MAX, + [30] = DMACH_MAX, + [31] = DMACH_MAX, + }, }; -struct amba_device exynos4_device_pdma1 = { - .dev = { - .init_name = "dma-pl330.1", +static struct platform_device exynos4_device_pdma1 = { + .name = "s3c-pl330", + .id = 1, + .num_resources = ARRAY_SIZE(exynos4_pdma1_resource), + .resource = exynos4_pdma1_resource, + .dev = { .dma_mask = &dma_dmamask, .coherent_dma_mask = DMA_BIT_MASK(32), .platform_data = &exynos4_pdma1_pdata, }, - .res = { - .start = EXYNOS4_PA_PDMA1, - .end = EXYNOS4_PA_PDMA1 + SZ_4K, - .flags = IORESOURCE_MEM, - }, - .irq = {IRQ_PDMA1, NO_IRQ}, - .periphid = 0x00041330, +}; + +static struct platform_device *exynos4_dmacs[] __initdata = { + &exynos4_device_pdma0, + &exynos4_device_pdma1, }; static int __init exynos4_dma_init(void) { - amba_device_register(&exynos4_device_pdma0, &iomem_resource); - amba_device_register(&exynos4_device_pdma1, &iomem_resource); + platform_add_devices(exynos4_dmacs, ARRAY_SIZE(exynos4_dmacs)); return 0; } diff --git a/trunk/arch/arm/mach-exynos4/include/mach/clkdev.h b/trunk/arch/arm/mach-exynos4/include/mach/clkdev.h new file mode 100644 index 000000000000..7dffa83d23ff --- /dev/null +++ b/trunk/arch/arm/mach-exynos4/include/mach/clkdev.h @@ -0,0 +1,7 @@ +#ifndef __MACH_CLKDEV_H__ +#define __MACH_CLKDEV_H__ + +#define __clk_get(clk) ({ 1; }) +#define __clk_put(clk) do {} while (0) + +#endif diff --git a/trunk/arch/arm/mach-exynos4/include/mach/dma.h b/trunk/arch/arm/mach-exynos4/include/mach/dma.h index 201842a3769e..81209eb1409b 100644 --- a/trunk/arch/arm/mach-exynos4/include/mach/dma.h +++ b/trunk/arch/arm/mach-exynos4/include/mach/dma.h @@ -20,7 +20,7 @@ #ifndef __MACH_DMA_H #define __MACH_DMA_H -/* This platform uses the common DMA API driver for PL330 */ -#include +/* This platform uses the common S3C DMA API driver for PL330 */ +#include #endif /* __MACH_DMA_H */ diff --git a/trunk/arch/arm/mach-exynos4/include/mach/entry-macro.S b/trunk/arch/arm/mach-exynos4/include/mach/entry-macro.S index 4c9adbd87eac..d7a1e281ce7a 100644 --- a/trunk/arch/arm/mach-exynos4/include/mach/entry-macro.S +++ b/trunk/arch/arm/mach-exynos4/include/mach/entry-macro.S @@ -17,25 +17,12 @@ .endm .macro get_irqnr_preamble, base, tmp - mov \tmp, #0 - - mrc p15, 0, \base, c0, c0, 5 - and \base, \base, #3 - cmp \base, #0 - beq 1f - - ldr \tmp, =gic_bank_offset - ldr \tmp, [\tmp] - cmp \base, #1 - beq 1f - - cmp \base, #2 - addeq \tmp, \tmp, \tmp - addne \tmp, \tmp, \tmp, LSL #1 - -1: ldr \base, =gic_cpu_base_addr + ldr \base, =gic_cpu_base_addr ldr \base, [\base] - add \base, \base, \tmp + mrc p15, 0, \tmp, c0, c0, 5 + and \tmp, \tmp, #3 + cmp \tmp, #1 + addeq \base, \base, #EXYNOS4_GIC_BANK_OFFSET .endm .macro arch_ret_to_user, tmp1, tmp2 @@ -93,10 +80,4 @@ /* As above, this assumes that irqstat and base are preserved.. */ .macro test_for_ltirq, irqnr, irqstat, base, tmp - bic \irqnr, \irqstat, #0x1c00 - mov \tmp, #0 - cmp \irqnr, #28 - moveq \tmp, #1 - streq \irqstat, [\base, #GIC_CPU_EOI] - cmp \tmp, #0 .endm diff --git a/trunk/arch/arm/mach-exynos4/include/mach/exynos4-clock.h b/trunk/arch/arm/mach-exynos4/include/mach/exynos4-clock.h deleted file mode 100644 index a07fcbf55251..000000000000 --- a/trunk/arch/arm/mach-exynos4/include/mach/exynos4-clock.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * linux/arch/arm/mach-exynos4/include/mach/exynos4-clock.h - * - * Copyright (c) 2011 Samsung Electronics Co., Ltd. - * http://www.samsung.com - * - * Header file for exynos4 clock support - * - * 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. -*/ - -#ifndef __ASM_ARCH_CLOCK_H -#define __ASM_ARCH_CLOCK_H __FILE__ - -#include - -extern struct clk clk_sclk_hdmi27m; -extern struct clk clk_sclk_usbphy0; -extern struct clk clk_sclk_usbphy1; -extern struct clk clk_sclk_hdmiphy; - -extern struct clksrc_clk clk_sclk_apll; -extern struct clksrc_clk clk_mout_mpll; -extern struct clksrc_clk clk_aclk_133; -extern struct clksrc_clk clk_mout_epll; -extern struct clksrc_clk clk_sclk_vpll; - -extern struct clk *clkset_corebus_list[]; -extern struct clksrc_sources clkset_mout_corebus; - -extern struct clk *clkset_aclk_top_list[]; -extern struct clksrc_sources clkset_aclk; - -extern struct clk *clkset_group_list[]; -extern struct clksrc_sources clkset_group; - -extern int exynos4_clksrc_mask_fsys_ctrl(struct clk *clk, int enable); -extern int exynos4_clk_ip_fsys_ctrl(struct clk *clk, int enable); -extern int exynos4_clk_ip_lcd1_ctrl(struct clk *clk, int enable); - -#endif /* __ASM_ARCH_CLOCK_H */ diff --git a/trunk/arch/arm/mach-exynos4/include/mach/i2c-hdmiphy.h b/trunk/arch/arm/mach-exynos4/include/mach/i2c-hdmiphy.h deleted file mode 100644 index 9dbe3179ad59..000000000000 --- a/trunk/arch/arm/mach-exynos4/include/mach/i2c-hdmiphy.h +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (C) 2011 Samsung Electronics Co., Ltd. - * - * S5P series i2c hdmiphy helper definitions - * - * 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. - */ - -#ifndef PLAT_S5P_I2C_HDMIPHY_H_ -#define PLAT_S5P_I2C_HDMIPHY_H_ - -#define S5P_I2C_HDMIPHY_BUS_NUM (8) - -#endif diff --git a/trunk/arch/arm/mach-exynos4/include/mach/irqs.h b/trunk/arch/arm/mach-exynos4/include/mach/irqs.h index dfd4b7eecb90..f8952f8f3757 100644 --- a/trunk/arch/arm/mach-exynos4/include/mach/irqs.h +++ b/trunk/arch/arm/mach-exynos4/include/mach/irqs.h @@ -19,8 +19,6 @@ #define IRQ_PPI(x) S5P_IRQ(x+16) -#define IRQ_MCT_LOCALTIMER IRQ_PPI(12) - /* SPI: Shared Peripheral Interrupt */ #define IRQ_SPI(x) S5P_IRQ(x+32) @@ -95,11 +93,7 @@ #define IRQ_2D IRQ_SPI(89) #define IRQ_PCIE IRQ_SPI(90) -#define IRQ_MIXER IRQ_SPI(91) -#define IRQ_HDMI IRQ_SPI(92) -#define IRQ_IIC_HDMIPHY IRQ_SPI(93) #define IRQ_MFC IRQ_SPI(94) -#define IRQ_SDO IRQ_SPI(95) #define IRQ_AUDIO_SS IRQ_SPI(96) #define IRQ_I2S0 IRQ_SPI(97) diff --git a/trunk/arch/arm/mach-exynos4/include/mach/map.h b/trunk/arch/arm/mach-exynos4/include/mach/map.h index 918a979181af..d32296dc65e2 100644 --- a/trunk/arch/arm/mach-exynos4/include/mach/map.h +++ b/trunk/arch/arm/mach-exynos4/include/mach/map.h @@ -23,8 +23,7 @@ #include -#define EXYNOS4_PA_SYSRAM0 0x02025000 -#define EXYNOS4_PA_SYSRAM1 0x02020000 +#define EXYNOS4_PA_SYSRAM 0x02020000 #define EXYNOS4_PA_FIMC0 0x11800000 #define EXYNOS4_PA_FIMC1 0x11810000 @@ -62,6 +61,7 @@ #define EXYNOS4_PA_GIC_CPU 0x10480000 #define EXYNOS4_PA_GIC_DIST 0x10490000 +#define EXYNOS4_GIC_BANK_OFFSET 0x8000 #define EXYNOS4_PA_COREPERI 0x10500000 #define EXYNOS4_PA_TWD 0x10500600 @@ -112,12 +112,6 @@ #define EXYNOS4_PA_UART 0x13800000 -#define EXYNOS4_PA_VP 0x12C00000 -#define EXYNOS4_PA_MIXER 0x12C10000 -#define EXYNOS4_PA_SDO 0x12C20000 -#define EXYNOS4_PA_HDMI 0x12D00000 -#define EXYNOS4_PA_IIC_HDMIPHY 0x138E0000 - #define EXYNOS4_PA_IIC(x) (0x13860000 + ((x) * 0x10000)) #define EXYNOS4_PA_ADC 0x13910000 @@ -167,12 +161,6 @@ #define S5P_PA_TIMER EXYNOS4_PA_TIMER #define S5P_PA_EHCI EXYNOS4_PA_EHCI -#define S5P_PA_SDO EXYNOS4_PA_SDO -#define S5P_PA_VP EXYNOS4_PA_VP -#define S5P_PA_MIXER EXYNOS4_PA_MIXER -#define S5P_PA_HDMI EXYNOS4_PA_HDMI -#define S5P_PA_IIC_HDMIPHY EXYNOS4_PA_IIC_HDMIPHY - #define SAMSUNG_PA_KEYPAD EXYNOS4_PA_KEYPAD /* UART */ diff --git a/trunk/arch/arm/mach-exynos4/include/mach/pm-core.h b/trunk/arch/arm/mach-exynos4/include/mach/pm-core.h index 9d8da51e35ca..1df3b81f96e8 100644 --- a/trunk/arch/arm/mach-exynos4/include/mach/pm-core.h +++ b/trunk/arch/arm/mach-exynos4/include/mach/pm-core.h @@ -14,10 +14,6 @@ * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ - -#ifndef __ASM_ARCH_PM_CORE_H -#define __ASM_ARCH_PM_CORE_H __FILE__ - #include static inline void s3c_pm_debug_init_uart(void) @@ -57,9 +53,7 @@ static inline void s3c_pm_restored_gpios(void) /* nothing here yet */ } -static inline void samsung_pm_saved_gpios(void) +static inline void s3c_pm_saved_gpios(void) { /* nothing here yet */ } - -#endif /* __ASM_ARCH_PM_CORE_H */ diff --git a/trunk/arch/arm/mach-exynos4/include/mach/pmu.h b/trunk/arch/arm/mach-exynos4/include/mach/pmu.h index 632dd5630138..a952904b010e 100644 --- a/trunk/arch/arm/mach-exynos4/include/mach/pmu.h +++ b/trunk/arch/arm/mach-exynos4/include/mach/pmu.h @@ -13,8 +13,6 @@ #ifndef __ASM_ARCH_PMU_H #define __ASM_ARCH_PMU_H __FILE__ -#define PMU_TABLE_END NULL - enum sys_powerdown { SYS_AFTR, SYS_LPA, @@ -22,11 +20,6 @@ enum sys_powerdown { NUM_SYS_POWERDOWN, }; -struct exynos4_pmu_conf { - void __iomem *reg; - unsigned int val[NUM_SYS_POWERDOWN]; -}; - extern void exynos4_sys_powerdown_conf(enum sys_powerdown mode); #endif /* __ASM_ARCH_PMU_H */ diff --git a/trunk/arch/arm/plat-samsung/include/plat/pwm-clock.h b/trunk/arch/arm/mach-exynos4/include/mach/pwm-clock.h similarity index 68% rename from trunk/arch/arm/plat-samsung/include/plat/pwm-clock.h rename to trunk/arch/arm/mach-exynos4/include/mach/pwm-clock.h index bf6a60eb6237..8e12090287bb 100644 --- a/trunk/arch/arm/plat-samsung/include/plat/pwm-clock.h +++ b/trunk/arch/arm/mach-exynos4/include/mach/pwm-clock.h @@ -1,4 +1,4 @@ -/* linux/arch/arm/plat-samsung/include/plat/pwm-clock.h +/* linux/arch/arm/mach-exynos4/include/mach/pwm-clock.h * * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. * http://www.samsung.com @@ -8,15 +8,17 @@ * Ben Dooks * http://armlinux.simtec.co.uk/ * - * SAMSUNG - pwm clock and timer support + * Based on arch/arm/mach-s3c64xx/include/mach/pwm-clock.h + * + * EXYNOS4 - pwm clock and timer support * * 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. */ -#ifndef __ASM_PLAT_PWM_CLOCK_H -#define __ASM_PLAT_PWM_CLOCK_H __FILE__ +#ifndef __ASM_ARCH_PWMCLK_H +#define __ASM_ARCH_PWMCLK_H __FILE__ /** * pwm_cfg_src_is_tclk() - return whether the given mux config is a tclk @@ -27,14 +29,7 @@ */ static inline int pwm_cfg_src_is_tclk(unsigned long tcfg) { - if (soc_is_s3c24xx()) - return tcfg == S3C2410_TCFG1_MUX_TCLK; - else if (soc_is_s3c64xx() || soc_is_s5pc100()) - return tcfg >= S3C64XX_TCFG1_MUX_TCLK; - else if (soc_is_s5p6440() || soc_is_s5p6450()) - return 0; - else - return tcfg == S3C64XX_TCFG1_MUX_TCLK; + return tcfg == S3C64XX_TCFG1_MUX_TCLK; } /** @@ -46,10 +41,7 @@ static inline int pwm_cfg_src_is_tclk(unsigned long tcfg) */ static inline unsigned long tcfg_to_divisor(unsigned long tcfg1) { - if (soc_is_s3c24xx()) - return 1 << (tcfg1 + 1); - else - return 1 << tcfg1; + return 1 << tcfg1; } /** @@ -59,10 +51,7 @@ static inline unsigned long tcfg_to_divisor(unsigned long tcfg1) */ static inline unsigned int pwm_tdiv_has_div1(void) { - if (soc_is_s3c24xx()) - return 0; - else - return 1; + return 1; } /** @@ -73,9 +62,9 @@ static inline unsigned int pwm_tdiv_has_div1(void) */ static inline unsigned long pwm_tdiv_div_bits(unsigned int div) { - if (soc_is_s3c24xx()) - return ilog2(div) - 1; - else - return ilog2(div); + return ilog2(div); } -#endif /* __ASM_PLAT_PWM_CLOCK_H */ + +#define S3C_TCFG1_MUX_TCLK S3C64XX_TCFG1_MUX_TCLK + +#endif /* __ASM_ARCH_PWMCLK_H */ diff --git a/trunk/arch/arm/mach-exynos4/include/mach/regs-clock.h b/trunk/arch/arm/mach-exynos4/include/mach/regs-clock.h index 6c37ebe94829..d493fdb422ff 100644 --- a/trunk/arch/arm/mach-exynos4/include/mach/regs-clock.h +++ b/trunk/arch/arm/mach-exynos4/include/mach/regs-clock.h @@ -13,7 +13,6 @@ #ifndef __ASM_ARCH_REGS_CLOCK_H #define __ASM_ARCH_REGS_CLOCK_H __FILE__ -#include #include #define S5P_CLKREG(x) (S5P_VA_CMU + (x)) @@ -42,20 +41,12 @@ #define S5P_CLKSRC_G3D S5P_CLKREG(0x0C22C) #define S5P_CLKSRC_IMAGE S5P_CLKREG(0x0C230) #define S5P_CLKSRC_LCD0 S5P_CLKREG(0x0C234) +#define S5P_CLKSRC_LCD1 S5P_CLKREG(0x0C238) #define S5P_CLKSRC_MAUDIO S5P_CLKREG(0x0C23C) #define S5P_CLKSRC_FSYS S5P_CLKREG(0x0C240) #define S5P_CLKSRC_PERIL0 S5P_CLKREG(0x0C250) #define S5P_CLKSRC_PERIL1 S5P_CLKREG(0x0C254) -#define S5P_CLKSRC_MASK_TOP S5P_CLKREG(0x0C310) -#define S5P_CLKSRC_MASK_CAM S5P_CLKREG(0x0C320) -#define S5P_CLKSRC_MASK_TV S5P_CLKREG(0x0C324) -#define S5P_CLKSRC_MASK_LCD0 S5P_CLKREG(0x0C334) -#define S5P_CLKSRC_MASK_MAUDIO S5P_CLKREG(0x0C33C) -#define S5P_CLKSRC_MASK_FSYS S5P_CLKREG(0x0C340) -#define S5P_CLKSRC_MASK_PERIL0 S5P_CLKREG(0x0C350) -#define S5P_CLKSRC_MASK_PERIL1 S5P_CLKREG(0x0C354) - #define S5P_CLKDIV_TOP S5P_CLKREG(0x0C510) #define S5P_CLKDIV_CAM S5P_CLKREG(0x0C520) #define S5P_CLKDIV_TV S5P_CLKREG(0x0C524) @@ -63,6 +54,7 @@ #define S5P_CLKDIV_G3D S5P_CLKREG(0x0C52C) #define S5P_CLKDIV_IMAGE S5P_CLKREG(0x0C530) #define S5P_CLKDIV_LCD0 S5P_CLKREG(0x0C534) +#define S5P_CLKDIV_LCD1 S5P_CLKREG(0x0C538) #define S5P_CLKDIV_MAUDIO S5P_CLKREG(0x0C53C) #define S5P_CLKDIV_FSYS0 S5P_CLKREG(0x0C540) #define S5P_CLKDIV_FSYS1 S5P_CLKREG(0x0C544) @@ -76,6 +68,16 @@ #define S5P_CLKDIV_PERIL5 S5P_CLKREG(0x0C564) #define S5P_CLKDIV2_RATIO S5P_CLKREG(0x0C580) +#define S5P_CLKSRC_MASK_TOP S5P_CLKREG(0x0C310) +#define S5P_CLKSRC_MASK_CAM S5P_CLKREG(0x0C320) +#define S5P_CLKSRC_MASK_TV S5P_CLKREG(0x0C324) +#define S5P_CLKSRC_MASK_LCD0 S5P_CLKREG(0x0C334) +#define S5P_CLKSRC_MASK_LCD1 S5P_CLKREG(0x0C338) +#define S5P_CLKSRC_MASK_MAUDIO S5P_CLKREG(0x0C33C) +#define S5P_CLKSRC_MASK_FSYS S5P_CLKREG(0x0C340) +#define S5P_CLKSRC_MASK_PERIL0 S5P_CLKREG(0x0C350) +#define S5P_CLKSRC_MASK_PERIL1 S5P_CLKREG(0x0C354) + #define S5P_CLKDIV_STAT_TOP S5P_CLKREG(0x0C610) #define S5P_CLKGATE_SCLKCAM S5P_CLKREG(0x0C820) @@ -83,20 +85,13 @@ #define S5P_CLKGATE_IP_TV S5P_CLKREG(0x0C924) #define S5P_CLKGATE_IP_MFC S5P_CLKREG(0x0C928) #define S5P_CLKGATE_IP_G3D S5P_CLKREG(0x0C92C) -#define S5P_CLKGATE_IP_IMAGE (soc_is_exynos4210() ? \ - S5P_CLKREG(0x0C930) : \ - S5P_CLKREG(0x04930)) -#define S5P_CLKGATE_IP_IMAGE_4210 S5P_CLKREG(0x0C930) -#define S5P_CLKGATE_IP_IMAGE_4212 S5P_CLKREG(0x04930) +#define S5P_CLKGATE_IP_IMAGE S5P_CLKREG(0x0C930) #define S5P_CLKGATE_IP_LCD0 S5P_CLKREG(0x0C934) +#define S5P_CLKGATE_IP_LCD1 S5P_CLKREG(0x0C938) #define S5P_CLKGATE_IP_FSYS S5P_CLKREG(0x0C940) #define S5P_CLKGATE_IP_GPS S5P_CLKREG(0x0C94C) #define S5P_CLKGATE_IP_PERIL S5P_CLKREG(0x0C950) -#define S5P_CLKGATE_IP_PERIR (soc_is_exynos4210() ? \ - S5P_CLKREG(0x0C960) : \ - S5P_CLKREG(0x08960)) -#define S5P_CLKGATE_IP_PERIR_4210 S5P_CLKREG(0x0C960) -#define S5P_CLKGATE_IP_PERIR_4212 S5P_CLKREG(0x08960) +#define S5P_CLKGATE_IP_PERIR S5P_CLKREG(0x0C960) #define S5P_CLKGATE_BLOCK S5P_CLKREG(0x0C970) #define S5P_CLKSRC_MASK_DMC S5P_CLKREG(0x10300) @@ -107,17 +102,11 @@ #define S5P_CLKGATE_IP_DMC S5P_CLKREG(0x10900) #define S5P_APLL_LOCK S5P_CLKREG(0x14000) -#define S5P_MPLL_LOCK (soc_is_exynos4210() ? \ - S5P_CLKREG(0x14004) : \ - S5P_CLKREG(0x10008)) +#define S5P_MPLL_LOCK S5P_CLKREG(0x14004) #define S5P_APLL_CON0 S5P_CLKREG(0x14100) #define S5P_APLL_CON1 S5P_CLKREG(0x14104) -#define S5P_MPLL_CON0 (soc_is_exynos4210() ? \ - S5P_CLKREG(0x14108) : \ - S5P_CLKREG(0x10108)) -#define S5P_MPLL_CON1 (soc_is_exynos4210() ? \ - S5P_CLKREG(0x1410C) : \ - S5P_CLKREG(0x1010C)) +#define S5P_MPLL_CON0 S5P_CLKREG(0x14108) +#define S5P_MPLL_CON1 S5P_CLKREG(0x1410C) #define S5P_CLKSRC_CPU S5P_CLKREG(0x14200) #define S5P_CLKMUX_STATCPU S5P_CLKREG(0x14400) @@ -194,13 +183,6 @@ #define S5P_CLKDIV_BUS_GPLR_SHIFT (4) #define S5P_CLKDIV_BUS_GPLR_MASK (0x7 << S5P_CLKDIV_BUS_GPLR_SHIFT) -/* Only for EXYNOS4210 */ - -#define S5P_CLKSRC_LCD1 S5P_CLKREG(0x0C238) -#define S5P_CLKSRC_MASK_LCD1 S5P_CLKREG(0x0C338) -#define S5P_CLKDIV_LCD1 S5P_CLKREG(0x0C538) -#define S5P_CLKGATE_IP_LCD1 S5P_CLKREG(0x0C938) - /* Compatibility defines and inclusion */ #include diff --git a/trunk/arch/arm/mach-exynos4/include/mach/regs-mct.h b/trunk/arch/arm/mach-exynos4/include/mach/regs-mct.h index 80dd02ad6d61..ca9c8434b023 100644 --- a/trunk/arch/arm/mach-exynos4/include/mach/regs-mct.h +++ b/trunk/arch/arm/mach-exynos4/include/mach/regs-mct.h @@ -31,9 +31,8 @@ #define EXYNOS4_MCT_G_INT_ENB EXYNOS4_MCTREG(0x248) #define EXYNOS4_MCT_G_WSTAT EXYNOS4_MCTREG(0x24C) -#define _EXYNOS4_MCT_L_BASE EXYNOS4_MCTREG(0x300) -#define EXYNOS4_MCT_L_BASE(x) (_EXYNOS4_MCT_L_BASE + (0x100 * x)) -#define EXYNOS4_MCT_L_MASK (0xffffff00) +#define EXYNOS4_MCT_L0_BASE EXYNOS4_MCTREG(0x300) +#define EXYNOS4_MCT_L1_BASE EXYNOS4_MCTREG(0x400) #define MCT_L_TCNTB_OFFSET (0x00) #define MCT_L_ICNTB_OFFSET (0x08) diff --git a/trunk/arch/arm/mach-exynos4/include/mach/regs-pmu.h b/trunk/arch/arm/mach-exynos4/include/mach/regs-pmu.h index 4fff8e938fec..cdf9b47c303c 100644 --- a/trunk/arch/arm/mach-exynos4/include/mach/regs-pmu.h +++ b/trunk/arch/arm/mach-exynos4/include/mach/regs-pmu.h @@ -25,10 +25,9 @@ #define S5P_USE_STANDBY_WFI0 (1 << 16) #define S5P_USE_STANDBY_WFI1 (1 << 17) -#define S5P_USE_STANDBYWFI_ISP_ARM (1 << 18) #define S5P_USE_STANDBY_WFE0 (1 << 24) #define S5P_USE_STANDBY_WFE1 (1 << 25) -#define S5P_USE_STANDBYWFE_ISP_ARM (1 << 26) +#define S5P_USE_MASK ((0x3 << 16) | (0x3 << 24)) #define S5P_SWRESET S5P_PMUREG(0x0400) @@ -36,17 +35,15 @@ #define S5P_EINT_WAKEUP_MASK S5P_PMUREG(0x0604) #define S5P_WAKEUP_MASK S5P_PMUREG(0x0608) -#define S5P_HDMI_PHY_CONTROL S5P_PMUREG(0x0700) -#define S5P_HDMI_PHY_ENABLE (1 << 0) - -#define S5P_DAC_PHY_CONTROL S5P_PMUREG(0x070C) -#define S5P_DAC_PHY_ENABLE (1 << 0) +#define S5P_USBHOST_PHY_CONTROL S5P_PMUREG(0x0708) +#define S5P_USBHOST_PHY_ENABLE (1 << 0) #define S5P_MIPI_DPHY_CONTROL(n) S5P_PMUREG(0x0710 + (n) * 4) #define S5P_MIPI_DPHY_ENABLE (1 << 0) #define S5P_MIPI_DPHY_SRESETN (1 << 1) #define S5P_MIPI_DPHY_MRESETN (1 << 2) +#define S5P_PMU_SATA_PHY_CONTROL S5P_PMUREG(0x0720) #define S5P_INFORM0 S5P_PMUREG(0x0800) #define S5P_INFORM1 S5P_PMUREG(0x0804) #define S5P_INFORM2 S5P_PMUREG(0x0808) @@ -79,6 +76,7 @@ #define S5P_CMU_CLKSTOP_MFC_LOWPWR S5P_PMUREG(0x1148) #define S5P_CMU_CLKSTOP_G3D_LOWPWR S5P_PMUREG(0x114C) #define S5P_CMU_CLKSTOP_LCD0_LOWPWR S5P_PMUREG(0x1150) +#define S5P_CMU_CLKSTOP_LCD1_LOWPWR S5P_PMUREG(0x1154) #define S5P_CMU_CLKSTOP_MAUDIO_LOWPWR S5P_PMUREG(0x1158) #define S5P_CMU_CLKSTOP_GPS_LOWPWR S5P_PMUREG(0x115C) #define S5P_CMU_RESET_CAM_LOWPWR S5P_PMUREG(0x1160) @@ -86,6 +84,7 @@ #define S5P_CMU_RESET_MFC_LOWPWR S5P_PMUREG(0x1168) #define S5P_CMU_RESET_G3D_LOWPWR S5P_PMUREG(0x116C) #define S5P_CMU_RESET_LCD0_LOWPWR S5P_PMUREG(0x1170) +#define S5P_CMU_RESET_LCD1_LOWPWR S5P_PMUREG(0x1174) #define S5P_CMU_RESET_MAUDIO_LOWPWR S5P_PMUREG(0x1178) #define S5P_CMU_RESET_GPS_LOWPWR S5P_PMUREG(0x117C) #define S5P_TOP_BUS_LOWPWR S5P_PMUREG(0x1180) @@ -93,11 +92,14 @@ #define S5P_TOP_PWR_LOWPWR S5P_PMUREG(0x1188) #define S5P_LOGIC_RESET_LOWPWR S5P_PMUREG(0x11A0) #define S5P_ONENAND_MEM_LOWPWR S5P_PMUREG(0x11C0) +#define S5P_MODIMIF_MEM_LOWPWR S5P_PMUREG(0x11C4) #define S5P_G2D_ACP_MEM_LOWPWR S5P_PMUREG(0x11C8) #define S5P_USBOTG_MEM_LOWPWR S5P_PMUREG(0x11CC) #define S5P_HSMMC_MEM_LOWPWR S5P_PMUREG(0x11D0) #define S5P_CSSYS_MEM_LOWPWR S5P_PMUREG(0x11D4) #define S5P_SECSS_MEM_LOWPWR S5P_PMUREG(0x11D8) +#define S5P_PCIE_MEM_LOWPWR S5P_PMUREG(0x11E0) +#define S5P_SATA_MEM_LOWPWR S5P_PMUREG(0x11E4) #define S5P_PAD_RETENTION_DRAM_LOWPWR S5P_PMUREG(0x1200) #define S5P_PAD_RETENTION_MAUDIO_LOWPWR S5P_PMUREG(0x1204) #define S5P_PAD_RETENTION_GPIO_LOWPWR S5P_PMUREG(0x1220) @@ -118,6 +120,7 @@ #define S5P_MFC_LOWPWR S5P_PMUREG(0x1388) #define S5P_G3D_LOWPWR S5P_PMUREG(0x138C) #define S5P_LCD0_LOWPWR S5P_PMUREG(0x1390) +#define S5P_LCD1_LOWPWR S5P_PMUREG(0x1394) #define S5P_MAUDIO_LOWPWR S5P_PMUREG(0x1398) #define S5P_GPS_LOWPWR S5P_PMUREG(0x139C) #define S5P_GPS_ALIVE_LOWPWR S5P_PMUREG(0x13A0) @@ -153,6 +156,7 @@ #define S5P_PMU_MFC_CONF S5P_PMUREG(0x3C40) #define S5P_PMU_G3D_CONF S5P_PMUREG(0x3C60) #define S5P_PMU_LCD0_CONF S5P_PMUREG(0x3C80) +#define S5P_PMU_LCD1_CONF S5P_PMUREG(0x3CA0) #define S5P_PMU_GPS_CONF S5P_PMUREG(0x3CE0) #define S5P_PMU_SATA_PHY_CONTROL_EN 0x1 @@ -161,60 +165,4 @@ #define S5P_CHECK_SLEEP 0x00000BAD -/* Only for EXYNOS4210 */ -#define S5P_USBHOST_PHY_CONTROL S5P_PMUREG(0x0708) -#define S5P_USBHOST_PHY_ENABLE (1 << 0) - -#define S5P_PMU_SATA_PHY_CONTROL S5P_PMUREG(0x0720) - -#define S5P_CMU_CLKSTOP_LCD1_LOWPWR S5P_PMUREG(0x1154) -#define S5P_CMU_RESET_LCD1_LOWPWR S5P_PMUREG(0x1174) -#define S5P_MODIMIF_MEM_LOWPWR S5P_PMUREG(0x11C4) -#define S5P_PCIE_MEM_LOWPWR S5P_PMUREG(0x11E0) -#define S5P_SATA_MEM_LOWPWR S5P_PMUREG(0x11E4) -#define S5P_LCD1_LOWPWR S5P_PMUREG(0x1394) - -#define S5P_PMU_LCD1_CONF S5P_PMUREG(0x3CA0) - -/* Only for EXYNOS4212 */ -#define S5P_ISP_ARM_LOWPWR S5P_PMUREG(0x1050) -#define S5P_DIS_IRQ_ISP_ARM_LOCAL_LOWPWR S5P_PMUREG(0x1054) -#define S5P_DIS_IRQ_ISP_ARM_CENTRAL_LOWPWR S5P_PMUREG(0x1058) -#define S5P_CMU_ACLKSTOP_COREBLK_LOWPWR S5P_PMUREG(0x1110) -#define S5P_CMU_SCLKSTOP_COREBLK_LOWPWR S5P_PMUREG(0x1114) -#define S5P_CMU_RESET_COREBLK_LOWPWR S5P_PMUREG(0x111C) -#define S5P_MPLLUSER_SYSCLK_LOWPWR S5P_PMUREG(0x1130) -#define S5P_CMU_CLKSTOP_ISP_LOWPWR S5P_PMUREG(0x1154) -#define S5P_CMU_RESET_ISP_LOWPWR S5P_PMUREG(0x1174) -#define S5P_TOP_BUS_COREBLK_LOWPWR S5P_PMUREG(0x1190) -#define S5P_TOP_RETENTION_COREBLK_LOWPWR S5P_PMUREG(0x1194) -#define S5P_TOP_PWR_COREBLK_LOWPWR S5P_PMUREG(0x1198) -#define S5P_OSCCLK_GATE_LOWPWR S5P_PMUREG(0x11A4) -#define S5P_LOGIC_RESET_COREBLK_LOWPWR S5P_PMUREG(0x11B0) -#define S5P_OSCCLK_GATE_COREBLK_LOWPWR S5P_PMUREG(0x11B4) -#define S5P_HSI_MEM_LOWPWR S5P_PMUREG(0x11C4) -#define S5P_ROTATOR_MEM_LOWPWR S5P_PMUREG(0x11DC) -#define S5P_PAD_RETENTION_GPIO_COREBLK_LOWPWR S5P_PMUREG(0x123C) -#define S5P_PAD_ISOLATION_COREBLK_LOWPWR S5P_PMUREG(0x1250) -#define S5P_GPIO_MODE_COREBLK_LOWPWR S5P_PMUREG(0x1320) -#define S5P_TOP_ASB_RESET_LOWPWR S5P_PMUREG(0x1344) -#define S5P_TOP_ASB_ISOLATION_LOWPWR S5P_PMUREG(0x1348) -#define S5P_ISP_LOWPWR S5P_PMUREG(0x1394) -#define S5P_DRAM_FREQ_DOWN_LOWPWR S5P_PMUREG(0x13B0) -#define S5P_DDRPHY_DLLOFF_LOWPWR S5P_PMUREG(0x13B4) -#define S5P_CMU_SYSCLK_ISP_LOWPWR S5P_PMUREG(0x13B8) -#define S5P_CMU_SYSCLK_GPS_LOWPWR S5P_PMUREG(0x13BC) -#define S5P_LPDDR_PHY_DLL_LOCK_LOWPWR S5P_PMUREG(0x13C0) - -#define S5P_ARM_L2_0_OPTION S5P_PMUREG(0x2608) -#define S5P_ARM_L2_1_OPTION S5P_PMUREG(0x2628) -#define S5P_ONENAND_MEM_OPTION S5P_PMUREG(0x2E08) -#define S5P_HSI_MEM_OPTION S5P_PMUREG(0x2E28) -#define S5P_G2D_ACP_MEM_OPTION S5P_PMUREG(0x2E48) -#define S5P_USBOTG_MEM_OPTION S5P_PMUREG(0x2E68) -#define S5P_HSMMC_MEM_OPTION S5P_PMUREG(0x2E88) -#define S5P_CSSYS_MEM_OPTION S5P_PMUREG(0x2EA8) -#define S5P_SECSS_MEM_OPTION S5P_PMUREG(0x2EC8) -#define S5P_ROTATOR_MEM_OPTION S5P_PMUREG(0x2F48) - #endif /* __ASM_ARCH_REGS_PMU_H */ diff --git a/trunk/arch/arm/mach-exynos4/mach-nuri.c b/trunk/arch/arm/mach-exynos4/mach-nuri.c index 816a502e9153..43be71b799cb 100644 --- a/trunk/arch/arm/mach-exynos4/mach-nuri.c +++ b/trunk/arch/arm/mach-exynos4/mach-nuri.c @@ -27,20 +27,15 @@ #include #include