mail archive of the barebox mailing list
 help / color / mirror / Atom feed
* [PATCH 0/5] ARM: remove Samsung arch
@ 2023-02-28 13:57 Sascha Hauer
  2023-02-28 13:57 ` [PATCH 1/5] ARM: remove samsung arch Sascha Hauer
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Sascha Hauer @ 2023-02-28 13:57 UTC (permalink / raw)
  To: Barebox List

arch/arm/mach-samsung hasn't seen any active maintenance or interest
for a long time. It starts standing in the way for further development,
so remove it. RIP.

Sascha

Sascha Hauer (5):
  ARM: remove samsung arch
  mci: remove s3c driver
  mtd: nand: remove s3c driver
  serial: remove s3c driver
  video: remove s3c driver

 Documentation/boards/s3c/Digi-a9m2440.rst     |  93 --
 Documentation/boards/samsung.rst              |   8 -
 arch/arm/Kconfig                              |  19 -
 arch/arm/Makefile                             |  13 -
 arch/arm/boards/a9m2410/Makefile              |   4 -
 arch/arm/boards/a9m2410/a9m2410.c             | 136 ---
 arch/arm/boards/a9m2410/config.h              | 109 ---
 arch/arm/boards/a9m2410/env/bin/_update       |  36 -
 arch/arm/boards/a9m2410/env/bin/boot          |  38 -
 arch/arm/boards/a9m2410/env/bin/init          |  30 -
 arch/arm/boards/a9m2410/env/bin/update_kernel |  13 -
 arch/arm/boards/a9m2410/env/bin/update_root   |  11 -
 arch/arm/boards/a9m2410/env/config            |  26 -
 arch/arm/boards/a9m2410/lowlevel_init.S       |  39 -
 arch/arm/boards/a9m2440/Makefile              |   5 -
 arch/arm/boards/a9m2440/a9m2410dev.c          |  82 --
 arch/arm/boards/a9m2440/a9m2440.c             | 143 ----
 arch/arm/boards/a9m2440/baseboards.h          |   6 -
 arch/arm/boards/a9m2440/config.h              |  60 --
 arch/arm/boards/a9m2440/env/bin/_update       |  34 -
 arch/arm/boards/a9m2440/env/bin/boot          |  40 -
 arch/arm/boards/a9m2440/env/bin/init          |  30 -
 arch/arm/boards/a9m2440/env/bin/update_kernel |  13 -
 arch/arm/boards/a9m2440/env/bin/update_root   |  13 -
 arch/arm/boards/a9m2440/env/config            |  26 -
 arch/arm/boards/a9m2440/lowlevel_init.S       | 243 ------
 arch/arm/boards/friendlyarm-mini2440/Kconfig  |  35 -
 arch/arm/boards/friendlyarm-mini2440/Makefile |   5 -
 arch/arm/boards/friendlyarm-mini2440/config.h | 118 ---
 .../boards/friendlyarm-mini2440/env/boot/nand |   4 -
 .../friendlyarm-mini2440/env/config-board     |  16 -
 .../env/init/mtdparts-nand                    |   6 -
 .../friendlyarm-mini2440/lowlevel_init.S      |  44 -
 .../boards/friendlyarm-mini2440/mini2440.c    | 341 --------
 arch/arm/boards/friendlyarm-mini6410/Makefile |   5 -
 arch/arm/boards/friendlyarm-mini6410/config.h |  10 -
 .../defaultenv-friendlyarm-mini6410/config    |  52 --
 .../boards/friendlyarm-mini6410/lowlevel.c    |  13 -
 .../boards/friendlyarm-mini6410/mini6410.c    | 302 -------
 arch/arm/boards/friendlyarm-tiny210/Makefile  |   4 -
 arch/arm/boards/friendlyarm-tiny210/config.h  |  21 -
 .../arm/boards/friendlyarm-tiny210/lowlevel.c | 100 ---
 arch/arm/boards/friendlyarm-tiny210/tiny210.c | 102 ---
 arch/arm/boards/friendlyarm-tiny6410/Kconfig  |  21 -
 arch/arm/boards/friendlyarm-tiny6410/Makefile |   6 -
 arch/arm/boards/friendlyarm-tiny6410/config.h |  10 -
 .../defaultenv-friendlyarm-tiny6410/config    |  52 --
 .../friendlyarm-tiny6410/development-board.c  |  94 ---
 .../boards/friendlyarm-tiny6410/lowlevel.c    |  13 -
 .../boards/friendlyarm-tiny6410/tiny6410.c    |  72 --
 .../boards/friendlyarm-tiny6410/tiny6410.h    |   4 -
 arch/arm/configs/a9m2410_defconfig            |  32 -
 arch/arm/configs/a9m2440_defconfig            |  34 -
 .../configs/friendlyarm_mini2440_defconfig    |  41 -
 .../configs/friendlyarm_mini6410_defconfig    |  34 -
 .../arm/configs/friendlyarm_tiny210_defconfig |   7 -
 .../configs/friendlyarm_tiny6410_defconfig    |  35 -
 arch/arm/mach-samsung/Kconfig                 | 178 ----
 arch/arm/mach-samsung/Makefile                |  14 -
 arch/arm/mach-samsung/bbu-nand-s3c24x0.c      |  85 --
 arch/arm/mach-samsung/clocks-s3c24xx.c        | 145 ----
 arch/arm/mach-samsung/clocks-s3c64xx.c        | 338 --------
 arch/arm/mach-samsung/clocks-s5pcxx.c         |  98 ---
 arch/arm/mach-samsung/generic.c               |  51 --
 arch/arm/mach-samsung/gpio-s3c24x0.c          | 167 ----
 arch/arm/mach-samsung/gpio-s3c64xx.c          | 302 -------
 arch/arm/mach-samsung/gpio-s5pcxx.c           | 124 ---
 arch/arm/mach-samsung/include/mach/bbu.h      |  18 -
 .../include/mach/devices-s3c24xx.h            |  55 --
 .../include/mach/devices-s3c64xx.h            |  40 -
 .../mach-samsung/include/mach/iomux-s3c24x0.h | 422 ---------
 .../mach-samsung/include/mach/iomux-s3c64xx.h | 542 ------------
 .../mach-samsung/include/mach/iomux-s5pcxx.h  | 798 ------------------
 arch/arm/mach-samsung/include/mach/iomux.h    |  28 -
 .../mach-samsung/include/mach/s3c-busctl.h    |  32 -
 .../mach-samsung/include/mach/s3c-clocks.h    |  28 -
 .../mach-samsung/include/mach/s3c-generic.h   |  62 --
 .../arm/mach-samsung/include/mach/s3c-iomap.h |  23 -
 arch/arm/mach-samsung/include/mach/s3c-mci.h  |  39 -
 .../include/mach/s3c24xx-clocks.h             |  24 -
 .../mach-samsung/include/mach/s3c24xx-fb.h    |  55 --
 .../mach-samsung/include/mach/s3c24xx-gpio.h  |  77 --
 .../mach-samsung/include/mach/s3c24xx-iomap.h |  65 --
 .../mach-samsung/include/mach/s3c24xx-nand.h  |  57 --
 .../include/mach/s3c64xx-clocks.h             |  67 --
 .../mach-samsung/include/mach/s3c64xx-iomap.h |  51 --
 .../mach-samsung/include/mach/s5pcxx-clocks.h |  55 --
 .../mach-samsung/include/mach/s5pcxx-iomap.h  |  46 -
 arch/arm/mach-samsung/lowlevel-s3c24x0.S      | 305 -------
 arch/arm/mach-samsung/lowlevel-s5pcxx.c       |  61 --
 arch/arm/mach-samsung/mem-s3c24x0.c           |  79 --
 arch/arm/mach-samsung/mem-s3c64xx.c           |  66 --
 arch/arm/mach-samsung/mem-s5pcxx.c            | 320 -------
 arch/arm/mach-samsung/reset_source.c          |  56 --
 arch/arm/mach-samsung/s3c-timer.c             | 119 ---
 drivers/mci/Kconfig                           |   7 -
 drivers/mci/Makefile                          |   1 -
 drivers/mci/s3c.c                             | 762 -----------------
 drivers/mtd/nand/Kconfig                      |   7 -
 drivers/mtd/nand/Makefile                     |   2 -
 drivers/mtd/nand/nand_s3c24xx.c               | 649 --------------
 drivers/serial/Kconfig                        |  18 -
 drivers/serial/Makefile                       |   1 -
 drivers/serial/serial_s3c.c                   | 198 -----
 drivers/video/Kconfig                         |  13 -
 drivers/video/Makefile                        |   1 -
 drivers/video/s3c24xx.c                       | 411 ---------
 scripts/.gitignore                            |   1 -
 scripts/Kconfig                               |   7 -
 scripts/Makefile                              |   1 -
 110 files changed, 10074 deletions(-)
 delete mode 100644 Documentation/boards/s3c/Digi-a9m2440.rst
 delete mode 100644 Documentation/boards/samsung.rst
 delete mode 100644 arch/arm/boards/a9m2410/Makefile
 delete mode 100644 arch/arm/boards/a9m2410/a9m2410.c
 delete mode 100644 arch/arm/boards/a9m2410/config.h
 delete mode 100644 arch/arm/boards/a9m2410/env/bin/_update
 delete mode 100644 arch/arm/boards/a9m2410/env/bin/boot
 delete mode 100644 arch/arm/boards/a9m2410/env/bin/init
 delete mode 100644 arch/arm/boards/a9m2410/env/bin/update_kernel
 delete mode 100644 arch/arm/boards/a9m2410/env/bin/update_root
 delete mode 100644 arch/arm/boards/a9m2410/env/config
 delete mode 100644 arch/arm/boards/a9m2410/lowlevel_init.S
 delete mode 100644 arch/arm/boards/a9m2440/Makefile
 delete mode 100644 arch/arm/boards/a9m2440/a9m2410dev.c
 delete mode 100644 arch/arm/boards/a9m2440/a9m2440.c
 delete mode 100644 arch/arm/boards/a9m2440/baseboards.h
 delete mode 100644 arch/arm/boards/a9m2440/config.h
 delete mode 100644 arch/arm/boards/a9m2440/env/bin/_update
 delete mode 100644 arch/arm/boards/a9m2440/env/bin/boot
 delete mode 100644 arch/arm/boards/a9m2440/env/bin/init
 delete mode 100644 arch/arm/boards/a9m2440/env/bin/update_kernel
 delete mode 100644 arch/arm/boards/a9m2440/env/bin/update_root
 delete mode 100644 arch/arm/boards/a9m2440/env/config
 delete mode 100644 arch/arm/boards/a9m2440/lowlevel_init.S
 delete mode 100644 arch/arm/boards/friendlyarm-mini2440/Kconfig
 delete mode 100644 arch/arm/boards/friendlyarm-mini2440/Makefile
 delete mode 100644 arch/arm/boards/friendlyarm-mini2440/config.h
 delete mode 100644 arch/arm/boards/friendlyarm-mini2440/env/boot/nand
 delete mode 100644 arch/arm/boards/friendlyarm-mini2440/env/config-board
 delete mode 100644 arch/arm/boards/friendlyarm-mini2440/env/init/mtdparts-nand
 delete mode 100644 arch/arm/boards/friendlyarm-mini2440/lowlevel_init.S
 delete mode 100644 arch/arm/boards/friendlyarm-mini2440/mini2440.c
 delete mode 100644 arch/arm/boards/friendlyarm-mini6410/Makefile
 delete mode 100644 arch/arm/boards/friendlyarm-mini6410/config.h
 delete mode 100644 arch/arm/boards/friendlyarm-mini6410/defaultenv-friendlyarm-mini6410/config
 delete mode 100644 arch/arm/boards/friendlyarm-mini6410/lowlevel.c
 delete mode 100644 arch/arm/boards/friendlyarm-mini6410/mini6410.c
 delete mode 100644 arch/arm/boards/friendlyarm-tiny210/Makefile
 delete mode 100644 arch/arm/boards/friendlyarm-tiny210/config.h
 delete mode 100644 arch/arm/boards/friendlyarm-tiny210/lowlevel.c
 delete mode 100644 arch/arm/boards/friendlyarm-tiny210/tiny210.c
 delete mode 100644 arch/arm/boards/friendlyarm-tiny6410/Kconfig
 delete mode 100644 arch/arm/boards/friendlyarm-tiny6410/Makefile
 delete mode 100644 arch/arm/boards/friendlyarm-tiny6410/config.h
 delete mode 100644 arch/arm/boards/friendlyarm-tiny6410/defaultenv-friendlyarm-tiny6410/config
 delete mode 100644 arch/arm/boards/friendlyarm-tiny6410/development-board.c
 delete mode 100644 arch/arm/boards/friendlyarm-tiny6410/lowlevel.c
 delete mode 100644 arch/arm/boards/friendlyarm-tiny6410/tiny6410.c
 delete mode 100644 arch/arm/boards/friendlyarm-tiny6410/tiny6410.h
 delete mode 100644 arch/arm/configs/a9m2410_defconfig
 delete mode 100644 arch/arm/configs/a9m2440_defconfig
 delete mode 100644 arch/arm/configs/friendlyarm_mini2440_defconfig
 delete mode 100644 arch/arm/configs/friendlyarm_mini6410_defconfig
 delete mode 100644 arch/arm/configs/friendlyarm_tiny210_defconfig
 delete mode 100644 arch/arm/configs/friendlyarm_tiny6410_defconfig
 delete mode 100644 arch/arm/mach-samsung/Kconfig
 delete mode 100644 arch/arm/mach-samsung/Makefile
 delete mode 100644 arch/arm/mach-samsung/bbu-nand-s3c24x0.c
 delete mode 100644 arch/arm/mach-samsung/clocks-s3c24xx.c
 delete mode 100644 arch/arm/mach-samsung/clocks-s3c64xx.c
 delete mode 100644 arch/arm/mach-samsung/clocks-s5pcxx.c
 delete mode 100644 arch/arm/mach-samsung/generic.c
 delete mode 100644 arch/arm/mach-samsung/gpio-s3c24x0.c
 delete mode 100644 arch/arm/mach-samsung/gpio-s3c64xx.c
 delete mode 100644 arch/arm/mach-samsung/gpio-s5pcxx.c
 delete mode 100644 arch/arm/mach-samsung/include/mach/bbu.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/devices-s3c24xx.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/devices-s3c64xx.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/iomux-s3c24x0.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/iomux-s3c64xx.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/iomux-s5pcxx.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/iomux.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/s3c-busctl.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/s3c-clocks.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/s3c-generic.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/s3c-iomap.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/s3c-mci.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/s3c24xx-clocks.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/s3c24xx-fb.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/s3c24xx-gpio.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/s3c24xx-iomap.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/s3c24xx-nand.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/s3c64xx-clocks.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/s3c64xx-iomap.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/s5pcxx-clocks.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/s5pcxx-iomap.h
 delete mode 100644 arch/arm/mach-samsung/lowlevel-s3c24x0.S
 delete mode 100644 arch/arm/mach-samsung/lowlevel-s5pcxx.c
 delete mode 100644 arch/arm/mach-samsung/mem-s3c24x0.c
 delete mode 100644 arch/arm/mach-samsung/mem-s3c64xx.c
 delete mode 100644 arch/arm/mach-samsung/mem-s5pcxx.c
 delete mode 100644 arch/arm/mach-samsung/reset_source.c
 delete mode 100644 arch/arm/mach-samsung/s3c-timer.c
 delete mode 100644 drivers/mci/s3c.c
 delete mode 100644 drivers/mtd/nand/nand_s3c24xx.c
 delete mode 100644 drivers/serial/serial_s3c.c
 delete mode 100644 drivers/video/s3c24xx.c

-- 
2.30.2




^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/5] ARM: remove samsung arch
  2023-02-28 13:57 [PATCH 0/5] ARM: remove Samsung arch Sascha Hauer
@ 2023-02-28 13:57 ` Sascha Hauer
  2023-02-28 13:57 ` [PATCH 2/5] mci: remove s3c driver Sascha Hauer
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Sascha Hauer @ 2023-02-28 13:57 UTC (permalink / raw)
  To: Barebox List

arch/arm/mach-samsung/ hasn't seen any active maintenance or interest
for a long time. Remove the architecture, boards and defconfig files

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 Documentation/boards/s3c/Digi-a9m2440.rst     |  93 --
 Documentation/boards/samsung.rst              |   8 -
 arch/arm/Kconfig                              |  19 -
 arch/arm/Makefile                             |  13 -
 arch/arm/boards/a9m2410/Makefile              |   4 -
 arch/arm/boards/a9m2410/a9m2410.c             | 136 ---
 arch/arm/boards/a9m2410/config.h              | 109 ---
 arch/arm/boards/a9m2410/env/bin/_update       |  36 -
 arch/arm/boards/a9m2410/env/bin/boot          |  38 -
 arch/arm/boards/a9m2410/env/bin/init          |  30 -
 arch/arm/boards/a9m2410/env/bin/update_kernel |  13 -
 arch/arm/boards/a9m2410/env/bin/update_root   |  11 -
 arch/arm/boards/a9m2410/env/config            |  26 -
 arch/arm/boards/a9m2410/lowlevel_init.S       |  39 -
 arch/arm/boards/a9m2440/Makefile              |   5 -
 arch/arm/boards/a9m2440/a9m2410dev.c          |  82 --
 arch/arm/boards/a9m2440/a9m2440.c             | 143 ----
 arch/arm/boards/a9m2440/baseboards.h          |   6 -
 arch/arm/boards/a9m2440/config.h              |  60 --
 arch/arm/boards/a9m2440/env/bin/_update       |  34 -
 arch/arm/boards/a9m2440/env/bin/boot          |  40 -
 arch/arm/boards/a9m2440/env/bin/init          |  30 -
 arch/arm/boards/a9m2440/env/bin/update_kernel |  13 -
 arch/arm/boards/a9m2440/env/bin/update_root   |  13 -
 arch/arm/boards/a9m2440/env/config            |  26 -
 arch/arm/boards/a9m2440/lowlevel_init.S       | 243 ------
 arch/arm/boards/friendlyarm-mini2440/Kconfig  |  35 -
 arch/arm/boards/friendlyarm-mini2440/Makefile |   5 -
 arch/arm/boards/friendlyarm-mini2440/config.h | 118 ---
 .../boards/friendlyarm-mini2440/env/boot/nand |   4 -
 .../friendlyarm-mini2440/env/config-board     |  16 -
 .../env/init/mtdparts-nand                    |   6 -
 .../friendlyarm-mini2440/lowlevel_init.S      |  44 -
 .../boards/friendlyarm-mini2440/mini2440.c    | 341 --------
 arch/arm/boards/friendlyarm-mini6410/Makefile |   5 -
 arch/arm/boards/friendlyarm-mini6410/config.h |  10 -
 .../defaultenv-friendlyarm-mini6410/config    |  52 --
 .../boards/friendlyarm-mini6410/lowlevel.c    |  13 -
 .../boards/friendlyarm-mini6410/mini6410.c    | 302 -------
 arch/arm/boards/friendlyarm-tiny210/Makefile  |   4 -
 arch/arm/boards/friendlyarm-tiny210/config.h  |  21 -
 .../arm/boards/friendlyarm-tiny210/lowlevel.c | 100 ---
 arch/arm/boards/friendlyarm-tiny210/tiny210.c | 102 ---
 arch/arm/boards/friendlyarm-tiny6410/Kconfig  |  21 -
 arch/arm/boards/friendlyarm-tiny6410/Makefile |   6 -
 arch/arm/boards/friendlyarm-tiny6410/config.h |  10 -
 .../defaultenv-friendlyarm-tiny6410/config    |  52 --
 .../friendlyarm-tiny6410/development-board.c  |  94 ---
 .../boards/friendlyarm-tiny6410/lowlevel.c    |  13 -
 .../boards/friendlyarm-tiny6410/tiny6410.c    |  72 --
 .../boards/friendlyarm-tiny6410/tiny6410.h    |   4 -
 arch/arm/configs/a9m2410_defconfig            |  32 -
 arch/arm/configs/a9m2440_defconfig            |  34 -
 .../configs/friendlyarm_mini2440_defconfig    |  41 -
 .../configs/friendlyarm_mini6410_defconfig    |  34 -
 .../arm/configs/friendlyarm_tiny210_defconfig |   7 -
 .../configs/friendlyarm_tiny6410_defconfig    |  35 -
 arch/arm/mach-samsung/Kconfig                 | 178 ----
 arch/arm/mach-samsung/Makefile                |  14 -
 arch/arm/mach-samsung/bbu-nand-s3c24x0.c      |  85 --
 arch/arm/mach-samsung/clocks-s3c24xx.c        | 145 ----
 arch/arm/mach-samsung/clocks-s3c64xx.c        | 338 --------
 arch/arm/mach-samsung/clocks-s5pcxx.c         |  98 ---
 arch/arm/mach-samsung/generic.c               |  51 --
 arch/arm/mach-samsung/gpio-s3c24x0.c          | 167 ----
 arch/arm/mach-samsung/gpio-s3c64xx.c          | 302 -------
 arch/arm/mach-samsung/gpio-s5pcxx.c           | 124 ---
 arch/arm/mach-samsung/include/mach/bbu.h      |  18 -
 .../include/mach/devices-s3c24xx.h            |  55 --
 .../include/mach/devices-s3c64xx.h            |  40 -
 .../mach-samsung/include/mach/iomux-s3c24x0.h | 422 ---------
 .../mach-samsung/include/mach/iomux-s3c64xx.h | 542 ------------
 .../mach-samsung/include/mach/iomux-s5pcxx.h  | 798 ------------------
 arch/arm/mach-samsung/include/mach/iomux.h    |  28 -
 .../mach-samsung/include/mach/s3c-busctl.h    |  32 -
 .../mach-samsung/include/mach/s3c-clocks.h    |  28 -
 .../mach-samsung/include/mach/s3c-generic.h   |  62 --
 .../arm/mach-samsung/include/mach/s3c-iomap.h |  23 -
 arch/arm/mach-samsung/include/mach/s3c-mci.h  |  39 -
 .../include/mach/s3c24xx-clocks.h             |  24 -
 .../mach-samsung/include/mach/s3c24xx-fb.h    |  55 --
 .../mach-samsung/include/mach/s3c24xx-gpio.h  |  77 --
 .../mach-samsung/include/mach/s3c24xx-iomap.h |  65 --
 .../mach-samsung/include/mach/s3c24xx-nand.h  |  57 --
 .../include/mach/s3c64xx-clocks.h             |  67 --
 .../mach-samsung/include/mach/s3c64xx-iomap.h |  51 --
 .../mach-samsung/include/mach/s5pcxx-clocks.h |  55 --
 .../mach-samsung/include/mach/s5pcxx-iomap.h  |  46 -
 arch/arm/mach-samsung/lowlevel-s3c24x0.S      | 305 -------
 arch/arm/mach-samsung/lowlevel-s5pcxx.c       |  61 --
 arch/arm/mach-samsung/mem-s3c24x0.c           |  79 --
 arch/arm/mach-samsung/mem-s3c64xx.c           |  66 --
 arch/arm/mach-samsung/mem-s5pcxx.c            | 320 -------
 arch/arm/mach-samsung/reset_source.c          |  56 --
 arch/arm/mach-samsung/s3c-timer.c             | 119 ---
 scripts/.gitignore                            |   1 -
 scripts/Kconfig                               |   7 -
 scripts/Makefile                              |   1 -
 98 files changed, 8004 deletions(-)
 delete mode 100644 Documentation/boards/s3c/Digi-a9m2440.rst
 delete mode 100644 Documentation/boards/samsung.rst
 delete mode 100644 arch/arm/boards/a9m2410/Makefile
 delete mode 100644 arch/arm/boards/a9m2410/a9m2410.c
 delete mode 100644 arch/arm/boards/a9m2410/config.h
 delete mode 100644 arch/arm/boards/a9m2410/env/bin/_update
 delete mode 100644 arch/arm/boards/a9m2410/env/bin/boot
 delete mode 100644 arch/arm/boards/a9m2410/env/bin/init
 delete mode 100644 arch/arm/boards/a9m2410/env/bin/update_kernel
 delete mode 100644 arch/arm/boards/a9m2410/env/bin/update_root
 delete mode 100644 arch/arm/boards/a9m2410/env/config
 delete mode 100644 arch/arm/boards/a9m2410/lowlevel_init.S
 delete mode 100644 arch/arm/boards/a9m2440/Makefile
 delete mode 100644 arch/arm/boards/a9m2440/a9m2410dev.c
 delete mode 100644 arch/arm/boards/a9m2440/a9m2440.c
 delete mode 100644 arch/arm/boards/a9m2440/baseboards.h
 delete mode 100644 arch/arm/boards/a9m2440/config.h
 delete mode 100644 arch/arm/boards/a9m2440/env/bin/_update
 delete mode 100644 arch/arm/boards/a9m2440/env/bin/boot
 delete mode 100644 arch/arm/boards/a9m2440/env/bin/init
 delete mode 100644 arch/arm/boards/a9m2440/env/bin/update_kernel
 delete mode 100644 arch/arm/boards/a9m2440/env/bin/update_root
 delete mode 100644 arch/arm/boards/a9m2440/env/config
 delete mode 100644 arch/arm/boards/a9m2440/lowlevel_init.S
 delete mode 100644 arch/arm/boards/friendlyarm-mini2440/Kconfig
 delete mode 100644 arch/arm/boards/friendlyarm-mini2440/Makefile
 delete mode 100644 arch/arm/boards/friendlyarm-mini2440/config.h
 delete mode 100644 arch/arm/boards/friendlyarm-mini2440/env/boot/nand
 delete mode 100644 arch/arm/boards/friendlyarm-mini2440/env/config-board
 delete mode 100644 arch/arm/boards/friendlyarm-mini2440/env/init/mtdparts-nand
 delete mode 100644 arch/arm/boards/friendlyarm-mini2440/lowlevel_init.S
 delete mode 100644 arch/arm/boards/friendlyarm-mini2440/mini2440.c
 delete mode 100644 arch/arm/boards/friendlyarm-mini6410/Makefile
 delete mode 100644 arch/arm/boards/friendlyarm-mini6410/config.h
 delete mode 100644 arch/arm/boards/friendlyarm-mini6410/defaultenv-friendlyarm-mini6410/config
 delete mode 100644 arch/arm/boards/friendlyarm-mini6410/lowlevel.c
 delete mode 100644 arch/arm/boards/friendlyarm-mini6410/mini6410.c
 delete mode 100644 arch/arm/boards/friendlyarm-tiny210/Makefile
 delete mode 100644 arch/arm/boards/friendlyarm-tiny210/config.h
 delete mode 100644 arch/arm/boards/friendlyarm-tiny210/lowlevel.c
 delete mode 100644 arch/arm/boards/friendlyarm-tiny210/tiny210.c
 delete mode 100644 arch/arm/boards/friendlyarm-tiny6410/Kconfig
 delete mode 100644 arch/arm/boards/friendlyarm-tiny6410/Makefile
 delete mode 100644 arch/arm/boards/friendlyarm-tiny6410/config.h
 delete mode 100644 arch/arm/boards/friendlyarm-tiny6410/defaultenv-friendlyarm-tiny6410/config
 delete mode 100644 arch/arm/boards/friendlyarm-tiny6410/development-board.c
 delete mode 100644 arch/arm/boards/friendlyarm-tiny6410/lowlevel.c
 delete mode 100644 arch/arm/boards/friendlyarm-tiny6410/tiny6410.c
 delete mode 100644 arch/arm/boards/friendlyarm-tiny6410/tiny6410.h
 delete mode 100644 arch/arm/configs/a9m2410_defconfig
 delete mode 100644 arch/arm/configs/a9m2440_defconfig
 delete mode 100644 arch/arm/configs/friendlyarm_mini2440_defconfig
 delete mode 100644 arch/arm/configs/friendlyarm_mini6410_defconfig
 delete mode 100644 arch/arm/configs/friendlyarm_tiny210_defconfig
 delete mode 100644 arch/arm/configs/friendlyarm_tiny6410_defconfig
 delete mode 100644 arch/arm/mach-samsung/Kconfig
 delete mode 100644 arch/arm/mach-samsung/Makefile
 delete mode 100644 arch/arm/mach-samsung/bbu-nand-s3c24x0.c
 delete mode 100644 arch/arm/mach-samsung/clocks-s3c24xx.c
 delete mode 100644 arch/arm/mach-samsung/clocks-s3c64xx.c
 delete mode 100644 arch/arm/mach-samsung/clocks-s5pcxx.c
 delete mode 100644 arch/arm/mach-samsung/generic.c
 delete mode 100644 arch/arm/mach-samsung/gpio-s3c24x0.c
 delete mode 100644 arch/arm/mach-samsung/gpio-s3c64xx.c
 delete mode 100644 arch/arm/mach-samsung/gpio-s5pcxx.c
 delete mode 100644 arch/arm/mach-samsung/include/mach/bbu.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/devices-s3c24xx.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/devices-s3c64xx.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/iomux-s3c24x0.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/iomux-s3c64xx.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/iomux-s5pcxx.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/iomux.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/s3c-busctl.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/s3c-clocks.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/s3c-generic.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/s3c-iomap.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/s3c-mci.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/s3c24xx-clocks.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/s3c24xx-fb.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/s3c24xx-gpio.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/s3c24xx-iomap.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/s3c24xx-nand.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/s3c64xx-clocks.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/s3c64xx-iomap.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/s5pcxx-clocks.h
 delete mode 100644 arch/arm/mach-samsung/include/mach/s5pcxx-iomap.h
 delete mode 100644 arch/arm/mach-samsung/lowlevel-s3c24x0.S
 delete mode 100644 arch/arm/mach-samsung/lowlevel-s5pcxx.c
 delete mode 100644 arch/arm/mach-samsung/mem-s3c24x0.c
 delete mode 100644 arch/arm/mach-samsung/mem-s3c64xx.c
 delete mode 100644 arch/arm/mach-samsung/mem-s5pcxx.c
 delete mode 100644 arch/arm/mach-samsung/reset_source.c
 delete mode 100644 arch/arm/mach-samsung/s3c-timer.c

diff --git a/Documentation/boards/s3c/Digi-a9m2440.rst b/Documentation/boards/s3c/Digi-a9m2440.rst
deleted file mode 100644
index 32d58b9a04..0000000000
--- a/Documentation/boards/s3c/Digi-a9m2440.rst
+++ /dev/null
@@ -1,93 +0,0 @@
-DIGI a9m2440
-============
-
-This CPU card is based on a Samsung S3C2440 CPU. The card is shipped with:
-
-  * S3C2440\@400 MHz or 533 MHz (ARM920T/ARMv4T)
-  * 16.9344 MHz crystal reference
-  * SDRAM 32/64/128 MiB
-
-     * Samsung K4M563233E-EE1H (one or two devices for 32 MiB or 64 MiB)
-
-       * 2M x 32bit x 4 Banks Mobile SDRAM
-       * CL2\@100 MHz (CAS/RAS delay 19ns)
-       * 105 MHz max
-       * column address size is 9 bits
-       *  Row cycle time: 69ns
-
-     * Samsung K4M513233C-DG75 (one or two devices for 64 MiB or 128 MiB)
-
-       * 4M x 32bit x 4 Banks Mobile SDRAM
-       * CL2\@100MHz (CAS/RAS delay 18ns)
-       * 111 MHz max
-       * column address size is 9 bits
-       * Row cycle time: 63ns
-
-     * 64ms refresh period (4k)
-     * 90 pin FBGA
-     * 32 bit data bits
-     * Extended temperature range (-25°C...85°C)
-
-  * NAND Flash 32/64/128 MiB
-
-     * Samsung KM29U512T (NAND01GW3A0AN6)
-
-       * 64 MiB 3,3V 8-bit
-       * ID: 0xEC, 0x76, 0x??, 0xBD
-
-     * Samsung KM29U256T
-
-       * 32 MiB 3,3V 8-bit
-       * ID: 0xEC, 0x75, 0x??, 0xBD
-
-     * ST Micro
-
-       * 128 MiB 3,3V 8-bit
-       * ID: 0x20, 0x79
-
-     * 30ns/40ns/20ns
-
-  * I2C interface, 100 KHz and 400 KHz
-
-     * Real Time Clock
-
-       * Dallas DS1337
-       * address 0x68
-
-     * EEPROM
-
-       * ST M24LC64
-       * address 0x50
-       * 16bit addressing
-
-  * LCD interface
-  * Touch Screen interface
-  * Camera interface
-  * I2S interface
-  * AC97 Audio-CODEC interface
-  * SD card interface
-  * 3 serial RS232 interfaces
-  * Host and device USB interface, USB1.1 compliant
-  * Ethernet interface
-
-    * 10Mbps, Cirrus Logic, CS8900A (on the CPU card)
-
-  * SPI interface
-  * JTAG interface
-
-How to get the binary image
----------------------------
-
-Configure with the default configuration:
-
-.. code-block:: sh
-
-  make ARCH=arm a9m2440_defconfig
-
-Build the binary image:
-
-.. code-block:: sh
-
-  make ARCH=arm CROSS_COMPILE=armv4compiler
-
-**NOTE:** replace the armv4compiler with your ARM v4 cross compiler.
diff --git a/Documentation/boards/samsung.rst b/Documentation/boards/samsung.rst
deleted file mode 100644
index f6f341301d..0000000000
--- a/Documentation/boards/samsung.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-Samsung S3C/S5P
-===============
-
-.. toctree::
-  :glob:
-  :maxdepth: 1
-
-  s3c/*
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 8183f6d546..8681c81d2c 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -177,24 +177,6 @@ config ARCH_SOCFPGA
 	select COMMON_CLK
 	select CLKDEV_LOOKUP
 
-config ARCH_S3C24xx
-	bool "Samsung S3C2410, S3C2440"
-	select ARCH_SAMSUNG
-	select CPU_ARM920T
-	select GENERIC_GPIO
-
-config ARCH_S5PCxx
-	bool "Samsung S5PC110, S5PV210"
-	select ARCH_SAMSUNG
-	select CPU_V7
-	select GENERIC_GPIO
-
-config ARCH_S3C64xx
-	bool "Samsung S3C64xx"
-	select ARCH_SAMSUNG
-	select CPU_V6
-	select GENERIC_GPIO
-
 config ARCH_STM32MP
 	bool "STMicroelectronics STM32MP"
 	select ARCH_STM32
@@ -311,7 +293,6 @@ source "arch/arm/mach-nomadik/Kconfig"
 source "arch/arm/mach-omap/Kconfig"
 source "arch/arm/mach-pxa/Kconfig"
 source "arch/arm/mach-rockchip/Kconfig"
-source "arch/arm/mach-samsung/Kconfig"
 source "arch/arm/mach-socfpga/Kconfig"
 source "arch/arm/mach-stm32mp/Kconfig"
 source "arch/arm/mach-versatile/Kconfig"
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 124a3fc40c..55b3195310 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -119,14 +119,8 @@ machine-$(CONFIG_ARCH_ZYNQMP)		:= zynqmp
 # These are here only because they have a board specific config.h.
 # TODO: Get rid of board specific config.h and move these to
 # arch/arm/boards/Makefile aswell.
-board-$(CONFIG_MACH_A9M2410)			+= a9m2410
-board-$(CONFIG_MACH_A9M2440)			+= a9m2440
 board-$(CONFIG_MACH_AT91RM9200EK)		+= at91rm9200ek
-board-$(CONFIG_MACH_MINI2440)			+= friendlyarm-mini2440
-board-$(CONFIG_MACH_MINI6410)			+= friendlyarm-mini6410
 board-$(CONFIG_MACH_PCM027)			+= phytec-phycore-pxa270
-board-$(CONFIG_MACH_TINY210)			+= friendlyarm-tiny210
-board-$(CONFIG_MACH_TINY6410)			+= friendlyarm-tiny6410
 
 machdirs := $(patsubst %,arch/arm/mach-%/,$(machine-y))
 
@@ -158,13 +152,6 @@ endif
 
 KBUILD_BINARY := barebox.bin
 
-barebox.s5p: $(KBUILD_BINARY)
-	$(Q)scripts/s5p_cksum $< barebox.s5p
-
-ifeq ($(CONFIG_ARCH_S5PCxx),y)
-KBUILD_IMAGE := barebox.s5p
-endif
-
 quiet_cmd_mlo ?= IFT     $@
 	cmd_mlo ?= scripts/omap_signGP -o MLO -l $(TEXT_BASE) -c $<
 
diff --git a/arch/arm/boards/a9m2410/Makefile b/arch/arm/boards/a9m2410/Makefile
deleted file mode 100644
index 6c53eafae2..0000000000
--- a/arch/arm/boards/a9m2410/Makefile
+++ /dev/null
@@ -1,4 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-
-lwl-y += lowlevel_init.o
-obj-y += a9m2410.o
diff --git a/arch/arm/boards/a9m2410/a9m2410.c b/arch/arm/boards/a9m2410/a9m2410.c
deleted file mode 100644
index 25022abde2..0000000000
--- a/arch/arm/boards/a9m2410/a9m2410.c
+++ /dev/null
@@ -1,136 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-// SPDX-FileCopyrightText: 2009 Juergen Beisert, Pengutronix
-
-#include <common.h>
-#include <driver.h>
-#include <init.h>
-#include <asm/armlinux.h>
-#include <generated/mach-types.h>
-#include <asm/sections.h>
-#include <nand.h>
-#include <io.h>
-#include <mach/devices-s3c24xx.h>
-#include <mach/s3c-iomap.h>
-#include <mach/s3c24xx-nand.h>
-#include <mach/s3c-generic.h>
-#include <mach/s3c-busctl.h>
-#include <mach/s3c24xx-gpio.h>
-
-// {"NAND 1MiB 3,3V 8-bit", 0xec, 256, 1, 0x1000, 0},
-static struct s3c24x0_nand_platform_data nand_info = {
-	.nand_timing = CALC_NFCONF_TIMING(A9M2410_TACLS, A9M2410_TWRPH0, A9M2410_TWRPH1)
-};
-
-static int a9m2410_mem_init(void)
-{
-	resource_size_t size;
-
-	/*
-	 * Note: On this card the second SDRAM page is not used
-	 */
-	s3c24xx_disable_second_sdram_bank();
-	size = s3c24xx_get_memory_size();
-
-	/* ---------- configure the GPIOs ------------- */
-	writel(0x007FFFFF, S3C_GPACON);
-	writel(0x00000000, S3C_GPCCON);
-	writel(0x00000000, S3C_GPCUP);
-	writel(0x00000000, S3C_GPDCON);
-	writel(0x00000000, S3C_GPDUP);
-	writel(0xAAAAAAAA, S3C_GPECON);
-	writel(0x0000E03F, S3C_GPEUP);
-	writel(0x00000000, S3C_GPBCON);	/* all inputs */
-	writel(0x00000007, S3C_GPBUP);	/* pullup disabled for GPB0..3 */
-	writel(0x00009000, S3C_GPFCON);	/* GPF7 CLK_INT#, GPF6 Debug-LED */
-	writel(0x000000FF, S3C_GPFUP);
-	writel(readl(S3C_GPGDAT) | 0x0010, S3C_GPGDAT);	/* switch off LCD backlight */
-	writel(0xFF00A938, S3C_GPGCON);	/* switch off USB device */
-	writel(0x0000F000, S3C_GPGUP);
-	writel(readl(S3C_GPHDAT) | 0x100, S3C_GPHDAT);	/* switch BOOTINT/GPIO_ON# to high */
-	writel(0x000007FF, S3C_GPHUP);
-	writel(0x0029FAAA, S3C_GPHCON);
-	/*
-	 * USB port1 normal, USB port0 normal, USB1 pads for device
-	 * PCLK output on CLKOUT0, UPLL CLK output on CLKOUT1,
-	 * 2nd SDRAM bank off (only bank 1 is used)
-	 */
-	writel(0x40140, S3C_MISCCR);
-
-	arm_add_mem_device("ram0", S3C_SDRAM_BASE, size);
-
-	return 0;
-}
-mem_initcall(a9m2410_mem_init);
-
-static const struct devfs_partition a9m2410_nand0_partitions[] = {
-	{
-		.offset = 0,
-		.size = 0x40000,
-		.flags = DEVFS_PARTITION_FIXED,
-		.name = "self_raw",
-		.bbname = "self0",
-	}, {
-		.offset = DEVFS_PARTITION_APPEND,
-		.size = 0x20000,
-		.flags = DEVFS_PARTITION_FIXED,
-		.name = "env_raw",
-		.bbname = "env0",
-	}, {
-		/* sentinel */
-	}
-};
-
-static int a9m2410_devices_init(void)
-{
-	uint32_t reg;
-
-	/* ----------- configure the access to the outer space ---------- */
-	reg = readl(S3C_BWSCON);
-
-	/* CS#1 to access the network controller */
-	reg &= ~0xf0;
-	reg |= 0xe0;
-	writel(0x1350, S3C_BANKCON1);
-
-	/* CS#2 to the dual 16550 UART */
-	reg &= ~0xf00;
-	reg |= 0x400;
-	writel(0x0d50, S3C_BANKCON2);
-
-	writel(reg, S3C_BWSCON);
-
-	/* release the reset signal to the network and UART device */
-	reg = readl(S3C_MISCCR);
-	reg |= 0x10000;
-	writel(reg, S3C_MISCCR);
-
-	/* ----------- the devices the boot loader should work with -------- */
-	s3c24xx_add_nand(&nand_info);
-	/*
-	 * SMSC 91C111 network controller on the baseboard
-	 * connected to CS line 1 and interrupt line
-	 * GPIO3, data width is 32 bit
-	 */
-	add_generic_device("smc91c111", DEVICE_ID_DYNAMIC, NULL, S3C_CS1_BASE + 0x300,
-			16, IORESOURCE_MEM, NULL);
-
-	if (IS_ENABLED(CONFIG_NAND))
-		devfs_create_partitions("nand0", a9m2410_nand0_partitions);
-
-	armlinux_set_architecture(MACH_TYPE_A9M2410);
-
-	return 0;
-}
-
-device_initcall(a9m2410_devices_init);
-
-static int a9m2410_console_init(void)
-{
-	barebox_set_model("Digi A9M2410");
-	barebox_set_hostname("a9m2410");
-
-	s3c24xx_add_uart1();
-	return 0;
-}
-
-console_initcall(a9m2410_console_init);
diff --git a/arch/arm/boards/a9m2410/config.h b/arch/arm/boards/a9m2410/config.h
deleted file mode 100644
index dbe4bb32cb..0000000000
--- a/arch/arm/boards/a9m2410/config.h
+++ /dev/null
@@ -1,109 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-/**
- * @file
- * @brief Global defintions for the ARM S3C2410 based a9m2410 CPU card
- */
-
-#ifndef __CONFIG_H
-#define __CONFIG_H
-
-/**
- * The external clock reference is a 12.0MHz crystal
- */
-#define S3C24XX_CLOCK_REFERENCE 12000000
-
-/**
- * Define the main clock configuration to be used in register CLKDIVN
- *
- * We must limit the frequency of the connected SDRAMs with the clock ratio
- * setup to 1:2:4. This will result into FCLK:HCLK:PCLK = 200Mhz:100MHz:50MHz
- */
-#define BOARD_SPECIFIC_CLKDIVN 0x003
-
-/**
- * Define the MPLL configuration to be used in register MPLLCON
- *
- * We want the MPLL to run at 202.80MHz
- */
-#define BOARD_SPECIFIC_MPLL ((0xA1 << 12) + (3 << 4) + 1)
-
-/**
- * Define the UPLL configuration to be used in register UPLLCON
- *
- * We want the UPLL to run at 48.0MHz
- */
-#define BOARD_SPECIFIC_UPLL ((0x78 << 12) + (2 << 4) + 3)
-
-/*
- * SDRAM configuration for Samsung K4M563233E
- *  - 2M x 32Bit x 4 Banks Mobile SDRAM
- *  - 90 pin FBGA
- *  - CL2@100MHz
- */
-/*
- * SDRAM uses 32bit width
- */
-#define BOARD_SPECIFIC_BWSCON ((0x02 << 24) + (0x02 << 28))
-/*
- * 32MiB SDRAM in bank6
- *  - MT = 11 (= sync dram type)
- *  - Trcd = 00 (= CL2)
- *  - SCAN = 01 (= 9 bit columns)
- */
-#define BOARD_SPECIFIC_BANKCON6 ((0x3 << 15) + (0x0 << 2) + 0x1)
-/*
- * No memory in bank7
- */
-#define BOARD_SPECIFIC_BANKCON7 ((0x3 << 15) + (0x0 << 2) + 0x1)
-/*
- * SDRAM refresh settings
- *  - REFEN = 1 (= refresh enabled)
- *  - TREFMD = 0 (= auto refresh)
- *  - Trp = 00 (= 2 RAS precharge clocks)
- *  - Tsrc = 01 (= 5 clocks -> row cycle time @100MHz 2+5=7 -> 70ns)
- *  - Refrsh = 2^11 + 1 - 100 * 15.6 = 2049 - 1560 = 489
- */
-#define BOARD_SPECIFIC_REFRESH ((0x1 << 23) + (0x0 << 22) + (0x0 << 20) + (0x1 << 18) + 489)
-/*
- * SDRAM banksize
- *  - BURST_EN = 1 (= burst mode enabled)
- *  - SCKE_EN = 1 (= SDRAM SCKE enabled)
- *  - SCLK_EN = 1 (= clock active only during accesses)
- *  - BK67MAP = 000 (= 32MiB)
- */
-#define BOARD_SPECIFIC_BANKSIZE ((1 << 7) + (1 << 5) + (0 << 4) + 0)
-/*
- * SDRAM mode register bank6
- * CL = 010 (= 2 clocks)
- */
-#define BOARD_SPECIFIC_MRSRB6 (0x2 << 4)
-/*
- * SDRAM mode register bank7
- * CL = 010 (= 2 clocks)
- */
-#define BOARD_SPECIFIC_MRSRB7 (0x2 << 4)
-
-/*
- * Flash access timings
- * Tacls  = 0ns (but 20ns data setup time)
- * Twrph0 = 25ns (write) 35ns (read)
- * Twrph1 = 10ns (10ns data hold time)
- * Read cycle time = 50ns
- *
- * Assumed HCLK is 100MHz
- * Tacls = 1 (-> 20ns)
- * Twrph0 = 3 (-> 40ns)
- * Twrph1 = 1 (-> 20ns)
- * Cycle time = 80ns
- */
-#define A9M2410_TACLS 1
-#define A9M2410_TWRPH0 3
-#define A9M2410_TWRPH1 1
-
-/* needed in the generic NAND boot code only */
-#ifdef CONFIG_S3C_NAND_BOOT
-# define BOARD_DEFAULT_NAND_TIMING CALC_NFCONF_TIMING(A9M2410_TACLS, A9M2410_TWRPH0, A9M2410_TWRPH1)
-#endif
-
-#endif /* __CONFIG_H */
diff --git a/arch/arm/boards/a9m2410/env/bin/_update b/arch/arm/boards/a9m2410/env/bin/_update
deleted file mode 100644
index 014bce3512..0000000000
--- a/arch/arm/boards/a9m2410/env/bin/_update
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/sh
-
-if [ -z "$part" -o -z "$image" ]; then
-	echo "define \$part and \$image"
-	exit 1
-fi
-
-if [ ! -e "$part" ]; then
-	echo "Partition $part does not exist"
-	exit 1
-fi
-
-if [ $# = 1 ]; then
-	image=$1
-fi
-
-if [ x$ip = xdhcp ]; then
-	dhcp
-fi
-
-ping $eth0.serverip
-if [ $? -ne 0 ] ; then
-	echo "update aborted"
-	exit 1
-fi
-
-unprotect $part
-
-echo
-echo "erasing partition $part"
-erase $part
-
-echo
-echo "flashing $image to $part"
-echo
-tftp $image $part
diff --git a/arch/arm/boards/a9m2410/env/bin/boot b/arch/arm/boards/a9m2410/env/bin/boot
deleted file mode 100644
index 59fa60e4e9..0000000000
--- a/arch/arm/boards/a9m2410/env/bin/boot
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/sh
-
-. /env/config
-
-if [ x$1 = xnand ]; then
-	root=nand
-	kernel=nand
-fi
-
-if [ x$1 = xnet ]; then
-	root=net
-	kernel=net
-fi
-
-if [ x$ip = xdhcp ]; then
-	bootargs="$bootargs ip=dhcp"
-else
-	bootargs="$bootargs ip=$eth0.ipaddr:$eth0.serverip:$eth0.gateway:$eth0.netmask:::"
-fi
-
-if [ x$root = xnand ]; then
-	bootargs="$bootargs root=$rootpart_nand rootfstype=jffs2"
-else
-	bootargs="$bootargs root=/dev/nfs nfsroot=$eth0.serverip:$nfsroot,v3,tcp"
-fi
-
-bootargs="$bootargs mtdparts=\"NAND 32MiB 3,3V 8-bit:$nand_parts\""
-
-if [ x$kernel = xnet ]; then
-	if [ x$ip = xdhcp ]; then
-		dhcp
-	fi
-	tftp $uimage uImage || exit 1
-	bootm uImage
-else
-	bootm /dev/nand0.kernel.bb
-fi
-
diff --git a/arch/arm/boards/a9m2410/env/bin/init b/arch/arm/boards/a9m2410/env/bin/init
deleted file mode 100644
index dd94ef6be0..0000000000
--- a/arch/arm/boards/a9m2410/env/bin/init
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/sh
-
-PATH=/env/bin
-export PATH
-
-. /env/config
-
-if [ -e /dev/nand0 ]; then
-	addpart /dev/nand0 $nand_parts
-fi
-
-if [ -z $eth0.ethaddr ]; then
-	while [ -z $eth0.ethaddr ]; do
-		readline "no MAC address set for eth0. please enter the one found on your board: " eth0.ethaddr
-	done
-	echo -a /env/config "eth0.ethaddr=$eth0.ethaddr"
-fi
-
-echo
-echo -n "Hit any key to stop autoboot: "
-timeout -a $autoboot_timeout
-if [ $? != 0 ]; then
-	echo
-	echo "type update_kernel [<imagename>] to update kernel into flash"
-	echo "type update_root [<imagename>] to update rootfs into flash"
-	echo
-	exit
-fi
-
-boot
diff --git a/arch/arm/boards/a9m2410/env/bin/update_kernel b/arch/arm/boards/a9m2410/env/bin/update_kernel
deleted file mode 100644
index c43a55785b..0000000000
--- a/arch/arm/boards/a9m2410/env/bin/update_kernel
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/sh
-
-. /env/config
-
-part=/dev/nand0.kernel.bb
-
-if [ x$1 = x ]; then
-	image=$uimage
-else
-	image=$1
-fi
-
-. /env/bin/_update $image
diff --git a/arch/arm/boards/a9m2410/env/bin/update_root b/arch/arm/boards/a9m2410/env/bin/update_root
deleted file mode 100644
index 34139e5dce..0000000000
--- a/arch/arm/boards/a9m2410/env/bin/update_root
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-
-. /env/config
-
-if [ x$1 = x ]; then
-	image=$jffs2
-else
-	image=$1
-fi
-
-. /env/bin/_update $image
diff --git a/arch/arm/boards/a9m2410/env/config b/arch/arm/boards/a9m2410/env/config
deleted file mode 100644
index 2b09318934..0000000000
--- a/arch/arm/boards/a9m2410/env/config
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/sh
-
-# can be either 'net' or 'nand''
-kernel=net
-root=net
-
-uimage=uImage-a9m2410
-jffs2=root-a9m2410.jffs2
-
-autoboot_timeout=3
-
-nfsroot="/nfsexport/OSELAS.BSP-Hesch-TMU-1/platform-FS_A9M2410/root"
-bootargs="console=ttySAC0,38400"
-
-nand_parts="256k(barebox)ro,128k(bareboxenv),1536k(kernel),-(root)"
-rootpart_nand="/dev/mtdblock3"
-
-# use 'dhcp' to do dhcp in barebox and in kernel
-#ip=dhcp
-
-# or set your networking parameters here
-eth0.ipaddr=192.168.42.31
-eth0.netmask=255.255.0.0
-eth0.gateway=192.168.23.1
-eth0.serverip=192.168.23.2
-#eth0.ethaddr=
diff --git a/arch/arm/boards/a9m2410/lowlevel_init.S b/arch/arm/boards/a9m2410/lowlevel_init.S
deleted file mode 100644
index 4c949b1efa..0000000000
--- a/arch/arm/boards/a9m2410/lowlevel_init.S
+++ /dev/null
@@ -1,39 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-
-#include <config.h>
-#include <linux/sizes.h>
-#include <mach/s3c-iomap.h>
-#include <asm/barebox-arm-head.h>
-
-	.section ".text_bare_init.barebox_arm_reset_vector","ax"
-
-.globl barebox_arm_reset_vector
-barebox_arm_reset_vector:
-
-	bl arm_cpu_lowlevel_init
-
-	bl s3c24x0_disable_wd
-
-	/* skip everything here if we are already running from SDRAM */
-	cmp pc, #S3C_SDRAM_BASE
-	blo 1f
-	cmp pc, #S3C_SDRAM_END
-	bhs 1f
-
-	b out
-
-/* we are running from NOR or NAND/SRAM memory. Do further initialisation */
-1:
-	bl s3c24x0_pll_init
-
-	bl s3c24x0_sdram_init
-
-#ifdef CONFIG_S3C_NAND_BOOT
-/* up to here we are running from the internal SRAM area */
-	bl s3c24x0_nand_boot
-#endif
-out:
-	mov r0, #S3C_SDRAM_BASE
-	mov r1, #SZ_32M
-	mov r2, #0
-	b barebox_arm_entry
diff --git a/arch/arm/boards/a9m2440/Makefile b/arch/arm/boards/a9m2440/Makefile
deleted file mode 100644
index e32c0aca64..0000000000
--- a/arch/arm/boards/a9m2440/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-
-lwl-y += lowlevel_init.o
-obj-y += a9m2440.o
-obj-$(CONFIG_MACH_A9M2410DEV) += a9m2410dev.o
diff --git a/arch/arm/boards/a9m2440/a9m2410dev.c b/arch/arm/boards/a9m2440/a9m2410dev.c
deleted file mode 100644
index 627a8c6158..0000000000
--- a/arch/arm/boards/a9m2440/a9m2410dev.c
+++ /dev/null
@@ -1,82 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-// SPDX-FileCopyrightText: 2009 Juergen Beisert
-
-/**
- * @file
- * @brief a9m2410dev Baseboad specific initialization routines
- *
- */
-
-#include <common.h>
-#include <driver.h>
-#include <init.h>
-#include <io.h>
-#include <mach/s3c-iomap.h>
-#include <mach/s3c-busctl.h>
-#include <mach/s3c24xx-gpio.h>
-
-#include "baseboards.h"
-
-/**
- * Initialize the CPU to be able to work with the a9m2410dev evaluation board
- */
-int a9m2410dev_devices_init(void)
-{
-	unsigned int reg;
-
-	/* ---------- configure the GPIOs ------------- */
-	writel(0x007FFFFF, S3C_GPACON);
-	writel(0x00000000, S3C_GPCCON);
-	writel(0x00000000, S3C_GPCUP);
-	writel(0x00000000, S3C_GPDCON);
-	writel(0x00000000, S3C_GPDUP);
-	writel(0xAAAAAAAA, S3C_GPECON);
-	writel(0x0000E03F, S3C_GPEUP);
-	writel(0x00000000, S3C_GPBCON);	/* all inputs */
-	writel(0x00000007, S3C_GPBUP);	/* pullup disabled for GPB0..3 */
-	writel(0x00009000, S3C_GPFCON);	/* GPF7 CLK_INT#, GPF6 Debug-LED */
-	writel(0x000000FF, S3C_GPFUP);
-	writel(readl(S3C_GPGDAT) | 0x1010, S3C_GPGDAT);	/* switch off IDLE_SW#, switch off LCD backlight */
-	writel(0x0100A93A, S3C_GPGCON);	/* switch on USB device */
-	writel(0x0000F000, S3C_GPGUP);
-	writel(0x0029FAAA, S3C_GPHCON);
-
-	writel((1 << 12) | (0 << 11), S3C_GPJDAT);
-	writel(0x0016aaaa, S3C_GPJCON);
-	writel(~((0<<12)| (1<<11)), S3C_GPJUP);
-
-	writel((0 << 12) | (0 << 11), S3C_GPJDAT);
-	writel(0x0016aaaa, S3C_GPJCON);
-	writel(0x00001fff, S3C_GPJUP);
-
-	writel(0x00000000, S3C_DSC0);
-	writel(0x00000000, S3C_DSC1);
-
-	/*
-	 * USB port1 normal, USB port0 normal, USB1 pads for device
-	 * PCLK output on CLKOUT0, UPLL CLK output on CLKOUT1,
-	 */
-	writel((readl(S3C_MISCCR) & ~0xFFFF) | 0x0140, S3C_MISCCR);
-
-	/* ----------- configure the access to the outer space ---------- */
-	reg = readl(S3C_BWSCON);
-
-	/* CS#1 to access the network controller */
-	reg &= ~0xf0;
-	reg |= 0xe0;
-	writel(0x1350, S3C_BANKCON1);
-
-	/* CS#2 to the dual 16550 UART */
-	reg &= ~0xf00;
-	reg |= 0x400;
-	writel(0x0d50, S3C_BANKCON2);
-
-	writel(reg, S3C_BWSCON);
-
-	/* release the reset signal to the network and UART device */
-	reg = readl(S3C_MISCCR);
-	reg |= 0x10000;
-	writel(reg, S3C_MISCCR);
-
-	return 0;
-}
diff --git a/arch/arm/boards/a9m2440/a9m2440.c b/arch/arm/boards/a9m2440/a9m2440.c
deleted file mode 100644
index 9a3eaef294..0000000000
--- a/arch/arm/boards/a9m2440/a9m2440.c
+++ /dev/null
@@ -1,143 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-// SPDX-FileCopyrightText: 2009 Juergen Beisert, Pengutronix
-
-#include <common.h>
-#include <driver.h>
-#include <init.h>
-#include <asm/armlinux.h>
-#include <asm/sections.h>
-#include <generated/mach-types.h>
-#include <nand.h>
-#include <io.h>
-#include <mach/devices-s3c24xx.h>
-#include <mach/s3c-iomap.h>
-#include <mach/s3c24xx-nand.h>
-#include <mach/s3c-generic.h>
-#include <mach/s3c-busctl.h>
-#include <mach/s3c24xx-gpio.h>
-
-#include "baseboards.h"
-
-static struct s3c24x0_nand_platform_data nand_info = {
-	.nand_timing = CALC_NFCONF_TIMING(A9M2440_TACLS, A9M2440_TWRPH0, A9M2440_TWRPH1)
-};
-
-static int a9m2440_check_for_ram(uint32_t addr)
-{
-	uint32_t tmp1, tmp2;
-	int rc = 0;
-
-	tmp1 = readl(addr);
-	tmp2 = readl(addr + sizeof(uint32_t));
-
-	writel(0xaaaaaaaa, addr);
-	writel(0x55555555, addr + sizeof(uint32_t));
-	if ((readl(addr) != 0xaaaaaaaa) || (readl(addr + sizeof(uint32_t)) != 0x55555555))
-		rc = 1;	/* seems no RAM */
-
-	writel(0x55555555, addr);
-	writel(0xaaaaaaaa, addr + sizeof(uint32_t));
-	if ((readl(addr) != 0x55555555) || (readl(addr + sizeof(uint32_t)) != 0xaaaaaaaa))
-		rc = 1;	/* seems no RAM */
-
-	writel(tmp1, addr);
-	writel(tmp2, addr + sizeof(uint32_t));
-
-	return rc;
-}
-
-static int a9m2440_mem_init(void)
-{
-	/*
-	 * The special SDRAM setup code for this machine will always enable
-	 * both SDRAM banks. But the second SDRAM device may not exists!
-	 * So we must check here, if the second bank is populated to get the
-	 * correct RAM size.
-	 */
-	switch (readl(S3C_BANKSIZE) & 0x7) {
-	case 0:
-		if (a9m2440_check_for_ram(S3C_SDRAM_BASE + 32 * 1024 * 1024))
-			s3c24xx_disable_second_sdram_bank();
-		break;
-	case 1:
-		if (a9m2440_check_for_ram(S3C_SDRAM_BASE + 64 * 1024 * 1024))
-			s3c24xx_disable_second_sdram_bank();
-		break;
-	case 2:
-		if (a9m2440_check_for_ram(S3C_SDRAM_BASE + 128 * 1024 * 1024))
-			s3c24xx_disable_second_sdram_bank();
-		break;
-	case 4:
-	case 5:
-	case 6:		/* not supported on this machine */
-		break;
-	default:
-		if (a9m2440_check_for_ram(S3C_SDRAM_BASE + 16 * 1024 * 1024))
-			s3c24xx_disable_second_sdram_bank();
-		break;
-	}
-
-	arm_add_mem_device("ram0", S3C_SDRAM_BASE, s3c24xx_get_memory_size());
-
-	return 0;
-}
-mem_initcall(a9m2440_mem_init);
-
-static int a9m2440_devices_init(void)
-{
-	uint32_t reg;
-
-	/* ----------- configure the access to the outer space ---------- */
-	reg = readl(S3C_BWSCON);
-
-	/* CS#5 to access the network controller */
-	reg &= ~0x00f00000;
-	reg |=  0x00d00000;	/* 16 bit */
-	writel(0x1f4c, S3C_BANKCON5);
-
-	writel(reg, S3C_BWSCON);
-
-#ifdef CONFIG_MACH_A9M2410DEV
-	a9m2410dev_devices_init();
-#endif
-
-	/* release the reset signal to external devices */
-	reg = readl(S3C_MISCCR);
-	reg |= 0x10000;
-	writel(reg, S3C_MISCCR);
-
-	/* ----------- the devices the boot loader should work with -------- */
-	s3c24xx_add_nand(&nand_info);
-	/*
-	 * cs8900 network controller onboard
-	 * Connected to CS line 5 + A24 and interrupt line EINT9,
-	 * data width is 16 bit
-	 */
-	add_generic_device("cs8900", DEVICE_ID_DYNAMIC, NULL,
-			S3C_CS5_BASE + (1 << 24) + 0x300, 16, IORESOURCE_MEM, NULL);
-
-#ifdef CONFIG_NAND
-	/* ----------- add some vital partitions -------- */
-	devfs_add_partition("nand0", 0x00000, 0x40000, DEVFS_PARTITION_FIXED, "self_raw");
-	dev_add_bb_dev("self_raw", "self0");
-
-	devfs_add_partition("nand0", 0x40000, 0x20000, DEVFS_PARTITION_FIXED, "env_raw");
-	dev_add_bb_dev("env_raw", "env0");
-#endif
-	armlinux_set_architecture(MACH_TYPE_A9M2440);
-
-	return 0;
-}
-
-device_initcall(a9m2440_devices_init);
-
-static int a9m2440_console_init(void)
-{
-	barebox_set_model("Digi A9M2440");
-	barebox_set_hostname("a9m2440");
-
-	s3c24xx_add_uart1();
-	return 0;
-}
-
-console_initcall(a9m2440_console_init);
diff --git a/arch/arm/boards/a9m2440/baseboards.h b/arch/arm/boards/a9m2440/baseboards.h
deleted file mode 100644
index be4ae65e82..0000000000
--- a/arch/arm/boards/a9m2440/baseboards.h
+++ /dev/null
@@ -1,6 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-// SPDX-FileCopyrightText: 2009 Juergen Beisert
-
-#ifdef CONFIG_MACH_A9M2410DEV
-extern int a9m2410dev_devices_init(void);
-#endif
diff --git a/arch/arm/boards/a9m2440/config.h b/arch/arm/boards/a9m2440/config.h
deleted file mode 100644
index c22ff53036..0000000000
--- a/arch/arm/boards/a9m2440/config.h
+++ /dev/null
@@ -1,60 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-/**
- * @file
- * @brief Global defintions for the ARM S3C2440 based a9m2440 CPU card
- */
-
-#ifndef __CONFIG_H
-#define __CONFIG_H
-
-/**
- * The external clock reference is a 16.9344 MHz crystal
- */
-#define S3C24XX_CLOCK_REFERENCE 16934400
-
-/**
- * Define the main clock configuration to be used in register CLKDIVN
- *
- * We must limit the frequency of the connected SDRAMs with the clock ratio
- * setup to 1:4:8. This will result into FCLK:HCLK:PCLK = 400Mhz:100MHz:50MHz
- */
-#define BOARD_SPECIFIC_CLKDIVN 0x05
-
-/**
- * Define the MPLL configuration to be used in register MPLLCON
- *
- * We want the MPLL to run at 399.65 MHz
- */
-#define BOARD_SPECIFIC_MPLL ((0x6e << 12) + (3 << 4) + 1)
-
-/**
- * Define the UPLL configuration to be used in register UPLLCON
- *
- * We want the UPLL to run at 47.98 MHz
- */
-#define BOARD_SPECIFIC_UPLL ((0x3c << 12) + (4 << 4) + 2)
-
-/*
- * Flash access timings
- * Tacls  = 0ns (but 20ns data setup time)
- * Twrph0 = 25ns (write) 35ns (read)
- * Twrph1 = 10ns (10ns data hold time)
- * Read cycle time = 50ns
- *
- * Assumed HCLK is 100MHz
- * Tacls = 1 (-> 20ns)
- * Twrph0 = 3 (-> 40ns)
- * Twrph1 = 1 (-> 20ns)
- * Cycle time = 80ns
- */
-#define A9M2440_TACLS 1
-#define A9M2440_TWRPH0 3
-#define A9M2440_TWRPH1 1
-
-/* needed in the generic NAND boot code only */
-#ifdef CONFIG_S3C_NAND_BOOT
-# define BOARD_DEFAULT_NAND_TIMING CALC_NFCONF_TIMING(A9M2440_TACLS, A9M2440_TWRPH0, A9M2440_TWRPH1)
-#endif
-
-#endif /* __CONFIG_H */
diff --git a/arch/arm/boards/a9m2440/env/bin/_update b/arch/arm/boards/a9m2440/env/bin/_update
deleted file mode 100644
index b10682ece4..0000000000
--- a/arch/arm/boards/a9m2440/env/bin/_update
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/sh
-
-if [ -z "$part" -o -z "$image" ]; then
-	echo "define \$part and \$image"
-	exit 1
-fi
-
-if [ ! -e "$part" ]; then
-	echo "Partition $part does not exist"
-	exit 1
-fi
-
-if [ $# = 1 ]; then
-	image=$1
-fi
-
-if [ x$ip = xdhcp ]; then
-	dhcp
-fi
-
-ping $eth0.serverip
-if [ $? -ne 0 ] ; then
-	echo "update aborted"
-	exit 1
-fi
-
-echo
-echo "erasing partition $part"
-erase $part
-
-echo
-echo "flashing $image to $part"
-echo
-tftp $image $part
diff --git a/arch/arm/boards/a9m2440/env/bin/boot b/arch/arm/boards/a9m2440/env/bin/boot
deleted file mode 100644
index 86e22cf9ff..0000000000
--- a/arch/arm/boards/a9m2440/env/bin/boot
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/sh
-
-. /env/config
-
-if [ x$1 = xnand ]; then
-	root=nand
-	kernel=nand
-fi
-
-if [ x$1 = xnet ]; then
-	root=net
-	kernel=net
-fi
-
-if [ x$root = xnand ]; then
-	bootargs="$bootargs root=$rootpart_nand rootfstype=jffs2"
-fi
-if [ x$root = xnet ]; then
-	bootargs="$bootargs root=/dev/nfs nfsroot=$eth0.serverip:$nfsroot,v3,tcp"
-	if [ x$ip = xdhcp ]; then
-		bootargs="$bootargs ip=dhcp"
-	else
-		bootargs="$bootargs ip=$eth0.ipaddr:$eth0.serverip:$eth0.gateway:$eth0.netmask:::"
-	fi
-fi
-
-bootargs="$bootargs mtdparts=\"NAND 32MiB 3,3V 8-bit:$nand_parts\""
-
-bootargs="$bootargs cs89x0_media=rj45 cs89x0_mac=$eth0.ethaddr"
-
-if [ x$kernel = xnet ]; then
-	if [ x$ip = xdhcp ]; then
-		dhcp
-	fi
-	tftp $uimage uImage || exit 1
-	bootm uImage
-else
-	bootm /dev/nand0.kernel.bb
-fi
-
diff --git a/arch/arm/boards/a9m2440/env/bin/init b/arch/arm/boards/a9m2440/env/bin/init
deleted file mode 100644
index dd94ef6be0..0000000000
--- a/arch/arm/boards/a9m2440/env/bin/init
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/sh
-
-PATH=/env/bin
-export PATH
-
-. /env/config
-
-if [ -e /dev/nand0 ]; then
-	addpart /dev/nand0 $nand_parts
-fi
-
-if [ -z $eth0.ethaddr ]; then
-	while [ -z $eth0.ethaddr ]; do
-		readline "no MAC address set for eth0. please enter the one found on your board: " eth0.ethaddr
-	done
-	echo -a /env/config "eth0.ethaddr=$eth0.ethaddr"
-fi
-
-echo
-echo -n "Hit any key to stop autoboot: "
-timeout -a $autoboot_timeout
-if [ $? != 0 ]; then
-	echo
-	echo "type update_kernel [<imagename>] to update kernel into flash"
-	echo "type update_root [<imagename>] to update rootfs into flash"
-	echo
-	exit
-fi
-
-boot
diff --git a/arch/arm/boards/a9m2440/env/bin/update_kernel b/arch/arm/boards/a9m2440/env/bin/update_kernel
deleted file mode 100644
index c43a55785b..0000000000
--- a/arch/arm/boards/a9m2440/env/bin/update_kernel
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/sh
-
-. /env/config
-
-part=/dev/nand0.kernel.bb
-
-if [ x$1 = x ]; then
-	image=$uimage
-else
-	image=$1
-fi
-
-. /env/bin/_update $image
diff --git a/arch/arm/boards/a9m2440/env/bin/update_root b/arch/arm/boards/a9m2440/env/bin/update_root
deleted file mode 100644
index 46cbca5beb..0000000000
--- a/arch/arm/boards/a9m2440/env/bin/update_root
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/sh
-
-. /env/config
-
-part=/dev/nand0.root.bb
-
-if [ x$1 = x ]; then
-	image=$jffs2
-else
-	image=$1
-fi
-
-. /env/bin/_update $image
diff --git a/arch/arm/boards/a9m2440/env/config b/arch/arm/boards/a9m2440/env/config
deleted file mode 100644
index d1fb01b731..0000000000
--- a/arch/arm/boards/a9m2440/env/config
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/sh
-
-# can be either 'net' or 'nand''
-kernel=net
-root=net
-
-uimage=uImage-a9m2440
-jffs2=root-a9m2440.jffs2
-
-autoboot_timeout=3
-
-nfsroot="/nfsexport/OSELAS.BSP-Hesch-TMU-1/platform-FS_A9M2440/root"
-bootargs="console=ttySAC0,38400"
-
-nand_parts="256k(barebox)ro,128k(bareboxenv),1536k(kernel),-(root)"
-rootpart_nand="/dev/mtdblock3"
-
-# use 'dhcp' to do dhcp in barebox and in kernel
-#ip=dhcp
-
-# or set your networking parameters here
-eth0.ipaddr=192.168.42.32
-eth0.netmask=255.255.0.0
-eth0.gateway=192.168.23.1
-eth0.serverip=192.168.23.2
-#eth0.ethaddr=
diff --git a/arch/arm/boards/a9m2440/lowlevel_init.S b/arch/arm/boards/a9m2440/lowlevel_init.S
deleted file mode 100644
index 585863f9d4..0000000000
--- a/arch/arm/boards/a9m2440/lowlevel_init.S
+++ /dev/null
@@ -1,243 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-
-#include <config.h>
-#include <linux/sizes.h>
-#include <mach/s3c-iomap.h>
-#include <mach/s3c24xx-gpio.h>
-#include <asm/barebox-arm-head.h>
-
-	.section ".text_bare_init.barebox_arm_reset_vector","ax"
-
-/*
- * To be able to setup the SDRAM interface correctly, we need some
- * external information about the connected SDRAM devices.
- *
- * When we set GPH8, we can read at GPB:
- * Bit 0..1: Memory device size -> 00=16M, 01=64M, 10=32M, 11=128M
- * Bit 2: CL setting
- *
- * Some remarks: The CL setting seems useless. It always signals a CL3
- * requirement, but the SDRAM types I found on the cards are supporting
- * CL2 @ 100 MHz. But also these SDRAM types are only support 105 MHz max.
- * So, we never need CL3 because we can't run the CPU at 533 MHz (which
- * implies an 133 MHz SDRAM clock).
- * All devices are connected via 32 bit databus
- *
- * Note: I was able to check the 32 MiB and 64 MiB configuration only. I didn't
- * had access to a 16 MiB nor 128 MiB config.
- *
- */
-
-sdram_init:
-	/*
-	 * Read the configuration. After reset until any GPIO port is
-	 * configured yet, these pins show external settings, to detect
-	 * the SDRAM size.
-	 */
-	ldr r1, =S3C_GPBDAT
-	ldr r4, [r1]
-	and r4, r4, #0x3
-
-	ldr r1, =S3C_MEMCTL_BASE
-	/* configure both SDRAM areas with 32 bit data bus width */
-	ldr r0, =((0x2 << 24) + (0x2 << 28))
-	str r0, [r1], #0x1c	/* post add register offset for bank6 */
-
-	/*
-	 * With the configuration we simply need to calculate an offset into
-	 * our table with the predefined SDRAM settings
-	 */
-	adr r0, SDRAMDATA
-	mov r2, #6*4		/* # of bytes per table entry */
-	mul r3, r4, r2
-	add r0, r0, r3		/* start address of the entry */
-
-	/*
-	 * store the table entry data into the registers
-	 */
-1:
-	ldr     r3, [r0], #4
-	str     r3, [r1], #4
-	subs    r2, r2, #4
-	bne     1b
-
-/* TODO: Check if the second bank is populated, and switch it off if not */
-
-	mov pc, lr
-
-/*
- * we need 4 sets of memory settings per main CPU clock speed
- *
- * 400MHz main speed:
- * - 16 MiB in the first bank, maybe 16 MiB in the second bank (untested!)
- * - 32 MiB in the first bank, maybe 32 MiB in the second bank (CL=2)
- * - 64 MiB in the first bank, maybe 64 MiB in the second bank (CL=2)
- * - 128 MiB in the first bank, maybe 128 MiB in the second bank (untested!)
- *
- * Note: SDRAM clock runs at 100MHz
- */
-
-SDRAMDATA:
-/* --------------------------- 16 MiB @ 100MHz --------------------------- */
-	/*
-	 *  - MT = 11 (= sync dram type)
-	 *  - Trcd = 01 (= CL3)
-	 *  - SCAN = 00 (= 8 bit columns)
-	 */
-	.word ((0x3 << 15) + (0x1 << 2) + (0x0))
-	.word ((0x3 << 15) + (0x1 << 2) + (0x0))
-	/*
-	 * SDRAM refresh settings
-	 *  - REFEN = 1 (= refresh enabled)
-	 *  - TREFMD = 0 (= auto refresh)
-	 *  - Trp = 00 (= 2 RAS precharge clocks)
-	 *  - Tsrc = 11 (= 7 clocks -> row cycle time @100MHz 2+5=7 -> 70ns)
-	 *  - Refrsh = 2^11 + 1 - 100 * 15.6 = 2049 - 1560 = FIXME
-	 */
-	.word ((0x1 << 23) + (0x0 << 22) + (0x0 << 20) + (0x3 << 18) + 468)
-	/*
-	 * SDRAM banksize
-	 *  - BURST_EN = 0 (= burst mode disabled)
-	 *  - SCKE_EN = 1 (= SDRAM SCKE enabled)
-	 *  - SCLK_EN = 1 (= clock active only during accesses)
-	 *  - BK67MAP = 010 (= 128MiB) FIXME?????
-	 */
-	.word ((0 << 7) + (1 << 5) + (1 << 4) + 2)
-	/*
-	 * SDRAM mode register
-	 * CL = 010 (= 2 clocks)
-	 */
-	.word (0x2 << 4)
-	.word (0x2 << 4)
-
-/* ------------- one or two banks with 64 MiB @ 100MHz -------------------- */
-
-	/*
-	 *  - MT = 11 (= sync dram type)
-	 *  - Trcd = 00 (= CL2)
-	 *  - SCAN = 01 (= 9 bit columns)
-	 */
-	.word ((0x3 << 15) + (0x0 << 2) + (0x1))
-	.word ((0x3 << 15) + (0x0 << 2) + (0x1))
-	/*
-	 * SDRAM refresh settings
-	 *  - REFEN = 1 (= refresh enabled)
-	 *  - TREFMD = 0 (= auto refresh)
-	 *  - Trp = 00 (= 2 RAS precharge clocks)
-	 *  - Tsrc = 01 (= 5 clocks -> row cycle time @100MHz 2+5=7 -> 70ns)
-	 *  - Refrsh = 2^11 + 1 - 100 * 15.6 = 2049 - 1560 = 489
-	 */
-	.word ((0x1 << 23) + (0x0 << 22) + (0x0 << 20) + (0x1 << 18) + 489)
-	/*
-	 * SDRAM banksize
-	 *  - BURST_EN = 1 (= burst mode enabled)
-	 *  - SCKE_EN = 1 (= SDRAM SCKE enabled)
-	 *  - SCLK_EN = 1 (= clock active only during accesses)
-	 *  - BK67MAP = 001 (= 64 MiB)
-	 */
-	.word ((1 << 7) + (1 << 5) + (1 << 4) + 1)
-	/*
-	 * SDRAM mode register
-	 * CL = 010 (= 2 clocks)
-	 */
-	.word (0x2 << 4)
-	.word (0x2 << 4)
-
-/* ------------- one or two banks with 32 MiB @ 100MHz -------------------- */
-
-	/*
-	 *  - MT = 11 (= sync dram type)
-	 *  - Trcd = 00 (= CL2)
-	 *  - SCAN = 01 (= 9 bit columns)
-	 */
-	.word ((0x3 << 15) + (0x0 << 2) + (0x1))
-	.word ((0x3 << 15) + (0x0 << 2) + (0x1))
-	/*
-	 * SDRAM refresh settings
-	 *  - REFEN = 1 (= refresh enabled)
-	 *  - TREFMD = 0 (= auto refresh)
-	 *  - Trp = 00 (= 2 RAS precharge clocks)
-	 *  - Tsrc = 01 (= 5 clocks -> row cycle time @100MHz 2+5=7 -> 70ns)
-	 *  - Refrsh = 2^11 + 1 - 100 * 15.6 = 2049 - 1560 = 489
-	 */
-	.word ((0x1 << 23) + (0x0 << 22) + (0x0 << 20) + (0x1 << 18) + 489)
-	/*
-	 * SDRAM banksize
-	 *  - BURST_EN = 1 (= burst mode enabled)
-	 *  - SCKE_EN = 1 (= SDRAM SCKE enabled)
-	 *  - SCLK_EN = 1 (= clock active only during accesses)
-	 *  - BK67MAP = 000 (= 32 MiB)
-	 */
-	.word ((1 << 7) + (1 << 5) + (1 << 4) + 0)
-	/*
-	 * SDRAM mode register
-	 * CL = 010 (= 2 clocks)
-	 */
-	.word (0x2 << 4)
-	.word (0x2 << 4)
-
-/* ------------ one or two banks with 128 MiB @ 100MHz -------------------- */
-
-	/*
-	 *  - MT = 11 (= sync dram type)
-	 *  - Trcd = 00 (= CL2)
-	 *  - SCAN = 01 (= 9 bit columns)
-	 */
-	.word ((0x3 << 15) + (0x0 << 2) + (0x1))
-	.word ((0x3 << 15) + (0x0 << 2) + (0x1))
-	/*
-	 * SDRAM refresh settings
-	 *  - REFEN = 1 (= refresh enabled)
-	 *  - TREFMD = 0 (= auto refresh)
-	 *  - Trp = 00 (= 2 RAS precharge clocks)
-	 *  - Tsrc = 01 (= 5 clocks -> row cycle time @100MHz 2+5=7 -> 70ns)
-	 *  - Refrsh = 2^11 + 1 - 100 * 7.5 = 2049 - FIXME = 1259
-	 */
-	.word ((0x1 << 23) + (0x0 << 22) + (0x1 << 20) + (0x3 << 18) + 1259)
-	/*
-	 * SDRAM banksize
-	 *  - BURST_EN = 0 (= burst mode disabled)
-	 *  - SCKE_EN = 1 (= SDRAM SCKE enabled)
-	 *  - SCLK_EN = 1 (= clock active only during accesses)
-	 *  - BK67MAP = 010 (= 128MiB)
-	 */
-	.word (0x32)
-	/*
-	 * SDRAM mode register
-	 * CL = 010 (= 2 clocks)
-	 */
-	.word (0x2 << 4)
-	.word (0x2 << 4)
-
-/* ------------------------------------------------------------------------ */
-
-.globl barebox_arm_reset_vector
-barebox_arm_reset_vector:
-
-	bl arm_cpu_lowlevel_init
-
-	bl s3c24x0_disable_wd
-
-	/* skip everything here if we are already running from SDRAM */
-	cmp pc, #S3C_SDRAM_BASE
-	blo 1f
-	cmp pc, #S3C_SDRAM_END
-	bhs 1f
-
-	b out
-
-/* we are running from NOR or NAND/SRAM memory. Do further initialisation */
-1:
-	bl s3c24x0_pll_init
-
-	bl sdram_init
-
-#ifdef CONFIG_S3C_NAND_BOOT
-/* up to here we are running from the internal SRAM area */
-	bl s3c24x0_nand_boot
-#endif
-out:
-	mov r0, #S3C_SDRAM_BASE
-	mov r1, #SZ_32M
-	mov r2, #0
-	b barebox_arm_entry
diff --git a/arch/arm/boards/friendlyarm-mini2440/Kconfig b/arch/arm/boards/friendlyarm-mini2440/Kconfig
deleted file mode 100644
index 1037f7c77d..0000000000
--- a/arch/arm/boards/friendlyarm-mini2440/Kconfig
+++ /dev/null
@@ -1,35 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-
-if MACH_MINI2440
-
-config MINI2440_VIDEO
-	bool
-	select VIDEO
-	select DRIVER_VIDEO_S3C24XX
-
-config MINI2440_VIDEO_N35
-	bool "Support N35 display (240x320)"
-	select MINI2440_VIDEO
-	help
-	  This adds support for NEC 3.5 inch TFT display,
-	  the most common one used with MINI2440 board.
-
-config MINI2440_VIDEO_A70
-	bool "Support A70 display (800x480)"
-	select MINI2440_VIDEO
-	help
-	  This adds support for Innolux 7.0 inch TFT display.
-
-config MINI2440_VIDEO_SVGA
-	bool "Support SVGA video adapter"
-	select MINI2440_VIDEO
-	help
-	  This adds support for MINI2440 SVGA (1024x768) video output adapter.
-
-config MINI2440_VIDEO_W35
-	bool "Support W35 display (320x240)"
-	select MINI2440_VIDEO
-	help
-	  This adds support for Sharp 3.5 inch TFT display.
-
-endif
diff --git a/arch/arm/boards/friendlyarm-mini2440/Makefile b/arch/arm/boards/friendlyarm-mini2440/Makefile
deleted file mode 100644
index 618828126c..0000000000
--- a/arch/arm/boards/friendlyarm-mini2440/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-
-
-obj-y += mini2440.o
-lwl-y += lowlevel_init.o
diff --git a/arch/arm/boards/friendlyarm-mini2440/config.h b/arch/arm/boards/friendlyarm-mini2440/config.h
deleted file mode 100644
index 86c78e54f6..0000000000
--- a/arch/arm/boards/friendlyarm-mini2440/config.h
+++ /dev/null
@@ -1,118 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-/**
- * @file
- * @brief Global defintions for the ARM S3C2440 based mini2440 CPU card
- */
-
-#ifndef __CONFIG_H
-#define __CONFIG_H
-
-/**
- * The external clock reference is a 12.00 MHz crystal
- */
-#define S3C24XX_CLOCK_REFERENCE 12000000
-
-/**
- * Define the main clock configuration to be used in register CLKDIVN
- *
- * We must limit the frequency of the connected SDRAMs with the clock ratio
- * setup to 1:4:8. This will result into FCLK:HCLK:PCLK = 405Mhz:102MHz:51MHz
- */
-#define BOARD_SPECIFIC_CLKDIVN 0x05
-
-/**
- * Define the MPLL configuration to be used in register MPLLCON
- *
- * We want the MPLL to run at 405.0 MHz
- */
-#define BOARD_SPECIFIC_MPLL ((0x7f << 12) + (2 << 4) + 1)
-
-/**
- * Define the UPLL configuration to be used in register UPLLCON
- *
- * We want the UPLL to run at 48.0 MHz
- */
-#define BOARD_SPECIFIC_UPLL ((0x38 << 12) + (2 << 4) + 2)
-
-/*
- * Flash access timings
- * Tacls  = 0ns (but 20ns data setup time)
- * Twrph0 = 25ns (write) 35ns (read)
- * Twrph1 = 10ns (10ns data hold time)
- * Read cycle time = 50ns
- *
- * Assumed HCLK is 100MHz
- * Tacls = 1 (-> 20ns)
- * Twrph0 = 3 (-> 40ns)
- * Twrph1 = 1 (-> 20ns)
- * Cycle time = 80ns
- */
-#define MINI2440_TACLS 1
-#define MINI2440_TWRPH0 3
-#define MINI2440_TWRPH1 1
-
-/* needed in the generic NAND boot code only */
-#ifdef CONFIG_S3C_NAND_BOOT
-# define BOARD_DEFAULT_NAND_TIMING \
-	CALC_NFCONF_TIMING(MINI2440_TACLS, MINI2440_TWRPH0, MINI2440_TWRPH1)
-#endif
-
-/*
- * Needed in the generic SDRAM boot code only
- *
- * SDRAM configuration
- * Two types of SDRAM devices are common on mini2440:
- * - Two devices of HY57V561620 to form 64 MiB in bank 6 only
- *   - http://friendlyarm.net/dl.php?file=HY57V561620.pdf
- * - Two devices of MT48LC16M16 to form 64 MiB in bank 6 only
- *   - http://friendlyarm.net/dl.php?file=MT48LC16M16.pdf
-
- * Most of the time the CPU is specified for 400 MHz only. As the CPU frequency
- * and the SDRAM frequency are fix coupled by 4:1, the SDRAM runs at HCLCK.
- * So, we need a 100 MHz timing setup with CL=2 for the SDRAMs.
- */
-
-/*
- * - ST7/WS7/DW7: reserved, this SDRAM bank is not used
- * - ST6/WS6/DW6: 32 bit data bus (for SDRAM usage)
- * - ST5/WS5/DW5: reserved, to be set by the board init code
- * - ST4/WS4/DW4: reserved, to be set by the board init code
- * - ST3/WS3/DW3: reserved, to be set by the board init code
- * - ST2/WS2/DW2: reserved, to be set by the board init code
- * - ST1/WS1/DW1: reserved, to be set by the board init code
- * - DW0: not to be changed
- */
-#define BOARD_SPECIFIC_BWSCON ((0x3 << 28) | (0x2 << 24) | 0x333330)
-/*
- *  - MT = 11 (= sync dram type)
- *  - Trcd = 00 (= CL2)
- *  - SCAN = 01 (= 9 bit columns)
- */
-#define BOARD_SPECIFIC_BANKCON6 ((0x3 << 15) + (0x0 << 2) + (0x1))
-#define BOARD_SPECIFIC_BANKCON7 0 /* disabled */
-/*
- * SDRAM refresh settings
- *  - REFEN = 1 (= refresh enabled)
- *  - TREFMD = 0 (= auto refresh)
- *  - Trp = 00 (= 2 RAS precharge clocks)
- *  - Tsrc = 01 (= 5 clocks -> row cycle time @100MHz 2+5=7 -> 70ns)
- *  - Refresh = 2^11 + 1 - 100 * 7.8 = 2049 - 780 = 1269
- */
-#define BOARD_SPECIFIC_REFRESH ((0x1 << 23) + (0x0 << 22) + (0x0 << 20) + (0x1 << 18) + 1269)
-/*
- * SDRAM banksize
- *  - BURST_EN = 1 (= burst mode enabled)
- *  - SCKE_EN = 1 (= SDRAM SCKE enabled)
- *  - SCLK_EN = 1 (= clock active only during accesses)
- *  - BK67MAP = 001 (= 64 MiB)
- */
-# define BOARD_SPECIFIC_BANKSIZE ((1 << 7) + (1 << 5) + (1 << 4) + 1)
-/*
- * SDRAM mode register
- * CL = 010 (= 2 clocks)
- */
-# define BOARD_SPECIFIC_MRSRB6 (0x2 << 4)
-# define BOARD_SPECIFIC_MRSRB7 0	/* not used */
-
-#endif /* __CONFIG_H */
diff --git a/arch/arm/boards/friendlyarm-mini2440/env/boot/nand b/arch/arm/boards/friendlyarm-mini2440/env/boot/nand
deleted file mode 100644
index e0ef904432..0000000000
--- a/arch/arm/boards/friendlyarm-mini2440/env/boot/nand
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-
-global.bootm.image="/dev/nand0.kernel.bb"
-global.linux.bootargs.dyn.root="root=ubi0:root ubi.mtd=nand0.root rootfstype=ubifs"
diff --git a/arch/arm/boards/friendlyarm-mini2440/env/config-board b/arch/arm/boards/friendlyarm-mini2440/env/config-board
deleted file mode 100644
index 3e07a015b0..0000000000
--- a/arch/arm/boards/friendlyarm-mini2440/env/config-board
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/sh
-
-# board defaults, do not change in running system. Change /env/config
-# instead
-
-global.linux.bootargs.console="console=ttySAC0,115200"
-
-#
-# "mini2440" kernel parameter
-# 0 .. 9 = screen type
-# b = backlight enabled
-# t = touch enabled
-# c = camera enabled
-# Note: can be "minit2440= " if nothing of these components are connected
-#
-global.linux.bootargs.base="mini2440=6tb"
diff --git a/arch/arm/boards/friendlyarm-mini2440/env/init/mtdparts-nand b/arch/arm/boards/friendlyarm-mini2440/env/init/mtdparts-nand
deleted file mode 100644
index b51104ad76..0000000000
--- a/arch/arm/boards/friendlyarm-mini2440/env/init/mtdparts-nand
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-mtdparts="256k(nand0.barebox),128k(nand0.bareboxenv),1536k(nand0.kernel),-(nand0.root)"
-kernelname="nand"
-
-mtdparts-add -b -d nand0 -k ${kernelname} -p ${mtdparts}
diff --git a/arch/arm/boards/friendlyarm-mini2440/lowlevel_init.S b/arch/arm/boards/friendlyarm-mini2440/lowlevel_init.S
deleted file mode 100644
index b26efa12b0..0000000000
--- a/arch/arm/boards/friendlyarm-mini2440/lowlevel_init.S
+++ /dev/null
@@ -1,44 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-
-/*
- * Low level initialization for the FriendlyARM mini2440 board
- */
-
-#include <config.h>
-#include <linux/sizes.h>
-#include <mach/s3c-iomap.h>
-#include <asm/barebox-arm-head.h>
-
-	.section ".text_bare_init.barebox_arm_reset_vector","ax"
-
-/* ------------------------------------------------------------------------ */
-
-.globl barebox_arm_reset_vector
-barebox_arm_reset_vector:
-	bl arm_cpu_lowlevel_init
-
-	bl s3c24x0_disable_wd
-
-	/* skip everything here if we are already running from SDRAM */
-	cmp pc, #S3C_SDRAM_BASE
-	blo 1f
-	cmp pc, #S3C_SDRAM_END
-	bhs 1f
-
-	b out
-
-/* we are running from NOR or NAND/SRAM memory. Do further initialisation */
-1:
-	bl s3c24x0_pll_init
-
-	bl s3c24x0_sdram_init
-
-#ifdef CONFIG_S3C_NAND_BOOT
-/* up to here we are running from the internal SRAM area */
-	bl s3c24x0_nand_boot
-#endif
-out:
-	mov r0, #S3C_SDRAM_BASE
-	mov r1, #SZ_32M
-	mov r2, #0
-	b barebox_arm_entry
diff --git a/arch/arm/boards/friendlyarm-mini2440/mini2440.c b/arch/arm/boards/friendlyarm-mini2440/mini2440.c
deleted file mode 100644
index 5933f664b5..0000000000
--- a/arch/arm/boards/friendlyarm-mini2440/mini2440.c
+++ /dev/null
@@ -1,341 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-/*
- * Copyright (C) 2010 Marek Belisko <marek.belisko@open-nandra.com>
- *
- * Based on a9m2440.c board init by Juergen Beisert, Pengutronix
- */
-
-#include <common.h>
-#include <driver.h>
-#include <init.h>
-#include <generated/mach-types.h>
-#include <platform_data/eth-dm9000.h>
-#include <nand.h>
-#include <mci.h>
-#include <fb.h>
-#include <asm/armlinux.h>
-#include <asm/sections.h>
-#include <io.h>
-#include <gpio.h>
-#include <mach/bbu.h>
-#include <mach/iomux.h>
-#include <mach/s3c-iomap.h>
-#include <mach/devices-s3c24xx.h>
-#include <mach/s3c24xx-nand.h>
-#include <mach/s3c-generic.h>
-#include <mach/s3c-mci.h>
-#include <mach/s3c24xx-fb.h>
-#include <mach/s3c-busctl.h>
-#include <mach/s3c24xx-gpio.h>
-
-static struct s3c24x0_nand_platform_data nand_info = {
-	.nand_timing = CALC_NFCONF_TIMING(MINI2440_TACLS, MINI2440_TWRPH0,
-							MINI2440_TWRPH1),
-	.flash_bbt = 1,	/* same as the kernel */
-};
-
-/*
- * dm9000 network controller onboard
- * Connected to CS line 4 and interrupt line EINT7,
- * data width is 16 bit
- * Area 1: Offset 0x300...0x303
- * Area 2: Offset 0x304...0x307
- */
-static struct dm9000_platform_data dm9000_data = {
-	.srom     = 1,
-};
-
-static struct s3c_mci_platform_data mci_data = {
-	.caps = MMC_CAP_4_BIT_DATA | MMC_CAP_SD_HIGHSPEED | MMC_CAP_MMC_HIGHSPEED,
-	.voltages = MMC_VDD_32_33 | MMC_VDD_33_34,
-	.gpio_detect = 232,	/* GPG8_GPIO */
-	.detect_invert = 0,
-};
-
-static struct fb_videomode s3c24x0_fb_modes[] = {
-#ifdef CONFIG_MINI2440_VIDEO_N35
-	{
-		.name		= "N35",
-		.refresh	= 60,
-		.xres		= 240,
-		.left_margin	= 21,
-		.right_margin	= 38,
-		.hsync_len	= 6,
-		.yres		= 320,
-		.upper_margin	= 4,
-		.lower_margin	= 4,
-		.vsync_len	= 2,
-		.pixclock	= 115913,
-		.sync		= FB_SYNC_USE_PWREN,
-		.vmode		= FB_VMODE_NONINTERLACED,
-	},
-#endif
-#ifdef CONFIG_MINI2440_VIDEO_A70
-	{
-		.name		= "A70",
-		.refresh	= 50,
-		.xres		= 800,
-		.left_margin	= 40,
-		.right_margin	= 40,
-		.hsync_len	= 48,
-		.yres		= 480,
-		.upper_margin	= 29,
-		.lower_margin	= 3,
-		.vsync_len	= 3,
-		.pixclock	= 41848,
-		.sync		= FB_SYNC_USE_PWREN | FB_SYNC_DE_HIGH_ACT,
-		.vmode		= FB_VMODE_NONINTERLACED,
-	},
-#endif
-#ifdef CONFIG_MINI2440_VIDEO_SVGA
-	{
-		.name		= "SVGA",
-		.refresh	= 24,
-		.xres		= 1024,
-		.left_margin	= 1,
-		.right_margin	= 2,
-		.hsync_len	= 2,
-		.yres		= 768,
-		.upper_margin	= 200,
-		.lower_margin	= 16,
-		.vsync_len	= 16,
-		.pixclock	= 40492,
-		.sync		= FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT | FB_SYNC_DE_HIGH_ACT
-                                  /* | FB_SYNC_SWAP_HW */ /* FIXME maybe */ ,
-		.vmode		= FB_VMODE_NONINTERLACED,
-	},
-#endif
-#ifdef CONFIG_MINI2440_VIDEO_W35
-	{
-		.name		= "W35",
-		.refresh	= 60,
-		.xres		= 320,
-		.left_margin	= 68,
-		.right_margin	= 66,
-		.hsync_len	= 4,
-		.yres		= 240,
-		.upper_margin	= 4,
-		.lower_margin	= 4,
-		.vsync_len	= 9,
-		.pixclock	= 115913,
-		.sync		= FB_SYNC_USE_PWREN | FB_SYNC_CLK_INVERT,
-		.vmode		= FB_VMODE_NONINTERLACED,
-	},
-#endif
-};
-
-static struct s3c_fb_platform_data s3c24x0_fb_data = {
-	.mode_list		= s3c24x0_fb_modes,
-	.mode_cnt		= sizeof(s3c24x0_fb_modes) / sizeof(struct fb_videomode),
-	.bits_per_pixel		= 16,
-	.passive_display	= 0,
-};
-
-static const unsigned pin_usage[] = {
-	/* address bus, used by NOR, SDRAM */
-	GPA1_ADDR16,
-	GPA2_ADDR17,
-	GPA3_ADDR18,
-	GPA4_ADDR19,
-	GPA5_ADDR20,
-	GPA6_ADDR21,
-	GPA7_ADDR22,
-
-	GPA8_ADDR23_GPIO | GPIO_IN,
-	GPA9_ADDR24,	/* BA0 */
-	GPA10_ADDR25,	/* BA1 */
-	GPA11_ADDR26_GPIO | GPIO_IN,	/* not connected */
-
-	/* DM9000 requirements */
-	GPA15_NGCS4,
-	GPF7_EINT7,
-
-	/* de-activate the speaker */
-	GPB0_GPIO | GPIO_OUT | GPIO_VAL(0),
-
-	/* SD socket */
-	GPE5_SDCLK,
-	GPE6_SDCMD,
-	GPE7_SDDAT0,
-	GPE8_SDDAT1,
-	GPE9_SDDAT2,
-	GPE10_SDDAT3,
-	GPG8_GPIO | GPIO_IN,	/* change detection */
-	GPH8_GPIO | GPIO_IN,	/* write protection sense */
-
-	/* NAND requirements */
-	GPA17_CLE,
-	GPA18_ALE,
-	GPA19_NFWE,
-	GPA20_NFRE,
-	GPA21_NRSTOUT,
-	GPA22_NFCE,
-
-	/* Video out */
-	GPC0_LEND,
-	GPC1_VCLK,
-	GPC2_VLINE,
-	GPC3_VFRAME,
-	GPC4_VM,
-	GPC5_LPCOE,
-	GPC6_LPCREV,
-	GPC7_LPCREVB,
-	GPG4_LCD_PWREN,
-
-	GPC8_VD0,
-	GPC9_VD1,
-	GPC10_VD2,
-	GPC11_VD3,
-	GPC12_VD4,
-	GPC13_VD5,
-	GPC14_VD6,
-	GPC15_VD7,
-	GPD0_VD8,
-	GPD1_VD9,
-	GPD2_VD10,
-	GPD3_VD11,
-	GPD4_VD12,
-	GPD5_VD13,
-	GPD6_VD14,
-	GPD7_VD15,
-	GPD8_VD16,
-	GPD9_VD17,
-	GPD10_VD18,
-	GPD11_VD19,
-	GPD12_VD20,
-	GPD13_VD21,
-	GPD14_VD22,
-	GPD15_VD23,
-
-	/* K6 or CON12, pin 6, external pull up  */
-	GPG11_EINT19 | GPIO_IN,
-	/* K5 or CON12, pin 5*/
-	GPG7_EINT15 | GPIO_IN,
-	/* K4 or CON12, pin 4 */
-	GPG6_EINT14 | GPIO_IN,
-	/* K3 or CON12, pin 3 */
-	GPG5_EINT13 | GPIO_IN,
-	/* K2 or CON12, pin 2 */
-	GPG3_EINT11 | GPIO_IN,
-	/* K1 or CON12, pin 1, external pull up */
-	GPG0_EINT8 | GPIO_IN,
-
-	/* LED 1 1=off */
-	GPB5_GPIO | GPIO_OUT | GPIO_VAL(1),
-	/* LED 2 1=off */
-	GPB6_GPIO | GPIO_OUT | GPIO_VAL(1),
-	/* LED 3 1=off */
-	GPB7_GPIO | GPIO_OUT | GPIO_VAL(1),
-	/* LED 4 1=off */
-	GPB8_GPIO | GPIO_OUT | GPIO_VAL(1),
-
-	/* camera interface (ignore it) */
-	GPJ0_GPIO | GPIO_IN,
-	GPJ1_GPIO | GPIO_IN,
-	GPJ2_GPIO | GPIO_IN,
-	GPJ3_GPIO | GPIO_IN,
-	GPJ4_GPIO | GPIO_IN,
-	GPJ5_GPIO | GPIO_IN,
-	GPJ6_GPIO | GPIO_IN,
-	GPJ7_GPIO | GPIO_IN,
-	GPJ8_GPIO | GPIO_IN,
-	GPJ9_GPIO | GPIO_IN,
-	GPJ10_GPIO | GPIO_IN,
-	GPJ11_GPIO | GPIO_IN,
-	GPJ12_GPIO | GPIO_IN,
-
-	/* I2C bus */
-	GPE14_IICSCL,	/* external pull up */
-	GPE15_IICSDA,	/* external pull up */
-
-	GPA12_NGCS1,	/* CON5, pin 7 */
-	GPA13_NGCS2,	/* CON5, pin 8 */
-	GPA14_NGCS3,	/* CON5, pin 9 */
-	GPA16_NGCS5,	/* CON5, pin 10 */
-
-	/* UART2 (spare) */
-	GPH4_TXD1,
-	GPH5_RXD1,
-
-	/* UART3 (spare) */
-	GPH6_TXD2,
-	GPH7_RXD2,
-};
-
-static int mini2440_mem_init(void)
-{
-	arm_add_mem_device("ram0", S3C_SDRAM_BASE, s3c24xx_get_memory_size());
-
-	return 0;
-}
-mem_initcall(mini2440_mem_init);
-
-static int mini2440_devices_init(void)
-{
-	uint32_t reg;
-	int i;
-
-	/* ----------- configure the access to the outer space ---------- */
-	for (i = 0; i < ARRAY_SIZE(pin_usage); i++)
-		s3c_gpio_mode(pin_usage[i]);
-
-	reg = readl(S3C_BWSCON);
-
-	/* CS#4 to access the network controller */
-	reg &= ~0x000f0000;
-	reg |=  0x000d0000;	/* 16 bit */
-	writel(0x1f4c, S3C_BANKCON4);
-
-	writel(reg, S3C_BWSCON);
-
-	/* release the reset signal to external devices */
-	reg = readl(S3C_MISCCR);
-	reg |= 0x10000;
-	writel(reg, S3C_MISCCR);
-
-	s3c24xx_add_nand(&nand_info);
-
-	add_dm9000_device(0, S3C_CS4_BASE + 0x300, S3C_CS4_BASE + 0x304,
-			  IORESOURCE_MEM_16BIT, &dm9000_data);
-#ifdef CONFIG_NAND
-	/* ----------- add some vital partitions -------- */
-	devfs_del_partition("self_raw");
-	devfs_add_partition("nand0", 0x00000, 0x40000, DEVFS_PARTITION_FIXED, "self_raw");
-	dev_add_bb_dev("self_raw", "self0");
-
-	devfs_del_partition("env_raw");
-	devfs_add_partition("nand0", 0x40000, 0x20000, DEVFS_PARTITION_FIXED, "env_raw");
-	dev_add_bb_dev("env_raw", "env0");
-
-	s3c24x0_bbu_nand_register_handler();
-#endif
-	s3c24xx_add_mci(&mci_data);
-	s3c24xx_add_fb(&s3c24x0_fb_data);
-	s3c24xx_add_ohci();
-	armlinux_set_architecture(MACH_TYPE_MINI2440);
-
-	return 0;
-}
-
-device_initcall(mini2440_devices_init);
-
-static int mini2440_console_init(void)
-{
-	/*
-	 * configure the UART1 right now, as barebox will
-	 * start to send data immediately
-	 */
-	s3c_gpio_mode(GPH0_NCTS0);
-	s3c_gpio_mode(GPH1_NRTS0);
-	s3c_gpio_mode(GPH2_TXD0);
-	s3c_gpio_mode(GPH3_RXD0);
-
-	barebox_set_model("Friendlyarm mini2440");
-	barebox_set_hostname("mini2440");
-
-	s3c24xx_add_uart1();
-	return 0;
-}
-
-console_initcall(mini2440_console_init);
diff --git a/arch/arm/boards/friendlyarm-mini6410/Makefile b/arch/arm/boards/friendlyarm-mini6410/Makefile
deleted file mode 100644
index 2e6ea7aa7e..0000000000
--- a/arch/arm/boards/friendlyarm-mini6410/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-
-obj-y += mini6410.o
-lwl-y += lowlevel.o
-bbenv-$(CONFIG_DEFAULT_ENVIRONMENT_GENERIC) += defaultenv-friendlyarm-mini6410
diff --git a/arch/arm/boards/friendlyarm-mini6410/config.h b/arch/arm/boards/friendlyarm-mini6410/config.h
deleted file mode 100644
index 87b6ea4a29..0000000000
--- a/arch/arm/boards/friendlyarm-mini6410/config.h
+++ /dev/null
@@ -1,10 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-
-/* FriendlyARM Mini6410 specific global settings */
-
-#ifndef _MINI6410_CONFIG_H_
-# define _MINI6410_CONFIG_H_
-
-#define S3C64XX_CLOCK_REFERENCE 12000000
-
-#endif /* _MINI6410_CONFIG_H_ */
diff --git a/arch/arm/boards/friendlyarm-mini6410/defaultenv-friendlyarm-mini6410/config b/arch/arm/boards/friendlyarm-mini6410/defaultenv-friendlyarm-mini6410/config
deleted file mode 100644
index 924d7b8cc7..0000000000
--- a/arch/arm/boards/friendlyarm-mini6410/defaultenv-friendlyarm-mini6410/config
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/bin/sh
-
-machine=mini6410
-eth0.serverip=a.b.c.d.e
-user=
-
-# use 'dhcp' to do dhcp in barebox and in kernel
-# use 'none' if you want to skip kernel ip autoconfiguration
-ip=dhcp
-
-# or set your networking parameters here
-#eth0.ipaddr=a.b.c.d.e
-#eth0.netmask=a.b.c.d.e
-#eth0.gateway=a.b.c.d.e
-#eth0.ethaddr=
-
-# can be either 'nfs', 'tftp' or 'nand'
-kernel_loc=tftp
-# can be either 'net', 'nand' or 'initrd'
-rootfs_loc=net
-
-# can be either 'jffs2' or 'ubifs'
-rootfs_type=ubifs
-rootfsimage=root-${machine}.${rootfs_type}
-
-# The image type of the kernel. Can be uimage, zimage, raw, or raw_lzo
-kernelimage=zImage-${machine}
-#kernelimage=uImage-$machine
-#kernelimage=Image-$machine
-#kernelimage=Image-$machine.lzo
-
-if [ -n $user ]; then
-	kernelimage="${user}"-"${kernelimage}"
-	nfsroot="${eth0.serverip}:/home/${user}/nfsroot/${machine}"
-	rootfsimage="${user}"-"${rootfsimage}"
-else
-	nfsroot="${eth0.serverip}:/path/to/nfs/root"
-fi
-
-autoboot_timeout=3
-
-#
-# "mini6410" kernel parameter
-# 0 .. 9 = screen type
-# i = touchscreen with propritary FriendlyARM protocol
-# Note: can be "minit6410= " if nothing of these components are connected
-#
-bootargs="console=ttySAC0,115200 mini6410=0"
-
-nand_device="nand"
-nand_parts="256k(barebox),128k(bareboxenv),1536k(kernel),-(root)"
-rootfs_mtdblock_nand=3
diff --git a/arch/arm/boards/friendlyarm-mini6410/lowlevel.c b/arch/arm/boards/friendlyarm-mini6410/lowlevel.c
deleted file mode 100644
index dfb69d2272..0000000000
--- a/arch/arm/boards/friendlyarm-mini6410/lowlevel.c
+++ /dev/null
@@ -1,13 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-
-#include <common.h>
-#include <linux/sizes.h>
-#include <asm/barebox-arm.h>
-#include <asm/barebox-arm-head.h>
-#include <mach/s3c-iomap.h>
-
-void __naked barebox_arm_reset_vector(uint32_t r0, uint32_t r1, uint32_t r2)
-{
-	arm_cpu_lowlevel_init();
-	barebox_arm_entry(S3C_SDRAM_BASE, SZ_128M, NULL);
-}
diff --git a/arch/arm/boards/friendlyarm-mini6410/mini6410.c b/arch/arm/boards/friendlyarm-mini6410/mini6410.c
deleted file mode 100644
index 3f5e8ca2a3..0000000000
--- a/arch/arm/boards/friendlyarm-mini6410/mini6410.c
+++ /dev/null
@@ -1,302 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-// SPDX-FileCopyrightText: 2012 Juergen Beisert
-
-#include <common.h>
-#include <driver.h>
-#include <init.h>
-#include <platform_data/eth-dm9000.h>
-#include <gpio.h>
-#include <envfs.h>
-#include <generated/mach-types.h>
-#include <asm/armlinux.h>
-#include <mach/s3c-iomap.h>
-#include <mach/devices-s3c64xx.h>
-#include <mach/s3c-generic.h>
-#include <mach/iomux.h>
-
-/*
- * dm9000 network controller onboard
- * Connected to CS line 1 and interrupt line EINT7,
- * data width is 16 bit
- * Area 1: Offset 0x300...0x301
- * Area 2: Offset 0x304...0x305
- */
-static struct dm9000_platform_data dm9000_data = {
-	.srom = 0,	/* no serial ROM for the ethernet address */
-};
-
-static const unsigned pin_usage[] = {
-	/* UART2 (spare, 3,3 V TTL level only) */
-	GPA4_RXD1 | ENABLE_PU,
-	GPA5_TXD1,
-	GPA6_NCTS1 | ENABLE_PU,
-	GPA7_NRTS1,
-	/* UART3 (spare, 3,3 V TTL level only) */
-	GPB0_RXD2 | ENABLE_PU,
-	GPB1_TXD2,
-	/* UART4 (spare, 3,3 V TTL level only) */
-	GPB2_RXD3 | ENABLE_PU,
-	GPB3_TXD3,
-
-	GPB4_GPIO | GPIO_IN | ENABLE_PU,
-
-	/* I2C bus */
-	GPB5_IIC0_SCL,	/* external PU */
-	GPB6_IIC0_SDA,	/* external PU */
-
-	GPC0_SPI0_MISO | ENABLE_PU,
-	GPC1_SPI0_CLK,
-	GPC2_SPI0_MOSI,
-	GPC3_SPI0_NCS,
-
-	GPC4_SPI1_MISO | ENABLE_PU,
-	GPC5_SPI1_CLK,
-	GPC6_SPI1_MOSI,
-	GPC7_SPI1_NCS,
-
-	GPD0_AC97_BITCLK,
-	GPD1_AC97_NRST,
-	GPD2_AC97_SYNC,
-	GPD3_AC97_SDI | ENABLE_PU,
-	GPD4_AC97_SDO,
-
-	GPE0_GPIO | GPIO_OUT | GPIO_VAL(0), /* LCD backlight off */
-	GPE1_GPIO | GPIO_IN | ENABLE_PU,
-	GPE2_GPIO | GPIO_IN | ENABLE_PU,
-	GPE3_GPIO | GPIO_IN | ENABLE_PU,
-	GPE4_GPIO | GPIO_IN | ENABLE_PU,
-
-	/* keep all camera signals at reasonable values */
-	GPF0_GPIO | GPIO_IN | ENABLE_PU,
-	GPF1_GPIO | GPIO_IN | ENABLE_PU,
-	GPF2_GPIO | GPIO_IN | ENABLE_PU,
-	GPF3_GPIO | GPIO_IN | ENABLE_PU,
-	GPF4_GPIO | GPIO_IN | ENABLE_PU,
-	GPF5_GPIO | GPIO_IN | ENABLE_PU,
-	GPF6_GPIO | GPIO_IN | ENABLE_PU,
-	GPF7_GPIO | GPIO_IN | ENABLE_PU,
-	GPF8_GPIO | GPIO_IN | ENABLE_PU,
-	GPF9_GPIO | GPIO_IN | ENABLE_PU,
-	GPF10_GPIO | GPIO_IN | ENABLE_PU,
-	GPF11_GPIO | GPIO_IN | ENABLE_PU,
-	GPF12_GPIO | GPIO_IN | ENABLE_PU,
-	GPF13_GPIO | GPIO_OUT | GPIO_VAL(0), /* USB power off */
-#if 0
-	GPF14_CLKOUT, /* for testing purposes, but very noisy */
-#else
-	GPF14_GPIO | GPIO_OUT | GPIO_VAL(0), /* Buzzer off */
-#endif
-	GPF15_GPIO | GPIO_OUT | GPIO_VAL(0), /* Backlight PWM inactive */
-
-	/* SD card slot (all signals have external 10k PU) */
-	GPG0_MMC0_CLK,
-	GPG1_MMC0_CMD,
-	GPG2_MMC0_DAT0,
-	GPG3_MMC0_DAT1,
-	GPG4_MMC0_DAT2,
-	GPG5_MMC0_DAT3,
-	GPG6_MMC0_NCD,
-
-	/* SDIO slot (all used signals have external PU) */
-	GPH0_GPIO | GPIO_IN,	/* CLK */
-	GPH1_GPIO | GPIO_IN,	/* CMD */
-	GPH2_GPIO | GPIO_IN,	/* DAT0 */
-	GPH3_GPIO | GPIO_IN,	/* DAT1 */
-	GPH4_GPIO | GPIO_IN,	/* DAT2 */
-	GPH5_GPIO | GPIO_IN,	/* DAT3 */
-	GPH6_GPIO | GPIO_IN | ENABLE_PU, /* nowhere connected */
-	GPH7_GPIO | GPIO_IN | ENABLE_PU, /* nowhere connected */
-	GPH8_GPIO | GPIO_IN | ENABLE_PU, /* nowhere connected */
-	GPH9_GPIO | GPIO_IN | ENABLE_PU, /* nowhere connected */
-
-	/* as long as we are not using the LCD controller, disable the pins */
-	GPI0_GPIO | GPIO_IN | ENABLE_PD,
-	GPI1_GPIO | GPIO_IN | ENABLE_PD,
-	GPI2_GPIO | GPIO_IN | ENABLE_PD,
-	GPI3_GPIO | GPIO_IN | ENABLE_PD,
-	GPI4_GPIO | GPIO_IN | ENABLE_PD,
-	GPI5_GPIO | GPIO_IN | ENABLE_PD,
-	GPI6_GPIO | GPIO_IN | ENABLE_PD,
-	GPI7_GPIO | GPIO_IN | ENABLE_PD,
-	GPI8_GPIO | GPIO_IN | ENABLE_PD,
-	GPI9_GPIO | GPIO_IN | ENABLE_PD,
-	GPI10_GPIO | GPIO_IN | ENABLE_PD,
-	GPI11_GPIO | GPIO_IN | ENABLE_PD,
-	GPI12_GPIO | GPIO_IN | ENABLE_PD,
-	GPI13_GPIO | GPIO_IN | ENABLE_PD,
-	GPI14_GPIO | GPIO_IN | ENABLE_PD,
-	GPI15_GPIO | GPIO_IN | ENABLE_PD,
-	GPJ0_GPIO | GPIO_IN | ENABLE_PD,
-	GPJ1_GPIO | GPIO_IN | ENABLE_PD,
-	GPJ2_GPIO | GPIO_IN | ENABLE_PD,
-	GPJ3_GPIO | GPIO_IN | ENABLE_PD,
-	GPJ4_GPIO | GPIO_IN | ENABLE_PD,
-	GPJ5_GPIO | GPIO_IN | ENABLE_PD,
-	GPJ6_GPIO | GPIO_IN | ENABLE_PD,
-	GPJ7_GPIO | GPIO_IN | ENABLE_PD,
-	GPJ8_GPIO | GPIO_IN | ENABLE_PD,
-	GPJ9_GPIO | GPIO_IN | ENABLE_PD,
-	GPJ10_GPIO | GPIO_IN | ENABLE_PD,
-	GPJ11_GPIO | GPIO_IN | ENABLE_PD,
-
-	GPK0_GPIO | GPIO_IN | ENABLE_PU,	/* not used */
-	GPK1_GPIO | GPIO_IN | ENABLE_PU,	/* not used */
-	GPK2_GPIO | GPIO_IN,
-	GPK3_GPIO | GPIO_IN | ENABLE_PU,	/* not used */
-	GPK4_GPIO | GPIO_OUT | GPIO_VAL(1),	/* LED #1 (high = LED off) */
-	GPK5_GPIO | GPIO_OUT | GPIO_VAL(1),	/* LED #2 (high = LED off) */
-	GPK6_GPIO | GPIO_OUT | GPIO_VAL(1),	/* LED #3 (high = LED off) */
-	GPK7_GPIO | GPIO_OUT | GPIO_VAL(1),	/* LED #4 (high = LED off) */
-	GPK8_GPIO | GPIO_IN, 			/* (external PU) */
-	GPK9_GPIO | GPIO_IN | ENABLE_PU,	/* not used */
-	GPK10_GPIO | GPIO_IN | ENABLE_PU,	/* not used */
-	GPK11_GPIO | GPIO_IN | ENABLE_PU,	/* not used */
-	GPK12_GPIO | GPIO_IN,			/* OCT_DET */
-	GPK13_GPIO | GPIO_IN,			/* WIFI power (external PU) */
-	GPK14_GPIO | GPIO_IN | ENABLE_PU,	/* not used */
-	GPK15_GPIO | GPIO_IN | ENABLE_PU,	/* not used */
-
-	GPL0_GPIO | GPIO_IN | ENABLE_PU,	/* not used */
-	GPL1_GPIO | GPIO_IN | ENABLE_PU,	/* not used */
-	GPL2_GPIO | GPIO_IN | ENABLE_PU,	/* not used */
-	GPL3_GPIO | GPIO_IN | ENABLE_PU,	/* not used */
-	GPL4_GPIO | GPIO_IN | ENABLE_PU,	/* not used */
-	GPL5_GPIO | GPIO_IN | ENABLE_PU,	/* not used */
-	GPL6_GPIO | GPIO_IN | ENABLE_PU,	/* not used */
-	GPL7_GPIO | GPIO_IN | ENABLE_PU,	/* not used */
-	GPL8_GPIO | GPIO_IN,			/* EINT16 (external PU) */
-	GPL9_GPIO | GPIO_IN | ENABLE_PU,	/* EINT17 */
-	GPL10_GPIO | GPIO_IN | ENABLE_PU,	/* EINT18 */
-	GPL11_GPIO | GPIO_IN,			/* EINT19 + K7 (external PU) */
-	GPL12_GPIO | GPIO_IN,			/* EINT20 + K6 (external PU) */
-	GPL13_GPIO | GPIO_IN,			/* SD0 WP (external PU) */
-	GPL14_GPIO | GPIO_IN,			/* SD1 WP (external PU) */
-
-	GPM0_GPIO | GPIO_IN,			/* (external PU) */
-	GPM1_GPIO | GPIO_IN,			/* (external PU) */
-	GPM2_GPIO | GPIO_IN,			/* (external PU) */
-	GPM3_GPIO | GPIO_IN,			/* (external PU) */
-	GPM4_GPIO | GPIO_IN,			/* (external PU) */
-	GPM5_GPIO | GPIO_IN,			/* (external PU) */
-
-	GPN0_GPIO | GPIO_IN,			/* EINT0 (external PU) */
-	GPN1_GPIO | GPIO_IN,			/* EINT1 (external PU) */
-	GPN2_GPIO | GPIO_IN,			/* EINT2 (external PU) */
-	GPN3_GPIO | GPIO_IN,			/* EINT3 (external PU) */
-	GPN4_GPIO | GPIO_IN,			/* EINT4 (external PU) */
-	GPN5_GPIO | GPIO_IN,			/* EINT5 (external PU) */
-	GPN6_GPIO | GPIO_IN,			/* EINT6 (external PU) */
-	GPN7_GPIO | GPIO_IN | ENABLE_PU,	/* EINT7 DM9000 interrupt */
-	GPN8_GPIO | GPIO_IN,			/* EINT8 USB detect (external PU) */
-	GPN9_GPIO | GPIO_IN,			/* EINT9 (external PU) */
-	GPN10_GPIO | GPIO_IN,			/* SD1 CD (external PU) */
-	GPN11_GPIO | GPIO_IN,			/* EINT11 (external PU) */
-	GPN12_GPIO | GPIO_IN,			/* EINT12 IR in (external PU) */
-	GPN13_GPIO | GPIO_IN,			/* BOOT0/EINT13 (externally fixed) */
-	GPN14_GPIO | GPIO_IN,			/* BOOT1/EINT14 (externally fixed) */
-	GPN15_GPIO | GPIO_IN,			/* BOOT2/EINT15 (externally fixed) */
-
-	GPO0_NCS2,				/* NAND */
-	GPO1_NCS3,				/* NAND */
-	GPO2_NCS4,				/* CON5 */
-	GPO3_GPIO | GPIO_IN | ENABLE_PU,	/* not used */
-	GPO4_GPIO | GPIO_IN | ENABLE_PU,	/* CON5 pin 8 */
-	GPO5_GPIO | GPIO_IN | ENABLE_PU,	/* not used */
-	GPO6_ADDR6,				/* CON5 */
-	GPO7_GPIO | GPIO_IN | ENABLE_PU,	/* not used */
-	GPO8_GPIO | GPIO_IN | ENABLE_PU,	/* not used */
-	GPO9_GPIO | GPIO_IN | ENABLE_PU,	/* not used */
-	GPO10_GPIO | GPIO_IN | ENABLE_PU,	/* not used */
-	GPO11_GPIO | GPIO_IN | ENABLE_PU,	/* not used */
-	GPO12_GPIO | GPIO_IN | ENABLE_PU,	/* not used */
-	GPO13_GPIO | GPIO_IN | ENABLE_PU,	/* not used */
-	GPO14_GPIO | GPIO_IN | ENABLE_PU,	/* not used */
-	GPO15_GPIO | GPIO_IN | ENABLE_PU,	/* not used */
-
-	GPP0_GPIO | GPIO_IN | ENABLE_PU,	/* not used */
-	GPP1_GPIO | GPIO_IN | ENABLE_PU,	/* not used */
-	GPP2_NWAIT | ENABLE_PU,			/* CON5 */
-	GPP3_FALE,				/* NAND */
-	GPP4_FCLE,				/* NAND */
-	GPP5_FWE,				/* NAND */
-	GPP6_FRE,				/* NAND */
-	GPP7_RNB,				/* NAND (external PU) */
-	GPP8_GPIO | GPIO_IN | ENABLE_PU,	/* not used */
-	GPP9_GPIO | GPIO_IN | ENABLE_PU,	/* not used */
-	GPP10_GPIO | GPIO_IN,			/* (external PU) */
-	GPP11_GPIO | GPIO_IN,			/* (external PU) */
-	GPP12_GPIO | GPIO_IN | ENABLE_PU,	/* not used */
-	GPP13_GPIO | GPIO_IN | ENABLE_PU,	/* not used */
-	GPP14_GPIO | GPIO_IN | ENABLE_PU,	/* not used */
-
-	GPQ0_GPIO | GPIO_IN | ENABLE_PU,	/* not used as LADDR18 */
-	GPQ1_GPIO | GPIO_IN,			/* (external PU) */
-	GPQ2_GPIO | GPIO_IN,			/* (external PU) */
-	GPQ3_GPIO | GPIO_IN,			/* (external PU) */
-	GPQ4_GPIO | GPIO_IN,			/* (external PU) */
-	GPQ5_GPIO | GPIO_IN,			/* (external PU) */
-	GPQ6_GPIO | GPIO_IN,			/* (external PU) */
-	GPQ7_GPIO | GPIO_IN | ENABLE_PU,	/* not used as LADDR17 */
-	GPQ8_GPIO | GPIO_IN | ENABLE_PU,	/* not used as LADDR16 */
-};
-
-static int mini6410_mem_init(void)
-{
-	arm_add_mem_device("ram0", S3C_SDRAM_BASE, s3c6410_get_memory_size());
-
-	return 0;
-}
-mem_initcall(mini6410_mem_init);
-
-static const struct s3c6410_chipselect dm900_cs = {
-	.adr_setup_t = 0,
-	.access_setup_t = 0,
-	.access_t = 20,
-	.cs_hold_t = 3,
-	.adr_hold_t = 20, /* CS must be de-asserted for at least 20 ns */
-	.width = 16,
-};
-
-static void mini6410_setup_dm9000_cs(void)
-{
-	s3c6410_setup_chipselect(1, &dm900_cs);
-}
-
-static int mini6410_devices_init(void)
-{
-	int i;
-
-	/* ----------- configure the access to the outer space ---------- */
-	for (i = 0; i < ARRAY_SIZE(pin_usage); i++)
-		s3c_gpio_mode(pin_usage[i]);
-
-	mini6410_setup_dm9000_cs();
-	add_dm9000_device(0, S3C_CS1_BASE + 0x300, S3C_CS1_BASE + 0x304,
-				IORESOURCE_MEM_16BIT, &dm9000_data);
-
-	armlinux_set_architecture(MACH_TYPE_MINI6410);
-
-	if (IS_ENABLED(CONFIG_DEFAULT_ENVIRONMENT_GENERIC))
-		defaultenv_append_directory(defaultenv_friendlyarm_mini6410);
-
-	return 0;
-}
-
-device_initcall(mini6410_devices_init);
-
-static int mini6410_console_init(void)
-{
-	s3c_gpio_mode(GPA0_RXD0 | ENABLE_PU);
-	s3c_gpio_mode(GPA1_TXD0);
-	s3c_gpio_mode(GPA2_NCTS0 | ENABLE_PU);
-	s3c_gpio_mode(GPA3_NRTS0);
-
-	barebox_set_model("Friendlyarm mini6410");
-	barebox_set_hostname("mini6410");
-
-	s3c64xx_add_uart1();
-
-	return 0;
-}
-
-console_initcall(mini6410_console_init);
diff --git a/arch/arm/boards/friendlyarm-tiny210/Makefile b/arch/arm/boards/friendlyarm-tiny210/Makefile
deleted file mode 100644
index d026a7ed47..0000000000
--- a/arch/arm/boards/friendlyarm-tiny210/Makefile
+++ /dev/null
@@ -1,4 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-
-obj-y += tiny210.o
-lwl-y += lowlevel.o
diff --git a/arch/arm/boards/friendlyarm-tiny210/config.h b/arch/arm/boards/friendlyarm-tiny210/config.h
deleted file mode 100644
index 7437e6bddd..0000000000
--- a/arch/arm/boards/friendlyarm-tiny210/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-
-#define S5PCXX_CLOCK_REFERENCE 24000000
-
-#define set_pll(mdiv, pdiv, sdiv)	(1<<31 | mdiv<<16 | pdiv<<8 | sdiv)
-
-#define BOARD_APLL_VAL	set_pll(0x7d, 0x3, 0x1)
-#define BOARD_MPLL_VAL	set_pll(0x29b, 0xc, 0x1)
-#define BOARD_EPLL_VAL	set_pll(0x60, 0x6, 0x2)
-#define BOARD_VPLL_VAL	set_pll(0x6c, 0x6, 0x3)
-
-#define BOARD_CLK_DIV0_MASK	0xFFFFFFFF
-#define BOARD_CLK_DIV0_VAL	0x14131440
-#define BOARD_APLL_LOCKTIME	0x2cf
-
-#define S5P_DRAM_WR	3
-#define S5P_DRAM_CAS	4
-#define DMC_TIMING_AREF	0x00000618
-#define DMC_TIMING_ROW	0x2B34438A
-#define DMC_TIMING_DATA	0x24240000
-#define DMC_TIMING_PWR	0x0BDC0343
diff --git a/arch/arm/boards/friendlyarm-tiny210/lowlevel.c b/arch/arm/boards/friendlyarm-tiny210/lowlevel.c
deleted file mode 100644
index d79661b222..0000000000
--- a/arch/arm/boards/friendlyarm-tiny210/lowlevel.c
+++ /dev/null
@@ -1,100 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-// SPDX-FileCopyrightText: 2012 Alexey Galakhov
-
-#include <config.h>
-#include <common.h>
-#include <init.h>
-#include <io.h>
-#include <linux/sizes.h>
-#include <asm/barebox-arm.h>
-#include <asm/barebox-arm-head.h>
-#include <asm/sections.h>
-#include <mach/s3c-iomap.h>
-#include <mach/s3c-clocks.h>
-#include <mach/s3c-generic.h>
-
-#define IRAM_CODE_BASE		0xD0020010
-
-/* Tiny210 has 4 leds numbered from 0 to 3 at GPJ2 */
-static inline void __bare_init debug_led(int led, bool state)
-{
-	uint32_t r;
-	/* GPJ2CON: mode 0001=output */
-	r = readl(0xE0200280);
-	r &= ~(0xF << (4 * led));
-	r |=  (0x1 << (4 * led));
-	writel(r, 0xE0200280);
-	/* GPJ2DAT: active low */
-	r = readl(0xE0200284);
-	r &= ~(1 << led);
-	r |= (state ? 0 : 1) << led;
-	writel(r, 0xE0200284);
-}
-
-/*
- * iROM boot from MMC
- * TODO: replace this by native boot
- */
-
-#define ADDR_V210_SDMMC_BASE	0xD0037488
-#define ADDR_CopySDMMCtoMem	0xD0037F98
-
-static int __bare_init s5p_irom_load_mmc(void *dest, uint32_t start_block,
-					 uint16_t block_count)
-{
-	typedef uint32_t (*func_t) (int32_t, uint32_t, uint16_t, uint32_t*, int8_t);
-	uint32_t chbase = readl(ADDR_V210_SDMMC_BASE);
-	func_t func = (func_t)readl(ADDR_CopySDMMCtoMem);
-	int chan = (chbase - 0xEB000000) >> 20;
-	if (chan != 0 && chan != 2)
-		return 0;
-	return func(chan, start_block, block_count, (uint32_t*)dest, 0) ? 1 : 0;
-}
-
-static __bare_init __naked void jump_sdram(unsigned long offset)
-{
-	__asm__ __volatile__ (
-			"sub lr, lr, %0;"
-			"mov pc, lr;" : : "r"(offset)
-			);
-}
-
-static __bare_init bool load_stage2(void *dest, size_t size)
-{
-	/* TODO add other ways to boot */
-	return s5p_irom_load_mmc(dest, 1, (size+ 511) / 512);
-}
-
-void __bare_init barebox_arm_reset_vector(uint32_t r0, uint32_t r1, uint32_t r2)
-{
-	arm_cpu_lowlevel_init();
-
-#ifdef CONFIG_S3C_PLL_INIT
-	s5p_init_pll();
-#endif
-
-	debug_led(0, 1);
-
-	if (get_pc() < IRAM_CODE_BASE) /* Are we running from iRAM? */
-		/* No, we don't. */
-		goto boot;
-
-	s5p_init_dram_bank_ddr2(S5P_DMC0_BASE, 0x20E00323, 0, 0);
-
-	debug_led(1, 1);
-
-	if (! load_stage2((void*)(_text - 16),
-				barebox_image_size + 16)) {
-		debug_led(3, 1);
-		while (1) { } /* hang */
-	}
-
-	debug_led(2, 1);
-
-	jump_sdram(IRAM_CODE_BASE - (unsigned long)_text);
-
-	debug_led(1, 0);
-
-boot:
-	barebox_arm_entry(S3C_SDRAM_BASE, SZ_256M, NULL);
-}
diff --git a/arch/arm/boards/friendlyarm-tiny210/tiny210.c b/arch/arm/boards/friendlyarm-tiny210/tiny210.c
deleted file mode 100644
index c47f488207..0000000000
--- a/arch/arm/boards/friendlyarm-tiny210/tiny210.c
+++ /dev/null
@@ -1,102 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-/*
- * Copyright (C) 2012 Alexey Galakhov
- * Based on Mini6410 code by Juergen Beisert
- *
- * Copyright (C) 2012 Juergen Beisert, Pengutronix
- *
- * In some ways inspired by code
- *
- * (C) Copyright 2002
- * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
- * Marius Groeger <mgroeger@sysgo.de>
- *
- * (C) Copyright 2002
- * David Mueller, ELSOFT AG, <d.mueller@elsoft.ch>
- */
-
-#include <common.h>
-#include <driver.h>
-#include <init.h>
-#include <linux/sizes.h>
-#include <generated/mach-types.h>
-#include <gpio.h>
-#include <led.h>
-#include <io.h>
-#include <nand.h>
-#include <asm/armlinux.h>
-#include <mach/iomux.h>
-#include <mach/s3c-iomap.h>
-#include <mach/s3c-clocks.h>
-#include <mach/s3c-generic.h>
-
-static struct gpio_led leds[] = {
-	{
-		.gpio = GPJ20,
-		.led = {
-			.name = "led1",
-		}
-	}, {
-		.gpio = GPJ21,
-		.led = {
-			.name = "led2",
-		}
-	}, {
-		.gpio = GPJ22,
-		.led = {
-			.name = "led3",
-		}
-	}, {
-		.gpio = GPJ23,
-		.led = {
-			.name = "led4",
-		}
-	}
-};
-
-static int tiny210_mem_init(void)
-{
-	arm_add_mem_device("ram0", S3C_SDRAM_BASE, s5p_get_memory_size());
-	return 0;
-}
-mem_initcall(tiny210_mem_init);
-
-static int tiny210_console_init(void)
-{
-	/*
-	 * configure the UART1 right now, as barebox will
-	 * start to send data immediately
-	 */
-	s3c_gpio_mode(GPA00_RXD0 | ENABLE_PU);
-	s3c_gpio_mode(GPA01_TXD0);
-	s3c_gpio_mode(GPA02_NCTS0 | ENABLE_PU);
-	s3c_gpio_mode(GPA03_NRTS0);
-
-	barebox_set_model("Friendlyarm tiny210");
-	barebox_set_hostname("tiny210");
-
-	add_generic_device("s3c_serial", DEVICE_ID_DYNAMIC, NULL,
-			   S3C_UART1_BASE, S3C_UART1_SIZE,
-			   IORESOURCE_MEM, NULL);
-	return 0;
-}
-console_initcall(tiny210_console_init);
-
-static int tiny210_devices_init(void)
-{
-	int i;
-
-	for (i = 0; i < ARRAY_SIZE(leds); i++) {
-		leds[i].active_low = 1;
-		gpio_direction_output(leds[i].gpio, leds[i].active_low);
-		led_gpio_register(&leds[i]);
-	}
-
-	led_set_trigger(LED_TRIGGER_HEARTBEAT, &leds[0].led);
-
-	armlinux_set_architecture(MACH_TYPE_MINI210);
-
-	return 0;
-}
-device_initcall(tiny210_devices_init);
diff --git a/arch/arm/boards/friendlyarm-tiny6410/Kconfig b/arch/arm/boards/friendlyarm-tiny6410/Kconfig
deleted file mode 100644
index 1283b8e7d9..0000000000
--- a/arch/arm/boards/friendlyarm-tiny6410/Kconfig
+++ /dev/null
@@ -1,21 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-
-if MACH_TINY6410
-
-choice
-	prompt "FriendlyARM Tiny6410 baseboard"
-	help
-	  Since the Tiny6410 is a CPU card only, it requires a basebord to make
-	  it work. Select here the baseboard Barebox should expect and
-	  configure.
-
-config MACH_TINY6410_FA
-	bool
-	select HAS_DM9000
-	prompt "FA development platform"
-	help
-	  FriendlyARM's Tiny6410 evaluation board.
-
-endchoice
-
-endif
diff --git a/arch/arm/boards/friendlyarm-tiny6410/Makefile b/arch/arm/boards/friendlyarm-tiny6410/Makefile
deleted file mode 100644
index f0b868d67f..0000000000
--- a/arch/arm/boards/friendlyarm-tiny6410/Makefile
+++ /dev/null
@@ -1,6 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-
-obj-y += tiny6410.o
-lwl-y += lowlevel.o
-lwl-$(CONFIG_MACH_TINY6410_FA) += development-board.o
-bbenv-$(CONFIG_DEFAULT_ENVIRONMENT_GENERIC) += defaultenv-friendlyarm-tiny6410
diff --git a/arch/arm/boards/friendlyarm-tiny6410/config.h b/arch/arm/boards/friendlyarm-tiny6410/config.h
deleted file mode 100644
index 22692a3025..0000000000
--- a/arch/arm/boards/friendlyarm-tiny6410/config.h
+++ /dev/null
@@ -1,10 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-
-/* FriendlyARM Tiny6410 specific global settings */
-
-#ifndef _TINY6410_CONFIG_H_
-# define _TINY6410_CONFIG_H_
-
-#define S3C64XX_CLOCK_REFERENCE 12000000
-
-#endif /* _TINY6410_CONFIG_H_ */
diff --git a/arch/arm/boards/friendlyarm-tiny6410/defaultenv-friendlyarm-tiny6410/config b/arch/arm/boards/friendlyarm-tiny6410/defaultenv-friendlyarm-tiny6410/config
deleted file mode 100644
index f38535be48..0000000000
--- a/arch/arm/boards/friendlyarm-tiny6410/defaultenv-friendlyarm-tiny6410/config
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/bin/sh
-
-machine=tiny6410
-eth0.serverip=a.b.c.d.e
-user=
-
-# use 'dhcp' to do dhcp in barebox and in kernel
-# use 'none' if you want to skip kernel ip autoconfiguration
-ip=dhcp
-
-# or set your networking parameters here
-#eth0.ipaddr=a.b.c.d.e
-#eth0.netmask=a.b.c.d.e
-#eth0.gateway=a.b.c.d.e
-#eth0.ethaddr=
-
-# can be either 'nfs', 'tftp' or 'nand'
-kernel_loc=tftp
-# can be either 'net', 'nand' or 'initrd'
-rootfs_loc=net
-
-# can be either 'jffs2' or 'ubifs'
-rootfs_type=ubifs
-rootfsimage=root-${machine}.${rootfs_type}
-
-# The image type of the kernel. Can be uimage, zimage, raw, or raw_lzo
-kernelimage=zImage-${machine}
-#kernelimage=uImage-$machine
-#kernelimage=Image-$machine
-#kernelimage=Image-$machine.lzo
-
-if [ -n $user ]; then
-	kernelimage="${user}"-"${kernelimage}"
-	nfsroot="${eth0.serverip}:/home/${user}/nfsroot/${machine}"
-	rootfsimage="${user}"-"${rootfsimage}"
-else
-	nfsroot="${eth0.serverip}:/path/to/nfs/root"
-fi
-
-autoboot_timeout=3
-
-#
-# "tiny6410" kernel parameter
-# 0 .. 9 = screen type
-# i = touchscreen with propritary FriendlyARM protocol
-# Note: can be "tiny6410= " if nothing of these components are connected
-#
-bootargs="console=ttySAC0,115200 tiny6410=0"
-
-nand_device="nand"
-nand_parts="256k(barebox),128k(bareboxenv),1536k(kernel),-(root)"
-rootfs_mtdblock_nand=3
diff --git a/arch/arm/boards/friendlyarm-tiny6410/development-board.c b/arch/arm/boards/friendlyarm-tiny6410/development-board.c
deleted file mode 100644
index 69c9768405..0000000000
--- a/arch/arm/boards/friendlyarm-tiny6410/development-board.c
+++ /dev/null
@@ -1,94 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-// SPDX-FileCopyrightText: 2012 Juergen Beisert
-
-/*
- * The FriendlyARM's Tiny6410 evaluation board comes with all connectors and
- * devices to make the Tiny6410 CPU card work. This includes:
- *
- * - the DM9000 network controller
- * - USB/MCI connectors
- * - display connector
- */
-
-#include <common.h>
-#include <driver.h>
-#include <init.h>
-#include <gpio.h>
-#include <platform_data/eth-dm9000.h>
-#include <mach/devices-s3c64xx.h>
-#include <mach/s3c-generic.h>
-#include <mach/iomux.h>
-
-#include "tiny6410.h"
-
-/*
- * dm9000 network controller onboard
- * Connected to CS line 1 and interrupt line EINT7,
- * data width is 16 bit
- * Area 1: Offset 0x300...0x301
- * Area 2: Offset 0x304...0x305
- */
-static struct dm9000_platform_data dm9000_data = {
-	.srom = 0,	/* no serial ROM for the ethernet address */
-};
-
-static const struct s3c6410_chipselect dm900_cs = {
-	.adr_setup_t = 0,
-	.access_setup_t = 0,
-	.access_t = 20,
-	.cs_hold_t = 3,
-	.adr_hold_t = 20, /* CS must be de-asserted for at least 20 ns */
-	.width = 16,
-};
-
-static void tiny6410evk_setup_dm9000_cs(void)
-{
-	s3c6410_setup_chipselect(1, &dm900_cs);
-}
-
-static const unsigned tiny6410evk_pin_usage[] = {
-	/* UART1 (V24) */
-	GPA4_RXD1 | ENABLE_PU,
-	GPA5_TXD1,
-	GPA6_NCTS1 | ENABLE_PU,
-	GPA7_NRTS1,
-	/* UART2 (V24) */
-	GPB0_RXD2 | ENABLE_PU,
-	GPB1_TXD2,
-	/* UART3 (spare, 3,3 V TTL level only) */
-	GPB2_RXD3 | ENABLE_PU,
-	GPB3_TXD3,
-};
-
-static int tiny6410evk_devices_init(void)
-{
-	int i;
-
-	/* init CPU card specific devices first */
-	tiny6410_init("FA EVK");
-
-	/* ----------- configure the access to the outer space ---------- */
-	for (i = 0; i < ARRAY_SIZE(tiny6410evk_pin_usage); i++)
-		s3c_gpio_mode(tiny6410evk_pin_usage[i]);
-
-	tiny6410evk_setup_dm9000_cs();
-	add_dm9000_device(0, S3C_CS1_BASE + 0x300, S3C_CS1_BASE + 0x304,
-				IORESOURCE_MEM_16BIT, &dm9000_data);
-	return 0;
-}
-device_initcall(tiny6410evk_devices_init);
-
-static int tiny6410evk_console_init(void)
-{
-	/* note: UART0 has no RTS/CTS connected */
-	s3c_gpio_mode(GPA0_RXD0 | ENABLE_PU);
-	s3c_gpio_mode(GPA1_TXD0);
-
-	barebox_set_model("Friendlyarm tiny6410");
-	barebox_set_hostname("tiny6410");
-
-	s3c64xx_add_uart1();
-
-	return 0;
-}
-console_initcall(tiny6410evk_console_init);
diff --git a/arch/arm/boards/friendlyarm-tiny6410/lowlevel.c b/arch/arm/boards/friendlyarm-tiny6410/lowlevel.c
deleted file mode 100644
index dfb69d2272..0000000000
--- a/arch/arm/boards/friendlyarm-tiny6410/lowlevel.c
+++ /dev/null
@@ -1,13 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-
-#include <common.h>
-#include <linux/sizes.h>
-#include <asm/barebox-arm.h>
-#include <asm/barebox-arm-head.h>
-#include <mach/s3c-iomap.h>
-
-void __naked barebox_arm_reset_vector(uint32_t r0, uint32_t r1, uint32_t r2)
-{
-	arm_cpu_lowlevel_init();
-	barebox_arm_entry(S3C_SDRAM_BASE, SZ_128M, NULL);
-}
diff --git a/arch/arm/boards/friendlyarm-tiny6410/tiny6410.c b/arch/arm/boards/friendlyarm-tiny6410/tiny6410.c
deleted file mode 100644
index a1126b7893..0000000000
--- a/arch/arm/boards/friendlyarm-tiny6410/tiny6410.c
+++ /dev/null
@@ -1,72 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-// SPDX-FileCopyrightText: 2012 Juergen Beisert
-
-#include <common.h>
-#include <driver.h>
-#include <init.h>
-#include <gpio.h>
-#include <generated/mach-types.h>
-#include <asm/armlinux.h>
-#include <mach/s3c-iomap.h>
-#include <mach/s3c-generic.h>
-#include <mach/iomux.h>
-
-#include "tiny6410.h"
-
-static const unsigned tiny6410_pin_usage[] = {
-	/* UART0 */
-	GPA2_GPIO | GPIO_IN | ENABLE_PU, /* CTS not connected */
-	GPA3_GPIO | GPIO_IN | ENABLE_PU, /* RTS not connected */
-
-	/* local bus' D0 ... D15 are always active */
-	/* local bus' A0...A5 are always active */
-
-	/* internal NAND memory */
-	GPO0_NCS2,	/* NAND's first chip select line */
-	/* NAND's second chip select line, not used */
-	GPO1_GPIO | GPIO_OUT | GPIO_VAL(1),
-	GPP3_FALE,
-	GPP4_FCLE,
-	GPP5_FWE,
-	GPP6_FRE,
-	GPP7_RNB, /* external pull-up */
-
-	GPF13_GPIO  | GPIO_OUT | GPIO_VAL(0), /* OTG power supply, 0 = off */
-
-	/* nowhere connected */
-	GPO2_GPIO | GPIO_IN | ENABLE_PU,
-	GPO3_GPIO | GPIO_IN | ENABLE_PU,
-	GPO4_GPIO | GPIO_IN | ENABLE_PU,
-	GPO5_GPIO | GPIO_IN | ENABLE_PU,
-
-	/* local bus address lines 6...15 are nowhere connected */
-	GPO6_GPIO | GPIO_IN | ENABLE_PU,
-	GPO7_GPIO | GPIO_IN | ENABLE_PU,
-	GPO8_GPIO | GPIO_IN | ENABLE_PU,
-	GPO9_GPIO | GPIO_IN | ENABLE_PU,
-	GPO10_GPIO | GPIO_IN | ENABLE_PU,
-	GPO11_GPIO | GPIO_IN | ENABLE_PU,
-	GPO12_GPIO | GPIO_IN | ENABLE_PU,
-	GPO13_GPIO | GPIO_IN | ENABLE_PU,
-	GPO14_GPIO | GPIO_IN | ENABLE_PU,
-	GPO15_GPIO | GPIO_IN | ENABLE_PU,
-};
-
-static int tiny6410_mem_init(void)
-{
-	arm_add_mem_device("ram0", S3C_SDRAM_BASE, s3c6410_get_memory_size());
-
-	return 0;
-}
-mem_initcall(tiny6410_mem_init);
-
-void tiny6410_init(const char *bb_name)
-{
-	int i;
-
-	/* ----------- configure the access to the outer space ---------- */
-	for (i = 0; i < ARRAY_SIZE(tiny6410_pin_usage); i++)
-		s3c_gpio_mode(tiny6410_pin_usage[i]);
-
-	armlinux_set_architecture(MACH_TYPE_TINY6410);
-}
diff --git a/arch/arm/boards/friendlyarm-tiny6410/tiny6410.h b/arch/arm/boards/friendlyarm-tiny6410/tiny6410.h
deleted file mode 100644
index bbe8877ca0..0000000000
--- a/arch/arm/boards/friendlyarm-tiny6410/tiny6410.h
+++ /dev/null
@@ -1,4 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-/* to be called by the base board */
-void tiny6410_init(const char*);
diff --git a/arch/arm/configs/a9m2410_defconfig b/arch/arm/configs/a9m2410_defconfig
deleted file mode 100644
index ea70a121af..0000000000
--- a/arch/arm/configs/a9m2410_defconfig
+++ /dev/null
@@ -1,32 +0,0 @@
-CONFIG_ARCH_S3C24xx=y
-CONFIG_S3C_NAND_BOOT=y
-CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y
-CONFIG_EXPERIMENTAL=y
-CONFIG_BAUDRATE=38400
-CONFIG_GLOB=y
-CONFIG_CMDLINE_EDITING=y
-CONFIG_AUTO_COMPLETE=y
-CONFIG_PARTITION=y
-CONFIG_DEFAULT_ENVIRONMENT_PATH="arch/arm/boards/a9m2410/env"
-CONFIG_LONGHELP=y
-CONFIG_CMD_MEMINFO=y
-CONFIG_CMD_GO=y
-CONFIG_CMD_RESET=y
-CONFIG_CMD_PARTITION=y
-CONFIG_CMD_EXPORT=y
-CONFIG_CMD_LOADENV=y
-CONFIG_CMD_PRINTENV=y
-CONFIG_CMD_SAVEENV=y
-CONFIG_CMD_SLEEP=y
-CONFIG_CMD_DHCP=y
-CONFIG_CMD_PING=y
-CONFIG_CMD_TFTP=y
-CONFIG_CMD_EDIT=y
-CONFIG_CMD_READLINE=y
-CONFIG_CMD_TIMEOUT=y
-CONFIG_CMD_CRC=y
-CONFIG_CMD_FLASH=y
-CONFIG_NET=y
-CONFIG_DRIVER_NET_SMC91111=y
-# CONFIG_SPI is not set
-CONFIG_FS_TFTP=y
diff --git a/arch/arm/configs/a9m2440_defconfig b/arch/arm/configs/a9m2440_defconfig
deleted file mode 100644
index 5843d29d7f..0000000000
--- a/arch/arm/configs/a9m2440_defconfig
+++ /dev/null
@@ -1,34 +0,0 @@
-CONFIG_ARCH_S3C24xx=y
-CONFIG_MACH_A9M2440=y
-CONFIG_S3C_SDRAM_INIT=y
-CONFIG_S3C_NAND_BOOT=y
-CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y
-CONFIG_EXPERIMENTAL=y
-CONFIG_BAUDRATE=38400
-CONFIG_GLOB=y
-CONFIG_CMDLINE_EDITING=y
-CONFIG_AUTO_COMPLETE=y
-CONFIG_PARTITION=y
-CONFIG_DEFAULT_ENVIRONMENT_PATH="arch/arm/boards/a9m2440/env"
-CONFIG_LONGHELP=y
-CONFIG_CMD_MEMINFO=y
-CONFIG_CMD_GO=y
-CONFIG_CMD_RESET=y
-CONFIG_CMD_PARTITION=y
-CONFIG_CMD_EXPORT=y
-CONFIG_CMD_LOADENV=y
-CONFIG_CMD_PRINTENV=y
-CONFIG_CMD_SAVEENV=y
-CONFIG_CMD_SLEEP=y
-CONFIG_CMD_DHCP=y
-CONFIG_CMD_PING=y
-CONFIG_CMD_TFTP=y
-CONFIG_CMD_EDIT=y
-CONFIG_CMD_READLINE=y
-CONFIG_CMD_TIMEOUT=y
-CONFIG_CMD_CRC=y
-CONFIG_CMD_FLASH=y
-CONFIG_NET=y
-CONFIG_DRIVER_NET_SMC91111=y
-# CONFIG_SPI is not set
-CONFIG_FS_TFTP=y
diff --git a/arch/arm/configs/friendlyarm_mini2440_defconfig b/arch/arm/configs/friendlyarm_mini2440_defconfig
deleted file mode 100644
index 21c931ca05..0000000000
--- a/arch/arm/configs/friendlyarm_mini2440_defconfig
+++ /dev/null
@@ -1,41 +0,0 @@
-CONFIG_TEXT_BASE=0x33e00000
-CONFIG_ARCH_S3C24xx=y
-CONFIG_MACH_MINI2440=y
-CONFIG_MINI2440_VIDEO_N35=y
-CONFIG_S3C_NAND_BOOT=y
-CONFIG_AEABI=y
-CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y
-CONFIG_PROMPT="mini2440:"
-CONFIG_GLOB=y
-CONFIG_CMDLINE_EDITING=y
-CONFIG_AUTO_COMPLETE=y
-CONFIG_DEFAULT_ENVIRONMENT_PATH="arch/arm/boards/friendlyarm-mini2440/env"
-CONFIG_LONGHELP=y
-CONFIG_CMD_MEMINFO=y
-CONFIG_CMD_GO=y
-CONFIG_CMD_RESET=y
-CONFIG_CMD_PARTITION=y
-CONFIG_CMD_EXPORT=y
-CONFIG_CMD_GLOBAL=y
-CONFIG_CMD_LOADENV=y
-CONFIG_CMD_PRINTENV=y
-CONFIG_CMD_SAVEENV=y
-CONFIG_CMD_SLEEP=y
-CONFIG_CMD_DHCP=y
-CONFIG_CMD_PING=y
-CONFIG_CMD_TFTP=y
-CONFIG_CMD_EDIT=y
-CONFIG_CMD_READLINE=y
-CONFIG_CMD_TIMEOUT=y
-CONFIG_CMD_CRC=y
-CONFIG_CMD_CRC_CMP=y
-CONFIG_CMD_FLASH=y
-CONFIG_CMD_GPIO=y
-CONFIG_NET=y
-CONFIG_DRIVER_NET_DM9K=y
-# CONFIG_SPI is not set
-CONFIG_USB_HOST=y
-CONFIG_USB_OHCI=y
-CONFIG_MCI=y
-CONFIG_MCI_S3C=y
-CONFIG_FS_TFTP=y
diff --git a/arch/arm/configs/friendlyarm_mini6410_defconfig b/arch/arm/configs/friendlyarm_mini6410_defconfig
deleted file mode 100644
index 8beee6f194..0000000000
--- a/arch/arm/configs/friendlyarm_mini6410_defconfig
+++ /dev/null
@@ -1,34 +0,0 @@
-CONFIG_ARCH_S3C64xx=y
-CONFIG_AEABI=y
-CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y
-CONFIG_PROMPT="mini6410:"
-CONFIG_GLOB=y
-CONFIG_CMDLINE_EDITING=y
-CONFIG_AUTO_COMPLETE=y
-CONFIG_BOOTM_SHOW_TYPE=y
-CONFIG_PARTITION=y
-CONFIG_DEFAULT_ENVIRONMENT_GENERIC=y
-CONFIG_LONGHELP=y
-CONFIG_CMD_MEMINFO=y
-CONFIG_CMD_GO=y
-CONFIG_CMD_RESET=y
-CONFIG_CMD_PARTITION=y
-CONFIG_CMD_EXPORT=y
-CONFIG_CMD_PRINTENV=y
-CONFIG_CMD_MAGICVAR=y
-CONFIG_CMD_MAGICVAR_HELP=y
-CONFIG_CMD_SAVEENV=y
-CONFIG_CMD_UNCOMPRESS=y
-CONFIG_CMD_SLEEP=y
-CONFIG_CMD_DHCP=y
-CONFIG_CMD_PING=y
-CONFIG_CMD_EDIT=y
-CONFIG_CMD_READLINE=y
-CONFIG_CMD_TIMEOUT=y
-CONFIG_CMD_GPIO=y
-CONFIG_NET=y
-CONFIG_DRIVER_NET_DM9K=y
-# CONFIG_SPI is not set
-CONFIG_ZLIB=y
-CONFIG_BZLIB=y
-CONFIG_LZO_DECOMPRESS=y
diff --git a/arch/arm/configs/friendlyarm_tiny210_defconfig b/arch/arm/configs/friendlyarm_tiny210_defconfig
deleted file mode 100644
index 1d1647931f..0000000000
--- a/arch/arm/configs/friendlyarm_tiny210_defconfig
+++ /dev/null
@@ -1,7 +0,0 @@
-CONFIG_ARCH_S5PCxx=y
-CONFIG_S3C_PLL_INIT=y
-CONFIG_CMD_LED=y
-CONFIG_CMD_LED_TRIGGER=y
-CONFIG_LED=y
-CONFIG_LED_GPIO=y
-CONFIG_LED_TRIGGERS=y
diff --git a/arch/arm/configs/friendlyarm_tiny6410_defconfig b/arch/arm/configs/friendlyarm_tiny6410_defconfig
deleted file mode 100644
index 12dbea1317..0000000000
--- a/arch/arm/configs/friendlyarm_tiny6410_defconfig
+++ /dev/null
@@ -1,35 +0,0 @@
-CONFIG_ARCH_S3C64xx=y
-CONFIG_MACH_TINY6410=y
-CONFIG_AEABI=y
-CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y
-CONFIG_PROMPT="tiny6410:"
-CONFIG_GLOB=y
-CONFIG_CMDLINE_EDITING=y
-CONFIG_AUTO_COMPLETE=y
-CONFIG_BOOTM_SHOW_TYPE=y
-CONFIG_PARTITION=y
-CONFIG_DEFAULT_ENVIRONMENT_GENERIC=y
-CONFIG_LONGHELP=y
-CONFIG_CMD_MEMINFO=y
-CONFIG_CMD_GO=y
-CONFIG_CMD_RESET=y
-CONFIG_CMD_PARTITION=y
-CONFIG_CMD_EXPORT=y
-CONFIG_CMD_PRINTENV=y
-CONFIG_CMD_MAGICVAR=y
-CONFIG_CMD_MAGICVAR_HELP=y
-CONFIG_CMD_SAVEENV=y
-CONFIG_CMD_UNCOMPRESS=y
-CONFIG_CMD_SLEEP=y
-CONFIG_CMD_DHCP=y
-CONFIG_CMD_PING=y
-CONFIG_CMD_EDIT=y
-CONFIG_CMD_READLINE=y
-CONFIG_CMD_TIMEOUT=y
-CONFIG_CMD_GPIO=y
-CONFIG_NET=y
-CONFIG_DRIVER_NET_DM9K=y
-# CONFIG_SPI is not set
-CONFIG_ZLIB=y
-CONFIG_BZLIB=y
-CONFIG_LZO_DECOMPRESS=y
diff --git a/arch/arm/mach-samsung/Kconfig b/arch/arm/mach-samsung/Kconfig
deleted file mode 100644
index aa2ae67e2d..0000000000
--- a/arch/arm/mach-samsung/Kconfig
+++ /dev/null
@@ -1,178 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-
-config ARCH_SAMSUNG
-	bool
-
-if ARCH_SAMSUNG
-
-config ARCH_TEXT_BASE
-	hex
-	default 0x31fc0000 if MACH_MINI2440
-	default 0x57fc0000 if MACH_MINI6410
-	default 0x57fc0000 if MACH_TINY6410
-	default 0x31fc0000 if MACH_A9M2440
-	default 0x31fc0000 if MACH_A9M2410
-	default 0x23e00000 if MACH_TINY210
-
-config ARCH_BAREBOX_MAX_BARE_INIT_SIZE
-	hex
-	default 0x1ff0 if ARCH_S5PCxx
-# TODO
-	default 0x2000 if ARCH_S3C64xx
-
-if ARCH_S3C24xx
-
-config CPU_S3C2410
-	bool
-
-config CPU_S3C2440
-	bool
-
-choice
-	prompt "S3C24xx Board Type"
-
-config MACH_A9M2410
-	bool "Digi A9M2410"
-	select CPU_S3C2410
-	select S3C_PLL_INIT
-	select S3C_SDRAM_INIT
-	help
-	  Say Y here if you are using Digi's Connect Core 9M equipped
-	  with a Samsung S3C2410 Processor
-
-config MACH_A9M2440
-	bool "Digi A9M2440"
-	select CPU_S3C2440
-	select S3C_PLL_INIT
-	help
-	  Say Y here if you are using Digi's Connect Core 9M equipped
-	  with a Samsung S3C2440 Processor
-
-config MACH_MINI2440
-	bool "Mini 2440"
-	select CPU_S3C2440
-	select S3C_PLL_INIT
-	select S3C_SDRAM_INIT
-	select HAS_DM9000
-	help
-	  Say Y here if you are using Mini 2440 dev board equipped
-	  with a Samsung S3C2440 Processor
-
-endchoice
-
-menu "Board specific settings"
-
-choice
-	prompt "A9M2440 baseboard"
-	depends on MACH_A9M2440
-
-config MACH_A9M2410DEV
-	bool
-	prompt "A9M2410dev"
-	select HAS_CS8900
-	help
-	  Digi's evaluation board.
-
-endchoice
-
-source "arch/arm/boards/friendlyarm-mini2440/Kconfig"
-
-endmenu
-
-endif
-
-if ARCH_S3C64xx
-
-config CPU_S3C6410
-	bool
-
-choice
-	prompt "S3C64xx Board Type"
-
-config MACH_MINI6410
-	bool "Mini 6410"
-	select CPU_S3C6410
-	select HAS_DM9000
-	help
-	  Say Y here if you are using FriendlyARM Mini6410 board equipped
-	  with a Samsung S3C6410 Processor
-
-config MACH_TINY6410
-	bool "Tiny 6410"
-	select CPU_S3C6410
-	help
-	  Say Y here if you are using FriendlyARM Tiny6410 CPU card equipped
-	  with a Samsung S3C6410 Processor
-
-endchoice
-
-menu "Board specific settings"
-
-source "arch/arm/boards/friendlyarm-tiny6410/Kconfig"
-
-endmenu
-
-endif
-
-if ARCH_S5PCxx
-
-config CPU_S5PC110
-	bool
-
-config CPU_S5PV210
-	bool
-
-choice
-	prompt "S5PCxx board type"
-
-config MACH_TINY210
-	bool "Tiny 210"
-	select CPU_S5PV210
-	select S3C_SDRAM_INIT
-
-endchoice
-
-endif
-
-menu "S3C Features"
-
-config S3C_LOWLEVEL_INIT
-	bool
-
-config S3C_PLL_INIT
-	bool
-	prompt "Reconfigure PLL"
-	select S3C_LOWLEVEL_INIT
-	help
-	  This adds generic code to reconfigure the internal PLL very early
-	  after reset.
-
-config S3C_SDRAM_INIT
-	bool
-	prompt "Initialize SDRAM"
-	select S3C_LOWLEVEL_INIT
-	help
-	  This adds generic code to configure the SDRAM controller after reset.
-	  The initialisation will be skipped if the code is already running
-	  from SDRAM.
-
-config S3C_NAND_BOOT
-	bool
-	prompt "Booting from NAND"
-	depends on ARCH_S3C24xx
-	select MTD
-	select NAND
-	select NAND_S3C24XX
-	help
-	  Add generic support to boot from NAND flash. Image loading will be
-	  skipped if the code is running from NOR or already from SDRAM.
-
-config BAREBOX_UPDATE_NAND_S3C24XX
-	bool
-	depends on BAREBOX_UPDATE
-	depends on S3C_NAND_BOOT
-	default y
-
-endmenu
-
-endif
diff --git a/arch/arm/mach-samsung/Makefile b/arch/arm/mach-samsung/Makefile
deleted file mode 100644
index 8a893a076f..0000000000
--- a/arch/arm/mach-samsung/Makefile
+++ /dev/null
@@ -1,14 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-
-obj-y += s3c-timer.o generic.o
-obj-$(CONFIG_RESET_SOURCE) += reset_source.o
-obj-lowlevel-$(CONFIG_ARCH_S3C24xx) += lowlevel-s3c24x0.o
-obj-lowlevel-$(CONFIG_ARCH_S5PCxx) += lowlevel-s5pcxx.o
-pbl-$(CONFIG_ARCH_S3C24xx) += lowlevel-s3c24x0.o
-pbl-$(CONFIG_ARCH_S5PCxx) += lowlevel-s5pcxx.o
-obj-$(CONFIG_ARCH_S3C24xx) += gpio-s3c24x0.o clocks-s3c24xx.o mem-s3c24x0.o
-obj-$(CONFIG_ARCH_S3C64xx) += gpio-s3c64xx.o clocks-s3c64xx.o mem-s3c64xx.o
-obj-$(CONFIG_ARCH_S5PCxx) += gpio-s5pcxx.o clocks-s5pcxx.o mem-s5pcxx.o
-pbl-$(CONFIG_ARCH_S5PCxx) += mem-s5pcxx.o
-obj-$(CONFIG_BAREBOX_UPDATE_NAND_S3C24XX) += bbu-nand-s3c24x0.o
-obj-$(CONFIG_S3C_LOWLEVEL_INIT) += $(obj-lowlevel-y)
diff --git a/arch/arm/mach-samsung/bbu-nand-s3c24x0.c b/arch/arm/mach-samsung/bbu-nand-s3c24x0.c
deleted file mode 100644
index 0d25abfeb7..0000000000
--- a/arch/arm/mach-samsung/bbu-nand-s3c24x0.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (C) 2014 Michael Olbrich, Pengutronix
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation.
- *
- */
-
-#include <common.h>
-#include <malloc.h>
-#include <bbu.h>
-#include <fs.h>
-#include <fcntl.h>
-
-static int nand_update(struct bbu_handler *handler, struct bbu_data *data)
-{
-	int fd, ret;
-
-	if (file_detect_type(data->image, data->len) != filetype_arm_barebox &&
-			!bbu_force(data, "Not an ARM barebox image"))
-		return -EINVAL;
-
-	ret = bbu_confirm(data);
-	if (ret)
-		return ret;
-
-	fd = open(data->devicefile, O_WRONLY);
-	if (fd < 0)
-		return fd;
-
-	debug("%s: eraseing %s from 0 to 0x%08x\n", __func__,
-			data->devicefile, data->len);
-	ret = erase(fd, data->len, 0);
-	if (ret) {
-		printf("erasing %s failed with %s\n", data->devicefile,
-				strerror(-ret));
-		goto err_close;
-	}
-
-	ret = write(fd, data->image, data->len);
-	if (ret < 0) {
-		printf("writing update to %s failed with %s\n", data->devicefile,
-				strerror(-ret));
-		goto err_close;
-	}
-
-	ret = 0;
-
-err_close:
-	close(fd);
-
-	return ret;
-}
-
-/*
- * Register a s3c24x0 update handler for NAND
- */
-int s3c24x0_bbu_nand_register_handler(void)
-{
-	struct bbu_handler *handler;
-	int ret;
-
-	handler = xzalloc(sizeof(*handler));
-	handler->devicefile = "/dev/nand0.barebox";
-	handler->name = "nand";
-	handler->handler = nand_update;
-	handler->flags = BBU_HANDLER_FLAG_DEFAULT;
-
-	ret = bbu_register_handler(handler);
-	if (ret)
-		free(handler);
-
-	return ret;
-}
diff --git a/arch/arm/mach-samsung/clocks-s3c24xx.c b/arch/arm/mach-samsung/clocks-s3c24xx.c
deleted file mode 100644
index a2dd869672..0000000000
--- a/arch/arm/mach-samsung/clocks-s3c24xx.c
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-
-#include <config.h>
-#include <common.h>
-#include <init.h>
-#include <clock.h>
-#include <io.h>
-#include <mach/s3c-iomap.h>
-#include <mach/s3c-generic.h>
-#include <mach/s3c-clocks.h>
-#include <mach/s3c-busctl.h>
-
-/**
- * Calculate the current M-PLL clock.
- * @return Current frequency in Hz
- */
-uint32_t s3c_get_mpllclk(void)
-{
-	uint32_t m, p, s, reg_val;
-
-	reg_val = readl(S3C_MPLLCON);
-	m = ((reg_val & 0xFF000) >> 12) + 8;
-	p = ((reg_val & 0x003F0) >> 4) + 2;
-	s = reg_val & 0x3;
-#ifdef CONFIG_CPU_S3C2410
-	return (S3C24XX_CLOCK_REFERENCE * m) / (p << s);
-#endif
-#ifdef CONFIG_CPU_S3C2440
-	return 2 * m * (S3C24XX_CLOCK_REFERENCE / (p << s));
-#endif
-}
-
-/**
- * Calculate the current U-PLL clock
- * @return Current frequency in Hz
- */
-uint32_t s3c_get_upllclk(void)
-{
-	uint32_t m, p, s, reg_val;
-
-	reg_val = readl(S3C_UPLLCON);
-	m = ((reg_val & 0xFF000) >> 12) + 8;
-	p = ((reg_val & 0x003F0) >> 4) + 2;
-	s = reg_val & 0x3;
-
-	return (S3C24XX_CLOCK_REFERENCE * m) / (p << s);
-}
-
-/**
- * Calculate the FCLK frequency used for the ARM CPU core
- * @return Current frequency in Hz
- */
-uint32_t s3c_get_fclk(void)
-{
-	return s3c_get_mpllclk();
-}
-
-/**
- * Calculate the HCLK frequency used for the AHB bus (CPU to main peripheral)
- * @return Current frequency in Hz
- */
-uint32_t s3c_get_hclk(void)
-{
-	uint32_t f_clk;
-
-	f_clk = s3c_get_fclk();
-#ifdef CONFIG_CPU_S3C2410
-	if (readl(S3C_CLKDIVN) & 0x02)
-		return f_clk >> 1;
-#endif
-#ifdef CONFIG_CPU_S3C2440
-	switch(readl(S3C_CLKDIVN) & 0x06) {
-	case 2:
-		return f_clk >> 1;
-	case 4:
-		return f_clk >> 2;	/* TODO consider CAMDIVN */
-	case 6:
-		return f_clk / 3;	/* TODO consider CAMDIVN */
-	}
-#endif
-	return f_clk;
-}
-
-/**
- * Calculate the PCLK frequency used for the slower peripherals
- * @return Current frequency in Hz
- */
-uint32_t s3c_get_pclk(void)
-{
-	uint32_t p_clk;
-
-	p_clk = s3c_get_hclk();
-	if (readl(S3C_CLKDIVN) & 0x01)
-		return p_clk >> 1;
-	return p_clk;
-}
-
-/**
- * Return correct UART frequency based on the UCON register
- */
-unsigned s3c_get_uart_clk(unsigned src)
-{
-	switch (src & 3) {
-	case 0:
-	case 2:
-		return s3c_get_pclk();
-	case 1:
-		return 0; /* TODO UEXTCLK */
-	case 3:
-		return 0; /* TODO FCLK/n */
-	}
-	return 0; /* not reached, to make compiler happy */
-}
-
-/**
- * Show the user the current clock settings
- */
-static int s3c24xx_dump_clocks(void)
-{
-	printf("refclk:  %7d kHz\n", S3C24XX_CLOCK_REFERENCE / 1000);
-	printf("mpll:    %7d kHz\n", s3c_get_mpllclk() / 1000);
-	printf("upll:    %7d kHz\n", s3c_get_upllclk() / 1000);
-	printf("fclk:    %7d kHz\n", s3c_get_fclk() / 1000);
-	printf("hclk:    %7d kHz\n", s3c_get_hclk() / 1000);
-	printf("pclk:    %7d kHz\n", s3c_get_pclk() / 1000);
-	printf("SDRAM1:   CL%d@%dMHz\n", ((readl(S3C_BANKCON6) & 0xc) >> 2) + 2,
-						s3c_get_hclk() / 1000000);
-	if ((readl(S3C_BANKCON7) & (0x3 << 15)) == (0x3 << 15))
-		printf("SDRAM2:   CL%d@%dMHz\n",
-			((readl(S3C_BANKCON7) & 0xc) >> 2) + 2,
-			s3c_get_hclk() / 1000000);
-	return 0;
-}
-
-late_initcall(s3c24xx_dump_clocks);
diff --git a/arch/arm/mach-samsung/clocks-s3c64xx.c b/arch/arm/mach-samsung/clocks-s3c64xx.c
deleted file mode 100644
index 2229ed0529..0000000000
--- a/arch/arm/mach-samsung/clocks-s3c64xx.c
+++ /dev/null
@@ -1,338 +0,0 @@
-/*
- * Copyright (C) 2012 Juergen Beisert
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-
-#include <config.h>
-#include <common.h>
-#include <init.h>
-#include <clock.h>
-#include <io.h>
-#include <linux/math64.h>
-#include <mach/s3c-iomap.h>
-#include <mach/s3c-generic.h>
-#include <mach/s3c-clocks.h>
-
-/*
- * The main clock tree:
- *
- * ref_in
- *    |
- *    v
- *    o-----------\
- *    |            MUX -o------------\
- *    |           / ^   |             MUX --- DIV_APLL ------- ARMCLK -> CPU core
- *    o--- APLL --  |   |            / |
- *    |             |   o--/2 -------  |
- *    |       APLL_SEL  |              |<-MISC_CON_SYN667
- *    |                 \              |
- *    o-----------\      MUX-o-------\ |
- *    |            MUX--/ ^  |        MUX --- DIV -o--------- HCLKx2 -> SDRAM (max. 266 MHz)
- *    |           / ^     |  |       /             |
- *    o---- MPLL--  |     |  o--/5 --              o-- DIV -- HCLK -> AXI / AHB (max. 133 MHz)
- *    |             |     |                        |
- *    |       MPLL_SEL  OTHERS_CLK_SELECT          o-- DIV -- PCLK -> APB (max. 66 MHz)
- *    |
- *    o-----------\
- *    |            MUX---- to various hardware
- *    |           / ^
- *    o---- EPLL--  EPLL_SEL
- *
- */
-
-static unsigned s3c_get_apllclk(void)
-{
-	uint32_t m, p, s, reg_val;
-
-	if (!(readl(S3C_CLK_SRC) & S3C_CLK_SRC_FOUTAPLL))
-		return S3C64XX_CLOCK_REFERENCE;
-
-	reg_val = readl(S3C_APLLCON);
-	if (!(reg_val & S3C_APLLCON_ENABLE))
-		return 0;
-	m = S3C_APLLCON_GET_MDIV(reg_val);
-	p = S3C_APLLCON_GET_PDIV(reg_val);
-	s = S3C_APLLCON_GET_SDIV(reg_val);
-
-	return (S3C64XX_CLOCK_REFERENCE * m) / (p << s);
-}
-
-uint32_t s3c_get_mpllclk(void)
-{
-	uint32_t m, p, s, reg_val;
-
-	if (!(readl(S3C_CLK_SRC) & S3C_CLK_SRC_FOUTMPLL))
-		return S3C64XX_CLOCK_REFERENCE;
-
-	reg_val = readl(S3C_MPLLCON);
-	if (!(reg_val & S3C_MPLLCON_ENABLE))
-		return 0;
-
-	m = S3C_MPLLCON_GET_MDIV(reg_val);
-	p = S3C_MPLLCON_GET_PDIV(reg_val);
-	s = S3C_MPLLCON_GET_SDIV(reg_val);
-
-	return (S3C64XX_CLOCK_REFERENCE * m) / (p << s);
-}
-
-unsigned s3c_get_epllclk(void)
-{
-	u32 m, p, s, k, reg0_val, reg1_val;
-	u64 tmp;
-
-	if (!(readl(S3C_CLK_SRC) & S3C_CLK_SRC_FOUTEPLL))
-		return S3C64XX_CLOCK_REFERENCE;
-
-	reg0_val = readl(S3C_EPLLCON0);
-	if (!(reg0_val & S3C_EPLLCON0_ENABLE))
-		return 0;	/* PLL is disabled */
-
-	reg1_val = readl(S3C_EPLLCON1);
-	m = S3C_EPLLCON0_GET_MDIV(reg0_val);
-	p = S3C_EPLLCON0_GET_PDIV(reg0_val);
-	s = S3C_EPLLCON0_GET_SDIV(reg0_val);
-	k = S3C_EPLLCON1_GET_KDIV(reg1_val);
-
-	tmp = S3C64XX_CLOCK_REFERENCE;
-	tmp *= (m << 16) + k;
-	do_div(tmp, (p << s));
-
-	return (unsigned)(tmp >> 16);
-}
-
-unsigned s3c_set_epllclk(unsigned m, unsigned p, unsigned s, unsigned k)
-{
-	u32 con0, con1, src = readl(S3C_CLK_SRC) & ~S3C_CLK_SRC_FOUTEPLL;
-
-	/* do not use the EPLL clock when it is in transit to the new frequency */
-	writel(src, S3C_CLK_SRC);
-
-	con0 = S3C_EPLLCON0_SET_MDIV(m) | S3C_EPLLCON0_SET_PDIV(p) |
-				S3C_EPLLCON0_SET_SDIV(s) | S3C_EPLLCON0_ENABLE;
-	con1 = S3C_EPLLCON1_SET_KDIV(k);
-
-	/*
-	 * After changing the multiplication value 'm' the PLL output will
-	 * be masked for the time set in the EPLL_LOCK register until it
-	 * settles to the new frequency. EPLL_LOCK contains a value for a
-	 * simple counter which counts the external reference clock.
-	 */
-	writel(con0, S3C_EPLLCON0);
-	writel(con1, S3C_EPLLCON1);
-
-	udelay((1000000000 / S3C64XX_CLOCK_REFERENCE)
-		* (S3C_EPLL_LOCK_PLL_LOCKTIME(readl(S3C_EPLL_LOCK)) + 1) / 1000);
-
-	/* enable the EPLL's clock output to the system */
-	writel(src | S3C_CLK_SRC_FOUTEPLL, S3C_CLK_SRC);
-
-	return s3c_get_epllclk();
-}
-
-uint32_t s3c_get_fclk(void)
-{
-	unsigned clk;
-
-	clk = s3c_get_apllclk();
-	if (readl(S3C_MISC_CON) & S3C_MISC_CON_SYN667)
-		clk /= 2;
-
-	return clk / (S3C_CLK_DIV0_GET_ADIV(readl(S3C_CLK_DIV0)) + 1);
-}
-
-static unsigned s3c_get_hclk_in(void)
-{
-	unsigned clk;
-
-	if (readl(S3C_OTHERS) & S3C_OTHERS_CLK_SELECT)
-		clk = s3c_get_apllclk();
-	else
-		clk = s3c_get_mpllclk();
-
-	if (readl(S3C_MISC_CON) & S3C_MISC_CON_SYN667)
-		clk /= 5;
-
-	return clk;
-}
-
-static unsigned s3c_get_hclkx2(void)
-{
-	return s3c_get_hclk_in() /
-			(S3C_CLK_DIV0_GET_HCLK2(readl(S3C_CLK_DIV0)) + 1);
-}
-
-uint32_t s3c_get_hclk(void)
-{
-	return s3c_get_hclkx2() /
-			(S3C_CLK_DIV0_GET_HCLK(readl(S3C_CLK_DIV0)) + 1);
-}
-
-uint32_t s3c_get_pclk(void)
-{
-	return s3c_get_hclkx2() /
-			(S3C_CLK_DIV0_GET_PCLK(readl(S3C_CLK_DIV0)) + 1);
-}
-
-static void s3c_init_mpll_dout(void)
-{
-	unsigned reg;
-
-	/* keep it at the same frequency as HCLKx2 */
-	reg = readl(S3C_CLK_DIV0) | S3C_CLK_DIV0_SET_MPLL_DIV(1); /* e.g. / 2 */
-	writel(reg, S3C_CLK_DIV0);
-}
-
-/* configure and enable UCLK1 */
-static int s3c_init_uart_clock(void)
-{
-	unsigned reg;
-
-	s3c_init_mpll_dout();	/* to have a reliable clock source */
-
-	/* source the UART clock from the MPLL, currently *not* from EPLL */
-	reg = readl(S3C_CLK_SRC) | S3C_CLK_SRC_UARTMPLL;
-	writel(reg, S3C_CLK_SRC);
-
-	/* keep UART clock at the same frequency than the PCLK */
-	reg = readl(S3C_CLK_DIV2) & ~S3C_CLK_DIV2_UART_MASK;
-	reg |= S3C_CLK_DIV2_SET_UART(0x3);	/* / 4 */
-	writel(reg, S3C_CLK_DIV2);
-
-	/* ensure this very special clock is running */
-	reg = readl(S3C_SCLK_GATE) | S3C_SCLK_GATE_UART;
-	writel(reg, S3C_SCLK_GATE);
-
-	return 0;
-}
-core_initcall(s3c_init_uart_clock);
-
-/*                                         UART source selection
- * The UART related clock path:                     |
- *                                                  v
- * PCLK --------------------------------------o-----0-\
- * ???? -------------------------------UCLK0--|-----1--\MUX----- UART
- * MPLL -----DIV0------\                      +-----2--/
- *                     MUX---DIV2------UCLK1--------3-/
- * EPLL ---------------/
- *                      ^SRC_UARTMPLL
- */
-unsigned s3c_get_uart_clk(unsigned source)
-{
-	u32 reg;
-	unsigned clk, pdiv, uartpdiv;
-
-	switch (source) {
-	default: /* PCLK */
-		clk = s3c_get_pclk();
-		pdiv = uartpdiv = 1;
-		break;
-	case 1: /* UCLK0 */
-		clk = 0;
-		pdiv = uartpdiv = 1;	/* TODO */
-		break;
-	case 3: /* UCLK1 */
-		reg = readl(S3C_CLK_SRC);
-		if (reg & S3C_CLK_SRC_UARTMPLL) {
-			clk = s3c_get_mpllclk();
-			pdiv = S3C_CLK_DIV0_GET_MPLL_DIV(readl(S3C_CLK_DIV0)) + 1;
-		} else {
-			clk = s3c_get_epllclk();
-			pdiv = 1;
-		}
-		uartpdiv = S3C_CLK_DIV2_GET_UART(readl(S3C_CLK_DIV2)) + 1;
-		break;
-	}
-
-	return clk / pdiv / uartpdiv;
-}
-
-/*
- * The MMC related clock path:
- *
- *              MMCx_SEL
- *                 |
- *                 v
- * EPLLout --------0-\
- * MPLLout --DIV0--1--\-------SCLK_MMCx----DIV_MMCx------>HSMMCx
- * EPLLin  --------2--/        on/off      / 1..16
- * 27 MHz  --------3-/
- *
- * The datasheet is not very precise here, so the schematic shown above was
- * made by checking various bits in the SYSCON.
- */
-unsigned s3c_get_hsmmc_clk(int id)
-{
-	u32 sel, div, sclk = readl(S3C_SCLK_GATE);
-	unsigned bclk;
-
-	if (!(sclk & S3C_SCLK_GATE_MMC(id)))
-		return 0; /* disabled */
-
-	sel = S3C_CLK_SRC_GET_MMC_SEL(id, readl(S3C_CLK_SRC));
-	switch (sel) {
-	case 0:
-		bclk = s3c_get_epllclk();
-		break;
-	case 1:
-		bclk = s3c_get_mpllclk();
-		bclk >>= S3C_CLK_DIV0_GET_MPLL_DIV(readl(S3C_CLK_DIV0));
-		break;
-	case 2:
-		bclk = S3C64XX_CLOCK_REFERENCE;
-		break;
-	case 3:
-		bclk = 27000000;
-		break;
-	}
-
-	div = S3C_CLK_DIV0_GET_MMC(id, readl(S3C_CLK_DIV0)) + 1;
-
-	return bclk / div;
-}
-
-void s3c_set_hsmmc_clk(int id, int src, unsigned div)
-{
-	u32 reg;
-
-	if (!div)
-		div = 1;
-
-	writel(readl(S3C_SCLK_GATE) & ~S3C_SCLK_GATE_MMC(id), S3C_SCLK_GATE);
-
-	/* select the new clock source */
-	reg = readl(S3C_CLK_SRC) & ~S3C_CLK_SRC_SET_MMC_SEL(id, ~0);
-	reg |= S3C_CLK_SRC_SET_MMC_SEL(id, src);
-	writel(reg, S3C_CLK_SRC);
-
-	/* select the new pre-divider */
-	reg = readl(S3C_CLK_DIV0) & ~ S3C_CLK_DIV0_SET_MMC(id, ~0);
-	reg |= S3C_CLK_DIV0_SET_MMC(id, div - 1);
-	writel(reg, S3C_CLK_DIV0);
-
-	/* calling this function implies enabling of the clock */
-	writel(readl(S3C_SCLK_GATE) | S3C_SCLK_GATE_MMC(id), S3C_SCLK_GATE);
-}
-
-static int s3c64xx_dump_clocks(void)
-{
-	printf("refclk:  %7d kHz\n", S3C64XX_CLOCK_REFERENCE / 1000);
-	printf("apll:    %7d kHz\n", s3c_get_apllclk() / 1000);
-	printf("mpll:    %7d kHz\n", s3c_get_mpllclk() / 1000);
-	printf("epll:    %7d kHz\n", s3c_get_epllclk() / 1000);
-	printf("CPU:     %7d kHz\n", s3c_get_fclk() / 1000);
-	printf("hclkx2:  %7d kHz\n", s3c_get_hclkx2() / 1000);
-	printf("hclk:    %7d kHz\n", s3c_get_hclk() / 1000);
-	printf("pclk:    %7d kHz\n", s3c_get_pclk() / 1000);
-	return 0;
-}
-
-late_initcall(s3c64xx_dump_clocks);
diff --git a/arch/arm/mach-samsung/clocks-s5pcxx.c b/arch/arm/mach-samsung/clocks-s5pcxx.c
deleted file mode 100644
index 4a1574bd89..0000000000
--- a/arch/arm/mach-samsung/clocks-s5pcxx.c
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright (C) 2012 Alexey Galakhov
- * Copyright (C) 2012 Juergen Beisert, Pengutronix
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-
-#include <config.h>
-#include <common.h>
-#include <init.h>
-#include <clock.h>
-#include <io.h>
-#include <mach/s3c-iomap.h>
-#include <mach/s3c-generic.h>
-#include <mach/s3c-clocks.h>
-
-static inline uint32_t clkdiv(uint32_t clk, unsigned bit, unsigned mask)
-{
-	uint32_t ratio = (readl(S5P_CLK_DIV0) >> bit) & mask;
-	return clk / (ratio + 1);
-}
-
-uint32_t s3c_get_mpllclk(void)
-{
-	uint32_t m, p, s;
-	uint32_t reg = readl(S5P_xPLL_CON + S5P_MPLL);
-	m = (reg >> 16) & 0x3ff;
-	p = (reg >> 8) & 0x3f;
-	s = (reg >> 0) & 0x7;
-	return m * ((S5PCXX_CLOCK_REFERENCE) / (p << s));
-}
-
-static uint32_t s3c_get_apllclk(void)
-{
-	uint32_t m, p, s;
-	uint32_t reg = readl(S5P_xPLL_CON + S5P_APLL);
-	m = (reg >> 16) & 0x3ff;
-	p = (reg >> 8) & 0x3f;
-	s = (reg >> 0) & 0x7;
-	s -= 1;
-	return m * ((S5PCXX_CLOCK_REFERENCE) / (p << s));
-}
-
-static uint32_t s5p_get_a2mclk(void)
-{
-	return clkdiv(s3c_get_apllclk(), 4, 0x7);
-}
-
-static uint32_t s5p_get_moutpsysclk(void)
-{
-	if (readl(S5P_CLK_SRC0) & (1 << 24)) /* MUX_PSYS */
-		return s5p_get_a2mclk();
-        else
-		return s3c_get_mpllclk();
-}
-
-uint32_t s3c_get_hclk(void)
-{
-	return clkdiv(s5p_get_moutpsysclk(), 24, 0xf);
-}
-
-uint32_t s3c_get_pclk(void)
-{
-	return clkdiv(s3c_get_hclk(), 28, 0x7);
-}
-
-/* we are using the internal 'uclk1' as the UART source */
-static unsigned s3c_get_uart_clk_uclk1(void)
-{
-	unsigned clk = s3c_get_mpllclk();	/* TODO check for EPLL */
-	unsigned uartpdiv = ((readl(S5P_CLK_DIV4) >> 16) & 0x3) + 1; /* TODO this is UART0 only */
-	return clk / uartpdiv;
-}
-
-unsigned s3c_get_uart_clk(unsigned src) {
-	return (src & 1) ? s3c_get_uart_clk_uclk1() : s3c_get_pclk();
-}
-
-static int s5pcxx_dump_clocks(void)
-{
-	printf("refclk:  %7d kHz\n", S5PCXX_CLOCK_REFERENCE / 1000);
-	printf("apll:    %7d kHz\n", s3c_get_apllclk() / 1000);
-	printf("mpll:    %7d kHz\n", s3c_get_mpllclk() / 1000);
-/*	printf("CPU:     %7d kHz\n", s3c_get_cpuclk() / 1000); */
-	printf("hclk:    %7d kHz\n", s3c_get_hclk() / 1000);
-	printf("pclk:    %7d kHz\n", s3c_get_pclk() / 1000);
-	return 0;
-}
-
-late_initcall(s5pcxx_dump_clocks);
diff --git a/arch/arm/mach-samsung/generic.c b/arch/arm/mach-samsung/generic.c
deleted file mode 100644
index ed3d30d995..0000000000
--- a/arch/arm/mach-samsung/generic.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- */
-/**
- * @file
- * @brief Basic clock, sdram and timer handling for S3C24xx CPUs
- */
-
-#include <config.h>
-#include <common.h>
-#include <init.h>
-#include <restart.h>
-#include <io.h>
-#include <mach/s3c-iomap.h>
-#include <mach/s3c-generic.h>
-
-#define S3C_WTCON (S3C_WATCHDOG_BASE)
-#define S3C_WTDAT (S3C_WATCHDOG_BASE + 0x04)
-#define S3C_WTCNT (S3C_WATCHDOG_BASE + 0x08)
-
-static void __noreturn samsung_restart_soc(struct restart_handler *rst)
-{
-	/* Disable watchdog */
-	writew(0x0000, S3C_WTCON);
-
-	/* Initialize watchdog timer count register */
-	writew(0x0001, S3C_WTCNT);
-
-	/* Enable watchdog timer; assert reset at timer timeout */
-	writew(0x0021, S3C_WTCON);
-
-	/* loop forever and wait for reset to happen */
-	hang();
-}
-
-static int restart_register_feature(void)
-{
-	restart_handler_register_fn("soc-wdt", samsung_restart_soc);
-
-	return 0;
-}
-coredevice_initcall(restart_register_feature);
diff --git a/arch/arm/mach-samsung/gpio-s3c24x0.c b/arch/arm/mach-samsung/gpio-s3c24x0.c
deleted file mode 100644
index 58ca284eab..0000000000
--- a/arch/arm/mach-samsung/gpio-s3c24x0.c
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- */
-
-#include <common.h>
-#include <errno.h>
-#include <io.h>
-#include <mach/s3c-iomap.h>
-#include <gpio.h>
-#include <mach/s3c24xx-gpio.h>
-#include <mach/iomux.h>
-
-static const unsigned char group_offset[] =
-{
-	0x00,	/* GPA */
-	0x10,	/* GPB */
-	0x20,	/* GPC */
-	0x30,	/* GPD */
-	0x40,	/* GPE */
-	0x50,	/* GPF */
-	0x60,	/* GPG */
-	0x70,	/* GPH */
-#ifdef CONFIG_CPU_S3C2440
-	0xd0,	/* GPJ */
-#endif
-};
-
-void gpio_set_value(unsigned gpio, int value)
-{
-	unsigned group = gpio >> 5;
-	unsigned bit = gpio % 32;
-	unsigned offset;
-	uint32_t reg;
-
-	offset = group_offset[group];
-
-	reg = readl(S3C_GPADAT + offset);
-	reg &= ~(1 << bit);
-	reg |= (!!value) << bit;
-	writel(reg, S3C_GPADAT + offset);
-}
-
-int gpio_direction_input(unsigned gpio)
-{
-	unsigned group = gpio >> 5;
-	unsigned bit = gpio % 32;
-	unsigned offset;
-	uint32_t reg;
-
-	offset = group_offset[group];
-
-	reg = readl(S3C_GPACON + offset);
-	reg &= ~(0x3 << (bit << 1));
-	writel(reg, S3C_GPACON + offset);
-
-	return 0;
-}
-
-
-int gpio_direction_output(unsigned gpio, int value)
-{
-	unsigned group = gpio >> 5;
-	unsigned bit = gpio % 32;
-	unsigned offset;
-	uint32_t reg;
-
-	offset = group_offset[group];
-
-	/* value */
-	gpio_set_value(gpio,value);
-	/* direction */
-	if (group == 0) {	/* GPA is special */
-		reg = readl(S3C_GPACON);
-		reg &= ~(1 << bit);
-		writel(reg, S3C_GPACON);
-	} else {
-		reg = readl(S3C_GPACON + offset);
-		reg &= ~(0x3 << (bit << 1));
-		reg |= 0x1 << (bit << 1);
-		writel(reg, S3C_GPACON + offset);
-	}
-
-	return 0;
-}
-
-int gpio_get_value(unsigned gpio)
-{
-	unsigned group = gpio >> 5;
-	unsigned bit = gpio % 32;
-	unsigned offset;
-	uint32_t reg;
-
-	if (group == 0)	/* GPA is special: no input mode available */
-		return -ENODEV;
-
-	offset = group_offset[group];
-
-	/* value */
-	reg = readl(S3C_GPADAT + offset);
-
-	return !!(reg & (1 << bit));
-}
-
-void s3c_gpio_mode(unsigned gpio_mode)
-{
-	unsigned group, func, bit, offset, gpio;
-	uint32_t reg;
-
-	group = GET_GROUP(gpio_mode);
-	func = GET_FUNC(gpio_mode);
-	bit = GET_BIT(gpio_mode);
-	gpio = GET_GPIO_NO(gpio_mode);
-
-	if (group == 0) {
-		/* GPA is special */
-		switch (func) {
-		case 0:		/* GPIO input */
-			pr_debug("Cannot set GPA pin to GPIO input\n");
-			break;
-		case 1:		/* GPIO output */
-			gpio_direction_output(bit, GET_GPIOVAL(gpio_mode));
-			break;
-		default:
-			reg = readl(S3C_GPACON);
-			reg |= 1 << bit;
-			writel(reg, S3C_GPACON);
-			break;
-		}
-		return;
-	}
-
-	offset = group_offset[group];
-
-	if (PU_PRESENT(gpio_mode)) {
-		reg = readl(S3C_GPACON + offset + 8);
-		if (GET_PU(gpio_mode))
-			reg |= (1 << bit);	/* set means _disabled_ */
-		else
-			reg &= ~(1 << bit);
-		writel(reg, S3C_GPACON + offset + 8);
-	}
-
-	switch (func) {
-	case 0: /* input */
-		gpio_direction_input(gpio);
-		break;
-	case 1:	/* output */
-		gpio_direction_output(gpio, GET_GPIOVAL(gpio_mode));
-		break;
-	case 2: /* function one */
-	case 3: /* function two */
-		reg = readl(S3C_GPACON + offset);
-		reg &= ~(0x3 << (bit << 1));
-		reg |= func << (bit << 1);
-		writel(reg, S3C_GPACON + offset);
-		break;
-	}
-}
diff --git a/arch/arm/mach-samsung/gpio-s3c64xx.c b/arch/arm/mach-samsung/gpio-s3c64xx.c
deleted file mode 100644
index d70a8716c9..0000000000
--- a/arch/arm/mach-samsung/gpio-s3c64xx.c
+++ /dev/null
@@ -1,302 +0,0 @@
-/*
- * Copyright (C) 2012 Juergen Beisert
- *
- * This code bases partially on code from the Linux kernel:
- *
- * Copyright 2008 Openmoko, Inc.
- * Copyright 2008 Simtec Electronics
- *	http://armlinux.simtec.co.uk/
- *	Ben Dooks <ben@simtec.co.uk>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-
-#include <common.h>
-#include <errno.h>
-#include <io.h>
-#include <gpio.h>
-#include <mach/iomux.h>
-#include <mach/s3c-iomap.h>
-
-#define S3C_GPACON (S3C_GPIO_BASE)
-#define S3C_GPADAT (S3C_GPIO_BASE + 0x04)
-#define S3C_GPAPUD (S3C_GPIO_BASE + 0x08)
-
-static const unsigned short group_offset[] = {
-	0x000,	/* GPA */ /* 8 pins, 4 bit each */
-	0x020,	/* GPB */ /* 7 pins, 4 bit each */
-	0x040,	/* GPC */ /* 8 pins, 4 bit each */
-	0x060,	/* GPD */ /* 5 pins, 4 bit each */
-	0x080,	/* GPE */ /* 5 pins, 4 bit each */
-	0x0a0,	/* GPF */ /* 16 pins, 2 bit each */
-	0x0c0,	/* GPG */ /* 7 pins, 4 bit each */
-	0x0e0,	/* GPH */ /* two registers, 8 + 2 pins, 4 bit each */
-	0x100,	/* GPI */ /* 16 pins, 2 bit each */
-	0x120,	/* GPJ */ /* 12 pins, 2 bit each */
-	0x800,	/* GPK */ /* two registers, 8 + 8 pins, 4 bit each */
-	0x810,	/* GPL */ /* two registers, 8 + 8 pins, 4 bit each */
-	0x820,	/* GPM */ /* 6 pins, 4 bit each */
-	0x830,	/* GPN */ /* 16 pins, 2 bit each */
-	0x140,	/* GPO */ /* 16 pins, 2 bit each */
-	0x160,	/* GPP */ /* 15 pins, 2 bit each */
-	0x180,	/* GPQ */ /* 9 pins, 2 bit each */
-};
-
-void gpio_set_value(unsigned gpio, int value)
-{
-	unsigned group = GET_GROUP(gpio);
-	unsigned bit = GET_BIT(gpio);
-	unsigned offset;
-	uint32_t reg;
-
-	offset = group_offset[group];
-
-	switch (group) {
-	case 7:		/* GPH */
-	case 10:	/* GPK */
-	case 11:	/* GPL */
-		offset += 4;
-		break;
-	}
-
-	reg = readl(S3C_GPADAT + offset);
-	reg &= ~(1 << bit);
-	reg |= (!!value) << bit;
-	writel(reg, S3C_GPADAT + offset);
-}
-
-int gpio_get_value(unsigned gpio)
-{
-	unsigned group = GET_GROUP(gpio);
-	unsigned bit = GET_BIT(gpio);
-	unsigned offset;
-	uint32_t reg;
-
-	offset = group_offset[group];
-
-	switch (group) {
-	case 7:		/* GPH */
-	case 10:	/* GPK */
-	case 11:	/* GPL */
-		offset += 4;
-		break;
-	}
-
-	/* value */
-	reg = readl(S3C_GPADAT + offset);
-
-	return !!(reg & (1 << bit));
-}
-
-static void gpio_direction_input_4b(unsigned offset, unsigned bit)
-{
-	uint32_t reg;
-
-	if (bit > 31) {
-		offset += 4;
-		bit -= 32;
-	}
-
-	reg = readl(S3C_GPACON + offset) & ~(0xf << bit);
-	writel(reg, S3C_GPACON + offset); /* b0000 means 'GPIO input' */
-}
-
-static void gpio_direction_input_2b(unsigned offset, unsigned bit)
-{
-	uint32_t reg;
-
-	reg = readl(S3C_GPACON + offset) & ~(0x3 << bit);
-	writel(reg, S3C_GPACON + offset); /* b00 means 'GPIO input' */
-}
-
-int gpio_direction_input(unsigned gpio)
-{
-	unsigned group = GET_GROUP(gpio);
-	unsigned bit = GET_BIT(gpio);
-	unsigned offset;
-
-	offset = group_offset[group];
-
-	switch (group) {
-	case 5:		/* GPF */
-	case 8:		/* GPI */
-	case 9:		/* GPJ */
-	case 13:	/* GPN */
-	case 14:	/* GPO */
-	case 15:	/* GPP */
-	case 16:	/* GPQ */
-		gpio_direction_input_2b(offset, bit << 1);
-		break;
-	default:
-		gpio_direction_input_4b(offset, bit << 2);
-	}
-
-	return 0;
-}
-
-static void gpio_direction_output_4b(unsigned offset, unsigned bit)
-{
-	uint32_t reg;
-
-	if (bit > 31) {
-		offset += 4;
-		bit -= 32;
-	}
-
-	reg = readl(S3C_GPACON + offset) & ~(0xf << bit);
-	reg |= 0x1 << bit;
-	writel(reg, S3C_GPACON + offset); /* b0001 means 'GPIO output' */
-}
-
-static void gpio_direction_output_2b(unsigned offset, unsigned bit)
-{
-	uint32_t reg;
-
-	/* direction */
-	reg = readl(S3C_GPACON + offset) & ~(0x3 << bit);
-	reg |= 0x1 << bit;
-	writel(reg, S3C_GPACON + offset);
-}
-
-int gpio_direction_output(unsigned gpio, int value)
-{
-	unsigned group = GET_GROUP(gpio);
-	unsigned bit = GET_BIT(gpio);
-	unsigned offset;
-
-	gpio_set_value(gpio, value);
-
-	offset = group_offset[group];
-	switch (group) {
-	case 5:		/* GPF */
-	case 8:		/* GPI */
-	case 9:		/* GPJ */
-	case 13:	/* GPN */
-	case 14:	/* GPO */
-	case 15:	/* GPP */
-	case 16:	/* GPQ */
-		gpio_direction_output_2b(offset, bit << 1);
-		break;
-	default:
-		gpio_direction_output_4b(offset, bit << 2);
-	}
-
-	return 0;
-}
-
-/* one register, 2 bits per function -> GPF, GPI, GPJ, GPN, GPO, GPP, GPQ */
-static void s3c_d2pins(unsigned offset, unsigned pin_mode)
-{
-	unsigned bit = GET_BIT(pin_mode);
-	unsigned func = GET_FUNC(pin_mode);
-	unsigned reg;
-
-	if (PUD_PRESENT(pin_mode)) {
-		reg = readl(S3C_GPAPUD + offset);
-		reg &= ~(PUD_MASK << bit);
-		reg |= GET_PUD(pin_mode) << bit;
-		writel(reg, S3C_GPAPUD + offset);
-	}
-
-	/* in the case of pin's function is GPIO it also sets up the direction */
-	reg = readl(S3C_GPACON + offset) & ~(0x3 << bit);
-	writel(reg | (func << bit), S3C_GPACON + offset);
-
-	if (func == 1) { /* output? if yes, also set the initial value */
-		reg = readl(S3C_GPADAT + offset) & ~(1 << (bit >> 1));
-		reg |= GET_GPIOVAL(pin_mode) << (bit >> 1);
-		writel(reg, S3C_GPADAT + offset);
-	}
-}
-
-/* one register, 4 bits per function -> GPA, GPB, GPC, GPD, GPE, GPG, GPM */
-static void s3c_d4pins(unsigned offset, unsigned pin_mode)
-{
-	unsigned bit = GET_BIT(pin_mode);
-	unsigned func = GET_FUNC(pin_mode);
-	unsigned reg;
-
-	if (PUD_PRESENT(pin_mode)) {
-		reg = readl(S3C_GPAPUD + offset);
-		reg &= ~(PUD_MASK << (bit >> 1));
-		reg |= GET_PUD(pin_mode) << (bit >> 1);
-		writel(reg, S3C_GPAPUD + offset);
-	}
-
-	/* in the case of pin's function is GPIO it also sets up the direction */
-	reg = readl(S3C_GPACON + offset) & ~(0xf << bit);
-	writel(reg | (func << bit), S3C_GPACON + offset);
-
-	if (func == 1) { /* output? if yes, also set the initial value */
-		reg = readl(S3C_GPADAT + offset) & ~(1 << (bit >> 2));
-		reg |= GET_GPIOVAL(pin_mode) << (bit >> 2);
-		writel(reg, S3C_GPADAT + offset);
-	}
-}
-
-/* two registers, 4 bits per pin -> GPH, GPK, GPL */
-static void s3c_d42pins(unsigned offset, unsigned pin_mode)
-{
-	unsigned bit = GET_BIT(pin_mode);
-	unsigned func = GET_FUNC(pin_mode);
-	uint32_t reg;
-	unsigned reg_offs = 0;
-
-	if (PUD_PRESENT(pin_mode)) {
-		reg = readl(S3C_GPAPUD + 4 + offset);
-		reg &= ~(PUD_MASK << (bit >> 1));
-		reg |= GET_PUD(pin_mode) << (bit >> 1);
-		writel(reg, S3C_GPACON + 4 + offset);
-	}
-
-	if (bit > 31) {
-		reg_offs = 4;
-		bit -= 32;
-	}
-
-	/* in the case of pin's function is GPIO it also sets up the direction */
-	reg = readl(S3C_GPACON + offset + reg_offs) & ~(0xf << bit);
-	writel(reg | (func << bit), S3C_GPACON + offset + reg_offs);
-
-	if (func == 1) { /* output? if yes, also set the initial value */
-		reg = readl(S3C_GPADAT + 4 + offset) & ~(1 << (bit >> 2));
-		reg |= GET_GPIOVAL(pin_mode) << (bit >> 2);
-		writel(reg, S3C_GPADAT + 4 + offset);
-	}
-}
-
-/* 'gpio_mode' must be one of the 'GP?_*' macros */
-void s3c_gpio_mode(unsigned gpio_mode)
-{
-	unsigned group, offset;
-
-	group = GET_GROUP(gpio_mode);
-	offset = group_offset[group];
-
-	switch (group) {
-	case 5:		/* GPF */
-	case 8:		/* GPI */
-	case 9:		/* GPJ */
-	case 13:	/* GPN */
-	case 14:	/* GPO */
-	case 15:	/* GPP */
-	case 16:	/* GPQ */
-		s3c_d2pins(offset, gpio_mode);
-		break;
-	case 7:		/* GPH */
-	case 10:	/* GPK */
-	case 11:	/* GPL */
-		s3c_d42pins(offset, gpio_mode);
-		break;
-	default:
-		s3c_d4pins(offset, gpio_mode);
-	}
-}
diff --git a/arch/arm/mach-samsung/gpio-s5pcxx.c b/arch/arm/mach-samsung/gpio-s5pcxx.c
deleted file mode 100644
index 1a422f1746..0000000000
--- a/arch/arm/mach-samsung/gpio-s5pcxx.c
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Copyright (C) 2012 Alexey Galakhov
- * Copyright (C) 2012 Juergen Beisert, Pengutronix
- *
- * This codes bases partially on code from the Linux kernel:
- *
- * Copyright 2008 Openmoko, Inc.
- * Copyright 2008 Simtec Electronics
- *	http://armlinux.simtec.co.uk/
- *	Ben Dooks <ben@simtec.co.uk>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-
-#include <common.h>
-#include <errno.h>
-#include <io.h>
-#include <gpio.h>
-#include <mach/iomux.h>
-#include <mach/s3c-iomap.h>
-
-#define S3C_GPACON (S3C_GPIO_BASE)
-#define S3C_GPADAT (S3C_GPIO_BASE + 0x04)
-#define S3C_GPAPUD (S3C_GPIO_BASE + 0x08)
-
-static inline unsigned group_offset(unsigned group)
-{
-    return group * 0x20;
-}
-
-void gpio_set_value(unsigned gpio, int value)
-{
-	unsigned group = GET_GROUP(gpio);
-	unsigned bit = GET_BIT(gpio);
-	unsigned offset = group_offset(group);
-	uint32_t reg;
-
-	reg = readl(S3C_GPADAT + offset);
-	reg &= ~(1 << bit);
-	reg |= (!!value) << bit;
-	writel(reg, S3C_GPADAT + offset);
-}
-
-int gpio_get_value(unsigned gpio)
-{
-	unsigned group = GET_GROUP(gpio);
-	unsigned bit = GET_BIT(gpio);
-	unsigned offset = group_offset(group);
-	uint32_t reg;
-
-	/* value */
-	reg = readl(S3C_GPADAT + offset);
-
-	return !!(reg & (1 << bit));
-}
-
-int gpio_direction_input(unsigned gpio)
-{
-	unsigned group = GET_GROUP(gpio);
-	unsigned bit = GET_BIT(gpio);
-	unsigned offset = group_offset(group);
-	uint32_t reg;
-
-	bit <<= 2;
-	reg = readl(S3C_GPACON + offset) & ~(0xf << bit);
-	writel(reg, S3C_GPACON + offset);
-
-	return 0;
-}
-
-int gpio_direction_output(unsigned gpio, int value)
-{
-	unsigned group = GET_GROUP(gpio);
-	unsigned bit = GET_BIT(gpio);
-	unsigned offset = group_offset(group);
-	uint32_t reg;
-
-	gpio_set_value(gpio, value);
-
-	bit <<= 2;
-	reg = readl(S3C_GPACON + offset) & ~(0xf << bit);
-	reg |= 0x1 << bit;
-	writel(reg, S3C_GPACON + offset);
-
-	return 0;
-}
-
-
-/* 'gpio_mode' must be one of the 'GP?_*' macros */
-void s3c_gpio_mode(unsigned gpio_mode)
-{
-	unsigned group = GET_GROUP(gpio_mode);
-	unsigned bit = GET_BIT(gpio_mode);
-	unsigned func = GET_FUNC(gpio_mode);
-	unsigned offset = group_offset(group);
-	unsigned reg;
-
-	bit <<= 1;
-	if (PUD_PRESENT(gpio_mode)) {
-		reg = readl(S3C_GPAPUD + offset);
-		reg &= ~(PUD_MASK << bit);
-		reg |= GET_PUD(gpio_mode) << bit;
-		writel(reg, S3C_GPAPUD + offset);
-	}
-
-	bit <<= 1;
-	reg = readl(S3C_GPACON + offset) & ~(0xf << bit);
-	writel(reg | (func << bit), S3C_GPACON + offset);
-
-	if (func == 1) { /* output? if yes, also set the initial value */
-		reg = readl(S3C_GPADAT + offset) & ~(1 << (bit >> 2));
-		reg |= GET_GPIOVAL(gpio_mode) << (bit >> 2);
-		writel(reg, S3C_GPADAT + offset);
-	}
-
-}
diff --git a/arch/arm/mach-samsung/include/mach/bbu.h b/arch/arm/mach-samsung/include/mach/bbu.h
deleted file mode 100644
index ddc72a622d..0000000000
--- a/arch/arm/mach-samsung/include/mach/bbu.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-
-#ifndef __MACH_BBU_H
-#define __MACH_BBU_H
-
-#include <bbu.h>
-#include <errno.h>
-
-#ifdef CONFIG_BAREBOX_UPDATE_NAND_S3C24XX
-int s3c24x0_bbu_nand_register_handler(void);
-#else
-static inline int s3c24x0_bbu_nand_register_handler(void)
-{
-	return -ENOSYS;
-}
-#endif
-
-#endif
diff --git a/arch/arm/mach-samsung/include/mach/devices-s3c24xx.h b/arch/arm/mach-samsung/include/mach/devices-s3c24xx.h
deleted file mode 100644
index 51fd9a1825..0000000000
--- a/arch/arm/mach-samsung/include/mach/devices-s3c24xx.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright 2012 Juergen Beisert
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- */
-
-#ifndef INCLUDE_MACH_DEVICES_S3C24XX_H
-# define INCLUDE_MACH_DEVICES_S3C24XX_H
-
-#include <driver.h>
-#include <mach/s3c24xx-iomap.h>
-#include <mach/s3c24xx-nand.h>
-#include <mach/s3c-mci.h>
-#include <mach/s3c24xx-fb.h>
-
-static inline void s3c24xx_add_nand(struct s3c24x0_nand_platform_data *d)
-{
-	add_generic_device("s3c24x0_nand", DEVICE_ID_DYNAMIC, NULL,
-				S3C24X0_NAND_BASE, 0x80, IORESOURCE_MEM, d);
-}
-
-static inline void s3c24xx_add_mci(struct s3c_mci_platform_data *d)
-{
-	add_generic_device("s3c_mci", DEVICE_ID_DYNAMIC, NULL,
-				S3C2410_SDI_BASE, 0x80, IORESOURCE_MEM, d);
-}
-
-static inline void s3c24xx_add_fb(struct s3c_fb_platform_data *d)
-{
-	add_generic_device("s3c_fb", DEVICE_ID_DYNAMIC, NULL,
-				S3C2410_LCD_BASE, 0x80, IORESOURCE_MEM, d);
-}
-
-static inline void s3c24xx_add_ohci(void)
-{
-	add_generic_device("ohci", DEVICE_ID_DYNAMIC, NULL,
-			S3C2410_USB_HOST_BASE, 0x100, IORESOURCE_MEM, NULL);
-}
-
-static inline void s3c24xx_add_uart1(void)
-{
-	add_generic_device("s3c_serial", DEVICE_ID_DYNAMIC, NULL, S3C_UART1_BASE,
-			S3C_UART1_SIZE, IORESOURCE_MEM, NULL);
-}
-
-#endif /* INCLUDE_MACH_DEVICES_S3C24XX_H */
diff --git a/arch/arm/mach-samsung/include/mach/devices-s3c64xx.h b/arch/arm/mach-samsung/include/mach/devices-s3c64xx.h
deleted file mode 100644
index bcbee972e6..0000000000
--- a/arch/arm/mach-samsung/include/mach/devices-s3c64xx.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright 2012 Juergen Beisert
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- */
-
-#ifndef INCLUDE_MACH_DEVICES_S3C64XX_H
-# define INCLUDE_MACH_DEVICES_S3C64XX_H
-
-#include <driver.h>
-#include <mach/s3c64xx-iomap.h>
-
-static inline void s3c64xx_add_uart1(void)
-{
-	add_generic_device("s3c_serial", DEVICE_ID_DYNAMIC, NULL, S3C_UART1_BASE,
-			S3C_UART1_SIZE, IORESOURCE_MEM, NULL);
-}
-
-static inline void s3c64xx_add_uart2(void)
-{
-	add_generic_device("s3c_serial", DEVICE_ID_DYNAMIC, NULL, S3C_UART2_BASE,
-			S3C_UART2_SIZE, IORESOURCE_MEM, NULL);
-}
-
-static inline void s3c64xx_add_uart3(void)
-{
-	add_generic_device("s3c_serial", DEVICE_ID_DYNAMIC, NULL, S3C_UART3_BASE,
-			S3C_UART3_SIZE, IORESOURCE_MEM, NULL);
-}
-
-#endif /* INCLUDE_MACH_DEVICES_S3C64XX_H */
diff --git a/arch/arm/mach-samsung/include/mach/iomux-s3c24x0.h b/arch/arm/mach-samsung/include/mach/iomux-s3c24x0.h
deleted file mode 100644
index b042505f25..0000000000
--- a/arch/arm/mach-samsung/include/mach/iomux-s3c24x0.h
+++ /dev/null
@@ -1,422 +0,0 @@
-/*
- * Copyright (C) 2010 Juergen Beisert
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- */
-
-#ifndef __MACH_IOMUX_S3C24x0_H
-#define __MACH_IOMUX_S3C24x0_H
-
-/* 3322222222221111111111
- * 10987654321098765432109876543210
- *                            ^^^^^_ Bit offset
- *                        ^^^^______ Group Number
- *                    ^^____________ Function
- *                   ^______________ initial GPIO out value
- *                  ^_______________ Pull up feature present
- *                 ^________________ initial pull up setting
- */
-
-
-#define PIN(group,bit) (group * 32 + bit)
-#define FUNC(x) (((x) & 0x3) << 11)
-#define GET_FUNC(x) (((x) >> 11) & 0x3)
-#define GET_GROUP(x) (((x) >> 5) & 0xf)
-#define GET_BIT(x) (((x) & 0x1ff) % 32)
-#define GET_GPIOVAL(x) (((x) >> 13) & 0x1)
-#define GET_GPIO_NO(x) ((x & 0x1ff))
-#define GPIO_OUT FUNC(1)
-#define GPIO_IN FUNC(0)
-#define GPIO_VAL(x) ((!!(x)) << 13)
-#define PU (1 << 14)
-#define PU_PRESENT(x) (!!((x) & (1 << 14)))
-#define ENABLE_PU (0 << 15)
-#define DISABLE_PU (1 << 15)
-#define GET_PU(x) (!!((x) & DISABLE_PU))
-
-/*
- * Group 0: GPIO 0...31
- * Used GPIO: 0...22
- * These pins can also act as GPIO outputs
- */
-#define GPA0_ADDR0		(PIN(0,0) | FUNC(2))
-#define GPA0_ADDR0_GPIO		(PIN(0,0) | FUNC(0))
-#define GPA1_ADDR16		(PIN(0,1) | FUNC(2))
-#define GPA1_ADDR16_GPIO	(PIN(0,1) | FUNC(0))
-#define GPA2_ADDR17		(PIN(0,2) | FUNC(2))
-#define GPA2_ADDR17_GPIO	(PIN(0,2) | FUNC(0))
-#define GPA3_ADDR18		(PIN(0,3) | FUNC(2))
-#define GPA3_ADDR18_GPIO	(PIN(0,3) | FUNC(0))
-#define GPA4_ADDR19		(PIN(0,4) | FUNC(2))
-#define GPA4_ADDR19_GPIO	(PIN(0,4) | FUNC(0))
-#define GPA5_ADDR20		(PIN(0,5) | FUNC(2))
-#define GPA5_ADDR20_GPIO	(PIN(0,5) | FUNC(0))
-#define GPA6_ADDR21		(PIN(0,6) | FUNC(2))
-#define GPA6_ADDR21_GPIO	(PIN(0,6) | FUNC(0))
-#define GPA7_ADDR22		(PIN(0,7) | FUNC(2))
-#define GPA7_ADDR22_GPIO	(PIN(0,7) | FUNC(0))
-#define GPA8_ADDR23		(PIN(0,8) | FUNC(2))
-#define GPA8_ADDR23_GPIO	(PIN(0,8) | FUNC(0))
-#define GPA9_ADDR24		(PIN(0,9) | FUNC(2))
-#define GPA9_ADDR24_GPIO	(PIN(0,9) | FUNC(0))
-#define GPA10_ADDR25		(PIN(0,10) | FUNC(2))
-#define GPA10_ADDR25_GPIO	(PIN(0,10) | FUNC(0))
-#define GPA11_ADDR26		(PIN(0,11) | FUNC(2))
-#define GPA11_ADDR26_GPIO	(PIN(0,11) | FUNC(0))
-#define GPA12_NGCS1		(PIN(0,12) | FUNC(2))
-#define GPA12_NGCS1_GPIO	(PIN(0,12) | FUNC(0))
-#define GPA13_NGCS2		(PIN(0,13) | FUNC(2))
-#define GPA13_NGCS2_GPIO	(PIN(0,13) | FUNC(0))
-#define GPA14_NGCS3		(PIN(0,14) | FUNC(2))
-#define GPA14_NGCS3_GPIO	(PIN(0,14) | FUNC(0))
-#define GPA15_NGCS4		(PIN(0,15) | FUNC(2))
-#define GPA15_NGCS4_GPIO	(PIN(0,15) | FUNC(0))
-#define GPA16_NGCS5		(PIN(0,16) | FUNC(2))
-#define GPA16_NGCS5_GPIO	(PIN(0,16) | FUNC(0))
-#define GPA17_CLE		(PIN(0,17) | FUNC(2))
-#define GPA17_CLE_GPIO		(PIN(0,17) | FUNC(0))
-#define GPA18_ALE		(PIN(0,18) | FUNC(2))
-#define GPA18_ALE_GPIO		(PIN(0,18) | FUNC(0))
-#define GPA19_NFWE		(PIN(0,19) | FUNC(2))
-#define GPA19_NFWE_GPIO		(PIN(0,19) | FUNC(0))
-#define GPA20_NFRE		(PIN(0,20) | FUNC(2))
-#define GPA20_NFRE_GPIO		(PIN(0,20) | FUNC(0))
-#define GPA21_NRSTOUT		(PIN(0,21) | FUNC(2))
-#define GPA21_NRSTOUT_GPIO	(PIN(0,21) | FUNC(0))
-#define GPA22_NFCE		(PIN(0,22) | FUNC(2))
-#define GPA22_NFCE_GPIO		(PIN(0,22) | FUNC(0))
-
-/*
- * Group 1: GPIO 32...63
- * Used GPIO: 0...10
- * these pins can also act as GPIO inputs/outputs
- */
-#define GPB0_TOUT0	(PIN(1,0) | FUNC(2) | PU)
-#define GPB0_GPIO	(PIN(1,0) | FUNC(0) | PU)
-#define GPB1_TOUT1	(PIN(1,1) | FUNC(2) | PU)
-#define GPB1_GPIO	(PIN(1,1) | FUNC(0) | PU)
-#define GPB2_TOUT2	(PIN(1,2) | FUNC(2) | PU)
-#define GPB2_GPIO	(PIN(1,2) | FUNC(0) | PU)
-#define GPB3_TOUT3	(PIN(1,3) | FUNC(2) | PU)
-#define GPB3_GPIO	(PIN(1,3) | FUNC(0) | PU)
-#define GPB4_TCLK0	(PIN(1,4) | FUNC(2) | PU)
-#define GPB4_GPIO	(PIN(1,4) | FUNC(0) | PU)
-#define GPB5_NXBACK	(PIN(1,5) | FUNC(2) | PU)
-#define GPB5_GPIO	(PIN(1,5) | FUNC(0) | PU)
-#define GPB6_NXBREQ	(PIN(1,6) | FUNC(2) | PU)
-#define GPB6_GPIO	(PIN(1,6) | FUNC(0) | PU)
-#define GPB7_NXDACK1	(PIN(1,7) | FUNC(2) | PU)
-#define GPB7_GPIO	(PIN(1,7) | FUNC(0) | PU)
-#define GPB8_NXDREQ1	(PIN(1,8) | FUNC(2) | PU)
-#define GPB8_GPIO	(PIN(1,8) | FUNC(0) | PU)
-#define GPB9_NXDACK0	(PIN(1,9) | FUNC(2) | PU)
-#define GPB9_GPIO	(PIN(1,9) | FUNC(0) | PU)
-#define GPB10_NXDREQ0	(PIN(1,10) | FUNC(2) | PU)
-#define GPB10_GPIO	(PIN(1,10) | FUNC(0) | PU)
-
-/*
- * Group 1: GPIO 64...95
- * Used GPIO: 0...15
- * These pins can also act as GPIO inputs/outputs
- */
-#define GPC0_LEND	(PIN(2,0) | FUNC(2) | PU)
-#define GPC0_GPIO	(PIN(2,0) | FUNC(0) | PU)
-#define GPC1_VCLK	(PIN(2,1) | FUNC(2) | PU)
-#define GPC1_GPIO	(PIN(2,1) | FUNC(0) | PU)
-#define GPC2_VLINE	(PIN(2,2) | FUNC(2) | PU)
-#define GPC2_GPIO	(PIN(2,2) | FUNC(0) | PU)
-#define GPC3_VFRAME	(PIN(2,3) | FUNC(2) | PU)
-#define GPC3_GPIO	(PIN(2,3) | FUNC(0) | PU)
-#define GPC4_VM		(PIN(2,4) | FUNC(2) | PU)
-#define GPC4_GPIO	(PIN(2,4) | FUNC(0) | PU)
-#define GPC5_LPCOE	(PIN(2,5) | FUNC(2) | PU)
-#define GPC5_GPIO	(PIN(2,5) | FUNC(0) | PU)
-#define GPC6_LPCREV	(PIN(2,6) | FUNC(2) | PU)
-#define GPC6_GPIO	(PIN(2,6) | FUNC(0) | PU)
-#define GPC7_LPCREVB	(PIN(2,7) | FUNC(2) | PU)
-#define GPC7_GPIO	(PIN(2,7) | FUNC(0) | PU)
-#define GPC8_VD0	(PIN(2,8) | FUNC(2) | PU)
-#define GPC8_GPIO	(PIN(2,8) | FUNC(0) | PU)
-#define GPC9_VD1	(PIN(2,9) | FUNC(2) | PU)
-#define GPC9_GPIO	(PIN(2,9) | FUNC(0) | PU)
-#define GPC10_VD2	(PIN(2,10) | FUNC(2) | PU)
-#define GPC10_GPIO	(PIN(2,10) | FUNC(0) | PU)
-#define GPC11_VD3	(PIN(2,11) | FUNC(2) | PU)
-#define GPC11_GPIO	(PIN(2,11) | FUNC(0) | PU)
-#define GPC12_VD4	(PIN(2,12) | FUNC(2) | PU)
-#define GPC12_GPIO	(PIN(2,12) | FUNC(0) | PU)
-#define GPC13_VD5	(PIN(2,13) | FUNC(2) | PU)
-#define GPC13_GPIO	(PIN(2,13) | FUNC(0) | PU)
-#define GPC14_VD6	(PIN(2,14) | FUNC(2) | PU)
-#define GPC14_GPIO	(PIN(2,14) | FUNC(0) | PU)
-#define GPC15_VD7	(PIN(2,15) | FUNC(2) | PU)
-#define GPC15_GPIO	(PIN(2,15) | FUNC(0) | PU)
-
-/*
- * Group 1: GPIO 96...127
- * Used GPIO: 0...15
- * These pins can also act as GPIO inputs/outputs
- */
-#define GPD0_VD8	(PIN(3,0) | FUNC(2) | PU)
-#define GPD0_GPIO	(PIN(3,0) | FUNC(0) | PU)
-#define GPD1_VD9	(PIN(3,1) | FUNC(2) | PU)
-#define GPD1_GPIO	(PIN(3,1) | FUNC(0) | PU)
-#define GPD2_VD10	(PIN(3,2) | FUNC(2) | PU)
-#define GPD2_GPIO	(PIN(3,2) | FUNC(0) | PU)
-#define GPD3_VD11	(PIN(3,3) | FUNC(2) | PU)
-#define GPD3_GPIO	(PIN(3,3) | FUNC(0) | PU)
-#define GPD4_VD12	(PIN(3,4) | FUNC(2) | PU)
-#define GPD4_GPIO	(PIN(3,4) | FUNC(0) | PU)
-#define GPD5_VD13	(PIN(3,5) | FUNC(2) | PU)
-#define GPD5_GPIO	(PIN(3,5) | FUNC(0) | PU)
-#define GPD6_VD14	(PIN(3,6) | FUNC(2) | PU)
-#define GPD6_GPIO	(PIN(3,6) | FUNC(0) | PU)
-#define GPD7_VD15	(PIN(3,7) | FUNC(2) | PU)
-#define GPD7_GPIO	(PIN(3,7) | FUNC(0) | PU)
-#define GPD8_VD16	(PIN(3,8) | FUNC(2) | PU)
-#define GPD8_GPIO	(PIN(3,8) | FUNC(0) | PU)
-#ifdef CONFIG_CPU_S3C2440
-# define GPD8_SPIMISO1	(PIN(3,8) | FUNC(3) | PU)
-#endif
-#define GPD9_VD17	(PIN(3,9) | FUNC(2) | PU)
-#define GPD9_GPIO	(PIN(3,9) | FUNC(0) | PU)
-#ifdef CONFIG_CPU_S3C2440
-# define GPD9_SPIMOSI1	(PIN(3,9) | FUNC(3) | PU)
-#endif
-#define GPD10_VD18	(PIN(3,10) | FUNC(2) | PU)
-#define GPD10_GPIO	(PIN(3,10) | FUNC(0) | PU)
-#ifdef CONFIG_CPU_S3C2440
-# define GPD10_SPICLK	(PIN(3,10) | FUNC(3) | PU)
-#endif
-#define GPD11_VD19	(PIN(3,11) | FUNC(2) | PU)
-#define GPD11_GPIO	(PIN(3,11) | FUNC(0) | PU)
-#define GPD12_VD20	(PIN(3,12) | FUNC(2) | PU)
-#define GPD12_GPIO	(PIN(3,12) | FUNC(0) | PU)
-#define GPD13_VD21	(PIN(3,13) | FUNC(2) | PU)
-#define GPD13_GPIO	(PIN(3,13) | FUNC(0) | PU)
-#define GPD14_VD22	(PIN(3,14) | FUNC(2) | PU)
-#define GPD14_GPIO	(PIN(3,14) | FUNC(0) | PU)
-#define GPD14_NSS1	(PIN(3,14) | FUNC(3) | PU)
-#define GPD15_VD23	(PIN(3,15) | FUNC(2) | PU)
-#define GPD15_GPIO	(PIN(3,15) | FUNC(0) | PU)
-#define GPD15_NSS0	(PIN(3,15) | FUNC(3) | PU)
-
-/*
- * Group 1: GPIO 128...159
- * Used GPIO: 0...15
- * These pins can also act as GPIO inputs/outputs
- */
-#define GPE0_I2SLRCK	(PIN(4,0) | FUNC(2) | PU)
-#ifdef CONFIG_CPU_S3C2440
-# define GPE0_AC_SYNC	(PIN(4,0) | FUNC(3) | PU)
-#endif
-#define GPE0_GPIO	(PIN(4,0) | FUNC(0) | PU)
-#define GPE1_I2SSCLK	(PIN(4,1) | FUNC(2) | PU)
-#ifdef CONFIG_CPU_S3C2440
-# define GPE1_AC_BIT_CLK (PIN(4,1) | FUNC(3) | PU)
-#endif
-#define GPE1_GPIO	(PIN(4,1) | FUNC(0) | PU)
-#define GPE2_CDCLK	(PIN(4,2) | FUNC(2) | PU)
-#ifdef CONFIG_CPU_S3C2440
-# define GPE2_AC_NRESET	(PIN(4,2) | FUNC(3) | PU)
-#endif
-#define GPE2_GPIO	(PIN(4,2) | FUNC(0) | PU)
-#define GPE3_I2SDI	(PIN(4,3) | FUNC(2) | PU)
-#ifdef CONFIG_CPU_S3C2440
-# define GPE3_AC_SDATA_IN (PIN(4,3) | FUNC(3) | PU)
-#endif
-#ifdef CONFIG_CPU_S3C2410
-# define GPE_NSS0	(PIN(4,3) | FUNC(3) | PU)
-#endif
-#define GPE3_GPIO	(PIN(4,3) | FUNC(0) | PU)
-#define GPE4_I2SDO	(PIN(4,4) | FUNC(2) | PU)
-#ifdef CONFIG_CPU_S3C2440
-# define GPE4_AC_SDATA_OUT (PIN(4,4) | FUNC(3) | PU)
-#endif
-#ifdef CONFIG_CPU_S3C2440
-# define GPE4_I2SSDI	(PIN(4,4) | FUNC(3) | PU)
-#endif
-#define GPE4_GPIO	(PIN(4,4) | FUNC(0) | PU)
-#define GPE5_SDCLK	(PIN(4,5) | FUNC(2) | PU)
-#define GPE5_GPIO	(PIN(4,5) | FUNC(0) | PU)
-#define GPE6_SDCMD	(PIN(4,6) | FUNC(2) | PU)
-#define GPE6_GPIO	(PIN(4,6) | FUNC(0) | PU)
-#define GPE7_SDDAT0	(PIN(4,7) | FUNC(2) | PU)
-#define GPE7_GPIO	(PIN(4,7) | FUNC(0) | PU)
-#define GPE8_SDDAT1	(PIN(4,8) | FUNC(2) | PU)
-#define GPE8_GPIO	(PIN(4,8) | FUNC(0) | PU)
-#define GPE9_SDDAT2	(PIN(4,9) | FUNC(2) | PU)
-#define GPE9_GPIO	(PIN(4,9) | FUNC(0) | PU)
-#define GPE10_SDDAT3	(PIN(4,10) | FUNC(2) | PU)
-#define GPE10_GPIO	(PIN(4,10) | FUNC(0) | PU)
-#define GPE11_SPIMISO0	(PIN(4,11) | FUNC(2) | PU)
-#define GPE11_GPIO	(PIN(4,11) | FUNC(0) | PU)
-#define GPE12_SPIMOSI0	(PIN(4,12) | FUNC(2) | PU)
-#define GPE12_GPIO	(PIN(4,12) | FUNC(0) | PU)
-#define GPE13_SPICLK0	(PIN(4,13) | FUNC(2) | PU)
-#define GPE13_GPIO	(PIN(4,13) | FUNC(0) | PU)
-#define GPE14_IICSCL	(PIN(4,14) | FUNC(2))	/* no pullup option */
-#define GPE14_GPIO	(PIN(4,14) | FUNC(0))	/* no pullup option */
-#define GPE15_IICSDA	(PIN(4,15) | FUNC(2))	/* no pullup option */
-#define GPE15_GPIO	(PIN(4,15) | FUNC(0))	/* no pullup option */
-
-/*
- * Group 1: GPIO 160...191
- * Used GPIO: 0...7
- * These pins can also act as GPIO inputs/outputs
- */
-#define GPF0_EINT0	(PIN(5,0) | FUNC(2) | PU)
-#define GPF0_GPIO	(PIN(5,0) | FUNC(0) | PU)
-#define GPF1_EINT1	(PIN(5,1) | FUNC(2) | PU)
-#define GPF1_GPIO	(PIN(5,1) | FUNC(0) | PU)
-#define GPF2_EINT2	(PIN(5,2) | FUNC(2) | PU)
-#define GPF2_GPIO	(PIN(5,2) | FUNC(0) | PU)
-#define GPF3_EINT3	(PIN(5,3) | FUNC(2) | PU)
-#define GPF3_GPIO	(PIN(5,3) | FUNC(0) | PU)
-#define GPF4_EINT4	(PIN(5,4) | FUNC(2) | PU)
-#define GPF4_GPIO	(PIN(5,4) | FUNC(0) | PU)
-#define GPF5_EINT5	(PIN(5,5) | FUNC(2) | PU)
-#define GPF5_GPIO	(PIN(5,5) | FUNC(0) | PU)
-#define GPF6_EINT6	(PIN(5,6) | FUNC(2) | PU)
-#define GPF6_GPIO	(PIN(5,6) | FUNC(0) | PU)
-#define GPF7_EINT7	(PIN(5,7) | FUNC(2) | PU)
-#define GPF7_GPIO	(PIN(5,7) | FUNC(0) | PU)
-
-/*
- * Group 1: GPIO 192..223
- * Used GPIO: 0...15
- * These pins can also act as GPIO inputs/outputs
- */
-#define GPG0_EINT8	(PIN(6,0) | FUNC(2) | PU)
-#define GPG0_GPIO	(PIN(6,0) | FUNC(0) | PU)
-#define GPG1_EINT9	(PIN(6,1) | FUNC(2) | PU)
-#define GPG1_GPIO	(PIN(6,1) | FUNC(0) | PU)
-#define GPG2_EINT10	(PIN(6,2) | FUNC(2) | PU)
-#define GPG2_NSS0	(PIN(6,2) | FUNC(3) | PU)
-#define GPG2_GPIO	(PIN(6,2) | FUNC(0) | PU)
-#define GPG3_EINT11	(PIN(6,3) | FUNC(2) | PU)
-#define GPG3_NSS1	(PIN(6,3) | FUNC(3) | PU)
-#define GPG3_GPIO	(PIN(6,3) | FUNC(0) | PU)
-#define GPG4_EINT12	(PIN(6,4) | FUNC(2) | PU)
-#define GPG4_LCD_PWREN	(PIN(6,4) | FUNC(3) | PU)
-#define GPG4_GPIO	(PIN(6,4) | FUNC(0) | PU)
-#define GPG5_EINT13	(PIN(6,5) | FUNC(2) | PU)
-#define GPG5_SPIMISO1	(PIN(6,5) | FUNC(3) | PU)
-#define GPG5_GPIO	(PIN(6,5) | FUNC(0) | PU)
-#define GPG6_EINT14	(PIN(6,6) | FUNC(2) | PU)
-#define GPG6_SPIMOSI1	(PIN(6,6) | FUNC(3) | PU)
-#define GPG6_GPIO	(PIN(6,6) | FUNC(0) | PU)
-#define GPG7_EINT15	(PIN(6,7) | FUNC(2) | PU)
-#define GPG7_SPICLK1	(PIN(6,7) | FUNC(3) | PU)
-#define GPG7_GPIO	(PIN(6,7) | FUNC(0) | PU)
-#define GPG8_EINT16	(PIN(6,8) | FUNC(2) | PU)
-#define GPG8_GPIO	(PIN(6,8) | FUNC(0) | PU)
-#define GPG9_EINT17	(PIN(6,9) | FUNC(2) | PU)
-#ifdef CONFIG_CPU_S3C2440
-# define GPG9_NRTS1	(PIN(6,9) | FUNC(3) | PU)
-#endif
-#define GPG9_GPIO	(PIN(6,9) | FUNC(0) | PU)
-#define GPG10_EINT18	(PIN(6,10) | FUNC(2) | PU)
-#ifdef CONFIG_CPU_S3C2440
-# define GPG10_NCTS1	(PIN(6,10) | FUNC(3) | PU)
-#endif
-#define GPG10_GPIO	(PIN(6,10) | FUNC(0) | PU)
-#define GPG11_EINT19	(PIN(6,11) | FUNC(2) | PU)
-#define GPG11_TCLK	(PIN(6,11) | FUNC(3) | PU)
-#define GPG11_GPIO	(PIN(6,11) | FUNC(0) | PU)
-#define GPG12_EINT20	(PIN(6,12) | FUNC(2) | PU)
-#ifdef CONFIG_CPU_S3C2410
-# define GPG12_XMON	(PIN(6,12) | FUNC(3) | PU)
-#endif
-#define GPG12_GPIO	(PIN(6,12) | FUNC(0) | PU)
-#define GPG13_EINT21	(PIN(6,13) | FUNC(2) | PU)
-#ifdef CONFIG_CPU_S3C2410
-# define GPG13_NXPON	(PIN(6,13) | FUNC(3) | PU)
-#endif
-#define GPG13_GPIO	(PIN(6,13) | FUNC(0) | PU)	/* must be input in NAND boot mode */
-#define GPG14_EINT22	(PIN(6,14) | FUNC(2) | PU)
-#ifdef CONFIG_CPU_S3C2410
-# define GPG14_YMON	(PIN(6,14) | FUNC(3) | PU)
-#endif
-#define GPG14_GPIO	(PIN(6,14) | FUNC(0) | PU)	/* must be input in NAND boot mode */
-#define GPG15_EINT23	(PIN(6,15) | FUNC(2) | PU)
-#ifdef CONFIG_CPU_S3C2410
-# define GPG15_YPON	(PIN(6,15) | FUNC(3) | PU)
-#endif
-#define GPG15_GPIO	(PIN(6,15) | FUNC(0) | PU)	/* must be input in NAND boot mode */
-
-/*
- * Group 1: GPIO 224..255
- * Used GPIO: 0...15
- * These pins can also act as GPIO inputs/outputs
- */
-#define GPH0_NCTS0	(PIN(7,0) | FUNC(2) | PU)
-#define GPH0_GPIO	(PIN(7,0) | FUNC(0) | PU)
-#define GPH1_NRTS0	(PIN(7,1) | FUNC(2) | PU)
-#define GPH1_GPIO	(PIN(7,1) | FUNC(0) | PU)
-#define GPH2_TXD0	(PIN(7,2) | FUNC(2) | PU)
-#define GPH2_GPIO	(PIN(7,2) | FUNC(0) | PU)
-#define GPH3_RXD0	(PIN(7,3) | FUNC(2) | PU)
-#define GPH3_GPIO	(PIN(7,3) | FUNC(0) | PU)
-#define GPH4_TXD1	(PIN(7,4) | FUNC(2) | PU)
-#define GPH4_GPIO	(PIN(7,4) | FUNC(0) | PU)
-#define GPH5_RXD1	(PIN(7,5) | FUNC(2) | PU)
-#define GPH5_GPIO	(PIN(7,5) | FUNC(0) | PU)
-#define GPH6_TXD2	(PIN(7,6) | FUNC(2) | PU)
-#define GPH6_NRTS1	(PIN(7,6) | FUNC(3) | PU)
-#define GPH6_GPIO	(PIN(7,6) | FUNC(0) | PU)
-#define GPH7_RXD2	(PIN(7,7) | FUNC(2) | PU)
-#define GPH7_NCTS1	(PIN(7,7) | FUNC(3) | PU)
-#define GPH7_GPIO	(PIN(7,7) | FUNC(0) | PU)
-#define GPH8_UEXTCLK	(PIN(7,8) | FUNC(2) | PU)
-#define GPH8_GPIO	(PIN(7,8) | FUNC(0) | PU)
-#define GPH9_CLOCKOUT0	(PIN(7,9) | FUNC(2) | PU)
-#define GPH9_GPIO	(PIN(7,9) | FUNC(0) | PU)
-#define GPH10_CLKOUT1	(PIN(7,10) | FUNC(2) | PU)
-#define GPH10_GPIO	(PIN(7,10) | FUNC(0) | PU)
-
-#ifdef CONFIG_CPU_S3C2440
-/*
- * Group 1: GPIO 256..287
- * Used GPIO: 0...12
- * These pins can also act as GPIO inputs/outputs
- */
-#define GPJ0_CAMDATA0	(PIN(8,0) | FUNC(2) | PU)
-#define GPJ0_GPIO	(PIN(8,0) | FUNC(0) | PU)
-#define GPJ1_CAMDATA1	(PIN(8,1) | FUNC(2) | PU)
-#define GPJ1_GPIO	(PIN(8,1) | FUNC(0) | PU)
-#define GPJ2_CAMDATA2	(PIN(8,2) | FUNC(2) | PU)
-#define GPJ2_GPIO	(PIN(8,2) | FUNC(0) | PU)
-#define GPJ3_CAMDATA3	(PIN(8,3) | FUNC(2) | PU)
-#define GPJ3_GPIO	(PIN(8,3) | FUNC(0) | PU)
-#define GPJ4_CAMDATA4	(PIN(8,4) | FUNC(2) | PU)
-#define GPJ4_GPIO	(PIN(8,4) | FUNC(0) | PU)
-#define GPJ5_CAMDATA5	(PIN(8,5) | FUNC(2) | PU)
-#define GPJ5_GPIO	(PIN(8,5) | FUNC(0) | PU)
-#define GPJ6_CAMDATA6	(PIN(8,6) | FUNC(2) | PU)
-#define GPJ6_GPIO	(PIN(8,6) | FUNC(0) | PU)
-#define GPJ7_CAMDATA7	(PIN(8,7) | FUNC(2) | PU)
-#define GPJ7_GPIO	(PIN(8,7) | FUNC(0) | PU)
-#define GPJ8_CAMPCLK	(PIN(8,8) | FUNC(2) | PU)
-#define GPJ8_GPIO	(PIN(8,8) | FUNC(0) | PU)
-#define GPJ9_CAMVSYNC	(PIN(8,9) | FUNC(2) | PU)
-#define GPJ9_GPIO	(PIN(8,9) | FUNC(0) | PU)
-#define GPJ10_CAMHREF	(PIN(8,10) | FUNC(2) | PU)
-#define GPJ10_GPIO	(PIN(8,10) | FUNC(0) | PU)
-#define GPJ11_CAMCLKOUT	(PIN(8,11) | FUNC(2) | PU)
-#define GPJ11_GPIO	(PIN(8,11) | FUNC(0) | PU)
-#define GPJ12_CAMRESET	(PIN(8,12) | FUNC(0) | PU)
-#define GPJ12_GPIO	(PIN(8,12) | FUNC(0) | PU)
-
-#endif
-
-#endif /* __MACH_IOMUX_S3C24x0_H */
diff --git a/arch/arm/mach-samsung/include/mach/iomux-s3c64xx.h b/arch/arm/mach-samsung/include/mach/iomux-s3c64xx.h
deleted file mode 100644
index 5d68b71ae7..0000000000
--- a/arch/arm/mach-samsung/include/mach/iomux-s3c64xx.h
+++ /dev/null
@@ -1,542 +0,0 @@
-/*
- * Copyright (C) 2012 Juergen Beisert
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-
-#ifndef __MACH_IOMUX_S3C64XX_H
-# define __MACH_IOMUX_S3C64XX_H
-
-/* 3322222222221111111111
- * 10987654321098765432109876543210
- *                           ^^^^^^_ Bit offset
- *                      ^^^^^_______ Group Number
- *                  ^^^^____________ Function
- *                 ^________________ initial GPIO out value
- *                ^_________________ Pull up/down feature present
- *              ^^__________________ initial pull up/down setting
- */
-
-#define PIN(group,bit) ((group << 6) + bit)
-#define FUNC(x) (((x) & 0xf) << 11)
-#define GET_FUNC(x) (((x) >> 11) & 0xf)
-#define GET_GROUP(x) (((x) >> 6) & 0x1f)
-#define GET_BIT(x) ((x) & 0x3f)
-#define GET_GPIOVAL(x) (!!((x) & (1 << 15)))
-#define GPIO_OUT (1 << 11)
-#define GPIO_IN (0 << 11)
-#define GPIO_VAL(x) ((!!(x)) << 15)
-#define PUD_MASK 0x3
-#define PUD (1 << 16)
-#define PUD_PRESENT(x) (!!((x) & (1 << 16)))
-#define DISABLE_PUD (0 << 17)
-#define ENABLE_PU (2 << 17)
-#define ENABLE_PD (1 << 17)
-#define GET_PUD(x) (((x) >> 17) & PUD_MASK)
-
-/*
- * To have a chance for simple GPIO manipulation routines
- * define the GPIO numbers with a real simple scheme.
- *
- * Keep in mind: The 'GPIO_2_NO' creates a value to be used with the real gpio
- * routines and *not* for the multiplexer routines!
- */
-#define GPIO_2_NO(x,y) (PIN(x,y))
-
-/*
- * Group A: GPIO 0...7
- * Used GPIO: 0...7
- * These pins can also act as GPIO outputs
- */
-#define GPA0		(PIN(0,0) | PUD)
-#define GPA0_GPIO	(GPA0 | FUNC(0))
-#define GPA0_RXD0	(GPA0 | FUNC(2))
-#define GPA1		(PIN(0,4) | PUD)
-#define GPA1_GPIO	(GPA1 | FUNC(0))
-#define GPA1_TXD0	(GPA1 | FUNC(2))
-#define GPA2		(PIN(0,8) | PUD)
-#define GPA2_GPIO	(GPA2 | FUNC(0))
-#define GPA2_NCTS0	(GPA2 | FUNC(2))
-#define GPA3		(PIN(0,12) | PUD)
-#define GPA3_GPIO	(GPA3 | FUNC(0))
-#define GPA3_NRTS0	(GPA3 | FUNC(2))
-#define GPA4		(PIN(0,16) | PUD)
-#define GPA4_GPIO	(GPA4 | FUNC(0))
-#define GPA4_RXD1	(GPA4 | FUNC(2))
-#define GPA5		(PIN(0,20) | PUD)
-#define GPA5_GPIO	(GPA5 | FUNC(0))
-#define GPA5_TXD1	(GPA5 | FUNC(2))
-#define GPA6		(PIN(0,24) | PUD)
-#define GPA6_GPIO	(GPA6 | FUNC(0))
-#define GPA6_NCTS1	(GPA6 | FUNC(2))
-#define GPA7		(PIN(0,28) | PUD)
-#define GPA7_GPIO	(GPA7 | FUNC(0))
-#define GPA7_NRTS1	(GPA7 | FUNC(2))
-
-/*
- * Group B: GPIO 0...7
- * Used GPIO: 8...15
- * These pins can also act as GPIO outputs
- */
-#define GPB0		(PIN(1,0) | PUD)
-#define GPB0_GPIO	(GPB0 | FUNC(0))
-#define GPB0_RXD2	(GPB0 | FUNC(2))
-#define GPB0_DMAREQ	(GPB0 | FUNC(3))
-#define GPB0_IRDA_RXD	(GPB0 | FUNC(4))
-#define GPB0_ADDR_CF0	(GPB0 | FUNC(5))
-#define GPB1		(PIN(1,4) | PUD)
-#define GPB1_GPIO	(GPB1 | FUNC(0))
-#define GPB1_TXD2	(GPB1 | FUNC(2))
-#define GPB1_DMAREQ	(GPB1 | FUNC(3))
-#define GPB1_IRDA_TXD	(GPB1 | FUNC(4))
-#define GPB1_ADDR_CF1	(GPB1 | FUNC(5))
-#define GPB2		(PIN(1,8) | PUD)
-#define GPB2_GPIO	(GPB2 | FUNC(0))
-#define GPB2_RXD3	(GPB2 | FUNC(2))
-#define GPB2_IRDA_RXD	(GPB2 | FUNC(3))
-#define GPB2_DMAREQ	(GPB2 | FUNC(4))
-#define GPB2_ADDR_CF2	(GPB2 | FUNC(5))
-#define GPB2_IIC1_SCL	(GPB2 | FUNC(6))
-#define GPB3		(PIN(1,12) | PUD)
-#define GPB3_GPIO	(GPB3 | FUNC(0))
-#define GPB3_TXD3	(GPB3 | FUNC(2))
-#define GPB3_IRDA_TXD	(GPB3 | FUNC(3))
-#define GPB3_DMAREQ	(GPB3 | FUNC(4))
-#define GPB3_IIC1_SDA	(GPB3 | FUNC(6))
-#define GPB4		(PIN(1,16) | PUD)
-#define GPB4_GPIO	(GPB4 | FUNC(0))
-#define GPB4_SDBW	(GPB4 | FUNC(2))
-#define GPB4_CAM_FLD	(GPB4 | FUNC(3))
-#define GPB4_CF_DIR	(GPB4 | FUNC(4))
-#define GPB5		(PIN(1,20) | PUD)
-#define GPB5_GPIO	(GPB5 | FUNC(0))
-#define GPB5_IIC0_SCL	(GPB5 | FUNC(2))
-#define GPB6		(PIN(1,24) | PUD)
-#define GPB6_GPIO	(GPB6 | FUNC(0))
-#define GPB6_IIC0_SDA	(GPB6 | FUNC(2))
-
-#define GPC0		(PIN(2,0) | PUD)
-#define GPC0_GPIO	(GPC0 | FUNC(0))
-#define GPC0_SPI0_MISO	(GPC0 | FUNC(2))
-#define GPC1		(PIN(2,4) | PUD)
-#define GPC1_GPIO	(GPC1 | FUNC(0))
-#define GPC1_SPI0_CLK	(GPC1 | FUNC(2))
-#define GPC2		(PIN(2,8) | PUD)
-#define GPC2_GPIO	(GPC2 | FUNC(0))
-#define GPC2_SPI0_MOSI	(GPC2 | FUNC(2))
-#define GPC3		(PIN(2,12) | PUD)
-#define GPC3_GPIO	(GPC3 | FUNC(0))
-#define GPC3_SPI0_NCS	(GPC3 | FUNC(2))
-#define GPC4		(PIN(2,16) | PUD)
-#define GPC4_GPIO	(GPC4 | FUNC(0))
-#define GPC4_SPI1_MISO	(GPC4 | FUNC(2))
-#define GPC5		(PIN(2,20) | PUD)
-#define GPC5_GPIO	(GPC5 | FUNC(0))
-#define GPC5_SPI1_CLK	(GPC5 | FUNC(2))
-#define GPC6		(PIN(2,24) | PUD)
-#define GPC6_GPIO	(GPC6 | FUNC(0))
-#define GPC6_SPI1_MOSI	(GPC6 | FUNC(2))
-#define GPC7		(PIN(2,28) | PUD)
-#define GPC7_GPIO	(GPC7 | FUNC(0))
-#define GPC7_SPI1_NCS	(GPC7 | FUNC(2))
-
-#define GPD0		(PIN(3,0) | PUD)
-#define GPD0_AC97_BITCLK (GPD0 | FUNC(4))
-#define GPD1		(PIN(3,4) | PUD)
-#define GPD1_AC97_NRST	(GPD1 | FUNC(4))
-#define GPD2		(PIN(3,8) | PUD)
-#define GPD2_AC97_SYNC	(GPD2 | FUNC(4))
-#define GPD3		(PIN(3,12) | PUD)
-#define GPD3_AC97_SDI	(GPD3 | FUNC(4))
-#define GPD4		(PIN(3,16) | PUD)
-#define GPD4_AC97_SDO	(GPD4 | FUNC(4))
-
-#define GPE0		(PIN(4,0) | PUD)
-#define GPE0_GPIO	(GPE0 | FUNC(0))
-#define GPE1		(PIN(4,4) | PUD)
-#define GPE1_GPIO	(GPE1 | FUNC(0))
-#define GPE2		(PIN(4,8) | PUD)
-#define GPE2_GPIO	(GPE2 | FUNC(0))
-#define GPE3		(PIN(4,12) | PUD)
-#define GPE3_GPIO	(GPE3 | FUNC(0))
-#define GPE4		(PIN(4,16) | PUD)
-#define GPE4_GPIO	(GPE4 | FUNC(0))
-
-#define GPF0		(PIN(5,0) | PUD)
-#define GPF0_GPIO	(GPF0 | FUNC(0))
-#define GPF1		(PIN(5,2) | PUD)
-#define GPF1_GPIO	(GPF1 | FUNC(0))
-#define GPF2		(PIN(5,4) | PUD)
-#define GPF2_GPIO	(GPF2 | FUNC(0))
-#define GPF3		(PIN(5,6) | PUD)
-#define GPF3_GPIO	(GPF3 | FUNC(0))
-#define GPF4		(PIN(5,8) | PUD)
-#define GPF4_GPIO	(GPF4 | FUNC(0))
-#define GPF5		(PIN(5,10) | PUD)
-#define GPF5_GPIO	(GPF5 | FUNC(0))
-#define GPF6		(PIN(5,12) | PUD)
-#define GPF6_GPIO	(GPF6 | FUNC(0))
-#define GPF7		(PIN(5,14) | PUD)
-#define GPF7_GPIO	(GPF7 | FUNC(0))
-#define GPF8		(PIN(5,16) | PUD)
-#define GPF8_GPIO	(GPF8 | FUNC(0))
-#define GPF9		(PIN(5,18) | PUD)
-#define GPF9_GPIO	(GPF9 | FUNC(0))
-#define GPF10		(PIN(5,20) | PUD)
-#define GPF10_GPIO	(GPF10 | FUNC(0))
-#define GPF11		(PIN(5,22) | PUD)
-#define GPF11_GPIO	(GPF11 | FUNC(0))
-#define GPF12		(PIN(5,24) | PUD)
-#define GPF12_GPIO	(GPF12 | FUNC(0))
-#define GPF13		(PIN(5,26) | PUD)
-#define GPF13_GPIO	(GPF13 | FUNC(0))
-#define GPF14		(PIN(5,28) | PUD)
-#define GPF14_GPIO	(GPF14 | FUNC(0))
-#define GPF14_PWM0	(GPF14 | FUNC(2))
-#define GPF14_CLKOUT	(GPF14 | FUNC(3))
-#define GPF15		(PIN(5,30) | PUD)
-#define GPF15_GPIO	(GPF15 | FUNC(0))
-#define GPF15_PWM1	(GPF15 | FUNC(2))
-
-#define GPG0		(PIN(6,0) | PUD)
-#define GPG0_MMC0_CLK	(GPG0 | FUNC(2))
-#define GPG1		(PIN(6,4) | PUD)
-#define GPG1_MMC0_CMD	(GPG1 | FUNC(2))
-#define GPG2		(PIN(6,8) | PUD)
-#define GPG2_MMC0_DAT0	(GPG2 | FUNC(2))
-#define GPG3		(PIN(6,12) | PUD)
-#define GPG3_MMC0_DAT1	(GPG3 | FUNC(2))
-#define GPG4		(PIN(6,16) | PUD)
-#define GPG4_MMC0_DAT2	(GPG4 | FUNC(2))
-#define GPG5		(PIN(6,20) | PUD)
-#define GPG5_MMC0_DAT3	(GPG5 | FUNC(2))
-#define GPG6		(PIN(6,24) | PUD)
-#define GPG6_MMC0_NCD	(GPG6 | FUNC(2))
-
-#define GPH0		(PIN(7,0) | PUD)
-#define GPH0_GPIO	(GPH0 | FUNC(0))
-#define GPH1		(PIN(7,4) | PUD)
-#define GPH1_GPIO	(GPH1 | FUNC(0))
-#define GPH2		(PIN(7,8) | PUD)
-#define GPH2_GPIO	(GPH2 | FUNC(0))
-#define GPH3		(PIN(7,12) | PUD)
-#define GPH3_GPIO	(GPH3 | FUNC(0))
-#define GPH4		(PIN(7,16) | PUD)
-#define GPH4_GPIO	(GPH4 | FUNC(0))
-#define GPH5		(PIN(7,20) | PUD)
-#define GPH5_GPIO	(GPH5 | FUNC(0))
-#define GPH6		(PIN(7,24) | PUD)
-#define GPH6_GPIO	(GPH6 | FUNC(0))
-#define GPH7		(PIN(7,28) | PUD)
-#define GPH7_GPIO	(GPH7 | FUNC(0))
-#define GPH8		(PIN(7,32) | PUD)
-#define GPH8_GPIO	(GPH8 | FUNC(0))
-#define GPH9		(PIN(7,36) | PUD)
-#define GPH9_GPIO	(GPH9 | FUNC(0))
-
-#define GPI0		(PIN(8,0) | PUD)
-#define GPI0_GPIO	(GPI0 | FUNC(0))
-#define GPI1		(PIN(8,2) | PUD)
-#define GPI1_GPIO	(GPI1 | FUNC(0))
-#define GPI2		(PIN(8,4) | PUD)
-#define GPI2_GPIO	(GPI2 | FUNC(0))
-#define GPI3		(PIN(8,6) | PUD)
-#define GPI3_GPIO	(GPI3 | FUNC(0))
-#define GPI4		(PIN(8,8) | PUD)
-#define GPI4_GPIO	(GPI4 | FUNC(0))
-#define GPI5		(PIN(8,10) | PUD)
-#define GPI5_GPIO	(GPI5 | FUNC(0))
-#define GPI6		(PIN(8,12) | PUD)
-#define GPI6_GPIO	(GPI6 | FUNC(0))
-#define GPI7		(PIN(8,14) | PUD)
-#define GPI7_GPIO	(GPI7 | FUNC(0))
-#define GPI8		(PIN(8,16) | PUD)
-#define GPI8_GPIO	(GPI8 | FUNC(0))
-#define GPI9		(PIN(8,18) | PUD)
-#define GPI9_GPIO	(GPI9 | FUNC(0))
-#define GPI10		(PIN(8,20) | PUD)
-#define GPI10_GPIO	(GPI10 | FUNC(0))
-#define GPI11		(PIN(8,22) | PUD)
-#define GPI11_GPIO	(GPI11 | FUNC(0))
-#define GPI12		(PIN(8,24) | PUD)
-#define GPI12_GPIO	(GPI12 | FUNC(0))
-#define GPI13		(PIN(8,26) | PUD)
-#define GPI13_GPIO	(GPI13 | FUNC(0))
-#define GPI14		(PIN(8,28) | PUD)
-#define GPI14_GPIO	(GPI14 | FUNC(0))
-#define GPI15		(PIN(8,30) | PUD)
-#define GPI15_GPIO	(GPI15 | FUNC(0))
-
-#define GPJ0		(PIN(9,0) | PUD)
-#define GPJ0_GPIO	(GPJ0 | FUNC(0))
-#define GPJ1		(PIN(9,2) | PUD)
-#define GPJ1_GPIO	(GPJ1 | FUNC(0))
-#define GPJ2		(PIN(9,4) | PUD)
-#define GPJ2_GPIO	(GPJ2 | FUNC(0))
-#define GPJ3		(PIN(9,6) | PUD)
-#define GPJ3_GPIO	(GPJ3 | FUNC(0))
-#define GPJ4		(PIN(9,8) | PUD)
-#define GPJ4_GPIO	(GPJ4 | FUNC(0))
-#define GPJ5		(PIN(9,10) | PUD)
-#define GPJ5_GPIO	(GPJ5 | FUNC(0))
-#define GPJ6		(PIN(9,12) | PUD)
-#define GPJ6_GPIO	(GPJ6 | FUNC(0))
-#define GPJ7		(PIN(9,14) | PUD)
-#define GPJ7_GPIO	(GPJ7 | FUNC(0))
-#define GPJ8		(PIN(9,16) | PUD)
-#define GPJ8_GPIO	(GPJ8 | FUNC(0))
-#define GPJ9		(PIN(9,18) | PUD)
-#define GPJ9_GPIO	(GPJ9 | FUNC(0))
-#define GPJ10		(PIN(9,20) | PUD)
-#define GPJ10_GPIO	(GPJ10 | FUNC(0))
-#define GPJ11		(PIN(9,22) | PUD)
-#define GPJ11_GPIO	(GPJ11 | FUNC(0))
-
-#define GPK0		(PIN(10,0) | PUD)
-#define GPK0_DATA0	(GPK0 | FUNC(2))
-#define GPK0_GPIO	(GPK0 | FUNC(0))
-#define GPK1		(PIN(10,4) | PUD)
-#define GPK1_DATA1	(GPK1 | FUNC(2))
-#define GPK1_GPIO	(GPK1 | FUNC(0))
-#define GPK2		(PIN(10,8) | PUD)
-#define GPK2_DATA2	(GPK2 | FUNC(2))
-#define GPK2_GPIO	(GPK2 | FUNC(0))
-#define GPK3		(PIN(10,12) | PUD)
-#define GPK3_DATA3	(GPK3 | FUNC(2))
-#define GPK3_GPIO	(GPK3 | FUNC(0))
-#define GPK4		(PIN(10,16) | PUD)
-#define GPK4_DATA4	(GPK4 | FUNC(2))
-#define GPK4_GPIO	(GPK4 | FUNC(0))
-#define GPK5		(PIN(10,20) | PUD)
-#define GPK5_DATA5	(GPK5 | FUNC(2))
-#define GPK5_GPIO	(GPK5 | FUNC(0))
-#define GPK6		(PIN(10,24) | PUD)
-#define GPK6_DATA6	(GPK6 | FUNC(2))
-#define GPK6_GPIO	(GPK6 | FUNC(0))
-#define GPK7		(PIN(10,28) | PUD)
-#define GPK7_DATA7	(GPK7 | FUNC(2))
-#define GPK7_GPIO	(GPK7 | FUNC(0))
-#define GPK8		(PIN(10,32) | PUD)
-#define GPK8_DATA8	(GPK8 | FUNC(2))
-#define GPK8_GPIO	(GPK8 | FUNC(0))
-#define GPK9		(PIN(10,36) | PUD)
-#define GPK9_DATA9	(GPK9 | FUNC(2))
-#define GPK9_GPIO	(GPK9 | FUNC(0))
-#define GPK10		(PIN(10,40) | PUD)
-#define GPK10_DATA10	(GPK10 | FUNC(2))
-#define GPK10_GPIO	(GPK10 | FUNC(0))
-#define GPK11		(PIN(10,44) | PUD)
-#define GPK11_DATA11	(GPK11 | FUNC(2))
-#define GPK11_GPIO	(GPK11 | FUNC(0))
-#define GPK12		(PIN(10,48) | PUD)
-#define GPK12_DATA12	(GPK12 | FUNC(2))
-#define GPK12_GPIO	(GPK12 | FUNC(0))
-#define GPK13		(PIN(10,52) | PUD)
-#define GPK13_DATA13	(GPK13 | FUNC(2))
-#define GPK13_GPIO	(GPK13 | FUNC(0))
-#define GPK14		(PIN(10,56) | PUD)
-#define GPK14_DATA14	(GPK14 | FUNC(2))
-#define GPK14_GPIO	(GPK14 | FUNC(0))
-#define GPK15		(PIN(10,60) | PUD)
-#define GPK15_DATA15	(GPK15 | FUNC(2))
-#define GPK15_GPIO	(GPK15 | FUNC(0))
-
-#define GPL0		(PIN(11,0) | PUD)
-#define GPL0_ADDR0	(GPL0 | FUNC(2))
-#define GPL0_GPIO	(GPL0 | FUNC(0))
-#define GPL1		(PIN(11,4) | PUD)
-#define GPL1_ADDR1	(GPL1 | FUNC(2))
-#define GPL1_GPIO	(GPL1 | FUNC(0))
-#define GPL2		(PIN(11,8) | PUD)
-#define GPL2_ADDR2	(GPL2 | FUNC(2))
-#define GPL2_GPIO	(GPL2 | FUNC(0))
-#define GPL3		(PIN(11,12) | PUD)
-#define GPL3_ADDR3	(GPL3 | FUNC(2))
-#define GPL3_GPIO	(GPL3 | FUNC(0))
-#define GPL4		(PIN(11,16) | PUD)
-#define GPL4_ADDR3	(GPL4 | FUNC(2))
-#define GPL4_GPIO	(GPL4 | FUNC(0))
-#define GPL5		(PIN(11,20) | PUD)
-#define GPL5_ADDR3	(GPL5 | FUNC(2))
-#define GPL5_GPIO	(GPL5 | FUNC(0))
-#define GPL6		(PIN(11,24) | PUD)
-#define GPL6_ADDR3	(GPL6 | FUNC(2))
-#define GPL6_GPIO	(GPL6 | FUNC(0))
-#define GPL7		(PIN(11,28) | PUD)
-#define GPL7_ADDR3	(GPL7 | FUNC(2))
-#define GPL7_GPIO	(GPL7 | FUNC(0))
-#define GPL8		(PIN(11,32) | PUD)
-#define GPL8_ADDR3	(GPL8 | FUNC(2))
-#define GPL8_GPIO	(GPL8 | FUNC(0))
-#define GPL9		(PIN(11,36) | PUD)
-#define GPL9_ADDR3	(GPL9 | FUNC(2))
-#define GPL9_GPIO	(GPL9 | FUNC(0))
-#define GPL10		(PIN(11,40) | PUD)
-#define GPL10_ADDR3	(GPL10 | FUNC(2))
-#define GPL10_GPIO	(GPL10 | FUNC(0))
-#define GPL11		(PIN(11,44) | PUD)
-#define GPL11_ADDR3	(GPL11 | FUNC(2))
-#define GPL11_GPIO	(GPL11 | FUNC(0))
-#define GPL12		(PIN(11,48) | PUD)
-#define GPL12_ADDR3	(GPL12 | FUNC(2))
-#define GPL12_GPIO	(GPL12 | FUNC(0))
-#define GPL13		(PIN(11,52) | PUD)
-#define GPL13_ADDR16	(GPL13 | FUNC(2))
-#define GPL13_GPIO	(GPL13 | FUNC(0))
-#define GPL14		(PIN(11,65) | PUD)
-#define GPL14_ADDR17	(GPL14 | FUNC(2))
-#define GPL14_GPIO	(GPL14 | FUNC(0))
-
-#define GPM0		(PIN(12,0) | PUD)
-#define GPM0_GPIO	(GPM0 | FUNC(0))
-#define GPM1		(PIN(12,4) | PUD)
-#define GPM1_GPIO	(GPM1 | FUNC(0))
-#define GPM2		(PIN(12,8) | PUD)
-#define GPM2_GPIO	(GPM2 | FUNC(0))
-#define GPM3		(PIN(12,12) | PUD)
-#define GPM3_GPIO	(GPM3 | FUNC(0))
-#define GPM4		(PIN(12,16) | PUD)
-#define GPM4_GPIO	(GPM4 | FUNC(0))
-#define GPM5		(PIN(12,20) | PUD)
-#define GPM5_GPIO	(GPM5 | FUNC(0))
-
-#define GPN0		(PIN(13,0) | PUD)
-#define GPN0_GPIO	(GPN0 | FUNC(0))
-#define GPN1		(PIN(13,0) | PUD)
-#define GPN1_GPIO	(GPN1 | FUNC(0))
-#define GPN2		(PIN(13,0) | PUD)
-#define GPN2_GPIO	(GPN2 | FUNC(0))
-#define GPN3		(PIN(13,0) | PUD)
-#define GPN3_GPIO	(GPN3 | FUNC(0))
-#define GPN4		(PIN(13,0) | PUD)
-#define GPN4_GPIO	(GPN4 | FUNC(0))
-#define GPN5		(PIN(13,0) | PUD)
-#define GPN5_GPIO	(GPN5 | FUNC(0))
-#define GPN6		(PIN(13,0) | PUD)
-#define GPN6_GPIO	(GPN6 | FUNC(0))
-#define GPN7		(PIN(13,0) | PUD)
-#define GPN7_GPIO	(GPN7 | FUNC(0))
-#define GPN8		(PIN(13,0) | PUD)
-#define GPN8_GPIO	(GPN8 | FUNC(0))
-#define GPN9		(PIN(13,0) | PUD)
-#define GPN9_GPIO	(GPN9 | FUNC(0))
-#define GPN10		(PIN(13,20) | PUD)
-#define GPN10_GPIO	(GPN10 | FUNC(0))
-#define GPN11		(PIN(13,20) | PUD)
-#define GPN11_GPIO	(GPN11 | FUNC(0))
-#define GPN12		(PIN(13,20) | PUD)
-#define GPN12_GPIO	(GPN12 | FUNC(0))
-#define GPN13		(PIN(13,20) | PUD)
-#define GPN13_GPIO	(GPN13 | FUNC(0))
-#define GPN14		(PIN(13,20) | PUD)
-#define GPN14_GPIO	(GPN14 | FUNC(0))
-#define GPN15		(PIN(13,20) | PUD)
-#define GPN15_GPIO	(GPN15 | FUNC(0))
-
-#define GPO0		(PIN(14,0) | PUD)
-#define GPO0_GPIO	(GPO0 | FUNC(0))
-#define GPO0_NCS2	(GPO0 | FUNC(2))
-#define GPO1		(PIN(14,2) | PUD)
-#define GPO1_GPIO	(GPO1 | FUNC(0))
-#define GPO1_NCS3	(GPO1 | FUNC(2))
-#define GPO2		(PIN(14,4) | PUD)
-#define GPO2_GPIO	(GPO2 | FUNC(0))
-#define GPO2_NCS4	(GPO2 | FUNC(2))
-#define GPO3		(PIN(14,6) | PUD)
-#define GPO3_GPIO	(GPO3 | FUNC(0))
-#define GPO3_NCS5	(GPO3 | FUNC(2))
-#define GPO4		(PIN(14,8) | PUD)
-#define GPO4_GPIO	(GPO4 | FUNC(0))
-#define GPO5		(PIN(14,10) | PUD)
-#define GPO5_GPIO	(GPO5 | FUNC(0))
-#define GPO6		(PIN(14,12) | PUD)
-#define GPO6_GPIO	(GPO6 | FUNC(0))
-#define GPO6_ADDR6	(GPO6 | FUNC(2))
-#define GPO7		(PIN(14,14) | PUD)
-#define GPO7_GPIO	(GPO7 | FUNC(0))
-#define GPO7_ADDR7	(GPO7 | FUNC(2))
-#define GPO8		(PIN(14,16) | PUD)
-#define GPO8_GPIO	(GPO8 | FUNC(0))
-#define GPO8_ADDR8	(GPO8 | FUNC(2))
-#define GPO9		(PIN(14,18) | PUD)
-#define GPO9_GPIO	(GPO9 | FUNC(0))
-#define GPO9_ADDR9	(GPO9 | FUNC(2))
-#define GPO10		(PIN(14,20) | PUD)
-#define GPO10_GPIO	(GPO10 | FUNC(2))
-#define GPO10_ADDR10	(GPO10 | FUNC(2))
-#define GPO11		(PIN(14,22) | PUD)
-#define GPO11_GPIO	(GPO11 | FUNC(0))
-#define GPO11_ADDR11	(GPO11 | FUNC(2))
-#define GPO12		(PIN(14,24) | PUD)
-#define GPO12_GPIO	(GPO12 | FUNC(0))
-#define GPO12_ADDR12	(GPO12 | FUNC(2))
-#define GPO13		(PIN(14,26) | PUD)
-#define GPO13_GPIO	(GPO13 | FUNC(0))
-#define GPO13_ADDR13	(GPO13 | FUNC(2))
-#define GPO14		(PIN(14,28) | PUD)
-#define GPO14_GPIO	(GPO14 | FUNC(0))
-#define GPO14_ADDR14	(GPO14 | FUNC(2))
-#define GPO15		(PIN(14,30) | PUD)
-#define GPO15_GPIO	(GPO15 | FUNC(0))
-#define GPO15_ADDR15	(GPO15 | FUNC(2))
-
-#define GPP0		(PIN(15,0) | PUD)
-#define GPP0_GPIO	(GPP0 | FUNC(0))
-#define GPP1		(PIN(15,2) | PUD)
-#define GPP1_GPIO	(GPP1 | FUNC(0))
-#define GPP2		(PIN(15,4) | PUD)
-#define GPP2_NWAIT	(GPP2 | FUNC(2))
-#define GPP3		(PIN(15,6) | PUD)
-#define GPP3_FALE	(GPP3 | FUNC(2))
-#define GPP4		(PIN(15,8) | PUD)
-#define GPP4_FCLE	(GPP4 | FUNC(2))
-#define GPP5		(PIN(15,10) | PUD)
-#define GPP5_FWE	(GPP5 | FUNC(2))
-#define GPP6		(PIN(15,12) | PUD)
-#define GPP6_FRE	(GPP6 | FUNC(2))
-#define GPP7		(PIN(15,14) | PUD)
-#define GPP7_RNB	(GPP7 | FUNC(2))
-#define GPP8		(PIN(15,16) | PUD)
-#define GPP8_GPIO	(GPP8 | FUNC(0))
-#define GPP9		(PIN(15,18) | PUD)
-#define GPP9_GPIO	(GPP9 | FUNC(0))
-#define GPP10		(PIN(15,20) | PUD)
-#define GPP10_GPIO	(GPP10 | FUNC(0))
-#define GPP11		(PIN(15,22) | PUD)
-#define GPP11_GPIO	(GPP11 | FUNC(0))
-#define GPP12		(PIN(15,24) | PUD)
-#define GPP12_GPIO	(GPP12 | FUNC(0))
-#define GPP13		(PIN(15,26) | PUD)
-#define GPP13_GPIO	(GPP13 | FUNC(0))
-#define GPP14		(PIN(15,28) | PUD)
-#define GPP14_GPIO	(GPP14 | FUNC(0))
-
-#define GPQ0		(PIN(16,0) | PUD)
-#define GPQ0_GPIO	(GPQ0 | FUNC(0))
-#define GPQ1		(PIN(16,2) | PUD)
-#define GPQ1_GPIO	(GPQ1 | FUNC(0))
-#define GPQ2		(PIN(16,4) | PUD)
-#define GPQ2_GPIO	(GPQ2 | FUNC(0))
-#define GPQ3		(PIN(16,8) | PUD)
-#define GPQ3_GPIO	(GPQ3 | FUNC(0))
-#define GPQ4		(PIN(16,8) | PUD)
-#define GPQ4_GPIO	(GPQ4 | FUNC(0))
-#define GPQ5		(PIN(16,10) | PUD)
-#define GPQ5_GPIO	(GPQ5 | FUNC(0))
-#define GPQ6		(PIN(16,12) | PUD)
-#define GPQ6_GPIO	(GPQ6 | FUNC(0))
-#define GPQ7		(PIN(16,14) | PUD)
-#define GPQ7_GPIO	(GPQ7 | FUNC(0))
-#define GPQ8		(PIN(16,16) | PUD)
-#define GPQ8_GPIO	(GPQ7 | FUNC(0))
-
-
-#endif /* __MACH_IOMUX_S3C64XX_H */
diff --git a/arch/arm/mach-samsung/include/mach/iomux-s5pcxx.h b/arch/arm/mach-samsung/include/mach/iomux-s5pcxx.h
deleted file mode 100644
index 0677de46dd..0000000000
--- a/arch/arm/mach-samsung/include/mach/iomux-s5pcxx.h
+++ /dev/null
@@ -1,798 +0,0 @@
-/*
- * Copyright (C) 2012 Juergen Beisert
- * Copyright (C) 2012 Alexey Galakhov
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-
-/* Tested with S5PV210 */
-
-#ifndef __MACH_IOMUX_S5PCXX_H
-# define __MACH_IOMUX_S5PCXX_H
-
-/* 3322222222221111111111
- * 10987654321098765432109876543210
- *                           ^^^^^^_ Bit offset
- *                      ^^^^^_______ Group Number
- *                  ^^^^____________ Function
- *                 ^________________ initial GPIO out value
- *                ^_________________ Pull up/down feature present
- *              ^^__________________ initial pull up/down setting
- */
-
-#define PIN(group,bit) ((group << 6) + bit)
-#define FUNC(x) (((x) & 0xf) << 11)
-#define GET_FUNC(x) (((x) >> 11) & 0xf)
-#define GET_GROUP(x) (((x) >> 6) & 0x1f)
-#define GET_BIT(x) ((x) & 0x3f)
-#define GET_GPIOVAL(x) (!!((x) & (1 << 15)))
-#define GPIO_OUT (1 << 11)
-#define GPIO_IN (0 << 11)
-#define GPIO_VAL(x) ((!!(x)) << 15)
-#define PUD_MASK 0x3
-#define PUD (1 << 16)
-#define PUD_PRESENT(x) (!!((x) & (1 << 16)))
-#define DISABLE_PUD (0 << 17)
-#define ENABLE_PU (2 << 17)
-#define ENABLE_PD (1 << 17)
-#define GET_PUD(x) (((x) >> 17) & PUD_MASK)
-
-/*
- * To have a chance for simple GPIO manipulation routines
- * define the GPIO numbers with a real simple scheme.
- *
- * Keep in mind: The 'GPIO_2_NO' creates a value to be used with the real gpio
- * routines and *not* for the multiplexer routines!
- */
-#define GPIO_2_NO(x,y) (PIN(x,y))
-
-/*
- * Group A0: GPIO 0...7
- * Used GPIO: 0...7
- * These pins can also act as GPIO outputs
- */
-#define GPA00		(PIN(0,0) | PUD)
-#define GPA00_GPIO	(GPA00 | FUNC(0))
-#define GPA00_RXD0	(GPA00 | FUNC(2))
-#define GPA01		(PIN(0,1) | PUD)
-#define GPA01_GPIO	(GPA01 | FUNC(0))
-#define GPA01_TXD0	(GPA01 | FUNC(2))
-#define GPA02		(PIN(0,2) | PUD)
-#define GPA02_GPIO	(GPA02 | FUNC(0))
-#define GPA02_NCTS0	(GPA02 | FUNC(2))
-#define GPA03		(PIN(0,3) | PUD)
-#define GPA03_GPIO	(GPA03 | FUNC(0))
-#define GPA03_NRTS0	(GPA03 | FUNC(2))
-#define GPA04		(PIN(0,4) | PUD)
-#define GPA04_GPIO	(GPA04 | FUNC(0))
-#define GPA04_RXD1	(GPA04 | FUNC(2))
-#define GPA05		(PIN(0,5) | PUD)
-#define GPA05_GPIO	(GPA05 | FUNC(0))
-#define GPA05_TXD1	(GPA05 | FUNC(2))
-#define GPA06		(PIN(0,6) | PUD)
-#define GPA06_GPIO	(GPA06 | FUNC(0))
-#define GPA06_NCTS1	(GPA06 | FUNC(2))
-#define GPA07		(PIN(0,7) | PUD)
-#define GPA07_GPIO	(GPA07 | FUNC(0))
-#define GPA07_NRTS1	(GPA07 | FUNC(2))
-
-/*
- * Group A1: GPIO 0..3
- * Used GPIO: 0..3
- * These pins can also act as GPIO outputs
- */
-#define GPA10		(PIN(1,0) | PUD)
-#define GPA10_GPIO	(GPA10 | FUNC(0))
-#define GPA10_RXD2	(GPA10 | FUNC(2))
-#define GPA10_RXDAUD	(GPA0 | FUNC(4))
-#define GPA11		(PIN(1,1) | PUD)
-#define GPA11_GPIO	(GPA11 | FUNC(0))
-#define GPA11_TXD2	(GPA11 | FUNC(2))
-#define GPA11_TXDAUD	(GPA1 | FUNC(4))
-#define GPA12		(PIN(1,2) | PUD)
-#define GPA12_GPIO	(GPA12 | FUNC(0))
-#define GPA12_RXD3	(GPA12 | FUNC(2))
-#define GPA12_NCTS2	(GPA12 | FUNC(3))
-#define GPA13		(PIN(1,3) | PUD)
-#define GPA13_GPIO	(GPA13 | FUNC(0))
-#define GPA13_TXD3	(GPA13 | FUNC(2))
-#define GPA13_NRTS2	(GPA13 | FUNC(3))
-
-
-/*
- * Group B: GPIO 0...7
- * Used GPIO: 0...7
- * These pins can also act as GPIO outputs
- */
-#define GPB0		(PIN(2,0) | PUD)
-#define GPB0_GPIO	(GPB0 | FUNC(0))
-#define GPB0_SPI0_CLK   (GPB0 | FUNC(2))
-#define GPB1		(PIN(2,1) | PUD)
-#define GPB1_GPIO	(GPB1 | FUNC(0))
-#define GPB1_SPI0_NCS	(GPB1 | FUNC(2))
-#define GPB2		(PIN(2,2) | PUD)
-#define GPB2_GPIO	(GPB2 | FUNC(0))
-#define GPB2_SPI0_MISO	(GPB2 | FUNC(2))
-#define GPB3		(PIN(2,3) | PUD)
-#define GPB3_GPIO	(GPB3 | FUNC(0))
-#define GPB3_SPI0_MOSI	(GPB3 | FUNC(2))
-#define GPB4		(PIN(2,4) | PUD)
-#define GPB4_GPIO	(GPB4 | FUNC(0))
-#define GPB4_SPI1_CLK	(GPB4 | FUNC(2))
-#define GPB5		(PIN(2,5) | PUD)
-#define GPB5_GPIO	(GPB5 | FUNC(0))
-#define GPB5_SPI1_NCS	(GPB5 | FUNC(0))
-#define GPB6		(PIN(2,6) | PUD)
-#define GPB6_GPIO	(GPB6 | FUNC(0))
-#define GPB6_SPI1_MISO	(GPB6 | FUNC(0))
-#define GPB7		(PIN(2,7) | PUD)
-#define GPB7_GPIO	(GPB7 | FUNC(0))
-#define GPB7_SPI1_MOSI	(GPB7 | FUNC(0))
-
-/*
- * Group C0: GPIO 0...4
- */
-#define GPC00			(PIN(3,0) | PUD)
-#define GPC00_GPIO		(GPC00 | FUNC(0))
-#define GPC00_I2S1_SCLK		(GPC00 | FUNC(2))
-#define GPC00_PCM1_SCLK		(GPC00 | FUNC(3))
-#define GPC00_AC97_BITCLK	(GPC00 | FUNC(4))
-#define GPC01			(PIN(3,1) | PUD)
-#define GPC01_GPIO		(GPC01 | FUNC(0))
-#define GPC01_I2S1_CDCLK	(GPC01 | FUNC(2))
-#define GPC01_PCM1_EXTCLK	(GPC01 | FUNC(3))
-#define GPC01_AC97_NRESET	(GPC01 | FUNC(4))
-#define GPC02			(PIN(3,2) | PUD)
-#define GPC02_GPIO		(GPC02 | FUNC(0))
-#define GPC02_I2S1_LRCK		(GPC02 | FUNC(2))
-#define GPC02_PCM1_FSYNC	(GPC02 | FUNC(3))
-#define GPC02_AC97_SYNC		(GPC02 | FUNC(4))
-#define GPC03			(PIN(3,3) | PUD)
-#define GPC03_GPIO		(GPC03 | FUNC(0))
-#define GPC03_I2S1_SDI		(GPC03 | FUNC(2))
-#define GPC03_PCM1_SIN		(GPC03 | FUNC(3))
-#define GPC03_AC97_SDI		(GPC03 | FUNC(4))
-#define GPC04			(PIN(3,4) | PUD)
-#define GPC04_GPIO		(GPC04 | FUNC(0))
-#define GPC04_I2S1_SDO		(GPC04 | FUNC(2))
-#define GPC04_PCM1_SOUT		(GPC04 | FUNC(3))
-#define GPC04_AC97_SDO		(GPC04 | FUNC(4))
-
-/*
- * Group C1: GPIO 0...4
- */
-#define GPC10			(PIN(4,0) | PUD)
-#define GPC10_GPIO		(GPC10 | FUNC(0))
-#define GPC10_PCM2_SCLK		(GPC10 | FUNC(2))
-#define GPC10_SPDIF_0_OUT	(GPC10 | FUNC(3))
-#define GPC10_I2S2_SCLK		(GPC10 | FUNC(4))
-#define GPC11			(PIN(4,1) | PUD)
-#define GPC11_GPIO		(GPC11 | FUNC(0))
-#define GPC11_PCM2_EXTCLK	(GPC11 | FUNC(2))
-#define GPC11_SPDIF_EXTCLK	(GPC11 | FUNC(3))
-#define GPC11_I2S2_CDCLK	(GPC11 | FUNC(4))
-#define GPC12			(PIN(4,2) | PUD)
-#define GPC12_GPIO		(GPC12 | FUNC(0))
-#define GPC12_PCM2_FSYNC	(GPC12 | FUNC(2))
-#define GPC12_LCD_FRM		(GPC12 | FUNC(3))
-#define GPC12_I2S2_LRCK		(GPC12 | FUNC(4))
-#define GPC13			(PIN(4,3) | PUD)
-#define GPC13_GPIO		(GPC13 | FUNC(0))
-#define GPC13_PCM2_SIN		(GPC13 | FUNC(2))
-#define GPC13_I2S2_SDI		(GPC13 | FUNC(4))
-#define GPC14			(PIN(4,4) | PUD)
-#define GPC14_GPIO		(GPC14 | FUNC(0))
-#define GPC14_PCM2_SOUT		(GPC14 | FUNC(2))
-#define GPC14_I2S2_SDO		(GPC14 | FUNC(4))
-
-/*
- * Group D0: GPIO 0...3
- */
-#define GPD00		(PIN(5,0) | PUD)
-#define GPD00_GPIO	(GPD00 | FUNC(0))
-#define GPD00_TOUT_0	(GPD00 | FUNC(2))
-#define GPD01		(PIN(5,1) | PUD)
-#define GPD01_GPIO	(GPD01 | FUNC(0))
-#define GPD01_TOUT_1	(GPD01 | FUNC(2))
-#define GPD02		(PIN(5,2) | PUD)
-#define GPD02_GPIO	(GPD02 | FUNC(0))
-#define GPD02_TOUT_2	(GPD02 | FUNC(2))
-#define GPD03		(PIN(5,3) | PUD)
-#define GPD03_GPIO	(GPD03 | FUNC(0))
-#define GPD03_TOUT_3	(GPD03 | FUNC(2))
-
-/*
- * Group D1: GPIO 0...5
- */
-#define GPD10		(PIN(6,0) | PUD)
-#define GPD10_GPIO	(GPD10 | FUNC(0))
-#define GPD10_I2C0_SDA	(GPD10 | FUNC(2))
-#define GPD11		(PIN(6,0) | PUD)
-#define GPD11_GPIO	(GPD11 | FUNC(0))
-#define GPD11_I2C0_SCL	(GPD11 | FUNC(2))
-#define GPD12		(PIN(6,0) | PUD)
-#define GPD12_GPIO	(GPD12 | FUNC(0))
-#define GPD12_I2C1_SDA	(GPD12 | FUNC(2))
-#define GPD13		(PIN(6,0) | PUD)
-#define GPD13_GPIO	(GPD13 | FUNC(0))
-#define GPD13_I2C1_SCL	(GPD13 | FUNC(2))
-#define GPD14		(PIN(6,0) | PUD)
-#define GPD14_GPIO	(GPD14 | FUNC(0))
-#define GPD14_I2C2_SDA	(GPD14 | FUNC(2))
-#define GPD15		(PIN(6,0) | PUD)
-#define GPD15_GPIO	(GPD15 | FUNC(0))
-#define GPD15_I2C2_SCL	(GPD15 | FUNC(2))
-
-/*
- * Group E0: GPIO 0...7
- */
-#define GPE00			(PIN(7,0) | PUD)
-#define GPE00_GPIO		(GPE00 | FUNC(0))
-#define GPE00_CAM_A_PCLK	(GPE00 | FUNC(2))
-#define GPE01			(PIN(7,1) | PUD)
-#define GPE01_GPIO		(GPE01 | FUNC(0))
-#define GPE01_CAM_A_VSYNC	(GPE01 | FUNC(2))
-#define GPE02			(PIN(7,2) | PUD)
-#define GPE02_GPIO		(GPE02 | FUNC(0))
-#define GPE02_CAM_A_HREF	(GPE02 | FUNC(2))
-#define GPE03			(PIN(7,3) | PUD)
-#define GPE03_GPIO		(GPE03 | FUNC(0))
-#define GPE03_CAM_A_DATA0	(GPE03 | FUNC(2))
-#define GPE04			(PIN(7,4) | PUD)
-#define GPE04_GPIO		(GPE04 | FUNC(0))
-#define GPE04_CAM_A_DATA1	(GPE04 | FUNC(2))
-#define GPE05			(PIN(7,5) | PUD)
-#define GPE05_GPIO		(GPE05 | FUNC(0))
-#define GPE05_CAM_A_DATA2	(GPE05 | FUNC(2))
-#define GPE06			(PIN(7,6) | PUD)
-#define GPE06_GPIO		(GPE06 | FUNC(0))
-#define GPE06_CAM_A_DATA3	(GPE06 | FUNC(2))
-#define GPE07			(PIN(7,7) | PUD)
-#define GPE07_GPIO		(GPE07 | FUNC(0))
-#define GPE07_CAM_A_DATA4	(GPE07 | FUNC(2))
-
-/*
- * Group E1: GPIO 0...4
- */
-#define GPE10			(PIN(8,0) | PUD)
-#define GPE10_GPIO		(GPE10 | FUNC(0))
-#define GPE10_CAM_A_DATA5	(GPE10 | FUNC(2))
-#define GPE11			(PIN(8,1) | PUD)
-#define GPE11_GPIO		(GPE11 | FUNC(0))
-#define GPE11_CAM_A_DATA6	(GPE11 | FUNC(2))
-#define GPE12			(PIN(8,2) | PUD)
-#define GPE12_GPIO		(GPE12 | FUNC(0))
-#define GPE12_CAM_A_DATA7	(GPE12 | FUNC(2))
-#define GPE13			(PIN(8,3) | PUD)
-#define GPE13_GPIO		(GPE13 | FUNC(0))
-#define GPE13_CAM_A_CLKOUT	(GPE13 | FUNC(2))
-#define GPE14			(PIN(8,4) | PUD)
-#define GPE14_GPIO		(GPE14 | FUNC(0))
-#define GPE14_CAM_A_FIELD	(GPE14 | FUNC(2))
-
-/*
- * Group F0: GPIO 0...7
- */
-#define GPF00		(PIN(9,0) | PUD)
-#define GPF00_GPIO	(GPF00 | FUNC(0))
-#define GPF00_LCD_HSYNC	(GPF00 | FUNC(2))
-#define GPF00_SYS_CS0	(GPF00 | FUNC(3))
-#define GPF00_VEN_HSYNC	(GPF00 | FUNC(4))
-#define GPF01		(PIN(9,1) | PUD)
-#define GPF01_GPIO	(GPF01 | FUNC(0))
-#define GPF01_LCD_VSYNC	(GPF01 | FUNC(2))
-#define GPF01_SYS_CS1	(GPF01 | FUNC(3))
-#define GPF01_VEN_VSYNC	(GPF01 | FUNC(4))
-#define GPF02		(PIN(9,2) | PUD)
-#define GPF02_GPIO	(GPF02 | FUNC(0))
-#define GPF02_LCD_VDEN	(GPF02 | FUNC(2))
-#define GPF02_SYS_RS	(GPF02 | FUNC(3))
-#define GPF02_VEN_HREF	(GPF02 | FUNC(4))
-#define GPF03		(PIN(9,3) | PUD)
-#define GPF03_GPIO	(GPF03 | FUNC(0))
-#define GPF03_LCD_VCLK	(GPF03 | FUNC(2))
-#define GPF03_SYS_WE	(GPF03 | FUNC(3))
-#define GPF03_V601_CLK	(GPF03 | FUNC(4))
-#define GPF04		(PIN(9,4) | PUD)
-#define GPF04_GPIO	(GPF04 | FUNC(0))
-#define GPF04_LCD_VD0	(GPF04 | FUNC(2))
-#define GPF04_SYS_VS0	(GPF04 | FUNC(3))
-#define GPF04_VEN_DATA0	(GPF04 | FUNC(4))
-#define GPF05		(PIN(9,5) | PUD)
-#define GPF05_GPIO	(GPF05 | FUNC(0))
-#define GPF05_LCD_VD1	(GPF05 | FUNC(2))
-#define GPF05_SYS_VD1	(GPF05 | FUNC(3))
-#define GPF05_VEN_DATA1	(GPF05 | FUNC(4))
-#define GPF06		(PIN(9,6) | PUD)
-#define GPF06_GPIO	(GPF06 | FUNC(0))
-#define GPF06_LCD_VD2	(GPF06 | FUNC(2))
-#define GPF06_SYS_VD2	(GPF06 | FUNC(3))
-#define GPF06_VEN_DATA2	(GPF06 | FUNC(4))
-#define GPF07		(PIN(9,7) | PUD)
-#define GPF07_GPIO	(GPF07 | FUNC(0))
-#define GPF07_LCD_VD3	(GPF07 | FUNC(2))
-#define GPF07_SYS_VD3	(GPF07 | FUNC(3))
-#define GPF07_VEN_DATA3	(GPF07 | FUNC(4))
-
-/*
- * Group F1: GPIO 0...7
- */
-#define GPF10			(PIN(10,0) | PUD)
-#define GPF10_GPIO		(GPF10 | FUNC(0))
-#define GPF10_LCD_VD4		(GPF10 | FUNC(2))
-#define GPF10_SYS_VD4		(GPF10 | FUNC(3))
-#define GPF10_VEN_DATA4		(GPF10 | FUNC(4))
-#define GPF11			(PIN(10,1) | PUD)
-#define GPF11_GPIO		(GPF11 | FUNC(0))
-#define GPF11_LCD_VD5		(GPF11 | FUNC(2))
-#define GPF11_SYS_VD5		(GPF11 | FUNC(3))
-#define GPF11_VEN_DATA5		(GPF11 | FUNC(4))
-#define GPF12			(PIN(10,2) | PUD)
-#define GPF12_GPIO		(GPF12 | FUNC(0))
-#define GPF12_LCD_VD6		(GPF12 | FUNC(2))
-#define GPF12_SYS_VD6		(GPF12 | FUNC(3))
-#define GPF12_VEN_DATA6		(GPF12 | FUNC(4))
-#define GPF13			(PIN(10,3) | PUD)
-#define GPF13_GPIO		(GPF13 | FUNC(0))
-#define GPF13_LCD_VD7		(GPF13 | FUNC(2))
-#define GPF13_SYS_VD7		(GPF13 | FUNC(3))
-#define GPF13_VEN_DATA7		(GPF13 | FUNC(4))
-#define GPF14			(PIN(10,4) | PUD)
-#define GPF14_GPIO		(GPF14 | FUNC(0))
-#define GPF14_LCD_VD8		(GPF14 | FUNC(2))
-#define GPF14_SYS_VD8		(GPF14 | FUNC(3))
-#define GPF14_V656_DATA0	(GPF14 | FUNC(4))
-#define GPF15			(PIN(10,5) | PUD)
-#define GPF15_GPIO		(GPF15 | FUNC(0))
-#define GPF15_LCD_VD9		(GPF15 | FUNC(2))
-#define GPF15_SYS_VD9		(GPF15 | FUNC(3))
-#define GPF15_V656_DATA1	(GPF15 | FUNC(4))
-#define GPF16			(PIN(10,6) | PUD)
-#define GPF16_GPIO		(GPF16 | FUNC(0))
-#define GPF16_LCD_VD10		(GPF16 | FUNC(2))
-#define GPF16_SYS_VD10		(GPF16 | FUNC(3))
-#define GPF16_V656_DATA2	(GPF16 | FUNC(4))
-#define GPF17			(PIN(10,7) | PUD)
-#define GPF17_GPIO		(GPF17 | FUNC(0))
-#define GPF17_LCD_VD11		(GPF17 | FUNC(2))
-#define GPF17_SYS_VD11		(GPF17 | FUNC(3))
-#define GPF17_V656_DATA3	(GPF17 | FUNC(4))
-
-/*
- * Group F2: GPIO 0...7
- */
-#define GPF20			(PIN(11,0) | PUD)
-#define GPF20_GPIO		(GPF20 | FUNC(0))
-#define GPF20_LCD_VD_12		(GPF20 | FUNC(2))
-#define GPF20_SYS_VD_12		(GPF20 | FUNC(3))
-#define GPF20_V656_DATA_4	(GPF20 | FUNC(4))
-#define GPF21			(PIN(11,1) | PUD)
-#define GPF21_GPIO		(GPF21 | FUNC(0))
-#define GPF21_LCD_VD_13		(GPF21 | FUNC(2))
-#define GPF21_SYS_VD_13		(GPF21 | FUNC(3))
-#define GPF21_V656_DATA_5	(GPF21 | FUNC(4))
-#define GPF22			(PIN(11,2) | PUD)
-#define GPF22_GPIO		(GPF22 | FUNC(0))
-#define GPF22_LCD_VD_14		(GPF22 | FUNC(2))
-#define GPF22_SYS_VD_14		(GPF22 | FUNC(3))
-#define GPF22_V656_DATA_6	(GPF22 | FUNC(4))
-#define GPF23			(PIN(11,3) | PUD)
-#define GPF23_GPIO		(GPF23 | FUNC(0))
-#define GPF23_LCD_VD_15		(GPF23 | FUNC(2))
-#define GPF23_SYS_VD_15		(GPF23 | FUNC(3))
-#define GPF23_V656_DATA_7	(GPF23 | FUNC(4))
-#define GPF24			(PIN(11,4) | PUD)
-#define GPF24_GPIO		(GPF24 | FUNC(0))
-#define GPF24_LCD_VD_16		(GPF24 | FUNC(2))
-#define GPF24_SYS_VD_16		(GPF24 | FUNC(3))
-#define GPF25			(PIN(11,5) | PUD)
-#define GPF25_GPIO		(GPF25 | FUNC(0))
-#define GPF25_LCD_VD_17		(GPF25 | FUNC(2))
-#define GPF25_SYS_VD_17		(GPF25 | FUNC(3))
-#define GPF26			(PIN(11,6) | PUD)
-#define GPF26_GPIO		(GPF26 | FUNC(0))
-#define GPF26_LCD_VD_18		(GPF26 | FUNC(2))
-#define GPF26_SYS_VD_18		(GPF26 | FUNC(3))
-#define GPF27			(PIN(11,7) | PUD)
-#define GPF27_GPIO		(GPF27 | FUNC(0))
-#define GPF27_LCD_VD_19		(GPF27 | FUNC(2))
-#define GPF27_SYS_VD_19		(GPF27 | FUNC(3))
-
-/*
- * Group F3: GPIO 0...5
- */
-#define GPF30		(PIN(12,0) | PUD)
-#define GPF30_GPIO	(GPF30 | FUNC(0))
-#define GPF30_LCD_VD20	(GPF30 | FUNC(2))
-#define GPF30_SYS_VD20	(GPF30 | FUNC(3))
-#define GPF31		(PIN(12,1) | PUD)
-#define GPF31_GPIO	(GPF31 | FUNC(0))
-#define GPF31_LCD_VD21	(GPF31 | FUNC(2))
-#define GPF31_SYS_VD21	(GPF31 | FUNC(3))
-#define GPF32		(PIN(12,2) | PUD)
-#define GPF32_GPIO	(GPF32 | FUNC(0))
-#define GPF32_LCD_VD22	(GPF32 | FUNC(2))
-#define GPF32_SYS_VD22	(GPF32 | FUNC(3))
-#define GPF33		(PIN(12,3) | PUD)
-#define GPF33_GPIO	(GPF33 | FUNC(0))
-#define GPF33_LCD_VD23	(GPF33 | FUNC(2))
-#define GPF33_SYS_VD23	(GPF33 | FUNC(3))
-#define GPF33_V656_CLK	(GPF33 | FUNC(4))
-#define GPF34		(PIN(12,4) | PUD)
-#define GPF34_GPIO	(GPF34 | FUNC(0))
-#define GPF34_VSYNC_LDI	(GPF34 | FUNC(3))
-#define GPF35		(PIN(12,5) | PUD)
-#define GPF35_GPIO	(GPF35 | FUNC(0))
-#define GPF35_SYS_OE	(GPF35 | FUNC(3))
-#define GPF35_VEN_FIELD	(GPF35 | FUNC(4))
-
-/*
- * Group G0: GPIO 0...6
- */
-#define GPG00		(PIN(13,0) | PUD)
-#define GPG00_GPIO	(GPG00 | FUNC(0))
-#define GPG00_SD0_CLK	(GPG00 | FUNC(2))
-#define GPG01		(PIN(13,1) | PUD)
-#define GPG01_GPIO	(GPG01 | FUNC(0))
-#define GPG01_SD0_CMD	(GPG01 | FUNC(2))
-#define GPG02		(PIN(13,2) | PUD)
-#define GPG02_GPIO	(GPG02 | FUNC(0))
-#define GPG02_SD0_NCD	(GPG02 | FUNC(2))
-#define GPG03		(PIN(13,3) | PUD)
-#define GPG03_GPIO	(GPG03 | FUNC(0))
-#define GPG03_SD0_DATA0	(GPG03 | FUNC(2))
-#define GPG04		(PIN(13,4) | PUD)
-#define GPG04_GPIO	(GPG04 | FUNC(0))
-#define GPG04_SD0_DATA1	(GPG04 | FUNC(2))
-#define GPG05		(PIN(13,5) | PUD)
-#define GPG05_GPIO	(GPG05 | FUNC(0))
-#define GPG05_SD0_DATA2	(GPG05 | FUNC(2))
-#define GPG06		(PIN(13,6) | PUD)
-#define GPG06_GPIO	(GPG06 | FUNC(0))
-#define GPG06_SD0_DATA3	(GPG06 | FUNC(2))
-
-/*
- * Group G1: GPIO 0...6
- */
-#define GPG10		(PIN(14,0) | PUD)
-#define GPG10_GPIO	(GPG10 | FUNC(0))
-#define GPG10_SD1_CLK	(GPG10 | FUNC(2))
-#define GPG11		(PIN(14,1) | PUD)
-#define GPG11_GPIO	(GPG11 | FUNC(0))
-#define GPG11_SD1_CMD	(GPG11 | FUNC(2))
-#define GPG12		(PIN(14,2) | PUD)
-#define GPG12_GPIO	(GPG12 | FUNC(0))
-#define GPG12_SD1_NCD	(GPG12 | FUNC(2))
-#define GPG13		(PIN(14,3) | PUD)
-#define GPG13_GPIO	(GPG13 | FUNC(0))
-#define GPG13_SD1_DATA0	(GPG13 | FUNC(2))
-#define GPG13_SD0_DATA4	(GPG13 | FUNC(3))
-#define GPG14		(PIN(14,4) | PUD)
-#define GPG14_GPIO	(GPG14 | FUNC(0))
-#define GPG14_SD1_DATA1	(GPG14 | FUNC(2))
-#define GPG14_SD0_DATA5	(GPG14 | FUNC(3))
-#define GPG15		(PIN(14,5) | PUD)
-#define GPG15_GPIO	(GPG15 | FUNC(0))
-#define GPG15_SD1_DATA2	(GPG15 | FUNC(2))
-#define GPG15_SD0_DATA6	(GPG15 | FUNC(3))
-#define GPG16		(PIN(14,6) | PUD)
-#define GPG16_GPIO	(GPG16 | FUNC(0))
-#define GPG16_SD1_DATA3	(GPG16 | FUNC(2))
-#define GPG16_SD0_DATA7	(GPG16 | FUNC(3))
-
-/*
- * Group G2: GPIO 0...6
- */
-#define GPG20		(PIN(15,0) | PUD)
-#define GPG20_GPIO	(GPG20 | FUNC(0))
-#define GPG20_SD2_CLK	(GPG20 | FUNC(2))
-#define GPG21		(PIN(15,1) | PUD)
-#define GPG21_GPIO	(GPG21 | FUNC(0))
-#define GPG21_SD2_CMD	(GPG21 | FUNC(2))
-#define GPG22		(PIN(15,2) | PUD)
-#define GPG22_GPIO	(GPG22 | FUNC(0))
-#define GPG22_SD2_NCD	(GPG22 | FUNC(2))
-#define GPG23		(PIN(15,3) | PUD)
-#define GPG23_GPIO	(GPG23 | FUNC(0))
-#define GPG23_SD2_DATA0	(GPG23 | FUNC(2))
-#define GPG24		(PIN(15,4) | PUD)
-#define GPG24_GPIO	(GPG24 | FUNC(0))
-#define GPG24_SD2_DATA1	(GPG24 | FUNC(2))
-#define GPG25		(PIN(15,5) | PUD)
-#define GPG25_GPIO	(GPG25 | FUNC(0))
-#define GPG25_SD2_DATA2	(GPG25 | FUNC(2))
-#define GPG26		(PIN(15,6) | PUD)
-#define GPG26_GPIO	(GPG26 | FUNC(0))
-#define GPG26_SD2_DATA3	(GPG26 | FUNC(2))
-
-/*
- * Group G3: GPIO 0...6
- */
-#define GPG30		(PIN(16,0) | PUD)
-#define GPG30_GPIO	(GPG30 | FUNC(0))
-#define GPG30_SD3_CLK	(GPG30 | FUNC(2))
-#define GPG31		(PIN(16,1) | PUD)
-#define GPG31_GPIO	(GPG31 | FUNC(0))
-#define GPG31_SD3_CMD	(GPG31 | FUNC(2))
-#define GPG32		(PIN(16,2) | PUD)
-#define GPG32_GPIO	(GPG32 | FUNC(0))
-#define GPG32_SD3_NCD	(GPG32 | FUNC(2))
-#define GPG33		(PIN(16,3) | PUD)
-#define GPG33_GPIO	(GPG33 | FUNC(0))
-#define GPG33_SD3_DATA0	(GPG33 | FUNC(2))
-#define GPG33_SD2_DATA4	(GPG33 | FUNC(3))
-#define GPG34		(PIN(16,4) | PUD)
-#define GPG34_GPIO	(GPG34 | FUNC(0))
-#define GPG34_SD3_DATA1	(GPG34 | FUNC(2))
-#define GPG34_SD2_DATA5	(GPG34 | FUNC(3))
-#define GPG35		(PIN(16,5) | PUD)
-#define GPG35_GPIO	(GPG35 | FUNC(0))
-#define GPG35_SD3_DATA2	(GPG35 | FUNC(2))
-#define GPG35_SD2_DATA6	(GPG35 | FUNC(3))
-#define GPG36		(PIN(16,6) | PUD)
-#define GPG36_GPIO	(GPG36 | FUNC(0))
-#define GPG36_SD3_DATA3	(GPG36 | FUNC(2))
-#define GPG36_SD2_DATA7	(GPG36 | FUNC(3))
-
-/*
- * Group I - no GPIO
- */
-#define GPI0			(PIN(17,0) | PUD)
-#define GPI0_I2S0_SCLK		(GPI0 | FUNC(2))
-#define GPI0_PCM0_SCLK		(GPI0 | FUNC(3))
-#define GPI1			(PIN(17,1) | PUD)
-#define GPI1_I2S0_CDCLK		(GPI1 | FUNC(2))
-#define GPI1_PCM0_EXTCLK	(GPI1 | FUNC(3))
-#define GPI2			(PIN(17,2) | PUD)
-#define GPI2_I2S0_LRCK		(GPI2 | FUNC(2))
-#define GPI2_PCM0_FSYNC		(GPI2 | FUNC(3))
-#define GPI3			(PIN(17,3) | PUD)
-#define GPI3_I2S0_SDI		(GPI3 | FUNC(2))
-#define GPI3_PCM0_SIN		(GPI3 | FUNC(3))
-#define GPI4			(PIN(17,4) | PUD)
-#define GPI4_I2S0_SDO0		(GPI4 | FUNC(2))
-#define GPI4_PCM0_SOUT		(GPI4 | FUNC(3))
-#define GPI5			(PIN(17,5) | PUD)
-#define GPI5_I2S0_SDO1		(GPI5 | FUNC(2))
-#define GPI6			(PIN(17,6) | PUD)
-#define GPI6_I2S0_SDO2		(GPI6 | FUNC(2))
-
-/*
- * Group J0: GPIO 0...7
- */
-#define GPJ00			(PIN(18,0) | PUD)
-#define GPJ00_GPIO		(GPJ00 | FUNC(0))
-#define GPJ00_MSM_ADDR0		(GPJ00 | FUNC(2))
-#define GPJ00_CAM_B_DATA0	(GPJ00 | FUNC(3))
-#define GPJ00_CF_ADDR0		(GPJ00 | FUNC(4))
-#define GPJ00_MIPI_BYTE_CLK	(GPJ00 | FUNC(5))
-#define GPJ01			(PIN(18,1) | PUD)
-#define GPJ01_GPIO		(GPJ01 | FUNC(0))
-#define GPJ01_MSM_ADDR1		(GPJ01 | FUNC(2))
-#define GPJ01_CAM_B_DATA1	(GPJ01 | FUNC(3))
-#define GPJ01_CF_ADDR1		(GPJ01 | FUNC(4))
-#define GPJ01_MIPI_ESC_CLK	(GPJ01 | FUNC(5))
-#define GPJ02			(PIN(18,2) | PUD)
-#define GPJ02_GPIO		(GPJ02 | FUNC(0))
-#define GPJ02_MSM_ADDR2		(GPJ02 | FUNC(2))
-#define GPJ02_CAM_B_DATA2	(GPJ02 | FUNC(3))
-#define GPJ02_CF_ADDR2		(GPJ02 | FUNC(4))
-#define GPJ02_TS_CLK		(GPJ02 | FUNC(5))
-#define GPJ03			(PIN(18,3) | PUD)
-#define GPJ03_GPIO		(GPJ03 | FUNC(0))
-#define GPJ03_MSM_ADDR3		(GPJ03 | FUNC(2))
-#define GPJ03_CAM_B_DATA3	(GPJ03 | FUNC(3))
-#define GPJ03_CF_IORDY		(GPJ03 | FUNC(4))
-#define GPJ03_TS_SYNC		(GPJ03 | FUNC(5))
-#define GPJ04			(PIN(18,4) | PUD)
-#define GPJ04_GPIO		(GPJ04 | FUNC(0))
-#define GPJ04_MSM_ADDR4		(GPJ04 | FUNC(2))
-#define GPJ04_CAM_B_DATA4	(GPJ04 | FUNC(3))
-#define GPJ04_CF_INTRQ		(GPJ04 | FUNC(4))
-#define GPJ04_TS_VAL		(GPJ04 | FUNC(5))
-#define GPJ05			(PIN(18,5) | PUD)
-#define GPJ05_GPIO		(GPJ05 | FUNC(0))
-#define GPJ05_MSM_ADDR5		(GPJ05 | FUNC(2))
-#define GPJ05_CAM_B_DATA5	(GPJ05 | FUNC(3))
-#define GPJ05_CF_DMARQ		(GPJ05 | FUNC(4))
-#define GPJ05_TS_DATA		(GPJ05 | FUNC(5))
-#define GPJ06			(PIN(18,6) | PUD)
-#define GPJ06_GPIO		(GPJ06 | FUNC(0))
-#define GPJ06_MSM_ADDR6		(GPJ06 | FUNC(2))
-#define GPJ06_CAM_B_DATA6	(GPJ06 | FUNC(3))
-#define GPJ06_CF_NDRESET	(GPJ06 | FUNC(4))
-#define GPJ06_TS_ERROR		(GPJ06 | FUNC(5))
-#define GPJ07			(PIN(18,7) | PUD)
-#define GPJ07_GPIO		(GPJ07 | FUNC(0))
-#define GPJ07_MSM_ADDR7		(GPJ07 | FUNC(2))
-#define GPJ07_CAM_B_DATA7	(GPJ07 | FUNC(3))
-#define GPJ07_CF_NDMACK		(GPJ07 | FUNC(4))
-#define GPJ07_MHL_D0		(GPJ07 | FUNC(5))
-
-/*
- * Group J1: GPIO 0...5
- */
-#define GPJ10			(PIN(19,0) | PUD)
-#define GPJ10_GPIO		(GPJ10 | FUNC(0))
-#define GPJ10_MSM_ADDR8		(GPJ10 | FUNC(2))
-#define GPJ10_CAM_B_PCLK	(GPJ10 | FUNC(3))
-#define GPJ10_SROM_ADDR_16to220	(GPJ10 | FUNC(4))
-#define GPJ10_MHL_D1		(GPJ10 | FUNC(5))
-#define GPJ11			(PIN(19,1) | PUD)
-#define GPJ11_GPIO		(GPJ11 | FUNC(0))
-#define GPJ11_MSM_ADDR9		(GPJ11 | FUNC(2))
-#define GPJ11_CAM_B_VSYNC	(GPJ11 | FUNC(3))
-#define GPJ11_SROM_ADDR_16to221	(GPJ11 | FUNC(4))
-#define GPJ11_MHL_D2		(GPJ11 | FUNC(5))
-#define GPJ12			(PIN(19,2) | PUD)
-#define GPJ12_GPIO		(GPJ12 | FUNC(0))
-#define GPJ12_MSM_ADDR10	(GPJ12 | FUNC(2))
-#define GPJ12_CAM_B_HREF	(GPJ12 | FUNC(3))
-#define GPJ12_SROM_ADDR_16to222	(GPJ12 | FUNC(4))
-#define GPJ12_MHL_D3		(GPJ12 | FUNC(5))
-#define GPJ13			(PIN(19,3) | PUD)
-#define GPJ13_GPIO		(GPJ13 | FUNC(0))
-#define GPJ13_MSM_ADDR11	(GPJ13 | FUNC(2))
-#define GPJ13_CAM_B_FIELD	(GPJ13 | FUNC(3))
-#define GPJ13_SROM_ADDR_16to223	(GPJ13 | FUNC(4))
-#define GPJ13_MHL_D4		(GPJ13 | FUNC(5))
-#define GPJ14			(PIN(19,4) | PUD)
-#define GPJ14_GPIO		(GPJ14 | FUNC(0))
-#define GPJ14_MSM_ADDR12	(GPJ14 | FUNC(2))
-#define GPJ14_CAM_B_CLKOUT	(GPJ14 | FUNC(3))
-#define GPJ14_SROM_ADDR_16to224	(GPJ14 | FUNC(4))
-#define GPJ14_MHL_D5		(GPJ14 | FUNC(5))
-#define GPJ15			(PIN(19,5) | PUD)
-#define GPJ15_GPIO		(GPJ15 | FUNC(0))
-#define GPJ15_MSM_ADDR13	(GPJ15 | FUNC(2))
-#define GPJ15_KP_COL0		(GPJ15 | FUNC(3))
-#define GPJ15_SROM_ADDR_16to225	(GPJ15 | FUNC(4))
-#define GPJ15_MHL_D6		(GPJ15 | FUNC(5))
-
-/*
- * Group J2: GPIO 0...7
- */
-#define GPJ20		(PIN(20,0) | PUD)
-#define GPJ20_GPIO	(GPJ20 | FUNC(0))
-#define GPJ20_MSM_DATA0	(GPJ20 | FUNC(2))
-#define GPJ20_KP_COL1	(GPJ20 | FUNC(3))
-#define GPJ20_CF_DATA0	(GPJ20 | FUNC(4))
-#define GPJ20_MHL_D7	(GPJ20 | FUNC(5))
-#define GPJ21		(PIN(20,1) | PUD)
-#define GPJ21_GPIO	(GPJ21 | FUNC(0))
-#define GPJ21_MSM_DATA1	(GPJ21 | FUNC(2))
-#define GPJ21_KP_COL2	(GPJ21 | FUNC(3))
-#define GPJ21_CF_DATA1	(GPJ21 | FUNC(4))
-#define GPJ21_MHL_D8	(GPJ21 | FUNC(5))
-#define GPJ22		(PIN(20,2) | PUD)
-#define GPJ22_GPIO	(GPJ22 | FUNC(0))
-#define GPJ22_MSM_DATA2	(GPJ22 | FUNC(2))
-#define GPJ22_KP_COL3	(GPJ22 | FUNC(3))
-#define GPJ22_CF_DATA2	(GPJ22 | FUNC(4))
-#define GPJ22_MHL_D9	(GPJ22 | FUNC(5))
-#define GPJ23		(PIN(20,3) | PUD)
-#define GPJ23_GPIO	(GPJ23 | FUNC(0))
-#define GPJ23_MSM_DATA3	(GPJ23 | FUNC(2))
-#define GPJ23_KP_COL4	(GPJ23 | FUNC(3))
-#define GPJ23_CF_DATA3	(GPJ23 | FUNC(4))
-#define GPJ23_MHL_D10	(GPJ23 | FUNC(5))
-#define GPJ24		(PIN(20,4) | PUD)
-#define GPJ24_GPIO	(GPJ24 | FUNC(0))
-#define GPJ24_MSM_DATA4	(GPJ24 | FUNC(2))
-#define GPJ24_KP_COL5	(GPJ24 | FUNC(3))
-#define GPJ24_CF_DATA4	(GPJ24 | FUNC(4))
-#define GPJ24_MHL_D11	(GPJ24 | FUNC(5))
-#define GPJ25		(PIN(20,5) | PUD)
-#define GPJ25_GPIO	(GPJ25 | FUNC(0))
-#define GPJ25_MSM_DATA5	(GPJ25 | FUNC(2))
-#define GPJ25_KP_COL6	(GPJ25 | FUNC(3))
-#define GPJ25_CF_DATA5	(GPJ25 | FUNC(4))
-#define GPJ25_MHL_D12	(GPJ25 | FUNC(5))
-#define GPJ26		(PIN(20,6) | PUD)
-#define GPJ26_GPIO	(GPJ26 | FUNC(0))
-#define GPJ26_MSM_DATA6	(GPJ26 | FUNC(2))
-#define GPJ26_KP_COL7	(GPJ26 | FUNC(3))
-#define GPJ26_CF_DATA6	(GPJ26 | FUNC(4))
-#define GPJ26_MHL_D13	(GPJ26 | FUNC(5))
-#define GPJ27		(PIN(20,7) | PUD)
-#define GPJ27_GPIO	(GPJ27 | FUNC(0))
-#define GPJ27_MSM_DATA7	(GPJ27 | FUNC(2))
-#define GPJ27_KP_ROW0	(GPJ27 | FUNC(3))
-#define GPJ27_CF_DATA7	(GPJ27 | FUNC(4))
-#define GPJ27_MHL_D14	(GPJ27 | FUNC(5))
-
-/*
- * Group J3: GPIO 0...7
- */
-#define GPJ30			(PIN(21,0) | PUD)
-#define GPJ30_GPIO		(GPJ30 | FUNC(0))
-#define GPJ30_MSM_DATA8		(GPJ30 | FUNC(2))
-#define GPJ30_KP_ROW1		(GPJ30 | FUNC(3))
-#define GPJ30_CF_DATA8		(GPJ30 | FUNC(4))
-#define GPJ30_MHL_D15		(GPJ30 | FUNC(5))
-#define GPJ31			(PIN(21,1) | PUD)
-#define GPJ31_GPIO		(GPJ31 | FUNC(0))
-#define GPJ31_MSM_DATA9		(GPJ31 | FUNC(2))
-#define GPJ31_KP_ROW2		(GPJ31 | FUNC(3))
-#define GPJ31_CF_DATA9		(GPJ31 | FUNC(4))
-#define GPJ31_MHL_D16		(GPJ31 | FUNC(5))
-#define GPJ32			(PIN(21,2) | PUD)
-#define GPJ32_GPIO		(GPJ32 | FUNC(0))
-#define GPJ32_MSM_DATA10	(GPJ32 | FUNC(2))
-#define GPJ32_KP_ROW3		(GPJ32 | FUNC(3))
-#define GPJ32_CF_DATA10		(GPJ32 | FUNC(4))
-#define GPJ32_MHL_D17		(GPJ32 | FUNC(5))
-#define GPJ33			(PIN(21,3) | PUD)
-#define GPJ33_GPIO		(GPJ33 | FUNC(0))
-#define GPJ33_MSM_DATA11	(GPJ33 | FUNC(2))
-#define GPJ33_KP_ROW4		(GPJ33 | FUNC(3))
-#define GPJ33_CF_DATA11		(GPJ33 | FUNC(4))
-#define GPJ33_MHL_D18		(GPJ33 | FUNC(5))
-#define GPJ34			(PIN(21,4) | PUD)
-#define GPJ34_GPIO		(GPJ34 | FUNC(0))
-#define GPJ34_MSM_DATA12	(GPJ34 | FUNC(2))
-#define GPJ34_KP_ROW5		(GPJ34 | FUNC(3))
-#define GPJ34_CF_DATA12		(GPJ34 | FUNC(4))
-#define GPJ34_MHL_D19		(GPJ34 | FUNC(5))
-#define GPJ35			(PIN(21,5) | PUD)
-#define GPJ35_GPIO		(GPJ35 | FUNC(0))
-#define GPJ35_MSM_DATA13	(GPJ35 | FUNC(2))
-#define GPJ35_KP_ROW6		(GPJ35 | FUNC(3))
-#define GPJ35_CF_DATA13		(GPJ35 | FUNC(4))
-#define GPJ35_MHL_D20		(GPJ35 | FUNC(5))
-#define GPJ36			(PIN(21,6) | PUD)
-#define GPJ36_GPIO		(GPJ36 | FUNC(0))
-#define GPJ36_MSM_DATA14	(GPJ36 | FUNC(2))
-#define GPJ36_KP_ROW7		(GPJ36 | FUNC(3))
-#define GPJ36_CF_DATA14		(GPJ36 | FUNC(4))
-#define GPJ36_MHL_D21		(GPJ36 | FUNC(5))
-#define GPJ37			(PIN(21,7) | PUD)
-#define GPJ37_GPIO		(GPJ37 | FUNC(0))
-#define GPJ37_MSM_DATA15	(GPJ37 | FUNC(2))
-#define GPJ37_KP_ROW8		(GPJ37 | FUNC(3))
-#define GPJ37_CF_DATA15		(GPJ37 | FUNC(4))
-#define GPJ37_MHL_D22		(GPJ37 | FUNC(5))
-
-/*
- * Group J4: GPIO 0...4
- */
-#define GPJ40		(PIN(22,0) | PUD)
-#define GPJ40_GPIO	(GPJ40 | FUNC(0))
-#define GPJ40_MSM_NCS	(GPJ40 | FUNC(2))
-#define GPJ40_KP_ROW9	(GPJ40 | FUNC(3))
-#define GPJ40_CF_NCS0	(GPJ40 | FUNC(4))
-#define GPJ40_MHL_D23	(GPJ40 | FUNC(5))
-#define GPJ41		(PIN(22,1) | PUD)
-#define GPJ41_GPIO	(GPJ41 | FUNC(0))
-#define GPJ41_MSM_NWE	(GPJ41 | FUNC(2))
-#define GPJ41_KP_ROW10	(GPJ41 | FUNC(3))
-#define GPJ41_CF_NCS1	(GPJ41 | FUNC(4))
-#define GPJ41_MHL_IDCK	(GPJ41 | FUNC(5))
-#define GPJ42		(PIN(22,2) | PUD)
-#define GPJ42_GPIO	(GPJ42 | FUNC(0))
-#define GPJ42_MSM_NR	(GPJ42 | FUNC(2))
-#define GPJ42_KP_ROW11	(GPJ42 | FUNC(3))
-#define GPJ42_CF_IORN	(GPJ42 | FUNC(4))
-#define GPJ42_MHL_IDCK	(GPJ42 | FUNC(5))
-#define GPJ43		(PIN(22,3) | PUD)
-#define GPJ43_GPIO	(GPJ43 | FUNC(0))
-#define GPJ43_MSM_NIRQ	(GPJ43 | FUNC(2))
-#define GPJ43_KP_ROW12	(GPJ43 | FUNC(3))
-#define GPJ43_CF_IOWN	(GPJ43 | FUNC(4))
-#define GPJ43_MHL_VSYNC	(GPJ43 | FUNC(5))
-#define GPJ44		(PIN(22,4) | PUD)
-#define GPJ44_GPIO	(GPJ44 | FUNC(0))
-#define GPJ44_MSM_ADVN	(GPJ44 | FUNC(2))
-#define GPJ44_KP_ROW13	(GPJ44 | FUNC(3))
-#define GPJ44_SROM_ADDR_16to226	(GPJ44 | FUNC(4))
-#define GPJ44_MHL_DE	(GPJ44 | FUNC(5))
-
-#endif /* __MACH_IOMUX_S5PCXX_H */
diff --git a/arch/arm/mach-samsung/include/mach/iomux.h b/arch/arm/mach-samsung/include/mach/iomux.h
deleted file mode 100644
index 48651d85c3..0000000000
--- a/arch/arm/mach-samsung/include/mach/iomux.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-
-#ifndef __ASM_MACH_IOMUX_H
-#define __ASM_MACH_IOMUX_H
-
-#ifdef CONFIG_ARCH_S3C24xx
-# include <mach/iomux-s3c24x0.h>
-#endif
-#ifdef CONFIG_ARCH_S3C64xx
-# include <mach/iomux-s3c64xx.h>
-#endif
-#ifdef CONFIG_ARCH_S5PCxx
-# include <mach/iomux-s5pcxx.h>
-#endif
-
-void s3c_gpio_mode(unsigned);
-
-#endif /* __ASM_MACH_IOMUX_H */
diff --git a/arch/arm/mach-samsung/include/mach/s3c-busctl.h b/arch/arm/mach-samsung/include/mach/s3c-busctl.h
deleted file mode 100644
index 4bcf0a7013..0000000000
--- a/arch/arm/mach-samsung/include/mach/s3c-busctl.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2011 Juergen Beisert, Pengutronix
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-
-#ifndef __MACH_S3C_BUSCTL_H
-# define __MACH_S3C_BUSCTL_H
-
-#define S3C_BWSCON (S3C_MEMCTL_BASE)
-#define S3C_BANKCON0 (S3C_MEMCTL_BASE + 0x04)
-#define S3C_BANKCON1 (S3C_MEMCTL_BASE + 0x08)
-#define S3C_BANKCON2 (S3C_MEMCTL_BASE + 0x0c)
-#define S3C_BANKCON3 (S3C_MEMCTL_BASE + 0x10)
-#define S3C_BANKCON4 (S3C_MEMCTL_BASE + 0x14)
-#define S3C_BANKCON5 (S3C_MEMCTL_BASE + 0x18)
-#define S3C_BANKCON6 (S3C_MEMCTL_BASE + 0x1c)
-#define S3C_BANKCON7 (S3C_MEMCTL_BASE + 0x20)
-#define S3C_REFRESH (S3C_MEMCTL_BASE + 0x24)
-#define S3C_BANKSIZE (S3C_MEMCTL_BASE + 0x28)
-#define S3C_MRSRB6 (S3C_MEMCTL_BASE + 0x2c)
-#define S3C_MRSRB7 (S3C_MEMCTL_BASE + 0x30)
-
-#endif /* __MACH_S3C_BUSCTL_H */
diff --git a/arch/arm/mach-samsung/include/mach/s3c-clocks.h b/arch/arm/mach-samsung/include/mach/s3c-clocks.h
deleted file mode 100644
index ef7900285c..0000000000
--- a/arch/arm/mach-samsung/include/mach/s3c-clocks.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- *
- */
-
-#ifndef __MACH_S3C_CLOCKS_H
-#define __MACH_S3C_CLOCKS_H
-
-#ifdef CONFIG_ARCH_S3C24xx
-# include <mach/s3c24xx-clocks.h>
-#endif
-#ifdef CONFIG_ARCH_S3C64xx
-# include <mach/s3c64xx-clocks.h>
-#endif
-#ifdef CONFIG_ARCH_S5PCxx
-# include <mach/s5pcxx-clocks.h>
-#endif
-
-#endif /* __MACH_S3C_CLOCKS_H */
diff --git a/arch/arm/mach-samsung/include/mach/s3c-generic.h b/arch/arm/mach-samsung/include/mach/s3c-generic.h
deleted file mode 100644
index 27f264ce25..0000000000
--- a/arch/arm/mach-samsung/include/mach/s3c-generic.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * (C) Copyright 2009
- * Juergen Beisert, Pengutronix
- *
- * (C) Copyright 2001-2004
- * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
- *
- * (C) Copyright 2002
- * David Mueller, ELSOFT AG, d.mueller@elsoft.ch
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- */
-
-#include <common.h>
-
-uint32_t s3c_get_mpllclk(void);
-uint32_t s3c_get_upllclk(void);
-uint32_t s3c_get_fclk(void);
-uint32_t s3c_get_hclk(void);
-uint32_t s3c_get_pclk(void);
-uint32_t s3c_get_uclk(void);
-
-unsigned s3c_get_uart_clk(unsigned src);
-
-#ifdef CONFIG_ARCH_S3C24xx
-uint32_t s3c24xx_get_memory_size(void);
-void s3c24xx_disable_second_sdram_bank(void);
-#endif
-
-#ifdef CONFIG_ARCH_S5PCxx
-void s5p_init_pll(void);
-void s5p_init_dram_bank_lpddr(phys_addr_t base, uint32_t mc0, uint32_t mc1, int bus16);
-void s5p_init_dram_bank_lpddr2(phys_addr_t base, uint32_t mc0, uint32_t mc1, int bus16);
-void s5p_init_dram_bank_ddr2(phys_addr_t base, uint32_t mc0, uint32_t mc1, int bus16);
-uint32_t s5p_get_memory_size(void);
-#endif
-
-#ifdef CONFIG_ARCH_S3C64xx
-unsigned s3c_set_epllclk(unsigned, unsigned, unsigned, unsigned);
-uint32_t s3c_get_epllclk(void);
-unsigned s3c_get_hsmmc_clk(int);
-void s3c_set_hsmmc_clk(int, int, unsigned);
-unsigned s3c6410_get_memory_size(void);
-struct s3c6410_chipselect {
-	unsigned adr_setup_t; /* in [ns] */
-	unsigned access_setup_t; /* in [ns] */
-	unsigned access_t; /* in [ns] */
-	unsigned cs_hold_t; /* in [ns] */
-	unsigned adr_hold_t; /* in [ns] */
-	unsigned char width; /* 8 or 16 */
-};
-int s3c6410_setup_chipselect(int, const struct s3c6410_chipselect*);
-#endif
diff --git a/arch/arm/mach-samsung/include/mach/s3c-iomap.h b/arch/arm/mach-samsung/include/mach/s3c-iomap.h
deleted file mode 100644
index 67fb18e5b2..0000000000
--- a/arch/arm/mach-samsung/include/mach/s3c-iomap.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- *
- */
-
-#ifdef CONFIG_ARCH_S3C24xx
-# include <mach/s3c24xx-iomap.h>
-#endif
-#ifdef CONFIG_ARCH_S3C64xx
-# include <mach/s3c64xx-iomap.h>
-#endif
-#ifdef CONFIG_ARCH_S5PCxx
-# include <mach/s5pcxx-iomap.h>
-#endif
diff --git a/arch/arm/mach-samsung/include/mach/s3c-mci.h b/arch/arm/mach-samsung/include/mach/s3c-mci.h
deleted file mode 100644
index d3ffb5e637..0000000000
--- a/arch/arm/mach-samsung/include/mach/s3c-mci.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * (C) Copyright 2010 Juergen Beisert, Pengutronix
- *
- * This code is partially based on u-boot code:
- *
- * Copyright 2008, Freescale Semiconductor, Inc
- * Andy Fleming
- *
- * Based (loosely) on the Linux code
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- */
-
-#ifndef __MACH_MMC_H_
-#define __MACH_MMC_H_
-
-struct s3c_mci_platform_data {
-	unsigned caps;	/**< supported operating modes (MMC_MODE_*) */
-	unsigned voltages; /**< supported voltage range (MMC_VDD_*) */
-	unsigned f_min;	/**< min operating frequency in Hz (0 -> no limit) */
-	unsigned f_max;	/**< max operating frequency in Hz (0 -> no limit) */
-	/* TODO */
-	/* function to modify the voltage */
-	/* function to switch the voltage */
-	/* function to detect the presence of a SD card in the socket */
-	unsigned gpio_detect;
-	unsigned detect_invert;
-};
-
-#endif /* __MACH_MMC_H_ */
diff --git a/arch/arm/mach-samsung/include/mach/s3c24xx-clocks.h b/arch/arm/mach-samsung/include/mach/s3c24xx-clocks.h
deleted file mode 100644
index 839dfe3c99..0000000000
--- a/arch/arm/mach-samsung/include/mach/s3c24xx-clocks.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Copyright (C) 2011 Juergen Beisert, Pengutronix
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-
-# define S3C_LOCKTIME (S3C_CLOCK_POWER_BASE)
-# define S3C_MPLLCON (S3C_CLOCK_POWER_BASE + 0x4)
-# define S3C_UPLLCON (S3C_CLOCK_POWER_BASE + 0x8)
-# define S3C_CLKCON (S3C_CLOCK_POWER_BASE + 0xc)
-# define S3C_CLKSLOW (S3C_CLOCK_POWER_BASE + 0x10)
-# define S3C_CLKDIVN (S3C_CLOCK_POWER_BASE + 0x14)
-
-# define S3C_MPLLCON_GET_MDIV(x) ((((x) >> 12) & 0xff) + 8)
-# define S3C_MPLLCON_GET_PDIV(x) ((((x) >> 4) & 0x3f) + 2)
-# define S3C_MPLLCON_GET_SDIV(x) ((x) & 0x3)
diff --git a/arch/arm/mach-samsung/include/mach/s3c24xx-fb.h b/arch/arm/mach-samsung/include/mach/s3c24xx-fb.h
deleted file mode 100644
index 2fa48e7c3c..0000000000
--- a/arch/arm/mach-samsung/include/mach/s3c24xx-fb.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2010 Juergen Beisert
- * Copyright (C) 2011 Alexey Galakhov
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- *
- */
-
-#ifndef __MACH_FB_H_
-# define __MACH_FB_H_
-
-#include <fb.h>
-
-/** Proprietary flags corresponding to  S3C24x0 LCDCON5 register */
-
-/** ! INVVDEN - DE active high */
-#define FB_SYNC_DE_HIGH_ACT	(1 << 23)
-/** INVVCLK - invert CLK signal */
-#define FB_SYNC_CLK_INVERT	(1 << 24)
-/** INVVD - invert data */
-#define FB_SYNC_DATA_INVERT	(1 << 25)
-/** INVPWREN - use PWREN signal */
-#define FB_SYNC_INVERT_PWREN	(1 << 26)
-/** INVLEND - use LEND signal */
-#define FB_SYNC_INVERT_LEND	(1 << 27)
-/** PWREN - use PWREN signal */
-#define FB_SYNC_USE_PWREN	(1 << 28)
-/** ENLEND - use LEND signal */
-#define FB_SYNC_USE_LEND	(1 << 29)
-/** BSWP - swap bytes */
-#define FB_SYNC_SWAP_BYTES	(1 << 30)
-/** HWSWP - swap half words */
-#define FB_SYNC_SWAP_HW		(1 << 31)
-
-struct s3c_fb_platform_data {
-	struct fb_videomode *mode_list;
-	unsigned mode_cnt;
-
-	unsigned bits_per_pixel;
-	int passive_display;	/**< enable support for STN or CSTN displays */
-
-	/** hook to enable backlight and stuff */
-	void (*enable)(int enable);
-};
-
-#endif /* __MACH_FB_H_ */
diff --git a/arch/arm/mach-samsung/include/mach/s3c24xx-gpio.h b/arch/arm/mach-samsung/include/mach/s3c24xx-gpio.h
deleted file mode 100644
index ffb57fbd1f..0000000000
--- a/arch/arm/mach-samsung/include/mach/s3c24xx-gpio.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (C) 2011 Juergen Beisert, Pengutronix
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-
-#ifndef __MACH_GPIO_S3C24X0_H
-# define __MACH_GPIO_S3C24X0_H
-
-#define S3C_GPACON (S3C_GPIO_BASE)
-#define S3C_GPADAT (S3C_GPIO_BASE + 0x04)
-
-#define S3C_GPBCON (S3C_GPIO_BASE + 0x10)
-#define S3C_GPBDAT (S3C_GPIO_BASE + 0x14)
-#define S3C_GPBUP (S3C_GPIO_BASE + 0x18)
-
-#define S3C_GPCCON (S3C_GPIO_BASE + 0x20)
-#define S3C_GPCDAT (S3C_GPIO_BASE + 0x24)
-#define S3C_GPCUP (S3C_GPIO_BASE + 0x28)
-
-#define S3C_GPDCON (S3C_GPIO_BASE + 0x30)
-#define S3C_GPDDAT (S3C_GPIO_BASE + 0x34)
-#define S3C_GPDUP (S3C_GPIO_BASE + 0x38)
-
-#define S3C_GPECON (S3C_GPIO_BASE + 0x40)
-#define S3C_GPEDAT (S3C_GPIO_BASE + 0x44)
-#define S3C_GPEUP (S3C_GPIO_BASE + 0x48)
-
-#define S3C_GPFCON (S3C_GPIO_BASE + 0x50)
-#define S3C_GPFDAT (S3C_GPIO_BASE + 0x54)
-#define S3C_GPFUP (S3C_GPIO_BASE + 0x58)
-
-#define S3C_GPGCON (S3C_GPIO_BASE + 0x60)
-#define S3C_GPGDAT (S3C_GPIO_BASE + 0x64)
-#define S3C_GPGUP (S3C_GPIO_BASE + 0x68)
-
-#define S3C_GPHCON (S3C_GPIO_BASE + 0x70)
-#define S3C_GPHDAT (S3C_GPIO_BASE + 0x74)
-#define S3C_GPHUP (S3C_GPIO_BASE + 0x78)
-
-#ifdef CONFIG_CPU_S3C2440
-# define S3C_GPJCON (S3C_GPIO_BASE + 0xd0)
-# define S3C_GPJDAT (S3C_GPIO_BASE + 0xd4)
-# define S3C_GPJUP (S3C_GPIO_BASE + 0xd8)
-#endif
-
-#define S3C_MISCCR  (S3C_GPIO_BASE + 0x80)
-#define S3C_DCLKCON (S3C_GPIO_BASE + 0x84)
-#define S3C_EXTINT0 (S3C_GPIO_BASE + 0x88)
-#define S3C_EXTINT1 (S3C_GPIO_BASE + 0x8c)
-#define S3C_EXTINT2 (S3C_GPIO_BASE + 0x90)
-#define S3C_EINTFLT0 (S3C_GPIO_BASE + 0x94)
-#define S3C_EINTFLT1 (S3C_GPIO_BASE + 0x98)
-#define S3C_EINTFLT2 (S3C_GPIO_BASE + 0x9c)
-#define S3C_EINTFLT3 (S3C_GPIO_BASE + 0xa0)
-#define S3C_EINTMASK (S3C_GPIO_BASE + 0xa4)
-#define S3C_EINTPEND (S3C_GPIO_BASE + 0xa8)
-#define S3C_GSTATUS0 (S3C_GPIO_BASE + 0xac)
-#define S3C_GSTATUS1 (S3C_GPIO_BASE + 0xb0)
-#define S3C_GSTATUS2 (S3C_GPIO_BASE + 0xb4)
-#define S3C_GSTATUS3 (S3C_GPIO_BASE + 0xb8)
-#define S3C_GSTATUS4 (S3C_GPIO_BASE + 0xbc)
-
-#ifdef CONFIG_CPU_S3C2440
-# define S3C_DSC0 (S3C_GPIO_BASE + 0xc4)
-# define S3C_DSC1 (S3C_GPIO_BASE + 0xc8)
-#endif
-
-#endif /* __MACH_GPIO_S3C24X0_H */
diff --git a/arch/arm/mach-samsung/include/mach/s3c24xx-iomap.h b/arch/arm/mach-samsung/include/mach/s3c24xx-iomap.h
deleted file mode 100644
index ada23042fb..0000000000
--- a/arch/arm/mach-samsung/include/mach/s3c24xx-iomap.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (C) 2009 Juergen Beisert, Pengutronix
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- *
- */
-
-/* S3C2410 device base addresses */
-#define S3C_MEMCTL_BASE			0x48000000
-#define S3C2410_USB_HOST_BASE		0x49000000
-#define S3C2410_INTERRUPT_BASE		0x4A000000
-#define S3C2410_DMA_BASE		0x4B000000
-#define S3C_CLOCK_POWER_BASE		0x4C000000
-#define S3C2410_LCD_BASE		0x4D000000
-#define S3C24X0_NAND_BASE		0x4E000000
-#define S3C_UART_BASE			0x50000000
-#define S3C_TIMER_BASE			0x51000000
-#define S3C2410_USB_DEVICE_BASE		0x52000140
-#define S3C_WATCHDOG_BASE		0x53000000
-#define S3C2410_I2C_BASE		0x54000000
-#define S3C2410_I2S_BASE		0x55000000
-#define S3C_GPIO_BASE			0x56000000
-#define S3C2410_RTC_BASE		0x57000000
-#define S3C2410_ADC_BASE		0x58000000
-#define S3C2410_SPI_BASE		0x59000000
-#define S3C2410_SDI_BASE		0x5A000000
-
-/* external IO space */
-#define S3C_CS0_BASE 0x00000000
-#define S3C_CS1_BASE 0x08000000
-#define S3C_CS2_BASE 0x10000000
-#define S3C_CS3_BASE 0x18000000
-#define S3C_CS4_BASE 0x20000000
-#define S3C_CS5_BASE 0x28000000
-#define S3C_CS6_BASE 0x30000000
-
-#define S3C_SDRAM_BASE S3C_CS6_BASE
-#define S3C_SDRAM_END (S3C_SDRAM_BASE + 0x10000000)
-
-/*
- * if we are booting from NAND, its internal SRAM occures at
- * a different address than without this feature
- */
-#ifdef CONFIG_S3C_NAND_BOOT
-# define NFC_RAM_AREA 0x00000000
-#else
-# define NFC_RAM_AREA 0x40000000
-#endif
-#define NFC_RAM_SIZE 4096
-
-#define S3C_UART1_BASE (S3C_UART_BASE)
-#define S3C_UART1_SIZE 0x4000
-#define S3C_UART2_BASE (S3C_UART_BASE + 0x4000)
-#define S3C_UART2_SIZE 0x4000
-#define S3C_UART3_BASE (S3C_UART_BASE + 0x8000)
-#define S3C_UART3_SIZE 0x4000
diff --git a/arch/arm/mach-samsung/include/mach/s3c24xx-nand.h b/arch/arm/mach-samsung/include/mach/s3c24xx-nand.h
deleted file mode 100644
index 52642ee81f..0000000000
--- a/arch/arm/mach-samsung/include/mach/s3c24xx-nand.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 2009 Juergen Beisert, Pengutronix
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- *
- */
-
-#ifndef MACH_S3C24XX_NAND_H
-# define MACH_S3C24XX_NAND_H
-
-#ifdef CONFIG_S3C_NAND_BOOT
-extern void s3c24x0_nand_load_image(void*, int, int);
-#endif
-
-/**
- * Locate the timing bits for the NFCONF register
- * @param setup is the TACLS clock count
- * @param access is the TWRPH0 clock count
- * @param hold is the TWRPH1 clock count
- *
- * @note A clock count of 0 means always 1 HCLK clock.
- * @note Clock count settings depend on the NAND flash requirements and the current HCLK speed
- */
-#ifdef CONFIG_CPU_S3C2410
-# define CALC_NFCONF_TIMING(setup, access, hold) \
-	((setup << 8) + (access << 4) + (hold << 0))
-#endif
-#ifdef CONFIG_CPU_S3C2440
-# define CALC_NFCONF_TIMING(setup, access, hold) \
-	((setup << 12) + (access << 8) + (hold << 4))
-#endif
-
-/**
- * Define platform specific data for the NAND controller and its device
- */
-struct s3c24x0_nand_platform_data {
-	uint32_t nand_timing;	/**< value for the NFCONF register (timing bits only) */
-	char flash_bbt;	/**< force a flash based BBT */
-};
-
-/**
- * @file
- * @brief Basic declaration to use the s3c24x0 NAND driver
- */
-
-void nand_boot(void);
-
-#endif /* MACH_S3C24XX_NAND_H */
diff --git a/arch/arm/mach-samsung/include/mach/s3c64xx-clocks.h b/arch/arm/mach-samsung/include/mach/s3c64xx-clocks.h
deleted file mode 100644
index 8aa60bcb04..0000000000
--- a/arch/arm/mach-samsung/include/mach/s3c64xx-clocks.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (C) 2012 Juergen Beisert
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-
-#define S3C_EPLL_LOCK  (S3C_CLOCK_POWER_BASE + 0x08)
-# define S3C_EPLL_LOCK_PLL_LOCKTIME(x) ((x) & 0xffff)
-#define S3C_APLLCON (S3C_CLOCK_POWER_BASE + 0x0c)
-# define S3C_APLLCON_ENABLE (1 << 31)
-# define S3C_APLLCON_GET_MDIV(x) (((x) >> 16) & 0x3ff)
-# define S3C_APLLCON_GET_PDIV(x) (((x) >> 8) & 0x3f)
-# define S3C_APLLCON_GET_SDIV(x) ((x) & 0x7)
-#define S3C_MPLLCON (S3C_CLOCK_POWER_BASE + 0x10)
-# define S3C_MPLLCON_ENABLE (1 << 31)
-# define S3C_MPLLCON_GET_MDIV(x) (((x) >> 16) & 0x3ff)
-# define S3C_MPLLCON_GET_PDIV(x) (((x) >> 8) & 0x3f)
-# define S3C_MPLLCON_GET_SDIV(x) ((x) & 0x7)
-#define S3C_EPLLCON0 (S3C_CLOCK_POWER_BASE + 0x14)
-# define S3C_EPLLCON0_ENABLE (1 << 31)
-# define S3C_EPLLCON0_GET_MDIV(x) (((x) >> 16) & 0xff)
-# define S3C_EPLLCON0_SET_MDIV(x) (((x) & 0xff) << 16)
-# define S3C_EPLLCON0_GET_PDIV(x) (((x) >> 8) & 0x3f)
-# define S3C_EPLLCON0_SET_PDIV(x) (((x) & 0x3f) << 8)
-# define S3C_EPLLCON0_GET_SDIV(x) ((x) & 0x7)
-# define S3C_EPLLCON0_SET_SDIV(x) ((x) & 0x7)
-#define S3C_EPLLCON1 (S3C_CLOCK_POWER_BASE + 0x18)
-# define S3C_EPLLCON1_GET_KDIV(x) ((x) & 0xffff)
-# define S3C_EPLLCON1_SET_KDIV(x) ((x) & 0xffff)
-#define S3C_CLKCON (S3C_CLOCK_POWER_BASE + 0xc)
-#define S3C_CLKSLOW (S3C_CLOCK_POWER_BASE + 0x10)
-#define S3C_CLKDIVN (S3C_CLOCK_POWER_BASE + 0x14)
-#define S3C_CLK_SRC (S3C_CLOCK_POWER_BASE + 0x01c)
-# define S3C_CLK_SRC_GET_MMC_SEL(x, v) (((v) >> (18 + (x * 2))) & 0x3)
-# define S3C_CLK_SRC_SET_MMC_SEL(x, v) (((v) & 0x3) << (18 + (x * 2)))
-# define S3C_CLK_SRC_UARTMPLL (1 << 13)
-# define S3C_CLK_SRC_FOUTEPLL (1 << 2)
-# define S3C_CLK_SRC_FOUTMPLL (1 << 1)
-# define S3C_CLK_SRC_FOUTAPLL (1 << 0)
-#define S3C_CLK_DIV0 (S3C_CLOCK_POWER_BASE + 0x020)
-# define S3C_CLK_DIV0_GET_ADIV(x) ((x) & 0xf)
-# define S3C_CLK_DIV0_GET_HCLK2(x) (((x) >> 9) & 0x7)
-# define S3C_CLK_DIV0_GET_HCLK(x) (((x) >> 8) & 0x1)
-# define S3C_CLK_DIV0_GET_PCLK(x) (((x) >> 12) & 0xf)
-# define S3C_CLK_DIV0_SET_MPLL_DIV(x) (((x) & 0x1) << 4)
-# define S3C_CLK_DIV0_GET_MPLL_DIV(x) (((x) >> 4) & 0x1)
-# define S3C_CLK_DIV0_GET_MMC(x, v) (((v) >> (4 * x)) & 0xf)
-# define S3C_CLK_DIV0_SET_MMC(x, v) (((v) & 0xf) << (4 * x))
-#define S3C_CLK_DIV2 (S3C_CLOCK_POWER_BASE + 0x028)
-# define S3C_CLK_DIV2_UART_MASK (0xf << 16)
-# define S3C_CLK_DIV2_SET_UART(x) ((x) << 16)
-# define S3C_CLK_DIV2_GET_UART(x) (((x) >> 16) & 0xf)
-#define S3C_SCLK_GATE (S3C_CLOCK_POWER_BASE + 0x038)
-# define S3C_SCLK_GATE_UART (1 << 5)
-# define S3C_SCLK_GATE_MMC(x) (1 << (24 + x))
-#define S3C_MISC_CON (S3C_CLOCK_POWER_BASE + 0x838)
-# define S3C_MISC_CON_SYN667 (1 << 19)
-#define S3C_OTHERS (S3C_CLOCK_POWER_BASE + 0x900)
-# define S3C_OTHERS_CLK_SELECT (1 << 6)
diff --git a/arch/arm/mach-samsung/include/mach/s3c64xx-iomap.h b/arch/arm/mach-samsung/include/mach/s3c64xx-iomap.h
deleted file mode 100644
index 9cc3a1bcba..0000000000
--- a/arch/arm/mach-samsung/include/mach/s3c64xx-iomap.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) 2012 Juergen Beisert
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-
-/* S3C64xx device base addresses */
-#define S3C_SROM_SFR		0x70000000
-#define S3C_NAND_BASE		0x70200000
-#define S3C_SDI0_BASE		0x7c200000
-#define S3C_SDI0_SIZE		0x100
-#define S3C_SDI1_BASE		0x7c300000
-#define S3C_SDI1_SIZE		0x100
-#define S3C_SDI2_BASE		0x7c400000
-#define S3C_SDI2_SIZE		0x100
-#define S3C_DRAMC		0x7e001000
-#define S3C_WATCHDOG_BASE	0x7e004000
-#define S3C_CLOCK_POWER_BASE	0x7e00f000
-#define S3C_UART_BASE		0x7f005000
-#define S3C_TIMER_BASE		0x7f006000
-#define S3C_GPIO_BASE		0x7f008000
-
-#define S3C_UART1_BASE (S3C_UART_BASE)
-#define S3C_UART1_SIZE 0x400
-#define S3C_UART2_BASE (S3C_UART_BASE + 0x400)
-#define S3C_UART2_SIZE 0x400
-#define S3C_UART3_BASE (S3C_UART_BASE + 0x800)
-#define S3C_UART3_SIZE 0x400
-#define S3C_UART4_BASE (S3C_UART_BASE + 0xc00)
-#define S3C_UART4_SIZE 0x400
-
-#define S3C_SDRAM_BASE 0x50000000
-#define S3C_SDRAM_END (S3C_SDRAM_BASE + 0x10000000)
-
-#define S3C_SROM_BW (S3C_SROM_SFR)
-#define S3C_SROM_BC0 (S3C_SROM_SFR + 4)
-
-#define S3C_CS0_BASE 0x10000000
-#define S3C_CS1_BASE 0x18000000
-#define S3C_CS2_BASE 0x20000000
-#define S3C_CS3_BASE 0x28000000
-#define S3C_CS4_BASE 0x30000000
-#define S3C_CS5_BASE 0x38000000
diff --git a/arch/arm/mach-samsung/include/mach/s5pcxx-clocks.h b/arch/arm/mach-samsung/include/mach/s5pcxx-clocks.h
deleted file mode 100644
index f9d49c5156..0000000000
--- a/arch/arm/mach-samsung/include/mach/s5pcxx-clocks.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2012 Alexey Galakhov
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-
-# define S5P_APLL 0x00
-# define S5P_MPLL 0x08
-# define S5P_EPLL 0x10
-# define S5P_VPLL 0x20
-# define S5P_xPLL_LOCK (S5P_CLOCK_POWER_BASE)
-# define S5P_xPLL_CON  (S5P_CLOCK_POWER_BASE + 0x100)
-# define S5P_xPLL_CON0 (S5P_xPLL_CON)
-# define S5P_xPLL_CON1 (S5P_xPLL_CON + 0x4)
-
-# define S5P_xPLLCON_GET_MDIV(x)  (((x) >> 16) & 0x3ff)
-# define S5P_xPLLCON_GET_PDIV(x)  (((x) >> 8) & 0x3f)
-# define S5P_xPLLCON_GET_SDIV(x)  ((x) & 0x3)
-
-# define S5P_CLK_SRC0 (S5P_CLOCK_POWER_BASE + 0x200)
-# define S5P_CLK_SRC1 (S5P_CLOCK_POWER_BASE + 0x204)
-# define S5P_CLK_SRC2 (S5P_CLOCK_POWER_BASE + 0x208)
-# define S5P_CLK_SRC3 (S5P_CLOCK_POWER_BASE + 0x20C)
-# define S5P_CLK_SRC4 (S5P_CLOCK_POWER_BASE + 0x210)
-# define S5P_CLK_SRC5 (S5P_CLOCK_POWER_BASE + 0x214)
-# define S5P_CLK_SRC6 (S5P_CLOCK_BASE + 0x218)
-
-# define S5P_CLK_DIV0 (S5P_CLOCK_POWER_BASE + 0x300)
-# define S5P_CLK_DIV1 (S5P_CLOCK_POWER_BASE + 0x304)
-# define S5P_CLK_DIV2 (S5P_CLOCK_POWER_BASE + 0x308)
-# define S5P_CLK_DIV3 (S5P_CLOCK_POWER_BASE + 0x30C)
-# define S5P_CLK_DIV4 (S5P_CLOCK_POWER_BASE + 0x310)
-# define S5P_CLK_DIV5 (S5P_CLOCK_POWER_BASE + 0x314)
-# define S5P_CLK_DIV6 (S5P_CLOCK_POWER_BASE + 0x318)
-# define S5P_CLK_DIV7 (S5P_CLOCK_POWER_BASE + 0x31C)
-
-# define S5P_CLK_GATE_SCLK  (S5P_CLOCK_POWER_BASE + 0x444)
-# define S5P_CLK_GATE_IP0   (S5P_CLOCK_POWER_BASE + 0x460)
-# define S5P_CLK_GATE_IP1   (S5P_CLOCK_POWER_BASE + 0x464)
-# define S5P_CLK_GATE_IP2   (S5P_CLOCK_POWER_BASE + 0x468)
-# define S5P_CLK_GATE_IP3   (S5P_CLOCK_POWER_BASE + 0x46C)
-# define S5P_CLK_GATE_IP4   (S5P_CLOCK_POWER_BASE + 0x470)
-# define S5P_CLK_GATE_BLOCK (S5P_CLOCK_POWER_BASE + 0x480)
-# define S5P_CLK_GATE_IP5   (S5P_CLOCK_POWER_BASE + 0x484)
-
-# define S5P_OTHERS (S5P_CLOCK_POWER_BASE + 0xE000)
-# define S5P_USB_PHY_CONTROL (S5P_CLOCK_POWER_BASE + 0xE80C)
diff --git a/arch/arm/mach-samsung/include/mach/s5pcxx-iomap.h b/arch/arm/mach-samsung/include/mach/s5pcxx-iomap.h
deleted file mode 100644
index c0f763371b..0000000000
--- a/arch/arm/mach-samsung/include/mach/s5pcxx-iomap.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (C) 2012 Alexey Galakhov
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- *
- */
-
-/* S5PV210 device base addresses */
-
-#define S5P_CLOCK_POWER_BASE	0xE0100000
-#define S3C_GPIO_BASE		0xE0200000
-#define S3C_TIMER_BASE		0xE2500000
-#define S3C_WATCHDOG_BASE	0xE2700000
-#define S3C_UART_BASE		0xE2900000
-#define S3C_USB_HOST_BASE	0xEC200000
-#define S3C_NAND_BASE		0xB0E00000
-
-/* external IO space */
-#define S3C_CS0_BASE 0x80000000
-#define S3C_CS1_BASE 0x88000000
-#define S3C_CS2_BASE 0x90000000
-#define S3C_CS3_BASE 0x98000000
-#define S3C_CS4_BASE 0xA0000000
-#define S3C_CS5_BASE 0xA8000000
-
-#define S3C_SDRAM_BASE 0x20000000
-#define S3C_SDRAM_END (S3C_SDRAM_BASE + 0x60000000)
-
-#define S3C_UART1_BASE (S3C_UART_BASE)
-#define S3C_UART1_SIZE 0x400
-#define S3C_UART2_BASE (S3C_UART_BASE + 0x400)
-#define S3C_UART2_SIZE 0x400
-#define S3C_UART3_BASE (S3C_UART_BASE + 0x800)
-#define S3C_UART3_SIZE 0x400
-
-#define S5P_DMC0_BASE 0xF0000000
-#define S5P_DMC1_BASE 0xF1400000
diff --git a/arch/arm/mach-samsung/lowlevel-s3c24x0.S b/arch/arm/mach-samsung/lowlevel-s3c24x0.S
deleted file mode 100644
index d43cdff528..0000000000
--- a/arch/arm/mach-samsung/lowlevel-s3c24x0.S
+++ /dev/null
@@ -1,305 +0,0 @@
-/*
- * (C) Copyright 2009
- * Juergen Beisert <kernel@pengutronix.de>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- */
-
-#include <config.h>
-#include <mach/s3c-iomap.h>
-
-	.section ".text_bare_init.s3c24x0_disable_wd","ax"
-
-/*
- * Disable the watchdog, else it continues to bark
- */
-.globl s3c24x0_disable_wd
-s3c24x0_disable_wd:
-
-	ldr r0, =S3C_WATCHDOG_BASE
-	mov r1, #0x0
-	str r1, [r0]
-	mov pc, lr
-
-/*
- * S3C2410 PLL configuration
- * -------------------------
- *
- * Basic frequency calculation
- *
- *            m * REFclk         s = SDIV
- * PLLclk = ------------         p = PDIV + 2
- *             p * 2^s           m = MDIV + 8
- *
- * After reset the PLL of the s3c2410 processor uses:
- *
- *         MPLL   UPLL
- *  MDIV   0x5c   0x28
- *  PDIV   0x08   0x08
- *  SDIV   0x0    0x0
- *
- *            100 * 12MHz     1200MHz
- * MPLLclk = ------------- = -------- = 120MHz
- *             10 * 2^0         10
- *
- *            48 * 12MHz      576MHz
- * UPLLclk = ------------- = -------- = 57,6MHz
- *             10 * 2^0        10
- *
- * Note: Do not use "r10" here in this code
- */
-
-#ifdef CONFIG_S3C_PLL_INIT
-
-	.section ".text_bare_init.s3c24x0_pll_init","ax"
-
-.globl s3c24x0_pll_init
-s3c24x0_pll_init:
-
-	mov r0, #S3C_CLOCK_POWER_BASE
-
-	/* configure internal clock ratio */
-	mov r1, #BOARD_SPECIFIC_CLKDIVN
-	str r1, [r0, #20]
-
-	/* enable all devices on this chip */
-	mov r1, #0xFFFFFFF0
-	str r1, [r0, #12]
-
-	/* ??????? */
-#ifdef CONFIG_CPU_S3C2440
-	mov r1, #0xFFFFFFFF
-#endif
-#ifdef CONFIG_CPU_S3C2410
-	mov r1, #0x00FFFFFF
-#endif
-	str r1, [r0, #0]
-
-#ifdef CONFIG_CPU_S3C2440
-	/*
-	 * Most of the time HDIVN is not 0, so we must use the
-	 * asynchronous bus mode (refer datasheet "Clock and Power Management")
-	 */
-	mrc p15, 0, r1, c1, c0, 0
-	orr r1, r1, #0xc0000000
-	mcr p15, 0, r1, c1, c0, 0
-#endif
-
-	/* configure UPLL */
-	ldr r1, =BOARD_SPECIFIC_UPLL
-	str r1, [r0, #8]
-
-	nop
-	nop
-	nop
-	nop
-	nop
-	nop
-	nop
-	nop
-
-	/* configure MPLL */
-	ldr r1, =BOARD_SPECIFIC_MPLL
-	str r1, [r0, #4]
-
-	nop
-	nop
-	nop
-	nop
-	nop
-	nop
-	nop
-	nop
-
-	mov pc, lr
-
-#endif
-
-/**
-@page dev_s3c24xx_pll_handling PLL clock handling
-
-To control the speed of your machine the PLLs must be reconfigured after reset.
-
-For example the S3C2410 CPU wakes up after reset at 120MHz main PLL speed,
-shared with all other system on chip components. Most of the time this
-configuration is to slow for the CPU and to fast for the other components.
-
-PLL reprogramming can be done in the machine specific manner very early when
-the CONFIG_S3C_PLL_INIT and CONFIG_MACH_HAS_LOWLEVEL_INIT symbols are
-defined. The board must provide a board_init_lowlevel() assembler function in
-this case and calling the s3c24x0_pll_init() assembler function.
-
-If the s3c24x0_pll_init() is called a few further symbols must be defined to
-setup the correct values for the machine.
-
-Define in the machine specific config.h the following symbols:
-
-- S3C24XX_CLOCK_REFERENCE with the frequency in Hz of your reference crystal.
-- BOARD_SPECIFIC_CLKDIVN with the value for the main clock ratio register (CLKDIVN)
-- BOARD_SPECIFIC_MPLL with the value for the main PLL setup register
-- BOARD_SPECIFIC_UPLL with the value for the USB PLL setup register
-
-@note Valid values for the PLL settings can be found in the CPU manual.
-
-@par Background: PLL frequency calculation for the S3C2410 CPU (both PLLs) and S3C2440 (UPLL only)
-
-@f[
-	f_{PLL} = \frac{m * f_{Ref}}{p * 2^s}
-@f]
-
-With m = MDIV + 8, p = PDIV + 2 and s = SDIV.
-
-@par Background: PLL frequency calculation for the S3C2440 CPU (MPLL only)
-
-@f[
-	f_{PLL} = \frac{2 * m * f_{Ref}}{p * 2^s}
-@f]
-
-With m = MDIV + 8, p = PDIV + 2 and s = SDIV.
-
-@note This routine can be used for the S3C2410 and the S3C2440 CPU.
-
-*/
-
-/* ----------------------------------------------------------------------- */
-
-#ifdef CONFIG_S3C_SDRAM_INIT
-
-	.section ".text_bare_init.s3c24x0_sdram_init","ax"
-
-	.globl s3c24x0_sdram_init
-s3c24x0_sdram_init:
-
-	adr r0, SDRAMDATA	/* get the current relative address of the table */
-	mov r1, #S3C_MEMCTL_BASE
-	mov r2, #6		/* we *know* it contains 6 entries */
-
-	ldr r3, [r0], #4	/* write BSWCON first */
-	str r3, [r1], #0x1c	/* post add register offset for bank6 */
-/*
- * Initializing the SDRAM controller is very simple:
- * Just write some useful values into the SDRAM controller.
- */
-0:	ldr r3, [r0], #4
-	str r3, [r1], #4
-	subs r2, r2, #1
-	bne 0b
-
-	mov pc, lr
-
-SDRAMDATA:
-	.word BOARD_SPECIFIC_BWSCON
-	.word BOARD_SPECIFIC_BANKCON6
-	.word BOARD_SPECIFIC_BANKCON7
-	.word BOARD_SPECIFIC_REFRESH
-	.word BOARD_SPECIFIC_BANKSIZE
-	.word BOARD_SPECIFIC_MRSRB6
-	.word BOARD_SPECIFIC_MRSRB7
-
-#endif
-
-/**
-@page dev_s3c24xx_sdram_handling SDRAM controller initialisation
-
-The SDRAM controller is very simple and its initialisation requires only a
-few steps. barebox provides a generic routine to do this step.
-
-Enable CONFIG_S3C_SDRAM_INIT and CONFIG_MACH_HAS_LOWLEVEL_INIT to be able
-to call the generic s3c24x0_sdram_init() assembler function from within the
-machine specific board_init_lowlevel() assembler function.
-
-To use the s3c24x0_sdram_init() assembler function a few symbols must be
-defined to setup correct values for the machine.
-
-Define in the machine specific config.h the following list of symbols:
-
-- BOARD_SPECIFIC_BWSCON with the values for SDRAM banks 6 and 7
-- BOARD_SPECIFIC_BANKCON6 with the value for the BANKCON6 register
-- BOARD_SPECIFIC_BANKCON7 with the value for the BANKCON7 register
-- BOARD_SPECIFIC_REFRESH with the value for the REFRESH register
-- BOARD_SPECIFIC_BANKSIZE with the value for the BANKSIZE register
-- BOARD_SPECIFIC_MRSRB6 with the value for the MRSRB6 register
-- BOARD_SPECIFIC_MRSRB7 with the value for the MRSRB7 register
-*/
-
-/* ----------------------------------------------------------------------- */
-
-#ifdef CONFIG_S3C_NAND_BOOT
-
-	.section ".text_bare_init.s3c24x0_nand_boot","ax"
-
-	.globl s3c24x0_nand_boot
-s3c24x0_nand_boot:
-/*
- * In the case of NOR boot we are running from the same address space.
- * Detect this case to handle it correctly.
- */
-	mov r1, #S3C_MEMCTL_BASE
-	ldr r3, [r1]
-	and r3, r3, #0x6
-	cmp r3, #0x0	/* check for NAND case */
-	beq 2f
-	mov pc, lr	/* NOR case: nothing to do here */
-
-2:	ldr sp, =_text	/* Setup a temporary stack in SDRAM */
-/*
- * We still run at a location we are not linked to. But lets still running
- * from the internal SRAM, this may speed up the boot
- */
-	push {lr}
-	bl nand_boot
-	pop {lr}
-/*
- * Adjust the return address to the correct address in SDRAM
- */
-	ldr r1, =_text
-	add lr, lr, r1
-
-	mov pc, lr
-
-#endif
-
-/**
-@page dev_s3c24xx_nandboot_handling Booting from NAND
-
-To be able to boot from NAND memory only, enable the S3C24x0 NAND driver. Also
-enable CONFIG_S3C_NAND_BOOT and CONFIG_MACH_HAS_LOWLEVEL_INIT to be
-able to call the s3c24x0_nand_boot() assembler routine from within the
-machine specific board_init_lowlevel() assembler function.
-
-@note This routine assumes an already working SDRAM controller and
-an initialized stack pointer.
-
-@note Basicly this routine runs from inside the internal SRAM. After load of
-the whole barebox image from the NAND flash memory into the SDRAM it adjusts
-the link register to the final SDRAM adress and returns.
-
-@note In the NAND boot mode, ECC is not checked. So, the first x KBytes used
-by barebox should have no bit error.
-
-Due to the fact the code to load the whole barebox from NAND must fit into
-the first 4kiB of the barebox image, the shrinked NAND driver is very
-minimalistic. Setup the NAND access timing is done in a safe manner, what
-means: Slowest possible values are used. If you want to increase the speed you
-should define the BOARD_DEFAULT_NAND_TIMING to a valid setting into the
-NFCONF register and add it to your board specific config.h. Refer S3C24x0's
-datasheet for further details. The macro #CALC_NFCONF_TIMING could help to
-calculate the register setting in a hardware independent manner.
-
-@note The regular NAND driver uses a platform data structure to define the
-NAND access timings.
-
-@note Its still possible to boot this image from NOR memory. If this routine
-detects it is running from NOR instead of the internal SRAM it skips any
-loading and returns immediately.
-
-*/
diff --git a/arch/arm/mach-samsung/lowlevel-s5pcxx.c b/arch/arm/mach-samsung/lowlevel-s5pcxx.c
deleted file mode 100644
index 15afa47ce3..0000000000
--- a/arch/arm/mach-samsung/lowlevel-s5pcxx.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2012 Alexey Galakhov
- *
- * Based on code from u-boot found somewhere on the web
- * that seems to originate from Samsung
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-
-#include <config.h>
-#include <common.h>
-#include <io.h>
-#include <init.h>
-#include <mach/s3c-iomap.h>
-#include <mach/s3c-clocks.h>
-#include <mach/s3c-generic.h>
-
-#ifdef CONFIG_S3C_PLL_INIT
-void  __bare_init s5p_init_pll(void)
-{
-    uint32_t reg;
-    int i;
-
-    /* Set Mux to FIN */
-    writel(0, S5P_CLK_SRC0);
-
-    writel(BOARD_APLL_LOCKTIME, S5P_xPLL_LOCK + S5P_APLL);
-
-    /* Disable PLL */
-    writel(0, S5P_xPLL_CON + S5P_APLL);
-    writel(0, S5P_xPLL_CON + S5P_MPLL);
-
-    /* Set up dividers */
-    reg = readl(S5P_CLK_DIV0);
-    reg &= ~(BOARD_CLK_DIV0_MASK);
-    reg |= (BOARD_CLK_DIV0_VAL);
-    writel(reg, S5P_CLK_DIV0);
-
-    /* Set up PLLs */
-    writel(BOARD_APLL_VAL, S5P_xPLL_CON + S5P_APLL);
-    writel(BOARD_MPLL_VAL, S5P_xPLL_CON + S5P_MPLL);
-    writel(BOARD_EPLL_VAL, S5P_xPLL_CON + S5P_EPLL);
-    writel(BOARD_VPLL_VAL, S5P_xPLL_CON + S5P_VPLL);
-
-    /* Wait for sync */
-    for (i = 0; i < 0x10000; ++i)
-        barrier();
-
-    reg = readl(S5P_CLK_SRC0);
-    reg |= 0x1111; /* switch MUX to PLL outputs */
-    writel(reg, S5P_CLK_SRC0);
-}
-#endif /* CONFIG_S3C_PLL_INIT */
diff --git a/arch/arm/mach-samsung/mem-s3c24x0.c b/arch/arm/mach-samsung/mem-s3c24x0.c
deleted file mode 100644
index 8d20f6d102..0000000000
--- a/arch/arm/mach-samsung/mem-s3c24x0.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- */
-/**
- * @file
- * @brief Basic clock, sdram and timer handling for S3C24xx CPUs
- */
-
-#include <config.h>
-#include <common.h>
-#include <init.h>
-#include <clock.h>
-#include <io.h>
-#include <linux/sizes.h>
-#include <mach/s3c-iomap.h>
-#include <mach/s3c-generic.h>
-#include <mach/s3c-busctl.h>
-#include <mach/s3c24xx-gpio.h>
-
-/**
- * Calculate the amount of connected and available memory
- * @return Memory size in bytes
- */
-uint32_t s3c24xx_get_memory_size(void)
-{
-	uint32_t reg, size;
-
-	/*
-	 * detect the current memory size
-	 */
-	reg = readl(S3C_BANKSIZE);
-
-	switch (reg & 0x7) {
-	case 0:
-		size = SZ_32M;
-		break;
-	case 1:
-		size = SZ_64M;
-		break;
-	case 2:
-		size = SZ_128M;
-		break;
-	case 4:
-		size = SZ_2M;
-		break;
-	case 5:
-		size = SZ_4M;
-		break;
-	case 6:
-		size = SZ_8M;
-		break;
-	default:
-		size = SZ_16M;
-		break;
-	}
-
-	/*
-	 * Is bank7 also configured for SDRAM usage?
-	 */
-	if ((readl(S3C_BANKCON7) & (0x3 << 15)) == (0x3 << 15))
-		size <<= 1;	/* also count this bank */
-
-	return size;
-}
-
-void s3c24xx_disable_second_sdram_bank(void)
-{
-	writel(readl(S3C_BANKCON7) & ~(0x3 << 15), S3C_BANKCON7);
-	writel(readl(S3C_MISCCR) | (1 << 18), S3C_MISCCR); /* disable its clock */
-}
diff --git a/arch/arm/mach-samsung/mem-s3c64xx.c b/arch/arm/mach-samsung/mem-s3c64xx.c
deleted file mode 100644
index c51245a378..0000000000
--- a/arch/arm/mach-samsung/mem-s3c64xx.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (C) 2012 Juergen Beisert
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-
-#include <common.h>
-#include <errno.h>
-#include <io.h>
-#include <mach/s3c-iomap.h>
-#include <mach/s3c-generic.h>
-
-#define S3C_DRAMC_CHIP_0_CFG (S3C_DRAMC + 0x200)
-
-/* note: this routine honors the first memory bank only */
-unsigned s3c6410_get_memory_size(void)
-{
-	unsigned reg = readl(S3C_DRAMC_CHIP_0_CFG) & 0xff;
-
-	return ~(reg << 24) + 1;
-}
-
-/* configure the timing of one of the available external chip select lines */
-int s3c6410_setup_chipselect(int no, const struct s3c6410_chipselect *c)
-{
-	unsigned per_t = 1000000000 / s3c_get_hclk();
-	unsigned tacs, tcos, tacc, tcoh, tcah, shift;
-	uint32_t reg;
-
-	/* start of cycle to chip select assertion (= address/data setup) */
-	tacs = DIV_ROUND_UP(c->adr_setup_t, per_t);
-	/* start of CS to read/write assertion (= access setup) */
-	tcos = DIV_ROUND_UP(c->access_setup_t, per_t);
-	/* length of read/write assertion (= access length) */
-	tacc = DIV_ROUND_UP(c->access_t, per_t) - 1;
-	/* CS hold after access is finished */
-	tcoh = DIV_ROUND_UP(c->cs_hold_t, per_t);
-	/* adress/data hold after CS is deasserted */
-	tcah = DIV_ROUND_UP(c->adr_hold_t, per_t);
-
-	shift = no * 4;
-	reg = readl(S3C_SROM_BW) & ~(0xf << shift);
-	if (c->width == 16)
-		reg |= 0x1 << shift;
-	writel(reg, S3C_SROM_BW);
-#ifdef DEBUG
-	if (tacs > 15 || tcos > 15 || tacc > 31 || tcoh > 15 || tcah > 15) {
-		pr_err("At least one of the timings are invalid\n");
-		return -EINVAL;
-	}
-	pr_info("Will write 0x%08X\n", tacs << 28 | tcos << 24 | tacc << 16 |
-					tcoh << 12 | tcah << 8);
-#endif
-	writel(tacs << 28 | tcos << 24 | tacc << 16 | tcoh << 12 | tcah << 8,
-						S3C_SROM_BC0 + shift);
-
-	return 0;
-}
diff --git a/arch/arm/mach-samsung/mem-s5pcxx.c b/arch/arm/mach-samsung/mem-s5pcxx.c
deleted file mode 100644
index 943f691769..0000000000
--- a/arch/arm/mach-samsung/mem-s5pcxx.c
+++ /dev/null
@@ -1,320 +0,0 @@
-/*
- * Copyright (C) 2012 Alexey Galakhov
- *
- * Based on code from u-boot found somewhere on the web
- * that seems to originate from Samsung
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-
-#include <config.h>
-#include <common.h>
-#include <io.h>
-#include <init.h>
-#include <mach/s3c-generic.h>
-#include <mach/s3c-iomap.h>
-
-#define S5P_DMC_CONCONTROL	0x00
-#define S5P_DMC_MEMCONTROL	0x04
-#define S5P_DMC_MEMCONFIG0	0x08
-#define S5P_DMC_MEMCONFIG1	0x0C
-#define S5P_DMC_DIRECTCMD	0x10
-#define S5P_DMC_PRECHCONFIG	0x14
-#define S5P_DMC_PHYCONTROL0	0x18
-#define S5P_DMC_PHYCONTROL1	0x1C
-#define S5P_DMC_PWRDNCONFIG	0x28
-#define S5P_DMC_TIMINGAREF	0x30
-#define S5P_DMC_TIMINGROW	0x34
-#define S5P_DMC_TIMINGDATA	0x38
-#define S5P_DMC_TIMINGPOWER	0x3C
-#define S5P_DMC_PHYSTATUS	0x40
-#define S5P_DMC_MRSTATUS	0x54
-
-/* DRAM commands */
-#define CMD(x)  ((x) << 24)
-#define BANK(x) ((x) << 16)
-#define CHIP(x) ((x) << 20)
-#define ADDR(x) (x)
-
-/**
- *  MR definition:
- *  1 11
- *  2 1098 7654 3210
- *      |     |  ^^^- burst length, 010=4, 011=8
- *      |     | ^- burst type 0=sequnential, 1=interleaved
- *      |   ^^^-- CAS latency
- *      |  ^----- test, 0=normal, 1=test
- *      |^---- DLL reset, 1=yes
- *    ^^^----- WR, 1=2, 2=3 etc.
- *  ^------- PD, 0=fast exit, 1=low power
- *
- *  EMR1 definition:
- *  1 11
- *  2 1098 7654 3210
- *         |       ^- DLL, 0=enable
- *         |      ^-- output strength, 0=full, 1=reduced
- *         |^.. .^--- Rtt, 00=off, 01=75, 10=150, 11=50 Ohm
- *         | ^^ ^-- Posted CAS# AL, 0-6
- *      ^^ ^------ OCD: 000=OCD exit, 111=enable defaults
- *     ^------ DQS#, 0=enable, 1=disable
- *    ^------- RDQS enable, 0=no, 1=yes
- *  ^-------- outputs, 0=enabled, 1=disabled
- *
- *  EMR2 definition:
- *  bit 7
- *  1 1
- *  2 1098 7654 3210
- *         ^-- SRT, 0=1x (0-85 deg.C), 1=2x (>85 deg.C)
- *  all other bits = 0
- *
- *  EMR3 definition: all bits 0
- */
-
-#define MRS	CMD(0x0)
-#define PALL	CMD(0x1)
-#define PRE	CMD(0x2)
-#define DPD	CMD(0x3)
-#define REFS	CMD(0x4)
-#define REFA	CMD(0x5)
-#define CKEL	CMD(0x6)
-#define NOP	CMD(0x7)
-#define REFSX	CMD(0x8)
-#define MRR	CMD(0x9)
-
-#define EMRS1 (MRS | BANK(1))
-#define EMRS2 (MRS | BANK(2))
-#define EMRS3 (MRS | BANK(3))
-
-/* Burst is (1 << S5P_DRAM_BURST), i.e. S5P_DRAM_BURST=2 for burst 4 */
-#ifndef S5P_DRAM_BURST
-/* (LP)DDR2 supports burst 4 only, make it default */
-# define S5P_DRAM_BURST 2
-#endif
-
-/**
- * Initialization sequences for different kinds of DRAM
- */
-#define dcmd(x) writel((x) | CHIP(chip), base + S5P_DMC_DIRECTCMD)
-
-static void __bare_init s5p_dram_init_seq_lpddr(phys_addr_t base, unsigned chip)
-{
-	const uint32_t emr = 0x400; /* DQS disable */
-	const uint32_t mr = (((S5P_DRAM_WR) - 1) << 9)
-			  | ((S5P_DRAM_CAS) << 4)
-			  | (S5P_DRAM_BURST);
-	/* TODO this sequence is untested */
-	dcmd(PALL); dcmd(REFA); dcmd(REFA);
-	dcmd(MRS   | ADDR(mr));
-	dcmd(EMRS1 | ADDR(emr));
-}
-
-static void __bare_init s5p_dram_init_seq_lpddr2(phys_addr_t base, unsigned chip)
-{
-	const uint32_t mr = (((S5P_DRAM_WR) - 1) << 9)
-			  | ((S5P_DRAM_CAS) << 4)
-			  | (S5P_DRAM_BURST);
-	/* TODO this sequence is untested */
-	dcmd(NOP);
-	dcmd(MRS | ADDR(mr));
-	do {
-		dcmd(MRR);
-	} while (readl(base + S5P_DMC_MRSTATUS) & 0x01); /* poll DAI */
-}
-
-static void __bare_init s5p_dram_init_seq_ddr2(phys_addr_t base, unsigned chip)
-{
-	const uint32_t emr = 0x400; /* DQS disable */
-	const uint32_t mr = (((S5P_DRAM_WR) - 1) << 9)
-			  | ((S5P_DRAM_CAS) << 4)
-			  | (S5P_DRAM_BURST);
-	dcmd(NOP);
-	/* FIXME wait here? JEDEC recommends but nobody does */
-	dcmd(PALL); dcmd(EMRS2); dcmd(EMRS3);
-	dcmd(EMRS1 | ADDR(emr));         /* DQS disable */
-	dcmd(MRS   | ADDR(mr | 0x100));  /* DLL reset */
-	dcmd(PALL); dcmd(REFA); dcmd(REFA);
-	dcmd(MRS   | ADDR(mr));          /* DLL no reset */
-	dcmd(EMRS1 | ADDR(emr | 0x380)); /* OCD defaults */
-	dcmd(EMRS1 | ADDR(emr));         /* OCD exit */
-}
-
-#undef dcmd
-
-static inline void __bare_init s5p_dram_start_dll(phys_addr_t base, uint32_t phycon1)
-{
-	uint32_t pc0 = 0x00101000; /* the only legal initial value */
-	uint32_t lv;
-
-	/* Init DLL */
-	writel(pc0, base + S5P_DMC_PHYCONTROL0);
-	writel(phycon1, base + S5P_DMC_PHYCONTROL1);
-
-	/* DLL on */
-	pc0 |= 0x2;
-	writel(pc0, base + S5P_DMC_PHYCONTROL0);
-
-	/* DLL start */
-	pc0 |= 0x1;
-	writel(pc0, base + S5P_DMC_PHYCONTROL0);
-
-	/* Find lock val */
-	do {
-		lv = readl(base + S5P_DMC_PHYSTATUS);
-	} while ((lv & 0x7) != 0x7);
-
-	lv >>= 6;
-	lv &= 0xff; /* ctrl_lock_value[9:2] - coarse */
-	pc0 |= (lv << 24); /* ctrl_force */
-	writel(pc0, base + S5P_DMC_PHYCONTROL0); /* force value locking */
-}
-
-static inline void __bare_init s5p_dram_setup(phys_addr_t base, uint32_t mc0, uint32_t mc1,
-				       int bus16, uint32_t mcon)
-{
-	mcon |= (S5P_DRAM_BURST) << 20;
-	/* 16 or 32-bit bus ? */
-	mcon |= bus16 ? 0x1000 : 0x2000;
-	if (mc1)
-		mcon |= 0x10000; /* two chips */
-
-	writel(mcon, base + S5P_DMC_MEMCONTROL);
-
-	/* Set up memory layout */
-	writel(mc0, base + S5P_DMC_MEMCONFIG0);
-	if (mc1)
-		writel(mc1, base + S5P_DMC_MEMCONFIG1);
-
-	/* Open page precharge policy - reasonable defaults */
-	writel(0xFF000000, base + S5P_DMC_PRECHCONFIG);
-
-	/* Set up timings */
-	writel(DMC_TIMING_AREF, base + S5P_DMC_TIMINGAREF);
-	writel(DMC_TIMING_ROW,  base + S5P_DMC_TIMINGROW);
-	writel(DMC_TIMING_DATA, base + S5P_DMC_TIMINGDATA);
-	writel(DMC_TIMING_PWR,  base + S5P_DMC_TIMINGPOWER);
-}
-
-static inline void __bare_init s5p_dram_start(phys_addr_t base)
-{
-	/* Reasonable defaults and auto-refresh on */
-	writel(0x0FFF1070, base + S5P_DMC_CONCONTROL);
-	/* Reasonable defaults */
-	writel(0xFFFF00FF, base + S5P_DMC_PWRDNCONFIG);
-}
-
-/*
- * Initialize LPDDR memory bank
- * TODO: this function is untested, see also init_seq function
- */
-void __bare_init s5p_init_dram_bank_lpddr(phys_addr_t base, uint32_t mc0, uint32_t mc1, int bus16)
-{
-	/* refcount 8, 90 deg. shift */
-	s5p_dram_start_dll(base, 0x00000085);
-	/* LPDDR type */
-	s5p_dram_setup(base, mc0, mc1, bus16, 0x100);
-
-	/* Start-Up Commands */
-	s5p_dram_init_seq_lpddr(base, 0);
-	if (mc1)
-		s5p_dram_init_seq_lpddr(base, 1);
-
-	s5p_dram_start(base);
-}
-
-/*
- * Initialize LPDDR2 memory bank
- * TODO: this function is untested, see also init_seq function
- */
-void __bare_init s5p_init_dram_bank_lpddr2(phys_addr_t base, uint32_t mc0, uint32_t mc1, int bus16)
-{
-	/* refcount 8, 90 deg. shift */
-	s5p_dram_start_dll(base, 0x00000085);
-	/* LPDDR2 type */
-	s5p_dram_setup(base, mc0, mc1, bus16, 0x200);
-
-	/* Start-Up Commands */
-	s5p_dram_init_seq_lpddr2(base, 0);
-	if (mc1)
-		s5p_dram_init_seq_lpddr2(base, 1);
-
-	s5p_dram_start(base);
-}
-
-/*
- * Initialize DDR2 memory bank
- */
-void __bare_init s5p_init_dram_bank_ddr2(phys_addr_t base, uint32_t mc0, uint32_t mc1, int bus16)
-{
-	/* refcount 8, 180 deg. shift */
-	s5p_dram_start_dll(base, 0x00000086);
-	/* DDR2 type */
-	s5p_dram_setup(base, mc0, mc1, bus16, 0x400);
-
-	/* Start-Up Commands */
-	s5p_dram_init_seq_ddr2(base, 0);
-	if (mc1)
-		s5p_dram_init_seq_ddr2(base, 1);
-
-	s5p_dram_start(base);
-}
-
-
-#define BANK_ENABLED(base) (readl((base) + S5P_DMC_PHYCONTROL0) & 1)
-#define NUM_EXTRA_CHIPS(base) ((readl((base) + S5P_DMC_MEMCONTROL) >> 16) & 0xF)
-
-#define BANK_START(x) ((x) & 0xFF000000)
-#define BANK_END(x) (BANK_START(x) | ~(((x) & 0x00FF0000) << 8))
-#define BANK_LEN(x) (BANK_END(x) - BANK_START(x) + 1)
-
-static inline void sortswap(uint32_t *x, uint32_t *y)
-{
-	if (*y < *x) {
-		*x ^= *y;
-		*y ^= *x;
-		*x ^= *y;
-	}
-}
-
-uint32_t s5p_get_memory_size(void)
-{
-	int i;
-	uint32_t len;
-	uint32_t mc[4] = { 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF };
-	/* Read MEMCONFIG registers */
-	if (BANK_ENABLED(S5P_DMC0_BASE)) {
-		mc[0] = readl(S5P_DMC0_BASE + S5P_DMC_MEMCONFIG0);
-		if (NUM_EXTRA_CHIPS(S5P_DMC0_BASE) > 0)
-			mc[1] = readl(S5P_DMC0_BASE + S5P_DMC_MEMCONFIG1);
-	}
-	if (BANK_ENABLED(S5P_DMC1_BASE)) {
-		mc[2] = readl(S5P_DMC1_BASE + S5P_DMC_MEMCONFIG0);
-		if (NUM_EXTRA_CHIPS(S5P_DMC1_BASE) > 0)
-			mc[3] = readl(S5P_DMC1_BASE + S5P_DMC_MEMCONFIG1);
-	}
-	/* Sort using a sorting network */
-	sortswap(mc + 0, mc + 2);
-	sortswap(mc + 1, mc + 3);
-	sortswap(mc + 0, mc + 1);
-	sortswap(mc + 2, mc + 3);
-	sortswap(mc + 1, mc + 2);
-	/* Is at least one chip enabled? */
-	if (mc[0] == 0xFFFFFFFF)
-		return 0;
-	/* Determine maximum continuous region at start */
-	len = BANK_LEN(mc[0]);
-	for (i = 1; i < 4; ++i) {
-		if (BANK_START(mc[i]) == BANK_END(mc[i - 1]) + 1)
-			len += BANK_LEN(mc[i]);
-		else
-			break;
-	}
-	return len;
-}
diff --git a/arch/arm/mach-samsung/reset_source.c b/arch/arm/mach-samsung/reset_source.c
deleted file mode 100644
index c1365b2003..0000000000
--- a/arch/arm/mach-samsung/reset_source.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * (C) Copyright 2012 Juergen Beisert - <kernel@pengutronix.de>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-
-#include <common.h>
-#include <init.h>
-#include <io.h>
-#include <reset_source.h>
-#include <mach/s3c-iomap.h>
-
-/* S3C2440 relevant */
-#define S3C2440_GSTATUS2 0xb4
-# define S3C2440_GSTATUS2_PWRST (1 << 0)
-# define S3C2440_GSTATUS2_SLEEPRST (1 << 1)
-# define S3C2440_GSTATUS2_WDRST (1 << 2)
-
-static int s3c_detect_reset_source(void)
-{
-	u32 reg = readl(S3C_GPIO_BASE + S3C2440_GSTATUS2);
-
-	if (reg & S3C2440_GSTATUS2_PWRST) {
-		reset_source_set(RESET_POR);
-		writel(S3C2440_GSTATUS2_PWRST,
-					S3C_GPIO_BASE + S3C2440_GSTATUS2);
-		return 0;
-	}
-
-	if (reg & S3C2440_GSTATUS2_SLEEPRST) {
-		reset_source_set(RESET_WKE);
-		writel(S3C2440_GSTATUS2_SLEEPRST,
-					S3C_GPIO_BASE + S3C2440_GSTATUS2);
-		return 0;
-	}
-
-	if (reg & S3C2440_GSTATUS2_WDRST) {
-		reset_source_set(RESET_WDG);
-		writel(S3C2440_GSTATUS2_WDRST,
-					S3C_GPIO_BASE + S3C2440_GSTATUS2);
-		return 0;
-	}
-
-	/* else keep the default 'unknown' state */
-	return 0;
-}
-
-device_initcall(s3c_detect_reset_source);
diff --git a/arch/arm/mach-samsung/s3c-timer.c b/arch/arm/mach-samsung/s3c-timer.c
deleted file mode 100644
index 38bcebc7c4..0000000000
--- a/arch/arm/mach-samsung/s3c-timer.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-
-#include <config.h>
-#include <common.h>
-#include <init.h>
-#include <clock.h>
-#include <io.h>
-#include <mach/s3c-iomap.h>
-#include <mach/s3c-generic.h>
-
-#define S3C_TCFG0 (S3C_TIMER_BASE + 0x00)
-# define S3C_TCFG0_T4MASK 0xff00
-# define S3C_TCFG0_SET_PSCL234(x) ((x) << 8)
-# define S3C_TCFG0_GET_PSCL234(x) (((x) >> 8) & 0xff)
-#define S3C_TCFG1 (S3C_TIMER_BASE + 0x04)
-# define S3C_TCFG1_T4MASK 0xf0000
-# define S3C_TCFG1_SET_T4MUX(x) ((x) << 16)
-# define S3C_TCFG1_GET_T4MUX(x) (((x) >> 16) & 0xf)
-#define S3C_TCON (S3C_TIMER_BASE + 0x08)
-# define S3C_TCON_T4MASK (7 << 20)
-# define S3C_TCON_T4START (1 << 20)
-# define S3C_TCON_T4MANUALUPD (1 << 21)
-# define S3C_TCON_T4RELOAD (1 <<22)
-#define S3C_TCNTB4 (S3C_TIMER_BASE + 0x3c)
-#define S3C_TCNTO4 (S3C_TIMER_BASE + 0x40)
-
-#ifdef CONFIG_ARCH_S3C24xx
-# define TIMER_WIDTH 16
-# define TIMER_SHIFT 10
-# define PRE_MUX 3
-# define PRE_MUX_ADD 1
-static const uint32_t max = 0x0000ffff;
-#else /* for S3C64xx and S5Pxx */
-# define TIMER_WIDTH 32
-# define TIMER_SHIFT 10
-# define PRE_MUX 4
-# define PRE_MUX_ADD 0
-static const uint32_t max = ~0;
-#endif
-
-static void s3c_init_t4_clk_source(void)
-{
-	unsigned reg;
-
-	reg = readl(S3C_TCON) & ~S3C_TCON_T4MASK; /* stop timer 4 */
-	writel(reg, S3C_TCON);
-	reg = readl(S3C_TCFG0) & ~S3C_TCFG0_T4MASK;
-	reg |= S3C_TCFG0_SET_PSCL234(0); /* 0 means pre scaler is '256' */
-	writel(reg, S3C_TCFG0);
-	reg = readl(S3C_TCFG1) & ~S3C_TCFG1_T4MASK;
-	reg |= S3C_TCFG1_SET_T4MUX(PRE_MUX); /* / 16 */
-	writel(reg, S3C_TCFG1);
-}
-
-static unsigned s3c_get_t4_clk(void)
-{
-	unsigned clk = s3c_get_pclk();
-	unsigned pre = S3C_TCFG0_GET_PSCL234(readl(S3C_TCFG0)) + 1;
-	unsigned div = S3C_TCFG1_GET_T4MUX(readl(S3C_TCFG1)) + PRE_MUX_ADD;
-
-	return clk / pre / (1 << div);
-}
-
-static void s3c_timer_init(void)
-{
-	unsigned tcon;
-
-	tcon = readl(S3C_TCON) & ~S3C_TCON_T4MASK;
-
-	writel(max, S3C_TCNTB4);	/* reload value */
-	/* force a manual counter update */
-	writel(tcon | S3C_TCON_T4MANUALUPD, S3C_TCON);
-}
-
-static void s3c_timer_start(void)
-{
-	unsigned tcon;
-
-	tcon  = readl(S3C_TCON) & ~S3C_TCON_T4MANUALUPD;
-	tcon |= S3C_TCON_T4START | S3C_TCON_T4RELOAD;
-	writel(tcon, S3C_TCON);
-}
-
-static uint64_t s3c_clocksource_read(void)
-{
-	/* note: its a down counter */
-	return max - readl(S3C_TCNTO4);
-}
-
-static struct clocksource cs = {
-	.read = s3c_clocksource_read,
-	.mask = CLOCKSOURCE_MASK(TIMER_WIDTH),
-	.shift = TIMER_SHIFT,
-	.priority = 80,
-};
-
-static int s3c_clk_src_init(void)
-{
-	/* select its clock source first */
-	s3c_init_t4_clk_source();
-
-	s3c_timer_init();
-	s3c_timer_start();
-
-	cs.mult = clocksource_hz2mult(s3c_get_t4_clk(), cs.shift);
-
-	return init_clock(&cs);
-}
-core_initcall(s3c_clk_src_init);
diff --git a/scripts/.gitignore b/scripts/.gitignore
index f78793eab7..3ca742ac6e 100644
--- a/scripts/.gitignore
+++ b/scripts/.gitignore
@@ -14,7 +14,6 @@ kwboot-target
 gen_netx_image
 omap_signGP
 mk-omap-image
-s5p_cksum
 mkublheader
 zynq_mkimage
 socfpga_mkimage
diff --git a/scripts/Kconfig b/scripts/Kconfig
index 25d57e4b2a..dcd5f32d1d 100644
--- a/scripts/Kconfig
+++ b/scripts/Kconfig
@@ -63,13 +63,6 @@ config OMAP_IMAGE
 	help
 	  This enables building the image creation tools for TI OMAP SoCs
 
-config S5P_IMAGE
-	bool "S5P image tool" if COMPILE_HOST_TOOLS
-	depends on ARCH_S5PCxx || COMPILE_HOST_TOOLS
-	default y if ARCH_S5PCxx
-	help
-	  This enables building the image creation tool for S5P SoCs
-
 config DAVINCI_IMAGE
 	bool "Davinci image tool" if COMPILE_HOST_TOOLS
 	depends on ARCH_DAVINCI || COMPILE_HOST_TOOLS
diff --git a/scripts/Makefile b/scripts/Makefile
index 39d71d4e99..ac88ebb240 100644
--- a/scripts/Makefile
+++ b/scripts/Makefile
@@ -19,7 +19,6 @@ hostprogs-always-$(CONFIG_KALLSYMS)			+= kallsyms
 hostprogs-always-$(CONFIG_MIPS)				+= mips-relocs
 hostprogs-always-$(CONFIG_MVEBU_HOSTTOOLS)		+= kwbimage kwboot mvebuimg
 hostprogs-always-$(CONFIG_OMAP_IMAGE)			+= omap_signGP mk-omap-image
-hostprogs-always-$(CONFIG_S5P_IMAGE)			+= s5p_cksum
 hostprogs-always-$(CONFIG_DAVINCI_IMAGE)		+= mkublheader
 HOSTCFLAGS_zynq_mkimage.o = -I$(srctree) -I$(srctree)/arch/arm/mach-zynq/include
 hostprogs-always-$(CONFIG_ZYNQ_MKIMAGE)			+= zynq_mkimage
-- 
2.30.2




^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 2/5] mci: remove s3c driver
  2023-02-28 13:57 [PATCH 0/5] ARM: remove Samsung arch Sascha Hauer
  2023-02-28 13:57 ` [PATCH 1/5] ARM: remove samsung arch Sascha Hauer
@ 2023-02-28 13:57 ` Sascha Hauer
  2023-02-28 13:57 ` [PATCH 3/5] mtd: nand: " Sascha Hauer
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Sascha Hauer @ 2023-02-28 13:57 UTC (permalink / raw)
  To: Barebox List

The Samsung architecture has been removed, remove the mci driver
only used on this architecture as well.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 drivers/mci/Kconfig  |   7 -
 drivers/mci/Makefile |   1 -
 drivers/mci/s3c.c    | 762 -------------------------------------------
 3 files changed, 770 deletions(-)
 delete mode 100644 drivers/mci/s3c.c

diff --git a/drivers/mci/Kconfig b/drivers/mci/Kconfig
index 21d53c0c3f..bbdca67e9d 100644
--- a/drivers/mci/Kconfig
+++ b/drivers/mci/Kconfig
@@ -87,13 +87,6 @@ config MCI_ROCKCHIP_DWCMSHC
 	  Enable this entry to add support for a Rockchip derivation of the
 	  DWCMSHC controller found on some Rockchip SoCs like the RK3568.
 
-config MCI_S3C
-	bool "S3C"
-	depends on ARCH_S3C24xx
-	help
-	  Enable this entry to add support to read and write SD cards on a
-	  Samsung S3C24xx based system.
-
 config MCI_BCM283X
 	bool "MCI support for BCM283X"
 	depends on ARCH_BCM283X || COMPILE_TEST
diff --git a/drivers/mci/Makefile b/drivers/mci/Makefile
index 55ec97b3fe..e3dc5ad8ae 100644
--- a/drivers/mci/Makefile
+++ b/drivers/mci/Makefile
@@ -14,7 +14,6 @@ pbl-$(CONFIG_MCI_IMX_ESDHC_PBL)	+= imx-esdhc-pbl.o imx-esdhc-common.o
 obj-$(CONFIG_MCI_MXS)		+= mxs.o
 obj-$(CONFIG_MCI_OMAP_HSMMC)	+= omap_hsmmc.o
 obj-$(CONFIG_MCI_PXA)		+= pxamci.o
-obj-$(CONFIG_MCI_S3C)		+= s3c.o
 obj-$(CONFIG_MCI_ROCKCHIP_DWCMSHC)	+= rockchip-dwcmshc-sdhci.o
 obj-$(CONFIG_MCI_TEGRA)		+= tegra-sdmmc.o
 obj-$(CONFIG_MCI_SPI)		+= mci_spi.o
diff --git a/drivers/mci/s3c.c b/drivers/mci/s3c.c
deleted file mode 100644
index f1d00ecdc2..0000000000
--- a/drivers/mci/s3c.c
+++ /dev/null
@@ -1,762 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-// SPDX-FileCopyrightText: 2010 Juergen Beisert <juergen@kreuzholzen.de>
-// SPDX-FileCopyrightText: 2004-2006 Thomas Kleffel <tk@maintech.de>, maintech GmbH
-// SPDX-FileCopyrightText: 2008 Simtec Electronics <ben-linux@fluff.org>
-// SPDX-FileCopyrightText: 2006 OpenMoko, Inc (Harald Welte <laforge@openmoko.org>)
-// SPDX-FileCopyrightText: 2005 Thomas Kleffel
-
-/*
- * This code is partially based on Linux and u-boot sources, among others the
- * u-boot pxa MMC driver and linux/drivers/mmc/s3c2410mci.c.
- */
-
-/**
- * @file
- * @brief MCI card host interface for S3C2440 CPU
- */
-
-/* #define DEBUG */
-
-#include <common.h>
-#include <init.h>
-#include <mci.h>
-#include <errno.h>
-#include <clock.h>
-#include <io.h>
-#include <linux/err.h>
-#include <mach/s3c-mci.h>
-#include <mach/s3c-generic.h>
-#include <mach/s3c-iomap.h>
-
-#define GET_HOST_DATA(x) (x->priv)
-#define GET_MCI_PDATA(x) (x->platform_data)
-
-#define SDICON 0x0
-# define SDICON_SDRESET (1 << 8)
-# define SDICON_MMCCLOCK (1 << 5) /* this is a clock type SD or MMC style WTF? */
-# define SDICON_BYTEORDER (1 << 4)
-# define SDICON_SDIOIRQ (1 << 3)
-# define SDICON_RWAITEN (1 << 2)
-# define SDICON_FIFORESET (1 << 1) /* reserved bit on 2440 ????? */
-# define SDICON_CLKEN (1 << 0) /* enable/disable external clock */
-
-#define SDIPRE 0x4
-
-#define SDICMDARG 0x8
-
-#define SDICMDCON 0xc
-# define SDICMDCON_ABORT (1 << 12)
-# define SDICMDCON_WITHDATA (1 << 11)
-# define SDICMDCON_LONGRSP (1 << 10)
-# define SDICMDCON_WAITRSP (1 << 9)
-# define SDICMDCON_CMDSTART (1 << 8)
-# define SDICMDCON_SENDERHOST (1 << 6)
-# define SDICMDCON_INDEX (0x3f)
-
-#define SDICMDSTAT 0x10
-# define SDICMDSTAT_CRCFAIL (1 << 12)
-# define SDICMDSTAT_CMDSENT (1 << 11)
-# define SDICMDSTAT_CMDTIMEOUT (1 << 10)
-# define SDICMDSTAT_RSPFIN (1 << 9)
-# define SDICMDSTAT_XFERING (1 << 8)
-# define SDICMDSTAT_INDEX (0xff)
-
-#define SDIRSP0 0x14
-#define SDIRSP1 0x18
-#define SDIRSP2 0x1C
-#define SDIRSP3 0x20
-
-#define SDITIMER 0x24
-#define SDIBSIZE 0x28
-
-#define SDIDCON 0x2c
-# define SDIDCON_DS_BYTE (0 << 22)
-# define SDIDCON_DS_HALFWORD (1 << 22)
-# define SDIDCON_DS_WORD (2 << 22)
-# define SDIDCON_IRQPERIOD (1 << 21)
-# define SDIDCON_TXAFTERRESP (1 << 20)
-# define SDIDCON_RXAFTERCMD (1 << 19)
-# define SDIDCON_BUSYAFTERCMD (1 << 18)
-# define SDIDCON_BLOCKMODE (1 << 17)
-# define SDIDCON_WIDEBUS (1 << 16)
-# define SDIDCON_DMAEN (1 << 15)
-# define SDIDCON_STOP (0 << 14)
-# define SDIDCON_DATSTART (1 << 14)
-# define SDIDCON_DATMODE (3 << 12)
-# define SDIDCON_BLKNUM (0xfff)
-# define SDIDCON_XFER_READY    (0 << 12)
-# define SDIDCON_XFER_CHKSTART (1 << 12)
-# define SDIDCON_XFER_RXSTART  (2 << 12)
-# define SDIDCON_XFER_TXSTART  (3 << 12)
-
-#define SDIDCNT 0x30
-# define SDIDCNT_BLKNUM_SHIFT 12
-
-#define SDIDSTA 0x34
-# define SDIDSTA_RDYWAITREQ (1 << 10)
-# define SDIDSTA_SDIOIRQDETECT (1 << 9)
-# define SDIDSTA_FIFOFAIL (1 << 8) /* reserved on 2440 */
-# define SDIDSTA_CRCFAIL (1 << 7)
-# define SDIDSTA_RXCRCFAIL (1 << 6)
-# define SDIDSTA_DATATIMEOUT (1 << 5)
-# define SDIDSTA_XFERFINISH (1 << 4)
-# define SDIDSTA_BUSYFINISH (1 << 3)
-# define SDIDSTA_SBITERR (1 << 2) /* reserved on 2410a/2440 */
-# define SDIDSTA_TXDATAON (1 << 1)
-# define SDIDSTA_RXDATAON (1 << 0)
-
-#define SDIFSTA 0x38
-# define SDIFSTA_FIFORESET (1<<16)
-# define SDIFSTA_FIFOFAIL (3<<14)  /* 3 is correct (2 bits) */
-# define SDIFSTA_TFDET (1<<13)
-# define SDIFSTA_RFDET (1<<12)
-# define SDIFSTA_TFHALF (1<<11)
-# define SDIFSTA_TFEMPTY (1<<10)
-# define SDIFSTA_RFLAST (1<<9)
-# define SDIFSTA_RFFULL (1<<8)
-# define SDIFSTA_RFHALF (1<<7)
-# define SDIFSTA_COUNTMASK (0x7f)
-
-#define SDIIMSK 0x3C
-# define SDIIMSK_RESPONSECRC    (1<<17)
-# define SDIIMSK_CMDSENT        (1<<16)
-# define SDIIMSK_CMDTIMEOUT     (1<<15)
-# define SDIIMSK_RESPONSEND     (1<<14)
-# define SDIIMSK_READWAIT       (1<<13)
-# define SDIIMSK_SDIOIRQ        (1<<12)
-# define SDIIMSK_FIFOFAIL       (1<<11)
-# define SDIIMSK_CRCSTATUS      (1<<10)
-# define SDIIMSK_DATACRC        (1<<9)
-# define SDIIMSK_DATATIMEOUT    (1<<8)
-# define SDIIMSK_DATAFINISH     (1<<7)
-# define SDIIMSK_BUSYFINISH     (1<<6)
-# define SDIIMSK_SBITERR        (1<<5) /* reserved 2440/2410a */
-# define SDIIMSK_TXFIFOHALF     (1<<4)
-# define SDIIMSK_TXFIFOEMPTY    (1<<3)
-# define SDIIMSK_RXFIFOLAST     (1<<2)
-# define SDIIMSK_RXFIFOFULL     (1<<1)
-# define SDIIMSK_RXFIFOHALF     (1<<0)
-
-#define SDIDATA 0x40
-
-struct s3c_mci_host {
-	struct mci_host	host;
-	void __iomem	*base;
-	int		bus_width:2; /* 0 = 1 bit, 1 = 4 bit, 2 = 8 bit */
-	unsigned	clock;	/* current clock in Hz */
-	unsigned	data_size;	/* data transfer in bytes */
-};
-
-#define to_s3c_host(h)	container_of(h, struct s3c_mci_host, host)
-
-/**
- * Finish a request
- * @param hw_dev Host interface instance
- *
- * Just a little bit paranoia.
- */
-static void s3c_finish_request(struct s3c_mci_host *host_data)
-{
-	/* TODO ensure the engines are stopped */
-}
-
-/**
- * Setup a new clock frequency on this MCI bus
- * @param hw_dev Host interface instance
- * @param nc New clock value in Hz (can be 0)
- * @return New clock value (may differ from 'nc')
- */
-static unsigned s3c_setup_clock_speed(struct s3c_mci_host *host_data, unsigned nc)
-{
-	unsigned clock;
-	uint32_t mci_psc;
-
-	if (nc == 0)
-		return 0;
-
-	clock = s3c_get_pclk();
-	/* Calculate the required prescaler value to get the requested frequency */
-	mci_psc = (clock + (nc >> 2)) / nc;
-
-	if (mci_psc > 256) {
-		mci_psc = 256;
-		pr_warning("SD/MMC clock might be too high!\n");
-	}
-
-	writel(mci_psc - 1, host_data->base + SDIPRE);
-
-	return clock / mci_psc;
-}
-
-/**
- * Reset the MCI engine (the hard way)
- * @param hw_dev Host interface instance
- *
- * This will reset everything in all registers of this unit!
- */
-static void s3c_mci_reset(struct s3c_mci_host *host_data)
-{
-	/* reset the hardware */
-	writel(SDICON_SDRESET, host_data->base + SDICON);
-	/* wait until reset it finished */
-	while (readl(host_data->base + SDICON) & SDICON_SDRESET)
-		;
-}
-
-/**
- * Initialize hard and software
- * @param hw_dev Host interface instance
- * @param mci_dev MCI device instance (might be NULL)
- */
-static int s3c_mci_initialize(struct s3c_mci_host *host_data,
-			      struct device *mci_dev)
-{
-	s3c_mci_reset(host_data);
-
-	/* restore last settings */
-	host_data->clock = s3c_setup_clock_speed(host_data, host_data->clock);
-	writel(0x007FFFFF, host_data->base + SDITIMER);
-	writel(SDICON_MMCCLOCK, host_data->base + SDICON);
-	writel(512, host_data->base + SDIBSIZE);
-
-	return 0;
-}
-
-/**
- * Prepare engine's bits for the next command transfer
- * @param cmd_flags MCI's command flags
- * @param data_flags MCI's data flags
- * @return Register bits for this transfer
- */
-static uint32_t s3c_prepare_command_setup(unsigned cmd_flags, unsigned data_flags)
-{
-	uint32_t reg;
-
-	/* source (=host) */
-	reg = SDICMDCON_SENDERHOST;
-
-	if (cmd_flags & MMC_RSP_PRESENT) {
-		reg |= SDICMDCON_WAITRSP;
-		pr_debug("Command with response\n");
-	}
-	if (cmd_flags & MMC_RSP_136) {
-		reg |= SDICMDCON_LONGRSP;
-		pr_debug("Command with long response\n");
-	}
-	if (cmd_flags & MMC_RSP_CRC)
-		; /* FIXME */
-	if (cmd_flags & MMC_RSP_BUSY)
-		; /* FIXME */
-	if (cmd_flags & MMC_RSP_OPCODE)
-		; /* FIXME */
-	if (data_flags != 0)
-		reg |= SDICMDCON_WITHDATA;
-
-	return reg;
-}
-
-/**
- * Prepare engine's bits for the next data transfer
- * @param hw_dev Host interface device instance
- * @param data_flags MCI's data flags
- * @return Register bits for this transfer
- */
-static uint32_t s3c_prepare_data_setup(struct s3c_mci_host *host_data, unsigned data_flags)
-{
-	uint32_t reg = SDIDCON_BLOCKMODE;	/* block mode only is supported */
-
-	if (host_data->bus_width == 1)
-		reg |= SDIDCON_WIDEBUS;
-
-	/* enable any kind of data transfers on demand only */
-	if (data_flags & MMC_DATA_WRITE)
-		reg |= SDIDCON_TXAFTERRESP | SDIDCON_XFER_TXSTART;
-
-	if (data_flags & MMC_DATA_READ)
-		reg |= SDIDCON_RXAFTERCMD | SDIDCON_XFER_RXSTART;
-
-	/* TODO: Support more than the 2440 CPU */
-	reg |= SDIDCON_DS_WORD | SDIDCON_DATSTART;
-
-	return reg;
-}
-
-/**
- * Terminate a current running transfer
- * @param hw_dev Host interface device instance
- * @return 0 on success
- *
- * Note: Try to stop a running transfer. This should not happen, as all
- * transfers must complete in this driver. But who knows... ;-)
- */
-static int s3c_terminate_transfer(struct s3c_mci_host *host_data)
-{
-	unsigned stoptries = 3;
-
-	while (readl(host_data->base + SDIDSTA) & (SDIDSTA_TXDATAON | SDIDSTA_RXDATAON)) {
-		pr_debug("Transfer still in progress.\n");
-
-		writel(SDIDCON_STOP, host_data->base + SDIDCON);
-		s3c_mci_initialize(host_data, NULL);
-
-		if ((stoptries--) == 0) {
-			pr_warning("Cannot stop the engine!\n");
-			return -EINVAL;
-		}
-	}
-
-	return 0;
-}
-
-/**
- * Setup registers for data transfer
- * @param hw_dev Host interface device instance
- * @param data The data information (buffer, direction aso.)
- * @return 0 on success
- */
-static int s3c_prepare_data_transfer(struct s3c_mci_host *host_data, struct mci_data *data)
-{
-	uint32_t reg;
-
-	writel(data->blocksize, host_data->base + SDIBSIZE);
-	reg = s3c_prepare_data_setup(host_data, data->flags);
-	reg |= data->blocks & SDIDCON_BLKNUM;
-	writel(reg, host_data->base + SDIDCON);
-	writel(0x007FFFFF, host_data->base + SDITIMER);
-
-	return 0;
-}
-
-/**
- * Send a command and receive the response
- * @param hw_dev Host interface device instance
- * @param cmd The command to handle
- * @param data The data information (buffer, direction aso.)
- * @return 0 on success
- */
-static int s3c_send_command(struct s3c_mci_host *host_data, struct mci_cmd *cmd,
-				struct mci_data *data)
-{
-	uint32_t reg, t1;
-	int rc;
-
-	writel(0x007FFFFF, host_data->base + SDITIMER);
-
-	/* setup argument */
-	writel(cmd->cmdarg, host_data->base + SDICMDARG);
-
-	/* setup command and transfer characteristic */
-	reg = s3c_prepare_command_setup(cmd->resp_type, data != NULL ? data->flags : 0);
-	reg |= cmd->cmdidx & SDICMDCON_INDEX;
-
-	/* run the command right now */
-	writel(reg | SDICMDCON_CMDSTART, host_data->base + SDICMDCON);
-	t1 = readl(host_data->base + SDICMDSTAT);
-	/* wait until command is done */
-	while (1) {
-		reg = readl(host_data->base + SDICMDSTAT);
-		/* done? */
-		if (cmd->resp_type & MMC_RSP_PRESENT) {
-			if (reg & SDICMDSTAT_RSPFIN) {
-				writel(SDICMDSTAT_RSPFIN,
-					host_data->base + SDICMDSTAT);
-				rc = 0;
-				break;
-			}
-		} else {
-			if (reg & SDICMDSTAT_CMDSENT) {
-					writel(SDICMDSTAT_CMDSENT,
-						host_data->base + SDICMDSTAT);
-					rc = 0;
-					break;
-			}
-		}
-		/* timeout? */
-		if (reg & SDICMDSTAT_CMDTIMEOUT) {
-			writel(SDICMDSTAT_CMDTIMEOUT,
-				host_data->base + SDICMDSTAT);
-			rc = -ETIMEDOUT;
-			break;
-		}
-	}
-
-	if ((rc == 0) && (cmd->resp_type & MMC_RSP_PRESENT)) {
-		cmd->response[0] = readl(host_data->base + SDIRSP0);
-		cmd->response[1] = readl(host_data->base + SDIRSP1);
-		cmd->response[2] = readl(host_data->base + SDIRSP2);
-		cmd->response[3] = readl(host_data->base + SDIRSP3);
-	}
-	/* do not disable the clock! */
-	return rc;
-}
-
-/**
- * Clear major registers prior a new transaction
- * @param hw_dev Host interface device instance
- * @return 0 on success
- *
- * FIFO clear is only necessary on 2440, but doesn't hurt on 2410
- */
-static int s3c_prepare_engine(struct s3c_mci_host *host_data)
-{
-	int rc;
-
-	rc = s3c_terminate_transfer(host_data);
-	if (rc != 0)
-		return rc;
-
-	writel(-1, host_data->base + SDICMDSTAT);
-	writel(-1, host_data->base + SDIDSTA);
-	writel(-1, host_data->base + SDIFSTA);
-
-	return 0;
-}
-
-/**
- * Handle MCI commands without data
- * @param hw_dev Host interface device instance
- * @param cmd The command to handle
- * @return 0 on success
- *
- * This functions handles the following MCI commands:
- * - "broadcast command (BC)" without a response
- * - "broadcast commands with response (BCR)"
- * - "addressed command (AC)" with response, but without data
- */
-static int s3c_mci_std_cmds(struct s3c_mci_host *host_data, struct mci_cmd *cmd)
-{
-	int rc;
-
-	rc = s3c_prepare_engine(host_data);
-	if (rc != 0)
-		return 0;
-
-	return s3c_send_command(host_data, cmd, NULL);
-}
-
-/**
- * Read one block of data from the FIFO
- * @param hw_dev Host interface device instance
- * @param data The data information (buffer, direction aso.)
- * @return 0 on success
- */
-static int s3c_mci_read_block(struct s3c_mci_host *host_data, struct mci_data *data)
-{
-	uint32_t *p;
-	unsigned cnt, data_size;
-
-#define READ_REASON_TO_FAIL (SDIDSTA_CRCFAIL | SDIDSTA_RXCRCFAIL | SDIDSTA_DATATIMEOUT)
-
-	p = (uint32_t*)data->dest;
-	data_size = data->blocksize * data->blocks;
-
-	while (data_size > 0) {
-
-		/* serious error? */
-		if (readl(host_data->base + SDIDSTA) & READ_REASON_TO_FAIL) {
-			pr_err("Failed while reading data\n");
-			return -EIO;
-		}
-
-		/* now check the FIFO status */
-		if (readl(host_data->base + SDIFSTA) & SDIFSTA_FIFOFAIL) {
-			pr_err("Data loss due to FIFO overflow when reading\n");
-			return -EIO;
-		}
-
-		/* we only want to read full words */
-		cnt = (readl(host_data->base + SDIFSTA) & SDIFSTA_COUNTMASK) >> 2;
-
-		/* read one chunk of data from the FIFO */
-		while (cnt--) {
-			*p = readl(host_data->base + SDIDATA);
-			p++;
-			if (data_size >= 4)
-				data_size -= 4;
-			else {
-				data_size = 0;
-				break;
-			}
-		}
-	}
-
-	return 0;
-}
-
-/**
- * Write one block of data into the FIFO
- * @param hw_dev Host interface device instance
- * @param cmd The command to handle
- * @param data The data information (buffer, direction aso.)
- * @return 0 on success
- *
- * We must ensure data in the FIFO when the command phase changes into the
- * data phase. To ensure this, the FIFO gets filled first, then the command.
- */
-static int s3c_mci_write_block(struct s3c_mci_host *host_data, struct mci_cmd *cmd,
-				struct mci_data *data)
-{
-	const uint32_t *p = (const uint32_t*)data->src;
-	unsigned cnt, data_size;
-	uint32_t reg;
-
-#define WRITE_REASON_TO_FAIL (SDIDSTA_CRCFAIL | SDIDSTA_DATATIMEOUT)
-
-	data_size = data->blocksize * data->blocks;
-	/*
-	 * With high clock rates we must fill the FIFO as early as possible
-	 * Its size is 16 words. We assume its empty, when this function is
-	 * entered.
-	 */
-	cnt = 16;
-	while (cnt--) {
-		writel(*p, host_data->base + SDIDATA);
-		p++;
-		if (data_size >= 4)
-			data_size -= 4;
-		else {
-			data_size = 0;
-			break;
-		}
-	}
-
-	/* data is now in place and waits for transmitt. Start the command right now */
-	s3c_send_command(host_data, cmd, data);
-
-	if ((reg = readl(host_data->base + SDIFSTA)) & SDIFSTA_FIFOFAIL) {
-		pr_err("Command fails immediatly due to FIFO underrun when writing %08X\n",
-			reg);
-		return -EIO;
-	}
-
-	while (data_size > 0) {
-
-		if (readl(host_data->base + SDIDSTA) & WRITE_REASON_TO_FAIL) {
-			pr_err("Failed writing data\n");
-			return -EIO;
-		}
-
-		/* now check the FIFO status */
-		if ((reg = readl(host_data->base + SDIFSTA)) & SDIFSTA_FIFOFAIL) {
-			pr_err("Data loss due to FIFO underrun when writing %08X\n",
-					reg);
-			return -EIO;
-		}
-
-		/* we only want to write full words */
-		cnt = 16 - (((readl(host_data->base + SDIFSTA) & SDIFSTA_COUNTMASK) + 3) >> 2);
-
-		/* fill the FIFO if it has free entries */
-		while (cnt--) {
-			writel(*p, host_data->base + SDIDATA);
-			p++;
-			if (data_size >= 4)
-				data_size -= 4;
-			else {
-				data_size = 0;
-				break;
-			}
-		}
-	}
-
-	return 0;
-}
-
-/**
- * Handle MCI commands with or without data
- * @param hw_dev Host interface device instance
- * @param cmd The command to handle
- * @param data The data information (buffer, direction aso.)
- * @return 0 on success
-*/
-static int s3c_mci_adtc(struct s3c_mci_host *host_data, struct mci_cmd *cmd,
-			struct mci_data *data)
-{
-	int rc;
-
-	rc = s3c_prepare_engine(host_data);
-	if (rc != 0)
-		return rc;
-
-	rc = s3c_prepare_data_transfer(host_data, data);
-	if (rc != 0)
-		return rc;
-
-	if (data->flags & MMC_DATA_READ) {
-		s3c_send_command(host_data, cmd, data);
-		rc = s3c_mci_read_block(host_data, data);
-		if (rc == 0) {
-			while (!(readl(host_data->base + SDIDSTA) & SDIDSTA_XFERFINISH))
-				;
-		} else
-			s3c_terminate_transfer(host_data);
-	}
-
-	if (data->flags & MMC_DATA_WRITE) {
-		rc = s3c_mci_write_block(host_data, cmd, data);
-		if (rc == 0) {
-			while (!(readl(host_data->base + SDIDSTA) & SDIDSTA_XFERFINISH))
-				;
-		} else
-			s3c_terminate_transfer(host_data);
-	}
-	writel(0, host_data->base + SDIDCON);
-
-	return rc;
-}
-
-/* ------------------------- MCI API -------------------------------------- */
-
-/**
- * Keep the attached MMC/SD unit in a well know state
- * @param host MCI host
- * @param mci_dev MCI device instance
- * @return 0 on success, negative value else
- */
-static int mci_reset(struct mci_host *host, struct device *mci_dev)
-{
-	struct s3c_mci_host *host_data = to_s3c_host(host);
-
-	return s3c_mci_initialize(host_data, mci_dev);
-}
-
-/**
- * Process one command to the MCI card
- * @param host MCI host
- * @param cmd The command to process
- * @param data The data to handle in the command (can be NULL)
- * @return 0 on success, negative value else
- */
-static int mci_request(struct mci_host *host, struct mci_cmd *cmd,
-			struct mci_data *data)
-{
-	struct s3c_mci_host *host_data = to_s3c_host(host);
-	int rc;
-
-	/* enable clock */
-	writel(readl(host_data->base + SDICON) | SDICON_CLKEN,
-		host_data->base + SDICON);
-
-	if ((cmd->resp_type == 0) || (data == NULL))
-		rc = s3c_mci_std_cmds(host_data, cmd);
-	else
-		rc = s3c_mci_adtc(host_data, cmd, data);	/* with response and data */
-
-	s3c_finish_request(host_data);
-
-	/* disable clock */
-	writel(readl(host_data->base + SDICON) & ~SDICON_CLKEN,
-		host_data->base + SDICON);
-	return rc;
-}
-
-/**
- * Setup the bus width and IO speed
- * @param host MCI host
- * @param bus_width New bus width value (1, 4 or 8)
- * @param clock New clock in Hz (can be '0' to disable the clock)
- */
-static void mci_set_ios(struct mci_host *host, struct mci_ios *ios)
-{
-	struct s3c_mci_host *host_data = to_s3c_host(host);
-	uint32_t reg;
-
-	switch (ios->bus_width) {
-	case MMC_BUS_WIDTH_4:
-		host_data->bus_width = 1;
-		break;
-	case MMC_BUS_WIDTH_1:
-		host_data->bus_width = 0;
-		break;
-	default:
-		return;
-	}
-
-	reg = readl(host_data->base + SDICON);
-	if (ios->clock) {
-		/* setup the IO clock frequency and enable it */
-		host_data->clock = s3c_setup_clock_speed(host_data, ios->clock);
-		reg |= SDICON_CLKEN;	/* enable the clock */
-	} else {
-		reg &= ~SDICON_CLKEN;	/* disable the clock */
-		host_data->clock = 0;
-	}
-	writel(reg, host_data->base + SDICON);
-
-	pr_debug("IO settings: bus width=%d, frequency=%u Hz\n",
-		host_data->bus_width, host_data->clock);
-}
-
-/* ----------------------------------------------------------------------- */
-
-static void s3c_info(struct device *hw_dev)
-{
-	struct s3c_mci_host *host = hw_dev->priv;
-	struct s3c_mci_platform_data *pd = hw_dev->platform_data;
-
-	printf("  Bus data width: %d bit\n", host->bus_width == 1 ? 4 : 1);
-	printf("  Bus frequency: %u Hz\n", host->clock);
-	printf("   Frequency limits: ");
-	if (pd->f_min == 0)
-		printf("no lower limit ");
-	else
-		printf("%u Hz lower limit ", pd->f_min);
-	if (pd->f_max == 0)
-		printf("- no upper limit");
-	else
-		printf("- %u Hz upper limit", pd->f_max);
-	printf("\n  Card detection support: %s\n",
-		pd->gpio_detect != 0 ? "yes" : "no");
-}
-
-static int s3c_mci_probe(struct device *hw_dev)
-{
-	struct resource *iores;
-	struct s3c_mci_host *s3c_host;
-	struct s3c_mci_platform_data *pd = hw_dev->platform_data;
-
-	s3c_host = xzalloc(sizeof(*s3c_host));
-	s3c_host->host.send_cmd = mci_request;
-	s3c_host->host.set_ios = mci_set_ios;
-	s3c_host->host.init = mci_reset;
-
-	/* TODO replace by the global func: enable the SDI unit clock */
-	writel(readl(S3C_CLOCK_POWER_BASE + 0x0c) | 0x200,
-		S3C_CLOCK_POWER_BASE + 0x0c);
-
-	if (pd == NULL) {
-		pr_err("Missing platform data\n");
-		return -EINVAL;
-	}
-
-	hw_dev->priv = s3c_host;
-	iores = dev_request_mem_resource(hw_dev, 0);
-	if (IS_ERR(iores))
-		return PTR_ERR(iores);
-	s3c_host->base = IOMEM(iores->start);
-
-	s3c_host->host.hw_dev = hw_dev;
-
-	/* feed forward the platform specific values */
-	s3c_host->host.voltages = pd->voltages;
-	s3c_host->host.host_caps = pd->caps;
-	s3c_host->host.f_min = pd->f_min == 0 ? s3c_get_pclk() / 256 : pd->f_min;
-	s3c_host->host.f_max = pd->f_max == 0 ? s3c_get_pclk() / 2 : pd->f_max;
-
-	if (IS_ENABLED(CONFIG_MCI_INFO))
-		hw_dev->info = s3c_info;
-
-	/*
-	 * Start the clock to let the engine and the card finishes its startup
-	 */
-	s3c_host->clock = s3c_setup_clock_speed(s3c_host, pd->f_min);
-	writel(SDICON_FIFORESET | SDICON_MMCCLOCK, s3c_host->base + SDICON);
-
-	return mci_register(&s3c_host->host);
-}
-
-static struct driver s3c_mci_driver = {
-        .name  = "s3c_mci",
-        .probe = s3c_mci_probe,
-};
-device_platform_driver(s3c_mci_driver);
-- 
2.30.2




^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 3/5] mtd: nand: remove s3c driver
  2023-02-28 13:57 [PATCH 0/5] ARM: remove Samsung arch Sascha Hauer
  2023-02-28 13:57 ` [PATCH 1/5] ARM: remove samsung arch Sascha Hauer
  2023-02-28 13:57 ` [PATCH 2/5] mci: remove s3c driver Sascha Hauer
@ 2023-02-28 13:57 ` Sascha Hauer
  2023-02-28 13:57 ` [PATCH 4/5] serial: " Sascha Hauer
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Sascha Hauer @ 2023-02-28 13:57 UTC (permalink / raw)
  To: Barebox List

The Samsung architecture has been removed, remove the NAND driver
only used on this architecture as well.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 drivers/mtd/nand/Kconfig        |   7 -
 drivers/mtd/nand/Makefile       |   2 -
 drivers/mtd/nand/nand_s3c24xx.c | 649 --------------------------------
 3 files changed, 658 deletions(-)
 delete mode 100644 drivers/mtd/nand/nand_s3c24xx.c

diff --git a/drivers/mtd/nand/Kconfig b/drivers/mtd/nand/Kconfig
index 4a673e9440..1cfd65f408 100644
--- a/drivers/mtd/nand/Kconfig
+++ b/drivers/mtd/nand/Kconfig
@@ -113,13 +113,6 @@ config NAND_ATMEL_PMECC
 	help
 	  Support for PMECC present on the SoC sam9x5 and sam9n12
 
-config NAND_S3C24XX
-	bool
-	prompt "Samsung S3C24XX NAND driver"
-	depends on ARCH_S3C24xx
-	help
-	  Add support for processor's NAND device controller.
-
 config MTD_NAND_ECC_SW_HAMMING_SMC
 	bool "NAND ECC Smart Media byte order"
 	default n
diff --git a/drivers/mtd/nand/Makefile b/drivers/mtd/nand/Makefile
index 1a17c49bff..6258eb2177 100644
--- a/drivers/mtd/nand/Makefile
+++ b/drivers/mtd/nand/Makefile
@@ -18,8 +18,6 @@ obj-$(CONFIG_MTD_NAND_OMAP_ELM)		+= omap_elm.o
 obj-$(CONFIG_NAND_ORION)		+= nand_orion.o
 obj-$(CONFIG_NAND_MRVL_NFC)		+= nand_mrvl_nfc.o
 obj-$(CONFIG_NAND_ATMEL)		+= atmel/
-obj-$(CONFIG_NAND_S3C24XX)		+= nand_s3c24xx.o
-pbl-$(CONFIG_NAND_S3C24XX)		+= nand_s3c24xx.o
 obj-$(CONFIG_NAND_MXS)			+= nand_mxs.o
 obj-$(CONFIG_MTD_NAND_DENALI)		+= nand_denali.o
 obj-$(CONFIG_MTD_NAND_DENALI_DT)	+= nand_denali_dt.o
diff --git a/drivers/mtd/nand/nand_s3c24xx.c b/drivers/mtd/nand/nand_s3c24xx.c
deleted file mode 100644
index 65d9a261c2..0000000000
--- a/drivers/mtd/nand/nand_s3c24xx.c
+++ /dev/null
@@ -1,649 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-/* linux/drivers/mtd/nand/s3c2410.c
- *
- * Copyright (C) 2009 Juergen Beisert, Pengutronix
- *
- * Copyright © 2004-2008 Simtec Electronics
- *	http://armlinux.simtec.co.uk/
- *	Ben Dooks <ben@simtec.co.uk>
- *
- * Samsung S3C2410 NAND driver
- *
- */
-
-#include <config.h>
-#include <common.h>
-#include <driver.h>
-#include <malloc.h>
-#include <init.h>
-#include <linux/mtd/mtd.h>
-#include <linux/mtd/rawnand.h>
-#include <linux/mtd/nand.h>
-#include <mach/s3c-generic.h>
-#include <mach/s3c-iomap.h>
-#include <mach/s3c24xx-nand.h>
-#include <io.h>
-#include <errno.h>
-#include <asm/sections.h>
-
-#ifdef CONFIG_S3C_NAND_BOOT
-# define __nand_boot_init __bare_init
-# ifndef BOARD_DEFAULT_NAND_TIMING
-#  define BOARD_DEFAULT_NAND_TIMING 0x0737
-# endif
-#else
-# define __nand_boot_init
-#endif
-
-/**
- * Define this symbol for testing purpose. It will add a command to read an
- * image from the NAND like it the boot strap code will do.
- */
-#define CONFIG_NAND_S3C_BOOT_DEBUG
-
-/* NAND controller's register */
-
-#define NFCONF 0x00
-
-#ifdef CONFIG_CPU_S3C2410
-
-#define NFCMD 0x04
-#define NFADDR 0x08
-#define NFDATA 0x0c
-#define NFSTAT 0x10
-#define NFECC 0x14
-
-/* S3C2410 specific bits */
-#define NFSTAT_BUSY (1)
-#define NFCONF_nFCE (1 << 11)
-#define NFCONF_INITECC (1 << 12)
-#define NFCONF_EN (1 << 15)
-
-#endif	/* CONFIG_CPU_S3C2410 */
-
-#ifdef CONFIG_CPU_S3C2440
-
-#define NFCONT 0x04
-#define NFCMD 0x08
-#define NFADDR 0x0C
-#define NFDATA 0x10
-#define NFSTAT 0x20
-#define NFECC 0x2C
-
-/* S3C2440 specific bits */
-#define NFSTAT_BUSY (1)
-#define NFCONT_nFCE (1 << 1)
-#define NFCONT_INITECC (1 << 4)
-#define NFCONT_EN (1)
-
-#endif	/* CONFIG_CPU_S3C2440 */
-
-
-struct s3c24x0_nand_host {
-	struct nand_chip	nand;
-	struct mtd_partition	*parts;
-	struct device		*dev;
-
-	void __iomem		*base;
-};
-
-/**
- * oob placement block for use with hardware ecc generation on small page
- */
-static struct nand_ecclayout nand_hw_eccoob = {
-	.eccbytes = 3,
-	.eccpos = { 0, 1, 2},
-	.oobfree = {
-		{
-			.offset = 8,
-			.length = 8
-		}
-	}
-};
-
-/* - Functions shared between the boot strap code and the regular driver - */
-
-/**
- * Issue the specified command to the NAND device
- * @param[in] host Base address of the NAND controller
- * @param[in] cmd Command for NAND flash
- */
-static void __nand_boot_init send_cmd(void __iomem *host, uint8_t cmd)
-{
-	writeb(cmd, host + NFCMD);
-}
-
-/**
- * Issue the specified address to the NAND device
- * @param[in] host Base address of the NAND controller
- * @param[in] addr Address for the NAND flash
- */
-static void __nand_boot_init send_addr(void __iomem *host, uint8_t addr)
-{
-	writeb(addr, host + NFADDR);
-}
-
-/**
- * Enable the NAND flash access
- * @param[in] host Base address of the NAND controller
- */
-static void __nand_boot_init enable_cs(void __iomem *host)
-{
-#ifdef CONFIG_CPU_S3C2410
-	writew(readw(host + NFCONF) & ~NFCONF_nFCE, host + NFCONF);
-#endif
-#ifdef CONFIG_CPU_S3C2440
-	writew(readw(host + NFCONT) & ~NFCONT_nFCE, host + NFCONT);
-#endif
-}
-
-/**
- * Disable the NAND flash access
- * @param[in] host Base address of the NAND controller
- */
-static void __nand_boot_init disable_cs(void __iomem *host)
-{
-#ifdef CONFIG_CPU_S3C2410
-	writew(readw(host + NFCONF) | NFCONF_nFCE, host + NFCONF);
-#endif
-#ifdef CONFIG_CPU_S3C2440
-	writew(readw(host + NFCONT) | NFCONT_nFCE, host + NFCONT);
-#endif
-}
-
-/**
- * Enable the NAND flash controller
- * @param[in] host Base address of the NAND controller
- * @param[in] timing Timing to access the NAND memory
- */
-static void __nand_boot_init enable_nand_controller(void __iomem *host, uint32_t timing)
-{
-#ifdef CONFIG_CPU_S3C2410
-	writew(timing + NFCONF_EN + NFCONF_nFCE, host + NFCONF);
-#endif
-#ifdef CONFIG_CPU_S3C2440
-	writew(NFCONT_EN + NFCONT_nFCE, host + NFCONT);
-	writew(timing, host + NFCONF);
-#endif
-}
-
-/**
- * Diable the NAND flash controller
- * @param[in] host Base address of the NAND controller
- */
-static void __nand_boot_init disable_nand_controller(void __iomem *host)
-{
-#ifdef CONFIG_CPU_S3C2410
-	writew(NFCONF_nFCE, host + NFCONF);
-#endif
-#ifdef CONFIG_CPU_S3C2440
-	writew(NFCONT_nFCE, host + NFCONT);
-#endif
-}
-
-/* ----------------------------------------------------------------------- */
-
-#ifdef CONFIG_CPU_S3C2440
-/**
- * Read one block of data from the NAND port
- * @param[in] mtd Instance data
- * @param[out] buf buffer to write data to
- * @param[in] len byte count
- *
- * This is a special block read variant for the S3C2440 CPU.
- */
-static void s3c2440_nand_read_buf(struct nand_chip *chip, uint8_t *buf, int len)
-{
-	struct s3c24x0_nand_host *host = chip->priv;
-
-	readsl(host->base + NFDATA, buf, len >> 2);
-
-	/* cleanup any fractional read */
-	if (len & 3) {
-		buf += len & ~3;
-
-		for (; len & 3; len--)
-			*buf++ = readb(host->base + NFDATA);
-	}
-}
-
-/**
- * Write one block of data to the NAND port
- * @param[in] mtd Instance data
- * @param[out] buf buffer to read data from
- * @param[in] len byte count
- *
- * This is a special block write variant for the S3C2440 CPU.
- */
-static void s3c2440_nand_write_buf(struct nand_chip *chip, const uint8_t *buf,
-					int len)
-{
-	struct s3c24x0_nand_host *host = chip->priv;
-
-	writesl(host->base + NFDATA, buf, len >> 2);
-
-	/* cleanup any fractional write */
-	if (len & 3) {
-		buf += len & ~3;
-
-		for (; len & 3; len--, buf++)
-			writeb(*buf, host->base + NFDATA);
-	}
-}
-#endif
-
-/**
- * Check the ECC and try to repair the data if possible
- * @param[in] mtd_info Not used
- * @param[inout] dat Pointer to the data buffer that might contain a bit error
- * @param[in] read_ecc ECC data from the OOB space
- * @param[in] calc_ecc ECC data calculated from the data
- * @return 0 no error, 1 repaired error, -1 no way...
- *
- * @note: This routine works always on a 24 bit ECC
- */
-static int s3c2410_nand_correct_data(struct nand_chip *chip, uint8_t *dat,
-				uint8_t *read_ecc, uint8_t *calc_ecc)
-{
-	unsigned int diff0, diff1, diff2;
-	unsigned int bit, byte;
-
-	diff0 = read_ecc[0] ^ calc_ecc[0];
-	diff1 = read_ecc[1] ^ calc_ecc[1];
-	diff2 = read_ecc[2] ^ calc_ecc[2];
-
-	if (diff0 == 0 && diff1 == 0 && diff2 == 0)
-		return 0;		/* ECC is ok */
-
-	/* sometimes people do not think about using the ECC, so check
-	 * to see if we have an 0xff,0xff,0xff read ECC and then ignore
-	 * the error, on the assumption that this is an un-eccd page.
-	 */
-	if (read_ecc[0] == 0xff && read_ecc[1] == 0xff && read_ecc[2] == 0xff)
-		return 0;
-
-	/* Can we correct this ECC (ie, one row and column change).
-	 * Note, this is similar to the 256 error code on smartmedia */
-
-	if (((diff0 ^ (diff0 >> 1)) & 0x55) == 0x55 &&
-	    ((diff1 ^ (diff1 >> 1)) & 0x55) == 0x55 &&
-	    ((diff2 ^ (diff2 >> 1)) & 0x55) == 0x55) {
-		/* calculate the bit position of the error */
-
-		bit  = ((diff2 >> 3) & 1) |
-		       ((diff2 >> 4) & 2) |
-		       ((diff2 >> 5) & 4);
-
-		/* calculate the byte position of the error */
-
-		byte = ((diff2 << 7) & 0x100) |
-		       ((diff1 << 0) & 0x80)  |
-		       ((diff1 << 1) & 0x40)  |
-		       ((diff1 << 2) & 0x20)  |
-		       ((diff1 << 3) & 0x10)  |
-		       ((diff0 >> 4) & 0x08)  |
-		       ((diff0 >> 3) & 0x04)  |
-		       ((diff0 >> 2) & 0x02)  |
-		       ((diff0 >> 1) & 0x01);
-
-		dat[byte] ^= (1 << bit);
-		return 1;
-	}
-
-	/* if there is only one bit difference in the ECC, then
-	 * one of only a row or column parity has changed, which
-	 * means the error is most probably in the ECC itself */
-
-	diff0 |= (diff1 << 8);
-	diff0 |= (diff2 << 16);
-
-	if ((diff0 & ~(1<<fls(diff0))) == 0)
-		return 1;
-
-	return -1;
-}
-
-static void s3c2410_nand_enable_hwecc(struct nand_chip *chip, int mode)
-{
-	struct s3c24x0_nand_host *host = chip->priv;
-
-#ifdef CONFIG_CPU_S3C2410
-	writel(readl(host->base + NFCONF) | NFCONF_INITECC , host->base + NFCONF);
-#endif
-#ifdef CONFIG_CPU_S3C2440
-	writel(readl(host->base + NFCONT) | NFCONT_INITECC , host->base + NFCONT);
-#endif
-}
-
-static int s3c2410_nand_calculate_ecc(struct nand_chip *chip, const uint8_t *dat, uint8_t *ecc_code)
-{
-	struct s3c24x0_nand_host *host = chip->priv;
-
-#ifdef CONFIG_CPU_S3C2410
-	ecc_code[0] = readb(host->base + NFECC);
-	ecc_code[1] = readb(host->base + NFECC + 1);
-	ecc_code[2] = readb(host->base + NFECC + 2);
-#endif
-#ifdef CONFIG_CPU_S3C2440
-	unsigned long ecc = readl(host->base + NFECC);
-
-	ecc_code[0] = ecc;
-	ecc_code[1] = ecc >> 8;
-	ecc_code[2] = ecc >> 16;
-#endif
-	return 0;
-}
-
-static void s3c24x0_nand_select_chip(struct nand_chip *chip, int num)
-{
-	struct s3c24x0_nand_host *host = chip->priv;
-
-	if (num == -1)
-		disable_cs(host->base);
-	else
-		enable_cs(host->base);
-}
-
-static int s3c24x0_nand_devready(struct nand_chip *chip)
-{
-	struct s3c24x0_nand_host *host = chip->priv;
-
-	return readw(host->base + NFSTAT) & NFSTAT_BUSY;
-}
-
-static void s3c24x0_nand_hwcontrol(struct nand_chip *chip, int cmd,
-					unsigned int ctrl)
-{
-	struct s3c24x0_nand_host *host = chip->priv;
-
-	if (cmd == NAND_CMD_NONE)
-		return;
-	/*
-	* If the CLE should be active, this call is a NAND command
-	*/
-	if (ctrl & NAND_CLE)
-		send_cmd(host->base, cmd);
-	/*
-	* If the ALE should be active, this call is a NAND address
-	*/
-	if (ctrl & NAND_ALE)
-		send_addr(host->base, cmd);
-}
-
-static int s3c24x0_nand_inithw(struct s3c24x0_nand_host *host)
-{
-	struct s3c24x0_nand_platform_data *pdata = host->dev->platform_data;
-	uint32_t tmp;
-
-	/* reset the NAND controller */
-	disable_nand_controller(host->base);
-
-	if (pdata != NULL)
-		tmp = pdata->nand_timing;
-	else
-		/* else slowest possible timing */
-		tmp = CALC_NFCONF_TIMING(4, 8, 8);
-
-	/* reenable the NAND controller */
-	enable_nand_controller(host->base, tmp);
-
-	return 0;
-}
-
-static int s3c24x0_nand_probe(struct device *dev)
-{
-	struct resource *iores;
-	struct nand_chip *chip;
-	struct s3c24x0_nand_platform_data *pdata = dev->platform_data;
-	struct mtd_info *mtd;
-	struct s3c24x0_nand_host *host;
-	int ret;
-
-	/* Allocate memory for MTD device structure and private data */
-	host = kzalloc(sizeof(struct s3c24x0_nand_host), GFP_KERNEL);
-	if (!host)
-		return -ENOMEM;
-
-	host->dev = dev;
-	iores = dev_request_mem_resource(dev, 0);
-	if (IS_ERR(iores))
-		return PTR_ERR(iores);
-	host->base = IOMEM(iores->start);
-
-	/* structures must be linked */
-	chip = &host->nand;
-	mtd = nand_to_mtd(chip);
-	mtd->dev.parent = dev;
-
-	/* init the default settings */
-
-	/* 50 us command delay time */
-	chip->legacy.chip_delay = 50;
-	chip->priv = host;
-
-	chip->legacy.IO_ADDR_R = chip->legacy.IO_ADDR_W = host->base + NFDATA;
-
-#ifdef CONFIG_CPU_S3C2440
-	chip->legacy.read_buf = s3c2440_nand_read_buf;
-	chip->legacy.write_buf = s3c2440_nand_write_buf;
-#endif
-	chip->legacy.cmd_ctrl = s3c24x0_nand_hwcontrol;
-	chip->legacy.dev_ready = s3c24x0_nand_devready;
-	chip->legacy.select_chip = s3c24x0_nand_select_chip;
-
-	/* we are using the hardware ECC feature of this device */
-	chip->ecc.calculate = s3c2410_nand_calculate_ecc;
-	chip->ecc.correct = s3c2410_nand_correct_data;
-	chip->ecc.hwctl = s3c2410_nand_enable_hwecc;
-
-	/*
-	 * Setup ECC handling in accordance to the kernel
-	 * - 1 times 512 bytes with 24 bit ECC for small page
-	 * - 8 times 256 bytes with 24 bit ECC each for large page
-	 */
-	chip->ecc.mode = NAND_ECC_HW;
-	chip->ecc.bytes = 3;	/* always 24 bit ECC per turn */
-	chip->ecc.strength  = 1;
-
-#ifdef CONFIG_CPU_S3C2440
-	if (readl(host->base) & 0x8) {
-		/* large page (2048 bytes per page) */
-		chip->ecc.size = 256;
-	} else
-#endif
-	{
-		/* small page (512 bytes per page) */
-		chip->ecc.size = 512;
-		mtd_set_ecclayout(mtd, &nand_hw_eccoob);
-	}
-
-	if (pdata->flash_bbt) {
-		/* use a flash based bbt */
-		chip->bbt_options |= NAND_BBT_USE_FLASH;
-	}
-
-	ret = s3c24x0_nand_inithw(host);
-	if (ret != 0)
-		goto on_error;
-
-	/* Scan to find existence of the device */
-	ret = nand_scan(chip, 1);
-	if (ret != 0) {
-		ret = -ENXIO;
-		goto on_error;
-	}
-
-	return add_mtd_nand_device(mtd, "nand");
-
-on_error:
-	free(host);
-	return ret;
-}
-
-static struct driver s3c24x0_nand_driver = {
-	.name  = "s3c24x0_nand",
-	.probe = s3c24x0_nand_probe,
-};
-device_platform_driver(s3c24x0_nand_driver);
-
-#ifdef CONFIG_S3C_NAND_BOOT
-
-static void __nand_boot_init wait_for_completion(void __iomem *host)
-{
-	while (!(readw(host + NFSTAT) & NFSTAT_BUSY))
-		;
-}
-
-/**
- * Convert a page offset into a page address for the NAND
- * @param host Where to write the address to
- * @param offs Page's offset in the NAND
- * @param ps Page size (512 or 2048)
- * @param c Address cycle count (3, 4 or 5)
- *
- * Uses the offset of the page to generate an page address into the NAND. This
- * differs when using a 512 byte or 2048 bytes per page NAND.
- * The column part of the page address to be generated is always forced to '0'.
- */
-static void __nand_boot_init nfc_addr(void __iomem *host, uint32_t offs,
-					int ps, int c)
-{
-	send_addr(host, 0); /* column part 1 */
-
-	if (ps == 512) {
-		send_addr(host, offs >> 9);
-		send_addr(host, offs >> 17);
-		if (c > 3)
-			send_addr(host, offs >> 25);
-	} else {
-		send_addr(host, 0); /* column part 2 */
-		send_addr(host, offs >> 11);
-		send_addr(host, offs >> 19);
-		if (c > 4)
-			send_addr(host, offs >> 27);
-		send_cmd(host, NAND_CMD_READSTART);
-	}
-}
-
-/**
- * Load a sequential count of pages from the NAND into memory
- * @param[out] dest Pointer to target area (in SDRAM)
- * @param[in] size Bytes to read from NAND device
- * @param[in] page Start page to read from
- *
- * This function must be located in the first 4kiB of the barebox image
- * (guess why).
- */
-void __nand_boot_init s3c24x0_nand_load_image(void *dest, int size, int page)
-{
-	void __iomem *host = (void __iomem *)S3C24X0_NAND_BASE;
-	unsigned pagesize;
-	int i, cycle;
-
-	/*
-	 * Reenable the NFC and use the default (but slow) access
-	 * timing or the board specific setting if provided.
-	 */
-	enable_nand_controller(host, BOARD_DEFAULT_NAND_TIMING);
-
-	/* use the current NAND hardware configuration */
-	switch (readl(S3C24X0_NAND_BASE) & 0xf) {
-	case 0x6:	/* 8 bit, 4 addr cycles, 512 bpp, normal NAND */
-		pagesize = 512;
-		cycle = 4;
-		break;
-	case 0xc:	/* 8 bit, 4 addr cycles, 2048 bpp, advanced NAND */
-		pagesize = 2048;
-		cycle = 4;
-		break;
-	case 0xe:	/* 8 bit, 5 addr cycles, 2048 bpp, advanced NAND */
-		pagesize = 2048;
-		cycle = 5;
-		break;
-	default:
-		/* we cannot output an error message here :-( */
-		disable_nand_controller(host);
-		return;
-	}
-
-	enable_cs(host);
-
-	/* Reset the NAND device */
-	send_cmd(host, NAND_CMD_RESET);
-	wait_for_completion(host);
-	disable_cs(host);
-
-	do {
-		enable_cs(host);
-		send_cmd(host, NAND_CMD_READ0);
-		nfc_addr(host, page * pagesize, pagesize, cycle);
-		wait_for_completion(host);
-		/* copy one page (do *not* use readsb() here!)*/
-		for (i = 0; i < pagesize; i++)
-			writeb(readb(host + NFDATA), (void __iomem *)(dest + i));
-		disable_cs(host);
-
-		page++;
-		dest += pagesize;
-		size -= pagesize;
-	} while (size >= 0);
-
-	/* disable the controller again */
-	disable_nand_controller(host);
-}
-
-void __nand_boot_init nand_boot(void)
-{
-	void *dest = _text;
-	int size = barebox_image_size;
-	int page = 0;
-
-	s3c24x0_nand_load_image(dest, size, page);
-}
-#ifdef CONFIG_NAND_S3C_BOOT_DEBUG
-#include <command.h>
-
-static int do_nand_boot_test(int argc, char *argv[])
-{
-	void *dest;
-	int size;
-
-	if (argc < 3)
-		return COMMAND_ERROR_USAGE;
-
-	dest = (void *)strtoul_suffix(argv[1], NULL, 0);
-	size = strtoul_suffix(argv[2], NULL, 0);
-
-	s3c24x0_nand_load_image(dest, size, 0);
-
-	/* re-enable the controller again, as this was a test only */
-	enable_nand_controller((void *)S3C24X0_NAND_BASE,
-				BOARD_DEFAULT_NAND_TIMING);
-
-	return 0;
-}
-
-BAREBOX_CMD_START(nand_boot_test)
-	.cmd		= do_nand_boot_test,
-	BAREBOX_CMD_DESC("load an image from NAND")
-	BAREBOX_CMD_OPTS("DEST SIZE")
-	BAREBOX_CMD_GROUP(CMD_GRP_BOOT)
-BAREBOX_CMD_END
-#endif
-
-#endif /* CONFIG_S3C_NAND_BOOT */
-
-/**
- * @file
- * @brief Support for various kinds of NAND devices
- *
- * ECC handling in this driver (in accordance to the current 2.6.38 kernel):
- * - for small page NANDs it generates 3 ECC bytes out of 512 data bytes
- * - for large page NANDs it generates 24 ECC bytes out of 2048 data bytes
- *
- * As small page NANDs are using 48 bits ECC per default, this driver uses a
- * local OOB layout description, to shrink it down to 24 bits. This is a bad
- * idea, but we cannot change it here, as the kernel is using this layout.
- *
- * For large page NANDs this driver uses the default layout, as the kernel does.
- */
-- 
2.30.2




^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 4/5] serial: remove s3c driver
  2023-02-28 13:57 [PATCH 0/5] ARM: remove Samsung arch Sascha Hauer
                   ` (2 preceding siblings ...)
  2023-02-28 13:57 ` [PATCH 3/5] mtd: nand: " Sascha Hauer
@ 2023-02-28 13:57 ` Sascha Hauer
  2023-02-28 13:57 ` [PATCH 5/5] video: " Sascha Hauer
  2023-02-28 15:04 ` [PATCH 0/5] ARM: remove Samsung arch Marco Felsch
  5 siblings, 0 replies; 7+ messages in thread
From: Sascha Hauer @ 2023-02-28 13:57 UTC (permalink / raw)
  To: Barebox List

The Samsung architecture has been removed, remove the serial driver
only used on this architecture as well.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 drivers/serial/Kconfig      |  18 ----
 drivers/serial/Makefile     |   1 -
 drivers/serial/serial_s3c.c | 198 ------------------------------------
 3 files changed, 217 deletions(-)
 delete mode 100644 drivers/serial/serial_s3c.c

diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig
index 6fda32d44c..7c9a46845a 100644
--- a/drivers/serial/Kconfig
+++ b/drivers/serial/Kconfig
@@ -107,24 +107,6 @@ config DRIVER_SERIAL_PL010
 	help
 	  Enable this to get support for AMBA PL010 based serial devices
 
-config DRIVER_SERIAL_S3C_IMPROVED
-	bool
-
-config DRIVER_SERIAL_S3C
-	bool "Samsung S3C serial driver"
-	depends on ARCH_SAMSUNG
-	select DRIVER_SERIAL_S3C_IMPROVED if (CPU_S5PC110 || CPU_S5PV210 || CPU_S3C6410)
-	default y
-	help
-	  Say Y here if you want to use the CONS on a Samsung S3C CPU
-
-config DRIVER_SERIAL_S3C_AUTOSYNC
-	bool "Enable auto flow"
-	depends on DRIVER_SERIAL_S3C
-	help
-	  Say Y here if you want to use the auto flow feature of this
-	  UART. RTS and CTS will be handled by the hardware when enabled.
-
 config DRIVER_SERIAL_PXA
 	bool "PXA serial driver"
 	depends on ARCH_PXA
diff --git a/drivers/serial/Makefile b/drivers/serial/Makefile
index 4b2bfb0537..5677dba631 100644
--- a/drivers/serial/Makefile
+++ b/drivers/serial/Makefile
@@ -12,7 +12,6 @@ obj-$(CONFIG_DRIVER_SERIAL_CLPS711X)		+= serial_clps711x.o
 obj-$(CONFIG_DRIVER_SERIAL_NS16550)		+= serial_ns16550.o
 obj-$(CONFIG_DRIVER_SERIAL_NS16550_PCI)		+= serial_ns16550_pci.o
 obj-$(CONFIG_DRIVER_SERIAL_PL010)		+= serial_pl010.o
-obj-$(CONFIG_DRIVER_SERIAL_S3C)			+= serial_s3c.o
 obj-$(CONFIG_DRIVER_SERIAL_STM32)		+= serial_stm32.o
 obj-$(CONFIG_DRIVER_SERIAL_ALTERA)		+= serial_altera.o
 obj-$(CONFIG_DRIVER_SERIAL_ALTERA_JTAG)		+= serial_altera_jtag.o
diff --git a/drivers/serial/serial_s3c.c b/drivers/serial/serial_s3c.c
deleted file mode 100644
index 5f6f2082eb..0000000000
--- a/drivers/serial/serial_s3c.c
+++ /dev/null
@@ -1,198 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-/*
- * (c) 2009...2011 Juergen Beisert <j.beisert@pengutronix.de>
- *
- * Based on code from:
- * (c) 2004 Sascha Hauer <sascha@saschahauer.de>
- */
-
-#include <common.h>
-#include <driver.h>
-#include <init.h>
-#include <malloc.h>
-#include <io.h>
-#include <mach/s3c-generic.h>
-#include <mach/s3c-iomap.h>
-
-/* Note: Offsets are for little endian access */
-#define ULCON 0x00		/* line control */
-#define UCON 0x04		/* UART control */
-# define UCON_SET_CLK_SRC(x) (((x) & 0x03) << 10)
-# define UCON_GET_CLK_SRC(x) (((x) >> 10) & 0x03)
-#define UFCON 0x08		/* FIFO control */
-#define UMCON 0x0c		/* modem control */
-#define UTRSTAT 0x10		/* Rx/Tx status */
-#define UERSTAT 0x14		/* error status */
-#define UFSTAT 0x18		/* FIFO status */
-#define UMSTAT 0x1c		/* modem status */
-#define UTXH 0x20		/* transmitt */
-#define URXH 0x24		/* receive */
-#define UBRDIV 0x28		/* baudrate generator */
-#define UBRDIVSLOT 0x2c		/* baudrate slot generator */
-#define UINTM 0x38		/* interrupt mask register */
-
-struct s3c_uart {
-	void __iomem *regs;
-	struct console_device cdev;
-};
-
-#define to_s3c_uart(c)	container_of(c, struct s3c_uart, cdev)
-
-/* each architecture has a preferred reference clock for its UARTs */
-static unsigned s3c_select_arch_input_clock(void)
-{
-	/* S3C24xx: 0=2=PCLK, 1=UEXTCLK, 3=FCLK/n */
-	if (IS_ENABLED(CONFIG_ARCH_S3C24xx))
-		return 0;	/* use the internal PCLK */
-	/* S3C64xx: 0=2=PCLK, 1=UCLK0, 3=UCLK1 */
-	if (IS_ENABLED(CONFIG_ARCH_S3C64xx))
-		return 3;	/* use the internal UCLK1 */
-	/* S5PCxx: 0=PCLK, 1=SCLK_UART */
-	if (IS_ENABLED(CONFIG_ARCH_S5PCxx))
-		return 0;	/* use the internal PCLK */
-}
-
-static unsigned s3c_get_arch_uart_input_clock(void __iomem *base)
-{
-	unsigned reg = readw(base + UCON);
-	return s3c_get_uart_clk(UCON_GET_CLK_SRC(reg));
-}
-
-/*
- * This table takes the fractional value of the baud divisor and gives
- * the recommended setting for the UDIVSLOT register. Refer the datasheet
- * for further details
- */
-static const uint16_t udivslot_table[] __maybe_unused = {
-	0x0000, 0x0080, 0x0808, 0x0888, 0x2222, 0x4924, 0x4A52, 0x54AA,
-	0x5555, 0xD555, 0xD5D5, 0xDDD5, 0xDDDD, 0xDFDD, 0xDFDF, 0xFFDF,
-};
-
-static int s3c_serial_setbaudrate(struct console_device *cdev, int baudrate)
-{
-	struct s3c_uart *priv = to_s3c_uart(cdev);
-	void __iomem *base = priv->regs;
-	unsigned val;
-
-	if (IS_ENABLED(CONFIG_DRIVER_SERIAL_S3C_IMPROVED)) {
-		val = s3c_get_arch_uart_input_clock(base) / baudrate;
-		writew(udivslot_table[val & 15], base + UBRDIVSLOT);
-	}
-
-	val = s3c_get_arch_uart_input_clock(base) / (16 * baudrate) - 1;
-	writew(val, base + UBRDIV);
-
-	return 0;
-}
-
-static int s3c_serial_init_port(struct console_device *cdev)
-{
-	struct s3c_uart *priv = to_s3c_uart(cdev);
-	void __iomem *base = priv->regs;
-
-	/* FIFO enable, Tx/Rx FIFO clear */
-	writeb(0x07, base + UFCON);
-	writeb(0x00, base + UMCON);
-
-	/* Normal,No parity,1 stop,8 bit */
-	writeb(0x03, base + ULCON);
-
-	/*
-	 * S3C2440 SoC:
-	 *  - no clock divider
-	 * all SoCs:
-	 *  - enable receive and transmit mode
-	 */
-	writew(0x0005 | UCON_SET_CLK_SRC(s3c_select_arch_input_clock()),
-						base + UCON);
-
-	if (IS_ENABLED(CONFIG_DRIVER_SERIAL_S3C_IMPROVED))
-		/* 'interrupt or polling mode' for both directions */
-		writeb(0xf, base + UINTM);
-
-	if (IS_ENABLED(CONFIG_DRIVER_SERIAL_S3C_AUTOSYNC))
-		writeb(0x10, base + UMCON); /* enable auto flow control */
-	else
-		writeb(0x01, base + UMCON); /* RTS up */
-
-	return 0;
-}
-
-static void s3c_serial_putc(struct console_device *cdev, char c)
-{
-	struct s3c_uart *priv = to_s3c_uart(cdev);
-	void __iomem *base = priv->regs;
-
-	/* Wait for Tx FIFO not full */
-	while (!(readb(base + UTRSTAT) & 0x2))
-		;
-
-	writeb(c, base + UTXH);
-}
-
-static int s3c_serial_tstc(struct console_device *cdev)
-{
-	struct s3c_uart *priv = to_s3c_uart(cdev);
-	void __iomem *base = priv->regs;
-
-	/* If receive fifo is empty, return false */
-	if (readb(base + UTRSTAT) & 0x1)
-		return 1;
-
-	return 0;
-}
-
-static int s3c_serial_getc(struct console_device *cdev)
-{
-	struct s3c_uart *priv = to_s3c_uart(cdev);
-	void __iomem *base = priv->regs;
-
-	/* wait for a character */
-	while (!(readb(base + UTRSTAT) & 0x1))
-		;
-
-	return readb(base + URXH);
-}
-
-static void s3c_serial_flush(struct console_device *cdev)
-{
-	struct s3c_uart *priv = to_s3c_uart(cdev);
-	void __iomem *base = priv->regs;
-
-	while (!(readb(base + UTRSTAT) & 0x4))
-		;
-}
-
-static int s3c_serial_probe(struct device *dev)
-{
-	struct resource *iores;
-	struct s3c_uart *priv;
-	struct console_device *cdev;
-
-	priv = xzalloc(sizeof(struct s3c_uart));
-	cdev = &priv->cdev;
-	iores = dev_request_mem_resource(dev, 0);
-	if (IS_ERR(iores))
-		return PTR_ERR(iores);
-	priv->regs = IOMEM(iores->start);
-	dev->priv = priv;
-	cdev->dev = dev;
-	cdev->tstc = s3c_serial_tstc;
-	cdev->putc = s3c_serial_putc;
-	cdev->getc = s3c_serial_getc;
-	cdev->flush = s3c_serial_flush;
-	cdev->setbrg = s3c_serial_setbaudrate;
-
-	s3c_serial_init_port(cdev);
-
-	/* Enable UART */
-	console_register(cdev);
-
-	return 0;
-}
-
-static struct driver s3c_serial_driver = {
-	.name   = "s3c_serial",
-	.probe  = s3c_serial_probe,
-};
-console_platform_driver(s3c_serial_driver);
-- 
2.30.2




^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 5/5] video: remove s3c driver
  2023-02-28 13:57 [PATCH 0/5] ARM: remove Samsung arch Sascha Hauer
                   ` (3 preceding siblings ...)
  2023-02-28 13:57 ` [PATCH 4/5] serial: " Sascha Hauer
@ 2023-02-28 13:57 ` Sascha Hauer
  2023-02-28 15:04 ` [PATCH 0/5] ARM: remove Samsung arch Marco Felsch
  5 siblings, 0 replies; 7+ messages in thread
From: Sascha Hauer @ 2023-02-28 13:57 UTC (permalink / raw)
  To: Barebox List

The Samsung architecture has been removed, remove the framebuffer driver
only used on this architecture as well.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 drivers/video/Kconfig   |  13 --
 drivers/video/Makefile  |   1 -
 drivers/video/s3c24xx.c | 411 ----------------------------------------
 3 files changed, 425 deletions(-)
 delete mode 100644 drivers/video/s3c24xx.c

diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index 01bdaf47bf..f20cc0befc 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -67,12 +67,6 @@ config DRIVER_VIDEO_STM32_LTDC
 	  Say 'Y' here to enable framebuffer and splash screen support for
 	  STM32 and STM32MP1.
 
-config DRIVER_VIDEO_S3C24XX
-	bool "S3C244x framebuffer driver"
-	depends on ARCH_S3C24xx
-	help
-	  Add support for the S3C244x LCD controller.
-
 config DRIVER_VIDEO_OMAP
 	bool "OMAP framebuffer driver"
 	depends on ARCH_OMAP4 || COMPILE_TEST
@@ -81,13 +75,6 @@ config DRIVER_VIDEO_OMAP
 	  driver only supports OMAP4 SoCs in DISPC parallel mode on
 	  LCD2 (MIPI DPI).
 
-if DRIVER_VIDEO_S3C24XX
-
-config DRIVER_VIDEO_S3C_VERBOSE
-	bool "S3C244x verbose framebuffer info"
-
-endif
-
 config DRIVER_VIDEO_SDL
 	bool "SDL framebuffer driver"
 	depends on SANDBOX
diff --git a/drivers/video/Makefile b/drivers/video/Makefile
index d50d2d3ba5..1b6d2986d7 100644
--- a/drivers/video/Makefile
+++ b/drivers/video/Makefile
@@ -18,7 +18,6 @@ obj-$(CONFIG_DRIVER_VIDEO_STM) += stm.o
 obj-$(CONFIG_DRIVER_VIDEO_STM32_LTDC) += stm32_ltdc.o
 obj-$(CONFIG_DRIVER_VIDEO_IMX) += imx.o
 obj-$(CONFIG_DRIVER_VIDEO_IMX_IPU) += imx-ipu-fb.o
-obj-$(CONFIG_DRIVER_VIDEO_S3C24XX) += s3c24xx.o
 obj-$(CONFIG_DRIVER_VIDEO_PXA) += pxa.o
 obj-$(CONFIG_DRIVER_VIDEO_SDL) += sdl.o
 obj-$(CONFIG_DRIVER_VIDEO_OMAP) += omap.o
diff --git a/drivers/video/s3c24xx.c b/drivers/video/s3c24xx.c
deleted file mode 100644
index 8fd56bbc7b..0000000000
--- a/drivers/video/s3c24xx.c
+++ /dev/null
@@ -1,411 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-/*
- * Copyright (C) 2010 Juergen Beisert
- * Copyright (C) 2011 Alexey Galakhov
- *
- * This driver is based on a patch found in the web:
- * (C) Copyright 2006 by OpenMoko, Inc.
- * Author: Harald Welte <laforge at openmoko.org>
- */
-
-#include <common.h>
-#include <init.h>
-#include <fb.h>
-#include <driver.h>
-#include <malloc.h>
-#include <errno.h>
-#include <io.h>
-#include <mach/s3c-generic.h>
-#include <mach/s3c24xx-fb.h>
-
-#define LCDCON1 0x00
-# define PNRMODE(x) (((x) & 3) << 5)
-# define BPPMODE(x) (((x) & 0xf) << 1)
-# define SET_CLKVAL(x) (((x) & 0x3ff) << 8)
-# define GET_CLKVAL(x) (((x) >> 8) & 0x3ff)
-# define ENVID (1 << 0)
-
-#define LCDCON2 0x04
-# define SET_VBPD(x) (((x) & 0xff) << 24)
-# define SET_LINEVAL(x) (((x) & 0x3ff) << 14)
-# define SET_VFPD(x) (((x) & 0xff) << 6)
-# define SET_VSPW(x) ((x) & 0x3f)
-
-#define LCDCON3 0x08
-# define SET_HBPD(x) (((x) & 0x7f) << 19)
-# define SET_HOZVAL(x) (((x) & 0x7ff) << 8)
-# define SET_HFPD(x) ((x) & 0xff)
-
-#define LCDCON4 0x0c
-# define SET_HSPW(x) ((x) & 0xff)
-
-#define LCDCON5 0x10
-# define BPP24BL (1 << 12)
-# define FRM565 (1 << 11)
-# define INV_CLK (1 << 10)
-# define INV_HS (1 << 9)
-# define INV_VS (1 << 8)
-# define INV_DTA (1 << 7)
-# define INV_DE (1 << 6)
-# define INV_PWREN (1 << 5)
-# define INV_LEND (1 << 4)
-# define ENA_PWREN (1 << 3)
-# define ENA_LEND (1 << 2)
-# define BSWP (1 << 1)
-# define HWSWP (1 << 0)
-
-#define LCDSADDR1 0x14
-# define SET_LCDBANK(x) (((x) & 0x1ff) << 21)
-# define GET_LCDBANK(x) (((x) >> 21) & 0x1ff)
-# define SET_LCDBASEU(x) ((x) & 0x1fffff)
-# define GET_LCDBASEU(x) ((x) & 0x1fffff)
-
-#define LCDSADDR2 0x18
-# define SET_LCDBASEL(x) ((x) & 0x1fffff)
-# define GET_LCDBASEL(x) ((x) & 0x1fffff)
-
-#define LCDSADDR3 0x1c
-# define SET_OFFSIZE(x) (((x) & 0x7ff) << 11)
-# define GET_OFFSIZE(x) (((x) >> 11) & 0x7ff)
-# define SET_PAGE_WIDTH(x) ((x) & 0x3ff)
-# define GET_PAGE_WIDTH(x) ((x) & 0x3ff)
-
-#define RED_LUT 0x20
-#define GREEN_LUT 0x24
-#define BLUE_LUT 0x28
-
-#define DITHMODE 0x4c
-
-#define TPAL 0x50
-
-#define LCDINTPND 0x54
-#define LCDSRCPND 0x58
-#define LCDINTMSK 0x5c
-# define FIWSEL (1 << 2)
-# define INT_FrSyn (1 << 1)
-# define INT_FiCnt (1 << 0)
-
-#define TCONSEL 0x60
-
-#define RED 0
-#define GREEN 1
-#define BLUE 2
-#define TRANSP 3
-
-struct s3cfb_info {
-	void __iomem *base;
-	unsigned memory_size;
-	struct fb_info info;
-	struct device *hw_dev;
-	int passive_display;
-	void (*enable)(int enable);
-};
-
-/* the RGB565 true colour mode */
-static const struct fb_bitfield def_rgb565[] = {
-	[RED] = {
-		.offset = 11,
-		.length = 5,
-	},
-	[GREEN] = {
-		.offset = 5,
-		.length = 6,
-	},
-	[BLUE] = {
-		.offset = 0,
-		.length = 5,
-	},
-	[TRANSP] = {	/* no support for transparency */
-		.length = 0,
-	}
-};
-
-/* the RGB888 true colour mode */
-static const struct fb_bitfield def_rgb888[] = {
-	[RED] = {
-		.offset = 16,
-		.length = 8,
-	},
-	[GREEN] = {
-		.offset = 8,
-		.length = 8,
-	},
-	[BLUE] = {
-		.offset = 0,
-		.length = 8,
-	},
-	[TRANSP] = {	/* no support for transparency */
-		.length = 0,
-	}
-};
-
-/**
- * @param fb_info Framebuffer information
- */
-static void s3cfb_enable_controller(struct fb_info *fb_info)
-{
-	struct s3cfb_info *fbi = fb_info->priv;
-	uint32_t con1;
-
-	con1 = readl(fbi->base + LCDCON1);
-
-	con1 |= ENVID;
-
-	writel(con1, fbi->base + LCDCON1);
-
-	if (fbi->enable)
-		fbi->enable(1);
-}
-
-/**
- * @param fb_info Framebuffer information
- */
-static void s3cfb_disable_controller(struct fb_info *fb_info)
-{
-	struct s3cfb_info *fbi = fb_info->priv;
-	uint32_t con1;
-
-	if (fbi->enable)
-		fbi->enable(0);
-
-	con1 = readl(fbi->base + LCDCON1);
-
-	con1 &= ~ENVID;
-
-	writel(con1, fbi->base + LCDCON1);
-}
-
-/**
- * Prepare the video hardware for a specified video mode
- * @param fb_info Framebuffer information
- * @return 0 on success
- */
-static int s3cfb_activate_var(struct fb_info *fb_info)
-{
-	struct s3cfb_info *fbi = fb_info->priv;
-	struct fb_videomode *mode = fb_info->mode;
-	unsigned size, hclk, div;
-	uint32_t con1, con2, con3, con4, con5 = 0;
-
-	if (fbi->passive_display != 0) {
-		dev_err(fbi->hw_dev, "Passive displays are currently not supported\n");
-		return -EINVAL;
-	}
-
-	/*
-	 * we need at least this amount of memory for the framebuffer
-	 */
-	size = mode->xres * mode->yres * (fb_info->bits_per_pixel >> 3);
-	if (fbi->memory_size != size || fb_info->screen_base == NULL) {
-		if (fb_info->screen_base)
-			free(fb_info->screen_base);
-		fbi->memory_size = 0;
-		fb_info->screen_base = malloc(size);
-		if (! fb_info->screen_base)
-			return -ENOMEM;
-		memset(fb_info->screen_base, 0, size);
-		fbi->memory_size = size;
-	}
-
-	/* ensure video output is _off_ */
-	writel(0x00000000, fbi->base + LCDCON1);
-
-	hclk = s3c_get_hclk() / 1000U;	/* hclk in kHz */
-	div = hclk / PICOS2KHZ(mode->pixclock);
-	if (div < 3)
-		div  = 3;
-	/* pixel clock is: (hclk) / ((div + 1) * 2) */
-	div += 1;
-	div >>= 1;
-	div -= 1;
-
-	con1 = PNRMODE(3) | SET_CLKVAL(div);	/* PNRMODE=3 is TFT */
-
-	switch (fb_info->bits_per_pixel) {
-	case 16:
-		con1 |= BPPMODE(12);
-		con5 |= FRM565;
-		con5 |= HWSWP;
-		fb_info->red = def_rgb565[RED];
-		fb_info->green = def_rgb565[GREEN];
-		fb_info->blue = def_rgb565[BLUE];
-		fb_info->transp =  def_rgb565[TRANSP];
-		break;
-	case 24:
-		con1 |= BPPMODE(13);
-		/* con5 |= BPP24BL;	*/ /* FIXME maybe needed, check alignment */
-		fb_info->red = def_rgb888[RED];
-		fb_info->green = def_rgb888[GREEN];
-		fb_info->blue = def_rgb888[BLUE];
-		fb_info->transp =  def_rgb888[TRANSP];
-		break;
-	default:
-		dev_err(fbi->hw_dev, "Invalid bits per pixel value: %u\n", fb_info->bits_per_pixel);
-		return -EINVAL;
-	}
-
-	/* 'normal' in register description means positive logic */
-	if (!(mode->sync & FB_SYNC_HOR_HIGH_ACT))
-		con5 |= INV_HS;
-	if (!(mode->sync & FB_SYNC_VERT_HIGH_ACT))
-		con5 |= INV_VS;
-	if (!(mode->sync & FB_SYNC_DE_HIGH_ACT))
-		con5 |= INV_DE;
-	if (mode->sync & FB_SYNC_CLK_INVERT)
-		con5 |= INV_CLK;	/* display should latch at the rising edge */
-	if (mode->sync & FB_SYNC_DATA_INVERT)
-		con5 |= INV_DTA;
-	if (mode->sync & FB_SYNC_INVERT_PWREN)
-		con5 |= INV_PWREN;
-	if (mode->sync & FB_SYNC_INVERT_LEND)
-		con5 |= INV_LEND;
-	if (mode->sync & FB_SYNC_USE_PWREN)
-		con5 |= ENA_PWREN;	/* FIXME should this be done conditionally/later? */
-	if (mode->sync & FB_SYNC_USE_LEND)
-		con5 |= ENA_LEND;
-	if (mode->sync & FB_SYNC_SWAP_BYTES)
-		con5 ^= BSWP;
-	if (mode->sync & FB_SYNC_SWAP_HW)
-		con5 ^= HWSWP;
-
-	/* vertical timing */
-	con2 = SET_VBPD(mode->upper_margin - 1) |
-		SET_LINEVAL(mode->yres - 1) |
-		SET_VFPD(mode->lower_margin - 1) |
-		SET_VSPW(mode->vsync_len - 1);
-
-	/* horizontal timing */
-	con3 = SET_HBPD(mode->left_margin - 1) |
-		SET_HOZVAL(mode->xres - 1) |
-		SET_HFPD(mode->right_margin - 1);
-	con4 = SET_HSPW(mode->hsync_len - 1);
-
-	/* basic timing setup */
-	writel(con1, fbi->base + LCDCON1);
-	dev_dbg(fbi->hw_dev, "writing %08X into %p (con1)\n", con1, fbi->base + LCDCON1);
-	writel(con2, fbi->base + LCDCON2);
-	dev_dbg(fbi->hw_dev, "writing %08X into %p (con2)\n", con2, fbi->base + LCDCON2);
-	writel(con3, fbi->base + LCDCON3);
-	dev_dbg(fbi->hw_dev, "writing %08X into %p (con3)\n", con3, fbi->base + LCDCON3);
-	writel(con4, fbi->base + LCDCON4);
-	dev_dbg(fbi->hw_dev, "writing %08X into %p (con4)\n", con4, fbi->base + LCDCON4);
-	writel(con5, fbi->base + LCDCON5);
-	dev_dbg(fbi->hw_dev, "writing %08X into %p (con5)\n", con5, fbi->base + LCDCON5);
-
-	dev_dbg(fbi->hw_dev, "setting up the fb baseadress to %p\n", fb_info->screen_base);
-
-	/* framebuffer memory setup */
-	writel((unsigned)fb_info->screen_base >> 1, fbi->base + LCDSADDR1);
-	size = mode->xres * (fb_info->bits_per_pixel >> 3) * (mode->yres);
-	writel(SET_LCDBASEL(((unsigned)fb_info->screen_base + size) >> 1), fbi->base + LCDSADDR2);
-	writel(SET_OFFSIZE(0) |
-		SET_PAGE_WIDTH((mode->xres * fb_info->bits_per_pixel) >> 4),
-		fbi->base + LCDSADDR3);
-	writel(FIWSEL | INT_FrSyn | INT_FiCnt, fbi->base + LCDINTMSK);
-
-	return 0;
-}
-
-/**
- * Print some information about the current hardware state
- * @param hw_dev S3C video device
- */
-static void s3cfb_info(struct device *hw_dev)
-{
-	uint32_t con1, addr1, addr2, addr3;
-	struct s3cfb_info *fbi = hw_dev->priv;
-
-	con1 = readl(fbi->base + LCDCON1);
-	addr1 = readl(fbi->base + LCDSADDR1);
-	addr2 = readl(fbi->base + LCDSADDR2);
-	addr3 = readl(fbi->base + LCDSADDR3);
-
-	printf(" Video hardware info:\n");
-	printf("  Video clock is running at %u Hz\n", s3c_get_hclk() / ((GET_CLKVAL(con1) + 1) * 2));
-	printf("  Video memory bank starts at 0x%08X\n", GET_LCDBANK(addr1) << 22);
-	printf("  Video memory bank offset: 0x%08X\n", GET_LCDBASEU(addr1));
-	printf("  Video memory end: 0x%08X\n", GET_LCDBASEU(addr2));
-	printf("  Virtual screen offset size: %u half words\n", GET_OFFSIZE(addr3));
-	printf("  Virtual screen page width: %u half words\n", GET_PAGE_WIDTH(addr3));
-}
-
-/*
- * There is only one video hardware instance available.
- * It makes no sense to dynamically allocate this data
- */
-static struct fb_ops s3cfb_ops = {
-	.fb_activate_var = s3cfb_activate_var,
-	.fb_enable = s3cfb_enable_controller,
-	.fb_disable = s3cfb_disable_controller,
-};
-
-static struct s3cfb_info fbi = {
-	.info = {
-		.fbops = &s3cfb_ops,
-	},
-};
-
-static int s3cfb_probe(struct device *hw_dev)
-{
-	struct resource *iores;
-	struct s3c_fb_platform_data *pdata = hw_dev->platform_data;
-	int ret;
-
-	if (! pdata)
-		return -ENODEV;
-
-	iores = dev_request_mem_resource(hw_dev, 0);
-	if (IS_ERR(iores))
-		return PTR_ERR(iores);
-	fbi.base = IOMEM(iores->start);
-	writel(0, fbi.base + LCDCON1);
-	writel(0, fbi.base + LCDCON5); /* FIXME not 0 for some displays */
-
-	/* just init */
-	fbi.info.priv = &fbi;
-
-	/* add runtime hardware info */
-	fbi.hw_dev = hw_dev;
-	hw_dev->priv = &fbi;
-
-	/* add runtime video info */
-	fbi.info.modes.modes = pdata->mode_list;
-	fbi.info.modes.num_modes = pdata->mode_cnt;
-	fbi.info.mode = &fbi.info.modes.modes[0];
-	fbi.info.xres = fbi.info.mode->xres;
-	fbi.info.yres = fbi.info.mode->yres;
-	if (pdata->bits_per_pixel)
-		fbi.info.bits_per_pixel = pdata->bits_per_pixel;
-	else
-		fbi.info.bits_per_pixel = 16;
-	fbi.passive_display = pdata->passive_display;
-	fbi.enable = pdata->enable;
-
-	if (IS_ENABLED(CONFIG_DRIVER_VIDEO_S3C_VERBOSE))
-		hw_dev->info = s3cfb_info;
-
-	fbi.info.dev.parent = hw_dev;
-	ret = register_framebuffer(&fbi.info);
-	if (ret != 0) {
-		dev_err(hw_dev, "Failed to register framebuffer\n");
-		return -EINVAL;
-	}
-
-	return 0;
-}
-
-static struct driver s3cfb_driver = {
-	.name	= "s3c_fb",
-	.probe	= s3cfb_probe,
-};
-device_platform_driver(s3cfb_driver);
-
-/**
- * The S3C244x LCD controller supports passive (CSTN/STN) and active (TFT) LC displays
- *
- * The driver itself currently supports only active TFT LC displays in the follwing manner:
- *
- *  * True colours
- *    - 16 bpp
- *    - 24 bpp (untested)
- */
-- 
2.30.2




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 0/5] ARM: remove Samsung arch
  2023-02-28 13:57 [PATCH 0/5] ARM: remove Samsung arch Sascha Hauer
                   ` (4 preceding siblings ...)
  2023-02-28 13:57 ` [PATCH 5/5] video: " Sascha Hauer
@ 2023-02-28 15:04 ` Marco Felsch
  5 siblings, 0 replies; 7+ messages in thread
From: Marco Felsch @ 2023-02-28 15:04 UTC (permalink / raw)
  To: Sascha Hauer; +Cc: Barebox List

On 23-02-28, Sascha Hauer wrote:
> arch/arm/mach-samsung hasn't seen any active maintenance or interest

Unfortunately..

> for a long time. It starts standing in the way for further development,
> so remove it. RIP.
> 
> Sascha
> 
> Sascha Hauer (5):
>   ARM: remove samsung arch
>   mci: remove s3c driver
>   mtd: nand: remove s3c driver
>   serial: remove s3c driver
>   video: remove s3c driver

Reviewed-by: Marco Felsch <m.felsch@pengutronix.de>

>  Documentation/boards/s3c/Digi-a9m2440.rst     |  93 --
>  Documentation/boards/samsung.rst              |   8 -
>  arch/arm/Kconfig                              |  19 -
>  arch/arm/Makefile                             |  13 -
>  arch/arm/boards/a9m2410/Makefile              |   4 -
>  arch/arm/boards/a9m2410/a9m2410.c             | 136 ---
>  arch/arm/boards/a9m2410/config.h              | 109 ---
>  arch/arm/boards/a9m2410/env/bin/_update       |  36 -
>  arch/arm/boards/a9m2410/env/bin/boot          |  38 -
>  arch/arm/boards/a9m2410/env/bin/init          |  30 -
>  arch/arm/boards/a9m2410/env/bin/update_kernel |  13 -
>  arch/arm/boards/a9m2410/env/bin/update_root   |  11 -
>  arch/arm/boards/a9m2410/env/config            |  26 -
>  arch/arm/boards/a9m2410/lowlevel_init.S       |  39 -
>  arch/arm/boards/a9m2440/Makefile              |   5 -
>  arch/arm/boards/a9m2440/a9m2410dev.c          |  82 --
>  arch/arm/boards/a9m2440/a9m2440.c             | 143 ----
>  arch/arm/boards/a9m2440/baseboards.h          |   6 -
>  arch/arm/boards/a9m2440/config.h              |  60 --
>  arch/arm/boards/a9m2440/env/bin/_update       |  34 -
>  arch/arm/boards/a9m2440/env/bin/boot          |  40 -
>  arch/arm/boards/a9m2440/env/bin/init          |  30 -
>  arch/arm/boards/a9m2440/env/bin/update_kernel |  13 -
>  arch/arm/boards/a9m2440/env/bin/update_root   |  13 -
>  arch/arm/boards/a9m2440/env/config            |  26 -
>  arch/arm/boards/a9m2440/lowlevel_init.S       | 243 ------
>  arch/arm/boards/friendlyarm-mini2440/Kconfig  |  35 -
>  arch/arm/boards/friendlyarm-mini2440/Makefile |   5 -
>  arch/arm/boards/friendlyarm-mini2440/config.h | 118 ---
>  .../boards/friendlyarm-mini2440/env/boot/nand |   4 -
>  .../friendlyarm-mini2440/env/config-board     |  16 -
>  .../env/init/mtdparts-nand                    |   6 -
>  .../friendlyarm-mini2440/lowlevel_init.S      |  44 -
>  .../boards/friendlyarm-mini2440/mini2440.c    | 341 --------
>  arch/arm/boards/friendlyarm-mini6410/Makefile |   5 -
>  arch/arm/boards/friendlyarm-mini6410/config.h |  10 -
>  .../defaultenv-friendlyarm-mini6410/config    |  52 --
>  .../boards/friendlyarm-mini6410/lowlevel.c    |  13 -
>  .../boards/friendlyarm-mini6410/mini6410.c    | 302 -------
>  arch/arm/boards/friendlyarm-tiny210/Makefile  |   4 -
>  arch/arm/boards/friendlyarm-tiny210/config.h  |  21 -
>  .../arm/boards/friendlyarm-tiny210/lowlevel.c | 100 ---
>  arch/arm/boards/friendlyarm-tiny210/tiny210.c | 102 ---
>  arch/arm/boards/friendlyarm-tiny6410/Kconfig  |  21 -
>  arch/arm/boards/friendlyarm-tiny6410/Makefile |   6 -
>  arch/arm/boards/friendlyarm-tiny6410/config.h |  10 -
>  .../defaultenv-friendlyarm-tiny6410/config    |  52 --
>  .../friendlyarm-tiny6410/development-board.c  |  94 ---
>  .../boards/friendlyarm-tiny6410/lowlevel.c    |  13 -
>  .../boards/friendlyarm-tiny6410/tiny6410.c    |  72 --
>  .../boards/friendlyarm-tiny6410/tiny6410.h    |   4 -
>  arch/arm/configs/a9m2410_defconfig            |  32 -
>  arch/arm/configs/a9m2440_defconfig            |  34 -
>  .../configs/friendlyarm_mini2440_defconfig    |  41 -
>  .../configs/friendlyarm_mini6410_defconfig    |  34 -
>  .../arm/configs/friendlyarm_tiny210_defconfig |   7 -
>  .../configs/friendlyarm_tiny6410_defconfig    |  35 -
>  arch/arm/mach-samsung/Kconfig                 | 178 ----
>  arch/arm/mach-samsung/Makefile                |  14 -
>  arch/arm/mach-samsung/bbu-nand-s3c24x0.c      |  85 --
>  arch/arm/mach-samsung/clocks-s3c24xx.c        | 145 ----
>  arch/arm/mach-samsung/clocks-s3c64xx.c        | 338 --------
>  arch/arm/mach-samsung/clocks-s5pcxx.c         |  98 ---
>  arch/arm/mach-samsung/generic.c               |  51 --
>  arch/arm/mach-samsung/gpio-s3c24x0.c          | 167 ----
>  arch/arm/mach-samsung/gpio-s3c64xx.c          | 302 -------
>  arch/arm/mach-samsung/gpio-s5pcxx.c           | 124 ---
>  arch/arm/mach-samsung/include/mach/bbu.h      |  18 -
>  .../include/mach/devices-s3c24xx.h            |  55 --
>  .../include/mach/devices-s3c64xx.h            |  40 -
>  .../mach-samsung/include/mach/iomux-s3c24x0.h | 422 ---------
>  .../mach-samsung/include/mach/iomux-s3c64xx.h | 542 ------------
>  .../mach-samsung/include/mach/iomux-s5pcxx.h  | 798 ------------------
>  arch/arm/mach-samsung/include/mach/iomux.h    |  28 -
>  .../mach-samsung/include/mach/s3c-busctl.h    |  32 -
>  .../mach-samsung/include/mach/s3c-clocks.h    |  28 -
>  .../mach-samsung/include/mach/s3c-generic.h   |  62 --
>  .../arm/mach-samsung/include/mach/s3c-iomap.h |  23 -
>  arch/arm/mach-samsung/include/mach/s3c-mci.h  |  39 -
>  .../include/mach/s3c24xx-clocks.h             |  24 -
>  .../mach-samsung/include/mach/s3c24xx-fb.h    |  55 --
>  .../mach-samsung/include/mach/s3c24xx-gpio.h  |  77 --
>  .../mach-samsung/include/mach/s3c24xx-iomap.h |  65 --
>  .../mach-samsung/include/mach/s3c24xx-nand.h  |  57 --
>  .../include/mach/s3c64xx-clocks.h             |  67 --
>  .../mach-samsung/include/mach/s3c64xx-iomap.h |  51 --
>  .../mach-samsung/include/mach/s5pcxx-clocks.h |  55 --
>  .../mach-samsung/include/mach/s5pcxx-iomap.h  |  46 -
>  arch/arm/mach-samsung/lowlevel-s3c24x0.S      | 305 -------
>  arch/arm/mach-samsung/lowlevel-s5pcxx.c       |  61 --
>  arch/arm/mach-samsung/mem-s3c24x0.c           |  79 --
>  arch/arm/mach-samsung/mem-s3c64xx.c           |  66 --
>  arch/arm/mach-samsung/mem-s5pcxx.c            | 320 -------
>  arch/arm/mach-samsung/reset_source.c          |  56 --
>  arch/arm/mach-samsung/s3c-timer.c             | 119 ---
>  drivers/mci/Kconfig                           |   7 -
>  drivers/mci/Makefile                          |   1 -
>  drivers/mci/s3c.c                             | 762 -----------------
>  drivers/mtd/nand/Kconfig                      |   7 -
>  drivers/mtd/nand/Makefile                     |   2 -
>  drivers/mtd/nand/nand_s3c24xx.c               | 649 --------------
>  drivers/serial/Kconfig                        |  18 -
>  drivers/serial/Makefile                       |   1 -
>  drivers/serial/serial_s3c.c                   | 198 -----
>  drivers/video/Kconfig                         |  13 -
>  drivers/video/Makefile                        |   1 -
>  drivers/video/s3c24xx.c                       | 411 ---------
>  scripts/.gitignore                            |   1 -
>  scripts/Kconfig                               |   7 -
>  scripts/Makefile                              |   1 -
>  110 files changed, 10074 deletions(-)
>  delete mode 100644 Documentation/boards/s3c/Digi-a9m2440.rst
>  delete mode 100644 Documentation/boards/samsung.rst
>  delete mode 100644 arch/arm/boards/a9m2410/Makefile
>  delete mode 100644 arch/arm/boards/a9m2410/a9m2410.c
>  delete mode 100644 arch/arm/boards/a9m2410/config.h
>  delete mode 100644 arch/arm/boards/a9m2410/env/bin/_update
>  delete mode 100644 arch/arm/boards/a9m2410/env/bin/boot
>  delete mode 100644 arch/arm/boards/a9m2410/env/bin/init
>  delete mode 100644 arch/arm/boards/a9m2410/env/bin/update_kernel
>  delete mode 100644 arch/arm/boards/a9m2410/env/bin/update_root
>  delete mode 100644 arch/arm/boards/a9m2410/env/config
>  delete mode 100644 arch/arm/boards/a9m2410/lowlevel_init.S
>  delete mode 100644 arch/arm/boards/a9m2440/Makefile
>  delete mode 100644 arch/arm/boards/a9m2440/a9m2410dev.c
>  delete mode 100644 arch/arm/boards/a9m2440/a9m2440.c
>  delete mode 100644 arch/arm/boards/a9m2440/baseboards.h
>  delete mode 100644 arch/arm/boards/a9m2440/config.h
>  delete mode 100644 arch/arm/boards/a9m2440/env/bin/_update
>  delete mode 100644 arch/arm/boards/a9m2440/env/bin/boot
>  delete mode 100644 arch/arm/boards/a9m2440/env/bin/init
>  delete mode 100644 arch/arm/boards/a9m2440/env/bin/update_kernel
>  delete mode 100644 arch/arm/boards/a9m2440/env/bin/update_root
>  delete mode 100644 arch/arm/boards/a9m2440/env/config
>  delete mode 100644 arch/arm/boards/a9m2440/lowlevel_init.S
>  delete mode 100644 arch/arm/boards/friendlyarm-mini2440/Kconfig
>  delete mode 100644 arch/arm/boards/friendlyarm-mini2440/Makefile
>  delete mode 100644 arch/arm/boards/friendlyarm-mini2440/config.h
>  delete mode 100644 arch/arm/boards/friendlyarm-mini2440/env/boot/nand
>  delete mode 100644 arch/arm/boards/friendlyarm-mini2440/env/config-board
>  delete mode 100644 arch/arm/boards/friendlyarm-mini2440/env/init/mtdparts-nand
>  delete mode 100644 arch/arm/boards/friendlyarm-mini2440/lowlevel_init.S
>  delete mode 100644 arch/arm/boards/friendlyarm-mini2440/mini2440.c
>  delete mode 100644 arch/arm/boards/friendlyarm-mini6410/Makefile
>  delete mode 100644 arch/arm/boards/friendlyarm-mini6410/config.h
>  delete mode 100644 arch/arm/boards/friendlyarm-mini6410/defaultenv-friendlyarm-mini6410/config
>  delete mode 100644 arch/arm/boards/friendlyarm-mini6410/lowlevel.c
>  delete mode 100644 arch/arm/boards/friendlyarm-mini6410/mini6410.c
>  delete mode 100644 arch/arm/boards/friendlyarm-tiny210/Makefile
>  delete mode 100644 arch/arm/boards/friendlyarm-tiny210/config.h
>  delete mode 100644 arch/arm/boards/friendlyarm-tiny210/lowlevel.c
>  delete mode 100644 arch/arm/boards/friendlyarm-tiny210/tiny210.c
>  delete mode 100644 arch/arm/boards/friendlyarm-tiny6410/Kconfig
>  delete mode 100644 arch/arm/boards/friendlyarm-tiny6410/Makefile
>  delete mode 100644 arch/arm/boards/friendlyarm-tiny6410/config.h
>  delete mode 100644 arch/arm/boards/friendlyarm-tiny6410/defaultenv-friendlyarm-tiny6410/config
>  delete mode 100644 arch/arm/boards/friendlyarm-tiny6410/development-board.c
>  delete mode 100644 arch/arm/boards/friendlyarm-tiny6410/lowlevel.c
>  delete mode 100644 arch/arm/boards/friendlyarm-tiny6410/tiny6410.c
>  delete mode 100644 arch/arm/boards/friendlyarm-tiny6410/tiny6410.h
>  delete mode 100644 arch/arm/configs/a9m2410_defconfig
>  delete mode 100644 arch/arm/configs/a9m2440_defconfig
>  delete mode 100644 arch/arm/configs/friendlyarm_mini2440_defconfig
>  delete mode 100644 arch/arm/configs/friendlyarm_mini6410_defconfig
>  delete mode 100644 arch/arm/configs/friendlyarm_tiny210_defconfig
>  delete mode 100644 arch/arm/configs/friendlyarm_tiny6410_defconfig
>  delete mode 100644 arch/arm/mach-samsung/Kconfig
>  delete mode 100644 arch/arm/mach-samsung/Makefile
>  delete mode 100644 arch/arm/mach-samsung/bbu-nand-s3c24x0.c
>  delete mode 100644 arch/arm/mach-samsung/clocks-s3c24xx.c
>  delete mode 100644 arch/arm/mach-samsung/clocks-s3c64xx.c
>  delete mode 100644 arch/arm/mach-samsung/clocks-s5pcxx.c
>  delete mode 100644 arch/arm/mach-samsung/generic.c
>  delete mode 100644 arch/arm/mach-samsung/gpio-s3c24x0.c
>  delete mode 100644 arch/arm/mach-samsung/gpio-s3c64xx.c
>  delete mode 100644 arch/arm/mach-samsung/gpio-s5pcxx.c
>  delete mode 100644 arch/arm/mach-samsung/include/mach/bbu.h
>  delete mode 100644 arch/arm/mach-samsung/include/mach/devices-s3c24xx.h
>  delete mode 100644 arch/arm/mach-samsung/include/mach/devices-s3c64xx.h
>  delete mode 100644 arch/arm/mach-samsung/include/mach/iomux-s3c24x0.h
>  delete mode 100644 arch/arm/mach-samsung/include/mach/iomux-s3c64xx.h
>  delete mode 100644 arch/arm/mach-samsung/include/mach/iomux-s5pcxx.h
>  delete mode 100644 arch/arm/mach-samsung/include/mach/iomux.h
>  delete mode 100644 arch/arm/mach-samsung/include/mach/s3c-busctl.h
>  delete mode 100644 arch/arm/mach-samsung/include/mach/s3c-clocks.h
>  delete mode 100644 arch/arm/mach-samsung/include/mach/s3c-generic.h
>  delete mode 100644 arch/arm/mach-samsung/include/mach/s3c-iomap.h
>  delete mode 100644 arch/arm/mach-samsung/include/mach/s3c-mci.h
>  delete mode 100644 arch/arm/mach-samsung/include/mach/s3c24xx-clocks.h
>  delete mode 100644 arch/arm/mach-samsung/include/mach/s3c24xx-fb.h
>  delete mode 100644 arch/arm/mach-samsung/include/mach/s3c24xx-gpio.h
>  delete mode 100644 arch/arm/mach-samsung/include/mach/s3c24xx-iomap.h
>  delete mode 100644 arch/arm/mach-samsung/include/mach/s3c24xx-nand.h
>  delete mode 100644 arch/arm/mach-samsung/include/mach/s3c64xx-clocks.h
>  delete mode 100644 arch/arm/mach-samsung/include/mach/s3c64xx-iomap.h
>  delete mode 100644 arch/arm/mach-samsung/include/mach/s5pcxx-clocks.h
>  delete mode 100644 arch/arm/mach-samsung/include/mach/s5pcxx-iomap.h
>  delete mode 100644 arch/arm/mach-samsung/lowlevel-s3c24x0.S
>  delete mode 100644 arch/arm/mach-samsung/lowlevel-s5pcxx.c
>  delete mode 100644 arch/arm/mach-samsung/mem-s3c24x0.c
>  delete mode 100644 arch/arm/mach-samsung/mem-s3c64xx.c
>  delete mode 100644 arch/arm/mach-samsung/mem-s5pcxx.c
>  delete mode 100644 arch/arm/mach-samsung/reset_source.c
>  delete mode 100644 arch/arm/mach-samsung/s3c-timer.c
>  delete mode 100644 drivers/mci/s3c.c
>  delete mode 100644 drivers/mtd/nand/nand_s3c24xx.c
>  delete mode 100644 drivers/serial/serial_s3c.c
>  delete mode 100644 drivers/video/s3c24xx.c
> 
> -- 
> 2.30.2
> 
> 
> 



^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2023-02-28 15:08 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-28 13:57 [PATCH 0/5] ARM: remove Samsung arch Sascha Hauer
2023-02-28 13:57 ` [PATCH 1/5] ARM: remove samsung arch Sascha Hauer
2023-02-28 13:57 ` [PATCH 2/5] mci: remove s3c driver Sascha Hauer
2023-02-28 13:57 ` [PATCH 3/5] mtd: nand: " Sascha Hauer
2023-02-28 13:57 ` [PATCH 4/5] serial: " Sascha Hauer
2023-02-28 13:57 ` [PATCH 5/5] video: " Sascha Hauer
2023-02-28 15:04 ` [PATCH 0/5] ARM: remove Samsung arch Marco Felsch

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox