From patchwork Mon Nov 28 12:42:14 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hector Martin X-Patchwork-Id: 26737 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5637950wrr; Mon, 28 Nov 2022 04:48:02 -0800 (PST) X-Google-Smtp-Source: AA0mqf7KmgGmg0rfr5srMpu7O21oHxNktp+fX6J5r3Tu6g358iO0eFdilLjTPCXJRF2s+1tB9mYa X-Received: by 2002:aa7:d518:0:b0:46a:727f:b659 with SMTP id y24-20020aa7d518000000b0046a727fb659mr21707637edq.420.1669639682562; Mon, 28 Nov 2022 04:48:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669639682; cv=none; d=google.com; s=arc-20160816; b=MoNFsAFeW2FU6UAGCxAywJXEDqWG4plqzmoPtpgjyKy+NMYX9BEv1lOa+JxnNpurO+ 30u2yOCRMynIUMKb2808+36noCNEKxKWJW5+zhydR/Q8CZcya4ZlfBvtH5SXAAprQ3ao 3qQ6628whqaDYs7WjUvxCRfM2Thd2yx4lgqAUYrWfhvQ782SI8klYIVpKIvX6Df8ZEvY UFHlF+kDJh7ypGmGv71Iq3O19Qs20XSSMlVee50u2aUcS5BpR6rkzdDZzXvoEGVStLgo B47HhpFyKxrZTejuTJo+FO1EQCZ+XJhBTjdhdS958ApCiNcPgn2mcWBANDJLaeZGmtjb H8Ug== 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 :dkim-signature; bh=zmetjoZYb+9GOng9XddHEKotdGnVonbPQ7RjO+NFaeU=; b=S5PGMZZxVIGKS3lNU1ORdXZK+5FDEPMfI3K9qoWLp8vbNvRaCct7Qp7xXK+DZWD6KE W2j/UpBjREim1guHpKVDjSHSaae965HlMFu+0+nHvy2NHaZa+co1UnoGWDd1QQdKRVx0 q/aUJwFGK+LPsb/FSeJvQk0OOTpVk2BCt7xRx9S0EjgaJi+7B8Mjngx+9QCO+CVezVPk O9YGw4j6b+ypVDhlabXRu6kd4uP5dcl1H2XgGgBx3BOfF6mrRjOwxc7YjQ1T1+U3Zw2Y NPtoHTT7U2x+CqgUmtMf0OXQO0RHl9LnOTCYPPGhz8H3BgxtCT77gnJpz/Dz6+EnAYeK Rp2Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@marcan.st header.s=default header.b=BHP4mz5j; 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; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=marcan.st Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ae12-20020a17090725cc00b00781a47397b1si9663694ejc.502.2022.11.28.04.47.38; Mon, 28 Nov 2022 04:48:02 -0800 (PST) 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; dkim=pass header.i=@marcan.st header.s=default header.b=BHP4mz5j; 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; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=marcan.st Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231147AbiK1MnD (ORCPT + 99 others); Mon, 28 Nov 2022 07:43:03 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49240 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231263AbiK1MnB (ORCPT ); Mon, 28 Nov 2022 07:43:01 -0500 Received: from mail.marcansoft.com (marcansoft.com [212.63.210.85]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5A7A06568; Mon, 28 Nov 2022 04:43:00 -0800 (PST) Received: from [127.0.0.1] (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: sendonly@marcansoft.com) by mail.marcansoft.com (Postfix) with ESMTPSA id 6ABAB41F4A; Mon, 28 Nov 2022 12:42:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=marcan.st; s=default; t=1669639378; bh=IJcTfOUw3TRQPkHgu7ZsA5CG0etWrehb7Gr/4xG5dl8=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=BHP4mz5jOvw3yuKiPXOrO9ybm4tuE9FwfYaHMZERvXi/hHVuRT9ulIgNLV9rsbYAf c8ex0Cja+HKk1a05f+8tgLGafDZgwam7RpV1EzSqt4VN5PFrm3INaLZkfY3t+dYzjV EEU38ddQmj4vq9kCSjmxP4XnLZSpSQSFHqrmjmKbPWfztv+Qx9wnRpLn9i4bFXzgBr lBq2Wt/3AnfgvYtqOJ25F9MCFxt3GFV00a8W0kch/RLYdvjuf7qPj1q6lnoEWf8Y41 yEI7yRNKHsP6lHtO0xI5FyNEwhlOZo/N0A0xC/p8L0wwCAtuY0h8HZyeIZbdSXyuzA r/nrZarCA0XKg== From: Hector Martin To: "Rafael J. Wysocki" , Viresh Kumar , Matthias Brugger Cc: Hector Martin , Sven Peter , Alyssa Rosenzweig , Rob Herring , Krzysztof Kozlowski , Stephen Boyd , Ulf Hansson , Marc Zyngier , Mark Kettenis , asahi@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v4 2/4] dt-bindings: cpufreq: apple,soc-cpufreq: Add binding for Apple SoC cpufreq Date: Mon, 28 Nov 2022 21:42:14 +0900 Message-Id: <20221128124216.13477-3-marcan@marcan.st> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20221128124216.13477-1-marcan@marcan.st> References: <20221128124216.13477-1-marcan@marcan.st> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=ham 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?1750744099686021336?= X-GMAIL-MSGID: =?utf-8?q?1750744099686021336?= This binding represents the cpufreq/DVFS hardware present in Apple SoCs. The hardware has an independent controller per CPU cluster, and we represent them as unique nodes in order to accurately describe the hardware. The driver is responsible for binding them as a single cpufreq device (in the Linux cpufreq model). Acked-by: Marc Zyngier Signed-off-by: Hector Martin --- .../cpufreq/apple,cluster-cpufreq.yaml | 117 ++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 Documentation/devicetree/bindings/cpufreq/apple,cluster-cpufreq.yaml diff --git a/Documentation/devicetree/bindings/cpufreq/apple,cluster-cpufreq.yaml b/Documentation/devicetree/bindings/cpufreq/apple,cluster-cpufreq.yaml new file mode 100644 index 000000000000..a21271f73fc1 --- /dev/null +++ b/Documentation/devicetree/bindings/cpufreq/apple,cluster-cpufreq.yaml @@ -0,0 +1,117 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/cpufreq/apple,cluster-cpufreq.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Apple SoC cluster cpufreq device + +maintainers: + - Hector Martin + +description: | + Apple SoCs (e.g. M1) have a per-cpu-cluster DVFS controller that is part of + the cluster management register block. This binding uses the standard + operating-points-v2 table to define the CPU performance states, with the + opp-level property specifying the hardware p-state index for that level. + +properties: + compatible: + oneOf: + - items: + - oneOf: + - apple,t8103-cluster-cpufreq + - apple,t8112-cluster-cpufreq + - const: apple,cluster-cpufreq + - items: + - const: apple,t6000-cluster-cpufreq + - const: apple,t8103-cluster-cpufreq + - const: apple,cluster-cpufreq + + reg: + maxItems: 1 + + '#performance-domain-cells': + const: 0 + +required: + - compatible + - reg + - '#performance-domain-cells' + +additionalProperties: false + +examples: + - | + // This example shows a single CPU per domain and 2 domains, + // with two p-states per domain. + // Shipping hardware has 2-4 CPUs per domain and 2-6 domains. + cpus { + #address-cells = <2>; + #size-cells = <0>; + + cpu@0 { + compatible = "apple,icestorm"; + device_type = "cpu"; + reg = <0x0 0x0>; + operating-points-v2 = <&ecluster_opp>; + performance-domains = <&cpufreq_e>; + }; + + cpu@10100 { + compatible = "apple,firestorm"; + device_type = "cpu"; + reg = <0x0 0x10100>; + operating-points-v2 = <&pcluster_opp>; + performance-domains = <&cpufreq_p>; + }; + }; + + ecluster_opp: opp-table-0 { + compatible = "operating-points-v2"; + opp-shared; + + opp01 { + opp-hz = /bits/ 64 <600000000>; + opp-level = <1>; + clock-latency-ns = <7500>; + }; + opp02 { + opp-hz = /bits/ 64 <972000000>; + opp-level = <2>; + clock-latency-ns = <22000>; + }; + }; + + pcluster_opp: opp-table-1 { + compatible = "operating-points-v2"; + opp-shared; + + opp01 { + opp-hz = /bits/ 64 <600000000>; + opp-level = <1>; + clock-latency-ns = <8000>; + }; + opp02 { + opp-hz = /bits/ 64 <828000000>; + opp-level = <2>; + clock-latency-ns = <19000>; + }; + }; + + soc { + #address-cells = <2>; + #size-cells = <2>; + + cpufreq_e: performance-controller@210e20000 { + compatible = "apple,t8103-cluster-cpufreq", "apple,cluster-cpufreq"; + reg = <0x2 0x10e20000 0 0x1000>; + #performance-domain-cells = <0>; + }; + + cpufreq_p: performance-controller@211e20000 { + compatible = "apple,t8103-cluster-cpufreq", "apple,cluster-cpufreq"; + reg = <0x2 0x11e20000 0 0x1000>; + #performance-domain-cells = <0>; + }; + };