* [PATCH 00/36] ARM: samsung platform cleanup
@ 2019-10-10 20:28 Arnd Bergmann
2019-10-10 20:29 ` [PATCH 01/36] ARM: samsung: make S3C24XX_MISCCR access indirect Arnd Bergmann
2019-10-23 13:10 ` [PATCH 00/36] ARM: samsung platform cleanup Krzysztof Kozlowski
0 siblings, 2 replies; 5+ messages in thread
From: Arnd Bergmann @ 2019-10-10 20:28 UTC (permalink / raw)
To: Kukjin Kim, Krzysztof Kozlowski
Cc: linux-samsung-soc, linux-arm-kernel, Arnd Bergmann, linux-kernel,
linux-pm, patches, linux-stm32, linux-clk, linux-hwmon,
linux-input, linux-leds, linux-mmc, linux-pwm, linux-spi,
linux-serial, linux-usb, dri-devel, linux-fbdev, alsa-devel
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] 5+ messages in thread
* [PATCH 01/36] ARM: samsung: make S3C24XX_MISCCR access indirect
2019-10-10 20:28 [PATCH 00/36] ARM: samsung platform cleanup Arnd Bergmann
@ 2019-10-10 20:29 ` Arnd Bergmann
2019-10-15 14:52 ` Tomasz Figa
2019-10-23 13:10 ` [PATCH 00/36] ARM: samsung platform cleanup Krzysztof Kozlowski
1 sibling, 1 reply; 5+ messages in thread
From: Arnd Bergmann @ 2019-10-10 20:29 UTC (permalink / raw)
To: Kukjin Kim, Krzysztof Kozlowski, Sylwester Nawrocki, Tomasz Figa,
Chanwoo Choi
Cc: linux-samsung-soc, linux-arm-kernel, linus.walleij,
Arnd Bergmann, Michael Turquette, Stephen Boyd, linux-kernel,
linux-clk
The clk driver uses both a function call into an exported
platform file and a direct register access to a hardcoded
virtual address for accessing the MISCCR register, both
become are a problem for a multiplatform kernel because
of the header file dependency.
Make this an indirect function call through platform data
instead.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
arch/arm/mach-s3c24xx/common.c | 3 +++
drivers/clk/samsung/clk-s3c2410-dclk.c | 10 ++++------
2 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/arch/arm/mach-s3c24xx/common.c b/arch/arm/mach-s3c24xx/common.c
index 3dc029c2d2cb..ebf6bde67816 100644
--- a/arch/arm/mach-s3c24xx/common.c
+++ b/arch/arm/mach-s3c24xx/common.c
@@ -667,5 +667,8 @@ struct platform_device s3c2410_device_dclk = {
.id = 0,
.num_resources = ARRAY_SIZE(s3c2410_dclk_resource),
.resource = s3c2410_dclk_resource,
+ .dev = {
+ .platform_data = s3c2410_modify_misccr,
+ },
};
#endif
diff --git a/drivers/clk/samsung/clk-s3c2410-dclk.c b/drivers/clk/samsung/clk-s3c2410-dclk.c
index 1281672cb00e..fbcec0252c45 100644
--- a/drivers/clk/samsung/clk-s3c2410-dclk.c
+++ b/drivers/clk/samsung/clk-s3c2410-dclk.c
@@ -14,10 +14,6 @@
#include <linux/module.h>
#include "clk.h"
-/* legacy access to misccr, until dt conversion is finished */
-#include <mach/hardware.h>
-#include <mach/regs-gpio.h>
-
#define MUX_DCLK0 0
#define MUX_DCLK1 1
#define DIV_DCLK0 2
@@ -52,6 +48,7 @@ struct s3c24xx_clkout {
struct clk_hw hw;
u32 mask;
u8 shift;
+ unsigned int (*modify_misccr)(unsigned int clr, unsigned int chg);
};
#define to_s3c24xx_clkout(_hw) container_of(_hw, struct s3c24xx_clkout, hw)
@@ -62,7 +59,7 @@ static u8 s3c24xx_clkout_get_parent(struct clk_hw *hw)
int num_parents = clk_hw_get_num_parents(hw);
u32 val;
- val = readl_relaxed(S3C24XX_MISCCR) >> clkout->shift;
+ val = clkout->modify_misccr(0, 0) >> clkout->shift;
val >>= clkout->shift;
val &= clkout->mask;
@@ -76,7 +73,7 @@ static int s3c24xx_clkout_set_parent(struct clk_hw *hw, u8 index)
{
struct s3c24xx_clkout *clkout = to_s3c24xx_clkout(hw);
- s3c2410_modify_misccr((clkout->mask << clkout->shift),
+ clkout->modify_misccr((clkout->mask << clkout->shift),
(index << clkout->shift));
return 0;
@@ -110,6 +107,7 @@ static struct clk_hw *s3c24xx_register_clkout(struct device *dev,
clkout->shift = shift;
clkout->mask = mask;
clkout->hw.init = &init;
+ clkout->modify_misccr = dev->platform_data;
ret = clk_hw_register(dev, &clkout->hw);
if (ret)
--
2.20.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 01/36] ARM: samsung: make S3C24XX_MISCCR access indirect
2019-10-10 20:29 ` [PATCH 01/36] ARM: samsung: make S3C24XX_MISCCR access indirect Arnd Bergmann
@ 2019-10-15 14:52 ` Tomasz Figa
0 siblings, 0 replies; 5+ messages in thread
From: Tomasz Figa @ 2019-10-15 14:52 UTC (permalink / raw)
To: Arnd Bergmann
Cc: Kukjin Kim, Krzysztof Kozlowski, Sylwester Nawrocki,
Chanwoo Choi, moderated list:SAMSUNG SOC CLOCK DRIVERS,
linux-arm-kernel, linus.walleij, Michael Turquette, Stephen Boyd,
linux-kernel, open list:COMMON CLK FRAMEWORK
Hi Arnd,
2019年10月11日(金) 5:30 Arnd Bergmann <arnd@arndb.de>:
>
> The clk driver uses both a function call into an exported
> platform file and a direct register access to a hardcoded
> virtual address for accessing the MISCCR register, both
> become are a problem for a multiplatform kernel because
> of the header file dependency.
>
> Make this an indirect function call through platform data
> instead.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
> arch/arm/mach-s3c24xx/common.c | 3 +++
> drivers/clk/samsung/clk-s3c2410-dclk.c | 10 ++++------
> 2 files changed, 7 insertions(+), 6 deletions(-)
>
> diff --git a/arch/arm/mach-s3c24xx/common.c b/arch/arm/mach-s3c24xx/common.c
> index 3dc029c2d2cb..ebf6bde67816 100644
> --- a/arch/arm/mach-s3c24xx/common.c
> +++ b/arch/arm/mach-s3c24xx/common.c
> @@ -667,5 +667,8 @@ struct platform_device s3c2410_device_dclk = {
> .id = 0,
> .num_resources = ARRAY_SIZE(s3c2410_dclk_resource),
> .resource = s3c2410_dclk_resource,
> + .dev = {
> + .platform_data = s3c2410_modify_misccr,
Thanks for the patch!
Just one minor nit: It doesn't look very nice to pass a function
pointer directly as platform data. Could we have a struct defined
instead - with a kerneldoc comment describing the function pointer
field?
Best regards,
Tomasz
^ permalink raw reply [flat|nested] 5+ 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
2019-10-10 20:29 ` [PATCH 01/36] ARM: samsung: make S3C24XX_MISCCR access indirect Arnd Bergmann
@ 2019-10-23 13:10 ` Krzysztof Kozlowski
2019-10-23 13:39 ` Arnd Bergmann
1 sibling, 1 reply; 5+ messages in thread
From: Krzysztof Kozlowski @ 2019-10-23 13:10 UTC (permalink / raw)
To: Arnd Bergmann
Cc: Kukjin Kim, linux-samsung-soc, linux-arm-kernel, linux-kernel,
linux-pm, patches, linux-stm32, linux-clk, linux-hwmon,
linux-input, linux-leds, linux-mmc, linux-pwm, linux-spi,
linux-serial, linux-usb, dri-devel, linux-fbdev, alsa-devel,
Lihua Yao, Paweł Chmiel, Lihua Yao, Sergio Prado,
Sylwester Nawrocki
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] 5+ 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; 5+ 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-clk, linux-leds,
moderated list:ARM/SAMSUNG EXYNOS ARM ARCHITECTURES, linux-stm32,
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, 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] 5+ messages in thread
end of thread, other threads:[~2019-10-23 13:39 UTC | newest]
Thread overview: 5+ 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
2019-10-10 20:29 ` [PATCH 01/36] ARM: samsung: make S3C24XX_MISCCR access indirect Arnd Bergmann
2019-10-15 14:52 ` Tomasz Figa
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).