From patchwork Sun May 15 20:20:22 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Wahren X-Patchwork-Id: 572854 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 67A3FC433FE for ; Sun, 15 May 2022 20:21:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233033AbiEOUVj (ORCPT ); Sun, 15 May 2022 16:21:39 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55152 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229824AbiEOUVh (ORCPT ); Sun, 15 May 2022 16:21:37 -0400 Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.126.130]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 26E8D1EAF1 for ; Sun, 15 May 2022 13:21:35 -0700 (PDT) Received: from localhost.localdomain ([37.4.249.94]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.167]) with ESMTPSA (Nemesis) id 1Mn2Jj-1nRQ6b1e8V-00kBkK; Sun, 15 May 2022 22:21:18 +0200 From: Stefan Wahren To: Florian Fainelli , Ray Jui , Scott Branden , Nicolas Saenz Julienne , Lee Jones Cc: Peter Robinson , Melissa Wen , Phil Elwell , bcm-kernel-feedback-list@broadcom.com, Maxime Ripard , devicetree@vger.kernel.org, linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org, Nicolas Saenz Julienne , Rob Herring , Stefan Wahren Subject: [PATCH 01/11] dt-bindings: soc: bcm: bcm2835-pm: Convert bindings to DT schema Date: Sun, 15 May 2022 22:20:22 +0200 Message-Id: <20220515202032.3046-2-stefan.wahren@i2se.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220515202032.3046-1-stefan.wahren@i2se.com> References: <20220515202032.3046-1-stefan.wahren@i2se.com> MIME-Version: 1.0 X-Provags-ID: V03:K1:c7pGFENzAqMSCqN7MGXhkFOqceYQpzp1FDFxXFmlbRkX0WJuLVR qcx6ZWICXAURR6xq0e3VFto5fdnepYtfRBywg5pnESppn30Q9UvHo7x8yhkWTKFA5lT8ffq ZTG3rSiwthIl9lhh+V5AwVLftqrdvy1jJyAWh7WThaRKekP6TU+iN+qD/XA5JkTcPSZ2B/i pSxmNhnoM2Fi1bivPQUEg== X-UI-Out-Filterresults: notjunk:1;V03:K0:wSCxaowmMu0=:n2eFcECYIstpec0LUxz/aO wY8YORyMKu+IeVSWbaSJb+3p+BAUZkwe7wLRgG/9/rZEfC2opv6a8dHa8yF0ZAT4OWaLwNhf8 QiGV5be/3yiLwNhjAdLiXrZtBSO7usjXJoGkdfOltAXUFrW5oBBIsIfWwPZ7u++8c0LGURNY4 zPHufTolluKi1oxpgM0Hsl/73usVK0JpUp1LEnLN19O2F+WIzRpcwtD8jwg/4C7y4LGtZ2nd1 FaMgP3Bsi4OmLGZFE8B4GezfMP7MPSTy9p3yA5wk3aUJshhDwwMATeiBOehoZr3WjzaJKneDk aiC+WF+Zj3/oIANYzfeMQEMH5rI4L9ioY0iDRNScaJ1a9gK0O3IFiXCNUBxYcr+KlAu8SweB1 Ex9r4XHw5zhUJEl/XAj5ZkxL1ZS42SFyQEt/4FBr4d7tzg3ZvYViaKpklENaTpR/X5ceie8S6 0ObbyDcmqj9sgRB68T2I33qFOcJoiEdNM4is0mk3OPOBR4wS0ib0XUXgn3SSv7RQBxDaWFmfL MeI3jvfBHCX9KhFE11NLVnqKJFqGQEihUlzogHrz8QD9LZW5y61QB/oc0ymj2j+jaJsbdlgek o967DAbyVMOScuWxKp5oAnF4vliGQV8hQs5h2hbt+fUIaSw618p004zD5Ms+Gd0mxj4NADVLC REHYkxMfzHtsMyDanBBpLwcYMMK2VMPmBKoIUsgmR8PjQl0nhm0EMGyxLqr7Dr+igvxbwzXQU sri93uiw021KfwDR Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org From: Nicolas Saenz Julienne This converts the brcm,bcm2835-pm bindings from text to proper schema. Signed-off-by: Nicolas Saenz Julienne Reviewed-by: Rob Herring Signed-off-by: Stefan Wahren --- .../bindings/soc/bcm/brcm,bcm2835-pm.txt | 46 ----------- .../bindings/soc/bcm/brcm,bcm2835-pm.yaml | 77 +++++++++++++++++++ 2 files changed, 77 insertions(+), 46 deletions(-) delete mode 100644 Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-pm.txt create mode 100644 Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-pm.yaml diff --git a/Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-pm.txt b/Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-pm.txt deleted file mode 100644 index 72ff033565e5..000000000000 --- a/Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-pm.txt +++ /dev/null @@ -1,46 +0,0 @@ -BCM2835 PM (Power domains, watchdog) - -The PM block controls power domains and some reset lines, and includes -a watchdog timer. This binding supersedes the brcm,bcm2835-pm-wdt -binding which covered some of PM's register range and functionality. - -Required properties: - -- compatible: Should be "brcm,bcm2835-pm" -- reg: Specifies base physical address and size of the two - register ranges ("PM" and "ASYNC_BRIDGE" in that - order) -- clocks: a) v3d: The V3D clock from CPRMAN - b) peri_image: The PERI_IMAGE clock from CPRMAN - c) h264: The H264 clock from CPRMAN - d) isp: The ISP clock from CPRMAN -- #reset-cells: Should be 1. This property follows the reset controller - bindings[1]. -- #power-domain-cells: Should be 1. This property follows the power domain - bindings[2]. - -Optional properties: - -- timeout-sec: Contains the watchdog timeout in seconds -- system-power-controller: Whether the watchdog is controlling the - system power. This node follows the power controller bindings[3]. - -[1] Documentation/devicetree/bindings/reset/reset.txt -[2] Documentation/devicetree/bindings/power/power-domain.yaml -[3] Documentation/devicetree/bindings/power/power-controller.txt - -Example: - -pm { - compatible = "brcm,bcm2835-pm", "brcm,bcm2835-pm-wdt"; - #power-domain-cells = <1>; - #reset-cells = <1>; - reg = <0x7e100000 0x114>, - <0x7e00a000 0x24>; - clocks = <&clocks BCM2835_CLOCK_V3D>, - <&clocks BCM2835_CLOCK_PERI_IMAGE>, - <&clocks BCM2835_CLOCK_H264>, - <&clocks BCM2835_CLOCK_ISP>; - clock-names = "v3d", "peri_image", "h264", "isp"; - system-power-controller; -}; diff --git a/Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-pm.yaml b/Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-pm.yaml new file mode 100644 index 000000000000..5d1ff0f6c8ce --- /dev/null +++ b/Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-pm.yaml @@ -0,0 +1,77 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: "http://devicetree.org/schemas/soc/bcm/brcm,bcm2835-pm.yaml#" +$schema: "http://devicetree.org/meta-schemas/core.yaml#" + +title: BCM2835 PM (Power domains, watchdog) + +description: | + The PM block controls power domains and some reset lines, and includes a + watchdog timer. + +maintainers: + - Nicolas Saenz Julienne + +allOf: + - $ref: ../../watchdog/watchdog.yaml# + +properties: + compatible: + items: + - const: brcm,bcm2835-pm + - const: brcm,bcm2835-pm-wdt + + reg: + items: + - description: PM registers + - description: ASB registers + + "#power-domain-cells": + const: 1 + + "#reset-cells": + const: 1 + + clocks: + minItems: 4 + maxItems: 4 + + clock-names: + items: + - const: v3d + - const: peri_image + - const: h264 + - const: isp + + system-power-controller: + type: boolean + + timeout-sec: true + +required: + - compatible + - reg + - "#power-domain-cells" + - "#reset-cells" + - clocks + +additionalProperties: false + +examples: + - | + #include + + watchdog@7e100000 { + compatible = "brcm,bcm2835-pm", "brcm,bcm2835-pm-wdt"; + #power-domain-cells = <1>; + #reset-cells = <1>; + reg = <0x7e100000 0x114>, + <0x7e00a000 0x24>; + clocks = <&clocks BCM2835_CLOCK_V3D>, + <&clocks BCM2835_CLOCK_PERI_IMAGE>, + <&clocks BCM2835_CLOCK_H264>, + <&clocks BCM2835_CLOCK_ISP>; + clock-names = "v3d", "peri_image", "h264", "isp"; + system-power-controller; + }; From patchwork Sun May 15 20:20:23 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Wahren X-Patchwork-Id: 572852 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 04BE6C433EF for ; Sun, 15 May 2022 20:21:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232971AbiEOUVo (ORCPT ); Sun, 15 May 2022 16:21:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55198 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232688AbiEOUVj (ORCPT ); Sun, 15 May 2022 16:21:39 -0400 Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.126.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 808BC35DF3 for ; Sun, 15 May 2022 13:21:37 -0700 (PDT) Received: from localhost.localdomain ([37.4.249.94]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MNKyQ-1oF2cX0Uiw-00Okjh; Sun, 15 May 2022 22:21:19 +0200 From: Stefan Wahren To: Florian Fainelli , Ray Jui , Scott Branden , Nicolas Saenz Julienne , Lee Jones Cc: Peter Robinson , Melissa Wen , Phil Elwell , bcm-kernel-feedback-list@broadcom.com, Maxime Ripard , devicetree@vger.kernel.org, linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org, Nicolas Saenz Julienne , Rob Herring , Stefan Wahren Subject: [PATCH 02/11] dt-bindings: soc: bcm: bcm2835-pm: Introduce reg-names Date: Sun, 15 May 2022 22:20:23 +0200 Message-Id: <20220515202032.3046-3-stefan.wahren@i2se.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220515202032.3046-1-stefan.wahren@i2se.com> References: <20220515202032.3046-1-stefan.wahren@i2se.com> MIME-Version: 1.0 X-Provags-ID: V03:K1:HvOpsjTGFG8ydQxQPPL/ZfmmV8b3SXQZxN7l9il4O8dHbW3dB0+ wZqL76EdcCCMGPDpTL3bhj8VMXQBYbyXP9QoxEB0gl1pU1WbVREUkwITN5ZQmT+wMOpb6tj bXf3Vr5C5qt448mEu0gJbYXYPM97fjq1ozx/xj7PL+LhEQF5MyWnobf27RpBQ8Ytz5O8+J0 dc8dyf/ZlFk6cmQFjVA3g== X-UI-Out-Filterresults: notjunk:1;V03:K0:0Go4nnZ0k4U=:iGzB04ym5lTWiNhsWWm772 aPrBgtUoYwkP54NKafO7BM88tWIubsHLxHlxEhXalqmqZzRGhWkJVHM31nZ3uZL7edL4atbFZ UtVXXInGCRDOK8SbAbuiW6p673Pfw9kU2EONw3ZGIQXPRguUVTD8shkhMeCLTRt59/tjcOgdy 4waz57upoR+wj6MxnzSU/WLhe/cLfqwOUCdMdA4GvyBB2D1Eer+Tlp13bXnndSeumJbL+4Hfe V3+SWtLzOh9bJQ52KFNr3pNLWwzhlEUezh7OcCku9+ohAlSuD+kiG6zZGtGhDr2+WyEqdj7Bg cB4wgu/qLpaSsqXIyDY+0TVqXtJg2n7oUnLZM8BLrVx3uK5iKETqvx6v78SUryvU02LPG1gUC E3bYXmWort/0ZYHdmQSdEwChWXURDcMXZxklIQX9Uq1kYQxgxfEbTm6JAvfezQQ18FU8C5Se+ 15TY2Z4jl3Z1uVooQIzBrCVhonBlqKAYq9TGElGeug6gUvCm4zNk/hDqMT8rhf6ZTlfzOeFAI WshDC+fLUnEHlLfronzIZy4cbzUTfXVHmH77wjzAqndBZvTcg7op9O3pCGYwu4IVuPvlqO7ph KsAXFGHLJhqOMmWX/qCcQAeSMH6hQ65WIeOCZsSjRMh+EGzSl1svEONVZbTaY6VsSfbPRbfUz Oj3wmKXswyvmhww1yoj9E8l1HrptTvPCUgT1M6IrVCht7Agi51le1VTwg1R0gMKatKeXYKJFP re2GsIiQx6ccxES4 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org From: Nicolas Saenz Julienne Anticipating the introduction of BCM2711, of which we'll need to support its new RPiVid ASB, introduce reg-names into bcm2835-pm's binding. This will help to have a consistent mapping between resources and their meaning. Signed-off-by: Nicolas Saenz Julienne Reviewed-by: Rob Herring Signed-off-by: Stefan Wahren --- .../devicetree/bindings/soc/bcm/brcm,bcm2835-pm.yaml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-pm.yaml b/Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-pm.yaml index 5d1ff0f6c8ce..883ab7cb96e9 100644 --- a/Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-pm.yaml +++ b/Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-pm.yaml @@ -23,9 +23,13 @@ properties: - const: brcm,bcm2835-pm-wdt reg: + minItems: 2 + maxItems: 2 + + reg-names: items: - - description: PM registers - - description: ASB registers + - const: pm + - const: asb "#power-domain-cells": const: 1 @@ -68,6 +72,7 @@ examples: #reset-cells = <1>; reg = <0x7e100000 0x114>, <0x7e00a000 0x24>; + reg-names = "pm", "asb"; clocks = <&clocks BCM2835_CLOCK_V3D>, <&clocks BCM2835_CLOCK_PERI_IMAGE>, <&clocks BCM2835_CLOCK_H264>, From patchwork Sun May 15 20:20:25 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Wahren X-Patchwork-Id: 572849 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1F573C433EF for ; Sun, 15 May 2022 20:27:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230016AbiEOU1O (ORCPT ); Sun, 15 May 2022 16:27:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35888 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230463AbiEOU1M (ORCPT ); Sun, 15 May 2022 16:27:12 -0400 Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.126.134]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B0CFBEE09 for ; Sun, 15 May 2022 13:26:46 -0700 (PDT) Received: from localhost.localdomain ([37.4.249.94]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MnaY1-1nQrtV2IYn-00jdmY; Sun, 15 May 2022 22:21:20 +0200 From: Stefan Wahren To: Florian Fainelli , Ray Jui , Scott Branden , Nicolas Saenz Julienne , Lee Jones Cc: Peter Robinson , Melissa Wen , Phil Elwell , bcm-kernel-feedback-list@broadcom.com, Maxime Ripard , devicetree@vger.kernel.org, linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org, Nicolas Saenz Julienne , Stefan Wahren Subject: [PATCH 04/11] ARM: dts: bcm2835/bcm2711: Introduce reg-names in watchdog node Date: Sun, 15 May 2022 22:20:25 +0200 Message-Id: <20220515202032.3046-5-stefan.wahren@i2se.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220515202032.3046-1-stefan.wahren@i2se.com> References: <20220515202032.3046-1-stefan.wahren@i2se.com> MIME-Version: 1.0 X-Provags-ID: V03:K1:Ub6mldJYY0ItRChrV4lh8lvw7S2zT0Smevj0awMU+bIGvBZ9O+R aMUNpcBZNvPTNUef+gBuZiAiqmtHjC39B7SFK9EUvMSNsAr2Q1yFjqPLcUx69V3FgCb0d46 I+AVbhmpfv3+tgXebJc1fBB6hTNNP8mYgsAdgqTvQoMbkMUPOgl2p58fyHFVQltpZTD0EWt M2HOWnCTTDJJtg8527NcA== X-UI-Out-Filterresults: notjunk:1;V03:K0:L8hjXa/GvSE=:klHt7fOWD1t0OeLKSEbt+T iEZcbhAhxecAUIG8vD4cd6gGcE+634aOjLaApar9zH51OGlta46Oc2cnG8uElVl/5RGrI2L5O vqnwDioecgstD7dH7RGbxUoV5YsqogHL52n4He4mLU7xZlvleuo0mdvycqUctq7YFDAtJMW/d 0ikDF+Rpc3cTPNKxwu3V+7CYxoNQnVEwRpdqaQBqdk2Ns5AoXznNPE1SlLw4UA29VehBsSKQ7 +RVZE328rhxX6Z5lpyxZjiuKNSZ9OaUn5sasu23otGMqZnqt9kif2Q7ILHNoq+4UgNoJp9IZG NIQr2nyFX+/O/AbzfUBTPscvW73MsC8fml1b20fOYtbjSN8dE9hIPvAHsfR79FAeWlK7lKW5l AE4Y2zxm4MUcnihkNPWkQf4QWGsgrTZ8qg16hv/smVYSP0pTty7rMqTnS1H7rycLB/jvl2q65 KwQ64fVoJ21bLuDgkrm8ZE8QNasnM3cFGDtnHwvXljByAwNSNv47hZ+5FnkHbuj6FFr1rL72S Odr/nmCgb4RIU4SRDnBMK4plquwXh8Oh1u1+DrtlcnxcrFkwqpSmS1R81/ENH0QAigQ8iYbX3 mKNaVKHzBYLdrhFcgUoU4XL6c+coSB22T/McR6woW86gh9zq34WRB0zJ87qrzISn3ObZJc8PO rsuET2ynZxv1l4R3c4iP5Mnrk3E0gRIUpQnFvv55mLL09e3M2Yi5WkDUaISln8wYiqsxvC2MO QgbbCDu3+u/thOj5 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org From: Nicolas Saenz Julienne bcm2835-pm's bindings now support explicitly setting 'reg-names,' so use them. Signed-off-by: Nicolas Saenz Julienne Signed-off-by: Stefan Wahren --- arch/arm/boot/dts/bcm2711.dtsi | 1 + arch/arm/boot/dts/bcm2835-common.dtsi | 1 + 2 files changed, 2 insertions(+) diff --git a/arch/arm/boot/dts/bcm2711.dtsi b/arch/arm/boot/dts/bcm2711.dtsi index 89af57482bc8..cbb47e2c9434 100644 --- a/arch/arm/boot/dts/bcm2711.dtsi +++ b/arch/arm/boot/dts/bcm2711.dtsi @@ -113,6 +113,7 @@ pm: watchdog@7e100000 { reg = <0x7e100000 0x114>, <0x7e00a000 0x24>, <0x7ec11000 0x20>; + reg-names = "pm", "asb", "rpivid_asb"; clocks = <&clocks BCM2835_CLOCK_V3D>, <&clocks BCM2835_CLOCK_PERI_IMAGE>, <&clocks BCM2835_CLOCK_H264>, diff --git a/arch/arm/boot/dts/bcm2835-common.dtsi b/arch/arm/boot/dts/bcm2835-common.dtsi index c25e797b9060..a037d2bc5b11 100644 --- a/arch/arm/boot/dts/bcm2835-common.dtsi +++ b/arch/arm/boot/dts/bcm2835-common.dtsi @@ -62,6 +62,7 @@ pm: watchdog@7e100000 { #reset-cells = <1>; reg = <0x7e100000 0x114>, <0x7e00a000 0x24>; + reg-names = "pm", "asb"; clocks = <&clocks BCM2835_CLOCK_V3D>, <&clocks BCM2835_CLOCK_PERI_IMAGE>, <&clocks BCM2835_CLOCK_H264>, From patchwork Sun May 15 20:20:27 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Wahren X-Patchwork-Id: 572853 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 37BE3C433F5 for ; Sun, 15 May 2022 20:21:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232102AbiEOUVl (ORCPT ); Sun, 15 May 2022 16:21:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55200 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231891AbiEOUVj (ORCPT ); Sun, 15 May 2022 16:21:39 -0400 Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.126.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CA9571EAF0 for ; Sun, 15 May 2022 13:21:37 -0700 (PDT) Received: from localhost.localdomain ([37.4.249.94]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MUpCz-1oGM3E2aK9-00Qjsw; Sun, 15 May 2022 22:21:21 +0200 From: Stefan Wahren To: Florian Fainelli , Ray Jui , Scott Branden , Nicolas Saenz Julienne , Lee Jones Cc: Peter Robinson , Melissa Wen , Phil Elwell , bcm-kernel-feedback-list@broadcom.com, Maxime Ripard , devicetree@vger.kernel.org, linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org, Nicolas Saenz Julienne , Stefan Wahren Subject: [PATCH 06/11] mfd: bcm2835-pm: Use 'reg-names' to get resources Date: Sun, 15 May 2022 22:20:27 +0200 Message-Id: <20220515202032.3046-7-stefan.wahren@i2se.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220515202032.3046-1-stefan.wahren@i2se.com> References: <20220515202032.3046-1-stefan.wahren@i2se.com> MIME-Version: 1.0 X-Provags-ID: V03:K1:CMkjM+dxKS19+f0NnafvR4zTuYK2+uCtLEdF0TAXa3g67s/sGgz /bQlBsGqTr03dg6w9dwkQfD4EkfI/SkRUh+C4nSqn+0QheLryE/4xyTREt9SLNTNpZK1P1u n7lPfBxsNLZBL6L3PoQi2CgKK5aJR7+HWzN3DzSpRrE14DfctYiti8A1AAHHkHJ2NF6Mvuq 4+NtsVRJr/jzgc3efJnRA== X-UI-Out-Filterresults: notjunk:1;V03:K0:IBPrTA7w700=:zqLHdXPLbiprmM8VSnI+xv dpd59o301tzViqVR0w+sei3Le3VYd/S7GwIQ3EQXIWyBcgK8n9AcGWP1YY9x+NxkH1rKpvFsI a38bU8tNDad0N71OZsdQ6o6rMSBqmdzqqpOfrsaCdaGiMVNUIQREcLtZgktB5D3mbdl3+zwDc Udd8up0ViGJN+mJnd2dqym2HHivZFVIy1aRO4sliTt1D5TBrlfvLKI3oGvWwIJTSpTV5VN7go PvZwHJ0tKMThE5meMId09QhLcmHZYfB62efrLkcIqEJypdDVPkW3hngG+xCvriNeltJShNh9j s8kBzd244FpAcunqac1ETdf8D//jY18xFcJVBuniydd4SriN7sfzL592G8dBRH2whfPCPohcm 0eNKrefuWGIp/SD6FlSpKo4QBRCx7cO1ro7qQWV0vo2byPpl5MWXQ1U7PQB3o43hdUz6vAgAQ TM1JDK+jvhS6XWs2iXArz4CWOml+J3G+CTcv/No7lVqA/jqet9BqM2PE9ZONHt2cTm+965tgf Tca6epv8NsfYW0VKq4oQIh+8MNo3R8rQcQUX1hscndKgGuxQS1QNgHSOU9Z+ZeCappDORdgkc IQB3XHphHaKq9DEA/fSeTbhSje6Yb2ZsZOq/Amftgt1syVK3HKVKiHw9e/o6bSyHz5Wp5/xkE GPmkthXCK/TKFhp2nt1P4utTejPy5k7/max/u3tzxkEckJbyzMEFW3bV+rtKM7WEW8InJXMGq GkLZJTm4j/I0lLiu Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org From: Nicolas Saenz Julienne If available in firmware, find resources by their 'reg-names' position instead of relying on hardcoded offsets. Care is taken to support old firmware nonetheless. Signed-off-by: Nicolas Saenz Julienne Signed-off-by: Stefan Wahren --- drivers/mfd/bcm2835-pm.c | 59 +++++++++++++++++++++++++++------------- 1 file changed, 40 insertions(+), 19 deletions(-) diff --git a/drivers/mfd/bcm2835-pm.c b/drivers/mfd/bcm2835-pm.c index 42fe67f1538e..1656d786993a 100644 --- a/drivers/mfd/bcm2835-pm.c +++ b/drivers/mfd/bcm2835-pm.c @@ -25,9 +25,41 @@ static const struct mfd_cell bcm2835_power_devs[] = { { .name = "bcm2835-power" }, }; +static int bcm2835_pm_get_pdata(struct platform_device *pdev, + struct bcm2835_pm *pm) +{ + /* If no 'reg-names' property is found we can assume we're using old + * firmware. + */ + if (!of_find_property(pm->dev->of_node, "reg-names", NULL)) { + dev_warn(pm->dev, "Old devicetree detected, please update your firmware.\n"); + + pm->base = devm_platform_ioremap_resource(pdev, 0); + if (IS_ERR(pm->base)) + return PTR_ERR(pm->base); + + pm->asb = devm_platform_ioremap_resource(pdev, 1); + } else { + struct resource *res; + + pm->base = devm_platform_ioremap_resource_byname(pdev, "pm"); + if (IS_ERR(pm->base)) + return PTR_ERR(pm->base); + + res = platform_get_resource_byname(pdev, IORESOURCE_MEM, + "asb"); + if (res) + pm->asb = devm_ioremap_resource(&pdev->dev, res); + } + + if (IS_ERR(pm->asb)) + pm->asb = NULL; + + return 0; +} + static int bcm2835_pm_probe(struct platform_device *pdev) { - struct resource *res; struct device *dev = &pdev->dev; struct bcm2835_pm *pm; int ret; @@ -39,10 +71,9 @@ static int bcm2835_pm_probe(struct platform_device *pdev) pm->dev = dev; - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - pm->base = devm_ioremap_resource(dev, res); - if (IS_ERR(pm->base)) - return PTR_ERR(pm->base); + ret = bcm2835_pm_get_pdata(pdev, pm); + if (ret) + return ret; ret = devm_mfd_add_devices(dev, -1, bcm2835_pm_devs, ARRAY_SIZE(bcm2835_pm_devs), @@ -54,20 +85,10 @@ static int bcm2835_pm_probe(struct platform_device *pdev) * bcm2835-pm binding as the key for whether we can reference * the full PM register range and support power domains. */ - res = platform_get_resource(pdev, IORESOURCE_MEM, 1); - if (res) { - pm->asb = devm_ioremap_resource(dev, res); - if (IS_ERR(pm->asb)) - return PTR_ERR(pm->asb); - - ret = devm_mfd_add_devices(dev, -1, - bcm2835_power_devs, - ARRAY_SIZE(bcm2835_power_devs), - NULL, 0, NULL); - if (ret) - return ret; - } - + if (pm->asb) + return devm_mfd_add_devices(dev, -1, bcm2835_power_devs, + ARRAY_SIZE(bcm2835_power_devs), + NULL, 0, NULL); return 0; } From patchwork Sun May 15 20:20:30 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Wahren X-Patchwork-Id: 572850 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7C7D9C4332F for ; Sun, 15 May 2022 20:21:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234252AbiEOUVq (ORCPT ); Sun, 15 May 2022 16:21:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55298 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233281AbiEOUVk (ORCPT ); Sun, 15 May 2022 16:21:40 -0400 Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.126.135]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 51DA735DF6 for ; Sun, 15 May 2022 13:21:39 -0700 (PDT) Received: from localhost.localdomain ([37.4.249.94]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.167]) with ESMTPSA (Nemesis) id 1Mr8vG-1nW6xZ2jGo-00oITd; Sun, 15 May 2022 22:21:23 +0200 From: Stefan Wahren To: Florian Fainelli , Ray Jui , Scott Branden , Nicolas Saenz Julienne , Lee Jones Cc: Peter Robinson , Melissa Wen , Phil Elwell , bcm-kernel-feedback-list@broadcom.com, Maxime Ripard , devicetree@vger.kernel.org, linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org, Stefan Wahren Subject: [PATCH 09/11] soc: bcm: bcm2835-power: Resolve ASB register macros Date: Sun, 15 May 2022 22:20:30 +0200 Message-Id: <20220515202032.3046-10-stefan.wahren@i2se.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220515202032.3046-1-stefan.wahren@i2se.com> References: <20220515202032.3046-1-stefan.wahren@i2se.com> MIME-Version: 1.0 X-Provags-ID: V03:K1:tRuXr/NcWiagAyMCNC8Bv6us8sxURSZzdQ7aPD5wKLaX5A5J4tu OLs9ExQ9AtejcsXt40LVzIixorLLH8hTqLxhkRSKhYq7DjMDshq6n29tU0Unr073yve6jtK sJmSM8ztCdop11QII7iGllmf4Kvwwf5TxSE6JblAdL/5kxkh3eFrQf0oxdxJ6NyDqElxQNu Cg6H6TZYrOFJEBnztgM4g== X-UI-Out-Filterresults: notjunk:1;V03:K0:IArgAF7lIF0=:JUsiscSwkp1tfDbi/w9Cl8 gdvTqNLqq1nngmEjWFOoFtYxL9BoC+4PT6eTNbo1QdHevjiKZ6kYP+jH+m133sreOpg27p5RK HhTHD9tYMvTE5+rAOzd0sILq1rwtab/fWUhUmqcPmNW6fxXy97cAon84XUlvAzHDoqYYthR8j b1kBxDOMC2ozY7jAMWp5Yyw7eIUBxYUCocNPjYD0hEFYZXxmYuDlt2H0MbmlA0tc030fMdJWv LM3L3IkEwHHchLkwUEqudfBRx8xLHp+b0LN4FSVE8r1QMUGE7Iazd9LZ0GtLBegz3mTNhByHl mp5M4/Xa2x/RyMYeN1AzLNjW3K097COlLaOFq49ZrxL8+4CRGRdhx/d7jdS2dvEImc9pA30jN mO5OPqvxR8mWvJ8OeW63P0sX4+A7nDV+KC9UKtEyasve7wQlzc6Fmqu93BlmwYBVX7mvVIrka iItUekLxA6+PYiKFkaEbo1Z275ItQa7n90qpGUxcT73ZE2q0fKPww2Cw9m1wV4CQbAAinmUCk HTrGo2Z5n5lrxVZVJ1ArM1YlvXBykmwBMDhPLG/LALPvIDe2hisY6hb8Usw/Eur2lhonrww63 EbwH6cCjpeaf9uqtIojebkr8oLqnh3jbT6N2eW8tqV4CT51VbZSDZAYrnjXM/Rwsvb/8RpJyz RapkQcaXiqG/geDD03DFaEg7pqwSiC6O28z5V6OSciQdatOePXsUPzkst/4brVl7TxmQoO7yA FyZvRq1NowvaT/m0 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org The macros in order to access the ASB registers have a hard coded base address. So extending them for other platforms would make them harder to read. As a solution resolve these macros. Signed-off-by: Stefan Wahren --- drivers/soc/bcm/bcm2835-power.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/soc/bcm/bcm2835-power.c b/drivers/soc/bcm/bcm2835-power.c index 77dc9e62b207..fa0a13035794 100644 --- a/drivers/soc/bcm/bcm2835-power.c +++ b/drivers/soc/bcm/bcm2835-power.c @@ -126,9 +126,6 @@ #define ASB_AXI_BRDG_ID 0x20 -#define ASB_READ(reg) readl(power->asb + (reg)) -#define ASB_WRITE(reg, val) writel(PM_PASSWORD | (val), power->asb + (reg)) - struct bcm2835_power_domain { struct generic_pm_domain base; struct bcm2835_power *power; @@ -150,7 +147,10 @@ struct bcm2835_power { static int bcm2835_asb_control(struct bcm2835_power *power, u32 reg, bool enable) { + void __iomem *base = power->asb; u64 start; + u32 val; + if (!reg) return 0; @@ -159,12 +159,13 @@ static int bcm2835_asb_control(struct bcm2835_power *power, u32 reg, bool enable /* Enable the module's async AXI bridges. */ if (enable) { - ASB_WRITE(reg, ASB_READ(reg) & ~ASB_REQ_STOP); + val = readl(base + reg) & ~ASB_REQ_STOP; } else { - ASB_WRITE(reg, ASB_READ(reg) | ASB_REQ_STOP); + val = readl(base + reg) | ASB_REQ_STOP; } + writel(PM_PASSWORD | val, base + reg); - while (ASB_READ(reg) & ASB_ACK) { + while (readl(base + reg) & ASB_ACK) { cpu_relax(); if (ktime_get_ns() - start >= 1000) return -ETIMEDOUT; @@ -622,7 +623,7 @@ static int bcm2835_power_probe(struct platform_device *pdev) power->base = pm->base; power->asb = pm->asb; - id = ASB_READ(ASB_AXI_BRDG_ID); + id = readl(power->asb + ASB_AXI_BRDG_ID); if (id != 0x62726467 /* "BRDG" */) { dev_err(dev, "ASB register ID returned 0x%08x\n", id); return -ENODEV; From patchwork Sun May 15 20:20:31 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Wahren X-Patchwork-Id: 572851 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2BA61C433F5 for ; Sun, 15 May 2022 20:21:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233724AbiEOUVp (ORCPT ); Sun, 15 May 2022 16:21:45 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55264 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233059AbiEOUVk (ORCPT ); Sun, 15 May 2022 16:21:40 -0400 Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.126.133]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 81A6735DF2 for ; Sun, 15 May 2022 13:21:38 -0700 (PDT) Received: from localhost.localdomain ([37.4.249.94]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.167]) with ESMTPSA (Nemesis) id 1McXwD-1nKJNR0aGT-00czwE; Sun, 15 May 2022 22:21:24 +0200 From: Stefan Wahren To: Florian Fainelli , Ray Jui , Scott Branden , Nicolas Saenz Julienne , Lee Jones Cc: Peter Robinson , Melissa Wen , Phil Elwell , bcm-kernel-feedback-list@broadcom.com, Maxime Ripard , devicetree@vger.kernel.org, linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org, Stefan Wahren Subject: [PATCH 10/11] soc: bcm: bcm2835-power: Add support for BCM2711's RPiVid ASB Date: Sun, 15 May 2022 22:20:31 +0200 Message-Id: <20220515202032.3046-11-stefan.wahren@i2se.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220515202032.3046-1-stefan.wahren@i2se.com> References: <20220515202032.3046-1-stefan.wahren@i2se.com> MIME-Version: 1.0 X-Provags-ID: V03:K1:/fM6OPNtRTKLgroxg6P+k+A2l+bkQQQWlbyybbize/YASC+t83X kdU1dW3QG5zFrcc8pyOjvjJ6yXQjx8lLLjy67BWcwiZQ+ix/NyhV85yRWgrr8DC3y6Ld/0P fK1r2paB3eLhpVDlXZsPfdIUGrzlVg2ZMqZOro0ucklyV4G1wskb7nH60q+bDLgM0/T+wcU NXoPYPIEBjgjcG1qWWIjQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:bSEQsKQaPLo=:5oxFBjZxP2gIaziTg9zJ3b 4QrxNfA9a/JD8J6v06/FEQI1f4ZZwFddBDxa6SEnHrWXy2F2oV3yGiR3RE4r7jo38qpYvHt/O MEpVT+eWjMlnmAS9C12UNc0e9QWfnKN6gCy2gsANk20Nyp2hPsd0swjFp6t+pTqVy6RKyw8qA /l8Ha++tUDzZh3WbitqLAr+o2aUmntLycyDNBnpLTdgG0G+6x/p1Q22SAhdG2yGBEjREBRGRh TGEvEwakNDChHGzVlJNjqj/pmm3lIc1ecKzulYMfpNeu2cycRuKtT4fvHg3FxKy66wAX/R4pu OkBR7pU2QwDmssjaXk3ANXZ6MdYTh7J8YN+egn4wNGnuEcovQ821zyAFMbKMKOGn6tiTheH19 66vIrd9Pyw2pRP3OzDX5hMhlLwwd/T4M4PWUgC04DzZtR7AUNlSpkp1Xjw+mhkJ6eNiS8NaQ6 iVDKB4keilZ0vb1g5GBxMo/n7Ovhyzqxuj0m5nGGLbAS6Kxrrf1a3aLY2fGTQ93WyzAZq/Bsa IvQMlbMvF4SkxptIVRJ65QeUtoqGPbLfmPb0SzYy525sQZGKV6EJkDr215ojo8bNHiINATN/v IFMe+BDupZpJ2faoFch0jACIeoIeyak2+vvgD2i1NqHb1sxDcLLV+CQj4qukp1j7EgPRVHzMz Yxp0rC2WLQCR5+Ec/roBQARcVnDEpZ6Zq+W9ceaoGxkTYX12Mpai1WjkBvVinam2BGt9GGNBc BRUlGEPdFKIDM3I8 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org In BCM2711 the new RPiVid ASB took over V3D. The old ASB is still present with the ISP and H264 bits, and V3D is in the same place in the new ASB as the old one. Use the fact that 'pm->rpivid_asb' is populated as a hint that we're on BCM2711. Signed-off-by: Stefan Wahren --- drivers/soc/bcm/bcm2835-power.c | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/drivers/soc/bcm/bcm2835-power.c b/drivers/soc/bcm/bcm2835-power.c index fa0a13035794..1e06d91c0739 100644 --- a/drivers/soc/bcm/bcm2835-power.c +++ b/drivers/soc/bcm/bcm2835-power.c @@ -126,6 +126,8 @@ #define ASB_AXI_BRDG_ID 0x20 +#define BCM2835_BRDG_ID 0x62726467 + struct bcm2835_power_domain { struct generic_pm_domain base; struct bcm2835_power *power; @@ -139,6 +141,8 @@ struct bcm2835_power { void __iomem *base; /* AXI Async bridge registers. */ void __iomem *asb; + /* RPiVid bridge registers. */ + void __iomem *rpivid_asb; struct genpd_onecell_data pd_xlate; struct bcm2835_power_domain domains[BCM2835_POWER_DOMAIN_COUNT]; @@ -151,9 +155,15 @@ static int bcm2835_asb_control(struct bcm2835_power *power, u32 reg, bool enable u64 start; u32 val; - - if (!reg) + switch (reg) { + case 0: return 0; + case ASB_V3D_S_CTRL: + case ASB_V3D_M_CTRL: + if (power->rpivid_asb) + base = power->rpivid_asb; + break; + } start = ktime_get_ns(); @@ -622,13 +632,23 @@ static int bcm2835_power_probe(struct platform_device *pdev) power->dev = dev; power->base = pm->base; power->asb = pm->asb; + power->rpivid_asb = pm->rpivid_asb; id = readl(power->asb + ASB_AXI_BRDG_ID); - if (id != 0x62726467 /* "BRDG" */) { + if (id != BCM2835_BRDG_ID /* "BRDG" */) { dev_err(dev, "ASB register ID returned 0x%08x\n", id); return -ENODEV; } + if (power->rpivid_asb) { + id = readl(power->rpivid_asb + ASB_AXI_BRDG_ID); + if (id != BCM2835_BRDG_ID /* "BRDG" */) { + dev_err(dev, "RPiVid ASB register ID returned 0x%08x\n", + id); + return -ENODEV; + } + } + power->pd_xlate.domains = devm_kcalloc(dev, ARRAY_SIZE(power_domain_names), sizeof(*power->pd_xlate.domains),