From nobody Sun Feb 8 14:30:41 2026 Received: from mail-ej1-f54.google.com (mail-ej1-f54.google.com [209.85.218.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 47C2813D529 for ; Tue, 26 Mar 2024 21:08:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711487319; cv=none; b=rppQ9vBCxX98oajNt5Dn/bUOTwju8fQPipbJAxhPAH7oUMAsH6m+5nckk7w2Vmynqma59QsXAnK4kRJWP2W7mTd2ZAQBvPW2z1tCFoVDV4Po7GIcTbW5QgKxmZl/lG7mlVMhBWoThfu2MnMQSgVzWtTm1ZRJOnZzs7tcHcKDBtg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711487319; c=relaxed/simple; bh=xDRhU9fuss958Jnn/T9060yzGlfRWLXT4S0FXGgRw2Y=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=hvNjzf61+/J0PLPcMVhbfbdRY5pJrN3t47JU3Dv1mlXb9UqOuOM7CP46PqS3DljLjmWl+E+4fgvgukNl+wmqoGhoH5LbtKOkt1tHIDLZ5ur9VgsNSYWDywPuCev/sVmSjiwMfbfA1J9Nhl2+ODUmNYZZLEK10Df7rhGuHVrjcAo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=wb6USPRv; arc=none smtp.client-ip=209.85.218.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="wb6USPRv" Received: by mail-ej1-f54.google.com with SMTP id a640c23a62f3a-a470d7f77eeso764457466b.3 for ; Tue, 26 Mar 2024 14:08:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1711487315; x=1712092115; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=03If1nnZ10DuCwAdzvBn1Iv3LsS/vvMwgwg5YaM+2MQ=; b=wb6USPRvFQovYuCFiljYaRf12cs3iwM2D9ibQr5gk4hjYNz9QGmcGQQqSieH/FDy9V IA0zHgasXnDzDIYV9//tYZ36s98o2RaNvLS93KIi3iedwXqzZR/mNk4Bx6W1/n3OJ72R AwOfKLoAqpxSr2ArzYMs2FrIikfC7KZJ1hIr496gsNxpgAMfSMi8TfXxMPmQZAL7soui 2QDfJsqUJO/9SSRHmDwEAUf1HfxmhGj83G1Nlg/IEDBC/pNR1g68qAlrYFNVtDeBULwW IijNWDck/GzYqT1yFYTv4eqgA/S+xM7xsOrQB4svt+YPZZjG481McTaiqQ/On90Ak06v 1RXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711487315; x=1712092115; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=03If1nnZ10DuCwAdzvBn1Iv3LsS/vvMwgwg5YaM+2MQ=; b=u9PjVBKLeB4fYicyJhb2nJL/EExJ3QBwEEfqB6q1A5mAeL65SVwgCpf8qxEwsgeXuD M8W5rhmsmTvMDFQWW5OL3wbOteGFY8euYG3JaUQvYK+ZmTabLnbXb/DuWjgXcRyHPeka Q4Orp8ZLkiFvIJfeqf2zfhdNTfrgVZDvW8zSTTnxqnbkOuhyCCQ7wnu92afkE1dlP7YY JmCrc03DcX+nIKIhEY9kQc0RmKZ4PnhmAc6EJU6KcSznz578BO4MYbO7pYPvpJL05xT+ CF3KXwkvx0A5q9ocrdsGiQVtFw6pFUdPlqbo0s/RUfFRyrwil4HrWNucf8wFqs4IwsuX a83w== X-Forwarded-Encrypted: i=1; AJvYcCUKoJAcHZF8H0jqDPnIhEfq0u3hH0Q92ffdCQGJ6JTx8gZS0WEodLzNtm29TJA0o4hc9DrqFI7iJ9nomMrC1dBqFSNw3VJR75vDX9Ll X-Gm-Message-State: AOJu0Yx+mttWmD/gOef0byyeIAic7t6dGwhyXP3h3eGgSJl++L8cez7n 6T5wDePz6mhmzT9tkkX3aaDKxLUd2NmrNmhDwvwWIFe2KNkunFxVY3ikOVtpqrQ= X-Google-Smtp-Source: AGHT+IEWO4nVt+sBd1nsVyvUtrbxYtn1jmF7LPWJPETS4cp6HDjdc0ruarlVH71jWLfbBj2hy70asA== X-Received: by 2002:a17:906:2ac5:b0:a47:76c:e363 with SMTP id m5-20020a1709062ac500b00a47076ce363mr8023214eje.25.1711487315599; Tue, 26 Mar 2024 14:08:35 -0700 (PDT) Received: from [192.168.92.47] (078088045141.garwolin.vectranet.pl. [78.88.45.141]) by smtp.gmail.com with ESMTPSA id l19-20020a17090612d300b00a46cffe6d06sm4621697ejb.42.2024.03.26.14.08.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 Mar 2024 14:08:35 -0700 (PDT) From: Konrad Dybcio Date: Tue, 26 Mar 2024 22:08:23 +0100 Subject: [PATCH v3 1/5] dt-bindings: clock: Add Qcom QCM2290 GPUCC Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20240219-topic-rb1_gpu-v3-1-86f67786539a@linaro.org> References: <20240219-topic-rb1_gpu-v3-0-86f67786539a@linaro.org> In-Reply-To: <20240219-topic-rb1_gpu-v3-0-86f67786539a@linaro.org> To: Bjorn Andersson , Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Marijn Suijten , Konrad Dybcio , linux-arm-msm@vger.kernel.org, linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio , Krzysztof Kozlowski X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1711487311; l=3930; i=konrad.dybcio@linaro.org; s=20230215; h=from:subject:message-id; bh=xDRhU9fuss958Jnn/T9060yzGlfRWLXT4S0FXGgRw2Y=; b=q5jW9Tv0TNb4Y7shQot4k4DcuEi9aEvkTvEeMawzjiz0//RXDW5AbX1r8e4yIj/d7mc3J6Xhm eD9ORkNgDRUD54IqAJnJL3o9d8u/GGcAv00p5D70CqT9D3Yp9I2Webw X-Developer-Key: i=konrad.dybcio@linaro.org; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= Add device tree bindings for graphics clock controller for Qualcomm Technology Inc's QCM2290 SoCs. Reviewed-by: Krzysztof Kozlowski Signed-off-by: Konrad Dybcio --- .../bindings/clock/qcom,qcm2290-gpucc.yaml | 77 ++++++++++++++++++= ++++ include/dt-bindings/clock/qcom,qcm2290-gpucc.h | 32 +++++++++ 2 files changed, 109 insertions(+) diff --git a/Documentation/devicetree/bindings/clock/qcom,qcm2290-gpucc.yam= l b/Documentation/devicetree/bindings/clock/qcom,qcm2290-gpucc.yaml new file mode 100644 index 000000000000..734880805c1b --- /dev/null +++ b/Documentation/devicetree/bindings/clock/qcom,qcm2290-gpucc.yaml @@ -0,0 +1,77 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/clock/qcom,qcm2290-gpucc.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Qualcomm Graphics Clock & Reset Controller on QCM2290 + +maintainers: + - Konrad Dybcio + +description: | + Qualcomm graphics clock control module provides the clocks, resets and p= ower + domains on Qualcomm SoCs. + + See also:: + include/dt-bindings/clock/qcom,qcm2290-gpucc.h + +properties: + compatible: + const: qcom,qcm2290-gpucc + + reg: + maxItems: 1 + + clocks: + items: + - description: AHB interface clock, + - description: SoC CXO clock + - description: GPLL0 main branch source + - description: GPLL0 div branch source + + power-domains: + description: + A phandle and PM domain specifier for the CX power domain. + maxItems: 1 + + required-opps: + description: + A phandle to an OPP node describing required CX performance point. + maxItems: 1 + +required: + - compatible + - clocks + - power-domains + +allOf: + - $ref: qcom,gcc.yaml# + +unevaluatedProperties: false + +examples: + - | + #include + #include + #include + + soc { + #address-cells =3D <2>; + #size-cells =3D <2>; + + clock-controller@5990000 { + compatible =3D "qcom,qcm2290-gpucc"; + reg =3D <0x0 0x05990000 0x0 0x9000>; + clocks =3D <&gcc GCC_GPU_CFG_AHB_CLK>, + <&rpmcc RPM_SMD_XO_CLK_SRC>, + <&gcc GCC_GPU_GPLL0_CLK_SRC>, + <&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>; + power-domains =3D <&rpmpd QCM2290_VDDCX>; + required-opps =3D <&rpmpd_opp_low_svs>; + #clock-cells =3D <1>; + #reset-cells =3D <1>; + #power-domain-cells =3D <1>; + }; + }; +... diff --git a/include/dt-bindings/clock/qcom,qcm2290-gpucc.h b/include/dt-bi= ndings/clock/qcom,qcm2290-gpucc.h new file mode 100644 index 000000000000..7c76dd05278f --- /dev/null +++ b/include/dt-bindings/clock/qcom,qcm2290-gpucc.h @@ -0,0 +1,32 @@ +/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ +/* + * Copyright (c) 2018-2019, The Linux Foundation. All rights reserved. + * Copyright (c) 2024, Linaro Limited + */ + +#ifndef _DT_BINDINGS_CLK_QCOM_GPU_CC_QCM2290_H +#define _DT_BINDINGS_CLK_QCOM_GPU_CC_QCM2290_H + +/* GPU_CC clocks */ +#define GPU_CC_AHB_CLK 0 +#define GPU_CC_CRC_AHB_CLK 1 +#define GPU_CC_CX_GFX3D_CLK 2 +#define GPU_CC_CX_GMU_CLK 3 +#define GPU_CC_CX_SNOC_DVM_CLK 4 +#define GPU_CC_CXO_AON_CLK 5 +#define GPU_CC_CXO_CLK 6 +#define GPU_CC_GMU_CLK_SRC 7 +#define GPU_CC_GX_GFX3D_CLK 8 +#define GPU_CC_GX_GFX3D_CLK_SRC 9 +#define GPU_CC_PLL0 10 +#define GPU_CC_SLEEP_CLK 11 +#define GPU_CC_HLOS1_VOTE_GPU_SMMU_CLK 12 + +/* Resets */ +#define GPU_GX_BCR 0 + +/* GDSCs */ +#define GPU_CX_GDSC 0 +#define GPU_GX_GDSC 1 + +#endif --=20 2.44.0 From nobody Sun Feb 8 14:30:41 2026 Received: from mail-ed1-f51.google.com (mail-ed1-f51.google.com [209.85.208.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C92AF13D625 for ; Tue, 26 Mar 2024 21:08:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711487320; cv=none; b=duDn+GwLcw+kRU3rWm1+AyiVCtWiO+1sJKbK+WchwvrXNV8tQIR5NQnF41fiTTDhMa1zdRTPYZi1BqsUvoc4TebT5ToeMVk1LrGOeCVg3fSj4uMx1KH83ur8VlEWjeKGAIkY009f14tA/MJtubWkYFptdWJJ/6QEdU68jkFbiBg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711487320; c=relaxed/simple; bh=V09JUKCm67dliYKEgBrUKzAMRCxXKZJtHRPs4xkL2c8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=YUUFABth0VojiTDw5w+qEalTXvzY6MOWubsI+L2PFcBeIv4KcEr1QSYdS2Qna5svtQb8pW3b7sm4b9Hs9oE2V+/n/PF8AkR+3tM9+aIRf6ILBKEGPIeqW4j1zGuolTTP+ixZi1d1g93U3PThhPRc+so2D8UrDGzsfT618HbyOu0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=ZHmYSBwy; arc=none smtp.client-ip=209.85.208.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="ZHmYSBwy" Received: by mail-ed1-f51.google.com with SMTP id 4fb4d7f45d1cf-56b8e4f38a2so7742763a12.3 for ; Tue, 26 Mar 2024 14:08:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1711487317; x=1712092117; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=Pg/3usqzLB3tXWemVm0BR8Q8IDIeXCXs8UCvrLR1r7M=; b=ZHmYSBwyUKk31FD26PX1yRN0i3nYYhfTHYiXRH8kWmUHwcSNH6tCiYWIoN61ODE5qY UgOcTT7/qGopLk0Ww3TlbVLSyThT7lg9En6l7S+KOvk8O+VFpOJiRB+76Whx58veOcKY GWoAc2fxyh4FWQ2Dm5QhLSWTNXNTxfVXY7tM06TisVi7J0yYfjubPIipWydt9miIaXkv Ag61t77311+SsRU/zSFgibyT0X7anDXSRB3cl6T/Ubx4jscj66rdaFz5yX1Pi1gwODWm oyJIEPqzItX7fnS11kbJbr2zyD2aqzyl5SF1yw+g9V84KGwDfq5LNC3uZLMGJ7YrA1yx pBKQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711487317; x=1712092117; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Pg/3usqzLB3tXWemVm0BR8Q8IDIeXCXs8UCvrLR1r7M=; b=iiN7k0gI7SuuWz7RY5kTXTVQQQ0BHRy9Qg6+3rWM2qqEij1k66nnHC8KW3Yez2NQsF 98m7PZ6eJJkhCoZAMwWN5vX9OLVOS8AC9dk6HOJ8eD0VvXFOkYd8yi/l8zKh6QctpPIy PA4e3gU/0dAdS+8Xoet7V8hFR226ZnqAgBP9tmiACYbjExJ1zzuQjZqUH+/eLk8JEQwM MH+Nc6099jx3BjKpWvqEldqdsQgDL+AW0YyZvRtATveNYD5WL+3qcG5myFX1VCgB5uzv QkPSZifllAwxAdWcxKWo3VwQhedOCYTqtmpUyak4/O4SNkFmlJqXSVEdxji+d+CFHja5 vUOA== X-Forwarded-Encrypted: i=1; AJvYcCXamT86C6YQxV86HEO3FI16QeIFItCSpVTHZlP+47bV1oEeT3+xiMGd9p1Z2cA1wGDvTaFBbZq97k29apveV5cod/1CsfCi6fO2DR40 X-Gm-Message-State: AOJu0YwSeUoLH+JhTm6+aXaNk+Koy4FgtX7+nbV1x6+L+x5OVPInIIUT YfUok9Pf91m5pyJ0khxMRD0Z2B9WBgL6KdnF1l+kD/3QyZxrk3RjeHK0fBZ1Pvs= X-Google-Smtp-Source: AGHT+IFGKr7mqqmzo56dKbi5g+Z+rdfY0BqGUHJAmEkDlCv5S9NFhcY8qtq5NGfJowqnhPOu1XYG3g== X-Received: by 2002:a17:907:7d8e:b0:a4d:f902:f505 with SMTP id oz14-20020a1709077d8e00b00a4df902f505mr1805537ejc.43.1711487317064; Tue, 26 Mar 2024 14:08:37 -0700 (PDT) Received: from [192.168.92.47] (078088045141.garwolin.vectranet.pl. [78.88.45.141]) by smtp.gmail.com with ESMTPSA id l19-20020a17090612d300b00a46cffe6d06sm4621697ejb.42.2024.03.26.14.08.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 Mar 2024 14:08:36 -0700 (PDT) From: Konrad Dybcio Date: Tue, 26 Mar 2024 22:08:24 +0100 Subject: [PATCH v3 2/5] clk: qcom: clk-alpha-pll: Add HUAYRA_2290 support Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20240219-topic-rb1_gpu-v3-2-86f67786539a@linaro.org> References: <20240219-topic-rb1_gpu-v3-0-86f67786539a@linaro.org> In-Reply-To: <20240219-topic-rb1_gpu-v3-0-86f67786539a@linaro.org> To: Bjorn Andersson , Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Marijn Suijten , Konrad Dybcio , linux-arm-msm@vger.kernel.org, linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio , Dmitry Baryshkov X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1711487311; l=4349; i=konrad.dybcio@linaro.org; s=20230215; h=from:subject:message-id; bh=V09JUKCm67dliYKEgBrUKzAMRCxXKZJtHRPs4xkL2c8=; b=9PfBuMv3e+x8GiGLI4OsDgsq2GJ8ZkgKNXW4uVr1Lss7QnGkrW8XrqlOxsES/z1H1TUxwuBce gVOnkDxGTiFDuFJCPqs2z+5+gl6T5BbQJp1F4k/836TNLXVfeywJlQx X-Developer-Key: i=konrad.dybcio@linaro.org; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= Commit 134b55b7e19f ("clk: qcom: support Huayra type Alpha PLL") introduced an entry to the alpha offsets array, but diving into QCM2290 downstream and some documentation, it turned out that the name Huayra apparently has been used quite liberally across many chips, even with noticeably different hardware. Introduce another set of offsets and a new configure function for the Huayra PLL found on QCM2290. This is required e.g. for the consumers of GPUCC_PLL0 to properly start. Reviewed-by: Dmitry Baryshkov Signed-off-by: Konrad Dybcio --- drivers/clk/qcom/clk-alpha-pll.c | 47 ++++++++++++++++++++++++++++++++++++= ++++ drivers/clk/qcom/clk-alpha-pll.h | 3 +++ 2 files changed, 50 insertions(+) diff --git a/drivers/clk/qcom/clk-alpha-pll.c b/drivers/clk/qcom/clk-alpha-= pll.c index 8a412ef47e16..27ba8aa3e577 100644 --- a/drivers/clk/qcom/clk-alpha-pll.c +++ b/drivers/clk/qcom/clk-alpha-pll.c @@ -83,6 +83,19 @@ const u8 clk_alpha_pll_regs[][PLL_OFF_MAX_REGS] =3D { [PLL_OFF_TEST_CTL_U] =3D 0x20, [PLL_OFF_STATUS] =3D 0x24, }, + [CLK_ALPHA_PLL_TYPE_HUAYRA_2290] =3D { + [PLL_OFF_L_VAL] =3D 0x04, + [PLL_OFF_ALPHA_VAL] =3D 0x08, + [PLL_OFF_USER_CTL] =3D 0x0c, + [PLL_OFF_CONFIG_CTL] =3D 0x10, + [PLL_OFF_CONFIG_CTL_U] =3D 0x14, + [PLL_OFF_CONFIG_CTL_U1] =3D 0x18, + [PLL_OFF_TEST_CTL] =3D 0x1c, + [PLL_OFF_TEST_CTL_U] =3D 0x20, + [PLL_OFF_TEST_CTL_U1] =3D 0x24, + [PLL_OFF_OPMODE] =3D 0x28, + [PLL_OFF_STATUS] =3D 0x38, + }, [CLK_ALPHA_PLL_TYPE_BRAMMO] =3D { [PLL_OFF_L_VAL] =3D 0x04, [PLL_OFF_ALPHA_VAL] =3D 0x08, @@ -779,6 +792,40 @@ static long clk_alpha_pll_round_rate(struct clk_hw *hw= , unsigned long rate, return clamp(rate, min_freq, max_freq); } =20 +void clk_huayra_2290_pll_configure(struct clk_alpha_pll *pll, struct regma= p *regmap, + const struct alpha_pll_config *config) +{ + u32 val; + + clk_alpha_pll_write_config(regmap, PLL_CONFIG_CTL(pll), config->config_ct= l_val); + clk_alpha_pll_write_config(regmap, PLL_CONFIG_CTL_U(pll), config->config_= ctl_hi_val); + clk_alpha_pll_write_config(regmap, PLL_CONFIG_CTL_U1(pll), config->config= _ctl_hi1_val); + clk_alpha_pll_write_config(regmap, PLL_TEST_CTL(pll), config->test_ctl_va= l); + clk_alpha_pll_write_config(regmap, PLL_TEST_CTL_U(pll), config->test_ctl_= hi_val); + clk_alpha_pll_write_config(regmap, PLL_TEST_CTL_U1(pll), config->test_ctl= _hi1_val); + clk_alpha_pll_write_config(regmap, PLL_L_VAL(pll), config->l); + clk_alpha_pll_write_config(regmap, PLL_ALPHA_VAL(pll), config->alpha); + clk_alpha_pll_write_config(regmap, PLL_USER_CTL(pll), config->user_ctl_va= l); + + /* Set PLL_BYPASSNL */ + regmap_update_bits(regmap, PLL_MODE(pll), PLL_BYPASSNL, PLL_BYPASSNL); + regmap_read(regmap, PLL_MODE(pll), &val); + + /* Wait 5 us between setting BYPASS and deasserting reset */ + udelay(5); + + /* Take PLL out from reset state */ + regmap_update_bits(regmap, PLL_MODE(pll), PLL_RESET_N, PLL_RESET_N); + regmap_read(regmap, PLL_MODE(pll), &val); + + /* Wait 50us for PLL_LOCK_DET bit to go high */ + usleep_range(50, 55); + + /* Enable PLL output */ + regmap_update_bits(regmap, PLL_MODE(pll), PLL_OUTCTRL, PLL_OUTCTRL); +} +EXPORT_SYMBOL_GPL(clk_huayra_2290_pll_configure); + static unsigned long alpha_huayra_pll_calc_rate(u64 prate, u32 l, u32 a) { diff --git a/drivers/clk/qcom/clk-alpha-pll.h b/drivers/clk/qcom/clk-alpha-= pll.h index fb6d50263bb9..d1cd52158c17 100644 --- a/drivers/clk/qcom/clk-alpha-pll.h +++ b/drivers/clk/qcom/clk-alpha-pll.h @@ -15,6 +15,7 @@ enum { CLK_ALPHA_PLL_TYPE_DEFAULT, CLK_ALPHA_PLL_TYPE_HUAYRA, + CLK_ALPHA_PLL_TYPE_HUAYRA_2290, CLK_ALPHA_PLL_TYPE_BRAMMO, CLK_ALPHA_PLL_TYPE_FABIA, CLK_ALPHA_PLL_TYPE_TRION, @@ -191,6 +192,8 @@ extern const struct clk_ops clk_alpha_pll_rivian_evo_op= s; =20 void clk_alpha_pll_configure(struct clk_alpha_pll *pll, struct regmap *reg= map, const struct alpha_pll_config *config); +void clk_huayra_2290_pll_configure(struct clk_alpha_pll *pll, struct regma= p *regmap, + const struct alpha_pll_config *config); void clk_fabia_pll_configure(struct clk_alpha_pll *pll, struct regmap *reg= map, const struct alpha_pll_config *config); void clk_trion_pll_configure(struct clk_alpha_pll *pll, struct regmap *reg= map, --=20 2.44.0 From nobody Sun Feb 8 14:30:41 2026 Received: from mail-ej1-f51.google.com (mail-ej1-f51.google.com [209.85.218.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5479913D896 for ; Tue, 26 Mar 2024 21:08:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711487322; cv=none; b=lCD+vqBzJaI102fB96TgVYq8SPv0WD2/o8ZX13P31PmWTtbjNeIiUoBMtz6cVsydX9ExB9BFU0Ojlv5vRhZChzHudJtf9DFQZWYAb/APamMDtX0fsy6D+wTglW+IVrBxQYNPVcgs8iteUQKnuFCWtA6V3NoHUUgUvu2BssH3V2k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711487322; c=relaxed/simple; bh=3GxICnwlFxPTq7M5fbgnwZ7b5zkJd08JGwQSsk7alcs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=SacoTc08/Dn5SHGNJEJZzqrUR1DvIULhQ27GIh5NFS81ePXkmY44jFb8IwCbmGnXZpH0HBdareCrO1sBaQMf5bMWkld39YX7WFD2sSqPdkdJBLG6ULN1MGCZ4JKKN05H1qpwNqdCYP12QkXK9lOnwn/NugJfdPu4GGKAEJ+mCIM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=waZ1R31y; arc=none smtp.client-ip=209.85.218.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="waZ1R31y" Received: by mail-ej1-f51.google.com with SMTP id a640c23a62f3a-a46d0a8399aso36283566b.1 for ; Tue, 26 Mar 2024 14:08:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1711487318; x=1712092118; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=KZis7wApwGgg62TFLLEl2EnnA/zDwZbS8BmWgHbI4sI=; b=waZ1R31yB7mOa+kpBbUv67qkWIM3q0mGX+iVV7rRthN5+e9zRv/VwIrnOwIMrTARH6 gKa1hg6wex49ioWub24kimLVc8WiWLlKO2NDB0VigD+1JaN9Z/ZldcIegvMRIJJPZR9W 309F1OtbXMim2sKaS/8sc6HB8I8Z5IODBtbBZf0ZTizPX9LfmMdOcNKs4VptS9m6ROhC N95IlFuPemGhxKHaB2DX8iocBsH6qkl1fSlV7VPKzYiBudnvB8S7dSnQRES2+B73G/Wu RA8RGeoXUj018C+GLPeZEu32K/LhGJ6db10BhmJz4nCp9uJw0cVPmzFncE+CdXMATov1 03tA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711487318; x=1712092118; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=KZis7wApwGgg62TFLLEl2EnnA/zDwZbS8BmWgHbI4sI=; b=amaRIibshLIYCwHMchqgQKQ2IgNnUgZG0LNcL9bE9zVI56uAyfjdwHEVsr1jCZF5Q+ nkpTtKio55k4r9ZB5PVhNOxP2QxXEVqsPVDIc1asDMpM7FtqUTUXIHzsXtKLahmFk3Lf ZjyHkIPLVNlbf8kha+/K6BJzuZABHCrthofX2AdOYDNsCs9rrftyF3dt1A8GZ5DrTaRJ RhTx/Q1Zt/U388/HFnLnSduexKv4amy2CRhAizy7Ci/44jUgNS2y2o/+1aqL+/wrSapm st2HHL7xMFNpAj6Twt8BOpAu7HnLmr53bb8advrckznsQcXXIaSZXQqPPn0k7qlPQP5t DsbQ== X-Forwarded-Encrypted: i=1; AJvYcCXaouRdGel58jcWwjUsX8ngfhv37W3ikYbePCqX5cTkQoP04lMV1U+DOzGIDGCQQro+p9PX6f78V8fb6g7emPLs1q2ek9MJzzl6fihx X-Gm-Message-State: AOJu0YyAP0owEl5dacIjIsA6OhXRUJhO1zHEbSgXNjd3+wl5wWVhMyE+ tHJQQsohP/i3flCFlZhn38qP1RnqAc4bP3yy+x9R1q+BNlccB8WB4vCST00orlo= X-Google-Smtp-Source: AGHT+IF/5f47mhZaYp8rnwCF8pFXdYL8rlrsENZmIG1lZ0rioIcTmGj58XawRSzhDhdk6bplUJ3LkA== X-Received: by 2002:a17:906:169a:b0:a4c:ea23:1e4a with SMTP id s26-20020a170906169a00b00a4cea231e4amr2185527ejd.30.1711487318451; Tue, 26 Mar 2024 14:08:38 -0700 (PDT) Received: from [192.168.92.47] (078088045141.garwolin.vectranet.pl. [78.88.45.141]) by smtp.gmail.com with ESMTPSA id l19-20020a17090612d300b00a46cffe6d06sm4621697ejb.42.2024.03.26.14.08.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 Mar 2024 14:08:38 -0700 (PDT) From: Konrad Dybcio Date: Tue, 26 Mar 2024 22:08:25 +0100 Subject: [PATCH v3 3/5] clk: qcom: Add QCM2290 GPU clock controller driver Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20240219-topic-rb1_gpu-v3-3-86f67786539a@linaro.org> References: <20240219-topic-rb1_gpu-v3-0-86f67786539a@linaro.org> In-Reply-To: <20240219-topic-rb1_gpu-v3-0-86f67786539a@linaro.org> To: Bjorn Andersson , Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Marijn Suijten , Konrad Dybcio , linux-arm-msm@vger.kernel.org, linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio , Dmitry Baryshkov X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1711487311; l=13178; i=konrad.dybcio@linaro.org; s=20230215; h=from:subject:message-id; bh=3GxICnwlFxPTq7M5fbgnwZ7b5zkJd08JGwQSsk7alcs=; b=bZdU+gOzTqtfJTwjYGyL6849lNCPzKmxZRjJRfPTsNc7Zk85YInEuKeoM+vwYQckOIn2Jq4HZ DKM7ybAz/D6DG36Of8XVt/Vj5g6QFeZxDd/kLH1zRrG5fG79/2iDJ6W X-Developer-Key: i=konrad.dybcio@linaro.org; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= Add a driver for the GPU clock controller block found on the QCM2290 SoC. Reviewed-by: Dmitry Baryshkov Signed-off-by: Konrad Dybcio --- drivers/clk/qcom/Kconfig | 9 + drivers/clk/qcom/Makefile | 1 + drivers/clk/qcom/gpucc-qcm2290.c | 423 +++++++++++++++++++++++++++++++++++= ++++ 3 files changed, 433 insertions(+) diff --git a/drivers/clk/qcom/Kconfig b/drivers/clk/qcom/Kconfig index 8ab08e7b5b6c..c7ec41a6bd7f 100644 --- a/drivers/clk/qcom/Kconfig +++ b/drivers/clk/qcom/Kconfig @@ -65,6 +65,15 @@ config CLK_X1E80100_TCSRCC Support for the TCSR clock controller on X1E80100 devices. Say Y if you want to use peripheral devices such as SD/UFS. =20 +config CLK_QCM2290_GPUCC + tristate "QCM2290 Graphics Clock Controller" + depends on ARM64 || COMPILE_TEST + select CLK_QCM2290_GCC + help + Support for the graphics clock controller on QCM2290 devices. + Say Y if you want to support graphics controller devices and + functionality such as 3D graphics. + config QCOM_A53PLL tristate "MSM8916 A53 PLL" help diff --git a/drivers/clk/qcom/Makefile b/drivers/clk/qcom/Makefile index dec5b6db6860..cee261eb5144 100644 --- a/drivers/clk/qcom/Makefile +++ b/drivers/clk/qcom/Makefile @@ -26,6 +26,7 @@ obj-$(CONFIG_CLK_X1E80100_DISPCC) +=3D dispcc-x1e80100.o obj-$(CONFIG_CLK_X1E80100_GCC) +=3D gcc-x1e80100.o obj-$(CONFIG_CLK_X1E80100_GPUCC) +=3D gpucc-x1e80100.o obj-$(CONFIG_CLK_X1E80100_TCSRCC) +=3D tcsrcc-x1e80100.o +obj-$(CONFIG_CLK_QCM2290_GPUCC) +=3D gpucc-qcm2290.o obj-$(CONFIG_IPQ_APSS_PLL) +=3D apss-ipq-pll.o obj-$(CONFIG_IPQ_APSS_6018) +=3D apss-ipq6018.o obj-$(CONFIG_IPQ_GCC_4019) +=3D gcc-ipq4019.o diff --git a/drivers/clk/qcom/gpucc-qcm2290.c b/drivers/clk/qcom/gpucc-qcm2= 290.c new file mode 100644 index 000000000000..b6e20d63ac85 --- /dev/null +++ b/drivers/clk/qcom/gpucc-qcm2290.c @@ -0,0 +1,423 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright (c) 2020, The Linux Foundation. All rights reserved. + * Copyright (c) 2024, Linaro Limited + */ + +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "clk-alpha-pll.h" +#include "clk-branch.h" +#include "clk-rcg.h" +#include "clk-regmap.h" +#include "clk-regmap-divider.h" +#include "clk-regmap-mux.h" +#include "clk-regmap-phy-mux.h" +#include "gdsc.h" +#include "reset.h" + +enum { + DT_GCC_AHB_CLK, + DT_BI_TCXO, + DT_GCC_GPU_GPLL0_CLK_SRC, + DT_GCC_GPU_GPLL0_DIV_CLK_SRC, +}; + +enum { + P_BI_TCXO, + P_GPLL0_OUT_MAIN, + P_GPLL0_OUT_MAIN_DIV, + P_GPU_CC_PLL0_2X_DIV_CLK_SRC, + P_GPU_CC_PLL0_OUT_AUX, + P_GPU_CC_PLL0_OUT_AUX2, + P_GPU_CC_PLL0_OUT_MAIN, +}; + +static const struct pll_vco huayra_vco[] =3D { + { 600000000, 3300000000, 0 }, + { 600000000, 2200000000, 1 }, +}; + +static const struct alpha_pll_config gpu_cc_pll0_config =3D { + .l =3D 0x25, + .config_ctl_val =3D 0x200d4828, + .config_ctl_hi_val =3D 0x6, + .test_ctl_val =3D GENMASK(28, 26), + .test_ctl_hi_val =3D BIT(14), + .user_ctl_val =3D 0xf, +}; + +static struct clk_alpha_pll gpu_cc_pll0 =3D { + .offset =3D 0x0, + .vco_table =3D huayra_vco, + .num_vco =3D ARRAY_SIZE(huayra_vco), + .regs =3D clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_HUAYRA_2290], + .clkr =3D { + .hw.init =3D &(struct clk_init_data){ + .name =3D "gpu_cc_pll0", + .parent_data =3D &(const struct clk_parent_data) { + .index =3D DT_BI_TCXO, + }, + .num_parents =3D 1, + .ops =3D &clk_alpha_pll_huayra_ops, + }, + }, +}; + +static const struct parent_map gpu_cc_parent_map_0[] =3D { + { P_BI_TCXO, 0 }, + { P_GPU_CC_PLL0_OUT_MAIN, 1 }, + { P_GPLL0_OUT_MAIN, 5 }, + { P_GPLL0_OUT_MAIN_DIV, 6 }, +}; + +static const struct clk_parent_data gpu_cc_parent_data_0[] =3D { + { .index =3D DT_BI_TCXO, }, + { .hw =3D &gpu_cc_pll0.clkr.hw, }, + { .index =3D DT_GCC_GPU_GPLL0_CLK_SRC, }, + { .index =3D DT_GCC_GPU_GPLL0_DIV_CLK_SRC, }, +}; + +static const struct parent_map gpu_cc_parent_map_1[] =3D { + { P_BI_TCXO, 0 }, + { P_GPU_CC_PLL0_2X_DIV_CLK_SRC, 1 }, + { P_GPU_CC_PLL0_OUT_AUX2, 2 }, + { P_GPU_CC_PLL0_OUT_AUX, 3 }, + { P_GPLL0_OUT_MAIN, 5 }, +}; + +static const struct clk_parent_data gpu_cc_parent_data_1[] =3D { + { .index =3D DT_BI_TCXO, }, + { .hw =3D &gpu_cc_pll0.clkr.hw, }, + { .hw =3D &gpu_cc_pll0.clkr.hw, }, + { .hw =3D &gpu_cc_pll0.clkr.hw, }, + { .index =3D DT_GCC_GPU_GPLL0_CLK_SRC, }, +}; + +static const struct freq_tbl ftbl_gpu_cc_gmu_clk_src[] =3D { + F(200000000, P_GPLL0_OUT_MAIN, 3, 0, 0), + { } +}; + +static struct clk_rcg2 gpu_cc_gmu_clk_src =3D { + .cmd_rcgr =3D 0x1120, + .mnd_width =3D 0, + .hid_width =3D 5, + .parent_map =3D gpu_cc_parent_map_0, + .freq_tbl =3D ftbl_gpu_cc_gmu_clk_src, + .clkr.hw.init =3D &(struct clk_init_data){ + .name =3D "gpu_cc_gmu_clk_src", + .parent_data =3D gpu_cc_parent_data_0, + .num_parents =3D ARRAY_SIZE(gpu_cc_parent_data_0), + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_rcg2_shared_ops, + }, +}; + +static const struct freq_tbl ftbl_gpu_cc_gx_gfx3d_clk_src[] =3D { + F(355200000, P_GPU_CC_PLL0_OUT_AUX, 2, 0, 0), + F(537600000, P_GPU_CC_PLL0_OUT_AUX2, 2, 0, 0), + F(672000000, P_GPU_CC_PLL0_OUT_AUX2, 2, 0, 0), + F(844800000, P_GPU_CC_PLL0_OUT_AUX2, 2, 0, 0), + F(921600000, P_GPU_CC_PLL0_OUT_AUX2, 2, 0, 0), + F(1017600000, P_GPU_CC_PLL0_OUT_AUX2, 2, 0, 0), + F(1123200000, P_GPU_CC_PLL0_OUT_AUX2, 2, 0, 0), + { } +}; + +static struct clk_rcg2 gpu_cc_gx_gfx3d_clk_src =3D { + .cmd_rcgr =3D 0x101c, + .mnd_width =3D 0, + .hid_width =3D 5, + .parent_map =3D gpu_cc_parent_map_1, + .freq_tbl =3D ftbl_gpu_cc_gx_gfx3d_clk_src, + .clkr.hw.init =3D &(struct clk_init_data){ + .name =3D "gpu_cc_gx_gfx3d_clk_src", + .parent_data =3D gpu_cc_parent_data_1, + .num_parents =3D ARRAY_SIZE(gpu_cc_parent_data_1), + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_rcg2_ops, + }, +}; + +static struct clk_branch gpu_cc_ahb_clk =3D { + .halt_reg =3D 0x1078, + .halt_check =3D BRANCH_HALT_DELAY, + .clkr =3D { + .enable_reg =3D 0x1078, + .enable_mask =3D BIT(0), + .hw.init =3D &(struct clk_init_data){ + .name =3D "gpu_cc_ahb_clk", + .flags =3D CLK_IS_CRITICAL, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch gpu_cc_crc_ahb_clk =3D { + .halt_reg =3D 0x107c, + .halt_check =3D BRANCH_HALT_DELAY, + .clkr =3D { + .enable_reg =3D 0x107c, + .enable_mask =3D BIT(0), + .hw.init =3D &(struct clk_init_data){ + .name =3D "gpu_cc_crc_ahb_clk", + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch gpu_cc_cx_gfx3d_clk =3D { + .halt_reg =3D 0x10a4, + .halt_check =3D BRANCH_HALT_DELAY, + .clkr =3D { + .enable_reg =3D 0x10a4, + .enable_mask =3D BIT(0), + .hw.init =3D &(struct clk_init_data){ + .name =3D "gpu_cc_cx_gfx3d_clk", + .parent_data =3D &(const struct clk_parent_data){ + .hw =3D &gpu_cc_gx_gfx3d_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch gpu_cc_cx_gmu_clk =3D { + .halt_reg =3D 0x1098, + .halt_check =3D BRANCH_HALT, + .clkr =3D { + .enable_reg =3D 0x1098, + .enable_mask =3D BIT(0), + .hw.init =3D &(struct clk_init_data){ + .name =3D "gpu_cc_cx_gmu_clk", + .parent_data =3D &(const struct clk_parent_data){ + .hw =3D &gpu_cc_gmu_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch gpu_cc_cx_snoc_dvm_clk =3D { + .halt_reg =3D 0x108c, + .halt_check =3D BRANCH_HALT_DELAY, + .clkr =3D { + .enable_reg =3D 0x108c, + .enable_mask =3D BIT(0), + .hw.init =3D &(struct clk_init_data){ + .name =3D "gpu_cc_cx_snoc_dvm_clk", + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch gpu_cc_cxo_aon_clk =3D { + .halt_reg =3D 0x1004, + .halt_check =3D BRANCH_HALT_DELAY, + .clkr =3D { + .enable_reg =3D 0x1004, + .enable_mask =3D BIT(0), + .hw.init =3D &(struct clk_init_data){ + .name =3D "gpu_cc_cxo_aon_clk", + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch gpu_cc_cxo_clk =3D { + .halt_reg =3D 0x109c, + .halt_check =3D BRANCH_HALT, + .clkr =3D { + .enable_reg =3D 0x109c, + .enable_mask =3D BIT(0), + .hw.init =3D &(struct clk_init_data){ + .name =3D "gpu_cc_cxo_clk", + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch gpu_cc_gx_gfx3d_clk =3D { + .halt_reg =3D 0x1054, + .halt_check =3D BRANCH_HALT_DELAY, + .clkr =3D { + .enable_reg =3D 0x1054, + .enable_mask =3D BIT(0), + .hw.init =3D &(struct clk_init_data){ + .name =3D "gpu_cc_gx_gfx3d_clk", + .parent_data =3D &(const struct clk_parent_data){ + .hw =3D &gpu_cc_gx_gfx3d_clk_src.clkr.hw, + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch gpu_cc_sleep_clk =3D { + .halt_reg =3D 0x1090, + .halt_check =3D BRANCH_VOTED, + .clkr =3D { + .enable_reg =3D 0x1090, + .enable_mask =3D BIT(0), + .hw.init =3D &(struct clk_init_data){ + .name =3D "gpu_cc_sleep_clk", + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch gpu_cc_hlos1_vote_gpu_smmu_clk =3D { + .halt_reg =3D 0x5000, + .halt_check =3D BRANCH_VOTED, + .clkr =3D { + .enable_reg =3D 0x5000, + .enable_mask =3D BIT(0), + .hw.init =3D &(struct clk_init_data){ + .name =3D "gpu_cc_hlos1_vote_gpu_smmu_clk", + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct gdsc gpu_cx_gdsc =3D { + .gdscr =3D 0x106c, + .gds_hw_ctrl =3D 0x1540, + .pd =3D { + .name =3D "gpu_cx_gdsc", + }, + .pwrsts =3D PWRSTS_OFF_ON, + .flags =3D VOTABLE, +}; + +static struct gdsc gpu_gx_gdsc =3D { + .gdscr =3D 0x100c, + .clamp_io_ctrl =3D 0x1508, + .resets =3D (unsigned int []){ GPU_GX_BCR }, + .reset_count =3D 1, + .pd =3D { + .name =3D "gpu_gx_gdsc", + }, + .parent =3D &gpu_cx_gdsc.pd, + .pwrsts =3D PWRSTS_OFF_ON, + .flags =3D CLAMP_IO | AON_RESET | SW_RESET, +}; + +static struct clk_regmap *gpu_cc_qcm2290_clocks[] =3D { + [GPU_CC_AHB_CLK] =3D &gpu_cc_ahb_clk.clkr, + [GPU_CC_CRC_AHB_CLK] =3D &gpu_cc_crc_ahb_clk.clkr, + [GPU_CC_CX_GFX3D_CLK] =3D &gpu_cc_cx_gfx3d_clk.clkr, + [GPU_CC_CX_GMU_CLK] =3D &gpu_cc_cx_gmu_clk.clkr, + [GPU_CC_CX_SNOC_DVM_CLK] =3D &gpu_cc_cx_snoc_dvm_clk.clkr, + [GPU_CC_CXO_AON_CLK] =3D &gpu_cc_cxo_aon_clk.clkr, + [GPU_CC_CXO_CLK] =3D &gpu_cc_cxo_clk.clkr, + [GPU_CC_GMU_CLK_SRC] =3D &gpu_cc_gmu_clk_src.clkr, + [GPU_CC_GX_GFX3D_CLK] =3D &gpu_cc_gx_gfx3d_clk.clkr, + [GPU_CC_GX_GFX3D_CLK_SRC] =3D &gpu_cc_gx_gfx3d_clk_src.clkr, + [GPU_CC_PLL0] =3D &gpu_cc_pll0.clkr, + [GPU_CC_SLEEP_CLK] =3D &gpu_cc_sleep_clk.clkr, + [GPU_CC_HLOS1_VOTE_GPU_SMMU_CLK] =3D &gpu_cc_hlos1_vote_gpu_smmu_clk.clkr, +}; + +static const struct qcom_reset_map gpu_cc_qcm2290_resets[] =3D { + [GPU_GX_BCR] =3D { 0x1008 }, +}; + +static struct gdsc *gpu_cc_qcm2290_gdscs[] =3D { + [GPU_CX_GDSC] =3D &gpu_cx_gdsc, + [GPU_GX_GDSC] =3D &gpu_gx_gdsc, +}; + +static const struct regmap_config gpu_cc_qcm2290_regmap_config =3D { + .reg_bits =3D 32, + .reg_stride =3D 4, + .val_bits =3D 32, + .max_register =3D 0x9000, + .fast_io =3D true, +}; + + +static const struct qcom_cc_desc gpu_cc_qcm2290_desc =3D { + .config =3D &gpu_cc_qcm2290_regmap_config, + .clks =3D gpu_cc_qcm2290_clocks, + .num_clks =3D ARRAY_SIZE(gpu_cc_qcm2290_clocks), + .resets =3D gpu_cc_qcm2290_resets, + .num_resets =3D ARRAY_SIZE(gpu_cc_qcm2290_resets), + .gdscs =3D gpu_cc_qcm2290_gdscs, + .num_gdscs =3D ARRAY_SIZE(gpu_cc_qcm2290_gdscs), +}; + +static const struct of_device_id gpu_cc_qcm2290_match_table[] =3D { + { .compatible =3D "qcom,qcm2290-gpucc" }, + { } +}; +MODULE_DEVICE_TABLE(of, gpu_cc_qcm2290_match_table); + +static int gpu_cc_qcm2290_probe(struct platform_device *pdev) +{ + struct regmap *regmap; + int ret; + + regmap =3D qcom_cc_map(pdev, &gpu_cc_qcm2290_desc); + if (IS_ERR(regmap)) + return PTR_ERR(regmap); + + ret =3D devm_pm_runtime_enable(&pdev->dev); + if (ret) + return ret; + + ret =3D devm_pm_clk_create(&pdev->dev); + if (ret) + return ret; + + ret =3D pm_clk_add(&pdev->dev, NULL); + if (ret < 0) { + dev_err(&pdev->dev, "failed to acquire ahb clock\n"); + return ret; + } + + ret =3D pm_runtime_resume_and_get(&pdev->dev); + if (ret) + return ret; + + clk_huayra_2290_pll_configure(&gpu_cc_pll0, regmap, &gpu_cc_pll0_config); + + regmap_update_bits(regmap, 0x1060, BIT(0), BIT(0)); /* GPU_CC_GX_CXO_CLK = */ + + ret =3D qcom_cc_really_probe(pdev, &gpu_cc_qcm2290_desc, regmap); + if (ret) { + dev_err(&pdev->dev, "Failed to register display clock controller\n"); + goto out_pm_runtime_put; + } + +out_pm_runtime_put: + pm_runtime_put_sync(&pdev->dev); + + return 0; +} + +static struct platform_driver gpu_cc_qcm2290_driver =3D { + .probe =3D gpu_cc_qcm2290_probe, + .driver =3D { + .name =3D "gpucc-qcm2290", + .of_match_table =3D gpu_cc_qcm2290_match_table, + }, +}; +module_platform_driver(gpu_cc_qcm2290_driver); + +MODULE_DESCRIPTION("QTI QCM2290 GPU clock controller driver"); +MODULE_LICENSE("GPL"); --=20 2.44.0 From nobody Sun Feb 8 14:30:41 2026 Received: from mail-ej1-f46.google.com (mail-ej1-f46.google.com [209.85.218.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0560E13D624 for ; Tue, 26 Mar 2024 21:08:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711487325; cv=none; b=M1VGNZII9MVh94KzF/yeBv7dFdun6t7qhBzeKHdziXKX2OT+lIHHWLBdRRXpH2BeIkt39e9vN3j2iNEyL0P5R/zI/1W+/lOopMABtuTaH9SKPSrlLRFh6ZsHNi1EraZyh3wFugMOiaPUdOVwGi9UByMUkfgnnA1RnhlFB+F38WE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711487325; c=relaxed/simple; bh=eJZZmFBoxhxVlet/0pBFlU3St7YEEvnSSAuyn+HM1GM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=oCuiuIFsG4DvkGlDhkxuUFg2RGgUnVY3ewoKMLQ9aWSUJyX6asyUURFZOH2zocBQKHp/6ZcNxc9R2WrPkYbKmG+LZLv4c7aiDC1JLk2volhJpNwZWGeBqMEsFVsb5DTGjD50fXiFP7i2KkZZyPfwMoAvrfy4SX9P/qERnNlvqco= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=aV5pTKjS; arc=none smtp.client-ip=209.85.218.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="aV5pTKjS" Received: by mail-ej1-f46.google.com with SMTP id a640c23a62f3a-a4a393b699fso37496766b.0 for ; Tue, 26 Mar 2024 14:08:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1711487320; x=1712092120; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=Iz1lawlQGhNU4mln98FQrEkeNw+AVALbW0k/A8mWnj8=; b=aV5pTKjSBSHgYvEGlYOCOUuYmjp172im5ax2e+zTGkYErD53wlqaoi58rhwMLBbqsp g6b5Jsbd3JFg8L9s8rTW850qkDMVFsDHtQ9ZDj4brGEQiEuZVv1xF07WnPML03RbAtDG CodMbYnON4bgumsRexwnaaQQJzWPj7M0EjAQxNV2ss2FzBsVHlF4LvJIaMkuj/k4IZZC FaSKLOOVPk8NKdKtfNyONxR93a7PJVJw7asuQu8hZTi8dx642Ip3xVTgBKt4uCHMzGQk 77T3b4xQ0DI8KIjMoIXUYGn91jAX0VFoKYEr+Q9+eVjloR3pKkkVDBsqyYLiZzjOKDvz 5vtw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711487320; x=1712092120; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Iz1lawlQGhNU4mln98FQrEkeNw+AVALbW0k/A8mWnj8=; b=ij3KJ4w78XJrJgFT20NcaXlyW8/JmA0WxO8dxyhluIsAqGjiYPmd8aFUc5n0v/u0nb 7yDsz67KKLbKdsmEWtuhod7wqHOsVHwB9IIhdoWUgxtcOuZANQbe9R8jjk151TF42d5B 2Zp5NKh4HY4qaEciTENJ/goa0uboLdWmK97sMC5LZOsJZj8FsMrC1MxLcQ02WH9Z3gQr gYksPcG6Zgw84aliqP5wG0h0wC9FBjl5YBB3p+bvPHn2hInWk+uONrG94l91SBnN4dwo JZSQSi4CSNLAEfRHWG5PaZTFqhaM4RctjE7sRDupAFELta7aIViMItqT0W1XSUq/9FEr Bw+g== X-Forwarded-Encrypted: i=1; AJvYcCXwTaGVMtV1NDRSphQLVR7l3XfbphcG14q/LOXHz1MKHhfkmUEvw+yj2oNb7MjeN18mcohCytBh1JQRdkwEzNutnRUxeASgr59R7Jb+ X-Gm-Message-State: AOJu0YyDjmEgr4rqdGEF5L1vrY9rVp8u27FSefH2izD0mtyCdUHpHL5E Ff25xe0BfzFE4uYJLYYuFFV1xewGNyDie2Q5wQV+lSmTQMogdo8vDbnKQpUuH24= X-Google-Smtp-Source: AGHT+IF9gIMlB6BgJdNrNsE9cP9shpQy1D8/sskwlRLNLTu9jMqWbISItN36UsrcdjpcA/QOZtyMHQ== X-Received: by 2002:a17:906:1859:b0:a46:ed72:6bba with SMTP id w25-20020a170906185900b00a46ed726bbamr2342407eje.18.1711487320261; Tue, 26 Mar 2024 14:08:40 -0700 (PDT) Received: from [192.168.92.47] (078088045141.garwolin.vectranet.pl. [78.88.45.141]) by smtp.gmail.com with ESMTPSA id l19-20020a17090612d300b00a46cffe6d06sm4621697ejb.42.2024.03.26.14.08.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 Mar 2024 14:08:39 -0700 (PDT) From: Konrad Dybcio Date: Tue, 26 Mar 2024 22:08:26 +0100 Subject: [PATCH v3 4/5] arm64: dts: qcom: qcm2290: Add GPU nodes Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20240219-topic-rb1_gpu-v3-4-86f67786539a@linaro.org> References: <20240219-topic-rb1_gpu-v3-0-86f67786539a@linaro.org> In-Reply-To: <20240219-topic-rb1_gpu-v3-0-86f67786539a@linaro.org> To: Bjorn Andersson , Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Marijn Suijten , Konrad Dybcio , linux-arm-msm@vger.kernel.org, linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio , Dmitry Baryshkov X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1711487311; l=5480; i=konrad.dybcio@linaro.org; s=20230215; h=from:subject:message-id; bh=eJZZmFBoxhxVlet/0pBFlU3St7YEEvnSSAuyn+HM1GM=; b=dQUTA7QiV7nxAQQnjtyj5olcw+VCU5PDrriCa9n8AxJM67AO6856TWlvCwEozQux2Bnkb8XhF iaLxb2869PLASv3o7C/Cc0yt5XkagmceTSJ1KdfoC4EMJoMsw1hHzK6 X-Developer-Key: i=konrad.dybcio@linaro.org; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= Describe the GPU hardware on the QCM2290. Reviewed-by: Dmitry Baryshkov Signed-off-by: Konrad Dybcio --- arch/arm64/boot/dts/qcom/qcm2290.dtsi | 154 ++++++++++++++++++++++++++++++= ++++ 1 file changed, 154 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/qcm2290.dtsi b/arch/arm64/boot/dts/qc= om/qcm2290.dtsi index 8221336a8212..913478be6e9d 100644 --- a/arch/arm64/boot/dts/qcom/qcm2290.dtsi +++ b/arch/arm64/boot/dts/qcom/qcm2290.dtsi @@ -7,6 +7,7 @@ =20 #include #include +#include #include #include #include @@ -758,6 +759,11 @@ qusb2_hstx_trim: hstx-trim@25b { reg =3D <0x25b 0x1>; bits =3D <1 4>; }; + + gpu_speed_bin: gpu-speed-bin@2006 { + reg =3D <0x2006 0x2>; + bits =3D <5 8>; + }; }; =20 pmu@1b8e300 { @@ -1425,6 +1431,154 @@ usb_dwc3_ss: endpoint { }; }; =20 + gpu: gpu@5900000 { + compatible =3D "qcom,adreno-07000200", "qcom,adreno"; + reg =3D <0x0 0x05900000 0x0 0x40000>; + reg-names =3D "kgsl_3d0_reg_memory"; + + interrupts =3D ; + + clocks =3D <&gpucc GPU_CC_GX_GFX3D_CLK>, + <&gpucc GPU_CC_AHB_CLK>, + <&gcc GCC_BIMC_GPU_AXI_CLK>, + <&gcc GCC_GPU_MEMNOC_GFX_CLK>, + <&gpucc GPU_CC_CX_GMU_CLK>, + <&gpucc GPU_CC_CXO_CLK>; + clock-names =3D "core", + "iface", + "mem_iface", + "alt_mem_iface", + "gmu", + "xo"; + + interconnects =3D <&bimc MASTER_GFX3D RPM_ALWAYS_TAG + &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>; + interconnect-names =3D "gfx-mem"; + + iommus =3D <&adreno_smmu 0 1>, + <&adreno_smmu 2 0>; + operating-points-v2 =3D <&gpu_opp_table>; + power-domains =3D <&rpmpd QCM2290_VDDCX>; + qcom,gmu =3D <&gmu_wrapper>; + + nvmem-cells =3D <&gpu_speed_bin>; + nvmem-cell-names =3D "speed_bin"; + #cooling-cells =3D <2>; + + status =3D "disabled"; + + zap-shader { + memory-region =3D <&pil_gpu_mem>; + }; + + gpu_opp_table: opp-table { + compatible =3D "operating-points-v2"; + + /* TODO: Scale RPM_SMD_BIMC_GPU_CLK w/ turbo freqs */ + opp-1123200000 { + opp-hz =3D /bits/ 64 <1123200000>; + required-opps =3D <&rpmpd_opp_turbo_plus>; + opp-peak-kBps =3D <6881000>; + opp-supported-hw =3D <0x3>; + turbo-mode; + }; + + opp-1017600000 { + opp-hz =3D /bits/ 64 <1017600000>; + required-opps =3D <&rpmpd_opp_turbo>; + opp-peak-kBps =3D <6881000>; + opp-supported-hw =3D <0x3>; + turbo-mode; + }; + + opp-921600000 { + opp-hz =3D /bits/ 64 <921600000>; + required-opps =3D <&rpmpd_opp_nom_plus>; + opp-peak-kBps =3D <6881000>; + opp-supported-hw =3D <0x3>; + }; + + opp-844800000 { + opp-hz =3D /bits/ 64 <844800000>; + required-opps =3D <&rpmpd_opp_nom>; + opp-peak-kBps =3D <6881000>; + opp-supported-hw =3D <0x7>; + }; + + opp-672000000 { + opp-hz =3D /bits/ 64 <672000000>; + required-opps =3D <&rpmpd_opp_svs_plus>; + opp-peak-kBps =3D <3879000>; + opp-supported-hw =3D <0xf>; + }; + + opp-537600000 { + opp-hz =3D /bits/ 64 <537600000>; + required-opps =3D <&rpmpd_opp_svs>; + opp-peak-kBps =3D <2929000>; + opp-supported-hw =3D <0xf>; + }; + + opp-355200000 { + opp-hz =3D /bits/ 64 <355200000>; + required-opps =3D <&rpmpd_opp_low_svs>; + opp-peak-kBps =3D <1720000>; + opp-supported-hw =3D <0xf>; + }; + }; + }; + + gmu_wrapper: gmu@596a000 { + compatible =3D "qcom,adreno-gmu-wrapper"; + reg =3D <0x0 0x0596a000 0x0 0x30000>; + reg-names =3D "gmu"; + power-domains =3D <&gpucc GPU_CX_GDSC>, + <&gpucc GPU_GX_GDSC>; + power-domain-names =3D "cx", + "gx"; + }; + + gpucc: clock-controller@5990000 { + compatible =3D "qcom,qcm2290-gpucc"; + reg =3D <0x0 0x05990000 0x0 0x9000>; + clocks =3D <&gcc GCC_GPU_CFG_AHB_CLK>, + <&rpmcc RPM_SMD_XO_CLK_SRC>, + <&gcc GCC_GPU_GPLL0_CLK_SRC>, + <&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>; + power-domains =3D <&rpmpd QCM2290_VDDCX>; + required-opps =3D <&rpmpd_opp_low_svs>; + #clock-cells =3D <1>; + #reset-cells =3D <1>; + #power-domain-cells =3D <1>; + }; + + adreno_smmu: iommu@59a0000 { + compatible =3D "qcom,qcm2290-smmu-500", "qcom,adreno-smmu", + "qcom,smmu-500", "arm,mmu-500"; + reg =3D <0x0 0x059a0000 0x0 0x10000>; + interrupts =3D , + , + , + , + , + , + , + , + ; + + clocks =3D <&gcc GCC_GPU_MEMNOC_GFX_CLK>, + <&gpucc GPU_CC_HLOS1_VOTE_GPU_SMMU_CLK>, + <&gcc GCC_GPU_SNOC_DVM_GFX_CLK>; + clock-names =3D "mem", + "hlos", + "iface"; + + power-domains =3D <&gpucc GPU_CX_GDSC>; + + #global-interrupts =3D <1>; + #iommu-cells =3D <2>; + }; + mdss: display-subsystem@5e00000 { compatible =3D "qcom,qcm2290-mdss"; reg =3D <0x0 0x05e00000 0x0 0x1000>; --=20 2.44.0 From nobody Sun Feb 8 14:30:41 2026 Received: from mail-lf1-f51.google.com (mail-lf1-f51.google.com [209.85.167.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CB2F013DBBB for ; Tue, 26 Mar 2024 21:08:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711487326; cv=none; b=MpR++3fiH7ukSg07qfslOT3A+ZV5eIMFLvC5txO8uyZqYyTdKiqmG/BSGmumiXXusVd5n/XhYLZoHMxqnEykE3t4MLGw6pKGNsi5wCZTWIG0TnXVRD67eDJQMW8OhialqPssRow++TTJmhtd8lVgYiAkMvRTNk9qruVSEegrNag= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711487326; c=relaxed/simple; bh=mCf/bTGrYhIVVZWnC5IuKCe8qNqug2N56zzO/86GYUw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=cneE+gu320KsYE1EdiE89ujUpfKRumSroa4Nzy1Pfpj1o0cO7DeW3axLs3OZ0lp+TsfDjwMSBg7s153zt072NArZibb3xDnyZmaNL7S0Lv8OsxM9HkmaIv5iLIP3U93e3ReWwvVcvWmEB38KACNCacjfQgD5/8hRzeYqAcrLfbA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=bSl86VrA; arc=none smtp.client-ip=209.85.167.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="bSl86VrA" Received: by mail-lf1-f51.google.com with SMTP id 2adb3069b0e04-515a86daf09so4178755e87.3 for ; Tue, 26 Mar 2024 14:08:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1711487322; x=1712092122; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=BCRKVJibLLQ4yVCmcxgTjymNUgecCXO5D8tWd3XLDOo=; b=bSl86VrAzYvnumuMkUOwOKdBQK7GkcW4riS2r99EO8HSz17Vizup5PTV7AivT/lVbD ATGg1OQSLJCeYByKrSCkPQrjDZ6582Bs7dm6gueGnuT52ewiVCVukZH40RTEQ8S7xH7d NLdpiEnCzc/+7suLshzdorXAXVAbsR3Eu/NJcq+t72uPaT5OEeeLU77PWyU5oPQMbmuQ tXPWgQpfv9cZOMIn4k9K/8riUtBsCLZC6eGJvNiQlRjgVOAgwqSaubPqprjO9QebYXoO 7oiNqu6wGMB+T/6TXIABDy1NYneECCWVAP0lgzeSfpDUdS2iRJKO9hxGOig+snO7LA6E cPVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711487322; x=1712092122; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=BCRKVJibLLQ4yVCmcxgTjymNUgecCXO5D8tWd3XLDOo=; b=niYsBlp4Uqt9ijulC05U4EAiXKD8Duf9g8Gqg0lny61J8XpAoIgHqgMmQiVqmSSowa O0Z8fVGgL0C4SI5gqzMq24GS0Muq9yXOKT3sUZLnlRbmFEKhc2tItAegt/sMtFA4f4NW z+OLJq0BCZCjOqH3CVzOB907byCGnTKOfBPG+UEQQ/UY74sWFpUwZMugUixmnEwoKf2s 28sbesPPmJZrHlsfjAcuikaFE7paZkryRX4bEJjmeNM2X8xiC3XjAvAJVy13x0oLMDlh F53P8e5BcImiMGZkrj20d+qG64xuttVKLWyMt4Dai59eXHW+lk6QGX9C//UStLP8YLRJ Wrzg== X-Forwarded-Encrypted: i=1; AJvYcCVaRWYKN9AgtaLsFee5VRttQ2goSAO/m8+JUbLxwZv5Vizhn6s/YA8ZpT+SXp0viImMuL4t2cO26+73y5HlAswx00qJ25pJTT6vMjQE X-Gm-Message-State: AOJu0YxUL+gVti8GcMiQ8MGBeM3ZMQ1StSs0QQdwppF/3mBNe2El1AqT 2cEYwcw9kQU5cD2o0Gpr7u3w+gzO78owvGNjxNXN1DY9eNNaN2HATtZrZx7VZYM= X-Google-Smtp-Source: AGHT+IGTGNZKpviJEN8pv+U1aUTSHC/yaalgj2SyAQw9yZTAD8zmDwSBnctqneOnRGCf4mdA7HawFw== X-Received: by 2002:a19:e04f:0:b0:512:ee61:c32b with SMTP id g15-20020a19e04f000000b00512ee61c32bmr7948217lfj.43.1711487321879; Tue, 26 Mar 2024 14:08:41 -0700 (PDT) Received: from [192.168.92.47] (078088045141.garwolin.vectranet.pl. [78.88.45.141]) by smtp.gmail.com with ESMTPSA id l19-20020a17090612d300b00a46cffe6d06sm4621697ejb.42.2024.03.26.14.08.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 Mar 2024 14:08:41 -0700 (PDT) From: Konrad Dybcio Date: Tue, 26 Mar 2024 22:08:27 +0100 Subject: [PATCH v3 5/5] arm64: dts: qcom: qrb2210-rb1: Enable the GPU Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20240219-topic-rb1_gpu-v3-5-86f67786539a@linaro.org> References: <20240219-topic-rb1_gpu-v3-0-86f67786539a@linaro.org> In-Reply-To: <20240219-topic-rb1_gpu-v3-0-86f67786539a@linaro.org> To: Bjorn Andersson , Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Marijn Suijten , Konrad Dybcio , linux-arm-msm@vger.kernel.org, linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio , Dmitry Baryshkov X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1711487311; l=915; i=konrad.dybcio@linaro.org; s=20230215; h=from:subject:message-id; bh=mCf/bTGrYhIVVZWnC5IuKCe8qNqug2N56zzO/86GYUw=; b=ddqMsNfNeNvixGsx0pFhAimc2uyI22UJVbkqFIijsDLdFwb7PSKxyRbTaVNF12ceQY5kGkvYr yDMRS4PAalMDaPHzlmj/8gczrQ0AevbaHPQL3B5p7AhQRMiBf2gs5vX X-Developer-Key: i=konrad.dybcio@linaro.org; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= Enable the A702 GPU (also marketed as "3D accelerator by qcom [1], lol). [1] https://docs.qualcomm.com/bundle/publicresource/87-61720-1_REV_A_QUALCO= MM_ROBOTICS_RB1_PLATFORM__QUALCOMM_QRB2210__PRODUCT_BRIEF.pdf Reviewed-by: Dmitry Baryshkov Signed-off-by: Konrad Dybcio --- arch/arm64/boot/dts/qcom/qrb2210-rb1.dts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/qrb2210-rb1.dts b/arch/arm64/boot/dts= /qcom/qrb2210-rb1.dts index fca341300521..c54ad9f02e76 100644 --- a/arch/arm64/boot/dts/qcom/qrb2210-rb1.dts +++ b/arch/arm64/boot/dts/qcom/qrb2210-rb1.dts @@ -199,6 +199,14 @@ &gpi_dma0 { status =3D "okay"; }; =20 +&gpu { + status =3D "okay"; + + zap-shader { + firmware-name =3D "qcom/qcm2290/a702_zap.mbn"; + }; +}; + &i2c2 { clock-frequency =3D <400000>; status =3D "okay"; --=20 2.44.0