Re: [PATCH 02/21] ARM: s3c: remove s3c24xx specific hacks

From: Jonathan Cameron
Date: Sun Oct 23 2022 - 06:59:48 EST


On Fri, 21 Oct 2022 22:27:35 +0200
Arnd Bergmann <arnd@xxxxxxxxxx> wrote:

> From: Arnd Bergmann <arnd@xxxxxxxx>
>
> 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@xxxxxxxx>
For the IIO Kconfig change

Acked-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx>

> ---
> 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