mbox series

[GIT,PULL] IXP4xx modernization, step 1

Message ID CACRpkdaCZrAEG0_-61Wf3RUkVZrwQDY+W567C0sp8nBwBUjktQ@mail.gmail.com
State New
Headers show
Series [GIT,PULL] IXP4xx modernization, step 1 | expand

Pull-request

git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik.git

Message

Linus Walleij April 19, 2019, 8:01 p.m. UTC
Hi Arm SoC folks!

Here is the big pull request for the first step of the much overdue
IXP4xx modernization. As explained earlier this platform has many
active users and specific industrial properties that make it hard
to replace, and thus lives on, and we need to maintain it going
forward.

I can't really wait any longer for more ACKs, and just conclude
noone has any serious objections, certainly not anything I can't fix
up in-tree if need be.

This really needs to go into linux-next now and into v5.2, as all
later modernizations need to have this base to make it possible
to modernize in a per-subsystem manner going forward.

The idea is of course to aim for complete device tree migration
and deletion of board file code and callbacks eventually. Right
now the device tree boot is pretty orthogonal from the board
file boot, once we get PCI sorted we can start deleting some
board files that need little more than what we have here and
PCI.

Please pull it in for v5.2.

Yours,
Linus Walleij

The following changes since commit 9e98c678c2d6ae3a17cb2de55d17f69dddaa231b:

  Linux 5.1-rc1 (2019-03-17 14:22:26 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik.git
tags/ixp4xx-for-armsoc

for you to fetch changes up to 4e3bfcd70f9f3559c8591a1e29140300821eb5b0:

  ARM: dts: Add queue manager and NPE to the IXP4xx DTSI (2019-04-19
20:40:16 +0200)

----------------------------------------------------------------
This modernizes the IXP4xx platform and adds initial Device Tree
Support. We migrate to MULTI_IRQ_HANDLER, bumps the IRQs to
offset 16, converts to SPARSE_IRQ, then we add proper subsystem
drivers in each subsystem for irqchip, GPIO and clocksource and
switch over to using these new drivers.

Next we modernize the NPE and QMGR drivers and push them down
into drivers/soc.

This has been tested on the IXP4xx NSLU2 and the Gateworks
GW2358-4.

----------------------------------------------------------------
Linus Walleij (31):
      ARM: ixp4xx: Add myself as maintainer
      ARM: ixp4xx: Convert to MULTI_IRQ_HANDLER
      ARM: ixp4xx: Pass IRQ resource to beeper
      ARM: ixp4xx: Convert to SPARSE_IRQ
      irqchip: Add driver for IXP4xx
      gpio: ixp4xx: Add driver for the IXP4xx GPIO
      ARM: ixp4xx: Switch to use new IRQ+GPIO drivers
      clocksource/drivers/ixp4xx: Add driver
      ARM: ixp4xx: Switch to use new timer driver
      irqchip: ixp4xx: Add DT bindings
      irqchip: ixp4xx: Add OF initialization support
      clocksource/drivers/ixp4xx: Add DT bindings
      clocksource/drivers/ixp4xx: Add OF initialization support
      gpio: ixp4xx: Add DT bindings
      gpio: ixp4xx: Add OF probing support
      ARM: ixp4xx: Add DT bindings
      ARM: ixp4xx: Add device tree boot support
      ARM: dts: Add some initial IXP4xx device trees
      ARM: ixp4xx: Move NPE and QMGR to drivers/soc
      ARM: ixp4xx: Move IXP4xx QMGR and NPE headers
      ARM: ixp4xx: Turn the NPE into a platform device
      ARM: ixp4xx: Turn the QMGR into a platform device
      soc: ixp4xx: npe: Pass addresses as resources
      soc: ixp4xx: Uninline several functions
      soc: ixp4xx: Remove unused functions
      soc: ixp4xx: qmgr: Pass resources
      soc: ixp4xx: Add DT bindings for IXP4xx NPE
      soc: ixp4xx: npe: Add DT probe code
      soc: ixp4xx: qmgr: Add DT bindings for IXP4xx qmgr
      soc: ixp4xx: qmgr: Add DT probe code
      ARM: dts: Add queue manager and NPE to the IXP4xx DTSI

 .../devicetree/bindings/arm/intel-ixp4xx.yaml      |  22 +
 .../intel,ixp4xx-network-processing-engine.yaml    |  44 ++
 .../intel,ixp4xx-interrupt.yaml                    |  54 +++
 .../bindings/misc/intel,ixp4xx-queue-manager.yaml  |  49 +++
 .../bindings/timer/intel,ixp4xx-timer.yaml         |  42 ++
 MAINTAINERS                                        |  18 +-
 arch/arm/Kconfig                                   |   5 +-
 arch/arm/boot/dts/Makefile                         |   3 +
 arch/arm/boot/dts/intel-ixp42x-linksys-nslu2.dts   | 109 +++++
 arch/arm/boot/dts/intel-ixp42x.dtsi                |  25 ++
 .../arm/boot/dts/intel-ixp43x-gateworks-gw2358.dts |  94 ++++
 arch/arm/boot/dts/intel-ixp43x.dtsi                |  15 +
 arch/arm/boot/dts/intel-ixp45x-ixp46x.dtsi         |  34 ++
 arch/arm/boot/dts/intel-ixp4xx.dtsi                |  69 +++
 arch/arm/mach-ixp4xx/Kconfig                       |  27 +-
 arch/arm/mach-ixp4xx/Makefile                      |   5 +-
 arch/arm/mach-ixp4xx/avila-pci.c                   |   2 +
 arch/arm/mach-ixp4xx/avila-setup.c                 |   2 +
 arch/arm/mach-ixp4xx/common.c                      | 484 ++++-----------------
 arch/arm/mach-ixp4xx/coyote-pci.c                  |   2 +
 arch/arm/mach-ixp4xx/coyote-setup.c                |   2 +
 arch/arm/mach-ixp4xx/dsmg600-pci.c                 |   2 +
 arch/arm/mach-ixp4xx/dsmg600-setup.c               |   5 +-
 arch/arm/mach-ixp4xx/fsg-pci.c                     |   2 +
 arch/arm/mach-ixp4xx/fsg-setup.c                   |   2 +
 arch/arm/mach-ixp4xx/gateway7001-pci.c             |   2 +
 arch/arm/mach-ixp4xx/gateway7001-setup.c           |   2 +
 arch/arm/mach-ixp4xx/gtwx5715-pci.c                |   2 +
 arch/arm/mach-ixp4xx/gtwx5715-setup.c              |   2 +
 arch/arm/mach-ixp4xx/include/mach/entry-macro.S    |  41 --
 arch/arm/mach-ixp4xx/include/mach/irqs.h           |  75 ----
 arch/arm/mach-ixp4xx/include/mach/ixp4xx-regs.h    |  94 ----
 arch/arm/mach-ixp4xx/include/mach/qmgr.h           | 204 ---------
 arch/arm/mach-ixp4xx/irqs.h                        |  68 +++
 arch/arm/mach-ixp4xx/ixdp425-pci.c                 |   2 +
 arch/arm/mach-ixp4xx/ixdp425-setup.c               |   2 +
 arch/arm/mach-ixp4xx/ixdpg425-pci.c                |   2 +
 arch/arm/mach-ixp4xx/ixp4xx-of.c                   |  60 +++
 arch/arm/mach-ixp4xx/nas100d-pci.c                 |   2 +
 arch/arm/mach-ixp4xx/nas100d-setup.c               |   5 +-
 arch/arm/mach-ixp4xx/nslu2-pci.c                   |   2 +
 arch/arm/mach-ixp4xx/nslu2-setup.c                 |  12 +-
 arch/arm/mach-ixp4xx/wg302v2-pci.c                 |   2 +
 arch/arm/mach-ixp4xx/wg302v2-setup.c               |   2 +
 drivers/clocksource/Kconfig                        |   7 +
 drivers/clocksource/Makefile                       |   1 +
 drivers/clocksource/timer-ixp4xx.c                 | 284 ++++++++++++
 drivers/crypto/ixp4xx_crypto.c                     |   4 +-
 drivers/gpio/Kconfig                               |  13 +
 drivers/gpio/Makefile                              |   1 +
 drivers/gpio/gpio-ixp4xx.c                         | 474 ++++++++++++++++++++
 drivers/input/misc/ixp4xx-beeper.c                 |  20 +-
 drivers/irqchip/Kconfig                            |   6 +
 drivers/irqchip/Makefile                           |   1 +
 drivers/irqchip/irq-ixp4xx.c                       | 403 +++++++++++++++++
 drivers/net/ethernet/xscale/ixp4xx_eth.c           |  14 +-
 drivers/net/wan/ixp4xx_hss.c                       |   4 +-
 drivers/soc/Kconfig                                |   1 +
 drivers/soc/Makefile                               |   1 +
 drivers/soc/ixp4xx/Kconfig                         |  16 +
 drivers/soc/ixp4xx/Makefile                        |   2 +
 .../soc/ixp4xx/ixp4xx-npe.c                        |  66 ++-
 .../soc/ixp4xx/ixp4xx-qmgr.c                       | 186 ++++++--
 drivers/watchdog/ixp4xx_wdt.c                      |   9 +
 include/linux/irqchip/irq-ixp4xx.h                 |  12 +
 include/linux/platform_data/timer-ixp4xx.h         |  11 +
 .../mach => include/linux/soc/ixp4xx}/npe.h        |   2 -
 include/linux/soc/ixp4xx/qmgr.h                    |  91 ++++
 68 files changed, 2415 insertions(+), 913 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/arm/intel-ixp4xx.yaml
 create mode 100644
