mbox series

[00/21] ARM: s3c: clean out obsolete platforms

Message ID 20221021202254.4142411-1-arnd@kernel.org
Headers show
Series ARM: s3c: clean out obsolete platforms | expand

Message

Arnd Bergmann Oct. 21, 2022, 8:22 p.m. UTC
From: Arnd Bergmann <arnd@arndb.de>

The s3c24xx platform was marked as deprecated a while ago,
and for the s3c64xx platform, we marked all except one legacy
board file as unused.

This series removes all of those, leaving only s3c64xx support
for DT based boots as well as the cragg6410 board file.

About half of the s3c specific drivers were only used on
the now removed machines, so these drivers can be retired
as well. I can either merge the driver removal patches through
the soc tree along with the board file patches, or subsystem
maintainers can pick them up into their own trees, whichever
they prefer.

Arnd Bergmann (21):
  ARM: s3c: remove all s3c24xx support
  ARM: s3c: remove s3c24xx specific hacks
  ARM: s3c: remove most s3c64xx board support
  ARM: s3c: remove adc.c
  ARM: s3c: simplify platform code
  ARM: s3c: remove s3c6400 support
  power: remove s3c adc battery driver
  hwmon: remove s3c driver
  pata: remove samsung_cf driver
  mmc: remove s3cmci driver
  clk: remove s3c24xx driver
  leds: remove s3c24xx driver
  usb: gadget: remove s3c24xx drivers
  dmaengine: remove s3c24xx driver
  cpufreq: remove s3c24xx drivers
  fbdev: remove s3c2410 framebuffer
  input: remove s3c24xx touchscreen driver
  pinctrl: remove s3c24xx driver
  spi: remove s3c24xx driver
  soc: s3c: remove pm-debug hack
  ASoC: samsung: remove unused drivers

Cc: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Cc: Ben Dooks <ben-linux@fluff.org>
Cc: Simtec Linux Team <linux@simtec.co.uk>
Bcc: Alim Akhtar <alim.akhtar@samsung.com>
Bcc: Rob Herring <robh+dt@kernel.org>
Bcc: Damien Le Moal <damien.lemoal@opensource.wdc.com>
Bcc: Sergey Shtylyov <s.shtylyov@omp.ru>
Bcc: Sylwester Nawrocki <s.nawrocki@samsung.com>
Bcc: Tomasz Figa <tomasz.figa@gmail.com>
Bcc: Chanwoo Choi <cw00.choi@samsung.com>
Bcc: Michael Turquette <mturquette@baylibre.com>
Bcc: Stephen Boyd <sboyd@kernel.org>
Bcc: Daniel Lezcano <daniel.lezcano@linaro.org>
Bcc: Thomas Gleixner <tglx@linutronix.de>
Bcc: "Rafael J. Wysocki" <rafael@kernel.org>
Bcc: Viresh Kumar <viresh.kumar@linaro.org>
Bcc: Vinod Koul <vkoul@kernel.org>
Bcc: Jean Delvare <jdelvare@suse.com>
Bcc: Guenter Roeck <linux@roeck-us.net>
Bcc: Jonathan Cameron <jic23@kernel.org>
Bcc: Lars-Peter Clausen <lars@metafoo.de>
Bcc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Bcc: Pavel Machek <pavel@ucw.cz>
Bcc: Mauro Carvalho Chehab <mchehab@kernel.org>
Bcc: Ulf Hansson <ulf.hansson@linaro.org>
Bcc: Miquel Raynal <miquel.raynal@bootlin.com>
Bcc: Richard Weinberger <richard@nod.at>
Bcc: Vignesh Raghavendra <vigneshr@ti.com>
Bcc: Linus Walleij <linus.walleij@linaro.org>
Bcc: Sebastian Reichel <sre@kernel.org>
Bcc: Alexandre Belloni <alexandre.belloni@bootlin.com>
Bcc: Mark Brown <broonie@kernel.org>
Bcc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Bcc: Jiri Slaby <jirislaby@kernel.org>
Bcc: Felipe Balbi <balbi@kernel.org>
Bcc: Helge Deller <deller@gmx.de>
Bcc: Wim Van Sebroeck <wim@linux-watchdog.org>
Bcc: Liam Girdwood <lgirdwood@gmail.com>
Bcc: Thierry Reding <thierry.reding@gmail.com>
Bcc: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
Cc: linux-doc@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: devicetree@vger.kernel.org
Cc: patches@opensource.cirrus.com
Cc: linux-stm32@st-md-mailman.stormreply.com
Cc: linux-ide@vger.kernel.org
Cc: linux-clk@vger.kernel.org
Cc: linux-pm@vger.kernel.org
Cc: dmaengine@vger.kernel.org
Cc: linux-hwmon@vger.kernel.org
Cc: linux-i2c@vger.kernel.org
Cc: linux-iio@vger.kernel.org
Cc: linux-input@vger.kernel.org
Cc: linux-leds@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: linux-mmc@vger.kernel.org
Cc: linux-mtd@lists.infradead.org
Cc: linux-gpio@vger.kernel.org
Cc: linux-rtc@vger.kernel.org
Cc: linux-spi@vger.kernel.org
Cc: linux-serial@vger.kernel.org
Cc: linux-usb@vger.kernel.org
Cc: linux-fbdev@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: linux-watchdog@vger.kernel.org
Cc: alsa-devel@alsa-project.org
Cc: linux-pwm@vger.kernel.org

 Documentation/arm/index.rst                   |    1 -
 Documentation/arm/samsung-s3c24xx/cpufreq.rst |   77 -
 .../arm/samsung-s3c24xx/eb2410itx.rst         |   59 -
 Documentation/arm/samsung-s3c24xx/gpio.rst    |  172 --
 Documentation/arm/samsung-s3c24xx/h1940.rst   |   41 -
 Documentation/arm/samsung-s3c24xx/index.rst   |   20 -
 Documentation/arm/samsung-s3c24xx/nand.rst    |   30 -
 .../arm/samsung-s3c24xx/overview.rst          |  311 ---
 Documentation/arm/samsung-s3c24xx/s3c2412.rst |  121 -
 Documentation/arm/samsung-s3c24xx/s3c2413.rst |   22 -
 .../arm/samsung-s3c24xx/smdk2440.rst          |   57 -
 Documentation/arm/samsung-s3c24xx/suspend.rst |  137 --
 .../arm/samsung-s3c24xx/usb-host.rst          |   91 -
 Documentation/arm/samsung/overview.rst        |   13 -
 MAINTAINERS                                   |   31 -
 arch/arm/Kconfig                              |    3 +-
 arch/arm/Kconfig.debug                        |   58 +-
 arch/arm/Makefile                             |    2 -
 arch/arm/boot/dts/Makefile                    |    2 -
 arch/arm/boot/dts/s3c2410-pinctrl.h           |   19 -
 arch/arm/boot/dts/s3c2416-pinctrl.dtsi        |  172 --
 arch/arm/boot/dts/s3c2416-smdk2416.dts        |   77 -
 arch/arm/boot/dts/s3c2416.dtsi                |  124 --
 arch/arm/boot/dts/s3c24xx.dtsi                |   92 -
 arch/arm/configs/mini2440_defconfig           |  338 ---
 arch/arm/configs/s3c2410_defconfig            |  437 ----
 arch/arm/configs/tct_hammer_defconfig         |   58 -
 arch/arm/include/debug/s3c24xx.S              |   10 -
 arch/arm/mach-s3c/Kconfig                     |   92 +-
 arch/arm/mach-s3c/Kconfig.s3c24xx             |  604 -----
 arch/arm/mach-s3c/Kconfig.s3c64xx             |  212 --
 arch/arm/mach-s3c/Makefile                    |   12 -
 arch/arm/mach-s3c/Makefile.s3c24xx            |  102 -
 arch/arm/mach-s3c/Makefile.s3c64xx            |   15 -
 arch/arm/mach-s3c/adc-core.h                  |   24 -
 arch/arm/mach-s3c/adc.c                       |  510 -----
 arch/arm/mach-s3c/anubis.h                    |   50 -
 arch/arm/mach-s3c/ata-core-s3c64xx.h          |   24 -
 arch/arm/mach-s3c/backlight-s3c64xx.h         |   22 -
 arch/arm/mach-s3c/bast-ide.c                  |   82 -
 arch/arm/mach-s3c/bast-irq.c                  |  137 --
 arch/arm/mach-s3c/bast.h                      |  194 --
 arch/arm/mach-s3c/common-smdk-s3c24xx.c       |  228 --
 arch/arm/mach-s3c/common-smdk-s3c24xx.h       |   11 -
 arch/arm/mach-s3c/cpu.h                       |   47 -
 arch/arm/mach-s3c/cpufreq-utils-s3c24xx.c     |   94 -
 arch/arm/mach-s3c/dev-audio-s3c64xx.c         |  127 --
 arch/arm/mach-s3c/dev-backlight-s3c64xx.c     |  137 --
 arch/arm/mach-s3c/devs.c                      |  726 ------
 arch/arm/mach-s3c/devs.h                      |   37 -
 arch/arm/mach-s3c/dma-s3c24xx.h               |   51 -
 arch/arm/mach-s3c/dma-s3c64xx.h               |   57 -
 arch/arm/mach-s3c/dma.h                       |    9 -
 arch/arm/mach-s3c/fb-core-s3c24xx.h           |   24 -
 arch/arm/mach-s3c/gpio-cfg-helpers.h          |  124 --
 arch/arm/mach-s3c/gpio-cfg.h                  |   19 -
 arch/arm/mach-s3c/gpio-core.h                 |    3 -
 arch/arm/mach-s3c/gpio-samsung-s3c24xx.h      |  103 -
 arch/arm/mach-s3c/gpio-samsung.c              |  443 +---
 arch/arm/mach-s3c/gpio-samsung.h              |    7 -
 arch/arm/mach-s3c/gta02.h                     |   20 -
 arch/arm/mach-s3c/h1940-bluetooth.c           |  140 --
 arch/arm/mach-s3c/h1940.h                     |   52 -
 arch/arm/mach-s3c/hardware-s3c24xx.h          |   14 -
 arch/arm/mach-s3c/iic-core.h                  |    7 -
 arch/arm/mach-s3c/init.c                      |   26 +-
 arch/arm/mach-s3c/iotiming-s3c2410.c          |  472 ----
 arch/arm/mach-s3c/iotiming-s3c2412.c          |  278 ---
 arch/arm/mach-s3c/irq-pm-s3c24xx.c            |  115 -
 arch/arm/mach-s3c/irq-s3c24xx-fiq-exports.c   |    9 -
 arch/arm/mach-s3c/irq-s3c24xx-fiq.S           |  112 -
 arch/arm/mach-s3c/irq-s3c24xx.c               | 1352 -----------
 arch/arm/mach-s3c/irqs-s3c24xx.h              |  219 --
 arch/arm/mach-s3c/irqs.h                      |    7 -
 arch/arm/mach-s3c/mach-amlm5900.c             |  248 ---
 arch/arm/mach-s3c/mach-anubis.c               |  422 ----
 arch/arm/mach-s3c/mach-anw6410.c              |  230 --
 arch/arm/mach-s3c/mach-at2440evb.c            |  233 --
 arch/arm/mach-s3c/mach-bast.c                 |  583 -----
 arch/arm/mach-s3c/mach-crag6410.c             |    1 -
 arch/arm/mach-s3c/mach-gta02.c                |  588 -----
 arch/arm/mach-s3c/mach-h1940.c                |  809 -------
 arch/arm/mach-s3c/mach-hmt.c                  |  282 ---
 arch/arm/mach-s3c/mach-jive.c                 |  693 ------
 arch/arm/mach-s3c/mach-mini2440.c             |  804 -------
 arch/arm/mach-s3c/mach-mini6410.c             |  365 ---
 arch/arm/mach-s3c/mach-n30.c                  |  682 ------
 arch/arm/mach-s3c/mach-ncp.c                  |  100 -
 arch/arm/mach-s3c/mach-nexcoder.c             |  162 --
 arch/arm/mach-s3c/mach-osiris-dvs.c           |  178 --
 arch/arm/mach-s3c/mach-osiris.c               |  405 ----
 arch/arm/mach-s3c/mach-otom.c                 |  124 --
 arch/arm/mach-s3c/mach-qt2410.c               |  375 ----
 arch/arm/mach-s3c/mach-real6410.c             |  333 ---
 arch/arm/mach-s3c/mach-rx1950.c               |  884 --------
 arch/arm/mach-s3c/mach-rx3715.c               |  213 --
 arch/arm/mach-s3c/mach-s3c2416-dt.c           |   48 -
 arch/arm/mach-s3c/mach-smartq.c               |  424 ----
 arch/arm/mach-s3c/mach-smartq.h               |   16 -
 arch/arm/mach-s3c/mach-smartq5.c              |  154 --
 arch/arm/mach-s3c/mach-smartq7.c              |  170 --
 arch/arm/mach-s3c/mach-smdk2410.c             |  112 -
 arch/arm/mach-s3c/mach-smdk2413.c             |  169 --
 arch/arm/mach-s3c/mach-smdk2416.c             |  248 ---
 arch/arm/mach-s3c/mach-smdk2440.c             |  180 --
 arch/arm/mach-s3c/mach-smdk2443.c             |  126 --
 arch/arm/mach-s3c/mach-smdk6400.c             |   90 -
 arch/arm/mach-s3c/mach-smdk6410.c             |  706 ------
 arch/arm/mach-s3c/mach-tct_hammer.c           |  157 --
 arch/arm/mach-s3c/mach-vr1000.c               |  364 ---
 arch/arm/mach-s3c/mach-vstms.c                |  166 --
 arch/arm/mach-s3c/map-s3c.h                   |   37 -
 arch/arm/mach-s3c/map-s3c24xx.h               |  159 --
 arch/arm/mach-s3c/map.h                       |    7 -
 arch/arm/mach-s3c/nand-core-s3c24xx.h         |   24 -
 arch/arm/mach-s3c/onenand-core-s3c64xx.h      |   32 -
 arch/arm/mach-s3c/osiris.h                    |   50 -
 arch/arm/mach-s3c/otom.h                      |   25 -
 arch/arm/mach-s3c/pll-s3c2410.c               |   83 -
 arch/arm/mach-s3c/pll-s3c2440-12000000.c      |   95 -
 arch/arm/mach-s3c/pll-s3c2440-16934400.c      |  122 -
 arch/arm/mach-s3c/pm-core-s3c24xx.h           |   96 -
 arch/arm/mach-s3c/pm-core-s3c64xx.h           |   17 -
 arch/arm/mach-s3c/pm-core.h                   |    7 -
 arch/arm/mach-s3c/pm-h1940.S                  |   19 -
 arch/arm/mach-s3c/pm-s3c2410.c                |  170 --
 arch/arm/mach-s3c/pm-s3c2412.c                |  126 --
 arch/arm/mach-s3c/pm-s3c2416.c                |   81 -
 arch/arm/mach-s3c/pm-s3c24xx.c                |  121 -
 arch/arm/mach-s3c/pm-s3c64xx.c                |   83 -
 arch/arm/mach-s3c/pm.c                        |    7 +-
 arch/arm/mach-s3c/pm.h                        |   12 -
 arch/arm/mach-s3c/regs-adc.h                  |   64 -
 arch/arm/mach-s3c/regs-clock-s3c24xx.h        |  146 --
 arch/arm/mach-s3c/regs-clock.h                |    7 -
 arch/arm/mach-s3c/regs-dsc-s3c24xx.h          |   22 -
 arch/arm/mach-s3c/regs-gpio-s3c24xx.h         |  608 -----
 arch/arm/mach-s3c/regs-gpio.h                 |    7 -
 arch/arm/mach-s3c/regs-irq-s3c24xx.h          |   51 -
 arch/arm/mach-s3c/regs-irq.h                  |    7 -
 arch/arm/mach-s3c/regs-mem-s3c24xx.h          |   53 -
 arch/arm/mach-s3c/regs-s3c2443-clock.h        |  238 --
 arch/arm/mach-s3c/regs-srom-s3c64xx.h         |   55 -
 arch/arm/mach-s3c/rtc-core-s3c24xx.h          |   23 -
 arch/arm/mach-s3c/s3c2410.c                   |  130 --
 arch/arm/mach-s3c/s3c2412-power.h             |   34 -
 arch/arm/mach-s3c/s3c2412.c                   |  175 --
 arch/arm/mach-s3c/s3c2412.h                   |   25 -
 arch/arm/mach-s3c/s3c2416.c                   |  132 --
 arch/arm/mach-s3c/s3c2440.c                   |   71 -
 arch/arm/mach-s3c/s3c2442.c                   |   62 -
 arch/arm/mach-s3c/s3c2443.c                   |  112 -
 arch/arm/mach-s3c/s3c244x.c                   |  128 --
 arch/arm/mach-s3c/s3c24xx.c                   |  687 ------
 arch/arm/mach-s3c/s3c24xx.h                   |  124 --
 arch/arm/mach-s3c/s3c6400.c                   |   90 -
 arch/arm/mach-s3c/s3c6410.c                   |    9 -
 arch/arm/mach-s3c/s3c64xx.c                   |    8 -
 arch/arm/mach-s3c/sdhci.h                     |   25 -
 arch/arm/mach-s3c/setup-i2c-s3c24xx.c         |   23 -
 arch/arm/mach-s3c/setup-ide-s3c64xx.c         |   40 -
 arch/arm/mach-s3c/setup-sdhci-gpio-s3c24xx.c  |   31 -
 arch/arm/mach-s3c/setup-spi-s3c24xx.c         |   27 -
 arch/arm/mach-s3c/setup-ts-s3c24xx.c          |   29 -
 arch/arm/mach-s3c/simtec-audio.c              |   76 -
 arch/arm/mach-s3c/simtec-nor.c                |   74 -
 arch/arm/mach-s3c/simtec-pm.c                 |   60 -
 arch/arm/mach-s3c/simtec-usb.c                |  125 --
 arch/arm/mach-s3c/simtec.h                    |   17 -
 arch/arm/mach-s3c/sleep-s3c2410.S             |   54 -
 arch/arm/mach-s3c/sleep-s3c2412.S             |   53 -
 arch/arm/mach-s3c/sleep-s3c24xx.S             |   69 -
 arch/arm/mach-s3c/sleep-s3c64xx.S             |   27 -
 arch/arm/mach-s3c/spi-core-s3c24xx.h          |   21 -
 arch/arm/mach-s3c/vr1000.h                    |  113 -
 drivers/ata/Kconfig                           |   10 -
 drivers/ata/Makefile                          |    1 -
 drivers/ata/pata_samsung_cf.c                 |  662 ------
 drivers/clk/samsung/Kconfig                   |   32 -
 drivers/clk/samsung/Makefile                  |    4 -
 drivers/clk/samsung/clk-s3c2410-dclk.c        |  440 ----
 drivers/clk/samsung/clk-s3c2410.c             |  446 ----
 drivers/clk/samsung/clk-s3c2412.c             |  254 ---
 drivers/clk/samsung/clk-s3c2443.c             |  438 ----
 drivers/clocksource/Kconfig                   |    2 +-
 drivers/cpufreq/Kconfig.arm                   |   78 -
 drivers/cpufreq/Makefile                      |    6 -
 drivers/cpufreq/s3c2410-cpufreq.c             |  155 --
 drivers/cpufreq/s3c2412-cpufreq.c             |  240 --
 drivers/cpufreq/s3c2416-cpufreq.c             |  492 ----
 drivers/cpufreq/s3c2440-cpufreq.c             |  321 ---
 drivers/cpufreq/s3c24xx-cpufreq-debugfs.c     |  163 --
 drivers/cpufreq/s3c24xx-cpufreq.c             |  648 ------
 drivers/dma/Kconfig                           |   12 -
 drivers/dma/Makefile                          |    1 -
 drivers/dma/s3c24xx-dma.c                     | 1428 ------------
 drivers/hwmon/Kconfig                         |   17 -
 drivers/hwmon/Makefile                        |    1 -
 drivers/hwmon/s3c-hwmon.c                     |  379 ----
 drivers/i2c/busses/Kconfig                    |    3 +-
 drivers/i2c/busses/i2c-s3c2410.c              |   72 -
 drivers/iio/adc/Kconfig                       |    6 +-
 drivers/input/touchscreen/Kconfig             |   12 -
 drivers/input/touchscreen/Makefile            |    1 -
 drivers/input/touchscreen/s3c2410_ts.c        |  464 ----
 drivers/leds/Kconfig                          |    8 -
 drivers/leds/Makefile                         |    1 -
 drivers/leds/leds-s3c24xx.c                   |   83 -
 .../media/platform/samsung/s3c-camif/Kconfig  |    8 +-
 drivers/mmc/host/Kconfig                      |   48 +-
 drivers/mmc/host/Makefile                     |    1 -
 drivers/mmc/host/s3cmci.c                     | 1777 ---------------
 drivers/mmc/host/s3cmci.h                     |   75 -
 drivers/mtd/nand/raw/Kconfig                  |    2 +-
 drivers/mtd/nand/raw/s3c2410.c                |   60 -
 drivers/pinctrl/samsung/Kconfig               |    5 -
 drivers/pinctrl/samsung/Makefile              |    1 -
 drivers/pinctrl/samsung/pinctrl-s3c24xx.c     |  653 ------
 drivers/pinctrl/samsung/pinctrl-samsung.c     |   10 -
 drivers/power/supply/Kconfig                  |    6 -
 drivers/power/supply/Makefile                 |    1 -
 drivers/power/supply/s3c_adc_battery.c        |  453 ----
 drivers/rtc/Kconfig                           |    8 +-
 drivers/soc/samsung/Kconfig                   |   26 +-
 drivers/soc/samsung/Makefile                  |    1 -
 drivers/soc/samsung/s3c-pm-debug.c            |   79 -
 drivers/spi/Kconfig                           |   18 -
 drivers/spi/Makefile                          |    2 -
 drivers/spi/spi-s3c24xx-regs.h                |   41 -
 drivers/spi/spi-s3c24xx.c                     |  596 -----
 drivers/tty/serial/Kconfig                    |    8 +-
 drivers/tty/serial/samsung_tty.c              |  199 --
 drivers/usb/gadget/udc/Kconfig                |   25 -
 drivers/usb/gadget/udc/Makefile               |    2 -
 drivers/usb/gadget/udc/s3c-hsudc.c            | 1319 -----------
 drivers/usb/gadget/udc/s3c2410_udc.c          | 1980 -----------------
 drivers/usb/gadget/udc/s3c2410_udc.h          |   99 -
 drivers/usb/gadget/udc/s3c2410_udc_regs.h     |  146 --
 drivers/usb/host/Kconfig                      |    8 +-
 drivers/video/fbdev/Kconfig                   |   33 +-
 drivers/video/fbdev/Makefile                  |    1 -
 drivers/video/fbdev/s3c2410fb-regs-lcd.h      |  143 --
 drivers/video/fbdev/s3c2410fb.c               | 1142 ----------
 drivers/video/fbdev/s3c2410fb.h               |   48 -
 drivers/watchdog/Kconfig                      |    9 +-
 drivers/watchdog/s3c2410_wdt.c                |   84 +-
 include/dt-bindings/clock/s3c2410.h           |   59 -
 include/dt-bindings/clock/s3c2412.h           |   70 -
 include/dt-bindings/clock/s3c2443.h           |   91 -
 include/linux/amba/pl093.h                    |   77 -
 include/linux/clk/samsung.h                   |   32 -
 .../linux/platform_data/asoc-s3c24xx_simtec.h |   30 -
 include/linux/platform_data/ata-samsung_cf.h  |   31 -
 include/linux/platform_data/clk-s3c2410.h     |   19 -
 include/linux/platform_data/dma-s3c24xx.h     |   48 -
 include/linux/platform_data/fb-s3c2410.h      |   99 -
 include/linux/platform_data/leds-s3c24xx.h    |   18 -
 include/linux/platform_data/media/s5p_hdmi.h  |   32 -
 include/linux/platform_data/mmc-s3cmci.h      |   51 -
 include/linux/platform_data/s3c-hsudc.h       |   33 -
 include/linux/platform_data/usb-s3c2410_udc.h |   33 -
 include/linux/s3c_adc_battery.h               |   39 -
 include/linux/soc/samsung/s3c-adc.h           |   32 -
 include/linux/soc/samsung/s3c-cpufreq-core.h  |  299 ---
 include/linux/soc/samsung/s3c-pm.h            |   58 -
 include/linux/spi/s3c24xx-fiq.h               |   33 -
 include/linux/spi/s3c24xx.h                   |   20 -
 include/sound/s3c24xx_uda134x.h               |   14 -
 sound/soc/samsung/Kconfig                     |   93 -
 sound/soc/samsung/Makefile                    |   26 -
 sound/soc/samsung/h1940_uda1380.c             |  224 --
 sound/soc/samsung/jive_wm8750.c               |  143 --
 sound/soc/samsung/neo1973_wm8753.c            |  360 ---
 sound/soc/samsung/regs-i2s-v2.h               |  111 -
 sound/soc/samsung/regs-iis.h                  |   66 -
 sound/soc/samsung/rx1950_uda1380.c            |  245 --
 sound/soc/samsung/s3c-i2s-v2.c                |  670 ------
 sound/soc/samsung/s3c-i2s-v2.h                |  108 -
 sound/soc/samsung/s3c2412-i2s.c               |  251 ---
 sound/soc/samsung/s3c2412-i2s.h               |   22 -
 sound/soc/samsung/s3c24xx-i2s.c               |  463 ----
 sound/soc/samsung/s3c24xx-i2s.h               |   31 -
 sound/soc/samsung/s3c24xx_simtec.c            |  372 ----
 sound/soc/samsung/s3c24xx_simtec.h            |   18 -
 sound/soc/samsung/s3c24xx_simtec_hermes.c     |  112 -
 .../soc/samsung/s3c24xx_simtec_tlv320aic23.c  |  100 -
 sound/soc/samsung/s3c24xx_uda134x.c           |  257 ---
 sound/soc/samsung/smartq_wm8987.c             |  224 --
 sound/soc/samsung/smdk_wm8580.c               |  211 --
 289 files changed, 48 insertions(+), 48148 deletions(-)
 delete mode 100644 Documentation/arm/samsung-s3c24xx/cpufreq.rst
 delete mode 100644 Documentation/arm/samsung-s3c24xx/eb2410itx.rst
 delete mode 100644 Documentation/arm/samsung-s3c24xx/gpio.rst
 delete mode 100644 Documentation/arm/samsung-s3c24xx/h1940.rst
 delete mode 100644 Documentation/arm/samsung-s3c24xx/index.rst
 delete mode 100644 Documentation/arm/samsung-s3c24xx/nand.rst
 delete mode 100644 Documentation/arm/samsung-s3c24xx/overview.rst
 delete mode 100644 Documentation/arm/samsung-s3c24xx/s3c2412.rst
 delete mode 100644 Documentation/arm/samsung-s3c24xx/s3c2413.rst
 delete mode 100644 Documentation/arm/samsung-s3c24xx/smdk2440.rst
 delete mode 100644 Documentation/arm/samsung-s3c24xx/suspend.rst
 delete mode 100644 Documentation/arm/samsung-s3c24xx/usb-host.rst
 delete mode 100644 arch/arm/boot/dts/s3c2410-pinctrl.h
 delete mode 100644 arch/arm/boot/dts/s3c2416-pinctrl.dtsi
 delete mode 100644 arch/arm/boot/dts/s3c2416-smdk2416.dts
 delete mode 100644 arch/arm/boot/dts/s3c2416.dtsi
 delete mode 100644 arch/arm/boot/dts/s3c24xx.dtsi
 delete mode 100644 arch/arm/configs/mini2440_defconfig
 delete mode 100644 arch/arm/configs/s3c2410_defconfig
 delete mode 100644 arch/arm/configs/tct_hammer_defconfig
 delete mode 100644 arch/arm/mach-s3c/Kconfig.s3c24xx
 delete mode 100644 arch/arm/mach-s3c/Makefile.s3c24xx
 delete mode 100644 arch/arm/mach-s3c/adc-core.h
 delete mode 100644 arch/arm/mach-s3c/adc.c
 delete mode 100644 arch/arm/mach-s3c/anubis.h
 delete mode 100644 arch/arm/mach-s3c/ata-core-s3c64xx.h
 delete mode 100644 arch/arm/mach-s3c/backlight-s3c64xx.h
 delete mode 100644 arch/arm/mach-s3c/bast-ide.c
 delete mode 100644 arch/arm/mach-s3c/bast-irq.c
 delete mode 100644 arch/arm/mach-s3c/bast.h
 delete mode 100644 arch/arm/mach-s3c/common-smdk-s3c24xx.c
 delete mode 100644 arch/arm/mach-s3c/common-smdk-s3c24xx.h
 delete mode 100644 arch/arm/mach-s3c/cpufreq-utils-s3c24xx.c
 delete mode 100644 arch/arm/mach-s3c/dev-backlight-s3c64xx.c
 delete mode 100644 arch/arm/mach-s3c/dma-s3c24xx.h
 delete mode 100644 arch/arm/mach-s3c/dma-s3c64xx.h
 delete mode 100644 arch/arm/mach-s3c/dma.h
 delete mode 100644 arch/arm/mach-s3c/fb-core-s3c24xx.h
 delete mode 100644 arch/arm/mach-s3c/gpio-samsung-s3c24xx.h
 delete mode 100644 arch/arm/mach-s3c/gta02.h
 delete mode 100644 arch/arm/mach-s3c/h1940-bluetooth.c
 delete mode 100644 arch/arm/mach-s3c/h1940.h
 delete mode 100644 arch/arm/mach-s3c/hardware-s3c24xx.h
 delete mode 100644 arch/arm/mach-s3c/iotiming-s3c2410.c
 delete mode 100644 arch/arm/mach-s3c/iotiming-s3c2412.c
 delete mode 100644 arch/arm/mach-s3c/irq-pm-s3c24xx.c
 delete mode 100644 arch/arm/mach-s3c/irq-s3c24xx-fiq-exports.c
 delete mode 100644 arch/arm/mach-s3c/irq-s3c24xx-fiq.S
 delete mode 100644 arch/arm/mach-s3c/irq-s3c24xx.c
 delete mode 100644 arch/arm/mach-s3c/irqs-s3c24xx.h
 delete mode 100644 arch/arm/mach-s3c/mach-amlm5900.c
 delete mode 100644 arch/arm/mach-s3c/mach-anubis.c
 delete mode 100644 arch/arm/mach-s3c/mach-anw6410.c
 delete mode 100644 arch/arm/mach-s3c/mach-at2440evb.c
 delete mode 100644 arch/arm/mach-s3c/mach-bast.c
 delete mode 100644 arch/arm/mach-s3c/mach-gta02.c
 delete mode 100644 arch/arm/mach-s3c/mach-h1940.c
 delete mode 100644 arch/arm/mach-s3c/mach-hmt.c
 delete mode 100644 arch/arm/mach-s3c/mach-jive.c
 delete mode 100644 arch/arm/mach-s3c/mach-mini2440.c
 delete mode 100644 arch/arm/mach-s3c/mach-mini6410.c
 delete mode 100644 arch/arm/mach-s3c/mach-n30.c
 delete mode 100644 arch/arm/mach-s3c/mach-ncp.c
 delete mode 100644 arch/arm/mach-s3c/mach-nexcoder.c
 delete mode 100644 arch/arm/mach-s3c/mach-osiris-dvs.c
 delete mode 100644 arch/arm/mach-s3c/mach-osiris.c
 delete mode 100644 arch/arm/mach-s3c/mach-otom.c
 delete mode 100644 arch/arm/mach-s3c/mach-qt2410.c
 delete mode 100644 arch/arm/mach-s3c/mach-real6410.c
 delete mode 100644 arch/arm/mach-s3c/mach-rx1950.c
 delete mode 100644 arch/arm/mach-s3c/mach-rx3715.c
 delete mode 100644 arch/arm/mach-s3c/mach-s3c2416-dt.c
 delete mode 100644 arch/arm/mach-s3c/mach-smartq.c
 delete mode 100644 arch/arm/mach-s3c/mach-smartq.h
 delete mode 100644 arch/arm/mach-s3c/mach-smartq5.c
 delete mode 100644 arch/arm/mach-s3c/mach-smartq7.c
 delete mode 100644 arch/arm/mach-s3c/mach-smdk2410.c
 delete mode 100644 arch/arm/mach-s3c/mach-smdk2413.c
 delete mode 100644 arch/arm/mach-s3c/mach-smdk2416.c
 delete mode 100644 arch/arm/mach-s3c/mach-smdk2440.c
 delete mode 100644 arch/arm/mach-s3c/mach-smdk2443.c
 delete mode 100644 arch/arm/mach-s3c/mach-smdk6400.c
 delete mode 100644 arch/arm/mach-s3c/mach-smdk6410.c
 delete mode 100644 arch/arm/mach-s3c/mach-tct_hammer.c
 delete mode 100644 arch/arm/mach-s3c/mach-vr1000.c
 delete mode 100644 arch/arm/mach-s3c/mach-vstms.c
 delete mode 100644 arch/arm/mach-s3c/map-s3c24xx.h
 delete mode 100644 arch/arm/mach-s3c/nand-core-s3c24xx.h
 delete mode 100644 arch/arm/mach-s3c/onenand-core-s3c64xx.h
 delete mode 100644 arch/arm/mach-s3c/osiris.h
 delete mode 100644 arch/arm/mach-s3c/otom.h
 delete mode 100644 arch/arm/mach-s3c/pll-s3c2410.c
 delete mode 100644 arch/arm/mach-s3c/pll-s3c2440-12000000.c
 delete mode 100644 arch/arm/mach-s3c/pll-s3c2440-16934400.c
 delete mode 100644 arch/arm/mach-s3c/pm-core-s3c24xx.h
 delete mode 100644 arch/arm/mach-s3c/pm-h1940.S
 delete mode 100644 arch/arm/mach-s3c/pm-s3c2410.c
 delete mode 100644 arch/arm/mach-s3c/pm-s3c2412.c
 delete mode 100644 arch/arm/mach-s3c/pm-s3c2416.c
 delete mode 100644 arch/arm/mach-s3c/pm-s3c24xx.c
 delete mode 100644 arch/arm/mach-s3c/regs-adc.h
 delete mode 100644 arch/arm/mach-s3c/regs-clock-s3c24xx.h
 delete mode 100644 arch/arm/mach-s3c/regs-dsc-s3c24xx.h
 delete mode 100644 arch/arm/mach-s3c/regs-gpio-s3c24xx.h
 delete mode 100644 arch/arm/mach-s3c/regs-irq-s3c24xx.h
 delete mode 100644 arch/arm/mach-s3c/regs-mem-s3c24xx.h
 delete mode 100644 arch/arm/mach-s3c/regs-s3c2443-clock.h
 delete mode 100644 arch/arm/mach-s3c/regs-srom-s3c64xx.h
 delete mode 100644 arch/arm/mach-s3c/rtc-core-s3c24xx.h
 delete mode 100644 arch/arm/mach-s3c/s3c2410.c
 delete mode 100644 arch/arm/mach-s3c/s3c2412-power.h
 delete mode 100644 arch/arm/mach-s3c/s3c2412.c
 delete mode 100644 arch/arm/mach-s3c/s3c2412.h
 delete mode 100644 arch/arm/mach-s3c/s3c2416.c
 delete mode 100644 arch/arm/mach-s3c/s3c2440.c
 delete mode 100644 arch/arm/mach-s3c/s3c2442.c
 delete mode 100644 arch/arm/mach-s3c/s3c2443.c
 delete mode 100644 arch/arm/mach-s3c/s3c244x.c
 delete mode 100644 arch/arm/mach-s3c/s3c24xx.c
 delete mode 100644 arch/arm/mach-s3c/s3c24xx.h
 delete mode 100644 arch/arm/mach-s3c/s3c6400.c
 delete mode 100644 arch/arm/mach-s3c/setup-i2c-s3c24xx.c
 delete mode 100644 arch/arm/mach-s3c/setup-ide-s3c64xx.c
 delete mode 100644 arch/arm/mach-s3c/setup-sdhci-gpio-s3c24xx.c
 delete mode 100644 arch/arm/mach-s3c/setup-spi-s3c24xx.c
 delete mode 100644 arch/arm/mach-s3c/setup-ts-s3c24xx.c
 delete mode 100644 arch/arm/mach-s3c/simtec-audio.c
 delete mode 100644 arch/arm/mach-s3c/simtec-nor.c
 delete mode 100644 arch/arm/mach-s3c/simtec-pm.c
 delete mode 100644 arch/arm/mach-s3c/simtec-usb.c
 delete mode 100644 arch/arm/mach-s3c/simtec.h
 delete mode 100644 arch/arm/mach-s3c/sleep-s3c2410.S
 delete mode 100644 arch/arm/mach-s3c/sleep-s3c2412.S
 delete mode 100644 arch/arm/mach-s3c/sleep-s3c24xx.S
 delete mode 100644 arch/arm/mach-s3c/spi-core-s3c24xx.h
 delete mode 100644 arch/arm/mach-s3c/vr1000.h
 delete mode 100644 drivers/ata/pata_samsung_cf.c
 delete mode 100644 drivers/clk/samsung/clk-s3c2410-dclk.c
 delete mode 100644 drivers/clk/samsung/clk-s3c2410.c
 delete mode 100644 drivers/clk/samsung/clk-s3c2412.c
 delete mode 100644 drivers/clk/samsung/clk-s3c2443.c
 delete mode 100644 drivers/cpufreq/s3c2410-cpufreq.c
 delete mode 100644 drivers/cpufreq/s3c2412-cpufreq.c
 delete mode 100644 drivers/cpufreq/s3c2416-cpufreq.c
 delete mode 100644 drivers/cpufreq/s3c2440-cpufreq.c
 delete mode 100644 drivers/cpufreq/s3c24xx-cpufreq-debugfs.c
 delete mode 100644 drivers/cpufreq/s3c24xx-cpufreq.c
 delete mode 100644 drivers/dma/s3c24xx-dma.c
 delete mode 100644 drivers/hwmon/s3c-hwmon.c
 delete mode 100644 drivers/input/touchscreen/s3c2410_ts.c
 delete mode 100644 drivers/leds/leds-s3c24xx.c
 delete mode 100644 drivers/mmc/host/s3cmci.c
 delete mode 100644 drivers/mmc/host/s3cmci.h
 delete mode 100644 drivers/pinctrl/samsung/pinctrl-s3c24xx.c
 delete mode 100644 drivers/power/supply/s3c_adc_battery.c
 delete mode 100644 drivers/soc/samsung/s3c-pm-debug.c
 delete mode 100644 drivers/spi/spi-s3c24xx-regs.h
 delete mode 100644 drivers/spi/spi-s3c24xx.c
 delete mode 100644 drivers/usb/gadget/udc/s3c-hsudc.c
 delete mode 100644 drivers/usb/gadget/udc/s3c2410_udc.c
 delete mode 100644 drivers/usb/gadget/udc/s3c2410_udc.h
 delete mode 100644 drivers/usb/gadget/udc/s3c2410_udc_regs.h
 delete mode 100644 drivers/video/fbdev/s3c2410fb-regs-lcd.h
 delete mode 100644 drivers/video/fbdev/s3c2410fb.c
 delete mode 100644 drivers/video/fbdev/s3c2410fb.h
 delete mode 100644 include/dt-bindings/clock/s3c2410.h
 delete mode 100644 include/dt-bindings/clock/s3c2412.h
 delete mode 100644 include/dt-bindings/clock/s3c2443.h
 delete mode 100644 include/linux/amba/pl093.h
 delete mode 100644 include/linux/platform_data/asoc-s3c24xx_simtec.h
 delete mode 100644 include/linux/platform_data/ata-samsung_cf.h
 delete mode 100644 include/linux/platform_data/clk-s3c2410.h
 delete mode 100644 include/linux/platform_data/dma-s3c24xx.h
 delete mode 100644 include/linux/platform_data/fb-s3c2410.h
 delete mode 100644 include/linux/platform_data/leds-s3c24xx.h
 delete mode 100644 include/linux/platform_data/media/s5p_hdmi.h
 delete mode 100644 include/linux/platform_data/mmc-s3cmci.h
 delete mode 100644 include/linux/platform_data/s3c-hsudc.h
 delete mode 100644 include/linux/platform_data/usb-s3c2410_udc.h
 delete mode 100644 include/linux/s3c_adc_battery.h
 delete mode 100644 include/linux/soc/samsung/s3c-adc.h
 delete mode 100644 include/linux/soc/samsung/s3c-cpufreq-core.h
 delete mode 100644 include/linux/spi/s3c24xx-fiq.h
 delete mode 100644 include/linux/spi/s3c24xx.h
 delete mode 100644 include/sound/s3c24xx_uda134x.h
 delete mode 100644 sound/soc/samsung/h1940_uda1380.c
 delete mode 100644 sound/soc/samsung/jive_wm8750.c
 delete mode 100644 sound/soc/samsung/neo1973_wm8753.c
 delete mode 100644 sound/soc/samsung/regs-i2s-v2.h
 delete mode 100644 sound/soc/samsung/regs-iis.h
 delete mode 100644 sound/soc/samsung/rx1950_uda1380.c
 delete mode 100644 sound/soc/samsung/s3c-i2s-v2.c
 delete mode 100644 sound/soc/samsung/s3c-i2s-v2.h
 delete mode 100644 sound/soc/samsung/s3c2412-i2s.c
 delete mode 100644 sound/soc/samsung/s3c2412-i2s.h
 delete mode 100644 sound/soc/samsung/s3c24xx-i2s.c
 delete mode 100644 sound/soc/samsung/s3c24xx-i2s.h
 delete mode 100644 sound/soc/samsung/s3c24xx_simtec.c
 delete mode 100644 sound/soc/samsung/s3c24xx_simtec.h
 delete mode 100644 sound/soc/samsung/s3c24xx_simtec_hermes.c
 delete mode 100644 sound/soc/samsung/s3c24xx_simtec_tlv320aic23.c
 delete mode 100644 sound/soc/samsung/s3c24xx_uda134x.c
 delete mode 100644 sound/soc/samsung/smartq_wm8987.c
 delete mode 100644 sound/soc/samsung/smdk_wm8580.c

