Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/13] ARM: deprecated platform removal
@ 2026-09-08 15:27 Arnd Bergmann
  2026-09-08 15:27 ` [PATCH 02/13] ARM: remove footbridge Arnd Bergmann
                   ` (11 more replies)
  0 siblings, 12 replies; 49+ messages in thread
From: Arnd Bergmann @ 2026-09-08 15:27 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Alexandre Belloni, Linus Walleij,
	Russell King
  Cc: Drew Fustini, Arnd Bergmann, Rob Herring, Conor Dooley,
	Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi, Frank Li,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Vladimir Zapolskiy, Stefan Agner, Maxime Coquelin,
	Alexandre Torgue, Aaro Koskinen, Andreas Kemnade, Kevin Hilman,
	Roger Quadros, Tony Lindgren, Nicolas Ferre, Claudiu Beznea,
	Andrew Lunn, Sebastian Hesselbarth, Gregory Clement,
	Robert Jarzmik, Kristoffer Ericson, Ethan Nelson-Moore,
	Geert Uytterhoeven, Alexander Sverdlin, Shawn Guo,
	Karl Mehltretter, David Hildenbrand (Arm), Nicolas Pitre,
	linux-doc, linux-kernel, linux-arm-kernel, devicetree, imx,
	linux-stm32, linux-omap

From: Arnd Bergmann <arnd@arndb.de>

In the 7.3 kernel, I marked a number of platforms and features as
deprecated, with the plan to keep these around for the LTS kernel, but
remove them in 7.4, see [1].

Cleaning out the deprecated platform code has turned into a larger effort
than I expected, currently standing at 300 patches, with a lot of them
still in need of being split up into smaller ones, see [2] for a current
snapshot.

The first series here removes just the bits in arch/arm/mach-*/, plus
the portions that directly depend on the removed Kconfig symbols where
these are trivial to remove.

The parts that are not included are those that remove architectural
features and device drivers that become unused after this part. Some of
those may also make their way into 7.4, but at this point I would target
7.5 for most of them, to keep the dependencies simple.

This also gives everyone a chance to voice their objections in case
that some of the removed platform code does have active users after all,
before all the corresponding drivers are gone.

     Arnd

Links:
[1] https://lore.kernel.org/all/20260701212353.2196041-1-arnd@kernel.org/
[2] https://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git/log/?h=board-remove-7.3

Arnd Bergmann (13):
  ARM: remove sa1100 platform
  ARM: remove footbridge
  ARM: remove riscpc
  ARM: remove legacy pxa board files
  ARM: orion/dove/mv78xx0: remove all board files
  ARM: omap2: remove omap24xx support
  ARM: imx: remove i.MX31 SoC support
  ARM: imx: remove nommu support
  ARM: lpc18xx: remove entire platform
  ARM: stm32: remove stm32f4/f7/h7 MCU support
  ARM: versatile: remove mps2 support
  ARM: at91: remove samv7 support
  ARM: axxia: remove entire platform

 Documentation/arch/arm/index.rst              |    1 -
 Documentation/arch/arm/netwinder.rst          |   85 -
 .../devicetree/bindings/arm/axxia.yaml        |   23 -
 MAINTAINERS                                   |   60 -
 arch/arm/Kconfig                              |   80 +-
 arch/arm/Kconfig.debug                        |  106 +-
 arch/arm/Makefile                             |   13 -
 arch/arm/boot/bootp/Makefile                  |    4 -
 arch/arm/boot/compressed/Makefile             |   12 -
 arch/arm/boot/compressed/font.c               |    2 -
 arch/arm/boot/compressed/head-sa1100.S        |   45 -
 arch/arm/boot/compressed/head-sharpsl.S       |  151 --
 arch/arm/boot/compressed/head.S               |   15 -
 arch/arm/boot/compressed/ll_char_wr.S         |  131 --
 arch/arm/boot/dts/arm/Makefile                |    3 -
 arch/arm/boot/dts/arm/mps2-an385.dts          |   92 -
 arch/arm/boot/dts/arm/mps2-an399.dts          |   92 -
 arch/arm/boot/dts/arm/mps2.dtsi               |  220 --
 arch/arm/boot/dts/intel/Makefile              |    1 -
 arch/arm/boot/dts/intel/axm/Makefile          |    5 -
 .../boot/dts/intel/axm/axm5516-amarillo.dts   |   47 -
 arch/arm/boot/dts/intel/axm/axm5516-cpus.dtsi |  200 --
 arch/arm/boot/dts/intel/axm/axm55xx.dtsi      |  200 --
 arch/arm/boot/dts/nxp/imx/Makefile            |    5 -
 arch/arm/boot/dts/nxp/imx/imx31-bug.dts       |   22 -
 arch/arm/boot/dts/nxp/imx/imx31-lite.dts      |  178 --
 arch/arm/boot/dts/nxp/imx/imx31.dtsi          |  371 ----
 arch/arm/boot/dts/nxp/imx/imxrt1050-evk.dts   |   72 -
 arch/arm/boot/dts/nxp/imx/imxrt1050-pinfunc.h |  993 ---------
 arch/arm/boot/dts/nxp/imx/imxrt1050.dtsi      |  160 --
 arch/arm/boot/dts/nxp/imx/imxrt1170-pinfunc.h | 1561 --------------
 arch/arm/boot/dts/nxp/lpc/Makefile            |    5 -
 arch/arm/boot/dts/nxp/lpc/lpc18xx.dtsi        |  543 -----
 arch/arm/boot/dts/nxp/lpc/lpc4337-ciaa.dts    |  221 --
 .../boot/dts/nxp/lpc/lpc4350-hitex-eval.dts   |  485 -----
 arch/arm/boot/dts/nxp/lpc/lpc4350.dtsi        |   48 -
 .../dts/nxp/lpc/lpc4357-ea4357-devkit.dts     |  624 ------
 .../boot/dts/nxp/lpc/lpc4357-myd-lpc4357.dts  |  621 ------
 arch/arm/boot/dts/nxp/lpc/lpc4357.dtsi        |   52 -
 arch/arm/boot/dts/nxp/vf/Makefile             |    2 -
 arch/arm/boot/dts/nxp/vf/vf610m4-colibri.dts  |   61 -
 arch/arm/boot/dts/nxp/vf/vf610m4-cosmic.dts   |   88 -
 arch/arm/boot/dts/nxp/vf/vf610m4.dtsi         |   61 -
 arch/arm/boot/dts/st/Makefile                 |   11 -
 arch/arm/boot/dts/st/stm32f4-pinctrl.dtsi     |  482 -----
 arch/arm/boot/dts/st/stm32f429-disco.dts      |  243 ---
 arch/arm/boot/dts/st/stm32f429-pinctrl.dtsi   |   91 -
 arch/arm/boot/dts/st/stm32f429.dtsi           |  800 --------
 arch/arm/boot/dts/st/stm32f469-disco.dts      |  260 ---
 arch/arm/boot/dts/st/stm32f469-pinctrl.dtsi   |   92 -
 arch/arm/boot/dts/st/stm32f469.dtsi           |   18 -
 arch/arm/boot/dts/st/stm32f7-pinctrl.dtsi     |  436 ----
 arch/arm/boot/dts/st/stm32f746-disco.dts      |  234 ---
 arch/arm/boot/dts/st/stm32f746-pinctrl.dtsi   |   55 -
 arch/arm/boot/dts/st/stm32f746.dtsi           |  727 -------
 .../dts/st/stm32f769-disco-mb1166-reva09.dts  |   13 -
 arch/arm/boot/dts/st/stm32f769-disco.dts      |  243 ---
 arch/arm/boot/dts/st/stm32f769-pinctrl.dtsi   |   55 -
 arch/arm/boot/dts/st/stm32f769.dtsi           |   37 -
 arch/arm/boot/dts/st/stm32h7-pinctrl.dtsi     |  301 ---
 arch/arm/boot/dts/st/stm32h743.dtsi           |  738 -------
 arch/arm/boot/dts/st/stm32h743i-disco.dts     |  145 --
 arch/arm/boot/dts/st/stm32h743i-eval.dts      |  185 --
 arch/arm/boot/dts/st/stm32h747i-disco.dts     |  149 --
 arch/arm/boot/dts/st/stm32h750.dtsi           |    6 -
 arch/arm/boot/dts/st/stm32h750i-art-pi.dts    |  229 ---
 arch/arm/boot/dts/ti/omap/Makefile            |    6 -
 arch/arm/boot/dts/ti/omap/omap2.dtsi          |  338 ----
 .../arm/boot/dts/ti/omap/omap2420-clocks.dtsi |  267 ---
 arch/arm/boot/dts/ti/omap/omap2420-h4.dts     |   63 -
 arch/arm/boot/dts/ti/omap/omap2420-n800.dts   |    9 -
 .../boot/dts/ti/omap/omap2420-n810-wimax.dts  |    9 -
 arch/arm/boot/dts/ti/omap/omap2420-n810.dts   |   75 -
 .../dts/ti/omap/omap2420-n8x0-common.dtsi     |  123 --
 arch/arm/boot/dts/ti/omap/omap2420.dtsi       |  262 ---
 .../arm/boot/dts/ti/omap/omap2430-clocks.dtsi |  341 ----
 arch/arm/boot/dts/ti/omap/omap2430-sdp.dts    |   70 -
 arch/arm/boot/dts/ti/omap/omap2430.dtsi       |  366 ----
 .../arm/boot/dts/ti/omap/omap24xx-clocks.dtsi | 1241 ------------
 arch/arm/common/Kconfig                       |   13 -
 arch/arm/common/Makefile                      |    4 -
 arch/arm/common/locomo.c                      |  886 --------
 arch/arm/common/sa1111.c                      | 1413 -------------
 arch/arm/common/scoop.c                       |  269 ---
 arch/arm/common/sharpsl_param.c               |   63 -
 arch/arm/configs/am200epdkit_defconfig        |   91 -
 arch/arm/configs/assabet_defconfig            |   57 -
 arch/arm/configs/axm55xx_defconfig            |  231 ---
 arch/arm/configs/collie_defconfig             |   87 -
 arch/arm/configs/dove_defconfig               |  134 --
 arch/arm/configs/footbridge_defconfig         |  114 --
 arch/arm/configs/h3600_defconfig              |   63 -
 arch/arm/configs/imx_v6_v7_defconfig          |    1 -
 arch/arm/configs/imxrt_defconfig              |   35 -
 arch/arm/configs/jornada720_defconfig         |   95 -
 arch/arm/configs/lpc18xx_defconfig            |  158 --
 arch/arm/configs/mps2_defconfig               |  102 -
 arch/arm/configs/mv78xx0_defconfig            |  120 --
 arch/arm/configs/neponset_defconfig           |   88 -
 arch/arm/configs/netwinder_defconfig          |   88 -
 arch/arm/configs/omap2plus_defconfig          |    2 -
 arch/arm/configs/rpc_defconfig                |  127 --
 arch/arm/configs/spitz_defconfig              |  237 ---
 arch/arm/configs/stm32_defconfig              |   80 -
 arch/arm/configs/vf610m4_defconfig            |   39 -
 arch/arm/include/asm/ecard.h                  |  219 --
 arch/arm/include/asm/hardware/dec21285.h      |  138 --
 arch/arm/include/asm/hardware/ioc.h           |   69 -
 arch/arm/include/asm/hardware/iomd.h          |  182 --
 arch/arm/include/asm/hardware/locomo.h        |  217 --
 arch/arm/include/asm/hardware/memc.h          |   23 -
 arch/arm/include/asm/hardware/scoop.h         |   67 -
 arch/arm/include/asm/hardware/ssp.h           |   25 -
 arch/arm/include/asm/io.h                     |    5 +-
 arch/arm/include/asm/mach/pci.h               |   14 -
 arch/arm/include/asm/mach/sharpsl_param.h     |   33 -
 arch/arm/include/asm/memory.h                 |    3 -
 arch/arm/include/debug/dc21285.S              |   41 -
 arch/arm/include/debug/sa1100.S               |   67 -
 arch/arm/kernel/atags_parse.c                 |   18 -
 arch/arm/kernel/bios32.c                      |   12 -
 arch/arm/kernel/head-common.S                 |   13 -
 arch/arm/kernel/head.S                        |   22 -
 arch/arm/lib/delay-loop.S                     |    4 -
 arch/arm/mach-at91/Kconfig                    |   11 +-
 arch/arm/mach-at91/Makefile                   |    1 -
 arch/arm/mach-at91/samv7.c                    |   17 -
 arch/arm/mach-axxia/Kconfig                   |   17 -
 arch/arm/mach-axxia/Makefile                  |    3 -
 arch/arm/mach-axxia/axxia.c                   |   19 -
 arch/arm/mach-axxia/platsmp.c                 |   87 -
 arch/arm/mach-dove/Kconfig                    |   32 -
 arch/arm/mach-dove/Makefile                   |    7 -
 arch/arm/mach-dove/bridge-regs.h              |   50 -
 arch/arm/mach-dove/cm-a510.c                  |   94 -
 arch/arm/mach-dove/common.c                   |  449 ----
 arch/arm/mach-dove/common.h                   |   46 -
 arch/arm/mach-dove/dove.h                     |  185 --
 arch/arm/mach-dove/irq.c                      |   81 -
 arch/arm/mach-dove/irqs.h                     |   89 -
 arch/arm/mach-dove/mpp.c                      |  159 --
 arch/arm/mach-dove/mpp.h                      |  197 --
 arch/arm/mach-dove/pcie.c                     |  226 ---
 arch/arm/mach-dove/pm.h                       |   58 -
 arch/arm/mach-footbridge/Kconfig              |   57 -
 arch/arm/mach-footbridge/Makefile             |   18 -
 arch/arm/mach-footbridge/common.c             |  280 ---
 arch/arm/mach-footbridge/common.h             |   15 -
 arch/arm/mach-footbridge/dc21285-timer.c      |  136 --
 arch/arm/mach-footbridge/dc21285.c            |  360 ----
 arch/arm/mach-footbridge/dma-isa.c            |  230 ---
 arch/arm/mach-footbridge/ebsa285-pci.c        |   48 -
 arch/arm/mach-footbridge/ebsa285.c            |  124 --
 .../mach-footbridge/include/mach/hardware.h   |   90 -
 arch/arm/mach-footbridge/include/mach/irqs.h  |   97 -
 .../mach-footbridge/include/mach/isa-dma.h    |   18 -
 .../arm/mach-footbridge/include/mach/memory.h |   26 -
 .../mach-footbridge/include/mach/uncompress.h |   34 -
 arch/arm/mach-footbridge/isa-irq.c            |  177 --
 arch/arm/mach-footbridge/isa-rtc.c            |   57 -
 arch/arm/mach-footbridge/isa-timer.c          |   36 -
 arch/arm/mach-footbridge/isa.c                |   94 -
 arch/arm/mach-footbridge/netwinder-hw.c       |  772 -------
 arch/arm/mach-footbridge/netwinder-pci.c      |   62 -
 arch/arm/mach-imx/Kconfig                     |   38 +-
 arch/arm/mach-imx/Makefile                    |    4 -
 arch/arm/mach-imx/cpu-imx31.c                 |   72 -
 arch/arm/mach-imx/mach-imx31.c                |   18 -
 arch/arm/mach-imx/mach-imx7d-cm4.c            |   18 -
 arch/arm/mach-imx/mach-imxrt.c                |   19 -
 arch/arm/mach-imx/mm-imx3.c                   |   44 -
 arch/arm/mach-lpc18xx/Makefile                |    2 -
 arch/arm/mach-lpc18xx/board-dt.c              |   19 -
 arch/arm/mach-mv78xx0/Kconfig                 |   27 -
 arch/arm/mach-mv78xx0/Makefile                |    5 -
 arch/arm/mach-mv78xx0/bridge-regs.h           |   31 -
 arch/arm/mach-mv78xx0/buffalo-wxl-setup.c     |  183 --
 arch/arm/mach-mv78xx0/common.c                |  444 ----
 arch/arm/mach-mv78xx0/common.h                |   54 -
 arch/arm/mach-mv78xx0/irq.c                   |   69 -
 arch/arm/mach-mv78xx0/irqs.h                  |   87 -
 arch/arm/mach-mv78xx0/mpp.c                   |   34 -
 arch/arm/mach-mv78xx0/mpp.h                   |  337 ---
 arch/arm/mach-mv78xx0/mv78xx0.h               |  134 --
 arch/arm/mach-mv78xx0/pcie.c                  |  280 ---
 arch/arm/mach-omap2/Kconfig                   |   62 +-
 arch/arm/mach-omap2/Makefile                  |   63 +-
 arch/arm/mach-omap2/board-generic.c           |   34 -
 arch/arm/mach-omap2/board-n8x0.c              |  512 -----
 arch/arm/mach-omap2/clkt2xxx_dpll.c           |   56 -
 arch/arm/mach-omap2/clkt2xxx_dpllcore.c       |  194 --
 arch/arm/mach-omap2/clkt2xxx_virt_prcm_set.c  |  259 ---
 arch/arm/mach-omap2/clock.c                   |   12 +-
 arch/arm/mach-omap2/clock2xxx.h               |   17 -
 arch/arm/mach-omap2/clockdomain.c             |    4 +-
 arch/arm/mach-omap2/clockdomain.h             |    5 -
 arch/arm/mach-omap2/clockdomains2420_data.c   |  154 --
 arch/arm/mach-omap2/clockdomains2430_data.c   |  181 --
 .../mach-omap2/clockdomains2xxx_3xxx_data.c   |   29 +-
 arch/arm/mach-omap2/cm-regbits-24xx.h         |   51 -
 arch/arm/mach-omap2/cm2xxx.c                  |  302 ---
 arch/arm/mach-omap2/cm2xxx.h                  |   60 -
 arch/arm/mach-omap2/cm_common.c               |   12 -
 arch/arm/mach-omap2/common-board-devices.h    |   11 -
 arch/arm/mach-omap2/common.h                  |   12 -
 arch/arm/mach-omap2/control.h                 |   56 -
 arch/arm/mach-omap2/display.c                 |    4 +-
 arch/arm/mach-omap2/dma.c                     |   53 +-
 arch/arm/mach-omap2/fb.c                      |   14 +-
 arch/arm/mach-omap2/gpmc.h                    |   10 -
 arch/arm/mach-omap2/i2c.c                     |    2 +-
 arch/arm/mach-omap2/id.c                      |   80 +-
 arch/arm/mach-omap2/io.c                      |  140 +-
 arch/arm/mach-omap2/iomap.h                   |   46 -
 arch/arm/mach-omap2/l3_2xxx.h                 |   15 -
 arch/arm/mach-omap2/l4_2xxx.h                 |   19 -
 arch/arm/mach-omap2/mmc.h                     |   18 -
 arch/arm/mach-omap2/msdi.c                    |   75 -
 arch/arm/mach-omap2/omap2-restart.c           |   62 -
 arch/arm/mach-omap2/omap24xx.h                |   73 -
 arch/arm/mach-omap2/omap_hwmod.c              |   18 +-
 arch/arm/mach-omap2/omap_hwmod.h              |    2 -
 arch/arm/mach-omap2/omap_hwmod_2420_data.c    |  402 ----
 arch/arm/mach-omap2/omap_hwmod_2430_data.c    |  606 ------
 .../omap_hwmod_2xxx_interconnect_data.c       |  256 ---
 .../mach-omap2/omap_hwmod_2xxx_ipblock_data.c |  668 ------
 arch/arm/mach-omap2/omap_hwmod_common_data.h  |   66 -
 arch/arm/mach-omap2/opp2420_data.c            |  131 --
 arch/arm/mach-omap2/opp2430_data.c            |  136 --
 arch/arm/mach-omap2/opp2xxx.h                 |  430 ----
 arch/arm/mach-omap2/pdata-quirks.c            |   35 +-
 arch/arm/mach-omap2/pm.h                      |    5 -
 arch/arm/mach-omap2/powerdomain.h             |    3 -
 arch/arm/mach-omap2/powerdomains2xxx_data.c   |  134 --
 arch/arm/mach-omap2/prcm-common.h             |  147 --
 arch/arm/mach-omap2/prm-regbits-24xx.h        |   39 -
 arch/arm/mach-omap2/prm2xxx.c                 |  229 ---
 arch/arm/mach-omap2/prm2xxx.h                 |  128 --
 arch/arm/mach-omap2/prm2xxx_3xxx.c            |    1 -
 arch/arm/mach-omap2/prm_common.c              |   11 -
 arch/arm/mach-omap2/sdrc.h                    |   21 -
 arch/arm/mach-omap2/sdrc2xxx.c                |  164 --
 arch/arm/mach-omap2/sleep24xx.S               |   91 -
 arch/arm/mach-omap2/soc.h                     |   59 -
 arch/arm/mach-omap2/sram.c                    |  159 +-
 arch/arm/mach-omap2/sram.h                    |   32 -
 arch/arm/mach-omap2/sram242x.S                |  317 ---
 arch/arm/mach-omap2/sram243x.S                |  317 ---
 arch/arm/mach-omap2/usb-tusb6010.c            |  217 --
 arch/arm/mach-omap2/usb-tusb6010.h            |   12 -
 arch/arm/mach-omap2/voltagedomains2xxx_data.c |   29 -
 arch/arm/mach-orion5x/Kconfig                 |   95 -
 arch/arm/mach-orion5x/Makefile                |    9 -
 arch/arm/mach-orion5x/board-dt.c              |    3 +-
 arch/arm/mach-orion5x/common.c                |  238 +--
 arch/arm/mach-orion5x/common.h                |   15 -
 arch/arm/mach-orion5x/dns323-setup.c          |  757 -------
 arch/arm/mach-orion5x/kurobox_pro-setup.c     |  407 ----
 arch/arm/mach-orion5x/mv2120-setup.c          |  256 ---
 arch/arm/mach-orion5x/net2big-setup.c         |  444 ----
 arch/arm/mach-orion5x/pci.c                   |    1 -
 .../arm/mach-orion5x/terastation_pro2-setup.c |  366 ----
 arch/arm/mach-orion5x/ts209-setup.c           |  331 ---
 arch/arm/mach-orion5x/ts409-setup.c           |  329 ---
 arch/arm/mach-orion5x/ts78xx-fpga.h           |   42 -
 arch/arm/mach-orion5x/ts78xx-setup.c          |  574 ------
 arch/arm/mach-orion5x/tsx09-common.c          |  129 --
 arch/arm/mach-orion5x/tsx09-common.h          |   21 -
 arch/arm/mach-pxa/Kconfig                     |   89 -
 arch/arm/mach-pxa/Makefile                    |    8 -
 arch/arm/mach-pxa/am200epd.c                  |  395 ----
 arch/arm/mach-pxa/am300epd.c                  |  296 ---
 arch/arm/mach-pxa/devices.c                   |  705 -------
 arch/arm/mach-pxa/devices.h                   |   68 -
 arch/arm/mach-pxa/generic.h                   |    5 -
 arch/arm/mach-pxa/gumstix.c                   |  237 ---
 arch/arm/mach-pxa/gumstix.h                   |   89 -
 arch/arm/mach-pxa/pxa25x.c                    |   59 -
 arch/arm/mach-pxa/pxa27x.c                    |   77 -
 arch/arm/mach-pxa/pxa300.c                    |    1 -
 arch/arm/mach-pxa/pxa320.c                    |    1 -
 arch/arm/mach-pxa/pxa3xx.c                    |    6 -
 arch/arm/mach-pxa/sharpsl_pm.c                |  941 ---------
 arch/arm/mach-pxa/sharpsl_pm.h                |  108 -
 arch/arm/mach-pxa/spitz.c                     | 1174 -----------
 arch/arm/mach-pxa/spitz.h                     |  185 --
 arch/arm/mach-pxa/spitz_pm.c                  |  257 ---
 arch/arm/mach-rpc/Kconfig                     |   24 -
 arch/arm/mach-rpc/Makefile                    |    9 -
 arch/arm/mach-rpc/dma.c                       |  393 ----
 arch/arm/mach-rpc/ecard-loader.S              |   40 -
 arch/arm/mach-rpc/ecard.c                     | 1146 -----------
 arch/arm/mach-rpc/ecard.h                     |   66 -
 arch/arm/mach-rpc/fiq.S                       |   18 -
 arch/arm/mach-rpc/floppydma.S                 |   29 -
 arch/arm/mach-rpc/include/mach/acornfb.h      |  137 --
 arch/arm/mach-rpc/include/mach/hardware.h     |   73 -
 arch/arm/mach-rpc/include/mach/io.h           |   28 -
 arch/arm/mach-rpc/include/mach/irqs.h         |   42 -
 arch/arm/mach-rpc/include/mach/isa-dma.h      |   26 -
 arch/arm/mach-rpc/include/mach/memory.h       |   32 -
 arch/arm/mach-rpc/include/mach/uncompress.h   |  181 --
 arch/arm/mach-rpc/io-acorn.S                  |   28 -
 arch/arm/mach-rpc/irq.c                       |  226 ---
 arch/arm/mach-rpc/riscpc.c                    |  225 ---
 arch/arm/mach-rpc/time.c                      |   97 -
 arch/arm/mach-sa1100/Kconfig                  |   92 -
 arch/arm/mach-sa1100/Makefile                 |   20 -
 arch/arm/mach-sa1100/assabet.c                |  770 -------
 arch/arm/mach-sa1100/clock.c                  |  145 --
 arch/arm/mach-sa1100/collie.c                 |  447 ----
 arch/arm/mach-sa1100/generic.c                |  470 -----
 arch/arm/mach-sa1100/generic.h                |   58 -
 arch/arm/mach-sa1100/h3600.c                  |  134 --
 arch/arm/mach-sa1100/h3xxx.c                  |  305 ---
 arch/arm/mach-sa1100/include/mach/SA-1100.h   | 1798 -----------------
 arch/arm/mach-sa1100/include/mach/assabet.h   |   99 -
 arch/arm/mach-sa1100/include/mach/bitfield.h  |  113 --
 arch/arm/mach-sa1100/include/mach/collie.h    |   94 -
 arch/arm/mach-sa1100/include/mach/generic.h   |    1 -
 arch/arm/mach-sa1100/include/mach/h3xxx.h     |   81 -
 arch/arm/mach-sa1100/include/mach/hardware.h  |   56 -
 arch/arm/mach-sa1100/include/mach/irqs.h      |  101 -
 .../arm/mach-sa1100/include/mach/jornada720.h |   28 -
 arch/arm/mach-sa1100/include/mach/memory.h    |   37 -
 arch/arm/mach-sa1100/include/mach/mtd-xip.h   |   23 -
 arch/arm/mach-sa1100/include/mach/neponset.h  |   31 -
 arch/arm/mach-sa1100/include/mach/reset.h     |   18 -
 .../arm/mach-sa1100/include/mach/uncompress.h |   52 -
 arch/arm/mach-sa1100/jornada720.c             |  380 ----
 arch/arm/mach-sa1100/jornada720_ssp.c         |  202 --
 arch/arm/mach-sa1100/neponset.c               |  438 ----
 arch/arm/mach-sa1100/pm.c                     |  128 --
 arch/arm/mach-sa1100/sleep.S                  |  143 --
 arch/arm/mach-sa1100/ssp.c                    |  240 ---
 arch/arm/mach-stm32/Kconfig                   |   38 +-
 arch/arm/mach-versatile/Makefile              |    3 -
 arch/arm/mach-versatile/v2m-mps2.c            |   17 -
 arch/arm/mm/Kconfig                           |    2 +-
 arch/arm/mm/init.c                            |    5 -
 arch/arm/mm/mmu.c                             |   10 +-
 arch/arm/plat-orion/Makefile                  |    2 +-
 arch/arm/plat-orion/common.c                  |  826 --------
 arch/arm/plat-orion/include/plat/addr-map.h   |   54 -
 arch/arm/plat-orion/include/plat/common.h     |  104 -
 arch/arm/plat-orion/include/plat/time.h       |   20 -
 arch/arm/plat-orion/pcie.c                    |    1 -
 arch/arm/plat-orion/time.c                    |  238 ---
 block/partitions/Kconfig                      |    7 -
 drivers/ata/Kconfig                           |    3 +-
 drivers/crypto/Kconfig                        |    2 +-
 drivers/i2c/busses/Kconfig                    |    2 +-
 drivers/media/platform/ti/omap/Kconfig        |    4 +-
 drivers/mmc/host/Kconfig                      |    2 +-
 drivers/mtd/nand/onenand/Kconfig              |    4 +-
 drivers/pci/controller/Kconfig                |    2 +-
 drivers/phy/marvell/Kconfig                   |    2 +-
 drivers/rtc/Kconfig                           |    6 +-
 drivers/rtc/rtc-sa1100.c                      |   16 +-
 drivers/soc/Makefile                          |    1 -
 drivers/soc/atmel/soc.c                       |   35 -
 drivers/thermal/Kconfig                       |    2 +-
 drivers/tty/vt/keyboard.c                     |    2 +-
 drivers/video/console/Kconfig                 |    6 +-
 drivers/video/console/dummycon.c              |    6 -
 drivers/video/fbdev/cyber2000fb.c             |   10 -
 drivers/video/fbdev/omap2/omapfb/Kconfig      |    2 +-
 drivers/watchdog/Kconfig                      |   14 +-
 include/linux/clk/ti.h                        |    8 -
 lib/fonts/font_acorn_8x8.c                    |    4 -
 sound/soc/kirkwood/Kconfig                    |    2 +-
 371 files changed, 115 insertions(+), 55679 deletions(-)
 delete mode 100644 Documentation/arch/arm/netwinder.rst
 delete mode 100644 Documentation/devicetree/bindings/arm/axxia.yaml
 delete mode 100644 arch/arm/boot/compressed/font.c
 delete mode 100644 arch/arm/boot/compressed/head-sa1100.S
 delete mode 100644 arch/arm/boot/compressed/head-sharpsl.S
 delete mode 100644 arch/arm/boot/compressed/ll_char_wr.S
 delete mode 100644 arch/arm/boot/dts/arm/mps2-an385.dts
 delete mode 100644 arch/arm/boot/dts/arm/mps2-an399.dts
 delete mode 100644 arch/arm/boot/dts/arm/mps2.dtsi
 delete mode 100644 arch/arm/boot/dts/intel/axm/Makefile
 delete mode 100644 arch/arm/boot/dts/intel/axm/axm5516-amarillo.dts
 delete mode 100644 arch/arm/boot/dts/intel/axm/axm5516-cpus.dtsi
 delete mode 100644 arch/arm/boot/dts/intel/axm/axm55xx.dtsi
 delete mode 100644 arch/arm/boot/dts/nxp/imx/imx31-bug.dts
 delete mode 100644 arch/arm/boot/dts/nxp/imx/imx31-lite.dts
 delete mode 100644 arch/arm/boot/dts/nxp/imx/imx31.dtsi
 delete mode 100644 arch/arm/boot/dts/nxp/imx/imxrt1050-evk.dts
 delete mode 100644 arch/arm/boot/dts/nxp/imx/imxrt1050-pinfunc.h
 delete mode 100644 arch/arm/boot/dts/nxp/imx/imxrt1050.dtsi
 delete mode 100644 arch/arm/boot/dts/nxp/imx/imxrt1170-pinfunc.h
 delete mode 100644 arch/arm/boot/dts/nxp/lpc/lpc18xx.dtsi
 delete mode 100644 arch/arm/boot/dts/nxp/lpc/lpc4337-ciaa.dts
 delete mode 100644 arch/arm/boot/dts/nxp/lpc/lpc4350-hitex-eval.dts
 delete mode 100644 arch/arm/boot/dts/nxp/lpc/lpc4350.dtsi
 delete mode 100644 arch/arm/boot/dts/nxp/lpc/lpc4357-ea4357-devkit.dts
 delete mode 100644 arch/arm/boot/dts/nxp/lpc/lpc4357-myd-lpc4357.dts
 delete mode 100644 arch/arm/boot/dts/nxp/lpc/lpc4357.dtsi
 delete mode 100644 arch/arm/boot/dts/nxp/vf/vf610m4-colibri.dts
 delete mode 100644 arch/arm/boot/dts/nxp/vf/vf610m4-cosmic.dts
 delete mode 100644 arch/arm/boot/dts/nxp/vf/vf610m4.dtsi
 delete mode 100644 arch/arm/boot/dts/st/stm32f4-pinctrl.dtsi
 delete mode 100644 arch/arm/boot/dts/st/stm32f429-disco.dts
 delete mode 100644 arch/arm/boot/dts/st/stm32f429-pinctrl.dtsi
 delete mode 100644 arch/arm/boot/dts/st/stm32f429.dtsi
 delete mode 100644 arch/arm/boot/dts/st/stm32f469-disco.dts
 delete mode 100644 arch/arm/boot/dts/st/stm32f469-pinctrl.dtsi
 delete mode 100644 arch/arm/boot/dts/st/stm32f469.dtsi
 delete mode 100644 arch/arm/boot/dts/st/stm32f7-pinctrl.dtsi
 delete mode 100644 arch/arm/boot/dts/st/stm32f746-disco.dts
 delete mode 100644 arch/arm/boot/dts/st/stm32f746-pinctrl.dtsi
 delete mode 100644 arch/arm/boot/dts/st/stm32f746.dtsi
 delete mode 100644 arch/arm/boot/dts/st/stm32f769-disco-mb1166-reva09.dts
 delete mode 100644 arch/arm/boot/dts/st/stm32f769-disco.dts
 delete mode 100644 arch/arm/boot/dts/st/stm32f769-pinctrl.dtsi
 delete mode 100644 arch/arm/boot/dts/st/stm32f769.dtsi
 delete mode 100644 arch/arm/boot/dts/st/stm32h7-pinctrl.dtsi
 delete mode 100644 arch/arm/boot/dts/st/stm32h743.dtsi
 delete mode 100644 arch/arm/boot/dts/st/stm32h743i-disco.dts
 delete mode 100644 arch/arm/boot/dts/st/stm32h743i-eval.dts
 delete mode 100644 arch/arm/boot/dts/st/stm32h747i-disco.dts
 delete mode 100644 arch/arm/boot/dts/st/stm32h750.dtsi
 delete mode 100644 arch/arm/boot/dts/st/stm32h750i-art-pi.dts
 delete mode 100644 arch/arm/boot/dts/ti/omap/omap2.dtsi
 delete mode 100644 arch/arm/boot/dts/ti/omap/omap2420-clocks.dtsi
 delete mode 100644 arch/arm/boot/dts/ti/omap/omap2420-h4.dts
 delete mode 100644 arch/arm/boot/dts/ti/omap/omap2420-n800.dts
 delete mode 100644 arch/arm/boot/dts/ti/omap/omap2420-n810-wimax.dts
 delete mode 100644 arch/arm/boot/dts/ti/omap/omap2420-n810.dts
 delete mode 100644 arch/arm/boot/dts/ti/omap/omap2420-n8x0-common.dtsi
 delete mode 100644 arch/arm/boot/dts/ti/omap/omap2420.dtsi
 delete mode 100644 arch/arm/boot/dts/ti/omap/omap2430-clocks.dtsi
 delete mode 100644 arch/arm/boot/dts/ti/omap/omap2430-sdp.dts
 delete mode 100644 arch/arm/boot/dts/ti/omap/omap2430.dtsi
 delete mode 100644 arch/arm/boot/dts/ti/omap/omap24xx-clocks.dtsi
 delete mode 100644 arch/arm/common/locomo.c
 delete mode 100644 arch/arm/common/sa1111.c
 delete mode 100644 arch/arm/common/scoop.c
 delete mode 100644 arch/arm/common/sharpsl_param.c
 delete mode 100644 arch/arm/configs/am200epdkit_defconfig
 delete mode 100644 arch/arm/configs/assabet_defconfig
 delete mode 100644 arch/arm/configs/axm55xx_defconfig
 delete mode 100644 arch/arm/configs/collie_defconfig
 delete mode 100644 arch/arm/configs/dove_defconfig
 delete mode 100644 arch/arm/configs/footbridge_defconfig
 delete mode 100644 arch/arm/configs/h3600_defconfig
 delete mode 100644 arch/arm/configs/imxrt_defconfig
 delete mode 100644 arch/arm/configs/jornada720_defconfig
 delete mode 100644 arch/arm/configs/lpc18xx_defconfig
 delete mode 100644 arch/arm/configs/mps2_defconfig
 delete mode 100644 arch/arm/configs/mv78xx0_defconfig
 delete mode 100644 arch/arm/configs/neponset_defconfig
 delete mode 100644 arch/arm/configs/netwinder_defconfig
 delete mode 100644 arch/arm/configs/rpc_defconfig
 delete mode 100644 arch/arm/configs/spitz_defconfig
 delete mode 100644 arch/arm/configs/stm32_defconfig
 delete mode 100644 arch/arm/configs/vf610m4_defconfig
 delete mode 100644 arch/arm/include/asm/ecard.h
 delete mode 100644 arch/arm/include/asm/hardware/dec21285.h
 delete mode 100644 arch/arm/include/asm/hardware/ioc.h
 delete mode 100644 arch/arm/include/asm/hardware/iomd.h
 delete mode 100644 arch/arm/include/asm/hardware/locomo.h
 delete mode 100644 arch/arm/include/asm/hardware/memc.h
 delete mode 100644 arch/arm/include/asm/hardware/scoop.h
 delete mode 100644 arch/arm/include/asm/hardware/ssp.h
 delete mode 100644 arch/arm/include/asm/mach/sharpsl_param.h
 delete mode 100644 arch/arm/include/debug/dc21285.S
 delete mode 100644 arch/arm/include/debug/sa1100.S
 delete mode 100644 arch/arm/mach-at91/samv7.c
 delete mode 100644 arch/arm/mach-axxia/Kconfig
 delete mode 100644 arch/arm/mach-axxia/Makefile
 delete mode 100644 arch/arm/mach-axxia/axxia.c
 delete mode 100644 arch/arm/mach-axxia/platsmp.c
 delete mode 100644 arch/arm/mach-dove/Kconfig
 delete mode 100644 arch/arm/mach-dove/Makefile
 delete mode 100644 arch/arm/mach-dove/bridge-regs.h
 delete mode 100644 arch/arm/mach-dove/cm-a510.c
 delete mode 100644 arch/arm/mach-dove/common.c
 delete mode 100644 arch/arm/mach-dove/common.h
 delete mode 100644 arch/arm/mach-dove/dove.h
 delete mode 100644 arch/arm/mach-dove/irq.c
 delete mode 100644 arch/arm/mach-dove/irqs.h
 delete mode 100644 arch/arm/mach-dove/mpp.c
 delete mode 100644 arch/arm/mach-dove/mpp.h
 delete mode 100644 arch/arm/mach-dove/pcie.c
 delete mode 100644 arch/arm/mach-dove/pm.h
 delete mode 100644 arch/arm/mach-footbridge/Kconfig
 delete mode 100644 arch/arm/mach-footbridge/Makefile
 delete mode 100644 arch/arm/mach-footbridge/common.c
 delete mode 100644 arch/arm/mach-footbridge/common.h
 delete mode 100644 arch/arm/mach-footbridge/dc21285-timer.c
 delete mode 100644 arch/arm/mach-footbridge/dc21285.c
 delete mode 100644 arch/arm/mach-footbridge/dma-isa.c
 delete mode 100644 arch/arm/mach-footbridge/ebsa285-pci.c
 delete mode 100644 arch/arm/mach-footbridge/ebsa285.c
 delete mode 100644 arch/arm/mach-footbridge/include/mach/hardware.h
 delete mode 100644 arch/arm/mach-footbridge/include/mach/irqs.h
 delete mode 100644 arch/arm/mach-footbridge/include/mach/isa-dma.h
 delete mode 100644 arch/arm/mach-footbridge/include/mach/memory.h
 delete mode 100644 arch/arm/mach-footbridge/include/mach/uncompress.h
 delete mode 100644 arch/arm/mach-footbridge/isa-irq.c
 delete mode 100644 arch/arm/mach-footbridge/isa-rtc.c
 delete mode 100644 arch/arm/mach-footbridge/isa-timer.c
 delete mode 100644 arch/arm/mach-footbridge/isa.c
 delete mode 100644 arch/arm/mach-footbridge/netwinder-hw.c
 delete mode 100644 arch/arm/mach-footbridge/netwinder-pci.c
 delete mode 100644 arch/arm/mach-imx/cpu-imx31.c
 delete mode 100644 arch/arm/mach-imx/mach-imx31.c
 delete mode 100644 arch/arm/mach-imx/mach-imx7d-cm4.c
 delete mode 100644 arch/arm/mach-imx/mach-imxrt.c
 delete mode 100644 arch/arm/mach-lpc18xx/Makefile
 delete mode 100644 arch/arm/mach-lpc18xx/board-dt.c
 delete mode 100644 arch/arm/mach-mv78xx0/Kconfig
 delete mode 100644 arch/arm/mach-mv78xx0/Makefile
 delete mode 100644 arch/arm/mach-mv78xx0/bridge-regs.h
 delete mode 100644 arch/arm/mach-mv78xx0/buffalo-wxl-setup.c
 delete mode 100644 arch/arm/mach-mv78xx0/common.c
 delete mode 100644 arch/arm/mach-mv78xx0/common.h
 delete mode 100644 arch/arm/mach-mv78xx0/irq.c
 delete mode 100644 arch/arm/mach-mv78xx0/irqs.h
 delete mode 100644 arch/arm/mach-mv78xx0/mpp.c
 delete mode 100644 arch/arm/mach-mv78xx0/mpp.h
 delete mode 100644 arch/arm/mach-mv78xx0/mv78xx0.h
 delete mode 100644 arch/arm/mach-mv78xx0/pcie.c
 delete mode 100644 arch/arm/mach-omap2/board-n8x0.c
 delete mode 100644 arch/arm/mach-omap2/clkt2xxx_dpll.c
 delete mode 100644 arch/arm/mach-omap2/clkt2xxx_dpllcore.c
 delete mode 100644 arch/arm/mach-omap2/clkt2xxx_virt_prcm_set.c
 delete mode 100644 arch/arm/mach-omap2/clock2xxx.h
 delete mode 100644 arch/arm/mach-omap2/clockdomains2420_data.c
 delete mode 100644 arch/arm/mach-omap2/clockdomains2430_data.c
 delete mode 100644 arch/arm/mach-omap2/cm-regbits-24xx.h
 delete mode 100644 arch/arm/mach-omap2/cm2xxx.c
 delete mode 100644 arch/arm/mach-omap2/cm2xxx.h
 delete mode 100644 arch/arm/mach-omap2/common-board-devices.h
 delete mode 100644 arch/arm/mach-omap2/gpmc.h
 delete mode 100644 arch/arm/mach-omap2/l3_2xxx.h
 delete mode 100644 arch/arm/mach-omap2/l4_2xxx.h
 delete mode 100644 arch/arm/mach-omap2/mmc.h
 delete mode 100644 arch/arm/mach-omap2/msdi.c
 delete mode 100644 arch/arm/mach-omap2/omap2-restart.c
 delete mode 100644 arch/arm/mach-omap2/omap24xx.h
 delete mode 100644 arch/arm/mach-omap2/omap_hwmod_2420_data.c
 delete mode 100644 arch/arm/mach-omap2/omap_hwmod_2430_data.c
 delete mode 100644 arch/arm/mach-omap2/omap_hwmod_2xxx_interconnect_data.c
 delete mode 100644 arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c
 delete mode 100644 arch/arm/mach-omap2/opp2420_data.c
 delete mode 100644 arch/arm/mach-omap2/opp2430_data.c
 delete mode 100644 arch/arm/mach-omap2/opp2xxx.h
 delete mode 100644 arch/arm/mach-omap2/powerdomains2xxx_data.c
 delete mode 100644 arch/arm/mach-omap2/prm-regbits-24xx.h
 delete mode 100644 arch/arm/mach-omap2/prm2xxx.c
 delete mode 100644 arch/arm/mach-omap2/prm2xxx.h
 delete mode 100644 arch/arm/mach-omap2/sdrc2xxx.c
 delete mode 100644 arch/arm/mach-omap2/sleep24xx.S
 delete mode 100644 arch/arm/mach-omap2/sram242x.S
 delete mode 100644 arch/arm/mach-omap2/sram243x.S
 delete mode 100644 arch/arm/mach-omap2/usb-tusb6010.c
 delete mode 100644 arch/arm/mach-omap2/usb-tusb6010.h
 delete mode 100644 arch/arm/mach-omap2/voltagedomains2xxx_data.c
 delete mode 100644 arch/arm/mach-orion5x/dns323-setup.c
 delete mode 100644 arch/arm/mach-orion5x/kurobox_pro-setup.c
 delete mode 100644 arch/arm/mach-orion5x/mv2120-setup.c
 delete mode 100644 arch/arm/mach-orion5x/net2big-setup.c
 delete mode 100644 arch/arm/mach-orion5x/terastation_pro2-setup.c
 delete mode 100644 arch/arm/mach-orion5x/ts209-setup.c
 delete mode 100644 arch/arm/mach-orion5x/ts409-setup.c
 delete mode 100644 arch/arm/mach-orion5x/ts78xx-fpga.h
 delete mode 100644 arch/arm/mach-orion5x/ts78xx-setup.c
 delete mode 100644 arch/arm/mach-orion5x/tsx09-common.c
 delete mode 100644 arch/arm/mach-orion5x/tsx09-common.h
 delete mode 100644 arch/arm/mach-pxa/am200epd.c
 delete mode 100644 arch/arm/mach-pxa/am300epd.c
 delete mode 100644 arch/arm/mach-pxa/devices.h
 delete mode 100644 arch/arm/mach-pxa/gumstix.c
 delete mode 100644 arch/arm/mach-pxa/gumstix.h
 delete mode 100644 arch/arm/mach-pxa/sharpsl_pm.c
 delete mode 100644 arch/arm/mach-pxa/sharpsl_pm.h
 delete mode 100644 arch/arm/mach-pxa/spitz.c
 delete mode 100644 arch/arm/mach-pxa/spitz.h
 delete mode 100644 arch/arm/mach-pxa/spitz_pm.c
 delete mode 100644 arch/arm/mach-rpc/Kconfig
 delete mode 100644 arch/arm/mach-rpc/Makefile
 delete mode 100644 arch/arm/mach-rpc/dma.c
 delete mode 100644 arch/arm/mach-rpc/ecard-loader.S
 delete mode 100644 arch/arm/mach-rpc/ecard.c
 delete mode 100644 arch/arm/mach-rpc/ecard.h
 delete mode 100644 arch/arm/mach-rpc/fiq.S
 delete mode 100644 arch/arm/mach-rpc/floppydma.S
 delete mode 100644 arch/arm/mach-rpc/include/mach/acornfb.h
 delete mode 100644 arch/arm/mach-rpc/include/mach/hardware.h
 delete mode 100644 arch/arm/mach-rpc/include/mach/io.h
 delete mode 100644 arch/arm/mach-rpc/include/mach/irqs.h
 delete mode 100644 arch/arm/mach-rpc/include/mach/isa-dma.h
 delete mode 100644 arch/arm/mach-rpc/include/mach/memory.h
 delete mode 100644 arch/arm/mach-rpc/include/mach/uncompress.h
 delete mode 100644 arch/arm/mach-rpc/io-acorn.S
 delete mode 100644 arch/arm/mach-rpc/irq.c
 delete mode 100644 arch/arm/mach-rpc/riscpc.c
 delete mode 100644 arch/arm/mach-rpc/time.c
 delete mode 100644 arch/arm/mach-sa1100/Kconfig
 delete mode 100644 arch/arm/mach-sa1100/Makefile
 delete mode 100644 arch/arm/mach-sa1100/assabet.c
 delete mode 100644 arch/arm/mach-sa1100/clock.c
 delete mode 100644 arch/arm/mach-sa1100/collie.c
 delete mode 100644 arch/arm/mach-sa1100/generic.c
 delete mode 100644 arch/arm/mach-sa1100/generic.h
 delete mode 100644 arch/arm/mach-sa1100/h3600.c
 delete mode 100644 arch/arm/mach-sa1100/h3xxx.c
 delete mode 100644 arch/arm/mach-sa1100/include/mach/SA-1100.h
 delete mode 100644 arch/arm/mach-sa1100/include/mach/assabet.h
 delete mode 100644 arch/arm/mach-sa1100/include/mach/bitfield.h
 delete mode 100644 arch/arm/mach-sa1100/include/mach/collie.h
 delete mode 100644 arch/arm/mach-sa1100/include/mach/generic.h
 delete mode 100644 arch/arm/mach-sa1100/include/mach/h3xxx.h
 delete mode 100644 arch/arm/mach-sa1100/include/mach/hardware.h
 delete mode 100644 arch/arm/mach-sa1100/include/mach/irqs.h
 delete mode 100644 arch/arm/mach-sa1100/include/mach/jornada720.h
 delete mode 100644 arch/arm/mach-sa1100/include/mach/memory.h
 delete mode 100644 arch/arm/mach-sa1100/include/mach/mtd-xip.h
 delete mode 100644 arch/arm/mach-sa1100/include/mach/neponset.h
 delete mode 100644 arch/arm/mach-sa1100/include/mach/reset.h
 delete mode 100644 arch/arm/mach-sa1100/include/mach/uncompress.h
 delete mode 100644 arch/arm/mach-sa1100/jornada720.c
 delete mode 100644 arch/arm/mach-sa1100/jornada720_ssp.c
 delete mode 100644 arch/arm/mach-sa1100/neponset.c
 delete mode 100644 arch/arm/mach-sa1100/pm.c
 delete mode 100644 arch/arm/mach-sa1100/sleep.S
 delete mode 100644 arch/arm/mach-sa1100/ssp.c
 delete mode 100644 arch/arm/mach-versatile/v2m-mps2.c
 delete mode 100644 arch/arm/plat-orion/common.c
 delete mode 100644 arch/arm/plat-orion/include/plat/addr-map.h
 delete mode 100644 arch/arm/plat-orion/include/plat/common.h
 delete mode 100644 arch/arm/plat-orion/include/plat/time.h
 delete mode 100644 arch/arm/plat-orion/time.c

-- 
2.53.0

Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Rob Herring <robh@kernel.org>
Cc: Conor Dooley <conor+dt@kernel.org>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Liviu Dudau <liviu.dudau@arm.com>
Cc: Sudeep Holla <sudeep.holla@kernel.org>
Cc: Lorenzo Pieralisi <lpieralisi@kernel.org>
Cc: Frank Li <Frank.Li@nxp.com>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Vladimir Zapolskiy <vz@mleia.com>
Cc: Stefan Agner <stefan@agner.ch>
Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>
Cc: Alexandre Torgue <alexandre.torgue@foss.st.com>
Cc: Aaro Koskinen <aaro.koskinen@iki.fi>
Cc: Andreas Kemnade <andreas@kemnade.info>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Roger Quadros <rogerq@kernel.org>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Nicolas Ferre <nicolas.ferre@microchip.com>
Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
Cc: Claudiu Beznea <claudiu.beznea@tuxon.dev>
Cc: Andrew Lunn <andrew@lunn.ch>
Cc: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Cc: Gregory Clement <gregory.clement@bootlin.com>
Cc: Robert Jarzmik <robert.jarzmik@free.fr>
Cc: Kristoffer Ericson <kristoffer.ericson@gmail.com>
Cc: Linus Walleij <linusw@kernel.org>
Cc: Ethan Nelson-Moore <enelsonmoore@gmail.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Alexander Sverdlin <alexander.sverdlin@siemens.com>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Karl Mehltretter <kmehltretter@gmail.com>
Cc: "David Hildenbrand (Arm)" <david@kernel.org>
Cc: Nicolas Pitre <npitre@baylibre.com>
Cc: linux-doc@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: devicetree@vger.kernel.org
Cc: imx@lists.linux.dev
Cc: linux-stm32@st-md-mailman.stormreply.com
Cc: linux-omap@vger.kernel.org


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

* [PATCH 02/13] ARM: remove footbridge
  2026-09-08 15:27 [PATCH 00/13] ARM: deprecated platform removal Arnd Bergmann
@ 2026-09-08 15:27 ` Arnd Bergmann
  2026-09-08 17:27   ` Linus Walleij
  2026-09-08 15:27 ` [PATCH 07/13] ARM: imx: remove i.MX31 SoC support Arnd Bergmann
                   ` (10 subsequent siblings)
  11 siblings, 1 reply; 49+ messages in thread
From: Arnd Bergmann @ 2026-09-08 15:27 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Alexandre Belloni, Linus Walleij,
	Russell King
  Cc: Drew Fustini, Arnd Bergmann, Rob Herring, Conor Dooley,
	Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi, Frank Li,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Vladimir Zapolskiy, Stefan Agner, Maxime Coquelin,
	Alexandre Torgue, Aaro Koskinen, Andreas Kemnade, Kevin Hilman,
	Roger Quadros, Tony Lindgren, Nicolas Ferre, Claudiu Beznea,
	Andrew Lunn, Sebastian Hesselbarth, Gregory Clement,
	Robert Jarzmik, Kristoffer Ericson, Ethan Nelson-Moore,
	Geert Uytterhoeven, Alexander Sverdlin, Shawn Guo,
	Karl Mehltretter, David Hildenbrand (Arm), Nicolas Pitre,
	linux-doc, linux-kernel, linux-arm-kernel, devicetree, imx,
	linux-stm32, linux-omap, Ralph Siemsen, Helge Deller, dri-devel

From: Arnd Bergmann <arnd@arndb.de>

Footbridge was deprecated in 7.3 to be removed along with the other
StrongARM platforms and most remaining board files.

The main machine here is the NetWinder, which was a popular Arm based
desktop PC in the late 1990s and contributed to Arm's later success as
an embedded Linux platform, but was discontinued over 25 years ago and
is no longer all that useful.

I previously tried to convert this to devicetree in a sensible way but
gave up due to the platform being too different from modern SoC based
targets.

Cc: Russell King <linux@armlinux.org.uk>
Cc: Ralph Siemsen <ralphs@netwinder.org>
Cc: Helge Deller <deller@gmx.de>
Cc: dri-devel@lists.freedesktop.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 Documentation/arch/arm/index.rst              |   1 -
 Documentation/arch/arm/netwinder.rst          |  85 --
 MAINTAINERS                                   |   8 -
 arch/arm/Kconfig                              |  17 +-
 arch/arm/Kconfig.debug                        |  27 +-
 arch/arm/Makefile                             |   2 -
 arch/arm/boot/bootp/Makefile                  |   1 -
 arch/arm/configs/footbridge_defconfig         | 114 ---
 arch/arm/configs/netwinder_defconfig          |  88 --
 arch/arm/include/asm/hardware/dec21285.h      | 138 ----
 arch/arm/include/asm/mach/pci.h               |  14 -
 arch/arm/include/debug/dc21285.S              |  41 -
 arch/arm/kernel/atags_parse.c                 |  18 -
 arch/arm/kernel/bios32.c                      |  12 -
 arch/arm/kernel/head.S                        |  10 -
 arch/arm/mach-footbridge/Kconfig              |  57 --
 arch/arm/mach-footbridge/Makefile             |  18 -
 arch/arm/mach-footbridge/common.c             | 280 -------
 arch/arm/mach-footbridge/common.h             |  15 -
 arch/arm/mach-footbridge/dc21285-timer.c      | 136 ---
 arch/arm/mach-footbridge/dc21285.c            | 360 --------
 arch/arm/mach-footbridge/dma-isa.c            | 230 ------
 arch/arm/mach-footbridge/ebsa285-pci.c        |  48 --
 arch/arm/mach-footbridge/ebsa285.c            | 124 ---
 .../mach-footbridge/include/mach/hardware.h   |  90 --
 arch/arm/mach-footbridge/include/mach/irqs.h  |  97 ---
 .../mach-footbridge/include/mach/isa-dma.h    |  18 -
 .../arm/mach-footbridge/include/mach/memory.h |  26 -
 .../mach-footbridge/include/mach/uncompress.h |  34 -
 arch/arm/mach-footbridge/isa-irq.c            | 177 ----
 arch/arm/mach-footbridge/isa-rtc.c            |  57 --
 arch/arm/mach-footbridge/isa-timer.c          |  36 -
 arch/arm/mach-footbridge/isa.c                |  94 ---
 arch/arm/mach-footbridge/netwinder-hw.c       | 772 ------------------
 arch/arm/mach-footbridge/netwinder-pci.c      |  62 --
 drivers/video/console/Kconfig                 |   6 +-
 drivers/video/console/dummycon.c              |   6 -
 drivers/video/fbdev/cyber2000fb.c             |  10 -
 38 files changed, 12 insertions(+), 3317 deletions(-)
 delete mode 100644 Documentation/arch/arm/netwinder.rst
 delete mode 100644 arch/arm/configs/footbridge_defconfig
 delete mode 100644 arch/arm/configs/netwinder_defconfig
 delete mode 100644 arch/arm/include/asm/hardware/dec21285.h
 delete mode 100644 arch/arm/include/debug/dc21285.S
 delete mode 100644 arch/arm/mach-footbridge/Kconfig
 delete mode 100644 arch/arm/mach-footbridge/Makefile
 delete mode 100644 arch/arm/mach-footbridge/common.c
 delete mode 100644 arch/arm/mach-footbridge/common.h
 delete mode 100644 arch/arm/mach-footbridge/dc21285-timer.c
 delete mode 100644 arch/arm/mach-footbridge/dc21285.c
 delete mode 100644 arch/arm/mach-footbridge/dma-isa.c
 delete mode 100644 arch/arm/mach-footbridge/ebsa285-pci.c
 delete mode 100644 arch/arm/mach-footbridge/ebsa285.c
 delete mode 100644 arch/arm/mach-footbridge/include/mach/hardware.h
 delete mode 100644 arch/arm/mach-footbridge/include/mach/irqs.h
 delete mode 100644 arch/arm/mach-footbridge/include/mach/isa-dma.h
 delete mode 100644 arch/arm/mach-footbridge/include/mach/memory.h
 delete mode 100644 arch/arm/mach-footbridge/include/mach/uncompress.h
 delete mode 100644 arch/arm/mach-footbridge/isa-irq.c
 delete mode 100644 arch/arm/mach-footbridge/isa-rtc.c
 delete mode 100644 arch/arm/mach-footbridge/isa-timer.c
 delete mode 100644 arch/arm/mach-footbridge/isa.c
 delete mode 100644 arch/arm/mach-footbridge/netwinder-hw.c
 delete mode 100644 arch/arm/mach-footbridge/netwinder-pci.c

diff --git a/Documentation/arch/arm/index.rst b/Documentation/arch/arm/index.rst
index a292b8ac41ce..17d6a5bbfc26 100644
--- a/Documentation/arch/arm/index.rst
+++ b/Documentation/arch/arm/index.rst
@@ -38,7 +38,6 @@ SoC-specific documents
    marvell
    microchip
 
-   netwinder
    nwfpe/index
 
    keystone/overview
diff --git a/Documentation/arch/arm/netwinder.rst b/Documentation/arch/arm/netwinder.rst
deleted file mode 100644
index 8eab66caa2ac..000000000000
--- a/Documentation/arch/arm/netwinder.rst
+++ /dev/null
@@ -1,85 +0,0 @@
-================================
-NetWinder specific documentation
-================================
-
-The NetWinder is a small low-power computer, primarily designed
-to run Linux.  It is based around the StrongARM RISC processor,
-DC21285 PCI bridge, with PC-type hardware glued around it.
-
-Port usage
-==========
-
-=======  ====== ===============================
-Min      Max	Description
-=======  ====== ===============================
-0x0000   0x000f	DMA1
-0x0020   0x0021	PIC1
-0x0060   0x006f	Keyboard
-0x0070   0x007f	RTC
-0x0080   0x0087	DMA1
-0x0088   0x008f	DMA2
-0x00a0   0x00a3	PIC2
-0x00c0   0x00df	DMA2
-0x0180   0x0187	IRDA
-0x01f0   0x01f6	ide0
-0x0201		Game port
-0x0203		RWA010 configuration read
-0x0220   ?	SoundBlaster
-0x0250   ?	WaveArtist
-0x0279		RWA010 configuration index
-0x02f8   0x02ff	Serial ttyS1
-0x0300   0x031f	Ether10
-0x0338		GPIO1
-0x033a		GPIO2
-0x0370   0x0371	W83977F configuration registers
-0x0388   ?	AdLib
-0x03c0   0x03df	VGA
-0x03f6		ide0
-0x03f8   0x03ff	Serial ttyS0
-0x0400   0x0408	DC21143
-0x0480   0x0487	DMA1
-0x0488   0x048f	DMA2
-0x0a79		RWA010 configuration write
-0xe800   0xe80f	ide0/ide1 BM DMA
-=======  ====== ===============================
-
-
-Interrupt usage
-===============
-
-======= ======= ========================
-IRQ	type	Description
-======= ======= ========================
- 0	ISA	100Hz timer
- 1	ISA	Keyboard
- 2	ISA	cascade
- 3	ISA	Serial ttyS1
- 4	ISA	Serial ttyS0
- 5	ISA	PS/2 mouse
- 6	ISA	IRDA
- 7	ISA	Printer
- 8	ISA	RTC alarm
- 9	ISA
-10	ISA	GP10 (Orange reset button)
-11	ISA
-12	ISA	WaveArtist
-13	ISA
-14	ISA	hda1
-15	ISA
-======= ======= ========================
-
-DMA usage
-=========
-
-======= ======= ===========
-DMA	type	Description
-======= ======= ===========
- 0	ISA	IRDA
- 1	ISA
- 2	ISA	cascade
- 3	ISA	WaveArtist
- 4	ISA
- 5	ISA
- 6	ISA
- 7	ISA	WaveArtist
-======= ======= ===========
diff --git a/MAINTAINERS b/MAINTAINERS
index fd213c4bc257..4380d5660402 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2924,14 +2924,6 @@ S:	Maintained
 T:	git git://git.berlios.de/gemini-board
 F:	arch/arm/mm/*-fa*
 
-ARM/FOOTBRIDGE ARCHITECTURE
-M:	Russell King <linux@armlinux.org.uk>
-L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
-S:	Maintained
-W:	http://www.armlinux.org.uk/
-F:	arch/arm/include/asm/hardware/dec21285.h
-F:	arch/arm/mach-footbridge/
-
 ARM/FREESCALE IMX / MXC / LAYERSCAPE ARM ARCHITECTURE
 M:	Frank Li <Frank.Li@nxp.com>
 M:	Sascha Hauer <s.hauer@pengutronix.de>
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 7f4c2973d630..c3d6b8abc815 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -55,7 +55,7 @@ config ARM
 	select ARCH_WANT_LD_ORPHAN_WARN
 	select BINFMT_FLAT_ARGVP_ENVP_ON_STACK
 	select BUILDTIME_TABLE_SORT if MMU
-	select COMMON_CLK if !(ARCH_RPC || ARCH_FOOTBRIDGE)
+	select COMMON_CLK if !ARCH_RPC
 	select CLONE_BACKWARDS
 	select CPU_PM if SUSPEND || CPU_IDLE
 	select DCACHE_WORD_ACCESS if HAVE_EFFICIENT_UNALIGNED_ACCESS
@@ -155,13 +155,13 @@ config ARM
 	select PCI_SYSCALL if PCI
 	select PERF_USE_VMALLOC
 	select RTC_LIB
-	select SPARSE_IRQ if !(ARCH_FOOTBRIDGE || ARCH_RPC)
+	select SPARSE_IRQ if !ARCH_RPC
 	select SYS_SUPPORTS_APM_EMULATION
 	select THREAD_INFO_IN_TASK
 	select TIMER_OF if OF
 	select HAVE_ARCH_VMAP_STACK if MMU && ARM_HAS_GROUP_RELOCS
 	select TRACE_IRQFLAGS_SUPPORT if !CPU_V7M
-	select USE_OF if !(ARCH_FOOTBRIDGE || ARCH_RPC)
+	select USE_OF if !ARCH_RPC
 	# Above selects are sorted alphabetically; please add new ones
 	# according to that.  Thanks.
 	help
@@ -295,7 +295,6 @@ config PHYS_OFFSET
 	hex "Physical address of main memory" if MMU
 	depends on !ARM_PATCH_PHYS_VIRT || !AUTO_ZRELADDR
 	default DRAM_BASE if !MMU
-	default 0x00000000 if ARCH_FOOTBRIDGE
 	default 0x10000000 if ARCH_OMAP1 || ARCH_RPC
 	default 0xa0000000 if ARCH_PXA
 	default 0xc0000000 if ARCH_EP93XX
@@ -338,7 +337,7 @@ config ARCH_MMAP_RND_BITS_MAX
 
 config ARCH_MULTIPLATFORM
 	bool "Require kernel to be portable to multiple machines" if EXPERT
-	depends on MMU && !(ARCH_FOOTBRIDGE || ARCH_RPC)
+	depends on MMU && !ARCH_RPC
 	default y
 	help
 	  In general, all Arm machines can be supported in a single
@@ -380,14 +379,10 @@ source "arch/arm/mach-davinci/Kconfig"
 
 source "arch/arm/mach-digicolor/Kconfig"
 
-source "arch/arm/mach-dove/Kconfig"
-
 source "arch/arm/mach-ep93xx/Kconfig"
 
 source "arch/arm/mach-exynos/Kconfig"
 
-source "arch/arm/mach-footbridge/Kconfig"
-
 source "arch/arm/mach-gemini/Kconfig"
 
 source "arch/arm/mach-highbank/Kconfig"
@@ -1199,7 +1194,7 @@ config ARCH_FLATMEM_ENABLE
 	def_bool !ARCH_RPC
 
 config ARCH_SPARSEMEM_ENABLE
-	def_bool !ARCH_FOOTBRIDGE
+	def_bool y
 	select SPARSEMEM_STATIC if SPARSEMEM
 
 config HIGHMEM
@@ -1599,7 +1594,7 @@ config ARCH_DEFAULT_CRASH_DUMP
 
 config AUTO_ZRELADDR
 	bool "Auto calculation of the decompressed kernel image address" if !ARCH_MULTIPLATFORM
-	default !(ARCH_FOOTBRIDGE || ARCH_RPC)
+	default !ARCH_RPC
 	help
 	  ZRELADDR is the physical address where the decompressed kernel
 	  image will be placed. If AUTO_ZRELADDR is selected, the address
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
index ad0feced4369..f2a80955b7a0 100644
--- a/arch/arm/Kconfig.debug
+++ b/arch/arm/Kconfig.debug
@@ -324,13 +324,6 @@ choice
 		  Say Y here if you want the debug print routines to direct
 		  their output to UART2 serial port on DaVinci DA8XX devices.
 
-	config DEBUG_DC21285_PORT
-		bool "Kernel low-level debugging messages via footbridge serial port"
-		depends on FOOTBRIDGE
-		help
-		  Say Y here if you want the debug print routines to direct
-		  their output to the serial port in the DC21285 (Footbridge).
-
 	config DEBUG_DIGICOLOR_UA0
 		bool "Kernel low-level debugging messages via Digicolor UA0"
 		depends on ARCH_DIGICOLOR
@@ -346,14 +339,6 @@ choice
 		  Say Y here if you want kernel low-level debugging support
 		  on Cirrus Logic EP93xx based platforms.
 
-	config DEBUG_FOOTBRIDGE_COM1
-		bool "Kernel low-level debugging messages via footbridge 8250 at PCI COM1"
-		depends on FOOTBRIDGE
-		select DEBUG_UART_8250
-		help
-		  Say Y here if you want the debug print routines to direct
-		  their output to the 8250 at PCI COM1.
-
 	config DEBUG_GEMINI
 		bool "Kernel low-level debugging messages via Cortina Systems Gemini UART"
 		depends on ARCH_GEMINI
@@ -1461,7 +1446,7 @@ config DEBUG_STM32_UART
 config DEBUG_UART_FLOW_CONTROL
 	bool "Enable flow control (CTS) for the debug UART"
 	depends on DEBUG_LL
-	default y if DEBUG_FOOTBRIDGE_COM1 || DEBUG_GEMINI || ARCH_RPC
+	default y if DEBUG_GEMINI || ARCH_RPC
 	help
 	  Some UART ports are connected to terminals that will use modem
 	  control signals to indicate whether they are ready to receive text.
@@ -1476,7 +1461,6 @@ config DEBUG_LL_INCLUDE
 	default "debug/at91.S" if DEBUG_AT91_UART
 	default "debug/asm9260.S" if DEBUG_ASM9260_UART
 	default "debug/clps711x.S" if DEBUG_CLPS711X_UART1 || DEBUG_CLPS711X_UART2
-	default "debug/dc21285.S" if DEBUG_DC21285_PORT
 	default "debug/meson.S" if DEBUG_MESON_UARTAO
 	default "debug/pl01x.S" if DEBUG_LL_UART_PL01X || DEBUG_UART_PL01X
 	default "debug/exynos.S" if DEBUG_EXYNOS_UART
@@ -1590,7 +1574,6 @@ config DEBUG_UART_PHYS
 	default 0x4806e000 if DEBUG_OMAP2UART3 || DEBUG_OMAP4UART4
 	default 0x49020000 if DEBUG_OMAP3UART3
 	default 0x49042000 if DEBUG_OMAP3UART4
-	default 0x7c0003f8 if DEBUG_FOOTBRIDGE_COM1
 	default 0x7f005000 if DEBUG_S3C64XX_UART && DEBUG_S3C_UART0
 	default 0x7f005400 if DEBUG_S3C64XX_UART && DEBUG_S3C_UART1
 	default 0x7f005800 if DEBUG_S3C64XX_UART && DEBUG_S3C_UART2
@@ -1748,7 +1731,6 @@ config DEBUG_UART_VIRT
 	default 0xfed64000 if DEBUG_RK29_UART1 || DEBUG_RK3X_UART2
 	default 0xfed68000 if DEBUG_RK29_UART2 || DEBUG_RK3X_UART3
 	default 0xfedc0000 if DEBUG_EP93XX
-	default 0xfee003f8 if DEBUG_FOOTBRIDGE_COM1
 	default 0xfee20000 if DEBUG_NSPIRE_CLASSIC_UART || DEBUG_NSPIRE_CX_UART
 	default 0xfec00000 if ARCH_IXP4XX && !CPU_BIG_ENDIAN
 	default 0xfec00003 if ARCH_IXP4XX && CPU_BIG_ENDIAN
@@ -1771,8 +1753,7 @@ config DEBUG_UART_VIRT
 config DEBUG_UART_8250_SHIFT
 	int "Register offset shift for the 8250 debug UART"
 	depends on DEBUG_LL_UART_8250 || DEBUG_UART_8250
-	default 0 if DEBUG_FOOTBRIDGE_COM1 || DEBUG_BCM_5301X || \
-		DEBUG_BCM_HR2
+	default 0 if DEBUG_BCM_5301X || DEBUG_BCM_HR2
 	default 3 if DEBUG_MSTARV7_PMUART
 	default 2
 
@@ -1798,7 +1779,7 @@ config DEBUG_UART_8250_PALMCHIP
 config DEBUG_UNCOMPRESS
 	bool "Enable decompressor debugging via DEBUG_LL output"
 	depends on !ARCH_MULTIPLATFORM
-	depends on !(ARCH_FOOTBRIDGE || ARCH_RPC)
+	depends on !ARCH_RPC
 	depends on DEBUG_LL && !DEBUG_OMAP2PLUS_UART && \
 		     (!DEBUG_TEGRA_UART || !ZBOOT_ROM) && \
 		     !DEBUG_BRCMSTB_UART && !DEBUG_SEMIHOSTING
@@ -1808,7 +1789,7 @@ config DEBUG_UNCOMPRESS
 
 config UNCOMPRESS_INCLUDE
 	string
-	default "mach/uncompress.h" if ARCH_FOOTBRIDGE || ARCH_RPC
+	default "mach/uncompress.h" if ARCH_RPC
 	default "debug/uncompress.h"
 
 config EARLY_PRINTK
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index ea3da21202c8..f5bc9ad7f6f5 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -181,7 +181,6 @@ machine-$(CONFIG_ARCH_DAVINCI)		+= davinci
 machine-$(CONFIG_ARCH_DIGICOLOR)	+= digicolor
 machine-$(CONFIG_ARCH_DOVE)		+= dove
 machine-$(CONFIG_ARCH_EXYNOS)		+= exynos
-machine-$(CONFIG_ARCH_FOOTBRIDGE)	+= footbridge
 machine-$(CONFIG_ARCH_GEMINI)		+= gemini
 machine-$(CONFIG_ARCH_HIGHBANK)		+= highbank
 machine-$(CONFIG_ARCH_HISI)		+= hisi
@@ -225,7 +224,6 @@ machine-$(CONFIG_PLAT_SPEAR)		+= spear
 
 # legacy platforms provide their own mach/*.h headers globally,
 # these three are mutually exclusive
-machdirs-$(CONFIG_ARCH_FOOTBRIDGE)	+= arch/arm/mach-footbridge
 machdirs-$(CONFIG_ARCH_RPC)		+= arch/arm/mach-rpc
 KBUILD_CPPFLAGS += $(patsubst %,-I$(srctree)/%/include,$(machdirs-y))
 
diff --git a/arch/arm/boot/bootp/Makefile b/arch/arm/boot/bootp/Makefile
index a1a1f4bec783..12c61684b97f 100644
--- a/arch/arm/boot/bootp/Makefile
+++ b/arch/arm/boot/bootp/Makefile
@@ -19,7 +19,6 @@ add_hex = $(shell printf 0x%x $$(( $(1) + $(2) )) )
 PARAMS_PHYS := $(call add_hex, $(PHYS_OFFSET), 0x100)
 
 # guess an initrd location if possible
-initrd_offset-$(CONFIG_ARCH_FOOTBRIDGE)	+= 0x00800000
 initrd_offset-$(CONFIG_ARCH_RPC)	+= 0x08000000
 INITRD_OFFSET := $(initrd_offset-y)
 ifdef INITRD_OFFSET
diff --git a/arch/arm/configs/footbridge_defconfig b/arch/arm/configs/footbridge_defconfig
deleted file mode 100644
index 7fa556fb6cf4..000000000000
--- a/arch/arm/configs/footbridge_defconfig
+++ /dev/null
@@ -1,114 +0,0 @@
-CONFIG_SYSVIPC=y
-CONFIG_BSD_PROCESS_ACCT=y
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_EXPERT=y
-# CONFIG_HOTPLUG is not set
-CONFIG_ARCH_MULTI_V4=y
-# CONFIG_ARCH_MULTI_V7 is not set
-CONFIG_ARCH_FOOTBRIDGE=y
-CONFIG_ARCH_EBSA285_HOST=y
-CONFIG_ARCH_NETWINDER=y
-CONFIG_ATAGS=y
-CONFIG_FPE_NWFPE=y
-CONFIG_FPE_NWFPE_XP=y
-# CONFIG_AEABI is not set
-CONFIG_MODULES=y
-CONFIG_PARTITION_ADVANCED=y
-CONFIG_ACORN_PARTITION=y
-CONFIG_ACORN_PARTITION_ADFS=y
-CONFIG_NET=y
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_BOOTP=y
-CONFIG_SYN_COOKIES=y
-# CONFIG_IPV6 is not set
-CONFIG_ATM=y
-CONFIG_PARPORT=y
-CONFIG_PARPORT_PC=y
-CONFIG_PARPORT_PC_FIFO=y
-CONFIG_PARPORT_1284=y
-CONFIG_PNP=y
-CONFIG_ISAPNP=y
-CONFIG_PARIDE=m
-CONFIG_PARIDE_PD=m
-CONFIG_PARIDE_PCD=m
-CONFIG_PARIDE_PF=m
-CONFIG_PARIDE_PT=m
-CONFIG_PARIDE_PG=m
-CONFIG_PARIDE_ATEN=m
-CONFIG_PARIDE_BPCK=m
-CONFIG_PARIDE_COMM=m
-CONFIG_PARIDE_DSTR=m
-CONFIG_PARIDE_FIT2=m
-CONFIG_PARIDE_FIT3=m
-CONFIG_PARIDE_EPAT=m
-CONFIG_PARIDE_EPIA=m
-CONFIG_PARIDE_FRIQ=m
-CONFIG_PARIDE_FRPW=m
-CONFIG_PARIDE_KBIC=m
-CONFIG_PARIDE_KTTI=m
-CONFIG_PARIDE_ON20=m
-CONFIG_PARIDE_ON26=m
-CONFIG_BLK_DEV_LOOP=m
-CONFIG_BLK_DEV_NBD=m
-CONFIG_BLK_DEV_RAM=y
-CONFIG_NETDEVICES=y
-CONFIG_NET_VENDOR_3COM=y
-CONFIG_VORTEX=y
-CONFIG_NET_PCI=y
-CONFIG_NE2K_PCI=y
-CONFIG_PPP=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPPOE=m
-CONFIG_PPP_ASYNC=m
-CONFIG_SLIP=m
-CONFIG_SLIP_COMPRESSED=y
-CONFIG_SLIP_SMART=y
-CONFIG_SLIP_MODE_SLIP6=y
-CONFIG_SERIAL_21285=y
-CONFIG_SERIAL_21285_CONSOLE=y
-CONFIG_SERIAL_NONSTANDARD=y
-CONFIG_PRINTER=m
-CONFIG_DS1620=y
-CONFIG_NWBUTTON=y
-CONFIG_NWBUTTON_REBOOT=y
-CONFIG_NWFLASH=m
-CONFIG_I2C=m
-CONFIG_WATCHDOG=y
-CONFIG_SOFT_WATCHDOG=y
-CONFIG_21285_WATCHDOG=m
-CONFIG_977_WATCHDOG=m
-CONFIG_FB=y
-CONFIG_FB_CYBER2000=y
-CONFIG_SOUND=m
-# CONFIG_USB_HID is not set
-CONFIG_USB=m
-CONFIG_USB_MON=m
-CONFIG_USB_PRINTER=m
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=y
-CONFIG_EXT2_FS=y
-CONFIG_AUTOFS_FS=y
-CONFIG_ISO9660_FS=m
-CONFIG_JOLIET=y
-CONFIG_MSDOS_FS=m
-CONFIG_VFAT_FS=m
-CONFIG_ADFS_FS=m
-CONFIG_NFS_FS=y
-CONFIG_ROOT_NFS=y
-CONFIG_NFSD=m
-CONFIG_NLS=y
-CONFIG_NLS_CODEPAGE_437=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_CODEPAGE_852=m
-CONFIG_NLS_ISO8859_1=m
-CONFIG_NLS_ISO8859_2=m
-CONFIG_NLS_ISO8859_15=m
-CONFIG_DEBUG_USER=y
diff --git a/arch/arm/configs/netwinder_defconfig b/arch/arm/configs/netwinder_defconfig
deleted file mode 100644
index 77d4a2b5916b..000000000000
--- a/arch/arm/configs/netwinder_defconfig
+++ /dev/null
@@ -1,88 +0,0 @@
-CONFIG_SYSVIPC=y
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_EXPERT=y
-CONFIG_ARCH_MULTI_V4=y
-# CONFIG_ARCH_MULTI_V7 is not set
-CONFIG_ARCH_FOOTBRIDGE=y
-CONFIG_ARCH_NETWINDER=y
-# CONFIG_AEABI is not set
-CONFIG_ATAGS=y
-CONFIG_DEPRECATED_PARAM_STRUCT=y
-CONFIG_CMDLINE="root=0x801"
-CONFIG_FPE_NWFPE=y
-CONFIG_PARTITION_ADVANCED=y
-CONFIG_NET=y
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_INET=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-CONFIG_IP_PNP_BOOTP=y
-CONFIG_IP_PNP_RARP=y
-# CONFIG_IPV6 is not set
-CONFIG_NETFILTER=y
-CONFIG_IP_NF_IPTABLES=y
-CONFIG_PARPORT=y
-CONFIG_PARPORT_PC=y
-CONFIG_PARPORT_PC_SUPERIO=y
-CONFIG_BLK_DEV_LOOP=y
-CONFIG_BLK_DEV_SD=y
-CONFIG_ATA=y
-CONFIG_PATA_WINBOND=y
-CONFIG_NETDEVICES=y
-CONFIG_MII=y
-CONFIG_NET_TULIP=y
-CONFIG_TULIP=y
-CONFIG_TULIP_MMIO=y
-CONFIG_NET_PCI=y
-CONFIG_NE2K_PCI=y
-CONFIG_MOUSE_SERIAL=y
-CONFIG_INPUT_MISC=y
-CONFIG_INPUT_UINPUT=y
-CONFIG_SERIAL_8250=y
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_PRINTER=y
-CONFIG_DS1620=y
-CONFIG_NWBUTTON=y
-CONFIG_NWBUTTON_REBOOT=y
-CONFIG_NWFLASH=y
-CONFIG_WATCHDOG=y
-CONFIG_977_WATCHDOG=y
-CONFIG_FB=y
-CONFIG_FB_CYBER2000=y
-CONFIG_FRAMEBUFFER_CONSOLE=y
-CONFIG_LOGO=y
-CONFIG_SOUND=y
-CONFIG_SOUND_PRIME=y
-CONFIG_SOUND_OSS=y
-CONFIG_SOUND_TRACEINIT=y
-CONFIG_SOUND_DMAP=y
-CONFIG_SOUND_YM3812=y
-CONFIG_SOUND_WAVEARTIST=y
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_CPU=y
-CONFIG_EXT2_FS=y
-CONFIG_ISO9660_FS=y
-CONFIG_JOLIET=y
-CONFIG_TMPFS=y
-CONFIG_NFS_FS=y
-CONFIG_NFS_V3=y
-CONFIG_NFS_V4=y
-CONFIG_ROOT_NFS=y
-CONFIG_NFSD=y
-CONFIG_SMB_FS=y
-CONFIG_NLS_CODEPAGE_437=y
-CONFIG_NLS_CODEPAGE_850=y
-CONFIG_NLS_CODEPAGE_852=y
-CONFIG_NLS_ISO8859_1=y
-CONFIG_NLS_ISO8859_2=y
-CONFIG_NLS_ISO8859_15=y
-CONFIG_NLS_UTF8=y
-CONFIG_FONTS=y
-CONFIG_FONT_8x8=y
-CONFIG_FONT_8x16=y
-CONFIG_DEBUG_KERNEL=y
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_DEBUG_USER=y
diff --git a/arch/arm/include/asm/hardware/dec21285.h b/arch/arm/include/asm/hardware/dec21285.h
deleted file mode 100644
index 894f2a635cbb..000000000000
--- a/arch/arm/include/asm/hardware/dec21285.h
+++ /dev/null
@@ -1,138 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-/*
- *  arch/arm/include/asm/hardware/dec21285.h
- *
- *  Copyright (C) 1998 Russell King
- *
- *  DC21285 registers
- */
-#define DC21285_PCI_IACK		0x79000000
-#define DC21285_ARMCSR_BASE		0x42000000
-#define DC21285_PCI_TYPE_0_CONFIG	0x7b000000
-#define DC21285_PCI_TYPE_1_CONFIG	0x7a000000
-#define DC21285_OUTBOUND_WRITE_FLUSH	0x78000000
-#define DC21285_FLASH			0x41000000
-#define DC21285_PCI_IO			0x7c000000
-#define DC21285_PCI_MEM			0x80000000
-
-#ifndef __ASSEMBLY__
-#include <mach/hardware.h>
-#define DC21285_IO(x)		((volatile unsigned long *)(ARMCSR_BASE+(x)))
-#else
-#define DC21285_IO(x)		(x)
-#endif
-
-/*
- * The footbridge is programmed to expose the system RAM at 0xe0000000.
- * The requirement is that the RAM isn't placed at bus address 0, which
- * would clash with VGA cards.
- */
-#define BUS_OFFSET 0xe0000000
-
-#define CSR_PCICMD		DC21285_IO(0x0004)
-#define CSR_CLASSREV		DC21285_IO(0x0008)
-#define CSR_PCICACHELINESIZE	DC21285_IO(0x000c)
-#define CSR_PCICSRBASE		DC21285_IO(0x0010)
-#define CSR_PCICSRIOBASE	DC21285_IO(0x0014)
-#define CSR_PCISDRAMBASE	DC21285_IO(0x0018)
-#define CSR_PCIROMBASE		DC21285_IO(0x0030)
-#define CSR_MBOX0		DC21285_IO(0x0050)
-#define CSR_MBOX1		DC21285_IO(0x0054)
-#define CSR_MBOX2		DC21285_IO(0x0058)
-#define CSR_MBOX3		DC21285_IO(0x005c)
-#define CSR_DOORBELL		DC21285_IO(0x0060)
-#define CSR_DOORBELL_SETUP	DC21285_IO(0x0064)
-#define CSR_ROMWRITEREG		DC21285_IO(0x0068)
-#define CSR_CSRBASEMASK		DC21285_IO(0x00f8)
-#define CSR_CSRBASEOFFSET	DC21285_IO(0x00fc)
-#define CSR_SDRAMBASEMASK	DC21285_IO(0x0100)
-#define CSR_SDRAMBASEOFFSET	DC21285_IO(0x0104)
-#define CSR_ROMBASEMASK		DC21285_IO(0x0108)
-#define CSR_SDRAMTIMING		DC21285_IO(0x010c)
-#define CSR_SDRAMADDRSIZE0	DC21285_IO(0x0110)
-#define CSR_SDRAMADDRSIZE1	DC21285_IO(0x0114)
-#define CSR_SDRAMADDRSIZE2	DC21285_IO(0x0118)
-#define CSR_SDRAMADDRSIZE3	DC21285_IO(0x011c)
-#define CSR_I2O_INFREEHEAD	DC21285_IO(0x0120)
-#define CSR_I2O_INPOSTTAIL	DC21285_IO(0x0124)
-#define CSR_I2O_OUTPOSTHEAD	DC21285_IO(0x0128)
-#define CSR_I2O_OUTFREETAIL	DC21285_IO(0x012c)
-#define CSR_I2O_INFREECOUNT	DC21285_IO(0x0130)
-#define CSR_I2O_OUTPOSTCOUNT	DC21285_IO(0x0134)
-#define CSR_I2O_INPOSTCOUNT	DC21285_IO(0x0138)
-#define CSR_SA110_CNTL		DC21285_IO(0x013c)
-#define SA110_CNTL_INITCMPLETE		(1 << 0)
-#define SA110_CNTL_ASSERTSERR		(1 << 1)
-#define SA110_CNTL_RXSERR		(1 << 3)
-#define SA110_CNTL_SA110DRAMPARITY	(1 << 4)
-#define SA110_CNTL_PCISDRAMPARITY	(1 << 5)
-#define SA110_CNTL_DMASDRAMPARITY	(1 << 6)
-#define SA110_CNTL_DISCARDTIMER		(1 << 8)
-#define SA110_CNTL_PCINRESET		(1 << 9)
-#define SA110_CNTL_I2O_256		(0 << 10)
-#define SA110_CNTL_I20_512		(1 << 10)
-#define SA110_CNTL_I2O_1024		(2 << 10)
-#define SA110_CNTL_I2O_2048		(3 << 10)
-#define SA110_CNTL_I2O_4096		(4 << 10)
-#define SA110_CNTL_I2O_8192		(5 << 10)
-#define SA110_CNTL_I2O_16384		(6 << 10)
-#define SA110_CNTL_I2O_32768		(7 << 10)
-#define SA110_CNTL_WATCHDOG		(1 << 13)
-#define SA110_CNTL_ROMWIDTH_UNDEF	(0 << 14)
-#define SA110_CNTL_ROMWIDTH_16		(1 << 14)
-#define SA110_CNTL_ROMWIDTH_32		(2 << 14)
-#define SA110_CNTL_ROMWIDTH_8		(3 << 14)
-#define SA110_CNTL_ROMACCESSTIME(x)	((x)<<16)
-#define SA110_CNTL_ROMBURSTTIME(x)	((x)<<20)
-#define SA110_CNTL_ROMTRISTATETIME(x)	((x)<<24)
-#define SA110_CNTL_XCSDIR(x)		((x)<<28)
-#define SA110_CNTL_PCICFN		(1 << 31)
-
-#define CSR_PCIADDR_EXTN	DC21285_IO(0x0140)
-#define CSR_PREFETCHMEMRANGE	DC21285_IO(0x0144)
-#define CSR_XBUS_CYCLE		DC21285_IO(0x0148)
-#define CSR_XBUS_IOSTROBE	DC21285_IO(0x014c)
-#define CSR_DOORBELL_PCI	DC21285_IO(0x0150)
-#define CSR_DOORBELL_SA110	DC21285_IO(0x0154)
-#define CSR_UARTDR		DC21285_IO(0x0160)
-#define CSR_RXSTAT		DC21285_IO(0x0164)
-#define CSR_H_UBRLCR		DC21285_IO(0x0168)
-#define CSR_M_UBRLCR		DC21285_IO(0x016c)
-#define CSR_L_UBRLCR		DC21285_IO(0x0170)
-#define CSR_UARTCON		DC21285_IO(0x0174)
-#define CSR_UARTFLG		DC21285_IO(0x0178)
-#define CSR_IRQ_STATUS		DC21285_IO(0x0180)
-#define CSR_IRQ_RAWSTATUS	DC21285_IO(0x0184)
-#define CSR_IRQ_ENABLE		DC21285_IO(0x0188)
-#define CSR_IRQ_DISABLE		DC21285_IO(0x018c)
-#define CSR_IRQ_SOFT		DC21285_IO(0x0190)
-#define CSR_FIQ_STATUS		DC21285_IO(0x0280)
-#define CSR_FIQ_RAWSTATUS	DC21285_IO(0x0284)
-#define CSR_FIQ_ENABLE		DC21285_IO(0x0288)
-#define CSR_FIQ_DISABLE		DC21285_IO(0x028c)
-#define CSR_FIQ_SOFT		DC21285_IO(0x0290)
-#define CSR_TIMER1_LOAD		DC21285_IO(0x0300)
-#define CSR_TIMER1_VALUE	DC21285_IO(0x0304)
-#define CSR_TIMER1_CNTL		DC21285_IO(0x0308)
-#define CSR_TIMER1_CLR		DC21285_IO(0x030c)
-#define CSR_TIMER2_LOAD		DC21285_IO(0x0320)
-#define CSR_TIMER2_VALUE	DC21285_IO(0x0324)
-#define CSR_TIMER2_CNTL		DC21285_IO(0x0328)
-#define CSR_TIMER2_CLR		DC21285_IO(0x032c)
-#define CSR_TIMER3_LOAD		DC21285_IO(0x0340)
-#define CSR_TIMER3_VALUE	DC21285_IO(0x0344)
-#define CSR_TIMER3_CNTL		DC21285_IO(0x0348)
-#define CSR_TIMER3_CLR		DC21285_IO(0x034c)
-#define CSR_TIMER4_LOAD		DC21285_IO(0x0360)
-#define CSR_TIMER4_VALUE	DC21285_IO(0x0364)
-#define CSR_TIMER4_CNTL		DC21285_IO(0x0368)
-#define CSR_TIMER4_CLR		DC21285_IO(0x036c)
-
-#define TIMER_CNTL_ENABLE	(1 << 7)
-#define TIMER_CNTL_AUTORELOAD	(1 << 6)
-#define TIMER_CNTL_DIV1		(0)
-#define TIMER_CNTL_DIV16	(1 << 2)
-#define TIMER_CNTL_DIV256	(2 << 2)
-#define TIMER_CNTL_CNTEXT	(3 << 2)
-
-
diff --git a/arch/arm/include/asm/mach/pci.h b/arch/arm/include/asm/mach/pci.h
index ea9bd08895b7..78f2318ed000 100644
--- a/arch/arm/include/asm/mach/pci.h
+++ b/arch/arm/include/asm/mach/pci.h
@@ -61,15 +61,6 @@ static inline void pci_common_init(struct hw_pci *hw)
 	pci_common_init_dev(NULL, hw);
 }
 
-/*
- * Setup early fixed I/O mapping.
- */
-#if defined(CONFIG_PCI)
-extern void pci_map_io_early(unsigned long pfn);
-#else
-static inline void pci_map_io_early(unsigned long pfn) {}
-#endif
-
 /*
  * PCI controllers
  */
@@ -78,9 +69,4 @@ extern int iop3xx_pci_setup(int nr, struct pci_sys_data *);
 extern void iop3xx_pci_preinit(void);
 extern void iop3xx_pci_preinit_cond(void);
 
-extern struct pci_ops dc21285_ops;
-extern int dc21285_setup(int nr, struct pci_sys_data *);
-extern void dc21285_preinit(void);
-extern void dc21285_postinit(void);
-
 #endif /* __ASM_MACH_PCI_H */
diff --git a/arch/arm/include/debug/dc21285.S b/arch/arm/include/debug/dc21285.S
deleted file mode 100644
index 4ec0e5e31704..000000000000
--- a/arch/arm/include/debug/dc21285.S
+++ /dev/null
@@ -1,41 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-/* arch/arm/mach-footbridge/include/mach/debug-macro.S
- *
- * Debugging macro include header
- *
- *  Copyright (C) 1994-1999 Russell King
- *  Moved from linux/arch/arm/kernel/debug.S by Ben Dooks
-*/
-
-#include <asm/hardware/dec21285.h>
-
-#include <mach/hardware.h>
-	/* For EBSA285 debugging */
-		.equ	dc21285_high, ARMCSR_BASE & 0xff000000
-		.equ	dc21285_low,  ARMCSR_BASE & 0x00ffffff
-
-		.macro	addruart, rp, rv, tmp
-		.if	dc21285_low
-		mov	\rp, #dc21285_low
-		.else
-		mov	\rp, #0
-		.endif
-		orr	\rv, \rp, #dc21285_high
-		orr	\rp, \rp, #0x42000000
-		.endm
-
-		.macro	senduart,rd,rx
-		str	\rd, [\rx, #0x160]	@ UARTDR
-		.endm
-
-		.macro	busyuart,rd,rx
-1001:		ldr	\rd, [\rx, #0x178]	@ UARTFLG
-		tst	\rd, #1 << 3
-		bne	1001b
-		.endm
-
-		.macro	waituartcts,rd,rx
-		.endm
-
-		.macro	waituarttxrdy,rd,rx
-		.endm
diff --git a/arch/arm/kernel/atags_parse.c b/arch/arm/kernel/atags_parse.c
index 4ec591bde3df..9865ec7f90d9 100644
--- a/arch/arm/kernel/atags_parse.c
+++ b/arch/arm/kernel/atags_parse.c
@@ -69,24 +69,6 @@ static int __init parse_tag_mem32(const struct tag *tag)
 
 __tagtable(ATAG_MEM, parse_tag_mem32);
 
-#if defined(CONFIG_ARCH_FOOTBRIDGE) && defined(CONFIG_VGA_CONSOLE)
-static int __init parse_tag_videotext(const struct tag *tag)
-{
-	vgacon_screen_info.orig_x            = tag->u.videotext.x;
-	vgacon_screen_info.orig_y            = tag->u.videotext.y;
-	vgacon_screen_info.orig_video_page   = tag->u.videotext.video_page;
-	vgacon_screen_info.orig_video_mode   = tag->u.videotext.video_mode;
-	vgacon_screen_info.orig_video_cols   = tag->u.videotext.video_cols;
-	vgacon_screen_info.orig_video_ega_bx = tag->u.videotext.video_ega_bx;
-	vgacon_screen_info.orig_video_lines  = tag->u.videotext.video_lines;
-	vgacon_screen_info.orig_video_isVGA  = tag->u.videotext.video_isvga;
-	vgacon_screen_info.orig_video_points = tag->u.videotext.video_points;
-	return 0;
-}
-
-__tagtable(ATAG_VIDEOTEXT, parse_tag_videotext);
-#endif
-
 #ifdef CONFIG_BLK_DEV_RAM
 static int __init parse_tag_ramdisk(const struct tag *tag)
 {
diff --git a/arch/arm/kernel/bios32.c b/arch/arm/kernel/bios32.c
index ac0e890510da..6256b75f8285 100644
--- a/arch/arm/kernel/bios32.c
+++ b/arch/arm/kernel/bios32.c
@@ -582,15 +582,3 @@ resource_size_t pcibios_align_resource(void *data, const struct resource *res,
 
 	return start;
 }
-
-void __init pci_map_io_early(unsigned long pfn)
-{
-	struct map_desc pci_io_desc = {
-		.virtual	= PCI_IO_VIRT_BASE,
-		.type		= MT_DEVICE,
-		.length		= SZ_64K,
-	};
-
-	pci_io_desc.pfn = pfn;
-	iotable_init(&pci_io_desc, 1);
-}
diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S
index f22c50d4bd41..b12fe41e579b 100644
--- a/arch/arm/kernel/head.S
+++ b/arch/arm/kernel/head.S
@@ -347,16 +347,6 @@ __create_page_tables:
 	/* we don't need any serial debugging mappings */
 	ldr	r7, [r10, #PROCINFO_IO_MMUFLAGS] @ io_mmuflags
 #endif
-
-#if defined(CONFIG_ARCH_NETWINDER)
-	/*
-	 * If we're using the NetWinder or CATS, we also need to map
-	 * in the 16550-type serial port for the debug messages
-	 */
-	add	r0, r4, #0xff000000 >> (SECTION_SHIFT - PMD_ENTRY_ORDER)
-	orr	r3, r7, #0x7c000000
-	str	r3, [r0]
-#endif
 #ifdef CONFIG_ARCH_RPC
 	/*
 	 * Map in screen at 0x02000000 & SCREEN2_BASE
diff --git a/arch/arm/mach-footbridge/Kconfig b/arch/arm/mach-footbridge/Kconfig
deleted file mode 100644
index 96a74d447028..000000000000
--- a/arch/arm/mach-footbridge/Kconfig
+++ /dev/null
@@ -1,57 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-menuconfig ARCH_FOOTBRIDGE
-	bool "FootBridge Implementations (DEPRECATED)"
-	depends on ARCH_MULTI_V4 && !(ARCH_MULTI_V4T || ARCH_MULTI_V5)
-	depends on !(ARCH_MOXART || ARCH_GEMINI || ARCH_SA1100)
-	depends on ATAGS
-	depends on CPU_LITTLE_ENDIAN
-	depends on MMU
-	select ARCH_NO_SG_CHAIN
-	select CPU_SA110
-	select FOOTBRIDGE
-	select NEED_MACH_MEMORY_H
-	help
-	  Support for systems based on the DC21285 companion chip
-	  ("FootBridge"), used in the EBSA285 and the Rebel NetWinder.
-
-	  Support for these machines will go away in 2027,
-	  unless there are any remaining users that speak up.
-
-if ARCH_FOOTBRIDGE
-
-config ARCH_EBSA285_HOST
-	bool "EBSA285 (host mode)"
-	select ARCH_EBSA285
-	select ISA
-	select ARCH_MAY_HAVE_PC_FDC
-	select FORCE_PCI
-	help
-	  Say Y here if you intend to run this kernel on the EBSA285 card
-	  in host ("central function") mode.
-
-	  Saying N will reduce the size of the Footbridge kernel.
-
-config ARCH_NETWINDER
-	bool "NetWinder"
-	select CLKEVT_I8253
-	select CLKSRC_I8253
-	select ISA
-	select FORCE_PCI
-	help
-	  Say Y here if you intend to run this kernel on the Rebel.COM
-	  NetWinder.  Information about this machine can be found at:
-
-	  <http://www.netwinder.org/>
-
-	  Saying N will reduce the size of the Footbridge kernel.
-
-# Footbridge support
-config FOOTBRIDGE
-	def_bool y
-	select ARCH_MIGHT_HAVE_PC_SERIO
-	select ISA_DMA_API
-
-config ARCH_EBSA285
-	bool
-
-endif
diff --git a/arch/arm/mach-footbridge/Makefile b/arch/arm/mach-footbridge/Makefile
deleted file mode 100644
index 1553cc01b45c..000000000000
--- a/arch/arm/mach-footbridge/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-#
-# Makefile for the linux kernel.
-#
-
-# Object file lists.
-
-obj-y			:= common.o isa-irq.o isa.o isa-rtc.o dma-isa.o
-
-pci-y			+= dc21285.o
-pci-$(CONFIG_ARCH_EBSA285) += ebsa285-pci.o
-pci-$(CONFIG_ARCH_NETWINDER) += netwinder-pci.o
-
-obj-$(CONFIG_ARCH_EBSA285) += ebsa285.o dc21285-timer.o
-obj-$(CONFIG_ARCH_NETWINDER) += netwinder-hw.o isa-timer.o
-
-obj-$(CONFIG_PCI)	+=$(pci-y)
-
diff --git a/arch/arm/mach-footbridge/common.c b/arch/arm/mach-footbridge/common.c
deleted file mode 100644
index 85c598708c10..000000000000
--- a/arch/arm/mach-footbridge/common.c
+++ /dev/null
@@ -1,280 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-/*
- *  linux/arch/arm/mach-footbridge/common.c
- *
- *  Copyright (C) 1998-2000 Russell King, Dave Gilbert.
- */
-#include <linux/module.h>
-#include <linux/types.h>
-#include <linux/mm.h>
-#include <linux/ioport.h>
-#include <linux/list.h>
-#include <linux/init.h>
-#include <linux/io.h>
-#include <linux/spinlock.h>
-#include <linux/dma-direct.h>
-#include <video/vga.h>
-
-#include <asm/page.h>
-#include <asm/irq.h>
-#include <asm/mach-types.h>
-#include <asm/setup.h>
-#include <asm/system_misc.h>
-#include <asm/hardware/dec21285.h>
-
-#include <asm/mach/irq.h>
-#include <asm/mach/map.h>
-#include <asm/mach/pci.h>
-
-#include "common.h"
-
-#include <mach/hardware.h>
-#include <mach/irqs.h>
-#include <asm/hardware/dec21285.h>
-
-static int dc21285_get_irq(void)
-{
-	void __iomem *irqstatus = (void __iomem *)CSR_IRQ_STATUS;
-	u32 mask = readl(irqstatus);
-
-	if (mask & IRQ_MASK_SDRAMPARITY)
-		return IRQ_SDRAMPARITY;
-
-	if (mask & IRQ_MASK_UART_RX)
-		return IRQ_CONRX;
-
-	if (mask & IRQ_MASK_DMA1)
-		return IRQ_DMA1;
-
-	if (mask & IRQ_MASK_DMA2)
-		return IRQ_DMA2;
-
-	if (mask & IRQ_MASK_IN0)
-		return IRQ_IN0;
-
-	if (mask & IRQ_MASK_IN1)
-		return IRQ_IN1;
-
-	if (mask & IRQ_MASK_IN2)
-		return IRQ_IN2;
-
-	if (mask & IRQ_MASK_IN3)
-		return IRQ_IN3;
-
-	if (mask & IRQ_MASK_PCI)
-		return IRQ_PCI;
-
-	if (mask & IRQ_MASK_DOORBELLHOST)
-		return IRQ_DOORBELLHOST;
-
-	if (mask & IRQ_MASK_I2OINPOST)
-		return IRQ_I2OINPOST;
-
-	if (mask & IRQ_MASK_TIMER1)
-		return IRQ_TIMER1;
-
-	if (mask & IRQ_MASK_TIMER2)
-		return IRQ_TIMER2;
-
-	if (mask & IRQ_MASK_TIMER3)
-		return IRQ_TIMER3;
-
-	if (mask & IRQ_MASK_UART_TX)
-		return IRQ_CONTX;
-
-	if (mask & IRQ_MASK_PCI_ABORT)
-		return IRQ_PCI_ABORT;
-
-	if (mask & IRQ_MASK_PCI_SERR)
-		return IRQ_PCI_SERR;
-
-	if (mask & IRQ_MASK_DISCARD_TIMER)
-		return IRQ_DISCARD_TIMER;
-
-	if (mask & IRQ_MASK_PCI_DPERR)
-		return IRQ_PCI_DPERR;
-
-	if (mask & IRQ_MASK_PCI_PERR)
-		return IRQ_PCI_PERR;
-
-	return 0;
-}
-
-static void dc21285_handle_irq(struct pt_regs *regs)
-{
-	int irq;
-	do {
-		irq = dc21285_get_irq();
-		if (!irq)
-			break;
-
-		generic_handle_irq(irq);
-	} while (1);
-}
-
-
-unsigned int mem_fclk_21285 = 50000000;
-
-EXPORT_SYMBOL(mem_fclk_21285);
-
-static int __init early_fclk(char *arg)
-{
-	mem_fclk_21285 = simple_strtoul(arg, NULL, 0);
-	return 0;
-}
-
-early_param("mem_fclk_21285", early_fclk);
-
-static int __init parse_tag_memclk(const struct tag *tag)
-{
-	mem_fclk_21285 = tag->u.memclk.fmemclk;
-	return 0;
-}
-
-__tagtable(ATAG_MEMCLK, parse_tag_memclk);
-
-/*
- * Footbridge IRQ translation table
- *  Converts from our IRQ numbers into FootBridge masks
- */
-static const int fb_irq_mask[] = {
-	IRQ_MASK_UART_RX,	/*  0 */
-	IRQ_MASK_UART_TX,	/*  1 */
-	IRQ_MASK_TIMER1,	/*  2 */
-	IRQ_MASK_TIMER2,	/*  3 */
-	IRQ_MASK_TIMER3,	/*  4 */
-	IRQ_MASK_IN0,		/*  5 */
-	IRQ_MASK_IN1,		/*  6 */
-	IRQ_MASK_IN2,		/*  7 */
-	IRQ_MASK_IN3,		/*  8 */
-	IRQ_MASK_DOORBELLHOST,	/*  9 */
-	IRQ_MASK_DMA1,		/* 10 */
-	IRQ_MASK_DMA2,		/* 11 */
-	IRQ_MASK_PCI,		/* 12 */
-	IRQ_MASK_SDRAMPARITY,	/* 13 */
-	IRQ_MASK_I2OINPOST,	/* 14 */
-	IRQ_MASK_PCI_ABORT,	/* 15 */
-	IRQ_MASK_PCI_SERR,	/* 16 */
-	IRQ_MASK_DISCARD_TIMER,	/* 17 */
-	IRQ_MASK_PCI_DPERR,	/* 18 */
-	IRQ_MASK_PCI_PERR,	/* 19 */
-};
-
-static void fb_mask_irq(struct irq_data *d)
-{
-	*CSR_IRQ_DISABLE = fb_irq_mask[_DC21285_INR(d->irq)];
-}
-
-static void fb_unmask_irq(struct irq_data *d)
-{
-	*CSR_IRQ_ENABLE = fb_irq_mask[_DC21285_INR(d->irq)];
-}
-
-static struct irq_chip fb_chip = {
-	.irq_ack	= fb_mask_irq,
-	.irq_mask	= fb_mask_irq,
-	.irq_unmask	= fb_unmask_irq,
-};
-
-static void __init __fb_init_irq(void)
-{
-	unsigned int irq;
-
-	/*
-	 * setup DC21285 IRQs
-	 */
-	*CSR_IRQ_DISABLE = -1;
-	*CSR_FIQ_DISABLE = -1;
-
-	for (irq = _DC21285_IRQ(0); irq < _DC21285_IRQ(20); irq++) {
-		irq_set_chip_and_handler(irq, &fb_chip, handle_level_irq);
-		irq_clear_status_flags(irq, IRQ_NOREQUEST | IRQ_NOPROBE);
-	}
-}
-
-void __init footbridge_init_irq(void)
-{
-	set_handle_irq(dc21285_handle_irq);
-
-	__fb_init_irq();
-
-	if (machine_is_ebsa285())
-		/* The following is dependent on which slot
-		 * you plug the Southbridge card into.  We
-		 * currently assume that you plug it into
-		 * the right-hand most slot.
-		 */
-		isa_init_irq(IRQ_PCI);
-
-	if (machine_is_netwinder())
-		isa_init_irq(IRQ_IN3);
-}
-
-/*
- * Common mapping for all systems.  Note that the outbound write flush is
- * commented out since there is a "No Fix" problem with it.  Not mapping
- * it means that we have extra bullet protection on our feet.
- */
-static struct map_desc ebsa285_host_io_desc[] __initdata = {
-	{
-		.virtual	= ARMCSR_BASE,
-		.pfn		= __phys_to_pfn(DC21285_ARMCSR_BASE),
-		.length		= ARMCSR_SIZE,
-		.type		= MT_DEVICE,
-	},
-	{
-		.virtual	= PCIMEM_BASE,
-		.pfn		= __phys_to_pfn(DC21285_PCI_MEM),
-		.length		= PCIMEM_SIZE,
-		.type		= MT_DEVICE,
-	}, {
-		.virtual	= PCICFG0_BASE,
-		.pfn		= __phys_to_pfn(DC21285_PCI_TYPE_0_CONFIG),
-		.length		= PCICFG0_SIZE,
-		.type		= MT_DEVICE,
-	}, {
-		.virtual	= PCICFG1_BASE,
-		.pfn		= __phys_to_pfn(DC21285_PCI_TYPE_1_CONFIG),
-		.length		= PCICFG1_SIZE,
-		.type		= MT_DEVICE,
-	}, {
-		.virtual	= PCIIACK_BASE,
-		.pfn		= __phys_to_pfn(DC21285_PCI_IACK),
-		.length		= PCIIACK_SIZE,
-		.type		= MT_DEVICE,
-	},
-};
-
-void __init footbridge_map_io(void)
-{
-	iotable_init(ebsa285_host_io_desc, ARRAY_SIZE(ebsa285_host_io_desc));
-	pci_map_io_early(__phys_to_pfn(DC21285_PCI_IO));
-	vga_base = PCIMEM_BASE;
-}
-
-void footbridge_restart(enum reboot_mode mode, const char *cmd)
-{
-	if (mode == REBOOT_SOFT) {
-		/* Jump into the ROM */
-		soft_restart(0x41000000);
-	} else {
-		/*
-		 * Force the watchdog to do a CPU reset.
-		 *
-		 * After making sure that the watchdog is disabled
-		 * (so we can change the timer registers) we first
-		 * enable the timer to autoreload itself.  Next, the
-		 * timer interval is set really short and any
-		 * current interrupt request is cleared (so we can
-		 * see an edge transition).  Finally, TIMER4 is
-		 * enabled as the watchdog.
-		 */
-		*CSR_SA110_CNTL &= ~(1 << 13);
-		*CSR_TIMER4_CNTL = TIMER_CNTL_ENABLE |
-				   TIMER_CNTL_AUTORELOAD |
-				   TIMER_CNTL_DIV16;
-		*CSR_TIMER4_LOAD = 0x2;
-		*CSR_TIMER4_CLR  = 0;
-		*CSR_SA110_CNTL |= (1 << 13);
-	}
-}
diff --git a/arch/arm/mach-footbridge/common.h b/arch/arm/mach-footbridge/common.h
deleted file mode 100644
index e12587db59c4..000000000000
--- a/arch/arm/mach-footbridge/common.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#include <linux/reboot.h>
-
-extern void footbridge_timer_init(void);
-extern void isa_timer_init(void);
-
-extern void isa_rtc_init(void);
-
-extern void footbridge_map_io(void);
-extern void footbridge_init_irq(void);
-
-extern void isa_init_irq(unsigned int irq);
-extern void footbridge_restart(enum reboot_mode, const char *);
-
-extern void footbridge_sched_clock(void);
diff --git a/arch/arm/mach-footbridge/dc21285-timer.c b/arch/arm/mach-footbridge/dc21285-timer.c
deleted file mode 100644
index 2908c9ef3c9b..000000000000
--- a/arch/arm/mach-footbridge/dc21285-timer.c
+++ /dev/null
@@ -1,136 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- *  linux/arch/arm/mach-footbridge/dc21285-timer.c
- *
- *  Copyright (C) 1998 Russell King.
- *  Copyright (C) 1998 Phil Blundell
- */
-#include <linux/clockchips.h>
-#include <linux/clocksource.h>
-#include <linux/init.h>
-#include <linux/interrupt.h>
-#include <linux/irq.h>
-#include <linux/sched_clock.h>
-
-#include <asm/irq.h>
-
-#include <asm/hardware/dec21285.h>
-#include <asm/mach/time.h>
-#include <asm/system_info.h>
-
-#include "common.h"
-
-static u64 cksrc_dc21285_read(struct clocksource *cs)
-{
-	return cs->mask - *CSR_TIMER2_VALUE;
-}
-
-static int cksrc_dc21285_enable(struct clocksource *cs)
-{
-	*CSR_TIMER2_LOAD = cs->mask;
-	*CSR_TIMER2_CLR = 0;
-	*CSR_TIMER2_CNTL = TIMER_CNTL_ENABLE | TIMER_CNTL_DIV16;
-	return 0;
-}
-
-static void cksrc_dc21285_disable(struct clocksource *cs)
-{
-	*CSR_TIMER2_CNTL = 0;
-}
-
-static struct clocksource cksrc_dc21285 = {
-	.name		= "dc21285_timer2",
-	.rating		= 200,
-	.read		= cksrc_dc21285_read,
-	.enable		= cksrc_dc21285_enable,
-	.disable	= cksrc_dc21285_disable,
-	.mask		= CLOCKSOURCE_MASK(24),
-	.flags		= CLOCK_SOURCE_IS_CONTINUOUS,
-};
-
-static int ckevt_dc21285_set_next_event(unsigned long delta,
-	struct clock_event_device *c)
-{
-	*CSR_TIMER1_CLR = 0;
-	*CSR_TIMER1_LOAD = delta;
-	*CSR_TIMER1_CNTL = TIMER_CNTL_ENABLE | TIMER_CNTL_DIV16;
-
-	return 0;
-}
-
-static int ckevt_dc21285_shutdown(struct clock_event_device *c)
-{
-	*CSR_TIMER1_CNTL = 0;
-	return 0;
-}
-
-static int ckevt_dc21285_set_periodic(struct clock_event_device *c)
-{
-	*CSR_TIMER1_CLR = 0;
-	*CSR_TIMER1_LOAD = (mem_fclk_21285 + 8 * HZ) / (16 * HZ);
-	*CSR_TIMER1_CNTL = TIMER_CNTL_ENABLE | TIMER_CNTL_AUTORELOAD |
-			   TIMER_CNTL_DIV16;
-	return 0;
-}
-
-static struct clock_event_device ckevt_dc21285 = {
-	.name			= "dc21285_timer1",
-	.features		= CLOCK_EVT_FEAT_PERIODIC |
-				  CLOCK_EVT_FEAT_ONESHOT,
-	.rating			= 200,
-	.irq			= IRQ_TIMER1,
-	.set_next_event		= ckevt_dc21285_set_next_event,
-	.set_state_shutdown	= ckevt_dc21285_shutdown,
-	.set_state_periodic	= ckevt_dc21285_set_periodic,
-	.set_state_oneshot	= ckevt_dc21285_shutdown,
-	.tick_resume		= ckevt_dc21285_set_periodic,
-};
-
-static irqreturn_t timer1_interrupt(int irq, void *dev_id)
-{
-	struct clock_event_device *ce = dev_id;
-
-	*CSR_TIMER1_CLR = 0;
-
-	/* Stop the timer if in one-shot mode */
-	if (clockevent_state_oneshot(ce))
-		*CSR_TIMER1_CNTL = 0;
-
-	ce->event_handler(ce);
-
-	return IRQ_HANDLED;
-}
-
-/*
- * Set up timer interrupt.
- */
-void __init footbridge_timer_init(void)
-{
-	struct clock_event_device *ce = &ckevt_dc21285;
-	unsigned rate = DIV_ROUND_CLOSEST(mem_fclk_21285, 16);
-
-	clocksource_register_hz(&cksrc_dc21285, rate);
-
-	if (request_irq(ce->irq, timer1_interrupt, IRQF_TIMER | IRQF_IRQPOLL,
-			"dc21285_timer1", &ckevt_dc21285))
-		pr_err("Failed to request irq %d (dc21285_timer1)", ce->irq);
-
-	ce->cpumask = cpumask_of(smp_processor_id());
-	clockevents_config_and_register(ce, rate, 0x4, 0xffffff);
-}
-
-static u64 notrace footbridge_read_sched_clock(void)
-{
-	return ~*CSR_TIMER3_VALUE;
-}
-
-void __init footbridge_sched_clock(void)
-{
-	unsigned rate = DIV_ROUND_CLOSEST(mem_fclk_21285, 16);
-
-	*CSR_TIMER3_LOAD = 0;
-	*CSR_TIMER3_CLR = 0;
-	*CSR_TIMER3_CNTL = TIMER_CNTL_ENABLE | TIMER_CNTL_DIV16;
-
-	sched_clock_register(footbridge_read_sched_clock, 24, rate);
-}
diff --git a/arch/arm/mach-footbridge/dc21285.c b/arch/arm/mach-footbridge/dc21285.c
deleted file mode 100644
index e1b336624883..000000000000
--- a/arch/arm/mach-footbridge/dc21285.c
+++ /dev/null
@@ -1,360 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-/*
- *  linux/arch/arm/kernel/dec21285.c: PCI functions for DC21285
- *
- *  Copyright (C) 1998-2001 Russell King
- *  Copyright (C) 1998-2000 Phil Blundell
- */
-#include <linux/dma-map-ops.h>
-#include <linux/kernel.h>
-#include <linux/pci.h>
-#include <linux/interrupt.h>
-#include <linux/mm.h>
-#include <linux/slab.h>
-#include <linux/init.h>
-#include <linux/ioport.h>
-#include <linux/irq.h>
-#include <linux/io.h>
-#include <linux/spinlock.h>
-
-#include <asm/irq.h>
-#include <asm/mach/pci.h>
-#include <asm/hardware/dec21285.h>
-
-#define MAX_SLOTS		21
-
-#define PCICMD_ABORT		((PCI_STATUS_REC_MASTER_ABORT| \
-				  PCI_STATUS_REC_TARGET_ABORT)<<16)
-
-#define PCICMD_ERROR_BITS	((PCI_STATUS_DETECTED_PARITY | \
-				  PCI_STATUS_REC_MASTER_ABORT | \
-				  PCI_STATUS_REC_TARGET_ABORT | \
-				  PCI_STATUS_PARITY) << 16)
-
-extern int setup_arm_irq(int, struct irqaction *);
-
-static unsigned long
-dc21285_base_address(struct pci_bus *bus, unsigned int devfn)
-{
-	unsigned long addr = 0;
-
-	if (bus->number == 0) {
-		if (PCI_SLOT(devfn) == 0)
-			/*
-			 * For devfn 0, point at the 21285
-			 */
-			addr = ARMCSR_BASE;
-		else {
-			devfn -= 1 << 3;
-
-			if (devfn < PCI_DEVFN(MAX_SLOTS, 0))
-				addr = PCICFG0_BASE | 0xc00000 | (devfn << 8);
-		}
-	} else
-		addr = PCICFG1_BASE | (bus->number << 16) | (devfn << 8);
-
-	return addr;
-}
-
-static int
-dc21285_read_config(struct pci_bus *bus, unsigned int devfn, int where,
-		    int size, u32 *value)
-{
-	unsigned long addr = dc21285_base_address(bus, devfn);
-	u32 v = 0xffffffff;
-
-	if (addr)
-		switch (size) {
-		case 1:
-			asm volatile("ldrb	%0, [%1, %2]"
-				: "=r" (v) : "r" (addr), "r" (where) : "cc");
-			break;
-		case 2:
-			asm volatile("ldrh	%0, [%1, %2]"
-				: "=r" (v) : "r" (addr), "r" (where) : "cc");
-			break;
-		case 4:
-			asm volatile("ldr	%0, [%1, %2]"
-				: "=r" (v) : "r" (addr), "r" (where) : "cc");
-			break;
-		}
-
-	*value = v;
-
-	v = *CSR_PCICMD;
-	if (v & PCICMD_ABORT) {
-		*CSR_PCICMD = v & (0xffff|PCICMD_ABORT);
-		return -1;
-	}
-
-	return PCIBIOS_SUCCESSFUL;
-}
-
-static int
-dc21285_write_config(struct pci_bus *bus, unsigned int devfn, int where,
-		     int size, u32 value)
-{
-	unsigned long addr = dc21285_base_address(bus, devfn);
-	u32 v;
-
-	if (addr)
-		switch (size) {
-		case 1:
-			asm volatile("strb	%0, [%1, %2]"
-				: : "r" (value), "r" (addr), "r" (where)
-				: "cc");
-			break;
-		case 2:
-			asm volatile("strh	%0, [%1, %2]"
-				: : "r" (value), "r" (addr), "r" (where)
-				: "cc");
-			break;
-		case 4:
-			asm volatile("str	%0, [%1, %2]"
-				: : "r" (value), "r" (addr), "r" (where)
-				: "cc");
-			break;
-		}
-
-	v = *CSR_PCICMD;
-	if (v & PCICMD_ABORT) {
-		*CSR_PCICMD = v & (0xffff|PCICMD_ABORT);
-		return -1;
-	}
-
-	return PCIBIOS_SUCCESSFUL;
-}
-
-struct pci_ops dc21285_ops = {
-	.read	= dc21285_read_config,
-	.write	= dc21285_write_config,
-};
-
-static struct timer_list serr_timer;
-static struct timer_list perr_timer;
-
-static void dc21285_enable_error(struct timer_list *timer)
-{
-	timer_delete(timer);
-
-	if (timer == &serr_timer)
-		enable_irq(IRQ_PCI_SERR);
-	else if (timer == &perr_timer)
-		enable_irq(IRQ_PCI_PERR);
-}
-
-/*
- * Warn on PCI errors.
- */
-static irqreturn_t dc21285_abort_irq(int irq, void *dev_id)
-{
-	unsigned int cmd;
-	unsigned int status;
-
-	cmd = *CSR_PCICMD;
-	status = cmd >> 16;
-	cmd = cmd & 0xffff;
-
-	if (status & PCI_STATUS_REC_MASTER_ABORT) {
-		printk(KERN_DEBUG "PCI: master abort, pc=0x%08lx\n",
-			instruction_pointer(get_irq_regs()));
-		cmd |= PCI_STATUS_REC_MASTER_ABORT << 16;
-	}
-
-	if (status & PCI_STATUS_REC_TARGET_ABORT) {
-		printk(KERN_DEBUG "PCI: target abort: ");
-		pcibios_report_status(PCI_STATUS_REC_MASTER_ABORT |
-				      PCI_STATUS_SIG_TARGET_ABORT |
-				      PCI_STATUS_REC_TARGET_ABORT, 1);
-		printk("\n");
-
-		cmd |= PCI_STATUS_REC_TARGET_ABORT << 16;
-	}
-
-	*CSR_PCICMD = cmd;
-
-	return IRQ_HANDLED;
-}
-
-static irqreturn_t dc21285_serr_irq(int irq, void *dev_id)
-{
-	struct timer_list *timer = dev_id;
-	unsigned int cntl;
-
-	printk(KERN_DEBUG "PCI: system error received: ");
-	pcibios_report_status(PCI_STATUS_SIG_SYSTEM_ERROR, 1);
-	printk("\n");
-
-	cntl = *CSR_SA110_CNTL & 0xffffdf07;
-	*CSR_SA110_CNTL = cntl | SA110_CNTL_RXSERR;
-
-	/*
-	 * back off this interrupt
-	 */
-	disable_irq(irq);
-	timer->expires = jiffies + HZ;
-	add_timer(timer);
-
-	return IRQ_HANDLED;
-}
-
-static irqreturn_t dc21285_discard_irq(int irq, void *dev_id)
-{
-	printk(KERN_DEBUG "PCI: discard timer expired\n");
-	*CSR_SA110_CNTL &= 0xffffde07;
-
-	return IRQ_HANDLED;
-}
-
-static irqreturn_t dc21285_dparity_irq(int irq, void *dev_id)
-{
-	unsigned int cmd;
-
-	printk(KERN_DEBUG "PCI: data parity error detected: ");
-	pcibios_report_status(PCI_STATUS_PARITY | PCI_STATUS_DETECTED_PARITY, 1);
-	printk("\n");
-
-	cmd = *CSR_PCICMD & 0xffff;
-	*CSR_PCICMD = cmd | 1 << 24;
-
-	return IRQ_HANDLED;
-}
-
-static irqreturn_t dc21285_parity_irq(int irq, void *dev_id)
-{
-	struct timer_list *timer = dev_id;
-	unsigned int cmd;
-
-	printk(KERN_DEBUG "PCI: parity error detected: ");
-	pcibios_report_status(PCI_STATUS_PARITY | PCI_STATUS_DETECTED_PARITY, 1);
-	printk("\n");
-
-	cmd = *CSR_PCICMD & 0xffff;
-	*CSR_PCICMD = cmd | 1 << 31;
-
-	/*
-	 * back off this interrupt
-	 */
-	disable_irq(irq);
-	timer->expires = jiffies + HZ;
-	add_timer(timer);
-
-	return IRQ_HANDLED;
-}
-
-static int dc21285_pci_bus_notifier(struct notifier_block *nb,
-				    unsigned long action,
-				    void *data)
-{
-	if (action != BUS_NOTIFY_ADD_DEVICE)
-		return NOTIFY_DONE;
-
-	dma_direct_set_offset(data, PHYS_OFFSET, BUS_OFFSET, SZ_256M);
-
-	return NOTIFY_OK;
-}
-
-static struct notifier_block dc21285_pci_bus_nb = {
-	.notifier_call = dc21285_pci_bus_notifier,
-};
-
-int __init dc21285_setup(int nr, struct pci_sys_data *sys)
-{
-	struct resource *res;
-
-	res = kzalloc_objs(struct resource, 2);
-	if (!res) {
-		printk("out of memory for root bus resources");
-		return 0;
-	}
-
-	res[0].flags = IORESOURCE_MEM;
-	res[0].name  = "Footbridge non-prefetch";
-	res[1].flags = IORESOURCE_MEM | IORESOURCE_PREFETCH;
-	res[1].name  = "Footbridge prefetch";
-
-	allocate_resource(&iomem_resource, &res[1], 0x20000000,
-			  0xa0000000, 0xffffffff, 0x20000000, NULL, NULL);
-	allocate_resource(&iomem_resource, &res[0], 0x40000000,
-			  0x80000000, 0xffffffff, 0x40000000, NULL, NULL);
-
-	sys->mem_offset  = DC21285_PCI_MEM;
-
-	pci_add_resource_offset(&sys->resources, &res[0], sys->mem_offset);
-	pci_add_resource_offset(&sys->resources, &res[1], sys->mem_offset);
-
-	bus_register_notifier(&pci_bus_type, &dc21285_pci_bus_nb);
-
-	return 1;
-}
-
-#define dc21285_request_irq(_a, _b, _c, _d, _e) \
-	WARN_ON(request_irq(_a, _b, _c, _d, _e) < 0)
-
-void __init dc21285_preinit(void)
-{
-	unsigned int mem_size, mem_mask;
-
-	pcibios_min_mem = 0x81000000;
-
-	mem_size = (unsigned int)high_memory - PAGE_OFFSET;
-	for (mem_mask = 0x00100000; mem_mask < 0x10000000; mem_mask <<= 1)
-		if (mem_mask >= mem_size)
-			break;
-
-	/*
-	 * These registers need to be set up whether we're the
-	 * central function or not.
-	 */
-	*CSR_SDRAMBASEMASK    = (mem_mask - 1) & 0x0ffc0000;
-	*CSR_SDRAMBASEOFFSET  = 0;
-	*CSR_ROMBASEMASK      = 0x80000000;
-	*CSR_CSRBASEMASK      = 0;
-	*CSR_CSRBASEOFFSET    = 0;
-	*CSR_PCIADDR_EXTN     = 0;
-
-	printk(KERN_INFO "PCI: DC21285 footbridge, revision %02lX, in "
-		"central function mode\n", *CSR_CLASSREV & 0xff);
-
-	/*
-	 * Clear any existing errors - we aren't
-	 * interested in historical data...
-	 */
-	*CSR_SA110_CNTL	= (*CSR_SA110_CNTL & 0xffffde07) | SA110_CNTL_RXSERR;
-	*CSR_PCICMD = (*CSR_PCICMD & 0xffff) | PCICMD_ERROR_BITS;
-
-	timer_setup(&serr_timer, dc21285_enable_error, 0);
-	timer_setup(&perr_timer, dc21285_enable_error, 0);
-
-	/*
-	 * We don't care if these fail.
-	 */
-	dc21285_request_irq(IRQ_PCI_SERR, dc21285_serr_irq, 0,
-			    "PCI system error", &serr_timer);
-	dc21285_request_irq(IRQ_PCI_PERR, dc21285_parity_irq, 0,
-			    "PCI parity error", &perr_timer);
-	dc21285_request_irq(IRQ_PCI_ABORT, dc21285_abort_irq, 0,
-			    "PCI abort", NULL);
-	dc21285_request_irq(IRQ_DISCARD_TIMER, dc21285_discard_irq, 0,
-			    "Discard timer", NULL);
-	dc21285_request_irq(IRQ_PCI_DPERR, dc21285_dparity_irq, 0,
-			    "PCI data parity", NULL);
-
-	/*
-	 * Map our SDRAM at a known address in PCI space, just in case
-	 * the firmware had other ideas.  Using a nonzero base is
-	 * necessary, since some VGA cards forcefully use PCI addresses
-	 * in the range 0x000a0000 to 0x000c0000. (eg, S3 cards).
-	 */
-	*CSR_PCICSRBASE       = 0xf4000000;
-	*CSR_PCICSRIOBASE     = 0;
-	*CSR_PCISDRAMBASE     = BUS_OFFSET;
-	*CSR_PCIROMBASE       = 0;
-	*CSR_PCICMD = PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER |
-		      PCI_COMMAND_INVALIDATE | PCICMD_ERROR_BITS;
-}
-
-void __init dc21285_postinit(void)
-{
-	register_isa_ports(DC21285_PCI_MEM, DC21285_PCI_IO, 0);
-}
diff --git a/arch/arm/mach-footbridge/dma-isa.c b/arch/arm/mach-footbridge/dma-isa.c
deleted file mode 100644
index 937f5376d5e7..000000000000
--- a/arch/arm/mach-footbridge/dma-isa.c
+++ /dev/null
@@ -1,230 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-/*
- *  Copyright (C) 1999-2000 Russell King
- *
- *  ISA DMA primitives
- *  Taken from various sources, including:
- *   linux/include/asm/dma.h: Defines for using and allocating dma channels.
- *     Written by Hennus Bergman, 1992.
- *     High DMA channel support & info by Hannu Savolainen and John Boyd,
- *     Nov. 1992.
- *   arch/arm/kernel/dma-ebsa285.c
- *   Copyright (C) 1998 Phil Blundell
- */
-#include <linux/dma-map-ops.h>
-#include <linux/ioport.h>
-#include <linux/init.h>
-#include <linux/dma-mapping.h>
-#include <linux/io.h>
-
-#include <asm/dma.h>
-#include <asm/mach/dma.h>
-#include <asm/hardware/dec21285.h>
-
-#define ISA_DMA_MASK		0
-#define ISA_DMA_MODE		1
-#define ISA_DMA_CLRFF		2
-#define ISA_DMA_PGHI		3
-#define ISA_DMA_PGLO		4
-#define ISA_DMA_ADDR		5
-#define ISA_DMA_COUNT		6
-
-static unsigned int isa_dma_port[8][7] = {
-	/* MASK   MODE   CLRFF  PAGE_HI PAGE_LO ADDR COUNT */
-	{  0x0a,  0x0b,  0x0c,  0x487,  0x087,  0x00, 0x01 },
-	{  0x0a,  0x0b,  0x0c,  0x483,  0x083,  0x02, 0x03 },
-	{  0x0a,  0x0b,  0x0c,  0x481,  0x081,  0x04, 0x05 },
-	{  0x0a,  0x0b,  0x0c,  0x482,  0x082,  0x06, 0x07 },
-	{  0xd4,  0xd6,  0xd8,  0x000,  0x000,  0xc0, 0xc2 },
-	{  0xd4,  0xd6,  0xd8,  0x48b,  0x08b,  0xc4, 0xc6 },
-	{  0xd4,  0xd6,  0xd8,  0x489,  0x089,  0xc8, 0xca },
-	{  0xd4,  0xd6,  0xd8,  0x48a,  0x08a,  0xcc, 0xce }
-};
-
-static int isa_get_dma_residue(unsigned int chan, dma_t *dma)
-{
-	unsigned int io_port = isa_dma_port[chan][ISA_DMA_COUNT];
-	int count;
-
-	count = 1 + inb(io_port);
-	count |= inb(io_port) << 8;
-
-	return chan < 4 ? count : (count << 1);
-}
-
-static struct device isa_dma_dev = {
-	.init_name		= "fallback device",
-	.coherent_dma_mask	= ~(dma_addr_t)0,
-	.dma_mask		= &isa_dma_dev.coherent_dma_mask,
-};
-
-static void isa_enable_dma(unsigned int chan, dma_t *dma)
-{
-	if (dma->invalid) {
-		unsigned long address, length;
-		unsigned int mode;
-		enum dma_data_direction direction;
-
-		mode = (chan & 3) | dma->dma_mode;
-		switch (dma->dma_mode & DMA_MODE_MASK) {
-		case DMA_MODE_READ:
-			direction = DMA_FROM_DEVICE;
-			break;
-
-		case DMA_MODE_WRITE:
-			direction = DMA_TO_DEVICE;
-			break;
-
-		case DMA_MODE_CASCADE:
-			direction = DMA_BIDIRECTIONAL;
-			break;
-
-		default:
-			direction = DMA_NONE;
-			break;
-		}
-
-		if (!dma->sg) {
-			/*
-			 * Cope with ISA-style drivers which expect cache
-			 * coherence.
-			 */
-			dma->sg = &dma->buf;
-			dma->sgcount = 1;
-			dma->buf.length = dma->count;
-			dma->buf.dma_address = dma_map_single(&isa_dma_dev,
-				dma->addr, dma->count,
-				direction);
-		}
-
-		address = dma->buf.dma_address;
-		length  = dma->buf.length - 1;
-
-		outb(address >> 16, isa_dma_port[chan][ISA_DMA_PGLO]);
-		outb(address >> 24, isa_dma_port[chan][ISA_DMA_PGHI]);
-
-		if (chan >= 4) {
-			address >>= 1;
-			length >>= 1;
-		}
-
-		outb(0, isa_dma_port[chan][ISA_DMA_CLRFF]);
-
-		outb(address, isa_dma_port[chan][ISA_DMA_ADDR]);
-		outb(address >> 8, isa_dma_port[chan][ISA_DMA_ADDR]);
-
-		outb(length, isa_dma_port[chan][ISA_DMA_COUNT]);
-		outb(length >> 8, isa_dma_port[chan][ISA_DMA_COUNT]);
-
-		outb(mode, isa_dma_port[chan][ISA_DMA_MODE]);
-		dma->invalid = 0;
-	}
-	outb(chan & 3, isa_dma_port[chan][ISA_DMA_MASK]);
-}
-
-static void isa_disable_dma(unsigned int chan, dma_t *dma)
-{
-	outb(chan | 4, isa_dma_port[chan][ISA_DMA_MASK]);
-}
-
-static struct dma_ops isa_dma_ops = {
-	.type		= "ISA",
-	.enable		= isa_enable_dma,
-	.disable	= isa_disable_dma,
-	.residue	= isa_get_dma_residue,
-};
-
-static struct resource dma_resources[] = { {
-	.name	= "dma1",
-	.start	= 0x0000,
-	.end	= 0x000f
-}, {
-	.name	= "dma low page",
-	.start	= 0x0080,
-	.end 	= 0x008f
-}, {
-	.name	= "dma2",
-	.start	= 0x00c0,
-	.end	= 0x00df
-}, {
-	.name	= "dma high page",
-	.start	= 0x0480,
-	.end	= 0x048f
-} };
-
-static dma_t isa_dma[8];
-
-/*
- * ISA DMA always starts at channel 0
- */
-static int __init isa_dma_init(void)
-{
-	/*
-	 * Try to autodetect presence of an ISA DMA controller.
-	 * We do some minimal initialisation, and check that
-	 * channel 0's DMA address registers are writeable.
-	 */
-	outb(0xff, 0x0d);
-	outb(0xff, 0xda);
-
-	/*
-	 * Write high and low address, and then read them back
-	 * in the same order.
-	 */
-	outb(0x55, 0x00);
-	outb(0xaa, 0x00);
-
-	if (inb(0) == 0x55 && inb(0) == 0xaa) {
-		unsigned int chan, i;
-
-		for (chan = 0; chan < 8; chan++) {
-			isa_dma[chan].d_ops = &isa_dma_ops;
-			isa_disable_dma(chan, NULL);
-		}
-
-		outb(0x40, 0x0b);
-		outb(0x41, 0x0b);
-		outb(0x42, 0x0b);
-		outb(0x43, 0x0b);
-
-		outb(0xc0, 0xd6);
-		outb(0x41, 0xd6);
-		outb(0x42, 0xd6);
-		outb(0x43, 0xd6);
-
-		outb(0, 0xd4);
-
-		outb(0x10, 0x08);
-		outb(0x10, 0xd0);
-
-		/*
-		 * Is this correct?  According to my documentation, it
-		 * doesn't appear to be.  It should be:
-		 *  outb(0x3f, 0x40b); outb(0x3f, 0x4d6);
-		 */
-		outb(0x30, 0x40b);
-		outb(0x31, 0x40b);
-		outb(0x32, 0x40b);
-		outb(0x33, 0x40b);
-		outb(0x31, 0x4d6);
-		outb(0x32, 0x4d6);
-		outb(0x33, 0x4d6);
-
-		for (i = 0; i < ARRAY_SIZE(dma_resources); i++)
-			request_resource(&ioport_resource, dma_resources + i);
-
-		for (chan = 0; chan < 8; chan++) {
-			int ret = isa_dma_add(chan, &isa_dma[chan]);
-			if (ret)
-				pr_err("ISADMA%u: unable to register: %d\n",
-				       chan, ret);
-		}
-
-		request_dma(DMA_ISA_CASCADE, "cascade");
-	}
-
-	dma_direct_set_offset(&isa_dma_dev, PHYS_OFFSET, BUS_OFFSET, SZ_256M);
-
-	return 0;
-}
-core_initcall(isa_dma_init);
diff --git a/arch/arm/mach-footbridge/ebsa285-pci.c b/arch/arm/mach-footbridge/ebsa285-pci.c
deleted file mode 100644
index c3f280d08fa7..000000000000
--- a/arch/arm/mach-footbridge/ebsa285-pci.c
+++ /dev/null
@@ -1,48 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- * linux/arch/arm/mach-footbridge/ebsa285-pci.c
- *
- * PCI bios-type initialisation for PCI machines
- *
- * Bits taken from various places.
- */
-#include <linux/kernel.h>
-#include <linux/pci.h>
-#include <linux/init.h>
-
-#include <asm/irq.h>
-#include <asm/mach/pci.h>
-#include <asm/mach-types.h>
-
-static int irqmap_ebsa285[] = { IRQ_IN3, IRQ_IN1, IRQ_IN0, IRQ_PCI };
-
-static int ebsa285_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
-{
-	if (dev->vendor == PCI_VENDOR_ID_CONTAQ &&
-	    dev->device == PCI_DEVICE_ID_CONTAQ_82C693)
-		switch (PCI_FUNC(dev->devfn)) {
-		case 1:	return 14;
-		case 2:	return 15;
-		case 3:	return 12;
-		}
-
-	return irqmap_ebsa285[(slot + pin) & 3];
-}
-
-static struct hw_pci ebsa285_pci __initdata = {
-	.map_irq		= ebsa285_map_irq,
-	.nr_controllers		= 1,
-	.ops			= &dc21285_ops,
-	.setup			= dc21285_setup,
-	.preinit		= dc21285_preinit,
-	.postinit		= dc21285_postinit,
-};
-
-static int __init ebsa285_init_pci(void)
-{
-	if (machine_is_ebsa285())
-		pci_common_init(&ebsa285_pci);
-	return 0;
-}
-
-subsys_initcall(ebsa285_init_pci);
diff --git a/arch/arm/mach-footbridge/ebsa285.c b/arch/arm/mach-footbridge/ebsa285.c
deleted file mode 100644
index 1cb7d674bc81..000000000000
--- a/arch/arm/mach-footbridge/ebsa285.c
+++ /dev/null
@@ -1,124 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- * linux/arch/arm/mach-footbridge/ebsa285.c
- *
- * EBSA285 machine fixup
- */
-#include <linux/init.h>
-#include <linux/io.h>
-#include <linux/spinlock.h>
-#include <linux/slab.h>
-#include <linux/leds.h>
-
-#include <asm/hardware/dec21285.h>
-#include <asm/mach-types.h>
-
-#include <asm/mach/arch.h>
-
-#include "common.h"
-
-/* LEDs */
-#if defined(CONFIG_NEW_LEDS) && defined(CONFIG_LEDS_CLASS)
-#define XBUS_AMBER_L	BIT(0)
-#define XBUS_GREEN_L	BIT(1)
-#define XBUS_RED_L	BIT(2)
-#define XBUS_TOGGLE	BIT(7)
-
-struct ebsa285_led {
-	struct led_classdev     cdev;
-	u8                      mask;
-};
-
-/*
- * The triggers lines up below will only be used if the
- * LED triggers are compiled in.
- */
-static const struct {
-	const char *name;
-	const char *trigger;
-} ebsa285_leds[] = {
-	{ "ebsa285:amber", "cpu0", },
-	{ "ebsa285:green", "heartbeat", },
-	{ "ebsa285:red",},
-};
-
-static unsigned char hw_led_state;
-static void __iomem *xbus;
-
-static void ebsa285_led_set(struct led_classdev *cdev,
-		enum led_brightness b)
-{
-	struct ebsa285_led *led = container_of(cdev,
-			struct ebsa285_led, cdev);
-
-	if (b == LED_OFF)
-		hw_led_state |= led->mask;
-	else
-		hw_led_state &= ~led->mask;
-	writeb(hw_led_state, xbus);
-}
-
-static enum led_brightness ebsa285_led_get(struct led_classdev *cdev)
-{
-	struct ebsa285_led *led = container_of(cdev,
-			struct ebsa285_led, cdev);
-
-	return hw_led_state & led->mask ? LED_OFF : LED_FULL;
-}
-
-static int __init ebsa285_leds_init(void)
-{
-	int i;
-
-	if (!machine_is_ebsa285())
-		return -ENODEV;
-
-	xbus = ioremap(XBUS_CS2, SZ_4K);
-	if (!xbus)
-		return -ENOMEM;
-
-	/* 3 LEDS all off */
-	hw_led_state = XBUS_AMBER_L | XBUS_GREEN_L | XBUS_RED_L;
-	writeb(hw_led_state, xbus);
-
-	for (i = 0; i < ARRAY_SIZE(ebsa285_leds); i++) {
-		struct ebsa285_led *led;
-
-		led = kzalloc_obj(*led);
-		if (!led)
-			break;
-
-		led->cdev.name = ebsa285_leds[i].name;
-		led->cdev.brightness_set = ebsa285_led_set;
-		led->cdev.brightness_get = ebsa285_led_get;
-		led->cdev.default_trigger = ebsa285_leds[i].trigger;
-		led->mask = BIT(i);
-
-		if (led_classdev_register(NULL, &led->cdev) < 0) {
-			kfree(led);
-			break;
-		}
-	}
-
-	return 0;
-}
-
-/*
- * Since we may have triggers on any subsystem, defer registration
- * until after subsystem_init.
- */
-fs_initcall(ebsa285_leds_init);
-#endif
-
-MACHINE_START(EBSA285, "EBSA285")
-	/* Maintainer: Russell King */
-	.atag_offset	= 0x100,
-	.video_start	= 0x000a0000,
-	.video_end	= 0x000bffff,
-	.map_io		= footbridge_map_io,
-	.init_early	= footbridge_sched_clock,
-	.init_irq	= footbridge_init_irq,
-	.init_time	= footbridge_timer_init,
-	.restart	= footbridge_restart,
-MACHINE_END
-
diff --git a/arch/arm/mach-footbridge/include/mach/hardware.h b/arch/arm/mach-footbridge/include/mach/hardware.h
deleted file mode 100644
index 985ad3a95671..000000000000
--- a/arch/arm/mach-footbridge/include/mach/hardware.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-/*
- *  arch/arm/mach-footbridge/include/mach/hardware.h
- *
- *  Copyright (C) 1998-1999 Russell King.
- *
- *  This file contains the hardware definitions of the EBSA-285.
- */
-#ifndef __ASM_ARCH_HARDWARE_H
-#define __ASM_ARCH_HARDWARE_H
-
-/*   Virtual      Physical	Size
- * 0xff800000	0x40000000	1MB	X-Bus
- * 0xff000000	0x7c000000	1MB	PCI I/O space
- * 0xfe000000	0x42000000	1MB	CSR
- * 0xfd000000	0x78000000	1MB	Outbound write flush (not supported)
- * 0xfc000000	0x79000000	1MB	PCI IACK/special space
- * 0xfb000000	0x7a000000	16MB	PCI Config type 1
- * 0xfa000000	0x7b000000	16MB	PCI Config type 0
- * 0xf9000000	0x50000000	1MB	Cache flush
- * 0xf0000000	0x80000000	16MB	ISA memory
- */
-
-#define XBUS_SIZE		0x00100000
-#define XBUS_BASE		0xff800000
-
-#define ARMCSR_SIZE		0x00100000
-#define ARMCSR_BASE		0xfe000000
-
-#define WFLUSH_SIZE		0x00100000
-#define WFLUSH_BASE		0xfd000000
-
-#define PCIIACK_SIZE		0x00100000
-#define PCIIACK_BASE		0xfc000000
-
-#define PCICFG1_SIZE		0x01000000
-#define PCICFG1_BASE		0xfb000000
-
-#define PCICFG0_SIZE		0x01000000
-#define PCICFG0_BASE		0xfa000000
-
-#define PCIMEM_SIZE		0x01000000
-#define PCIMEM_BASE		0xf0000000
-
-#define XBUS_CS2		0x40012000
-
-#define XBUS_SWITCH		((volatile unsigned char *)(XBUS_BASE + 0x12000))
-#define XBUS_SWITCH_SWITCH	((*XBUS_SWITCH) & 15)
-#define XBUS_SWITCH_J17_13	((*XBUS_SWITCH) & (1 << 4))
-#define XBUS_SWITCH_J17_11	((*XBUS_SWITCH) & (1 << 5))
-#define XBUS_SWITCH_J17_9	((*XBUS_SWITCH) & (1 << 6))
-
-#define UNCACHEABLE_ADDR	(ARMCSR_BASE + 0x108)	/* CSR_ROMBASEMASK */
-
-
-/* PIC irq control */
-#define PIC_LO			0x20
-#define PIC_MASK_LO		0x21
-#define PIC_HI			0xA0
-#define PIC_MASK_HI		0xA1
-
-/* GPIO pins */
-#define GPIO_CCLK		0x800
-#define GPIO_DSCLK		0x400
-#define GPIO_E2CLK		0x200
-#define GPIO_IOLOAD		0x100
-#define GPIO_RED_LED		0x080
-#define GPIO_WDTIMER		0x040
-#define GPIO_DATA		0x020
-#define GPIO_IOCLK		0x010
-#define GPIO_DONE		0x008
-#define GPIO_FAN		0x004
-#define GPIO_GREEN_LED		0x002
-#define GPIO_RESET		0x001
-
-/* CPLD pins */
-#define CPLD_DS_ENABLE		8
-#define CPLD_7111_DISABLE	4
-#define CPLD_UNMUTE		2
-#define CPLD_FLASH_WR_ENABLE	1
-
-#ifndef __ASSEMBLY__
-extern raw_spinlock_t nw_gpio_lock;
-extern void nw_gpio_modify_op(unsigned int mask, unsigned int set);
-extern void nw_gpio_modify_io(unsigned int mask, unsigned int in);
-extern unsigned int nw_gpio_read(void);
-extern void nw_cpld_modify(unsigned int mask, unsigned int set);
-#endif
-
-#endif
diff --git a/arch/arm/mach-footbridge/include/mach/irqs.h b/arch/arm/mach-footbridge/include/mach/irqs.h
deleted file mode 100644
index a5f41846ab9c..000000000000
--- a/arch/arm/mach-footbridge/include/mach/irqs.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/*
- * arch/arm/mach-footbridge/include/mach/irqs.h
- *
- * Copyright (C) 1998 Russell King
- * Copyright (C) 1998 Phil Blundell
- *
- * Changelog:
- *  20-Jan-1998	RMK	Started merge of EBSA286, CATS and NetWinder
- *  01-Feb-1999	PJB	ISA IRQs start at 0 not 16
- */
-#include <asm/mach-types.h>
-
-#define NR_IRQS			36
-#define NR_DC21285_IRQS		16
-
-#define _ISA_IRQ(x)		(0 + (x))
-#define _ISA_INR(x)		((x) - 0)
-#define _DC21285_IRQ(x)		(16 + (x))
-#define _DC21285_INR(x)		((x) - 16)
-
-/*
- * This is a list of all interrupts that the 21285
- * can generate and we handle.
- */
-#define IRQ_CONRX		_DC21285_IRQ(0)
-#define IRQ_CONTX		_DC21285_IRQ(1)
-#define IRQ_TIMER1		_DC21285_IRQ(2)
-#define IRQ_TIMER2		_DC21285_IRQ(3)
-#define IRQ_TIMER3		_DC21285_IRQ(4)
-#define IRQ_IN0			_DC21285_IRQ(5)
-#define IRQ_IN1			_DC21285_IRQ(6)
-#define IRQ_IN2			_DC21285_IRQ(7)
-#define IRQ_IN3			_DC21285_IRQ(8)
-#define IRQ_DOORBELLHOST	_DC21285_IRQ(9)
-#define IRQ_DMA1		_DC21285_IRQ(10)
-#define IRQ_DMA2		_DC21285_IRQ(11)
-#define IRQ_PCI			_DC21285_IRQ(12)
-#define IRQ_SDRAMPARITY		_DC21285_IRQ(13)
-#define IRQ_I2OINPOST		_DC21285_IRQ(14)
-#define IRQ_PCI_ABORT		_DC21285_IRQ(15)
-#define IRQ_PCI_SERR		_DC21285_IRQ(16)
-#define IRQ_DISCARD_TIMER	_DC21285_IRQ(17)
-#define IRQ_PCI_DPERR		_DC21285_IRQ(18)
-#define IRQ_PCI_PERR		_DC21285_IRQ(19)
-
-#define IRQ_ISA_TIMER		_ISA_IRQ(0)
-#define IRQ_ISA_KEYBOARD	_ISA_IRQ(1)
-#define IRQ_ISA_CASCADE		_ISA_IRQ(2)
-#define IRQ_ISA_UART2		_ISA_IRQ(3)
-#define IRQ_ISA_UART		_ISA_IRQ(4)
-#define IRQ_ISA_FLOPPY		_ISA_IRQ(6)
-#define IRQ_ISA_PRINTER		_ISA_IRQ(7)
-#define IRQ_ISA_RTC_ALARM	_ISA_IRQ(8)
-#define IRQ_ISA_2		_ISA_IRQ(9)
-#define IRQ_ISA_PS2MOUSE	_ISA_IRQ(12)
-#define IRQ_ISA_HARDDISK1	_ISA_IRQ(14)
-#define IRQ_ISA_HARDDISK2	_ISA_IRQ(15)
-
-#define IRQ_MASK_UART_RX	(1 << 2)
-#define IRQ_MASK_UART_TX	(1 << 3)
-#define IRQ_MASK_TIMER1		(1 << 4)
-#define IRQ_MASK_TIMER2		(1 << 5)
-#define IRQ_MASK_TIMER3		(1 << 6)
-#define IRQ_MASK_IN0		(1 << 8)
-#define IRQ_MASK_IN1		(1 << 9)
-#define IRQ_MASK_IN2		(1 << 10)
-#define IRQ_MASK_IN3		(1 << 11)
-#define IRQ_MASK_DOORBELLHOST	(1 << 15)
-#define IRQ_MASK_DMA1		(1 << 16)
-#define IRQ_MASK_DMA2		(1 << 17)
-#define IRQ_MASK_PCI		(1 << 18)
-#define IRQ_MASK_SDRAMPARITY	(1 << 24)
-#define IRQ_MASK_I2OINPOST	(1 << 25)
-#define IRQ_MASK_PCI_ABORT	((1 << 29) | (1 << 30))
-#define IRQ_MASK_PCI_SERR	(1 << 23)
-#define IRQ_MASK_DISCARD_TIMER	(1 << 27)
-#define IRQ_MASK_PCI_DPERR	(1 << 28)
-#define IRQ_MASK_PCI_PERR	(1 << 31)
-
-/*
- * Netwinder interrupt allocations
- */
-#define IRQ_NETWINDER_ETHER10	IRQ_IN0
-#define IRQ_NETWINDER_ETHER100	IRQ_IN1
-#define IRQ_NETWINDER_VIDCOMP	IRQ_IN2
-#define IRQ_NETWINDER_PS2MOUSE	_ISA_IRQ(5)
-#define IRQ_NETWINDER_IR	_ISA_IRQ(6)
-#define IRQ_NETWINDER_BUTTON	_ISA_IRQ(10)
-#define IRQ_NETWINDER_VGA	_ISA_IRQ(11)
-#define IRQ_NETWINDER_SOUND	_ISA_IRQ(12)
-
-#define I8042_KBD_IRQ	IRQ_ISA_KEYBOARD
-#define I8042_AUX_IRQ	(machine_is_netwinder() ? IRQ_NETWINDER_PS2MOUSE : IRQ_ISA_PS2MOUSE)
-#define IRQ_FLOPPYDISK	IRQ_ISA_FLOPPY
-
-#define irq_canonicalize(_i)	(((_i) == IRQ_ISA_CASCADE) ? IRQ_ISA_2 : _i)
diff --git a/arch/arm/mach-footbridge/include/mach/isa-dma.h b/arch/arm/mach-footbridge/include/mach/isa-dma.h
deleted file mode 100644
index b10731a1f66a..000000000000
--- a/arch/arm/mach-footbridge/include/mach/isa-dma.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/*
- *  arch/arm/mach-footbridge/include/mach/isa-dma.h
- *
- *  Architecture DMA routines
- *
- *  Copyright (C) 1998,1999 Russell King
- *  Copyright (C) 1998,1999 Philip Blundell
- */
-#ifndef __ASM_ARCH_DMA_H
-#define __ASM_ARCH_DMA_H
-
-#define MAX_DMA_CHANNELS	8
-
-#define DMA_FLOPPY		(2)
-#define DMA_ISA_CASCADE		(4)
-
-#endif /* _ASM_ARCH_DMA_H */
diff --git a/arch/arm/mach-footbridge/include/mach/memory.h b/arch/arm/mach-footbridge/include/mach/memory.h
deleted file mode 100644
index 9516877667d7..000000000000
--- a/arch/arm/mach-footbridge/include/mach/memory.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-/*
- *  arch/arm/mach-footbridge/include/mach/memory.h
- *
- *  Copyright (C) 1996-1999 Russell King.
- *
- *  Changelog:
- *   20-Oct-1996 RMK	Created
- *   31-Dec-1997 RMK	Fixed definitions to reduce warnings.
- *   17-May-1998 DAG	Added __virt_to_bus and __bus_to_virt functions.
- *   21-Nov-1998 RMK	Changed __virt_to_bus and __bus_to_virt to macros.
- *   21-Mar-1999 RMK	Added PAGE_OFFSET for co285 architecture.
- *			Renamed to memory.h
- *			Moved PAGE_OFFSET and TASK_SIZE here
- */
-#ifndef __ASM_ARCH_MEMORY_H
-#define __ASM_ARCH_MEMORY_H
-
-/*
- * Cache flushing area.
- */
-#define FLUSH_BASE		0xf9000000
-
-#define FLUSH_BASE_PHYS		0x50000000
-
-#endif
diff --git a/arch/arm/mach-footbridge/include/mach/uncompress.h b/arch/arm/mach-footbridge/include/mach/uncompress.h
deleted file mode 100644
index 28b577e29db3..000000000000
--- a/arch/arm/mach-footbridge/include/mach/uncompress.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-/*
- *  arch/arm/mach-footbridge/include/mach/uncompress.h
- *
- *  Copyright (C) 1996-1999 Russell King
- */
-#include <asm/mach-types.h>
-
-/*
- * Note! This could cause problems on the NetWinder
- */
-#define DC21285_BASE ((volatile unsigned int *)0x42000160)
-#define SER0_BASE    ((volatile unsigned char *)0x7c0003f8)
-
-static inline void putc(char c)
-{
-	if (machine_is_netwinder()) {
-		while ((SER0_BASE[5] & 0x60) != 0x60)
-			barrier();
-		SER0_BASE[0] = c;
-	} else {
-		while (DC21285_BASE[6] & 8);
-		DC21285_BASE[0] = c;
-	}
-}
-
-static inline void flush(void)
-{
-}
-
-/*
- * nothing to do
- */
-#define arch_decomp_setup()
diff --git a/arch/arm/mach-footbridge/isa-irq.c b/arch/arm/mach-footbridge/isa-irq.c
deleted file mode 100644
index 48c7b3efd555..000000000000
--- a/arch/arm/mach-footbridge/isa-irq.c
+++ /dev/null
@@ -1,177 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-/*
- *  linux/arch/arm/mach-footbridge/irq.c
- *
- *  Copyright (C) 1996-2000 Russell King
- *
- *  Changelog:
- *   22-Aug-1998 RMK	Restructured IRQ routines
- *   03-Sep-1998 PJB	Merged CATS support
- *   20-Jan-1998 RMK	Started merge of EBSA286, CATS and NetWinder
- *   26-Jan-1999 PJB	Don't use IACK on CATS
- *   16-Mar-1999 RMK	Added autodetect of ISA PICs
- */
-#include <linux/ioport.h>
-#include <linux/interrupt.h>
-#include <linux/list.h>
-#include <linux/init.h>
-#include <linux/io.h>
-#include <linux/spinlock.h>
-
-#include <asm/mach/irq.h>
-
-#include <mach/hardware.h>
-#include <asm/hardware/dec21285.h>
-#include <asm/irq.h>
-#include <asm/mach-types.h>
-
-#include "common.h"
-
-static void isa_mask_pic_lo_irq(struct irq_data *d)
-{
-	unsigned int mask = 1 << (d->irq & 7);
-
-	outb(inb(PIC_MASK_LO) | mask, PIC_MASK_LO);
-}
-
-static void isa_ack_pic_lo_irq(struct irq_data *d)
-{
-	unsigned int mask = 1 << (d->irq & 7);
-
-	outb(inb(PIC_MASK_LO) | mask, PIC_MASK_LO);
-	outb(0x20, PIC_LO);
-}
-
-static void isa_unmask_pic_lo_irq(struct irq_data *d)
-{
-	unsigned int mask = 1 << (d->irq & 7);
-
-	outb(inb(PIC_MASK_LO) & ~mask, PIC_MASK_LO);
-}
-
-static struct irq_chip isa_lo_chip = {
-	.irq_ack	= isa_ack_pic_lo_irq,
-	.irq_mask	= isa_mask_pic_lo_irq,
-	.irq_unmask	= isa_unmask_pic_lo_irq,
-};
-
-static void isa_mask_pic_hi_irq(struct irq_data *d)
-{
-	unsigned int mask = 1 << (d->irq & 7);
-
-	outb(inb(PIC_MASK_HI) | mask, PIC_MASK_HI);
-}
-
-static void isa_ack_pic_hi_irq(struct irq_data *d)
-{
-	unsigned int mask = 1 << (d->irq & 7);
-
-	outb(inb(PIC_MASK_HI) | mask, PIC_MASK_HI);
-	outb(0x62, PIC_LO);
-	outb(0x20, PIC_HI);
-}
-
-static void isa_unmask_pic_hi_irq(struct irq_data *d)
-{
-	unsigned int mask = 1 << (d->irq & 7);
-
-	outb(inb(PIC_MASK_HI) & ~mask, PIC_MASK_HI);
-}
-
-static struct irq_chip isa_hi_chip = {
-	.irq_ack	= isa_ack_pic_hi_irq,
-	.irq_mask	= isa_mask_pic_hi_irq,
-	.irq_unmask	= isa_unmask_pic_hi_irq,
-};
-
-static void isa_irq_handler(struct irq_desc *desc)
-{
-	unsigned int isa_irq = *(unsigned char *)PCIIACK_BASE;
-
-	if (isa_irq < _ISA_IRQ(0) || isa_irq >= _ISA_IRQ(16)) {
-		handle_bad_irq(desc);
-		return;
-	}
-
-	generic_handle_irq(isa_irq);
-}
-
-static struct resource pic1_resource = {
-	.name	= "pic1",
-	.start	= 0x20,
-	.end	= 0x3f,
-};
-
-static struct resource pic2_resource = {
-	.name	= "pic2",
-	.start	= 0xa0,
-	.end	= 0xbf,
-};
-
-void __init isa_init_irq(unsigned int host_irq)
-{
-	unsigned int irq;
-
-	/*
-	 * Setup, and then probe for an ISA PIC
-	 * If the PIC is not there, then we
-	 * ignore the PIC.
-	 */
-	outb(0x11, PIC_LO);
-	outb(_ISA_IRQ(0), PIC_MASK_LO);	/* IRQ number		*/
-	outb(0x04, PIC_MASK_LO);	/* Slave on Ch2		*/
-	outb(0x01, PIC_MASK_LO);	/* x86			*/
-	outb(0xf5, PIC_MASK_LO);	/* pattern: 11110101	*/
-
-	outb(0x11, PIC_HI);
-	outb(_ISA_IRQ(8), PIC_MASK_HI);	/* IRQ number		*/
-	outb(0x02, PIC_MASK_HI);	/* Slave on Ch1		*/
-	outb(0x01, PIC_MASK_HI);	/* x86			*/
-	outb(0xfa, PIC_MASK_HI);	/* pattern: 11111010	*/
-
-	outb(0x0b, PIC_LO);
-	outb(0x0b, PIC_HI);
-
-	if (inb(PIC_MASK_LO) == 0xf5 && inb(PIC_MASK_HI) == 0xfa) {
-		outb(0xff, PIC_MASK_LO);/* mask all IRQs	*/
-		outb(0xff, PIC_MASK_HI);/* mask all IRQs	*/
-	} else {
-		printk(KERN_INFO "IRQ: ISA PIC not found\n");
-		host_irq = (unsigned int)-1;
-	}
-
-	if (host_irq != (unsigned int)-1) {
-		for (irq = _ISA_IRQ(0); irq < _ISA_IRQ(8); irq++) {
-			irq_set_chip_and_handler(irq, &isa_lo_chip,
-						 handle_level_irq);
-			irq_clear_status_flags(irq, IRQ_NOREQUEST | IRQ_NOPROBE);
-		}
-
-		for (irq = _ISA_IRQ(8); irq < _ISA_IRQ(16); irq++) {
-			irq_set_chip_and_handler(irq, &isa_hi_chip,
-						 handle_level_irq);
-			irq_clear_status_flags(irq, IRQ_NOREQUEST | IRQ_NOPROBE);
-		}
-
-		request_resource(&ioport_resource, &pic1_resource);
-		request_resource(&ioport_resource, &pic2_resource);
-
-		irq = IRQ_ISA_CASCADE;
-		if (request_irq(irq, no_action, 0, "cascade", NULL))
-			pr_err("Failed to request irq %u (cascade)\n", irq);
-
-		irq_set_chained_handler(host_irq, isa_irq_handler);
-
-		/*
-		 * On the NetWinder, don't automatically
-		 * enable ISA IRQ11 when it is requested.
-		 * There appears to be a missing pull-up
-		 * resistor on this line.
-		 */
-		if (machine_is_netwinder())
-			irq_modify_status(_ISA_IRQ(11),
-				IRQ_NOREQUEST | IRQ_NOPROBE, IRQ_NOAUTOEN);
-	}
-}
-
-
diff --git a/arch/arm/mach-footbridge/isa-rtc.c b/arch/arm/mach-footbridge/isa-rtc.c
deleted file mode 100644
index 237b828dd2f1..000000000000
--- a/arch/arm/mach-footbridge/isa-rtc.c
+++ /dev/null
@@ -1,57 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- *  arch/arm/mach-footbridge/isa-rtc.c
- *
- *  Copyright (C) 1998 Russell King.
- *  Copyright (C) 1998 Phil Blundell
- *
- * CATS has a real-time clock, though the evaluation board doesn't.
- *
- * Changelog:
- *  21-Mar-1998	RMK	Created
- *  27-Aug-1998	PJB	CATS support
- *  28-Dec-1998	APH	Made leds optional
- *  20-Jan-1999	RMK	Started merge of EBSA285, CATS and NetWinder
- *  16-Mar-1999	RMK	More support for EBSA285-like machines with RTCs in
- */
-
-#define RTC_PORT(x)		(0x70+(x))
-#define RTC_ALWAYS_BCD		0
-
-#include <linux/init.h>
-#include <linux/mc146818rtc.h>
-#include <linux/io.h>
-
-#include "common.h"
-
-void __init isa_rtc_init(void)
-{
-	int reg_d, reg_b;
-
-	/*
-	 * Probe for the RTC.
-	 */
-	reg_d = CMOS_READ(RTC_REG_D);
-
-	/*
-	 * make sure the divider is set
-	 */
-	CMOS_WRITE(RTC_REF_CLCK_32KHZ, RTC_REG_A);
-
-	/*
-	 * Set control reg B
-	 *   (24 hour mode, update enabled)
-	 */
-	reg_b = CMOS_READ(RTC_REG_B) & 0x7f;
-	reg_b |= 2;
-	CMOS_WRITE(reg_b, RTC_REG_B);
-
-	if ((CMOS_READ(RTC_REG_A) & 0x7f) == RTC_REF_CLCK_32KHZ &&
-	    CMOS_READ(RTC_REG_B) == reg_b) {
-		/*
-		 * We have a RTC.  Check the battery
-		 */
-		if ((reg_d & 0x80) == 0)
-			printk(KERN_WARNING "RTC: *** warning: CMOS battery bad\n");
-	}
-}
diff --git a/arch/arm/mach-footbridge/isa-timer.c b/arch/arm/mach-footbridge/isa-timer.c
deleted file mode 100644
index 723e3eae995d..000000000000
--- a/arch/arm/mach-footbridge/isa-timer.c
+++ /dev/null
@@ -1,36 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- *  linux/arch/arm/mach-footbridge/isa-timer.c
- *
- *  Copyright (C) 1998 Russell King.
- *  Copyright (C) 1998 Phil Blundell
- */
-#include <linux/clockchips.h>
-#include <linux/i8253.h>
-#include <linux/init.h>
-#include <linux/interrupt.h>
-#include <linux/irq.h>
-#include <linux/spinlock.h>
-#include <linux/timex.h>
-
-#include <asm/irq.h>
-#include <asm/mach/time.h>
-
-#include "common.h"
-
-static irqreturn_t pit_timer_interrupt(int irq, void *dev_id)
-{
-	struct clock_event_device *ce = dev_id;
-	ce->event_handler(ce);
-	return IRQ_HANDLED;
-}
-
-void __init isa_timer_init(void)
-{
-	clocksource_i8253_init();
-
-	if (request_irq(i8253_clockevent.irq, pit_timer_interrupt,
-			IRQF_TIMER | IRQF_IRQPOLL, "pit", &i8253_clockevent))
-		pr_err("Failed to request irq %d(pit)\n", i8253_clockevent.irq);
-	clockevent_i8253_init(false);
-}
diff --git a/arch/arm/mach-footbridge/isa.c b/arch/arm/mach-footbridge/isa.c
deleted file mode 100644
index 84caccddce44..000000000000
--- a/arch/arm/mach-footbridge/isa.c
+++ /dev/null
@@ -1,94 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-/*
- *  linux/arch/arm/mach-footbridge/isa.c
- *
- *  Copyright (C) 2004 Russell King.
- */
-#include <linux/init.h>
-#include <linux/serial_8250.h>
-
-#include <asm/irq.h>
-#include <asm/hardware/dec21285.h>
-
-#include "common.h"
-
-static struct resource rtc_resources[] = {
-	[0] = {
-		.start	= 0x70,
-		.end	= 0x73,
-		.flags	= IORESOURCE_IO,
-	},
-	[1] = {
-		.start	= IRQ_ISA_RTC_ALARM,
-		.end	= IRQ_ISA_RTC_ALARM,
-		.flags	= IORESOURCE_IRQ,
-	}
-};
-
-static struct platform_device rtc_device = {
-	.name		= "rtc_cmos",
-	.id		= -1,
-	.resource	= rtc_resources,
-	.num_resources	= ARRAY_SIZE(rtc_resources),
-};
-
-static struct resource serial_resources[] = {
-	[0] = {
-		.start	= 0x3f8,
-		.end	= 0x3ff,
-		.flags	= IORESOURCE_IO,
-	},
-	[1] = {
-		.start	= 0x2f8,
-		.end	= 0x2ff,
-		.flags	= IORESOURCE_IO,
-	},
-};
-
-static struct plat_serial8250_port serial_platform_data[] = {
-	{
-		.iobase		= 0x3f8,
-		.irq		= IRQ_ISA_UART,
-		.uartclk	= 1843200,
-		.regshift	= 0,
-		.iotype		= UPIO_PORT,
-		.flags		= UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
-	},
-	{
-		.iobase		= 0x2f8,
-		.irq		= IRQ_ISA_UART2,
-		.uartclk	= 1843200,
-		.regshift	= 0,
-		.iotype		= UPIO_PORT,
-		.flags		= UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
-	},
-	{ },
-};
-
-static struct platform_device serial_device = {
-	.name			= "serial8250",
-	.id			= PLAT8250_DEV_PLATFORM,
-	.dev			= {
-		.platform_data	= serial_platform_data,
-	},
-	.resource		= serial_resources,
-	.num_resources		= ARRAY_SIZE(serial_resources),
-};
-
-static int __init footbridge_isa_init(void)
-{
-	int err = 0;
-
-	/* Personal server doesn't have RTC */
-	isa_rtc_init();
-	err = platform_device_register(&rtc_device);
-	if (err)
-		printk(KERN_ERR "Unable to register RTC device: %d\n", err);
-
-	err = platform_device_register(&serial_device);
-	if (err)
-		printk(KERN_ERR "Unable to register serial device: %d\n", err);
-	return 0;
-}
-
-arch_initcall(footbridge_isa_init);
diff --git a/arch/arm/mach-footbridge/netwinder-hw.c b/arch/arm/mach-footbridge/netwinder-hw.c
deleted file mode 100644
index c024eefd4978..000000000000
--- a/arch/arm/mach-footbridge/netwinder-hw.c
+++ /dev/null
@@ -1,772 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- * linux/arch/arm/mach-footbridge/netwinder-hw.c
- *
- * Netwinder machine fixup
- *
- * Copyright (C) 1998, 1999 Russell King, Phil Blundell
- */
-#include <linux/module.h>
-#include <linux/ioport.h>
-#include <linux/kernel.h>
-#include <linux/delay.h>
-#include <linux/init.h>
-#include <linux/io.h>
-#include <linux/spinlock.h>
-#include <linux/slab.h>
-#include <linux/leds.h>
-
-#include <asm/hardware/dec21285.h>
-#include <asm/mach-types.h>
-#include <asm/setup.h>
-#include <asm/system_misc.h>
-
-#include <asm/mach/arch.h>
-
-#include "common.h"
-
-#define IRDA_IO_BASE		0x180
-#define GP1_IO_BASE		0x338
-#define GP2_IO_BASE		0x33a
-
-/*
- * Winbond WB83977F accessibility stuff
- */
-static inline void wb977_open(void)
-{
-	outb(0x87, 0x370);
-	outb(0x87, 0x370);
-}
-
-static inline void wb977_close(void)
-{
-	outb(0xaa, 0x370);
-}
-
-static inline void wb977_wb(int reg, int val)
-{
-	outb(reg, 0x370);
-	outb(val, 0x371);
-}
-
-static inline void wb977_ww(int reg, int val)
-{
-	outb(reg, 0x370);
-	outb(val >> 8, 0x371);
-	outb(reg + 1, 0x370);
-	outb(val & 255, 0x371);
-}
-
-#define wb977_device_select(dev)	wb977_wb(0x07, dev)
-#define wb977_device_disable()		wb977_wb(0x30, 0x00)
-#define wb977_device_enable()		wb977_wb(0x30, 0x01)
-
-/*
- * This is a lock for accessing ports GP1_IO_BASE and GP2_IO_BASE
- */
-DEFINE_RAW_SPINLOCK(nw_gpio_lock);
-EXPORT_SYMBOL(nw_gpio_lock);
-
-static unsigned int current_gpio_op;
-static unsigned int current_gpio_io;
-static unsigned int current_cpld;
-
-void nw_gpio_modify_op(unsigned int mask, unsigned int set)
-{
-	unsigned int new_gpio, changed;
-
-	new_gpio = (current_gpio_op & ~mask) | set;
-	changed = new_gpio ^ current_gpio_op;
-	current_gpio_op = new_gpio;
-
-	if (changed & 0xff)
-		outb(new_gpio, GP1_IO_BASE);
-	if (changed & 0xff00)
-		outb(new_gpio >> 8, GP2_IO_BASE);
-}
-EXPORT_SYMBOL(nw_gpio_modify_op);
-
-static inline void __gpio_modify_io(int mask, int in)
-{
-	unsigned int new_gpio, changed;
-	int port;
-
-	new_gpio = (current_gpio_io & ~mask) | in;
-	changed = new_gpio ^ current_gpio_io;
-	current_gpio_io = new_gpio;
-
-	changed >>= 1;
-	new_gpio >>= 1;
-
-	wb977_device_select(7);
-
-	for (port = 0xe1; changed && port < 0xe8; changed >>= 1) {
-		wb977_wb(port, new_gpio & 1);
-
-		port += 1;
-		new_gpio >>= 1;
-	}
-
-	wb977_device_select(8);
-
-	for (port = 0xe8; changed && port < 0xec; changed >>= 1) {
-		wb977_wb(port, new_gpio & 1);
-
-		port += 1;
-		new_gpio >>= 1;
-	}
-}
-
-void nw_gpio_modify_io(unsigned int mask, unsigned int in)
-{
-	/* Open up the SuperIO chip */
-	wb977_open();
-
-	__gpio_modify_io(mask, in);
-
-	/* Close up the EFER gate */
-	wb977_close();
-}
-EXPORT_SYMBOL(nw_gpio_modify_io);
-
-unsigned int nw_gpio_read(void)
-{
-	return inb(GP1_IO_BASE) | inb(GP2_IO_BASE) << 8;
-}
-EXPORT_SYMBOL(nw_gpio_read);
-
-/*
- * Initialise the Winbond W83977F global registers
- */
-static inline void wb977_init_global(void)
-{
-	/*
-	 * Enable R/W config registers
-	 */
-	wb977_wb(0x26, 0x40);
-
-	/*
-	 * Power down FDC (not used)
-	 */
-	wb977_wb(0x22, 0xfe);
-
-	/*
-	 * GP12, GP11, CIRRX, IRRXH, GP10
-	 */
-	wb977_wb(0x2a, 0xc1);
-
-	/*
-	 * GP23, GP22, GP21, GP20, GP13
-	 */
-	wb977_wb(0x2b, 0x6b);
-
-	/*
-	 * GP17, GP16, GP15, GP14
-	 */
-	wb977_wb(0x2c, 0x55);
-}
-
-/*
- * Initialise the Winbond W83977F printer port
- */
-static inline void wb977_init_printer(void)
-{
-	wb977_device_select(1);
-
-	/*
-	 * mode 1 == EPP
-	 */
-	wb977_wb(0xf0, 0x01);
-}
-
-/*
- * Initialise the Winbond W83977F keyboard controller
- */
-static inline void wb977_init_keyboard(void)
-{
-	wb977_device_select(5);
-
-	/*
-	 * Keyboard controller address
-	 */
-	wb977_ww(0x60, 0x0060);
-	wb977_ww(0x62, 0x0064);
-
-	/*
-	 * Keyboard IRQ 1, active high, edge trigger
-	 */
-	wb977_wb(0x70, 1);
-	wb977_wb(0x71, 0x02);
-
-	/*
-	 * Mouse IRQ 5, active high, edge trigger
-	 */
-	wb977_wb(0x72, 5);
-	wb977_wb(0x73, 0x02);
-
-	/*
-	 * KBC 8MHz
-	 */
-	wb977_wb(0xf0, 0x40);
-
-	/*
-	 * Enable device
-	 */
-	wb977_device_enable();
-}
-
-/*
- * Initialise the Winbond W83977F Infra-Red device
- */
-static inline void wb977_init_irda(void)
-{
-	wb977_device_select(6);
-
-	/*
-	 * IR base address
-	 */
-	wb977_ww(0x60, IRDA_IO_BASE);
-
-	/*
-	 * IRDA IRQ 6, active high, edge trigger
-	 */
-	wb977_wb(0x70, 6);
-	wb977_wb(0x71, 0x02);
-
-	/*
-	 * RX DMA - ISA DMA 0
-	 */
-	wb977_wb(0x74, 0x00);
-
-	/*
-	 * TX DMA - Disable Tx DMA
-	 */
-	wb977_wb(0x75, 0x04);
-
-	/*
-	 * Append CRC, Enable bank selection
-	 */
-	wb977_wb(0xf0, 0x03);
-
-	/*
-	 * Enable device
-	 */
-	wb977_device_enable();
-}
-
-/*
- * Initialise Winbond W83977F general purpose IO
- */
-static inline void wb977_init_gpio(void)
-{
-	unsigned long flags;
-
-	/*
-	 * Set up initial I/O definitions
-	 */
-	current_gpio_io = -1;
-	__gpio_modify_io(-1, GPIO_DONE | GPIO_WDTIMER);
-
-	wb977_device_select(7);
-
-	/*
-	 * Group1 base address
-	 */
-	wb977_ww(0x60, GP1_IO_BASE);
-	wb977_ww(0x62, 0);
-	wb977_ww(0x64, 0);
-
-	/*
-	 * GP10 (Orage button) IRQ 10, active high, edge trigger
-	 */
-	wb977_wb(0x70, 10);
-	wb977_wb(0x71, 0x02);
-
-	/*
-	 * GP10: Debounce filter enabled, IRQ, input
-	 */
-	wb977_wb(0xe0, 0x19);
-
-	/*
-	 * Enable Group1
-	 */
-	wb977_device_enable();
-
-	wb977_device_select(8);
-
-	/*
-	 * Group2 base address
-	 */
-	wb977_ww(0x60, GP2_IO_BASE);
-
-	/*
-	 * Clear watchdog timer regs
-	 *  - timer disable
-	 */
-	wb977_wb(0xf2, 0x00);
-
-	/*
-	 *  - disable LED, no mouse nor keyboard IRQ
-	 */
-	wb977_wb(0xf3, 0x00);
-
-	/*
-	 *  - timer counting, disable power LED, disable timeouot
-	 */
-	wb977_wb(0xf4, 0x00);
-
-	/*
-	 * Enable group2
-	 */
-	wb977_device_enable();
-
-	/*
-	 * Set Group1/Group2 outputs
-	 */
-	raw_spin_lock_irqsave(&nw_gpio_lock, flags);
-	nw_gpio_modify_op(-1, GPIO_RED_LED | GPIO_FAN);
-	raw_spin_unlock_irqrestore(&nw_gpio_lock, flags);
-}
-
-/*
- * Initialise the Winbond W83977F chip.
- */
-static void __init wb977_init(void)
-{
-	request_region(0x370, 2, "W83977AF configuration");
-
-	/*
-	 * Open up the SuperIO chip
-	 */
-	wb977_open();
-
-	/*
-	 * Initialise the global registers
-	 */
-	wb977_init_global();
-
-	/*
-	 * Initialise the various devices in
-	 * the multi-IO chip.
-	 */
-	wb977_init_printer();
-	wb977_init_keyboard();
-	wb977_init_irda();
-	wb977_init_gpio();
-
-	/*
-	 * Close up the EFER gate
-	 */
-	wb977_close();
-}
-
-void nw_cpld_modify(unsigned int mask, unsigned int set)
-{
-	int msk;
-
-	current_cpld = (current_cpld & ~mask) | set;
-
-	nw_gpio_modify_io(GPIO_DATA | GPIO_IOCLK | GPIO_IOLOAD, 0);
-	nw_gpio_modify_op(GPIO_IOLOAD, 0);
-
-	for (msk = 8; msk; msk >>= 1) {
-		int bit = current_cpld & msk;
-
-		nw_gpio_modify_op(GPIO_DATA | GPIO_IOCLK, bit ? GPIO_DATA : 0);
-		nw_gpio_modify_op(GPIO_IOCLK, GPIO_IOCLK);
-	}
-
-	nw_gpio_modify_op(GPIO_IOCLK|GPIO_DATA, 0);
-	nw_gpio_modify_op(GPIO_IOLOAD|GPIO_DSCLK, GPIO_IOLOAD|GPIO_DSCLK);
-	nw_gpio_modify_op(GPIO_IOLOAD, 0);
-}
-EXPORT_SYMBOL(nw_cpld_modify);
-
-static void __init cpld_init(void)
-{
-	unsigned long flags;
-
-	raw_spin_lock_irqsave(&nw_gpio_lock, flags);
-	nw_cpld_modify(-1, CPLD_UNMUTE | CPLD_7111_DISABLE);
-	raw_spin_unlock_irqrestore(&nw_gpio_lock, flags);
-}
-
-static unsigned char rwa_unlock[] __initdata =
-{ 0x00, 0x00, 0x6a, 0xb5, 0xda, 0xed, 0xf6, 0xfb, 0x7d, 0xbe, 0xdf, 0x6f, 0x37, 0x1b,
-  0x0d, 0x86, 0xc3, 0x61, 0xb0, 0x58, 0x2c, 0x16, 0x8b, 0x45, 0xa2, 0xd1, 0xe8, 0x74,
-  0x3a, 0x9d, 0xce, 0xe7, 0x73, 0x39 };
-
-#ifndef DEBUG
-#define dprintk(x...)
-#else
-#define dprintk(x...) printk(x)
-#endif
-
-#define WRITE_RWA(r,v) do { outb((r), 0x279); udelay(10); outb((v), 0xa79); } while (0)
-
-static inline void rwa010_unlock(void)
-{
-	int i;
-
-	WRITE_RWA(2, 2);
-	mdelay(10);
-
-	for (i = 0; i < sizeof(rwa_unlock); i++) {
-		outb(rwa_unlock[i], 0x279);
-		udelay(10);
-	}
-}
-
-static inline void rwa010_read_ident(void)
-{
-	unsigned char si[9];
-	int i, j;
-
-	WRITE_RWA(3, 0);
-	WRITE_RWA(0, 128);
-
-	outb(1, 0x279);
-
-	mdelay(1);
-
-	dprintk("Identifier: ");
-	for (i = 0; i < 9; i++) {
-		si[i] = 0;
-		for (j = 0; j < 8; j++) {
-			int bit;
-			udelay(250);
-			inb(0x203);
-			udelay(250);
-			bit = inb(0x203);
-			dprintk("%02X ", bit);
-			bit = (bit == 0xaa) ? 1 : 0;
-			si[i] |= bit << j;
-		}
-		dprintk("(%02X) ", si[i]);
-	}
-	dprintk("\n");
-}
-
-static inline void rwa010_global_init(void)
-{
-	WRITE_RWA(6, 2);	// Assign a card no = 2
-
-	dprintk("Card no = %d\n", inb(0x203));
-
-	/* disable the modem section of the chip */
-	WRITE_RWA(7, 3);
-	WRITE_RWA(0x30, 0);
-
-	/* disable the cdrom section of the chip */
-	WRITE_RWA(7, 4);
-	WRITE_RWA(0x30, 0);
-
-	/* disable the MPU-401 section of the chip */
-	WRITE_RWA(7, 2);
-	WRITE_RWA(0x30, 0);
-}
-
-static inline void rwa010_game_port_init(void)
-{
-	int i;
-
-	WRITE_RWA(7, 5);
-
-	dprintk("Slider base: ");
-	WRITE_RWA(0x61, 1);
-	i = inb(0x203);
-
-	WRITE_RWA(0x60, 2);
-	dprintk("%02X%02X (201)\n", inb(0x203), i);
-
-	WRITE_RWA(0x30, 1);
-}
-
-static inline void rwa010_waveartist_init(int base, int irq, int dma)
-{
-	int i;
-
-	WRITE_RWA(7, 0);
-
-	dprintk("WaveArtist base: ");
-	WRITE_RWA(0x61, base & 255);
-	i = inb(0x203);
-
-	WRITE_RWA(0x60, base >> 8);
-	dprintk("%02X%02X (%X),", inb(0x203), i, base);
-
-	WRITE_RWA(0x70, irq);
-	dprintk(" irq: %d (%d),", inb(0x203), irq);
-
-	WRITE_RWA(0x74, dma);
-	dprintk(" dma: %d (%d)\n", inb(0x203), dma);
-
-	WRITE_RWA(0x30, 1);
-}
-
-static inline void rwa010_soundblaster_init(int sb_base, int al_base, int irq, int dma)
-{
-	int i;
-
-	WRITE_RWA(7, 1);
-
-	dprintk("SoundBlaster base: ");
-	WRITE_RWA(0x61, sb_base & 255);
-	i = inb(0x203);
-
-	WRITE_RWA(0x60, sb_base >> 8);
-	dprintk("%02X%02X (%X),", inb(0x203), i, sb_base);
-
-	dprintk(" irq: ");
-	WRITE_RWA(0x70, irq);
-	dprintk("%d (%d),", inb(0x203), irq);
-
-	dprintk(" 8-bit DMA: ");
-	WRITE_RWA(0x74, dma);
-	dprintk("%d (%d)\n", inb(0x203), dma);
-
-	dprintk("AdLib base: ");
-	WRITE_RWA(0x63, al_base & 255);
-	i = inb(0x203);
-
-	WRITE_RWA(0x62, al_base >> 8);
-	dprintk("%02X%02X (%X)\n", inb(0x203), i, al_base);
-
-	WRITE_RWA(0x30, 1);
-}
-
-static void rwa010_soundblaster_reset(void)
-{
-	int i;
-
-	outb(1, 0x226);
-	udelay(3);
-	outb(0, 0x226);
-
-	for (i = 0; i < 5; i++) {
-		if (inb(0x22e) & 0x80)
-			break;
-		mdelay(1);
-	}
-	if (i == 5)
-		printk("SoundBlaster: DSP reset failed\n");
-
-	dprintk("SoundBlaster DSP reset: %02X (AA)\n", inb(0x22a));
-
-	for (i = 0; i < 5; i++) {
-		if ((inb(0x22c) & 0x80) == 0)
-			break;
-		mdelay(1);
-	}
-
-	if (i == 5)
-		printk("SoundBlaster: DSP not ready\n");
-	else {
-		outb(0xe1, 0x22c);
-
-		dprintk("SoundBlaster DSP id: ");
-		i = inb(0x22a);
-		udelay(1);
-		i |= inb(0x22a) << 8;
-		dprintk("%04X\n", i);
-
-		for (i = 0; i < 5; i++) {
-			if ((inb(0x22c) & 0x80) == 0)
-				break;
-			mdelay(1);
-		}
-
-		if (i == 5)
-			printk("SoundBlaster: could not turn speaker off\n");
-
-		outb(0xd3, 0x22c);
-	}
-
-	/* turn on OPL3 */
-	outb(5, 0x38a);
-	outb(1, 0x38b);
-}
-
-static void __init rwa010_init(void)
-{
-	rwa010_unlock();
-	rwa010_read_ident();
-	rwa010_global_init();
-	rwa010_game_port_init();
-	rwa010_waveartist_init(0x250, 3, 7);
-	rwa010_soundblaster_init(0x220, 0x388, 3, 1);
-	rwa010_soundblaster_reset();
-}
-
-/*
- * Initialise any other hardware after we've got the PCI bus
- * initialised.  We may need the PCI bus to talk to this other
- * hardware.
- */
-static int __init nw_hw_init(void)
-{
-	if (machine_is_netwinder()) {
-		wb977_init();
-		cpld_init();
-		rwa010_init();
-	}
-	return 0;
-}
-
-__initcall(nw_hw_init);
-
-/*
- * Older NeTTroms either do not provide a parameters
- * page, or they don't supply correct information in
- * the parameter page.
- */
-static void __init
-fixup_netwinder(struct tag *tags, char **cmdline)
-{
-#ifdef CONFIG_ISAPNP
-	extern int isapnp_disable;
-
-	/*
-	 * We must not use the kernels ISAPnP code
-	 * on the NetWinder - it will reset the settings
-	 * for the WaveArtist chip and render it inoperable.
-	 */
-	isapnp_disable = 1;
-#endif
-}
-
-static void netwinder_restart(enum reboot_mode mode, const char *cmd)
-{
-	if (mode == REBOOT_SOFT) {
-		/* Jump into the ROM */
-		soft_restart(0x41000000);
-	} else {
-		local_irq_disable();
-		local_fiq_disable();
-
-		/* open up the SuperIO chip */
-		outb(0x87, 0x370);
-		outb(0x87, 0x370);
-
-		/* aux function group 1 (logical device 7) */
-		outb(0x07, 0x370);
-		outb(0x07, 0x371);
-
-		/* set GP16 for WD-TIMER output */
-		outb(0xe6, 0x370);
-		outb(0x00, 0x371);
-
-		/* set a RED LED and toggle WD_TIMER for rebooting */
-		outb(0xc4, 0x338);
-	}
-}
-
-/* LEDs */
-#if defined(CONFIG_NEW_LEDS) && defined(CONFIG_LEDS_CLASS)
-struct netwinder_led {
-	struct led_classdev     cdev;
-	u8                      mask;
-};
-
-/*
- * The triggers lines up below will only be used if the
- * LED triggers are compiled in.
- */
-static const struct {
-	const char *name;
-	const char *trigger;
-} netwinder_leds[] = {
-	{ "netwinder:green", "heartbeat", },
-	{ "netwinder:red", "cpu0", },
-};
-
-/*
- * The LED control in Netwinder is reversed:
- *  - setting bit means turn off LED
- *  - clearing bit means turn on LED
- */
-static void netwinder_led_set(struct led_classdev *cdev,
-		enum led_brightness b)
-{
-	struct netwinder_led *led = container_of(cdev,
-			struct netwinder_led, cdev);
-	unsigned long flags;
-	u32 reg;
-
-	raw_spin_lock_irqsave(&nw_gpio_lock, flags);
-	reg = nw_gpio_read();
-	if (b != LED_OFF)
-		reg &= ~led->mask;
-	else
-		reg |= led->mask;
-	nw_gpio_modify_op(led->mask, reg);
-	raw_spin_unlock_irqrestore(&nw_gpio_lock, flags);
-}
-
-static enum led_brightness netwinder_led_get(struct led_classdev *cdev)
-{
-	struct netwinder_led *led = container_of(cdev,
-			struct netwinder_led, cdev);
-	unsigned long flags;
-	u32 reg;
-
-	raw_spin_lock_irqsave(&nw_gpio_lock, flags);
-	reg = nw_gpio_read();
-	raw_spin_unlock_irqrestore(&nw_gpio_lock, flags);
-
-	return (reg & led->mask) ? LED_OFF : LED_FULL;
-}
-
-static int __init netwinder_leds_init(void)
-{
-	int i;
-
-	if (!machine_is_netwinder())
-		return -ENODEV;
-
-	for (i = 0; i < ARRAY_SIZE(netwinder_leds); i++) {
-		struct netwinder_led *led;
-
-		led = kzalloc_obj(*led);
-		if (!led)
-			break;
-
-		led->cdev.name = netwinder_leds[i].name;
-		led->cdev.brightness_set = netwinder_led_set;
-		led->cdev.brightness_get = netwinder_led_get;
-		led->cdev.default_trigger = netwinder_leds[i].trigger;
-
-		if (i == 0)
-			led->mask = GPIO_GREEN_LED;
-		else
-			led->mask = GPIO_RED_LED;
-
-		if (led_classdev_register(NULL, &led->cdev) < 0) {
-			kfree(led);
-			break;
-		}
-	}
-
-	return 0;
-}
-
-/*
- * Since we may have triggers on any subsystem, defer registration
- * until after subsystem_init.
- */
-fs_initcall(netwinder_leds_init);
-#endif
-
-MACHINE_START(NETWINDER, "Rebel-NetWinder")
-	/* Maintainer: Russell King/Rebel.com */
-	.atag_offset	= 0x100,
-	.video_start	= 0x000a0000,
-	.video_end	= 0x000bffff,
-	.reserve_lp0	= 1,
-	.reserve_lp2	= 1,
-	.fixup		= fixup_netwinder,
-	.map_io		= footbridge_map_io,
-	.init_irq	= footbridge_init_irq,
-	.init_time	= isa_timer_init,
-	.restart	= netwinder_restart,
-MACHINE_END
diff --git a/arch/arm/mach-footbridge/netwinder-pci.c b/arch/arm/mach-footbridge/netwinder-pci.c
deleted file mode 100644
index e8304392074b..000000000000
--- a/arch/arm/mach-footbridge/netwinder-pci.c
+++ /dev/null
@@ -1,62 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- * linux/arch/arm/mach-footbridge/netwinder-pci.c
- *
- * PCI bios-type initialisation for PCI machines
- *
- * Bits taken from various places.
- */
-#include <linux/kernel.h>
-#include <linux/pci.h>
-#include <linux/init.h>
-
-#include <asm/irq.h>
-#include <asm/mach/pci.h>
-#include <asm/mach-types.h>
-
-/*
- * We now use the slot ID instead of the device identifiers to select
- * which interrupt is routed where.
- */
-static int netwinder_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
-{
-	switch (slot) {
-	case 0:  /* host bridge */
-		return 0;
-
-	case 9:  /* CyberPro */
-		return IRQ_NETWINDER_VGA;
-
-	case 10: /* DC21143 */
-		return IRQ_NETWINDER_ETHER100;
-
-	case 12: /* Winbond 553 */
-		return IRQ_ISA_HARDDISK1;
-
-	case 13: /* Winbond 89C940F */
-		return IRQ_NETWINDER_ETHER10;
-
-	default:
-		printk(KERN_ERR "PCI: unknown device in slot %s\n",
-			pci_name(dev));
-		return 0;
-	}
-}
-
-static struct hw_pci netwinder_pci __initdata = {
-	.map_irq		= netwinder_map_irq,
-	.nr_controllers		= 1,
-	.ops			= &dc21285_ops,
-	.setup			= dc21285_setup,
-	.preinit		= dc21285_preinit,
-	.postinit		= dc21285_postinit,
-};
-
-static int __init netwinder_pci_init(void)
-{
-	if (machine_is_netwinder())
-		pci_common_init(&netwinder_pci);
-	return 0;
-}
-
-subsys_initcall(netwinder_pci_init);
diff --git a/drivers/video/console/Kconfig b/drivers/video/console/Kconfig
index 9f81af3506da..d8e3d307f50f 100644
--- a/drivers/video/console/Kconfig
+++ b/drivers/video/console/Kconfig
@@ -8,7 +8,6 @@ menu "Console display driver support"
 config VGA_CONSOLE
 	bool "VGA text console" if EXPERT || !X86
 	depends on ALPHA || X86 || \
-		(ARM && ARCH_FOOTBRIDGE) || \
 		(MIPS && (MIPS_MALTA || SIBYTE_BCM112X || SIBYTE_SB1250 || SIBYTE_BCM1x80 || SNI_RM))
 	select APERTURE_HELPERS if (DRM || FB || VFIO_PCI_CORE)
 	default y
@@ -36,7 +35,7 @@ config DUMMY_CONSOLE
 
 config DUMMY_CONSOLE_COLUMNS
 	int "Initial number of console screen columns"
-	depends on DUMMY_CONSOLE && !(ARCH_FOOTBRIDGE && VGA_CONSOLE)
+	depends on DUMMY_CONSOLE
 	default 160 if PARISC
 	default 80
 	help
@@ -46,9 +45,8 @@ config DUMMY_CONSOLE_COLUMNS
 
 config DUMMY_CONSOLE_ROWS
 	int "Initial number of console screen rows"
-	depends on DUMMY_CONSOLE && !(ARCH_FOOTBRIDGE && VGA_CONSOLE)
+	depends on DUMMY_CONSOLE
 	default 64 if PARISC
-	default 30 if ARM
 	default 25
 	help
 	  On PA-RISC, the default value is 64, which should fit a 1280x1024
diff --git a/drivers/video/console/dummycon.c b/drivers/video/console/dummycon.c
index 7d02470f19b9..48ebbc5bf6a8 100644
--- a/drivers/video/console/dummycon.c
+++ b/drivers/video/console/dummycon.c
@@ -18,15 +18,9 @@
  *  Dummy console driver
  */
 
-#if defined(CONFIG_ARCH_FOOTBRIDGE) && defined(CONFIG_VGA_CONSOLE)
-#include <asm/vga.h>
-#define DUMMY_COLUMNS	vgacon_screen_info.orig_video_cols
-#define DUMMY_ROWS	vgacon_screen_info.orig_video_lines
-#else
 /* set by Kconfig. Use 80x25 for 640x480 and 160x64 for 1280x1024 */
 #define DUMMY_COLUMNS	CONFIG_DUMMY_CONSOLE_COLUMNS
 #define DUMMY_ROWS	CONFIG_DUMMY_CONSOLE_ROWS
-#endif
 
 #ifdef CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER
 /* These are both protected by the console_lock */
diff --git a/drivers/video/fbdev/cyber2000fb.c b/drivers/video/fbdev/cyber2000fb.c
index 5c7349722125..aa15c7be4fa5 100644
--- a/drivers/video/fbdev/cyber2000fb.c
+++ b/drivers/video/fbdev/cyber2000fb.c
@@ -1723,16 +1723,6 @@ static int cyberpro_pci_probe(struct pci_dev *dev,
 	cfb->mclk_mult = cyber2000_grphr(EXT_MCLK_MULT, cfb);
 	cfb->mclk_div  = cyber2000_grphr(EXT_MCLK_DIV, cfb);
 
-#ifdef __arm__
-	/*
-	 * MCLK on the NetWinder and the Shark is fixed at 75MHz
-	 */
-	if (machine_is_netwinder()) {
-		cfb->mclk_mult = 0xdb;
-		cfb->mclk_div  = 0x54;
-	}
-#endif
-
 	err = cyberpro_common_probe(cfb);
 	if (err)
 		goto failed;
-- 
2.53.0



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

* [PATCH 07/13] ARM: imx: remove i.MX31 SoC support
  2026-09-08 15:27 [PATCH 00/13] ARM: deprecated platform removal Arnd Bergmann
  2026-09-08 15:27 ` [PATCH 02/13] ARM: remove footbridge Arnd Bergmann
@ 2026-09-08 15:27 ` Arnd Bergmann
  2026-09-09  8:24   ` Vladimir Zapolskiy
                     ` (2 more replies)
  2026-09-08 15:27 ` [PATCH 09/13] ARM: lpc18xx: remove entire platform Arnd Bergmann
                   ` (9 subsequent siblings)
  11 siblings, 3 replies; 49+ messages in thread
From: Arnd Bergmann @ 2026-09-08 15:27 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Alexandre Belloni, Linus Walleij,
	Russell King
  Cc: Drew Fustini, Arnd Bergmann, Rob Herring, Conor Dooley,
	Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi, Frank Li,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Vladimir Zapolskiy, Stefan Agner, Maxime Coquelin,
	Alexandre Torgue, Aaro Koskinen, Andreas Kemnade, Kevin Hilman,
	Roger Quadros, Tony Lindgren, Nicolas Ferre, Claudiu Beznea,
	Andrew Lunn, Sebastian Hesselbarth, Gregory Clement,
	Robert Jarzmik, Kristoffer Ericson, Ethan Nelson-Moore,
	Geert Uytterhoeven, Alexander Sverdlin, Shawn Guo,
	Karl Mehltretter, David Hildenbrand (Arm), Nicolas Pitre,
	linux-doc, linux-kernel, linux-arm-kernel, devicetree, imx,
	linux-stm32, linux-omap, Krzysztof Kozlowski

From: Arnd Bergmann <arnd@arndb.de>

The Freescale i.MX31 was an early SoC based on the ARM1136r0 CPU core. It
was used in the Bug Labs modular computer but ultimately much less
popular than most other i.MX SoCs.

As the ARM1136r0 support is causing a lot of extra maintenance effort
to keep alive and there are no known users, remove i.MX31 in order to
allow removing support for that CPU core altogether.

The related i.MX35 is based on a slightly newer ARM1136r1 CPU core that
does not have this problem, so there is no reason to remove that.

Cc: Russell King <linux@armlinux.org.uk>
Cc: Frank Li <Frank.Li@nxp.com>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
Cc: Conor Dooley <conor+dt@kernel.org>
Cc: imx@lists.linux.dev
Cc: devicetree@vger.kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/arm/Kconfig.debug                   |   9 -
 arch/arm/boot/dts/nxp/imx/Makefile       |   3 -
 arch/arm/boot/dts/nxp/imx/imx31-bug.dts  |  22 --
 arch/arm/boot/dts/nxp/imx/imx31-lite.dts | 178 -----------
 arch/arm/boot/dts/nxp/imx/imx31.dtsi     | 371 -----------------------
 arch/arm/configs/imx_v6_v7_defconfig     |   1 -
 arch/arm/mach-imx/Kconfig                |  11 -
 arch/arm/mach-imx/Makefile               |   1 -
 arch/arm/mach-imx/cpu-imx31.c            |  72 -----
 arch/arm/mach-imx/mach-imx31.c           |  18 --
 arch/arm/mach-imx/mm-imx3.c              |  44 ---
 11 files changed, 730 deletions(-)
 delete mode 100644 arch/arm/boot/dts/nxp/imx/imx31-bug.dts
 delete mode 100644 arch/arm/boot/dts/nxp/imx/imx31-lite.dts
 delete mode 100644 arch/arm/boot/dts/nxp/imx/imx31.dtsi
 delete mode 100644 arch/arm/mach-imx/cpu-imx31.c
 delete mode 100644 arch/arm/mach-imx/mach-imx31.c

diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
index e2fc89055463..52387fe2a057 100644
--- a/arch/arm/Kconfig.debug
+++ b/arch/arm/Kconfig.debug
@@ -424,13 +424,6 @@ choice
 		  Say Y here if you want kernel low-level debugging support
 		  on i.MX28.
 
-	config DEBUG_IMX31_UART
-		bool "i.MX31 Debug UART"
-		depends on SOC_IMX31
-		help
-		  Say Y here if you want kernel low-level debugging support
-		  on i.MX31.
-
 	config DEBUG_IMX35_UART
 		bool "i.MX35 Debug UART"
 		depends on SOC_IMX35
@@ -1411,7 +1404,6 @@ config DEBUG_IMX_UART_PORT
 	depends on DEBUG_IMX1_UART || \
 		   DEBUG_IMX25_UART || \
 		   DEBUG_IMX27_UART || \
-		   DEBUG_IMX31_UART || \
 		   DEBUG_IMX35_UART || \
 		   DEBUG_IMX50_UART || \
 		   DEBUG_IMX51_UART || \
@@ -1468,7 +1460,6 @@ config DEBUG_LL_INCLUDE
 	default "debug/imx.S" if DEBUG_IMX1_UART || \
 				 DEBUG_IMX25_UART || \
 				 DEBUG_IMX27_UART || \
-				 DEBUG_IMX31_UART || \
 				 DEBUG_IMX35_UART || \
 				 DEBUG_IMX50_UART || \
 				 DEBUG_IMX51_UART || \
diff --git a/arch/arm/boot/dts/nxp/imx/Makefile b/arch/arm/boot/dts/nxp/imx/Makefile
index 1a2539fa19b4..e0747cb6e772 100644
--- a/arch/arm/boot/dts/nxp/imx/Makefile
+++ b/arch/arm/boot/dts/nxp/imx/Makefile
@@ -16,9 +16,6 @@ dtb-$(CONFIG_SOC_IMX27) += \
 	imx27-pdk.dtb \
 	imx27-phytec-phycore-rdk.dtb \
 	imx27-phytec-phycard-s-rdk.dtb
-dtb-$(CONFIG_SOC_IMX31) += \
-	imx31-bug.dtb \
-	imx31-lite.dtb
 dtb-$(CONFIG_SOC_IMX35) += \
 	imx35-eukrea-mbimxsd35-baseboard.dtb \
 	imx35-pdk.dtb
diff --git a/arch/arm/boot/dts/nxp/imx/imx31-bug.dts b/arch/arm/boot/dts/nxp/imx/imx31-bug.dts
deleted file mode 100644
index d87eee3f9b3c..000000000000
--- a/arch/arm/boot/dts/nxp/imx/imx31-bug.dts
+++ /dev/null
@@ -1,22 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-/*
- * Copyright 2012 Denis 'GNUtoo' Carikli <GNUtoo@no-log.org>
- */
-
-/dts-v1/;
-#include "imx31.dtsi"
-
-/ {
-	model = "Buglabs i.MX31 Bug 1.x";
-	compatible = "buglabs,imx31-bug", "fsl,imx31";
-
-	memory@80000000 {
-		device_type = "memory";
-		reg = <0x80000000 0x8000000>; /* 128M */
-	};
-};
-
-&uart5 {
-	uart-has-rtscts;
-	status = "okay";
-};
diff --git a/arch/arm/boot/dts/nxp/imx/imx31-lite.dts b/arch/arm/boot/dts/nxp/imx/imx31-lite.dts
deleted file mode 100644
index 630f8fa69ba8..000000000000
--- a/arch/arm/boot/dts/nxp/imx/imx31-lite.dts
+++ /dev/null
@@ -1,178 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+
-//
-// Copyright (C) 2016-2018 Vladimir Zapolskiy <vz@mleia.com>
-
-/dts-v1/;
-
-#include "imx31.dtsi"
-
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/interrupt-controller/irq.h>
-
-/ {
-	model = "LogicPD i.MX31 Lite";
-	compatible = "logicpd,imx31-lite", "fsl,imx31";
-
-	chosen {
-		stdout-path = &uart1;
-	};
-
-	memory@80000000 {
-		device_type = "memory";
-		reg = <0x80000000 0x8000000>;
-	};
-
-	leds {
-		compatible = "gpio-leds";
-
-		led0 {
-			gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
-		};
-
-		led1 {
-			gpios = <&gpio1 7 GPIO_ACTIVE_LOW>;
-		};
-	};
-};
-
-&ata {
-	status = "okay";
-};
-
-&nfc {
-	nand-bus-width = <8>;
-	nand-ecc-mode = "hw";
-	nand-on-flash-bbt;
-	status = "okay";
-};
-
-&sdhci1 {
-	bus-width = <4>;
-	cd-gpios = <&gpio2 11 GPIO_ACTIVE_HIGH>;
-	wp-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
-	status = "okay";
-};
-
-&spi2 {
-	status = "okay";
-
-	pmic@0 {
-		compatible = "fsl,mc13783";
-		reg = <0>;
-		spi-cs-high;
-		spi-max-frequency = <1000000>;
-		interrupt-parent = <&gpio1>;
-		interrupts = <3 IRQ_TYPE_EDGE_RISING>;
-
-		fsl,mc13xxx-uses-adc;
-		fsl,mc13xxx-uses-rtc;
-
-		regulators {
-			sw1a {		/* QVCC */
-				regulator-min-microvolt = <1200000>;
-				regulator-max-microvolt = <1500000>;
-				regulator-always-on;
-				regulator-boot-on;
-			};
-
-			sw1b {		/* QVCC */
-				regulator-min-microvolt = <1200000>;
-				regulator-max-microvolt = <1500000>;
-				regulator-always-on;
-				regulator-boot-on;
-			};
-
-			sw2a {		/* 1.8V_DDR, NVCC2, NVCC21 and NVCC22 */
-				regulator-min-microvolt = <1800000>;
-				regulator-max-microvolt = <1800000>;
-				regulator-always-on;
-				regulator-boot-on;
-			};
-
-			sw2b {		/* NVCC10 */
-				regulator-min-microvolt = <1800000>;
-				regulator-max-microvolt = <1800000>;
-				regulator-always-on;
-				regulator-boot-on;
-			};
-
-			violo {		/* NVCC1 and NVCC7 */
-				regulator-min-microvolt = <1800000>;
-				regulator-max-microvolt = <1800000>;
-				regulator-always-on;
-				regulator-boot-on;
-			};
-
-			viohi {		/* VIOHI */
-				regulator-min-microvolt = <2775000>;
-				regulator-max-microvolt = <2775000>;
-				regulator-always-on;
-				regulator-boot-on;
-			};
-
-			vaudio {	/* VAUDIO */
-				regulator-min-microvolt = <2775000>;
-				regulator-max-microvolt = <2775000>;
-			};
-
-			vcam {		/* NVCC4 */
-				regulator-min-microvolt = <2800000>;
-				regulator-max-microvolt = <2800000>;
-			};
-
-			vgen {		/* NVCC5 / NVCC8 and NVCC6 / NVCC9 */
-				regulator-min-microvolt = <2775000>;
-				regulator-max-microvolt = <2775000>;
-				regulator-always-on;
-				regulator-boot-on;
-			};
-
-			vmmc2 {		/* NVCC3 */
-				regulator-min-microvolt = <1600000>;
-				regulator-max-microvolt = <3000000>;
-				regulator-always-on;
-				regulator-boot-on;
-			};
-		};
-	};
-};
-
-&uart1 {
-	uart-has-rtscts;
-	status = "okay";
-};
-
-/* Routed to the extension board */
-&uart2 {
-	uart-has-rtscts;
-	status = "okay";
-};
-
-/* Routed to the extension board */
-&uart3 {
-	uart-has-rtscts;
-	status = "okay";
-};
-
-&weim {
-	status = "okay";
-
-	flash@0,0 {
-		compatible = "cfi-flash";
-		reg = <0 0x0 0x200000>;
-		bank-width = <2>;
-		linux,mtd-name = "physmap-flash.0";
-		fsl,weim-cs-timing = <0x0000cf03 0xa0330d01 0x00220800>;
-	};
-
-	ethernet@4,0 {
-		compatible = "smsc,lan9117", "smsc,lan9115";
-		reg = <4 0x0 0x100>;
-		interrupt-parent = <&gpio1>;
-		interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
-		phy-mode = "mii";
-		reg-io-width = <2>;
-		smsc,irq-push-pull;
-		fsl,weim-cs-timing = <0x00008701 0x04000541 0x00010000>;
-	};
-};
diff --git a/arch/arm/boot/dts/nxp/imx/imx31.dtsi b/arch/arm/boot/dts/nxp/imx/imx31.dtsi
deleted file mode 100644
index c58f855ea851..000000000000
--- a/arch/arm/boot/dts/nxp/imx/imx31.dtsi
+++ /dev/null
@@ -1,371 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+
-//
-// Copyright 2016-2018 Vladimir Zapolskiy <vz@mleia.com>
-// Copyright 2012 Denis 'GNUtoo' Carikli <GNUtoo@no-log.org>
-
-/ {
-	#address-cells = <1>;
-	#size-cells = <1>;
-	/*
-	 * The decompressor and also some bootloaders rely on a
-	 * pre-existing /chosen node to be available to insert the
-	 * command line and merge other ATAGS info.
-	 */
-	chosen {};
-
-	aliases {
-		gpio0 = &gpio1;
-		gpio1 = &gpio2;
-		gpio2 = &gpio3;
-		i2c0 = &i2c1;
-		i2c1 = &i2c2;
-		i2c2 = &i2c3;
-		serial0 = &uart1;
-		serial1 = &uart2;
-		serial2 = &uart3;
-		serial3 = &uart4;
-		serial4 = &uart5;
-		spi0 = &spi1;
-		spi1 = &spi2;
-		spi2 = &spi3;
-	};
-
-	cpus {
-		#address-cells = <1>;
-		#size-cells = <0>;
-
-		cpu@0 {
-			compatible = "arm,arm1136jf-s";
-			device_type = "cpu";
-			reg = <0>;
-		};
-	};
-
-	avic: interrupt-controller@68000000 {
-		compatible = "fsl,imx31-avic", "fsl,avic";
-		interrupt-controller;
-		#interrupt-cells = <1>;
-		reg = <0x68000000 0x100000>;
-	};
-
-	soc: soc {
-		#address-cells = <1>;
-		#size-cells = <1>;
-		compatible = "simple-bus";
-		interrupt-parent = <&avic>;
-		ranges;
-
-		iram: sram@1fffc000 {
-			compatible = "mmio-sram";
-			reg = <0x1fffc000 0x4000>;
-			#address-cells = <1>;
-			#size-cells = <1>;
-			ranges = <0 0x1fffc000 0x4000>;
-		};
-
-		aips1: bus@43f00000 { /* AIPS1 */
-			compatible = "fsl,aips-bus", "simple-bus";
-			#address-cells = <1>;
-			#size-cells = <1>;
-			reg = <0x43f00000 0x100000>;
-			ranges;
-
-			i2c1: i2c@43f80000 {
-				compatible = "fsl,imx31-i2c", "fsl,imx21-i2c";
-				reg = <0x43f80000 0x4000>;
-				interrupts = <10>;
-				clocks = <&clks 33>;
-				#address-cells = <1>;
-				#size-cells = <0>;
-				status = "disabled";
-			};
-
-			i2c3: i2c@43f84000 {
-				compatible = "fsl,imx31-i2c", "fsl,imx21-i2c";
-				reg = <0x43f84000 0x4000>;
-				interrupts = <3>;
-				clocks = <&clks 35>;
-				#address-cells = <1>;
-				#size-cells = <0>;
-				status = "disabled";
-			};
-
-			ata: ata@43f8c000 {
-				compatible = "fsl,imx31-pata", "fsl,imx27-pata";
-				reg = <0x43f8c000 0x4000>;
-				interrupts = <15>;
-				clocks = <&clks 26>;
-				status = "disabled";
-			};
-
-			uart1: serial@43f90000 {
-				compatible = "fsl,imx31-uart", "fsl,imx21-uart";
-				reg = <0x43f90000 0x4000>;
-				interrupts = <45>;
-				clocks = <&clks 10>, <&clks 30>;
-				clock-names = "ipg", "per";
-				status = "disabled";
-			};
-
-			uart2: serial@43f94000 {
-				compatible = "fsl,imx31-uart", "fsl,imx21-uart";
-				reg = <0x43f94000 0x4000>;
-				interrupts = <32>;
-				clocks = <&clks 10>, <&clks 31>;
-				clock-names = "ipg", "per";
-				status = "disabled";
-			};
-
-			i2c2: i2c@43f98000 {
-				compatible = "fsl,imx31-i2c", "fsl,imx21-i2c";
-				reg = <0x43f98000 0x4000>;
-				interrupts = <4>;
-				clocks = <&clks 34>;
-				#address-cells = <1>;
-				#size-cells = <0>;
-				status = "disabled";
-			};
-
-			spi1: spi@43fa4000 {
-				compatible = "fsl,imx31-cspi";
-				reg = <0x43fa4000 0x4000>;
-				interrupts = <14>;
-				clocks = <&clks 10>, <&clks 53>;
-				clock-names = "ipg", "per";
-				dmas = <&sdma 8 8 0>, <&sdma 9 8 0>;
-				dma-names = "rx", "tx";
-				#address-cells = <1>;
-				#size-cells = <0>;
-				status = "disabled";
-			};
-
-			kpp: kpp@43fa8000 {
-				compatible = "fsl,imx31-kpp", "fsl,imx21-kpp";
-				reg = <0x43fa8000 0x4000>;
-				interrupts = <24>;
-				clocks = <&clks 46>;
-				status = "disabled";
-			};
-
-			uart4: serial@43fb0000 {
-				compatible = "fsl,imx31-uart", "fsl,imx21-uart";
-				reg = <0x43fb0000 0x4000>;
-				clocks = <&clks 10>, <&clks 49>;
-				clock-names = "ipg", "per";
-				interrupts = <46>;
-				status = "disabled";
-			};
-
-			uart5: serial@43fb4000 {
-				compatible = "fsl,imx31-uart", "fsl,imx21-uart";
-				reg = <0x43fb4000 0x4000>;
-				interrupts = <47>;
-				clocks = <&clks 10>, <&clks 50>;
-				clock-names = "ipg", "per";
-				status = "disabled";
-			};
-		};
-
-		spba-bus@50000000 {
-			compatible = "fsl,spba-bus", "simple-bus";
-			#address-cells = <1>;
-			#size-cells = <1>;
-			reg = <0x50000000 0x100000>;
-			ranges;
-
-			sdhci1: mmc@50004000 {
-				compatible = "fsl,imx31-mmc";
-				reg = <0x50004000 0x4000>;
-				interrupts = <9>;
-				clocks = <&clks 10>, <&clks 20>;
-				clock-names = "ipg", "per";
-				dmas = <&sdma 20 3 0>;
-				dma-names = "rx-tx";
-				status = "disabled";
-			};
-
-			sdhci2: mmc@50008000 {
-				compatible = "fsl,imx31-mmc";
-				reg = <0x50008000 0x4000>;
-				interrupts = <8>;
-				clocks = <&clks 10>, <&clks 21>;
-				clock-names = "ipg", "per";
-				dmas = <&sdma 21 3 0>;
-				dma-names = "rx-tx";
-				status = "disabled";
-			};
-
-			uart3: serial@5000c000 {
-				compatible = "fsl,imx31-uart", "fsl,imx21-uart";
-				reg = <0x5000c000 0x4000>;
-				interrupts = <18>;
-				clocks = <&clks 10>, <&clks 48>;
-				clock-names = "ipg", "per";
-				status = "disabled";
-			};
-
-			spi2: spi@50010000 {
-				compatible = "fsl,imx31-cspi";
-				reg = <0x50010000 0x4000>;
-				interrupts = <13>;
-				clocks = <&clks 10>, <&clks 54>;
-				clock-names = "ipg", "per";
-				dmas = <&sdma 6 8 0>, <&sdma 7 8 0>;
-				dma-names = "rx", "tx";
-				#address-cells = <1>;
-				#size-cells = <0>;
-				status = "disabled";
-			};
-
-			iim: efuse@5001c000 {
-				compatible = "fsl,imx31-iim";
-				reg = <0x5001c000 0x1000>;
-				interrupts = <19>;
-				clocks = <&clks 25>;
-			};
-		};
-
-		bus@53f00000 { /* AIPS2 */
-			compatible = "fsl,aips-bus", "simple-bus";
-			#address-cells = <1>;
-			#size-cells = <1>;
-			reg = <0x53f00000 0x100000>;
-			ranges;
-
-			clks: ccm@53f80000 {
-				compatible = "fsl,imx31-ccm";
-				reg = <0x53f80000 0x4000>;
-				interrupts = <31>, <53>;
-				#clock-cells = <1>;
-			};
-
-			spi3: spi@53f84000 {
-				compatible = "fsl,imx31-cspi";
-				reg = <0x53f84000 0x4000>;
-				interrupts = <17>;
-				clocks = <&clks 10>, <&clks 28>;
-				clock-names = "ipg", "per";
-				dmas = <&sdma 10 8 0>, <&sdma 11 8 0>;
-				dma-names = "rx", "tx";
-				#address-cells = <1>;
-				#size-cells = <0>;
-				status = "disabled";
-			};
-
-			gpt: timer@53f90000 {
-				compatible = "fsl,imx31-gpt";
-				reg = <0x53f90000 0x4000>;
-				interrupts = <29>;
-				clocks = <&clks 10>, <&clks 22>;
-				clock-names = "ipg", "per";
-			};
-
-			gpio3: gpio@53fa4000 {
-				compatible = "fsl,imx31-gpio";
-				reg = <0x53fa4000 0x4000>;
-				interrupts = <56>;
-				gpio-controller;
-				#gpio-cells = <2>;
-				interrupt-controller;
-				#interrupt-cells = <2>;
-			};
-
-			rng@53fb0000 {
-				compatible = "fsl,imx31-rnga";
-				reg = <0x53fb0000 0x4000>;
-				interrupts = <22>;
-				clocks = <&clks 29>;
-			};
-
-			gpio1: gpio@53fcc000 {
-				compatible = "fsl,imx31-gpio";
-				reg = <0x53fcc000 0x4000>;
-				interrupts = <52>;
-				gpio-controller;
-				#gpio-cells = <2>;
-				interrupt-controller;
-				#interrupt-cells = <2>;
-			};
-
-			gpio2: gpio@53fd0000 {
-				compatible = "fsl,imx31-gpio";
-				reg = <0x53fd0000 0x4000>;
-				interrupts = <51>;
-				gpio-controller;
-				#gpio-cells = <2>;
-				interrupt-controller;
-				#interrupt-cells = <2>;
-			};
-
-			sdma: dma-controller@53fd4000 {
-				compatible = "fsl,imx31-sdma";
-				reg = <0x53fd4000 0x4000>;
-				interrupts = <34>;
-				clocks = <&clks 10>, <&clks 27>;
-				clock-names = "ipg", "ahb";
-				#dma-cells = <3>;
-				fsl,sdma-ram-script-name = "imx/sdma/sdma-imx31.bin";
-			};
-
-			rtc: rtc@53fd8000 {
-				compatible = "fsl,imx31-rtc", "fsl,imx21-rtc";
-				reg = <0x53fd8000 0x4000>;
-				interrupts = <25>;
-				clocks = <&clks 2>, <&clks 40>;
-				clock-names = "ref", "ipg";
-			};
-
-			wdog: watchdog@53fdc000 {
-				compatible = "fsl,imx31-wdt", "fsl,imx21-wdt";
-				reg = <0x53fdc000 0x4000>;
-				clocks = <&clks 41>;
-				interrupts = <55>;
-			};
-
-			pwm: pwm@53fe0000 {
-				compatible = "fsl,imx31-pwm", "fsl,imx27-pwm";
-				reg = <0x53fe0000 0x4000>;
-				interrupts = <26>;
-				clocks = <&clks 10>, <&clks 42>;
-				clock-names = "ipg", "per";
-				#pwm-cells = <3>;
-				status = "disabled";
-			};
-		};
-
-		emi-bus@b8000000 { /* External Memory Interface */
-			compatible = "simple-bus";
-			reg = <0xb8000000 0x5000>;
-			ranges;
-			#address-cells = <1>;
-			#size-cells = <1>;
-
-			nfc: nand-controller@b8000000 {
-				compatible = "fsl,imx31-nand", "fsl,imx27-nand";
-				reg = <0xb8000000 0x1000>;
-				interrupts = <33>;
-				clocks = <&clks 9>;
-				dmas = <&sdma 30 17 0>;
-				dma-names = "rx-tx";
-				#address-cells = <1>;
-				#size-cells = <1>;
-				status = "disabled";
-			};
-
-			weim: memory-controller@b8002000 {
-				compatible = "fsl,imx31-weim", "fsl,imx27-weim";
-				reg = <0xb8002000 0x1000>;
-				clocks = <&clks 56>;
-				#address-cells = <2>;
-				#size-cells = <1>;
-				ranges = <0 0 0xa0000000 0x08000000
-					  1 0 0xa8000000 0x08000000
-					  2 0 0xb0000000 0x02000000
-					  3 0 0xb2000000 0x02000000
-					  4 0 0xb4000000 0x02000000
-					  5 0 0xb6000000 0x02000000>;
-				status = "disabled";
-			};
-		};
-	};
-};
diff --git a/arch/arm/configs/imx_v6_v7_defconfig b/arch/arm/configs/imx_v6_v7_defconfig
index ed588add8d31..6ac42c06c1e9 100644
--- a/arch/arm/configs/imx_v6_v7_defconfig
+++ b/arch/arm/configs/imx_v6_v7_defconfig
@@ -15,7 +15,6 @@ CONFIG_PERF_EVENTS=y
 CONFIG_KEXEC=y
 CONFIG_ARCH_MULTI_V6=y
 CONFIG_ARCH_MXC=y
-CONFIG_SOC_IMX31=y
 CONFIG_SOC_IMX35=y
 CONFIG_SOC_IMX50=y
 CONFIG_SOC_IMX51=y
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index 3f0521c652cb..77704c6a70ba 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -39,17 +39,6 @@ if ARCH_MULTI_V6
 
 comment "ARM1136 platforms"
 
-config SOC_IMX31
-	bool "i.MX31 support (DEPRECATED)"
-	depends on !SMP
-	select CPU_ARM1136R0
-	select MXC_AVIC
-	help
-	  This enables support for Freescale i.MX31 processor
-
-	  This SoC is scheduled for removal in early 2027,
-	  since it uses the ARM1136r0 CPU revision.
-
 config SOC_IMX35
 	bool "i.MX35 support"
 	select CPU_ARM1136R1
diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile
index 5c650bf40e02..fa0144f0882d 100644
--- a/arch/arm/mach-imx/Makefile
+++ b/arch/arm/mach-imx/Makefile
@@ -5,7 +5,6 @@ obj-$(CONFIG_SOC_IMX25) += cpu-imx25.o mach-imx25.o pm-imx25.o
 
 obj-$(CONFIG_SOC_IMX27) += cpu-imx27.o pm-imx27.o mach-imx27.o
 
-obj-$(CONFIG_SOC_IMX31) += mm-imx3.o cpu-imx31.o mach-imx31.o
 obj-$(CONFIG_SOC_IMX35) += mm-imx3.o cpu-imx35.o mach-imx35.o
 
 imx5-pm-$(CONFIG_PM) += pm-imx5.o
diff --git a/arch/arm/mach-imx/cpu-imx31.c b/arch/arm/mach-imx/cpu-imx31.c
deleted file mode 100644
index e81ef9e36a1f..000000000000
--- a/arch/arm/mach-imx/cpu-imx31.c
+++ /dev/null
@@ -1,72 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-/*
- * MX31 CPU type detection
- *
- * Copyright (c) 2009 Daniel Mack <daniel@caiaq.de>
- */
-
-#include <linux/module.h>
-#include <linux/of_address.h>
-#include <linux/io.h>
-
-#include "common.h"
-#include "hardware.h"
-#include "iim.h"
-
-static int mx31_cpu_rev = -1;
-
-static struct {
-	u8 srev;
-	const char *name;
-	unsigned int rev;
-} mx31_cpu_type[] = {
-	{ .srev = 0x00, .name = "i.MX31(L)", .rev = IMX_CHIP_REVISION_1_0 },
-	{ .srev = 0x10, .name = "i.MX31",    .rev = IMX_CHIP_REVISION_1_1 },
-	{ .srev = 0x11, .name = "i.MX31L",   .rev = IMX_CHIP_REVISION_1_1 },
-	{ .srev = 0x12, .name = "i.MX31",    .rev = IMX_CHIP_REVISION_1_1 },
-	{ .srev = 0x13, .name = "i.MX31L",   .rev = IMX_CHIP_REVISION_1_1 },
-	{ .srev = 0x14, .name = "i.MX31",    .rev = IMX_CHIP_REVISION_1_2 },
-	{ .srev = 0x15, .name = "i.MX31L",   .rev = IMX_CHIP_REVISION_1_2 },
-	{ .srev = 0x28, .name = "i.MX31",    .rev = IMX_CHIP_REVISION_2_0 },
-	{ .srev = 0x29, .name = "i.MX31L",   .rev = IMX_CHIP_REVISION_2_0 },
-};
-
-static int mx31_read_cpu_rev(void)
-{
-	void __iomem *iim_base;
-	struct device_node *np;
-	u32 i, srev;
-	int rev = IMX_CHIP_REVISION_UNKNOWN;
-
-	np = of_find_compatible_node(NULL, NULL, "fsl,imx31-iim");
-	iim_base = of_iomap(np, 0);
-	of_node_put(np);
-	BUG_ON(!iim_base);
-
-	/* read SREV register from IIM module */
-	srev = imx_readl(iim_base + MXC_IIMSREV);
-	srev &= 0xff;
-
-	for (i = 0; i < ARRAY_SIZE(mx31_cpu_type); i++)
-		if (srev == mx31_cpu_type[i].srev) {
-			rev = mx31_cpu_type[i].rev;
-			imx_print_silicon_rev(mx31_cpu_type[i].name,
-						mx31_cpu_type[i].rev);
-			goto out;
-		}
-
-	imx_print_silicon_rev("i.MX31", IMX_CHIP_REVISION_UNKNOWN);
-
-out:
-	iounmap(iim_base);
-	return rev;
-}
-
-int mx31_revision(void)
-{
-	if (mx31_cpu_rev == -1)
-		mx31_cpu_rev = mx31_read_cpu_rev();
-
-	return mx31_cpu_rev;
-}
-EXPORT_SYMBOL(mx31_revision);
diff --git a/arch/arm/mach-imx/mach-imx31.c b/arch/arm/mach-imx/mach-imx31.c
deleted file mode 100644
index e9a1092b6093..000000000000
--- a/arch/arm/mach-imx/mach-imx31.c
+++ /dev/null
@@ -1,18 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-/*
- * Copyright 2012 Sascha Hauer, Pengutronix
- */
-
-#include <asm/mach/arch.h>
-#include "common.h"
-
-static const char * const imx31_dt_board_compat[] __initconst = {
-	"fsl,imx31",
-	NULL
-};
-
-DT_MACHINE_START(IMX31_DT, "Freescale i.MX31 (Device Tree Support)")
-	.map_io		= mx31_map_io,
-	.init_early	= imx31_init_early,
-	.dt_compat	= imx31_dt_board_compat,
-MACHINE_END
diff --git a/arch/arm/mach-imx/mm-imx3.c b/arch/arm/mach-imx/mm-imx3.c
index 9b0b014d7fe2..42e73518004a 100644
--- a/arch/arm/mach-imx/mm-imx3.c
+++ b/arch/arm/mach-imx/mm-imx3.c
@@ -69,49 +69,6 @@ static void __iomem *imx3_ioremap_caller(phys_addr_t phys_addr, size_t size,
 	return __arm_ioremap_caller(phys_addr, size, mtype, caller);
 }
 
-#ifdef CONFIG_SOC_IMX31
-static struct map_desc mx31_io_desc[] __initdata = {
-	imx_map_entry(MX31, X_MEMC, MT_DEVICE),
-	imx_map_entry(MX31, AVIC, MT_DEVICE_NONSHARED),
-	imx_map_entry(MX31, AIPS1, MT_DEVICE_NONSHARED),
-	imx_map_entry(MX31, AIPS2, MT_DEVICE_NONSHARED),
-	imx_map_entry(MX31, SPBA0, MT_DEVICE_NONSHARED),
-};
-
-/*
- * This function initializes the memory map. It is called during the
- * system startup to create static physical to virtual memory mappings
- * for the IO modules.
- */
-void __init mx31_map_io(void)
-{
-	iotable_init(mx31_io_desc, ARRAY_SIZE(mx31_io_desc));
-}
-
-static void imx31_idle(void)
-{
-	int reg = imx_readl(mx3_ccm_base + MXC_CCM_CCMR);
-	reg &= ~MXC_CCM_CCMR_LPM_MASK;
-	imx_writel(reg, mx3_ccm_base + MXC_CCM_CCMR);
-
-	imx3_idle();
-}
-
-void __init imx31_init_early(void)
-{
-	struct device_node *np;
-
-	mxc_set_cpu_type(MXC_CPU_MX31);
-	arch_ioremap_caller = imx3_ioremap_caller;
-	arm_pm_idle = imx31_idle;
-	np = of_find_compatible_node(NULL, NULL, "fsl,imx31-ccm");
-	mx3_ccm_base = of_iomap(np, 0);
-	of_node_put(np);
-	BUG_ON(!mx3_ccm_base);
-}
-#endif /* ifdef CONFIG_SOC_IMX31 */
-
-#ifdef CONFIG_SOC_IMX35
 static struct map_desc mx35_io_desc[] __initdata = {
 	imx_map_entry(MX35, X_MEMC, MT_DEVICE),
 	imx_map_entry(MX35, AVIC, MT_DEVICE_NONSHARED),
@@ -147,4 +104,3 @@ void __init imx35_init_early(void)
 	of_node_put(np);
 	BUG_ON(!mx3_ccm_base);
 }
-#endif /* ifdef CONFIG_SOC_IMX35 */
-- 
2.53.0



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

* [PATCH 09/13] ARM: lpc18xx: remove entire platform
  2026-09-08 15:27 [PATCH 00/13] ARM: deprecated platform removal Arnd Bergmann
  2026-09-08 15:27 ` [PATCH 02/13] ARM: remove footbridge Arnd Bergmann
  2026-09-08 15:27 ` [PATCH 07/13] ARM: imx: remove i.MX31 SoC support Arnd Bergmann
@ 2026-09-08 15:27 ` Arnd Bergmann
  2026-09-08 17:36   ` Linus Walleij
  2026-09-09  8:28   ` Vladimir Zapolskiy
  2026-09-08 15:28 ` [PATCH 11/13] ARM: versatile: remove mps2 support Arnd Bergmann
                   ` (8 subsequent siblings)
  11 siblings, 2 replies; 49+ messages in thread
From: Arnd Bergmann @ 2026-09-08 15:27 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Alexandre Belloni, Linus Walleij,
	Russell King
  Cc: Drew Fustini, Arnd Bergmann, Rob Herring, Conor Dooley,
	Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi, Frank Li,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Vladimir Zapolskiy, Stefan Agner, Maxime Coquelin,
	Alexandre Torgue, Aaro Koskinen, Andreas Kemnade, Kevin Hilman,
	Roger Quadros, Tony Lindgren, Nicolas Ferre, Claudiu Beznea,
	Andrew Lunn, Sebastian Hesselbarth, Gregory Clement,
	Robert Jarzmik, Kristoffer Ericson, Ethan Nelson-Moore,
	Geert Uytterhoeven, Alexander Sverdlin, Shawn Guo,
	Karl Mehltretter, David Hildenbrand (Arm), Nicolas Pitre,
	linux-doc, linux-kernel, linux-arm-kernel, devicetree, imx,
	linux-stm32, linux-omap, Krzysztof Kozlowski

From: Arnd Bergmann <arnd@arndb.de>

The NXP LPC18xx and LPC43xx microcontrollers are the more modern
version of the classic LPC32xx line, but they lack memory management
units.

These microcontrollers all remain in production as of 2026, but
there are no known users running Linux on them.

The platform was marked deprecated in the 7.3-LTS release, which
will remain supported for a few more years.

Remove support for both LPC18xx and LPC43xx.

Cc: Frank Li <Frank.Li@nxp.com>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
Cc: Conor Dooley <conor+dt@kernel.org>
Cc: Vladimir Zapolskiy <vz@mleia.com>
Cc: imx@lists.linux.dev
Cc: devicetree@vger.kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 MAINTAINERS                                   |  12 -
 arch/arm/Kconfig                              |  14 -
 arch/arm/Kconfig.debug                        |   9 -
 arch/arm/Makefile                             |   1 -
 arch/arm/boot/dts/nxp/lpc/Makefile            |   5 -
 arch/arm/boot/dts/nxp/lpc/lpc18xx.dtsi        | 543 ---------------
 arch/arm/boot/dts/nxp/lpc/lpc4337-ciaa.dts    | 221 -------
 .../boot/dts/nxp/lpc/lpc4350-hitex-eval.dts   | 485 --------------
 arch/arm/boot/dts/nxp/lpc/lpc4350.dtsi        |  48 --
 .../dts/nxp/lpc/lpc4357-ea4357-devkit.dts     | 624 ------------------
 .../boot/dts/nxp/lpc/lpc4357-myd-lpc4357.dts  | 621 -----------------
 arch/arm/boot/dts/nxp/lpc/lpc4357.dtsi        |  52 --
 arch/arm/configs/lpc18xx_defconfig            | 158 -----
 arch/arm/mach-lpc18xx/Makefile                |   2 -
 arch/arm/mach-lpc18xx/board-dt.c              |  19 -
 15 files changed, 2814 deletions(-)
 delete mode 100644 arch/arm/boot/dts/nxp/lpc/lpc18xx.dtsi
 delete mode 100644 arch/arm/boot/dts/nxp/lpc/lpc4337-ciaa.dts
 delete mode 100644 arch/arm/boot/dts/nxp/lpc/lpc4350-hitex-eval.dts
 delete mode 100644 arch/arm/boot/dts/nxp/lpc/lpc4350.dtsi
 delete mode 100644 arch/arm/boot/dts/nxp/lpc/lpc4357-ea4357-devkit.dts
 delete mode 100644 arch/arm/boot/dts/nxp/lpc/lpc4357-myd-lpc4357.dts
 delete mode 100644 arch/arm/boot/dts/nxp/lpc/lpc4357.dtsi
 delete mode 100644 arch/arm/configs/lpc18xx_defconfig
 delete mode 100644 arch/arm/mach-lpc18xx/Makefile
 delete mode 100644 arch/arm/mach-lpc18xx/board-dt.c

diff --git a/MAINTAINERS b/MAINTAINERS
index 0d10f778800d..292327185a08 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3032,18 +3032,6 @@ L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 S:	Maintained
 F:	arch/arm64/boot/dts/lg/
 
-ARM/LPC18XX ARCHITECTURE
-M:	Vladimir Zapolskiy <vz@mleia.com>
-L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
-S:	Maintained
-F:	Documentation/devicetree/bindings/i2c/nxp,lpc1788-i2c.yaml
-F:	arch/arm/boot/dts/nxp/lpc/lpc43*
-F:	drivers/i2c/busses/i2c-lpc2k.c
-F:	drivers/memory/pl172.c
-F:	drivers/mtd/spi-nor/controllers/nxp-spifi.c
-F:	drivers/rtc/rtc-lpc24xx.c
-N:	lpc18xx
-
 ARM/LPC32XX SOC SUPPORT
 M:	Vladimir Zapolskiy <vz@mleia.com>
 M:	Piotr Wojtaszczyk <piotr.wojtaszczyk@timesys.com>
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index da29afce309f..13b38be3353a 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -443,20 +443,6 @@ source "arch/arm/mach-zte/Kconfig"
 
 source "arch/arm/mach-zynq/Kconfig"
 
-# ARMv7-M architecture
-config ARCH_LPC18XX
-	bool "NXP LPC18xx/LPC43xx (DEPRECATED)"
-	depends on ARM_SINGLE_ARMV7M
-	select ARCH_HAS_RESET_CONTROLLER
-	select ARM_AMBA
-	select CLKSRC_LPC32XX
-	select PINCTRL
-	help
-	  Support for NXP's LPC18xx Cortex-M3 and LPC43xx Cortex-M4
-	  high performance microcontrollers.
-
-	  This platform is scheduled for removal in early 2027
-
 config ARCH_MPS2
 	bool "ARM MPS2 platform (DEPRECATED)"
 	depends on ARM_SINGLE_ARMV7M
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
index 52387fe2a057..e4910cf865da 100644
--- a/arch/arm/Kconfig.debug
+++ b/arch/arm/Kconfig.debug
@@ -511,14 +511,6 @@ choice
 		  Say Y here if you want the debug print routines to direct
 		  their output to UART1 serial port on KEYSTONE2 devices.
 
-	config DEBUG_LPC18XX_UART0
-		bool "Kernel low-level debugging via LPC18xx/43xx UART0"
-		depends on ARCH_LPC18XX
-		select DEBUG_UART_8250
-		help
-		  Say Y here if you want kernel low-level debugging support
-		  on NXP LPC18xx/43xx UART0.
-
 	config DEBUG_LPC32XX
 		bool "Kernel low-level debugging messages via NXP LPC32xx UART"
 		depends on ARCH_LPC32XX
@@ -1551,7 +1543,6 @@ config DEBUG_UART_PHYS
 	default 0x40011000 if STM32F4_DEBUG_UART || STM32F7_DEBUG_UART || \
 				STM32H7_DEBUG_UART
 	default 0x40028000 if DEBUG_AT91_SAMV7_USART1
-	default 0x40081000 if DEBUG_LPC18XX_UART0
 	default 0x40090000 if DEBUG_LPC32XX
 	default 0x40100000 if DEBUG_PXA_UART1
 	default 0x42000000 if DEBUG_GEMINI
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 5421a3ec3825..d3479e374c6f 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -185,7 +185,6 @@ machine-$(CONFIG_ARCH_HIGHBANK)		+= highbank
 machine-$(CONFIG_ARCH_HISI)		+= hisi
 machine-$(CONFIG_ARCH_IXP4XX)		+= ixp4xx
 machine-$(CONFIG_ARCH_KEYSTONE)		+= keystone
-machine-$(CONFIG_ARCH_LPC18XX)		+= lpc18xx
 machine-$(CONFIG_ARCH_LPC32XX)		+= lpc32xx
 machine-$(CONFIG_ARCH_MESON)		+= meson
 machine-$(CONFIG_ARCH_MMP)		+= mmp
diff --git a/arch/arm/boot/dts/nxp/lpc/Makefile b/arch/arm/boot/dts/nxp/lpc/Makefile
index 56b9a0ebb917..3f82628f3ff9 100644
--- a/arch/arm/boot/dts/nxp/lpc/Makefile
+++ b/arch/arm/boot/dts/nxp/lpc/Makefile
@@ -1,9 +1,4 @@
 # SPDX-License-Identifier: GPL-2.0
-dtb-$(CONFIG_ARCH_LPC18XX) += \
-	lpc4337-ciaa.dtb \
-	lpc4350-hitex-eval.dtb \
-	lpc4357-ea4357-devkit.dtb \
-	lpc4357-myd-lpc4357.dtb
 dtb-$(CONFIG_ARCH_LPC32XX) += \
 	lpc3250-ea3250.dtb \
 	lpc3250-phy3250.dtb
diff --git a/arch/arm/boot/dts/nxp/lpc/lpc18xx.dtsi b/arch/arm/boot/dts/nxp/lpc/lpc18xx.dtsi
deleted file mode 100644
index 152e98cf0c4e..000000000000
--- a/arch/arm/boot/dts/nxp/lpc/lpc18xx.dtsi
+++ /dev/null
@@ -1,543 +0,0 @@
-/*
- * Common base for NXP LPC18xx and LPC43xx devices.
- *
- * Copyright 2015 Joachim Eastwood <manabian@gmail.com>
- *
- * This code is released using a dual license strategy: BSD/GPL
- * You can choose the licence that better fits your requirements.
- *
- * Released under the terms of 3-clause BSD License
- * Released under the terms of GNU General Public License Version 2.0
- *
- */
-
-#include "../../armv7-m.dtsi"
-
-#include "dt-bindings/clock/lpc18xx-cgu.h"
-#include "dt-bindings/clock/lpc18xx-ccu.h"
-
-#define LPC_PIN(port, pin)	(0x##port * 32 + pin)
-#define LPC_GPIO(port, pin)	(port * 32 + pin)
-
-/ {
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	cpus {
-		#address-cells = <1>;
-		#size-cells = <0>;
-
-		cpu@0 {
-			compatible = "arm,cortex-m3";
-			device_type = "cpu";
-			reg = <0x0>;
-			clocks = <&ccu1 CLK_CPU_CORE>;
-		};
-	};
-
-	clocks {
-		xtal: xtal {
-			compatible = "fixed-clock";
-			#clock-cells = <0>;
-			clock-frequency = <12000000>;
-		};
-
-		xtal32: xtal32 {
-			compatible = "fixed-clock";
-			#clock-cells = <0>;
-			clock-frequency = <32768>;
-		};
-
-		enet_rx_clk: enet_rx_clk {
-			compatible = "fixed-clock";
-			#clock-cells = <0>;
-			clock-frequency = <0>;
-			clock-output-names = "enet_rx_clk";
-		};
-
-		enet_tx_clk: enet_tx_clk {
-			compatible = "fixed-clock";
-			#clock-cells = <0>;
-			clock-frequency = <0>;
-			clock-output-names = "enet_tx_clk";
-		};
-
-		gp_clkin: gp_clkin {
-			compatible = "fixed-clock";
-			#clock-cells = <0>;
-			clock-frequency = <0>;
-			clock-output-names = "gp_clkin";
-		};
-	};
-
-	soc {
-		sct_pwm: pwm@40000000 {
-			compatible = "nxp,lpc1850-sct-pwm";
-			reg = <0x40000000 0x1000>;
-			clocks = <&ccu1 CLK_CPU_SCT>;
-			clock-names = "pwm";
-			resets = <&rgu 37>;
-			#pwm-cells = <3>;
-			status = "disabled";
-		};
-
-		dmac: dma-controller@40002000 {
-			compatible = "arm,pl080", "arm,primecell";
-			arm,primecell-periphid = <0x00041080>;
-			reg = <0x40002000 0x1000>;
-			interrupts = <2>;
-			clocks = <&ccu1 CLK_CPU_DMA>;
-			clock-names = "apb_pclk";
-			resets = <&rgu 19>;
-			#dma-cells = <2>;
-			dma-channels = <8>;
-			dma-requests = <16>;
-			lli-bus-interface-ahb1;
-			lli-bus-interface-ahb2;
-			mem-bus-interface-ahb1;
-			mem-bus-interface-ahb2;
-			memcpy-burst-size = <256>;
-			memcpy-bus-width = <32>;
-		};
-
-		spifi: spi@40003000 {
-			compatible = "nxp,lpc1773-spifi";
-			reg = <0x40003000 0x1000>, <0x14000000 0x4000000>;
-			reg-names = "spifi", "flash";
-			interrupts = <30>;
-			clocks = <&ccu1 CLK_SPIFI>, <&ccu1 CLK_CPU_SPIFI>;
-			clock-names = "spifi", "reg";
-			#address-cells = <1>;
-			#size-cells = <0>;
-			resets = <&rgu 53>;
-			status = "disabled";
-		};
-
-		mmcsd: mmc@40004000 {
-			compatible = "snps,dw-mshc";
-			reg = <0x40004000 0x1000>;
-			interrupts = <6>;
-			clocks = <&ccu1 CLK_CPU_SDIO>, <&ccu2 CLK_SDIO>;
-			clock-names = "biu", "ciu";
-			resets = <&rgu 20>;
-			status = "disabled";
-		};
-
-		usb0: usb@40006100 {
-			compatible = "nxp,lpc1850-ehci", "generic-ehci";
-			reg = <0x40006100 0x100>;
-			interrupts = <8>;
-			clocks = <&ccu1 CLK_CPU_USB0>;
-			resets = <&rgu 17>;
-			phys = <&usb0_otg_phy>;
-			phy-names = "usb";
-			has-transaction-translator;
-			status = "disabled";
-		};
-
-		usb1: usb@40007100 {
-			compatible = "nxp,lpc1850-ehci", "generic-ehci";
-			reg = <0x40007100 0x100>;
-			interrupts = <9>;
-			clocks = <&ccu1 CLK_CPU_USB1>;
-			resets = <&rgu 18>;
-			status = "disabled";
-		};
-
-		emc: memory-controller@40005000 {
-			compatible = "arm,pl172", "arm,primecell";
-			reg = <0x40005000 0x1000>;
-			clocks = <&ccu1 CLK_CPU_EMCDIV>, <&ccu1 CLK_CPU_EMC>;
-			clock-names = "mpmcclk", "apb_pclk";
-			resets = <&rgu 21>;
-			#address-cells = <2>;
-			#size-cells = <1>;
-			ranges = <0 0 0x1c000000 0x1000000
-				  1 0 0x1d000000 0x1000000
-				  2 0 0x1e000000 0x1000000
-				  3 0 0x1f000000 0x1000000>;
-			status = "disabled";
-		};
-
-		lcdc: lcd-controller@40008000 {
-			compatible = "arm,pl111", "arm,primecell";
-			reg = <0x40008000 0x1000>;
-			interrupts = <7>;
-			interrupt-names = "combined";
-			clocks = <&cgu BASE_LCD_CLK>, <&ccu1 CLK_CPU_LCD>;
-			clock-names = "clcdclk", "apb_pclk";
-			resets = <&rgu 16>;
-			status = "disabled";
-		};
-
-		eeprom: eeprom@4000e000 {
-			compatible = "nxp,lpc1857-eeprom";
-			reg = <0x4000e000 0x1000>, <0x20040000 0x4000>;
-			reg-names = "reg", "mem";
-			clocks = <&ccu1 CLK_CPU_EEPROM>;
-			clock-names = "eeprom";
-			resets = <&rgu 27>;
-			interrupts = <4>;
-			status = "disabled";
-		};
-
-		mac: ethernet@40010000 {
-			compatible = "nxp,lpc1850-dwmac", "snps,dwmac-3.611", "snps,dwmac";
-			reg = <0x40010000 0x2000>;
-			interrupts = <5>;
-			interrupt-names = "macirq";
-			clocks = <&ccu1 CLK_CPU_ETHERNET>;
-			clock-names = "stmmaceth";
-			resets = <&rgu 22>;
-			reset-names = "stmmaceth";
-			rx-fifo-depth = <256>;
-			tx-fifo-depth = <256>;
-			snps,pbl = <4>; /* 32 (8x mode) */
-			snps,force_thresh_dma_mode;
-			status = "disabled";
-		};
-
-		creg: syscon@40043000 {
-			compatible = "nxp,lpc1850-creg", "syscon", "simple-mfd";
-			reg = <0x40043000 0x1000>;
-			clocks = <&ccu1 CLK_CPU_CREG>;
-			resets = <&rgu 5>;
-
-			creg_clk: clock-controller {
-				compatible = "nxp,lpc1850-creg-clk";
-				clocks = <&xtal32>;
-				#clock-cells = <1>;
-			};
-
-			usb0_otg_phy: phy {
-				compatible = "nxp,lpc1850-usb-otg-phy";
-				clocks = <&ccu1 CLK_USB0>;
-				#phy-cells = <0>;
-			};
-
-			dmamux: dma-mux {
-				compatible = "nxp,lpc1850-dmamux";
-				#dma-cells = <3>;
-				dma-requests = <64>;
-				dma-masters = <&dmac>;
-			};
-		};
-
-		rtc: rtc@40046000 {
-			compatible = "nxp,lpc1850-rtc", "nxp,lpc1788-rtc";
-			reg = <0x40046000 0x1000>;
-			interrupts = <47>;
-			clocks = <&creg_clk 0>, <&ccu1 CLK_CPU_BUS>;
-			clock-names = "rtc", "reg";
-		};
-
-		cgu: clock-controller@40050000 {
-			compatible = "nxp,lpc1850-cgu";
-			reg = <0x40050000 0x1000>;
-			#clock-cells = <1>;
-			clocks = <&xtal>, <&creg_clk 1>, <&enet_rx_clk>, <&enet_tx_clk>, <&gp_clkin>;
-		};
-
-		ccu1: clock-controller@40051000 {
-			compatible = "nxp,lpc1850-ccu";
-			reg = <0x40051000 0x1000>;
-			#clock-cells = <1>;
-			clocks = <&cgu BASE_APB3_CLK>,   <&cgu BASE_APB1_CLK>,
-				 <&cgu BASE_SPIFI_CLK>,  <&cgu BASE_CPU_CLK>,
-				 <&cgu BASE_PERIPH_CLK>, <&cgu BASE_USB0_CLK>,
-				 <&cgu BASE_USB1_CLK>,   <&cgu BASE_SPI_CLK>;
-			clock-names = "base_apb3_clk",   "base_apb1_clk",
-				      "base_spifi_clk",  "base_cpu_clk",
-				      "base_periph_clk", "base_usb0_clk",
-				      "base_usb1_clk",   "base_spi_clk";
-		};
-
-		ccu2: clock-controller@40052000 {
-			compatible = "nxp,lpc1850-ccu";
-			reg = <0x40052000 0x1000>;
-			#clock-cells = <1>;
-			clocks = <&cgu BASE_AUDIO_CLK>, <&cgu BASE_UART3_CLK>,
-				 <&cgu BASE_UART2_CLK>, <&cgu BASE_UART1_CLK>,
-				 <&cgu BASE_UART0_CLK>, <&cgu BASE_SSP1_CLK>,
-				 <&cgu BASE_SSP0_CLK>,  <&cgu BASE_SDIO_CLK>;
-			clock-names = "base_audio_clk", "base_uart3_clk",
-				      "base_uart2_clk", "base_uart1_clk",
-				      "base_uart0_clk", "base_ssp1_clk",
-				      "base_ssp0_clk",  "base_sdio_clk";
-		};
-
-		rgu: reset-controller@40053000 {
-			compatible = "nxp,lpc1850-rgu";
-			reg = <0x40053000 0x1000>;
-			clocks = <&cgu BASE_SAFE_CLK>, <&ccu1 CLK_CPU_BUS>;
-			clock-names = "delay", "reg";
-			#reset-cells = <1>;
-		};
-
-		watchdog@40080000 {
-			compatible = "nxp,lpc1850-wwdt";
-			reg = <0x40080000 0x24>;
-			interrupts = <49>;
-			clocks = <&cgu BASE_SAFE_CLK>, <&ccu1 CLK_CPU_WWDT>;
-			clock-names = "wdtclk", "reg";
-		};
-
-		uart0: serial@40081000 {
-			compatible = "nxp,lpc1850-uart", "ns16550a";
-			reg = <0x40081000 0x1000>;
-			reg-shift = <2>;
-			interrupts = <24>;
-			clocks = <&ccu2 CLK_APB0_UART0>, <&ccu1 CLK_CPU_UART0>;
-			clock-names = "uartclk", "reg";
-			resets = <&rgu 44>;
-			dmas = <&dmamux  1 1 2
-				&dmamux  2 1 2
-				&dmamux 11 2 2
-				&dmamux 12 2 2>;
-			dma-names = "tx", "rx", "tx", "rx";
-			status = "disabled";
-		};
-
-		uart1: serial@40082000 {
-			compatible = "nxp,lpc1850-uart", "ns16550a";
-			reg = <0x40082000 0x1000>;
-			reg-shift = <2>;
-			interrupts = <25>;
-			clocks = <&ccu2 CLK_APB0_UART1>, <&ccu1 CLK_CPU_UART1>;
-			clock-names = "uartclk", "reg";
-			resets = <&rgu 45>;
-			dmas = <&dmamux 3 1 2
-				&dmamux 4 1 2>;
-			dma-names = "tx", "rx";
-			status = "disabled";
-		};
-
-		ssp0: spi@40083000 {
-			compatible = "arm,pl022", "arm,primecell";
-			reg = <0x40083000 0x1000>;
-			interrupts = <22>;
-			clocks = <&ccu2 CLK_APB0_SSP0>, <&ccu1 CLK_CPU_SSP0>;
-			clock-names = "sspclk", "apb_pclk";
-			resets = <&rgu 50>;
-			dmas = <&dmamux  9 0 2
-				&dmamux 10 0 2>;
-			dma-names = "rx", "tx";
-			#address-cells = <1>;
-			#size-cells = <0>;
-			status = "disabled";
-		};
-
-		timer0: timer@40084000 {
-			compatible = "nxp,lpc3220-timer";
-			reg = <0x40084000 0x1000>;
-			interrupts = <12>;
-			clocks = <&ccu1 CLK_CPU_TIMER0>;
-			clock-names = "timerclk";
-			resets = <&rgu 32>;
-		};
-
-		timer1: timer@40085000 {
-			compatible = "nxp,lpc3220-timer";
-			reg = <0x40085000 0x1000>;
-			interrupts = <13>;
-			clocks = <&ccu1 CLK_CPU_TIMER1>;
-			clock-names = "timerclk";
-			resets = <&rgu 33>;
-		};
-
-		pinctrl: pinctrl@40086000 {
-			compatible = "nxp,lpc1850-scu";
-			reg = <0x40086000 0x1000>;
-			clocks = <&ccu1 CLK_CPU_SCU>;
-		};
-
-		i2c0: i2c@400a1000 {
-			compatible = "nxp,lpc1788-i2c";
-			reg = <0x400a1000 0x1000>;
-			interrupts = <18>;
-			clocks = <&ccu1 CLK_APB1_I2C0>;
-			resets = <&rgu 48>;
-			#address-cells = <1>;
-			#size-cells = <0>;
-			status = "disabled";
-		};
-
-		can1: can@400a4000 {
-			compatible = "bosch,c_can";
-			reg = <0x400a4000 0x1000>;
-			interrupts = <43>;
-			clocks = <&ccu1 CLK_APB1_CAN1>;
-			resets = <&rgu 54>;
-			status = "disabled";
-		};
-
-		uart2: serial@400c1000 {
-			compatible = "nxp,lpc1850-uart", "ns16550a";
-			reg = <0x400c1000 0x1000>;
-			reg-shift = <2>;
-			interrupts = <26>;
-			clocks = <&ccu2 CLK_APB2_UART2>, <&ccu1 CLK_CPU_UART2>;
-			clock-names = "uartclk", "reg";
-			resets = <&rgu 46>;
-			dmas = <&dmamux 5 1 2
-				&dmamux 6 1 2>;
-			dma-names = "tx", "rx";
-			status = "disabled";
-		};
-
-		uart3: serial@400c2000 {
-			compatible = "nxp,lpc1850-uart", "ns16550a";
-			reg = <0x400c2000 0x1000>;
-			reg-shift = <2>;
-			interrupts = <27>;
-			clocks = <&ccu2 CLK_APB2_UART3>, <&ccu1 CLK_CPU_UART3>;
-			clock-names = "uartclk", "reg";
-			resets = <&rgu 47>;
-			dmas = <&dmamux  7 1 2
-				&dmamux  8 1 2
-				&dmamux 13 3 2
-				&dmamux 14 3 2>;
-			dma-names = "tx", "rx", "rx", "tx";
-			status = "disabled";
-		};
-
-		timer2: timer@400c3000 {
-			compatible = "nxp,lpc3220-timer";
-			reg = <0x400c3000 0x1000>;
-			interrupts = <14>;
-			clocks = <&ccu1 CLK_CPU_TIMER2>;
-			clock-names = "timerclk";
-			resets = <&rgu 34>;
-		};
-
-		timer3: timer@400c4000 {
-			compatible = "nxp,lpc3220-timer";
-			reg = <0x400c4000 0x1000>;
-			interrupts = <15>;
-			clocks = <&ccu1 CLK_CPU_TIMER3>;
-			clock-names = "timerclk";
-			resets = <&rgu 35>;
-		};
-
-		ssp1: spi@400c5000 {
-			compatible = "arm,pl022", "arm,primecell";
-			reg = <0x400c5000 0x1000>;
-			interrupts = <23>;
-			clocks = <&ccu2 CLK_APB2_SSP1>, <&ccu1 CLK_CPU_SSP1>;
-			clock-names = "sspclk", "apb_pclk";
-			resets = <&rgu 51>;
-			dmas = <&dmamux 11 2 2
-				&dmamux 12 2 2
-				&dmamux  3 3 2
-				&dmamux  4 3 2
-				&dmamux  5 2 2
-				&dmamux  6 2 2
-				&dmamux 13 2 2
-				&dmamux 14 2 2>;
-			dma-names = "rx", "tx", "tx", "rx",
-				    "tx", "rx", "rx", "tx";
-			#address-cells = <1>;
-			#size-cells = <0>;
-			status = "disabled";
-		};
-
-		i2c1: i2c@400e0000 {
-			compatible = "nxp,lpc1788-i2c";
-			reg = <0x400e0000 0x1000>;
-			interrupts = <19>;
-			clocks = <&ccu1 CLK_APB3_I2C1>;
-			resets = <&rgu 49>;
-			#address-cells = <1>;
-			#size-cells = <0>;
-			status = "disabled";
-		};
-
-		dac: dac@400e1000 {
-			compatible = "nxp,lpc1850-dac";
-			reg = <0x400e1000 0x1000>;
-			interrupts = <0>;
-			clocks = <&ccu1 CLK_APB3_DAC>;
-			resets = <&rgu 42>;
-			status = "disabled";
-		};
-
-		can0: can@400e2000 {
-			compatible = "bosch,c_can";
-			reg = <0x400e2000 0x1000>;
-			interrupts = <51>;
-			clocks = <&ccu1 CLK_APB3_CAN0>;
-			resets = <&rgu 55>;
-			status = "disabled";
-		};
-
-		adc0: adc@400e3000 {
-			compatible = "nxp,lpc1850-adc";
-			reg = <0x400e3000 0x1000>;
-			interrupts = <17>;
-			clocks = <&ccu1 CLK_APB3_ADC0>;
-			resets = <&rgu 40>;
-			status = "disabled";
-		};
-
-		adc1: adc@400e4000 {
-			compatible = "nxp,lpc1850-adc";
-			reg = <0x400e4000 0x1000>;
-			interrupts = <21>;
-			clocks = <&ccu1 CLK_APB3_ADC1>;
-			resets = <&rgu 41>;
-			status = "disabled";
-		};
-
-		gpio: gpio@400f4000 {
-			compatible = "nxp,lpc1850-gpio";
-			reg = <0x400f4000 0x4000>;
-			clocks = <&ccu1 CLK_CPU_GPIO>;
-			gpio-controller;
-			#gpio-cells = <2>;
-			gpio-ranges =	<&pinctrl LPC_GPIO(0,0)  LPC_PIN(0,0)  2>,
-					<&pinctrl LPC_GPIO(0,4)  LPC_PIN(1,0)  1>,
-					<&pinctrl LPC_GPIO(0,8)  LPC_PIN(1,1)  4>,
-					<&pinctrl LPC_GPIO(1,8)  LPC_PIN(1,5)  2>,
-					<&pinctrl LPC_GPIO(1,0)  LPC_PIN(1,7)  8>,
-					<&pinctrl LPC_GPIO(0,2)  LPC_PIN(1,15) 2>,
-					<&pinctrl LPC_GPIO(0,12) LPC_PIN(1,17) 2>,
-					<&pinctrl LPC_GPIO(0,15) LPC_PIN(1,20) 1>,
-					<&pinctrl LPC_GPIO(5,0)  LPC_PIN(2,0)  7>,
-					<&pinctrl LPC_GPIO(0,7)  LPC_PIN(2,7)  1>,
-					<&pinctrl LPC_GPIO(5,7)  LPC_PIN(2,8)  1>,
-					<&pinctrl LPC_GPIO(1,10) LPC_PIN(2,9)  1>,
-					<&pinctrl LPC_GPIO(0,14) LPC_PIN(2,10) 1>,
-					<&pinctrl LPC_GPIO(1,11) LPC_PIN(2,11) 3>,
-					<&pinctrl LPC_GPIO(5,8)  LPC_PIN(3,1)  2>,
-					<&pinctrl LPC_GPIO(1,14) LPC_PIN(3,4)  2>,
-					<&pinctrl LPC_GPIO(0,6)  LPC_PIN(3,6)  1>,
-					<&pinctrl LPC_GPIO(5,10) LPC_PIN(3,7)  2>,
-					<&pinctrl LPC_GPIO(2,0)  LPC_PIN(4,0)  7>,
-					<&pinctrl LPC_GPIO(5,12) LPC_PIN(4,8)  3>,
-					<&pinctrl LPC_GPIO(2,9)  LPC_PIN(5,0)  7>,
-					<&pinctrl LPC_GPIO(2,7)  LPC_PIN(5,7)  1>,
-					<&pinctrl LPC_GPIO(3,0)  LPC_PIN(6,1)  5>,
-					<&pinctrl LPC_GPIO(0,5)  LPC_PIN(6,6)  1>,
-					<&pinctrl LPC_GPIO(5,15) LPC_PIN(6,7)  2>,
-					<&pinctrl LPC_GPIO(3,5)  LPC_PIN(6,9)  3>,
-					<&pinctrl LPC_GPIO(2,8)  LPC_PIN(6,12) 1>,
-					<&pinctrl LPC_GPIO(3,8)  LPC_PIN(7,0)  8>,
-					<&pinctrl LPC_GPIO(4,0)  LPC_PIN(8,0)  8>,
-					<&pinctrl LPC_GPIO(4,12) LPC_PIN(9,0)  4>,
-					<&pinctrl LPC_GPIO(5,17) LPC_PIN(9,4)  2>,
-					<&pinctrl LPC_GPIO(4,11) LPC_PIN(9,6)  1>,
-					<&pinctrl LPC_GPIO(4,8)  LPC_PIN(a,1)  3>,
-					<&pinctrl LPC_GPIO(5,19) LPC_PIN(a,4)  1>,
-					<&pinctrl LPC_GPIO(5,20) LPC_PIN(b,0)  7>,
-					<&pinctrl LPC_GPIO(6,0)  LPC_PIN(c,1) 14>,
-					<&pinctrl LPC_GPIO(6,14) LPC_PIN(d,0) 17>,
-					<&pinctrl LPC_GPIO(7,0)  LPC_PIN(e,0) 16>,
-					<&pinctrl LPC_GPIO(7,16) LPC_PIN(f,1)  3>,
-					<&pinctrl LPC_GPIO(7,19) LPC_PIN(f,5)  7>;
-		};
-	};
-};
-
-&nvic {
-	arm,num-irq-priority-bits = <3>;
-};
diff --git a/arch/arm/boot/dts/nxp/lpc/lpc4337-ciaa.dts b/arch/arm/boot/dts/nxp/lpc/lpc4337-ciaa.dts
deleted file mode 100644
index 5ff43c825944..000000000000
--- a/arch/arm/boot/dts/nxp/lpc/lpc4337-ciaa.dts
+++ /dev/null
@@ -1,221 +0,0 @@
-/*
- * CIAA NXP LPC4337 (http://www.proyecto-ciaa.com.ar)
- *
- * Copyright (C) 2015 VanguardiaSur - www.vanguardiasur.com.ar
- *
- * This code is released using a dual license strategy: BSD/GPL
- * You can choose the licence that better fits your requirements.
- *
- * Released under the terms of 3-clause BSD License
- * Released under the terms of GNU General Public License Version 2.0
- */
-/dts-v1/;
-
-#include "lpc18xx.dtsi"
-#include "lpc4357.dtsi"
-
-#include "dt-bindings/gpio/gpio.h"
-
-/ {
-	model = "CIAA NXP LPC4337";
-	compatible = "ciaa,lpc4337", "nxp,lpc4337", "nxp,lpc4350";
-
-	aliases {
-		serial0 = &uart2;
-		serial1 = &uart3;
-	};
-
-	chosen {
-		bootargs = "console=ttyS0,115200 earlyprintk";
-		stdout-path = &uart2;
-	};
-
-	memory@28000000 {
-		device_type = "memory";
-		reg = <0x28000000 0x0800000>; /* 8 MB */
-	};
-};
-
-&pinctrl {
-	enet_rmii_pins: enet-rmii-pins {
-		enet_rmii_rxd_cfg {
-			pins = "p1_15", "p0_0";
-			function = "enet";
-			slew-rate = <1>;
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		enet_rmii_txd_cfg {
-			pins = "p1_18", "p1_20";
-			function = "enet";
-			slew-rate = <1>;
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		enet_rmii_rx_dv_cfg {
-			pins = "p1_16";
-			function = "enet";
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		enet_rmii_tx_en_cfg {
-			pins = "p0_1";
-			function = "enet";
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		enet_ref_clk_cfg {
-			pins = "p1_19";
-			function = "enet";
-			slew-rate = <1>;
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		enet_mdio_cfg {
-			pins = "p1_17";
-			function = "enet";
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		enet_mdc_cfg {
-			pins = "p7_7";
-			function = "enet";
-			slew-rate = <1>;
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-	};
-
-	i2c0_pins: i2c0-pins {
-		i2c0_pins_cfg {
-			pins = "i2c0_scl", "i2c0_sda";
-			function = "i2c0";
-			input-enable;
-		};
-	};
-
-	ssp_pins: ssp-pins {
-		ssp1_cs_cfg {
-			pins = "p6_7";
-			function = "gpio";
-			bias-pull-up;
-			bias-disable;
-		};
-
-		ssp1_miso_mosi_cfg {
-			pins = "p1_3", "p1_4";
-			function = "ssp1";
-			slew-rate = <1>;
-			bias-pull-down;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		ssp1_sck_cfg {
-			pins = "pf_4";
-			function = "ssp1";
-			slew-rate = <1>;
-			bias-disable;
-		};
-	};
-
-	uart2_pins: uart2-pins {
-		uart2_rx_cfg {
-			pins = "p7_2";
-			function = "uart2";
-			bias-disable;
-			input-enable;
-		};
-
-		uart2_tx_cfg {
-			pins = "p7_1";
-			function = "uart2";
-			bias-disable;
-		};
-	};
-
-	uart3_pins: uart3-pins {
-		uart3_rx_cfg {
-			pins = "p2_4";
-			function = "uart3";
-			bias-disable;
-			input-enable;
-		};
-
-		uart3_tx_cfg {
-			pins = "p2_3";
-			function = "uart3";
-			bias-disable;
-		};
-	};
-};
-
-&enet_tx_clk {
-	clock-frequency = <50000000>;
-};
-
-&i2c0 {
-	status = "okay";
-	pinctrl-names = "default";
-	pinctrl-0 = <&i2c0_pins>;
-	clock-frequency = <400000>;
-
-	eeprom@50 {
-		compatible = "microchip,24c512", "atmel,24c512";
-		reg = <0x50>;
-	};
-
-	eeprom@51 {
-		compatible = "microchip,24c02", "atmel,24c02";
-		reg = <0x51>;
-	};
-
-	eeprom@54 {
-		compatible = "microchip,24c512", "atmel,24c512";
-		reg = <0x54>;
-	};
-};
-
-&mac {
-	status = "okay";
-	phy-mode = "rmii";
-	pinctrl-names = "default";
-	pinctrl-0 = <&enet_rmii_pins>;
-};
-
-&sct_pwm {
-	status = "okay";
-};
-
-&ssp1 {
-	status = "okay";
-	pinctrl-names = "default";
-	pinctrl-0 = <&ssp_pins>;
-	cs-gpios = <&gpio LPC_GPIO(5,15) GPIO_ACTIVE_HIGH>;
-	num-cs = <1>;
-};
-
-&uart2 {
-	status = "okay";
-	pinctrl-names = "default";
-	pinctrl-0 = <&uart2_pins>;
-};
-
-&uart3 {
-	status = "okay";
-	pinctrl-names = "default";
-	pinctrl-0 = <&uart3_pins>;
-};
diff --git a/arch/arm/boot/dts/nxp/lpc/lpc4350-hitex-eval.dts b/arch/arm/boot/dts/nxp/lpc/lpc4350-hitex-eval.dts
deleted file mode 100644
index 18f757c56905..000000000000
--- a/arch/arm/boot/dts/nxp/lpc/lpc4350-hitex-eval.dts
+++ /dev/null
@@ -1,485 +0,0 @@
-/*
- * Hitex LPC4350 Evaluation Board
- *
- * Copyright 2015 Ariel D'Alessandro <ariel.dalessandro@gmail.com>
- *
- * This code is released using a dual license strategy: BSD/GPL
- * You can choose the licence that better fits your requirements.
- *
- * Released under the terms of 3-clause BSD License
- * Released under the terms of GNU General Public License Version 2.0
- *
- */
-/dts-v1/;
-
-#include "lpc18xx.dtsi"
-#include "lpc4350.dtsi"
-
-#include "dt-bindings/input/input.h"
-#include "dt-bindings/gpio/gpio.h"
-
-/ {
-	model = "Hitex LPC4350 Evaluation Board";
-	compatible = "hitex,lpc4350-eval-board", "nxp,lpc4350";
-
-	aliases {
-		serial0 = &uart0;
-		serial1 = &uart1;
-		serial2 = &uart2;
-		serial3 = &uart3;
-	};
-
-	chosen {
-		stdout-path = &uart0;
-	};
-
-	memory@28000000 {
-		device_type = "memory";
-		reg = <0x28000000 0x800000>; /* 8 MB */
-	};
-
-	pca_buttons {
-		compatible = "gpio-keys-polled";
-		poll-interval = <100>;
-		autorepeat;
-
-		button-0 {
-			label = "joy:right";
-			linux,code = <KEY_RIGHT>;
-			gpios = <&pca_gpio 8 GPIO_ACTIVE_LOW>;
-		};
-
-		button-1 {
-			label = "joy:up";
-			linux,code = <KEY_UP>;
-			gpios = <&pca_gpio 9 GPIO_ACTIVE_LOW>;
-		};
-
-
-		button-2 {
-			label = "joy:enter";
-			linux,code = <KEY_ENTER>;
-			gpios = <&pca_gpio 10 GPIO_ACTIVE_LOW>;
-		};
-
-		button-3 {
-			label = "joy:left";
-			linux,code = <KEY_LEFT>;
-			gpios = <&pca_gpio 11 GPIO_ACTIVE_LOW>;
-		};
-
-		button-4 {
-			label = "joy:down";
-			linux,code = <KEY_DOWN>;
-			gpios = <&pca_gpio 12 GPIO_ACTIVE_LOW>;
-		};
-
-		button-5 {
-			label = "user:sw3";
-			linux,code = <KEY_F1>;
-			gpios = <&pca_gpio 13 GPIO_ACTIVE_LOW>;
-		};
-
-		button-6 {
-			label = "user:sw4";
-			linux,code = <KEY_F2>;
-			gpios = <&pca_gpio 14 GPIO_ACTIVE_LOW>;
-		};
-
-		button-7 {
-			label = "user:sw5";
-			linux,code = <KEY_F3>;
-			gpios = <&pca_gpio 15 GPIO_ACTIVE_LOW>;
-		};
-	};
-
-	pca_leds {
-		compatible = "gpio-leds";
-
-		led0 {
-			label = "ext:led0";
-			gpios = <&pca_gpio 0 GPIO_ACTIVE_LOW>;
-			linux,default-trigger = "heartbeat";
-		};
-
-		led1 {
-			label = "ext:led1";
-			gpios = <&pca_gpio 1 GPIO_ACTIVE_LOW>;
-		};
-
-		led2 {
-			label = "ext:led2";
-			gpios = <&pca_gpio 2 GPIO_ACTIVE_LOW>;
-		};
-
-		led3 {
-			label = "ext:led3";
-			gpios = <&pca_gpio 3 GPIO_ACTIVE_LOW>;
-		};
-	};
-
-	vcc: vcc_fixed {
-		compatible = "regulator-fixed";
-		regulator-name = "3v3io";
-		regulator-min-microvolt = <3300000>;
-		regulator-max-microvolt = <3300000>;
-	};
-};
-
-&pinctrl {
-	adc1_pins: adc1-pins {
-		adc1_pins_cfg {
-			pins = "pf_9";
-			function = "adc";
-			input-disable;
-			bias-disable;
-		};
-	};
-
-	emc_pins: emc-pins {
-		emc_addr0_23_cfg {
-			pins =	"p2_9",  "p2_10", "p2_11", "p2_12",
-				"p2_13", "p1_0",  "p1_1",  "p1_2",
-				"p2_8",  "p2_7",  "p2_6",  "p2_2",
-				"p2_1",  "p2_0",  "p6_8",  "p6_7",
-				"pd_16", "pd_15", "pe_0",  "pe_1",
-				"pe_2",  "pe_3",  "pe_4",  "pa_4";
-			function = "emc";
-			slew-rate = <1>;
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		emc_data0_15_cfg {
-			pins =	"p1_7",  "p1_8",  "p1_9",  "p1_10",
-				"p1_11", "p1_12", "p1_13", "p1_14",
-				"p5_4",  "p5_5",  "p5_6",  "p5_7",
-				"p5_0",  "p5_1",  "p5_2",  "p5_3";
-			function = "emc";
-			slew-rate = <1>;
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		emc_we_oe_cfg {
-			pins = "p1_6", "p1_3";
-			function = "emc";
-			slew-rate = <1>;
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		emc_bls0_3_cfg {
-			pins = "p1_4", "p6_6", "pd_13", "pd_10";
-			function = "emc";
-			slew-rate = <1>;
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		emc_cs0_cs2_cfg {
-			pins = "p1_5", "pd_12";
-			function = "emc";
-			slew-rate = <1>;
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		emc_sdram_dqm0_3_cfg {
-			pins = "p6_12", "p6_10", "pd_0", "pe_13";
-			function = "emc";
-			slew-rate = <1>;
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		emc_sdram_ras_cas_cfg {
-			pins = "p6_5", "p6_4";
-			function = "emc";
-			slew-rate = <1>;
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		emc_sdram_dycs0_cfg {
-			pins = "p6_9";
-			function = "emc";
-			slew-rate = <1>;
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		emc_sdram_cke_cfg {
-			pins = "p6_11";
-			function = "emc";
-			slew-rate = <1>;
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		emc_sdram_clock_cfg {
-			pins = "clk0", "clk1", "clk2", "clk3";
-			function = "emc";
-			slew-rate = <1>;
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-	};
-
-	enet_mii_pins: enet-mii-pins {
-		enet_mii_rxd0_3_cfg {
-			pins = "p1_15", "p0_0", "p9_3", "p9_2";
-			function = "enet";
-			bias-disable;
-			input-enable;
-		};
-
-		enet_mii_txd0_3_cfg {
-			pins = "p1_18", "p1_20", "p9_4", "p9_5";
-			function = "enet";
-			bias-disable;
-		};
-
-		enet_mii_crs_col_cfg {
-			pins = "p9_0", "p9_6";
-			function = "enet";
-			bias-disable;
-			input-enable;
-		};
-
-		enet_mii_rx_clk_dv_er_cfg {
-			pins = "pc_0", "p1_16", "p9_1";
-			function = "enet";
-			bias-disable;
-			input-enable;
-		};
-
-		enet_mii_tx_clk_en_cfg {
-			pins = "p1_19", "p0_1";
-			function = "enet";
-			bias-disable;
-			input-enable;
-		};
-
-		enet_mdio_cfg {
-			pins = "p1_17";
-			function = "enet";
-			bias-disable;
-			input-enable;
-		};
-
-		enet_mdc_cfg {
-			pins = "pc_1";
-			function = "enet";
-			bias-disable;
-		};
-	};
-
-	i2c0_pins: i2c0-pins {
-		i2c0_pins_cfg {
-			pins = "i2c0_scl", "i2c0_sda";
-			function = "i2c0";
-			input-enable;
-		};
-	};
-
-	spifi_pins: spifi-pins {
-		spifi_clk_cfg {
-			pins = "p3_3";
-			function = "spifi";
-			slew-rate = <1>;
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		spifi_mosi_miso_sio2_3_cfg {
-			pins = "p3_7", "p3_6", "p3_5", "p3_4";
-			function = "spifi";
-			slew-rate = <1>;
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		spifi_cs_cfg {
-			pins = "p3_8";
-			function = "spifi";
-			slew-rate = <1>;
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-	};
-
-	uart0_pins: uart0-pins {
-		uart0_rx_cfg {
-			pins = "pf_11";
-			function = "uart0";
-			input-schmitt-disable;
-			bias-disable;
-			input-enable;
-		};
-
-		uart0_tx_cfg {
-			pins = "pf_10";
-			function = "uart0";
-			bias-pull-down;
-		};
-	};
-};
-
-&adc1 {
-	status = "okay";
-	vref-supply = <&vcc>;
-	pinctrl-names = "default";
-	pinctrl-0 = <&adc1_pins>;
-};
-
-&emc {
-	status = "okay";
-	pinctrl-names = "default";
-	pinctrl-0 = <&emc_pins>;
-
-	cs0 {
-		#address-cells = <2>;
-		#size-cells = <1>;
-		ranges;
-
-		mpmc,cs = <0>;
-		mpmc,memory-width = <16>;
-		mpmc,byte-lane-low;
-		mpmc,write-enable-delay = <0>;
-		mpmc,output-enable-delay = <0>;
-		mpmc,read-access-delay = <70>;
-		mpmc,page-mode-read-delay = <70>;
-
-		flash@0,0 {
-			compatible = "sst,sst39vf320", "cfi-flash";
-			reg = <0 0 0x400000>;
-			bank-width = <2>;
-			#address-cells = <1>;
-			#size-cells = <1>;
-
-			partition@0 {
-				label = "bootloader";
-				reg = <0x000000 0x040000>; /* 256 KiB */
-			};
-
-			partition@1 {
-				label = "kernel";
-				reg = <0x040000 0x2C0000>; /* 2.75 MiB */
-			};
-
-			partition@2 {
-				label = "rootfs";
-				reg = <0x300000 0x100000>; /* 1 MiB */
-			};
-		};
-	};
-
-	cs2 {
-		#address-cells = <2>;
-		#size-cells = <1>;
-		ranges;
-
-		mpmc,cs = <2>;
-		mpmc,memory-width = <16>;
-		mpmc,byte-lane-low;
-		mpmc,write-enable-delay = <0>;
-		mpmc,output-enable-delay = <30>;
-		mpmc,read-access-delay = <90>;
-		mpmc,page-mode-read-delay = <55>;
-		mpmc,write-access-delay = <55>;
-		mpmc,turn-round-delay = <55>;
-
-		ext_sram: sram@2,0 {
-			compatible = "mmio-sram";
-			reg = <2 0 0x80000>; /* 512 KiB SRAM on IS62WV25616 */
-			#address-cells = <1>;
-			#size-cells = <1>;
-			ranges = <0 2 0 0x80000>;
-		};
-	};
-};
-
-&enet_tx_clk {
-	clock-frequency = <25000000>;
-};
-
-&i2c0 {
-	status = "okay";
-	pinctrl-names = "default";
-	pinctrl-0 = <&i2c0_pins>;
-	clock-frequency = <400000>;
-
-	/* NXP SE97BTP with temperature sensor + eeprom */
-	sensor@18 {
-		compatible = "nxp,se97", "jedec,jc-42.4-temp";
-		reg = <0x18>;
-	};
-
-	eeprom@50 {
-		compatible = "nxp,24c02", "atmel,24c02";
-		reg = <0x50>;
-	};
-
-	pca_gpio: gpio@24 {
-		compatible = "nxp,pca9673";
-		reg = <0x24>;
-		gpio-controller;
-		#gpio-cells = <2>;
-	};
-};
-
-&mac {
-	status = "okay";
-	phy-mode = "mii";
-	pinctrl-names = "default";
-	pinctrl-0 = <&enet_mii_pins>;
-};
-
-&spifi {
-	status = "okay";
-	pinctrl-names = "default";
-	pinctrl-0 = <&spifi_pins>;
-
-	flash@0 {
-		compatible = "jedec,spi-nor";
-		reg = <0>;
-		spi-rx-bus-width = <4>;
-		#address-cells = <1>;
-		#size-cells = <1>;
-
-		partition@0 {
-			label = "bootloader";
-			reg = <0x000000 0x040000>; /* 256 KiB */
-		};
-
-		partition@1 {
-			label = "kernel";
-			reg = <0x040000 0x2c0000>; /* 2.75 MiB */
-		};
-
-		partition@2 {
-			label = "rootfs";
-			reg = <0x300000 0x500000>; /* 5 MiB */
-		};
-	};
-};
-
-&uart0 {
-	status = "okay";
-	pinctrl-names = "default";
-	pinctrl-0 = <&uart0_pins>;
-};
diff --git a/arch/arm/boot/dts/nxp/lpc/lpc4350.dtsi b/arch/arm/boot/dts/nxp/lpc/lpc4350.dtsi
deleted file mode 100644
index 707d22a219d8..000000000000
--- a/arch/arm/boot/dts/nxp/lpc/lpc4350.dtsi
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * NXP LPC4350 and LPC4330 SoC
- *
- * Copyright 2015 Ariel D'Alessandro <ariel.dalessandro@gmail.com>
- *
- * This code is released using a dual license strategy: BSD/GPL
- * You can choose the licence that better fits your requirements.
- *
- * Released under the terms of 3-clause BSD License
- * Released under the terms of GNU General Public License Version 2.0
- *
- */
-
-/ {
-	compatible = "nxp,lpc4350", "nxp,lpc4330";
-
-	cpus {
-		cpu@0 {
-			compatible = "arm,cortex-m4";
-		};
-	};
-
-	soc {
-		sram0: sram@10000000 {
-			compatible = "mmio-sram";
-			reg = <0x10000000 0x20000>; /* 96 + 32 KiB local SRAM */
-			#address-cells = <1>;
-			#size-cells = <1>;
-			ranges;
-		};
-
-		sram1: sram@10080000 {
-			compatible = "mmio-sram";
-			reg = <0x10080000 0x12000>; /* 64 + 8 KiB local SRAM */
-			#address-cells = <1>;
-			#size-cells = <1>;
-			ranges;
-		};
-
-		sram2: sram@20000000 {
-			compatible = "mmio-sram";
-			reg = <0x20000000 0x10000>; /* 4 x 16 KiB AHB SRAM */
-			#address-cells = <1>;
-			#size-cells = <1>;
-			ranges;
-		};
-	};
-};
diff --git a/arch/arm/boot/dts/nxp/lpc/lpc4357-ea4357-devkit.dts b/arch/arm/boot/dts/nxp/lpc/lpc4357-ea4357-devkit.dts
deleted file mode 100644
index 7ccb4c2ca571..000000000000
--- a/arch/arm/boot/dts/nxp/lpc/lpc4357-ea4357-devkit.dts
+++ /dev/null
@@ -1,624 +0,0 @@
-/*
- * Embedded Artist LPC4357 Developer's Kit
- *
- * Copyright 2015 Joachim Eastwood <manabian@gmail.com>
- *
- * This code is released using a dual license strategy: BSD/GPL
- * You can choose the licence that better fits your requirements.
- *
- * Released under the terms of 3-clause BSD License
- * Released under the terms of GNU General Public License Version 2.0
- *
- */
-/dts-v1/;
-
-#include "lpc18xx.dtsi"
-#include "lpc4357.dtsi"
-
-#include "dt-bindings/input/input.h"
-#include "dt-bindings/gpio/gpio.h"
-
-/ {
-	model = "Embedded Artists' LPC4357 Developer's Kit";
-	compatible = "ea,lpc4357-developers-kit", "nxp,lpc4357", "nxp,lpc4350";
-
-	aliases {
-		serial0 = &uart0;
-		serial1 = &uart1;
-		serial2 = &uart2;
-		serial3 = &uart3;
-	};
-
-	chosen {
-		stdout-path = &uart0;
-	};
-
-	memory@28000000 {
-		device_type = "memory";
-		reg = <0x28000000 0x2000000>; /* 32 MB */
-	};
-
-	vcc: vcc_fixed {
-		compatible = "regulator-fixed";
-		regulator-name = "3v3-supply";
-		regulator-min-microvolt = <3300000>;
-		regulator-max-microvolt = <3300000>;
-	};
-
-	/* vmmc is controlled by sdmmc host internally */
-	vmmc: vmmc_fixed {
-		compatible = "regulator-fixed";
-		regulator-name = "vmmc-supply";
-		regulator-min-microvolt = <3300000>;
-		regulator-max-microvolt = <3300000>;
-	};
-
-	gpio_joystick {
-		compatible = "gpio-keys-polled";
-		pinctrl-names = "default";
-		pinctrl-0 = <&gpio_joystick_pins>;
-		poll-interval = <100>;
-		autorepeat;
-
-		button-0 {
-			label = "joy_enter";
-			linux,code = <KEY_ENTER>;
-			gpios = <&gpio LPC_GPIO(4,8) GPIO_ACTIVE_LOW>;
-		};
-
-		button-1 {
-			label = "joy_left";
-			linux,code = <KEY_LEFT>;
-			gpios = <&gpio LPC_GPIO(4,9) GPIO_ACTIVE_LOW>;
-		};
-
-		button-2 {
-			label = "joy_up";
-			linux,code = <KEY_UP>;
-			gpios = <&gpio LPC_GPIO(4,10) GPIO_ACTIVE_LOW>;
-		};
-
-		button-3 {
-			label = "joy_right";
-			linux,code = <KEY_RIGHT>;
-			gpios = <&gpio LPC_GPIO(4,12) GPIO_ACTIVE_LOW>;
-		};
-
-		button-4 {
-			label = "joy_down";
-			linux,code = <KEY_DOWN>;
-			gpios = <&gpio LPC_GPIO(4,13) GPIO_ACTIVE_LOW>;
-		};
-	};
-
-	leds_mmio {
-		compatible = "gpio-leds";
-
-		led1 {
-			gpios = <&mmio_leds 15 GPIO_ACTIVE_HIGH>;
-			linux,default-trigger = "heartbeat";
-		};
-
-		led2 {
-			gpios = <&mmio_leds 14 GPIO_ACTIVE_HIGH>;
-		};
-
-		led3 {
-			gpios = <&mmio_leds 13 GPIO_ACTIVE_HIGH>;
-		};
-
-		led4 {
-			gpios = <&mmio_leds 12 GPIO_ACTIVE_HIGH>;
-		};
-
-		led5 {
-			gpios = <&mmio_leds 11 GPIO_ACTIVE_HIGH>;
-		};
-
-		led6 {
-			gpios = <&mmio_leds 10 GPIO_ACTIVE_HIGH>;
-		};
-
-		led7 {
-			gpios = <&mmio_leds 9 GPIO_ACTIVE_HIGH>;
-		};
-
-		led8 {
-			gpios = <&mmio_leds 8 GPIO_ACTIVE_HIGH>;
-		};
-
-		led9 {
-			gpios = <&mmio_leds 7 GPIO_ACTIVE_HIGH>;
-		};
-
-		led10 {
-			gpios = <&mmio_leds 6 GPIO_ACTIVE_HIGH>;
-		};
-
-		led11 {
-			gpios = <&mmio_leds 5 GPIO_ACTIVE_HIGH>;
-		};
-
-		led12 {
-			gpios = <&mmio_leds 4 GPIO_ACTIVE_HIGH>;
-		};
-
-		led13 {
-			gpios = <&mmio_leds 3 GPIO_ACTIVE_HIGH>;
-		};
-
-		led14 {
-			gpios = <&mmio_leds 2 GPIO_ACTIVE_HIGH>;
-		};
-
-		led15 {
-			gpios = <&mmio_leds 1 GPIO_ACTIVE_HIGH>;
-		};
-
-		led16 {
-			gpios = <&mmio_leds 0 GPIO_ACTIVE_HIGH>;
-		};
-	};
-};
-
-&pinctrl {
-	emc_pins: emc-pins {
-		emc_addr0_23_cfg {
-			pins =	"p2_9",  "p2_10", "p2_11", "p2_12",
-				"p2_13", "p1_0",  "p1_1",  "p1_2",
-				"p2_8",  "p2_7",  "p2_6",  "p2_2",
-				"p2_1",  "p2_0",  "p6_8",  "p6_7",
-				"pd_16", "pd_15", "pe_0",  "pe_1",
-				"pe_2",  "pe_3",  "pe_4",  "pa_4";
-			function = "emc";
-			slew-rate = <1>;
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		emc_data0_31_cfg {
-			pins =	"p1_7",  "p1_8",  "p1_9",  "p1_10",
-				"p1_11", "p1_12", "p1_13", "p1_14",
-				"p5_4",  "p5_5",  "p5_6",  "p5_7",
-				"p5_0",  "p5_1",  "p5_2",  "p5_3",
-				"pd_2",  "pd_3",  "pd_4",  "pd_5",
-				"pd_6",  "pd_7",  "pd_8",  "pd_9",
-				"pe_5",  "pe_6",  "pe_7",  "pe_8",
-				"pe_9",  "pe_10", "pe_11", "pe_12";
-			function = "emc";
-			slew-rate = <1>;
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		emc_we_oe_cfg {
-			pins = "p1_6", "p1_3";
-			function = "emc";
-			slew-rate = <1>;
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		emc_bls0_3_cfg {
-			pins = "p1_4", "p6_6", "pd_13", "pd_10";
-			function = "emc";
-			slew-rate = <1>;
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		emc_cs0_3_cfg {
-			pins = "p1_5", "p6_3", "pd_12", "pd_11";
-			function = "emc";
-			slew-rate = <1>;
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		emc_sdram_dqm0_3_cfg {
-			pins = "p6_12", "p6_10", "pd_0", "pe_13";
-			function = "emc";
-			slew-rate = <1>;
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		emc_sdram_ras_cas_cfg {
-			pins = "p6_5", "p6_4";
-			function = "emc";
-			slew-rate = <1>;
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		emc_sdram_dycs0_cfg {
-			pins = "p6_9";
-			function = "emc";
-			slew-rate = <1>;
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		emc_sdram_cke_cfg {
-			pins = "p6_11";
-			function = "emc";
-			slew-rate = <1>;
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		emc_sdram_clock_cfg {
-			pins = "clk0", "clk1", "clk2", "clk3";
-			function = "emc";
-			slew-rate = <1>;
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-	};
-
-	enet_rmii_pins: enet-rmii-pins {
-		enet_rmii_rxd_cfg {
-			pins = "p1_15", "p0_0";
-			function = "enet";
-			slew-rate = <1>;
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		enet_rmii_txd_cfg {
-			pins = "p1_18", "p1_20";
-			function = "enet";
-			slew-rate = <1>;
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		enet_rmii_rx_dv_cfg {
-			pins = "p1_16";
-			function = "enet";
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		enet_rmii_tx_en_cfg {
-			pins = "p0_1";
-			function = "enet";
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		enet_ref_clk_cfg {
-			pins = "p1_19";
-			function = "enet";
-			slew-rate = <1>;
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		enet_mdio_cfg {
-			pins = "p1_17";
-			function = "enet";
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		enet_mdc_cfg {
-			pins = "pc_1";
-			function = "enet";
-			slew-rate = <1>;
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-	};
-
-	gpio_joystick_pins: gpio-joystick-pins {
-		gpio_joystick_cfg {
-			pins =	"p9_0", "p9_1", "pa_1", "pa_2", "pa_3";
-			function = "gpio";
-			input-enable;
-			bias-disable;
-		};
-	};
-
-	i2c0_pins: i2c0-pins {
-		i2c0_pins_cfg {
-			pins = "i2c0_scl", "i2c0_sda";
-			function = "i2c0";
-			input-enable;
-		};
-	};
-
-	sdmmc_pins: sdmmc-pins {
-		sdmmc_clk_cfg {
-			pins = "pc_0";
-			function = "sdmmc";
-			slew-rate = <1>;
-			bias-pull-down;
-		};
-
-		sdmmc_cmd_dat0_3_cfg {
-			pins = "pc_4", "pc_5", "pc_6", "pc_7", "pc_10";
-			function = "sdmmc";
-			slew-rate = <1>;
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		sdmmc_cd_cfg {
-			pins = "pc_8";
-			function = "sdmmc";
-			bias-pull-down;
-			input-enable;
-		};
-
-		sdmmc_pow_cfg {
-			pins = "pc_9";
-			function = "sdmmc";
-			bias-pull-down;
-		};
-	};
-
-	spifi_pins: spifi-pins {
-		spifi_clk_cfg {
-			pins = "p3_3";
-			function = "spifi";
-			slew-rate = <1>;
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		spifi_mosi_miso_sio2_3_cfg {
-			pins = "p3_7", "p3_6", "p3_5", "p3_4";
-			function = "spifi";
-			slew-rate = <0>;
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		spifi_cs_cfg {
-			pins = "p3_8";
-			function = "spifi";
-			bias-disable;
-		};
-	};
-
-	ssp0_pins: ssp0-pins {
-		ssp0_sck_miso_mosi_cfg {
-			pins = "pf_0", "pf_2", "pf_3";
-			function = "ssp0";
-			slew-rate = <1>;
-			bias-pull-down;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		ssp0_ssel_cfg {
-			pins = "pf_1";
-			function = "ssp0";
-			bias-pull-up;
-		};
-	};
-
-	uart0_pins: uart0-pins {
-		uart0_rx_cfg {
-			pins = "pf_11";
-			function = "uart0";
-			input-schmitt-disable;
-			bias-disable;
-			input-enable;
-		};
-
-		uart0_tx_cfg {
-			pins = "pf_10";
-			function = "uart0";
-			bias-pull-down;
-		};
-	};
-
-	uart3_pins: uart3-pins {
-		uart3_rx_cfg {
-			pins = "p2_4";
-			function = "uart3";
-			input-schmitt-disable;
-			bias-disable;
-			input-enable;
-		};
-
-		uart3_tx_cfg {
-			pins = "p9_3";
-			function = "uart3";
-			bias-pull-down;
-		};
-	};
-
-	usb0_pins: usb0-pins {
-		usb0_pwr_enable_cfg {
-			pins = "p2_3";
-			function = "usb0";
-		};
-
-		usb0_pwr_fault_cfg {
-			pins = "p8_0";
-			function = "usb0";
-			bias-disable;
-			input-enable;
-		};
-	};
-};
-
-&adc0 {
-	status = "okay";
-	vref-supply = <&vcc>;
-};
-
-&i2c0 {
-	status = "okay";
-	pinctrl-names = "default";
-	pinctrl-0 = <&i2c0_pins>;
-	clock-frequency = <400000>;
-
-	mma7455@1d {
-		compatible = "fsl,mma7455";
-		reg = <0x1d>;
-	};
-
-	temperature-sensor@48 {
-		compatible = "national,lm75b";
-		reg = <0x48>;
-	};
-
-	eeprom@57 {
-		compatible = "microchip,24c64", "atmel,24c64";
-		reg = <0x57>;
-	};
-};
-
-&dac {
-	status = "okay";
-	vref-supply = <&vcc>;
-};
-
-&emc {
-	status = "okay";
-	pinctrl-names = "default";
-	pinctrl-0 = <&emc_pins>;
-
-	cs0 {
-		#address-cells = <2>;
-		#size-cells = <1>;
-		ranges;
-
-		mpmc,cs = <0>;
-		mpmc,memory-width = <16>;
-		mpmc,byte-lane-low;
-		mpmc,write-enable-delay = <0>;
-		mpmc,output-enable-delay = <0>;
-		mpmc,read-access-delay = <70>;
-		mpmc,page-mode-read-delay = <70>;
-
-		flash@0,0 {
-			compatible = "sst,sst39vf320", "cfi-flash";
-			reg = <0 0 0x400000>;
-			bank-width = <2>;
-			#address-cells = <1>;
-			#size-cells = <1>;
-
-			partition@0 {
-				label = "bootloader";
-				reg = <0x000000 0x040000>; /* 256 KiB */
-			};
-
-			partition@1 {
-				label = "kernel";
-				reg = <0x040000 0x2c0000>; /* 2.75 MiB */
-			};
-
-			partition@2 {
-				label = "rootfs";
-				reg = <0x300000 0x100000>; /* 1 MiB */
-			};
-		};
-	};
-
-	cs2 {
-		#address-cells = <2>;
-		#size-cells = <1>;
-		ranges;
-
-		mpmc,cs = <2>;
-		mpmc,memory-width = <16>;
-
-		mmio_leds: gpio@2,0 {
-			compatible = "ti,7416374";
-			reg = <2 0 0x2>;
-			gpio-controller;
-			#gpio-cells = <2>;
-		};
-
-	};
-};
-
-&enet_tx_clk {
-	clock-frequency = <50000000>;
-};
-
-&mac {
-	status = "okay";
-	phy-mode = "rmii";
-	pinctrl-names = "default";
-	pinctrl-0 = <&enet_rmii_pins>;
-};
-
-&mmcsd {
-	status = "okay";
-	bus-width = <4>;
-	vmmc-supply = <&vmmc>;
-	pinctrl-names = "default";
-	pinctrl-0 = <&sdmmc_pins>;
-};
-
-&spifi {
-	status = "okay";
-	pinctrl-names = "default";
-	pinctrl-0 = <&spifi_pins>;
-
-	flash@0 {
-		compatible = "jedec,spi-nor";
-		reg = <0>;
-		spi-cpol;
-		spi-cpha;
-		spi-rx-bus-width = <4>;
-		#address-cells = <1>;
-		#size-cells = <1>;
-
-		partition@0 {
-			label = "data";
-			reg = <0 0x200000>;
-		};
-	};
-};
-
-&ssp0 {
-	status = "okay";
-	pinctrl-names = "default";
-	pinctrl-0 = <&ssp0_pins>;
-	num-cs = <1>;
-};
-
-&uart0 {
-	status = "okay";
-	pinctrl-names = "default";
-	pinctrl-0 = <&uart0_pins>;
-};
-
-&uart3 {
-	status = "okay";
-	pinctrl-names = "default";
-	pinctrl-0 = <&uart3_pins>;
-};
-
-&usb0 {
-	status = "okay";
-	pinctrl-names = "default";
-	pinctrl-0 = <&usb0_pins>;
-};
diff --git a/arch/arm/boot/dts/nxp/lpc/lpc4357-myd-lpc4357.dts b/arch/arm/boot/dts/nxp/lpc/lpc4357-myd-lpc4357.dts
deleted file mode 100644
index d18f2b2caf68..000000000000
--- a/arch/arm/boot/dts/nxp/lpc/lpc4357-myd-lpc4357.dts
+++ /dev/null
@@ -1,621 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
-/*
- * MYIR Tech MYD-LPC4357 Development Board with 800x480 7" TFT panel
- *
- * Copyright (C) 2016-2018 Vladimir Zapolskiy <vz@mleia.com>
- */
-
-/dts-v1/;
-
-#include "lpc18xx.dtsi"
-#include "lpc4357.dtsi"
-
-#include <dt-bindings/gpio/gpio.h>
-
-/ {
-	model = "MYIR Tech LPC4357 Development Board";
-	compatible = "myir,myd-lpc4357", "nxp,lpc4357";
-
-	chosen {
-		stdout-path = "serial3:115200n8";
-	};
-
-	memory@28000000 {
-		device_type = "memory";
-		reg = <0x28000000 0x2000000>;
-	};
-
-	leds {
-		compatible = "gpio-leds";
-		pinctrl-names = "default";
-		pinctrl-0 = <&led_pins>;
-
-		led1 {
-			gpios = <&gpio LPC_GPIO(6,15) GPIO_ACTIVE_LOW>;
-			default-state = "off";
-		};
-
-		led2 {
-			gpios = <&gpio LPC_GPIO(6,16) GPIO_ACTIVE_LOW>;
-			default-state = "off";
-		};
-
-		led3 {
-			gpios = <&gpio LPC_GPIO(6,17) GPIO_ACTIVE_LOW>;
-			default-state = "off";
-		};
-
-		led4 {
-			gpios = <&gpio LPC_GPIO(6,10) GPIO_ACTIVE_LOW>;
-			default-state = "off";
-		};
-
-		led5 {
-			gpios = <&gpio LPC_GPIO(7,14) GPIO_ACTIVE_LOW>;
-			default-state = "off";
-		};
-
-		led6 {
-			gpios = <&gpio LPC_GPIO(6,14) GPIO_ACTIVE_LOW>;
-			default-state = "off";
-		};
-	};
-
-	panel: panel {
-		compatible = "innolux,at070tn92";
-		power-supply = <&vcc>;
-
-		port {
-			panel_input: endpoint {
-				remote-endpoint = <&lcdc_output>;
-			};
-		};
-	};
-
-	vcc: vcc_fixed {
-		compatible = "regulator-fixed";
-		regulator-name = "vcc-supply";
-		regulator-min-microvolt = <3300000>;
-		regulator-max-microvolt = <3300000>;
-	};
-
-	vmmc: vmmc_fixed {
-		compatible = "regulator-fixed";
-		regulator-name = "vmmc-supply";
-		regulator-min-microvolt = <3300000>;
-		regulator-max-microvolt = <3300000>;
-	};
-};
-
-&pinctrl {
-	can0_pins: can0-pins {
-		can_rd_cfg {
-			pins = "p3_1";
-			function = "can0";
-			input-enable;
-		};
-
-		can_td_cfg {
-			pins = "p3_2";
-			function = "can0";
-		};
-	};
-
-	can1_pins: can1-pins {
-		can_rd_cfg {
-			pins = "pe_1";
-			function = "can1";
-			input-enable;
-		};
-
-		can_td_cfg {
-			pins = "pe_0";
-			function = "can1";
-		};
-	};
-
-	emc_pins: emc-pins {
-		emc_addr0_22_cfg {
-			pins = "p2_9",  "p2_10", "p2_11", "p2_12",
-			       "p2_13", "p1_0",  "p1_1",  "p1_2",
-			       "p2_8",  "p2_7",  "p2_6",  "p2_2",
-			       "p2_1",  "p2_0",  "p6_8",  "p6_7",
-			       "pd_16", "pd_15", "pe_0",  "pe_1",
-			       "pe_2",  "pe_3",  "pe_4";
-			function = "emc";
-			slew-rate = <1>;
-			bias-disable;
-		};
-
-		emc_data0_15_cfg {
-			pins = "p1_7",  "p1_8",  "p1_9",  "p1_10",
-			       "p1_11", "p1_12", "p1_13", "p1_14",
-			       "p5_4",  "p5_5",  "p5_6",  "p5_7",
-			       "p5_0",  "p5_1",  "p5_2",  "p5_3";
-			function = "emc";
-			input-enable;
-			input-schmitt-disable;
-			slew-rate = <1>;
-			bias-disable;
-		};
-
-		emc_we_oe_cfg {
-			pins = "p1_6", "p1_3";
-			function = "emc";
-			slew-rate = <1>;
-			bias-disable;
-		};
-
-		emc_cs0_cfg {
-			pins = "p1_5";
-			function = "emc";
-			slew-rate = <1>;
-			bias-disable;
-		};
-
-		emc_sdram_dqm0_1_cfg {
-			pins = "p6_12", "p6_10";
-			function = "emc";
-			slew-rate = <1>;
-			bias-disable;
-		};
-
-		emc_sdram_ras_cas_cfg {
-			pins = "p6_5", "p6_4";
-			function = "emc";
-			slew-rate = <1>;
-			bias-disable;
-		};
-
-		emc_sdram_dycs0_cfg {
-			pins = "p6_9";
-			function = "emc";
-			slew-rate = <1>;
-			bias-disable;
-		};
-
-		emc_sdram_cke_cfg {
-			pins = "p6_11";
-			function = "emc";
-			slew-rate = <1>;
-			bias-disable;
-		};
-
-		emc_sdram_clock_cfg {
-			pins = "clk0";
-			function = "emc";
-			input-enable;
-			input-schmitt-disable;
-			slew-rate = <1>;
-			bias-disable;
-		};
-	};
-
-	enet_rmii_pins: enet-rmii-pins {
-		enet_rmii_rxd_cfg {
-			pins = "p1_15", "p0_0";
-			function = "enet";
-			input-enable;
-			input-schmitt-disable;
-			slew-rate = <1>;
-			bias-disable;
-		};
-
-		enet_rmii_txd_cfg {
-			pins = "p1_18", "p1_20";
-			function = "enet";
-			slew-rate = <1>;
-			bias-disable;
-		};
-
-		enet_rmii_rx_dv_cfg {
-			pins = "p1_16";
-			function = "enet";
-			input-enable;
-			input-schmitt-disable;
-			bias-disable;
-		};
-
-		enet_mdio_cfg {
-			pins = "p1_17";
-			function = "enet";
-			input-enable;
-			input-schmitt-disable;
-			bias-disable;
-		};
-
-		enet_mdc_cfg {
-			pins = "pc_1";
-			function = "enet";
-			slew-rate = <1>;
-			bias-disable;
-		};
-
-		enet_rmii_tx_en_cfg {
-			pins = "p0_1";
-			function = "enet";
-			bias-disable;
-		};
-
-		enet_ref_clk_cfg {
-			pins = "p1_19";
-			function = "enet";
-			slew-rate = <1>;
-			input-enable;
-			input-schmitt-disable;
-			bias-disable;
-		};
-	};
-
-	i2c0_pins: i2c0-pins {
-		i2c0_pins_cfg {
-			pins = "i2c0_scl", "i2c0_sda";
-			function = "i2c0";
-			input-enable;
-		};
-	};
-
-	i2c1_pins: i2c1-pins {
-		i2c1_pins_cfg {
-			pins = "pe_15", "pe_13";
-			function = "i2c1";
-			input-enable;
-		};
-	};
-
-	lcd_pins: lcd-pins {
-		lcd_vd0_23_cfg {
-			pins = "p4_1", "p4_4", "p4_3",  "p4_2",
-			       "p8_7", "p8_6", "p8_5",  "p8_4",
-			       "p7_5", "p4_8", "p4_10", "p4_9",
-			       "p8_3", "pb_6", "pb_5",  "pb_4",
-			       "p7_4", "p7_3", "p7_2",  "p7_1",
-			       "pb_3", "pb_2", "pb_1",  "pb_0";
-			function = "lcd";
-		};
-
-		lcd_vsync_en_dclk_lp_pwr_cfg {
-			pins = "p4_5", "p4_6", "p4_7", "p7_6", "p7_7";
-			function = "lcd";
-		};
-	};
-
-	led_pins: led-pins {
-		led_1_6_cfg {
-			pins = "pd_1", "pd_2", "pd_3", "pc_11", "pe_14", "pd_0";
-			function = "gpio";
-			bias-pull-down;
-		};
-	};
-
-	sdmmc_pins: sdmmc-pins {
-		sdmmc_clk_cfg {
-			pins = "pc_0";
-			function = "sdmmc";
-			slew-rate = <1>;
-			bias-pull-down;
-		};
-
-		sdmmc_cmd_dat0_3_cfg {
-			pins = "pc_4", "pc_5", "pc_6", "pc_7", "pc_10";
-			function = "sdmmc";
-			input-enable;
-			input-schmitt-disable;
-			slew-rate = <1>;
-			bias-disable;
-		};
-
-		sdmmc_cd_cfg {
-			pins = "pc_8";
-			function = "sdmmc";
-			input-enable;
-			bias-pull-down;
-		};
-	};
-
-	spifi_pins: spifi-pins {
-		spifi_sck_cfg {
-			pins = "p3_3";
-			function = "spifi";
-			input-enable;
-			input-schmitt-disable;
-			slew-rate = <1>;
-			bias-disable;
-		};
-
-		spifi_mosi_miso_sio2_sio3_cfg {
-			pins = "p3_7", "p3_6", "p3_5", "p3_4";
-			function = "spifi";
-			input-enable;
-			input-schmitt-disable;
-			slew-rate = <1>;
-			bias-disable;
-		};
-
-		spifi_cs_cfg {
-			pins = "p3_8";
-			function = "spifi";
-			bias-disable;
-		};
-	};
-
-	ssp1_pins: ssp1-pins {
-		ssp1_sck_cfg {
-			pins = "pf_4";
-			function = "ssp1";
-			slew-rate = <1>;
-			bias-pull-down;
-		};
-
-		ssp1_miso_cfg {
-			pins = "pf_6";
-			function = "ssp1";
-			input-enable;
-			input-schmitt-disable;
-			slew-rate = <1>;
-			bias-pull-down;
-		};
-
-		ssp1_mosi_cfg {
-			pins = "pf_7";
-			function = "ssp1";
-			slew-rate = <1>;
-			bias-pull-down;
-		};
-
-		ssp1_ssel_cfg {
-			pins = "pf_5";
-			function = "gpio";
-			bias-disable;
-		};
-	};
-
-	uart0_pins: uart0-pins {
-		uart0_rxd_cfg {
-			pins = "pf_11";
-			function = "uart0";
-			input-enable;
-			input-schmitt-disable;
-			bias-disable;
-		};
-
-		uart0_clk_dir_txd_cfg {
-			pins = "pf_8", "pf_9", "pf_10";
-			function = "uart0";
-			bias-pull-down;
-		};
-	};
-
-	uart1_pins: uart1-pins {
-		uart1_rxd_cfg {
-			pins = "pc_14";
-			function = "uart1";
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		uart1_dtr_txd_cfg {
-			pins = "pc_12", "pc_13";
-			function = "uart1";
-			bias-pull-down;
-		};
-	};
-
-	uart2_pins: uart2-pins {
-		uart2_rxd_cfg {
-			pins = "pa_2";
-			function = "uart2";
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		uart2_txd_cfg {
-			pins = "pa_1";
-			function = "uart2";
-			bias-pull-down;
-		};
-	};
-
-	uart3_pins: uart3-pins {
-		uart3_rx_cfg {
-			pins = "p2_4";
-			function = "uart3";
-			bias-disable;
-			input-enable;
-			input-schmitt-disable;
-		};
-
-		uart3_tx_cfg {
-			pins = "p2_3";
-			function = "uart3";
-			bias-pull-down;
-		};
-	};
-
-	usb0_pins: usb0-pins {
-		usb0_pwr_enable_cfg {
-			pins = "p6_3";
-			function = "usb0";
-		};
-
-		usb0_pwr_fault_cfg {
-			pins = "p8_0";
-			function = "usb0";
-			bias-disable;
-			input-enable;
-		};
-	};
-};
-
-&adc1 {
-	status = "okay";
-	vref-supply = <&vcc>;
-};
-
-&can0 {
-	status = "okay";
-	pinctrl-names = "default";
-	pinctrl-0 = <&can0_pins>;
-};
-
-/* Pin conflict with EMC, muxed by JP5 and JP6 */
-&can1 {
-	status = "disabled";
-	pinctrl-names = "default";
-	pinctrl-0 = <&can1_pins>;
-};
-
-&emc {
-	status = "okay";
-	pinctrl-names = "default";
-	pinctrl-0 = <&emc_pins>;
-
-	cs0 {
-		#address-cells = <2>;
-		#size-cells = <1>;
-		ranges;
-
-		mpmc,cs = <0>;
-		mpmc,memory-width = <16>;
-		mpmc,byte-lane-low;
-		mpmc,write-enable-delay = <0>;
-		mpmc,output-enable-delay = <0>;
-		mpmc,read-access-delay = <70>;
-		mpmc,page-mode-read-delay = <70>;
-
-		/* SST/Microchip SST39VF1601 */
-		flash@0,0 {
-			compatible = "cfi-flash";
-			reg = <0 0 0x400000>;
-			bank-width = <2>;
-		};
-	};
-};
-
-&enet_tx_clk {
-	clock-frequency = <50000000>;
-};
-
-&i2c0 {
-	status = "okay";
-	pinctrl-names = "default";
-	pinctrl-0 = <&i2c0_pins>;
-	clock-frequency = <400000>;
-};
-
-&i2c1 {
-	status = "okay";
-	pinctrl-names = "default";
-	pinctrl-0 = <&i2c1_pins>;
-	clock-frequency = <400000>;
-
-	sensor@49 {
-		compatible = "national,lm75";
-		reg = <0x49>;
-	};
-
-	eeprom@50 {
-		compatible = "atmel,24c512";
-		reg = <0x50>;
-	};
-};
-
-&lcdc {
-	status = "okay";
-	pinctrl-names = "default";
-	pinctrl-0 = <&lcd_pins>;
-
-	max-memory-bandwidth = <92240000>;
-
-	port {
-		lcdc_output: endpoint {
-			remote-endpoint = <&panel_input>;
-			arm,pl11x,tft-r0g0b0-pads = <0 8 16>;
-		};
-	};
-};
-
-&mac {
-	status = "okay";
-	phy-mode = "rmii";
-	pinctrl-names = "default";
-	pinctrl-0 = <&enet_rmii_pins>;
-	phy-handle = <&phy1>;
-
-	mdio {
-		#address-cells = <1>;
-		#size-cells = <0>;
-		compatible = "snps,dwmac-mdio";
-
-		phy1: ethernet-phy@1 {
-			reg = <1>;
-		};
-	};
-};
-
-&mmcsd {
-	status = "okay";
-	pinctrl-names = "default";
-	pinctrl-0 = <&sdmmc_pins>;
-	bus-width = <4>;
-	vmmc-supply = <&vmmc>;
-};
-
-/* Pin conflict with SSP0, the latter is routed to J17 pin header */
-&spifi {
-	status = "okay";
-	pinctrl-names = "default";
-	pinctrl-0 = <&spifi_pins>;
-
-	/* Atmel AT25DF321A */
-	flash@0 {
-		compatible = "jedec,spi-nor";
-		reg = <0>;
-		spi-max-frequency = <51000000>;
-		spi-cpol;
-		spi-cpha;
-	};
-};
-
-&ssp1 {
-	status = "okay";
-	pinctrl-names = "default";
-	pinctrl-0 = <&ssp1_pins>;
-	num-cs = <1>;
-	cs-gpios = <&gpio LPC_GPIO(7,19) GPIO_ACTIVE_LOW>;
-};
-
-/* Routed to J17 pin header */
-&uart0 {
-	status = "okay";
-	pinctrl-names = "default";
-	pinctrl-0 = <&uart0_pins>;
-};
-
-/* RS485 */
-&uart1 {
-	status = "okay";
-	pinctrl-names = "default";
-	pinctrl-0 = <&uart1_pins>;
-};
-
-/* Routed to J17 pin header */
-&uart2 {
-	status = "okay";
-	pinctrl-names = "default";
-	pinctrl-0 = <&uart2_pins>;
-};
-
-&uart3 {
-	status = "okay";
-	pinctrl-names = "default";
-	pinctrl-0 = <&uart3_pins>;
-};
-
-&usb0 {
-	status = "okay";
-	pinctrl-names = "default";
-	pinctrl-0 = <&usb0_pins>;
-};
diff --git a/arch/arm/boot/dts/nxp/lpc/lpc4357.dtsi b/arch/arm/boot/dts/nxp/lpc/lpc4357.dtsi
deleted file mode 100644
index d138ee7869ff..000000000000
--- a/arch/arm/boot/dts/nxp/lpc/lpc4357.dtsi
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * NXP LPC435x, LPC433x, LPC4327, LPC4325, LPC4317 and LPC4315 SoC
- *
- * Copyright 2015 Joachim Eastwood <manabian@gmail.com>
- *
- * This code is released using a dual license strategy: BSD/GPL
- * You can choose the licence that better fits your requirements.
- *
- * Released under the terms of 3-clause BSD License
- * Released under the terms of GNU General Public License Version 2.0
- *
- */
-
-/ {
-	compatible = "nxp,lpc4357";
-
-	cpus {
-		cpu@0 {
-			compatible = "arm,cortex-m4";
-		};
-	};
-
-	soc {
-		sram0: sram@10000000 {
-			compatible = "mmio-sram";
-			reg = <0x10000000 0x8000>; /* 32 KiB local SRAM */
-			#address-cells = <1>;
-			#size-cells = <1>;
-			ranges;
-		};
-
-		sram1: sram@10080000 {
-			compatible = "mmio-sram";
-			reg = <0x10080000 0xa000>; /* 32 + 8 KiB local SRAM */
-			#address-cells = <1>;
-			#size-cells = <1>;
-			ranges;
-		};
-
-		sram2: sram@20000000 {
-			compatible = "mmio-sram";
-			reg = <0x20000000 0x10000>; /* 4 x 16 KiB AHB SRAM */
-			#address-cells = <1>;
-			#size-cells = <1>;
-			ranges;
-		};
-	};
-};
-
-&eeprom {
-	status = "okay";
-};
diff --git a/arch/arm/configs/lpc18xx_defconfig b/arch/arm/configs/lpc18xx_defconfig
deleted file mode 100644
index f142a6637ede..000000000000
--- a/arch/arm/configs/lpc18xx_defconfig
+++ /dev/null
@@ -1,158 +0,0 @@
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_PREEMPT=y
-CONFIG_BLK_DEV_INITRD=y
-# CONFIG_RD_BZIP2 is not set
-# CONFIG_RD_LZMA is not set
-# CONFIG_RD_XZ is not set
-# CONFIG_RD_LZO is not set
-# CONFIG_RD_LZ4 is not set
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-# CONFIG_UID16 is not set
-CONFIG_BASE_SMALL=y
-# CONFIG_FUTEX is not set
-# CONFIG_EPOLL is not set
-# CONFIG_SIGNALFD is not set
-# CONFIG_EVENTFD is not set
-# CONFIG_AIO is not set
-CONFIG_EXPERT=y
-# CONFIG_MMU is not set
-CONFIG_ARCH_LPC18XX=y
-CONFIG_SET_MEM_PARAM=y
-CONFIG_DRAM_BASE=0x28000000
-CONFIG_DRAM_SIZE=0x02000000
-CONFIG_FLASH_MEM_BASE=0x1b000000
-CONFIG_FLASH_SIZE=0x00080000
-CONFIG_ARM_APPENDED_DTB=y
-CONFIG_BINFMT_FLAT=y
-CONFIG_BINFMT_ZFLAT=y
-# CONFIG_COREDUMP is not set
-# CONFIG_VM_EVENT_COUNTERS is not set
-CONFIG_NET=y
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_INET=y
-# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
-# CONFIG_INET_XFRM_MODE_TUNNEL is not set
-# CONFIG_INET_XFRM_MODE_BEET is not set
-# CONFIG_INET_DIAG is not set
-# CONFIG_IPV6 is not set
-# CONFIG_WIRELESS is not set
-CONFIG_DEVTMPFS=y
-CONFIG_DEVTMPFS_MOUNT=y
-# CONFIG_FW_LOADER is not set
-CONFIG_MTD=y
-CONFIG_MTD_BLOCK=y
-CONFIG_MTD_CFI=y
-CONFIG_MTD_CFI_INTELEXT=y
-CONFIG_MTD_CFI_AMDSTD=y
-CONFIG_MTD_CFI_STAA=y
-CONFIG_MTD_PHYSMAP=y
-CONFIG_MTD_PHYSMAP_OF=y
-CONFIG_MTD_SPI_NOR=y
-# CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set
-CONFIG_SPI_NXP_SPIFI=y
-CONFIG_BLK_DEV_RAM=y
-CONFIG_SRAM=y
-CONFIG_EEPROM_AT24=y
-CONFIG_SCSI=y
-CONFIG_BLK_DEV_SD=y
-# CONFIG_BLK_DEV_BSG is not set
-# CONFIG_SCSI_LOWLEVEL is not set
-CONFIG_NETDEVICES=y
-# CONFIG_NET_VENDOR_ARC is not set
-# CONFIG_NET_VENDOR_BROADCOM is not set
-# CONFIG_NET_VENDOR_CIRRUS is not set
-# CONFIG_NET_VENDOR_FARADAY is not set
-# CONFIG_NET_VENDOR_HISILICON is not set
-# CONFIG_NET_VENDOR_INTEL is not set
-# CONFIG_NET_VENDOR_MARVELL is not set
-# CONFIG_NET_VENDOR_MICREL is not set
-# CONFIG_NET_VENDOR_MICROCHIP is not set
-# CONFIG_NET_VENDOR_NATSEMI is not set
-# CONFIG_NET_VENDOR_QUALCOMM is not set
-# CONFIG_NET_VENDOR_ROCKER is not set
-# CONFIG_NET_VENDOR_SAMSUNG is not set
-# CONFIG_NET_VENDOR_SEEQ is not set
-# CONFIG_NET_VENDOR_SMSC is not set
-CONFIG_STMMAC_ETH=y
-# CONFIG_NET_VENDOR_VIA is not set
-# CONFIG_NET_VENDOR_WIZNET is not set
-CONFIG_SMSC_PHY=y
-# CONFIG_USB_NET_DRIVERS is not set
-# CONFIG_WLAN is not set
-CONFIG_INPUT_EVDEV=y
-# CONFIG_KEYBOARD_ATKBD is not set
-CONFIG_KEYBOARD_GPIO=y
-CONFIG_KEYBOARD_GPIO_POLLED=y
-# CONFIG_INPUT_MOUSE is not set
-# CONFIG_SERIO is not set
-# CONFIG_VT is not set
-# CONFIG_UNIX98_PTYS is not set
-# CONFIG_LEGACY_PTYS is not set
-CONFIG_SERIAL_8250=y
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_SERIAL_OF_PLATFORM=y
-CONFIG_SERIAL_NONSTANDARD=y
-# CONFIG_HW_RANDOM is not set
-CONFIG_I2C_LPC2K=y
-CONFIG_SPI=y
-CONFIG_SPI_PL022=y
-CONFIG_GPIOLIB=y
-CONFIG_GPIO_SYSFS=y
-CONFIG_GPIO_74XX_MMIO=y
-CONFIG_GPIO_PCF857X=y
-CONFIG_SENSORS_JC42=y
-CONFIG_SENSORS_LM75=y
-CONFIG_WATCHDOG=y
-CONFIG_LPC18XX_WATCHDOG=y
-CONFIG_REGULATOR=y
-CONFIG_REGULATOR_FIXED_VOLTAGE=y
-CONFIG_DRM=y
-CONFIG_DRM_PL111=y
-CONFIG_FB_MODE_HELPERS=y
-CONFIG_USB=y
-CONFIG_USB_EHCI_HCD=y
-CONFIG_USB_EHCI_ROOT_HUB_TT=y
-CONFIG_USB_EHCI_HCD_PLATFORM=y
-CONFIG_USB_STORAGE=y
-CONFIG_MMC=y
-CONFIG_MMC_DW=y
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-CONFIG_LEDS_PCA9532=y
-CONFIG_LEDS_PCA9532_GPIO=y
-CONFIG_LEDS_GPIO=y
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_DRV_LPC24XX=y
-CONFIG_DMADEVICES=y
-CONFIG_AMBA_PL08X=y
-CONFIG_LPC18XX_DMAMUX=y
-CONFIG_MEMORY=y
-CONFIG_ARM_PL172_MPMC=y
-CONFIG_IIO=y
-CONFIG_MMA7455_I2C=y
-CONFIG_LPC18XX_ADC=y
-CONFIG_LPC18XX_DAC=y
-CONFIG_IIO_SYSFS_TRIGGER=y
-CONFIG_PWM=y
-CONFIG_PWM_LPC18XX_SCT=y
-CONFIG_PHY_LPC18XX_USB_OTG=y
-CONFIG_NVMEM_LPC18XX_EEPROM=y
-CONFIG_EXT2_FS=y
-# CONFIG_FILE_LOCKING is not set
-# CONFIG_DNOTIFY is not set
-# CONFIG_INOTIFY_USER is not set
-CONFIG_JFFS2_FS=y
-# CONFIG_NETWORK_FILESYSTEMS is not set
-CONFIG_PRINTK_TIME=y
-# CONFIG_ENABLE_MUST_CHECK is not set
-# CONFIG_DEBUG_BUGVERBOSE is not set
-CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_DEBUG_FS=y
-# CONFIG_SLUB_DEBUG is not set
-# CONFIG_SCHED_DEBUG is not set
-CONFIG_DEBUG_LL=y
-CONFIG_EARLY_PRINTK=y
diff --git a/arch/arm/mach-lpc18xx/Makefile b/arch/arm/mach-lpc18xx/Makefile
deleted file mode 100644
index c80d80c199d3..000000000000
--- a/arch/arm/mach-lpc18xx/Makefile
+++ /dev/null
@@ -1,2 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-obj-y += board-dt.o
diff --git a/arch/arm/mach-lpc18xx/board-dt.c b/arch/arm/mach-lpc18xx/board-dt.c
deleted file mode 100644
index 4729eb83401a..000000000000
--- a/arch/arm/mach-lpc18xx/board-dt.c
+++ /dev/null
@@ -1,19 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-/*
- * Device Tree board file for NXP LPC18xx/43xx
- *
- * Copyright (C) 2015 Joachim Eastwood <manabian@gmail.com>
- */
-
-#include <asm/mach/arch.h>
-
-static const char *const lpc18xx_43xx_compat[] __initconst = {
-	"nxp,lpc1850",
-	"nxp,lpc4350",
-	"nxp,lpc4370",
-	NULL
-};
-
-DT_MACHINE_START(LPC18XXDT, "NXP LPC18xx/43xx (Device Tree)")
-	.dt_compat = lpc18xx_43xx_compat,
-MACHINE_END
-- 
2.53.0



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

* [PATCH 11/13] ARM: versatile: remove mps2 support
  2026-09-08 15:27 [PATCH 00/13] ARM: deprecated platform removal Arnd Bergmann
                   ` (2 preceding siblings ...)
  2026-09-08 15:27 ` [PATCH 09/13] ARM: lpc18xx: remove entire platform Arnd Bergmann
@ 2026-09-08 15:28 ` Arnd Bergmann
  2026-09-08 15:41   ` Vladimir Murzin
                     ` (2 more replies)
  2026-09-08 15:28 ` [PATCH 12/13] ARM: at91: remove samv7 support Arnd Bergmann
                   ` (7 subsequent siblings)
  11 siblings, 3 replies; 49+ messages in thread
From: Arnd Bergmann @ 2026-09-08 15:28 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Alexandre Belloni, Linus Walleij,
	Russell King
  Cc: Drew Fustini, Arnd Bergmann, Rob Herring, Conor Dooley,
	Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi, Frank Li,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Vladimir Zapolskiy, Stefan Agner, Maxime Coquelin,
	Alexandre Torgue, Aaro Koskinen, Andreas Kemnade, Kevin Hilman,
	Roger Quadros, Tony Lindgren, Nicolas Ferre, Claudiu Beznea,
	Andrew Lunn, Sebastian Hesselbarth, Gregory Clement,
	Robert Jarzmik, Kristoffer Ericson, Ethan Nelson-Moore,
	Geert Uytterhoeven, Alexander Sverdlin, Shawn Guo,
	Karl Mehltretter, David Hildenbrand (Arm), Nicolas Pitre,
	linux-doc, linux-kernel, linux-arm-kernel, devicetree, imx,
	linux-stm32, linux-omap, Krzysztof Kozlowski, Andi Shyti,
	linux-i2c

From: Arnd Bergmann <arnd@arndb.de>

The Arm mps2 platform is the reference implementation for Arm
microcontrollers and is useful for testing but not expected to be used
as a production device.

With all the Cortex-M based products gone, there is no longer a need
for a reference platform either, so remove it as well.

Cc: Liviu Dudau <liviu.dudau@arm.com>
Cc: Sudeep Holla <sudeep.holla@kernel.org>
Cc: Lorenzo Pieralisi <lpieralisi@kernel.org>
Cc: Linus Walleij <linusw@kernel.org>
Cc: Rob Herring <robh@kernel.org>
Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
Cc: Conor Dooley <conor+dt@kernel.org>
Cc: Andi Shyti <andi.shyti@kernel.org>
Cc: Ethan Nelson-Moore <enelsonmoore@gmail.com>
Cc: devicetree@vger.kernel.org
Cc: linux-i2c@vger.kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/arm/Kconfig                     |  14 --
 arch/arm/boot/dts/arm/Makefile       |   3 -
 arch/arm/boot/dts/arm/mps2-an385.dts |  92 -----------
 arch/arm/boot/dts/arm/mps2-an399.dts |  92 -----------
 arch/arm/boot/dts/arm/mps2.dtsi      | 220 ---------------------------
 arch/arm/configs/mps2_defconfig      | 102 -------------
 arch/arm/mach-versatile/Makefile     |   3 -
 arch/arm/mach-versatile/v2m-mps2.c   |  17 ---
 drivers/i2c/busses/Kconfig           |   2 +-
 9 files changed, 1 insertion(+), 544 deletions(-)
 delete mode 100644 arch/arm/boot/dts/arm/mps2-an385.dts
 delete mode 100644 arch/arm/boot/dts/arm/mps2-an399.dts
 delete mode 100644 arch/arm/boot/dts/arm/mps2.dtsi
 delete mode 100644 arch/arm/configs/mps2_defconfig
 delete mode 100644 arch/arm/mach-versatile/v2m-mps2.c

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 13b38be3353a..cf380b686867 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -443,20 +443,6 @@ source "arch/arm/mach-zte/Kconfig"
 
 source "arch/arm/mach-zynq/Kconfig"
 
-config ARCH_MPS2
-	bool "ARM MPS2 platform (DEPRECATED)"
-	depends on ARM_SINGLE_ARMV7M
-	select ARM_AMBA
-	select CLKSRC_MPS2
-	help
-	  Support for Cortex-M Prototyping System (or V2M-MPS2) which comes
-	  with a range of available cores like Cortex-M3/M4/M7.
-
-	  Please, note that depends which Application Note is used memory map
-	  for the platform may vary, so adjustment of RAM base might be needed.
-
-	  This platform is scheduled for removal in early 2027
-
 # Definitions to make life easier
 config PLAT_ORION
 	bool
diff --git a/arch/arm/boot/dts/arm/Makefile b/arch/arm/boot/dts/arm/Makefile
index 07ebb64e2cd0..c01593dd197d 100644
--- a/arch/arm/boot/dts/arm/Makefile
+++ b/arch/arm/boot/dts/arm/Makefile
@@ -3,9 +3,6 @@ dtb-$(CONFIG_ARCH_INTEGRATOR) += \
 	integratorap.dtb \
 	integratorap-im-pd1.dtb \
 	integratorcp.dtb
-dtb-$(CONFIG_ARCH_MPS2) += \
-	mps2-an385.dtb \
-	mps2-an399.dtb
 dtb-$(CONFIG_ARCH_REALVIEW) += \
 	arm-realview-pb1176.dtb \
 	arm-realview-pb11mp.dtb \
diff --git a/arch/arm/boot/dts/arm/mps2-an385.dts b/arch/arm/boot/dts/arm/mps2-an385.dts
deleted file mode 100644
index aebbebfc25d1..000000000000
--- a/arch/arm/boot/dts/arm/mps2-an385.dts
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright (C) 2015 ARM Limited
- *
- * Author: Vladimir Murzin <vladimir.murzin@arm.com>
- *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file 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 file 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.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/dts-v1/;
-
-#include "mps2.dtsi"
-
-/ {
-	model = "ARM MPS2 Application Note 385/386";
-	compatible = "arm,mps2";
-
-	aliases {
-		serial0 = &uart0;
-	};
-
-	chosen {
-		bootargs = "earlycon";
-		stdout-path = "serial0:9600n8";
-	};
-
-	memory@21000000 {
-		device_type = "memory";
-		reg = <0x21000000 0x1000000>;
-	};
-
-	smb {
-		ethernet@0,0 {
-			compatible = "smsc,lan9220", "smsc,lan9115";
-			reg = <0 0x0 0x10000>;
-			interrupts = <13>;
-			interrupt-parent = <&nvic>;
-			smsc,irq-active-high;
-		};
-	};
-};
-
-&uart0 {
-	status = "okay";
-};
-
-&timer0 {
-	status = "okay";
-};
-
-&timer1 {
-	status = "okay";
-};
-
-&wdt {
-	status = "okay";
-};
diff --git a/arch/arm/boot/dts/arm/mps2-an399.dts b/arch/arm/boot/dts/arm/mps2-an399.dts
deleted file mode 100644
index 349abf70b2a5..000000000000
--- a/arch/arm/boot/dts/arm/mps2-an399.dts
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright (C) 2015 ARM Limited
- *
- * Author: Vladimir Murzin <vladimir.murzin@arm.com>
- *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file 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 file 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.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/dts-v1/;
-
-#include "mps2.dtsi"
-
-/ {
-	model = "ARM MPS2 Application Note 399/400";
-	compatible = "arm,mps2";
-
-	aliases {
-		serial0 = &uart0;
-	};
-
-	chosen {
-		bootargs = "earlycon";
-		stdout-path = "serial0:9600n8";
-	};
-
-	memory@60000000 {
-		device_type = "memory";
-		reg = <0x60000000 0x1000000>;
-	};
-
-	smb {
-		ethernet@1,0 {
-			compatible = "smsc,lan9220", "smsc,lan9115";
-			reg = <1 0x0 0x10000>;
-			interrupts = <13>;
-			interrupt-parent = <&nvic>;
-			smsc,irq-active-high;
-		};
-	};
-};
-
-&uart0 {
-	status = "okay";
-};
-
-&timer0 {
-	status = "okay";
-};
-
-&timer1 {
-	status = "okay";
-};
-
-&wdt {
-	status = "okay";
-};
diff --git a/arch/arm/boot/dts/arm/mps2.dtsi b/arch/arm/boot/dts/arm/mps2.dtsi
deleted file mode 100644
index e240bc8aa605..000000000000
--- a/arch/arm/boot/dts/arm/mps2.dtsi
+++ /dev/null
@@ -1,220 +0,0 @@
-/*
- * Copyright (C) 2015 ARM Limited
- *
- * Author: Vladimir Murzin <vladimir.murzin@arm.com>
- *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file 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 file 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.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#include "../armv7-m.dtsi"
-
-/ {
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	oscclk0: clock-50000000 {
-		compatible = "fixed-clock";
-		#clock-cells = <0>;
-		clock-frequency = <50000000>;
-	};
-
-	oscclk1: clock-24576000 {
-		compatible = "fixed-clock";
-		#clock-cells = <0>;
-		clock-frequency = <24576000>;
-	};
-
-	oscclk2: clock-25000000 {
-		compatible = "fixed-clock";
-		#clock-cells = <0>;
-		clock-frequency = <25000000>;
-	};
-
-	cfgclk: clock-5000000 {
-		compatible = "fixed-clock";
-		#clock-cells = <0>;
-		clock-frequency = <5000000>;
-	};
-
-	spicfgclk: clock-75000000 {
-		compatible = "fixed-clock";
-		#clock-cells = <0>;
-		clock-frequency = <75000000>;
-	};
-
-	sysclk: spiclcd: spicon: i2cclcd: i2caud: clock-sys {
-		compatible = "fixed-factor-clock";
-		clocks = <&oscclk0>;
-		#clock-cells = <0>;
-		clock-div = <2>;
-		clock-mult = <1>;
-	};
-
-	audmclk: clk-12388000 {
-		compatible = "fixed-factor-clock";
-		clocks = <&oscclk1>;
-		#clock-cells = <0>;
-		clock-div = <2>;
-		clock-mult = <1>;
-	};
-
-	audsclk: clk-3072000 {
-		compatible = "fixed-factor-clock";
-		clocks = <&oscclk1>;
-		#clock-cells = <0>;
-		clock-div = <8>;
-		clock-mult = <1>;
-	};
-
-	soc {
-		compatible = "simple-bus";
-		ranges;
-
-		apb@40000000 {
-			compatible = "simple-bus";
-			#address-cells = <1>;
-			#size-cells = <1>;
-			ranges = <0 0x40000000 0x10000>;
-
-			timer0: mps2-timer0@0 {
-				compatible = "arm,mps2-timer";
-				reg = <0x0 0x1000>;
-				interrupts = <8>;
-				clocks = <&sysclk>;
-				status = "disabled";
-			};
-
-			timer1: mps2-timer1@1000 {
-				compatible = "arm,mps2-timer";
-				reg = <0x1000 0x1000>;
-				interrupts = <9>;
-				clocks = <&sysclk>;
-				status = "disabled";
-			};
-
-			timer2: dual-timer@2000 {
-				compatible = "arm,sp804", "arm,primecell";
-				reg = <0x2000 0x1000>;
-				clocks = <&sysclk>, <&sysclk>, <&sysclk>;
-				clock-names = "timer0clk", "timer1clk",
-					       "apb_pclk";
-				interrupts = <10>;
-				status = "disabled";
-			};
-
-			uart0: serial@4000 {
-				compatible = "arm,mps2-uart";
-				reg = <0x4000 0x1000>;
-				interrupts = <0>, <1>, <12>;
-				clocks = <&sysclk>;
-				status = "disabled";
-			};
-
-			uart1: serial@5000 {
-				compatible = "arm,mps2-uart";
-				reg = <0x5000 0x1000>;
-				interrupts = <2>, <3>, <12>;
-				clocks = <&sysclk>;
-				status = "disabled";
-			};
-
-			uart2: serial@6000 {
-				compatible = "arm,mps2-uart";
-				reg = <0x6000 0x1000>;
-				interrupts = <4>, <5>, <12>;
-				clocks = <&sysclk>;
-				status = "disabled";
-			};
-
-			wdt: watchdog@8000 {
-				compatible = "arm,sp805", "arm,primecell";
-				arm,primecell-periphid = <0x00141805>;
-				reg = <0x8000 0x1000>;
-				interrupts = <0>;
-				clocks = <&sysclk>, <&sysclk>;
-				clock-names = "wdog_clk", "apb_pclk";
-				status = "disabled";
-			};
-		};
-	};
-
-	fpga@40020000 {
-		compatible = "simple-bus";
-		#address-cells = <1>;
-		#size-cells = <1>;
-		ranges = <0 0x40020000 0x10000>;
-
-		fpgaio@8000 {
-			compatible = "syscon", "simple-mfd";
-			reg = <0x8000 0x10>;
-
-			ranges = <0x0 0x8000 0x10>;
-			#address-cells = <1>;
-			#size-cells = <1>;
-
-			led@0,0 {
-				compatible = "register-bit-led";
-				reg = <0x00 0x04>;
-				offset = <0x0>;
-				mask = <0x01>;
-				label = "userled:0";
-				linux,default-trigger = "heartbeat";
-				default-state = "on";
-			};
-
-			led@0,1 {
-				compatible = "register-bit-led";
-				reg = <0x00 0x04>;
-				offset = <0x0>;
-				mask = <0x02>;
-				label = "userled:1";
-				linux,default-trigger = "usr";
-				default-state = "off";
-			};
-		};
-	};
-
-	smb {
-		compatible = "simple-bus";
-		#address-cells = <2>;
-		#size-cells = <1>;
-		ranges = <0 0 0x40200000 0x10000>,
-			 <1 0 0xa0000000 0x10000>;
-	};
-};
diff --git a/arch/arm/configs/mps2_defconfig b/arch/arm/configs/mps2_defconfig
deleted file mode 100644
index cacf3876f6e4..000000000000
--- a/arch/arm/configs/mps2_defconfig
+++ /dev/null
@@ -1,102 +0,0 @@
-CONFIG_NO_HZ_IDLE=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_PREEMPT_VOLUNTARY=y
-CONFIG_LOG_BUF_SHIFT=16
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-CONFIG_EXPERT=y
-# CONFIG_UID16 is not set
-CONFIG_BASE_SMALL=y
-# CONFIG_FUTEX is not set
-# CONFIG_EPOLL is not set
-# CONFIG_SIGNALFD is not set
-# CONFIG_EVENTFD is not set
-# CONFIG_AIO is not set
-# CONFIG_MMU is not set
-CONFIG_ARCH_MPS2=y
-CONFIG_SET_MEM_PARAM=y
-CONFIG_DRAM_BASE=0x21000000
-CONFIG_DRAM_SIZE=0x1000000
-# CONFIG_SUSPEND is not set
-# CONFIG_BLOCK is not set
-CONFIG_BINFMT_FLAT=y
-# CONFIG_COREDUMP is not set
-# CONFIG_VM_EVENT_COUNTERS is not set
-CONFIG_NET=y
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_INET=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
-# CONFIG_INET_XFRM_MODE_TUNNEL is not set
-# CONFIG_INET_XFRM_MODE_BEET is not set
-# CONFIG_INET_DIAG is not set
-# CONFIG_IPV6 is not set
-# CONFIG_WIRELESS is not set
-CONFIG_DEVTMPFS=y
-CONFIG_DEVTMPFS_MOUNT=y
-# CONFIG_FW_LOADER is not set
-CONFIG_NETDEVICES=y
-# CONFIG_NET_CORE is not set
-# CONFIG_NET_VENDOR_ARC is not set
-# CONFIG_NET_CADENCE is not set
-# CONFIG_NET_VENDOR_BROADCOM is not set
-# CONFIG_NET_VENDOR_CIRRUS is not set
-# CONFIG_NET_VENDOR_EZCHIP is not set
-# CONFIG_NET_VENDOR_FARADAY is not set
-# CONFIG_NET_VENDOR_HISILICON is not set
-# CONFIG_NET_VENDOR_INTEL is not set
-# CONFIG_NET_VENDOR_MARVELL is not set
-# CONFIG_NET_VENDOR_MICREL is not set
-# CONFIG_NET_VENDOR_NATSEMI is not set
-# CONFIG_NET_VENDOR_QUALCOMM is not set
-# CONFIG_NET_VENDOR_RENESAS is not set
-# CONFIG_NET_VENDOR_ROCKER is not set
-# CONFIG_NET_VENDOR_SAMSUNG is not set
-# CONFIG_NET_VENDOR_SEEQ is not set
-CONFIG_SMSC911X=y
-# CONFIG_NET_VENDOR_STMICRO is not set
-# CONFIG_NET_VENDOR_VIA is not set
-# CONFIG_NET_VENDOR_WIZNET is not set
-# CONFIG_WLAN is not set
-# CONFIG_INPUT is not set
-# CONFIG_SERIO is not set
-# CONFIG_VT is not set
-# CONFIG_LEGACY_PTYS is not set
-CONFIG_SERIAL_MPS2_UART_CONSOLE=y
-CONFIG_SERIAL_MPS2_UART=y
-CONFIG_SERIAL_NONSTANDARD=y
-# CONFIG_HW_RANDOM is not set
-# CONFIG_HWMON is not set
-CONFIG_WATCHDOG=y
-CONFIG_ARM_SP805_WATCHDOG=y
-CONFIG_MFD_SYSCON=y
-# CONFIG_USB_SUPPORT is not set
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-CONFIG_LEDS_SYSCON=y
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=y
-CONFIG_LEDS_TRIGGER_ONESHOT=y
-CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-CONFIG_LEDS_TRIGGER_BACKLIGHT=y
-CONFIG_LEDS_TRIGGER_CPU=y
-CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
-CONFIG_ARM_TIMER_SP804=y
-# CONFIG_DNOTIFY is not set
-# CONFIG_INOTIFY_USER is not set
-# CONFIG_MISC_FILESYSTEMS is not set
-CONFIG_NFS_FS=y
-CONFIG_NFS_V4=y
-CONFIG_NFS_V4_1=y
-CONFIG_NFS_V4_2=y
-CONFIG_ROOT_NFS=y
-CONFIG_NLS=y
-CONFIG_PRINTK_TIME=y
-# CONFIG_ENABLE_MUST_CHECK is not set
-# CONFIG_DEBUG_BUGVERBOSE is not set
-CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y
-CONFIG_DEBUG_FS=y
-# CONFIG_SLUB_DEBUG is not set
-# CONFIG_SCHED_DEBUG is not set
-CONFIG_MEMTEST=y
diff --git a/arch/arm/mach-versatile/Makefile b/arch/arm/mach-versatile/Makefile
index d819fb2fc450..07171ef1d6a7 100644
--- a/arch/arm/mach-versatile/Makefile
+++ b/arch/arm/mach-versatile/Makefile
@@ -22,9 +22,6 @@ obj-$(CONFIG_ARCH_VEXPRESS_TC2_PM)	+= tc2_pm.o
 CFLAGS_tc2_pm.o				+= -march=armv7-a
 CFLAGS_REMOVE_tc2_pm.o			= -pg
 
-# mps2
-obj-$(CONFIG_ARCH_MPS2)			+= v2m-mps2.o
-
 ifdef CONFIG_SMP
 obj-y					+= headsmp.o platsmp.o
 obj-$(CONFIG_ARCH_REALVIEW)		+= platsmp-realview.o
diff --git a/arch/arm/mach-versatile/v2m-mps2.c b/arch/arm/mach-versatile/v2m-mps2.c
deleted file mode 100644
index 5b50d8e95cd7..000000000000
--- a/arch/arm/mach-versatile/v2m-mps2.c
+++ /dev/null
@@ -1,17 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-/*
- * Copyright (C) 2015 ARM Limited
- *
- * Author: Vladimir Murzin <vladimir.murzin@arm.com>
- */
-
-#include <asm/mach/arch.h>
-
-static const char *const mps2_compat[] __initconst = {
-	"arm,mps2",
-	NULL
-};
-
-DT_MACHINE_START(MPS2DT, "MPS2 (Device Tree Support)")
-	.dt_compat = mps2_compat,
-MACHINE_END
diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
index d7b89508311f..9d60d4b650ec 100644
--- a/drivers/i2c/busses/Kconfig
+++ b/drivers/i2c/busses/Kconfig
@@ -1260,7 +1260,7 @@ config I2C_UNIPHIER_F
 
 config I2C_VERSATILE
 	tristate "ARM Versatile/Realview I2C bus support"
-	depends on ARCH_MPS2 || ARCH_VERSATILE || ARCH_REALVIEW || ARCH_VEXPRESS || COMPILE_TEST
+	depends on ARCH_VERSATILE || ARCH_REALVIEW || ARCH_VEXPRESS || COMPILE_TEST
 	select I2C_ALGOBIT
 	help
 	  Say yes if you want to support the I2C serial bus on ARMs Versatile
-- 
2.53.0



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

* [PATCH 12/13] ARM: at91: remove samv7 support
  2026-09-08 15:27 [PATCH 00/13] ARM: deprecated platform removal Arnd Bergmann
                   ` (3 preceding siblings ...)
  2026-09-08 15:28 ` [PATCH 11/13] ARM: versatile: remove mps2 support Arnd Bergmann
@ 2026-09-08 15:28 ` Arnd Bergmann
  2026-09-08 17:39   ` Linus Walleij
                     ` (4 more replies)
  2026-09-08 15:28 ` [PATCH 13/13] ARM: axxia: remove entire platform Arnd Bergmann
                   ` (6 subsequent siblings)
  11 siblings, 5 replies; 49+ messages in thread
From: Arnd Bergmann @ 2026-09-08 15:28 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Alexandre Belloni, Linus Walleij,
	Russell King
  Cc: Drew Fustini, Arnd Bergmann, Rob Herring, Conor Dooley,
	Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi, Frank Li,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Vladimir Zapolskiy, Stefan Agner, Maxime Coquelin,
	Alexandre Torgue, Aaro Koskinen, Andreas Kemnade, Kevin Hilman,
	Roger Quadros, Tony Lindgren, Nicolas Ferre, Claudiu Beznea,
	Andrew Lunn, Sebastian Hesselbarth, Gregory Clement,
	Robert Jarzmik, Kristoffer Ericson, Ethan Nelson-Moore,
	Geert Uytterhoeven, Alexander Sverdlin, Shawn Guo,
	Karl Mehltretter, David Hildenbrand (Arm), Nicolas Pitre,
	linux-doc, linux-kernel, linux-arm-kernel, devicetree, imx,
	linux-stm32, linux-omap

From: Arnd Bergmann <arnd@arndb.de>

The Atmel at91 line, now known as Microchip SAM contains both
SoCs using ARM926 and Cortex-A CPUs as well as a number of
microcontrollers. Only a single one of those MCUs currently
has Linux support, and has no known users.

The samv7 platform was deprecated in Linux-7.3LTS, which will
remain supported a while longer after it is gone from mainline.

Cc: Nicolas Ferre <nicolas.ferre@microchip.com>
Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
Cc: Claudiu Beznea <claudiu.beznea@tuxon.dev>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/arm/Kconfig.debug      | 10 ----------
 arch/arm/mach-at91/Kconfig  | 11 +----------
 arch/arm/mach-at91/Makefile |  1 -
 arch/arm/mach-at91/samv7.c  | 17 -----------------
 drivers/soc/atmel/soc.c     | 36 ------------------------------------
 5 files changed, 1 insertion(+), 74 deletions(-)
 delete mode 100644 arch/arm/mach-at91/samv7.c

diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
index 3d5f2e41eef1..b27e581a53d4 100644
--- a/arch/arm/Kconfig.debug
+++ b/arch/arm/Kconfig.debug
@@ -190,15 +190,6 @@ choice
 		  Say Y here if you want kernel low-level debugging support
 		  on the USART3 port of sama5d4.
 
-	config DEBUG_AT91_SAMV7_USART1
-		bool "Kernel low-level debugging via SAMV7 USART1"
-		select DEBUG_AT91_UART
-		depends on SOC_SAMV7
-		help
-		  Say Y here if you want the debug print routines to direct
-		  their output to the USART1 port on SAMV7 based
-		  machines.
-
 	config DEBUG_AT91_SAMA7G5_FLEXCOM3
 		bool "Kernel low-level debugging on SAMA7G5 FLEXCOM3"
 		select DEBUG_AT91_UART
@@ -1504,7 +1495,6 @@ config DEBUG_UART_PHYS
 	default 0x3e000000 if DEBUG_BCM_KONA_UART
 	default 0x3f201000 if DEBUG_BCM2836
 	default 0x40010000 if STM32MP1_DEBUG_UART
-	default 0x40028000 if DEBUG_AT91_SAMV7_USART1
 	default 0x40090000 if DEBUG_LPC32XX
 	default 0x40100000 if DEBUG_PXA_UART1
 	default 0x42000000 if DEBUG_GEMINI
diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig
index cb0e3ff8e0ca..3df1165d159b 100644
--- a/arch/arm/mach-at91/Kconfig
+++ b/arch/arm/mach-at91/Kconfig
@@ -5,7 +5,7 @@ config ARCH_MICROCHIP
 menuconfig ARCH_AT91
 	bool "AT91/Microchip SoCs"
 	depends on (CPU_LITTLE_ENDIAN && (ARCH_MULTI_V4T || ARCH_MULTI_V5)) || \
-		ARCH_MULTI_V7 || ARM_SINGLE_ARMV7M
+		ARCH_MULTI_V7
 	select ARM_CPU_SUSPEND if PM && ARCH_MULTI_V7
 	select COMMON_CLK_AT91
 	select GPIOLIB
@@ -14,15 +14,6 @@ menuconfig ARCH_AT91
 	select ARCH_MICROCHIP
 
 if ARCH_AT91
-config SOC_SAMV7
-	bool "SAM Cortex-M7 family (DEPRECATED)" if ARM_SINGLE_ARMV7M
-	select COMMON_CLK_AT91
-	select PINCTRL_AT91
-	help
-	  Select this if you are using an SoC from Microchip's SAME7, SAMS7 or SAMV7
-	  families.
-
-	  This platform is scheduled for removal in early 2027
 
 config SOC_SAMA5D2
 	bool "SAMA5D2 family"
diff --git a/arch/arm/mach-at91/Makefile b/arch/arm/mach-at91/Makefile
index 7d8a7bc44e65..8c964e182284 100644
--- a/arch/arm/mach-at91/Makefile
+++ b/arch/arm/mach-at91/Makefile
@@ -10,7 +10,6 @@ obj-$(CONFIG_SOC_SAM9X60)	+= sam9x60.o
 obj-$(CONFIG_SOC_SAM9X7)	+= sam9x7.o
 obj-$(CONFIG_SOC_SAMA5)		+= sama5.o sam_secure.o
 obj-$(CONFIG_SOC_SAMA7)		+= sama7.o
-obj-$(CONFIG_SOC_SAMV7)		+= samv7.o
 
 # Power Management
 obj-$(CONFIG_ATMEL_PM)		+= pm.o pm_suspend.o
diff --git a/arch/arm/mach-at91/samv7.c b/arch/arm/mach-at91/samv7.c
deleted file mode 100644
index 22d00005ec09..000000000000
--- a/arch/arm/mach-at91/samv7.c
+++ /dev/null
@@ -1,17 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-/*
- *  Setup code for SAMv7x
- *
- *  Copyright (C) 2013 Atmel,
- *                2016 Andras Szemzo <szemzo.andras@gmail.com>
- */
-#include <asm/mach/arch.h>
-
-static const char *const samv7_dt_board_compat[] __initconst = {
-	"atmel,samv7",
-	NULL
-};
-
-DT_MACHINE_START(samv7_dt, "Atmel SAMV7")
-	.dt_compat	= samv7_dt_board_compat,
-MACHINE_END
diff --git a/drivers/soc/atmel/soc.c b/drivers/soc/atmel/soc.c
index d89f9dcade7d..e276f86326ec 100644
--- a/drivers/soc/atmel/soc.c
+++ b/drivers/soc/atmel/soc.c
@@ -210,41 +210,6 @@ static const struct at91_soc socs[] __initconst = {
 		 AT91_CIDR_VERSION_MASK, SAMA5D44_EXID_MATCH,
 		 "sama5d44", "sama5d4"),
 #endif
-#ifdef CONFIG_SOC_SAMV7
-	AT91_SOC(SAME70Q21_CIDR_MATCH, AT91_CIDR_MATCH_MASK,
-		 AT91_CIDR_VERSION_MASK, SAME70Q21_EXID_MATCH,
-		 "same70q21", "same7"),
-	AT91_SOC(SAME70Q20_CIDR_MATCH, AT91_CIDR_MATCH_MASK,
-		 AT91_CIDR_VERSION_MASK, SAME70Q20_EXID_MATCH,
-		 "same70q20", "same7"),
-	AT91_SOC(SAME70Q19_CIDR_MATCH, AT91_CIDR_MATCH_MASK,
-		 AT91_CIDR_VERSION_MASK, SAME70Q19_EXID_MATCH,
-		 "same70q19", "same7"),
-	AT91_SOC(SAMS70Q21_CIDR_MATCH, AT91_CIDR_MATCH_MASK,
-		 AT91_CIDR_VERSION_MASK, SAMS70Q21_EXID_MATCH,
-		 "sams70q21", "sams7"),
-	AT91_SOC(SAMS70Q20_CIDR_MATCH, AT91_CIDR_MATCH_MASK,
-		 AT91_CIDR_VERSION_MASK, SAMS70Q20_EXID_MATCH,
-		 "sams70q20", "sams7"),
-	AT91_SOC(SAMS70Q19_CIDR_MATCH, AT91_CIDR_MATCH_MASK,
-		 AT91_CIDR_VERSION_MASK, SAMS70Q19_EXID_MATCH,
-		 "sams70q19", "sams7"),
-	AT91_SOC(SAMV71Q21_CIDR_MATCH, AT91_CIDR_MATCH_MASK,
-		 AT91_CIDR_VERSION_MASK, SAMV71Q21_EXID_MATCH,
-		 "samv71q21", "samv7"),
-	AT91_SOC(SAMV71Q20_CIDR_MATCH, AT91_CIDR_MATCH_MASK,
-		 AT91_CIDR_VERSION_MASK, SAMV71Q20_EXID_MATCH,
-		 "samv71q20", "samv7"),
-	AT91_SOC(SAMV71Q19_CIDR_MATCH, AT91_CIDR_MATCH_MASK,
-		 AT91_CIDR_VERSION_MASK, SAMV71Q19_EXID_MATCH,
-		 "samv71q19", "samv7"),
-	AT91_SOC(SAMV70Q20_CIDR_MATCH, AT91_CIDR_MATCH_MASK,
-		 AT91_CIDR_VERSION_MASK, SAMV70Q20_EXID_MATCH,
-		 "samv70q20", "samv7"),
-	AT91_SOC(SAMV70Q19_CIDR_MATCH, AT91_CIDR_MATCH_MASK,
-		 AT91_CIDR_VERSION_MASK, SAMV70Q19_EXID_MATCH,
-		 "samv70q19", "samv7"),
-#endif
 #ifdef CONFIG_SOC_SAMA7
 	AT91_SOC(SAMA7D65_CIDR_MATCH, AT91_CIDR_MASK_SAMA7G5,
 		 AT91_CIDR_VERSION_MASK_SAMA7G5, SAMA7D65_EXID_MATCH,
@@ -396,7 +361,6 @@ static const struct of_device_id at91_soc_allowed_list[] __initconst = {
 	{ .compatible = "atmel,at91rm9200", },
 	{ .compatible = "atmel,at91sam9", },
 	{ .compatible = "atmel,sama5", },
-	{ .compatible = "atmel,samv7", },
 	{ .compatible = "microchip,sama7d65", },
 	{ .compatible = "microchip,sama7g5", },
 	{ }
-- 
2.53.0



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

* [PATCH 13/13] ARM: axxia: remove entire platform
  2026-09-08 15:27 [PATCH 00/13] ARM: deprecated platform removal Arnd Bergmann
                   ` (4 preceding siblings ...)
  2026-09-08 15:28 ` [PATCH 12/13] ARM: at91: remove samv7 support Arnd Bergmann
@ 2026-09-08 15:28 ` Arnd Bergmann
  2026-09-08 17:40   ` Linus Walleij
                     ` (2 more replies)
       [not found] ` <20260908152808.3928630-2-arnd@kernel.org>
                   ` (5 subsequent siblings)
  11 siblings, 3 replies; 49+ messages in thread
From: Arnd Bergmann @ 2026-09-08 15:28 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Alexandre Belloni, Linus Walleij,
	Russell King
  Cc: Drew Fustini, Arnd Bergmann, Rob Herring, Conor Dooley,
	Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi, Frank Li,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Vladimir Zapolskiy, Stefan Agner, Maxime Coquelin,
	Alexandre Torgue, Aaro Koskinen, Andreas Kemnade, Kevin Hilman,
	Roger Quadros, Tony Lindgren, Nicolas Ferre, Claudiu Beznea,
	Andrew Lunn, Sebastian Hesselbarth, Gregory Clement,
	Robert Jarzmik, Kristoffer Ericson, Ethan Nelson-Moore,
	Geert Uytterhoeven, Alexander Sverdlin, Shawn Guo,
	Karl Mehltretter, David Hildenbrand (Arm), Nicolas Pitre,
	linux-doc, linux-kernel, linux-arm-kernel, devicetree, imx,
	linux-stm32, linux-omap, Anders Berg

From: Arnd Bergmann <arnd@arndb.de>

The initial Axxia port was contributed by LSI in 2014, but never completed
after the sale of the business unit to Intel, which kept supporting the
bulk of the drivers in their own downstream BSP.

The downstream work has also ended now, and there is no realistic chance
that anyone would rewrite it all into an upstreamable port.

Remove it now that the 7.3LTS release is out and can be used as the
base for one more downstream rebase of the downstream patches if needed.

Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Rob Herring <robh@kernel.org>
Cc: Conor Dooley <conor+dt@kernel.org>
Cc: Alexander Sverdlin <alexander.sverdlin@siemens.com>
Cc: Ethan Nelson-Moore <enelsonmoore@gmail.com>
Cc: Anders Berg <anders.berg@lsi.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 .../devicetree/bindings/arm/axxia.yaml        |  23 --
 MAINTAINERS                                   |   8 -
 arch/arm/Kconfig                              |   2 -
 arch/arm/Makefile                             |   2 -
 arch/arm/boot/dts/intel/Makefile              |   1 -
 arch/arm/boot/dts/intel/axm/Makefile          |   5 -
 .../boot/dts/intel/axm/axm5516-amarillo.dts   |  47 ----
 arch/arm/boot/dts/intel/axm/axm5516-cpus.dtsi | 200 ---------------
 arch/arm/boot/dts/intel/axm/axm55xx.dtsi      | 200 ---------------
 arch/arm/configs/axm55xx_defconfig            | 231 ------------------
 arch/arm/mach-axxia/Kconfig                   |  17 --
 arch/arm/mach-axxia/Makefile                  |   3 -
 arch/arm/mach-axxia/axxia.c                   |  19 --
 arch/arm/mach-axxia/platsmp.c                 |  87 -------
 14 files changed, 845 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/arm/axxia.yaml
 delete mode 100644 arch/arm/boot/dts/intel/axm/Makefile
 delete mode 100644 arch/arm/boot/dts/intel/axm/axm5516-amarillo.dts
 delete mode 100644 arch/arm/boot/dts/intel/axm/axm5516-cpus.dtsi
 delete mode 100644 arch/arm/boot/dts/intel/axm/axm55xx.dtsi
 delete mode 100644 arch/arm/configs/axm55xx_defconfig
 delete mode 100644 arch/arm/mach-axxia/Kconfig
 delete mode 100644 arch/arm/mach-axxia/Makefile
 delete mode 100644 arch/arm/mach-axxia/axxia.c
 delete mode 100644 arch/arm/mach-axxia/platsmp.c

diff --git a/Documentation/devicetree/bindings/arm/axxia.yaml b/Documentation/devicetree/bindings/arm/axxia.yaml
deleted file mode 100644
index d60907e43efc..000000000000
--- a/Documentation/devicetree/bindings/arm/axxia.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-%YAML 1.2
----
-$id: http://devicetree.org/schemas/arm/axxia.yaml#
-$schema: http://devicetree.org/meta-schemas/core.yaml#
-
-title: Axxia AXM55xx
-
-maintainers:
-  - Anders Berg <anders.berg@lsi.com>
-
-properties:
-  $nodename:
-    const: "/"
-  compatible:
-    description: LSI AXM5516 Validation board (Amarillo)
-    items:
-      - const: lsi,axm5516-amarillo
-      - const: lsi,axm5516
-
-additionalProperties: true
-
-...
diff --git a/MAINTAINERS b/MAINTAINERS
index 292327185a08..74657b35c577 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2742,14 +2742,6 @@ F:	Documentation/devicetree/bindings/arm/axiado.yaml
 F:	arch/arm64/boot/dts/axiado/
 N:	axiado
 
-ARM/AXM LSI SOC
-M:	Krzysztof Kozlowski <krzk@kernel.org>
-L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
-S:	Odd Fixes
-F:	Documentation/devicetree/bindings/arm/axxia.yaml
-F:	arch/arm/boot/dts/intel/axm/
-F:	arch/arm/mach-axxia/
-
 ARM/BITMAIN ARCHITECTURE
 M:	Manivannan Sadhasivam <mani@kernel.org>
 L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index cf380b686867..760c4bfcc33a 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -353,8 +353,6 @@ source "arch/arm/mach-aspeed/Kconfig"
 
 source "arch/arm/mach-at91/Kconfig"
 
-source "arch/arm/mach-axxia/Kconfig"
-
 source "arch/arm/mach-bcm/Kconfig"
 
 source "arch/arm/mach-berlin/Kconfig"
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index d3479e374c6f..f41b3f6ab82e 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -164,7 +164,6 @@ textofs-y	:= 0x00008000
 textofs-$(CONFIG_ARCH_REALTEK)  := 0x00108000
 textofs-$(CONFIG_ARCH_QCOM_RESERVE_SMEM) := 0x00208000
 textofs-$(CONFIG_ARCH_MESON) := 0x00208000
-textofs-$(CONFIG_ARCH_AXXIA) := 0x00308000
 
 # Machine directory name.  This list is sorted alphanumerically
 # by CONFIG_* macro name.
@@ -173,7 +172,6 @@ machine-$(CONFIG_ARCH_ALPINE)		+= alpine
 machine-$(CONFIG_ARCH_ARTPEC)		+= artpec
 machine-$(CONFIG_ARCH_ASPEED)           += aspeed
 machine-$(CONFIG_ARCH_AT91)		+= at91
-machine-$(CONFIG_ARCH_AXXIA)		+= axxia
 machine-$(CONFIG_ARCH_BCM)		+= bcm
 machine-$(CONFIG_ARCH_BERLIN)		+= berlin
 machine-$(CONFIG_ARCH_CLPS711X)		+= clps711x
diff --git a/arch/arm/boot/dts/intel/Makefile b/arch/arm/boot/dts/intel/Makefile
index c5fc845deb61..3e871d10b7f5 100644
--- a/arch/arm/boot/dts/intel/Makefile
+++ b/arch/arm/boot/dts/intel/Makefile
@@ -1,5 +1,4 @@
 # SPDX-License-Identifier: GPL-2.0
-subdir-y += axm
 subdir-y += ixp
 subdir-y += pxa
 subdir-y += socfpga
diff --git a/arch/arm/boot/dts/intel/axm/Makefile b/arch/arm/boot/dts/intel/axm/Makefile
deleted file mode 100644
index 7c7dc679964d..000000000000
--- a/arch/arm/boot/dts/intel/axm/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-dtb-$(CONFIG_ARCH_AXXIA) += \
-	axm5516-amarillo.dtb
-dtb-$(CONFIG_ARCH_AXXIA) += \
-	axm5516-amarillo.dtb
diff --git a/arch/arm/boot/dts/intel/axm/axm5516-amarillo.dts b/arch/arm/boot/dts/intel/axm/axm5516-amarillo.dts
deleted file mode 100644
index 2e2ad3c7ee77..000000000000
--- a/arch/arm/boot/dts/intel/axm/axm5516-amarillo.dts
+++ /dev/null
@@ -1,47 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-/*
- * arch/arm/boot/dts/axm5516-amarillo.dts
- *
- * Copyright (C) 2013 LSI
- */
-
-/dts-v1/;
-
-/memreserve/ 0x00000000 0x00400000;
-
-#include "axm55xx.dtsi"
-#include "axm5516-cpus.dtsi"
-
-/ {
-	model = "Amarillo AXM5516";
-	compatible = "lsi,axm5516-amarillo", "lsi,axm5516";
-
-	memory {
-		device_type = "memory";
-		reg = <0 0x00000000 0x02 0x00000000>;
-	};
-};
-
-&serial0 {
-	status = "okay";
-};
-
-&serial1 {
-	status = "okay";
-};
-
-&serial2 {
-	status = "okay";
-};
-
-&serial3 {
-	status = "okay";
-};
-
-&gpio0 {
-	status = "okay";
-};
-
-&gpio1 {
-	status = "okay";
-};
diff --git a/arch/arm/boot/dts/intel/axm/axm5516-cpus.dtsi b/arch/arm/boot/dts/intel/axm/axm5516-cpus.dtsi
deleted file mode 100644
index f13ef80b6637..000000000000
--- a/arch/arm/boot/dts/intel/axm/axm5516-cpus.dtsi
+++ /dev/null
@@ -1,200 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-/*
- * arch/arm/boot/dts/axm5516-cpus.dtsi
- *
- * Copyright (C) 2013 LSI
- */
-
-/ {
-	cpus {
-		#address-cells = <1>;
-		#size-cells = <0>;
-
-		cpu-map {
-			cluster0 {
-				core0 {
-					cpu = <&CPU0>;
-				};
-				core1 {
-					cpu = <&CPU1>;
-				};
-				core2 {
-					cpu = <&CPU2>;
-				};
-				core3 {
-					cpu = <&CPU3>;
-				};
-			};
-			cluster1 {
-				core0 {
-					cpu = <&CPU4>;
-				};
-				core1 {
-					cpu = <&CPU5>;
-				};
-				core2 {
-					cpu = <&CPU6>;
-				};
-				core3 {
-					cpu = <&CPU7>;
-				};
-			};
-			cluster2 {
-				core0 {
-					cpu = <&CPU8>;
-				};
-				core1 {
-					cpu = <&CPU9>;
-				};
-				core2 {
-					cpu = <&CPU10>;
-				};
-				core3 {
-					cpu = <&CPU11>;
-				};
-			};
-			cluster3 {
-				core0 {
-					cpu = <&CPU12>;
-				};
-				core1 {
-					cpu = <&CPU13>;
-				};
-				core2 {
-					cpu = <&CPU14>;
-				};
-				core3 {
-					cpu = <&CPU15>;
-				};
-			};
-		};
-
-		CPU0: cpu@0 {
-			device_type = "cpu";
-			compatible = "arm,cortex-a15";
-			reg = <0x00>;
-			clock-frequency = <1400000000>;
-			cpu-release-addr = <0>; // Fixed by the boot loader
-		};
-
-		CPU1: cpu@1 {
-			device_type = "cpu";
-			compatible = "arm,cortex-a15";
-			reg = <0x01>;
-			clock-frequency = <1400000000>;
-			cpu-release-addr = <0>; // Fixed by the boot loader
-		};
-
-		CPU2: cpu@2 {
-			device_type = "cpu";
-			compatible = "arm,cortex-a15";
-			reg = <0x02>;
-			clock-frequency = <1400000000>;
-			cpu-release-addr = <0>; // Fixed by the boot loader
-		};
-
-		CPU3: cpu@3 {
-			device_type = "cpu";
-			compatible = "arm,cortex-a15";
-			reg = <0x03>;
-			clock-frequency = <1400000000>;
-			cpu-release-addr = <0>; // Fixed by the boot loader
-		};
-
-		CPU4: cpu@100 {
-			device_type = "cpu";
-			compatible = "arm,cortex-a15";
-			reg = <0x100>;
-			clock-frequency = <1400000000>;
-			cpu-release-addr = <0>; // Fixed by the boot loader
-		};
-
-		CPU5: cpu@101 {
-			device_type = "cpu";
-			compatible = "arm,cortex-a15";
-			reg = <0x101>;
-			clock-frequency = <1400000000>;
-			cpu-release-addr = <0>; // Fixed by the boot loader
-		};
-
-		CPU6: cpu@102 {
-			device_type = "cpu";
-			compatible = "arm,cortex-a15";
-			reg = <0x102>;
-			clock-frequency = <1400000000>;
-			cpu-release-addr = <0>; // Fixed by the boot loader
-		};
-
-		CPU7: cpu@103 {
-			device_type = "cpu";
-			compatible = "arm,cortex-a15";
-			reg = <0x103>;
-			clock-frequency = <1400000000>;
-			cpu-release-addr = <0>; // Fixed by the boot loader
-		};
-
-		CPU8: cpu@200 {
-			device_type = "cpu";
-			compatible = "arm,cortex-a15";
-			reg = <0x200>;
-			clock-frequency = <1400000000>;
-			cpu-release-addr = <0>; // Fixed by the boot loader
-		};
-
-		CPU9: cpu@201 {
-			device_type = "cpu";
-			compatible = "arm,cortex-a15";
-			reg = <0x201>;
-			clock-frequency = <1400000000>;
-			cpu-release-addr = <0>; // Fixed by the boot loader
-		};
-
-		CPU10: cpu@202 {
-			device_type = "cpu";
-			compatible = "arm,cortex-a15";
-			reg = <0x202>;
-			clock-frequency = <1400000000>;
-			cpu-release-addr = <0>; // Fixed by the boot loader
-		};
-
-		CPU11: cpu@203 {
-			device_type = "cpu";
-			compatible = "arm,cortex-a15";
-			reg = <0x203>;
-			clock-frequency = <1400000000>;
-			cpu-release-addr = <0>; // Fixed by the boot loader
-		};
-
-		CPU12: cpu@300 {
-			device_type = "cpu";
-			compatible = "arm,cortex-a15";
-			reg = <0x300>;
-			clock-frequency = <1400000000>;
-			cpu-release-addr = <0>; // Fixed by the boot loader
-		};
-
-		CPU13: cpu@301 {
-			device_type = "cpu";
-			compatible = "arm,cortex-a15";
-			reg = <0x301>;
-			clock-frequency = <1400000000>;
-			cpu-release-addr = <0>; // Fixed by the boot loader
-		};
-
-		CPU14: cpu@302 {
-			device_type = "cpu";
-			compatible = "arm,cortex-a15";
-			reg = <0x302>;
-			clock-frequency = <1400000000>;
-			cpu-release-addr = <0>; // Fixed by the boot loader
-		};
-
-		CPU15: cpu@303 {
-			device_type = "cpu";
-			compatible = "arm,cortex-a15";
-			reg = <0x303>;
-			clock-frequency = <1400000000>;
-			cpu-release-addr = <0>; // Fixed by the boot loader
-		};
-	};
-};
diff --git a/arch/arm/boot/dts/intel/axm/axm55xx.dtsi b/arch/arm/boot/dts/intel/axm/axm55xx.dtsi
deleted file mode 100644
index 5277890cfad2..000000000000
--- a/arch/arm/boot/dts/intel/axm/axm55xx.dtsi
+++ /dev/null
@@ -1,200 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-/*
- * arch/arm/boot/dts/axm55xx.dtsi
- *
- * Copyright (C) 2013 LSI
- */
-
-#include <dt-bindings/interrupt-controller/arm-gic.h>
-#include <dt-bindings/clock/lsi,axm5516-clks.h>
-
-/ {
-	#address-cells = <2>;
-	#size-cells = <2>;
-	interrupt-parent = <&gic>;
-
-	aliases {
-		serial0	  = &serial0;
-		serial1   = &serial1;
-		serial2	  = &serial2;
-		serial3	  = &serial3;
-		timer	  = &timer0;
-	};
-
-	clocks {
-		compatible = "simple-bus";
-		#address-cells = <2>;
-		#size-cells = <2>;
-		ranges;
-
-		clk_ref0: clk_ref0 {
-			compatible = "fixed-clock";
-			#clock-cells = <0>;
-			clock-frequency = <125000000>;
-		};
-
-		clk_ref1: clk_ref1 {
-			compatible = "fixed-clock";
-			#clock-cells = <0>;
-			clock-frequency = <125000000>;
-		};
-
-		clk_ref2: clk_ref2 {
-			compatible = "fixed-clock";
-			#clock-cells = <0>;
-			clock-frequency = <125000000>;
-		};
-
-		clks: clock-controller@2010020000 {
-			compatible = "lsi,axm5516-clks";
-			#clock-cells = <1>;
-			reg = <0x20 0x10020000 0 0x20000>;
-		};
-	};
-
-	gic: interrupt-controller@2001001000 {
-		compatible = "arm,cortex-a15-gic";
-		#interrupt-cells = <3>;
-		#address-cells = <0>;
-		interrupt-controller;
-		reg = <0x20 0x01001000 0 0x1000>,
-		      <0x20 0x01002000 0 0x2000>,
-		      <0x20 0x01004000 0 0x2000>,
-		      <0x20 0x01006000 0 0x2000>;
-		interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) |
-				IRQ_TYPE_LEVEL_HIGH)>;
-	};
-
-	timer {
-		compatible = "arm,armv7-timer";
-		interrupts =
-			<GIC_PPI 13
-				(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-			<GIC_PPI 14
-				(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-			<GIC_PPI 11
-				(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-			<GIC_PPI 10
-				(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
-	};
-
-
-	pmu {
-		compatible = "arm,cortex-a15-pmu";
-		interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
-	};
-
-	soc {
-		compatible = "simple-bus";
-		device_type = "soc";
-		#address-cells = <2>;
-		#size-cells = <2>;
-		interrupt-parent = <&gic>;
-		ranges;
-
-		syscon: syscon@2010030000 {
-			compatible = "lsi,axxia-syscon", "syscon";
-			reg = <0x20 0x10030000 0 0x2000>;
-		};
-
-		reset: reset@2010031000 {
-			compatible = "lsi,axm55xx-reset";
-			syscon = <&syscon>;
-		};
-
-		amba {
-			compatible = "simple-bus";
-			#address-cells = <2>;
-			#size-cells = <2>;
-			ranges;
-
-			serial0: serial@2010080000 {
-				compatible = "arm,pl011", "arm,primecell";
-				reg = <0x20 0x10080000 0 0x1000>;
-				interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
-				clocks = <&clks AXXIA_CLK_PER>;
-				clock-names = "apb_pclk";
-				status = "disabled";
-			};
-
-			serial1: serial@2010081000 {
-				compatible = "arm,pl011", "arm,primecell";
-				reg = <0x20 0x10081000 0 0x1000>;
-				interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
-				clocks = <&clks AXXIA_CLK_PER>;
-				clock-names = "apb_pclk";
-				status = "disabled";
-			};
-
-			serial2: serial@2010082000 {
-				compatible = "arm,pl011", "arm,primecell";
-				reg = <0x20 0x10082000 0 0x1000>;
-				interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
-				clocks = <&clks AXXIA_CLK_PER>;
-				clock-names = "apb_pclk";
-				status = "disabled";
-			};
-
-			serial3: serial@2010083000 {
-				compatible = "arm,pl011", "arm,primecell";
-				reg = <0x20 0x10083000 0 0x1000>;
-				interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
-				clocks = <&clks AXXIA_CLK_PER>;
-				clock-names = "apb_pclk";
-				status = "disabled";
-			};
-
-			timer0: timer@2010091000 {
-				compatible = "arm,sp804", "arm,primecell";
-				reg = <0x20 0x10091000 0 0x1000>;
-				interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>,
-					     <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>,
-					     <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>,
-					     <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>,
-					     <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,
-					     <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>,
-					     <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>,
-					     <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>,
-					     <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
-				clocks = <&clks AXXIA_CLK_PER>;
-				clock-names = "apb_pclk";
-				status = "okay";
-			};
-
-			gpio0: gpio@2010092000 {
-				#gpio-cells = <2>;
-				compatible = "arm,pl061", "arm,primecell";
-				gpio-controller;
-				reg = <0x20 0x10092000 0x00 0x1000>;
-				interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
-					     <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
-					     <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
-					     <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
-					     <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
-					     <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
-					     <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
-					     <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
-				clocks = <&clks AXXIA_CLK_PER>;
-				clock-names = "apb_pclk";
-				status = "disabled";
-			};
-
-			gpio1: gpio@2010093000 {
-				#gpio-cells = <2>;
-				compatible = "arm,pl061", "arm,primecell";
-				gpio-controller;
-				reg = <0x20 0x10093000 0x00 0x1000>;
-				interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
-				clocks = <&clks AXXIA_CLK_PER>;
-				clock-names = "apb_pclk";
-				status = "disabled";
-			};
-		};
-	};
-};
-
-/*
-  Local Variables:
-  mode: C
-  End:
-*/
diff --git a/arch/arm/configs/axm55xx_defconfig b/arch/arm/configs/axm55xx_defconfig
deleted file mode 100644
index 541e38e2205b..000000000000
--- a/arch/arm/configs/axm55xx_defconfig
+++ /dev/null
@@ -1,231 +0,0 @@
-CONFIG_SYSVIPC=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_FHANDLE=y
-CONFIG_AUDIT=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_PREEMPT=y
-CONFIG_BSD_PROCESS_ACCT=y
-CONFIG_BSD_PROCESS_ACCT_V3=y
-CONFIG_TASKSTATS=y
-CONFIG_TASK_DELAY_ACCT=y
-CONFIG_TASK_XACCT=y
-CONFIG_TASK_IO_ACCOUNTING=y
-CONFIG_IKCONFIG=y
-CONFIG_IKCONFIG_PROC=y
-CONFIG_LOG_BUF_SHIFT=16
-CONFIG_NAMESPACES=y
-# CONFIG_UTS_NS is not set
-# CONFIG_IPC_NS is not set
-# CONFIG_PID_NS is not set
-# CONFIG_NET_NS is not set
-CONFIG_SCHED_AUTOGROUP=y
-CONFIG_RELAY=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_EXPERT=y
-CONFIG_PROFILING=y
-CONFIG_ARCH_AXXIA=y
-CONFIG_ARM_LPAE=y
-CONFIG_ARM_THUMBEE=y
-CONFIG_ARM_ERRATA_430973=y
-CONFIG_ARM_ERRATA_643719=y
-CONFIG_ARM_ERRATA_720789=y
-CONFIG_ARM_ERRATA_754322=y
-CONFIG_ARM_ERRATA_754327=y
-CONFIG_ARM_ERRATA_764369=y
-CONFIG_ARM_ERRATA_775420=y
-CONFIG_ARM_ERRATA_798181=y
-CONFIG_PCIE_AXXIA=y
-CONFIG_SMP=y
-CONFIG_NR_CPUS=16
-CONFIG_HOTPLUG_CPU=y
-CONFIG_HIGHMEM=y
-CONFIG_ARM_APPENDED_DTB=y
-CONFIG_ARM_ATAG_DTB_COMPAT=y
-CONFIG_VFP=y
-CONFIG_NEON=y
-# CONFIG_SUSPEND is not set
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
-CONFIG_BINFMT_MISC=y
-# CONFIG_COMPAT_BRK is not set
-CONFIG_KSM=y
-CONFIG_NET=y
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_XFRM_USER=y
-CONFIG_XFRM_SUB_POLICY=y
-CONFIG_XFRM_MIGRATE=y
-CONFIG_XFRM_STATISTICS=y
-CONFIG_NET_KEY=y
-CONFIG_INET=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-CONFIG_IP_PNP_BOOTP=y
-CONFIG_INET_AH=y
-CONFIG_INET_ESP=y
-CONFIG_INET_IPCOMP=y
-# CONFIG_IPV6 is not set
-CONFIG_NETWORK_PHY_TIMESTAMPING=y
-CONFIG_BRIDGE=y
-# CONFIG_WIRELESS is not set
-CONFIG_PCI=y
-CONFIG_PCI_MSI=y
-CONFIG_DEVTMPFS=y
-CONFIG_DEVTMPFS_MOUNT=y
-CONFIG_MTD=y
-CONFIG_MTD_CMDLINE_PARTS=y
-CONFIG_MTD_AFS_PARTS=y
-CONFIG_MTD_BLOCK=y
-CONFIG_MTD_CFI=y
-CONFIG_MTD_CFI_INTELEXT=y
-CONFIG_MTD_CFI_AMDSTD=y
-CONFIG_MTD_CFI_STAA=y
-CONFIG_MTD_PHYSMAP=y
-CONFIG_MTD_PHYSMAP_OF=y
-CONFIG_MTD_M25P80=y
-CONFIG_PROC_DEVICETREE=y
-CONFIG_BLK_DEV_LOOP=y
-CONFIG_BLK_DEV_RAM=y
-CONFIG_EEPROM_AT24=y
-CONFIG_EEPROM_AT25=y
-CONFIG_BLK_DEV_SD=y
-CONFIG_CHR_DEV_SG=y
-CONFIG_ATA=y
-CONFIG_PATA_PLATFORM=y
-CONFIG_PATA_OF_PLATFORM=y
-CONFIG_MD=y
-CONFIG_BLK_DEV_DM=y
-CONFIG_DM_UEVENT=y
-CONFIG_NETDEVICES=y
-CONFIG_TUN=y
-CONFIG_VETH=y
-CONFIG_VIRTIO_NET=y
-# CONFIG_NET_CADENCE is not set
-# CONFIG_NET_VENDOR_BROADCOM is not set
-# CONFIG_NET_VENDOR_CIRRUS is not set
-# CONFIG_NET_VENDOR_FARADAY is not set
-# CONFIG_NET_VENDOR_INTEL is not set
-# CONFIG_NET_VENDOR_MARVELL is not set
-# CONFIG_NET_VENDOR_MICREL is not set
-# CONFIG_NET_VENDOR_NATSEMI is not set
-# CONFIG_NET_VENDOR_SEEQ is not set
-# CONFIG_NET_VENDOR_SMSC is not set
-# CONFIG_NET_VENDOR_STMICRO is not set
-# CONFIG_NET_VENDOR_VIA is not set
-# CONFIG_NET_VENDOR_WIZNET is not set
-CONFIG_BROADCOM_PHY=y
-# CONFIG_WLAN is not set
-# CONFIG_MOUSE_PS2_ALPS is not set
-# CONFIG_MOUSE_PS2_LOGIPS2PP is not set
-# CONFIG_MOUSE_PS2_SYNAPTICS is not set
-# CONFIG_MOUSE_PS2_TRACKPOINT is not set
-# CONFIG_SERIO_SERPORT is not set
-CONFIG_SERIO_AMBAKMI=y
-CONFIG_LEGACY_PTY_COUNT=16
-CONFIG_SERIAL_AMBA_PL011=y
-CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
-CONFIG_VIRTIO_CONSOLE=y
-# CONFIG_HW_RANDOM is not set
-CONFIG_I2C=y
-CONFIG_I2C_CHARDEV=y
-CONFIG_I2C_MUX=y
-CONFIG_I2C_AXXIA=y
-CONFIG_SPI=y
-CONFIG_SPI_PL022=y
-CONFIG_DP83640_PHY=y
-CONFIG_GPIOLIB=y
-CONFIG_GPIO_SYSFS=y
-CONFIG_GPIO_PL061=y
-CONFIG_GPIO_PCA953X=y
-CONFIG_POWER_RESET=y
-CONFIG_POWER_RESET_AXXIA=y
-CONFIG_POWER_SUPPLY=y
-CONFIG_SENSORS_ADT7475=y
-CONFIG_SENSORS_JC42=y
-CONFIG_SENSORS_LM75=y
-CONFIG_PMBUS=y
-CONFIG_SENSORS_LTC2978=y
-CONFIG_WATCHDOG=y
-CONFIG_ARM_SP805_WATCHDOG=y
-# CONFIG_LOGO_LINUX_MONO is not set
-# CONFIG_LOGO_LINUX_VGA16 is not set
-CONFIG_HID_A4TECH=y
-CONFIG_HID_APPLE=y
-CONFIG_HID_BELKIN=y
-CONFIG_HID_CHERRY=y
-CONFIG_HID_CHICONY=y
-CONFIG_HID_CYPRESS=y
-CONFIG_HID_DRAGONRISE=y
-CONFIG_HID_EZKEY=y
-CONFIG_HID_KYE=y
-CONFIG_HID_GYRATION=y
-CONFIG_HID_TWINHAN=y
-CONFIG_HID_KENSINGTON=y
-CONFIG_HID_LOGITECH=y
-CONFIG_HID_MICROSOFT=y
-CONFIG_HID_MONTEREY=y
-CONFIG_HID_NTRIG=y
-CONFIG_HID_ORTEK=y
-CONFIG_HID_PANTHERLORD=y
-CONFIG_HID_PETALYNX=y
-CONFIG_HID_SAMSUNG=y
-CONFIG_HID_SUNPLUS=y
-CONFIG_HID_GREENASIA=y
-CONFIG_HID_SMARTJOYPLUS=y
-CONFIG_HID_TOPSEED=y
-CONFIG_HID_THRUSTMASTER=y
-CONFIG_HID_ZEROPLUS=y
-CONFIG_USB=y
-CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
-CONFIG_USB_EHCI_HCD=y
-# CONFIG_USB_EHCI_TT_NEWSCHED is not set
-CONFIG_USB_EHCI_HCD_AXXIA=y
-CONFIG_USB_STORAGE=y
-CONFIG_MMC=y
-CONFIG_MMC_ARMMMCI=y
-CONFIG_DMADEVICES=y
-CONFIG_PL330_DMA=y
-CONFIG_VIRT_DRIVERS=y
-CONFIG_VIRTIO_MMIO=y
-CONFIG_MAILBOX=y
-CONFIG_PL320_MBOX=y
-# CONFIG_IOMMU_SUPPORT is not set
-CONFIG_EXT2_FS=y
-CONFIG_EXT4_FS=y
-CONFIG_AUTOFS_FS=y
-CONFIG_FUSE_FS=y
-CONFIG_CUSE=y
-CONFIG_FSCACHE=y
-CONFIG_FSCACHE_STATS=y
-CONFIG_FSCACHE_HISTOGRAM=y
-CONFIG_FSCACHE_DEBUG=y
-CONFIG_FSCACHE_OBJECT_LIST=y
-CONFIG_CACHEFILES=y
-CONFIG_CACHEFILES_HISTOGRAM=y
-CONFIG_ISO9660_FS=y
-CONFIG_UDF_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
-CONFIG_NTFS_FS=y
-CONFIG_TMPFS=y
-CONFIG_JFFS2_FS=y
-CONFIG_CRAMFS=y
-CONFIG_NFS_FS=y
-CONFIG_NFS_V4=y
-CONFIG_ROOT_NFS=y
-CONFIG_NFS_FSCACHE=y
-CONFIG_SUNRPC_DEBUG=y
-CONFIG_NLS_CODEPAGE_437=y
-CONFIG_NLS_ISO8859_1=y
-CONFIG_CRYPTO_XCBC=y
-CONFIG_PRINTK_TIME=y
-CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y
-CONFIG_DEBUG_FS=y
-CONFIG_MAGIC_SYSRQ=y
-# CONFIG_SCHED_DEBUG is not set
-CONFIG_RCU_CPU_STALL_TIMEOUT=60
-# CONFIG_FTRACE is not set
-CONFIG_DEBUG_USER=y
-CONFIG_CRYPTO_GCM=y
-CONFIG_CRYPTO_SHA256=y
diff --git a/arch/arm/mach-axxia/Kconfig b/arch/arm/mach-axxia/Kconfig
deleted file mode 100644
index f773a66c1402..000000000000
--- a/arch/arm/mach-axxia/Kconfig
+++ /dev/null
@@ -1,17 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-config ARCH_AXXIA
-	bool "LSI Axxia platforms (DEPRECATED)"
-	depends on ARCH_MULTI_V7 && ARM_LPAE
-	select ARM_AMBA
-	select ARM_GIC
-	select ARM_TIMER_SP804
-	select HAVE_ARM_ARCH_TIMER
-	select MFD_SYSCON
-	select ZONE_DMA
-	help
-	  This enables support for the LSI Axxia devices.
-
-	  The LSI Axxia platforms require a Flattened Device Tree to be passed
-	  to the kernel.
-
-	  This platform is scheduled for removal in early 2027
diff --git a/arch/arm/mach-axxia/Makefile b/arch/arm/mach-axxia/Makefile
deleted file mode 100644
index 8df8fe76ad47..000000000000
--- a/arch/arm/mach-axxia/Makefile
+++ /dev/null
@@ -1,3 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-obj-y				+= axxia.o
-obj-$(CONFIG_SMP)		+= platsmp.o
diff --git a/arch/arm/mach-axxia/axxia.c b/arch/arm/mach-axxia/axxia.c
deleted file mode 100644
index e21582a7fa11..000000000000
--- a/arch/arm/mach-axxia/axxia.c
+++ /dev/null
@@ -1,19 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-/*
- * Support for the LSI Axxia SoC devices based on ARM cores.
- *
- * Copyright (C) 2012 LSI
- */
-#include <linux/init.h>
-#include <asm/mach/arch.h>
-
-static const char *const axxia_dt_match[] __initconst = {
-	"lsi,axm5516",
-	"lsi,axm5516-sim",
-	"lsi,axm5516-emu",
-	NULL
-};
-
-DT_MACHINE_START(AXXIA_DT, "LSI Axxia AXM55XX")
-	.dt_compat = axxia_dt_match,
-MACHINE_END
diff --git a/arch/arm/mach-axxia/platsmp.c b/arch/arm/mach-axxia/platsmp.c
deleted file mode 100644
index 2e203626eda5..000000000000
--- a/arch/arm/mach-axxia/platsmp.c
+++ /dev/null
@@ -1,87 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-/*
- * linux/arch/arm/mach-axxia/platsmp.c
- *
- * Copyright (C) 2012 LSI Corporation
- */
-
-#include <linux/init.h>
-#include <linux/io.h>
-#include <linux/smp.h>
-#include <linux/of.h>
-#include <linux/of_address.h>
-#include <asm/cacheflush.h>
-
-/* Syscon register offsets for releasing cores from reset */
-#define SC_CRIT_WRITE_KEY	0x1000
-#define SC_RST_CPU_HOLD		0x1010
-
-/*
- * Write the kernel entry point for secondary CPUs to the specified address
- */
-static void write_release_addr(u32 release_phys)
-{
-	u32 *virt = (u32 *) phys_to_virt(release_phys);
-	writel_relaxed(__pa_symbol(secondary_startup), virt);
-	/* Make sure this store is visible to other CPUs */
-	smp_wmb();
-	__cpuc_flush_dcache_area(virt, sizeof(u32));
-}
-
-static int axxia_boot_secondary(unsigned int cpu, struct task_struct *idle)
-{
-	struct device_node *syscon_np;
-	void __iomem *syscon;
-	u32 tmp;
-
-	syscon_np = of_find_compatible_node(NULL, NULL, "lsi,axxia-syscon");
-	if (!syscon_np)
-		return -ENOENT;
-
-	syscon = of_iomap(syscon_np, 0);
-	of_node_put(syscon_np);
-	if (!syscon)
-		return -ENOMEM;
-
-	tmp = readl(syscon + SC_RST_CPU_HOLD);
-	writel(0xab, syscon + SC_CRIT_WRITE_KEY);
-	tmp &= ~(1 << cpu);
-	writel(tmp, syscon + SC_RST_CPU_HOLD);
-
-	return 0;
-}
-
-static void __init axxia_smp_prepare_cpus(unsigned int max_cpus)
-{
-	int cpu_count = 0;
-	int cpu;
-
-	/*
-	 * Initialise the present map, which describes the set of CPUs actually
-	 * populated at the present time.
-	 */
-	for_each_possible_cpu(cpu) {
-		struct device_node *np;
-		u32 release_phys;
-
-		np = of_get_cpu_node(cpu, NULL);
-		if (!np)
-			continue;
-		if (of_property_read_u32(np, "cpu-release-addr", &release_phys))
-			continue;
-
-		if (cpu_count < max_cpus) {
-			set_cpu_present(cpu, true);
-			cpu_count++;
-		}
-
-		if (release_phys != 0)
-			write_release_addr(release_phys);
-	}
-}
-
-static const struct smp_operations axxia_smp_ops __initconst = {
-	.smp_prepare_cpus	= axxia_smp_prepare_cpus,
-	.smp_boot_secondary	= axxia_boot_secondary,
-};
-CPU_METHOD_OF_DECLARE(axxia_smp, "lsi,syscon-release", &axxia_smp_ops);
-- 
2.53.0



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

* Re: [PATCH 11/13] ARM: versatile: remove mps2 support
  2026-09-08 15:28 ` [PATCH 11/13] ARM: versatile: remove mps2 support Arnd Bergmann
@ 2026-09-08 15:41   ` Vladimir Murzin
  2026-09-08 17:37   ` Linus Walleij
  2026-09-08 19:49   ` Sudeep Holla
  2 siblings, 0 replies; 49+ messages in thread
From: Vladimir Murzin @ 2026-09-08 15:41 UTC (permalink / raw)
  To: Arnd Bergmann, Krzysztof Kozlowski, Alexandre Belloni,
	Linus Walleij, Russell King
  Cc: Drew Fustini, Arnd Bergmann, Rob Herring, Conor Dooley,
	Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi, Frank Li,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Vladimir Zapolskiy, Stefan Agner, Maxime Coquelin,
	Alexandre Torgue, Aaro Koskinen, Andreas Kemnade, Kevin Hilman,
	Roger Quadros, Tony Lindgren, Nicolas Ferre, Claudiu Beznea,
	Andrew Lunn, Sebastian Hesselbarth, Gregory Clement,
	Robert Jarzmik, Kristoffer Ericson, Ethan Nelson-Moore,
	Geert Uytterhoeven, Alexander Sverdlin, Shawn Guo,
	Karl Mehltretter, David Hildenbrand (Arm), Nicolas Pitre,
	linux-doc, linux-kernel, linux-arm-kernel, devicetree, imx,
	linux-stm32, linux-omap, Krzysztof Kozlowski, Andi Shyti,
	linux-i2c

On 9/8/26 16:28, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> The Arm mps2 platform is the reference implementation for Arm
> microcontrollers and is useful for testing but not expected to be used
> as a production device.
> 
> With all the Cortex-M based products gone, there is no longer a need
> for a reference platform either, so remove it as well.
> 
> Cc: Liviu Dudau <liviu.dudau@arm.com>
> Cc: Sudeep Holla <sudeep.holla@kernel.org>
> Cc: Lorenzo Pieralisi <lpieralisi@kernel.org>
> Cc: Linus Walleij <linusw@kernel.org>
> Cc: Rob Herring <robh@kernel.org>
> Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
> Cc: Conor Dooley <conor+dt@kernel.org>
> Cc: Andi Shyti <andi.shyti@kernel.org>
> Cc: Ethan Nelson-Moore <enelsonmoore@gmail.com>
> Cc: devicetree@vger.kernel.org
> Cc: linux-i2c@vger.kernel.org
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>  arch/arm/Kconfig                     |  14 --
>  arch/arm/boot/dts/arm/Makefile       |   3 -
>  arch/arm/boot/dts/arm/mps2-an385.dts |  92 -----------
>  arch/arm/boot/dts/arm/mps2-an399.dts |  92 -----------
>  arch/arm/boot/dts/arm/mps2.dtsi      | 220 ---------------------------
>  arch/arm/configs/mps2_defconfig      | 102 -------------
>  arch/arm/mach-versatile/Makefile     |   3 -
>  arch/arm/mach-versatile/v2m-mps2.c   |  17 ---
>  drivers/i2c/busses/Kconfig           |   2 +-
>  9 files changed, 1 insertion(+), 544 deletions(-)
>  delete mode 100644 arch/arm/boot/dts/arm/mps2-an385.dts
>  delete mode 100644 arch/arm/boot/dts/arm/mps2-an399.dts
>  delete mode 100644 arch/arm/boot/dts/arm/mps2.dtsi
>  delete mode 100644 arch/arm/configs/mps2_defconfig
>  delete mode 100644 arch/arm/mach-versatile/v2m-mps2.c

Acked-by: Vladimir Murzin <vladimir.murzin@arm.com>



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

* Re: [PATCH 01/13] ARM: remove sa1100 platform
       [not found] ` <20260908152808.3928630-2-arnd@kernel.org>
@ 2026-09-08 16:26   ` Guenter Roeck
  2026-09-08 17:23   ` Linus Walleij
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 49+ messages in thread
From: Guenter Roeck @ 2026-09-08 16:26 UTC (permalink / raw)
  To: Arnd Bergmann, Krzysztof Kozlowski, Alexandre Belloni,
	Linus Walleij, Russell King
  Cc: Arnd Bergmann, linux-doc, linux-kernel, linux-arm-kernel,
	devicetree, imx, linux-stm32, linux-omap

On 9/8/26 08:27, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> Most sa1100 platforms were removed a few years, with the remaining
> ones left as a starting point for a conversion to devicetree.
> 
> Nothing ever happened on that front, so remove the rest now,
> including the sa1111 and locomo drivers that were once shared
> with pxa but are already sa1100-exclusive now.
> 
> Cc: Russell King <linux@armlinux.org.uk>
> Cc: Linus Walleij <linusw@kernel.org>
> Cc: Kristoffer Ericson <kristoffer.ericson@gmail.com>
> Cc: Guenter Roeck <linux@roeck-us.net>
> Cc: Ethan Nelson-Moore <enelsonmoore@gmail.com>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
Acked-by: Guenter Roeck <linux@roeck-us.net>



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

* Re: [PATCH 00/13] ARM: deprecated platform removal
  2026-09-08 15:27 [PATCH 00/13] ARM: deprecated platform removal Arnd Bergmann
                   ` (6 preceding siblings ...)
       [not found] ` <20260908152808.3928630-2-arnd@kernel.org>
@ 2026-09-08 16:53 ` Randy Dunlap
  2026-09-08 16:56   ` Randy Dunlap
  2026-09-08 18:33   ` Arnd Bergmann
       [not found] ` <20260908152808.3928630-5-arnd@kernel.org>
                   ` (3 subsequent siblings)
  11 siblings, 2 replies; 49+ messages in thread
From: Randy Dunlap @ 2026-09-08 16:53 UTC (permalink / raw)
  To: Arnd Bergmann, Krzysztof Kozlowski, Alexandre Belloni,
	Linus Walleij, Russell King
  Cc: Drew Fustini, Arnd Bergmann, Rob Herring, Conor Dooley,
	Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi, Frank Li,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Vladimir Zapolskiy, Stefan Agner, Maxime Coquelin,
	Alexandre Torgue, Aaro Koskinen, Andreas Kemnade, Kevin Hilman,
	Roger Quadros, Tony Lindgren, Nicolas Ferre, Claudiu Beznea,
	Andrew Lunn, Sebastian Hesselbarth, Gregory Clement,
	Robert Jarzmik, Kristoffer Ericson, Ethan Nelson-Moore,
	Geert Uytterhoeven, Alexander Sverdlin, Shawn Guo,
	Karl Mehltretter, David Hildenbrand (Arm), Nicolas Pitre,
	linux-doc, linux-kernel, linux-arm-kernel, devicetree, imx,
	linux-stm32, linux-omap



On 9/8/26 8:27 AM, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> In the 7.3 kernel, I marked a number of platforms and features as
> deprecated, with the plan to keep these around for the LTS kernel, but
> remove them in 7.4, see [1].
> 
> Cleaning out the deprecated platform code has turned into a larger effort
> than I expected, currently standing at 300 patches, with a lot of them
> still in need of being split up into smaller ones, see [2] for a current
> snapshot.
> 
> The first series here removes just the bits in arch/arm/mach-*/, plus
> the portions that directly depend on the removed Kconfig symbols where
> these are trivial to remove.
> 
> The parts that are not included are those that remove architectural
> features and device drivers that become unused after this part. Some of
> those may also make their way into 7.4, but at this point I would target
> 7.5 for most of them, to keep the dependencies simple.
> 
> This also gives everyone a chance to voice their objections in case
> that some of the removed platform code does have active users after all,
> before all the corresponding drivers are gone.
> 
>      Arnd
> 
> Links:
> [1] https://lore.kernel.org/all/20260701212353.2196041-1-arnd@kernel.org/
> [2] https://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git/log/?h=board-remove-7.3
> 
> Arnd Bergmann (13):
>   ARM: remove sa1100 platform
>   ARM: remove footbridge
>   ARM: remove riscpc
>   ARM: remove legacy pxa board files
>   ARM: orion/dove/mv78xx0: remove all board files
>   ARM: omap2: remove omap24xx support
>   ARM: imx: remove i.MX31 SoC support
>   ARM: imx: remove nommu support
>   ARM: lpc18xx: remove entire platform
>   ARM: stm32: remove stm32f4/f7/h7 MCU support
>   ARM: versatile: remove mps2 support
>   ARM: at91: remove samv7 support
>   ARM: axxia: remove entire platform
> 
>  Documentation/arch/arm/index.rst              |    1 -
>  Documentation/arch/arm/netwinder.rst          |   85 -

I don't see netwinder.rst in any of the single patches.
Should it be in one of them?


[snip]

>  arch/arm/configs/netwinder_defconfig          |   88 -

Same for netwinder_defconfig.

If netwinder is going away, can all of
Documentation/arch/arm/nwfpe/ also go away?

Or do all of these come later (in phase 2 or 3)?

thanks.
-- 
~Randy



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

* Re: [PATCH 00/13] ARM: deprecated platform removal
  2026-09-08 16:53 ` [PATCH 00/13] ARM: deprecated platform removal Randy Dunlap
@ 2026-09-08 16:56   ` Randy Dunlap
  2026-09-08 18:33   ` Arnd Bergmann
  1 sibling, 0 replies; 49+ messages in thread
From: Randy Dunlap @ 2026-09-08 16:56 UTC (permalink / raw)
  To: Arnd Bergmann, Krzysztof Kozlowski, Alexandre Belloni,
	Linus Walleij, Russell King
  Cc: Drew Fustini, Arnd Bergmann, Rob Herring, Conor Dooley,
	Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi, Frank Li,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Vladimir Zapolskiy, Stefan Agner, Maxime Coquelin,
	Alexandre Torgue, Aaro Koskinen, Andreas Kemnade, Kevin Hilman,
	Roger Quadros, Tony Lindgren, Nicolas Ferre, Claudiu Beznea,
	Andrew Lunn, Sebastian Hesselbarth, Gregory Clement,
	Robert Jarzmik, Kristoffer Ericson, Ethan Nelson-Moore,
	Geert Uytterhoeven, Alexander Sverdlin, Shawn Guo,
	Karl Mehltretter, David Hildenbrand (Arm), Nicolas Pitre,
	linux-doc, linux-kernel, linux-arm-kernel, devicetree, imx,
	linux-stm32, linux-omap



On 9/8/26 9:53 AM, Randy Dunlap wrote:
> 
> 
> On 9/8/26 8:27 AM, Arnd Bergmann wrote:
>> From: Arnd Bergmann <arnd@arndb.de>
>>
>> In the 7.3 kernel, I marked a number of platforms and features as
>> deprecated, with the plan to keep these around for the LTS kernel, but
>> remove them in 7.4, see [1].
>>
>> Cleaning out the deprecated platform code has turned into a larger effort
>> than I expected, currently standing at 300 patches, with a lot of them
>> still in need of being split up into smaller ones, see [2] for a current
>> snapshot.
>>
>> The first series here removes just the bits in arch/arm/mach-*/, plus
>> the portions that directly depend on the removed Kconfig symbols where
>> these are trivial to remove.
>>
>> The parts that are not included are those that remove architectural
>> features and device drivers that become unused after this part. Some of
>> those may also make their way into 7.4, but at this point I would target
>> 7.5 for most of them, to keep the dependencies simple.
>>
>> This also gives everyone a chance to voice their objections in case
>> that some of the removed platform code does have active users after all,
>> before all the corresponding drivers are gone.
>>
>>      Arnd
>>
>> Links:
>> [1] https://lore.kernel.org/all/20260701212353.2196041-1-arnd@kernel.org/
>> [2] https://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git/log/?h=board-remove-7.3
>>
>> Arnd Bergmann (13):
>>   ARM: remove sa1100 platform
>>   ARM: remove footbridge
>>   ARM: remove riscpc
>>   ARM: remove legacy pxa board files
>>   ARM: orion/dove/mv78xx0: remove all board files
>>   ARM: omap2: remove omap24xx support
>>   ARM: imx: remove i.MX31 SoC support
>>   ARM: imx: remove nommu support
>>   ARM: lpc18xx: remove entire platform
>>   ARM: stm32: remove stm32f4/f7/h7 MCU support
>>   ARM: versatile: remove mps2 support
>>   ARM: at91: remove samv7 support
>>   ARM: axxia: remove entire platform
>>
>>  Documentation/arch/arm/index.rst              |    1 -
>>  Documentation/arch/arm/netwinder.rst          |   85 -
> 
> I don't see netwinder.rst in any of the single patches.
> Should it be in one of them?
> 
> 
> [snip]
> 
>>  arch/arm/configs/netwinder_defconfig          |   88 -
> 
> Same for netwinder_defconfig.
> 
> If netwinder is going away, can all of
> Documentation/arch/arm/nwfpe/ also go away?
> 
> Or do all of these come later (in phase 2 or 3)?

gag. I hadn't received patch 02/13 yet. Didn't realize that. :(

Only the nwfpe/ question remains.

-- 
~Randy



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

* Re: [PATCH 01/13] ARM: remove sa1100 platform
       [not found] ` <20260908152808.3928630-2-arnd@kernel.org>
  2026-09-08 16:26   ` [PATCH 01/13] ARM: remove sa1100 platform Guenter Roeck
@ 2026-09-08 17:23   ` Linus Walleij
  2026-09-08 19:39   ` Karl Mehltretter
       [not found]   ` <ccd58677-5e25-1f9f-2bb4-d1770fce8ac4@fluxnic.net>
  3 siblings, 0 replies; 49+ messages in thread
From: Linus Walleij @ 2026-09-08 17:23 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Krzysztof Kozlowski, Alexandre Belloni, Russell King,
	Drew Fustini, Arnd Bergmann, Rob Herring, Conor Dooley,
	Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi, Frank Li,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Vladimir Zapolskiy, Stefan Agner, Maxime Coquelin,
	Alexandre Torgue, Aaro Koskinen, Andreas Kemnade, Kevin Hilman,
	Roger Quadros, Tony Lindgren, Nicolas Ferre, Claudiu Beznea,
	Andrew Lunn, Sebastian Hesselbarth, Gregory Clement,
	Robert Jarzmik, Kristoffer Ericson, Ethan Nelson-Moore,
	Geert Uytterhoeven, Alexander Sverdlin, Shawn Guo,
	Karl Mehltretter, David Hildenbrand (Arm), Nicolas Pitre,
	linux-doc, linux-kernel, linux-arm-kernel, devicetree, imx,
	linux-stm32, linux-omap, Guenter Roeck

On Tue, Sep 8, 2026 at 5:28 PM Arnd Bergmann <arnd@kernel.org> wrote:

> From: Arnd Bergmann <arnd@arndb.de>
>
> Most sa1100 platforms were removed a few years, with the remaining
> ones left as a starting point for a conversion to devicetree.
>
> Nothing ever happened on that front, so remove the rest now,
> including the sa1111 and locomo drivers that were once shared
> with pxa but are already sa1100-exclusive now.
>
> Cc: Russell King <linux@armlinux.org.uk>
> Cc: Linus Walleij <linusw@kernel.org>
> Cc: Kristoffer Ericson <kristoffer.ericson@gmail.com>
> Cc: Guenter Roeck <linux@roeck-us.net>
> Cc: Ethan Nelson-Moore <enelsonmoore@gmail.com>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Acked-by: Linus Walleij <linusw@kernel.org>

If some user really want to keep this platform around and it
willing to invest time in testing, I do not think it is hard to
convert it to device tree using an LLM.

But if there are no users, away it goes.

Yours,
Linus Walleij


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

* Re: [PATCH 02/13] ARM: remove footbridge
  2026-09-08 15:27 ` [PATCH 02/13] ARM: remove footbridge Arnd Bergmann
@ 2026-09-08 17:27   ` Linus Walleij
  2026-09-09 15:09     ` Ralph Siemsen
  0 siblings, 1 reply; 49+ messages in thread
From: Linus Walleij @ 2026-09-08 17:27 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Krzysztof Kozlowski, Alexandre Belloni, Russell King,
	Drew Fustini, Arnd Bergmann, Rob Herring, Conor Dooley,
	Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi, Frank Li,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Vladimir Zapolskiy, Stefan Agner, Maxime Coquelin,
	Alexandre Torgue, Aaro Koskinen, Andreas Kemnade, Kevin Hilman,
	Roger Quadros, Tony Lindgren, Nicolas Ferre, Claudiu Beznea,
	Andrew Lunn, Sebastian Hesselbarth, Gregory Clement,
	Robert Jarzmik, Kristoffer Ericson, Ethan Nelson-Moore,
	Geert Uytterhoeven, Alexander Sverdlin, Shawn Guo,
	Karl Mehltretter, David Hildenbrand (Arm), Nicolas Pitre,
	linux-doc, linux-kernel, linux-arm-kernel, devicetree, imx,
	linux-stm32, linux-omap, Ralph Siemsen, Helge Deller, dri-devel

On Tue, Sep 8, 2026 at 5:28 PM Arnd Bergmann <arnd@kernel.org> wrote:

> From: Arnd Bergmann <arnd@arndb.de>
>
> Footbridge was deprecated in 7.3 to be removed along with the other
> StrongARM platforms and most remaining board files.
>
> The main machine here is the NetWinder, which was a popular Arm based
> desktop PC in the late 1990s and contributed to Arm's later success as
> an embedded Linux platform, but was discontinued over 25 years ago and
> is no longer all that useful.
>
> I previously tried to convert this to devicetree in a sensible way but
> gave up due to the platform being too different from modern SoC based
> targets.
>
> Cc: Russell King <linux@armlinux.org.uk>
> Cc: Ralph Siemsen <ralphs@netwinder.org>
> Cc: Helge Deller <deller@gmx.de>
> Cc: dri-devel@lists.freedesktop.org
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Acked-by: Linus Walleij <linusw@kernel.org>

I have one of those machines and it boot mainline but I
certainly consider it a paperweight at this point, I can't use
it for anything useful.

Yours,
Linus Walleij


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

* Re: [PATCH 04/13] ARM: remove legacy pxa board files
       [not found] ` <20260908152808.3928630-5-arnd@kernel.org>
@ 2026-09-08 17:30   ` Linus Walleij
  0 siblings, 0 replies; 49+ messages in thread
From: Linus Walleij @ 2026-09-08 17:30 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Krzysztof Kozlowski, Alexandre Belloni, Russell King,
	Drew Fustini, Arnd Bergmann, Rob Herring, Conor Dooley,
	Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi, Frank Li,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Vladimir Zapolskiy, Stefan Agner, Maxime Coquelin,
	Alexandre Torgue, Aaro Koskinen, Andreas Kemnade, Kevin Hilman,
	Roger Quadros, Tony Lindgren, Nicolas Ferre, Claudiu Beznea,
	Andrew Lunn, Sebastian Hesselbarth, Gregory Clement,
	Robert Jarzmik, Kristoffer Ericson, Ethan Nelson-Moore,
	Geert Uytterhoeven, Alexander Sverdlin, Shawn Guo,
	Karl Mehltretter, David Hildenbrand (Arm), Nicolas Pitre,
	linux-doc, linux-kernel, linux-arm-kernel, devicetree, imx,
	linux-stm32, linux-omap, Daniel Mack, Haojian Zhuang,
	Bartosz Golaszewski

On Tue, Sep 8, 2026 at 5:29 PM Arnd Bergmann <arnd@kernel.org> wrote:

> From: Arnd Bergmann <arnd@arndb.de>
>
> The PXA platform supports devicetree based booting, but still has a
> few traditional board files, which were left as a starting point for a
> possible conversion to devicetree during the last mass purge of board
> files in 2022.
>
> None of these boards were actually converted, so drop support for these
> now, along with the 'scoop' support chip that was used on some PDAs that
> are no longer usable now.
>
> The only remaining board support is for the "Raumfeld" speaker system
> based on PXA300 SoC, though basic support for PXA250 and PXA270 is still
> there and may work with external dts files.
>
> Cc: Daniel Mack <daniel@zonque.org>
> Cc: Haojian Zhuang <haojian.zhuang@gmail.com>
> Cc: Robert Jarzmik <robert.jarzmik@free.fr>
> Cc: Linus Walleij <linusw@kernel.org>
> Cc: Bartosz Golaszewski <brgl@kernel.org>
> Cc: Ethan Nelson-Moore <enelsonmoore@gmail.com>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Acked-by: Linus Walleij <linusw@kernel.org>

I ACK this based on the number of refactorings I did on this
to remove the static GPIO assignments, I'm really tired of
doing them if no-one benefits.

Yours,
Linus Walleij


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

* Re: [PATCH 09/13] ARM: lpc18xx: remove entire platform
  2026-09-08 15:27 ` [PATCH 09/13] ARM: lpc18xx: remove entire platform Arnd Bergmann
@ 2026-09-08 17:36   ` Linus Walleij
  2026-09-09  8:28   ` Vladimir Zapolskiy
  1 sibling, 0 replies; 49+ messages in thread
From: Linus Walleij @ 2026-09-08 17:36 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Krzysztof Kozlowski, Alexandre Belloni, Russell King,
	Drew Fustini, Arnd Bergmann, Rob Herring, Conor Dooley,
	Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi, Frank Li,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Vladimir Zapolskiy, Stefan Agner, Maxime Coquelin,
	Alexandre Torgue, Aaro Koskinen, Andreas Kemnade, Kevin Hilman,
	Roger Quadros, Tony Lindgren, Nicolas Ferre, Claudiu Beznea,
	Andrew Lunn, Sebastian Hesselbarth, Gregory Clement,
	Robert Jarzmik, Kristoffer Ericson, Ethan Nelson-Moore,
	Geert Uytterhoeven, Alexander Sverdlin, Shawn Guo,
	Karl Mehltretter, David Hildenbrand (Arm), Nicolas Pitre,
	linux-doc, linux-kernel, linux-arm-kernel, devicetree, imx,
	linux-stm32, linux-omap, Krzysztof Kozlowski

On Tue, Sep 8, 2026 at 5:30 PM Arnd Bergmann <arnd@kernel.org> wrote:

> From: Arnd Bergmann <arnd@arndb.de>
>
> The NXP LPC18xx and LPC43xx microcontrollers are the more modern
> version of the classic LPC32xx line, but they lack memory management
> units.
>
> These microcontrollers all remain in production as of 2026, but
> there are no known users running Linux on them.
>
> The platform was marked deprecated in the 7.3-LTS release, which
> will remain supported for a few more years.
>
> Remove support for both LPC18xx and LPC43xx.

Acked-by: Linus Walleij <linusw@kernel.org>

Yours,
Linus Walleij


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

* Re: [PATCH 10/13] ARM: stm32: remove stm32f4/f7/h7 MCU support
       [not found] ` <20260908152808.3928630-11-arnd@kernel.org>
@ 2026-09-08 17:36   ` Linus Walleij
  2026-09-11 15:46   ` Alexandre TORGUE
  1 sibling, 0 replies; 49+ messages in thread
From: Linus Walleij @ 2026-09-08 17:36 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Krzysztof Kozlowski, Alexandre Belloni, Russell King,
	Drew Fustini, Arnd Bergmann, Rob Herring, Conor Dooley,
	Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi, Frank Li,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Vladimir Zapolskiy, Stefan Agner, Maxime Coquelin,
	Alexandre Torgue, Aaro Koskinen, Andreas Kemnade, Kevin Hilman,
	Roger Quadros, Tony Lindgren, Nicolas Ferre, Claudiu Beznea,
	Andrew Lunn, Sebastian Hesselbarth, Gregory Clement,
	Robert Jarzmik, Kristoffer Ericson, Ethan Nelson-Moore,
	Geert Uytterhoeven, Alexander Sverdlin, Shawn Guo,
	Karl Mehltretter, David Hildenbrand (Arm), Nicolas Pitre,
	linux-doc, linux-kernel, linux-arm-kernel, devicetree, imx,
	linux-stm32, linux-omap, Krzysztof Kozlowski, Christophe Parant,
	Benjamin Gaignard, Dario Binacchi

On Tue, Sep 8, 2026 at 5:30 PM Arnd Bergmann <arnd@kernel.org> wrote:

> From: Arnd Bergmann <arnd@arndb.de>
>
> The stm32 platform started out as a Cortex-M based microcontoller
> platform in 2007, with a few of the older products gaining Linux kernel
> support in 2016. These days, the only relevant chips for Linux are the
> stm32mp1 (Cortex-A7) and stm32mp2 (Cortex-A35) product lines, with the
> microcontrollers running smaller RTOSs on new products.
>
> The microcontrollers were marked as deprecated in the linux-7.3LTS
> release, which will remain supported for a few more years and
> is expected to be sufficient for any of the remaining original users.
>
> Remove the MCU support now, leaving only the stm32mp SoCs in the platform.
>
> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>
> Cc: Alexandre Torgue <alexandre.torgue@foss.st.com>
> Cc: Rob Herring <robh@kernel.org>
> Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
> Cc: Conor Dooley <conor+dt@kernel.org>
> Cc: Christophe Parant <c.parant@phytec.fr>
> Cc: Benjamin Gaignard <benjamin.gaignard@collabora.com>
> Cc: Dario Binacchi <dario.binacchi@amarulasolutions.com>
> Cc: devicetree@vger.kernel.org
> Cc: linux-stm32@st-md-mailman.stormreply.com
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Acked-by: Linus Walleij <linusw@kernel.org>

Yours,
Linus Walleij


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

* Re: [PATCH 11/13] ARM: versatile: remove mps2 support
  2026-09-08 15:28 ` [PATCH 11/13] ARM: versatile: remove mps2 support Arnd Bergmann
  2026-09-08 15:41   ` Vladimir Murzin
@ 2026-09-08 17:37   ` Linus Walleij
  2026-09-08 19:49   ` Sudeep Holla
  2 siblings, 0 replies; 49+ messages in thread
From: Linus Walleij @ 2026-09-08 17:37 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Krzysztof Kozlowski, Alexandre Belloni, Russell King,
	Drew Fustini, Arnd Bergmann, Rob Herring, Conor Dooley,
	Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi, Frank Li,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Vladimir Zapolskiy, Stefan Agner, Maxime Coquelin,
	Alexandre Torgue, Aaro Koskinen, Andreas Kemnade, Kevin Hilman,
	Roger Quadros, Tony Lindgren, Nicolas Ferre, Claudiu Beznea,
	Andrew Lunn, Sebastian Hesselbarth, Gregory Clement,
	Robert Jarzmik, Kristoffer Ericson, Ethan Nelson-Moore,
	Geert Uytterhoeven, Alexander Sverdlin, Shawn Guo,
	Karl Mehltretter, David Hildenbrand (Arm), Nicolas Pitre,
	linux-doc, linux-kernel, linux-arm-kernel, devicetree, imx,
	linux-stm32, linux-omap, Krzysztof Kozlowski, Andi Shyti,
	linux-i2c

On Tue, Sep 8, 2026 at 5:30 PM Arnd Bergmann <arnd@kernel.org> wrote:

> From: Arnd Bergmann <arnd@arndb.de>
>
> The Arm mps2 platform is the reference implementation for Arm
> microcontrollers and is useful for testing but not expected to be used
> as a production device.
>
> With all the Cortex-M based products gone, there is no longer a need
> for a reference platform either, so remove it as well.
>
> Cc: Liviu Dudau <liviu.dudau@arm.com>
> Cc: Sudeep Holla <sudeep.holla@kernel.org>
> Cc: Lorenzo Pieralisi <lpieralisi@kernel.org>
> Cc: Linus Walleij <linusw@kernel.org>
> Cc: Rob Herring <robh@kernel.org>
> Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
> Cc: Conor Dooley <conor+dt@kernel.org>
> Cc: Andi Shyti <andi.shyti@kernel.org>
> Cc: Ethan Nelson-Moore <enelsonmoore@gmail.com>
> Cc: devicetree@vger.kernel.org
> Cc: linux-i2c@vger.kernel.org
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Acked-by: Linus Walleij <linusw@kernel.org>

Yours,
Linus Walleij


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

* Re: [PATCH 12/13] ARM: at91: remove samv7 support
  2026-09-08 15:28 ` [PATCH 12/13] ARM: at91: remove samv7 support Arnd Bergmann
@ 2026-09-08 17:39   ` Linus Walleij
  2026-09-08 19:58   ` Sverdlin, Alexander
                     ` (3 subsequent siblings)
  4 siblings, 0 replies; 49+ messages in thread
From: Linus Walleij @ 2026-09-08 17:39 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Krzysztof Kozlowski, Alexandre Belloni, Russell King,
	Drew Fustini, Arnd Bergmann, Rob Herring, Conor Dooley,
	Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi, Frank Li,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Vladimir Zapolskiy, Stefan Agner, Maxime Coquelin,
	Alexandre Torgue, Aaro Koskinen, Andreas Kemnade, Kevin Hilman,
	Roger Quadros, Tony Lindgren, Nicolas Ferre, Claudiu Beznea,
	Andrew Lunn, Sebastian Hesselbarth, Gregory Clement,
	Robert Jarzmik, Kristoffer Ericson, Ethan Nelson-Moore,
	Geert Uytterhoeven, Alexander Sverdlin, Shawn Guo,
	Karl Mehltretter, David Hildenbrand (Arm), Nicolas Pitre,
	linux-doc, linux-kernel, linux-arm-kernel, devicetree, imx,
	linux-stm32, linux-omap

On Tue, Sep 8, 2026 at 5:30 PM Arnd Bergmann <arnd@kernel.org> wrote:

> From: Arnd Bergmann <arnd@arndb.de>
>
> The Atmel at91 line, now known as Microchip SAM contains both
> SoCs using ARM926 and Cortex-A CPUs as well as a number of
> microcontrollers. Only a single one of those MCUs currently
> has Linux support, and has no known users.
>
> The samv7 platform was deprecated in Linux-7.3LTS, which will
> remain supported a while longer after it is gone from mainline.
>
> Cc: Nicolas Ferre <nicolas.ferre@microchip.com>
> Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
> Cc: Claudiu Beznea <claudiu.beznea@tuxon.dev>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Acked-by: Linus Walleij <linusw@kernel.org>

Yours,
Linus Walleij


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

* Re: [PATCH 13/13] ARM: axxia: remove entire platform
  2026-09-08 15:28 ` [PATCH 13/13] ARM: axxia: remove entire platform Arnd Bergmann
@ 2026-09-08 17:40   ` Linus Walleij
  2026-09-08 18:23   ` Krzysztof Kozlowski
  2026-09-08 20:02   ` Sverdlin, Alexander
  2 siblings, 0 replies; 49+ messages in thread
From: Linus Walleij @ 2026-09-08 17:40 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Krzysztof Kozlowski, Alexandre Belloni, Russell King,
	Drew Fustini, Arnd Bergmann, Rob Herring, Conor Dooley,
	Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi, Frank Li,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Vladimir Zapolskiy, Stefan Agner, Maxime Coquelin,
	Alexandre Torgue, Aaro Koskinen, Andreas Kemnade, Kevin Hilman,
	Roger Quadros, Tony Lindgren, Nicolas Ferre, Claudiu Beznea,
	Andrew Lunn, Sebastian Hesselbarth, Gregory Clement,
	Robert Jarzmik, Kristoffer Ericson, Ethan Nelson-Moore,
	Geert Uytterhoeven, Alexander Sverdlin, Shawn Guo,
	Karl Mehltretter, David Hildenbrand (Arm), Nicolas Pitre,
	linux-doc, linux-kernel, linux-arm-kernel, devicetree, imx,
	linux-stm32, linux-omap, Anders Berg

On Tue, Sep 8, 2026 at 5:30 PM Arnd Bergmann <arnd@kernel.org> wrote:

> From: Arnd Bergmann <arnd@arndb.de>
>
> The initial Axxia port was contributed by LSI in 2014, but never completed
> after the sale of the business unit to Intel, which kept supporting the
> bulk of the drivers in their own downstream BSP.
>
> The downstream work has also ended now, and there is no realistic chance
> that anyone would rewrite it all into an upstreamable port.
>
> Remove it now that the 7.3LTS release is out and can be used as the
> base for one more downstream rebase of the downstream patches if needed.
>
> Cc: Krzysztof Kozlowski <krzk@kernel.org>
> Cc: Rob Herring <robh@kernel.org>
> Cc: Conor Dooley <conor+dt@kernel.org>
> Cc: Alexander Sverdlin <alexander.sverdlin@siemens.com>
> Cc: Ethan Nelson-Moore <enelsonmoore@gmail.com>
> Cc: Anders Berg <anders.berg@lsi.com>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Acked-by: Linus Walleij <linusw@kernel.org>

Yours,
Linus Walleij


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

* Re: [PATCH 13/13] ARM: axxia: remove entire platform
  2026-09-08 15:28 ` [PATCH 13/13] ARM: axxia: remove entire platform Arnd Bergmann
  2026-09-08 17:40   ` Linus Walleij
@ 2026-09-08 18:23   ` Krzysztof Kozlowski
  2026-09-08 20:02   ` Sverdlin, Alexander
  2 siblings, 0 replies; 49+ messages in thread
From: Krzysztof Kozlowski @ 2026-09-08 18:23 UTC (permalink / raw)
  To: Arnd Bergmann, Alexandre Belloni, Linus Walleij, Russell King
  Cc: Drew Fustini, Arnd Bergmann, Rob Herring, Conor Dooley,
	Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi, Frank Li,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Vladimir Zapolskiy, Stefan Agner, Maxime Coquelin,
	Alexandre Torgue, Aaro Koskinen, Andreas Kemnade, Kevin Hilman,
	Roger Quadros, Tony Lindgren, Nicolas Ferre, Claudiu Beznea,
	Andrew Lunn, Sebastian Hesselbarth, Gregory Clement,
	Robert Jarzmik, Kristoffer Ericson, Ethan Nelson-Moore,
	Geert Uytterhoeven, Alexander Sverdlin, Shawn Guo,
	Karl Mehltretter, David Hildenbrand (Arm), Nicolas Pitre,
	linux-doc, linux-kernel, linux-arm-kernel, devicetree, imx,
	linux-stm32, linux-omap, Anders Berg

On 08/09/2026 17:28, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> The initial Axxia port was contributed by LSI in 2014, but never completed
> after the sale of the business unit to Intel, which kept supporting the
> bulk of the drivers in their own downstream BSP.
> 
> The downstream work has also ended now, and there is no realistic chance
> that anyone would rewrite it all into an upstreamable port.
> 
> Remove it now that the 7.3LTS release is out and can be used as the
> base for one more downstream rebase of the downstream patches if needed.
> 
> Cc: Krzysztof Kozlowski <krzk@kernel.org>
> Cc: Rob Herring <robh@kernel.org>
> Cc: Conor Dooley <conor+dt@kernel.org>
> Cc: Alexander Sverdlin <alexander.sverdlin@siemens.com>
> Cc: Ethan Nelson-Moore <enelsonmoore@gmail.com>
> Cc: Anders Berg <anders.berg@lsi.com>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>


Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>

Best regards,
Krzysztof


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

* Re: [PATCH 00/13] ARM: deprecated platform removal
  2026-09-08 16:53 ` [PATCH 00/13] ARM: deprecated platform removal Randy Dunlap
  2026-09-08 16:56   ` Randy Dunlap
@ 2026-09-08 18:33   ` Arnd Bergmann
  2026-09-08 18:39     ` Randy Dunlap
  1 sibling, 1 reply; 49+ messages in thread
From: Arnd Bergmann @ 2026-09-08 18:33 UTC (permalink / raw)
  To: Randy Dunlap, Arnd Bergmann, Krzysztof Kozlowski,
	Alexandre Belloni, Linus Walleij, Russell King
  Cc: Drew Fustini, Rob Herring, Conor Dooley, Liviu Dudau,
	Sudeep Holla, Lorenzo Pieralisi, Frank Li, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Vladimir Zapolskiy,
	Stefan Agner, Maxime Coquelin, Alexandre Torgue, Aaro Koskinen,
	Andreas Kemnade, Kevin Hilman, Roger Quadros, Tony Lindgren,
	Nicolas Ferre, Claudiu Beznea, Andrew Lunn, Sebastian Hesselbarth,
	Gregory Clement, Robert Jarzmik, Kristoffer Ericson,
	Ethan Nelson-Moore, Geert Uytterhoeven, A. Sverdlin, Shawn Guo,
	Karl Mehltretter, David Hildenbrand (Red Hat), Nicolas Pitre,
	linux-doc, linux-kernel, linux-arm-kernel, devicetree, imx,
	linux-stm32, Linux-OMAP

On Tue, Sep 8, 2026, at 18:53, Randy Dunlap wrote:
>
> If netwinder is going away, can all of
> Documentation/arch/arm/nwfpe/ also go away?
>
> Or do all of these come later (in phase 2 or 3)?

nwfpe is used on all OABI platforms, not just netwinder, so
the patch to remove that comes in the next series after removing
OABI. See

https://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git/commit/?id=ff375183fe225b79de700f004181405ff6a739cc

for the draft patch.

      Arnd


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

* Re: [PATCH 00/13] ARM: deprecated platform removal
  2026-09-08 18:33   ` Arnd Bergmann
@ 2026-09-08 18:39     ` Randy Dunlap
  0 siblings, 0 replies; 49+ messages in thread
From: Randy Dunlap @ 2026-09-08 18:39 UTC (permalink / raw)
  To: Arnd Bergmann, Arnd Bergmann, Krzysztof Kozlowski,
	Alexandre Belloni, Linus Walleij, Russell King
  Cc: Drew Fustini, Rob Herring, Conor Dooley, Liviu Dudau,
	Sudeep Holla, Lorenzo Pieralisi, Frank Li, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Vladimir Zapolskiy,
	Stefan Agner, Maxime Coquelin, Alexandre Torgue, Aaro Koskinen,
	Andreas Kemnade, Kevin Hilman, Roger Quadros, Tony Lindgren,
	Nicolas Ferre, Claudiu Beznea, Andrew Lunn, Sebastian Hesselbarth,
	Gregory Clement, Robert Jarzmik, Kristoffer Ericson,
	Ethan Nelson-Moore, Geert Uytterhoeven, A. Sverdlin, Shawn Guo,
	Karl Mehltretter, David Hildenbrand (Red Hat), Nicolas Pitre,
	linux-doc, linux-kernel, linux-arm-kernel, devicetree, imx,
	linux-stm32, Linux-OMAP



On 9/8/26 11:33 AM, Arnd Bergmann wrote:
> On Tue, Sep 8, 2026, at 18:53, Randy Dunlap wrote:
>>
>> If netwinder is going away, can all of
>> Documentation/arch/arm/nwfpe/ also go away?
>>
>> Or do all of these come later (in phase 2 or 3)?
> 
> nwfpe is used on all OABI platforms, not just netwinder, so
> the patch to remove that comes in the next series after removing
> OABI. See
> 
> https://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git/commit/?id=ff375183fe225b79de700f004181405ff6a739cc
> 
> for the draft patch.

Got it. Thanks.

-- 
~Randy



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

* Re: [PATCH 01/13] ARM: remove sa1100 platform
       [not found] ` <20260908152808.3928630-2-arnd@kernel.org>
  2026-09-08 16:26   ` [PATCH 01/13] ARM: remove sa1100 platform Guenter Roeck
  2026-09-08 17:23   ` Linus Walleij
@ 2026-09-08 19:39   ` Karl Mehltretter
  2026-09-08 20:09     ` Arnd Bergmann
       [not found]   ` <ccd58677-5e25-1f9f-2bb4-d1770fce8ac4@fluxnic.net>
  3 siblings, 1 reply; 49+ messages in thread
From: Karl Mehltretter @ 2026-09-08 19:39 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Krzysztof Kozlowski, Alexandre Belloni, Linus Walleij,
	Russell King, Drew Fustini, Arnd Bergmann, Rob Herring,
	Conor Dooley, Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi,
	Frank Li, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Vladimir Zapolskiy, Stefan Agner, Maxime Coquelin,
	Alexandre Torgue, Aaro Koskinen, Andreas Kemnade, Kevin Hilman,
	Roger Quadros, Tony Lindgren, Nicolas Ferre, Claudiu Beznea,
	Andrew Lunn, Sebastian Hesselbarth, Gregory Clement,
	Robert Jarzmik, Kristoffer Ericson, Ethan Nelson-Moore,
	Geert Uytterhoeven, Alexander Sverdlin, Shawn Guo,
	David Hildenbrand (Arm), Nicolas Pitre, linux-doc, linux-kernel,
	linux-arm-kernel, devicetree, imx, linux-stm32, linux-omap,
	Guenter Roeck

On Tue, Sep 08, 2026 at 05:27:51PM +0100, Arnd Bergmann wrote:
>  62 files changed, 19 insertions(+), 10501 deletions(-)

Note that Sashiko skipped reviewing this patch, because it exceeded
its current 10000 line limit.

> diff --git a/drivers/rtc/rtc-sa1100.c b/drivers/rtc/rtc-sa1100.c
> @@ -275,18 +275,10 @@ static int sa1100_rtc_probe(struct platform_device *pdev)
> -	if (IS_ENABLED(CONFIG_ARCH_SA1100) ||
> -	    of_device_is_compatible(pdev->dev.of_node, "mrvl,sa1100-rtc")) {
> -		info->rcnr = base + 0x04;
> -		info->rtsr = base + 0x10;
> -		info->rtar = base + 0x00;
> -		info->rttr = base + 0x08;
> -	} else {
> -		info->rcnr = base + 0x0;
> -		info->rtsr = base + 0x8;
> -		info->rtar = base + 0x4;
> -		info->rttr = base + 0xc;
> -	}
> +	info->rcnr = base + 0x0;
> +	info->rtsr = base + 0x8;
> +	info->rtar = base + 0x4;
> +	info->rttr = base + 0xc;

This drops the layout switch but keeps "mrvl,sa1100-rtc" in
sa1100_rtc_dt_ids[] and in bindings/rtc/sa1100-rtc.yaml, so a DT with
that compatible would now silently get the MMP register offsets instead
of the SA1100 ones.

> diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
> @@ -614,16 +614,16 @@ config S3C2410_WATCHDOG
>  	  be called s3c2410_wdt.
>  
>  config SA1100_WATCHDOG
> -	tristate "SA1100/PXA2xx watchdog"
> -	depends on ARCH_SA1100 || ARCH_PXA || COMPILE_TEST
> +	tristate "PXA2xx watchdog"
> +	depends on ARCH_PXA || COMPILE_TEST
>  	help
> -	  Watchdog timer embedded into SA11x0 and PXA2xx chips. This will
> -	  reboot your system when timeout is reached.
> +	  Watchdog timer embedded PXA2xx chips. This will reboot your
> +	  system when timeout is reached.
>  

"embedded into PXA2xx chips" is better.

The RTC_DRV_SA1100 help text a bit earlier in the patch also still says
"built into your SA11x0 or PXA2xx CPU".

Thanks,
Karl


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

* Re: [PATCH 11/13] ARM: versatile: remove mps2 support
  2026-09-08 15:28 ` [PATCH 11/13] ARM: versatile: remove mps2 support Arnd Bergmann
  2026-09-08 15:41   ` Vladimir Murzin
  2026-09-08 17:37   ` Linus Walleij
@ 2026-09-08 19:49   ` Sudeep Holla
  2026-09-08 19:51     ` Arnd Bergmann
  2026-09-08 19:54     ` Sudeep Holla
  2 siblings, 2 replies; 49+ messages in thread
From: Sudeep Holla @ 2026-09-08 19:49 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Krzysztof Kozlowski, Sudeep Holla, Alexandre Belloni,
	Linus Walleij, Russell King, Drew Fustini, Arnd Bergmann,
	Rob Herring, Conor Dooley, Liviu Dudau, Lorenzo Pieralisi,
	Frank Li, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Vladimir Zapolskiy, Stefan Agner, Maxime Coquelin,
	Alexandre Torgue, Aaro Koskinen, Andreas Kemnade, Kevin Hilman,
	Roger Quadros, Tony Lindgren, Nicolas Ferre, Claudiu Beznea,
	Andrew Lunn, Sebastian Hesselbarth, Gregory Clement,
	Robert Jarzmik, Kristoffer Ericson, Ethan Nelson-Moore,
	Geert Uytterhoeven, Alexander Sverdlin, Shawn Guo,
	Karl Mehltretter, David Hildenbrand (Arm), Nicolas Pitre,
	linux-doc, linux-kernel, linux-arm-kernel, devicetree, imx,
	linux-stm32, linux-omap, Krzysztof Kozlowski, Andi Shyti,
	linux-i2c

On Tue, Sep 08, 2026 at 05:28:01PM +0200, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> The Arm mps2 platform is the reference implementation for Arm
> microcontrollers and is useful for testing but not expected to be used
> as a production device.
> 
> With all the Cortex-M based products gone, there is no longer a need
> for a reference platform either, so remove it as well.
> 
> Cc: Liviu Dudau <liviu.dudau@arm.com>
> Cc: Sudeep Holla <sudeep.holla@kernel.org>

Acked-by: Sudeep Holla <sudeep.holla@kernel.org>

While at it, should we also remove

drivers/tty/serial/mps2-uart.c and related Makefile/Kconfig entries ?

-- 
Regards,
Sudeep


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

* Re: [PATCH 11/13] ARM: versatile: remove mps2 support
  2026-09-08 19:49   ` Sudeep Holla
@ 2026-09-08 19:51     ` Arnd Bergmann
  2026-09-08 19:58       ` Sudeep Holla
  2026-09-08 19:54     ` Sudeep Holla
  1 sibling, 1 reply; 49+ messages in thread
From: Arnd Bergmann @ 2026-09-08 19:51 UTC (permalink / raw)
  To: Sudeep Holla, Arnd Bergmann
  Cc: Krzysztof Kozlowski, Alexandre Belloni, Linus Walleij,
	Russell King, Drew Fustini, Rob Herring, Conor Dooley,
	Liviu Dudau, Lorenzo Pieralisi, Frank Li, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Vladimir Zapolskiy,
	Stefan Agner, Maxime Coquelin, Alexandre Torgue, Aaro Koskinen,
	Andreas Kemnade, Kevin Hilman, Roger Quadros, Tony Lindgren,
	Nicolas Ferre, Claudiu Beznea, Andrew Lunn, Sebastian Hesselbarth,
	Gregory Clement, Robert Jarzmik, Kristoffer Ericson,
	Ethan Nelson-Moore, Geert Uytterhoeven, A. Sverdlin, Shawn Guo,
	Karl Mehltretter, David Hildenbrand (Red Hat), Nicolas Pitre,
	linux-doc, linux-kernel, linux-arm-kernel, devicetree, imx,
	linux-stm32, Linux-OMAP, Krzysztof Kozlowski, Andi Shyti,
	linux-i2c

On Tue, Sep 8, 2026, at 21:49, Sudeep Holla wrote:
> On Tue, Sep 08, 2026 at 05:28:01PM +0200, Arnd Bergmann wrote:
>> From: Arnd Bergmann <arnd@arndb.de>
>> 
>> The Arm mps2 platform is the reference implementation for Arm
>> microcontrollers and is useful for testing but not expected to be used
>> as a production device.
>> 
>> With all the Cortex-M based products gone, there is no longer a need
>> for a reference platform either, so remove it as well.
>> 
>> Cc: Liviu Dudau <liviu.dudau@arm.com>
>> Cc: Sudeep Holla <sudeep.holla@kernel.org>
>
> Acked-by: Sudeep Holla <sudeep.holla@kernel.org>

Thanks!

> While at it, should we also remove
>
> drivers/tty/serial/mps2-uart.c and related Makefile/Kconfig entries ?

Yes, I have a patch for that in
https://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git/log/?h=board-remove-7.3 and will post that once this series has progressed enough.

     Arnd


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

* Re: [PATCH 11/13] ARM: versatile: remove mps2 support
  2026-09-08 19:49   ` Sudeep Holla
  2026-09-08 19:51     ` Arnd Bergmann
@ 2026-09-08 19:54     ` Sudeep Holla
  1 sibling, 0 replies; 49+ messages in thread
From: Sudeep Holla @ 2026-09-08 19:54 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Krzysztof Kozlowski, Alexandre Belloni, Sudeep Holla,
	Linus Walleij, Russell King, Drew Fustini, Arnd Bergmann,
	Rob Herring, Conor Dooley, Liviu Dudau, Lorenzo Pieralisi,
	Frank Li, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Vladimir Zapolskiy, Stefan Agner, Maxime Coquelin,
	Alexandre Torgue, Aaro Koskinen, Andreas Kemnade, Kevin Hilman,
	Roger Quadros, Tony Lindgren, Nicolas Ferre, Claudiu Beznea,
	Andrew Lunn, Sebastian Hesselbarth, Gregory Clement,
	Robert Jarzmik, Kristoffer Ericson, Ethan Nelson-Moore,
	Geert Uytterhoeven, Alexander Sverdlin, Shawn Guo,
	Karl Mehltretter, David Hildenbrand (Arm), Nicolas Pitre,
	linux-doc, linux-kernel, linux-arm-kernel, devicetree, imx,
	linux-stm32, linux-omap, Krzysztof Kozlowski, Andi Shyti,
	linux-i2c

On Tue, Sep 08, 2026 at 08:49:09PM +0100, Sudeep Holla wrote:
> On Tue, Sep 08, 2026 at 05:28:01PM +0200, Arnd Bergmann wrote:
> > From: Arnd Bergmann <arnd@arndb.de>
> > 
> > The Arm mps2 platform is the reference implementation for Arm
> > microcontrollers and is useful for testing but not expected to be used
> > as a production device.
> > 
> > With all the Cortex-M based products gone, there is no longer a need
> > for a reference platform either, so remove it as well.
> > 
> > Cc: Liviu Dudau <liviu.dudau@arm.com>
> > Cc: Sudeep Holla <sudeep.holla@kernel.org>
> 
> Acked-by: Sudeep Holla <sudeep.holla@kernel.org>
> 
> While at it, should we also remove
> 
> drivers/tty/serial/mps2-uart.c and related Makefile/Kconfig entries ?
> 

My initial search was incomplete(used _MPS2_ instead of _MPS2).
We also have timer/clocksource driver:

drivers/clocksource/mps2-timer.c

-- 
Regards,
Sudeep


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

* Re: [PATCH 11/13] ARM: versatile: remove mps2 support
  2026-09-08 19:51     ` Arnd Bergmann
@ 2026-09-08 19:58       ` Sudeep Holla
  0 siblings, 0 replies; 49+ messages in thread
From: Sudeep Holla @ 2026-09-08 19:58 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Arnd Bergmann, Krzysztof Kozlowski, Alexandre Belloni,
	Sudeep Holla, Linus Walleij, Russell King, Drew Fustini,
	Rob Herring, Conor Dooley, Liviu Dudau, Lorenzo Pieralisi,
	Frank Li, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Vladimir Zapolskiy, Stefan Agner, Maxime Coquelin,
	Alexandre Torgue, Aaro Koskinen, Andreas Kemnade, Kevin Hilman,
	Roger Quadros, Tony Lindgren, Nicolas Ferre, Claudiu Beznea,
	Andrew Lunn, Sebastian Hesselbarth, Gregory Clement,
	Robert Jarzmik, Kristoffer Ericson, Ethan Nelson-Moore,
	Geert Uytterhoeven, A. Sverdlin, Shawn Guo, Karl Mehltretter,
	David Hildenbrand (Red Hat), Nicolas Pitre, linux-doc,
	linux-kernel, linux-arm-kernel, devicetree, imx, linux-stm32,
	Linux-OMAP, Krzysztof Kozlowski, Andi Shyti, linux-i2c

On Tue, Sep 08, 2026 at 09:51:22PM +0200, Arnd Bergmann wrote:
> On Tue, Sep 8, 2026, at 21:49, Sudeep Holla wrote:
> > On Tue, Sep 08, 2026 at 05:28:01PM +0200, Arnd Bergmann wrote:
> >> From: Arnd Bergmann <arnd@arndb.de>
> >> 
> >> The Arm mps2 platform is the reference implementation for Arm
> >> microcontrollers and is useful for testing but not expected to be used
> >> as a production device.
> >> 
> >> With all the Cortex-M based products gone, there is no longer a need
> >> for a reference platform either, so remove it as well.
> >> 
> >> Cc: Liviu Dudau <liviu.dudau@arm.com>
> >> Cc: Sudeep Holla <sudeep.holla@kernel.org>
> >
> > Acked-by: Sudeep Holla <sudeep.holla@kernel.org>
> 
> Thanks!
> 
> > While at it, should we also remove
> >
> > drivers/tty/serial/mps2-uart.c and related Makefile/Kconfig entries ?
> 
> Yes, I have a patch for that in
> https://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git/log/?h=board-remove-7.3 and will post that once this series has progressed enough.
> 

Ah ok, then discard my followup message. I assume you would have the timer
driver as well. Thanks for the deprecation.

-- 
Regards,
Sudeep


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

* Re: [PATCH 12/13] ARM: at91: remove samv7 support
  2026-09-08 15:28 ` [PATCH 12/13] ARM: at91: remove samv7 support Arnd Bergmann
  2026-09-08 17:39   ` Linus Walleij
@ 2026-09-08 19:58   ` Sverdlin, Alexander
  2026-09-08 21:09   ` Rob Herring
                     ` (2 subsequent siblings)
  4 siblings, 0 replies; 49+ messages in thread
From: Sverdlin, Alexander @ 2026-09-08 19:58 UTC (permalink / raw)
  To: arnd@kernel.org
  Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, arnd@arndb.de

On Tue, 2026-09-08 at 17:28 +0200, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> The Atmel at91 line, now known as Microchip SAM contains both
> SoCs using ARM926 and Cortex-A CPUs as well as a number of
> microcontrollers. Only a single one of those MCUs currently
> has Linux support, and has no known users.
> 
> The samv7 platform was deprecated in Linux-7.3LTS, which will
> remain supported a while longer after it is gone from mainline.
> 
> Cc: Nicolas Ferre <nicolas.ferre@microchip.com>
> Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
> Cc: Claudiu Beznea <claudiu.beznea@tuxon.dev>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Reviewed-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>

> ---
>  arch/arm/Kconfig.debug      | 10 ----------
>  arch/arm/mach-at91/Kconfig  | 11 +----------
>  arch/arm/mach-at91/Makefile |  1 -
>  arch/arm/mach-at91/samv7.c  | 17 -----------------
>  drivers/soc/atmel/soc.c     | 36 ------------------------------------
>  5 files changed, 1 insertion(+), 74 deletions(-)
>  delete mode 100644 arch/arm/mach-at91/samv7.c

-- 
Alexander Sverdlin
Siemens AG
www.siemens.com

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

* Re: [PATCH 13/13] ARM: axxia: remove entire platform
  2026-09-08 15:28 ` [PATCH 13/13] ARM: axxia: remove entire platform Arnd Bergmann
  2026-09-08 17:40   ` Linus Walleij
  2026-09-08 18:23   ` Krzysztof Kozlowski
@ 2026-09-08 20:02   ` Sverdlin, Alexander
  2 siblings, 0 replies; 49+ messages in thread
From: Sverdlin, Alexander @ 2026-09-08 20:02 UTC (permalink / raw)
  To: arnd@kernel.org
  Cc: linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, anders.berg@lsi.com, arnd@arndb.de

On Tue, 2026-09-08 at 17:28 +0200, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> The initial Axxia port was contributed by LSI in 2014, but never completed
> after the sale of the business unit to Intel, which kept supporting the
> bulk of the drivers in their own downstream BSP.
> 
> The downstream work has also ended now, and there is no realistic chance
> that anyone would rewrite it all into an upstreamable port.
> 
> Remove it now that the 7.3LTS release is out and can be used as the
> base for one more downstream rebase of the downstream patches if needed.
> 
> Cc: Krzysztof Kozlowski <krzk@kernel.org>
> Cc: Rob Herring <robh@kernel.org>
> Cc: Conor Dooley <conor+dt@kernel.org>
> Cc: Alexander Sverdlin <alexander.sverdlin@siemens.com>
> Cc: Ethan Nelson-Moore <enelsonmoore@gmail.com>
> Cc: Anders Berg <anders.berg@lsi.com>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Reviewed-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>

> ---
>  .../devicetree/bindings/arm/axxia.yaml        |  23 --
>  MAINTAINERS                                   |   8 -
>  arch/arm/Kconfig                              |   2 -
>  arch/arm/Makefile                             |   2 -
>  arch/arm/boot/dts/intel/Makefile              |   1 -
>  arch/arm/boot/dts/intel/axm/Makefile          |   5 -
>  .../boot/dts/intel/axm/axm5516-amarillo.dts   |  47 ----
>  arch/arm/boot/dts/intel/axm/axm5516-cpus.dtsi | 200 ---------------
>  arch/arm/boot/dts/intel/axm/axm55xx.dtsi      | 200 ---------------
>  arch/arm/configs/axm55xx_defconfig            | 231 ------------------
>  arch/arm/mach-axxia/Kconfig                   |  17 --
>  arch/arm/mach-axxia/Makefile                  |   3 -
>  arch/arm/mach-axxia/axxia.c                   |  19 --
>  arch/arm/mach-axxia/platsmp.c                 |  87 -------
>  14 files changed, 845 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/arm/axxia.yaml
>  delete mode 100644 arch/arm/boot/dts/intel/axm/Makefile
>  delete mode 100644 arch/arm/boot/dts/intel/axm/axm5516-amarillo.dts
>  delete mode 100644 arch/arm/boot/dts/intel/axm/axm5516-cpus.dtsi
>  delete mode 100644 arch/arm/boot/dts/intel/axm/axm55xx.dtsi
>  delete mode 100644 arch/arm/configs/axm55xx_defconfig
>  delete mode 100644 arch/arm/mach-axxia/Kconfig
>  delete mode 100644 arch/arm/mach-axxia/Makefile
>  delete mode 100644 arch/arm/mach-axxia/axxia.c
>  delete mode 100644 arch/arm/mach-axxia/platsmp.c

-- 
Alexander Sverdlin
Siemens AG
www.siemens.com

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

* Re: [PATCH 01/13] ARM: remove sa1100 platform
  2026-09-08 19:39   ` Karl Mehltretter
@ 2026-09-08 20:09     ` Arnd Bergmann
  0 siblings, 0 replies; 49+ messages in thread
From: Arnd Bergmann @ 2026-09-08 20:09 UTC (permalink / raw)
  To: Karl Mehltretter, Arnd Bergmann
  Cc: Krzysztof Kozlowski, Alexandre Belloni, Linus Walleij,
	Russell King, Drew Fustini, Rob Herring, Conor Dooley,
	Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi, Frank Li,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Vladimir Zapolskiy, Stefan Agner, Maxime Coquelin,
	Alexandre Torgue, Aaro Koskinen, Andreas Kemnade, Kevin Hilman,
	Roger Quadros, Tony Lindgren, Nicolas Ferre, Claudiu Beznea,
	Andrew Lunn, Sebastian Hesselbarth, Gregory Clement,
	Robert Jarzmik, Kristoffer Ericson, Ethan Nelson-Moore,
	Geert Uytterhoeven, A. Sverdlin, Shawn Guo,
	David Hildenbrand (Red Hat), Nicolas Pitre, linux-doc,
	linux-kernel, linux-arm-kernel, devicetree, imx, linux-stm32,
	Linux-OMAP, Guenter Roeck

On Tue, Sep 8, 2026, at 21:39, Karl Mehltretter wrote:
> On Tue, Sep 08, 2026 at 05:27:51PM +0100, Arnd Bergmann wrote:
>>  62 files changed, 19 insertions(+), 10501 deletions(-)
>
> Note that Sashiko skipped reviewing this patch, because it exceeded
> its current 10000 line limit.
>
>> diff --git a/drivers/rtc/rtc-sa1100.c b/drivers/rtc/rtc-sa1100.c
>> @@ -275,18 +275,10 @@ static int sa1100_rtc_probe(struct platform_device *pdev)
>> -	if (IS_ENABLED(CONFIG_ARCH_SA1100) ||
>> -	    of_device_is_compatible(pdev->dev.of_node, "mrvl,sa1100-rtc")) {
>> -		info->rcnr = base + 0x04;
>> -		info->rtsr = base + 0x10;
>> -		info->rtar = base + 0x00;
>> -		info->rttr = base + 0x08;
>> -	} else {
>> -		info->rcnr = base + 0x0;
>> -		info->rtsr = base + 0x8;
>> -		info->rtar = base + 0x4;
>> -		info->rttr = base + 0xc;
>> -	}
>> +	info->rcnr = base + 0x0;
>> +	info->rtsr = base + 0x8;
>> +	info->rtar = base + 0x4;
>> +	info->rttr = base + 0xc;
>
> This drops the layout switch but keeps "mrvl,sa1100-rtc" in
> sa1100_rtc_dt_ids[] and in bindings/rtc/sa1100-rtc.yaml, so a DT with
> that compatible would now silently get the MMP register offsets instead
> of the SA1100 ones.

This one is interesting: this was already the behavior before
my patch, as CONFIG_ARCH_SA1100 is mutually exclusive with all
other targets. That obviously wasn't the intention of the code.

I've removed the sa1100_rtc_dt_ids[] entry now.

>> diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
>> @@ -614,16 +614,16 @@ config S3C2410_WATCHDOG
>>  	  be called s3c2410_wdt.
>>  
>>  config SA1100_WATCHDOG
>> -	tristate "SA1100/PXA2xx watchdog"
>> -	depends on ARCH_SA1100 || ARCH_PXA || COMPILE_TEST
>> +	tristate "PXA2xx watchdog"
>> +	depends on ARCH_PXA || COMPILE_TEST
>>  	help
>> -	  Watchdog timer embedded into SA11x0 and PXA2xx chips. This will
>> -	  reboot your system when timeout is reached.
>> +	  Watchdog timer embedded PXA2xx chips. This will reboot your
>> +	  system when timeout is reached.
>>  
>
> "embedded into PXA2xx chips" is better.
>
> The RTC_DRV_SA1100 help text a bit earlier in the patch also still says
> "built into your SA11x0 or PXA2xx CPU".

Fixed all these now, thanks for the review!

      Arnd


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

* Re: [PATCH 12/13] ARM: at91: remove samv7 support
  2026-09-08 15:28 ` [PATCH 12/13] ARM: at91: remove samv7 support Arnd Bergmann
  2026-09-08 17:39   ` Linus Walleij
  2026-09-08 19:58   ` Sverdlin, Alexander
@ 2026-09-08 21:09   ` Rob Herring
  2026-09-08 21:30     ` Arnd Bergmann
  2026-09-09 12:41   ` Alexandre Belloni
  2026-09-10 12:23   ` Nicolas Ferre
  4 siblings, 1 reply; 49+ messages in thread
From: Rob Herring @ 2026-09-08 21:09 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Krzysztof Kozlowski, Alexandre Belloni, Linus Walleij,
	Russell King, Drew Fustini, Arnd Bergmann, Conor Dooley,
	Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi, Frank Li,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Vladimir Zapolskiy, Stefan Agner, Maxime Coquelin,
	Alexandre Torgue, Aaro Koskinen, Andreas Kemnade, Kevin Hilman,
	Roger Quadros, Tony Lindgren, Nicolas Ferre, Claudiu Beznea,
	Andrew Lunn, Sebastian Hesselbarth, Gregory Clement,
	Robert Jarzmik, Kristoffer Ericson, Ethan Nelson-Moore,
	Geert Uytterhoeven, Alexander Sverdlin, Shawn Guo,
	Karl Mehltretter, David Hildenbrand (Arm), Nicolas Pitre,
	linux-doc, linux-kernel, linux-arm-kernel, devicetree, imx,
	linux-stm32, linux-omap

On Tue, Sep 08, 2026 at 05:28:02PM +0200, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> The Atmel at91 line, now known as Microchip SAM contains both
> SoCs using ARM926 and Cortex-A CPUs as well as a number of
> microcontrollers. Only a single one of those MCUs currently
> has Linux support, and has no known users.
> 
> The samv7 platform was deprecated in Linux-7.3LTS, which will
> remain supported a while longer after it is gone from mainline.
> 
> Cc: Nicolas Ferre <nicolas.ferre@microchip.com>
> Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
> Cc: Claudiu Beznea <claudiu.beznea@tuxon.dev>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>  arch/arm/Kconfig.debug      | 10 ----------
>  arch/arm/mach-at91/Kconfig  | 11 +----------
>  arch/arm/mach-at91/Makefile |  1 -
>  arch/arm/mach-at91/samv7.c  | 17 -----------------
>  drivers/soc/atmel/soc.c     | 36 ------------------------------------
>  5 files changed, 1 insertion(+), 74 deletions(-)
>  delete mode 100644 arch/arm/mach-at91/samv7.c

Do you want to drop all the samv7 platform compatibles from at91.yaml? 
Are there non-Linux users using DT?

Rob


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

* Re: [PATCH 01/13] ARM: remove sa1100 platform
       [not found]   ` <ccd58677-5e25-1f9f-2bb4-d1770fce8ac4@fluxnic.net>
@ 2026-09-08 21:26     ` David Laight
  2026-09-08 21:32     ` Arnd Bergmann
  1 sibling, 0 replies; 49+ messages in thread
From: David Laight @ 2026-09-08 21:26 UTC (permalink / raw)
  To: Nicolas Pitre
  Cc: Arnd Bergmann, Krzysztof Kozlowski, Alexandre Belloni,
	Linus Walleij, Russell King, Drew Fustini, Arnd Bergmann,
	Rob Herring, Conor Dooley, Liviu Dudau, Sudeep Holla,
	Lorenzo Pieralisi, Frank Li, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Vladimir Zapolskiy,
	Stefan Agner, Maxime Coquelin, Alexandre Torgue, Aaro Koskinen,
	Andreas Kemnade, Kevin Hilman, Roger Quadros, Tony Lindgren,
	Nicolas Ferre, Claudiu Beznea, Andrew Lunn, Sebastian Hesselbarth,
	Gregory Clement, Robert Jarzmik, Kristoffer Ericson,
	Ethan Nelson-Moore, Geert Uytterhoeven, Alexander Sverdlin,
	Shawn Guo, Karl Mehltretter, David Hildenbrand (Arm), linux-doc,
	linux-kernel, linux-arm-kernel, devicetree, imx, linux-stm32,
	linux-omap, Guenter Roeck

On Tue, 8 Sep 2026 16:36:47 -0400 (EDT)
Nicolas Pitre <nico@fluxnic.net> wrote:

> On Tue, 8 Sep 2026, Arnd Bergmann wrote:
> 
> > From: Arnd Bergmann <arnd@arndb.de>
> > 
> > Most sa1100 platforms were removed a few years, with the remaining
> > ones left as a starting point for a conversion to devicetree.
> > 
> > Nothing ever happened on that front, so remove the rest now,
> > including the sa1111 and locomo drivers that were once shared
> > with pxa but are already sa1100-exclusive now.  
> 
> The SA1100 was the starting point of my career. Feels strange how much 
> time has passed.
> 
> I parted with such hardware a long time ago in any case.

I failed to 'steal' a J-Slate when I left Tadpole.
(a very early 'tablet' computer with an LCD panel)
So I don't have one either.
Although that ran VxWorks and rtx-windows (after I patched bits so it worked!).

	David


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

* Re: [PATCH 12/13] ARM: at91: remove samv7 support
  2026-09-08 21:09   ` Rob Herring
@ 2026-09-08 21:30     ` Arnd Bergmann
  2026-09-10 12:25       ` Nicolas Ferre
  0 siblings, 1 reply; 49+ messages in thread
From: Arnd Bergmann @ 2026-09-08 21:30 UTC (permalink / raw)
  To: Rob Herring, Arnd Bergmann
  Cc: Krzysztof Kozlowski, Alexandre Belloni, Linus Walleij,
	Russell King, Drew Fustini, Conor Dooley, Liviu Dudau,
	Sudeep Holla, Lorenzo Pieralisi, Frank Li, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Vladimir Zapolskiy,
	Stefan Agner, Maxime Coquelin, Alexandre Torgue, Aaro Koskinen,
	Andreas Kemnade, Kevin Hilman, Roger Quadros, Tony Lindgren,
	Nicolas Ferre, Claudiu Beznea, Andrew Lunn, Sebastian Hesselbarth,
	Gregory Clement, Robert Jarzmik, Kristoffer Ericson,
	Ethan Nelson-Moore, Geert Uytterhoeven, A. Sverdlin, Shawn Guo,
	Karl Mehltretter, David Hildenbrand (Red Hat), Nicolas Pitre,
	linux-doc, linux-kernel, linux-arm-kernel, devicetree, imx,
	linux-stm32, Linux-OMAP

On Tue, Sep 8, 2026, at 23:09, Rob Herring wrote:
>
> Do you want to drop all the samv7 platform compatibles from at91.yaml? 
> Are there non-Linux users using DT?

I see that zephyr uses DT here, but it uses an incompatible
set of bindings, see
https://github.com/zephyrproject-rtos/zephyr/tree/main/dts/arm/atmel

I'm dropping the references from the binding now, and also from
Documentation/arch/arm/microchip.rst, which I had missed earlier.

      Arnd

diff --git a/Documentation/arch/arm/microchip.rst b/Documentation/arch/arm/microchip.rst
index e721d855f2c9..b776a6656717 100644
--- a/Documentation/arch/arm/microchip.rst
+++ b/Documentation/arch/arm/microchip.rst
@@ -157,45 +157,6 @@ the Microchip website: http://www.microchip.com.
 
           Coming soon
 
-    * ARM Cortex-M7 MCUs
-      - sams70 family
-
-        - sams70j19
-        - sams70j20
-        - sams70j21
-        - sams70n19
-        - sams70n20
-        - sams70n21
-        - sams70q19
-        - sams70q20
-        - sams70q21
-
-      - samv70 family
-
-        - samv70j19
-        - samv70j20
-        - samv70n19
-        - samv70n20
-        - samv70q19
-        - samv70q20
-
-      - samv71 family
-
-        - samv71j19
-        - samv71j20
-        - samv71j21
-        - samv71n19
-        - samv71n20
-        - samv71n21
-        - samv71q19
-        - samv71q20
-        - samv71q21
-
-          * Datasheet
-
-          http://ww1.microchip.com/downloads/en/DeviceDoc/SAM-E70-S70-V70-V71-Family-Data-Sheet-DS60001527D.pdf
-
-
 Linux kernel information
 ------------------------
 Linux kernel mach directory: arch/arm/mach-at91
diff --git a/Documentation/devicetree/bindings/arm/atmel-at91.yaml b/Documentation/devicetree/bindings/arm/atmel-at91.yaml
index bf161e0950ea..d9b32a95b136 100644
--- a/Documentation/devicetree/bindings/arm/atmel-at91.yaml
+++ b/Documentation/devicetree/bindings/arm/atmel-at91.yaml
@@ -258,45 +258,6 @@ properties:
           - const: microchip,lan9668
           - const: microchip,lan966
 
-      - items:
-          - enum:
-              - atmel,sams70j19
-              - atmel,sams70j20
-              - atmel,sams70j21
-              - atmel,sams70n19
-              - atmel,sams70n20
-              - atmel,sams70n21
-              - atmel,sams70q19
-              - atmel,sams70q20
-              - atmel,sams70q21
-          - const: atmel,sams70
-          - const: atmel,samv7
-
-      - items:
-          - enum:
-              - atmel,samv70j19
-              - atmel,samv70j20
-              - atmel,samv70n19
-              - atmel,samv70n20
-              - atmel,samv70q19
-              - atmel,samv70q20
-          - const: atmel,samv70
-          - const: atmel,samv7
-
-      - items:
-          - enum:
-              - atmel,samv71j19
-              - atmel,samv71j20
-              - atmel,samv71j21
-              - atmel,samv71n19
-              - atmel,samv71n20
-              - atmel,samv71n21
-              - atmel,samv71q19
-              - atmel,samv71q20
-              - atmel,samv71q21
-          - const: atmel,samv71
-          - const: atmel,samv7
-
 additionalProperties: true
 
 ...


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

* Re: [PATCH 01/13] ARM: remove sa1100 platform
       [not found]   ` <ccd58677-5e25-1f9f-2bb4-d1770fce8ac4@fluxnic.net>
  2026-09-08 21:26     ` David Laight
@ 2026-09-08 21:32     ` Arnd Bergmann
  1 sibling, 0 replies; 49+ messages in thread
From: Arnd Bergmann @ 2026-09-08 21:32 UTC (permalink / raw)
  To: Nicolas Pitre, Arnd Bergmann
  Cc: Krzysztof Kozlowski, Alexandre Belloni, Linus Walleij,
	Russell King, Drew Fustini, Rob Herring, Conor Dooley,
	Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi, Frank Li,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Vladimir Zapolskiy, Stefan Agner, Maxime Coquelin,
	Alexandre Torgue, Aaro Koskinen, Andreas Kemnade, Kevin Hilman,
	Roger Quadros, Tony Lindgren, Nicolas Ferre, Claudiu Beznea,
	Andrew Lunn, Sebastian Hesselbarth, Gregory Clement,
	Robert Jarzmik, Kristoffer Ericson, Ethan Nelson-Moore,
	Geert Uytterhoeven, A. Sverdlin, Shawn Guo, Karl Mehltretter,
	David Hildenbrand (Red Hat), linux-doc, linux-kernel,
	linux-arm-kernel, devicetree, imx, linux-stm32, Linux-OMAP,
	Guenter Roeck

On Tue, Sep 8, 2026, at 22:36, Nicolas Pitre wrote:
> On Tue, 8 Sep 2026, Arnd Bergmann wrote:
>
>> From: Arnd Bergmann <arnd@arndb.de>
>> 
>> Most sa1100 platforms were removed a few years, with the remaining
>> ones left as a starting point for a conversion to devicetree.
>> 
>> Nothing ever happened on that front, so remove the rest now,
>> including the sa1111 and locomo drivers that were once shared
>> with pxa but are already sa1100-exclusive now.
>
> The SA1100 was the starting point of my career. Feels strange how much 
> time has passed.

Indeed, same for me: my first paid job involved both SA1100 and
the i486 compatible AMD Élan SoC that was also removed this year.

> I parted with such hardware a long time ago in any case.
>
> Acked-by: Nicolas Pitre <nico@fluxnic.net>

Thanks,

       Arnd


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

* Re: [PATCH 07/13] ARM: imx: remove i.MX31 SoC support
  2026-09-08 15:27 ` [PATCH 07/13] ARM: imx: remove i.MX31 SoC support Arnd Bergmann
@ 2026-09-09  8:24   ` Vladimir Zapolskiy
  2026-09-09  8:26   ` Daniel Baluta
  2026-09-10 15:11   ` Frank Li
  2 siblings, 0 replies; 49+ messages in thread
From: Vladimir Zapolskiy @ 2026-09-09  8:24 UTC (permalink / raw)
  To: Arnd Bergmann, Krzysztof Kozlowski, Alexandre Belloni,
	Linus Walleij, Russell King
  Cc: Drew Fustini, Arnd Bergmann, Rob Herring, Conor Dooley,
	Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi, Frank Li,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Stefan Agner, Maxime Coquelin, Alexandre Torgue, Aaro Koskinen,
	Andreas Kemnade, Kevin Hilman, Roger Quadros, Tony Lindgren,
	Nicolas Ferre, Claudiu Beznea, Andrew Lunn, Sebastian Hesselbarth,
	Gregory Clement, Robert Jarzmik, Kristoffer Ericson,
	Ethan Nelson-Moore, Geert Uytterhoeven, Alexander Sverdlin,
	Shawn Guo, Karl Mehltretter, David Hildenbrand (Arm),
	Nicolas Pitre, linux-doc, linux-kernel, linux-arm-kernel,
	devicetree, imx, linux-stm32, linux-omap, Krzysztof Kozlowski

On 9/8/26 18:27, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> The Freescale i.MX31 was an early SoC based on the ARM1136r0 CPU core. It
> was used in the Bug Labs modular computer but ultimately much less
> popular than most other i.MX SoCs.
> 
> As the ARM1136r0 support is causing a lot of extra maintenance effort
> to keep alive and there are no known users, remove i.MX31 in order to
> allow removing support for that CPU core altogether.
> 
> The related i.MX35 is based on a slightly newer ARM1136r1 CPU core that
> does not have this problem, so there is no reason to remove that.
> 
> Cc: Russell King <linux@armlinux.org.uk>
> Cc: Frank Li <Frank.Li@nxp.com>
> Cc: Sascha Hauer <s.hauer@pengutronix.de>
> Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
> Cc: Fabio Estevam <festevam@gmail.com>
> Cc: Rob Herring <robh@kernel.org>
> Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
> Cc: Conor Dooley <conor+dt@kernel.org>
> Cc: imx@lists.linux.dev
> Cc: devicetree@vger.kernel.org
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Acked-by: Vladimir Zapolskiy <vz@mleia.com>

I still do possess a LogicPD i.MX31 Lite board, which boots the upstream
kernel, but there is no plan to maintain it further.

-- 
Best wishes,
Vladimir


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

* Re: [PATCH 07/13] ARM: imx: remove i.MX31 SoC support
  2026-09-08 15:27 ` [PATCH 07/13] ARM: imx: remove i.MX31 SoC support Arnd Bergmann
  2026-09-09  8:24   ` Vladimir Zapolskiy
@ 2026-09-09  8:26   ` Daniel Baluta
  2026-09-10 15:11   ` Frank Li
  2 siblings, 0 replies; 49+ messages in thread
From: Daniel Baluta @ 2026-09-09  8:26 UTC (permalink / raw)
  To: Arnd Bergmann, Krzysztof Kozlowski, Alexandre Belloni,
	Linus Walleij, Russell King
  Cc: Drew Fustini, Arnd Bergmann, Rob Herring, Conor Dooley,
	Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi, Frank Li,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Vladimir Zapolskiy, Stefan Agner, Maxime Coquelin,
	Alexandre Torgue, Aaro Koskinen, Andreas Kemnade, Kevin Hilman,
	Roger Quadros, Tony Lindgren, Nicolas Ferre, Claudiu Beznea,
	Andrew Lunn, Sebastian Hesselbarth, Gregory Clement,
	Robert Jarzmik, Kristoffer Ericson, Ethan Nelson-Moore,
	Geert Uytterhoeven, Alexander Sverdlin, Shawn Guo,
	Karl Mehltretter, David Hildenbrand (Arm), Nicolas Pitre,
	linux-doc, linux-kernel, linux-arm-kernel, devicetree, imx,
	linux-stm32, linux-omap, Krzysztof Kozlowski

On 9/8/26 18:27, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> The Freescale i.MX31 was an early SoC based on the ARM1136r0 CPU core. It
> was used in the Bug Labs modular computer but ultimately much less
> popular than most other i.MX SoCs.
> 
> As the ARM1136r0 support is causing a lot of extra maintenance effort
> to keep alive and there are no known users, remove i.MX31 in order to
> allow removing support for that CPU core altogether.
> 
> The related i.MX35 is based on a slightly newer ARM1136r1 CPU core that
> does not have this problem, so there is no reason to remove that.
> 
> Cc: Russell King <linux@armlinux.org.uk>
> Cc: Frank Li <Frank.Li@nxp.com>
> Cc: Sascha Hauer <s.hauer@pengutronix.de>
> Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
> Cc: Fabio Estevam <festevam@gmail.com>
> Cc: Rob Herring <robh@kernel.org>
> Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
> Cc: Conor Dooley <conor+dt@kernel.org>
> Cc: imx@lists.linux.dev
> Cc: devicetree@vger.kernel.org
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Acked-by: Daniel Baluta <daniel.baluta@nxp.com>



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

* Re: [PATCH 09/13] ARM: lpc18xx: remove entire platform
  2026-09-08 15:27 ` [PATCH 09/13] ARM: lpc18xx: remove entire platform Arnd Bergmann
  2026-09-08 17:36   ` Linus Walleij
@ 2026-09-09  8:28   ` Vladimir Zapolskiy
  1 sibling, 0 replies; 49+ messages in thread
From: Vladimir Zapolskiy @ 2026-09-09  8:28 UTC (permalink / raw)
  To: Arnd Bergmann, Krzysztof Kozlowski, Alexandre Belloni,
	Linus Walleij, Russell King
  Cc: Drew Fustini, Arnd Bergmann, Rob Herring, Conor Dooley,
	Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi, Frank Li,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Stefan Agner, Maxime Coquelin, Alexandre Torgue, Aaro Koskinen,
	Andreas Kemnade, Kevin Hilman, Roger Quadros, Tony Lindgren,
	Nicolas Ferre, Claudiu Beznea, Andrew Lunn, Sebastian Hesselbarth,
	Gregory Clement, Robert Jarzmik, Kristoffer Ericson,
	Ethan Nelson-Moore, Geert Uytterhoeven, Alexander Sverdlin,
	Shawn Guo, Karl Mehltretter, David Hildenbrand (Arm),
	Nicolas Pitre, linux-doc, linux-kernel, linux-arm-kernel,
	devicetree, imx, linux-stm32, linux-omap, Krzysztof Kozlowski

On 9/8/26 18:27, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> The NXP LPC18xx and LPC43xx microcontrollers are the more modern
> version of the classic LPC32xx line, but they lack memory management
> units.
> 
> These microcontrollers all remain in production as of 2026, but
> there are no known users running Linux on them.
> 
> The platform was marked deprecated in the 7.3-LTS release, which
> will remain supported for a few more years.
> 
> Remove support for both LPC18xx and LPC43xx.
> 
> Cc: Frank Li <Frank.Li@nxp.com>
> Cc: Sascha Hauer <s.hauer@pengutronix.de>
> Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
> Cc: Fabio Estevam <festevam@gmail.com>
> Cc: Rob Herring <robh@kernel.org>
> Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
> Cc: Conor Dooley <conor+dt@kernel.org>
> Cc: Vladimir Zapolskiy <vz@mleia.com>
> Cc: imx@lists.linux.dev
> Cc: devicetree@vger.kernel.org
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Acked-by: Vladimir Zapolskiy <vz@mleia.com>

Since there is no known users of these pretty old NOMMU platforms in
the Linux kernel, it should be safe to drop them from maintenance.

-- 
Best wishes,
Vladimir


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

* Re: [PATCH 12/13] ARM: at91: remove samv7 support
  2026-09-08 15:28 ` [PATCH 12/13] ARM: at91: remove samv7 support Arnd Bergmann
                     ` (2 preceding siblings ...)
  2026-09-08 21:09   ` Rob Herring
@ 2026-09-09 12:41   ` Alexandre Belloni
  2026-09-10 12:23   ` Nicolas Ferre
  4 siblings, 0 replies; 49+ messages in thread
From: Alexandre Belloni @ 2026-09-09 12:41 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Krzysztof Kozlowski, Linus Walleij, Russell King, Drew Fustini,
	Arnd Bergmann, Rob Herring, Conor Dooley, Liviu Dudau,
	Sudeep Holla, Lorenzo Pieralisi, Frank Li, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Vladimir Zapolskiy,
	Stefan Agner, Maxime Coquelin, Alexandre Torgue, Aaro Koskinen,
	Andreas Kemnade, Kevin Hilman, Roger Quadros, Tony Lindgren,
	Nicolas Ferre, Claudiu Beznea, Andrew Lunn, Sebastian Hesselbarth,
	Gregory Clement, Robert Jarzmik, Kristoffer Ericson,
	Ethan Nelson-Moore, Geert Uytterhoeven, Alexander Sverdlin,
	Shawn Guo, Karl Mehltretter, David Hildenbrand (Arm),
	Nicolas Pitre, linux-doc, linux-kernel, linux-arm-kernel,
	devicetree, imx, linux-stm32, linux-omap

On 08/09/2026 17:28:02+0200, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> The Atmel at91 line, now known as Microchip SAM contains both
> SoCs using ARM926 and Cortex-A CPUs as well as a number of
> microcontrollers. Only a single one of those MCUs currently
> has Linux support, and has no known users.
> 
> The samv7 platform was deprecated in Linux-7.3LTS, which will
> remain supported a while longer after it is gone from mainline.
> 
> Cc: Nicolas Ferre <nicolas.ferre@microchip.com>
> Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
> Cc: Claudiu Beznea <claudiu.beznea@tuxon.dev>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Acked-by: Alexandre Belloni <alexandre.belloni@bootlin.com>


-- 
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com


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

* Re: [PATCH 02/13] ARM: remove footbridge
  2026-09-08 17:27   ` Linus Walleij
@ 2026-09-09 15:09     ` Ralph Siemsen
  0 siblings, 0 replies; 49+ messages in thread
From: Ralph Siemsen @ 2026-09-09 15:09 UTC (permalink / raw)
  To: Linus Walleij
  Cc: Arnd Bergmann, Krzysztof Kozlowski, Alexandre Belloni,
	Russell King, Drew Fustini, Arnd Bergmann, Rob Herring,
	Conor Dooley, Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi,
	Frank Li, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Vladimir Zapolskiy, Stefan Agner, Maxime Coquelin,
	Alexandre Torgue, Aaro Koskinen, Andreas Kemnade, Kevin Hilman,
	Roger Quadros, Tony Lindgren, Nicolas Ferre, Claudiu Beznea,
	Andrew Lunn, Sebastian Hesselbarth, Gregory Clement,
	Robert Jarzmik, Kristoffer Ericson, Ethan Nelson-Moore,
	Geert Uytterhoeven, Alexander Sverdlin, Shawn Guo,
	Karl Mehltretter, David Hildenbrand (Arm), Nicolas Pitre,
	linux-doc, linux-kernel, linux-arm-kernel, devicetree, imx,
	linux-stm32, linux-omap, Helge Deller, dri-devel

On Tue, Sep 08, 2026 at 07:27:48PM +0200, Linus Walleij wrote:
>On Tue, Sep 8, 2026 at 5:28 PM Arnd Bergmann <arnd@kernel.org> wrote:
>
>> From: Arnd Bergmann <arnd@arndb.de>
>>
>> Footbridge was deprecated in 7.3 to be removed along with the other
>> StrongARM platforms and most remaining board files.
>>
>> The main machine here is the NetWinder, which was a popular Arm based
>> desktop PC in the late 1990s and contributed to Arm's later success as
>> an embedded Linux platform, but was discontinued over 25 years ago and
>> is no longer all that useful.
>>
>> I previously tried to convert this to devicetree in a sensible way but
>> gave up due to the platform being too different from modern SoC based
>> targets.
>>
>> Cc: Russell King <linux@armlinux.org.uk>
>> Cc: Ralph Siemsen <ralphs@netwinder.org>
>> Cc: Helge Deller <deller@gmx.de>
>> Cc: dri-devel@lists.freedesktop.org
>> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
>
>Acked-by: Linus Walleij <linusw@kernel.org>
>
>I have one of those machines and it boot mainline but I
>certainly consider it a paperweight at this point, I can't use
>it for anything useful.

Likewise, I have a NetWinder machine which has occasionally booted a
mainline kernel, along with fairly current buildroot initramfs. It has 
been surprisingly smooth sailing, even the bx/bl compiler troubles seem 
to have been sorted out these days.

It's a bit sad to see it go, in particular since it all works. But the 
reality is that nobody seems to be running this hardware anymore, and 
there is no community of active users anymore.

Acked-by: Ralph Siemsen <ralphs@netwinder.org>

Regards,
-Ralph


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

* Re: [PATCH 03/13] ARM: remove riscpc
       [not found] ` <20260908152808.3928630-4-arnd@kernel.org>
@ 2026-09-09 16:42   ` Bart Van Assche
  2026-09-09 20:09     ` Arnd Bergmann
  0 siblings, 1 reply; 49+ messages in thread
From: Bart Van Assche @ 2026-09-09 16:42 UTC (permalink / raw)
  To: Arnd Bergmann, Krzysztof Kozlowski, Alexandre Belloni,
	Linus Walleij, Russell King
  Cc: linux-doc, linux-kernel, linux-arm-kernel, devicetree, imx,
	linux-stm32, linux-omap, linux-block, linux-serial, linux-fbdev

On 9/8/26 8:27 AM, Arnd Bergmann wrote:
> The Acorn Risc PC is the oldest still support Arm machine in the kernel,
> originally shipped with an ARMv3 ARM610 support in 1994, it later allowed
> faster StrongARM CPUs.
> 
> The main limitation here is the CPU bus that does not allow 16-bit
> wide data transfers and hence requires the kernel to be built with the
> -march=armv3 compiler option that was discontinued in gcc-9.
> 
> As gcc-8 is barely supported for compiling the kernel, this one
> will not see another LTS kernel release, so remove it now.

If this patch has to be reposted, here is the feedback of my AI coding
assistant (based on an LLM and hence may be wrong):
----------------------------------------------------------------------
Overview
--------
This patch removes the Acorn RiscPC platform (ARCH_RPC), the oldest 
32-bit ARM machine supported in mainline Linux (originally ARMv3 ARM610, 
later StrongARM SA-110). Because RiscPC hardware requires -march=armv3 
(discontinued in GCC 9) due to bus limitations, deprecating and removing 
it paves the way to clean out legacy ARMv3 support from the kernel.

Removing RiscPC also represents a major architectural milestone for 
arch/arm: with SA-1100 (patch 1), Footbridge (patch 2), and RiscPC 
(patch 3) removed, COMMON_CLK, SPARSE_IRQ, and USE_OF (Device Tree) 
become unconditionally selected for all 32-bit ARM targets, and legacy 
headers mach/io.h and mach/memory.h are eliminated.

Overall, this is a very welcome cleanup, but there are a few missed 
references, orphaned symbols, and stale comments that should be addressed.

Issues & Observations
---------------------
1. Missed arch/arm/Makefile cleanup
Patch 03 deletes the entire directory arch/arm/mach-rpc/, but does not 
touch arch/arm/Makefile. As a result, two orphaned entries remain:

makefile


machine-$(CONFIG_ARCH_RPC)		+= rpc
machdirs-$(CONFIG_ARCH_RPC)		+= arch/arm/mach-rpc
Furthermore, machdirs-$(CONFIG_ARCH_RPC) was the very last user of 
machdirs- in arch/arm/Makefile (after Footbridge and SA-1100 are removed 
in patches 1 & 2):

makefile


# legacy platforms provide their own mach/*.h headers globally,
# these three are mutually exclusive
machdirs-$(CONFIG_ARCH_FOOTBRIDGE)	+= arch/arm/mach-footbridge
machdirs-$(CONFIG_ARCH_RPC)		+= arch/arm/mach-rpc
machdirs-$(CONFIG_ARCH_SA1100)		+= arch/arm/mach-sa1100
KBUILD_CPPFLAGS += $(patsubst %,-I$(srctree)/%/include,$(machdirs-y))
Once RiscPC is gone, the entire machdirs- inclusion block can and should 
be removed from arch/arm/Makefile.

2. Missed ARCH_ACORN reference in lib/fonts/Kconfig
The patch deletes config ARCH_ACORN from arch/arm/Kconfig and removes 
#ifdef CONFIG_ARCH_ACORN from
lib/fonts/font_acorn_8x8.c
, but missed
lib/fonts/Kconfig:74
:

kconfig


config FONT_ACORN_8x8
	bool "Acorn console 8x8 font" if FONTS
	depends on FRAMEBUFFER_CONSOLE || DRM_PANIC
	default y if !SPARC && !FONTS && ARM && ARCH_ACORN
Because ARCH_ACORN is removed, this default can never trigger and the 
reference should be cleaned up.

3. Orphaned ARCH_RPC reference in arch/arm/mm/Kconfig
In
arch/arm/mm/Kconfig:281-282
:

kconfig


config CPU_SA110
	bool
	select CPU_32v3 if ARCH_RPC
	select CPU_32v4 if !ARCH_RPC
Since ARCH_RPC is removed, select CPU_32v3 if ARCH_RPC references a 
non-existent symbol. If CPU_SA110 remains temporarily (before the 
architectural cleanup in 7.5), this should be simplified to select CPU_32v4.

4. Dead code in arch/arm/kernel/atags_compat.c
With CONFIG_ARCH_ACORN removed from arch/arm/Kconfig, two blocks in
arch/arm/kernel/atags_compat.c
  are now dead code:

Lines 150–157: #ifdef CONFIG_ARCH_ACORN / if (machine_is_riscpc()) 
memory bank tagging.
Lines 186–194: #ifdef CONFIG_ARCH_ACORN ATAG_ACORN translation.
These blocks should be removed as part of this patch.

5. Stale comments
arch/arm/include/asm/io.h:207-209
:
c


/*
  * Now, pick up the machine-defined IO definitions
  */
#if IS_ENABLED(CONFIG_PCMCIA) || defined(CONFIG_PCI)
CONFIG_NEED_MACH_IO_H and #include <mach/io.h> were removed, leaving 
this comment describing generic PCI/PCMCIA I/O limits.
arch/arm/boot/bootp/Makefile:21
: # guess an initrd location if possible is left dangling right before 
ifdef INITRD_OFFSET after all initrd_offset-$(CONFIG_...) logic has been 
stripped out.
6. Floppy driver & arch/arm/include/asm/floppy.h status
The patch removes the ARM MFM AND FLOPPY DRIVERS entry from MAINTAINERS:

diff


-ARM MFM AND FLOPPY DRIVERS
-M:	Ian Molton <spyro@f2s.com>
-S:	Maintained
-F:	arch/arm/include/asm/floppy.h
-F:	arch/arm/mach-rpc/floppydma.S
While
floppydma.S
  was deleted,
arch/arm/include/asm/floppy.h
  was left in the tree.

On ARM, floppy support requires ARCH_MAY_HAVE_PC_FDC, which was selected 
only by Footbridge and RiscPC.
With both gone, no ARM board selects ARCH_MAY_HAVE_PC_FDC.
Furthermore, asm/floppy.h references IRQ_FLOPPYDISK and DMA_FLOPPY, 
which no longer exist on ARM.
Either
arch/arm/include/asm/floppy.h
  and config ARCH_MAY_HAVE_PC_FDC in arch/arm/Kconfig should be deleted 
in this patch, or noted if intentionally deferred to the 7.5 driver cleanup.
7. Good changes & verification
block/partitions/Kconfig: Dropping default y if ARCH_ACORN while keeping 
ACORN_PARTITION available under PARTITION_ADVANCED is correct; users can 
still inspect/mount Acorn media on modern architectures.
drivers/tty/vt/keyboard.c: Clean removal of !defined(CONFIG_ARCH_RPC) 
from the raw keyboard scan handler.
Elimination of NEED_MACH_IO_H and NEED_MACH_MEMORY_H: Very clean removal 
across arch/arm/Kconfig, arch/arm/include/asm/io.h, 
arch/arm/include/asm/memory.h, and arch/arm/mm/mmu.c.
Minor Typo in Commit Message
text


The Acorn Risc PC is the oldest still support Arm machine in the kernel,
originally shipped with an ARMv3 ARM610 support in 1994, it later allowed
faster StrongARM CPUs.
"oldest still support Arm machine" -> "oldest still supported Arm machine"
"with an ARMv3 ARM610 support" -> "with ARMv3 ARM610 support" or "with 
an ARMv3 ARM610 CPU"


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

* Re: [PATCH 03/13] ARM: remove riscpc
  2026-09-09 16:42   ` [PATCH 03/13] ARM: remove riscpc Bart Van Assche
@ 2026-09-09 20:09     ` Arnd Bergmann
  0 siblings, 0 replies; 49+ messages in thread
From: Arnd Bergmann @ 2026-09-09 20:09 UTC (permalink / raw)
  To: Bart Van Assche, Krzysztof Kozlowski, Alexandre Belloni,
	Linus Walleij, Russell King
  Cc: linux-doc, linux-kernel, linux-arm-kernel, devicetree, imx,
	linux-stm32, Linux-OMAP, linux-block, linux-serial, linux-fbdev

On Wed, Sep 9, 2026, at 18:42, Bart Van Assche wrote:
> On 9/8/26 8:27 AM, Arnd Bergmann wrote:
>> The Acorn Risc PC is the oldest still support Arm machine in the kernel,
>> originally shipped with an ARMv3 ARM610 support in 1994, it later allowed
>> faster StrongARM CPUs.
>> 
>> The main limitation here is the CPU bus that does not allow 16-bit
>> wide data transfers and hence requires the kernel to be built with the
>> -march=armv3 compiler option that was discontinued in gcc-9.
>> 
>> As gcc-8 is barely supported for compiling the kernel, this one
>> will not see another LTS kernel release, so remove it now.
>
> If this patch has to be reposted, here is the feedback of my AI coding
> assistant (based on an LLM and hence may be wrong):

Most of this was already discussed, but there are two additional
changes that I made based on it.

> Issues & Observations
> ---------------------
> 1. Missed arch/arm/Makefile cleanup
> Patch 03 deletes the entire directory arch/arm/mach-rpc/, but does not 
> touch arch/arm/Makefile. As a result, two orphaned entries remain:
>
> machine-$(CONFIG_ARCH_RPC)		+= rpc
> machdirs-$(CONFIG_ARCH_RPC)		+= arch/arm/mach-rpc
> Furthermore, machdirs-$(CONFIG_ARCH_RPC) was the very last user of 
> machdirs- in arch/arm/Makefile (after Footbridge and SA-1100 are removed 
> in patches 1 & 2):

Fixed already after sashiko-bot found the same thing.

> kconfig
>
>
> config FONT_ACORN_8x8
> 	bool "Acorn console 8x8 font" if FONTS
> 	depends on FRAMEBUFFER_CONSOLE || DRM_PANIC
> 	default y if !SPARC && !FONTS && ARM && ARCH_ACORN
> Because ARCH_ACORN is removed, this default can never trigger and the 
> reference should be cleaned up.

I have this in the patch that removes acornfb. It could go into
either one, but I felt it fits better there

> kconfig
>
>
> config CPU_SA110
> 	bool
> 	select CPU_32v3 if ARCH_RPC
> 	select CPU_32v4 if !ARCH_RPC
> Since ARCH_RPC is removed, select CPU_32v3 if ARCH_RPC references a 
> non-existent symbol. If CPU_SA110 remains temporarily (before the 
> architectural cleanup in 7.5), this should be simplified to select CPU_32v4.

Also explained already that I preferred removing CPU_32v3 along
with CPU_SA110 in a later patch, not together with ARCH_RPC.

> 4. Dead code in arch/arm/kernel/atags_compat.c
> With CONFIG_ARCH_ACORN removed from arch/arm/Kconfig, two blocks in
> arch/arm/kernel/atags_compat.c
>   are now dead code:
>
> Lines 150–157: #ifdef CONFIG_ARCH_ACORN / if (machine_is_riscpc()) 
> memory bank tagging.
> Lines 186–194: #ifdef CONFIG_ARCH_ACORN ATAG_ACORN translation.
> These blocks should be removed as part of this patch.

I have a patch to remove that file.

>
> /*
>   * Now, pick up the machine-defined IO definitions
>   */
> #if IS_ENABLED(CONFIG_PCMCIA) || defined(CONFIG_PCI)
> CONFIG_NEED_MACH_IO_H and #include <mach/io.h> were removed, leaving 
> this comment describing generic PCI/PCMCIA I/O limits.

Fixed now.

> arch/arm/boot/bootp/Makefile:21
> : # guess an initrd location if possible is left dangling right before 
> ifdef INITRD_OFFSET after all initrd_offset-$(CONFIG_...) logic has been 
> stripped out.

Removed that entire block now:

--- a/arch/arm/boot/bootp/Makefile
+++ b/arch/arm/boot/bootp/Makefile
@@ -17,12 +17,6 @@ add_hex = $(shell printf 0x%x $$(( $(1) + $(2) )) )
 #   INITRD_PHYS must be in RAM
 
 PARAMS_PHYS := $(call add_hex, $(PHYS_OFFSET), 0x100)
-
-# guess an initrd location if possible
-ifdef INITRD_OFFSET
-INITRD_PHYS := $(call add_hex, $(PHYS_OFFSET), $(INITRD_OFFSET))
-endif
-
 endif
 
 PHONY += initrd
@@ -30,7 +24,7 @@ initrd:
        @test "$(PARAMS_PHYS)" != "" || \
        (echo bootpImage: You must specify PHYS_OFFSET of PARAMS_PHYS ; exit -1)
        @test "$(INITRD_PHYS)" != "" || \
-       (echo bootpImage: You must specify INITRD_OFFSET or INITRD_PHYS ; exit -1)
+       (echo bootpImage: You must specify INITRD_PHYS ; exit -1)
        @test "$(INITRD)" != "" || \
        (echo bootpImage: You must specify INITRD; exit -1)
 

> 6. Floppy driver & arch/arm/include/asm/floppy.h status
> The patch removes the ARM MFM AND FLOPPY DRIVERS entry from MAINTAINERS:

commented already that this is removed along with CONFIG_ISA in a later
patch.

      Arnd


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

* Re: [PATCH 08/13] ARM: imx: remove nommu support
       [not found] ` <20260908152808.3928630-9-arnd@kernel.org>
@ 2026-09-09 20:17   ` Fabio Estevam
  2026-09-09 20:21   ` Fabio Estevam
  1 sibling, 0 replies; 49+ messages in thread
From: Fabio Estevam @ 2026-09-09 20:17 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Krzysztof Kozlowski, Alexandre Belloni, Linus Walleij,
	Russell King, Drew Fustini, Arnd Bergmann, Rob Herring,
	Conor Dooley, Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi,
	Frank Li, Sascha Hauer, Pengutronix Kernel Team,
	Vladimir Zapolskiy, Stefan Agner, Maxime Coquelin,
	Alexandre Torgue, Aaro Koskinen, Andreas Kemnade, Kevin Hilman,
	Roger Quadros, Tony Lindgren, Nicolas Ferre, Claudiu Beznea,
	Andrew Lunn, Sebastian Hesselbarth, Gregory Clement,
	Robert Jarzmik, Kristoffer Ericson, Ethan Nelson-Moore,
	Geert Uytterhoeven, Alexander Sverdlin, Shawn Guo,
	Karl Mehltretter, David Hildenbrand (Arm), Nicolas Pitre,
	linux-doc, linux-kernel, linux-arm-kernel, devicetree, imx,
	linux-stm32, linux-omap, Krzysztof Kozlowski, Giulio Benetti

On Tue, Sep 8, 2026 at 12:29 PM Arnd Bergmann <arnd@kernel.org> wrote:
>
> From: Arnd Bergmann <arnd@arndb.de>
>
> The i.MX platform has grown support for three separate product
> lines using Cortex-M based microcontrollers over the years:
>
>  - i.MX RT1050, a high-end microcontroller
>  - Vybrid vf610 suppors running Linux on either the Cortex-A5
>    CPU or the Cortex-M4 MCU
>  - i.MX7D similarly can run Linux on the Cortex-A7 or the
>    Cortex-M4
>
> There are no known upstream users of any of those three, so
> drop support and simplify the platform to assume that an MMU
> is present.
>
> Cc: Frank Li <Frank.Li@nxp.com>
> Cc: Sascha Hauer <s.hauer@pengutronix.de>
> Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
> Cc: Fabio Estevam <festevam@gmail.com>
> Cc: Stefan Agner <stefan@agner.ch>
> Cc: Rob Herring <robh@kernel.org>
> Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
> Cc: Conor Dooley <conor+dt@kernel.org>
> Cc: Vladimir Zapolskiy <vz@mleia.com>
> Cc: Giulio Benetti <giulio.benetti@benettiengineering.com>
> Cc: devicetree@vger.kernel.org
> Cc: imx@lists.linux.dev
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>  arch/arm/boot/dts/nxp/imx/Makefile            |    2 -
>  arch/arm/boot/dts/nxp/imx/imxrt1050-evk.dts   |   72 -
>  arch/arm/boot/dts/nxp/imx/imxrt1050-pinfunc.h |  993 -----------
>  arch/arm/boot/dts/nxp/imx/imxrt1050.dtsi      |  160 --
>  arch/arm/boot/dts/nxp/imx/imxrt1170-pinfunc.h | 1561 -----------------


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

* Re: [PATCH 08/13] ARM: imx: remove nommu support
       [not found] ` <20260908152808.3928630-9-arnd@kernel.org>
  2026-09-09 20:17   ` [PATCH 08/13] ARM: imx: remove nommu support Fabio Estevam
@ 2026-09-09 20:21   ` Fabio Estevam
  2026-09-10 13:08     ` Jesse T
  2026-09-10 16:08     ` Giulio Benetti
  1 sibling, 2 replies; 49+ messages in thread
From: Fabio Estevam @ 2026-09-09 20:21 UTC (permalink / raw)
  To: Arnd Bergmann, Jesse Taube, Giulio Benetti
  Cc: Krzysztof Kozlowski, Alexandre Belloni, Linus Walleij,
	Russell King, Drew Fustini, Arnd Bergmann, Rob Herring,
	Conor Dooley, Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi,
	Frank Li, Sascha Hauer, Pengutronix Kernel Team,
	Vladimir Zapolskiy, Stefan Agner, Maxime Coquelin,
	Alexandre Torgue, Aaro Koskinen, Andreas Kemnade, Kevin Hilman,
	Roger Quadros, Tony Lindgren, Nicolas Ferre, Claudiu Beznea,
	Andrew Lunn, Sebastian Hesselbarth, Gregory Clement,
	Robert Jarzmik, Kristoffer Ericson, Ethan Nelson-Moore,
	Geert Uytterhoeven, Alexander Sverdlin, Shawn Guo,
	Karl Mehltretter, David Hildenbrand (Arm), Nicolas Pitre,
	linux-doc, linux-kernel, linux-arm-kernel, devicetree, imx,
	linux-stm32, linux-omap, Krzysztof Kozlowski

On Tue, Sep 8, 2026 at 12:29 PM Arnd Bergmann <arnd@kernel.org> wrote:
>
> From: Arnd Bergmann <arnd@arndb.de>
>
> The i.MX platform has grown support for three separate product
> lines using Cortex-M based microcontrollers over the years:
>
>  - i.MX RT1050, a high-end microcontroller
>  - Vybrid vf610 suppors running Linux on either the Cortex-A5
>    CPU or the Cortex-M4 MCU
>  - i.MX7D similarly can run Linux on the Cortex-A7 or the
>    Cortex-M4
>
> There are no known upstream users of any of those three, so
> drop support and simplify the platform to assume that an MMU
> is present.
>
> Cc: Frank Li <Frank.Li@nxp.com>
> Cc: Sascha Hauer <s.hauer@pengutronix.de>
> Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
> Cc: Fabio Estevam <festevam@gmail.com>
> Cc: Stefan Agner <stefan@agner.ch>
> Cc: Rob Herring <robh@kernel.org>
> Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
> Cc: Conor Dooley <conor+dt@kernel.org>
> Cc: Vladimir Zapolskiy <vz@mleia.com>
> Cc: Giulio Benetti <giulio.benetti@benettiengineering.com>
> Cc: devicetree@vger.kernel.org
> Cc: imx@lists.linux.dev
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>  arch/arm/boot/dts/nxp/imx/Makefile            |    2 -
>  arch/arm/boot/dts/nxp/imx/imxrt1050-evk.dts   |   72 -
>  arch/arm/boot/dts/nxp/imx/imxrt1050-pinfunc.h |  993 -----------
>  arch/arm/boot/dts/nxp/imx/imxrt1050.dtsi      |  160 --
>  arch/arm/boot/dts/nxp/imx/imxrt1170-pinfunc.h | 1561 -----------------
>  arch/arm/boot/dts/nxp/vf/Makefile             |    2 -
>  arch/arm/boot/dts/nxp/vf/vf610m4-colibri.dts  |   61 -
>  arch/arm/boot/dts/nxp/vf/vf610m4-cosmic.dts   |   88 -
>  arch/arm/boot/dts/nxp/vf/vf610m4.dtsi         |   61 -
>  arch/arm/configs/imxrt_defconfig              |   35 -
>  arch/arm/configs/vf610m4_defconfig            |   39 -
>  arch/arm/mach-imx/Kconfig                     |   27 +-
>  arch/arm/mach-imx/Makefile                    |    3 -
>  arch/arm/mach-imx/mach-imx7d-cm4.c            |   18 -
>  arch/arm/mach-imx/mach-imxrt.c                |   19 -

The imxrt1050-evk dts is used in U-Boot.

Adding Jesse and Giulio, who use this platform in U-Boot.


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

* Re: [PATCH 12/13] ARM: at91: remove samv7 support
  2026-09-08 15:28 ` [PATCH 12/13] ARM: at91: remove samv7 support Arnd Bergmann
                     ` (3 preceding siblings ...)
  2026-09-09 12:41   ` Alexandre Belloni
@ 2026-09-10 12:23   ` Nicolas Ferre
  4 siblings, 0 replies; 49+ messages in thread
From: Nicolas Ferre @ 2026-09-10 12:23 UTC (permalink / raw)
  To: Arnd Bergmann, Krzysztof Kozlowski, Alexandre Belloni,
	Linus Walleij, Russell King
  Cc: Drew Fustini, Arnd Bergmann, Rob Herring, Conor Dooley,
	Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi, Frank Li,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Vladimir Zapolskiy, Stefan Agner, Maxime Coquelin,
	Alexandre Torgue, Aaro Koskinen, Andreas Kemnade, Kevin Hilman,
	Roger Quadros, Tony Lindgren, Claudiu Beznea, Andrew Lunn,
	Sebastian Hesselbarth, Gregory Clement, Robert Jarzmik,
	Kristoffer Ericson, Ethan Nelson-Moore, Geert Uytterhoeven,
	Alexander Sverdlin, Shawn Guo, Karl Mehltretter,
	David Hildenbrand (Arm), Nicolas Pitre, linux-doc, linux-kernel,
	linux-arm-kernel, devicetree, imx, linux-stm32, linux-omap

On 08/09/2026 at 17:28, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> The Atmel at91 line, now known as Microchip SAM contains both
> SoCs using ARM926 and Cortex-A CPUs as well as a number of
> microcontrollers. Only a single one of those MCUs currently
> has Linux support, and has no known users.
> 
> The samv7 platform was deprecated in Linux-7.3LTS, which will
> remain supported a while longer after it is gone from mainline.
> 
> Cc: Nicolas Ferre <nicolas.ferre@microchip.com>

Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>

Regards,
   Nicolas

> Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
> Cc: Claudiu Beznea <claudiu.beznea@tuxon.dev>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>   arch/arm/Kconfig.debug      | 10 ----------
>   arch/arm/mach-at91/Kconfig  | 11 +----------
>   arch/arm/mach-at91/Makefile |  1 -
>   arch/arm/mach-at91/samv7.c  | 17 -----------------
>   drivers/soc/atmel/soc.c     | 36 ------------------------------------
>   5 files changed, 1 insertion(+), 74 deletions(-)
>   delete mode 100644 arch/arm/mach-at91/samv7.c

[..]


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

* Re: [PATCH 12/13] ARM: at91: remove samv7 support
  2026-09-08 21:30     ` Arnd Bergmann
@ 2026-09-10 12:25       ` Nicolas Ferre
  0 siblings, 0 replies; 49+ messages in thread
From: Nicolas Ferre @ 2026-09-10 12:25 UTC (permalink / raw)
  To: Arnd Bergmann, Rob Herring, Arnd Bergmann
  Cc: Krzysztof Kozlowski, Alexandre Belloni, Linus Walleij,
	Russell King, Drew Fustini, Conor Dooley, Liviu Dudau,
	Sudeep Holla, Lorenzo Pieralisi, Frank Li, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Vladimir Zapolskiy,
	Stefan Agner, Maxime Coquelin, Alexandre Torgue, Aaro Koskinen,
	Andreas Kemnade, Kevin Hilman, Roger Quadros, Tony Lindgren,
	Claudiu Beznea, Andrew Lunn, Sebastian Hesselbarth,
	Gregory Clement, Robert Jarzmik, Kristoffer Ericson,
	Ethan Nelson-Moore, Geert Uytterhoeven, A. Sverdlin, Shawn Guo,
	Karl Mehltretter, David Hildenbrand (Red Hat), Nicolas Pitre,
	linux-doc, linux-kernel, linux-arm-kernel, devicetree, imx,
	linux-stm32, Linux-OMAP

On 08/09/2026 at 23:30, Arnd Bergmann wrote:
> On Tue, Sep 8, 2026, at 23:09, Rob Herring wrote:
>>
>> Do you want to drop all the samv7 platform compatibles from at91.yaml?
>> Are there non-Linux users using DT?
> 
> I see that zephyr uses DT here, but it uses an incompatible
> set of bindings, see
> https://github.com/zephyrproject-rtos/zephyr/tree/main/dts/arm/atmel
> 
> I'm dropping the references from the binding now, and also from
> Documentation/arch/arm/microchip.rst, which I had missed earlier.

Very good, thanks for having handling that Arnd.

Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>

Best regards,
   Nicolas

> diff --git a/Documentation/arch/arm/microchip.rst b/Documentation/arch/arm/microchip.rst
> index e721d855f2c9..b776a6656717 100644
> --- a/Documentation/arch/arm/microchip.rst
> +++ b/Documentation/arch/arm/microchip.rst
> @@ -157,45 +157,6 @@ the Microchip website: http://www.microchip.com.
> 
>             Coming soon
> 
> -    * ARM Cortex-M7 MCUs
> -      - sams70 family
> -
> -        - sams70j19
> -        - sams70j20
> -        - sams70j21
> -        - sams70n19
> -        - sams70n20
> -        - sams70n21
> -        - sams70q19
> -        - sams70q20
> -        - sams70q21
> -
> -      - samv70 family
> -
> -        - samv70j19
> -        - samv70j20
> -        - samv70n19
> -        - samv70n20
> -        - samv70q19
> -        - samv70q20
> -
> -      - samv71 family
> -
> -        - samv71j19
> -        - samv71j20
> -        - samv71j21
> -        - samv71n19
> -        - samv71n20
> -        - samv71n21
> -        - samv71q19
> -        - samv71q20
> -        - samv71q21
> -
> -          * Datasheet
> -
> -          http://ww1.microchip.com/downloads/en/DeviceDoc/SAM-E70-S70-V70-V71-Family-Data-Sheet-DS60001527D.pdf
> -
> -
>   Linux kernel information
>   ------------------------
>   Linux kernel mach directory: arch/arm/mach-at91
> diff --git a/Documentation/devicetree/bindings/arm/atmel-at91.yaml b/Documentation/devicetree/bindings/arm/atmel-at91.yaml
> index bf161e0950ea..d9b32a95b136 100644
> --- a/Documentation/devicetree/bindings/arm/atmel-at91.yaml
> +++ b/Documentation/devicetree/bindings/arm/atmel-at91.yaml
> @@ -258,45 +258,6 @@ properties:
>             - const: microchip,lan9668
>             - const: microchip,lan966
> 
> -      - items:
> -          - enum:
> -              - atmel,sams70j19
> -              - atmel,sams70j20
> -              - atmel,sams70j21
> -              - atmel,sams70n19
> -              - atmel,sams70n20
> -              - atmel,sams70n21
> -              - atmel,sams70q19
> -              - atmel,sams70q20
> -              - atmel,sams70q21
> -          - const: atmel,sams70
> -          - const: atmel,samv7
> -
> -      - items:
> -          - enum:
> -              - atmel,samv70j19
> -              - atmel,samv70j20
> -              - atmel,samv70n19
> -              - atmel,samv70n20
> -              - atmel,samv70q19
> -              - atmel,samv70q20
> -          - const: atmel,samv70
> -          - const: atmel,samv7
> -
> -      - items:
> -          - enum:
> -              - atmel,samv71j19
> -              - atmel,samv71j20
> -              - atmel,samv71j21
> -              - atmel,samv71n19
> -              - atmel,samv71n20
> -              - atmel,samv71n21
> -              - atmel,samv71q19
> -              - atmel,samv71q20
> -              - atmel,samv71q21
> -          - const: atmel,samv71
> -          - const: atmel,samv7
> -
>   additionalProperties: true
> 
>   ...



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

* Re: [PATCH 08/13] ARM: imx: remove nommu support
  2026-09-09 20:21   ` Fabio Estevam
@ 2026-09-10 13:08     ` Jesse T
  2026-09-10 16:08     ` Giulio Benetti
  1 sibling, 0 replies; 49+ messages in thread
From: Jesse T @ 2026-09-10 13:08 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: Arnd Bergmann, Giulio Benetti, Krzysztof Kozlowski,
	Alexandre Belloni, Linus Walleij, Russell King, Drew Fustini,
	Arnd Bergmann, Rob Herring, Conor Dooley, Liviu Dudau,
	Sudeep Holla, Lorenzo Pieralisi, Frank Li, Sascha Hauer,
	Pengutronix Kernel Team, Vladimir Zapolskiy, Stefan Agner,
	Maxime Coquelin, Alexandre Torgue, Aaro Koskinen, Andreas Kemnade,
	Kevin Hilman, Roger Quadros, Tony Lindgren, Nicolas Ferre,
	Claudiu Beznea, Andrew Lunn, Sebastian Hesselbarth,
	Gregory Clement, Robert Jarzmik, Kristoffer Ericson,
	Ethan Nelson-Moore, Geert Uytterhoeven, Alexander Sverdlin,
	Shawn Guo, Karl Mehltretter, David Hildenbrand (Arm),
	Nicolas Pitre, linux-doc, linux-kernel, linux-arm-kernel,
	devicetree, imx, linux-stm32, linux-omap, Krzysztof Kozlowski

On Wed, Sep 9, 2026 at 4:21 PM Fabio Estevam <festevam@gmail.com> wrote:
>
> On Tue, Sep 8, 2026 at 12:29 PM Arnd Bergmann <arnd@kernel.org> wrote:
> >
> > From: Arnd Bergmann <arnd@arndb.de>
> >
> > The i.MX platform has grown support for three separate product
> > lines using Cortex-M based microcontrollers over the years:
> >
> >  - i.MX RT1050, a high-end microcontroller
> >  - Vybrid vf610 suppors running Linux on either the Cortex-A5
> >    CPU or the Cortex-M4 MCU
> >  - i.MX7D similarly can run Linux on the Cortex-A7 or the
> >    Cortex-M4
> >
> > There are no known upstream users of any of those three,
There is both a u-boot and buildroot config for i.MX RT1050,
I also do basic regression testing on this platform. I understand the
need to depreciate no-MMU, but it's sad to see them go.

If it helps at all to remove i.MX RT1050 there are only 11 commits
adding it that are from Giulio Benetti and I.
For i.MX RT1170 only 3 commits by me which only got partially
added. See
Commit: fff65226b229 ("pinctrl: freescale: Add i.MXRT1170 pinctrl
driver support")

I also occasionally test the stm32f429-disco as I have one.

> > so
> > drop support and simplify the platform to assume that an MMU
> > is present.
> >
> > Cc: Frank Li <Frank.Li@nxp.com>
> > Cc: Sascha Hauer <s.hauer@pengutronix.de>
> > Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
> > Cc: Fabio Estevam <festevam@gmail.com>
> > Cc: Stefan Agner <stefan@agner.ch>
> > Cc: Rob Herring <robh@kernel.org>
> > Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
> > Cc: Conor Dooley <conor+dt@kernel.org>
> > Cc: Vladimir Zapolskiy <vz@mleia.com>
> > Cc: Giulio Benetti <giulio.benetti@benettiengineering.com>
> > Cc: devicetree@vger.kernel.org
> > Cc: imx@lists.linux.dev
> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> > ---
> >  arch/arm/boot/dts/nxp/imx/Makefile            |    2 -
> >  arch/arm/boot/dts/nxp/imx/imxrt1050-evk.dts   |   72 -
> >  arch/arm/boot/dts/nxp/imx/imxrt1050-pinfunc.h |  993 -----------
> >  arch/arm/boot/dts/nxp/imx/imxrt1050.dtsi      |  160 --
> >  arch/arm/boot/dts/nxp/imx/imxrt1170-pinfunc.h | 1561 -----------------
> >  arch/arm/boot/dts/nxp/vf/Makefile             |    2 -
> >  arch/arm/boot/dts/nxp/vf/vf610m4-colibri.dts  |   61 -
> >  arch/arm/boot/dts/nxp/vf/vf610m4-cosmic.dts   |   88 -
> >  arch/arm/boot/dts/nxp/vf/vf610m4.dtsi         |   61 -
> >  arch/arm/configs/imxrt_defconfig              |   35 -
> >  arch/arm/configs/vf610m4_defconfig            |   39 -
> >  arch/arm/mach-imx/Kconfig                     |   27 +-
> >  arch/arm/mach-imx/Makefile                    |    3 -
> >  arch/arm/mach-imx/mach-imx7d-cm4.c            |   18 -
> >  arch/arm/mach-imx/mach-imxrt.c                |   19 -
>
> The imxrt1050-evk dts is used in U-Boot.
>
> Adding Jesse and Giulio, who use this platform in U-Boot.

Thanks for the CC,
Jesse Taube


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

* Re: [PATCH 07/13] ARM: imx: remove i.MX31 SoC support
  2026-09-08 15:27 ` [PATCH 07/13] ARM: imx: remove i.MX31 SoC support Arnd Bergmann
  2026-09-09  8:24   ` Vladimir Zapolskiy
  2026-09-09  8:26   ` Daniel Baluta
@ 2026-09-10 15:11   ` Frank Li
  2 siblings, 0 replies; 49+ messages in thread
From: Frank Li @ 2026-09-10 15:11 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Krzysztof Kozlowski, Alexandre Belloni, Linus Walleij,
	Russell King, Drew Fustini, Arnd Bergmann, Rob Herring,
	Conor Dooley, Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi,
	Frank Li, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Vladimir Zapolskiy, Stefan Agner, Maxime Coquelin,
	Alexandre Torgue, Aaro Koskinen, Andreas Kemnade, Kevin Hilman,
	Roger Quadros, Tony Lindgren, Nicolas Ferre, Claudiu Beznea,
	Andrew Lunn, Sebastian Hesselbarth, Gregory Clement,
	Robert Jarzmik, Kristoffer Ericson, Ethan Nelson-Moore,
	Geert Uytterhoeven, Alexander Sverdlin, Shawn Guo,
	Karl Mehltretter, David Hildenbrand (Arm), Nicolas Pitre,
	linux-doc, linux-kernel, linux-arm-kernel, devicetree, imx,
	linux-stm32, linux-omap, Krzysztof Kozlowski

On Tue, Sep 08, 2026 at 05:27:57PM +0200, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
>
> The Freescale i.MX31 was an early SoC based on the ARM1136r0 CPU core. It
> was used in the Bug Labs modular computer but ultimately much less
> popular than most other i.MX SoCs.
>
> As the ARM1136r0 support is causing a lot of extra maintenance effort
> to keep alive and there are no known users, remove i.MX31 in order to
> allow removing support for that CPU core altogether.
>
> The related i.MX35 is based on a slightly newer ARM1136r1 CPU core that
> does not have this problem, so there is no reason to remove that.
>
> Cc: Russell King <linux@armlinux.org.uk>
> Cc: Frank Li <Frank.Li@nxp.com>
> Cc: Sascha Hauer <s.hauer@pengutronix.de>
> Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
> Cc: Fabio Estevam <festevam@gmail.com>
> Cc: Rob Herring <robh@kernel.org>
> Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
> Cc: Conor Dooley <conor+dt@kernel.org>
> Cc: imx@lists.linux.dev
> Cc: devicetree@vger.kernel.org
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---

Acked-by: Frank Li <Frank.Li@nxp.com>


>  arch/arm/Kconfig.debug                   |   9 -
>  arch/arm/boot/dts/nxp/imx/Makefile       |   3 -
>  arch/arm/boot/dts/nxp/imx/imx31-bug.dts  |  22 --
>  arch/arm/boot/dts/nxp/imx/imx31-lite.dts | 178 -----------
>  arch/arm/boot/dts/nxp/imx/imx31.dtsi     | 371 -----------------------
>  arch/arm/configs/imx_v6_v7_defconfig     |   1 -
>  arch/arm/mach-imx/Kconfig                |  11 -
>  arch/arm/mach-imx/Makefile               |   1 -
>  arch/arm/mach-imx/cpu-imx31.c            |  72 -----
>  arch/arm/mach-imx/mach-imx31.c           |  18 --
>  arch/arm/mach-imx/mm-imx3.c              |  44 ---
>  11 files changed, 730 deletions(-)
>  delete mode 100644 arch/arm/boot/dts/nxp/imx/imx31-bug.dts
>  delete mode 100644 arch/arm/boot/dts/nxp/imx/imx31-lite.dts
>  delete mode 100644 arch/arm/boot/dts/nxp/imx/imx31.dtsi
>  delete mode 100644 arch/arm/mach-imx/cpu-imx31.c
>  delete mode 100644 arch/arm/mach-imx/mach-imx31.c
>
> diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
> index e2fc89055463..52387fe2a057 100644
> --- a/arch/arm/Kconfig.debug
> +++ b/arch/arm/Kconfig.debug
> @@ -424,13 +424,6 @@ choice
>  		  Say Y here if you want kernel low-level debugging support
>  		  on i.MX28.
>
> -	config DEBUG_IMX31_UART
> -		bool "i.MX31 Debug UART"
> -		depends on SOC_IMX31
> -		help
> -		  Say Y here if you want kernel low-level debugging support
> -		  on i.MX31.
> -
>  	config DEBUG_IMX35_UART
>  		bool "i.MX35 Debug UART"
>  		depends on SOC_IMX35
> @@ -1411,7 +1404,6 @@ config DEBUG_IMX_UART_PORT
>  	depends on DEBUG_IMX1_UART || \
>  		   DEBUG_IMX25_UART || \
>  		   DEBUG_IMX27_UART || \
> -		   DEBUG_IMX31_UART || \
>  		   DEBUG_IMX35_UART || \
>  		   DEBUG_IMX50_UART || \
>  		   DEBUG_IMX51_UART || \
> @@ -1468,7 +1460,6 @@ config DEBUG_LL_INCLUDE
>  	default "debug/imx.S" if DEBUG_IMX1_UART || \
>  				 DEBUG_IMX25_UART || \
>  				 DEBUG_IMX27_UART || \
> -				 DEBUG_IMX31_UART || \
>  				 DEBUG_IMX35_UART || \
>  				 DEBUG_IMX50_UART || \
>  				 DEBUG_IMX51_UART || \
> diff --git a/arch/arm/boot/dts/nxp/imx/Makefile b/arch/arm/boot/dts/nxp/imx/Makefile
> index 1a2539fa19b4..e0747cb6e772 100644
> --- a/arch/arm/boot/dts/nxp/imx/Makefile
> +++ b/arch/arm/boot/dts/nxp/imx/Makefile
> @@ -16,9 +16,6 @@ dtb-$(CONFIG_SOC_IMX27) += \
>  	imx27-pdk.dtb \
>  	imx27-phytec-phycore-rdk.dtb \
>  	imx27-phytec-phycard-s-rdk.dtb
> -dtb-$(CONFIG_SOC_IMX31) += \
> -	imx31-bug.dtb \
> -	imx31-lite.dtb
>  dtb-$(CONFIG_SOC_IMX35) += \
>  	imx35-eukrea-mbimxsd35-baseboard.dtb \
>  	imx35-pdk.dtb
> diff --git a/arch/arm/boot/dts/nxp/imx/imx31-bug.dts b/arch/arm/boot/dts/nxp/imx/imx31-bug.dts
> deleted file mode 100644
> index d87eee3f9b3c..000000000000
> --- a/arch/arm/boot/dts/nxp/imx/imx31-bug.dts
> +++ /dev/null
> @@ -1,22 +0,0 @@
> -// SPDX-License-Identifier: GPL-2.0-or-later
> -/*
> - * Copyright 2012 Denis 'GNUtoo' Carikli <GNUtoo@no-log.org>
> - */
> -
> -/dts-v1/;
> -#include "imx31.dtsi"
> -
> -/ {
> -	model = "Buglabs i.MX31 Bug 1.x";
> -	compatible = "buglabs,imx31-bug", "fsl,imx31";
> -
> -	memory@80000000 {
> -		device_type = "memory";
> -		reg = <0x80000000 0x8000000>; /* 128M */
> -	};
> -};
> -
> -&uart5 {
> -	uart-has-rtscts;
> -	status = "okay";
> -};
> diff --git a/arch/arm/boot/dts/nxp/imx/imx31-lite.dts b/arch/arm/boot/dts/nxp/imx/imx31-lite.dts
> deleted file mode 100644
> index 630f8fa69ba8..000000000000
> --- a/arch/arm/boot/dts/nxp/imx/imx31-lite.dts
> +++ /dev/null
> @@ -1,178 +0,0 @@
> -// SPDX-License-Identifier: GPL-2.0+
> -//
> -// Copyright (C) 2016-2018 Vladimir Zapolskiy <vz@mleia.com>
> -
> -/dts-v1/;
> -
> -#include "imx31.dtsi"
> -
> -#include <dt-bindings/gpio/gpio.h>
> -#include <dt-bindings/interrupt-controller/irq.h>
> -
> -/ {
> -	model = "LogicPD i.MX31 Lite";
> -	compatible = "logicpd,imx31-lite", "fsl,imx31";
> -
> -	chosen {
> -		stdout-path = &uart1;
> -	};
> -
> -	memory@80000000 {
> -		device_type = "memory";
> -		reg = <0x80000000 0x8000000>;
> -	};
> -
> -	leds {
> -		compatible = "gpio-leds";
> -
> -		led0 {
> -			gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
> -		};
> -
> -		led1 {
> -			gpios = <&gpio1 7 GPIO_ACTIVE_LOW>;
> -		};
> -	};
> -};
> -
> -&ata {
> -	status = "okay";
> -};
> -
> -&nfc {
> -	nand-bus-width = <8>;
> -	nand-ecc-mode = "hw";
> -	nand-on-flash-bbt;
> -	status = "okay";
> -};
> -
> -&sdhci1 {
> -	bus-width = <4>;
> -	cd-gpios = <&gpio2 11 GPIO_ACTIVE_HIGH>;
> -	wp-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
> -	status = "okay";
> -};
> -
> -&spi2 {
> -	status = "okay";
> -
> -	pmic@0 {
> -		compatible = "fsl,mc13783";
> -		reg = <0>;
> -		spi-cs-high;
> -		spi-max-frequency = <1000000>;
> -		interrupt-parent = <&gpio1>;
> -		interrupts = <3 IRQ_TYPE_EDGE_RISING>;
> -
> -		fsl,mc13xxx-uses-adc;
> -		fsl,mc13xxx-uses-rtc;
> -
> -		regulators {
> -			sw1a {		/* QVCC */
> -				regulator-min-microvolt = <1200000>;
> -				regulator-max-microvolt = <1500000>;
> -				regulator-always-on;
> -				regulator-boot-on;
> -			};
> -
> -			sw1b {		/* QVCC */
> -				regulator-min-microvolt = <1200000>;
> -				regulator-max-microvolt = <1500000>;
> -				regulator-always-on;
> -				regulator-boot-on;
> -			};
> -
> -			sw2a {		/* 1.8V_DDR, NVCC2, NVCC21 and NVCC22 */
> -				regulator-min-microvolt = <1800000>;
> -				regulator-max-microvolt = <1800000>;
> -				regulator-always-on;
> -				regulator-boot-on;
> -			};
> -
> -			sw2b {		/* NVCC10 */
> -				regulator-min-microvolt = <1800000>;
> -				regulator-max-microvolt = <1800000>;
> -				regulator-always-on;
> -				regulator-boot-on;
> -			};
> -
> -			violo {		/* NVCC1 and NVCC7 */
> -				regulator-min-microvolt = <1800000>;
> -				regulator-max-microvolt = <1800000>;
> -				regulator-always-on;
> -				regulator-boot-on;
> -			};
> -
> -			viohi {		/* VIOHI */
> -				regulator-min-microvolt = <2775000>;
> -				regulator-max-microvolt = <2775000>;
> -				regulator-always-on;
> -				regulator-boot-on;
> -			};
> -
> -			vaudio {	/* VAUDIO */
> -				regulator-min-microvolt = <2775000>;
> -				regulator-max-microvolt = <2775000>;
> -			};
> -
> -			vcam {		/* NVCC4 */
> -				regulator-min-microvolt = <2800000>;
> -				regulator-max-microvolt = <2800000>;
> -			};
> -
> -			vgen {		/* NVCC5 / NVCC8 and NVCC6 / NVCC9 */
> -				regulator-min-microvolt = <2775000>;
> -				regulator-max-microvolt = <2775000>;
> -				regulator-always-on;
> -				regulator-boot-on;
> -			};
> -
> -			vmmc2 {		/* NVCC3 */
> -				regulator-min-microvolt = <1600000>;
> -				regulator-max-microvolt = <3000000>;
> -				regulator-always-on;
> -				regulator-boot-on;
> -			};
> -		};
> -	};
> -};
> -
> -&uart1 {
> -	uart-has-rtscts;
> -	status = "okay";
> -};
> -
> -/* Routed to the extension board */
> -&uart2 {
> -	uart-has-rtscts;
> -	status = "okay";
> -};
> -
> -/* Routed to the extension board */
> -&uart3 {
> -	uart-has-rtscts;
> -	status = "okay";
> -};
> -
> -&weim {
> -	status = "okay";
> -
> -	flash@0,0 {
> -		compatible = "cfi-flash";
> -		reg = <0 0x0 0x200000>;
> -		bank-width = <2>;
> -		linux,mtd-name = "physmap-flash.0";
> -		fsl,weim-cs-timing = <0x0000cf03 0xa0330d01 0x00220800>;
> -	};
> -
> -	ethernet@4,0 {
> -		compatible = "smsc,lan9117", "smsc,lan9115";
> -		reg = <4 0x0 0x100>;
> -		interrupt-parent = <&gpio1>;
> -		interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
> -		phy-mode = "mii";
> -		reg-io-width = <2>;
> -		smsc,irq-push-pull;
> -		fsl,weim-cs-timing = <0x00008701 0x04000541 0x00010000>;
> -	};
> -};
> diff --git a/arch/arm/boot/dts/nxp/imx/imx31.dtsi b/arch/arm/boot/dts/nxp/imx/imx31.dtsi
> deleted file mode 100644
> index c58f855ea851..000000000000
> --- a/arch/arm/boot/dts/nxp/imx/imx31.dtsi
> +++ /dev/null
> @@ -1,371 +0,0 @@
> -// SPDX-License-Identifier: GPL-2.0+
> -//
> -// Copyright 2016-2018 Vladimir Zapolskiy <vz@mleia.com>
> -// Copyright 2012 Denis 'GNUtoo' Carikli <GNUtoo@no-log.org>
> -
> -/ {
> -	#address-cells = <1>;
> -	#size-cells = <1>;
> -	/*
> -	 * The decompressor and also some bootloaders rely on a
> -	 * pre-existing /chosen node to be available to insert the
> -	 * command line and merge other ATAGS info.
> -	 */
> -	chosen {};
> -
> -	aliases {
> -		gpio0 = &gpio1;
> -		gpio1 = &gpio2;
> -		gpio2 = &gpio3;
> -		i2c0 = &i2c1;
> -		i2c1 = &i2c2;
> -		i2c2 = &i2c3;
> -		serial0 = &uart1;
> -		serial1 = &uart2;
> -		serial2 = &uart3;
> -		serial3 = &uart4;
> -		serial4 = &uart5;
> -		spi0 = &spi1;
> -		spi1 = &spi2;
> -		spi2 = &spi3;
> -	};
> -
> -	cpus {
> -		#address-cells = <1>;
> -		#size-cells = <0>;
> -
> -		cpu@0 {
> -			compatible = "arm,arm1136jf-s";
> -			device_type = "cpu";
> -			reg = <0>;
> -		};
> -	};
> -
> -	avic: interrupt-controller@68000000 {
> -		compatible = "fsl,imx31-avic", "fsl,avic";
> -		interrupt-controller;
> -		#interrupt-cells = <1>;
> -		reg = <0x68000000 0x100000>;
> -	};
> -
> -	soc: soc {
> -		#address-cells = <1>;
> -		#size-cells = <1>;
> -		compatible = "simple-bus";
> -		interrupt-parent = <&avic>;
> -		ranges;
> -
> -		iram: sram@1fffc000 {
> -			compatible = "mmio-sram";
> -			reg = <0x1fffc000 0x4000>;
> -			#address-cells = <1>;
> -			#size-cells = <1>;
> -			ranges = <0 0x1fffc000 0x4000>;
> -		};
> -
> -		aips1: bus@43f00000 { /* AIPS1 */
> -			compatible = "fsl,aips-bus", "simple-bus";
> -			#address-cells = <1>;
> -			#size-cells = <1>;
> -			reg = <0x43f00000 0x100000>;
> -			ranges;
> -
> -			i2c1: i2c@43f80000 {
> -				compatible = "fsl,imx31-i2c", "fsl,imx21-i2c";
> -				reg = <0x43f80000 0x4000>;
> -				interrupts = <10>;
> -				clocks = <&clks 33>;
> -				#address-cells = <1>;
> -				#size-cells = <0>;
> -				status = "disabled";
> -			};
> -
> -			i2c3: i2c@43f84000 {
> -				compatible = "fsl,imx31-i2c", "fsl,imx21-i2c";
> -				reg = <0x43f84000 0x4000>;
> -				interrupts = <3>;
> -				clocks = <&clks 35>;
> -				#address-cells = <1>;
> -				#size-cells = <0>;
> -				status = "disabled";
> -			};
> -
> -			ata: ata@43f8c000 {
> -				compatible = "fsl,imx31-pata", "fsl,imx27-pata";
> -				reg = <0x43f8c000 0x4000>;
> -				interrupts = <15>;
> -				clocks = <&clks 26>;
> -				status = "disabled";
> -			};
> -
> -			uart1: serial@43f90000 {
> -				compatible = "fsl,imx31-uart", "fsl,imx21-uart";
> -				reg = <0x43f90000 0x4000>;
> -				interrupts = <45>;
> -				clocks = <&clks 10>, <&clks 30>;
> -				clock-names = "ipg", "per";
> -				status = "disabled";
> -			};
> -
> -			uart2: serial@43f94000 {
> -				compatible = "fsl,imx31-uart", "fsl,imx21-uart";
> -				reg = <0x43f94000 0x4000>;
> -				interrupts = <32>;
> -				clocks = <&clks 10>, <&clks 31>;
> -				clock-names = "ipg", "per";
> -				status = "disabled";
> -			};
> -
> -			i2c2: i2c@43f98000 {
> -				compatible = "fsl,imx31-i2c", "fsl,imx21-i2c";
> -				reg = <0x43f98000 0x4000>;
> -				interrupts = <4>;
> -				clocks = <&clks 34>;
> -				#address-cells = <1>;
> -				#size-cells = <0>;
> -				status = "disabled";
> -			};
> -
> -			spi1: spi@43fa4000 {
> -				compatible = "fsl,imx31-cspi";
> -				reg = <0x43fa4000 0x4000>;
> -				interrupts = <14>;
> -				clocks = <&clks 10>, <&clks 53>;
> -				clock-names = "ipg", "per";
> -				dmas = <&sdma 8 8 0>, <&sdma 9 8 0>;
> -				dma-names = "rx", "tx";
> -				#address-cells = <1>;
> -				#size-cells = <0>;
> -				status = "disabled";
> -			};
> -
> -			kpp: kpp@43fa8000 {
> -				compatible = "fsl,imx31-kpp", "fsl,imx21-kpp";
> -				reg = <0x43fa8000 0x4000>;
> -				interrupts = <24>;
> -				clocks = <&clks 46>;
> -				status = "disabled";
> -			};
> -
> -			uart4: serial@43fb0000 {
> -				compatible = "fsl,imx31-uart", "fsl,imx21-uart";
> -				reg = <0x43fb0000 0x4000>;
> -				clocks = <&clks 10>, <&clks 49>;
> -				clock-names = "ipg", "per";
> -				interrupts = <46>;
> -				status = "disabled";
> -			};
> -
> -			uart5: serial@43fb4000 {
> -				compatible = "fsl,imx31-uart", "fsl,imx21-uart";
> -				reg = <0x43fb4000 0x4000>;
> -				interrupts = <47>;
> -				clocks = <&clks 10>, <&clks 50>;
> -				clock-names = "ipg", "per";
> -				status = "disabled";
> -			};
> -		};
> -
> -		spba-bus@50000000 {
> -			compatible = "fsl,spba-bus", "simple-bus";
> -			#address-cells = <1>;
> -			#size-cells = <1>;
> -			reg = <0x50000000 0x100000>;
> -			ranges;
> -
> -			sdhci1: mmc@50004000 {
> -				compatible = "fsl,imx31-mmc";
> -				reg = <0x50004000 0x4000>;
> -				interrupts = <9>;
> -				clocks = <&clks 10>, <&clks 20>;
> -				clock-names = "ipg", "per";
> -				dmas = <&sdma 20 3 0>;
> -				dma-names = "rx-tx";
> -				status = "disabled";
> -			};
> -
> -			sdhci2: mmc@50008000 {
> -				compatible = "fsl,imx31-mmc";
> -				reg = <0x50008000 0x4000>;
> -				interrupts = <8>;
> -				clocks = <&clks 10>, <&clks 21>;
> -				clock-names = "ipg", "per";
> -				dmas = <&sdma 21 3 0>;
> -				dma-names = "rx-tx";
> -				status = "disabled";
> -			};
> -
> -			uart3: serial@5000c000 {
> -				compatible = "fsl,imx31-uart", "fsl,imx21-uart";
> -				reg = <0x5000c000 0x4000>;
> -				interrupts = <18>;
> -				clocks = <&clks 10>, <&clks 48>;
> -				clock-names = "ipg", "per";
> -				status = "disabled";
> -			};
> -
> -			spi2: spi@50010000 {
> -				compatible = "fsl,imx31-cspi";
> -				reg = <0x50010000 0x4000>;
> -				interrupts = <13>;
> -				clocks = <&clks 10>, <&clks 54>;
> -				clock-names = "ipg", "per";
> -				dmas = <&sdma 6 8 0>, <&sdma 7 8 0>;
> -				dma-names = "rx", "tx";
> -				#address-cells = <1>;
> -				#size-cells = <0>;
> -				status = "disabled";
> -			};
> -
> -			iim: efuse@5001c000 {
> -				compatible = "fsl,imx31-iim";
> -				reg = <0x5001c000 0x1000>;
> -				interrupts = <19>;
> -				clocks = <&clks 25>;
> -			};
> -		};
> -
> -		bus@53f00000 { /* AIPS2 */
> -			compatible = "fsl,aips-bus", "simple-bus";
> -			#address-cells = <1>;
> -			#size-cells = <1>;
> -			reg = <0x53f00000 0x100000>;
> -			ranges;
> -
> -			clks: ccm@53f80000 {
> -				compatible = "fsl,imx31-ccm";
> -				reg = <0x53f80000 0x4000>;
> -				interrupts = <31>, <53>;
> -				#clock-cells = <1>;
> -			};
> -
> -			spi3: spi@53f84000 {
> -				compatible = "fsl,imx31-cspi";
> -				reg = <0x53f84000 0x4000>;
> -				interrupts = <17>;
> -				clocks = <&clks 10>, <&clks 28>;
> -				clock-names = "ipg", "per";
> -				dmas = <&sdma 10 8 0>, <&sdma 11 8 0>;
> -				dma-names = "rx", "tx";
> -				#address-cells = <1>;
> -				#size-cells = <0>;
> -				status = "disabled";
> -			};
> -
> -			gpt: timer@53f90000 {
> -				compatible = "fsl,imx31-gpt";
> -				reg = <0x53f90000 0x4000>;
> -				interrupts = <29>;
> -				clocks = <&clks 10>, <&clks 22>;
> -				clock-names = "ipg", "per";
> -			};
> -
> -			gpio3: gpio@53fa4000 {
> -				compatible = "fsl,imx31-gpio";
> -				reg = <0x53fa4000 0x4000>;
> -				interrupts = <56>;
> -				gpio-controller;
> -				#gpio-cells = <2>;
> -				interrupt-controller;
> -				#interrupt-cells = <2>;
> -			};
> -
> -			rng@53fb0000 {
> -				compatible = "fsl,imx31-rnga";
> -				reg = <0x53fb0000 0x4000>;
> -				interrupts = <22>;
> -				clocks = <&clks 29>;
> -			};
> -
> -			gpio1: gpio@53fcc000 {
> -				compatible = "fsl,imx31-gpio";
> -				reg = <0x53fcc000 0x4000>;
> -				interrupts = <52>;
> -				gpio-controller;
> -				#gpio-cells = <2>;
> -				interrupt-controller;
> -				#interrupt-cells = <2>;
> -			};
> -
> -			gpio2: gpio@53fd0000 {
> -				compatible = "fsl,imx31-gpio";
> -				reg = <0x53fd0000 0x4000>;
> -				interrupts = <51>;
> -				gpio-controller;
> -				#gpio-cells = <2>;
> -				interrupt-controller;
> -				#interrupt-cells = <2>;
> -			};
> -
> -			sdma: dma-controller@53fd4000 {
> -				compatible = "fsl,imx31-sdma";
> -				reg = <0x53fd4000 0x4000>;
> -				interrupts = <34>;
> -				clocks = <&clks 10>, <&clks 27>;
> -				clock-names = "ipg", "ahb";
> -				#dma-cells = <3>;
> -				fsl,sdma-ram-script-name = "imx/sdma/sdma-imx31.bin";
> -			};
> -
> -			rtc: rtc@53fd8000 {
> -				compatible = "fsl,imx31-rtc", "fsl,imx21-rtc";
> -				reg = <0x53fd8000 0x4000>;
> -				interrupts = <25>;
> -				clocks = <&clks 2>, <&clks 40>;
> -				clock-names = "ref", "ipg";
> -			};
> -
> -			wdog: watchdog@53fdc000 {
> -				compatible = "fsl,imx31-wdt", "fsl,imx21-wdt";
> -				reg = <0x53fdc000 0x4000>;
> -				clocks = <&clks 41>;
> -				interrupts = <55>;
> -			};
> -
> -			pwm: pwm@53fe0000 {
> -				compatible = "fsl,imx31-pwm", "fsl,imx27-pwm";
> -				reg = <0x53fe0000 0x4000>;
> -				interrupts = <26>;
> -				clocks = <&clks 10>, <&clks 42>;
> -				clock-names = "ipg", "per";
> -				#pwm-cells = <3>;
> -				status = "disabled";
> -			};
> -		};
> -
> -		emi-bus@b8000000 { /* External Memory Interface */
> -			compatible = "simple-bus";
> -			reg = <0xb8000000 0x5000>;
> -			ranges;
> -			#address-cells = <1>;
> -			#size-cells = <1>;
> -
> -			nfc: nand-controller@b8000000 {
> -				compatible = "fsl,imx31-nand", "fsl,imx27-nand";
> -				reg = <0xb8000000 0x1000>;
> -				interrupts = <33>;
> -				clocks = <&clks 9>;
> -				dmas = <&sdma 30 17 0>;
> -				dma-names = "rx-tx";
> -				#address-cells = <1>;
> -				#size-cells = <1>;
> -				status = "disabled";
> -			};
> -
> -			weim: memory-controller@b8002000 {
> -				compatible = "fsl,imx31-weim", "fsl,imx27-weim";
> -				reg = <0xb8002000 0x1000>;
> -				clocks = <&clks 56>;
> -				#address-cells = <2>;
> -				#size-cells = <1>;
> -				ranges = <0 0 0xa0000000 0x08000000
> -					  1 0 0xa8000000 0x08000000
> -					  2 0 0xb0000000 0x02000000
> -					  3 0 0xb2000000 0x02000000
> -					  4 0 0xb4000000 0x02000000
> -					  5 0 0xb6000000 0x02000000>;
> -				status = "disabled";
> -			};
> -		};
> -	};
> -};
> diff --git a/arch/arm/configs/imx_v6_v7_defconfig b/arch/arm/configs/imx_v6_v7_defconfig
> index ed588add8d31..6ac42c06c1e9 100644
> --- a/arch/arm/configs/imx_v6_v7_defconfig
> +++ b/arch/arm/configs/imx_v6_v7_defconfig
> @@ -15,7 +15,6 @@ CONFIG_PERF_EVENTS=y
>  CONFIG_KEXEC=y
>  CONFIG_ARCH_MULTI_V6=y
>  CONFIG_ARCH_MXC=y
> -CONFIG_SOC_IMX31=y
>  CONFIG_SOC_IMX35=y
>  CONFIG_SOC_IMX50=y
>  CONFIG_SOC_IMX51=y
> diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
> index 3f0521c652cb..77704c6a70ba 100644
> --- a/arch/arm/mach-imx/Kconfig
> +++ b/arch/arm/mach-imx/Kconfig
> @@ -39,17 +39,6 @@ if ARCH_MULTI_V6
>
>  comment "ARM1136 platforms"
>
> -config SOC_IMX31
> -	bool "i.MX31 support (DEPRECATED)"
> -	depends on !SMP
> -	select CPU_ARM1136R0
> -	select MXC_AVIC
> -	help
> -	  This enables support for Freescale i.MX31 processor
> -
> -	  This SoC is scheduled for removal in early 2027,
> -	  since it uses the ARM1136r0 CPU revision.
> -
>  config SOC_IMX35
>  	bool "i.MX35 support"
>  	select CPU_ARM1136R1
> diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile
> index 5c650bf40e02..fa0144f0882d 100644
> --- a/arch/arm/mach-imx/Makefile
> +++ b/arch/arm/mach-imx/Makefile
> @@ -5,7 +5,6 @@ obj-$(CONFIG_SOC_IMX25) += cpu-imx25.o mach-imx25.o pm-imx25.o
>
>  obj-$(CONFIG_SOC_IMX27) += cpu-imx27.o pm-imx27.o mach-imx27.o
>
> -obj-$(CONFIG_SOC_IMX31) += mm-imx3.o cpu-imx31.o mach-imx31.o
>  obj-$(CONFIG_SOC_IMX35) += mm-imx3.o cpu-imx35.o mach-imx35.o
>
>  imx5-pm-$(CONFIG_PM) += pm-imx5.o
> diff --git a/arch/arm/mach-imx/cpu-imx31.c b/arch/arm/mach-imx/cpu-imx31.c
> deleted file mode 100644
> index e81ef9e36a1f..000000000000
> --- a/arch/arm/mach-imx/cpu-imx31.c
> +++ /dev/null
> @@ -1,72 +0,0 @@
> -// SPDX-License-Identifier: GPL-2.0-or-later
> -/*
> - * MX31 CPU type detection
> - *
> - * Copyright (c) 2009 Daniel Mack <daniel@caiaq.de>
> - */
> -
> -#include <linux/module.h>
> -#include <linux/of_address.h>
> -#include <linux/io.h>
> -
> -#include "common.h"
> -#include "hardware.h"
> -#include "iim.h"
> -
> -static int mx31_cpu_rev = -1;
> -
> -static struct {
> -	u8 srev;
> -	const char *name;
> -	unsigned int rev;
> -} mx31_cpu_type[] = {
> -	{ .srev = 0x00, .name = "i.MX31(L)", .rev = IMX_CHIP_REVISION_1_0 },
> -	{ .srev = 0x10, .name = "i.MX31",    .rev = IMX_CHIP_REVISION_1_1 },
> -	{ .srev = 0x11, .name = "i.MX31L",   .rev = IMX_CHIP_REVISION_1_1 },
> -	{ .srev = 0x12, .name = "i.MX31",    .rev = IMX_CHIP_REVISION_1_1 },
> -	{ .srev = 0x13, .name = "i.MX31L",   .rev = IMX_CHIP_REVISION_1_1 },
> -	{ .srev = 0x14, .name = "i.MX31",    .rev = IMX_CHIP_REVISION_1_2 },
> -	{ .srev = 0x15, .name = "i.MX31L",   .rev = IMX_CHIP_REVISION_1_2 },
> -	{ .srev = 0x28, .name = "i.MX31",    .rev = IMX_CHIP_REVISION_2_0 },
> -	{ .srev = 0x29, .name = "i.MX31L",   .rev = IMX_CHIP_REVISION_2_0 },
> -};
> -
> -static int mx31_read_cpu_rev(void)
> -{
> -	void __iomem *iim_base;
> -	struct device_node *np;
> -	u32 i, srev;
> -	int rev = IMX_CHIP_REVISION_UNKNOWN;
> -
> -	np = of_find_compatible_node(NULL, NULL, "fsl,imx31-iim");
> -	iim_base = of_iomap(np, 0);
> -	of_node_put(np);
> -	BUG_ON(!iim_base);
> -
> -	/* read SREV register from IIM module */
> -	srev = imx_readl(iim_base + MXC_IIMSREV);
> -	srev &= 0xff;
> -
> -	for (i = 0; i < ARRAY_SIZE(mx31_cpu_type); i++)
> -		if (srev == mx31_cpu_type[i].srev) {
> -			rev = mx31_cpu_type[i].rev;
> -			imx_print_silicon_rev(mx31_cpu_type[i].name,
> -						mx31_cpu_type[i].rev);
> -			goto out;
> -		}
> -
> -	imx_print_silicon_rev("i.MX31", IMX_CHIP_REVISION_UNKNOWN);
> -
> -out:
> -	iounmap(iim_base);
> -	return rev;
> -}
> -
> -int mx31_revision(void)
> -{
> -	if (mx31_cpu_rev == -1)
> -		mx31_cpu_rev = mx31_read_cpu_rev();
> -
> -	return mx31_cpu_rev;
> -}
> -EXPORT_SYMBOL(mx31_revision);
> diff --git a/arch/arm/mach-imx/mach-imx31.c b/arch/arm/mach-imx/mach-imx31.c
> deleted file mode 100644
> index e9a1092b6093..000000000000
> --- a/arch/arm/mach-imx/mach-imx31.c
> +++ /dev/null
> @@ -1,18 +0,0 @@
> -// SPDX-License-Identifier: GPL-2.0-or-later
> -/*
> - * Copyright 2012 Sascha Hauer, Pengutronix
> - */
> -
> -#include <asm/mach/arch.h>
> -#include "common.h"
> -
> -static const char * const imx31_dt_board_compat[] __initconst = {
> -	"fsl,imx31",
> -	NULL
> -};
> -
> -DT_MACHINE_START(IMX31_DT, "Freescale i.MX31 (Device Tree Support)")
> -	.map_io		= mx31_map_io,
> -	.init_early	= imx31_init_early,
> -	.dt_compat	= imx31_dt_board_compat,
> -MACHINE_END
> diff --git a/arch/arm/mach-imx/mm-imx3.c b/arch/arm/mach-imx/mm-imx3.c
> index 9b0b014d7fe2..42e73518004a 100644
> --- a/arch/arm/mach-imx/mm-imx3.c
> +++ b/arch/arm/mach-imx/mm-imx3.c
> @@ -69,49 +69,6 @@ static void __iomem *imx3_ioremap_caller(phys_addr_t phys_addr, size_t size,
>  	return __arm_ioremap_caller(phys_addr, size, mtype, caller);
>  }
>
> -#ifdef CONFIG_SOC_IMX31
> -static struct map_desc mx31_io_desc[] __initdata = {
> -	imx_map_entry(MX31, X_MEMC, MT_DEVICE),
> -	imx_map_entry(MX31, AVIC, MT_DEVICE_NONSHARED),
> -	imx_map_entry(MX31, AIPS1, MT_DEVICE_NONSHARED),
> -	imx_map_entry(MX31, AIPS2, MT_DEVICE_NONSHARED),
> -	imx_map_entry(MX31, SPBA0, MT_DEVICE_NONSHARED),
> -};
> -
> -/*
> - * This function initializes the memory map. It is called during the
> - * system startup to create static physical to virtual memory mappings
> - * for the IO modules.
> - */
> -void __init mx31_map_io(void)
> -{
> -	iotable_init(mx31_io_desc, ARRAY_SIZE(mx31_io_desc));
> -}
> -
> -static void imx31_idle(void)
> -{
> -	int reg = imx_readl(mx3_ccm_base + MXC_CCM_CCMR);
> -	reg &= ~MXC_CCM_CCMR_LPM_MASK;
> -	imx_writel(reg, mx3_ccm_base + MXC_CCM_CCMR);
> -
> -	imx3_idle();
> -}
> -
> -void __init imx31_init_early(void)
> -{
> -	struct device_node *np;
> -
> -	mxc_set_cpu_type(MXC_CPU_MX31);
> -	arch_ioremap_caller = imx3_ioremap_caller;
> -	arm_pm_idle = imx31_idle;
> -	np = of_find_compatible_node(NULL, NULL, "fsl,imx31-ccm");
> -	mx3_ccm_base = of_iomap(np, 0);
> -	of_node_put(np);
> -	BUG_ON(!mx3_ccm_base);
> -}
> -#endif /* ifdef CONFIG_SOC_IMX31 */
> -
> -#ifdef CONFIG_SOC_IMX35
>  static struct map_desc mx35_io_desc[] __initdata = {
>  	imx_map_entry(MX35, X_MEMC, MT_DEVICE),
>  	imx_map_entry(MX35, AVIC, MT_DEVICE_NONSHARED),
> @@ -147,4 +104,3 @@ void __init imx35_init_early(void)
>  	of_node_put(np);
>  	BUG_ON(!mx3_ccm_base);
>  }
> -#endif /* ifdef CONFIG_SOC_IMX35 */
> --
> 2.53.0
>
>


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

* Re: [PATCH 08/13] ARM: imx: remove nommu support
  2026-09-09 20:21   ` Fabio Estevam
  2026-09-10 13:08     ` Jesse T
@ 2026-09-10 16:08     ` Giulio Benetti
  1 sibling, 0 replies; 49+ messages in thread
From: Giulio Benetti @ 2026-09-10 16:08 UTC (permalink / raw)
  To: Fabio Estevam, Arnd Bergmann, Jesse Taube
  Cc: Krzysztof Kozlowski, Alexandre Belloni, Linus Walleij,
	Russell King, Drew Fustini, Arnd Bergmann, Rob Herring,
	Conor Dooley, Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi,
	Frank Li, Sascha Hauer, Pengutronix Kernel Team,
	Vladimir Zapolskiy, Stefan Agner, Maxime Coquelin,
	Alexandre Torgue, Aaro Koskinen, Andreas Kemnade, Kevin Hilman,
	Roger Quadros, Tony Lindgren, Nicolas Ferre, Claudiu Beznea,
	Andrew Lunn, Sebastian Hesselbarth, Gregory Clement,
	Robert Jarzmik, Kristoffer Ericson, Ethan Nelson-Moore,
	Geert Uytterhoeven, Alexander Sverdlin, Shawn Guo,
	Karl Mehltretter, David Hildenbrand (Arm), Nicolas Pitre,
	linux-doc, linux-kernel, linux-arm-kernel, devicetree, imx,
	linux-stm32, linux-omap, Krzysztof Kozlowski

Hi Fabio, Arnd and Jesse,

On 9/9/26 10:21 PM, Fabio Estevam wrote:
> On Tue, Sep 8, 2026 at 12:29 PM Arnd Bergmann <arnd@kernel.org> wrote:
>>
>> From: Arnd Bergmann <arnd@arndb.de>
>>
>> The i.MX platform has grown support for three separate product
>> lines using Cortex-M based microcontrollers over the years:
>>
>>   - i.MX RT1050, a high-end microcontroller
>>   - Vybrid vf610 suppors running Linux on either the Cortex-A5
>>     CPU or the Cortex-M4 MCU
>>   - i.MX7D similarly can run Linux on the Cortex-A7 or the
>>     Cortex-M4
>>
>> There are no known upstream users of any of those three, so
>> drop support and simplify the platform to assume that an MMU
>> is present.
>>
>> Cc: Frank Li <Frank.Li@nxp.com>
>> Cc: Sascha Hauer <s.hauer@pengutronix.de>
>> Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
>> Cc: Fabio Estevam <festevam@gmail.com>
>> Cc: Stefan Agner <stefan@agner.ch>
>> Cc: Rob Herring <robh@kernel.org>
>> Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
>> Cc: Conor Dooley <conor+dt@kernel.org>
>> Cc: Vladimir Zapolskiy <vz@mleia.com>
>> Cc: Giulio Benetti <giulio.benetti@benettiengineering.com>
>> Cc: devicetree@vger.kernel.org
>> Cc: imx@lists.linux.dev
>> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
>> ---
>>   arch/arm/boot/dts/nxp/imx/Makefile            |    2 -
>>   arch/arm/boot/dts/nxp/imx/imxrt1050-evk.dts   |   72 -
>>   arch/arm/boot/dts/nxp/imx/imxrt1050-pinfunc.h |  993 -----------
>>   arch/arm/boot/dts/nxp/imx/imxrt1050.dtsi      |  160 --
>>   arch/arm/boot/dts/nxp/imx/imxrt1170-pinfunc.h | 1561 -----------------
>>   arch/arm/boot/dts/nxp/vf/Makefile             |    2 -
>>   arch/arm/boot/dts/nxp/vf/vf610m4-colibri.dts  |   61 -
>>   arch/arm/boot/dts/nxp/vf/vf610m4-cosmic.dts   |   88 -
>>   arch/arm/boot/dts/nxp/vf/vf610m4.dtsi         |   61 -
>>   arch/arm/configs/imxrt_defconfig              |   35 -
>>   arch/arm/configs/vf610m4_defconfig            |   39 -
>>   arch/arm/mach-imx/Kconfig                     |   27 +-
>>   arch/arm/mach-imx/Makefile                    |    3 -
>>   arch/arm/mach-imx/mach-imx7d-cm4.c            |   18 -
>>   arch/arm/mach-imx/mach-imxrt.c                |   19 -
> 
> The imxrt1050-evk dts is used in U-Boot.
> 
> Adding Jesse and Giulio, who use this platform in U-Boot.

MMU-less architecture never had a complete support, I agree that it's
time to drop it so:
Acked-by: Giulio Benetti <giulio.benetti@benettiengineering.com>

Best regards
Giulio Benetti


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

* Re: [PATCH 10/13] ARM: stm32: remove stm32f4/f7/h7 MCU support
       [not found] ` <20260908152808.3928630-11-arnd@kernel.org>
  2026-09-08 17:36   ` [PATCH 10/13] ARM: stm32: remove stm32f4/f7/h7 MCU support Linus Walleij
@ 2026-09-11 15:46   ` Alexandre TORGUE
  1 sibling, 0 replies; 49+ messages in thread
From: Alexandre TORGUE @ 2026-09-11 15:46 UTC (permalink / raw)
  To: Arnd Bergmann, Krzysztof Kozlowski, Alexandre Belloni,
	Linus Walleij, Russell King
  Cc: Drew Fustini, Arnd Bergmann, Rob Herring, Conor Dooley,
	Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi, Frank Li,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Vladimir Zapolskiy, Stefan Agner, Maxime Coquelin, Aaro Koskinen,
	Andreas Kemnade, Kevin Hilman, Roger Quadros, Tony Lindgren,
	Nicolas Ferre, Claudiu Beznea, Andrew Lunn, Sebastian Hesselbarth,
	Gregory Clement, Robert Jarzmik, Kristoffer Ericson,
	Ethan Nelson-Moore, Geert Uytterhoeven, Alexander Sverdlin,
	Shawn Guo, Karl Mehltretter, David Hildenbrand (Arm),
	Nicolas Pitre, linux-doc, linux-kernel, linux-arm-kernel,
	devicetree, imx, linux-stm32, linux-omap, Krzysztof Kozlowski,
	Christophe Parant, Benjamin Gaignard, Dario Binacchi

Hi Arnd

On 9/8/26 17:28, Arnd Bergmann wrote:
 > From: Arnd Bergmann <arnd@arndb.de>
 >
 > The stm32 platform started out as a Cortex-M based microcontoller
 > platform in 2007, with a few of the older products gaining Linux kernel
 > support in 2016. These days, the only relevant chips for Linux are the
 > stm32mp1 (Cortex-A7) and stm32mp2 (Cortex-A35) product lines, with the
 > microcontrollers running smaller RTOSs on new products.
 >
 > The microcontrollers were marked as deprecated in the linux-7.3LTS
 > release, which will remain supported for a few more years and
 > is expected to be sufficient for any of the remaining original users.
 >
 > Remove the MCU support now, leaving only the stm32mp SoCs in the platform.
 >
 > Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>
 > Cc: Alexandre Torgue <alexandre.torgue@foss.st.com>
 > Cc: Rob Herring <robh@kernel.org>
 > Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
 > Cc: Conor Dooley <conor+dt@kernel.org>
 > Cc: Christophe Parant <c.parant@phytec.fr>
 > Cc: Benjamin Gaignard <benjamin.gaignard@collabora.com>
 > Cc: Dario Binacchi <dario.binacchi@amarulasolutions.com>
 > Cc: devicetree@vger.kernel.org
 > Cc: linux-stm32@st-md-mailman.stormreply.com
 > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
 > ---
 >   Documentation/arch/arm/index.rst              |   5 -
 >   Documentation/arch/arm/stm32/overview.rst     |   8 +-
 >   .../arch/arm/stm32/stm32f429-overview.rst     |  25 -
 >   .../arch/arm/stm32/stm32f746-overview.rst     |  32 -
 >   .../arch/arm/stm32/stm32f769-overview.rst     |  34 -
 >   .../arch/arm/stm32/stm32h743-overview.rst     |  33 -
 >   .../arch/arm/stm32/stm32h750-overview.rst     |  34 -
 >   arch/arm/Kconfig.debug                        |  38 -
 >   arch/arm/boot/dts/st/Makefile                 |  11 -
 >   arch/arm/boot/dts/st/stm32429i-eval.dts       | 349 --------
 >   arch/arm/boot/dts/st/stm32746g-eval.dts       | 236 ------
 >   arch/arm/boot/dts/st/stm32f4-pinctrl.dtsi     | 482 -----------
 >   arch/arm/boot/dts/st/stm32f429-disco.dts      | 243 ------
 >   arch/arm/boot/dts/st/stm32f429-pinctrl.dtsi   |  91 --
 >   arch/arm/boot/dts/st/stm32f429.dtsi           | 800 ------------------
 >   arch/arm/boot/dts/st/stm32f469-disco.dts      | 260 ------
 >   arch/arm/boot/dts/st/stm32f469-pinctrl.dtsi   |  92 --
 >   arch/arm/boot/dts/st/stm32f469.dtsi           |  18 -
 >   arch/arm/boot/dts/st/stm32f7-pinctrl.dtsi     | 436 ----------
 >   arch/arm/boot/dts/st/stm32f746-disco.dts      | 234 -----
 >   arch/arm/boot/dts/st/stm32f746-pinctrl.dtsi   |  55 --
 >   arch/arm/boot/dts/st/stm32f746.dtsi           | 727 ----------------
 >   .../dts/st/stm32f769-disco-mb1166-reva09.dts  |  13 -
 >   arch/arm/boot/dts/st/stm32f769-disco.dts      | 243 ------
 >   arch/arm/boot/dts/st/stm32f769-pinctrl.dtsi   |  55 --
 >   arch/arm/boot/dts/st/stm32f769.dtsi           |  37 -
 >   arch/arm/boot/dts/st/stm32h7-pinctrl.dtsi     | 301 -------
 >   arch/arm/boot/dts/st/stm32h743.dtsi           | 738 ----------------
 >   arch/arm/boot/dts/st/stm32h743i-disco.dts     | 145 ----
 >   arch/arm/boot/dts/st/stm32h743i-eval.dts      | 185 ----
 >   arch/arm/boot/dts/st/stm32h747i-disco.dts     | 149 ----
 >   arch/arm/boot/dts/st/stm32h750.dtsi           |   6 -
 >   arch/arm/boot/dts/st/stm32h750i-art-pi.dts    | 229 -----
 >   arch/arm/configs/stm32_defconfig              |  80 --
 >   arch/arm/mach-stm32/Kconfig                   |  38 +-
 >   arch/arm/mach-stm32/board-dt.c                |   7 -
 >   36 files changed, 7 insertions(+), 6462 deletions(-)
 >   delete mode 100644 Documentation/arch/arm/stm32/stm32f429-overview.rst
 >   delete mode 100644 Documentation/arch/arm/stm32/stm32f746-overview.rst
 >   delete mode 100644 Documentation/arch/arm/stm32/stm32f769-overview.rst
 >   delete mode 100644 Documentation/arch/arm/stm32/stm32h743-overview.rst
 >   delete mode 100644 Documentation/arch/arm/stm32/stm32h750-overview.rst
 >   delete mode 100644 arch/arm/boot/dts/st/stm32429i-eval.dts
 >   delete mode 100644 arch/arm/boot/dts/st/stm32746g-eval.dts
 >   delete mode 100644 arch/arm/boot/dts/st/stm32f4-pinctrl.dtsi
 >   delete mode 100644 arch/arm/boot/dts/st/stm32f429-disco.dts
 >   delete mode 100644 arch/arm/boot/dts/st/stm32f429-pinctrl.dtsi
 >   delete mode 100644 arch/arm/boot/dts/st/stm32f429.dtsi
 >   delete mode 100644 arch/arm/boot/dts/st/stm32f469-disco.dts
 >   delete mode 100644 arch/arm/boot/dts/st/stm32f469-pinctrl.dtsi
 >   delete mode 100644 arch/arm/boot/dts/st/stm32f469.dtsi
 >   delete mode 100644 arch/arm/boot/dts/st/stm32f7-pinctrl.dtsi
 >   delete mode 100644 arch/arm/boot/dts/st/stm32f746-disco.dts
 >   delete mode 100644 arch/arm/boot/dts/st/stm32f746-pinctrl.dtsi
 >   delete mode 100644 arch/arm/boot/dts/st/stm32f746.dtsi
 >   delete mode 100644 arch/arm/boot/dts/st/stm32f769-disco-mb1166-reva09.dts
 >   delete mode 100644 arch/arm/boot/dts/st/stm32f769-disco.dts
 >   delete mode 100644 arch/arm/boot/dts/st/stm32f769-pinctrl.dtsi
 >   delete mode 100644 arch/arm/boot/dts/st/stm32f769.dtsi
 >   delete mode 100644 arch/arm/boot/dts/st/stm32h7-pinctrl.dtsi
 >   delete mode 100644 arch/arm/boot/dts/st/stm32h743.dtsi
 >   delete mode 100644 arch/arm/boot/dts/st/stm32h743i-disco.dts
 >   delete mode 100644 arch/arm/boot/dts/st/stm32h743i-eval.dts
 >   delete mode 100644 arch/arm/boot/dts/st/stm32h747i-disco.dts
 >   delete mode 100644 arch/arm/boot/dts/st/stm32h750.dtsi
 >   delete mode 100644 arch/arm/boot/dts/st/stm32h750i-art-pi.dts

Acked-by: Alexandre Torgue <alexandre.torgue@foss.st.com>



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

end of thread, other threads:[~2026-09-11 15:47 UTC | newest]

Thread overview: 49+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-08 15:27 [PATCH 00/13] ARM: deprecated platform removal Arnd Bergmann
2026-09-08 15:27 ` [PATCH 02/13] ARM: remove footbridge Arnd Bergmann
2026-09-08 17:27   ` Linus Walleij
2026-09-09 15:09     ` Ralph Siemsen
2026-09-08 15:27 ` [PATCH 07/13] ARM: imx: remove i.MX31 SoC support Arnd Bergmann
2026-09-09  8:24   ` Vladimir Zapolskiy
2026-09-09  8:26   ` Daniel Baluta
2026-09-10 15:11   ` Frank Li
2026-09-08 15:27 ` [PATCH 09/13] ARM: lpc18xx: remove entire platform Arnd Bergmann
2026-09-08 17:36   ` Linus Walleij
2026-09-09  8:28   ` Vladimir Zapolskiy
2026-09-08 15:28 ` [PATCH 11/13] ARM: versatile: remove mps2 support Arnd Bergmann
2026-09-08 15:41   ` Vladimir Murzin
2026-09-08 17:37   ` Linus Walleij
2026-09-08 19:49   ` Sudeep Holla
2026-09-08 19:51     ` Arnd Bergmann
2026-09-08 19:58       ` Sudeep Holla
2026-09-08 19:54     ` Sudeep Holla
2026-09-08 15:28 ` [PATCH 12/13] ARM: at91: remove samv7 support Arnd Bergmann
2026-09-08 17:39   ` Linus Walleij
2026-09-08 19:58   ` Sverdlin, Alexander
2026-09-08 21:09   ` Rob Herring
2026-09-08 21:30     ` Arnd Bergmann
2026-09-10 12:25       ` Nicolas Ferre
2026-09-09 12:41   ` Alexandre Belloni
2026-09-10 12:23   ` Nicolas Ferre
2026-09-08 15:28 ` [PATCH 13/13] ARM: axxia: remove entire platform Arnd Bergmann
2026-09-08 17:40   ` Linus Walleij
2026-09-08 18:23   ` Krzysztof Kozlowski
2026-09-08 20:02   ` Sverdlin, Alexander
     [not found] ` <20260908152808.3928630-2-arnd@kernel.org>
2026-09-08 16:26   ` [PATCH 01/13] ARM: remove sa1100 platform Guenter Roeck
2026-09-08 17:23   ` Linus Walleij
2026-09-08 19:39   ` Karl Mehltretter
2026-09-08 20:09     ` Arnd Bergmann
     [not found]   ` <ccd58677-5e25-1f9f-2bb4-d1770fce8ac4@fluxnic.net>
2026-09-08 21:26     ` David Laight
2026-09-08 21:32     ` Arnd Bergmann
2026-09-08 16:53 ` [PATCH 00/13] ARM: deprecated platform removal Randy Dunlap
2026-09-08 16:56   ` Randy Dunlap
2026-09-08 18:33   ` Arnd Bergmann
2026-09-08 18:39     ` Randy Dunlap
     [not found] ` <20260908152808.3928630-5-arnd@kernel.org>
2026-09-08 17:30   ` [PATCH 04/13] ARM: remove legacy pxa board files Linus Walleij
     [not found] ` <20260908152808.3928630-4-arnd@kernel.org>
2026-09-09 16:42   ` [PATCH 03/13] ARM: remove riscpc Bart Van Assche
2026-09-09 20:09     ` Arnd Bergmann
     [not found] ` <20260908152808.3928630-9-arnd@kernel.org>
2026-09-09 20:17   ` [PATCH 08/13] ARM: imx: remove nommu support Fabio Estevam
2026-09-09 20:21   ` Fabio Estevam
2026-09-10 13:08     ` Jesse T
2026-09-10 16:08     ` Giulio Benetti
     [not found] ` <20260908152808.3928630-11-arnd@kernel.org>
2026-09-08 17:36   ` [PATCH 10/13] ARM: stm32: remove stm32f4/f7/h7 MCU support Linus Walleij
2026-09-11 15:46   ` Alexandre TORGUE

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