Documentation/devicetree/bindings/firmware/intel,ixp4xx-network-processing-engine.yaml
 create mode 100644
Documentation/devicetree/bindings/interrupt-controller/intel,ixp4xx-interrupt.yaml
 create mode 100644
Documentation/devicetree/bindings/misc/intel,ixp4xx-queue-manager.yaml
 create mode 100644
Documentation/devicetree/bindings/timer/intel,ixp4xx-timer.yaml
 create mode 100644 arch/arm/boot/dts/intel-ixp42x-linksys-nslu2.dts
 create mode 100644 arch/arm/boot/dts/intel-ixp42x.dtsi
 create mode 100644 arch/arm/boot/dts/intel-ixp43x-gateworks-gw2358.dts
 create mode 100644 arch/arm/boot/dts/intel-ixp43x.dtsi
 create mode 100644 arch/arm/boot/dts/intel-ixp45x-ixp46x.dtsi
 create mode 100644 arch/arm/boot/dts/intel-ixp4xx.dtsi
 delete mode 100644 arch/arm/mach-ixp4xx/include/mach/entry-macro.S
 delete mode 100644 arch/arm/mach-ixp4xx/include/mach/irqs.h
 delete mode 100644 arch/arm/mach-ixp4xx/include/mach/qmgr.h
 create mode 100644 arch/arm/mach-ixp4xx/irqs.h
 create mode 100644 arch/arm/mach-ixp4xx/ixp4xx-of.c
 create mode 100644 drivers/clocksource/timer-ixp4xx.c
 create mode 100644 drivers/gpio/gpio-ixp4xx.c
 create mode 100644 drivers/irqchip/irq-ixp4xx.c
 create mode 100644 drivers/soc/ixp4xx/Kconfig
 create mode 100644 drivers/soc/ixp4xx/Makefile
 rename arch/arm/mach-ixp4xx/ixp4xx_npe.c =>