Comments

Wolfram Sang Oct. 21, 2022, 10:33 p.m. UTC | #1
On Fri, Oct 21, 2022 at 10:27:35PM +0200, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> A number of device drivers reference CONFIG_ARM_S3C24XX_CPUFREQ or
> similar symbols that are no longer available with the platform gone,
> though the drivers themselves are still used on newer platforms,
> so remove these hacks.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Acked-by: Wolfram Sang <wsa@kernel.org> # for I2C
Greg Kroah-Hartman Oct. 22, 2022, 11:24 a.m. UTC | #2
On Fri, Oct 21, 2022 at 10:27:35PM +0200, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> A number of device drivers reference CONFIG_ARM_S3C24XX_CPUFREQ or
> similar symbols that are no longer available with the platform gone,
> though the drivers themselves are still used on newer platforms,
> so remove these hacks.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Linus Walleij Oct. 22, 2022, 2:02 p.m. UTC | #3
On Fri, Oct 21, 2022 at 10:37 PM Arnd Bergmann <arnd@kernel.org> wrote:

> From: Arnd Bergmann <arnd@arndb.de>
>
> A number of device drivers reference CONFIG_ARM_S3C24XX_CPUFREQ or
> similar symbols that are no longer available with the platform gone,
> though the drivers themselves are still used on newer platforms,
> so remove these hacks.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Acked-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij
Krzysztof Kozlowski Oct. 22, 2022, 3:18 p.m. UTC | #4
On 21/10/2022 16:22, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> The s3c24xx platform was marked as deprecated a while ago,
> and for the s3c64xx platform, we marked all except one legacy
> board file as unused.
> 
> This series removes all of those, leaving only s3c64xx support
> for DT based boots as well as the cragg6410 board file.
> 
> About half of the s3c specific drivers were only used on
> the now removed machines, so these drivers can be retired
> as well. I can either merge the driver removal patches through
> the soc tree along with the board file patches, or subsystem
> maintainers can pick them up into their own trees, whichever
> they prefer.

Just to be sure - do you expect me to ack the series, or rather as usual
pick them up?


Best regards,
Krzysztof
Arnd Bergmann Oct. 22, 2022, 7:48 p.m. UTC | #5
On Sat, Oct 22, 2022, at 17:18, Krzysztof Kozlowski wrote:
> On 21/10/2022 16:22, Arnd Bergmann wrote:
>> From: Arnd Bergmann <arnd@arndb.de>
>> 
>> The s3c24xx platform was marked as deprecated a while ago,
>> and for the s3c64xx platform, we marked all except one legacy
>> board file as unused.
>> 
>> This series removes all of those, leaving only s3c64xx support
>> for DT based boots as well as the cragg6410 board file.
>> 
>> About half of the s3c specific drivers were only used on
>> the now removed machines, so these drivers can be retired
>> as well. I can either merge the driver removal patches through
>> the soc tree along with the board file patches, or subsystem
>> maintainers can pick them up into their own trees, whichever
>> they prefer.
>
> Just to be sure - do you expect me to ack the series, or rather as usual
> pick them up?

I think in this case it is easier if I pick them up with your
Ack along with the other platforms I posted, as there are
some minor conflicts between Makefile/Kconfig changes where
I remove adjacent lines.

       Arnd
Jonathan Cameron Oct. 23, 2022, 11 a.m. UTC | #6
On Fri, 21 Oct 2022 22:27:35 +0200
Arnd Bergmann <arnd@kernel.org> wrote:

> From: Arnd Bergmann <arnd@arndb.de>
> 
> A number of device drivers reference CONFIG_ARM_S3C24XX_CPUFREQ or
> similar symbols that are no longer available with the platform gone,
> though the drivers themselves are still used on newer platforms,
> so remove these hacks.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
For the IIO Kconfig change

Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

> ---
>  arch/arm/include/debug/s3c24xx.S              |  10 -
>  arch/arm/mach-s3c/Makefile                    |   2 -
>  arch/arm/mach-s3c/devs.c                      |   1 -
>  arch/arm/mach-s3c/dma.h                       |   7 -
>  arch/arm/mach-s3c/gpio-samsung.h              |   7 -
>  arch/arm/mach-s3c/irqs.h                      |   7 -
>  arch/arm/mach-s3c/map.h                       |   7 -
>  arch/arm/mach-s3c/pm-core.h                   |   7 -
>  arch/arm/mach-s3c/regs-clock.h                |   7 -
>  arch/arm/mach-s3c/regs-gpio.h                 |   7 -
>  arch/arm/mach-s3c/regs-irq.h                  |   7 -
>  drivers/clocksource/Kconfig                   |   2 +-
>  drivers/i2c/busses/Kconfig                    |   3 +-
>  drivers/i2c/busses/i2c-s3c2410.c              |  72 -------
>  drivers/iio/adc/Kconfig                       |   6 +-
>  .../media/platform/samsung/s3c-camif/Kconfig  |   8 +-
>  drivers/mmc/host/Kconfig                      |   5 +-
>  drivers/mtd/nand/raw/Kconfig                  |   2 +-
>  drivers/mtd/nand/raw/s3c2410.c                |  60 ------
>  drivers/pinctrl/samsung/pinctrl-samsung.c     |  10 -
>  drivers/rtc/Kconfig                           |   8 +-
>  drivers/tty/serial/Kconfig                    |   8 +-
>  drivers/tty/serial/samsung_tty.c              | 199 ------------------
>  drivers/usb/host/Kconfig                      |   8 +-
>  drivers/watchdog/Kconfig                      |   9 +-
>  drivers/watchdog/s3c2410_wdt.c                |  84 +-------
>  include/linux/clk/samsung.h                   |  32 ---
>  include/linux/soc/samsung/s3c-pm.h            |  58 -----
>  28 files changed, 29 insertions(+), 614 deletions(-)
> 
> diff --git a/arch/arm/include/debug/s3c24xx.S b/arch/arm/include/debug/s3c24xx.S
> index af873b526677..7ab5e577cd42 100644
> --- a/arch/arm/include/debug/s3c24xx.S
> +++ b/arch/arm/include/debug/s3c24xx.S
> @@ -28,16 +28,6 @@
>  		and	\rd, \rd, #S3C2410_UFSTAT_TXMASK
>  	.endm
>  
> -/* Select the correct implementation depending on the configuration. The
> - * S3C2440 will get selected by default, as these are the most widely
> - * used variants of these
> -*/
> -
> -#if defined(CONFIG_DEBUG_S3C2410_UART)
> -#define fifo_full  fifo_full_s3c2410
> -#define fifo_level fifo_level_s3c2410
> -#endif
> -
>  /* include the reset of the code which will do the work */
>  
>  #include <debug/samsung.S>
> diff --git a/arch/arm/mach-s3c/Makefile b/arch/arm/mach-s3c/Makefile
> index e7f18039b149..a5135137e648 100644
> --- a/arch/arm/mach-s3c/Makefile
> +++ b/arch/arm/mach-s3c/Makefile
> @@ -2,9 +2,7 @@
>  #
>  # Copyright 2009 Simtec Electronics
>  
> -ifdef CONFIG_ARCH_S3C64XX
>  include $(src)/Makefile.s3c64xx
> -endif
>  
>  # Objects we always build independent of SoC choice
>  
> diff --git a/arch/arm/mach-s3c/devs.c b/arch/arm/mach-s3c/devs.c
> index 9ac07c023adf..a31d1c3038e8 100644
> --- a/arch/arm/mach-s3c/devs.c
> +++ b/arch/arm/mach-s3c/devs.c
> @@ -29,7 +29,6 @@
>  #include <linux/sizes.h>
>  #include <linux/platform_data/s3c-hsudc.h>
>  #include <linux/platform_data/s3c-hsotg.h>
> -#include <linux/platform_data/dma-s3c24xx.h>
>  
>  #include <linux/platform_data/media/s5p_hdmi.h>
>  
> diff --git a/arch/arm/mach-s3c/dma.h b/arch/arm/mach-s3c/dma.h
> index 59a4578c5f00..48057cb90070 100644
> --- a/arch/arm/mach-s3c/dma.h
> +++ b/arch/arm/mach-s3c/dma.h
> @@ -1,9 +1,2 @@
>  /* SPDX-License-Identifier: GPL-2.0 */
> -
> -#ifdef CONFIG_ARCH_S3C24XX
> -#include "dma-s3c24xx.h"
> -#endif
> -
> -#ifdef CONFIG_ARCH_S3C64XX
>  #include "dma-s3c64xx.h"
> -#endif
> diff --git a/arch/arm/mach-s3c/gpio-samsung.h b/arch/arm/mach-s3c/gpio-samsung.h
> index 02f6f4a96862..4233515eddaa 100644
> --- a/arch/arm/mach-s3c/gpio-samsung.h
> +++ b/arch/arm/mach-s3c/gpio-samsung.h
> @@ -1,9 +1,2 @@
>  /* SPDX-License-Identifier: GPL-2.0 */
> -
> -#ifdef CONFIG_ARCH_S3C24XX
> -#include "gpio-samsung-s3c24xx.h"
> -#endif
> -
> -#ifdef CONFIG_ARCH_S3C64XX
>  #include "gpio-samsung-s3c64xx.h"
> -#endif
> diff --git a/arch/arm/mach-s3c/irqs.h b/arch/arm/mach-s3c/irqs.h
> index 0bff1c1c8eb0..3ff0e0963080 100644
> --- a/arch/arm/mach-s3c/irqs.h
> +++ b/arch/arm/mach-s3c/irqs.h
> @@ -1,9 +1,2 @@
>  /* SPDX-License-Identifier: GPL-2.0 */
> -
> -#ifdef CONFIG_ARCH_S3C24XX
> -#include "irqs-s3c24xx.h"
> -#endif
> -
> -#ifdef CONFIG_ARCH_S3C64XX
>  #include "irqs-s3c64xx.h"
> -#endif
> diff --git a/arch/arm/mach-s3c/map.h b/arch/arm/mach-s3c/map.h
> index 7cfb517d4886..778d6f81cb2b 100644
> --- a/arch/arm/mach-s3c/map.h
> +++ b/arch/arm/mach-s3c/map.h
> @@ -1,9 +1,2 @@
>  /* SPDX-License-Identifier: GPL-2.0 */
> -
> -#ifdef CONFIG_ARCH_S3C24XX
> -#include "map-s3c24xx.h"
> -#endif
> -
> -#ifdef CONFIG_ARCH_S3C64XX
>  #include "map-s3c64xx.h"
> -#endif
> diff --git a/arch/arm/mach-s3c/pm-core.h b/arch/arm/mach-s3c/pm-core.h
> index b0e1d277f599..3e0c2df79120 100644
> --- a/arch/arm/mach-s3c/pm-core.h
> +++ b/arch/arm/mach-s3c/pm-core.h
> @@ -1,9 +1,2 @@
>  /* SPDX-License-Identifier: GPL-2.0 */
> -
> -#ifdef CONFIG_ARCH_S3C24XX
> -#include "pm-core-s3c24xx.h"
> -#endif
> -
> -#ifdef CONFIG_ARCH_S3C64XX
>  #include "pm-core-s3c64xx.h"
> -#endif
> diff --git a/arch/arm/mach-s3c/regs-clock.h b/arch/arm/mach-s3c/regs-clock.h
> index 7df31f203d28..fc7e3886b07c 100644
> --- a/arch/arm/mach-s3c/regs-clock.h
> +++ b/arch/arm/mach-s3c/regs-clock.h
> @@ -1,9 +1,2 @@
>  /* SPDX-License-Identifier: GPL-2.0 */
> -
> -#ifdef CONFIG_ARCH_S3C24XX
> -#include "regs-clock-s3c24xx.h"
> -#endif
> -
> -#ifdef CONFIG_ARCH_S3C64XX
>  #include "regs-clock-s3c64xx.h"
> -#endif
> diff --git a/arch/arm/mach-s3c/regs-gpio.h b/arch/arm/mach-s3c/regs-gpio.h
> index 0d41cb76d440..4e08e8609663 100644
> --- a/arch/arm/mach-s3c/regs-gpio.h
> +++ b/arch/arm/mach-s3c/regs-gpio.h
> @@ -1,9 +1,2 @@
>  /* SPDX-License-Identifier: GPL-2.0 */
> -
> -#ifdef CONFIG_ARCH_S3C24XX
> -#include "regs-gpio-s3c24xx.h"
> -#endif
> -
> -#ifdef CONFIG_ARCH_S3C64XX
>  #include "regs-gpio-s3c64xx.h"
> -#endif
> diff --git a/arch/arm/mach-s3c/regs-irq.h b/arch/arm/mach-s3c/regs-irq.h
> index 57f0dda8dbf5..4243daa54bd1 100644
> --- a/arch/arm/mach-s3c/regs-irq.h
> +++ b/arch/arm/mach-s3c/regs-irq.h
> @@ -1,9 +1,2 @@
>  /* SPDX-License-Identifier: GPL-2.0 */
> -
> -#ifdef CONFIG_ARCH_S3C24XX
> -#include "regs-irq-s3c24xx.h"
> -#endif
> -
> -#ifdef CONFIG_ARCH_S3C64XX
>  #include "regs-irq-s3c64xx.h"
> -#endif
> diff --git a/drivers/clocksource/Kconfig b/drivers/clocksource/Kconfig
> index 4469e7f555e9..fc10ecc3602d 100644
> --- a/drivers/clocksource/Kconfig
> +++ b/drivers/clocksource/Kconfig
> @@ -441,7 +441,7 @@ config CLKSRC_EXYNOS_MCT
>  config CLKSRC_SAMSUNG_PWM
>  	bool "PWM timer driver for Samsung S3C, S5P" if COMPILE_TEST
>  	depends on HAS_IOMEM
> -	depends on ARCH_EXYNOS || ARCH_S3C24XX || ARCH_S3C64XX || ARCH_S5PV210 || COMPILE_TEST
> +	depends on ARCH_EXYNOS || ARCH_S3C64XX || ARCH_S5PV210 || COMPILE_TEST
>  	help
>  	  This is a new clocksource driver for the PWM timer found in
>  	  Samsung S3C, S5P and Exynos SoCs, replacing an earlier driver
> diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
> index f427c8ea5c7b..84d21e0a7cdf 100644
> --- a/drivers/i2c/busses/Kconfig
> +++ b/drivers/i2c/busses/Kconfig
> @@ -1009,8 +1009,7 @@ config I2C_RZV2M
>  
>  config I2C_S3C2410
>  	tristate "S3C/Exynos I2C Driver"
> -	depends on ARCH_EXYNOS || ARCH_S3C24XX || ARCH_S3C64XX || \
> -		   ARCH_S5PV210 || COMPILE_TEST
> +	depends on ARCH_EXYNOS || ARCH_S3C64XX || ARCH_S5PV210 || COMPILE_TEST
>  	help
>  	  Say Y here to include support for I2C controller in the
>  	  Samsung SoCs (S3C, S5Pv210, Exynos).
> diff --git a/drivers/i2c/busses/i2c-s3c2410.c b/drivers/i2c/busses/i2c-s3c2410.c
> index 36dab9cd208c..45e9df81345a 100644
> --- a/drivers/i2c/busses/i2c-s3c2410.c
> +++ b/drivers/i2c/busses/i2c-s3c2410.c
> @@ -116,9 +116,6 @@ struct s3c24xx_i2c {
>  	struct s3c2410_platform_i2c	*pdata;
>  	struct gpio_desc	*gpios[2];
>  	struct pinctrl          *pctrl;
> -#if defined(CONFIG_ARM_S3C24XX_CPUFREQ)
> -	struct notifier_block	freq_transition;
> -#endif
>  	struct regmap		*sysreg;
>  	unsigned int		sys_i2c_cfg;
>  };
> @@ -885,65 +882,6 @@ static int s3c24xx_i2c_clockrate(struct s3c24xx_i2c *i2c, unsigned int *got)
>  	return 0;
>  }
>  
> -#if defined(CONFIG_ARM_S3C24XX_CPUFREQ)
> -
> -#define freq_to_i2c(_n) container_of(_n, struct s3c24xx_i2c, freq_transition)
> -
> -static int s3c24xx_i2c_cpufreq_transition(struct notifier_block *nb,
> -					  unsigned long val, void *data)
> -{
> -	struct s3c24xx_i2c *i2c = freq_to_i2c(nb);
> -	unsigned int got;
> -	int delta_f;
> -	int ret;
> -
> -	delta_f = clk_get_rate(i2c->clk) - i2c->clkrate;
> -
> -	/* if we're post-change and the input clock has slowed down
> -	 * or at pre-change and the clock is about to speed up, then
> -	 * adjust our clock rate. <0 is slow, >0 speedup.
> -	 */
> -
> -	if ((val == CPUFREQ_POSTCHANGE && delta_f < 0) ||
> -	    (val == CPUFREQ_PRECHANGE && delta_f > 0)) {
> -		i2c_lock_bus(&i2c->adap, I2C_LOCK_ROOT_ADAPTER);
> -		ret = s3c24xx_i2c_clockrate(i2c, &got);
> -		i2c_unlock_bus(&i2c->adap, I2C_LOCK_ROOT_ADAPTER);
> -
> -		if (ret < 0)
> -			dev_err(i2c->dev, "cannot find frequency (%d)\n", ret);
> -		else
> -			dev_info(i2c->dev, "setting freq %d\n", got);
> -	}
> -
> -	return 0;
> -}
> -
> -static inline int s3c24xx_i2c_register_cpufreq(struct s3c24xx_i2c *i2c)
> -{
> -	i2c->freq_transition.notifier_call = s3c24xx_i2c_cpufreq_transition;
> -
> -	return cpufreq_register_notifier(&i2c->freq_transition,
> -					 CPUFREQ_TRANSITION_NOTIFIER);
> -}
> -
> -static inline void s3c24xx_i2c_deregister_cpufreq(struct s3c24xx_i2c *i2c)
> -{
> -	cpufreq_unregister_notifier(&i2c->freq_transition,
> -				    CPUFREQ_TRANSITION_NOTIFIER);
> -}
> -
> -#else
> -static inline int s3c24xx_i2c_register_cpufreq(struct s3c24xx_i2c *i2c)
> -{
> -	return 0;
> -}
> -
> -static inline void s3c24xx_i2c_deregister_cpufreq(struct s3c24xx_i2c *i2c)
> -{
> -}
> -#endif
> -
>  #ifdef CONFIG_OF
>  static int s3c24xx_i2c_parse_dt_gpio(struct s3c24xx_i2c *i2c)
>  {
> @@ -1152,13 +1090,6 @@ static int s3c24xx_i2c_probe(struct platform_device *pdev)
>  		}
>  	}
>  
> -	ret = s3c24xx_i2c_register_cpufreq(i2c);
> -	if (ret < 0) {
> -		dev_err(&pdev->dev, "failed to register cpufreq notifier\n");
> -		clk_unprepare(i2c->clk);
> -		return ret;
> -	}
> -
>  	/*
>  	 * Note, previous versions of the driver used i2c_add_adapter()
>  	 * to add the bus at any number. We now pass the bus number via
> @@ -1175,7 +1106,6 @@ static int s3c24xx_i2c_probe(struct platform_device *pdev)
>  	ret = i2c_add_numbered_adapter(&i2c->adap);
>  	if (ret < 0) {
>  		pm_runtime_disable(&pdev->dev);
> -		s3c24xx_i2c_deregister_cpufreq(i2c);
>  		clk_unprepare(i2c->clk);
>  		return ret;
>  	}
> @@ -1192,8 +1122,6 @@ static int s3c24xx_i2c_remove(struct platform_device *pdev)
>  
>  	pm_runtime_disable(&pdev->dev);
>  
> -	s3c24xx_i2c_deregister_cpufreq(i2c);
> -
>  	i2c_del_adapter(&i2c->adap);
>  
>  	return 0;
> diff --git a/drivers/iio/adc/Kconfig b/drivers/iio/adc/Kconfig
> index 791612ca6012..9de7f05d40e2 100644
> --- a/drivers/iio/adc/Kconfig
> +++ b/drivers/iio/adc/Kconfig
> @@ -437,11 +437,11 @@ config EP93XX_ADC
>  
>  config EXYNOS_ADC
>  	tristate "Exynos ADC driver support"
> -	depends on ARCH_EXYNOS || ARCH_S3C24XX || ARCH_S3C64XX || ARCH_S5PV210 || (OF && COMPILE_TEST)
> +	depends on ARCH_EXYNOS || ARCH_S3C64XX || ARCH_S5PV210 || (OF && COMPILE_TEST)
>  	depends on HAS_IOMEM
>  	help
> -	  Driver for the ADC block found in the Samsung S3C (S3C2410, S3C2416,
> -	  S3C2440, S3C2443, S3C6410), S5Pv210 and Exynos SoCs.
> +	  Driver for the ADC block found in the Samsung S3C6410, S5Pv210 and
> +	  Exynos SoCs.
>  	  Choose Y here only if you build for such Samsung SoC.
>  
>  	  To compile this driver as a module, choose M here: the module will be
> diff --git a/drivers/media/platform/samsung/s3c-camif/Kconfig b/drivers/media/platform/samsung/s3c-camif/Kconfig
> index 8cb8d1ac3edc..f359f6382fff 100644
> --- a/drivers/media/platform/samsung/s3c-camif/Kconfig
> +++ b/drivers/media/platform/samsung/s3c-camif/Kconfig
> @@ -1,15 +1,15 @@
>  # SPDX-License-Identifier: GPL-2.0-only
>  config VIDEO_S3C_CAMIF
> -	tristate "Samsung S3C24XX/S3C64XX SoC Camera Interface driver"
> +	tristate "Samsung 3C64XX SoC Camera Interface driver"
>  	depends on V4L_PLATFORM_DRIVERS
>  	depends on VIDEO_DEV && I2C && PM
> -	depends on ARCH_S3C64XX || PLAT_S3C24XX || COMPILE_TEST
> +	depends on ARCH_S3C64XX || COMPILE_TEST
>  	select MEDIA_CONTROLLER
>  	select VIDEO_V4L2_SUBDEV_API
>  	select VIDEOBUF2_DMA_CONTIG
>  	help
> -	  This is a v4l2 driver for s3c24xx and s3c64xx SoC series camera
> -	  host interface (CAMIF).
> +	  This is a v4l2 driver for s3c64xx SoC series camera host interface
> +	  (CAMIF).
>  
>  	  To compile this driver as a module, choose M here: the module
>  	  will be called s3c-camif.
> diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig
> index 84dd37ff2735..79d8ddf1f616 100644
> --- a/drivers/mmc/host/Kconfig
> +++ b/drivers/mmc/host/Kconfig
> @@ -312,9 +312,8 @@ config MMC_SDHCI_S3C
>  	depends on PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST
>  	help
>  	  This selects the Secure Digital Host Controller Interface (SDHCI)
> -	  often referrered to as the HSMMC block in some of the Samsung S3C
> -	  (S3C2416, S3C2443, S3C6410), S5Pv210 and Exynos (Exynso4210,
> -	  Exynos4412) SoCs.
> +	  often referrered to as the HSMMC block in some of the Samsung
> +	  S3C6410, S5Pv210 and Exynos (Exynso4210, Exynos4412) SoCs.
>  
>  	  If you have a controller with this interface (thereforeyou build for
>  	  such Samsung SoC), say Y or M here.
> diff --git a/drivers/mtd/nand/raw/Kconfig b/drivers/mtd/nand/raw/Kconfig
> index 280a55139387..a347833b8f29 100644
> --- a/drivers/mtd/nand/raw/Kconfig
> +++ b/drivers/mtd/nand/raw/Kconfig
> @@ -79,7 +79,7 @@ config MTD_NAND_NDFC
>  
>  config MTD_NAND_S3C2410
>  	tristate "Samsung S3C NAND controller"
> -	depends on ARCH_S3C24XX || ARCH_S3C64XX
> +	depends on ARCH_S3C64XX
>  	help
>  	  This enables the NAND flash controller on the S3C24xx and S3C64xx
>  	  SoCs
> diff --git a/drivers/mtd/nand/raw/s3c2410.c b/drivers/mtd/nand/raw/s3c2410.c
> index f0a4535c812a..80d96f94d6cb 100644
> --- a/drivers/mtd/nand/raw/s3c2410.c
> +++ b/drivers/mtd/nand/raw/s3c2410.c
> @@ -166,10 +166,6 @@ struct s3c2410_nand_info {
>  	enum s3c_nand_clk_state		clk_state;
>  
>  	enum s3c_cpu_type		cpu_type;
> -
> -#ifdef CONFIG_ARM_S3C24XX_CPUFREQ
> -	struct notifier_block	freq_transition;
> -#endif
>  };
>  
>  struct s3c24XX_nand_devtype_data {
> @@ -711,54 +707,6 @@ static void s3c2440_nand_write_buf(struct nand_chip *this, const u_char *buf,
>  	}
>  }
>  
> -/* cpufreq driver support */
> -
> -#ifdef CONFIG_ARM_S3C24XX_CPUFREQ
> -
> -static int s3c2410_nand_cpufreq_transition(struct notifier_block *nb,
> -					  unsigned long val, void *data)
> -{
> -	struct s3c2410_nand_info *info;
> -	unsigned long newclk;
> -
> -	info = container_of(nb, struct s3c2410_nand_info, freq_transition);
> -	newclk = clk_get_rate(info->clk);
> -
> -	if ((val == CPUFREQ_POSTCHANGE && newclk < info->clk_rate) ||
> -	    (val == CPUFREQ_PRECHANGE && newclk > info->clk_rate)) {
> -		s3c2410_nand_setrate(info);
> -	}
> -
> -	return 0;
> -}
> -
> -static inline int s3c2410_nand_cpufreq_register(struct s3c2410_nand_info *info)
> -{
> -	info->freq_transition.notifier_call = s3c2410_nand_cpufreq_transition;
> -
> -	return cpufreq_register_notifier(&info->freq_transition,
> -					 CPUFREQ_TRANSITION_NOTIFIER);
> -}
> -
> -static inline void
> -s3c2410_nand_cpufreq_deregister(struct s3c2410_nand_info *info)
> -{
> -	cpufreq_unregister_notifier(&info->freq_transition,
> -				    CPUFREQ_TRANSITION_NOTIFIER);
> -}
> -
> -#else
> -static inline int s3c2410_nand_cpufreq_register(struct s3c2410_nand_info *info)
> -{
> -	return 0;
> -}
> -
> -static inline void
> -s3c2410_nand_cpufreq_deregister(struct s3c2410_nand_info *info)
> -{
> -}
> -#endif
> -
>  /* device management functions */
>  
>  static int s3c24xx_nand_remove(struct platform_device *pdev)
> @@ -768,8 +716,6 @@ static int s3c24xx_nand_remove(struct platform_device *pdev)
>  	if (info == NULL)
>  		return 0;
>  
> -	s3c2410_nand_cpufreq_deregister(info);
> -
>  	/* Release all our mtds  and their partitions, then go through
>  	 * freeing the resources used
>  	 */
> @@ -1184,12 +1130,6 @@ static int s3c24xx_nand_probe(struct platform_device *pdev)
>  	if (err != 0)
>  		goto exit_error;
>  
> -	err = s3c2410_nand_cpufreq_register(info);
> -	if (err < 0) {
> -		dev_err(&pdev->dev, "failed to init cpufreq support\n");
> -		goto exit_error;
> -	}
> -
>  	if (allow_clk_suspend(info)) {
>  		dev_info(&pdev->dev, "clock idle support enabled\n");
>  		s3c2410_nand_clk_set_state(info, CLOCK_SUSPEND);
> diff --git a/drivers/pinctrl/samsung/pinctrl-samsung.c b/drivers/pinctrl/samsung/pinctrl-samsung.c
> index bd13b5ef246d..1a478854293f 100644
> --- a/drivers/pinctrl/samsung/pinctrl-samsung.c
> +++ b/drivers/pinctrl/samsung/pinctrl-samsung.c
> @@ -1322,16 +1322,6 @@ static const struct of_device_id samsung_pinctrl_dt_match[] = {
>  #ifdef CONFIG_PINCTRL_S3C64XX
>  	{ .compatible = "samsung,s3c64xx-pinctrl",
>  		.data = &s3c64xx_of_data },
> -#endif
> -#ifdef CONFIG_PINCTRL_S3C24XX
> -	{ .compatible = "samsung,s3c2412-pinctrl",
> -		.data = &s3c2412_of_data },
> -	{ .compatible = "samsung,s3c2416-pinctrl",
> -		.data = &s3c2416_of_data },
> -	{ .compatible = "samsung,s3c2440-pinctrl",
> -		.data = &s3c2440_of_data },
> -	{ .compatible = "samsung,s3c2450-pinctrl",
> -		.data = &s3c2450_of_data },
>  #endif
>  	{},
>  };
> diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig
> index 312dccfa3f18..d13ca620ea5d 100644
> --- a/drivers/rtc/Kconfig
> +++ b/drivers/rtc/Kconfig
> @@ -1406,18 +1406,14 @@ config RTC_DRV_OMAP
>  
>  config RTC_DRV_S3C
>  	tristate "Samsung S3C series SoC RTC"
> -	depends on ARCH_EXYNOS || ARCH_S3C64XX || ARCH_S3C24XX || ARCH_S5PV210 || \
> +	depends on ARCH_EXYNOS || ARCH_S3C64XX || ARCH_S5PV210 || \
>  		   COMPILE_TEST
>  	help
>  	  RTC (Realtime Clock) driver for the clock inbuilt into the
> -	  Samsung S3C24XX series of SoCs. This can provide periodic
> +	  Samsung S3C64XX series of SoCs. This can provide periodic
>  	  interrupt rates from 1Hz to 64Hz for user programs, and
>  	  wakeup from Alarm.
>  
> -	  The driver currently supports the common features on all the
> -	  S3C24XX range, such as the S3C2410, S3C2412, S3C2413, S3C2440
> -	  and S3C2442.
> -
>  	  This driver can also be build as a module. If so, the module
>  	  will be called rtc-s3c.
>  
> diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
> index 434f83168546..3ba8a39655a3 100644
> --- a/drivers/tty/serial/Kconfig
> +++ b/drivers/tty/serial/Kconfig
> @@ -242,23 +242,23 @@ config SERIAL_SAMSUNG
>  	select SERIAL_CORE
>  	help
>  	  Support for the on-chip UARTs on the Samsung
> -	  S3C24xx/S3C64xx/S5Pv210/Exynos and Apple M1 SoCs, providing
> +	  S3C64xx/S5Pv210/Exynos and Apple M1 SoCs, providing
>  	  /dev/ttySAC0, 1 and 2 (note, some machines may not provide all of
>  	  these ports, depending on how the serial port pins are configured.
> +
>  	  Choose Y/M here only if you build for such SoC.
>  
>  config SERIAL_SAMSUNG_UARTS_4
>  	bool
>  	depends on SERIAL_SAMSUNG
> -	default y if !(CPU_S3C2410 || CPU_S3C2412 || CPU_S3C2440 || CPU_S3C2442)
> +	default y
>  	help
>  	  Internal node for the common case of 4 Samsung compatible UARTs
>  
>  config SERIAL_SAMSUNG_UARTS
>  	int
>  	depends on SERIAL_SAMSUNG
> -	default 4 if SERIAL_SAMSUNG_UARTS_4 || CPU_S3C2416
> -	default 3
> +	default 4
>  	help
>  	  Select the number of available UART ports for the Samsung S3C
>  	  serial driver
> diff --git a/drivers/tty/serial/samsung_tty.c b/drivers/tty/serial/samsung_tty.c
> index 77d1363029f5..5adf3963b2f6 100644
> --- a/drivers/tty/serial/samsung_tty.c
> +++ b/drivers/tty/serial/samsung_tty.c
> @@ -152,10 +152,6 @@ struct s3c24xx_uart_port {
>  	const struct s3c2410_uartcfg	*cfg;
>  
>  	struct s3c24xx_uart_dma		*dma;
> -
> -#ifdef CONFIG_ARM_S3C24XX_CPUFREQ
> -	struct notifier_block		freq_transition;
> -#endif
>  };
>  
>  static void s3c24xx_serial_tx_chars(struct s3c24xx_uart_port *ourport);
> @@ -1859,93 +1855,6 @@ static void s3c24xx_serial_resetport(struct uart_port *port,
>  	udelay(1);
>  }
>  
> -#ifdef CONFIG_ARM_S3C24XX_CPUFREQ
> -
> -static int s3c24xx_serial_cpufreq_transition(struct notifier_block *nb,
> -					     unsigned long val, void *data)
> -{
> -	struct s3c24xx_uart_port *port;
> -	struct uart_port *uport;
> -
> -	port = container_of(nb, struct s3c24xx_uart_port, freq_transition);
> -	uport = &port->port;
> -
> -	/* check to see if port is enabled */
> -
> -	if (port->pm_level != 0)
> -		return 0;
> -
> -	/* try and work out if the baudrate is changing, we can detect
> -	 * a change in rate, but we do not have support for detecting
> -	 * a disturbance in the clock-rate over the change.
> -	 */
> -
> -	if (IS_ERR(port->baudclk))
> -		goto exit;
> -
> -	if (port->baudclk_rate == clk_get_rate(port->baudclk))
> -		goto exit;
> -
> -	if (val == CPUFREQ_PRECHANGE) {
> -		/* we should really shut the port down whilst the
> -		 * frequency change is in progress.
> -		 */
> -
> -	} else if (val == CPUFREQ_POSTCHANGE) {
> -		struct ktermios *termios;
> -		struct tty_struct *tty;
> -
> -		if (uport->state == NULL)
> -			goto exit;
> -
> -		tty = uport->state->port.tty;
> -
> -		if (tty == NULL)
> -			goto exit;
> -
> -		termios = &tty->termios;
> -
> -		if (termios == NULL) {
> -			dev_warn(uport->dev, "%s: no termios?\n", __func__);
> -			goto exit;
> -		}
> -
> -		s3c24xx_serial_set_termios(uport, termios, NULL);
> -	}
> -
> -exit:
> -	return 0;
> -}
> -
> -static inline int
> -s3c24xx_serial_cpufreq_register(struct s3c24xx_uart_port *port)
> -{
> -	port->freq_transition.notifier_call = s3c24xx_serial_cpufreq_transition;
> -
> -	return cpufreq_register_notifier(&port->freq_transition,
> -					 CPUFREQ_TRANSITION_NOTIFIER);
> -}
> -
> -static inline void
> -s3c24xx_serial_cpufreq_deregister(struct s3c24xx_uart_port *port)
> -{
> -	cpufreq_unregister_notifier(&port->freq_transition,
> -				    CPUFREQ_TRANSITION_NOTIFIER);
> -}
> -
> -#else
> -static inline int
> -s3c24xx_serial_cpufreq_register(struct s3c24xx_uart_port *port)
> -{
> -	return 0;
> -}
> -
> -static inline void
> -s3c24xx_serial_cpufreq_deregister(struct s3c24xx_uart_port *port)
> -{
> -}
> -#endif
> -
>  static int s3c24xx_serial_enable_baudclk(struct s3c24xx_uart_port *ourport)
>  {
>  	struct device *dev = ourport->port.dev;
> @@ -2237,10 +2146,6 @@ static int s3c24xx_serial_probe(struct platform_device *pdev)
>  	if (!IS_ERR(ourport->baudclk))
>  		clk_disable_unprepare(ourport->baudclk);
>  
> -	ret = s3c24xx_serial_cpufreq_register(ourport);
> -	if (ret < 0)
> -		dev_err(&pdev->dev, "failed to add cpufreq notifier\n");
> -
>  	probe_index++;
>  
>  	return 0;
> @@ -2251,7 +2156,6 @@ static int s3c24xx_serial_remove(struct platform_device *dev)
>  	struct uart_port *port = s3c24xx_dev_to_port(&dev->dev);
>  
>  	if (port) {
> -		s3c24xx_serial_cpufreq_deregister(to_ourport(port));
>  		uart_remove_one_port(&s3c24xx_uart_drv, port);
>  	}
>  
> @@ -2589,94 +2493,6 @@ static struct console s3c24xx_serial_console = {
>  };
>  #endif /* CONFIG_SERIAL_SAMSUNG_CONSOLE */
>  
> -#ifdef CONFIG_CPU_S3C2410
> -static const struct s3c24xx_serial_drv_data s3c2410_serial_drv_data = {
> -	.info = {
> -		.name		= "Samsung S3C2410 UART",
> -		.type		= TYPE_S3C24XX,
> -		.port_type	= PORT_S3C2410,
> -		.fifosize	= 16,
> -		.rx_fifomask	= S3C2410_UFSTAT_RXMASK,
> -		.rx_fifoshift	= S3C2410_UFSTAT_RXSHIFT,
> -		.rx_fifofull	= S3C2410_UFSTAT_RXFULL,
> -		.tx_fifofull	= S3C2410_UFSTAT_TXFULL,
> -		.tx_fifomask	= S3C2410_UFSTAT_TXMASK,
> -		.tx_fifoshift	= S3C2410_UFSTAT_TXSHIFT,
> -		.def_clk_sel	= S3C2410_UCON_CLKSEL0,
> -		.num_clks	= 2,
> -		.clksel_mask	= S3C2410_UCON_CLKMASK,
> -		.clksel_shift	= S3C2410_UCON_CLKSHIFT,
> -	},
> -	.def_cfg = {
> -		.ucon		= S3C2410_UCON_DEFAULT,
> -		.ufcon		= S3C2410_UFCON_DEFAULT,
> -	},
> -};
> -#define S3C2410_SERIAL_DRV_DATA (&s3c2410_serial_drv_data)
> -#else
> -#define S3C2410_SERIAL_DRV_DATA NULL
> -#endif
> -
> -#ifdef CONFIG_CPU_S3C2412
> -static const struct s3c24xx_serial_drv_data s3c2412_serial_drv_data = {
> -	.info = {
> -		.name		= "Samsung S3C2412 UART",
> -		.type		= TYPE_S3C24XX,
> -		.port_type	= PORT_S3C2412,
> -		.fifosize	= 64,
> -		.has_divslot	= 1,
> -		.rx_fifomask	= S3C2440_UFSTAT_RXMASK,
> -		.rx_fifoshift	= S3C2440_UFSTAT_RXSHIFT,
> -		.rx_fifofull	= S3C2440_UFSTAT_RXFULL,
> -		.tx_fifofull	= S3C2440_UFSTAT_TXFULL,
> -		.tx_fifomask	= S3C2440_UFSTAT_TXMASK,
> -		.tx_fifoshift	= S3C2440_UFSTAT_TXSHIFT,
> -		.def_clk_sel	= S3C2410_UCON_CLKSEL2,
> -		.num_clks	= 4,
> -		.clksel_mask	= S3C2412_UCON_CLKMASK,
> -		.clksel_shift	= S3C2412_UCON_CLKSHIFT,
> -	},
> -	.def_cfg = {
> -		.ucon		= S3C2410_UCON_DEFAULT,
> -		.ufcon		= S3C2410_UFCON_DEFAULT,
> -	},
> -};
> -#define S3C2412_SERIAL_DRV_DATA (&s3c2412_serial_drv_data)
> -#else
> -#define S3C2412_SERIAL_DRV_DATA NULL
> -#endif
> -
> -#if defined(CONFIG_CPU_S3C2440) || defined(CONFIG_CPU_S3C2416) || \
> -	defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2442)
> -static const struct s3c24xx_serial_drv_data s3c2440_serial_drv_data = {
> -	.info = {
> -		.name		= "Samsung S3C2440 UART",
> -		.type		= TYPE_S3C24XX,
> -		.port_type	= PORT_S3C2440,
> -		.fifosize	= 64,
> -		.has_divslot	= 1,
> -		.rx_fifomask	= S3C2440_UFSTAT_RXMASK,
> -		.rx_fifoshift	= S3C2440_UFSTAT_RXSHIFT,
> -		.rx_fifofull	= S3C2440_UFSTAT_RXFULL,
> -		.tx_fifofull	= S3C2440_UFSTAT_TXFULL,
> -		.tx_fifomask	= S3C2440_UFSTAT_TXMASK,
> -		.tx_fifoshift	= S3C2440_UFSTAT_TXSHIFT,
> -		.def_clk_sel	= S3C2410_UCON_CLKSEL2,
> -		.num_clks	= 4,
> -		.clksel_mask	= S3C2412_UCON_CLKMASK,
> -		.clksel_shift	= S3C2412_UCON_CLKSHIFT,
> -		.ucon_mask	= S3C2440_UCON0_DIVMASK,
> -	},
> -	.def_cfg = {
> -		.ucon		= S3C2410_UCON_DEFAULT,
> -		.ufcon		= S3C2410_UFCON_DEFAULT,
> -	},
> -};
> -#define S3C2440_SERIAL_DRV_DATA (&s3c2440_serial_drv_data)
> -#else
> -#define S3C2440_SERIAL_DRV_DATA NULL
> -#endif
> -
>  #if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
>  static const struct s3c24xx_serial_drv_data s3c6400_serial_drv_data = {
>  	.info = {
> @@ -2845,15 +2661,6 @@ static const struct s3c24xx_serial_drv_data artpec8_serial_drv_data = {
>  
>  static const struct platform_device_id s3c24xx_serial_driver_ids[] = {
>  	{
> -		.name		= "s3c2410-uart",
> -		.driver_data	= (kernel_ulong_t)S3C2410_SERIAL_DRV_DATA,
> -	}, {
> -		.name		= "s3c2412-uart",
> -		.driver_data	= (kernel_ulong_t)S3C2412_SERIAL_DRV_DATA,
> -	}, {
> -		.name		= "s3c2440-uart",
> -		.driver_data	= (kernel_ulong_t)S3C2440_SERIAL_DRV_DATA,
> -	}, {
>  		.name		= "s3c6400-uart",
>  		.driver_data	= (kernel_ulong_t)S3C6400_SERIAL_DRV_DATA,
>  	}, {
> @@ -2881,12 +2688,6 @@ MODULE_DEVICE_TABLE(platform, s3c24xx_serial_driver_ids);
>  
>  #ifdef CONFIG_OF
>  static const struct of_device_id s3c24xx_uart_dt_match[] = {
> -	{ .compatible = "samsung,s3c2410-uart",
> -		.data = S3C2410_SERIAL_DRV_DATA },
> -	{ .compatible = "samsung,s3c2412-uart",
> -		.data = S3C2412_SERIAL_DRV_DATA },
> -	{ .compatible = "samsung,s3c2440-uart",
> -		.data = S3C2440_SERIAL_DRV_DATA },
>  	{ .compatible = "samsung,s3c6400-uart",
>  		.data = S3C6400_SERIAL_DRV_DATA },
>  	{ .compatible = "samsung,s5pv210-uart",
> diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
> index fb7b603dddf8..8ba4fe9364b1 100644
> --- a/drivers/usb/host/Kconfig
> +++ b/drivers/usb/host/Kconfig
> @@ -443,12 +443,12 @@ config USB_OHCI_HCD_STI
>  	  STMicroelectronics consumer electronics SoC's.
>  
>  config USB_OHCI_HCD_S3C2410
> -	tristate "OHCI support for Samsung S3C24xx/S3C64xx SoC series"
> -	depends on USB_OHCI_HCD && (ARCH_S3C24XX || ARCH_S3C64XX || COMPILE_TEST)
> -	default y if (ARCH_S3C24XX || ARCH_S3C64XX)
> +	tristate "OHCI support for Samsung S3C64xx SoC series"
> +	depends on USB_OHCI_HCD && (ARCH_S3C64XX || COMPILE_TEST)
> +	default ARCH_S3C64XX
>  	help
>  	  Enables support for the on-chip OHCI controller on
> -	  S3C24xx/S3C64xx chips.
> +	  S3C64xx chips.
>  
>  config USB_OHCI_HCD_LPC32XX
>  	tristate "Support for LPC on-chip OHCI USB controller"
> diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
> index b64bc49c7f30..eee7df45347a 100644
> --- a/drivers/watchdog/Kconfig
> +++ b/drivers/watchdog/Kconfig
> @@ -491,14 +491,13 @@ config IXP4XX_WATCHDOG
>  	  Say N if you are unsure.
>  
>  config S3C2410_WATCHDOG
> -	tristate "S3C2410 Watchdog"
> -	depends on ARCH_S3C24XX || ARCH_S3C64XX || ARCH_S5PV210 || ARCH_EXYNOS || \
> -		   COMPILE_TEST
> +	tristate "S3C6410/S5Pv210/Exynos Watchdog"
> +	depends on ARCH_S3C64XX || ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST
>  	select WATCHDOG_CORE
>  	select MFD_SYSCON if ARCH_EXYNOS
>  	help
> -	  Watchdog timer block in the Samsung S3C24xx, S3C64xx, S5Pv210 and
> -	  Exynos SoCs. This will reboot the system when the timer expires with
> +	  Watchdog timer block in the Samsung S3C64xx, S5Pv210 and Exynos
> +	  SoCs. This will reboot the system when the timer expires with
>  	  the watchdog enabled.
>  
>  	  The driver is limited by the speed of the system's PCLK
> diff --git a/drivers/watchdog/s3c2410_wdt.c b/drivers/watchdog/s3c2410_wdt.c
> index d3fc8ed886ff..200ba236a72e 100644
> --- a/drivers/watchdog/s3c2410_wdt.c
> +++ b/drivers/watchdog/s3c2410_wdt.c
> @@ -562,73 +562,6 @@ static irqreturn_t s3c2410wdt_irq(int irqno, void *param)
>  	return IRQ_HANDLED;
>  }
>  
> -#ifdef CONFIG_ARM_S3C24XX_CPUFREQ
> -
> -static int s3c2410wdt_cpufreq_transition(struct notifier_block *nb,
> -					  unsigned long val, void *data)
> -{
> -	int ret;
> -	struct s3c2410_wdt *wdt = freq_to_wdt(nb);
> -
> -	if (!s3c2410wdt_is_running(wdt))
> -		goto done;
> -
> -	if (val == CPUFREQ_PRECHANGE) {
> -		/* To ensure that over the change we don't cause the
> -		 * watchdog to trigger, we perform an keep-alive if
> -		 * the watchdog is running.
> -		 */
> -
> -		s3c2410wdt_keepalive(&wdt->wdt_device);
> -	} else if (val == CPUFREQ_POSTCHANGE) {
> -		s3c2410wdt_stop(&wdt->wdt_device);
> -
> -		ret = s3c2410wdt_set_heartbeat(&wdt->wdt_device,
> -						wdt->wdt_device.timeout);
> -
> -		if (ret >= 0)
> -			s3c2410wdt_start(&wdt->wdt_device);
> -		else
> -			goto err;
> -	}
> -
> -done:
> -	return 0;
> -
> - err:
> -	dev_err(wdt->dev, "cannot set new value for timeout %d\n",
> -				wdt->wdt_device.timeout);
> -	return ret;
> -}
> -
> -static inline int s3c2410wdt_cpufreq_register(struct s3c2410_wdt *wdt)
> -{
> -	wdt->freq_transition.notifier_call = s3c2410wdt_cpufreq_transition;
> -
> -	return cpufreq_register_notifier(&wdt->freq_transition,
> -					 CPUFREQ_TRANSITION_NOTIFIER);
> -}
> -
> -static inline void s3c2410wdt_cpufreq_deregister(struct s3c2410_wdt *wdt)
> -{
> -	wdt->freq_transition.notifier_call = s3c2410wdt_cpufreq_transition;
> -
> -	cpufreq_unregister_notifier(&wdt->freq_transition,
> -				    CPUFREQ_TRANSITION_NOTIFIER);
> -}
> -
> -#else
> -
> -static inline int s3c2410wdt_cpufreq_register(struct s3c2410_wdt *wdt)
> -{
> -	return 0;
> -}
> -
> -static inline void s3c2410wdt_cpufreq_deregister(struct s3c2410_wdt *wdt)
> -{
> -}
> -#endif
> -
>  static inline unsigned int s3c2410wdt_get_bootstatus(struct s3c2410_wdt *wdt)
>  {
>  	unsigned int rst_stat;
> @@ -761,12 +694,6 @@ static int s3c2410wdt_probe(struct platform_device *pdev)
>  	wdt->wdt_device.min_timeout = 1;
>  	wdt->wdt_device.max_timeout = s3c2410wdt_max_timeout(wdt);
>  
> -	ret = s3c2410wdt_cpufreq_register(wdt);
> -	if (ret < 0) {
> -		dev_err(dev, "failed to register cpufreq\n");
> -		goto err_src_clk;
> -	}
> -
>  	watchdog_set_drvdata(&wdt->wdt_device, wdt);
>  
>  	/* see if we can actually set the requested timer margin, and if
> @@ -783,7 +710,7 @@ static int s3c2410wdt_probe(struct platform_device *pdev)
>  				 S3C2410_WATCHDOG_DEFAULT_TIME);
>  		} else {
>  			dev_err(dev, "failed to use default timeout\n");
> -			goto err_cpufreq;
> +			goto err_src_clk;
>  		}
>  	}
>  
> @@ -791,7 +718,7 @@ static int s3c2410wdt_probe(struct platform_device *pdev)
>  			       pdev->name, pdev);
>  	if (ret != 0) {
>  		dev_err(dev, "failed to install irq (%d)\n", ret);
> -		goto err_cpufreq;
> +		goto err_src_clk;
>  	}
>  
>  	watchdog_set_nowayout(&wdt->wdt_device, nowayout);
> @@ -817,7 +744,7 @@ static int s3c2410wdt_probe(struct platform_device *pdev)
>  
>  	ret = watchdog_register_device(&wdt->wdt_device);
>  	if (ret)
> -		goto err_cpufreq;
> +		goto err_src_clk;
>  
>  	ret = s3c2410wdt_enable(wdt, true);
>  	if (ret < 0)
> @@ -839,9 +766,6 @@ static int s3c2410wdt_probe(struct platform_device *pdev)
>   err_unregister:
>  	watchdog_unregister_device(&wdt->wdt_device);
>  
> - err_cpufreq:
> -	s3c2410wdt_cpufreq_deregister(wdt);
> -
>   err_src_clk:
>  	clk_disable_unprepare(wdt->src_clk);
>  
> @@ -862,8 +786,6 @@ static int s3c2410wdt_remove(struct platform_device *dev)
>  
>  	watchdog_unregister_device(&wdt->wdt_device);
>  
> -	s3c2410wdt_cpufreq_deregister(wdt);
> -
>  	clk_disable_unprepare(wdt->src_clk);
>  	clk_disable_unprepare(wdt->bus_clk);
>  
> diff --git a/include/linux/clk/samsung.h b/include/linux/clk/samsung.h
> index 38b774001712..0cf7aac83439 100644
> --- a/include/linux/clk/samsung.h
> +++ b/include/linux/clk/samsung.h
> @@ -21,36 +21,4 @@ static inline void s3c64xx_clk_init(struct device_node *np,
>  				    bool s3c6400, void __iomem *base) { }
>  #endif /* CONFIG_S3C64XX_COMMON_CLK */
>  
> -#ifdef CONFIG_S3C2410_COMMON_CLK
> -void s3c2410_common_clk_init(struct device_node *np, unsigned long xti_f,
> -			     int current_soc,
> -			     void __iomem *reg_base);
> -#else
> -static inline void s3c2410_common_clk_init(struct device_node *np,
> -					   unsigned long xti_f,
> -					   int current_soc,
> -					   void __iomem *reg_base) { }
> -#endif /* CONFIG_S3C2410_COMMON_CLK */
> -
> -#ifdef CONFIG_S3C2412_COMMON_CLK
> -void s3c2412_common_clk_init(struct device_node *np, unsigned long xti_f,
> -			     unsigned long ext_f, void __iomem *reg_base);
> -#else
> -static inline void s3c2412_common_clk_init(struct device_node *np,
> -					   unsigned long xti_f,
> -					   unsigned long ext_f,
> -					   void __iomem *reg_base) { }
> -#endif /* CONFIG_S3C2412_COMMON_CLK */
> -
> -#ifdef CONFIG_S3C2443_COMMON_CLK
> -void s3c2443_common_clk_init(struct device_node *np, unsigned long xti_f,
> -			     int current_soc,
> -			     void __iomem *reg_base);
> -#else
> -static inline void s3c2443_common_clk_init(struct device_node *np,
> -					   unsigned long xti_f,
> -					   int current_soc,
> -					   void __iomem *reg_base) { }
> -#endif /* CONFIG_S3C2443_COMMON_CLK */
> -
>  #endif /* __LINUX_CLK_SAMSUNG_H_ */
> diff --git a/include/linux/soc/samsung/s3c-pm.h b/include/linux/soc/samsung/s3c-pm.h
> index f9164559c99f..5b23d85d20ab 100644
> --- a/include/linux/soc/samsung/s3c-pm.h
> +++ b/include/linux/soc/samsung/s3c-pm.h
> @@ -14,58 +14,10 @@
>  
>  /* PM debug functions */
>  
> -/**
> - * struct pm_uart_save - save block for core UART
> - * @ulcon: Save value for S3C2410_ULCON
> - * @ucon: Save value for S3C2410_UCON
> - * @ufcon: Save value for S3C2410_UFCON
> - * @umcon: Save value for S3C2410_UMCON
> - * @ubrdiv: Save value for S3C2410_UBRDIV
> - *
> - * Save block for UART registers to be held over sleep and restored if they
> - * are needed (say by debug).
> -*/
> -struct pm_uart_save {
> -	u32	ulcon;
> -	u32	ucon;
> -	u32	ufcon;
> -	u32	umcon;
> -	u32	ubrdiv;
> -	u32	udivslot;
> -};
> -
> -#ifdef CONFIG_SAMSUNG_PM_DEBUG
> -/**
> - * s3c_pm_dbg() - low level debug function for use in suspend/resume.
> - * @msg: The message to print.
> - *
> - * This function is used mainly to debug the resume process before the system
> - * can rely on printk/console output. It uses the low-level debugging output
> - * routine printascii() to do its work.
> - */
> -extern void s3c_pm_dbg(const char *msg, ...);
> -
> -#define S3C_PMDBG(fmt...) s3c_pm_dbg(fmt)
> -
> -extern void s3c_pm_save_uarts(bool is_s3c24xx);
> -extern void s3c_pm_restore_uarts(bool is_s3c24xx);
> -
> -#ifdef CONFIG_ARCH_S3C64XX
> -extern void s3c_pm_arch_update_uart(void __iomem *regs,
> -				    struct pm_uart_save *save);
> -#else
> -static inline void
> -s3c_pm_arch_update_uart(void __iomem *regs, struct pm_uart_save *save)
> -{
> -}
> -#endif
> -
> -#else
>  #define S3C_PMDBG(fmt...) pr_debug(fmt)
>  
>  static inline void s3c_pm_save_uarts(bool is_s3c24xx) { }
>  static inline void s3c_pm_restore_uarts(bool is_s3c24xx) { }
> -#endif
>  
>  /* suspend memory checking */
>  
> @@ -81,14 +33,4 @@ extern void s3c_pm_check_store(void);
>  #define s3c_pm_check_store()   do { } while (0)
>  #endif
>  
> -/* system device subsystems */
> -
> -extern struct bus_type s3c2410_subsys;
> -extern struct bus_type s3c2410a_subsys;
> -extern struct bus_type s3c2412_subsys;
> -extern struct bus_type s3c2416_subsys;
> -extern struct bus_type s3c2440_subsys;
> -extern struct bus_type s3c2442_subsys;
> -extern struct bus_type s3c2443_subsys;
> -
>  #endif
Daniel Lezcano Oct. 23, 2022, 6:08 p.m. UTC | #7
On 21/10/2022 22:27, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> A number of device drivers reference CONFIG_ARM_S3C24XX_CPUFREQ or
> similar symbols that are no longer available with the platform gone,
> though the drivers themselves are still used on newer platforms,
> so remove these hacks.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Miquel Raynal Oct. 24, 2022, 7:55 a.m. UTC | #8
Hi Arnd,

arnd@kernel.org wrote on Fri, 21 Oct 2022 22:27:35 +0200:

> From: Arnd Bergmann <arnd@arndb.de>
> 
> A number of device drivers reference CONFIG_ARM_S3C24XX_CPUFREQ or
> similar symbols that are no longer available with the platform gone,
> though the drivers themselves are still used on newer platforms,
> so remove these hacks.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Acked-by: Miquel Raynal <miquel.raynal@bootlin.com>

Thanks,
Miquèl
Krzysztof Kozlowski Oct. 24, 2022, 12:26 p.m. UTC | #9
On 21/10/2022 16:27, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> A number of device drivers reference CONFIG_ARM_S3C24XX_CPUFREQ or
> similar symbols that are no longer available with the platform gone,
> though the drivers themselves are still used on newer platforms,
> so remove these hacks.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>


Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

Best regards,
Krzysztof
Rob Herring Oct. 24, 2022, 1 p.m. UTC | #10
On Fri, Oct 21, 2022 at 10:22:28PM +0200, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> The s3c24xx platform was marked as deprecated a while ago,
> and for the s3c64xx platform, we marked all except one legacy
> board file as unused.
> 
> This series removes all of those, leaving only s3c64xx support
> for DT based boots as well as the cragg6410 board file.
> 
> About half of the s3c specific drivers were only used on
> the now removed machines, so these drivers can be retired
> as well. I can either merge the driver removal patches through
> the soc tree along with the board file patches, or subsystem
> maintainers can pick them up into their own trees, whichever
> they prefer.

[...]

>  Documentation/arm/index.rst                   |    1 -
>  Documentation/arm/samsung-s3c24xx/cpufreq.rst |   77 -
>  .../arm/samsung-s3c24xx/eb2410itx.rst         |   59 -
>  Documentation/arm/samsung-s3c24xx/gpio.rst    |  172 --
>  Documentation/arm/samsung-s3c24xx/h1940.rst   |   41 -
>  Documentation/arm/samsung-s3c24xx/index.rst   |   20 -
>  Documentation/arm/samsung-s3c24xx/nand.rst    |   30 -
>  .../arm/samsung-s3c24xx/overview.rst          |  311 ---
>  Documentation/arm/samsung-s3c24xx/s3c2412.rst |  121 -
>  Documentation/arm/samsung-s3c24xx/s3c2413.rst |   22 -
>  .../arm/samsung-s3c24xx/smdk2440.rst          |   57 -
>  Documentation/arm/samsung-s3c24xx/suspend.rst |  137 --
>  .../arm/samsung-s3c24xx/usb-host.rst          |   91 -
>  Documentation/arm/samsung/overview.rst        |   13 -

What about?:

Documentation/devicetree/bindings/clock/samsung,s3c2410-clock.txt
Documentation/devicetree/bindings/interrupt-controller/samsung,s3c24xx-irq.txt
Documentation/devicetree/bindings/mmc/samsung,s3cmci.txt
Documentation/devicetree/bindings/mtd/samsung-s3c2410.txt
Documentation/devicetree/bindings/usb/s3c2410-usb.txt

Rob
Arnd Bergmann Oct. 24, 2022, 1:18 p.m. UTC | #11
On Mon, Oct 24, 2022, at 15:00, Rob Herring wrote:
> On Fri, Oct 21, 2022 at 10:22:28PM +0200, Arnd Bergmann wrote:
>> From: Arnd Bergmann <arnd@arndb.de>
>> 
>> The s3c24xx platform was marked as deprecated a while ago,
>> and for the s3c64xx platform, we marked all except one legacy
>> board file as unused.
>> 
>> This series removes all of those, leaving only s3c64xx support
>> for DT based boots as well as the cragg6410 board file.
>> 
>> About half of the s3c specific drivers were only used on
>> the now removed machines, so these drivers can be retired
>> as well. I can either merge the driver removal patches through
>> the soc tree along with the board file patches, or subsystem
>> maintainers can pick them up into their own trees, whichever
>> they prefer.
>
> [...]
>
>>  Documentation/arm/index.rst                   |    1 -
>>  Documentation/arm/samsung-s3c24xx/cpufreq.rst |   77 -
>>  .../arm/samsung-s3c24xx/eb2410itx.rst         |   59 -
>>  Documentation/arm/samsung-s3c24xx/gpio.rst    |  172 --
>>  Documentation/arm/samsung-s3c24xx/h1940.rst   |   41 -
>>  Documentation/arm/samsung-s3c24xx/index.rst   |   20 -
>>  Documentation/arm/samsung-s3c24xx/nand.rst    |   30 -
>>  .../arm/samsung-s3c24xx/overview.rst          |  311 ---
>>  Documentation/arm/samsung-s3c24xx/s3c2412.rst |  121 -
>>  Documentation/arm/samsung-s3c24xx/s3c2413.rst |   22 -
>>  .../arm/samsung-s3c24xx/smdk2440.rst          |   57 -
>>  Documentation/arm/samsung-s3c24xx/suspend.rst |  137 --
>>  .../arm/samsung-s3c24xx/usb-host.rst          |   91 -
>>  Documentation/arm/samsung/overview.rst        |   13 -
>
> What about?:
>
> Documentation/devicetree/bindings/clock/samsung,s3c2410-clock.txt
> Documentation/devicetree/bindings/interrupt-controller/samsung,s3c24xx-irq.txt
> Documentation/devicetree/bindings/mmc/samsung,s3cmci.txt

Good catch!

I've removed these three now and and will add the removal to
the same patch, also the related
samsung,s3c2412-clock.txt and samsung,s3c2443-clock.txt
files.

> Documentation/devicetree/bindings/mtd/samsung-s3c2410.txt

samsung,s3c2412-nand is apparently still used on s3c6400,
and the driver is selectable on that platform, so I think
that should remain in there until we remove s3c64xx in 2024,
even if it is not referenced by the dts files in the kernel.

> Documentation/devicetree/bindings/usb/s3c2410-usb.txt

Similarly, the driver is used on the crag6410 board
(without DT), and probably just works with the DT based
boards if one adds a node to s3c64xx.dtsi.

I've also checked if any of the other removed drivers
matches of_device_id[] strings to see if there are more
bindings to kill off, but I don't see any that have
now become obsolete. It did point me to pxa2xx_ac97_dt_ids,
which Robert already complained about, this apparently
is still used with dts files outside of mainline.

      Arnd
Ulf Hansson Oct. 24, 2022, 4:53 p.m. UTC | #12
On Fri, 21 Oct 2022 at 22:37, Arnd Bergmann <arnd@kernel.org> wrote:
>
> From: Arnd Bergmann <arnd@arndb.de>
>
> A number of device drivers reference CONFIG_ARM_S3C24XX_CPUFREQ or
> similar symbols that are no longer available with the platform gone,
> though the drivers themselves are still used on newer platforms,
> so remove these hacks.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Acked-by: Ulf Hansson <ulf.hansson@linaro.org> # For MMC

Kind regards
Uffe


> ---
>  arch/arm/include/debug/s3c24xx.S              |  10 -
>  arch/arm/mach-s3c/Makefile                    |   2 -
>  arch/arm/mach-s3c/devs.c                      |   1 -
>  arch/arm/mach-s3c/dma.h                       |   7 -
>  arch/arm/mach-s3c/gpio-samsung.h              |   7 -
>  arch/arm/mach-s3c/irqs.h                      |   7 -
>  arch/arm/mach-s3c/map.h                       |   7 -
>  arch/arm/mach-s3c/pm-core.h                   |   7 -
>  arch/arm/mach-s3c/regs-clock.h                |   7 -
>  arch/arm/mach-s3c/regs-gpio.h                 |   7 -
>  arch/arm/mach-s3c/regs-irq.h                  |   7 -
>  drivers/clocksource/Kconfig                   |   2 +-
>  drivers/i2c/busses/Kconfig                    |   3 +-
>  drivers/i2c/busses/i2c-s3c2410.c              |  72 -------
>  drivers/iio/adc/Kconfig                       |   6 +-
>  .../media/platform/samsung/s3c-camif/Kconfig  |   8 +-
>  drivers/mmc/host/Kconfig                      |   5 +-
>  drivers/mtd/nand/raw/Kconfig                  |   2 +-
>  drivers/mtd/nand/raw/s3c2410.c                |  60 ------
>  drivers/pinctrl/samsung/pinctrl-samsung.c     |  10 -
>  drivers/rtc/Kconfig                           |   8 +-
>  drivers/tty/serial/Kconfig                    |   8 +-
>  drivers/tty/serial/samsung_tty.c              | 199 ------------------
>  drivers/usb/host/Kconfig                      |   8 +-
>  drivers/watchdog/Kconfig                      |   9 +-
>  drivers/watchdog/s3c2410_wdt.c                |  84 +-------
>  include/linux/clk/samsung.h                   |  32 ---
>  include/linux/soc/samsung/s3c-pm.h            |  58 -----
>  28 files changed, 29 insertions(+), 614 deletions(-)
>
> diff --git a/arch/arm/include/debug/s3c24xx.S b/arch/arm/include/debug/s3c24xx.S
> index af873b526677..7ab5e577cd42 100644
> --- a/arch/arm/include/debug/s3c24xx.S
> +++ b/arch/arm/include/debug/s3c24xx.S
> @@ -28,16 +28,6 @@
>                 and     \rd, \rd, #S3C2410_UFSTAT_TXMASK
>         .endm
>
> -/* Select the correct implementation depending on the configuration. The
> - * S3C2440 will get selected by default, as these are the most widely
> - * used variants of these
> -*/
> -
> -#if defined(CONFIG_DEBUG_S3C2410_UART)
> -#define fifo_full  fifo_full_s3c2410
> -#define fifo_level fifo_level_s3c2410
> -#endif
> -
>  /* include the reset of the code which will do the work */
>
>  #include <debug/samsung.S>
> diff --git a/arch/arm/mach-s3c/Makefile b/arch/arm/mach-s3c/Makefile
> index e7f18039b149..a5135137e648 100644
> --- a/arch/arm/mach-s3c/Makefile
> +++ b/arch/arm/mach-s3c/Makefile
> @@ -2,9 +2,7 @@
>  #
>  # Copyright 2009 Simtec Electronics
>
> -ifdef CONFIG_ARCH_S3C64XX
>  include $(src)/Makefile.s3c64xx
> -endif
>
>  # Objects we always build independent of SoC choice
>
> diff --git a/arch/arm/mach-s3c/devs.c b/arch/arm/mach-s3c/devs.c
> index 9ac07c023adf..a31d1c3038e8 100644
> --- a/arch/arm/mach-s3c/devs.c
> +++ b/arch/arm/mach-s3c/devs.c
> @@ -29,7 +29,6 @@
>  #include <linux/sizes.h>
>  #include <linux/platform_data/s3c-hsudc.h>
>  #include <linux/platform_data/s3c-hsotg.h>
> -#include <linux/platform_data/dma-s3c24xx.h>
>
>  #include <linux/platform_data/media/s5p_hdmi.h>
>
> diff --git a/arch/arm/mach-s3c/dma.h b/arch/arm/mach-s3c/dma.h
> index 59a4578c5f00..48057cb90070 100644
> --- a/arch/arm/mach-s3c/dma.h
> +++ b/arch/arm/mach-s3c/dma.h
> @@ -1,9 +1,2 @@
>  /* SPDX-License-Identifier: GPL-2.0 */
> -
> -#ifdef CONFIG_ARCH_S3C24XX
> -#include "dma-s3c24xx.h"
> -#endif
> -
> -#ifdef CONFIG_ARCH_S3C64XX
>  #include "dma-s3c64xx.h"
> -#endif
> diff --git a/arch/arm/mach-s3c/gpio-samsung.h b/arch/arm/mach-s3c/gpio-samsung.h
> index 02f6f4a96862..4233515eddaa 100644
> --- a/arch/arm/mach-s3c/gpio-samsung.h
> +++ b/arch/arm/mach-s3c/gpio-samsung.h
> @@ -1,9 +1,2 @@
>  /* SPDX-License-Identifier: GPL-2.0 */
> -
> -#ifdef CONFIG_ARCH_S3C24XX
> -#include "gpio-samsung-s3c24xx.h"
> -#endif
> -
> -#ifdef CONFIG_ARCH_S3C64XX
>  #include "gpio-samsung-s3c64xx.h"
> -#endif
> diff --git a/arch/arm/mach-s3c/irqs.h b/arch/arm/mach-s3c/irqs.h
> index 0bff1c1c8eb0..3ff0e0963080 100644
> --- a/arch/arm/mach-s3c/irqs.h
> +++ b/arch/arm/mach-s3c/irqs.h
> @@ -1,9 +1,2 @@
>  /* SPDX-License-Identifier: GPL-2.0 */
> -
> -#ifdef CONFIG_ARCH_S3C24XX
> -#include "irqs-s3c24xx.h"
> -#endif
> -
> -#ifdef CONFIG_ARCH_S3C64XX
>  #include "irqs-s3c64xx.h"
> -#endif
> diff --git a/arch/arm/mach-s3c/map.h b/arch/arm/mach-s3c/map.h
> index 7cfb517d4886..778d6f81cb2b 100644
> --- a/arch/arm/mach-s3c/map.h
> +++ b/arch/arm/mach-s3c/map.h
> @@ -1,9 +1,2 @@
>  /* SPDX-License-Identifier: GPL-2.0 */
> -
> -#ifdef CONFIG_ARCH_S3C24XX
> -#include "map-s3c24xx.h"
> -#endif
> -
> -#ifdef CONFIG_ARCH_S3C64XX
>  #include "map-s3c64xx.h"
> -#endif
> diff --git a/arch/arm/mach-s3c/pm-core.h b/arch/arm/mach-s3c/pm-core.h
> index b0e1d277f599..3e0c2df79120 100644
> --- a/arch/arm/mach-s3c/pm-core.h
> +++ b/arch/arm/mach-s3c/pm-core.h
> @@ -1,9 +1,2 @@
>  /* SPDX-License-Identifier: GPL-2.0 */
> -
> -#ifdef CONFIG_ARCH_S3C24XX
> -#include "pm-core-s3c24xx.h"
> -#endif
> -
> -#ifdef CONFIG_ARCH_S3C64XX
>  #include "pm-core-s3c64xx.h"
> -#endif
> diff --git a/arch/arm/mach-s3c/regs-clock.h b/arch/arm/mach-s3c/regs-clock.h
> index 7df31f203d28..fc7e3886b07c 100644
> --- a/arch/arm/mach-s3c/regs-clock.h
> +++ b/arch/arm/mach-s3c/regs-clock.h
> @@ -1,9 +1,2 @@
>  /* SPDX-License-Identifier: GPL-2.0 */
> -
> -#ifdef CONFIG_ARCH_S3C24XX
> -#include "regs-clock-s3c24xx.h"
> -#endif
> -
> -#ifdef CONFIG_ARCH_S3C64XX
>  #include "regs-clock-s3c64xx.h"
> -#endif
> diff --git a/arch/arm/mach-s3c/regs-gpio.h b/arch/arm/mach-s3c/regs-gpio.h
> index 0d41cb76d440..4e08e8609663 100644
> --- a/arch/arm/mach-s3c/regs-gpio.h
> +++ b/arch/arm/mach-s3c/regs-gpio.h
> @@ -1,9 +1,2 @@
>  /* SPDX-License-Identifier: GPL-2.0 */
> -
> -#ifdef CONFIG_ARCH_S3C24XX
> -#include "regs-gpio-s3c24xx.h"
> -#endif
> -
> -#ifdef CONFIG_ARCH_S3C64XX
>  #include "regs-gpio-s3c64xx.h"
> -#endif
> diff --git a/arch/arm/mach-s3c/regs-irq.h b/arch/arm/mach-s3c/regs-irq.h
> index 57f0dda8dbf5..4243daa54bd1 100644
> --- a/arch/arm/mach-s3c/regs-irq.h
> +++ b/arch/arm/mach-s3c/regs-irq.h
> @@ -1,9 +1,2 @@
>  /* SPDX-License-Identifier: GPL-2.0 */
> -
> -#ifdef CONFIG_ARCH_S3C24XX
> -#include "regs-irq-s3c24xx.h"
> -#endif
> -
> -#ifdef CONFIG_ARCH_S3C64XX
>  #include "regs-irq-s3c64xx.h"
> -#endif
> diff --git a/drivers/clocksource/Kconfig b/drivers/clocksource/Kconfig
> index 4469e7f555e9..fc10ecc3602d 100644
> --- a/drivers/clocksource/Kconfig
> +++ b/drivers/clocksource/Kconfig
> @@ -441,7 +441,7 @@ config CLKSRC_EXYNOS_MCT
>  config CLKSRC_SAMSUNG_PWM
>         bool "PWM timer driver for Samsung S3C, S5P" if COMPILE_TEST
>         depends on HAS_IOMEM
> -       depends on ARCH_EXYNOS || ARCH_S3C24XX || ARCH_S3C64XX || ARCH_S5PV210 || COMPILE_TEST
> +       depends on ARCH_EXYNOS || ARCH_S3C64XX || ARCH_S5PV210 || COMPILE_TEST
>         help
>           This is a new clocksource driver for the PWM timer found in
>           Samsung S3C, S5P and Exynos SoCs, replacing an earlier driver
> diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
> index f427c8ea5c7b..84d21e0a7cdf 100644
> --- a/drivers/i2c/busses/Kconfig
> +++ b/drivers/i2c/busses/Kconfig
> @@ -1009,8 +1009,7 @@ config I2C_RZV2M
>
>  config I2C_S3C2410
>         tristate "S3C/Exynos I2C Driver"
> -       depends on ARCH_EXYNOS || ARCH_S3C24XX || ARCH_S3C64XX || \
> -                  ARCH_S5PV210 || COMPILE_TEST
> +       depends on ARCH_EXYNOS || ARCH_S3C64XX || ARCH_S5PV210 || COMPILE_TEST
>         help
>           Say Y here to include support for I2C controller in the
>           Samsung SoCs (S3C, S5Pv210, Exynos).
> diff --git a/drivers/i2c/busses/i2c-s3c2410.c b/drivers/i2c/busses/i2c-s3c2410.c
> index 36dab9cd208c..45e9df81345a 100644
> --- a/drivers/i2c/busses/i2c-s3c2410.c
> +++ b/drivers/i2c/busses/i2c-s3c2410.c
> @@ -116,9 +116,6 @@ struct s3c24xx_i2c {
>         struct s3c2410_platform_i2c     *pdata;
>         struct gpio_desc        *gpios[2];
>         struct pinctrl          *pctrl;
> -#if defined(CONFIG_ARM_S3C24XX_CPUFREQ)
> -       struct notifier_block   freq_transition;
> -#endif
>         struct regmap           *sysreg;
>         unsigned int            sys_i2c_cfg;
>  };
> @@ -885,65 +882,6 @@ static int s3c24xx_i2c_clockrate(struct s3c24xx_i2c *i2c, unsigned int *got)
>         return 0;
>  }
>
> -#if defined(CONFIG_ARM_S3C24XX_CPUFREQ)
> -
> -#define freq_to_i2c(_n) container_of(_n, struct s3c24xx_i2c, freq_transition)
> -
> -static int s3c24xx_i2c_cpufreq_transition(struct notifier_block *nb,
> -                                         unsigned long val, void *data)
> -{
> -       struct s3c24xx_i2c *i2c = freq_to_i2c(nb);
> -       unsigned int got;
> -       int delta_f;
> -       int ret;
> -
> -       delta_f = clk_get_rate(i2c->clk) - i2c->clkrate;
> -
> -       /* if we're post-change and the input clock has slowed down
> -        * or at pre-change and the clock is about to speed up, then
> -        * adjust our clock rate. <0 is slow, >0 speedup.
> -        */
> -
> -       if ((val == CPUFREQ_POSTCHANGE && delta_f < 0) ||
> -           (val == CPUFREQ_PRECHANGE && delta_f > 0)) {
> -               i2c_lock_bus(&i2c->adap, I2C_LOCK_ROOT_ADAPTER);
> -               ret = s3c24xx_i2c_clockrate(i2c, &got);
> -               i2c_unlock_bus(&i2c->adap, I2C_LOCK_ROOT_ADAPTER);
> -
> -               if (ret < 0)
> -                       dev_err(i2c->dev, "cannot find frequency (%d)\n", ret);
> -               else
> -                       dev_info(i2c->dev, "setting freq %d\n", got);
> -       }
> -
> -       return 0;
> -}
> -
> -static inline int s3c24xx_i2c_register_cpufreq(struct s3c24xx_i2c *i2c)
> -{
> -       i2c->freq_transition.notifier_call = s3c24xx_i2c_cpufreq_transition;
> -
> -       return cpufreq_register_notifier(&i2c->freq_transition,
> -                                        CPUFREQ_TRANSITION_NOTIFIER);
> -}
> -
> -static inline void s3c24xx_i2c_deregister_cpufreq(struct s3c24xx_i2c *i2c)
> -{
> -       cpufreq_unregister_notifier(&i2c->freq_transition,
> -                                   CPUFREQ_TRANSITION_NOTIFIER);
> -}
> -
> -#else
> -static inline int s3c24xx_i2c_register_cpufreq(struct s3c24xx_i2c *i2c)
> -{
> -       return 0;
> -}
> -
> -static inline void s3c24xx_i2c_deregister_cpufreq(struct s3c24xx_i2c *i2c)
> -{
> -}
> -#endif
> -
>  #ifdef CONFIG_OF
>  static int s3c24xx_i2c_parse_dt_gpio(struct s3c24xx_i2c *i2c)
>  {
> @@ -1152,13 +1090,6 @@ static int s3c24xx_i2c_probe(struct platform_device *pdev)
>                 }
>         }
>
> -       ret = s3c24xx_i2c_register_cpufreq(i2c);
> -       if (ret < 0) {
> -               dev_err(&pdev->dev, "failed to register cpufreq notifier\n");
> -               clk_unprepare(i2c->clk);
> -               return ret;
> -       }
> -
>         /*
>          * Note, previous versions of the driver used i2c_add_adapter()
>          * to add the bus at any number. We now pass the bus number via
> @@ -1175,7 +1106,6 @@ static int s3c24xx_i2c_probe(struct platform_device *pdev)
>         ret = i2c_add_numbered_adapter(&i2c->adap);
>         if (ret < 0) {
>                 pm_runtime_disable(&pdev->dev);
> -               s3c24xx_i2c_deregister_cpufreq(i2c);
>                 clk_unprepare(i2c->clk);
>                 return ret;
>         }
> @@ -1192,8 +1122,6 @@ static int s3c24xx_i2c_remove(struct platform_device *pdev)
>
>         pm_runtime_disable(&pdev->dev);
>
> -       s3c24xx_i2c_deregister_cpufreq(i2c);
> -
>         i2c_del_adapter(&i2c->adap);
>
>         return 0;
> diff --git a/drivers/iio/adc/Kconfig b/drivers/iio/adc/Kconfig
> index 791612ca6012..9de7f05d40e2 100644
> --- a/drivers/iio/adc/Kconfig
> +++ b/drivers/iio/adc/Kconfig
> @@ -437,11 +437,11 @@ config EP93XX_ADC
>
>  config EXYNOS_ADC
>         tristate "Exynos ADC driver support"
> -       depends on ARCH_EXYNOS || ARCH_S3C24XX || ARCH_S3C64XX || ARCH_S5PV210 || (OF && COMPILE_TEST)
> +       depends on ARCH_EXYNOS || ARCH_S3C64XX || ARCH_S5PV210 || (OF && COMPILE_TEST)
>         depends on HAS_IOMEM
>         help
> -         Driver for the ADC block found in the Samsung S3C (S3C2410, S3C2416,
> -         S3C2440, S3C2443, S3C6410), S5Pv210 and Exynos SoCs.
> +         Driver for the ADC block found in the Samsung S3C6410, S5Pv210 and
> +         Exynos SoCs.
>           Choose Y here only if you build for such Samsung SoC.
>
>           To compile this driver as a module, choose M here: the module will be
> diff --git a/drivers/media/platform/samsung/s3c-camif/Kconfig b/drivers/media/platform/samsung/s3c-camif/Kconfig
> index 8cb8d1ac3edc..f359f6382fff 100644
> --- a/drivers/media/platform/samsung/s3c-camif/Kconfig
> +++ b/drivers/media/platform/samsung/s3c-camif/Kconfig
> @@ -1,15 +1,15 @@
>  # SPDX-License-Identifier: GPL-2.0-only
>  config VIDEO_S3C_CAMIF
> -       tristate "Samsung S3C24XX/S3C64XX SoC Camera Interface driver"
> +       tristate "Samsung 3C64XX SoC Camera Interface driver"
>         depends on V4L_PLATFORM_DRIVERS
>         depends on VIDEO_DEV && I2C && PM
> -       depends on ARCH_S3C64XX || PLAT_S3C24XX || COMPILE_TEST
> +       depends on ARCH_S3C64XX || COMPILE_TEST
>         select MEDIA_CONTROLLER
>         select VIDEO_V4L2_SUBDEV_API
>         select VIDEOBUF2_DMA_CONTIG
>         help
> -         This is a v4l2 driver for s3c24xx and s3c64xx SoC series camera
> -         host interface (CAMIF).
> +         This is a v4l2 driver for s3c64xx SoC series camera host interface
> +         (CAMIF).
>
>           To compile this driver as a module, choose M here: the module
>           will be called s3c-camif.
> diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig
> index 84dd37ff2735..79d8ddf1f616 100644
> --- a/drivers/mmc/host/Kconfig
> +++ b/drivers/mmc/host/Kconfig
> @@ -312,9 +312,8 @@ config MMC_SDHCI_S3C
>         depends on PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST
>         help
>           This selects the Secure Digital Host Controller Interface (SDHCI)
> -         often referrered to as the HSMMC block in some of the Samsung S3C
> -         (S3C2416, S3C2443, S3C6410), S5Pv210 and Exynos (Exynso4210,
> -         Exynos4412) SoCs.
> +         often referrered to as the HSMMC block in some of the Samsung
> +         S3C6410, S5Pv210 and Exynos (Exynso4210, Exynos4412) SoCs.
>
>           If you have a controller with this interface (thereforeyou build for
>           such Samsung SoC), say Y or M here.
> diff --git a/drivers/mtd/nand/raw/Kconfig b/drivers/mtd/nand/raw/Kconfig
> index 280a55139387..a347833b8f29 100644
> --- a/drivers/mtd/nand/raw/Kconfig
> +++ b/drivers/mtd/nand/raw/Kconfig
> @@ -79,7 +79,7 @@ config MTD_NAND_NDFC
>
>  config MTD_NAND_S3C2410
>         tristate "Samsung S3C NAND controller"
> -       depends on ARCH_S3C24XX || ARCH_S3C64XX
> +       depends on ARCH_S3C64XX
>         help
>           This enables the NAND flash controller on the S3C24xx and S3C64xx
>           SoCs
> diff --git a/drivers/mtd/nand/raw/s3c2410.c b/drivers/mtd/nand/raw/s3c2410.c
> index f0a4535c812a..80d96f94d6cb 100644
> --- a/drivers/mtd/nand/raw/s3c2410.c
> +++ b/drivers/mtd/nand/raw/s3c2410.c
> @@ -166,10 +166,6 @@ struct s3c2410_nand_info {
>         enum s3c_nand_clk_state         clk_state;
>
>         enum s3c_cpu_type               cpu_type;
> -
> -#ifdef CONFIG_ARM_S3C24XX_CPUFREQ
> -       struct notifier_block   freq_transition;
> -#endif
>  };
>
>  struct s3c24XX_nand_devtype_data {
> @@ -711,54 +707,6 @@ static void s3c2440_nand_write_buf(struct nand_chip *this, const u_char *buf,
>         }
>  }
>
> -/* cpufreq driver support */
> -
> -#ifdef CONFIG_ARM_S3C24XX_CPUFREQ
> -
> -static int s3c2410_nand_cpufreq_transition(struct notifier_block *nb,
> -                                         unsigned long val, void *data)
> -{
> -       struct s3c2410_nand_info *info;
> -       unsigned long newclk;
> -
> -       info = container_of(nb, struct s3c2410_nand_info, freq_transition);
> -       newclk = clk_get_rate(info->clk);
> -
> -       if ((val == CPUFREQ_POSTCHANGE && newclk < info->clk_rate) ||
> -           (val == CPUFREQ_PRECHANGE && newclk > info->clk_rate)) {
> -               s3c2410_nand_setrate(info);
> -       }
> -
> -       return 0;
> -}
> -
> -static inline int s3c2410_nand_cpufreq_register(struct s3c2410_nand_info *info)
> -{
> -       info->freq_transition.notifier_call = s3c2410_nand_cpufreq_transition;
> -
> -       return cpufreq_register_notifier(&info->freq_transition,
> -                                        CPUFREQ_TRANSITION_NOTIFIER);
> -}
> -
> -static inline void
> -s3c2410_nand_cpufreq_deregister(struct s3c2410_nand_info *info)
> -{
> -       cpufreq_unregister_notifier(&info->freq_transition,
> -                                   CPUFREQ_TRANSITION_NOTIFIER);
> -}
> -
> -#else
> -static inline int s3c2410_nand_cpufreq_register(struct s3c2410_nand_info *info)
> -{
> -       return 0;
> -}
> -
> -static inline void
> -s3c2410_nand_cpufreq_deregister(struct s3c2410_nand_info *info)
> -{
> -}
> -#endif
> -
>  /* device management functions */
>
>  static int s3c24xx_nand_remove(struct platform_device *pdev)
> @@ -768,8 +716,6 @@ static int s3c24xx_nand_remove(struct platform_device *pdev)
>         if (info == NULL)
>                 return 0;
>
> -       s3c2410_nand_cpufreq_deregister(info);
> -
>         /* Release all our mtds  and their partitions, then go through
>          * freeing the resources used
>          */
> @@ -1184,12 +1130,6 @@ static int s3c24xx_nand_probe(struct platform_device *pdev)
>         if (err != 0)
>                 goto exit_error;
>
> -       err = s3c2410_nand_cpufreq_register(info);
> -       if (err < 0) {
> -               dev_err(&pdev->dev, "failed to init cpufreq support\n");
> -               goto exit_error;
> -       }
> -
>         if (allow_clk_suspend(info)) {
>                 dev_info(&pdev->dev, "clock idle support enabled\n");
>                 s3c2410_nand_clk_set_state(info, CLOCK_SUSPEND);
> diff --git a/drivers/pinctrl/samsung/pinctrl-samsung.c b/drivers/pinctrl/samsung/pinctrl-samsung.c
> index bd13b5ef246d..1a478854293f 100644
> --- a/drivers/pinctrl/samsung/pinctrl-samsung.c
> +++ b/drivers/pinctrl/samsung/pinctrl-samsung.c
> @@ -1322,16 +1322,6 @@ static const struct of_device_id samsung_pinctrl_dt_match[] = {
>  #ifdef CONFIG_PINCTRL_S3C64XX
>         { .compatible = "samsung,s3c64xx-pinctrl",
>                 .data = &s3c64xx_of_data },
> -#endif
> -#ifdef CONFIG_PINCTRL_S3C24XX
> -       { .compatible = "samsung,s3c2412-pinctrl",
> -               .data = &s3c2412_of_data },
> -       { .compatible = "samsung,s3c2416-pinctrl",
> -               .data = &s3c2416_of_data },
> -       { .compatible = "samsung,s3c2440-pinctrl",
> -               .data = &s3c2440_of_data },
> -       { .compatible = "samsung,s3c2450-pinctrl",
> -               .data = &s3c2450_of_data },
>  #endif
>         {},
>  };
> diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig
> index 312dccfa3f18..d13ca620ea5d 100644
> --- a/drivers/rtc/Kconfig
> +++ b/drivers/rtc/Kconfig
> @@ -1406,18 +1406,14 @@ config RTC_DRV_OMAP
>
>  config RTC_DRV_S3C
>         tristate "Samsung S3C series SoC RTC"
> -       depends on ARCH_EXYNOS || ARCH_S3C64XX || ARCH_S3C24XX || ARCH_S5PV210 || \
> +       depends on ARCH_EXYNOS || ARCH_S3C64XX || ARCH_S5PV210 || \
>                    COMPILE_TEST
>         help
>           RTC (Realtime Clock) driver for the clock inbuilt into the
> -         Samsung S3C24XX series of SoCs. This can provide periodic
> +         Samsung S3C64XX series of SoCs. This can provide periodic
>           interrupt rates from 1Hz to 64Hz for user programs, and
>           wakeup from Alarm.
>
> -         The driver currently supports the common features on all the
> -         S3C24XX range, such as the S3C2410, S3C2412, S3C2413, S3C2440
> -         and S3C2442.
> -
>           This driver can also be build as a module. If so, the module
>           will be called rtc-s3c.
>
> diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
> index 434f83168546..3ba8a39655a3 100644
> --- a/drivers/tty/serial/Kconfig
> +++ b/drivers/tty/serial/Kconfig
> @@ -242,23 +242,23 @@ config SERIAL_SAMSUNG
>         select SERIAL_CORE
>         help
>           Support for the on-chip UARTs on the Samsung
> -         S3C24xx/S3C64xx/S5Pv210/Exynos and Apple M1 SoCs, providing
> +         S3C64xx/S5Pv210/Exynos and Apple M1 SoCs, providing
>           /dev/ttySAC0, 1 and 2 (note, some machines may not provide all of
>           these ports, depending on how the serial port pins are configured.
> +
>           Choose Y/M here only if you build for such SoC.
>
>  config SERIAL_SAMSUNG_UARTS_4
>         bool
>         depends on SERIAL_SAMSUNG
> -       default y if !(CPU_S3C2410 || CPU_S3C2412 || CPU_S3C2440 || CPU_S3C2442)
> +       default y
>         help
>           Internal node for the common case of 4 Samsung compatible UARTs
>
>  config SERIAL_SAMSUNG_UARTS
>         int
>         depends on SERIAL_SAMSUNG
> -       default 4 if SERIAL_SAMSUNG_UARTS_4 || CPU_S3C2416
> -       default 3
> +       default 4
>         help
>           Select the number of available UART ports for the Samsung S3C
>           serial driver
> diff --git a/drivers/tty/serial/samsung_tty.c b/drivers/tty/serial/samsung_tty.c
> index 77d1363029f5..5adf3963b2f6 100644
> --- a/drivers/tty/serial/samsung_tty.c
> +++ b/drivers/tty/serial/samsung_tty.c
> @@ -152,10 +152,6 @@ struct s3c24xx_uart_port {
>         const struct s3c2410_uartcfg    *cfg;
>
>         struct s3c24xx_uart_dma         *dma;
> -
> -#ifdef CONFIG_ARM_S3C24XX_CPUFREQ
> -       struct notifier_block           freq_transition;
> -#endif
>  };
>
>  static void s3c24xx_serial_tx_chars(struct s3c24xx_uart_port *ourport);
> @@ -1859,93 +1855,6 @@ static void s3c24xx_serial_resetport(struct uart_port *port,
>         udelay(1);
>  }
>
> -#ifdef CONFIG_ARM_S3C24XX_CPUFREQ
> -
> -static int s3c24xx_serial_cpufreq_transition(struct notifier_block *nb,
> -                                            unsigned long val, void *data)
> -{
> -       struct s3c24xx_uart_port *port;
> -       struct uart_port *uport;
> -
> -       port = container_of(nb, struct s3c24xx_uart_port, freq_transition);
> -       uport = &port->port;
> -
> -       /* check to see if port is enabled */
> -
> -       if (port->pm_level != 0)
> -               return 0;
> -
> -       /* try and work out if the baudrate is changing, we can detect
> -        * a change in rate, but we do not have support for detecting
> -        * a disturbance in the clock-rate over the change.
> -        */
> -
> -       if (IS_ERR(port->baudclk))
> -               goto exit;
> -
> -       if (port->baudclk_rate == clk_get_rate(port->baudclk))
> -               goto exit;
> -
> -       if (val == CPUFREQ_PRECHANGE) {
> -               /* we should really shut the port down whilst the
> -                * frequency change is in progress.
> -                */
> -
> -       } else if (val == CPUFREQ_POSTCHANGE) {
> -               struct ktermios *termios;
> -               struct tty_struct *tty;
> -
> -               if (uport->state == NULL)
> -                       goto exit;
> -
> -               tty = uport->state->port.tty;
> -
> -               if (tty == NULL)
> -                       goto exit;
> -
> -               termios = &tty->termios;
> -
> -               if (termios == NULL) {
> -                       dev_warn(uport->dev, "%s: no termios?\n", __func__);
> -                       goto exit;
> -               }
> -
> -               s3c24xx_serial_set_termios(uport, termios, NULL);
> -       }
> -
> -exit:
> -       return 0;
> -}
> -
> -static inline int
> -s3c24xx_serial_cpufreq_register(struct s3c24xx_uart_port *port)
> -{
> -       port->freq_transition.notifier_call = s3c24xx_serial_cpufreq_transition;
> -
> -       return cpufreq_register_notifier(&port->freq_transition,
> -                                        CPUFREQ_TRANSITION_NOTIFIER);
> -}
> -
> -static inline void
> -s3c24xx_serial_cpufreq_deregister(struct s3c24xx_uart_port *port)
> -{
> -       cpufreq_unregister_notifier(&port->freq_transition,
> -                                   CPUFREQ_TRANSITION_NOTIFIER);
> -}
> -
> -#else
> -static inline int
> -s3c24xx_serial_cpufreq_register(struct s3c24xx_uart_port *port)
> -{
> -       return 0;
> -}
> -
> -static inline void
> -s3c24xx_serial_cpufreq_deregister(struct s3c24xx_uart_port *port)
> -{
> -}
> -#endif
> -
>  static int s3c24xx_serial_enable_baudclk(struct s3c24xx_uart_port *ourport)
>  {
>         struct device *dev = ourport->port.dev;
> @@ -2237,10 +2146,6 @@ static int s3c24xx_serial_probe(struct platform_device *pdev)
>         if (!IS_ERR(ourport->baudclk))
>                 clk_disable_unprepare(ourport->baudclk);
>
> -       ret = s3c24xx_serial_cpufreq_register(ourport);
> -       if (ret < 0)
> -               dev_err(&pdev->dev, "failed to add cpufreq notifier\n");
> -
>         probe_index++;
>
>         return 0;
> @@ -2251,7 +2156,6 @@ static int s3c24xx_serial_remove(struct platform_device *dev)
>         struct uart_port *port = s3c24xx_dev_to_port(&dev->dev);
>
>         if (port) {
> -               s3c24xx_serial_cpufreq_deregister(to_ourport(port));
>                 uart_remove_one_port(&s3c24xx_uart_drv, port);
>         }
>
> @@ -2589,94 +2493,6 @@ static struct console s3c24xx_serial_console = {
>  };
>  #endif /* CONFIG_SERIAL_SAMSUNG_CONSOLE */
>
> -#ifdef CONFIG_CPU_S3C2410
> -static const struct s3c24xx_serial_drv_data s3c2410_serial_drv_data = {
> -       .info = {
> -               .name           = "Samsung S3C2410 UART",
> -               .type           = TYPE_S3C24XX,
> -               .port_type      = PORT_S3C2410,
> -               .fifosize       = 16,
> -               .rx_fifomask    = S3C2410_UFSTAT_RXMASK,
> -               .rx_fifoshift   = S3C2410_UFSTAT_RXSHIFT,
> -               .rx_fifofull    = S3C2410_UFSTAT_RXFULL,
> -               .tx_fifofull    = S3C2410_UFSTAT_TXFULL,
> -               .tx_fifomask    = S3C2410_UFSTAT_TXMASK,
> -               .tx_fifoshift   = S3C2410_UFSTAT_TXSHIFT,
> -               .def_clk_sel    = S3C2410_UCON_CLKSEL0,
> -               .num_clks       = 2,
> -               .clksel_mask    = S3C2410_UCON_CLKMASK,
> -               .clksel_shift   = S3C2410_UCON_CLKSHIFT,
> -       },
> -       .def_cfg = {
> -               .ucon           = S3C2410_UCON_DEFAULT,
> -               .ufcon          = S3C2410_UFCON_DEFAULT,
> -       },
> -};
> -#define S3C2410_SERIAL_DRV_DATA (&s3c2410_serial_drv_data)
> -#else
> -#define S3C2410_SERIAL_DRV_DATA NULL
> -#endif
> -
> -#ifdef CONFIG_CPU_S3C2412
> -static const struct s3c24xx_serial_drv_data s3c2412_serial_drv_data = {
> -       .info = {
> -               .name           = "Samsung S3C2412 UART",
> -               .type           = TYPE_S3C24XX,
> -               .port_type      = PORT_S3C2412,
> -               .fifosize       = 64,
> -               .has_divslot    = 1,
> -               .rx_fifomask    = S3C2440_UFSTAT_RXMASK,
> -               .rx_fifoshift   = S3C2440_UFSTAT_RXSHIFT,
> -               .rx_fifofull    = S3C2440_UFSTAT_RXFULL,
> -               .tx_fifofull    = S3C2440_UFSTAT_TXFULL,
> -               .tx_fifomask    = S3C2440_UFSTAT_TXMASK,
> -               .tx_fifoshift   = S3C2440_UFSTAT_TXSHIFT,
> -               .def_clk_sel    = S3C2410_UCON_CLKSEL2,
> -               .num_clks       = 4,
> -               .clksel_mask    = S3C2412_UCON_CLKMASK,
> -               .clksel_shift   = S3C2412_UCON_CLKSHIFT,
> -       },
> -       .def_cfg = {
> -               .ucon           = S3C2410_UCON_DEFAULT,
> -               .ufcon          = S3C2410_UFCON_DEFAULT,
> -       },
> -};
> -#define S3C2412_SERIAL_DRV_DATA (&s3c2412_serial_drv_data)
> -#else
> -#define S3C2412_SERIAL_DRV_DATA NULL
> -#endif
> -
> -#if defined(CONFIG_CPU_S3C2440) || defined(CONFIG_CPU_S3C2416) || \
> -       defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2442)
> -static const struct s3c24xx_serial_drv_data s3c2440_serial_drv_data = {
> -       .info = {
> -               .name           = "Samsung S3C2440 UART",
> -               .type           = TYPE_S3C24XX,
> -               .port_type      = PORT_S3C2440,
> -               .fifosize       = 64,
> -               .has_divslot    = 1,
> -               .rx_fifomask    = S3C2440_UFSTAT_RXMASK,
> -               .rx_fifoshift   = S3C2440_UFSTAT_RXSHIFT,
> -               .rx_fifofull    = S3C2440_UFSTAT_RXFULL,
> -               .tx_fifofull    = S3C2440_UFSTAT_TXFULL,
> -               .tx_fifomask    = S3C2440_UFSTAT_TXMASK,
> -               .tx_fifoshift   = S3C2440_UFSTAT_TXSHIFT,
> -               .def_clk_sel    = S3C2410_UCON_CLKSEL2,
> -               .num_clks       = 4,
> -               .clksel_mask    = S3C2412_UCON_CLKMASK,
> -               .clksel_shift   = S3C2412_UCON_CLKSHIFT,
> -               .ucon_mask      = S3C2440_UCON0_DIVMASK,
> -       },
> -       .def_cfg = {
> -               .ucon           = S3C2410_UCON_DEFAULT,
> -               .ufcon          = S3C2410_UFCON_DEFAULT,
> -       },
> -};
> -#define S3C2440_SERIAL_DRV_DATA (&s3c2440_serial_drv_data)
> -#else
> -#define S3C2440_SERIAL_DRV_DATA NULL
> -#endif
> -
>  #if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
>  static const struct s3c24xx_serial_drv_data s3c6400_serial_drv_data = {
>         .info = {
> @@ -2845,15 +2661,6 @@ static const struct s3c24xx_serial_drv_data artpec8_serial_drv_data = {
>
>  static const struct platform_device_id s3c24xx_serial_driver_ids[] = {
>         {
> -               .name           = "s3c2410-uart",
> -               .driver_data    = (kernel_ulong_t)S3C2410_SERIAL_DRV_DATA,
> -       }, {
> -               .name           = "s3c2412-uart",
> -               .driver_data    = (kernel_ulong_t)S3C2412_SERIAL_DRV_DATA,
> -       }, {
> -               .name           = "s3c2440-uart",
> -               .driver_data    = (kernel_ulong_t)S3C2440_SERIAL_DRV_DATA,
> -       }, {
>                 .name           = "s3c6400-uart",
>                 .driver_data    = (kernel_ulong_t)S3C6400_SERIAL_DRV_DATA,
>         }, {
> @@ -2881,12 +2688,6 @@ MODULE_DEVICE_TABLE(platform, s3c24xx_serial_driver_ids);
>
>  #ifdef CONFIG_OF
>  static const struct of_device_id s3c24xx_uart_dt_match[] = {
> -       { .compatible = "samsung,s3c2410-uart",
> -               .data = S3C2410_SERIAL_DRV_DATA },
> -       { .compatible = "samsung,s3c2412-uart",
> -               .data = S3C2412_SERIAL_DRV_DATA },
> -       { .compatible = "samsung,s3c2440-uart",
> -               .data = S3C2440_SERIAL_DRV_DATA },
>         { .compatible = "samsung,s3c6400-uart",
>                 .data = S3C6400_SERIAL_DRV_DATA },
>         { .compatible = "samsung,s5pv210-uart",
> diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
> index fb7b603dddf8..8ba4fe9364b1 100644
> --- a/drivers/usb/host/Kconfig
> +++ b/drivers/usb/host/Kconfig
> @@ -443,12 +443,12 @@ config USB_OHCI_HCD_STI
>           STMicroelectronics consumer electronics SoC's.
>
>  config USB_OHCI_HCD_S3C2410
> -       tristate "OHCI support for Samsung S3C24xx/S3C64xx SoC series"
> -       depends on USB_OHCI_HCD && (ARCH_S3C24XX || ARCH_S3C64XX || COMPILE_TEST)
> -       default y if (ARCH_S3C24XX || ARCH_S3C64XX)
> +       tristate "OHCI support for Samsung S3C64xx SoC series"
> +       depends on USB_OHCI_HCD && (ARCH_S3C64XX || COMPILE_TEST)
> +       default ARCH_S3C64XX
>         help
>           Enables support for the on-chip OHCI controller on
> -         S3C24xx/S3C64xx chips.
> +         S3C64xx chips.
>
>  config USB_OHCI_HCD_LPC32XX
>         tristate "Support for LPC on-chip OHCI USB controller"
> diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
> index b64bc49c7f30..eee7df45347a 100644
> --- a/drivers/watchdog/Kconfig
> +++ b/drivers/watchdog/Kconfig
> @@ -491,14 +491,13 @@ config IXP4XX_WATCHDOG
>           Say N if you are unsure.
>
>  config S3C2410_WATCHDOG
> -       tristate "S3C2410 Watchdog"
> -       depends on ARCH_S3C24XX || ARCH_S3C64XX || ARCH_S5PV210 || ARCH_EXYNOS || \
> -                  COMPILE_TEST
> +       tristate "S3C6410/S5Pv210/Exynos Watchdog"
> +       depends on ARCH_S3C64XX || ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST
>         select WATCHDOG_CORE
>         select MFD_SYSCON if ARCH_EXYNOS
>         help
> -         Watchdog timer block in the Samsung S3C24xx, S3C64xx, S5Pv210 and
> -         Exynos SoCs. This will reboot the system when the timer expires with
> +         Watchdog timer block in the Samsung S3C64xx, S5Pv210 and Exynos
> +         SoCs. This will reboot the system when the timer expires with
>           the watchdog enabled.
>
>           The driver is limited by the speed of the system's PCLK
> diff --git a/drivers/watchdog/s3c2410_wdt.c b/drivers/watchdog/s3c2410_wdt.c
> index d3fc8ed886ff..200ba236a72e 100644
> --- a/drivers/watchdog/s3c2410_wdt.c
> +++ b/drivers/watchdog/s3c2410_wdt.c
> @@ -562,73 +562,6 @@ static irqreturn_t s3c2410wdt_irq(int irqno, void *param)
>         return IRQ_HANDLED;
>  }
>
> -#ifdef CONFIG_ARM_S3C24XX_CPUFREQ
> -
> -static int s3c2410wdt_cpufreq_transition(struct notifier_block *nb,
> -                                         unsigned long val, void *data)
> -{
> -       int ret;
> -       struct s3c2410_wdt *wdt = freq_to_wdt(nb);
> -
> -       if (!s3c2410wdt_is_running(wdt))
> -               goto done;
> -
> -       if (val == CPUFREQ_PRECHANGE) {
> -               /* To ensure that over the change we don't cause the
> -                * watchdog to trigger, we perform an keep-alive if
> -                * the watchdog is running.
> -                */
> -
> -               s3c2410wdt_keepalive(&wdt->wdt_device);
> -       } else if (val == CPUFREQ_POSTCHANGE) {
> -               s3c2410wdt_stop(&wdt->wdt_device);
> -
> -               ret = s3c2410wdt_set_heartbeat(&wdt->wdt_device,
> -                                               wdt->wdt_device.timeout);
> -
> -               if (ret >= 0)
> -                       s3c2410wdt_start(&wdt->wdt_device);
> -               else
> -                       goto err;
> -       }
> -
> -done:
> -       return 0;
> -
> - err:
> -       dev_err(wdt->dev, "cannot set new value for timeout %d\n",
> -                               wdt->wdt_device.timeout);
> -       return ret;
> -}
> -
> -static inline int s3c2410wdt_cpufreq_register(struct s3c2410_wdt *wdt)
> -{
> -       wdt->freq_transition.notifier_call = s3c2410wdt_cpufreq_transition;
> -
> -       return cpufreq_register_notifier(&wdt->freq_transition,
> -                                        CPUFREQ_TRANSITION_NOTIFIER);
> -}
> -
> -static inline void s3c2410wdt_cpufreq_deregister(struct s3c2410_wdt *wdt)
> -{
> -       wdt->freq_transition.notifier_call = s3c2410wdt_cpufreq_transition;
> -
> -       cpufreq_unregister_notifier(&wdt->freq_transition,
> -                                   CPUFREQ_TRANSITION_NOTIFIER);
> -}
> -
> -#else
> -
> -static inline int s3c2410wdt_cpufreq_register(struct s3c2410_wdt *wdt)
> -{
> -       return 0;
> -}
> -
> -static inline void s3c2410wdt_cpufreq_deregister(struct s3c2410_wdt *wdt)
> -{
> -}
> -#endif
> -
>  static inline unsigned int s3c2410wdt_get_bootstatus(struct s3c2410_wdt *wdt)
>  {
>         unsigned int rst_stat;
> @@ -761,12 +694,6 @@ static int s3c2410wdt_probe(struct platform_device *pdev)
>         wdt->wdt_device.min_timeout = 1;
>         wdt->wdt_device.max_timeout = s3c2410wdt_max_timeout(wdt);
>
> -       ret = s3c2410wdt_cpufreq_register(wdt);
> -       if (ret < 0) {
> -               dev_err(dev, "failed to register cpufreq\n");
> -               goto err_src_clk;
> -       }
> -
>         watchdog_set_drvdata(&wdt->wdt_device, wdt);
>
>         /* see if we can actually set the requested timer margin, and if
> @@ -783,7 +710,7 @@ static int s3c2410wdt_probe(struct platform_device *pdev)
>                                  S3C2410_WATCHDOG_DEFAULT_TIME);
>                 } else {
>                         dev_err(dev, "failed to use default timeout\n");
> -                       goto err_cpufreq;
> +                       goto err_src_clk;
>                 }
>         }
>
> @@ -791,7 +718,7 @@ static int s3c2410wdt_probe(struct platform_device *pdev)
>                                pdev->name, pdev);
>         if (ret != 0) {
>                 dev_err(dev, "failed to install irq (%d)\n", ret);
> -               goto err_cpufreq;
> +               goto err_src_clk;
>         }
>
>         watchdog_set_nowayout(&wdt->wdt_device, nowayout);
> @@ -817,7 +744,7 @@ static int s3c2410wdt_probe(struct platform_device *pdev)
>
>         ret = watchdog_register_device(&wdt->wdt_device);
>         if (ret)
> -               goto err_cpufreq;
> +               goto err_src_clk;
>
>         ret = s3c2410wdt_enable(wdt, true);
>         if (ret < 0)
> @@ -839,9 +766,6 @@ static int s3c2410wdt_probe(struct platform_device *pdev)
>   err_unregister:
>         watchdog_unregister_device(&wdt->wdt_device);
>
> - err_cpufreq:
> -       s3c2410wdt_cpufreq_deregister(wdt);
> -
>   err_src_clk:
>         clk_disable_unprepare(wdt->src_clk);
>
> @@ -862,8 +786,6 @@ static int s3c2410wdt_remove(struct platform_device *dev)
>
>         watchdog_unregister_device(&wdt->wdt_device);
>
> -       s3c2410wdt_cpufreq_deregister(wdt);
> -
>         clk_disable_unprepare(wdt->src_clk);
>         clk_disable_unprepare(wdt->bus_clk);
>
> diff --git a/include/linux/clk/samsung.h b/include/linux/clk/samsung.h
> index 38b774001712..0cf7aac83439 100644
> --- a/include/linux/clk/samsung.h
> +++ b/include/linux/clk/samsung.h
> @@ -21,36 +21,4 @@ static inline void s3c64xx_clk_init(struct device_node *np,
>                                     bool s3c6400, void __iomem *base) { }
>  #endif /* CONFIG_S3C64XX_COMMON_CLK */
>
> -#ifdef CONFIG_S3C2410_COMMON_CLK
> -void s3c2410_common_clk_init(struct device_node *np, unsigned long xti_f,
> -                            int current_soc,
> -                            void __iomem *reg_base);
> -#else
> -static inline void s3c2410_common_clk_init(struct device_node *np,
> -                                          unsigned long xti_f,
> -                                          int current_soc,
> -                                          void __iomem *reg_base) { }
> -#endif /* CONFIG_S3C2410_COMMON_CLK */
> -
> -#ifdef CONFIG_S3C2412_COMMON_CLK
> -void s3c2412_common_clk_init(struct device_node *np, unsigned long xti_f,
> -                            unsigned long ext_f, void __iomem *reg_base);
> -#else
> -static inline void s3c2412_common_clk_init(struct device_node *np,
> -                                          unsigned long xti_f,
> -                                          unsigned long ext_f,
> -                                          void __iomem *reg_base) { }
> -#endif /* CONFIG_S3C2412_COMMON_CLK */
> -
> -#ifdef CONFIG_S3C2443_COMMON_CLK
> -void s3c2443_common_clk_init(struct device_node *np, unsigned long xti_f,
> -                            int current_soc,
> -                            void __iomem *reg_base);
> -#else
> -static inline void s3c2443_common_clk_init(struct device_node *np,
> -                                          unsigned long xti_f,
> -                                          int current_soc,
> -                                          void __iomem *reg_base) { }
> -#endif /* CONFIG_S3C2443_COMMON_CLK */
> -
>  #endif /* __LINUX_CLK_SAMSUNG_H_ */
> diff --git a/include/linux/soc/samsung/s3c-pm.h b/include/linux/soc/samsung/s3c-pm.h
> index f9164559c99f..5b23d85d20ab 100644
> --- a/include/linux/soc/samsung/s3c-pm.h
> +++ b/include/linux/soc/samsung/s3c-pm.h
> @@ -14,58 +14,10 @@
>
>  /* PM debug functions */
>
> -/**
> - * struct pm_uart_save - save block for core UART
> - * @ulcon: Save value for S3C2410_ULCON
> - * @ucon: Save value for S3C2410_UCON
> - * @ufcon: Save value for S3C2410_UFCON
> - * @umcon: Save value for S3C2410_UMCON
> - * @ubrdiv: Save value for S3C2410_UBRDIV
> - *
> - * Save block for UART registers to be held over sleep and restored if they
> - * are needed (say by debug).
> -*/
> -struct pm_uart_save {
> -       u32     ulcon;
> -       u32     ucon;
> -       u32     ufcon;
> -       u32     umcon;
> -       u32     ubrdiv;
> -       u32     udivslot;
> -};
> -
> -#ifdef CONFIG_SAMSUNG_PM_DEBUG
> -/**
> - * s3c_pm_dbg() - low level debug function for use in suspend/resume.
> - * @msg: The message to print.
> - *
> - * This function is used mainly to debug the resume process before the system
> - * can rely on printk/console output. It uses the low-level debugging output
> - * routine printascii() to do its work.
> - */
> -extern void s3c_pm_dbg(const char *msg, ...);
> -
> -#define S3C_PMDBG(fmt...) s3c_pm_dbg(fmt)
> -
> -extern void s3c_pm_save_uarts(bool is_s3c24xx);
> -extern void s3c_pm_restore_uarts(bool is_s3c24xx);
> -
> -#ifdef CONFIG_ARCH_S3C64XX
> -extern void s3c_pm_arch_update_uart(void __iomem *regs,
> -                                   struct pm_uart_save *save);
> -#else
> -static inline void
> -s3c_pm_arch_update_uart(void __iomem *regs, struct pm_uart_save *save)
> -{
> -}
> -#endif
> -
> -#else
>  #define S3C_PMDBG(fmt...) pr_debug(fmt)
>
>  static inline void s3c_pm_save_uarts(bool is_s3c24xx) { }
>  static inline void s3c_pm_restore_uarts(bool is_s3c24xx) { }
> -#endif
>
>  /* suspend memory checking */
>
> @@ -81,14 +33,4 @@ extern void s3c_pm_check_store(void);
>  #define s3c_pm_check_store()   do { } while (0)
>  #endif
>
> -/* system device subsystems */
> -
> -extern struct bus_type s3c2410_subsys;
> -extern struct bus_type s3c2410a_subsys;
> -extern struct bus_type s3c2412_subsys;
> -extern struct bus_type s3c2416_subsys;
> -extern struct bus_type s3c2440_subsys;
> -extern struct bus_type s3c2442_subsys;
> -extern struct bus_type s3c2443_subsys;
> -
>  #endif
> --
> 2.29.2
>