From patchwork Fri Apr 19 20:01:36 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Linus Walleij X-Patchwork-Id: 1088191 Return-Path: X-Original-To: incoming-imx@patchwork.ozlabs.org Delivered-To: patchwork-incoming-imx@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.infradead.org (client-ip=2607:7c80:54:e::133; helo=bombadil.infradead.org; envelope-from=linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="MHpTrN+f"; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="UU1ewG4M"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:e::133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 44m6Lv4wrqz9s5c for ; Sat, 20 Apr 2019 06:01:57 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:To:Subject:Message-ID:Date:From: MIME-Version:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=cCRvqyq0ONLyoLvNMhdGST51wlH3Ng5e2yvn9G1M5bA=; b=MHpTrN+fISmPKl aJcTDR13ruzBipnz50+z2sTEjKRjT/VpJHziCVIiYvchvYWqDhcEimIv05AEUgCznlsdrKw7cN6c+ +w74Rtu5UST0dYQNV9Orii8JsDq/9BIiy4vAruTqpfCoRVYifCBqYkwdSv5EFDLR2qZPWrWaYSq+y dYirVDxBDxl1IYVCo4odY47TrKbb6UBRxTlMt+92Gzv8+4MpheErGfl88N9Uv0jfsEYNLp3I5kiM2 nKgzDKHV5QbHZJngRChP5QSD0OSubLr//0u4VMVvZZvvNV3579blJcD0/O8xxHK75pTf8876NgGR7 kuqjEpFLviFMEW2m0QVg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1hHZhp-0000oQ-99; Fri, 19 Apr 2019 20:01:53 +0000 Received: from mail-qk1-x744.google.com ([2607:f8b0:4864:20::744]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1hHZhm-0000nt-0Y for linux-arm-kernel@lists.infradead.org; Fri, 19 Apr 2019 20:01:51 +0000 Received: by mail-qk1-x744.google.com with SMTP id g1so3456028qki.5 for ; Fri, 19 Apr 2019 13:01:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:from:date:message-id:subject:to:cc; bh=OrVI2qmP3guFB/caszdLSWAZAArNyS3H6GABKvsN8FE=; b=UU1ewG4MD2cU+3P3MzLKeIm7hmtF4fO//u8SokigCBHu18DholMsD/0m0htZ8vAURF 5rtYBoMTarHjbCn/ySDIGmr9J+X9WLWBn/zjAaEow1WkqjMSv3Too8EaDCeZ44oHR8UP /1jhvy+CZXJd0A7QpBvrQ/TOHaHNWrlm1Ocks9EyCYPGETcIiTOyyzybWIUYwfU6Gq4C 5wcoThQSWErffH6arXk/am/1w+ZtXPOuwWEQsO+9oOhs/GsGsB58dxVoyi6QoKUyN4jQ AZwkI0fHyBiubd0BCsXWy+9LvnatYGPEH9IKsYCzFW3BiNZwzDqx9poJAp+EucFc2dRI cx4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=OrVI2qmP3guFB/caszdLSWAZAArNyS3H6GABKvsN8FE=; b=FUONBxb9AgYMazmJIBV79ULnIgf2yG0+kGox8Eefj7pyWvv0kPzB+gwydZuYb6e9zA A8MfiOIlMBoCzztT40UKHylF/FiyTwGrhZaECmFoj211mXj0fgF419vBXI1HUqHzDZ89 Qzh8bwbCF+JpJSM8nUWCLN0hFpq2KWLeg1snTR4pDwMcz/tG+hTB944S5ZjcL2dWuiWB zmSTcN4dHnERjJXPXOWirZUIXZF4S5n4qd46rKQUWso9sDOJVgOcTum4RlkZjzRMVGic 9Cn9a20WzaekT+zflvpnSH4K9YMhQQiLzmfQlh1cFDZg3ox1uMD8KS9iGhqyvaAURTwD NrAQ== X-Gm-Message-State: APjAAAVnj7vfSJRqN0YTpyA21gaFx8lSyXSaigFR7b1ihAhxNiA4Y2O/ EbsiImODC9V7iS+Lp5RxBqzLvblsNOBZNQI4n85eSw== X-Google-Smtp-Source: APXvYqzC9t50dR32ow87tJeNms20yL9Fg6P2pxHfeNKQjbg3VXO+CJ+rfDy3FwDOUjzLoZqKl/YI66Cm6lK2wCcPvkQ= X-Received: by 2002:a05:620a:1527:: with SMTP id n7mr4658027qkk.224.1555704107611; Fri, 19 Apr 2019 13:01:47 -0700 (PDT) MIME-Version: 1.0 From: Linus Walleij Date: Fri, 19 Apr 2019 22:01:36 +0200 Message-ID: Subject: [GIT PULL] IXP4xx modernization, step 1 To: arm-soc X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190419_130150_062374_F37CD498 X-CRM114-Status: GOOD ( 18.26 ) X-Spam-Score: -0.2 (/) X-Spam-Report: SpamAssassin version 3.4.2 on bombadil.infradead.org summary: Content analysis details: (-0.2 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2607:f8b0:4864:20:0:0:0:744 listed in] [list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Imre Kaloz , Krzysztof Halasa , Daniel Lezcano , Linux ARM Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org List-Id: linux-imx-kernel.lists.patchwork.ozlabs.org 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