drivers/soc/ixp4xx/ixp4xx-npe.c (94%)
 rename arch/arm/mach-ixp4xx/ixp4xx_qmgr.c =>
drivers/soc/ixp4xx/ixp4xx-qmgr.c (66%)
 create mode 100644 include/linux/irqchip/irq-ixp4xx.h
 create mode 100644 include/linux/platform_data/timer-ixp4xx.h
 rename {arch/arm/mach-ixp4xx/include/mach =>
include/linux/soc/ixp4xx}/npe.h (95%)
 create mode 100644 include/linux/soc/ixp4xx/qmgr.h

Comments

Linus Walleij April 23, 2019, 2:06 p.m. UTC | #1
Hi ARM SoC folks,

the build robot came back with a minor snag after 4 days, so I
fixed the offending commit and pushed an identical tag
with this fixed. (No COMPILE_TEST on the GPIO driver because
it depends on the irqchip that is IXP4xx-specific.)

On Fri, Apr 19, 2019 at 10:01 PM Linus Walleij <linus.walleij@linaro.org> wrote:

>   git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik.git
> tags/ixp4xx-for-armsoc
>
> for you to fetch changes up to 4e3bfcd70f9f3559c8591a1e29140300821eb5b0:

This changes to:

for you to fetch changes up to 1fae0ad1e2032a603f93d4ad752bfa6fe7c9b887:

  ARM: dts: Add queue manager and NPE to the IXP4xx DTSI (2019-04-23
16:02:16 +0200)

It still has my signature and all.

Yours,
Linus Walleij
Olof Johansson April 29, 2019, 6:43 a.m. UTC | #2
On Tue, Apr 23, 2019 at 04:06:54PM +0200, Linus Walleij wrote:
> Hi ARM SoC folks,
> 
> the build robot came back with a minor snag after 4 days, so I
> fixed the offending commit and pushed an identical tag
> with this fixed. (No COMPILE_TEST on the GPIO driver because
> it depends on the irqchip that is IXP4xx-specific.)
> 
> On Fri, Apr 19, 2019 at 10:01 PM Linus Walleij <linus.walleij@linaro.org> wrote:
> 
> >   git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik.git
> > tags/ixp4xx-for-armsoc
> >
> > for you to fetch changes up to 4e3bfcd70f9f3559c8591a1e29140300821eb5b0:
> 
> This changes to:
> 
> for you to fetch changes up to 1fae0ad1e2032a603f93d4ad752bfa6fe7c9b887:
> 
>   ARM: dts: Add queue manager and NPE to the IXP4xx DTSI (2019-04-23
> 16:02:16 +0200)
> 
> It still has my signature and all.

Merged now. Thanks!


-Olof