* [PATCH 00/36] ARM: samsung platform cleanup
@ 2019-10-10 20:28 Arnd Bergmann
[not found] ` <20191010203043.1241612-1-arnd@arndb.de>
2019-10-23 13:10 ` [PATCH 00/36] ARM: samsung platform cleanup Krzysztof Kozlowski
0 siblings, 2 replies; 6+ messages in thread
From: Arnd Bergmann @ 2019-10-10 20:28 UTC (permalink / raw)
To: Kukjin Kim, Krzysztof Kozlowski
Cc: linux-hwmon, linux-pwm, linux-fbdev, linux-samsung-soc,
Arnd Bergmann, linux-pm, patches, linux-usb, linux-mmc,
linux-kernel, dri-devel, linux-clk, alsa-devel, linux-leds,
linux-serial, linux-input, linux-spi, linux-stm32,
linux-arm-kernel
I've spent some time looking at the remaining ARMv4/ARMv5 platforms
that are not part of ARCH_MULTIPLATFORM, and tried to get them closer
to that. Here is what came out of that for the samsung platforms:
* Exynos and s5pv210 are made independent of plat-samsung
* device drivers stop using mach/*.h headers for s3c24xx
(and other platforms not in this series)
* s3c24xx and s3c64xx get merged into mach-s3c, removing
the need for plat-samsung (I have other patches for the
remaining plat-* directories)
* mach/io.h gets cleaned up to only be needed for BAST
PC104 mode (looking for ideas to proceed)
* mach/irqs.h remains for now, this still needs to be converted
to sparse IRQs.
Some bits are a little ugly, but overall I think this a big
improvement.
The contents are available for testing in
git://kernel.org:/pub/scm/linux/kernel/git/arnd/playground.git s3c-multiplatform
Given the overall size of the series I expect that there will
be bugs, so at this points I'm looking for reviews, acks and
testing from anyone who still has the hardware, in particular
s3c24xx, but also the other samsung platforms I'm touching.
Arnd
Arnd Bergmann (36):
ARM: samsung: make S3C24XX_MISCCR access indirect
ARM: s3c: simplify mach/io.h
usb: gadget: s3c: use platform resources
usb: gadget: s3c-hsudc: remove platform header dependency
ARM: samsung: make pm-debug platform independent
ARM: samsung: move CONFIG_DEBUG_S3C_UART to Kconfig.debug
ARM: exynos: use private samsung_cpu_id copy
ARM: exynos: stop selecting PLAT_SAMSUNG
ARM: samsung: move pm check code to drivers/soc
ARM: s5pv210: use private pm save/restore
ARM: s5pv210: split from plat-samsung
ARM: s3c64xx: remove mach/hardware.h
ARM: s3c: move regs-spi.h into spi driver
ARM: s3c: move irqchip driver back into platform
ARM: s3c: adc: move header to linux/soc/samsung
ARM: s3c: move spi fiq handler into platform
ARM: s3c: h1940-audio: turn into platform driver
ARM: s3c: gta02-audio: turn into platform driver
ARM: s3c: rx1950: turn into platform driver
ASoC: samsung: s3c2412-i2s: avoid hardcoded S3C2410_PA_IIS
ARM: s3c: move iis pinctrl config into boards
ARM: s3c: leds: move setpull() calls into board files
ARM: s3c: move s3cmci pinctrl handling into board files
ARM: s3c: include mach/irqs.h where needed
ARM: s3c: spi: avoid hardcoding fiq number in driver
ARM: s3c: bast: avoid irq_desc array usage
ARM: s3c: fix mmc gpio lookup tables
fbdev: s3c2410fb: remove mach header dependency
ARM: s3c: cpufreq: split out registers
ARM: s3c: remove cpufreq header dependencies
ARM: s3c: cpufreq: use global s3c2412_cpufreq_setrefresh
ARM: s3c: iotiming: make functions static
ARM: s3c: move low-level clk reg access into platform code
ARM: s3c: stop including mach/hardware.h from mach/io.h
ARM: s3c: move into a common directory
ARM: s3c: make headers local if possible
MAINTAINERS | 16 +-
arch/arm/Kconfig | 5 +-
arch/arm/Kconfig.debug | 18 +-
arch/arm/Makefile | 7 +-
arch/arm/mach-exynos/Makefile | 4 -
arch/arm/mach-exynos/common.h | 6 +-
arch/arm/mach-exynos/exynos.c | 19 +-
arch/arm/mach-exynos/include/mach/map.h | 18 --
arch/arm/mach-exynos/platsmp.c | 4 +-
arch/arm/mach-exynos/pm.c | 8 +-
arch/arm/{plat-samsung => mach-s3c}/Kconfig | 62 +----
.../Kconfig => mach-s3c/Kconfig.s3c24xx} | 0
.../Kconfig => mach-s3c/Kconfig.s3c64xx} | 0
arch/arm/{plat-samsung => mach-s3c}/Makefile | 15 +-
.../{mach-s3c24xx => mach-s3c}/Makefile.boot | 0
.../Makefile => mach-s3c/Makefile.s3c24xx} | 15 +-
.../Makefile => mach-s3c/Makefile.s3c64xx} | 14 +-
.../include/plat => mach-s3c}/adc-core.h | 0
arch/arm/{plat-samsung => mach-s3c}/adc.c | 4 +-
arch/arm/{mach-s3c24xx => mach-s3c}/anubis.h | 0
.../arm/{mach-s3c64xx => mach-s3c}/ata-core.h | 0
.../{mach-s3c64xx => mach-s3c}/backlight.h | 0
.../arm/{mach-s3c24xx => mach-s3c}/bast-ide.c | 3 +-
.../arm/{mach-s3c24xx => mach-s3c}/bast-irq.c | 8 +-
arch/arm/{mach-s3c24xx => mach-s3c}/bast.h | 0
.../{mach-s3c24xx => mach-s3c}/common-smdk.c | 17 +-
.../{mach-s3c24xx => mach-s3c}/common-smdk.h | 0
arch/arm/{plat-samsung => mach-s3c}/cpu.c | 21 +-
.../include/plat => mach-s3c}/cpu.h | 11 -
.../cpufreq-utils.c | 38 +++-
arch/arm/{mach-s3c64xx => mach-s3c}/cpuidle.c | 4 +-
.../arm/{mach-s3c64xx => mach-s3c}/crag6410.h | 2 +-
.../{mach-s3c64xx => mach-s3c}/dev-audio.c | 9 +-
.../dev-backlight.c | 4 +-
.../dev-uart-s3c64xx.c} | 5 +-
.../arm/{plat-samsung => mach-s3c}/dev-uart.c | 2 +-
arch/arm/{plat-samsung => mach-s3c}/devs.c | 56 +++--
.../include/plat => mach-s3c}/devs.h | 0
.../mach/dma.h => mach-s3c/dma-s3c24xx.h} | 0
.../mach/dma.h => mach-s3c/dma-s3c64xx.h} | 0
arch/arm/mach-s3c/dma.h | 7 +
arch/arm/{mach-s3c24xx => mach-s3c}/fb-core.h | 0
.../include/plat => mach-s3c}/fb.h | 0
.../plat => mach-s3c}/gpio-cfg-helpers.h | 0
.../include/plat => mach-s3c}/gpio-cfg.h | 0
.../include/plat => mach-s3c}/gpio-core.h | 2 +-
.../gpio-samsung-s3c24xx.h} | 2 +
.../gpio-samsung-s3c64xx.h} | 0
.../{plat-samsung => mach-s3c}/gpio-samsung.c | 18 +-
arch/arm/mach-s3c/gpio-samsung.h | 7 +
arch/arm/{mach-s3c24xx => mach-s3c}/gta02.h | 2 +-
.../h1940-bluetooth.c | 7 +-
arch/arm/{mach-s3c24xx => mach-s3c}/h1940.h | 0
.../include/mach => mach-s3c}/hardware.h | 7 -
.../include/plat => mach-s3c}/iic-core.h | 0
arch/arm/mach-s3c/include/mach/io.h | 50 +++++
.../include/mach/irqs-s3c24xx.h} | 0
.../include/mach/irqs-s3c64xx.h} | 0
arch/arm/mach-s3c/include/mach/irqs.h | 7 +
.../plat => mach-s3c/include/mach}/map-base.h | 0
arch/arm/{plat-samsung => mach-s3c}/init.c | 4 +-
.../iotiming-s3c2410.c | 12 +-
.../iotiming-s3c2412.c | 6 +-
.../irq-pm.c => mach-s3c/irq-pm-s3c24xx.c} | 16 +-
.../irq-pm.c => mach-s3c/irq-pm-s3c64xx.c} | 8 +-
arch/arm/mach-s3c/irq-s3c24xx-fiq-exports.c | 9 +
.../arm/mach-s3c/irq-s3c24xx-fiq.S | 10 +-
.../arm/mach-s3c}/irq-s3c24xx.c | 23 +-
.../arm/{mach-s3c64xx => mach-s3c}/irq-uart.h | 0
.../include/plat => mach-s3c}/keypad.h | 0
.../mach-amlm5900.c | 37 ++-
.../{mach-s3c24xx => mach-s3c}/mach-anubis.c | 14 +-
.../{mach-s3c64xx => mach-s3c}/mach-anw6410.c | 17 +-
.../mach-at2440evb.c | 28 ++-
.../{mach-s3c24xx => mach-s3c}/mach-bast.c | 22 +-
.../mach-crag6410-module.c | 2 +-
.../mach-crag6410.c | 27 ++-
.../{mach-s3c24xx => mach-s3c}/mach-gta02.c | 57 ++++-
.../{mach-s3c24xx => mach-s3c}/mach-h1940.c | 65 ++++--
.../arm/{mach-s3c64xx => mach-s3c}/mach-hmt.c | 15 +-
.../{mach-s3c24xx => mach-s3c}/mach-jive.c | 27 ++-
.../mach-mini2440.c | 48 ++--
.../mach-mini6410.c | 22 +-
.../arm/{mach-s3c24xx => mach-s3c}/mach-n30.c | 40 +++-
.../arm/{mach-s3c64xx => mach-s3c}/mach-ncp.c | 13 +-
.../mach-nexcoder.c | 20 +-
.../mach-osiris-dvs.c | 4 +-
.../{mach-s3c24xx => mach-s3c}/mach-osiris.c | 22 +-
.../{mach-s3c24xx => mach-s3c}/mach-otom.c | 17 +-
.../{mach-s3c24xx => mach-s3c}/mach-qt2410.c | 37 ++-
.../mach-real6410.c | 18 +-
.../{mach-s3c24xx => mach-s3c}/mach-rx1950.c | 57 +++--
.../{mach-s3c24xx => mach-s3c}/mach-rx3715.c | 26 ++-
.../mach-s3c2416-dt.c | 8 +-
.../mach-s3c64xx-dt.c | 6 +-
.../{mach-s3c64xx => mach-s3c}/mach-smartq.c | 18 +-
.../{mach-s3c64xx => mach-s3c}/mach-smartq.h | 0
.../{mach-s3c64xx => mach-s3c}/mach-smartq5.c | 18 +-
.../{mach-s3c64xx => mach-s3c}/mach-smartq7.c | 18 +-
.../mach-smdk2410.c | 14 +-
.../mach-smdk2413.c | 21 +-
.../mach-smdk2416.c | 23 +-
.../mach-smdk2440.c | 25 ++-
.../mach-smdk2443.c | 14 +-
.../mach-smdk6400.c | 13 +-
.../mach-smdk6410.c | 23 +-
.../mach-tct_hammer.c | 24 +-
.../{mach-s3c24xx => mach-s3c}/mach-vr1000.c | 20 +-
.../{mach-s3c24xx => mach-s3c}/mach-vstms.c | 20 +-
.../include/plat => mach-s3c}/map-s3c.h | 12 +-
.../mach/map.h => mach-s3c/map-s3c24xx.h} | 6 +-
.../mach/map.h => mach-s3c/map-s3c64xx.h} | 4 +-
.../include/plat => mach-s3c}/map-s5p.h | 4 +-
arch/arm/mach-s3c/map.h | 7 +
.../{mach-s3c24xx => mach-s3c}/nand-core.h | 0
.../{mach-s3c64xx => mach-s3c}/onenand-core.h | 0
arch/arm/{mach-s3c24xx => mach-s3c}/osiris.h | 0
arch/arm/{mach-s3c24xx => mach-s3c}/otom.h | 0
arch/arm/{mach-s3c64xx => mach-s3c}/pl080.c | 4 +-
.../{plat-samsung => mach-s3c}/platformdata.c | 4 +-
.../{mach-s3c24xx => mach-s3c}/pll-s3c2410.c | 4 +-
.../pll-s3c2440-12000000.c | 4 +-
.../pll-s3c2440-16934400.c | 4 +-
.../{plat-samsung => mach-s3c}/pm-common.c | 2 +-
arch/arm/mach-s3c/pm-common.h | 40 ++++
.../pm-core.h => mach-s3c/pm-core-s3c24xx.h} | 8 +-
.../pm-core.h => mach-s3c/pm-core-s3c64xx.h} | 50 +----
arch/arm/mach-s3c/pm-core.h | 7 +
arch/arm/{plat-samsung => mach-s3c}/pm-gpio.c | 6 +-
.../arm/{mach-s3c24xx => mach-s3c}/pm-h1940.S | 5 +-
.../{mach-s3c24xx => mach-s3c}/pm-s3c2410.c | 11 +-
.../{mach-s3c24xx => mach-s3c}/pm-s3c2412.c | 11 +-
.../{mach-s3c24xx => mach-s3c}/pm-s3c2416.c | 6 +-
.../pm.c => mach-s3c/pm-s3c24xx.c} | 12 +-
.../pm.c => mach-s3c/pm-s3c64xx.c} | 66 +++++-
arch/arm/{plat-samsung => mach-s3c}/pm.c | 20 +-
.../include/plat => mach-s3c}/pm.h | 2 +-
.../include/plat => mach-s3c}/pwm-core.h | 0
.../include/plat => mach-s3c}/regs-adc.h | 0
.../regs-clock-s3c24xx.h} | 2 +
.../regs-clock-s3c64xx.h} | 0
arch/arm/mach-s3c/regs-clock.h | 7 +
.../arm/{mach-s3c24xx => mach-s3c}/regs-dsc.h | 0
.../regs-gpio-memport.h | 0
.../regs-gpio-s3c24xx.h} | 2 +
.../regs-gpio-s3c64xx.h} | 0
arch/arm/mach-s3c/regs-gpio.h | 7 +
.../regs-irq-s3c24xx.h} | 2 +
.../regs-irq-s3c64xx.h} | 0
arch/arm/mach-s3c/regs-irq.h | 7 +
.../include/plat => mach-s3c}/regs-irqtype.h | 0
.../arm/{mach-s3c24xx => mach-s3c}/regs-mem.h | 2 +
.../{mach-s3c64xx => mach-s3c}/regs-modem.h | 0
.../mach => mach-s3c}/regs-s3c2443-clock.h | 50 +++++
.../{mach-s3c64xx => mach-s3c}/regs-srom.h | 0
.../arm/{mach-s3c64xx => mach-s3c}/regs-sys.h | 0
.../regs-syscon-power.h | 0
.../regs-usb-hsotg-phy.h | 0
.../include/mach => mach-s3c}/rtc-core.h | 0
arch/arm/{mach-s3c24xx => mach-s3c}/s3c2410.c | 21 +-
.../s3c2412-power.h | 0
arch/arm/{mach-s3c24xx => mach-s3c}/s3c2412.c | 16 +-
.../include/mach => mach-s3c}/s3c2412.h | 2 +
arch/arm/{mach-s3c24xx => mach-s3c}/s3c2416.c | 28 +--
arch/arm/{mach-s3c24xx => mach-s3c}/s3c2440.c | 17 +-
arch/arm/{mach-s3c24xx => mach-s3c}/s3c2442.c | 17 +-
arch/arm/{mach-s3c24xx => mach-s3c}/s3c2443.c | 21 +-
arch/arm/{mach-s3c24xx => mach-s3c}/s3c244x.c | 16 +-
.../common.c => mach-s3c/s3c24xx.c} | 21 +-
.../common.h => mach-s3c/s3c24xx.h} | 1 +
arch/arm/{mach-s3c64xx => mach-s3c}/s3c6400.c | 14 +-
arch/arm/{mach-s3c64xx => mach-s3c}/s3c6410.c | 17 +-
.../common.c => mach-s3c/s3c64xx.c} | 24 +-
.../common.h => mach-s3c/s3c64xx.h} | 0
.../include/plat => mach-s3c}/samsung-time.h | 0
.../include/plat => mach-s3c}/sdhci.h | 2 +-
.../{mach-s3c24xx => mach-s3c}/setup-camif.c | 4 +-
.../setup-fb-24bpp.c | 6 +-
.../{mach-s3c24xx => mach-s3c}/setup-i2c.c | 7 +-
.../{mach-s3c64xx => mach-s3c}/setup-i2c0.c | 4 +-
.../{mach-s3c64xx => mach-s3c}/setup-i2c1.c | 4 +-
.../{mach-s3c64xx => mach-s3c}/setup-ide.c | 8 +-
.../{mach-s3c64xx => mach-s3c}/setup-keypad.c | 6 +-
.../setup-sdhci-gpio-s3c24xx.c} | 6 +-
.../setup-sdhci-gpio-s3c64xx.c} | 6 +-
.../setup-spi-s3c24xx.c} | 6 +-
.../setup-spi-s3c64xx.c} | 4 +-
.../arm/{mach-s3c24xx => mach-s3c}/setup-ts.c | 5 +-
.../setup-usb-phy.c | 6 +-
.../{mach-s3c24xx => mach-s3c}/simtec-audio.c | 11 +-
.../{mach-s3c24xx => mach-s3c}/simtec-nor.c | 2 +-
.../{mach-s3c24xx => mach-s3c}/simtec-pm.c | 8 +-
.../{mach-s3c24xx => mach-s3c}/simtec-usb.c | 6 +-
arch/arm/{mach-s3c24xx => mach-s3c}/simtec.h | 0
.../sleep-s3c2410.S | 7 +-
.../sleep-s3c2412.S | 5 +-
.../sleep.S => mach-s3c/sleep-s3c24xx.S} | 7 +-
.../sleep.S => mach-s3c/sleep-s3c64xx.S} | 4 +-
.../arm/{mach-s3c24xx => mach-s3c}/spi-core.h | 0
.../include/plat => mach-s3c}/usb-phy.h | 0
arch/arm/{mach-s3c24xx => mach-s3c}/vr1000.h | 0
.../{plat-samsung => mach-s3c}/wakeup-mask.c | 4 +-
.../include/plat => mach-s3c}/wakeup-mask.h | 0
.../watchdog-reset.c | 0
.../watchdog-reset.h | 0
arch/arm/mach-s3c24xx/include/mach/fb.h | 2 -
arch/arm/mach-s3c24xx/include/mach/io.h | 212 ------------------
arch/arm/mach-s3c64xx/include/mach/hardware.h | 17 --
arch/arm/mach-s5pv210/Kconfig | 1 +
arch/arm/mach-s5pv210/Makefile | 7 -
arch/arm/mach-s5pv210/pm.c | 51 ++++-
arch/arm/mach-s5pv210/regs-clock.h | 2 +-
arch/arm/mach-s5pv210/s5pv210.c | 2 -
drivers/clk/samsung/clk-s3c2410-dclk.c | 10 +-
drivers/cpufreq/s3c2410-cpufreq.c | 10 +-
drivers/cpufreq/s3c2412-cpufreq.c | 44 ++--
drivers/cpufreq/s3c2440-cpufreq.c | 29 ++-
drivers/cpufreq/s3c24xx-cpufreq-debugfs.c | 2 +-
drivers/cpufreq/s3c24xx-cpufreq.c | 14 +-
drivers/hwmon/s3c-hwmon.c | 2 +-
drivers/input/touchscreen/s3c2410_ts.c | 37 ++-
drivers/irqchip/Makefile | 1 -
drivers/leds/leds-s3c24xx.c | 7 -
drivers/mmc/host/Kconfig | 2 +-
drivers/mmc/host/s3cmci.c | 72 ++----
drivers/power/supply/s3c_adc_battery.c | 2 +-
drivers/pwm/Kconfig | 2 +-
drivers/soc/samsung/Kconfig | 48 +++-
drivers/soc/samsung/Makefile | 3 +
.../soc/samsung/s3c-pm-check.c | 2 +-
.../soc/samsung/s3c-pm-debug.c | 26 +--
drivers/spi/Kconfig | 2 +-
drivers/spi/Makefile | 1 -
.../spi/spi-s3c24xx-regs.h | 3 +-
drivers/spi/spi-s3c24xx.c | 28 +--
drivers/tty/serial/Kconfig | 2 +-
drivers/usb/gadget/udc/s3c-hsudc.c | 55 +----
drivers/usb/gadget/udc/s3c2410_udc.c | 31 +--
drivers/usb/gadget/udc/s3c2410_udc.h | 1 +
.../usb/gadget/udc/s3c2410_udc_regs.h | 2 +
.../video/fbdev/s3c2410fb-regs-lcd.h | 28 +--
drivers/video/fbdev/s3c2410fb.c | 16 +-
.../linux/platform_data}/fb-s3c2410.h | 33 ++-
include/linux/platform_data/mmc-s3cmci.h | 2 +
include/linux/platform_data/s3c-hsudc.h | 2 +
.../linux/soc/samsung/s3c-adc.h | 0
.../linux/soc/samsung/s3c-cpu-freq.h | 0
.../linux/soc/samsung/s3c-cpufreq-core.h | 10 +-
.../linux/soc/samsung/s3c-pm.h | 69 +++---
.../linux/spi/s3c24xx-fiq.h | 5 +
include/linux/spi/s3c24xx.h | 2 +-
sound/soc/samsung/Kconfig | 2 +-
sound/soc/samsung/h1940_uda1380.c | 71 ++----
sound/soc/samsung/neo1973_wm8753.c | 85 +++----
sound/soc/samsung/rx1950_uda1380.c | 72 ++----
sound/soc/samsung/s3c-i2s-v2.c | 3 +-
sound/soc/samsung/s3c-i2s-v2.h | 3 +-
sound/soc/samsung/s3c2412-i2s.c | 9 +-
sound/soc/samsung/s3c24xx-i2s.c | 7 -
259 files changed, 1716 insertions(+), 1648 deletions(-)
delete mode 100644 arch/arm/mach-exynos/include/mach/map.h
rename arch/arm/{plat-samsung => mach-s3c}/Kconfig (73%)
rename arch/arm/{mach-s3c24xx/Kconfig => mach-s3c/Kconfig.s3c24xx} (100%)
rename arch/arm/{mach-s3c64xx/Kconfig => mach-s3c/Kconfig.s3c64xx} (100%)
rename arch/arm/{plat-samsung => mach-s3c}/Makefile (67%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/Makefile.boot (100%)
rename arch/arm/{mach-s3c24xx/Makefile => mach-s3c/Makefile.s3c24xx} (86%)
rename arch/arm/{mach-s3c64xx/Makefile => mach-s3c/Makefile.s3c64xx} (83%)
rename arch/arm/{plat-samsung/include/plat => mach-s3c}/adc-core.h (100%)
rename arch/arm/{plat-samsung => mach-s3c}/adc.c (99%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/anubis.h (100%)
rename arch/arm/{mach-s3c64xx => mach-s3c}/ata-core.h (100%)
rename arch/arm/{mach-s3c64xx => mach-s3c}/backlight.h (100%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/bast-ide.c (97%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/bast-irq.c (95%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/bast.h (100%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/common-smdk.c (93%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/common-smdk.h (100%)
rename arch/arm/{plat-samsung => mach-s3c}/cpu.c (62%)
rename arch/arm/{plat-samsung/include/plat => mach-s3c}/cpu.h (91%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/cpufreq-utils.c (70%)
rename arch/arm/{mach-s3c64xx => mach-s3c}/cpuidle.c (96%)
rename arch/arm/{mach-s3c64xx => mach-s3c}/crag6410.h (95%)
rename arch/arm/{mach-s3c64xx => mach-s3c}/dev-audio.c (97%)
rename arch/arm/{mach-s3c64xx => mach-s3c}/dev-backlight.c (98%)
rename arch/arm/{mach-s3c64xx/dev-uart.c => mach-s3c/dev-uart-s3c64xx.c} (95%)
rename arch/arm/{plat-samsung => mach-s3c}/dev-uart.c (97%)
rename arch/arm/{plat-samsung => mach-s3c}/devs.c (96%)
rename arch/arm/{plat-samsung/include/plat => mach-s3c}/devs.h (100%)
rename arch/arm/{mach-s3c24xx/include/mach/dma.h => mach-s3c/dma-s3c24xx.h} (100%)
rename arch/arm/{mach-s3c64xx/include/mach/dma.h => mach-s3c/dma-s3c64xx.h} (100%)
create mode 100644 arch/arm/mach-s3c/dma.h
rename arch/arm/{mach-s3c24xx => mach-s3c}/fb-core.h (100%)
rename arch/arm/{plat-samsung/include/plat => mach-s3c}/fb.h (100%)
rename arch/arm/{plat-samsung/include/plat => mach-s3c}/gpio-cfg-helpers.h (100%)
rename arch/arm/{plat-samsung/include/plat => mach-s3c}/gpio-cfg.h (100%)
rename arch/arm/{plat-samsung/include/plat => mach-s3c}/gpio-core.h (99%)
rename arch/arm/{mach-s3c24xx/include/mach/gpio-samsung.h => mach-s3c/gpio-samsung-s3c24xx.h} (99%)
rename arch/arm/{mach-s3c64xx/include/mach/gpio-samsung.h => mach-s3c/gpio-samsung-s3c64xx.h} (100%)
rename arch/arm/{plat-samsung => mach-s3c}/gpio-samsung.c (99%)
create mode 100644 arch/arm/mach-s3c/gpio-samsung.h
rename arch/arm/{mach-s3c24xx => mach-s3c}/gta02.h (94%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/h1940-bluetooth.c (96%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/h1940.h (100%)
rename arch/arm/{mach-s3c24xx/include/mach => mach-s3c}/hardware.h (76%)
rename arch/arm/{plat-samsung/include/plat => mach-s3c}/iic-core.h (100%)
create mode 100644 arch/arm/mach-s3c/include/mach/io.h
rename arch/arm/{mach-s3c24xx/include/mach/irqs.h => mach-s3c/include/mach/irqs-s3c24xx.h} (100%)
rename arch/arm/{mach-s3c64xx/include/mach/irqs.h => mach-s3c/include/mach/irqs-s3c64xx.h} (100%)
create mode 100644 arch/arm/mach-s3c/include/mach/irqs.h
rename arch/arm/{plat-samsung/include/plat => mach-s3c/include/mach}/map-base.h (100%)
rename arch/arm/{plat-samsung => mach-s3c}/init.c (98%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/iotiming-s3c2410.c (97%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/iotiming-s3c2412.c (98%)
rename arch/arm/{mach-s3c24xx/irq-pm.c => mach-s3c/irq-pm-s3c24xx.c} (93%)
rename arch/arm/{mach-s3c64xx/irq-pm.c => mach-s3c/irq-pm-s3c64xx.c} (97%)
create mode 100644 arch/arm/mach-s3c/irq-s3c24xx-fiq-exports.c
rename drivers/spi/spi-s3c24xx-fiq.S => arch/arm/mach-s3c/irq-s3c24xx-fiq.S (94%)
rename {drivers/irqchip => arch/arm/mach-s3c}/irq-s3c24xx.c (99%)
rename arch/arm/{mach-s3c64xx => mach-s3c}/irq-uart.h (100%)
rename arch/arm/{plat-samsung/include/plat => mach-s3c}/keypad.h (100%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/mach-amlm5900.c (84%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/mach-anubis.c (97%)
rename arch/arm/{mach-s3c64xx => mach-s3c}/mach-anw6410.c (96%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/mach-at2440evb.c (88%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/mach-bast.c (98%)
rename arch/arm/{mach-s3c64xx => mach-s3c}/mach-crag6410-module.c (99%)
rename arch/arm/{mach-s3c64xx => mach-s3c}/mach-crag6410.c (98%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/mach-gta02.c (90%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/mach-h1940.c (92%)
rename arch/arm/{mach-s3c64xx => mach-s3c}/mach-hmt.c (97%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/mach-jive.c (97%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/mach-mini2440.c (93%)
rename arch/arm/{mach-s3c64xx => mach-s3c}/mach-mini6410.c (97%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/mach-n30.c (93%)
rename arch/arm/{mach-s3c64xx => mach-s3c}/mach-ncp.c (92%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/mach-nexcoder.c (92%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/mach-osiris-dvs.c (98%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/mach-osiris.c (97%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/mach-otom.c (89%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/mach-qt2410.c (88%)
rename arch/arm/{mach-s3c64xx => mach-s3c}/mach-real6410.c (97%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/mach-rx1950.c (93%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/mach-rx3715.c (90%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/mach-s3c2416-dt.c (92%)
rename arch/arm/{mach-s3c64xx => mach-s3c}/mach-s3c64xx-dt.c (95%)
rename arch/arm/{mach-s3c64xx => mach-s3c}/mach-smartq.c (97%)
rename arch/arm/{mach-s3c64xx => mach-s3c}/mach-smartq.h (100%)
rename arch/arm/{mach-s3c64xx => mach-s3c}/mach-smartq5.c (93%)
rename arch/arm/{mach-s3c64xx => mach-s3c}/mach-smartq7.c (94%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/mach-smdk2410.c (89%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/mach-smdk2413.c (90%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/mach-smdk2416.c (95%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/mach-smdk2440.c (89%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/mach-smdk2443.c (93%)
rename arch/arm/{mach-s3c64xx => mach-s3c}/mach-smdk6400.c (92%)
rename arch/arm/{mach-s3c64xx => mach-s3c}/mach-smdk6410.c (98%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/mach-tct_hammer.c (82%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/mach-vr1000.c (95%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/mach-vstms.c (90%)
rename arch/arm/{plat-samsung/include/plat => mach-s3c}/map-s3c.h (87%)
rename arch/arm/{mach-s3c24xx/include/mach/map.h => mach-s3c/map-s3c24xx.h} (97%)
rename arch/arm/{mach-s3c64xx/include/mach/map.h => mach-s3c/map-s3c64xx.h} (98%)
rename arch/arm/{plat-samsung/include/plat => mach-s3c}/map-s5p.h (85%)
create mode 100644 arch/arm/mach-s3c/map.h
rename arch/arm/{mach-s3c24xx => mach-s3c}/nand-core.h (100%)
rename arch/arm/{mach-s3c64xx => mach-s3c}/onenand-core.h (100%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/osiris.h (100%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/otom.h (100%)
rename arch/arm/{mach-s3c64xx => mach-s3c}/pl080.c (99%)
rename arch/arm/{plat-samsung => mach-s3c}/platformdata.c (96%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/pll-s3c2410.c (97%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/pll-s3c2440-12000000.c (97%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/pll-s3c2440-16934400.c (98%)
rename arch/arm/{plat-samsung => mach-s3c}/pm-common.c (98%)
create mode 100644 arch/arm/mach-s3c/pm-common.h
rename arch/arm/{mach-s3c24xx/include/mach/pm-core.h => mach-s3c/pm-core-s3c24xx.h} (95%)
rename arch/arm/{mach-s3c64xx/include/mach/pm-core.h => mach-s3c/pm-core-s3c64xx.h} (58%)
create mode 100644 arch/arm/mach-s3c/pm-core.h
rename arch/arm/{plat-samsung => mach-s3c}/pm-gpio.c (99%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/pm-h1940.S (80%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/pm-s3c2410.c (96%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/pm-s3c2412.c (95%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/pm-s3c2416.c (95%)
rename arch/arm/{mach-s3c24xx/pm.c => mach-s3c/pm-s3c24xx.c} (94%)
rename arch/arm/{mach-s3c64xx/pm.c => mach-s3c/pm-s3c64xx.c} (83%)
rename arch/arm/{plat-samsung => mach-s3c}/pm.c (94%)
rename arch/arm/{plat-samsung/include/plat => mach-s3c}/pm.h (98%)
rename arch/arm/{plat-samsung/include/plat => mach-s3c}/pwm-core.h (100%)
rename arch/arm/{plat-samsung/include/plat => mach-s3c}/regs-adc.h (100%)
rename arch/arm/{mach-s3c24xx/include/mach/regs-clock.h => mach-s3c/regs-clock-s3c24xx.h} (99%)
rename arch/arm/{mach-s3c64xx/include/mach/regs-clock.h => mach-s3c/regs-clock-s3c64xx.h} (100%)
create mode 100644 arch/arm/mach-s3c/regs-clock.h
rename arch/arm/{mach-s3c24xx => mach-s3c}/regs-dsc.h (100%)
rename arch/arm/{mach-s3c64xx => mach-s3c}/regs-gpio-memport.h (100%)
rename arch/arm/{mach-s3c24xx/include/mach/regs-gpio.h => mach-s3c/regs-gpio-s3c24xx.h} (99%)
rename arch/arm/{mach-s3c64xx/include/mach/regs-gpio.h => mach-s3c/regs-gpio-s3c64xx.h} (100%)
create mode 100644 arch/arm/mach-s3c/regs-gpio.h
rename arch/arm/{mach-s3c24xx/include/mach/regs-irq.h => mach-s3c/regs-irq-s3c24xx.h} (98%)
rename arch/arm/{mach-s3c64xx/include/mach/regs-irq.h => mach-s3c/regs-irq-s3c64xx.h} (100%)
create mode 100644 arch/arm/mach-s3c/regs-irq.h
rename arch/arm/{plat-samsung/include/plat => mach-s3c}/regs-irqtype.h (100%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/regs-mem.h (98%)
rename arch/arm/{mach-s3c64xx => mach-s3c}/regs-modem.h (100%)
rename arch/arm/{mach-s3c24xx/include/mach => mach-s3c}/regs-s3c2443-clock.h (81%)
rename arch/arm/{mach-s3c64xx => mach-s3c}/regs-srom.h (100%)
rename arch/arm/{mach-s3c64xx => mach-s3c}/regs-sys.h (100%)
rename arch/arm/{mach-s3c64xx => mach-s3c}/regs-syscon-power.h (100%)
rename arch/arm/{mach-s3c64xx => mach-s3c}/regs-usb-hsotg-phy.h (100%)
rename arch/arm/{mach-s3c24xx/include/mach => mach-s3c}/rtc-core.h (100%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/s3c2410.c (90%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/s3c2412-power.h (100%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/s3c2412.c (94%)
rename arch/arm/{mach-s3c24xx/include/mach => mach-s3c}/s3c2412.h (96%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/s3c2416.c (88%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/s3c2440.c (85%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/s3c2442.c (82%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/s3c2443.c (89%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/s3c244x.c (93%)
rename arch/arm/{mach-s3c24xx/common.c => mach-s3c/s3c24xx.c} (98%)
rename arch/arm/{mach-s3c24xx/common.h => mach-s3c/s3c24xx.h} (99%)
rename arch/arm/{mach-s3c64xx => mach-s3c}/s3c6400.c (89%)
rename arch/arm/{mach-s3c64xx => mach-s3c}/s3c6410.c (89%)
rename arch/arm/{mach-s3c64xx/common.c => mach-s3c/s3c64xx.c} (97%)
rename arch/arm/{mach-s3c64xx/common.h => mach-s3c/s3c64xx.h} (100%)
rename arch/arm/{plat-samsung/include/plat => mach-s3c}/samsung-time.h (100%)
rename arch/arm/{plat-samsung/include/plat => mach-s3c}/sdhci.h (99%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/setup-camif.c (95%)
rename arch/arm/{mach-s3c64xx => mach-s3c}/setup-fb-24bpp.c (86%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/setup-i2c.c (79%)
rename arch/arm/{mach-s3c64xx => mach-s3c}/setup-i2c0.c (90%)
rename arch/arm/{mach-s3c64xx => mach-s3c}/setup-i2c1.c (90%)
rename arch/arm/{mach-s3c64xx => mach-s3c}/setup-ide.c (89%)
rename arch/arm/{mach-s3c64xx => mach-s3c}/setup-keypad.c (86%)
rename arch/arm/{mach-s3c24xx/setup-sdhci-gpio.c => mach-s3c/setup-sdhci-gpio-s3c24xx.c} (90%)
rename arch/arm/{mach-s3c64xx/setup-sdhci-gpio.c => mach-s3c/setup-sdhci-gpio-s3c64xx.c} (95%)
rename arch/arm/{mach-s3c24xx/setup-spi.c => mach-s3c/setup-spi-s3c24xx.c} (85%)
rename arch/arm/{mach-s3c64xx/setup-spi.c => mach-s3c/setup-spi-s3c64xx.c} (89%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/setup-ts.c (88%)
rename arch/arm/{mach-s3c64xx => mach-s3c}/setup-usb-phy.c (96%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/simtec-audio.c (86%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/simtec-nor.c (98%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/simtec-pm.c (92%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/simtec-usb.c (96%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/simtec.h (100%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/sleep-s3c2410.S (92%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/sleep-s3c2412.S (93%)
rename arch/arm/{mach-s3c24xx/sleep.S => mach-s3c/sleep-s3c24xx.S} (92%)
rename arch/arm/{mach-s3c64xx/sleep.S => mach-s3c/sleep-s3c64xx.S} (97%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/spi-core.h (100%)
rename arch/arm/{plat-samsung/include/plat => mach-s3c}/usb-phy.h (100%)
rename arch/arm/{mach-s3c24xx => mach-s3c}/vr1000.h (100%)
rename arch/arm/{plat-samsung => mach-s3c}/wakeup-mask.c (94%)
rename arch/arm/{plat-samsung/include/plat => mach-s3c}/wakeup-mask.h (100%)
rename arch/arm/{plat-samsung => mach-s3c}/watchdog-reset.c (100%)
rename arch/arm/{mach-s3c64xx => mach-s3c}/watchdog-reset.h (100%)
delete mode 100644 arch/arm/mach-s3c24xx/include/mach/fb.h
delete mode 100644 arch/arm/mach-s3c24xx/include/mach/io.h
delete mode 100644 arch/arm/mach-s3c64xx/include/mach/hardware.h
rename arch/arm/plat-samsung/pm-check.c => drivers/soc/samsung/s3c-pm-check.c (99%)
rename arch/arm/plat-samsung/pm-debug.c => drivers/soc/samsung/s3c-pm-debug.c (78%)
rename arch/arm/plat-samsung/include/plat/regs-spi.h => drivers/spi/spi-s3c24xx-regs.h (95%)
rename arch/arm/plat-samsung/include/plat/regs-udc.h => drivers/usb/gadget/udc/s3c2410_udc_regs.h (99%)
rename arch/arm/mach-s3c24xx/include/mach/regs-lcd.h => drivers/video/fbdev/s3c2410fb-regs-lcd.h (84%)
rename {arch/arm/plat-samsung/include/plat => include/linux/platform_data}/fb-s3c2410.h (57%)
rename arch/arm/plat-samsung/include/plat/adc.h => include/linux/soc/samsung/s3c-adc.h (100%)
rename arch/arm/plat-samsung/include/plat/cpu-freq.h => include/linux/soc/samsung/s3c-cpu-freq.h (100%)
rename arch/arm/plat-samsung/include/plat/cpu-freq-core.h => include/linux/soc/samsung/s3c-cpufreq-core.h (96%)
rename arch/arm/plat-samsung/include/plat/pm-common.h => include/linux/soc/samsung/s3c-pm.h (55%)
rename drivers/spi/spi-s3c24xx-fiq.h => include/linux/spi/s3c24xx-fiq.h (78%)
Cc: linux-kernel@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-pm@vger.kernel.org
Cc: patches@opensource.cirrus.com
Cc: linux-stm32@st-md-mailman.stormreply.com
Cc: linux-clk@vger.kernel.org
Cc: linux-hwmon@vger.kernel.org
Cc: linux-input@vger.kernel.org
Cc: linux-leds@vger.kernel.org
Cc: linux-mmc@vger.kernel.org
Cc: linux-pwm@vger.kernel.org
Cc: linux-spi@vger.kernel.org
Cc: linux-serial@vger.kernel.org
Cc: linux-usb@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: linux-fbdev@vger.kernel.org
Cc: alsa-devel@alsa-project.org
--
2.20.0
^ permalink raw reply [flat|nested] 6+ messages in thread[parent not found: <20191010203043.1241612-1-arnd@arndb.de>]
* [PATCH 28/36] fbdev: s3c2410fb: remove mach header dependency [not found] ` <20191010203043.1241612-1-arnd@arndb.de> @ 2019-10-10 20:30 ` Arnd Bergmann 2019-10-23 13:13 ` Krzysztof Kozlowski 0 siblings, 1 reply; 6+ messages in thread From: Arnd Bergmann @ 2019-10-10 20:30 UTC (permalink / raw) To: Kukjin Kim, Krzysztof Kozlowski, Bartlomiej Zolnierkiewicz Cc: linux-fbdev, linux-samsung-soc, Arnd Bergmann, linux-kernel, dri-devel, linux-stm32, linux-arm-kernel The s3c2410fb driver is too deeply intertwined with the s3c24xx platform code. Change it in a way that avoids the use of platform header files but having all interface data in a platform_data header, and the private register definitions next to the driver itself. One ugly bit here is that the driver pokes directly into gpio registers, which are owned by another driver. Passing the mapped addresses in platform_data is somewhat suboptimal, but it is a small improvement over the previous version. Signed-off-by: Arnd Bergmann <arnd@arndb.de> --- arch/arm/mach-s3c24xx/include/mach/fb.h | 2 -- arch/arm/mach-s3c24xx/mach-amlm5900.c | 7 ++-- arch/arm/mach-s3c24xx/mach-anubis.c | 1 - arch/arm/mach-s3c24xx/mach-at2440evb.c | 3 +- arch/arm/mach-s3c24xx/mach-bast.c | 3 +- arch/arm/mach-s3c24xx/mach-gta02.c | 2 +- arch/arm/mach-s3c24xx/mach-h1940.c | 7 ++-- arch/arm/mach-s3c24xx/mach-jive.c | 10 ++++-- arch/arm/mach-s3c24xx/mach-mini2440.c | 9 +++-- arch/arm/mach-s3c24xx/mach-n30.c | 3 +- arch/arm/mach-s3c24xx/mach-osiris.c | 1 - arch/arm/mach-s3c24xx/mach-qt2410.c | 3 +- arch/arm/mach-s3c24xx/mach-rx1950.c | 8 +++-- arch/arm/mach-s3c24xx/mach-rx3715.c | 7 ++-- arch/arm/mach-s3c24xx/mach-smdk2413.c | 3 +- arch/arm/mach-s3c24xx/mach-smdk2416.c | 1 - arch/arm/mach-s3c24xx/mach-smdk2440.c | 8 +++-- arch/arm/mach-s3c24xx/mach-smdk2443.c | 3 +- arch/arm/mach-s3c24xx/mach-vstms.c | 3 +- arch/arm/plat-samsung/devs.c | 2 +- .../video/fbdev/s3c2410fb-regs-lcd.h | 28 ++++------------ drivers/video/fbdev/s3c2410fb.c | 16 +++++---- .../linux/platform_data}/fb-s3c2410.h | 33 ++++++++++++++++++- 23 files changed, 98 insertions(+), 65 deletions(-) delete mode 100644 arch/arm/mach-s3c24xx/include/mach/fb.h rename arch/arm/mach-s3c24xx/include/mach/regs-lcd.h => drivers/video/fbdev/s3c2410fb-regs-lcd.h (84%) rename {arch/arm/plat-samsung/include/plat => include/linux/platform_data}/fb-s3c2410.h (57%) diff --git a/arch/arm/mach-s3c24xx/include/mach/fb.h b/arch/arm/mach-s3c24xx/include/mach/fb.h deleted file mode 100644 index 4e539cb8b884..000000000000 --- a/arch/arm/mach-s3c24xx/include/mach/fb.h +++ /dev/null @@ -1,2 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -#include <plat/fb-s3c2410.h> diff --git a/arch/arm/mach-s3c24xx/mach-amlm5900.c b/arch/arm/mach-s3c24xx/mach-amlm5900.c index 40ad23b52bc0..ef6de1b1d0c6 100644 --- a/arch/arm/mach-s3c24xx/mach-amlm5900.c +++ b/arch/arm/mach-s3c24xx/mach-amlm5900.c @@ -30,9 +30,8 @@ #include <mach/hardware.h> #include <asm/irq.h> #include <asm/mach-types.h> -#include <mach/fb.h> +#include <linux/platform_data/fb-s3c2410.h> -#include <mach/regs-lcd.h> #include <mach/regs-gpio.h> #include <mach/gpio-samsung.h> @@ -194,13 +193,17 @@ static struct s3c2410fb_mach_info __initdata amlm5900_fb_info = { .gpccon = 0xaaaaaaaa, .gpccon_mask = 0xffffffff, + .gpccon_reg = S3C2410_GPCCON, .gpcup = 0x0000ffff, .gpcup_mask = 0xffffffff, + .gpcup_reg = S3C2410_GPCUP, .gpdcon = 0xaaaaaaaa, .gpdcon_mask = 0xffffffff, + .gpdcon_reg = S3C2410_GPDCON, .gpdup = 0x0000ffff, .gpdup_mask = 0xffffffff, + .gpdup_reg = S3C2410_GPDUP, }; #endif diff --git a/arch/arm/mach-s3c24xx/mach-anubis.c b/arch/arm/mach-s3c24xx/mach-anubis.c index 072966dcad78..e1a73274e90b 100644 --- a/arch/arm/mach-s3c24xx/mach-anubis.c +++ b/arch/arm/mach-s3c24xx/mach-anubis.c @@ -29,7 +29,6 @@ #include <asm/mach-types.h> #include <mach/regs-gpio.h> -#include <mach/regs-lcd.h> #include <mach/gpio-samsung.h> #include <linux/platform_data/mtd-nand-s3c2410.h> #include <linux/platform_data/i2c-s3c2410.h> diff --git a/arch/arm/mach-s3c24xx/mach-at2440evb.c b/arch/arm/mach-s3c24xx/mach-at2440evb.c index b2199906e678..bfda6dd2a9d5 100644 --- a/arch/arm/mach-s3c24xx/mach-at2440evb.c +++ b/arch/arm/mach-s3c24xx/mach-at2440evb.c @@ -25,12 +25,11 @@ #include <asm/mach/irq.h> #include <mach/hardware.h> -#include <mach/fb.h> +#include <linux/platform_data/fb-s3c2410.h> #include <asm/irq.h> #include <asm/mach-types.h> #include <mach/regs-gpio.h> -#include <mach/regs-lcd.h> #include <mach/gpio-samsung.h> #include <linux/platform_data/mtd-nand-s3c2410.h> #include <linux/platform_data/i2c-s3c2410.h> diff --git a/arch/arm/mach-s3c24xx/mach-bast.c b/arch/arm/mach-s3c24xx/mach-bast.c index a7c3955ae8f6..cc941b5030ea 100644 --- a/arch/arm/mach-s3c24xx/mach-bast.c +++ b/arch/arm/mach-s3c24xx/mach-bast.c @@ -40,10 +40,9 @@ #include <asm/mach/irq.h> #include <asm/mach-types.h> -#include <mach/fb.h> #include <mach/hardware.h> +#include <linux/platform_data/fb-s3c2410.h> #include <mach/regs-gpio.h> -#include <mach/regs-lcd.h> #include <mach/gpio-samsung.h> #include <plat/cpu.h> diff --git a/arch/arm/mach-s3c24xx/mach-gta02.c b/arch/arm/mach-s3c24xx/mach-gta02.c index 61b8c6badeb8..1e42782dbd30 100644 --- a/arch/arm/mach-s3c24xx/mach-gta02.c +++ b/arch/arm/mach-s3c24xx/mach-gta02.c @@ -57,8 +57,8 @@ #include <linux/platform_data/touchscreen-s3c2410.h> #include <linux/platform_data/usb-ohci-s3c2410.h> #include <linux/platform_data/usb-s3c2410_udc.h> +#include <linux/platform_data/fb-s3c2410.h> -#include <mach/fb.h> #include <mach/hardware.h> #include <mach/regs-gpio.h> #include <mach/regs-irq.h> diff --git a/arch/arm/mach-s3c24xx/mach-h1940.c b/arch/arm/mach-s3c24xx/mach-h1940.c index 446891e23511..d56e3befa459 100644 --- a/arch/arm/mach-s3c24xx/mach-h1940.c +++ b/arch/arm/mach-s3c24xx/mach-h1940.c @@ -47,11 +47,10 @@ #include <sound/uda1380.h> -#include <mach/fb.h> +#include <linux/platform_data/fb-s3c2410.h> #include <mach/hardware.h> #include <mach/regs-clock.h> #include <mach/regs-gpio.h> -#include <mach/regs-lcd.h> #include <mach/gpio-samsung.h> #include <plat/cpu.h> @@ -211,12 +210,16 @@ static struct s3c2410fb_mach_info h1940_fb_info __initdata = { .lpcsel = 0x02, .gpccon = 0xaa940659, .gpccon_mask = 0xffffc0f0, + .gpccon_reg = S3C2410_GPCCON, .gpcup = 0x0000ffff, .gpcup_mask = 0xffffffff, + .gpcup_reg = S3C2410_GPCUP, .gpdcon = 0xaa84aaa0, .gpdcon_mask = 0xffffffff, + .gpdcon_reg = S3C2410_GPDCON, .gpdup = 0x0000faff, .gpdup_mask = 0xffffffff, + .gpdup_reg = S3C2410_GPDUP, }; static int power_supply_init(struct device *dev) diff --git a/arch/arm/mach-s3c24xx/mach-jive.c b/arch/arm/mach-s3c24xx/mach-jive.c index 885e8f12e4b9..3b33132b2334 100644 --- a/arch/arm/mach-s3c24xx/mach-jive.c +++ b/arch/arm/mach-s3c24xx/mach-jive.c @@ -32,8 +32,7 @@ #include <linux/platform_data/i2c-s3c2410.h> #include <mach/regs-gpio.h> -#include <mach/regs-lcd.h> -#include <mach/fb.h> +#include <linux/platform_data/fb-s3c2410.h> #include <mach/gpio-samsung.h> #include <asm/mach-types.h> @@ -321,6 +320,7 @@ static struct s3c2410fb_mach_info jive_lcd_config = { * data. */ .gpcup = (0xf << 1) | (0x3f << 10), + .gpcup_reg = S3C2410_GPCUP, .gpccon = (S3C2410_GPC1_VCLK | S3C2410_GPC2_VLINE | S3C2410_GPC3_VFRAME | S3C2410_GPC4_VM | @@ -334,8 +334,12 @@ static struct s3c2410fb_mach_info jive_lcd_config = { S3C2410_GPCCON_MASK(12) | S3C2410_GPCCON_MASK(13) | S3C2410_GPCCON_MASK(14) | S3C2410_GPCCON_MASK(15)), + .gpccon_reg = S3C2410_GPCCON, + .gpdup = (0x3f << 2) | (0x3f << 10), + .gpdup_reg = S3C2410_GPDUP, + .gpdcon = (S3C2410_GPD2_VD10 | S3C2410_GPD3_VD11 | S3C2410_GPD4_VD12 | S3C2410_GPD5_VD13 | S3C2410_GPD6_VD14 | S3C2410_GPD7_VD15 | @@ -349,6 +353,8 @@ static struct s3c2410fb_mach_info jive_lcd_config = { S3C2410_GPDCON_MASK(10) | S3C2410_GPDCON_MASK(11)| S3C2410_GPDCON_MASK(12) | S3C2410_GPDCON_MASK(13)| S3C2410_GPDCON_MASK(14) | S3C2410_GPDCON_MASK(15)), + + .gpdcon_reg = S3C2410_GPDCON, }; /* ILI9320 support. */ diff --git a/arch/arm/mach-s3c24xx/mach-mini2440.c b/arch/arm/mach-s3c24xx/mach-mini2440.c index d73167f615b8..2301e07c7d64 100644 --- a/arch/arm/mach-s3c24xx/mach-mini2440.c +++ b/arch/arm/mach-s3c24xx/mach-mini2440.c @@ -30,13 +30,12 @@ #include <asm/mach/arch.h> #include <asm/mach/map.h> +#include <linux/platform_data/fb-s3c2410.h> #include <mach/hardware.h> -#include <mach/fb.h> #include <asm/mach-types.h> #include <mach/regs-gpio.h> #include <linux/platform_data/leds-s3c24xx.h> -#include <mach/regs-lcd.h> #include <mach/irqs.h> #include <mach/gpio-samsung.h> #include <linux/platform_data/mtd-nand-s3c2410.h> @@ -215,6 +214,9 @@ static struct s3c2410fb_mach_info mini2440_fb_info __initdata = { S3C2410_GPCCON_MASK(12) | S3C2410_GPCCON_MASK(13) | S3C2410_GPCCON_MASK(14) | S3C2410_GPCCON_MASK(15)), + .gpccon_reg = S3C2410_GPCCON, + .gpcup_reg = S3C2410_GPCUP, + .gpdup = (0x3f << 2) | (0x3f << 10), .gpdcon = (S3C2410_GPD2_VD10 | S3C2410_GPD3_VD11 | @@ -230,6 +232,9 @@ static struct s3c2410fb_mach_info mini2440_fb_info __initdata = { S3C2410_GPDCON_MASK(10) | S3C2410_GPDCON_MASK(11)| S3C2410_GPDCON_MASK(12) | S3C2410_GPDCON_MASK(13)| S3C2410_GPDCON_MASK(14) | S3C2410_GPDCON_MASK(15)), + + .gpdcon_reg = S3C2410_GPDCON, + .gpdup_reg = S3C2410_GPDUP, }; /* MMC/SD */ diff --git a/arch/arm/mach-s3c24xx/mach-n30.c b/arch/arm/mach-s3c24xx/mach-n30.c index f283abab0761..6b8ee5ba00ca 100644 --- a/arch/arm/mach-s3c24xx/mach-n30.c +++ b/arch/arm/mach-s3c24xx/mach-n30.c @@ -31,10 +31,9 @@ #include <asm/irq.h> #include <asm/mach-types.h> -#include <mach/fb.h> +#include <linux/platform_data/fb-s3c2410.h> #include <linux/platform_data/leds-s3c24xx.h> #include <mach/regs-gpio.h> -#include <mach/regs-lcd.h> #include <mach/gpio-samsung.h> #include <plat/gpio-cfg.h> diff --git a/arch/arm/mach-s3c24xx/mach-osiris.c b/arch/arm/mach-s3c24xx/mach-osiris.c index ee3630cb236a..262e77bd48de 100644 --- a/arch/arm/mach-s3c24xx/mach-osiris.c +++ b/arch/arm/mach-s3c24xx/mach-osiris.c @@ -44,7 +44,6 @@ #include <mach/hardware.h> #include <mach/regs-gpio.h> -#include <mach/regs-lcd.h> #include <mach/gpio-samsung.h> #include "common.h" diff --git a/arch/arm/mach-s3c24xx/mach-qt2410.c b/arch/arm/mach-s3c24xx/mach-qt2410.c index 9b47b8434f10..1d0f5d65e7e5 100644 --- a/arch/arm/mach-s3c24xx/mach-qt2410.c +++ b/arch/arm/mach-s3c24xx/mach-qt2410.c @@ -33,8 +33,7 @@ #include <asm/mach-types.h> #include <linux/platform_data/leds-s3c24xx.h> -#include <mach/regs-lcd.h> -#include <mach/fb.h> +#include <linux/platform_data/fb-s3c2410.h> #include <linux/platform_data/mtd-nand-s3c2410.h> #include <linux/platform_data/usb-s3c2410_udc.h> #include <linux/platform_data/i2c-s3c2410.h> diff --git a/arch/arm/mach-s3c24xx/mach-rx1950.c b/arch/arm/mach-s3c24xx/mach-rx1950.c index 7752203fd9cd..ee4a0992339f 100644 --- a/arch/arm/mach-s3c24xx/mach-rx1950.c +++ b/arch/arm/mach-s3c24xx/mach-rx1950.c @@ -42,12 +42,11 @@ #include <linux/platform_data/mtd-nand-s3c2410.h> #include <linux/platform_data/touchscreen-s3c2410.h> #include <linux/platform_data/usb-s3c2410_udc.h> +#include <linux/platform_data/fb-s3c2410.h> #include <sound/uda1380.h> -#include <mach/fb.h> #include <mach/regs-gpio.h> -#include <mach/regs-lcd.h> #include <mach/gpio-samsung.h> #include <plat/cpu.h> @@ -361,14 +360,17 @@ static struct s3c2410fb_mach_info rx1950_lcd_cfg = { .lpcsel = 0x02, .gpccon = 0xaa9556a9, .gpccon_mask = 0xffc003fc, + .gpccon_reg = S3C2410_GPCCON, .gpcup = 0x0000ffff, .gpcup_mask = 0xffffffff, + .gpcup_reg = S3C2410_GPCUP, .gpdcon = 0xaa90aaa1, .gpdcon_mask = 0xffc0fff0, + .gpdcon_reg = S3C2410_GPDCON, .gpdup = 0x0000fcfd, .gpdup_mask = 0xffffffff, - + .gpdup_reg = S3C2410_GPDUP, }; static struct pwm_lookup rx1950_pwm_lookup[] = { diff --git a/arch/arm/mach-s3c24xx/mach-rx3715.c b/arch/arm/mach-s3c24xx/mach-rx3715.c index 2542c523ad46..87f3274241b2 100644 --- a/arch/arm/mach-s3c24xx/mach-rx3715.c +++ b/arch/arm/mach-s3c24xx/mach-rx3715.c @@ -30,14 +30,13 @@ #include <asm/mach/map.h> #include <linux/platform_data/mtd-nand-s3c2410.h> +#include <linux/platform_data/fb-s3c2410.h> #include <asm/irq.h> #include <asm/mach-types.h> -#include <mach/fb.h> #include <mach/hardware.h> #include <mach/regs-gpio.h> -#include <mach/regs-lcd.h> #include <mach/gpio-samsung.h> #include <plat/gpio-cfg.h> @@ -126,13 +125,17 @@ static struct s3c2410fb_mach_info rx3715_fb_info __initdata = { .gpccon = 0xaa955699, .gpccon_mask = 0xffc003cc, + .gpccon_reg = S3C2410_GPCCON, .gpcup = 0x0000ffff, .gpcup_mask = 0xffffffff, + .gpcup_reg = S3C2410_GPCUP, .gpdcon = 0xaa95aaa1, .gpdcon_mask = 0xffc0fff0, + .gpdcon_reg = S3C2410_GPDCON, .gpdup = 0x0000faff, .gpdup_mask = 0xffffffff, + .gpdup_reg = S3C2410_GPDUP, }; static struct mtd_partition __initdata rx3715_nand_part[] = { diff --git a/arch/arm/mach-s3c24xx/mach-smdk2413.c b/arch/arm/mach-s3c24xx/mach-smdk2413.c index 2bba4f1fa7ee..eec0d3dc4bb1 100644 --- a/arch/arm/mach-s3c24xx/mach-smdk2413.c +++ b/arch/arm/mach-s3c24xx/mach-smdk2413.c @@ -31,12 +31,11 @@ //#include <asm/debug-ll.h> #include <mach/regs-gpio.h> -#include <mach/regs-lcd.h> #include <linux/platform_data/usb-s3c2410_udc.h> #include <linux/platform_data/i2c-s3c2410.h> +#include <linux/platform_data/fb-s3c2410.h> #include <mach/gpio-samsung.h> -#include <mach/fb.h> #include <plat/gpio-cfg.h> #include <plat/devs.h> diff --git a/arch/arm/mach-s3c24xx/mach-smdk2416.c b/arch/arm/mach-s3c24xx/mach-smdk2416.c index 61c3e45898d3..fbd3a8d96f94 100644 --- a/arch/arm/mach-s3c24xx/mach-smdk2416.c +++ b/arch/arm/mach-s3c24xx/mach-smdk2416.c @@ -30,7 +30,6 @@ #include <asm/mach-types.h> #include <mach/regs-gpio.h> -#include <mach/regs-lcd.h> #include <mach/regs-s3c2443-clock.h> #include <mach/gpio-samsung.h> diff --git a/arch/arm/mach-s3c24xx/mach-smdk2440.c b/arch/arm/mach-s3c24xx/mach-smdk2440.c index f0fceda3e8e6..b9b0f2a8c904 100644 --- a/arch/arm/mach-s3c24xx/mach-smdk2440.c +++ b/arch/arm/mach-s3c24xx/mach-smdk2440.c @@ -28,11 +28,10 @@ #include <asm/mach-types.h> #include <mach/regs-gpio.h> -#include <mach/regs-lcd.h> #include <mach/gpio-samsung.h> #include <plat/gpio-cfg.h> -#include <mach/fb.h> +#include <linux/platform_data/fb-s3c2410.h> #include <linux/platform_data/i2c-s3c2410.h> #include <plat/devs.h> @@ -139,6 +138,11 @@ static struct s3c2410fb_mach_info smdk2440_fb_info __initdata = { .gpdcon_mask = 0xffffffff, .gpdup = 0x0000faff, .gpdup_mask = 0xffffffff, + + .gpccon_reg = S3C2410_GPCCON, + .gpcup_reg = S3C2410_GPCUP, + .gpdcon_reg = S3C2410_GPDCON, + .gpdup_reg = S3C2410_GPDUP, #endif .lpcsel = ((0xCE6) & ~7) | 1<<4, diff --git a/arch/arm/mach-s3c24xx/mach-smdk2443.c b/arch/arm/mach-s3c24xx/mach-smdk2443.c index 2358ed5ed7be..a4c1022678a9 100644 --- a/arch/arm/mach-s3c24xx/mach-smdk2443.c +++ b/arch/arm/mach-s3c24xx/mach-smdk2443.c @@ -27,9 +27,8 @@ #include <asm/mach-types.h> #include <mach/regs-gpio.h> -#include <mach/regs-lcd.h> -#include <mach/fb.h> +#include <linux/platform_data/fb-s3c2410.h> #include <linux/platform_data/i2c-s3c2410.h> #include <plat/devs.h> diff --git a/arch/arm/mach-s3c24xx/mach-vstms.c b/arch/arm/mach-s3c24xx/mach-vstms.c index f333ca05de68..08acc556879b 100644 --- a/arch/arm/mach-s3c24xx/mach-vstms.c +++ b/arch/arm/mach-s3c24xx/mach-vstms.c @@ -30,11 +30,10 @@ #include <asm/mach-types.h> #include <mach/regs-gpio.h> -#include <mach/regs-lcd.h> #include <mach/gpio-samsung.h> #include <plat/gpio-cfg.h> -#include <mach/fb.h> +#include <linux/platform_data/fb-s3c2410.h> #include <linux/platform_data/i2c-s3c2410.h> #include <linux/platform_data/mtd-nand-s3c2410.h> diff --git a/arch/arm/plat-samsung/devs.c b/arch/arm/plat-samsung/devs.c index c0739bda060b..92b36bc71a06 100644 --- a/arch/arm/plat-samsung/devs.c +++ b/arch/arm/plat-samsung/devs.c @@ -50,7 +50,7 @@ #include <linux/soc/samsung/s3c-adc.h> #include <linux/platform_data/ata-samsung_cf.h> #include <plat/fb.h> -#include <plat/fb-s3c2410.h> +#include <linux/platform_data/fb-s3c2410.h> #include <linux/platform_data/hwmon-s3c.h> #include <linux/platform_data/i2c-s3c2410.h> #include <plat/keypad.h> diff --git a/arch/arm/mach-s3c24xx/include/mach/regs-lcd.h b/drivers/video/fbdev/s3c2410fb-regs-lcd.h similarity index 84% rename from arch/arm/mach-s3c24xx/include/mach/regs-lcd.h rename to drivers/video/fbdev/s3c2410fb-regs-lcd.h index 4c3434f261bb..1e46f7a788e5 100644 --- a/arch/arm/mach-s3c24xx/include/mach/regs-lcd.h +++ b/drivers/video/fbdev/s3c2410fb-regs-lcd.h @@ -7,6 +7,13 @@ #ifndef ___ASM_ARCH_REGS_LCD_H #define ___ASM_ARCH_REGS_LCD_H +/* + * a couple of values are used as platform data in + * include/linux/platform_data/fb-s3c2410.h and not + * duplicated here. + */ +#include <linux/platform_data/fb-s3c2410.h> + #define S3C2410_LCDREG(x) (x) /* LCD control registers */ @@ -29,13 +36,6 @@ #define S3C2410_LCDCON1_STN8BPP (3<<1) #define S3C2410_LCDCON1_STN12BPP (4<<1) -#define S3C2410_LCDCON1_TFT1BPP (8<<1) -#define S3C2410_LCDCON1_TFT2BPP (9<<1) -#define S3C2410_LCDCON1_TFT4BPP (10<<1) -#define S3C2410_LCDCON1_TFT8BPP (11<<1) -#define S3C2410_LCDCON1_TFT16BPP (12<<1) -#define S3C2410_LCDCON1_TFT24BPP (13<<1) - #define S3C2410_LCDCON1_ENVID (1) #define S3C2410_LCDCON1_MODEMASK 0x1E @@ -66,20 +66,6 @@ #define S3C2410_LCDCON4_GET_HSPW(x) ( ((x) >> 0) & 0xFF) -#define S3C2410_LCDCON5_BPP24BL (1<<12) -#define S3C2410_LCDCON5_FRM565 (1<<11) -#define S3C2410_LCDCON5_INVVCLK (1<<10) -#define S3C2410_LCDCON5_INVVLINE (1<<9) -#define S3C2410_LCDCON5_INVVFRAME (1<<8) -#define S3C2410_LCDCON5_INVVD (1<<7) -#define S3C2410_LCDCON5_INVVDEN (1<<6) -#define S3C2410_LCDCON5_INVPWREN (1<<5) -#define S3C2410_LCDCON5_INVLEND (1<<4) -#define S3C2410_LCDCON5_PWREN (1<<3) -#define S3C2410_LCDCON5_ENLEND (1<<2) -#define S3C2410_LCDCON5_BSWP (1<<1) -#define S3C2410_LCDCON5_HWSWP (1<<0) - /* framebuffer start addressed */ #define S3C2410_LCDSADDR1 S3C2410_LCDREG(0x14) #define S3C2410_LCDSADDR2 S3C2410_LCDREG(0x18) diff --git a/drivers/video/fbdev/s3c2410fb.c b/drivers/video/fbdev/s3c2410fb.c index a702da89910b..3e5b91c72f5b 100644 --- a/drivers/video/fbdev/s3c2410fb.c +++ b/drivers/video/fbdev/s3c2410fb.c @@ -29,19 +29,18 @@ #include <linux/clk.h> #include <linux/cpufreq.h> #include <linux/io.h> +#include <linux/platform_data/fb-s3c2410.h> #include <asm/div64.h> #include <asm/mach/map.h> -#include <mach/regs-lcd.h> -#include <mach/regs-gpio.h> -#include <mach/fb.h> #ifdef CONFIG_PM #include <linux/pm.h> #endif #include "s3c2410fb.h" +#include "s3c2410fb-regs-lcd.h" /* Debugging stuff */ #ifdef CONFIG_FB_S3C2410_DEBUG @@ -676,6 +675,9 @@ static inline void modify_gpio(void __iomem *reg, { unsigned long tmp; + if (!reg) + return; + tmp = readl(reg) & ~mask; writel(tmp | set, reg); } @@ -706,10 +708,10 @@ static int s3c2410fb_init_registers(struct fb_info *info) /* modify the gpio(s) with interrupts set (bjd) */ - modify_gpio(S3C2410_GPCUP, mach_info->gpcup, mach_info->gpcup_mask); - modify_gpio(S3C2410_GPCCON, mach_info->gpccon, mach_info->gpccon_mask); - modify_gpio(S3C2410_GPDUP, mach_info->gpdup, mach_info->gpdup_mask); - modify_gpio(S3C2410_GPDCON, mach_info->gpdcon, mach_info->gpdcon_mask); + modify_gpio(mach_info->gpcup_reg, mach_info->gpcup, mach_info->gpcup_mask); + modify_gpio(mach_info->gpccon_reg, mach_info->gpccon, mach_info->gpccon_mask); + modify_gpio(mach_info->gpdup_reg, mach_info->gpdup, mach_info->gpdup_mask); + modify_gpio(mach_info->gpdcon_reg, mach_info->gpdcon, mach_info->gpdcon_mask); local_irq_restore(flags); diff --git a/arch/arm/plat-samsung/include/plat/fb-s3c2410.h b/include/linux/platform_data/fb-s3c2410.h similarity index 57% rename from arch/arm/plat-samsung/include/plat/fb-s3c2410.h rename to include/linux/platform_data/fb-s3c2410.h index 614240d768b4..10c11e6316d6 100644 --- a/arch/arm/plat-samsung/include/plat/fb-s3c2410.h +++ b/include/linux/platform_data/fb-s3c2410.h @@ -8,6 +8,8 @@ #ifndef __ASM_PLAT_FB_S3C2410_H #define __ASM_PLAT_FB_S3C2410_H __FILE__ +#include <linux/compiler_types.h> + struct s3c2410fb_hw { unsigned long lcdcon1; unsigned long lcdcon2; @@ -20,6 +22,17 @@ struct s3c2410fb_hw { struct s3c2410fb_display { /* LCD type */ unsigned type; +#define S3C2410_LCDCON1_DSCAN4 (0<<5) +#define S3C2410_LCDCON1_STN4 (1<<5) +#define S3C2410_LCDCON1_STN8 (2<<5) +#define S3C2410_LCDCON1_TFT (3<<5) + +#define S3C2410_LCDCON1_TFT1BPP (8<<1) +#define S3C2410_LCDCON1_TFT2BPP (9<<1) +#define S3C2410_LCDCON1_TFT4BPP (10<<1) +#define S3C2410_LCDCON1_TFT8BPP (11<<1) +#define S3C2410_LCDCON1_TFT16BPP (12<<1) +#define S3C2410_LCDCON1_TFT24BPP (13<<1) /* Screen size */ unsigned short width; @@ -40,6 +53,19 @@ struct s3c2410fb_display { /* lcd configuration registers */ unsigned long lcdcon5; +#define S3C2410_LCDCON5_BPP24BL (1<<12) +#define S3C2410_LCDCON5_FRM565 (1<<11) +#define S3C2410_LCDCON5_INVVCLK (1<<10) +#define S3C2410_LCDCON5_INVVLINE (1<<9) +#define S3C2410_LCDCON5_INVVFRAME (1<<8) +#define S3C2410_LCDCON5_INVVD (1<<7) +#define S3C2410_LCDCON5_INVVDEN (1<<6) +#define S3C2410_LCDCON5_INVPWREN (1<<5) +#define S3C2410_LCDCON5_INVLEND (1<<4) +#define S3C2410_LCDCON5_PWREN (1<<3) +#define S3C2410_LCDCON5_ENLEND (1<<2) +#define S3C2410_LCDCON5_BSWP (1<<1) +#define S3C2410_LCDCON5_HWSWP (1<<0) }; struct s3c2410fb_mach_info { @@ -59,10 +85,15 @@ struct s3c2410fb_mach_info { unsigned long gpdcon; unsigned long gpdcon_mask; + void __iomem * gpccon_reg; + void __iomem * gpcup_reg; + void __iomem * gpdcon_reg; + void __iomem * gpdup_reg; + /* lpc3600 control register */ unsigned long lpcsel; }; -extern void __init s3c24xx_fb_set_platdata(struct s3c2410fb_mach_info *); +extern void s3c24xx_fb_set_platdata(struct s3c2410fb_mach_info *); #endif /* __ASM_PLAT_FB_S3C2410_H */ -- 2.20.0 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 28/36] fbdev: s3c2410fb: remove mach header dependency 2019-10-10 20:30 ` [PATCH 28/36] fbdev: s3c2410fb: remove mach header dependency Arnd Bergmann @ 2019-10-23 13:13 ` Krzysztof Kozlowski 2019-10-23 13:35 ` Arnd Bergmann 0 siblings, 1 reply; 6+ messages in thread From: Krzysztof Kozlowski @ 2019-10-23 13:13 UTC (permalink / raw) To: Arnd Bergmann Cc: linux-fbdev, linux-samsung-soc, Bartlomiej Zolnierkiewicz, linux-kernel, dri-devel, Kukjin Kim, linux-stm32, linux-arm-kernel On Thu, Oct 10, 2019 at 10:30:12PM +0200, Arnd Bergmann wrote: > The s3c2410fb driver is too deeply intertwined with the s3c24xx > platform code. Change it in a way that avoids the use of platform > header files but having all interface data in a platform_data > header, and the private register definitions next to the driver > itself. > > One ugly bit here is that the driver pokes directly into gpio > registers, which are owned by another driver. Passing the > mapped addresses in platform_data is somewhat suboptimal, but > it is a small improvement over the previous version. > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > --- > arch/arm/mach-s3c24xx/include/mach/fb.h | 2 -- > arch/arm/mach-s3c24xx/mach-amlm5900.c | 7 ++-- > arch/arm/mach-s3c24xx/mach-anubis.c | 1 - > arch/arm/mach-s3c24xx/mach-at2440evb.c | 3 +- > arch/arm/mach-s3c24xx/mach-bast.c | 3 +- > arch/arm/mach-s3c24xx/mach-gta02.c | 2 +- > arch/arm/mach-s3c24xx/mach-h1940.c | 7 ++-- > arch/arm/mach-s3c24xx/mach-jive.c | 10 ++++-- > arch/arm/mach-s3c24xx/mach-mini2440.c | 9 +++-- > arch/arm/mach-s3c24xx/mach-n30.c | 3 +- > arch/arm/mach-s3c24xx/mach-osiris.c | 1 - > arch/arm/mach-s3c24xx/mach-qt2410.c | 3 +- > arch/arm/mach-s3c24xx/mach-rx1950.c | 8 +++-- > arch/arm/mach-s3c24xx/mach-rx3715.c | 7 ++-- > arch/arm/mach-s3c24xx/mach-smdk2413.c | 3 +- > arch/arm/mach-s3c24xx/mach-smdk2416.c | 1 - > arch/arm/mach-s3c24xx/mach-smdk2440.c | 8 +++-- > arch/arm/mach-s3c24xx/mach-smdk2443.c | 3 +- > arch/arm/mach-s3c24xx/mach-vstms.c | 3 +- > arch/arm/plat-samsung/devs.c | 2 +- > .../video/fbdev/s3c2410fb-regs-lcd.h | 28 ++++------------ > drivers/video/fbdev/s3c2410fb.c | 16 +++++---- > .../linux/platform_data}/fb-s3c2410.h | 33 ++++++++++++++++++- > 23 files changed, 98 insertions(+), 65 deletions(-) > delete mode 100644 arch/arm/mach-s3c24xx/include/mach/fb.h > rename arch/arm/mach-s3c24xx/include/mach/regs-lcd.h => drivers/video/fbdev/s3c2410fb-regs-lcd.h (84%) > rename {arch/arm/plat-samsung/include/plat => include/linux/platform_data}/fb-s3c2410.h (57%) > > diff --git a/arch/arm/mach-s3c24xx/include/mach/fb.h b/arch/arm/mach-s3c24xx/include/mach/fb.h > deleted file mode 100644 > index 4e539cb8b884..000000000000 > --- a/arch/arm/mach-s3c24xx/include/mach/fb.h > +++ /dev/null > @@ -1,2 +0,0 @@ > -/* SPDX-License-Identifier: GPL-2.0 */ > -#include <plat/fb-s3c2410.h> > diff --git a/arch/arm/mach-s3c24xx/mach-amlm5900.c b/arch/arm/mach-s3c24xx/mach-amlm5900.c > index 40ad23b52bc0..ef6de1b1d0c6 100644 > --- a/arch/arm/mach-s3c24xx/mach-amlm5900.c > +++ b/arch/arm/mach-s3c24xx/mach-amlm5900.c > @@ -30,9 +30,8 @@ > #include <mach/hardware.h> > #include <asm/irq.h> > #include <asm/mach-types.h> > -#include <mach/fb.h> > +#include <linux/platform_data/fb-s3c2410.h> > > -#include <mach/regs-lcd.h> > #include <mach/regs-gpio.h> > #include <mach/gpio-samsung.h> > > @@ -194,13 +193,17 @@ static struct s3c2410fb_mach_info __initdata amlm5900_fb_info = { > > .gpccon = 0xaaaaaaaa, > .gpccon_mask = 0xffffffff, > + .gpccon_reg = S3C2410_GPCCON, > .gpcup = 0x0000ffff, > .gpcup_mask = 0xffffffff, > + .gpcup_reg = S3C2410_GPCUP, > > .gpdcon = 0xaaaaaaaa, > .gpdcon_mask = 0xffffffff, > + .gpdcon_reg = S3C2410_GPDCON, > .gpdup = 0x0000ffff, > .gpdup_mask = 0xffffffff, > + .gpdup_reg = S3C2410_GPDUP, > }; > #endif > > diff --git a/arch/arm/mach-s3c24xx/mach-anubis.c b/arch/arm/mach-s3c24xx/mach-anubis.c > index 072966dcad78..e1a73274e90b 100644 > --- a/arch/arm/mach-s3c24xx/mach-anubis.c > +++ b/arch/arm/mach-s3c24xx/mach-anubis.c > @@ -29,7 +29,6 @@ > #include <asm/mach-types.h> > > #include <mach/regs-gpio.h> > -#include <mach/regs-lcd.h> > #include <mach/gpio-samsung.h> > #include <linux/platform_data/mtd-nand-s3c2410.h> > #include <linux/platform_data/i2c-s3c2410.h> > diff --git a/arch/arm/mach-s3c24xx/mach-at2440evb.c b/arch/arm/mach-s3c24xx/mach-at2440evb.c > index b2199906e678..bfda6dd2a9d5 100644 > --- a/arch/arm/mach-s3c24xx/mach-at2440evb.c > +++ b/arch/arm/mach-s3c24xx/mach-at2440evb.c > @@ -25,12 +25,11 @@ > #include <asm/mach/irq.h> > > #include <mach/hardware.h> > -#include <mach/fb.h> > +#include <linux/platform_data/fb-s3c2410.h> > #include <asm/irq.h> > #include <asm/mach-types.h> > > #include <mach/regs-gpio.h> > -#include <mach/regs-lcd.h> > #include <mach/gpio-samsung.h> > #include <linux/platform_data/mtd-nand-s3c2410.h> > #include <linux/platform_data/i2c-s3c2410.h> > diff --git a/arch/arm/mach-s3c24xx/mach-bast.c b/arch/arm/mach-s3c24xx/mach-bast.c > index a7c3955ae8f6..cc941b5030ea 100644 > --- a/arch/arm/mach-s3c24xx/mach-bast.c > +++ b/arch/arm/mach-s3c24xx/mach-bast.c > @@ -40,10 +40,9 @@ > #include <asm/mach/irq.h> > #include <asm/mach-types.h> > > -#include <mach/fb.h> > #include <mach/hardware.h> > +#include <linux/platform_data/fb-s3c2410.h> > #include <mach/regs-gpio.h> > -#include <mach/regs-lcd.h> > #include <mach/gpio-samsung.h> > > #include <plat/cpu.h> > diff --git a/arch/arm/mach-s3c24xx/mach-gta02.c b/arch/arm/mach-s3c24xx/mach-gta02.c > index 61b8c6badeb8..1e42782dbd30 100644 > --- a/arch/arm/mach-s3c24xx/mach-gta02.c > +++ b/arch/arm/mach-s3c24xx/mach-gta02.c > @@ -57,8 +57,8 @@ > #include <linux/platform_data/touchscreen-s3c2410.h> > #include <linux/platform_data/usb-ohci-s3c2410.h> > #include <linux/platform_data/usb-s3c2410_udc.h> > +#include <linux/platform_data/fb-s3c2410.h> > > -#include <mach/fb.h> > #include <mach/hardware.h> > #include <mach/regs-gpio.h> > #include <mach/regs-irq.h> > diff --git a/arch/arm/mach-s3c24xx/mach-h1940.c b/arch/arm/mach-s3c24xx/mach-h1940.c > index 446891e23511..d56e3befa459 100644 > --- a/arch/arm/mach-s3c24xx/mach-h1940.c > +++ b/arch/arm/mach-s3c24xx/mach-h1940.c > @@ -47,11 +47,10 @@ > > #include <sound/uda1380.h> > > -#include <mach/fb.h> > +#include <linux/platform_data/fb-s3c2410.h> > #include <mach/hardware.h> > #include <mach/regs-clock.h> > #include <mach/regs-gpio.h> > -#include <mach/regs-lcd.h> > #include <mach/gpio-samsung.h> > > #include <plat/cpu.h> > @@ -211,12 +210,16 @@ static struct s3c2410fb_mach_info h1940_fb_info __initdata = { > .lpcsel = 0x02, > .gpccon = 0xaa940659, > .gpccon_mask = 0xffffc0f0, > + .gpccon_reg = S3C2410_GPCCON, > .gpcup = 0x0000ffff, > .gpcup_mask = 0xffffffff, > + .gpcup_reg = S3C2410_GPCUP, > .gpdcon = 0xaa84aaa0, > .gpdcon_mask = 0xffffffff, > + .gpdcon_reg = S3C2410_GPDCON, > .gpdup = 0x0000faff, > .gpdup_mask = 0xffffffff, > + .gpdup_reg = S3C2410_GPDUP, > }; > > static int power_supply_init(struct device *dev) > diff --git a/arch/arm/mach-s3c24xx/mach-jive.c b/arch/arm/mach-s3c24xx/mach-jive.c > index 885e8f12e4b9..3b33132b2334 100644 > --- a/arch/arm/mach-s3c24xx/mach-jive.c > +++ b/arch/arm/mach-s3c24xx/mach-jive.c > @@ -32,8 +32,7 @@ > #include <linux/platform_data/i2c-s3c2410.h> > > #include <mach/regs-gpio.h> > -#include <mach/regs-lcd.h> > -#include <mach/fb.h> > +#include <linux/platform_data/fb-s3c2410.h> > #include <mach/gpio-samsung.h> > > #include <asm/mach-types.h> > @@ -321,6 +320,7 @@ static struct s3c2410fb_mach_info jive_lcd_config = { > * data. */ > > .gpcup = (0xf << 1) | (0x3f << 10), > + .gpcup_reg = S3C2410_GPCUP, Nits: indentation before/after '=' looks wrong. Tab should be before '=', one space after. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 28/36] fbdev: s3c2410fb: remove mach header dependency 2019-10-23 13:13 ` Krzysztof Kozlowski @ 2019-10-23 13:35 ` Arnd Bergmann 0 siblings, 0 replies; 6+ messages in thread From: Arnd Bergmann @ 2019-10-23 13:35 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: Linux Fbdev development list, moderated list:ARM/SAMSUNG EXYNOS ARM ARCHITECTURES, Bartlomiej Zolnierkiewicz, Linus Walleij, linux-kernel@vger.kernel.org, dri-devel, Kukjin Kim, linux-stm32, Linux ARM On Wed, Oct 23, 2019 at 3:13 PM Krzysztof Kozlowski <krzk@kernel.org> wrote: > On Thu, Oct 10, 2019 at 10:30:12PM +0200, Arnd Bergmann wrote: > > @@ -321,6 +320,7 @@ static struct s3c2410fb_mach_info jive_lcd_config = { > > * data. */ > > > > .gpcup = (0xf << 1) | (0x3f << 10), > > + .gpcup_reg = S3C2410_GPCUP, > > Nits: indentation before/after '=' looks wrong. Tab should be > before '=', one space after. Ok, fixed now for the four boards that had inconsistent indentation -- jive, mini2440, smdk2440, and rx1950. Unfortunately each board seemed to have its own way of doing this. Arnd ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 00/36] ARM: samsung platform cleanup 2019-10-10 20:28 [PATCH 00/36] ARM: samsung platform cleanup Arnd Bergmann [not found] ` <20191010203043.1241612-1-arnd@arndb.de> @ 2019-10-23 13:10 ` Krzysztof Kozlowski 2019-10-23 13:39 ` Arnd Bergmann 1 sibling, 1 reply; 6+ messages in thread From: Krzysztof Kozlowski @ 2019-10-23 13:10 UTC (permalink / raw) To: Arnd Bergmann Cc: linux-fbdev, alsa-devel, dri-devel, Sylwester Nawrocki, linux-clk, linux-leds, linux-samsung-soc, linux-stm32, Lihua Yao, Kukjin Kim, linux-serial, linux-input, Paweł Chmiel, linux-pwm, Sergio Prado, linux-pm, Lihua Yao, linux-arm-kernel, linux-hwmon, patches, linux-usb, linux-mmc, linux-kernel, linux-spi On Thu, Oct 10, 2019 at 10:28:02PM +0200, Arnd Bergmann wrote: > I've spent some time looking at the remaining ARMv4/ARMv5 platforms > that are not part of ARCH_MULTIPLATFORM, and tried to get them closer > to that. Here is what came out of that for the samsung platforms: > > * Exynos and s5pv210 are made independent of plat-samsung > * device drivers stop using mach/*.h headers for s3c24xx > (and other platforms not in this series) > * s3c24xx and s3c64xx get merged into mach-s3c, removing > the need for plat-samsung (I have other patches for the > remaining plat-* directories) > * mach/io.h gets cleaned up to only be needed for BAST > PC104 mode (looking for ideas to proceed) > * mach/irqs.h remains for now, this still needs to be converted > to sparse IRQs. > > Some bits are a little ugly, but overall I think this a big > improvement. > > The contents are available for testing in > > git://kernel.org:/pub/scm/linux/kernel/git/arnd/playground.git s3c-multiplatform When sending v2, can you Cc: PaweÅ‚ Chmiel <pawel.mikolaj.chmiel@gmail.com> Lihua Yao <ylhuajnu@outlook.com> (or Lihua Yao <ylhuajnu@163.com> if outlook.com bounces) Sergio Prado <sergio.prado@e-labworks.com> Sylwester Nawrocki <s.nawrocki@samsung.com> These are folks which to my knowledge had working S3C and S5P boards so maybe they could provide testing. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 00/36] ARM: samsung platform cleanup 2019-10-23 13:10 ` [PATCH 00/36] ARM: samsung platform cleanup Krzysztof Kozlowski @ 2019-10-23 13:39 ` Arnd Bergmann 0 siblings, 0 replies; 6+ messages in thread From: Arnd Bergmann @ 2019-10-23 13:39 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: Linux Fbdev development list, ALSA Development Mailing List, dri-devel, Sylwester Nawrocki, linux-stm32, linux-leds, moderated list:ARM/SAMSUNG EXYNOS ARM ARCHITECTURES, linux-clk, Lihua Yao, Kukjin Kim, linux-serial, open list:HID CORE LAYER, Paweł Chmiel, Linux PWM List, Sergio Prado, Linux PM list, Lihua Yao, Linux ARM, linux-hwmon, patches, USB list, linux-mmc, linux-kernel@vger.kernel.org, linux-spi On Wed, Oct 23, 2019 at 3:11 PM Krzysztof Kozlowski <krzk@kernel.org> wrote: > On Thu, Oct 10, 2019 at 10:28:02PM +0200, Arnd Bergmann wrote: > > The contents are available for testing in > > > > git://kernel.org:/pub/scm/linux/kernel/git/arnd/playground.git s3c-multiplatform > > When sending v2, can you Cc: > > PaweÅ‚ Chmiel <pawel.mikolaj.chmiel@gmail.com> > Lihua Yao <ylhuajnu@outlook.com> > (or Lihua Yao <ylhuajnu@163.com> if outlook.com bounces) > Sergio Prado <sergio.prado@e-labworks.com> > Sylwester Nawrocki <s.nawrocki@samsung.com> > > These are folks which to my knowledge had working S3C and S5P boards > so maybe they could provide testing. Ok, will do. I've uploaded the modified version based on your comments to the above URL for now. I'll probably give it a little more time before resending, but they could already start testing that version. Thanks a lot for the review! Arnd ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2019-10-23 13:39 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-10-10 20:28 [PATCH 00/36] ARM: samsung platform cleanup Arnd Bergmann
[not found] ` <20191010203043.1241612-1-arnd@arndb.de>
2019-10-10 20:30 ` [PATCH 28/36] fbdev: s3c2410fb: remove mach header dependency Arnd Bergmann
2019-10-23 13:13 ` Krzysztof Kozlowski
2019-10-23 13:35 ` Arnd Bergmann
2019-10-23 13:10 ` [PATCH 00/36] ARM: samsung platform cleanup Krzysztof Kozlowski
2019-10-23 13:39 ` Arnd Bergmann
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).