From patchwork Wed Jul 29 11:02:02 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Grzegorz Jaszczyk X-Patchwork-Id: 11690793 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B0F95138C for ; Wed, 29 Jul 2020 11:04:50 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 89DFE20663 for ; Wed, 29 Jul 2020 11:04:50 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="0Jsi0YGo"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="J4JNa4qv" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 89DFE20663 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:MIME-Version:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:Message-Id:Date:Subject:To:From: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=Gw7KKHC2z3W+9V1I3ZSXI4LaGmCS4utzyEuwGOBhawI=; b=0Jsi0YGoWXWx2MSeTrYQ9Nr7SR HN6HN7S4CGeIZZzC73YniLYyRis+jgQA984fvYvkTnuYv9oJrZvDgc78eZeayS9Pse8Gx+WfXyCos 9W9sLbHuesX/5KKlbdS+tZFv1KxsppXgdmkBUSkf9HPJCT7cyYRh57mVjaDZgaE7X3Vyanp7KHKQP wX/ZnzDJnkW5/4MpiHpxIyl693hQ9kN9s12MzA7304iPaJVP/rqS60DhZP+y5AGMkK4seIyuqA48R 5GoG64MjAtvfGEBLETNBLTRj4ZImKXFpnk24vezRJiHn3dZt3sqJ7q8DkaSzPu88ft3MmR9HqpYbB 1VcbWoyA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1k0jr8-0006ab-UY; Wed, 29 Jul 2020 11:02:42 +0000 Received: from mail-lj1-x242.google.com ([2a00:1450:4864:20::242]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1k0jr4-0006Z2-D4 for linux-arm-kernel@lists.infradead.org; Wed, 29 Jul 2020 11:02:40 +0000 Received: by mail-lj1-x242.google.com with SMTP id f5so24547263ljj.10 for ; Wed, 29 Jul 2020 04:02:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id; bh=1p/nSgtdkS6RT0uc1pBBiZ0bICji/pIROwSE8og0ow8=; b=J4JNa4qv37g5NWhBZaCQ6BSM4/d/4LhSFiar9U4kEG1i2rKPSVsEm+Fi8hKHagbjfY FMmRzv4n5fI1oiRuRrqBAigKBEDKfDpQkmdU1hF5Hb2wrPd0RYLtwZfZcNUDrgR00N28 P0ni9WYCj3H0SkyvzjgPmQ2ZHPfwcdPB/tTwVzD6hjQixcu3B9VhV8Lez5vvBOfV+r17 WADwPsa4XwUOp582XaBFDPXdzqjiES56KhLM0bigcp1sUM2nFMa1Jyf/fWQZvqNoLQMt iA7FBArFOPGLNwrJcCviaqhgISDg+DLIyCKQbZe9IIw+cjncMD0tpFx3WEOnd+tfCV8f Tx/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=1p/nSgtdkS6RT0uc1pBBiZ0bICji/pIROwSE8og0ow8=; b=TgUdUfp/d2DZD1teuF5yXuSyEcouRBqmrtEv6V7tt1M++sGs01YCvj92ecPPYQJyeX 5j4PKmPdpa24bmANWVlRApxV3/UIka1wYsTUDej+Vaab+92E2g9vnjIhmIS6adG8ZlA4 8+6EhQiJ0F74zCKknS+VjqrArdghvM4A392/sMGvu950RQ3P3RdFbaJuIt8H8LxBWHsu CLNmvuqu43EP8FIXE4cFiIiXfSvxAskIP+WKWcmbKErTpu4kCJOKiJHedvJgg2c1sPpT ECRzA6XGwIVMqF1EuO0bLLqG80p29HgFFb/iT3EPQxb/qStW2KLiUBYJ0gzyr3sjH+KB kFFg== X-Gm-Message-State: AOAM533CWCUKz1hehe2Lx8Pf4AHIjPKa5RLMhsNoZizUt0F+ctMe0rE8 xr69Z33gEpIB+Lxlh/8e+Rjrpg== X-Google-Smtp-Source: ABdhPJwS6idbGKr5FM/mOnpu6U7dl2edJHUeJHk5Ns8Mz2Wno5b3USCog8R6LSKoFnKylkncCVQUEw== X-Received: by 2002:a2e:8799:: with SMTP id n25mr14700332lji.416.1596020553627; Wed, 29 Jul 2020 04:02:33 -0700 (PDT) Received: from gilgamesh.semihalf.com (193-106-246-138.noc.fibertech.net.pl. [193.106.246.138]) by smtp.gmail.com with ESMTPSA id e12sm329283ljk.74.2020.07.29.04.02.32 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 29 Jul 2020 04:02:33 -0700 (PDT) From: Grzegorz Jaszczyk To: ssantosh@kernel.org, s-anna@ti.com Subject: [PATCH 0/6] Add TI PRUSS platform driver Date: Wed, 29 Jul 2020 13:02:02 +0200 Message-Id: <1596020528-19510-1-git-send-email-grzegorz.jaszczyk@linaro.org> X-Mailer: git-send-email 2.7.4 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200729_070239_050403_353B05F1 X-CRM114-Status: GOOD ( 15.84 ) X-Spam-Score: -0.2 (/) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.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 [2a00:1450:4864:20:0:0:0:242 listed in] [list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, grzegorz.jaszczyk@linaro.org, praneeth@ti.com, santosh.shilimkar@oracle.com, linux-kernel@vger.kernel.org, robh+dt@kernel.org, linux-omap@vger.kernel.org, lee.jones@linaro.org, wmills@ti.com, linux-arm-kernel@lists.infradead.org MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org Hi, The Programmable Real-Time Unit and Industrial Communication Subsystem (PRU-ICSS) is present on various TI SoCs. The IP is present on multiple TI SoC architecture families including the OMAP architecture SoCs such as AM33xx, AM437x and AM57xx; and on a Keystone 2 architecture based 66AK2G SoC. It is also present on the Davinci based OMAPL138 SoCs and K3 architecture based AM65x and J721E SoCs as well. A PRUSS consists of dual 32-bit RISC cores (Programmable Real-Time Units, or PRUs), shared RAM, data and instruction RAMs, some internal peripheral modules to facilitate industrial communication, and an interrupt controller. The programmable nature of the PRUs provide flexibility to implement custom peripheral interfaces, fast real-time responses, or specialized data handling. The common peripheral modules include the following, - an Ethernet MII_RT module with two MII ports - an MDIO port to control external Ethernet PHYs - an Industrial Ethernet Peripheral (IEP) to manage/generate Industrial Ethernet functions - an Enhanced Capture Module (eCAP) - an Industrial Ethernet Timer with 7/9 capture and 16 compare events - a 16550-compatible UART to support PROFIBUS - Enhanced GPIO with async capture and serial support A typical usage scenario would be to load the application firmware into one or more of the PRU cores, initialize one or more of the peripherals and perform I/O through shared RAM from either a kernel driver or directly from userspace. This series contains the PRUSS platform driver. This is the parent driver for the entire PRUSS and is used for managing the subsystem level resources like various memories and the CFG module. It is responsible for the creation and deletion of the platform devices for the child PRU devices and other child devices (like Interrupt Controller, MDIO node and some syscon nodes) so that they can be managed by specific platform drivers. Grzegorz Jaszczyk (1): dt-bindings: soc: ti: Add TI PRUSS bindings Suman Anna (5): soc: ti: pruss: Add a platform driver for PRUSS in TI SoCs soc: ti: pruss: Add support for PRU-ICSSs on AM437x SoCs soc: ti: pruss: Add support for PRU-ICSS subsystems on AM57xx SoCs soc: ti: pruss: Add support for PRU-ICSS subsystems on 66AK2G SoC soc: ti: pruss: enable support for ICSSG subsystems on K3 AM65x SoCs .../devicetree/bindings/soc/ti/ti,pruss.yaml | 383 +++++++++++++++++++++ drivers/soc/ti/Kconfig | 11 + drivers/soc/ti/Makefile | 1 + drivers/soc/ti/pruss.c | 183 ++++++++++ include/linux/pruss_driver.h | 48 +++ 5 files changed, 626 insertions(+) create mode 100644 Documentation/devicetree/bindings/soc/ti/ti,pruss.yaml create mode 100644 drivers/soc/ti/pruss.c create mode 100644 include/linux/pruss_driver.h