From patchwork Tue Apr 11 06:47:37 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changhuang Liang X-Patchwork-Id: 81760 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp2371511vqo; Mon, 10 Apr 2023 23:50:07 -0700 (PDT) X-Google-Smtp-Source: AKy350Zvj0LdFHXzGY8NWQaMbKPp9w3epHpxDcbYwVDh97HBUXCPwE2RyIjwzrgDmPmFuMhPZJ7c X-Received: by 2002:a17:906:6a29:b0:90b:167e:304b with SMTP id qw41-20020a1709066a2900b0090b167e304bmr12099780ejc.45.1681195807087; Mon, 10 Apr 2023 23:50:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681195807; cv=none; d=google.com; s=arc-20160816; b=YT3+PCsTR9jH77wqgGfkHyDjcr5Vxgl47AJNpfrfRzC0lMd2uvY3ZtJaDdJZg4kuq+ T0We4ZcHuTJ1C9+xBuJ9UDeIHcp5IuFBnO37AjLtziWO3PJx/G2LPXr8/CAW5i8s0WNL Ae+yc12nNad0lISsngD0FQ1PGPofDv6ImqlyZBmAmQMll/IcOt+gzC34Kyy7Zczr+uok bG9xdIEp0CbQfO6mkNmMcHfqVuOD512TCrZf2xdI5UJ3Gi65Lg7mV6aHHATrpZVY5UxB oy1ZAYKK1xnTAWLBICaKUZF4dWiod7VX3CKRxT1aPYZH7pXjR0Y8xS3yikR5j48jbd7x fkQg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=i50uyxEjSrAfncLKioCUJM+Rz6NRlKUQo0K7WnMxHg4=; b=iWsC4PTbgVR/bkNr67Su3VYnaToebNt22o/mqtyLe6rOaBy+1lsbvWsztQ6D7XEgH/ AZNQqY/s4wBs3hKKuaNuueqLl165WMU4Lmt4YIf32YKoxEpA4R55B3J8CYrH22gVybRj r98EQ7Ik1G0tr6kE3IzFJZ8w6NS/8E86rxS41Evvc0apgv9TI6AFsWa0BrPHOFHK0kwI CfXFr8sDYU+bvZ1+yUU8FTJp1/eSWvNX3YDD/OUXpF4tcoq72EvP64l2YmFX0DpMhnk5 pJe8Nfqr7FUBh5gxNjXH174malb7k0IMyUXgj7MSTLvEutpkP0SelqabG9TR5wTAQt8f 2CMw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id se25-20020a170906ce5900b0093549a153f9si10063169ejb.912.2023.04.10.23.49.43; Mon, 10 Apr 2023 23:50:07 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230168AbjDKGsI convert rfc822-to-8bit (ORCPT + 99 others); Tue, 11 Apr 2023 02:48:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58664 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230222AbjDKGry (ORCPT ); Tue, 11 Apr 2023 02:47:54 -0400 Received: from fd01.gateway.ufhost.com (fd01.gateway.ufhost.com [61.152.239.71]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C26F72D70; Mon, 10 Apr 2023 23:47:47 -0700 (PDT) Received: from EXMBX166.cuchost.com (unknown [175.102.18.54]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "EXMBX166", Issuer "EXMBX166" (not verified)) by fd01.gateway.ufhost.com (Postfix) with ESMTP id BF0FC24DB89; Tue, 11 Apr 2023 14:47:45 +0800 (CST) Received: from EXMBX162.cuchost.com (172.16.6.72) by EXMBX166.cuchost.com (172.16.6.76) with Microsoft SMTP Server (TLS) id 15.0.1497.42; Tue, 11 Apr 2023 14:47:45 +0800 Received: from ubuntu.localdomain (113.72.145.176) by EXMBX162.cuchost.com (172.16.6.72) with Microsoft SMTP Server (TLS) id 15.0.1497.42; Tue, 11 Apr 2023 14:47:44 +0800 From: Changhuang Liang To: Rob Herring , Krzysztof Kozlowski , Emil Renner Berthing , Conor Dooley , Paul Walmsley , Palmer Dabbelt , Albert Ou CC: Walker Chen , Changhuang Liang , , , Subject: [PATCH v1 1/7] dt-bindings: power: Constrain properties for JH7110 PMU Date: Mon, 10 Apr 2023 23:47:37 -0700 Message-ID: <20230411064743.273388-2-changhuang.liang@starfivetech.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230411064743.273388-1-changhuang.liang@starfivetech.com> References: <20230411064743.273388-1-changhuang.liang@starfivetech.com> MIME-Version: 1.0 X-Originating-IP: [113.72.145.176] X-ClientProxiedBy: EXCAS064.cuchost.com (172.16.6.24) To EXMBX162.cuchost.com (172.16.6.72) X-YovoleRuleAgent: yovoleflag X-Spam-Status: No, score=-0.0 required=5.0 tests=RCVD_IN_MSPIKE_H2, SPF_HELO_PASS,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1762861574374480993?= X-GMAIL-MSGID: =?utf-8?q?1762861574374480993?= When use "starfive,jh7110-pmu-dphy" compatible, do not need the reg and interrupts properties. Signed-off-by: Changhuang Liang --- .../bindings/power/starfive,jh7110-pmu.yaml | 14 ++++++++++++-- include/dt-bindings/power/starfive,jh7110-pmu.h | 3 +++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/Documentation/devicetree/bindings/power/starfive,jh7110-pmu.yaml b/Documentation/devicetree/bindings/power/starfive,jh7110-pmu.yaml index 98eb8b4110e7..ffb4406c2e56 100644 --- a/Documentation/devicetree/bindings/power/starfive,jh7110-pmu.yaml +++ b/Documentation/devicetree/bindings/power/starfive,jh7110-pmu.yaml @@ -8,6 +8,7 @@ title: StarFive JH7110 Power Management Unit maintainers: - Walker Chen + - Changhuang Liang description: | StarFive JH7110 SoC includes support for multiple power domains which can be @@ -17,6 +18,7 @@ properties: compatible: enum: - starfive,jh7110-pmu + - starfive,jh7110-pmu-dphy reg: maxItems: 1 @@ -29,10 +31,18 @@ properties: required: - compatible - - reg - - interrupts - "#power-domain-cells" +if: + properties: + compatible: + contains: + const: starfive,jh7110-pmu +then: + required: + - reg + - interrupts + additionalProperties: false examples: diff --git a/include/dt-bindings/power/starfive,jh7110-pmu.h b/include/dt-bindings/power/starfive,jh7110-pmu.h index 132bfe401fc8..0bfd6700c144 100644 --- a/include/dt-bindings/power/starfive,jh7110-pmu.h +++ b/include/dt-bindings/power/starfive,jh7110-pmu.h @@ -14,4 +14,7 @@ #define JH7110_PD_ISP 5 #define JH7110_PD_VENC 6 +#define JH7110_PD_DPHY_TX 0 +#define JH7110_PD_DPHY_RX 1 + #endif From patchwork Tue Apr 11 06:47:38 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changhuang Liang X-Patchwork-Id: 81780 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp2380897vqo; Tue, 11 Apr 2023 00:12:30 -0700 (PDT) X-Google-Smtp-Source: AKy350Yq1XBxi7b4LHLtZUWM9rn/gqVbIp352RoToX40OwVMCrU/SUS/9br7LpMVUHUfyeO/dOxO X-Received: by 2002:a17:902:dacb:b0:1a5:1bb4:ad8b with SMTP id q11-20020a170902dacb00b001a51bb4ad8bmr13359617plx.17.1681197149810; Tue, 11 Apr 2023 00:12:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681197149; cv=none; d=google.com; s=arc-20160816; b=q2TzEuRqS2kO9DYWpel+Tb/GpcMCvWauc7uhh1YxDNj0jGNsL3dPHCI6GLyVgvmp86 3qctxmSKTtjM8YqM4bxri1vmUkTi2pNXn7MTFvQpNS1YaXYeG6DrV11L7VmA49xen8Xt fJG9Q/H9g3QaHQj2yEyrZH0johaE32CxDjJVhkgSGm2228pGm33hCgnUZtv3bNJxc7ha 4BcYdHfoXTlK5IJhfMHDP24TGmhJVvlppj4Xk2W5HZon8CLpGlXB0QamATmaJyDnHuJi hdREdHn1r2FumLiQ7OKuGk6cYG1Adyew9phq1UrssikaQjFKIK72XI7DJ/tYmPEs2X/5 8slw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=Ijs19josLc0I+WB5lYYOXU3Y1Lg19pk4IYg29QCT9FI=; b=y3y2Ow98U486cAnRb68qXddAeEqQmScFy7c5svtAqtL2MQqBiPuOahjR8DspU5bLfR 3htgCFmFGSbQ69vTo0uMGds/kWimKpPcOpyzK+5Mmtih0aMT0wANLgnO8Csim7F0to+D 9vO6srejcU7T4IzHIbQHfuNp5gxKxsAM3RLVQ3233/uFpVNtxhqzamswXdBh7nSKQyHX FullMt1ayCxMEXHo+xB0jLCYs735BDA75j0v2jsWx44gMAady29Gmb8cXGrWu46bY+ZL 1y7IBPd9DYkUjUubtRuIQKCKkL+DqyrwDmvXH7kOxLfb+SwWcVNQxsSSTMtYbaR9fNYj fFrA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 35-20020a631963000000b0050fa9bc63cbsi12006046pgz.432.2023.04.11.00.12.16; Tue, 11 Apr 2023 00:12:29 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230211AbjDKGsD convert rfc822-to-8bit (ORCPT + 99 others); Tue, 11 Apr 2023 02:48:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58676 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230166AbjDKGry (ORCPT ); Tue, 11 Apr 2023 02:47:54 -0400 Received: from ex01.ufhost.com (ex01.ufhost.com [61.152.239.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 701C0269E; Mon, 10 Apr 2023 23:47:49 -0700 (PDT) Received: from EXMBX166.cuchost.com (unknown [175.102.18.54]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "EXMBX166", Issuer "EXMBX166" (not verified)) by ex01.ufhost.com (Postfix) with ESMTP id 8123E24E20F; Tue, 11 Apr 2023 14:47:46 +0800 (CST) Received: from EXMBX162.cuchost.com (172.16.6.72) by EXMBX166.cuchost.com (172.16.6.76) with Microsoft SMTP Server (TLS) id 15.0.1497.42; Tue, 11 Apr 2023 14:47:46 +0800 Received: from ubuntu.localdomain (113.72.145.176) by EXMBX162.cuchost.com (172.16.6.72) with Microsoft SMTP Server (TLS) id 15.0.1497.42; Tue, 11 Apr 2023 14:47:45 +0800 From: Changhuang Liang To: Rob Herring , Krzysztof Kozlowski , Emil Renner Berthing , Conor Dooley , Paul Walmsley , Palmer Dabbelt , Albert Ou CC: Walker Chen , Changhuang Liang , , , Subject: [PATCH v1 2/7] soc: starfive: Replace SOC_STARFIVE with ARCH_SATRFIVE Date: Mon, 10 Apr 2023 23:47:38 -0700 Message-ID: <20230411064743.273388-3-changhuang.liang@starfivetech.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230411064743.273388-1-changhuang.liang@starfivetech.com> References: <20230411064743.273388-1-changhuang.liang@starfivetech.com> MIME-Version: 1.0 X-Originating-IP: [113.72.145.176] X-ClientProxiedBy: EXCAS064.cuchost.com (172.16.6.24) To EXMBX162.cuchost.com (172.16.6.72) X-YovoleRuleAgent: yovoleflag X-Spam-Status: No, score=0.0 required=5.0 tests=SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1762862982842784754?= X-GMAIL-MSGID: =?utf-8?q?1762862982842784754?= Using ARCH_FOO symbol is preferred than SOC_FOO. Signed-off-by: Changhuang Liang Reviewed-by: Conor Dooley --- drivers/soc/starfive/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/soc/starfive/Kconfig b/drivers/soc/starfive/Kconfig index bdb96dc4c989..1e9b0c414fec 100644 --- a/drivers/soc/starfive/Kconfig +++ b/drivers/soc/starfive/Kconfig @@ -3,8 +3,8 @@ config JH71XX_PMU bool "Support PMU for StarFive JH71XX Soc" depends on PM - depends on SOC_STARFIVE || COMPILE_TEST - default SOC_STARFIVE + depends on ARCH_STARFIVE || COMPILE_TEST + default ARCH_STARFIVE select PM_GENERIC_DOMAINS help Say 'y' here to enable support power domain support. From patchwork Tue Apr 11 06:47:39 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changhuang Liang X-Patchwork-Id: 81777 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp2380431vqo; Tue, 11 Apr 2023 00:11:31 -0700 (PDT) X-Google-Smtp-Source: AKy350b2YWi9z3ejbWVHqE7sfR5scA8fg1YpJJm8TzXbcUKOws10fgsrbCJZPpUk2IKXTX7uQJCF X-Received: by 2002:a17:90a:bf90:b0:22b:b375:ec3f with SMTP id d16-20020a17090abf9000b0022bb375ec3fmr16241333pjs.21.1681197090992; Tue, 11 Apr 2023 00:11:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681197090; cv=none; d=google.com; s=arc-20160816; b=JeGafh7xL6b1k+8Gz0Pmzg9FhdK3rufcI4nAMOPQBDMeHTd0NM0X+hs8za2fJt+3d6 K+9vLE6U7x9D+XFlMC4oueKUMOfxxAgeWJoLHYdXWYz8jm6sotsCMMvHk09JuqD8mtcg lXBUav/VfvVFi1UwaE6vLk91//4gfoANBFi9ZEDKyc2Vwn6YLRGTbB68aekrCbbyFVK5 uBXOR/+WoNQ108VH5msoor9Lq1cUwFHy9SMxM1CV9JEsbNb6hs6yIKS8XyTzxmNLuY2d BRKMUMLm63y5wZ1xsIKr/ar796/DF4lXsi/E++gbTrHvl2FlJ2NotM91NzVM1jhufuSG EVWg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=Vqxzg3txNmAZZx8UGksYquhWCuQSmWSSpjRN2hGrRVY=; b=q8rQ0XU23LOLrC8UepDZsWe9cGQNeezcwlTYzDppIPS3Kg6V4Edrc3EEitA41R9nlh 0DDwnwWykbDCxcUQf+0IOmqRPSqR/GwswRwjEfOZyrCTW/KRcLoqojcnnAjyfkCfIxku 4VrVQ7hrruGHAaqLA2AgZzheQ10emHC6UdfCVQj5sXflxPtM56IVYkgzIiwqKpWr6Jth UKpDu7dmjMN6jXdG5Zg/fl5pxM2EQ8N0bbuZBDagBPzSCZ1y4R/Ef+OQeDHXI3J87s/q jzl+lOGUs5pE/G+79OMt0R3/0hzYOCg0LBjhZv9/svXr5QR/h7LyhNPPUQ4XjGKt6g+C d3vg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t22-20020a17090a0d1600b002375a3e4b10si12348031pja.47.2023.04.11.00.11.18; Tue, 11 Apr 2023 00:11:30 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230143AbjDKGsA convert rfc822-to-8bit (ORCPT + 99 others); Tue, 11 Apr 2023 02:48:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58684 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230168AbjDKGry (ORCPT ); Tue, 11 Apr 2023 02:47:54 -0400 Received: from ex01.ufhost.com (ex01.ufhost.com [61.152.239.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 703822D66; Mon, 10 Apr 2023 23:47:49 -0700 (PDT) Received: from EXMBX165.cuchost.com (unknown [175.102.18.54]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "EXMBX165", Issuer "EXMBX165" (not verified)) by ex01.ufhost.com (Postfix) with ESMTP id 445FD24E225; Tue, 11 Apr 2023 14:47:47 +0800 (CST) Received: from EXMBX162.cuchost.com (172.16.6.72) by EXMBX165.cuchost.com (172.16.6.75) with Microsoft SMTP Server (TLS) id 15.0.1497.42; Tue, 11 Apr 2023 14:47:47 +0800 Received: from ubuntu.localdomain (113.72.145.176) by EXMBX162.cuchost.com (172.16.6.72) with Microsoft SMTP Server (TLS) id 15.0.1497.42; Tue, 11 Apr 2023 14:47:46 +0800 From: Changhuang Liang To: Rob Herring , Krzysztof Kozlowski , Emil Renner Berthing , Conor Dooley , Paul Walmsley , Palmer Dabbelt , Albert Ou CC: Walker Chen , Changhuang Liang , , , Subject: [PATCH v1 3/7] soc: starfive: Modify ioremap to regmap Date: Mon, 10 Apr 2023 23:47:39 -0700 Message-ID: <20230411064743.273388-4-changhuang.liang@starfivetech.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230411064743.273388-1-changhuang.liang@starfivetech.com> References: <20230411064743.273388-1-changhuang.liang@starfivetech.com> MIME-Version: 1.0 X-Originating-IP: [113.72.145.176] X-ClientProxiedBy: EXCAS064.cuchost.com (172.16.6.24) To EXMBX162.cuchost.com (172.16.6.72) X-YovoleRuleAgent: yovoleflag X-Spam-Status: No, score=0.0 required=5.0 tests=SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1762862920817160327?= X-GMAIL-MSGID: =?utf-8?q?1762862920817160327?= Modify ioremap to regmap, easy to simplify code. Signed-off-by: Changhuang Liang --- drivers/soc/starfive/jh71xx_pmu.c | 43 +++++++++++++++++-------------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/drivers/soc/starfive/jh71xx_pmu.c b/drivers/soc/starfive/jh71xx_pmu.c index 7d5f50d71c0d..306218c83691 100644 --- a/drivers/soc/starfive/jh71xx_pmu.c +++ b/drivers/soc/starfive/jh71xx_pmu.c @@ -6,13 +6,13 @@ */ #include -#include -#include +#include #include #include #include #include #include +#include #include /* register offset */ @@ -59,7 +59,7 @@ struct jh71xx_pmu_match_data { struct jh71xx_pmu { struct device *dev; const struct jh71xx_pmu_match_data *match_data; - void __iomem *base; + struct regmap *base; struct generic_pm_domain **genpd; struct genpd_onecell_data genpd_data; int irq; @@ -75,11 +75,14 @@ struct jh71xx_pmu_dev { static int jh71xx_pmu_get_state(struct jh71xx_pmu_dev *pmd, u32 mask, bool *is_on) { struct jh71xx_pmu *pmu = pmd->pmu; + unsigned int val; if (!mask) return -EINVAL; - *is_on = readl(pmu->base + JH71XX_PMU_CURR_POWER_MODE) & mask; + regmap_read(pmu->base, JH71XX_PMU_CURR_POWER_MODE, &val); + + *is_on = val & mask; return 0; } @@ -130,7 +133,7 @@ static int jh71xx_pmu_set_state(struct jh71xx_pmu_dev *pmd, u32 mask, bool on) encourage_hi = JH71XX_PMU_SW_ENCOURAGE_DIS_HI; } - writel(mask, pmu->base + mode); + regmap_write(pmu->base, mode, mask); /* * 2.Write SW encourage command sequence to the Software Encourage Reg (offset 0x44) @@ -140,21 +143,21 @@ static int jh71xx_pmu_set_state(struct jh71xx_pmu_dev *pmd, u32 mask, bool on) * Then write the lower bits of the command sequence, followed by the upper * bits. The sequence differs between powering on & off a domain. */ - writel(JH71XX_PMU_SW_ENCOURAGE_ON, pmu->base + JH71XX_PMU_SW_ENCOURAGE); - writel(encourage_lo, pmu->base + JH71XX_PMU_SW_ENCOURAGE); - writel(encourage_hi, pmu->base + JH71XX_PMU_SW_ENCOURAGE); + regmap_write(pmu->base, JH71XX_PMU_SW_ENCOURAGE, JH71XX_PMU_SW_ENCOURAGE_ON); + regmap_write(pmu->base, JH71XX_PMU_SW_ENCOURAGE, encourage_lo); + regmap_write(pmu->base, JH71XX_PMU_SW_ENCOURAGE, encourage_hi); spin_unlock_irqrestore(&pmu->lock, flags); /* Wait for the power domain bit to be enabled / disabled */ if (on) { - ret = readl_poll_timeout_atomic(pmu->base + JH71XX_PMU_CURR_POWER_MODE, - val, val & mask, - 1, JH71XX_PMU_TIMEOUT_US); + ret = regmap_read_poll_timeout_atomic(pmu->base, JH71XX_PMU_CURR_POWER_MODE, + val, val & mask, + 1, JH71XX_PMU_TIMEOUT_US); } else { - ret = readl_poll_timeout_atomic(pmu->base + JH71XX_PMU_CURR_POWER_MODE, - val, !(val & mask), - 1, JH71XX_PMU_TIMEOUT_US); + ret = regmap_read_poll_timeout_atomic(pmu->base, JH71XX_PMU_CURR_POWER_MODE, + val, !(val & mask), + 1, JH71XX_PMU_TIMEOUT_US); } if (ret) { @@ -190,14 +193,14 @@ static void jh71xx_pmu_int_enable(struct jh71xx_pmu *pmu, u32 mask, bool enable) unsigned long flags; spin_lock_irqsave(&pmu->lock, flags); - val = readl(pmu->base + JH71XX_PMU_TIMER_INT_MASK); + regmap_read(pmu->base, JH71XX_PMU_TIMER_INT_MASK, &val); if (enable) val &= ~mask; else val |= mask; - writel(val, pmu->base + JH71XX_PMU_TIMER_INT_MASK); + regmap_write(pmu->base, JH71XX_PMU_TIMER_INT_MASK, val); spin_unlock_irqrestore(&pmu->lock, flags); } @@ -206,7 +209,7 @@ static irqreturn_t jh71xx_pmu_interrupt(int irq, void *data) struct jh71xx_pmu *pmu = data; u32 val; - val = readl(pmu->base + JH71XX_PMU_INT_STATUS); + regmap_read(pmu->base, JH71XX_PMU_INT_STATUS, &val); if (val & JH71XX_PMU_INT_SEQ_DONE) dev_dbg(pmu->dev, "sequence done.\n"); @@ -220,8 +223,8 @@ static irqreturn_t jh71xx_pmu_interrupt(int irq, void *data) dev_err(pmu->dev, "p-channel fail event.\n"); /* clear interrupts */ - writel(val, pmu->base + JH71XX_PMU_INT_STATUS); - writel(val, pmu->base + JH71XX_PMU_EVENT_STATUS); + regmap_write(pmu->base, JH71XX_PMU_INT_STATUS, val); + regmap_write(pmu->base, JH71XX_PMU_EVENT_STATUS, val); return IRQ_HANDLED; } @@ -271,7 +274,7 @@ static int jh71xx_pmu_probe(struct platform_device *pdev) if (!pmu) return -ENOMEM; - pmu->base = devm_platform_ioremap_resource(pdev, 0); + pmu->base = device_node_to_regmap(np); if (IS_ERR(pmu->base)) return PTR_ERR(pmu->base); From patchwork Tue Apr 11 06:47:40 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changhuang Liang X-Patchwork-Id: 81762 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp2371566vqo; Mon, 10 Apr 2023 23:50:17 -0700 (PDT) X-Google-Smtp-Source: AKy350YbR+1KTg/8+rAn/ltrxNwmhtH/LCZbp37+ogerap4l0MXOrCG/FF/XmWafQlxKjB/iioc4 X-Received: by 2002:a05:6402:120f:b0:4fd:c5e:79b8 with SMTP id c15-20020a056402120f00b004fd0c5e79b8mr11741175edw.32.1681195817105; Mon, 10 Apr 2023 23:50:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681195817; cv=none; d=google.com; s=arc-20160816; b=Kt0zRg8tZoqm+Js1HnWjQ8DuU5hIrY51uDHfuMKuoK2uc9KGvJPskhtHiMeAVWIQJB f08i5uf4j+P0Cx/mLg1Ast9eRbI8FVWTQr3sjMw+H2yfF/ddR/6YJ3v8AawwjiXSzcP4 uiM1QUC9iPeh9FJWRG7XYCY1PRAInDDp1kmdG2zx97Tu6dEnn1N9VgOLwnXh8Pz5kVKk 2Qikb1ryYdfdgXGA6rlA96IfEBTbIhRKvw0jHcgUAZ2HsaxfYrVHTnkAk+Yk+6bK5V0b cSxZkVp8LhUPIwaI9q0mso0QAue6zyhBSm4szjxfa2s7PurUr0lGtmXYBu+8HhVKUlTy j/4g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=UmNIX1X0FfFg0zyiDl3WusctbA2X7Ru3tHalHWljmSY=; b=rAJwW5iAdZeu6fyY7X2KRA6N+YeU7PlqAojHIFcvPdFyUwjZkCPumruMmxYSe9ySW4 9dxgkTMsTxz9J9PHGLTWSTo4lBeWFt4wl/epmNuBh7WgA+WyxWUCbX/gPLQSVlI7R5YI +evxpx6tI46ECaNVIxy09iwGO2QYvztrtEjoD1i3ZMNdxA/G2u5BOICZDz62cihJcFi9 2tAOOtukhD3EUc/9//pPPhKFEYM+stz2XklsTfc6IFcGKLrrFm/VrZjWj0hC/3Yh9wNJ IP38U0JkG6qAiWYzmeGMsIfmXWujqW6UfwFvvhI9Lst59Bp18D60SZsNSeN6jWMja9nH EAxg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id d7-20020a05640208c700b00504b2a13d8esi2617130edz.216.2023.04.10.23.49.53; Mon, 10 Apr 2023 23:50:17 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230262AbjDKGsP convert rfc822-to-8bit (ORCPT + 99 others); Tue, 11 Apr 2023 02:48:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58686 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230235AbjDKGry (ORCPT ); Tue, 11 Apr 2023 02:47:54 -0400 Received: from fd01.gateway.ufhost.com (fd01.gateway.ufhost.com [61.152.239.71]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7043530E0; Mon, 10 Apr 2023 23:47:49 -0700 (PDT) Received: from EXMBX166.cuchost.com (unknown [175.102.18.54]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "EXMBX166", Issuer "EXMBX166" (not verified)) by fd01.gateway.ufhost.com (Postfix) with ESMTP id F336D24E2B9; Tue, 11 Apr 2023 14:47:47 +0800 (CST) Received: from EXMBX162.cuchost.com (172.16.6.72) by EXMBX166.cuchost.com (172.16.6.76) with Microsoft SMTP Server (TLS) id 15.0.1497.42; Tue, 11 Apr 2023 14:47:48 +0800 Received: from ubuntu.localdomain (113.72.145.176) by EXMBX162.cuchost.com (172.16.6.72) with Microsoft SMTP Server (TLS) id 15.0.1497.42; Tue, 11 Apr 2023 14:47:47 +0800 From: Changhuang Liang To: Rob Herring , Krzysztof Kozlowski , Emil Renner Berthing , Conor Dooley , Paul Walmsley , Palmer Dabbelt , Albert Ou CC: Walker Chen , Changhuang Liang , , , Subject: [PATCH v1 4/7] soc: starfive: Add pmu type operation Date: Mon, 10 Apr 2023 23:47:40 -0700 Message-ID: <20230411064743.273388-5-changhuang.liang@starfivetech.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230411064743.273388-1-changhuang.liang@starfivetech.com> References: <20230411064743.273388-1-changhuang.liang@starfivetech.com> MIME-Version: 1.0 X-Originating-IP: [113.72.145.176] X-ClientProxiedBy: EXCAS064.cuchost.com (172.16.6.24) To EXMBX162.cuchost.com (172.16.6.72) X-YovoleRuleAgent: yovoleflag X-Spam-Status: No, score=-0.0 required=5.0 tests=RCVD_IN_MSPIKE_H2, SPF_HELO_PASS,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1762861585159739219?= X-GMAIL-MSGID: =?utf-8?q?1762861585159739219?= Add pmu type, make a distinction between different PMU. Signed-off-by: Changhuang Liang --- drivers/soc/starfive/jh71xx_pmu.c | 55 ++++++++++++++++++++++--------- 1 file changed, 39 insertions(+), 16 deletions(-) diff --git a/drivers/soc/starfive/jh71xx_pmu.c b/drivers/soc/starfive/jh71xx_pmu.c index 306218c83691..98f6849d61de 100644 --- a/drivers/soc/starfive/jh71xx_pmu.c +++ b/drivers/soc/starfive/jh71xx_pmu.c @@ -45,6 +45,12 @@ */ #define JH71XX_PMU_TIMEOUT_US 100 +/* pmu type */ +enum pmu_type { + JH71XX_PMU_GENERAL, + JH71XX_PMU_DPHY, +}; + struct jh71xx_domain_info { const char * const name; unsigned int flags; @@ -54,6 +60,7 @@ struct jh71xx_domain_info { struct jh71xx_pmu_match_data { const struct jh71xx_domain_info *domain_info; int num_domains; + u8 pmu_type; }; struct jh71xx_pmu { @@ -75,19 +82,23 @@ struct jh71xx_pmu_dev { static int jh71xx_pmu_get_state(struct jh71xx_pmu_dev *pmd, u32 mask, bool *is_on) { struct jh71xx_pmu *pmu = pmd->pmu; + unsigned int offset = 0; unsigned int val; if (!mask) return -EINVAL; - regmap_read(pmu->base, JH71XX_PMU_CURR_POWER_MODE, &val); + if (pmu->match_data->pmu_type == JH71XX_PMU_GENERAL) + offset = JH71XX_PMU_CURR_POWER_MODE; + + regmap_read(pmu->base, offset, &val); *is_on = val & mask; return 0; } -static int jh71xx_pmu_set_state(struct jh71xx_pmu_dev *pmd, u32 mask, bool on) +static int jh71xx_pmu_general_set_state(struct jh71xx_pmu_dev *pmd, u32 mask, bool on) { struct jh71xx_pmu *pmu = pmd->pmu; unsigned long flags; @@ -95,22 +106,8 @@ static int jh71xx_pmu_set_state(struct jh71xx_pmu_dev *pmd, u32 mask, bool on) u32 mode; u32 encourage_lo; u32 encourage_hi; - bool is_on; int ret; - ret = jh71xx_pmu_get_state(pmd, mask, &is_on); - if (ret) { - dev_dbg(pmu->dev, "unable to get current state for %s\n", - pmd->genpd.name); - return ret; - } - - if (is_on == on) { - dev_dbg(pmu->dev, "pm domain [%s] is already %sable status.\n", - pmd->genpd.name, on ? "en" : "dis"); - return 0; - } - spin_lock_irqsave(&pmu->lock, flags); /* @@ -169,6 +166,31 @@ static int jh71xx_pmu_set_state(struct jh71xx_pmu_dev *pmd, u32 mask, bool on) return 0; } +static int jh71xx_pmu_set_state(struct jh71xx_pmu_dev *pmd, u32 mask, bool on) +{ + struct jh71xx_pmu *pmu = pmd->pmu; + bool is_on; + int ret = 0; + + ret = jh71xx_pmu_get_state(pmd, mask, &is_on); + if (ret) { + dev_dbg(pmu->dev, "unable to get current state for %s\n", + pmd->genpd.name); + return ret; + } + + if (is_on == on) { + dev_dbg(pmu->dev, "pm domain [%s] is already %sable status.\n", + pmd->genpd.name, on ? "en" : "dis"); + return 0; + } + + if (pmu->match_data->pmu_type == JH71XX_PMU_GENERAL) + ret = jh71xx_pmu_general_set_state(pmd, mask, on); + + return ret; +} + static int jh71xx_pmu_on(struct generic_pm_domain *genpd) { struct jh71xx_pmu_dev *pmd = container_of(genpd, @@ -360,6 +382,7 @@ static const struct jh71xx_domain_info jh7110_power_domains[] = { static const struct jh71xx_pmu_match_data jh7110_pmu = { .num_domains = ARRAY_SIZE(jh7110_power_domains), .domain_info = jh7110_power_domains, + .pmu_type = JH71XX_PMU_GENERAL, }; static const struct of_device_id jh71xx_pmu_of_match[] = { From patchwork Tue Apr 11 06:47:41 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changhuang Liang X-Patchwork-Id: 81761 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp2371553vqo; Mon, 10 Apr 2023 23:50:15 -0700 (PDT) X-Google-Smtp-Source: AKy350ZkC9tqHVbut5LBRma+jZnxbHoZpY8TNCHWtxQ6e9u7KbVpIyp9DaT5YHRz9KI0XGq1K42t X-Received: by 2002:a17:907:6da1:b0:94e:16d:4bf1 with SMTP id sb33-20020a1709076da100b0094e016d4bf1mr2516415ejc.66.1681195815682; Mon, 10 Apr 2023 23:50:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681195815; cv=none; d=google.com; s=arc-20160816; b=Thv4kH/GAA06fP/zpvQHmJ0AKvls+e+RH2IWYrEP1Mstho8b0hmrldKJSMU4VM6CcH ZAI0vdxiGPP3bnZPgLwW874Kbh4rwrz1tGHU1CeSMqrt38XmtvvsdUA2u02P4/Gwpjf8 o/anoG91L5ry3/ykVCJ0Wa3sDZuYOupZ++5bAWL4jy1O/eLAUB5gS46blw1UJ15dHPW2 37r5T0Y/4EpjbvMAadmo5HVtDliJk1BaBDFpwlID8QlmAoUTgLbtiigZmsf6r7r+WWEb zIfPIrG1ZYBUFXuZosetq+1RJWzu5qIo5ESBw8adc/u2+AbN/4H83VHGqmoxqosrcmoG UWFw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=9Z3XJY412qjZqqFbQ8/oTfOtB4r+EGyW/n2zJXn9B44=; b=eLoPReoKbRrI0BI8Zn+og+1wJwCWgofbja3jgsYNecuQBIqaaFNFqGGmClDCUuG/ta WMmmawnnDc72lhkRvYGVQYxiO1uYDk366Qz0AOHnDF2+QZvkFxpRiW0+3MppeUxmfgLs 5+jmolaWkbcVW1p81Ze8rIMMDjOROY6FfOp2q7affhFp7wTQVPVcj7LbqBaQzGqWIqTC JPqi0CiE4y9+3kC2AXTj4wfginUggtewWI9aMV/JFrkcqPGEssqRCDbJdoU5bgFmmAYe 5mA5kA7YXi78DxV9pfpoH8xgmexpwuXSfisAzOsRTuyiqmezhj5XkeTnLQqy2LACowmi s1tA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id i20-20020a1709063c5400b0094a702dba60si1761029ejg.911.2023.04.10.23.49.51; Mon, 10 Apr 2023 23:50:15 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230331AbjDKGsL convert rfc822-to-8bit (ORCPT + 99 others); Tue, 11 Apr 2023 02:48:11 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58696 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230172AbjDKGry (ORCPT ); Tue, 11 Apr 2023 02:47:54 -0400 Received: from ex01.ufhost.com (ex01.ufhost.com [61.152.239.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 25D431BD5; Mon, 10 Apr 2023 23:47:50 -0700 (PDT) Received: from EXMBX165.cuchost.com (unknown [175.102.18.54]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "EXMBX165", Issuer "EXMBX165" (not verified)) by ex01.ufhost.com (Postfix) with ESMTP id A84DE24E226; Tue, 11 Apr 2023 14:47:48 +0800 (CST) Received: from EXMBX162.cuchost.com (172.16.6.72) by EXMBX165.cuchost.com (172.16.6.75) with Microsoft SMTP Server (TLS) id 15.0.1497.42; Tue, 11 Apr 2023 14:47:48 +0800 Received: from ubuntu.localdomain (113.72.145.176) by EXMBX162.cuchost.com (172.16.6.72) with Microsoft SMTP Server (TLS) id 15.0.1497.42; Tue, 11 Apr 2023 14:47:47 +0800 From: Changhuang Liang To: Rob Herring , Krzysztof Kozlowski , Emil Renner Berthing , Conor Dooley , Paul Walmsley , Palmer Dabbelt , Albert Ou CC: Walker Chen , Changhuang Liang , , , Subject: [PATCH v1 5/7] soc: starfive: Use call back to parse device tree resources Date: Mon, 10 Apr 2023 23:47:41 -0700 Message-ID: <20230411064743.273388-6-changhuang.liang@starfivetech.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230411064743.273388-1-changhuang.liang@starfivetech.com> References: <20230411064743.273388-1-changhuang.liang@starfivetech.com> MIME-Version: 1.0 X-Originating-IP: [113.72.145.176] X-ClientProxiedBy: EXCAS064.cuchost.com (172.16.6.24) To EXMBX162.cuchost.com (172.16.6.72) X-YovoleRuleAgent: yovoleflag X-Spam-Status: No, score=0.0 required=5.0 tests=SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1762861583540346074?= X-GMAIL-MSGID: =?utf-8?q?1762861583540346074?= Different compatible parse device tree resources work in different ways. Signed-off-by: Changhuang Liang --- drivers/soc/starfive/jh71xx_pmu.c | 54 ++++++++++++++++++++++--------- 1 file changed, 39 insertions(+), 15 deletions(-) diff --git a/drivers/soc/starfive/jh71xx_pmu.c b/drivers/soc/starfive/jh71xx_pmu.c index 98f6849d61de..990db6735c48 100644 --- a/drivers/soc/starfive/jh71xx_pmu.c +++ b/drivers/soc/starfive/jh71xx_pmu.c @@ -57,10 +57,14 @@ struct jh71xx_domain_info { u8 bit; }; +struct jh71xx_pmu; + struct jh71xx_pmu_match_data { const struct jh71xx_domain_info *domain_info; int num_domains; u8 pmu_type; + int (*pmu_parse_dt)(struct platform_device *pdev, + struct jh71xx_pmu *pmu); }; struct jh71xx_pmu { @@ -251,6 +255,31 @@ static irqreturn_t jh71xx_pmu_interrupt(int irq, void *data) return IRQ_HANDLED; } +static int jh7110_pmu_general_parse_dt(struct platform_device *pdev, + struct jh71xx_pmu *pmu) +{ + struct device *dev = &pdev->dev; + struct device_node *np = dev->of_node; + int ret; + + pmu->base = device_node_to_regmap(np); + if (IS_ERR(pmu->base)) + return PTR_ERR(pmu->base); + + pmu->irq = platform_get_irq(pdev, 0); + if (pmu->irq < 0) + return pmu->irq; + + ret = devm_request_irq(dev, pmu->irq, jh71xx_pmu_interrupt, + 0, pdev->name, pmu); + if (ret) + dev_err(dev, "failed to request irq\n"); + + jh71xx_pmu_int_enable(pmu, JH71XX_PMU_INT_ALL_MASK & ~JH71XX_PMU_INT_PCH_FAIL, true); + + return 0; +} + static int jh71xx_pmu_init_domain(struct jh71xx_pmu *pmu, int index) { struct jh71xx_pmu_dev *pmd; @@ -296,23 +325,20 @@ static int jh71xx_pmu_probe(struct platform_device *pdev) if (!pmu) return -ENOMEM; - pmu->base = device_node_to_regmap(np); - if (IS_ERR(pmu->base)) - return PTR_ERR(pmu->base); - - pmu->irq = platform_get_irq(pdev, 0); - if (pmu->irq < 0) - return pmu->irq; - - ret = devm_request_irq(dev, pmu->irq, jh71xx_pmu_interrupt, - 0, pdev->name, pmu); - if (ret) - dev_err(dev, "failed to request irq\n"); + spin_lock_init(&pmu->lock); match_data = of_device_get_match_data(dev); if (!match_data) return -EINVAL; + if (match_data->pmu_parse_dt) { + ret = match_data->pmu_parse_dt(pdev, pmu); + if (ret) { + dev_err(dev, "failed to parse dt\n"); + return ret; + } + } + pmu->genpd = devm_kcalloc(dev, match_data->num_domains, sizeof(struct generic_pm_domain *), GFP_KERNEL); @@ -332,9 +358,6 @@ static int jh71xx_pmu_probe(struct platform_device *pdev) } } - spin_lock_init(&pmu->lock); - jh71xx_pmu_int_enable(pmu, JH71XX_PMU_INT_ALL_MASK & ~JH71XX_PMU_INT_PCH_FAIL, true); - ret = of_genpd_add_provider_onecell(np, &pmu->genpd_data); if (ret) { dev_err(dev, "failed to register genpd driver: %d\n", ret); @@ -383,6 +406,7 @@ static const struct jh71xx_pmu_match_data jh7110_pmu = { .num_domains = ARRAY_SIZE(jh7110_power_domains), .domain_info = jh7110_power_domains, .pmu_type = JH71XX_PMU_GENERAL, + .pmu_parse_dt = jh7110_pmu_general_parse_dt, }; static const struct of_device_id jh71xx_pmu_of_match[] = { From patchwork Tue Apr 11 06:47:42 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changhuang Liang X-Patchwork-Id: 81773 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp2379201vqo; Tue, 11 Apr 2023 00:08:45 -0700 (PDT) X-Google-Smtp-Source: AKy350aQrRgUDILfe2KfNAANrraoMaQl8gK2hXYVKeDya2M97W4RKV/8ig60GNbWK4vi2645EzL8 X-Received: by 2002:a17:902:c40e:b0:1a1:c2cb:f44e with SMTP id k14-20020a170902c40e00b001a1c2cbf44emr2305893plk.53.1681196925525; Tue, 11 Apr 2023 00:08:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681196925; cv=none; d=google.com; s=arc-20160816; b=fASTTuagzdY050zh5SzwJYdWc7WpkBk5GO3liWMuQjNpTBGUrz5QUduxvZ0JhKWM01 KtE2CHscUdzq4a7wL0dybgIFrhsgIkRQnvqW8iftEzqkO5/IaLE/hzvWzEMW8dLq4ouE HUWqLysDNEimRPXZqzpu43aDs8h88Pxaj8H2qxwukHEYkiWFnKwsiGEh6ESIksoUM5Ds AiTqhO0pNRq+NeJwv0NJSamcecUBeJ019DQwXsbDM2QESAcxhVpaMu0I21G7hg1+6gc4 JNg8wW3hiP7dVn8B9CIO5372CPsFnUF5XPOTLCHjpgNlPbepbuCrrybmUgwCnNzoKJUp 9K1w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=O8xQncokLE91Jw9Me4QsntgHTqXXd9e4Vj3yFp4WN3U=; b=gKhxV/0kP9ykWcXOySK1lQZ3fbJkIay2LSjS0dSLX62FZsqPmtqiMYlK5hWNxK3WQB eKPZv1xdVC+2bstziJBJHk5QosQNAuEJGwzVpffGRccBsf+zXDmC3Ys1HPAmEuxc25dh pm3yP5/9I/zAZImnJ3766MDtDeczBevcq+VZ0wUBjUgde9hf1mOgjYcqpyW+sfFnwClk TZ5ZplbYM86XE/BgkVekIXizm3X5hX/C32+GKp+3DrarkoXiyKxX5hggxF/RDvovZAi7 qiGNDlV3YS3m/M37PPLSM/k3RlFsO1HpFHwgvtF00EvwbDpOrR5rh/ttr9GGpleGMdNf 4wQg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id b20-20020a170902d89400b001a507d6feb8si11711051plz.628.2023.04.11.00.08.32; Tue, 11 Apr 2023 00:08:45 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230360AbjDKGsV convert rfc822-to-8bit (ORCPT + 99 others); Tue, 11 Apr 2023 02:48:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58144 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230238AbjDKGry (ORCPT ); Tue, 11 Apr 2023 02:47:54 -0400 Received: from ex01.ufhost.com (ex01.ufhost.com [61.152.239.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3BC01212F; Mon, 10 Apr 2023 23:47:51 -0700 (PDT) Received: from EXMBX166.cuchost.com (unknown [175.102.18.54]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "EXMBX166", Issuer "EXMBX166" (not verified)) by ex01.ufhost.com (Postfix) with ESMTP id 6CD7724E293; Tue, 11 Apr 2023 14:47:49 +0800 (CST) Received: from EXMBX162.cuchost.com (172.16.6.72) by EXMBX166.cuchost.com (172.16.6.76) with Microsoft SMTP Server (TLS) id 15.0.1497.42; Tue, 11 Apr 2023 14:47:49 +0800 Received: from ubuntu.localdomain (113.72.145.176) by EXMBX162.cuchost.com (172.16.6.72) with Microsoft SMTP Server (TLS) id 15.0.1497.42; Tue, 11 Apr 2023 14:47:48 +0800 From: Changhuang Liang To: Rob Herring , Krzysztof Kozlowski , Emil Renner Berthing , Conor Dooley , Paul Walmsley , Palmer Dabbelt , Albert Ou CC: Walker Chen , Changhuang Liang , , , Subject: [PATCH v1 6/7] soc: starfive: Add dphy pmu support Date: Mon, 10 Apr 2023 23:47:42 -0700 Message-ID: <20230411064743.273388-7-changhuang.liang@starfivetech.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230411064743.273388-1-changhuang.liang@starfivetech.com> References: <20230411064743.273388-1-changhuang.liang@starfivetech.com> MIME-Version: 1.0 X-Originating-IP: [113.72.145.176] X-ClientProxiedBy: EXCAS064.cuchost.com (172.16.6.24) To EXMBX162.cuchost.com (172.16.6.72) X-YovoleRuleAgent: yovoleflag X-Spam-Status: No, score=0.0 required=5.0 tests=SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1762862747510741489?= X-GMAIL-MSGID: =?utf-8?q?1762862747510741489?= Add dphy pmu to turn on/off the dphy power switch. Signed-off-by: Changhuang Liang --- MAINTAINERS | 1 + drivers/soc/starfive/jh71xx_pmu.c | 65 +++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 0b2170e1e4ff..4d958f02403e 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -19944,6 +19944,7 @@ F: include/dt-bindings/reset/starfive?jh71*.h STARFIVE JH71XX PMU CONTROLLER DRIVER M: Walker Chen +M: Changhuang Liang S: Supported F: Documentation/devicetree/bindings/power/starfive* F: drivers/soc/starfive/jh71xx_pmu.c diff --git a/drivers/soc/starfive/jh71xx_pmu.c b/drivers/soc/starfive/jh71xx_pmu.c index 990db6735c48..d4092ca4dccf 100644 --- a/drivers/soc/starfive/jh71xx_pmu.c +++ b/drivers/soc/starfive/jh71xx_pmu.c @@ -24,6 +24,9 @@ #define JH71XX_PMU_EVENT_STATUS 0x88 #define JH71XX_PMU_INT_STATUS 0x8C +/* DPHY pmu register offset */ +#define JH71XX_PMU_DPHY_SWITCH 0x00 + /* sw encourage cfg */ #define JH71XX_PMU_SW_ENCOURAGE_EN_LO 0x05 #define JH71XX_PMU_SW_ENCOURAGE_EN_HI 0x50 @@ -94,6 +97,8 @@ static int jh71xx_pmu_get_state(struct jh71xx_pmu_dev *pmd, u32 mask, bool *is_o if (pmu->match_data->pmu_type == JH71XX_PMU_GENERAL) offset = JH71XX_PMU_CURR_POWER_MODE; + else if (pmu->match_data->pmu_type == JH71XX_PMU_DPHY) + offset = JH71XX_PMU_DPHY_SWITCH; regmap_read(pmu->base, offset, &val); @@ -170,6 +175,23 @@ static int jh71xx_pmu_general_set_state(struct jh71xx_pmu_dev *pmd, u32 mask, bo return 0; } +static int jh71xx_pmu_dphy_set_state(struct jh71xx_pmu_dev *pmd, u32 mask, bool on) +{ + struct jh71xx_pmu *pmu = pmd->pmu; + unsigned long flags; + + spin_lock_irqsave(&pmu->lock, flags); + + if (on) + regmap_update_bits(pmu->base, JH71XX_PMU_DPHY_SWITCH, mask, mask); + else + regmap_update_bits(pmu->base, JH71XX_PMU_DPHY_SWITCH, mask, 0); + + spin_unlock_irqrestore(&pmu->lock, flags); + + return 0; +} + static int jh71xx_pmu_set_state(struct jh71xx_pmu_dev *pmd, u32 mask, bool on) { struct jh71xx_pmu *pmu = pmd->pmu; @@ -191,6 +213,8 @@ static int jh71xx_pmu_set_state(struct jh71xx_pmu_dev *pmd, u32 mask, bool on) if (pmu->match_data->pmu_type == JH71XX_PMU_GENERAL) ret = jh71xx_pmu_general_set_state(pmd, mask, on); + else if (pmu->match_data->pmu_type == JH71XX_PMU_DPHY) + ret = jh71xx_pmu_dphy_set_state(pmd, mask, on); return ret; } @@ -280,6 +304,25 @@ static int jh7110_pmu_general_parse_dt(struct platform_device *pdev, return 0; } +static int jh7110_pmu_dphy_parse_dt(struct platform_device *pdev, + struct jh71xx_pmu *pmu) +{ + struct device *parent; + struct device *dev = &pdev->dev; + + parent = pdev->dev.parent; + if (!parent) { + dev_err(dev, "No parent for syscon pmu\n"); + return -ENODEV; + } + + pmu->base = syscon_node_to_regmap(parent->of_node); + if (IS_ERR(pmu->base)) + return PTR_ERR(pmu->base); + + return 0; +} + static int jh71xx_pmu_init_domain(struct jh71xx_pmu *pmu, int index) { struct jh71xx_pmu_dev *pmd; @@ -409,10 +452,31 @@ static const struct jh71xx_pmu_match_data jh7110_pmu = { .pmu_parse_dt = jh7110_pmu_general_parse_dt, }; +static const struct jh71xx_domain_info jh7110_dphy_power_domains[] = { + [JH7110_PD_DPHY_TX] = { + .name = "DPHY-TX", + .bit = 30, + }, + [JH7110_PD_DPHY_RX] = { + .name = "DPHY-RX", + .bit = 31, + }, +}; + +static const struct jh71xx_pmu_match_data jh7110_pmu_dphy = { + .num_domains = ARRAY_SIZE(jh7110_dphy_power_domains), + .domain_info = jh7110_dphy_power_domains, + .pmu_type = JH71XX_PMU_DPHY, + .pmu_parse_dt = jh7110_pmu_dphy_parse_dt, +}; + static const struct of_device_id jh71xx_pmu_of_match[] = { { .compatible = "starfive,jh7110-pmu", .data = (void *)&jh7110_pmu, + }, { + .compatible = "starfive,jh7110-pmu-dphy", + .data = (void *)&jh7110_pmu_dphy, }, { /* sentinel */ } @@ -429,5 +493,6 @@ static struct platform_driver jh71xx_pmu_driver = { builtin_platform_driver(jh71xx_pmu_driver); MODULE_AUTHOR("Walker Chen "); +MODULE_AUTHOR("Changhuang Liang "); MODULE_DESCRIPTION("StarFive JH71XX PMU Driver"); MODULE_LICENSE("GPL"); From patchwork Tue Apr 11 06:47:43 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changhuang Liang X-Patchwork-Id: 81763 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp2371689vqo; Mon, 10 Apr 2023 23:50:40 -0700 (PDT) X-Google-Smtp-Source: AKy350ajDx25QmoEJph9DP7A4nbVQnL40EvHr0cTZJ4XUG2Jr5jA5TN1TnzGbx4tjzcDBYHuID5r X-Received: by 2002:aa7:d94b:0:b0:504:b01c:cc53 with SMTP id l11-20020aa7d94b000000b00504b01ccc53mr3882752eds.1.1681195839729; Mon, 10 Apr 2023 23:50:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681195839; cv=none; d=google.com; s=arc-20160816; b=LBu1uWFDWS64qTmdz6kKhM/KCDrt9FVZ0GA5dKGpA52DB+vTxVr0lmyei5RMeYNrDQ aLKsAW9I3s0zH62zE7d7yGWrm9rX0x6TFqJrpIzJIVsUK8R8lNlgcM2gzD5nYzmQ6RRU R0WBTetTRbdzgXimBdx6nYFdWr5/X7kKl6PuIJOWv+c2EBsU0CQaGwQzrzHQ5j0ph313 t/N86d1o0LR230PebDeYj2Bl+KDLuSgr7VWj4lR4ogbWBG+otziio5jLvvaABowQR08/ hlsaqG/cIuWH0fsdfTbTdz6E1HjgIzPeqovnlhaW4IjLPxO2jlLYQQBqKI4NS7wYVMnv 0D7g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=+kH+tbaqWMbTUYCAxuS9Wx4ZgUMIGBZYKHEgCfGHpuQ=; b=dFl4biCqlXBTdEUXLSAumEymywDeX8aOChSGZkUgXG5Ppiu85T5odKSy5YJp7HoWxb x6CY5wqEQVVirYJhlOT0SLmegWCUngaxg0pSSWJ/pfE1bxzyHOiRVgZ9HJ/gbzkW0N8e 3OfeTjamMbmFLuJ+Fp9XOE4vRS9/Kh+OSgJiw/aTSGYMYf8vPF0QBnJ2uU9XSALqHo8A mTG3Y2MEE78Lsd8igwl5XBxXgmCID0qprfXmqOB8Gt1XyF599IOISuX0ZIdG7l4pkEE6 YQxqQWEdixPfvMb5t+fxdf3Z/WVAcVPijxTH2waqtUIPOOzF43xl3jxftDac+6varV0x KJNQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id i21-20020a50fc15000000b005048af6cedfsi2190370edr.69.2023.04.10.23.50.15; Mon, 10 Apr 2023 23:50:39 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230152AbjDKGsZ convert rfc822-to-8bit (ORCPT + 99 others); Tue, 11 Apr 2023 02:48:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58240 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230173AbjDKGr7 (ORCPT ); Tue, 11 Apr 2023 02:47:59 -0400 Received: from fd01.gateway.ufhost.com (fd01.gateway.ufhost.com [61.152.239.71]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ED591E60; Mon, 10 Apr 2023 23:47:56 -0700 (PDT) Received: from EXMBX165.cuchost.com (unknown [175.102.18.54]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "EXMBX165", Issuer "EXMBX165" (not verified)) by fd01.gateway.ufhost.com (Postfix) with ESMTP id 2915624E2C7; Tue, 11 Apr 2023 14:47:50 +0800 (CST) Received: from EXMBX162.cuchost.com (172.16.6.72) by EXMBX165.cuchost.com (172.16.6.75) with Microsoft SMTP Server (TLS) id 15.0.1497.42; Tue, 11 Apr 2023 14:47:50 +0800 Received: from ubuntu.localdomain (113.72.145.176) by EXMBX162.cuchost.com (172.16.6.72) with Microsoft SMTP Server (TLS) id 15.0.1497.42; Tue, 11 Apr 2023 14:47:49 +0800 From: Changhuang Liang To: Rob Herring , Krzysztof Kozlowski , Emil Renner Berthing , Conor Dooley , Paul Walmsley , Palmer Dabbelt , Albert Ou CC: Walker Chen , Changhuang Liang , , , Subject: [PATCH v1 7/7] riscv: dts: starfive: Add dphy rx pmu node Date: Mon, 10 Apr 2023 23:47:43 -0700 Message-ID: <20230411064743.273388-8-changhuang.liang@starfivetech.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230411064743.273388-1-changhuang.liang@starfivetech.com> References: <20230411064743.273388-1-changhuang.liang@starfivetech.com> MIME-Version: 1.0 X-Originating-IP: [113.72.145.176] X-ClientProxiedBy: EXCAS064.cuchost.com (172.16.6.24) To EXMBX162.cuchost.com (172.16.6.72) X-YovoleRuleAgent: yovoleflag X-Spam-Status: No, score=-0.0 required=5.0 tests=RCVD_IN_MSPIKE_H2, SPF_HELO_PASS,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1762861608739060995?= X-GMAIL-MSGID: =?utf-8?q?1762861608739060995?= Add dphy rx pmu node to configure dphy power. Signed-off-by: Changhuang Liang Reviewed-by: Walker Chen --- arch/riscv/boot/dts/starfive/jh7110.dtsi | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/arch/riscv/boot/dts/starfive/jh7110.dtsi b/arch/riscv/boot/dts/starfive/jh7110.dtsi index f271c3184d3a..a82374afcc91 100644 --- a/arch/riscv/boot/dts/starfive/jh7110.dtsi +++ b/arch/riscv/boot/dts/starfive/jh7110.dtsi @@ -499,6 +499,11 @@ aoncrg: clock-controller@17000000 { aon_syscon: syscon@17010000 { compatible = "starfive,jh7110-aon-syscon", "syscon", "simple-mfd"; reg = <0x0 0x17010000 0x0 0x1000>; + + pwrc_dphy: power-controller { + compatible = "starfive,jh7110-pmu-dphy"; + #power-domain-cells = <1>; + }; }; aongpio: pinctrl@17020000 {