From patchwork Tue Jun 7 20:42:17 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Wahren X-Patchwork-Id: 580028 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 45337CCA492 for ; Wed, 8 Jun 2022 00:55:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1377634AbiFHAtR (ORCPT ); Tue, 7 Jun 2022 20:49:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50218 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1389928AbiFHAgY (ORCPT ); Tue, 7 Jun 2022 20:36:24 -0400 Received: from mout.kundenserver.de (mout.kundenserver.de [217.72.192.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 878A137B528 for ; Tue, 7 Jun 2022 13:43:20 -0700 (PDT) Received: from localhost.localdomain ([37.4.249.155]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1N3sNa-1npm6W3bUW-00zpbQ; Tue, 07 Jun 2022 22:42:52 +0200 From: Stefan Wahren To: Florian Fainelli , Ray Jui , Scott Branden , Lee Jones Cc: Peter Robinson , Melissa Wen , Phil Elwell , bcm-kernel-feedback-list@broadcom.com, Maxime Ripard , devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Nicolas Saenz Julienne , Rob Herring , Stefan Wahren Subject: [PATCH V3 02/11] dt-bindings: soc: bcm: bcm2835-pm: Introduce reg-names Date: Tue, 7 Jun 2022 22:42:17 +0200 Message-Id: <20220607204226.8703-3-stefan.wahren@i2se.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220607204226.8703-1-stefan.wahren@i2se.com> References: <20220607204226.8703-1-stefan.wahren@i2se.com> MIME-Version: 1.0 X-Provags-ID: V03:K1:ScX2DzfWhJCjhPEZb9S4fBK8Yxpiie8QXDn7g5Pczowbl9B7rNk eCIPHxW1g2N6tnyruYcDTURu6kzg3rfhHpZ2m2zLumTcAQuu1CZ5O36n0jpy/Xkw9FTLyvs 5LTnRQbEIT5LdOh9466rtSfihZnT5yovzT0YkvgrDQ8J7Cl6+/f80DC2GvnrS4lXEngzQsm 2v4rjgk9MonJPKbulQkGw== X-UI-Out-Filterresults: notjunk:1;V03:K0:DM8Zds5ASIw=:2u1Q45Qo2iHICcBr9QwbBe 2vnoe+Zu9BvjZ26v+dlCNvTJAFICt6S1+P7g7B+dqnCxXrxaG0oWausaUEhNwrh/OhlTnaoc6 8o4h9Qmxoje9ybgOK/j3pmJJtYJSD9jwN+uRoN+tDkSGtMMEpXCZqAz5ypomuGAIbILebcmEZ JaQXr82psAXMIUwnXtt6ul7fwBhNLL3EQrGOEQNcnlwfXl601lEY8vpqmPhmrdCvSvlUXhscc E4UGQVcJDIAifJJvHIgDTEulXD18NiaKarJyzTtpEu0wUzwoy1vvUtgxkZQp7+J5m6ZbkMwh4 vMiO28YxKWGNC75HRn/3GhL66qHCi4BFN90Jrh4MD9pvW8o+BauM2hSivMKTM9I45EqqvYSjI NxVg5V3ABX1Jy0+VxXTcW3eH2hKjeO1H776jNfys7cAHQ2IDUS/90khP7u9wKfZObecW85mht HFi0hdeAeeiIZHXvPahHBbj8747NWJcAGON0G8w7IKTuwdwzmq4uDdNMu4MAiDdimGIl5R4mm Jdk/J1cCCJjYvSpZQbGz7bx5B44hJTHNWjXJGwVM7aL2PhrQNil3/Wis5g0LlKzYZ3gb9gZR9 o4yYIGVO/qv3BKD3XS+LQ9qPdnZYA+JxXZrxmZVqeABxdRq3IiQkc8R9/qbziq7WN6ygQGiT2 wG42JRPoA0SVOWZi4PEeiKqU30VJoKTdLvVzYPkHwD/LZaZcERbR9Kg93wnpmJqSi+3YMlcuZ rNERvVwj6VGSXOuR0ZJT3EUVaeEfuwqf8i8vLGrO50YC4+W8G60+HOEL/B8= 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 Reviewed-by: Peter Robinson --- .../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 Tue Jun 7 20:42:18 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Wahren X-Patchwork-Id: 580027 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 9BCBECCA498 for ; Wed, 8 Jun 2022 00:55:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1379927AbiFHAtj (ORCPT ); Tue, 7 Jun 2022 20:49:39 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39608 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1842488AbiFHAJe (ORCPT ); Tue, 7 Jun 2022 20:09:34 -0400 Received: from mout.kundenserver.de (mout.kundenserver.de [217.72.192.74]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6B0001F0A7D for ; Tue, 7 Jun 2022 13:43:05 -0700 (PDT) Received: from localhost.localdomain ([37.4.249.155]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1MScox-1oMcwm1Lo1-00Sxcz; Tue, 07 Jun 2022 22:42:53 +0200 From: Stefan Wahren To: Florian Fainelli , Ray Jui , Scott Branden , Lee Jones Cc: Peter Robinson , Melissa Wen , Phil Elwell , bcm-kernel-feedback-list@broadcom.com, Maxime Ripard , devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Stefan Wahren Subject: [PATCH V3 03/11] dt-bindings: soc: bcm: bcm2835-pm: Add support for bcm2711 Date: Tue, 7 Jun 2022 22:42:18 +0200 Message-Id: <20220607204226.8703-4-stefan.wahren@i2se.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220607204226.8703-1-stefan.wahren@i2se.com> References: <20220607204226.8703-1-stefan.wahren@i2se.com> MIME-Version: 1.0 X-Provags-ID: V03:K1:UE/dsbGoaW8um96Kb72CcCBjoIqPly7nhlflOJ/R1LK7086oAV2 Flvf1GPuLx3NDJ3OToq191jbny7IZyF8BNxp+XtGkVg4cgZnQVov7EWN/MGmeSR2Ay81nCY nkrMFZcwtUqyZQW/hVpomRS03SAaNwrpRIjRa6R+wo8lVH5XMLGMG/3IYl6XKE6luEq6Ier tjY2e9TdGVHdcW9D+ELzw== X-UI-Out-Filterresults: notjunk:1;V03:K0:fdlcL3qHbgo=:nHTsQuDu+UlZyoQQ11dz5f f3s0Dr4btHXHFPUKW/5Cyw8QmIuMHnnizwVFLuwG1ZcOpmzf6Il9rZG3ZR7he31nyTtxrY8m5 eEsF6VEX7LE3nSdWuPs8PG1l9TDvImFv6r6E41sTuHQelxRcVEv9gC83ZeEtUms7OWBa9DGPY OsQlDaKfhcgYN/MIJylf+vGvMSAokd8lSovwkfIvAp37RSBOoKgH7clxXgB91IQIbDCItR/yZ arDr2F/p527laX+XEhH9jCGtzowWN8NpvVjs7mSXXg4KonsvvpHOzf+t4gpmmTsqtRomB+6LP rtSIE9Ulu1CX0dJCeXylg057egAKDRevhOw/51RrCU1T0uSYuoIZMeIoYgNjmeWYKSq2qwLyT nK4tX/m3LNLNql67A6SKC8kMuMYyY5EztsdDVezKKIUi+7zQhrLztITYvZ4cWo8emwbLJe+j+ oYWeDk0E7aQSp9UM2F/+Vq0XJKGSwMYbACUrQRaff20hRhoYkFJ1OzdNkC8l4ZNZqIJIBMjDN 0NeOlrGqy7g6uhhSfUaddOyCb9Y4Lhz97HXV9QZUwf30vImPSm3Fg0RMoe/2rNxdHkHNcPnWg ATHOGOpww0n/Vpk3YTQrxxPjgAiWOHUrxdmMNjy0d7ZsrmyMiYzM03HVqI4ktSjCAJOg8X3Xr VS9zA05R8o21yEUOGTTcZsAa2X+Ek6CPgSLqxc1F7cyEHbbg5S4A+BUzEam8jloFHgFmLdoFv Us1dV+Zez0NvAQSqx66RUZpnmORLNsDQ7rZzXtUq7GBB3m6xB6LaFJugyfs= Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Add a new compatible string for BCM2711 and the option to provide a third reg property for the board's new RPiVid ASB. In BCM2711 the new RPiVid ASB took over V3D, which is our only consumer of this driver so far. The old ASB is still be present with ISP and H264 bits but no V3D. Signed-off-by: Stefan Wahren Reviewed-by: Peter Robinson Reviewed-by: Rob Herring --- .../devicetree/bindings/soc/bcm/brcm,bcm2835-pm.yaml | 8 ++++++-- 1 file changed, 6 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 883ab7cb96e9..894786640938 100644 --- a/Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-pm.yaml +++ b/Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-pm.yaml @@ -19,17 +19,21 @@ allOf: properties: compatible: items: - - const: brcm,bcm2835-pm + - enum: + - brcm,bcm2835-pm + - brcm,bcm2711-pm - const: brcm,bcm2835-pm-wdt reg: minItems: 2 - maxItems: 2 + maxItems: 3 reg-names: + minItems: 2 items: - const: pm - const: asb + - const: rpivid_asb "#power-domain-cells": const: 1 From patchwork Tue Jun 7 20:42:20 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Wahren X-Patchwork-Id: 580032 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 8FAC5C43334 for ; Wed, 8 Jun 2022 00:55:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242680AbiFHAsd (ORCPT ); Tue, 7 Jun 2022 20:48:33 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40110 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1842487AbiFHAJe (ORCPT ); Tue, 7 Jun 2022 20:09:34 -0400 Received: from mout.kundenserver.de (mout.kundenserver.de [217.72.192.74]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6AE081F0A7B for ; Tue, 7 Jun 2022 13:43:04 -0700 (PDT) Received: from localhost.localdomain ([37.4.249.155]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1M1INQ-1nvv9A1KiQ-002nl8; Tue, 07 Jun 2022 22:42:54 +0200 From: Stefan Wahren To: Florian Fainelli , Ray Jui , Scott Branden , Lee Jones Cc: Peter Robinson , Melissa Wen , Phil Elwell , bcm-kernel-feedback-list@broadcom.com, Maxime Ripard , devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Nicolas Saenz Julienne , Stefan Wahren Subject: [PATCH V3 05/11] ARM: dts: bcm2711: Use proper compatible in PM/Watchdog node Date: Tue, 7 Jun 2022 22:42:20 +0200 Message-Id: <20220607204226.8703-6-stefan.wahren@i2se.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220607204226.8703-1-stefan.wahren@i2se.com> References: <20220607204226.8703-1-stefan.wahren@i2se.com> MIME-Version: 1.0 X-Provags-ID: V03:K1:zELN2rQeacuGlbrII61qEELxj982ZGzztwLFEicqtg86t/fczcv ZYHzq8HttUOpkM2CcqlAPiSXDXEIiI3X8ReIoWENpfCroMkFQ3yBTdr350NXYUW/uRFeMT1 YWPQlAwMKKh+uWB6JkJb1AUjpn/+qd07CwLX1J5BpTqpGi9gLcBXHePapsO8btNyIpT3b74 b4xipHoKeoCL6Ccd0vI/A== X-UI-Out-Filterresults: notjunk:1;V03:K0:tL4oKOIphs0=:NSEbR8dyNyTRa4yE/ygb74 Epz/7HgTjBZLbEFHIrpxccUKlTcn8SJZEAS/syBx1A6rAg1c8PiL4P+Z9PEnd/Sn85d88pBiT ILcZg3xlPDIkj2jzhdpDQqqELNW5ERb+Gvwpcq1yVLVr0lT0PqLMNVbmh+uTqErG9MFsrwok6 qSgwJt3D7NAP4+HLNJO4+RZLacf+04wT2ITqW3RVXvQ808SY/hvRMup7S3CKO0yPfUgw+rJaD Glt0Y03AeLdhycA3vQ/T2pO2H/QQUBFXv+lWxwWR8zrNaZrIXenIQpBveT+IgwkdVedPvzks1 BIvnzX5N8SyYm3wTOOp+Mwa9ZFNOyg8wkNT3dGZ9MUGX0XaVGuJk57rvZVeJVVBSW+1WNJHku BKuYYxhx09xqH+g6ZBYergNrw3VbyPn7C5ujMZTSQv8bqngX7MF9oA4YKkpGZ459tRfS6appb ajWfqHGO1SFLemwZrFT+dobW8e9WGBklvUWLUc+00z2V4NsL16Vc5eXoF46WJHWf4e2rnSils 6zNUwc9BTRnr58jW9zoJCcdfKGS8ubtindBST6lkckTMfReih7NJB9XZFz6F9Z6jhphPmUDTu /H+r3H5cpJct+nQm/ZxXLtiuhkh08KXutsMb4dDNY/39Uimc02kbV7EAxFl3f2IcHFB5InGTV zX4kMNvYTcIXxfdqEvWlakHLaLixshX04eBiGsA7B1Wok6LlyG/gvH11eHBNES42A87ob2dcO uV3tMxJLXGZY/WWm3H8vALixXwMBI0w4GodV5QiQk4Ak8lBVkLRedboDio4= Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org From: Nicolas Saenz Julienne A new compatible string was introduced specifically for BCM2711, so make use of it. Signed-off-by: Nicolas Saenz Julienne Signed-off-by: Stefan Wahren Reviewed-by: Peter Robinson --- arch/arm/boot/dts/bcm2711.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/bcm2711.dtsi b/arch/arm/boot/dts/bcm2711.dtsi index cbb47e2c9434..5eca5207c212 100644 --- a/arch/arm/boot/dts/bcm2711.dtsi +++ b/arch/arm/boot/dts/bcm2711.dtsi @@ -107,7 +107,7 @@ dma: dma@7e007000 { }; pm: watchdog@7e100000 { - compatible = "brcm,bcm2835-pm", "brcm,bcm2835-pm-wdt"; + compatible = "brcm,bcm2711-pm", "brcm,bcm2835-pm-wdt"; #power-domain-cells = <1>; #reset-cells = <1>; reg = <0x7e100000 0x114>, From patchwork Tue Jun 7 20:42:21 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Wahren X-Patchwork-Id: 580020 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 0B699CCA485 for ; Wed, 8 Jun 2022 02:47:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1354803AbiFHCrP (ORCPT ); Tue, 7 Jun 2022 22:47:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34060 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1383688AbiFHCiT (ORCPT ); Tue, 7 Jun 2022 22:38:19 -0400 Received: from mout.kundenserver.de (mout.kundenserver.de [217.72.192.74]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D758618147C for ; Tue, 7 Jun 2022 13:43:06 -0700 (PDT) Received: from localhost.localdomain ([37.4.249.155]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1MeC5x-1nNQPR3QkJ-00bK9z; Tue, 07 Jun 2022 22:42:54 +0200 From: Stefan Wahren To: Florian Fainelli , Ray Jui , Scott Branden , Lee Jones Cc: Peter Robinson , Melissa Wen , Phil Elwell , bcm-kernel-feedback-list@broadcom.com, Maxime Ripard , devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Nicolas Saenz Julienne , Stefan Wahren Subject: [PATCH V3 06/11] mfd: bcm2835-pm: Use 'reg-names' to get resources Date: Tue, 7 Jun 2022 22:42:21 +0200 Message-Id: <20220607204226.8703-7-stefan.wahren@i2se.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220607204226.8703-1-stefan.wahren@i2se.com> References: <20220607204226.8703-1-stefan.wahren@i2se.com> MIME-Version: 1.0 X-Provags-ID: V03:K1:cG6fF3HSl3wZfTdJIQrZ3NSavkU6zLTMc+DF7as8181ABXIf328 26k5rYqFUQfdBJVscR2loQHpdwcnqlsf8x/USEycm3kC1UZoOv5j8N0tohhcA3+W9Pzqci3 zZx4n+JyAn8V0VVqBlWpC7KLYmriT5gM9MU8gPcKlXrLr579VMd7U1WBqkl8vviEejDoVC1 SnhLXJapQ4DUBVBG9HMOw== X-UI-Out-Filterresults: notjunk:1;V03:K0:vPnd2XOPMCc=:w5NZEE7QONOlEW8iiUbdSy jwX/weY8plWR32CEYu32DPRdcRiOiYcLU8efhcXfSt4YKaXLLtt23oE5qCBQF6vmBocl7w05M QspjP9b7GyFMPj3Y3P2iXbFoC+p7k72v/Pp2tY9aDSN7gni9EE9uA/kAKxAnwzhKL8pO8BYqp 3lDR3YGil1V2jVia8NCjfv7spm66axanCQ5ApmHwYCzUqPKucbrm5xJtMnnrmaWmkgy6PpTYy c06IZ8B924eFpzQsBzneZNeP7yu/l4HQIwhNxRhGdD72fZ+VLcsZ5Pvr4u+QqR9XxZVWXr+z/ vgbng/7YawuNqYz5KqMnntTy8Ylyy+vgXas5pjj2iyODa1/kQgdvmxF70feRF3LU/JlhzYuZp pfIuXyk91A1O2FnQw8j5l6JIPUE9jS0pXwGLl6IZpcZ3yX0FHN6O0x0ZeBKvVBAyiLm5p1+mr 5p3Hu30o6RelUA2d/FA9CZJLj+PKeVGtNKIG2pUTuAVwjMe7UIaBctx7eOvBYTRDcCdJwdGaA UQeJ7TVAbD298FaItvy/t66coc28Nt8cXcoqyBkE90+WDoz0Ez+33dIEgXYoCyD1WOhjr+8NN VYsjKytqGRuMIQL+CupbttWof5asW+LGGxBV6e25T1rM1uE9b/dyyCw9c6pOkdyYX58nleZDk UbH4tdUXQpQRVBZ6pH0cSj6ZFcpGDmNoWcp1l8JbKjXfJvFTQDRhpWKyefpPlOQLlup3haXJk S4ySMsZGaqmXucnQHV8jjVvNegpJ4k1VOfrjNNvqCr+Tp03y7L2gMQ+MwNo= 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 Reviewed-by: Peter Robinson --- 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..ff0dae5a026d 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, "reg-names are missing, please update your DTB.\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 Tue Jun 7 20:42: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: 580029 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 C1700CCA491 for ; Wed, 8 Jun 2022 00:55:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1359116AbiFHAtN (ORCPT ); Tue, 7 Jun 2022 20:49:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42406 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1840648AbiFHAFo (ORCPT ); Tue, 7 Jun 2022 20:05:44 -0400 Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.17.10]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5DE2B1F0FED for ; Tue, 7 Jun 2022 13:43:09 -0700 (PDT) Received: from localhost.localdomain ([37.4.249.155]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1N2mS2-1nmTFT1DiO-0137vM; Tue, 07 Jun 2022 22:42:55 +0200 From: Stefan Wahren To: Florian Fainelli , Ray Jui , Scott Branden , Lee Jones Cc: Peter Robinson , Melissa Wen , Phil Elwell , bcm-kernel-feedback-list@broadcom.com, Maxime Ripard , devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Stefan Wahren Subject: [PATCH V3 07/11] mfd: bcm2835-pm: Add support for BCM2711 Date: Tue, 7 Jun 2022 22:42:22 +0200 Message-Id: <20220607204226.8703-8-stefan.wahren@i2se.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220607204226.8703-1-stefan.wahren@i2se.com> References: <20220607204226.8703-1-stefan.wahren@i2se.com> MIME-Version: 1.0 X-Provags-ID: V03:K1:lSN9giWbbHxeuBSiJpMoDq20z00DV4EofwBJsKST/GGjLhUr4vG fR86G2TAFazCXYlSoX5imST01qdRBOnDMns6h5CxkYYXiUer1XewXbKcnVDdvAerv139fR8 NE+6qFekxhNbPOKcjvlYJNBEuI4LfVXY7bl57ar88UZsA/URuQnCvAAQUzTUDvZ/J3d/NfA 0rEAG2hqSdDAwvyPAWSiQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:93fKr1PEShA=:iUPwPqxF2c6CKKz1QBXk7V OdP2fIrIlktq4vng1TFO78a0Oom0nNBv9cVD7Hi33vxf43/FLjZWX8l5zQh1mq7CBCkU1K8l5 jHWuBZnBnjeTRkUJlIivj1MumffNZAnVRSfSfZ/M2pSqCe5ncR86oLCrGNNnobswTI0yY2boY +TQbrkoa+dby5OOYLtaB72bBG3ebP1odNE8TERmvF6d76v25cHEN+Pj9P5+rAy3NWKWk32qK/ SZcRvCYRe49gYBFvMYpMZCqXvr9XwEQnKeDPlYhy6kfRFMa6iw7fDOFHnuzc3/SpiVKdk66pq FvE7Mqsq1nNQITj62dEC9xR2/R0xxSsT+wconmd4SBI0XBWsT+AOVna88WnVVySC0GYbrSbki BSdQ4itSe8Egt/2bhEMCCNat1bllLp4K9Bp7QxdIKqBWq2bD0rMSsPEB2QKBdc69l5xyqZQxg ipD6Np0xthOJW45lT4lVJC12RDvS7MY6csBepeCkwSdCIeN0epgfaeCrdvxk64BmnCc3mqUg0 O5whBSMpctz/IhwBw/Wgr5OYxRubCMhPYahI0XBiu2ehGqGiXquoBqpDcoQgPAuZaWWA34Z21 VpZ1jXOKSyP1fkIwZstIwjTU+t6aeFG8G79fojzAYBXPAe0KnXMHS5IcmOUWMVB8Qo7OCEDTj 2QYMSrUZX3M1+jKOpTkzpP0yNIkABDhn52ePuBKV6LMkIeb2dVBFNkR0kENk1zEXYFgOduGZd 1MbzbDYzISRXc+MSmtu/3ErnriwtT6kGqTd4CuNa4gAeDBA4jdUmymDEUiA= 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. As per the devicetree bindings, BCM2711 will provide both the old and new ASB resources, so get both of them and pass them into 'bcm2835-power,' which will take care of selecting which one to use accordingly. Since the RPiVid ASB's resources were being provided prior to formalizing the bindings[1], also support the old DT files that didn't use 'reg-names.' Signed-off-by: Stefan Wahren Reviewed-by: Peter Robinson [1] See: 7dbe8c62ceeb ("ARM: dts: Add minimal Raspberry Pi 4 support") --- drivers/mfd/bcm2835-pm.c | 21 +++++++++++++++++++++ include/linux/mfd/bcm2835-pm.h | 1 + 2 files changed, 22 insertions(+) diff --git a/drivers/mfd/bcm2835-pm.c b/drivers/mfd/bcm2835-pm.c index ff0dae5a026d..4a2be669674a 100644 --- a/drivers/mfd/bcm2835-pm.c +++ b/drivers/mfd/bcm2835-pm.c @@ -28,6 +28,8 @@ static const struct mfd_cell bcm2835_power_devs[] = { static int bcm2835_pm_get_pdata(struct platform_device *pdev, struct bcm2835_pm *pm) { + bool is_bcm2711 = of_device_is_compatible(pm->dev->of_node, "brcm,bcm2711-pm"); + /* If no 'reg-names' property is found we can assume we're using old * firmware. */ @@ -39,6 +41,7 @@ static int bcm2835_pm_get_pdata(struct platform_device *pdev, return PTR_ERR(pm->base); pm->asb = devm_platform_ioremap_resource(pdev, 1); + pm->rpivid_asb = devm_platform_ioremap_resource(pdev, 2); } else { struct resource *res; @@ -50,11 +53,28 @@ static int bcm2835_pm_get_pdata(struct platform_device *pdev, "asb"); if (res) pm->asb = devm_ioremap_resource(&pdev->dev, res); + + res = platform_get_resource_byname(pdev, IORESOURCE_MEM, + "rpivid_asb"); + if (res) + pm->rpivid_asb = devm_ioremap_resource(&pdev->dev, + res); } if (IS_ERR(pm->asb)) pm->asb = NULL; + if (IS_ERR(pm->rpivid_asb)) + pm->rpivid_asb = NULL; + + /* Ensure that rpivid_asb is set only for BCM2711, so subsequent + * driver can rely on this and don't get confused by broken DTB. + */ + if (pm->rpivid_asb && !is_bcm2711) { + dev_err(pm->dev, "Unexpected rpivid_asb register, please fix your DTB.\n"); + return -EINVAL; + } + return 0; } @@ -95,6 +115,7 @@ static int bcm2835_pm_probe(struct platform_device *pdev) static const struct of_device_id bcm2835_pm_of_match[] = { { .compatible = "brcm,bcm2835-pm-wdt", }, { .compatible = "brcm,bcm2835-pm", }, + { .compatible = "brcm,bcm2711-pm", }, {}, }; MODULE_DEVICE_TABLE(of, bcm2835_pm_of_match); diff --git a/include/linux/mfd/bcm2835-pm.h b/include/linux/mfd/bcm2835-pm.h index ed37dc40e82a..f70a810c55f7 100644 --- a/include/linux/mfd/bcm2835-pm.h +++ b/include/linux/mfd/bcm2835-pm.h @@ -9,6 +9,7 @@ struct bcm2835_pm { struct device *dev; void __iomem *base; void __iomem *asb; + void __iomem *rpivid_asb; }; #endif /* BCM2835_MFD_PM_H */ From patchwork Tue Jun 7 20:42: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: 580019 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 97727C43334 for ; Wed, 8 Jun 2022 03:07:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231771AbiFHDG5 (ORCPT ); Tue, 7 Jun 2022 23:06:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39326 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1383420AbiFHDF7 (ORCPT ); Tue, 7 Jun 2022 23:05:59 -0400 Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.17.10]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 025711F0FE3 for ; Tue, 7 Jun 2022 13:43:08 -0700 (PDT) Received: from localhost.localdomain ([37.4.249.155]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1MLyzP-1oG4Qr2uED-00I0KD; Tue, 07 Jun 2022 22:42:56 +0200 From: Stefan Wahren To: Florian Fainelli , Ray Jui , Scott Branden , Lee Jones Cc: Peter Robinson , Melissa Wen , Phil Elwell , bcm-kernel-feedback-list@broadcom.com, Maxime Ripard , devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Stefan Wahren Subject: [PATCH V3 10/11] soc: bcm: bcm2835-power: Add support for BCM2711's RPiVid ASB Date: Tue, 7 Jun 2022 22:42:25 +0200 Message-Id: <20220607204226.8703-11-stefan.wahren@i2se.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220607204226.8703-1-stefan.wahren@i2se.com> References: <20220607204226.8703-1-stefan.wahren@i2se.com> MIME-Version: 1.0 X-Provags-ID: V03:K1:DrGPhiljN2HHySf7QaT4eoAuopHSufIfvWCuC3mvkeBvEQWoQEe ATtwlTHKorTQg94UivVxR/Bi1ZqpPRfxt9eC8yLue2HfmFqtZXi5l2D2aEP+nIJk8s1Gqc1 Ddx237LFrHMpMjm+NWGCKxlOQsg2TYpefPg7+92PzZWGf7DjqgFjQNNIYHMbcu1s1m9w8Cq dmijuFpeVBFAvbrUJlR3A== X-UI-Out-Filterresults: notjunk:1;V03:K0:hfI6Mk31Q0E=:iTaH2Nqxxp5KO18o1zeINK twrxC8hi6t1wH+4KKJe1qGI19q/k/hrANoV2prRrN4VTrpYpAqeh5eqWi25MtmE0WwYuNV3+p dG+mYZrsF2eV0oSNmjio9vFkH9tDTXNV1MlugS7InNxYjICO6BnxdIT4In8DqsHHdIvq56pBh aLfPvkHJY2CevIdiOWs6Ph46jk321o7LLsQTy2xppBXrKcCaPY+BQ7WaonLA7W4Rb2bfyXhUK LcOP2qd0pwpA8rG8bE30GzSyws2BJUIvBffDNPZUvbXNre2cilqkJL+Axo4ncdslDpoeAyfXm MuqB4ks3rehxsOY7UuptIojxLHMUkbxC4Od19UroHyULkWQ4kK+Xvvl6vYqx5LdGpDX7lX3Q8 8GVLC+CuJVkiJlkcpLY2eRuG9Y9WFC//2eVh740i0jenAEubg3dWbGa+kRe5IvaYwUjetUA61 Mq1vZ/Qy+rLNtoEHSe+gM8nTvmeG34+thQYX5Yw5FpUYrrO800nP8jLD4z13k9lLVOKgm7bID fJLUe+tY4R999URUqqlAoVf6ulx69k2Y9qoem9F2Q982Cso5MI2ld5ov+w51K8NGpgXRFr8Op Xe+l5w9z2LfnK+jL47TNIGg7H9rheJAd3g8TceasV5sqW7qiR13ENHBgo8MZDDUcAJHSyJtm+ 59El4HmHuvXQ6l05WH7FeBSooEAnJPpgN2zu4UNMuUGPupyfQI4jam9DMXwzHrEOLTkJlYOVj 7Up6I+DM49AwcHOF+0QDkkf1wBAhY6qbITvqZfx234yoS7MT+7tAEei1NQU= 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 Reviewed-by: Peter Robinson --- drivers/soc/bcm/bcm2835-power.c | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/drivers/soc/bcm/bcm2835-power.c b/drivers/soc/bcm/bcm2835-power.c index 9c352f66e6d5..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,8 +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(); @@ -621,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),