Received: by 2002:a05:6358:1087:b0:cb:c9d3:cd90 with SMTP id j7csp6281909rwi; Sun, 23 Oct 2022 22:06:17 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7oMWf/08MFk5ctxCnZms9zIFfvcWsEtVqjdurFjDjuR719r1PEafWwqYVk/egLFjzm/Lp0 X-Received: by 2002:a17:907:c18:b0:78d:8577:7c30 with SMTP id ga24-20020a1709070c1800b0078d85777c30mr24320762ejc.413.1666587977580; Sun, 23 Oct 2022 22:06:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666587977; cv=none; d=google.com; s=arc-20160816; b=mSy+lI0CiGIS49b3sxH484eEHKmrLTEcGpbFBCIhI8GyuE0ZgbZUEm+4uLmdZhnB9w n0ux61pYLFtzR4KBsIHPePpXauHUaJ5Y2JP3fTfJHHBfdqVYIYgkItKeBD5FNWguIglc lVTES/FS01vrWawrSk0Ya0st0sAh+hgQZa727Rca46RqWMMotAU+2vU35zMyHoUpKSHw IJy4iasY8fC11OXIX9XTxEc7d64FLzY4zVxUL4GPIglCU0du++uGsPcbvoRKB1FoA/o5 JGnVtkUIuQoqp+/mCy+xLbHzIfsTqGrblu9kvyDqJWyDVYqe1bRQIflkGa5+baTuDB8A s/lQ== 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=zsUB5VNfZk+gPfeEgiV2bVsBoj0g/ysqhUZxYRd0nkU=; b=Ky/reXY0JCIv2tPakeblPK3vLfkK2E+UXAWHNByafjULSXrZkqW0XLMqTi7xPBfmxB 3ehzGH7cAJxO7QpfrtxX4k//80hHvslia2mVw1mRWpq0NAT/8hUDF96MAkavhOL3ZCVF X3XctiuxBAvy7dpVfrou3rdgz/dDaLiZW0+Nj3VzFxqwd3qQ2rJn/a8/OC/7bbg1V16m wUhTaCucJP/lBw5XPB6M3vWKqyVQ7GkNVlZn7IYyTjy+1ruwSFRuvTVGt9ktLU0Xgh2U LGUxzhbUNkraM6TEx0LBy7n4lMpCmW9xyJU+T1phWWuyNTJ8IPQZtNzJfHB/sK0UHMeW j2rg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@marcan.st header.s=default header.b=LYVmh+bS; 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 Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id hh21-20020a170906a95500b0073d8e4e8c77si26384084ejb.1005.2022.10.23.22.05.52; Sun, 23 Oct 2022 22:06: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; dkim=pass header.i=@marcan.st header.s=default header.b=LYVmh+bS; 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 S229958AbiJXEkA (ORCPT + 99 others); Mon, 24 Oct 2022 00:40:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52582 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229923AbiJXEjy (ORCPT ); Mon, 24 Oct 2022 00:39:54 -0400 Received: from mail.marcansoft.com (marcansoft.com [212.63.210.85]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A00E827B10; Sun, 23 Oct 2022 21:39:51 -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 77582424B9; Mon, 24 Oct 2022 04:39:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=marcan.st; s=default; t=1666586389; bh=PVbU0np+97Je803BzzDJxHjiUfk3jhfRkIFZVZYuHUk=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=LYVmh+bSESpCH7QKiV6mv4Oel4WaxJcbFyjwesld4g+umRsZfe3jzeACIQA9EgbL7 e6OGgdiAPDOSHb8/nv5mm22hYgipk5ewwnU7QaD1AVWv5E/qaBNNWuVQ+Sw0kgSiJd z2SC/9VTTruuzFJvFIjAftSYNWMl9xowXkOMOW0Dgpc39xJ3xZ9c6eb/OiH8SytExD Yo0YvQNegGkH9Wk3jOjZv9wiUNd8TiBzbWxMUO7vFeKemw0Kfk+VmbcYcZ+kq/iW9N Tqn36RYv+D7IwdzRQZPJGzYjRt/ZSIJKUFIF52a+fkODGhOhqz8kXAH/uSr9/KMTBa 4YWpOYw+wbarA== 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 v3 2/5] dt-bindings: cpufreq: apple,soc-cpufreq: Add binding for Apple SoC cpufreq Date: Mon, 24 Oct 2022 13:39:22 +0900 Message-Id: <20221024043925.25379-3-marcan@marcan.st> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20221024043925.25379-1-marcan@marcan.st> References: <20221024043925.25379-1-marcan@marcan.st> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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 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). Signed-off-by: Hector Martin --- .../cpufreq/apple,cluster-cpufreq.yaml | 119 ++++++++++++++++++ 1 file changed, 119 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..b11452f91468 --- /dev/null +++ b/Documentation/devicetree/bindings/cpufreq/apple,cluster-cpufreq.yaml @@ -0,0 +1,119 @@ +# 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: + - const: apple,t8103-cluster-cpufreq + - const: apple,cluster-cpufreq + - items: + - const: apple,t6000-cluster-cpufreq + - const: apple,t8103-cluster-cpufreq + - const: apple,cluster-cpufreq + - items: + - const: apple,t8112-cluster-cpufreq + - const: apple,cluster-cpufreq + + reg: + maxItems: 1 + description: The register region for this CPU cluster DVFS controller + + '#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: cpufreq@210e20000 { + compatible = "apple,t8103-cluster-cpufreq", "apple,cluster-cpufreq"; + reg = <0x2 0x10e20000 0 0x1000>; + #performance-domain-cells = <0>; + }; + + cpufreq_p: cpufreq@211e20000 { + compatible = "apple,t8103-cluster-cpufreq", "apple,cluster-cpufreq"; + reg = <0x2 0x11e20000 0 0x1000>; + #performance-domain-cells = <0>; + }; + }; -- 2.35.1