From patchwork Wed Mar 8 23:09:26 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Protsenko X-Patchwork-Id: 13166563 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id F1FA1C6FD19 for ; Wed, 8 Mar 2023 23:11:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=hqG+mS43bq+bI/9ybs0GiT0ADYxoWV2XmAahA7V2j5A=; b=SwxWJ6PfdOwihd Xk+m1u/E1P368Bh4wBCPe+HJy/tlOSVbKd12yEM/1pd22i5KXjW2HIKQdaTS64KxhEjfGQDvi0MSZ y+suIbKLhN+hT7f+XeV9cVT69HzJoYk8soTDAexHBK/DhsttzZfZtmtKQ+oOHSmzIR3PEWee3hCwg C+e/J+R8iUhZGtaFAAQJEKCcXy0ox2NZHKS1sIfHwVn6egybuRdJ4JMCBF68OyIKnQdWWFvgWqa4J 61JRJNKm3HpTlAiNOVNkT9sGhl1YKLvO/eYG9W7J0tQ4l9JjpYeYTZQETCSjl5lzAqFoM/ASiPxw/ uok1FNKCy+S3VXbls64Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pa2vA-0072IV-IP; Wed, 08 Mar 2023 23:10:08 +0000 Received: from mail-oa1-x33.google.com ([2001:4860:4864:20::33]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pa2uk-00729v-G1 for linux-arm-kernel@lists.infradead.org; Wed, 08 Mar 2023 23:09:45 +0000 Received: by mail-oa1-x33.google.com with SMTP id 586e51a60fabf-17711f56136so444383fac.12 for ; Wed, 08 Mar 2023 15:09:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1678316973; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+EZCn0NdbTVrvM23U+e5p/n9AtAvNh9rjheRTu832dQ=; b=U2CVKkl/ZZuBfeI0jW1ZRVsvfuNzbJ2tfTxcMSf7yfLuNGGUEAos2v9A5+76sjUOMn bLfP0R9A21kYBAMAsP2q5NrLkd1Nk0j12aoP0R8SNFbxCSz2Xhn/4q2Iqw6Bq0eczdXq CFlHSvrKbNpb6us/ow+CgWfcjNJ8+osRuuUCUQOq+LPXVOmIsJDEjREmDvyYRk2eIKVO 7pE0gWM/6/bcO2dUaBKUPejJWb3RX2lVSmHa2S4pTQ0apLSnx+xNghPARTX4sp2f+utz D98WBVxCB5evOgVqd/CvsrirOv7krNr2sCtPZGzZjXhWUQrYY4tOESrS4yFHpCr/86H4 psaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678316973; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+EZCn0NdbTVrvM23U+e5p/n9AtAvNh9rjheRTu832dQ=; b=RXCzQ5rZ6BGnDQ4WLTNX7e3AW/GVo7cz7UlXfyaswluyKRhqK8i/I3Kh4oCfEEufXW POSa0PIEgMKCqJUhvmjfpjy2WsoMiGL6vcFjcyNQgGeP4ok4XP99hxhJvaVi74Bp65Ih VwhquauPfOcEn5N+KLJyAeKhD+y1krgTAx3rq/zA0wyii1Hni/bcfK/ROSQiJMJkLPsM YxLzSp6YpymCjr7sohaEssLNELZND/UeWsYE5/PnGJgNvsA8XCcoh9G8ZrtATt3JE10k kbQtPdQiDRSmA1lGl25SANgCqIJfYRvCAko7KZlLzJvpc1om8CXiQSx7/zMcca1WSpTf 1mFg== X-Gm-Message-State: AO0yUKXtgcUBhHtz+mrDpWO6A5CD+5b2jhGVKCDrVWmGgDplR48h2FEf xDLtqq68qlzl8+ocjuXFpGRlcw== X-Google-Smtp-Source: AK7set8WrlFPXvBp65SgkmLYgtk/hwpjy3GwLMvFVTawJ5bKZVU6MMUVfwzfFfbn6b215ppGtxMHFw== X-Received: by 2002:a05:6870:a786:b0:172:9ad0:8d5 with SMTP id x6-20020a056870a78600b001729ad008d5mr11331196oao.35.1678316973745; Wed, 08 Mar 2023 15:09:33 -0800 (PST) Received: from localhost ([136.49.140.41]) by smtp.gmail.com with ESMTPSA id w16-20020a056870431000b00172428894e0sm6633286oah.28.2023.03.08.15.09.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Mar 2023 15:09:33 -0800 (PST) From: Sam Protsenko To: Krzysztof Kozlowski , Rob Herring Cc: Alim Akhtar , Marek Szyprowski , Chanwoo Choi , Chanho Park , David Virag , linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/6] dt-bindings: power: pd-samsung: Add Exynos850 support Date: Wed, 8 Mar 2023 17:09:26 -0600 Message-Id: <20230308230931.27261-2-semen.protsenko@linaro.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230308230931.27261-1-semen.protsenko@linaro.org> References: <20230308230931.27261-1-semen.protsenko@linaro.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230308_150942_562362_A1BA7264 X-CRM114-Status: GOOD ( 15.69 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Document the compatible string for Exynos850 power domains controller. Also add power domain indices which can be used in "samsung,pd-index" property to specify a particular power domain in the device tree. Signed-off-by: Sam Protsenko --- .../devicetree/bindings/power/pd-samsung.yaml | 1 + MAINTAINERS | 1 + .../dt-bindings/power/samsung,exynos850-power.h | 17 +++++++++++++++++ 3 files changed, 19 insertions(+) create mode 100644 include/dt-bindings/power/samsung,exynos850-power.h diff --git a/Documentation/devicetree/bindings/power/pd-samsung.yaml b/Documentation/devicetree/bindings/power/pd-samsung.yaml index 9c2c51133457..a353a705292c 100644 --- a/Documentation/devicetree/bindings/power/pd-samsung.yaml +++ b/Documentation/devicetree/bindings/power/pd-samsung.yaml @@ -21,6 +21,7 @@ properties: enum: - samsung,exynos4210-pd - samsung,exynos5433-pd + - samsung,exynos850-pd reg: maxItems: 1 diff --git a/MAINTAINERS b/MAINTAINERS index 8d5bc223f305..53e11e48639c 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2720,6 +2720,7 @@ F: drivers/pwm/pwm-samsung.c F: drivers/soc/samsung/ F: drivers/tty/serial/samsung* F: include/clocksource/samsung_pwm.h +F: include/dt-bindings/power/samsung,* F: include/linux/platform_data/*s3c* F: include/linux/serial_s3c.h F: include/linux/soc/samsung/ diff --git a/include/dt-bindings/power/samsung,exynos850-power.h b/include/dt-bindings/power/samsung,exynos850-power.h new file mode 100644 index 000000000000..a8d877b5515a --- /dev/null +++ b/include/dt-bindings/power/samsung,exynos850-power.h @@ -0,0 +1,17 @@ +/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ +/* + * Copyright (c) 2023 Linaro Ltd. + * Author: Sam Protsenko + */ + +#ifndef _DT_BINDINGS_POWER_EXYNOS850_POWER_H +#define _DT_BINDINGS_POWER_EXYNOS850_POWER_H + +#define EXYNOS850_PD_HSI 0 +#define EXYNOS850_PD_G3D 1 +#define EXYNOS850_PD_MFCMSCL 2 +#define EXYNOS850_PD_DPU 3 +#define EXYNOS850_PD_AUD 4 +#define EXYNOS850_PD_IS 5 + +#endif /* _DT_BINDINGS_POWER_EXYNOS850_POWER_H */ From patchwork Wed Mar 8 23:09:27 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Protsenko X-Patchwork-Id: 13166561 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 701D2C64EC4 for ; Wed, 8 Mar 2023 23:10:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=SeoEck9e3+ZEQNoqwkTc1fwoHTwAa2jsf3Gk506/Oa4=; b=fp8VvtG1vdqcZb bvFenlCcA9/CKfl6Y1KNzWQSFY2FAOYzS4R+CLvunDS4/fPBg3ZthRGH6a3EeAuIdGMZ4Bebd0z8M 153rDkyA5PDZZOzyoJ/N40j1xV9b367AWNBQMeMezkZVqA3gEiO0R3gZFixqwo9ks4WZZNEuB8vKe 92WI1liwC/i6KjB7x0GLTaE0Zk4NTTbP1OFn7aXT8U1YDx65u9wFsuPbQFzwxh0DTL/O9UER9x/of UrvO6W2FgT+6lcC0VTmeHjhZVBSwRqqCRwfle61El3k+m3sPHRtiN3dsPGU0udcqHjWV6OCNpB92W c+QvojLJcWWA06gYdv7w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pa2un-0072DB-PA; Wed, 08 Mar 2023 23:09:45 +0000 Received: from mail-ot1-x330.google.com ([2607:f8b0:4864:20::330]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pa2uk-0072A4-6y for linux-arm-kernel@lists.infradead.org; Wed, 08 Mar 2023 23:09:43 +0000 Received: by mail-ot1-x330.google.com with SMTP id a4-20020a056830008400b0069432af1380so85702oto.13 for ; Wed, 08 Mar 2023 15:09:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1678316975; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=J5PJqs5BsEDG1wdBjWwvXsmxEV4UYqM9XMe4BPKxtuE=; b=ZU2X+gAAyNbrZY+ccoI8srKvzJyr8um35igO3wIc7sMBIwllqYYzfzRU6hDuVGzBr0 Z1nYOwbnWSEU2h/QgERS5S+ydFsTvlH6nNRE6m/j2Ky9GxN0Ci41a7LPYHEiiTVxReeS 5/rsNyudWq6Ka5nqw1VCHvBgAFvmaBpkSChwE6nZBj4I59II15cjF9FSygL2ikudqtxw qHohzOZJtqX/gh0emEUgvxEyOY7gXKgDlB3fses6xEISy921rs9AcR/5Pl2Aa9G8erh1 ykGcKppFLstx1j6aEsp4/FwxKopraCwUk/BgBZrvZbWjl35uDJagPNrJBvQ8ucaq8GfB 0JTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678316975; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=J5PJqs5BsEDG1wdBjWwvXsmxEV4UYqM9XMe4BPKxtuE=; b=HHOREKP5C/whwBbZ5VpYHLJjFhMYbWPKVZDX56dL8Na4ftp7XGx4Gzm2E4jx9NP4oh OOool1NJsadDUDGCrNeSkLSR3mfhFpTFMmtRljD5ZyIHXbQaPmfT33M88u2k1aomAPoQ M8WXwcwhl+HQTxQg3y3qGjdb02yoYbVxPn4smWlH44UkKHNVyVOLgQs2cqfvix8pb5cE f3CZeeDwO20sn+SHJ+jfxuLh1ULhgoJn2FMVtaaaVeL5vRVny0KfujEpCRqLmNauTn2Y 47zzQxrEHTVN7On5n7BaBNoD6PG+7g6KwtNMWgaPv9Vso8s452ukfglNS0kz7h4uwPkK FSfg== X-Gm-Message-State: AO0yUKWPaX8VwiX7Ycezp7jedVb2c7IVdES7/c6uWvhsI+4dksP/Xu60 Ha1lif2g2w+4RgjQXMoYuT0NsQ== X-Google-Smtp-Source: AK7set9Bws1cMOebllDwvv/UMswljCg2/saQYhCNiwvbJgz55DbPlRXex9ohzIAXXIZMreMO0qAwgA== X-Received: by 2002:a05:6830:1f42:b0:68d:41b2:5b75 with SMTP id u2-20020a0568301f4200b0068d41b25b75mr9166479oth.11.1678316975008; Wed, 08 Mar 2023 15:09:35 -0800 (PST) Received: from localhost ([136.49.140.41]) by smtp.gmail.com with ESMTPSA id q24-20020a05683031b800b0068bc48c61a5sm6976067ots.19.2023.03.08.15.09.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Mar 2023 15:09:34 -0800 (PST) From: Sam Protsenko To: Krzysztof Kozlowski , Rob Herring Cc: Alim Akhtar , Marek Szyprowski , Chanwoo Choi , Chanho Park , David Virag , linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/6] dt-bindings: power: pd-samsung: Allow pd nodes to be children of PMU Date: Wed, 8 Mar 2023 17:09:27 -0600 Message-Id: <20230308230931.27261-3-semen.protsenko@linaro.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230308230931.27261-1-semen.protsenko@linaro.org> References: <20230308230931.27261-1-semen.protsenko@linaro.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230308_150942_273298_A619CAB9 X-CRM114-Status: GOOD ( 12.93 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Introduce a new "samsung,pd-index" property to choose a specific power domain. This way it would be possible to avoid specifying any addresses in power domain nodes, relying solely on syscon regmap from the parent node (which should be a PMU system controller). Therefore the "reg" property is deprecated now, as it's more logical to describe power domains as children of PMU node, because PD registers reside in the PMU area. Signed-off-by: Sam Protsenko --- .../devicetree/bindings/power/pd-samsung.yaml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/power/pd-samsung.yaml b/Documentation/devicetree/bindings/power/pd-samsung.yaml index a353a705292c..73178b1a56ea 100644 --- a/Documentation/devicetree/bindings/power/pd-samsung.yaml +++ b/Documentation/devicetree/bindings/power/pd-samsung.yaml @@ -25,6 +25,10 @@ properties: reg: maxItems: 1 + deprecated: true + description: + Physical base address and length of Power Domains area (if not a child of + PMU). clocks: deprecated: true @@ -45,10 +49,15 @@ properties: power-domains: maxItems: 1 + samsung,pd-index: + $ref: /schemas/types.yaml#/definitions/uint32 + description: | + Power domain index (if a child of PMU). Valid values are defined in:: + "include/dt-bindings/power/samsung,exynos850-power.h" - for Exynos850 + required: - compatible - "#power-domain-cells" - - reg unevaluatedProperties: false From patchwork Wed Mar 8 23:09:28 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Protsenko X-Patchwork-Id: 13166564 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 7A954C678D5 for ; Wed, 8 Mar 2023 23:11:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=ALqCDC8BmPyWQ9UtuAyAWW1/4NSfBXmgXH9ehz1Vf8g=; b=qAvgklVLBecU4t WSz3T30CM3Pr87K+kkohS7Y/IvYxXqt36AndxMrrEUMBsks42HQfAFF9ZbhE5rAPaB/7PYuSps3xC SHWm6OKEItv42hg0P0CbzeQMVqcF7htlkPr4nftc1sXsW0krKsvH1sHTnzjhtBzCgZ9lUGQJlxnhn QPDiDszoHgHLOlb6iXPsfuKTLPW2bdpUVooTvUOE/8qLruIfzj7fb5XwR+GdaFEN8szfYYX4QQrtr gPh4o8WTY0mndh+j+IlHVDGXBevKt2TEzcfYNHh21YILSdjxqB3LDy3Zu1Av2WwwNTDJpm3YcDXyM 3BjYFm8FNJqJ4KebsKEQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pa2vI-0072KR-AH; Wed, 08 Mar 2023 23:10:16 +0000 Received: from mail-oa1-x36.google.com ([2001:4860:4864:20::36]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pa2uk-0072AA-F5 for linux-arm-kernel@lists.infradead.org; Wed, 08 Mar 2023 23:09:45 +0000 Received: by mail-oa1-x36.google.com with SMTP id 586e51a60fabf-176e43eb199so476377fac.7 for ; Wed, 08 Mar 2023 15:09:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1678316976; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=oCgoAAph+CJJQ/HXPDLlsZa6JDKmYlP9bMJP4xpZGTc=; b=ipb8NHtUtwLc9dxs8eFwm36R1+cjKR4a1WtnYtAuOVzgQSe1pUwRVCLF5dRVhyzMic N+DH+iurQ3clHBolZUJCOTWhArA9ZgJ6lhDZYHNPEO0XUA2Dc+fJBo/9+3q7VmWvz81j ymAC45KTfTfanXJoe4JPZJxHTxdIMrlpefmtXPUi2x9Sex1XSfgQt3qj7LX8dWY0fY/c wmzEMM2hs6LYkG9F6i7CfSkX7ZKUs7HtDkhTH1WQR6sPxUy/F5WATBSaq26d1bYVIUYH T1e+NZK1694QqTLm/oKJSC9zWPZ6F2rzYqNr4DJMfbpmT0fbEmh5j8RPKOHDxYG/DYN2 qD1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678316976; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=oCgoAAph+CJJQ/HXPDLlsZa6JDKmYlP9bMJP4xpZGTc=; b=IpO9Y1Na8b+DzqxMSVz+Rnc1XbguDmtjZkaoY0UDgFK7SaVcvlosl+IFbfnAd/UHdp IfDUj+X/YCYvHlmtRDVbtWxj6wu8DCB200gqBooidOfbUlMPyzK3zCuHvKF1iQbdsD8V NwvBISIBn7h2YUjTxpi4jeujWYi0QFf1QjWGdQmQcUXgOjSWj2SbO/94zAMS3WlTh+Ta d2y6w1T44PjrbmvakbH9VD2WDhNMxWCa1gqfsp1Yp1QJFxiCjq7HYirx0HJZAgpsdUhz FjPRIerTBbO3ST2IeG2rdbtWA4rpc2t3t+aMKFmen5Sme9eoqnpOAKTlE5A9Wl6MTI0g iAig== X-Gm-Message-State: AO0yUKWwrtmC4yePAYKmgFPlBYzV46A319o4zB5kzLD48psAin8A6fyG /FVWKgdjy7xA0bYyIexRP1BLDA== X-Google-Smtp-Source: AK7set9SbpiNCtT5Bu/YFGwhpd/OImP2SC1fW1w2Pjpy8utXilwnFH7Qw//TyEQfQYfv5mXgwr/czA== X-Received: by 2002:a05:6870:20e:b0:163:595e:3655 with SMTP id j14-20020a056870020e00b00163595e3655mr12008494oad.12.1678316976311; Wed, 08 Mar 2023 15:09:36 -0800 (PST) Received: from localhost ([136.49.140.41]) by smtp.gmail.com with ESMTPSA id s6-20020a056870ea8600b0016e49af5815sm6716829oap.51.2023.03.08.15.09.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Mar 2023 15:09:36 -0800 (PST) From: Sam Protsenko To: Krzysztof Kozlowski , Rob Herring Cc: Alim Akhtar , Marek Szyprowski , Chanwoo Choi , Chanho Park , David Virag , linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/6] soc: samsung: pm_domains: Extract DT handling into a separate function Date: Wed, 8 Mar 2023 17:09:28 -0600 Message-Id: <20230308230931.27261-4-semen.protsenko@linaro.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230308230931.27261-1-semen.protsenko@linaro.org> References: <20230308230931.27261-1-semen.protsenko@linaro.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230308_150942_533650_694197D7 X-CRM114-Status: GOOD ( 17.08 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org As DT parsing code tends to grow with time, make it a separate routine. While at it, replace kstrdup_const() with devm_kstrdup_const() in order to avoid manual memory management and simplify the error path. Signed-off-by: Sam Protsenko --- drivers/soc/samsung/pm_domains.c | 39 +++++++++++++++++++------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/drivers/soc/samsung/pm_domains.c b/drivers/soc/samsung/pm_domains.c index d07f3c9d6903..522a43005a5a 100644 --- a/drivers/soc/samsung/pm_domains.c +++ b/drivers/soc/samsung/pm_domains.c @@ -27,6 +27,7 @@ struct exynos_pm_domain_config { * Exynos specific wrapper around the generic power domain */ struct exynos_pm_domain { + struct device *dev; void __iomem *base; struct generic_pm_domain pd; u32 local_pwr_cfg; @@ -91,42 +92,48 @@ static const struct of_device_id exynos_pm_domain_of_match[] = { { }, }; -static const char *exynos_get_domain_name(struct device_node *node) +static int exynos_pd_parse_dt(struct exynos_pm_domain *pd) { + const struct exynos_pm_domain_config *variant; + struct device *dev = pd->dev; + struct device_node *np = dev->of_node; const char *name; - if (of_property_read_string(node, "label", &name) < 0) - name = kbasename(node->full_name); - return kstrdup_const(name, GFP_KERNEL); + variant = of_device_get_match_data(dev); + pd->local_pwr_cfg = variant->local_pwr_cfg; + + if (of_property_read_string(np, "label", &name) < 0) + name = kbasename(np->full_name); + pd->pd.name = devm_kstrdup_const(dev, name, GFP_KERNEL); + if (!pd->pd.name) + return -ENOMEM; + + pd->base = of_iomap(np, 0); + if (!pd->base) + return -ENODEV; + + return 0; } static int exynos_pd_probe(struct platform_device *pdev) { - const struct exynos_pm_domain_config *pm_domain_cfg; struct device *dev = &pdev->dev; struct device_node *np = dev->of_node; struct of_phandle_args child, parent; struct exynos_pm_domain *pd; int on, ret; - pm_domain_cfg = of_device_get_match_data(dev); pd = devm_kzalloc(dev, sizeof(*pd), GFP_KERNEL); if (!pd) return -ENOMEM; - pd->pd.name = exynos_get_domain_name(np); - if (!pd->pd.name) - return -ENOMEM; - - pd->base = of_iomap(np, 0); - if (!pd->base) { - kfree_const(pd->pd.name); - return -ENODEV; - } + pd->dev = dev; + ret = exynos_pd_parse_dt(pd); + if (ret) + return ret; pd->pd.power_off = exynos_pd_power_off; pd->pd.power_on = exynos_pd_power_on; - pd->local_pwr_cfg = pm_domain_cfg->local_pwr_cfg; on = readl_relaxed(pd->base + 0x4) & pd->local_pwr_cfg; From patchwork Wed Mar 8 23:09:29 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Protsenko X-Patchwork-Id: 13166565 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 5CE2BC74A4B for ; Wed, 8 Mar 2023 23:11:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=wbdFnu3OF20RMjNIbXyon/Tr7QXBt8CrsGn+ztXyDK0=; b=n2r4gLJIAMmQY8 w1g9DA21S5DHnhpq7Vu7KOSdXrvwMe/plM8eZAMuiiY75bShfsobNeQFVpNCKBhEwODNvmPL3OFjF xyo2NzzW+IovBuKiForX2c+xQaq5StVpc7sFk49qQSSZQvSBxQkiU8TVqYYPoG7E43NBgiRKQQ9Ho S+zc+wYZoPTtWFrxnnO4tQC47r2W62v4qwOznpUaUn0H+1Vuq7fsX/xkB82ckrB0PTXaawQ0a90q9 qZ/5VI8Y+NB1bblDMGNekRhj3pfxKRyvH44T+z6g41GyAoOrjkiikWpxpCRBYEum9tZMig8uxUZ/j 7WVNix4N03UXVbOqVm9g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pa2vR-0072PN-68; Wed, 08 Mar 2023 23:10:25 +0000 Received: from mail-oi1-x230.google.com ([2607:f8b0:4864:20::230]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pa2ur-0072AW-TZ for linux-arm-kernel@lists.infradead.org; Wed, 08 Mar 2023 23:09:51 +0000 Received: by mail-oi1-x230.google.com with SMTP id bh20so310141oib.9 for ; Wed, 08 Mar 2023 15:09:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1678316979; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=PcyN6J8psmsD0AipK3PVomDiouRZnU8VIxAcqRxXEto=; b=q3IlJ0PtdTA2WKmAG1d3tU8qg7pF582NBzTvvAggce9S3FSEvf8Gz1eSbYK8GaLQnn 6L2l9Sf3hNlSlEip7YSk0h/xcJl+Ed7vho0cOw6r7pTJBDMwPj18FOSbZDbSMGgx6VGu RfpZTkv8DVSB82/Own1gEy/I1RlVGgYO6k9+mn+kdO5UJMSgL7tSBwUsfV+9OI+WMrEy mRfk0RAD/el8kQzsmmsXmjXPj3YV5Iy7eE+rEN3xqqqKeRL9XgsSHMn8wooKY7iXKRbY XSLksVHSnubrHoKQmQO/yhDHgAuLvhlUBANYUW53lOO+bskC5Op3QxwZY4WFty3woN9C IQtA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678316979; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=PcyN6J8psmsD0AipK3PVomDiouRZnU8VIxAcqRxXEto=; b=OcDTLekW69/vvZscbu5H32ACfvQPqq0W3ZRsKZFaYkn79xDsRFIIyyXlpqaFNI7wKQ NeihwrLoVE4UhSh0X4+3Hf5cHv1BTK+IRJRs1+jb3kFl5RajzN6r4r/hoJabqBiMfylT t0OJZa2tSpewobkGuRTJyfG1Chp1r3FIe+2pAjE4GyfbV6SrGxt9wNTJIYx9pl1cEblU x6P9uLc845smUsv5fCo7qmY1XVtmxj1o7GwWmjH6MHZOUNIX+833c3PlCSZuRQ62MTdN o7HavsvGANaszsW5coWjCOyMuDFDXOyIOn4VVXMCEHOVqfnjVygeZmAksbf7dMfQ+mfb wjwQ== X-Gm-Message-State: AO0yUKUcp9yBy15QWeAjX6AQ7QeuaE3RJM13RVXe7MuQ1ydlylfbc+oI vybwBuPrNdwjUHSaqMxYQMoyFw== X-Google-Smtp-Source: AK7set96vUGZQ9x3seGiIj9aPGfeXEqlsBW10Gzyw7TR94eZbEmXWAiaUl8btBnUMn29SmszXEwL6g== X-Received: by 2002:aca:240c:0:b0:384:349a:15ef with SMTP id n12-20020aca240c000000b00384349a15efmr9062265oic.36.1678316977577; Wed, 08 Mar 2023 15:09:37 -0800 (PST) Received: from localhost ([136.49.140.41]) by smtp.gmail.com with ESMTPSA id g10-20020a9d618a000000b006864c8043e0sm6969520otk.61.2023.03.08.15.09.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Mar 2023 15:09:37 -0800 (PST) From: Sam Protsenko To: Krzysztof Kozlowski , Rob Herring Cc: Alim Akhtar , Marek Szyprowski , Chanwoo Choi , Chanho Park , David Virag , linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 4/6] soc: samsung: pm_domains: Implement proper I/O operations Date: Wed, 8 Mar 2023 17:09:29 -0600 Message-Id: <20230308230931.27261-5-semen.protsenko@linaro.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230308230931.27261-1-semen.protsenko@linaro.org> References: <20230308230931.27261-1-semen.protsenko@linaro.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230308_150949_982463_02AA8D67 X-CRM114-Status: GOOD ( 18.20 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Instead of doing in-place readl()/writel() calls fed with magic numbers, provide dedicated read/write functions which implement proper register accesses: - Get rid of magic numbers by introducing actual constants for PD registers - Rework the write function to perform a RMW operation, as PD registers have some bits markes as "Reserved" in TRM, which shouldn't be changed - Add helper functions for reading the STATUS reg and writing CONFIGURATION reg, to make user code more neat and clean New functions are designed in such a way that it's easy to rework those further on top of regmap API. Signed-off-by: Sam Protsenko --- drivers/soc/samsung/pm_domains.c | 42 +++++++++++++++++++++++++++++--- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/drivers/soc/samsung/pm_domains.c b/drivers/soc/samsung/pm_domains.c index 522a43005a5a..dd1ec3541e11 100644 --- a/drivers/soc/samsung/pm_domains.c +++ b/drivers/soc/samsung/pm_domains.c @@ -18,6 +18,10 @@ #include #include +/* Register offsets inside Power Domain area in PMU */ +#define EXYNOS_PD_CONF 0x0 +#define EXYNOS_PD_STATUS 0x4 + struct exynos_pm_domain_config { /* Value for LOCAL_PWR_CFG and STATUS fields for each domain */ u32 local_pwr_cfg; @@ -33,6 +37,37 @@ struct exynos_pm_domain { u32 local_pwr_cfg; }; +static void exynos_pd_write(struct exynos_pm_domain *pd, unsigned int reg, + unsigned int mask, unsigned int val) +{ + u32 v; + + v = readl_relaxed(pd->base + reg); + v = (v & ~mask) | val; + writel_relaxed(v, pd->base + reg); +} + +static void exynos_pd_read(struct exynos_pm_domain *pd, unsigned int reg, + unsigned int *val) +{ + *val = readl_relaxed(pd->base + reg); +} + +static unsigned int exynos_pd_read_status(struct exynos_pm_domain *pd) +{ + unsigned int val; + + exynos_pd_read(pd, EXYNOS_PD_STATUS, &val); + val &= pd->local_pwr_cfg; + + return val; +} + +static void exynos_pd_write_conf(struct exynos_pm_domain *pd, u32 val) +{ + exynos_pd_write(pd, EXYNOS_PD_CONF, pd->local_pwr_cfg, val); +} + static int exynos_pd_power(struct generic_pm_domain *domain, bool power_on) { struct exynos_pm_domain *pd; @@ -44,12 +79,12 @@ static int exynos_pd_power(struct generic_pm_domain *domain, bool power_on) base = pd->base; pwr = power_on ? pd->local_pwr_cfg : 0; - writel_relaxed(pwr, base); + exynos_pd_write_conf(pd, pwr); /* Wait max 1ms */ timeout = 10; - while ((readl_relaxed(base + 0x4) & pd->local_pwr_cfg) != pwr) { + while (exynos_pd_read_status(pd) != pwr) { if (!timeout) { op = (power_on) ? "enable" : "disable"; pr_err("Power domain %s %s failed\n", domain->name, op); @@ -135,8 +170,7 @@ static int exynos_pd_probe(struct platform_device *pdev) pd->pd.power_off = exynos_pd_power_off; pd->pd.power_on = exynos_pd_power_on; - on = readl_relaxed(pd->base + 0x4) & pd->local_pwr_cfg; - + on = exynos_pd_read_status(pd); pm_genpd_init(&pd->pd, NULL, !on); ret = of_genpd_add_provider_simple(np, &pd->pd); From patchwork Wed Mar 8 23:09:30 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Protsenko X-Patchwork-Id: 13166562 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E5F0BC6FD19 for ; Wed, 8 Mar 2023 23:10:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=m2H4XAJVfcA2LUzF86YM/CQrhluWVkm14Hg4d1f4c/w=; b=mS+D8dC2sPRXTa Y25316fyIWXUqTzZGmzZPPJxd5uiYVskO6jdZ993zahPTxbVvAL2vOdGA9Bccc2cAYEe/eIR/jD9n 4axzu1szDAw3AuJ/I5Mm+bT7gaqV+SyGzt4SNBJwTt6XpUlQYnqsN1eFj1Jt5C26YkwlSrW0Oofa9 jmovwwzt7cn2t4wvc01APIDRdp4ZOEEyCUJjnJYIubbawJ45i2PEdH2P5wAzIOyI4Zi88RQ4kJqXc N4JBVRL+J7eXy3UJRz60hLxO6x1qQdXXmCl5h91Aq/1eNzLVA33sRTMAx9wkxWsz7r1AhChwe87He X/h8xVMbePQ35PqllWBQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pa2v2-0072GR-RP; Wed, 08 Mar 2023 23:10:00 +0000 Received: from mail-oo1-xc30.google.com ([2607:f8b0:4864:20::c30]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pa2uk-0072AU-7U for linux-arm-kernel@lists.infradead.org; Wed, 08 Mar 2023 23:09:45 +0000 Received: by mail-oo1-xc30.google.com with SMTP id e12-20020a4ae0cc000000b00525034ca5e9so35083oot.0 for ; Wed, 08 Mar 2023 15:09:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1678316979; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=vEY2uA2o2oPbWjPX8guKf4jPFyrDqDNeEX5TBL2/D90=; b=j6kAa0wPCPa7yN1ZIU3m6I1acUcTN9xge5yJvWmt5R58739PeZyQDvykgJ2PNvk5oE Ca3l8dybpeMnDf11qoqQEH0L5uHd0PVAQOjKKbnPrdBVUjaPayhpl9ni3ZkuwvWPZRt9 VTxJjn3jd0L9M/R/rI7ML0V7h9TLwvDIEvxs4jevQK+0d0WvBy4OIyRggInkDeRJ/uq8 mmSxX1UQKKxKmVnDHwq+uRzykwyy4fl0uOiMFutoyDxemoL/eSmmn1+uxLbG+7A1Ey4E 9lQqBddbKl96/521JETtnFyEDRt04svDU4akF3CI16xjwSR498CqRevfaxRmlJ5WZEku liXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678316979; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vEY2uA2o2oPbWjPX8guKf4jPFyrDqDNeEX5TBL2/D90=; b=ELp02x1FQhWfFMia4tdt13/nqf9tsDQoaz34XDOLQ5rTC7KzjEYi2hOWQCKSMeL39n MMk9KC0cqplyDd3GdjoC4Fvri0xTuwOU1JLAcwu+wXpEw70r8mc1aAxu8ZxdIhw9ITwk xvKX8u16BD96szP/lPscXEFWo0bcldfWTTqhRnZ5KGNp0e2CcNd06y/XwUMwrUKr36Nt l+OQVCd2cOwSOVnCL6w9VT5qshSxRG3PbngTki59UKt4MwQYSLJNPaIZ9ZTV/Q4KMRAE xH7g54f2XhY6e8cj7PXKWhPFg0CNibMI1JMBxsaOgvzsNpsxl990TRsR3LhKHUAjuIBP z6GA== X-Gm-Message-State: AO0yUKW0enUqv5T2ardUvj2BQ+aU92WL4B04b8t0U+XnYDBoaM0YqnS0 I9i1Q+X3gLl5LT5ci8Z3i25Jsw== X-Google-Smtp-Source: AK7set88QmQlJhM0W50tNT2+6aJVp6JPQ62Z1IozArM9BOkPuX7PtZUWUiN/ybmikpNvxg2vWqeETQ== X-Received: by 2002:a4a:8007:0:b0:525:25f1:af68 with SMTP id x7-20020a4a8007000000b0052525f1af68mr7533432oof.3.1678316978837; Wed, 08 Mar 2023 15:09:38 -0800 (PST) Received: from localhost ([136.49.140.41]) by smtp.gmail.com with ESMTPSA id x8-20020a9d4588000000b00690e21a46e1sm6952404ote.56.2023.03.08.15.09.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Mar 2023 15:09:38 -0800 (PST) From: Sam Protsenko To: Krzysztof Kozlowski , Rob Herring Cc: Alim Akhtar , Marek Szyprowski , Chanwoo Choi , Chanho Park , David Virag , linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 5/6] soc: samsung: pm_domains: Allow PD to be a child of PMU syscon Date: Wed, 8 Mar 2023 17:09:30 -0600 Message-Id: <20230308230931.27261-6-semen.protsenko@linaro.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230308230931.27261-1-semen.protsenko@linaro.org> References: <20230308230931.27261-1-semen.protsenko@linaro.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230308_150942_291932_D8286FB5 X-CRM114-Status: GOOD ( 22.28 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Power Domains registers are a part of the PMU area in Exynos SoCs. The PMU area is shared between multiple users (like WDT driver, reset driver, PD driver, etc), and it's usually already implemented as a system controller in the SoC device tree. Make it possible for a PD node to be a child of that PMU syscon and utilize its shared regmap instance in PD driver to access the PMU area registers. When a PD node is a child of PMU, the "samsung,pd-index" DT property is used to specify the particular power domain (instead of providing base address in "reg" property). Implement the support for that index property, so that the driver can look up corresponding register offsets by that index, if the property is present. But also keep the compatibility with existing device trees where the index property is not defined in PD nodes and which rely on raw read/write access to the PMU registers. Signed-off-by: Sam Protsenko --- drivers/soc/samsung/Kconfig | 1 + drivers/soc/samsung/pm_domains.c | 49 ++++++++++++++++++++++++++------ 2 files changed, 41 insertions(+), 9 deletions(-) diff --git a/drivers/soc/samsung/Kconfig b/drivers/soc/samsung/Kconfig index 7a8f291e7704..dfe7a973b272 100644 --- a/drivers/soc/samsung/Kconfig +++ b/drivers/soc/samsung/Kconfig @@ -51,6 +51,7 @@ config EXYNOS_PMU_ARM_DRIVERS config EXYNOS_PM_DOMAINS bool "Exynos PM domains" if COMPILE_TEST depends on (ARCH_EXYNOS && PM_GENERIC_DOMAINS) || COMPILE_TEST + select MFD_SYSCON config SAMSUNG_PM_CHECK bool "S3C2410 PM Suspend Memory CRC" diff --git a/drivers/soc/samsung/pm_domains.c b/drivers/soc/samsung/pm_domains.c index dd1ec3541e11..ec630a151247 100644 --- a/drivers/soc/samsung/pm_domains.c +++ b/drivers/soc/samsung/pm_domains.c @@ -17,6 +17,8 @@ #include #include #include +#include +#include /* Register offsets inside Power Domain area in PMU */ #define EXYNOS_PD_CONF 0x0 @@ -25,6 +27,10 @@ struct exynos_pm_domain_config { /* Value for LOCAL_PWR_CFG and STATUS fields for each domain */ u32 local_pwr_cfg; + + /* Power domain offsets in PMU area, for each power domain index */ + const unsigned int *pd_offsets; + size_t pd_offsets_num; }; /* @@ -35,22 +41,32 @@ struct exynos_pm_domain { void __iomem *base; struct generic_pm_domain pd; u32 local_pwr_cfg; + + unsigned int offset; + struct regmap *pmureg; }; static void exynos_pd_write(struct exynos_pm_domain *pd, unsigned int reg, unsigned int mask, unsigned int val) { - u32 v; - - v = readl_relaxed(pd->base + reg); - v = (v & ~mask) | val; - writel_relaxed(v, pd->base + reg); + if (pd->pmureg) { + regmap_update_bits(pd->pmureg, pd->offset + reg, mask, val); + } else { + u32 v; + + v = readl_relaxed(pd->base + reg); + v = (v & ~mask) | val; + writel_relaxed(v, pd->base + reg); + } } static void exynos_pd_read(struct exynos_pm_domain *pd, unsigned int reg, unsigned int *val) { - *val = readl_relaxed(pd->base + reg); + if (pd->pmureg) + regmap_read(pd->pmureg, pd->offset + reg, val); + else + *val = readl_relaxed(pd->base + reg); } static unsigned int exynos_pd_read_status(struct exynos_pm_domain *pd) @@ -133,6 +149,8 @@ static int exynos_pd_parse_dt(struct exynos_pm_domain *pd) struct device *dev = pd->dev; struct device_node *np = dev->of_node; const char *name; + u32 index; + int ret; variant = of_device_get_match_data(dev); pd->local_pwr_cfg = variant->local_pwr_cfg; @@ -143,9 +161,22 @@ static int exynos_pd_parse_dt(struct exynos_pm_domain *pd) if (!pd->pd.name) return -ENOMEM; - pd->base = of_iomap(np, 0); - if (!pd->base) - return -ENODEV; + ret = of_property_read_u32(np, "samsung,pd-index", &index); + if (!ret) { + if (index >= variant->pd_offsets_num) + return -EINVAL; + if (!dev->parent) + return -ENODEV; + + pd->offset = variant->pd_offsets[index]; + pd->pmureg = syscon_node_to_regmap(dev->parent->of_node); + if (IS_ERR(pd->pmureg)) + return PTR_ERR(pd->pmureg); + } else { + pd->base = of_iomap(np, 0); + if (!pd->base) + return -ENODEV; + } return 0; } From patchwork Wed Mar 8 23:09:31 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Protsenko X-Patchwork-Id: 13166566 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 9DA34C678D5 for ; Wed, 8 Mar 2023 23:11:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=LUMLkA17Yf56TofDAMEVMrPkbmWXXGmyl0zNu35C3fE=; b=iN/rN/pKOmSirh 5a218uyeCERC5JRHgC+HQ1hidr9MHI7ZGN18ThRE7g1wvejMiGVvxJp/QjK0ji6nGKPbD1Tb2qNJM ooAgHZ2IgZ1XJ6EkGTRON7kxgTwf24Ft58/oq3+cuG5CnXLleOYr5hSwbgHNvXKKkwzht9nnjBbDt nHbtvblgSA7u6invmGIb4tOBPfQyhgykH+RMiedNWM+aDO+yYWoE9iZrzpI5NXhQEvA83bpJSxJPy y73XyUbibr00N0XAPLtH/VH1FMxwhgY3/QDgmaZwTi7ZY8/dCQqBb2PDO/LVA/BdZVdHJmuZyPZD/ aZCK4Pka2XJrg9fcznYg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pa2vb-0072V9-EM; Wed, 08 Mar 2023 23:10:35 +0000 Received: from mail-ot1-x32c.google.com ([2607:f8b0:4864:20::32c]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pa2ut-0072Ax-70 for linux-arm-kernel@lists.infradead.org; Wed, 08 Mar 2023 23:09:52 +0000 Received: by mail-ot1-x32c.google.com with SMTP id e26-20020a9d6e1a000000b00694274b5d3aso105130otr.5 for ; Wed, 08 Mar 2023 15:09:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1678316980; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=LqP7runz9fYVY1TUY6ik+MRNc/PM8+/25wcHDRNrCqg=; b=pMeJTUMMw8Ia7l1IPPUUsdvR7xspLZEDohgXXQH/vDj7exFL9MWOAAnxhMUHw9xEi9 q+EoBXK+9I748gNWpHzqG0R6Ara+yLGh1qbSF6lHBdxZT96b3l8MUa242OxPTQMV7xLg hQAO9hP8fvXLArgDEj6X/R7pw+WSgtBmchw/srR0PH0Ft+wypT5hIfZV9XqBF0c+KCLh kgInsvI7lf7pAiTiq8Fq0MFNkk+c2PfgzSbLju3iffONoUCZBqJWLlkBW1OlXYT+64/b JKK/cmWqYLctN66VueXT93bhwZC4VpTjIzoAhyRuG897cU84E4eWNfSe6pHN6KJ7ISLg nPwg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678316980; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=LqP7runz9fYVY1TUY6ik+MRNc/PM8+/25wcHDRNrCqg=; b=WRQc+kwukOJidQNKbe6V6UemyVvMgd2Zxk2MjXzZo9zchrIKHiENisbTQvM+K8ZpL8 rQH7lZcE1nYmimad87ktd5TrkK4fyWcYxngtGCAJhIzkU/lcQAkdR08F7fTAAKdFaKZV 0cpssgS0b1NcuxLg7KunYxQKfY6UXkWSYWLrSGtWeYMtkRaZE2vUelZkblPMpJ6VwBCt ziprAI/9O1sbLNStIj7xrGKBjyp5YD2idgIBma8/NyvHJXNkoxJPlAGF3hKDM2rPrczd ppy4wdOYJuHBNI8KH5oYvcHVehy/cQFBP9dceofw8GxeaeimDbAanYcWdURrZyYZcl42 5/Jg== X-Gm-Message-State: AO0yUKXaeiJsWG3oDge/z9MYEVi7fpP8kjhAcmsyxGIM2GxXXJjo+h+w Ujo8Mr9RXELP+m24U3KZ1AJabw== X-Google-Smtp-Source: AK7set/tBJXhTZUXyy437vmJNBgUKb2EX1mJ5MLUT6s+oNNf/7TzTYa0XXmwK2tWKREM5hmGZM2/cQ== X-Received: by 2002:a05:6830:3142:b0:68b:e4e6:cc9c with SMTP id c2-20020a056830314200b0068be4e6cc9cmr11426374ots.33.1678316980169; Wed, 08 Mar 2023 15:09:40 -0800 (PST) Received: from localhost ([136.49.140.41]) by smtp.gmail.com with ESMTPSA id z25-20020a056830129900b00686574e98d6sm6919220otp.72.2023.03.08.15.09.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Mar 2023 15:09:39 -0800 (PST) From: Sam Protsenko To: Krzysztof Kozlowski , Rob Herring Cc: Alim Akhtar , Marek Szyprowski , Chanwoo Choi , Chanho Park , David Virag , linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 6/6] soc: samsung: pm_domains: Add Exynos850 support Date: Wed, 8 Mar 2023 17:09:31 -0600 Message-Id: <20230308230931.27261-7-semen.protsenko@linaro.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230308230931.27261-1-semen.protsenko@linaro.org> References: <20230308230931.27261-1-semen.protsenko@linaro.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230308_150951_274048_1F8B313F X-CRM114-Status: GOOD ( 12.57 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Add a new compatible string for Exynos850, providing all HW specific data, which enables Exynos PD support for this chip. Signed-off-by: Sam Protsenko --- drivers/soc/samsung/pm_domains.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/drivers/soc/samsung/pm_domains.c b/drivers/soc/samsung/pm_domains.c index ec630a151247..795d8a9cd4b5 100644 --- a/drivers/soc/samsung/pm_domains.c +++ b/drivers/soc/samsung/pm_domains.c @@ -20,6 +20,8 @@ #include #include +#include + /* Register offsets inside Power Domain area in PMU */ #define EXYNOS_PD_CONF 0x0 #define EXYNOS_PD_STATUS 0x4 @@ -132,6 +134,21 @@ static const struct exynos_pm_domain_config exynos5433_cfg = { .local_pwr_cfg = 0xf, }; +static const unsigned int exynos850_pd_offsets[] = { + [EXYNOS850_PD_HSI] = 0x1c80, + [EXYNOS850_PD_G3D] = 0x1d00, + [EXYNOS850_PD_MFCMSCL] = 0x1d80, + [EXYNOS850_PD_DPU] = 0x2000, + [EXYNOS850_PD_AUD] = 0x2080, + [EXYNOS850_PD_IS] = 0x2100, +}; + +static const struct exynos_pm_domain_config exynos850_cfg = { + .local_pwr_cfg = 0x1, + .pd_offsets = exynos850_pd_offsets, + .pd_offsets_num = ARRAY_SIZE(exynos850_pd_offsets), +}; + static const struct of_device_id exynos_pm_domain_of_match[] = { { .compatible = "samsung,exynos4210-pd", @@ -139,6 +156,9 @@ static const struct of_device_id exynos_pm_domain_of_match[] = { }, { .compatible = "samsung,exynos5433-pd", .data = &exynos5433_cfg, + }, { + .compatible = "samsung,exynos850-pd", + .data = &exynos850_cfg, }, { }, };