Received: by 2002:a6b:500f:0:0:0:0:0 with SMTP id e15csp507754iob; Wed, 4 May 2022 01:31:29 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxew1QlsrDr6W0h2+4FGK0zSDKLg7rw7oCv8LKpuOwsw/m38R+wQTPWCVRXe1ex3jXgwvba X-Received: by 2002:a17:903:110f:b0:15e:7d64:bdad with SMTP id n15-20020a170903110f00b0015e7d64bdadmr21233814plh.59.1651653088822; Wed, 04 May 2022 01:31:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1651653088; cv=none; d=google.com; s=arc-20160816; b=aS5OKhhHKyi8pjd/3F/pSI7/Mu7Lzj6aS6bsvtGFDLM8byvgUkWx5qZ2WyKGbIfEp6 OG8fyOn4NouhoGXRJu5u4WWk0yNHapUy4Nrr54Jdn1LZuqSdtaypR4A4w/G3w/5athmO eiIhvnvkat8GadCR1OVcsiROvd96/SX905pFArEHEe9EKlr8NUpygYq8nVn/2otLkqv0 wkJifoPD3bNi+eWvm95/bT73F6SnzH2+bYvKzjk6MSoDnzF2M6qVC3POWFoAqcVknWfC /kzzBlxCtP8lN8HORiYj2OI3gREGxZVRHOOXRiS6L8Bu+ul4qWxk4X7SaQkxjjtngih1 mRSw== 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=GkBNl2DJv6bTQYh9JJ6xq0MFOnDW8Urry1eF9BFqTSk=; b=kXG/8EghiIcMjeWR8XjW5xqIXp8dRksuhmi0AbSMvSSLunlMRNqPQTgfI25xDupVEv TYjJhheLr20RE5vtHqHkrO1aCpsSQrIO8dfhF6a9SW/sH9nNPkz7OpdG2lBVukMoghei gJs7RjxmlxUUrw5xN5uAnW7KCHQ/vMB+P+zyB835zEd1w7De+IWoCWhW/RM963h2PyPf m4PdiAVaC14BZ4AqKTBl2l+i+zyTDkaFyBNus4pGqup72S9kafNl9ESVh9YZ8YxjNqg2 QP0XHA4kQIolV8fTz9Cy+MydTw924QvBToJg1Xqfb5aAKBK+DKxR/3Xaoq5kKb0GU1nm 97bw== 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=marcan.st Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h7-20020a170902f70700b0015d1c611e6asi18131486plo.520.2022.05.04.01.31.13; Wed, 04 May 2022 01:31:28 -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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=marcan.st Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345728AbiEDH4R (ORCPT + 99 others); Wed, 4 May 2022 03:56:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56336 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239297AbiEDHzu (ORCPT ); Wed, 4 May 2022 03:55:50 -0400 Received: from mail.marcansoft.com (marcansoft.com [IPv6:2a01:298:fe:f::2]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3093618E33; Wed, 4 May 2022 00:52:15 -0700 (PDT) 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: hector@marcansoft.com) by mail.marcansoft.com (Postfix) with ESMTPSA id D3128421F5; Wed, 4 May 2022 07:52:09 +0000 (UTC) From: Hector Martin To: "Rafael J. Wysocki" , Viresh Kumar Cc: Hector Martin , Sven Peter , Alyssa Rosenzweig , Rob Herring , Krzysztof Kozlowski , Stephen Boyd , Ulf Hansson , Marc Zyngier , Mark Kettenis , linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 2/4] dt-bindings: cpufreq: apple,soc-cpufreq: Add binding for Apple SoC cpufreq Date: Wed, 4 May 2022 16:51:51 +0900 Message-Id: <20220504075153.185208-3-marcan@marcan.st> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220504075153.185208-1-marcan@marcan.st> References: <20220504075153.185208-1-marcan@marcan.st> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE 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 This binding represents the cpufreq/DVFS hardware present in Apple SoCs. The hardware has an independent controller per CPU cluster, but we represent them as a single cpufreq node since there can only be one systemwide cpufreq device (and since in the future, interactions with memory controller performance states will also involve cooperation between multiple frequency domains). Signed-off-by: Hector Martin --- .../bindings/cpufreq/apple,soc-cpufreq.yaml | 121 ++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 Documentation/devicetree/bindings/cpufreq/apple,soc-cpufreq.yaml diff --git a/Documentation/devicetree/bindings/cpufreq/apple,soc-cpufreq.yaml b/Documentation/devicetree/bindings/cpufreq/apple,soc-cpufreq.yaml new file mode 100644 index 000000000000..f398c1bd5de5 --- /dev/null +++ b/Documentation/devicetree/bindings/cpufreq/apple,soc-cpufreq.yaml @@ -0,0 +1,121 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/cpufreq/apple,soc-cpufreq.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Apple SoC 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: + items: + - enum: + - apple,t8103-soc-cpufreq + - apple,t6000-soc-cpufreq + - const: apple,soc-cpufreq + + reg: + minItems: 1 + maxItems: 6 + description: One register region per CPU cluster DVFS controller + + reg-names: + minItems: 1 + items: + - const: cluster0 + - const: cluster1 + - const: cluster2 + - const: cluster3 + - const: cluster4 + - const: cluster5 + + '#freq-domain-cells': + const: 1 + +required: + - compatible + - reg + - reg-names + - '#freq-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>; + apple,freq-domain = <&cpufreq_hw 0>; + }; + + cpu@10100 { + compatible = "apple,firestorm"; + device_type = "cpu"; + reg = <0x0 0x10100>; + operating-points-v2 = <&pcluster_opp>; + apple,freq-domain = <&cpufreq_hw 1>; + }; + }; + + 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_hw: cpufreq@210e20000 { + compatible = "apple,t8103-soc-cpufreq", "apple,soc-cpufreq"; + reg = <0x2 0x10e20000 0 0x1000>, + <0x2 0x11e20000 0 0x1000>; + reg-names = "cluster0", "cluster1"; + #freq-domain-cells = <1>; + }; + }; -- 2.35.1