From nobody Sun Feb 8 12:11:28 2026 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 6B433C6FD19 for ; Wed, 8 Mar 2023 23:09:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230122AbjCHXJk (ORCPT ); Wed, 8 Mar 2023 18:09:40 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52132 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229977AbjCHXJf (ORCPT ); Wed, 8 Mar 2023 18:09:35 -0500 Received: from mail-oa1-x33.google.com (mail-oa1-x33.google.com [IPv6:2001:4860:4864:20::33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5C3CD637CE for ; Wed, 8 Mar 2023 15:09:34 -0800 (PST) Received: by mail-oa1-x33.google.com with SMTP id 586e51a60fabf-17671fb717cso468568fac.8 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=mY2SJLFOLcVBwe3u//fL2rqYqY+ZG+QFyrQxo5aMtdST4/sedTXAq8uOLi03KEb9HL 3nAlAB2bYzMcacMoOoxK+XoobccWWIP+jcUlN9EKrWFmYm1TBLPsEtxGWbwsfqQcMxnE lCQNbaV7xQLom2+AkYumwzjQVjpYbw3VavY2BRxHFe+dq/WjN/ZZ/U7p8+3t7CUsKLTG 4rgwX5twTtK+FQgGDvsDFBLGSNHZIiq/OQ8sRFeml6ThGY3XFVL3ra6GAv0IgHMqcibf Dv16NAv1GM79s8fOd3Tj7jCK9z46uYvPOWmvpI9MidwaJ1Nal2H96RuX0iFyvmKXXI3L L/wA== X-Gm-Message-State: AO0yUKXZdvcUcabI1gF3kEzo5xAi1R/234PHH4dukMwDdTVBbnitOrNU MP25+TnDXm8XbeOZY8UiPXMtVQ== 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 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" 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/Docu= mentation/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 =20 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 */ --=20 2.39.2 From nobody Sun Feb 8 12:11:28 2026 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 C43BEC6FD19 for ; Wed, 8 Mar 2023 23:09:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230144AbjCHXJo (ORCPT ); Wed, 8 Mar 2023 18:09:44 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52152 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230088AbjCHXJg (ORCPT ); Wed, 8 Mar 2023 18:09:36 -0500 Received: from mail-ot1-x32c.google.com (mail-ot1-x32c.google.com [IPv6:2607:f8b0:4864:20::32c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AF61A618A5 for ; Wed, 8 Mar 2023 15:09:35 -0800 (PST) Received: by mail-ot1-x32c.google.com with SMTP id p13-20020a9d744d000000b0069438f0db7eso111226otk.3 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=033Cj3tzwUDUncYhOTcLgRo4YYcPTrEjHszuNWQl4mjePPrGmyLAG6Is0eVl8Nx6UM gY3U0rDsDV5G6AIwTSE0o8fgomGvy/Ww5TBclU3BNEyE26lWNkR2a/ErmZweVGz6IA1Y ASc7+Yoo/2DPtGrJ3K6o3rf5GcEh10Cv+oN7Jvg886S2yMXBUfx84Cl9rkFEIzRqE+ff JtsZQ/1pMA/4VRVwTMJ90dvo7fij0d/bBo5Sf7HINs0S/aqZakTQP2IkL/Tq73H4a+1v BivMXdh92EawHU5Q5pjXJoQnqGeQVSHiMAoC78r4PVCjtyzfOb7M0f6FkGkEyxhGFuJa zmMw== X-Gm-Message-State: AO0yUKUkBnsWOKUTKAfL+rj8JqLKS6HuAmPXOeXcmuRqLTBTYpV4j/xL kC0OQDnY/R7UT6ASz9GCYpvZng== 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 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" 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/Docu= mentation/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: =20 reg: maxItems: 1 + deprecated: true + description: + Physical base address and length of Power Domains area (if not a chi= ld of + PMU). =20 clocks: deprecated: true @@ -45,10 +49,15 @@ properties: power-domains: maxItems: 1 =20 + 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 Exynos= 850 + required: - compatible - "#power-domain-cells" - - reg =20 unevaluatedProperties: false =20 --=20 2.39.2 From nobody Sun Feb 8 12:11:28 2026 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 21AB0C64EC4 for ; Wed, 8 Mar 2023 23:10:19 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230195AbjCHXJr (ORCPT ); Wed, 8 Mar 2023 18:09:47 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52158 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230007AbjCHXJi (ORCPT ); Wed, 8 Mar 2023 18:09:38 -0500 Received: from mail-oa1-x34.google.com (mail-oa1-x34.google.com [IPv6:2001:4860:4864:20::34]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F0A1C64218 for ; Wed, 8 Mar 2023 15:09:36 -0800 (PST) Received: by mail-oa1-x34.google.com with SMTP id 586e51a60fabf-176eae36feaso479620fac.6 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=JYhUmq5enOCla6aLvUHYqDR4pvCe45ww7B+htGyRM1o46sGDm5l9FYFrhT6USnaro2 bqfBYX0OsYCzN2b2if2TcRjts5Cr5lkVGc6xJVIC+pWoT4BcJ3t28pbpGYLEtUE5CbwX /xTiu4J8fbamYiWGLOQ6I9nkPweYBQMrU3UfCkCz9pKfHXtxgWSiYbM8iZ5BjM2Q28d8 E1+hi3pINCDi6QPgBkZhqHPc2ucKLcgP66D6EmrDuj2mcgHPZxibxixz0488LaMjf4iN T+PSF/fpH1UYB8E/n8bZYPyzfWjerjWRWqJRst+juj53EWYxLn0t7BPkuuzt54lS7NAK E08w== X-Gm-Message-State: AO0yUKWHXJhWM59QY0KVm9hWlyVn9vdsOcAb5tBsUVSa4TKhYY6TMWVW JFrv6LGeyTqUic2A/e6QSphsGA== 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 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" 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_doma= ins.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_ma= tch[] =3D { { }, }; =20 -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 =3D pd->dev; + struct device_node *np =3D dev->of_node; const char *name; =20 - if (of_property_read_string(node, "label", &name) < 0) - name =3D kbasename(node->full_name); - return kstrdup_const(name, GFP_KERNEL); + variant =3D of_device_get_match_data(dev); + pd->local_pwr_cfg =3D variant->local_pwr_cfg; + + if (of_property_read_string(np, "label", &name) < 0) + name =3D kbasename(np->full_name); + pd->pd.name =3D devm_kstrdup_const(dev, name, GFP_KERNEL); + if (!pd->pd.name) + return -ENOMEM; + + pd->base =3D of_iomap(np, 0); + if (!pd->base) + return -ENODEV; + + return 0; } =20 static int exynos_pd_probe(struct platform_device *pdev) { - const struct exynos_pm_domain_config *pm_domain_cfg; struct device *dev =3D &pdev->dev; struct device_node *np =3D dev->of_node; struct of_phandle_args child, parent; struct exynos_pm_domain *pd; int on, ret; =20 - pm_domain_cfg =3D of_device_get_match_data(dev); pd =3D devm_kzalloc(dev, sizeof(*pd), GFP_KERNEL); if (!pd) return -ENOMEM; =20 - pd->pd.name =3D exynos_get_domain_name(np); - if (!pd->pd.name) - return -ENOMEM; - - pd->base =3D of_iomap(np, 0); - if (!pd->base) { - kfree_const(pd->pd.name); - return -ENODEV; - } + pd->dev =3D dev; + ret =3D exynos_pd_parse_dt(pd); + if (ret) + return ret; =20 pd->pd.power_off =3D exynos_pd_power_off; pd->pd.power_on =3D exynos_pd_power_on; - pd->local_pwr_cfg =3D pm_domain_cfg->local_pwr_cfg; =20 on =3D readl_relaxed(pd->base + 0x4) & pd->local_pwr_cfg; =20 --=20 2.39.2 From nobody Sun Feb 8 12:11:28 2026 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 9B2B3C64EC4 for ; Wed, 8 Mar 2023 23:10:51 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230315AbjCHXJx (ORCPT ); Wed, 8 Mar 2023 18:09:53 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52436 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230154AbjCHXJn (ORCPT ); Wed, 8 Mar 2023 18:09:43 -0500 Received: from mail-oi1-x236.google.com (mail-oi1-x236.google.com [IPv6:2607:f8b0:4864:20::236]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E643E64216 for ; Wed, 8 Mar 2023 15:09:39 -0800 (PST) Received: by mail-oi1-x236.google.com with SMTP id t22so295373oiw.12 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=pyhNKdch05RMBKBz8koWrl78AnrxyrFhMjQ2fJQVzOk9U61ih9wcB61IIIeDP7/O0+ wl6hQ97Qm9Y8IfuPTtN024ppzRGy3PpdtTmp085AiJI9l/XbM7dY8OV3K0BONz33r5u9 sWJR7OrBRUznfwLrBepYnsDjFtv8DRF1R1lr3nBAzTx33/lVafIxFe5g88vpPfoL+5Ej F+2Ei/CjOnrU9mjdm1I61Hq/Mbc7Li29e7Y9eaHeAI64cfauBeYIslujUI1SFoTApeTZ vbybSV20R6wXovJQBcG5A+YeVH61yfH0E5pTq9ihCtOISM89EFK7Z2NkzitO1r68x5m0 6nvQ== X-Gm-Message-State: AO0yUKW1sqL+wEFc/Djti/0t3aVQ4Os9GKwlQNETwKo8zf42KXIVOwCM 9ZJpnx9thVtdO/v+a5k15vpEhA== 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 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" 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_doma= ins.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 =20 +/* 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; }; =20 +static void exynos_pd_write(struct exynos_pm_domain *pd, unsigned int reg, + unsigned int mask, unsigned int val) +{ + u32 v; + + v =3D readl_relaxed(pd->base + reg); + v =3D (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 =3D 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 &=3D 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 *do= main, bool power_on) base =3D pd->base; =20 pwr =3D power_on ? pd->local_pwr_cfg : 0; - writel_relaxed(pwr, base); + exynos_pd_write_conf(pd, pwr); =20 /* Wait max 1ms */ timeout =3D 10; =20 - while ((readl_relaxed(base + 0x4) & pd->local_pwr_cfg) !=3D pwr) { + while (exynos_pd_read_status(pd) !=3D pwr) { if (!timeout) { op =3D (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 =3D exynos_pd_power_off; pd->pd.power_on =3D exynos_pd_power_on; =20 - on =3D readl_relaxed(pd->base + 0x4) & pd->local_pwr_cfg; - + on =3D exynos_pd_read_status(pd); pm_genpd_init(&pd->pd, NULL, !on); ret =3D of_genpd_add_provider_simple(np, &pd->pd); =20 --=20 2.39.2 From nobody Sun Feb 8 12:11:28 2026 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 D214FC678D5 for ; Wed, 8 Mar 2023 23:10:19 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230240AbjCHXJu (ORCPT ); Wed, 8 Mar 2023 18:09:50 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52380 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230132AbjCHXJm (ORCPT ); Wed, 8 Mar 2023 18:09:42 -0500 Received: from mail-oo1-xc30.google.com (mail-oo1-xc30.google.com [IPv6:2607:f8b0:4864:20::c30]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A91517302E for ; Wed, 8 Mar 2023 15:09:39 -0800 (PST) Received: by mail-oo1-xc30.google.com with SMTP id w25-20020a4ae9f9000000b0052513fb2e09so19297ooc.13 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=H3783urL7BG6f2EVZozvUUcmHExx0ZKKX3iKuFglGKFx96M8jFNO/RRonNdxvTNN2J YY1ZWdPk3deZrIg9fC4UJybK+upC2k7i4MEnB0rMQtR9zxi82sPLF8ByHnjokGcP06DM nhIo9fyNrdzlTsPItZBG2lDAkAbFnuMLllATFIaSI6jbOeLH4A56EO0nhwgaENC3J2fN 34yo6eRrbKXDNMflxFyIZBSJCkG/CnB1DUv/lDYYJZVqKaVRyOQ2bHRgiNUP7IYNSZ0A CjE5tl7s7MDJOxyLp+1C1XCoeZ4Q1u8cjg2PZTetRigjLOpxNzKneKo3+0TlHdXwJDyK W8xw== X-Gm-Message-State: AO0yUKWoZrgLIL3bCa+NzyxejhzuKntnTf+TSPcJ2NypmvMTT+xIsMot fTTvlU2ROAA5Rs6xamYzUGK0LA== 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 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" 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 =20 config SAMSUNG_PM_CHECK bool "S3C2410 PM Suspend Memory CRC" diff --git a/drivers/soc/samsung/pm_domains.c b/drivers/soc/samsung/pm_doma= ins.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 =20 /* 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; }; =20 /* @@ -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; }; =20 static void exynos_pd_write(struct exynos_pm_domain *pd, unsigned int reg, unsigned int mask, unsigned int val) { - u32 v; - - v =3D readl_relaxed(pd->base + reg); - v =3D (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 =3D readl_relaxed(pd->base + reg); + v =3D (v & ~mask) | val; + writel_relaxed(v, pd->base + reg); + } } =20 static void exynos_pd_read(struct exynos_pm_domain *pd, unsigned int reg, unsigned int *val) { - *val =3D readl_relaxed(pd->base + reg); + if (pd->pmureg) + regmap_read(pd->pmureg, pd->offset + reg, val); + else + *val =3D readl_relaxed(pd->base + reg); } =20 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 =3D pd->dev; struct device_node *np =3D dev->of_node; const char *name; + u32 index; + int ret; =20 variant =3D of_device_get_match_data(dev); pd->local_pwr_cfg =3D 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; =20 - pd->base =3D of_iomap(np, 0); - if (!pd->base) - return -ENODEV; + ret =3D of_property_read_u32(np, "samsung,pd-index", &index); + if (!ret) { + if (index >=3D variant->pd_offsets_num) + return -EINVAL; + if (!dev->parent) + return -ENODEV; + + pd->offset =3D variant->pd_offsets[index]; + pd->pmureg =3D syscon_node_to_regmap(dev->parent->of_node); + if (IS_ERR(pd->pmureg)) + return PTR_ERR(pd->pmureg); + } else { + pd->base =3D of_iomap(np, 0); + if (!pd->base) + return -ENODEV; + } =20 return 0; } --=20 2.39.2 From nobody Sun Feb 8 12:11:28 2026 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 3DF83C742A7 for ; Wed, 8 Mar 2023 23:10:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230176AbjCHXKX (ORCPT ); Wed, 8 Mar 2023 18:10:23 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52458 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230155AbjCHXJn (ORCPT ); Wed, 8 Mar 2023 18:09:43 -0500 Received: from mail-ot1-x32c.google.com (mail-ot1-x32c.google.com [IPv6:2607:f8b0:4864:20::32c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DC45862860 for ; Wed, 8 Mar 2023 15:09:40 -0800 (PST) Received: by mail-ot1-x32c.google.com with SMTP id g73-20020a9d12cf000000b006943a7df072so90687otg.11 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=v7vsjoio6WYR6qbM+q/Y2uL6V46PzzY1b9W8BaNrkqbYq6kh2kQo7uSfkSAUHvV3bv sl+AwlWHmwPhV5IrMwXM6dS1GCxaq/EWYXJSODemZ4p9YiR8tq32Ye3J2ZTgzU0vXWIb x7+WAOC6nR/YQa2t9H/LIBLXINcHPoVSoNQc0LVSKFJUXJvsXxqlSx+C7UdAirTzXYrX +69MkGAtk9mssrBPMLElKyX8nPwPElLBDfb1OnR8BCeyWtpSTraNUPvrju1UbCf5Ass7 3/wR3Kc97CoixREEeI8+BtWKc9K9dLCrBHw5z8DAYCapMK8PH0MoMwet9isRGtKHNZhm wkxQ== X-Gm-Message-State: AO0yUKXmXYiUCsDwpL5+0s+UKOdui+hpu/g3VGvT2pc6F1kDHUNyVCdX yOhJhh51cwHHnyrTtojwqwXagA== 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 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" 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_doma= ins.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 =20 +#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 =3D { .local_pwr_cfg =3D 0xf, }; =20 +static const unsigned int exynos850_pd_offsets[] =3D { + [EXYNOS850_PD_HSI] =3D 0x1c80, + [EXYNOS850_PD_G3D] =3D 0x1d00, + [EXYNOS850_PD_MFCMSCL] =3D 0x1d80, + [EXYNOS850_PD_DPU] =3D 0x2000, + [EXYNOS850_PD_AUD] =3D 0x2080, + [EXYNOS850_PD_IS] =3D 0x2100, +}; + +static const struct exynos_pm_domain_config exynos850_cfg =3D { + .local_pwr_cfg =3D 0x1, + .pd_offsets =3D exynos850_pd_offsets, + .pd_offsets_num =3D ARRAY_SIZE(exynos850_pd_offsets), +}; + static const struct of_device_id exynos_pm_domain_of_match[] =3D { { .compatible =3D "samsung,exynos4210-pd", @@ -139,6 +156,9 @@ static const struct of_device_id exynos_pm_domain_of_ma= tch[] =3D { }, { .compatible =3D "samsung,exynos5433-pd", .data =3D &exynos5433_cfg, + }, { + .compatible =3D "samsung,exynos850-pd", + .data =3D &exynos850_cfg, }, { }, }; --=20 2.39.2