From patchwork Wed May 11 16:15:55 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sireesh Kodali X-Patchwork-Id: 571638 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3CCB4C433EF for ; Wed, 11 May 2022 16:16:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233441AbiEKQQ3 (ORCPT ); Wed, 11 May 2022 12:16:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35438 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344506AbiEKQQ2 (ORCPT ); Wed, 11 May 2022 12:16:28 -0400 Received: from mail-pf1-x433.google.com (mail-pf1-x433.google.com [IPv6:2607:f8b0:4864:20::433]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C273E27150; Wed, 11 May 2022 09:16:26 -0700 (PDT) Received: by mail-pf1-x433.google.com with SMTP id j6so2378258pfe.13; Wed, 11 May 2022 09:16:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Oo+xWOyB/yW9hDceUY9ZJG/L2ZB1N/Jc0WPvd/Kp/Sk=; b=lD/aGErmGSFF6LS7HM2gBFn5Dgs3TUWq7SBRh0LJ951aAqlSmu07pYqqGc6jV0aebn KrDlGykfQPnACbhNu35Hz6SK1qjifM/ANLvvB1vV8oLWmu0CD6fzgNoEpiezjOyKhMqs DDfosSULYfqLqcyjfsdGR44R0kUj74XUouPUM87rncZcrheoAomlgcd8whBkwVqIqcVF 29ZffaUC3zlHRDcPamp0/RVdW4WvFv92q2zWGSlKBceZfMlj3oX3jCVdBMoqbtO+7UEP 7Mfw4HgVR/QQ5EUH3zpRTrqZtWkQdHxnOb7OtSsYuyzXVMc79DnUgLbUpT0Sl6yjmMvl kZFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Oo+xWOyB/yW9hDceUY9ZJG/L2ZB1N/Jc0WPvd/Kp/Sk=; b=zQewMB9gHS9orRi/TB21tjndsZDg/3DY4GhZD4i4048qaRefqny29FTLNyCLk8VgZf aPn58Q+q22BI7rgaLGgYEW9GPMbRqhKSkHVIShA/ajZrWd6ICXmsBtAaXpQvo+ZX2wPs 3nzg6VOS6CFk0IPdMk5eXcpOZlOyXfImV03iOJHQ3WqXfFF4+XFx0YPLIJQAQsGlHcCF zWCZofT88gV1/v2phPX0DuU9Qdye6IdTkw6H2caoRvG9nB97JNhuWTP2UFhsWeIU2PxU hfLaLUAwqZzP1+jQbo0KbLq0zXiJHkFyJCNcmLuQ9nKBEWWbNHqnNaumWKddqVVjgReo c2kg== X-Gm-Message-State: AOAM531XwfM2qsNbciIV2Utq5lBfbFQhRSPEJyPKunFeAxZ7Ouyg3Yae kb8yN5RPMloX/Q2XRpCnwdcGtaX6HJ9zJmi3 X-Google-Smtp-Source: ABdhPJw3iDCRKWuiBpmy3ARg0rqWcyBUVXfoQdVvExCxrEH8K0wsVKCptGWoWIp0QmbHPV6YOySojA== X-Received: by 2002:a63:6507:0:b0:3c6:d417:914b with SMTP id z7-20020a636507000000b003c6d417914bmr10640678pgb.475.1652285785917; Wed, 11 May 2022 09:16:25 -0700 (PDT) Received: from skynet-linux.local ([49.204.239.218]) by smtp.googlemail.com with ESMTPSA id x7-20020a17090a1f8700b001ded49491basm220322pja.2.2022.05.11.09.16.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 May 2022 09:16:25 -0700 (PDT) From: Sireesh Kodali To: linux-remoteproc@vger.kernel.org Cc: linux-arm-msm@vger.kernel.org, ~postmarketos/upstreaming@lists.sr.ht, bjorn.andersson@linaro.org, devicetree@vger.kernel.org, phone-devel@vger.kernel.org, linux-kernel@vger.kernel.org, Sireesh Kodali , Andy Gross , Mathieu Poirier Subject: [PATCH 2/9] remoteproc: qcom: q6v5-mss: Add modem support on MSM8953 Date: Wed, 11 May 2022 21:45:55 +0530 Message-Id: <20220511161602.117772-3-sireeshkodali1@gmail.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220511161602.117772-1-sireeshkodali1@gmail.com> References: <20220511161602.117772-1-sireeshkodali1@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org The modem on the MSM8953 platform is similar to the modem on the MSM8996 platform in terms of set up. It differs primarily in the way it needs SCM to bless the MPSS firmware region. Signed-off-by: Sireesh Kodali --- drivers/remoteproc/qcom_q6v5_mss.c | 64 +++++++++++++++++++++++++++--- 1 file changed, 58 insertions(+), 6 deletions(-) diff --git a/drivers/remoteproc/qcom_q6v5_mss.c b/drivers/remoteproc/qcom_q6v5_mss.c index af217de75e4d..a73fdcddeda4 100644 --- a/drivers/remoteproc/qcom_q6v5_mss.c +++ b/drivers/remoteproc/qcom_q6v5_mss.c @@ -234,6 +234,7 @@ struct q6v5 { enum { MSS_MSM8916, + MSS_MSM8953, MSS_MSM8974, MSS_MSM8996, MSS_MSM8998, @@ -687,12 +688,14 @@ static int q6v5proc_reset(struct q6v5 *qproc) } goto pbl_wait; } else if (qproc->version == MSS_MSM8996 || - qproc->version == MSS_MSM8998) { + qproc->version == MSS_MSM8998 || + qproc->version == MSS_MSM8953) { int mem_pwr_ctl; /* Override the ACC value if required */ - writel(QDSP6SS_ACC_OVERRIDE_VAL, - qproc->reg_base + QDSP6SS_STRAP_ACC); + if (qproc->version != MSS_MSM8953) + writel(QDSP6SS_ACC_OVERRIDE_VAL, + qproc->reg_base + QDSP6SS_STRAP_ACC); /* Assert resets, stop core */ val = readl(qproc->reg_base + QDSP6SS_RESET_REG); @@ -734,7 +737,8 @@ static int q6v5proc_reset(struct q6v5 *qproc) writel(val, qproc->reg_base + QDSP6SS_PWR_CTL_REG); /* Turn on L1, L2, ETB and JU memories 1 at a time */ - if (qproc->version == MSS_MSM8996) { + if (qproc->version == MSS_MSM8996 || + qproc->version == MSS_MSM8953) { mem_pwr_ctl = QDSP6SS_MEM_PWR_CTL; i = 19; } else { @@ -1314,7 +1318,16 @@ static int q6v5_mpss_load(struct q6v5 *qproc) max_addr = ALIGN(phdr->p_paddr + phdr->p_memsz, SZ_4K); } - /* + if (qproc->version == MSS_MSM8953) { + ret = qcom_scm_pas_mem_setup(5, qproc->mpss_phys, qproc->mpss_size); + if (ret) { + dev_err(qproc->dev, + "setting up mpss memory failed: %d\n", ret); + goto release_firmware; + } + } + + /** * In case of a modem subsystem restart on secure devices, the modem * memory can be reclaimed only after MBA is loaded. */ @@ -1413,7 +1426,6 @@ static int q6v5_mpss_load(struct q6v5 *qproc) writel(RMB_CMD_LOAD_READY, qproc->rmb_base + RMB_MBA_COMMAND_REG); } writel(size, qproc->rmb_base + RMB_PMI_CODE_LENGTH_REG); - ret = readl(qproc->rmb_base + RMB_MBA_STATUS_REG); if (ret < 0) { dev_err(qproc->dev, "MPSS authentication failed: %d\n", @@ -1422,6 +1434,7 @@ static int q6v5_mpss_load(struct q6v5 *qproc) } } + /* Transfer ownership of modem ddr region to q6 */ ret = q6v5_xfer_mem_ownership(qproc, &qproc->mpss_perm, false, true, qproc->mpss_phys, qproc->mpss_size); @@ -2198,6 +2211,44 @@ static const struct rproc_hexagon_res msm8996_mss = { .version = MSS_MSM8996, }; +static const struct rproc_hexagon_res msm8953_mss = { + .hexagon_mba_image = "mba.mbn", + .proxy_supply = (struct qcom_mss_reg_res[]) { + { + .supply = "pll", + .uA = 100000, + }, + {} + }, + .proxy_pd_names = (char*[]) { + "cx", + "mx", + NULL + }, + .active_supply = (struct qcom_mss_reg_res[]) { + { + .supply = "mss", + .uV = 1050000, + .uA = 100000, + }, + {} + }, + .proxy_clk_names = (char*[]){ + "xo", + NULL + }, + .active_clk_names = (char*[]){ + "iface", + "bus", + "mem", + NULL + }, + .need_mem_protection = false, + .has_alt_reset = false, + .has_spare_reg = false, + .version = MSS_MSM8953, +}; + static const struct rproc_hexagon_res msm8916_mss = { .hexagon_mba_image = "mba.mbn", .proxy_supply = (struct qcom_mss_reg_res[]) { @@ -2301,6 +2352,7 @@ static const struct of_device_id q6v5_of_match[] = { { .compatible = "qcom,msm8916-mss-pil", .data = &msm8916_mss}, { .compatible = "qcom,msm8974-mss-pil", .data = &msm8974_mss}, { .compatible = "qcom,msm8996-mss-pil", .data = &msm8996_mss}, + { .compatible = "qcom,msm8953-mss-pil", .data = &msm8953_mss}, { .compatible = "qcom,msm8998-mss-pil", .data = &msm8998_mss}, { .compatible = "qcom,sc7180-mss-pil", .data = &sc7180_mss}, { .compatible = "qcom,sc7280-mss-pil", .data = &sc7280_mss}, From patchwork Wed May 11 16:15:57 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sireesh Kodali X-Patchwork-Id: 571637 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 56519C4321E for ; Wed, 11 May 2022 16:16:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344507AbiEKQQm (ORCPT ); Wed, 11 May 2022 12:16:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35992 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344539AbiEKQQi (ORCPT ); Wed, 11 May 2022 12:16:38 -0400 Received: from mail-pl1-x62c.google.com (mail-pl1-x62c.google.com [IPv6:2607:f8b0:4864:20::62c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ED93C25EA6; Wed, 11 May 2022 09:16:36 -0700 (PDT) Received: by mail-pl1-x62c.google.com with SMTP id i17so2330748pla.10; Wed, 11 May 2022 09:16:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=O0GO+ft+dwHvfJoPa2fsL+9iF5dCZRWn0oUcpqa+NiI=; b=hJuXKP0T/GR4yux3rKVcFrAcR7q42Y6juLDK3dZM/v/ZrqbI4jpK7+9MUaHBnFB++s cEAwdW91cEyAT21Tf18d/m7Vik86d3zNW1akWQWbQT40s+fdSdIc0CYxU5HpkYScq81o dy53mk+pqhcveWb6dcQGmWKLSnz/qN/Idd39yISnE9v8TmzcZe3gACD7UQYOw6OwDhur S0op+DpIaRmTyWVO91VekFTbbXa+b9IQuZQ4SjvIfHq7HVqjbKyZYo2S1zNOFCVx+zT9 Ff/LAp5CB1djypR2VCQY9Ao2JqwRcnoqxOuaI55Jw+yLR5N/GHQJxA53eo2uUFraJt1n cfaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=O0GO+ft+dwHvfJoPa2fsL+9iF5dCZRWn0oUcpqa+NiI=; b=jbuRDD9rXkD9AjczvO3ylMjEBxU/KxngnzJlpVGJWV1Ho4Z1RulmaIkRPTyUhwTVYo avJp/VCOjNiq3ASpNl6ufBd5sCLpi/GMR5dAq4n9isjC+ncvJodfNQiRYFNep41ejoEl akyTjzaEgfNlH9HX2O23ozGYnXuRLQJXmx2+VFjQPoOcjRZFy9Lj/j4Yg8/q1vSyb1WR +WS/zh3VH46jJbY4rSsuSFMev+/17AbCKPFOwV1Bu2ujycvuu9ZJ6JnnyGmvXlLP0WGr c6PjH5IAkzXD9OvY4uZCVz+vVvF6CI9XicUBnnXPMD5kMMHUwPw3byF557y0BOltRSQA Y4tA== X-Gm-Message-State: AOAM5330BVWXYgIlLHxXID7aNwxY7teYSvYm+9HXdn9ahbE0gQ8z++oT Lq8NH13cjN6jtLzgMSE18Wvv/iJKU1+R/dwG X-Google-Smtp-Source: ABdhPJxUfrSydVREGklb+OjGERB2cu+ozjNkalIW0YfG1YndSusBz9Fm6eUW7y9coflsK68+bRsgtA== X-Received: by 2002:a17:90a:4413:b0:1cd:2d00:9d0b with SMTP id s19-20020a17090a441300b001cd2d009d0bmr6116311pjg.81.1652285795995; Wed, 11 May 2022 09:16:35 -0700 (PDT) Received: from skynet-linux.local ([49.204.239.218]) by smtp.googlemail.com with ESMTPSA id x7-20020a17090a1f8700b001ded49491basm220322pja.2.2022.05.11.09.16.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 May 2022 09:16:35 -0700 (PDT) From: Sireesh Kodali To: linux-remoteproc@vger.kernel.org Cc: linux-arm-msm@vger.kernel.org, ~postmarketos/upstreaming@lists.sr.ht, bjorn.andersson@linaro.org, devicetree@vger.kernel.org, phone-devel@vger.kernel.org, linux-kernel@vger.kernel.org, Sireesh Kodali , Andy Gross , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski Subject: [PATCH 4/9] dt-bindings: remoteproc: qcom: wcnss: Convert to YAML Date: Wed, 11 May 2022 21:45:57 +0530 Message-Id: <20220511161602.117772-5-sireeshkodali1@gmail.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220511161602.117772-1-sireeshkodali1@gmail.com> References: <20220511161602.117772-1-sireeshkodali1@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Convert the dt-bindings from txt to YAML. This is in preparation for including the relevant bindings for the MSM8953 platform's wcnss pil. Signed-off-by: Sireesh Kodali --- .../bindings/remoteproc/qcom,wcnss-pil.txt | 177 -------------- .../bindings/remoteproc/qcom,wcnss-pil.yaml | 228 ++++++++++++++++++ 2 files changed, 228 insertions(+), 177 deletions(-) delete mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,wcnss-pil.txt create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,wcnss-pil.yaml diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,wcnss-pil.txt b/Documentation/devicetree/bindings/remoteproc/qcom,wcnss-pil.txt deleted file mode 100644 index a83080b8905c..000000000000 --- a/Documentation/devicetree/bindings/remoteproc/qcom,wcnss-pil.txt +++ /dev/null @@ -1,177 +0,0 @@ -Qualcomm WCNSS Peripheral Image Loader - -This document defines the binding for a component that loads and boots firmware -on the Qualcomm WCNSS core. - -- compatible: - Usage: required - Value type: - Definition: must be one of: - "qcom,riva-pil", - "qcom,pronto-v1-pil", - "qcom,pronto-v2-pil" - -- reg: - Usage: required - Value type: - Definition: must specify the base address and size of the CCU, DXE and - PMU register blocks - -- reg-names: - Usage: required - Value type: - Definition: must be "ccu", "dxe", "pmu" - -- interrupts-extended: - Usage: required - Value type: - Definition: must list the watchdog and fatal IRQs and may specify the - ready, handover and stop-ack IRQs - -- interrupt-names: - Usage: required - Value type: - Definition: should be "wdog", "fatal", optionally followed by "ready", - "handover", "stop-ack" - -- firmware-name: - Usage: optional - Value type: - Definition: must list the relative firmware image path for the - WCNSS core. Defaults to "wcnss.mdt". - -- vddmx-supply: (deprecated for qcom,pronto-v1/2-pil) -- vddcx-supply: (deprecated for qcom,pronto-v1/2-pil) -- vddpx-supply: - Usage: required - Value type: - Definition: reference to the regulators to be held on behalf of the - booting of the WCNSS core - -- power-domains: - Usage: required (for qcom,pronto-v1/2-pil) - Value type: - Definition: reference to the power domains to be held on behalf of the - booting of the WCNSS core - -- power-domain-names: - Usage: required (for qcom,pronto-v1/2-pil) - Value type: - Definition: must be "cx", "mx" - -- qcom,smem-states: - Usage: optional - Value type: - Definition: reference to the SMEM state used to indicate to WCNSS that - it should shut down - -- qcom,smem-state-names: - Usage: optional - Value type: - Definition: should be "stop" - -- memory-region: - Usage: required - Value type: - Definition: reference to reserved-memory node for the remote processor - see ../reserved-memory/reserved-memory.txt - -= SUBNODES -A required subnode of the WCNSS PIL is used to describe the attached rf module -and its resource dependencies. It is described by the following properties: - -- compatible: - Usage: required - Value type: - Definition: must be one of: - "qcom,wcn3620", - "qcom,wcn3660", - "qcom,wcn3660b", - "qcom,wcn3680" - -- clocks: - Usage: required - Value type: - Definition: should specify the xo clock and optionally the rf clock - -- clock-names: - Usage: required - Value type: - Definition: should be "xo", optionally followed by "rf" - -- vddxo-supply: -- vddrfa-supply: -- vddpa-supply: -- vdddig-supply: - Usage: required - Value type: - Definition: reference to the regulators to be held on behalf of the - booting of the WCNSS core - - -The wcnss node can also have an subnode named "smd-edge" that describes the SMD -edge, channels and devices related to the WCNSS. -See ../soc/qcom/qcom,smd.txt for details on how to describe the SMD edge. - -= EXAMPLE -The following example describes the resources needed to boot control the WCNSS, -with attached WCN3680, as it is commonly found on MSM8974 boards. - -pronto@fb204000 { - compatible = "qcom,pronto-v2-pil"; - reg = <0xfb204000 0x2000>, <0xfb202000 0x1000>, <0xfb21b000 0x3000>; - reg-names = "ccu", "dxe", "pmu"; - - interrupts-extended = <&intc 0 149 1>, - <&wcnss_smp2p_slave 0 0>, - <&wcnss_smp2p_slave 1 0>, - <&wcnss_smp2p_slave 2 0>, - <&wcnss_smp2p_slave 3 0>; - interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack"; - - power-domains = <&rpmpd MSM8974_VDDCX>, <&rpmpd MSM8974_VDDMX>; - power-domain-names = "cx", "mx"; - - vddpx-supply = <&pm8941_s3>; - - qcom,smem-states = <&wcnss_smp2p_out 0>; - qcom,smem-state-names = "stop"; - - memory-region = <&wcnss_region>; - - pinctrl-names = "default"; - pinctrl-0 = <&wcnss_pin_a>; - - iris { - compatible = "qcom,wcn3680"; - - clocks = <&rpmcc RPM_CXO_CLK_SRC>, <&rpmcc RPM_CXO_A2>; - clock-names = "xo", "rf"; - - vddxo-supply = <&pm8941_l6>; - vddrfa-supply = <&pm8941_l11>; - vddpa-supply = <&pm8941_l19>; - vdddig-supply = <&pm8941_s3>; - }; - - smd-edge { - interrupts = <0 142 1>; - - qcom,ipc = <&apcs 8 17>; - qcom,smd-edge = <6>; - qcom,remote-pid = <4>; - - label = "pronto"; - - wcnss { - compatible = "qcom,wcnss"; - qcom,smd-channels = "WCNSS_CTRL"; - - qcom,mmio = <&pronto>; - - bt { - compatible = "qcom,wcnss-bt"; - }; - }; - }; -}; diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,wcnss-pil.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,wcnss-pil.yaml new file mode 100644 index 000000000000..d19f9f87a3e3 --- /dev/null +++ b/Documentation/devicetree/bindings/remoteproc/qcom,wcnss-pil.yaml @@ -0,0 +1,228 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/remoteproc/qcom,wcnss-pil.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Qualcomm WCNSS Peripheral Image Loader + +maintainers: + - Bjorn Andersson + +description: + This document defines the binding for a component that loads and boots + firmware on the Qualcomm WCNSS core. + +properties: + compatible: + oneOf: + - items: + - enum: + - qcom,pronto-v2-pil + - enum: + - qcom,pronto + - items: + - enum: + - qcom,riva-pil + - qcom,pronto-v1-pil + - qcom,pronto-v2-pil + + reg: + description: must specify the base address and size of the CCU, DXE and PMU + register blocks + + reg-names: + items: + - const: ccu + - const: dxe + - const: pmu + + interrupts-extended: + description: + Interrupt lines + minItems: 2 + maxItems: 5 + + interrupt-names: + minItems: 2 + maxItems: 5 + + firmware-name: + $ref: /schemas/types.yaml#/definitions/string + description: Relative firmware image path for the WCNSS core. Defaults to + "wcnss.mdt". + + vddpx-supply: + description: Reference to the PX regulator to be held on behalf of the + booting of the WCNSS core + + vddmx-supply: + description: Reference to the MX regulator to be held on behalf of the + booting of the WCNSS core. + + vddcx-supply: + description: Reference to the CX regulator to be held on behalf of the + booting of the WCNSS core. + + power-domains: + $ref: /schemas/types.yaml#/definitions/phandle-array + description: References to the power domains that need to be held on + behalf of the booting WCNSS core + + power-domain-names: + $ref: /schemas/types.yaml#/definitions/string-array + description: Names of the power domains + items: + - const: cx + - const: mx + + qcom,smem-states: + $ref: /schemas/types.yaml#/definitions/phandle-array + description: States used by the AP to signal the WCNSS core that it should + shutdown + items: + - description: Stop the modem + + qcom,smem-state-names: + $ref: /schemas/types.yaml#/definitions/string-array + description: The names of the state bits used for SMP2P output + items: + - const: stop + + memory-region: + maxItems: 1 + description: Reference to the reserved-memory for the WCNSS core + + smd-edge: + type: object + description: + Qualcomm Shared Memory subnode which represents communication edge, + channels and devices related to the ADSP. + + iris: + type: object + description: + The iris subnode of the WCNSS PIL is used to describe the attached rf module + and its resource dependencies. + + properties: + compatible: + enum: + - qcom,wcn3620 + - qcom,wcn3660 + - qcom,wcn3660b + - qcom,wcn3680 + + clocks: + description: XO clock + + clock-names: + items: + - const: xo + + required: + - compatible + +required: + - compatible + - reg + - reg-names + - interrupts-extended + - interrupt-names + - vddpx-supply + - memory-region + - smd-edge + - iris + +additionalProperties: false + +if: + properties: + compatible: + contains: + enum: + - qcom,pronto-v1-pil + - qcom,pronto-v2-pil +then: + properties: + vddmx-supply: + deprecated: true + description: Deprecated for qcom,pronto-v1/2-pil + + vddcx-supply: + deprecated: true + description: Deprecated for qcom,pronto-v1/2-pil + + required: + - power-domains + - power-domain-names + +examples: + - | + #include + #include + #include + pronto@a21b000 { + compatible = "qcom,pronto-v2-pil"; + reg = <0x0a204000 0x2000>, <0x0a202000 0x1000>, <0x0a21b000 0x3000>; + reg-names = "ccu", "dxe", "pmu"; + + interrupts-extended = <&intc GIC_SPI 149 IRQ_TYPE_EDGE_RISING>, + <&wcnss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>, + <&wcnss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>, + <&wcnss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>, + <&wcnss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>; + interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack"; + + power-domains = <&rpmpd MSM8916_VDDCX>, <&rpmpd MSM8916_VDDMX>; + power-domain-names = "cx", "mx"; + + vddpx-supply = <&pm8916_l7>; + + qcom,smem-states = <&wcnss_smp2p_out 0>; + qcom,smem-state-names = "stop"; + + memory-region = <&wcnss_region>; + + pinctrl-names = "default"; + pinctrl-0 = <&wcnss_pin_a>; + + iris { + compatible = "qcom,wcn3620"; + + clocks = <&rpmcc RPM_SMD_RF_CLK2>; + clock-names = "xo"; + }; + + smd-edge { + interrupts = ; + + qcom,ipc = <&apcs 8 17>; + qcom,smd-edge = <6>; + qcom,remote-pid = <4>; + + label = "pronto"; + + wcnss { + compatible = "qcom,wcnss"; + qcom,smd-channels = "WCNSS_CTRL"; + + qcom,mmio = <&pronto>; + + bt { + compatible = "qcom,wcnss-bt"; + }; + + wifi { + compatible = "qcom,wcnss-wlan"; + + interrupts = , + ; + interrupt-names = "tx", "rx"; + + qcom,smem-states = <&apps_smsm 10>, <&apps_smsm 9>; + qcom,smem-state-names = "tx-enable", "tx-rings-empty"; + }; + }; + }; + }; From patchwork Wed May 11 16:15:59 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sireesh Kodali X-Patchwork-Id: 571636 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8F5E3C4332F for ; Wed, 11 May 2022 16:17:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344559AbiEKQRA (ORCPT ); Wed, 11 May 2022 12:17:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37312 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344592AbiEKQQx (ORCPT ); Wed, 11 May 2022 12:16:53 -0400 Received: from mail-pl1-x62b.google.com (mail-pl1-x62b.google.com [IPv6:2607:f8b0:4864:20::62b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0435F2899C; Wed, 11 May 2022 09:16:48 -0700 (PDT) Received: by mail-pl1-x62b.google.com with SMTP id c9so2370522plh.2; Wed, 11 May 2022 09:16:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=JXNk/wGnkhO9VQdBWaw8cOb3okfyhdJAFrNpF+Zj220=; b=qT6/+aArDex9TwZvim8fIl+e29xlaIC/Su3Dyl7y1c60aVGspiCsjYBsn/u7fqkNRL gvM4a3VMv4Q0g6d6fExO7WKnE/DaXnIqurC+x3StoYRhlzZIim/rlRtav3x0SWbKcDhP xhLJXLiEh/RX9Xt9DT8ZDuHZ5wsGnDAGFax2iIWKDH3rPb1890bvXtTCKjmSnuM5scBA soIN6nBzxkCSgFMZt5kvNmQX1HtcU9HDdBoDPFhk7Mc+hRURLKBQqfkDRPZa/WZZszeq zo1ea+Q6B8rvPebNsYQgEeQh4fjOpYUk4tsUkj2lZR3qm99cXs+981VS45PyRIH0i9Jp fpQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=JXNk/wGnkhO9VQdBWaw8cOb3okfyhdJAFrNpF+Zj220=; b=HMZkKitBa2agl8wsyXWX0D89aBjPyhkU+KT6my+AFYHOWwmO9kAPyOJgON+PRtftB9 GAeetndsKephrdH5J2Nl/m815TLEArA8rsDOGUUez0IMKB4jeL0xT0skfv14l5TpOHPh KX7HOnhdhojrrCk65fhT8+vZqZDlZGEd1dL/QAEyEtbSGt7v4huEcEV7E89+x8M/tvDT 3/iodko2FRlgTcRpQR00/8l+JY9J6Rv97Rz31Kp6VhHQKDPGquYZWJrqYMKJueuWZAsJ mgDxSACJccX1Age8zBS0z1Ehiva3p/NMUSfT/fWjW9Qqr5BCB+iJ4htLOEiNy2qEb/CG Zeyw== X-Gm-Message-State: AOAM531ifC4h0epc8VgCLHvyeEIXENtQRDK4yPn0n0UeEyFU0sQkkmln VojivaDYf3b6cGBxhTOFpYTCA6usP/N6PQl4 X-Google-Smtp-Source: ABdhPJwhFGsG/qtfM4JVViSKoMGZ6MG37oGtmEFe18+pstGspH7dcLRoiBz7LFe8g3YjvXSp3vRX/g== X-Received: by 2002:a17:903:120a:b0:15f:99f:95bc with SMTP id l10-20020a170903120a00b0015f099f95bcmr16874453plh.48.1652285807972; Wed, 11 May 2022 09:16:47 -0700 (PDT) Received: from skynet-linux.local ([49.204.239.218]) by smtp.googlemail.com with ESMTPSA id x7-20020a17090a1f8700b001ded49491basm220322pja.2.2022.05.11.09.16.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 May 2022 09:16:47 -0700 (PDT) From: Sireesh Kodali To: linux-remoteproc@vger.kernel.org Cc: linux-arm-msm@vger.kernel.org, ~postmarketos/upstreaming@lists.sr.ht, bjorn.andersson@linaro.org, devicetree@vger.kernel.org, phone-devel@vger.kernel.org, linux-kernel@vger.kernel.org, Sireesh Kodali , Andy Gross , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski Subject: [PATCH 6/9] dt-bindings: remoteproc: qcom: mss: Convert bindings to YAML Date: Wed, 11 May 2022 21:45:59 +0530 Message-Id: <20220511161602.117772-7-sireeshkodali1@gmail.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220511161602.117772-1-sireeshkodali1@gmail.com> References: <20220511161602.117772-1-sireeshkodali1@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Convert the bindings to YAML from txt. The bindings follow a similar schema to `qcom,adsp.yaml`. Signed-off-by: Sireesh Kodali --- .../bindings/remoteproc/qcom,q6v5.txt | 302 -------- .../bindings/remoteproc/qcom,q6v5.yaml | 702 ++++++++++++++++++ 2 files changed, 702 insertions(+), 302 deletions(-) delete mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,q6v5.txt create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,q6v5.yaml diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,q6v5.txt b/Documentation/devicetree/bindings/remoteproc/qcom,q6v5.txt deleted file mode 100644 index 8f1507052afd..000000000000 --- a/Documentation/devicetree/bindings/remoteproc/qcom,q6v5.txt +++ /dev/null @@ -1,302 +0,0 @@ -Qualcomm Hexagon Peripheral Image Loader - -This document defines the binding for a component that loads and boots firmware -on the Qualcomm Hexagon core. - -- compatible: - Usage: required - Value type: - Definition: must be one of: - "qcom,q6v5-pil", - "qcom,ipq8074-wcss-pil" - "qcom,qcs404-wcss-pil" - "qcom,msm8916-mss-pil", - "qcom,msm8974-mss-pil" - "qcom,msm8996-mss-pil" - "qcom,msm8998-mss-pil" - "qcom,sc7180-mss-pil" - "qcom,sc7280-mss-pil" - "qcom,sdm845-mss-pil" - -- reg: - Usage: required - Value type: - Definition: must specify the base address and size of the qdsp6 and - rmb register blocks - -- reg-names: - Usage: required - Value type: - Definition: must be "q6dsp" and "rmb" - -- interrupts-extended: - Usage: required - Value type: - Definition: reference to the interrupts that match interrupt-names - -- interrupt-names: - Usage: required - Value type: - Definition: The interrupts needed depends on the the compatible - string: - qcom,q6v5-pil: - qcom,ipq8074-wcss-pil: - qcom,qcs404-wcss-pil: - qcom,msm8916-mss-pil: - qcom,msm8974-mss-pil: - must be "wdog", "fatal", "ready", "handover", "stop-ack" - qcom,msm8996-mss-pil: - qcom,msm8998-mss-pil: - qcom,sc7180-mss-pil: - qcom,sc7280-mss-pil: - qcom,sdm845-mss-pil: - must be "wdog", "fatal", "ready", "handover", "stop-ack", - "shutdown-ack" - -- firmware-name: - Usage: optional - Value type: - Definition: must list the relative firmware image paths for mba and - modem. They are used for booting and authenticating the - Hexagon core. - -- clocks: - Usage: required - Value type: - Definition: reference to the clocks that match clock-names - -- clock-names: - Usage: required - Value type: - Definition: The clocks needed depend on the compatible string: - qcom,ipq8074-wcss-pil: - no clock names required - qcom,qcs404-wcss-pil: - must be "xo", "gcc_abhs_cbcr", "gcc_abhs_cbcr", - "gcc_axim_cbcr", "lcc_ahbfabric_cbc", "tcsr_lcc_cbc", - "lcc_abhs_cbc", "lcc_tcm_slave_cbc", "lcc_abhm_cbc", - "lcc_axim_cbc", "lcc_bcr_sleep" - qcom,q6v5-pil: - qcom,msm8916-mss-pil: - qcom,msm8974-mss-pil: - must be "iface", "bus", "mem", "xo" - qcom,msm8996-mss-pil: - must be "iface", "bus", "mem", "xo", "gpll0_mss", - "snoc_axi", "mnoc_axi", "pnoc", "qdss" - qcom,msm8998-mss-pil: - must be "iface", "bus", "mem", "xo", "gpll0_mss", - "snoc_axi", "mnoc_axi", "qdss" - qcom,sc7180-mss-pil: - must be "iface", "bus", "xo", "snoc_axi", "mnoc_axi", - "nav" - qcom,sc7280-mss-pil: - must be "iface", "xo", "snoc_axi", "offline", "pka" - qcom,sdm845-mss-pil: - must be "iface", "bus", "mem", "xo", "gpll0_mss", - "snoc_axi", "mnoc_axi", "prng" - -- resets: - Usage: required - Value type: - Definition: reference to the reset-controller for the modem sub-system - reference to the list of 3 reset-controllers for the - wcss sub-system - reference to the list of 2 reset-controllers for the modem - sub-system on SC7180, SC7280, SDM845 SoCs - -- reset-names: - Usage: required - Value type: - Definition: must be "mss_restart" for the modem sub-system - must be "wcss_aon_reset", "wcss_reset", "wcss_q6_reset" - for the wcss sub-system - must be "mss_restart", "pdc_reset" for the modem - sub-system on SC7180, SC7280, SDM845 SoCs - -For devices where the mba and mpss sub-nodes are not specified, mba/mpss region -should be referenced as follows: -- memory-region: - Usage: required - Value type: - Definition: reference to the reserved-memory for the mba region followed - by the mpss region - -For the compatible strings below the following supplies are required: - "qcom,q6v5-pil" - "qcom,msm8916-mss-pil", -- cx-supply: (deprecated, use power domain instead) -- mx-supply: (deprecated, use power domain instead) -- pll-supply: - Usage: required - Value type: - Definition: reference to the regulators to be held on behalf of the - booting of the Hexagon core - -For the compatible string below the following supplies are required: - "qcom,msm8974-mss-pil" -- cx-supply: (deprecated, use power domain instead) -- mss-supply: -- mx-supply: (deprecated, use power domain instead) -- pll-supply: - Usage: required - Value type: - Definition: reference to the regulators to be held on behalf of the - booting of the Hexagon core - -For the compatible string below the following supplies are required: - "qcom,qcs404-wcss-pil" -- cx-supply: - Usage: required - Value type: - Definition: reference to the regulators to be held on behalf of the - booting of the Hexagon core - -For the compatible string below the following supplies are required: - "qcom,msm8996-mss-pil" -- pll-supply: - Usage: required - Value type: - Definition: reference to the regulators to be held on behalf of the - booting of the Hexagon core - -- power-domains: - Usage: required - Value type: - Definition: reference to power-domains that match power-domain-names - -- power-domain-names: - Usage: required - Value type: - Definition: The power-domains needed depend on the compatible string: - qcom,ipq8074-wcss-pil: - no power-domain names required - qcom,q6v5-pil: - qcom,msm8916-mss-pil: - qcom,msm8974-mss-pil: - qcom,msm8996-mss-pil: - qcom,msm8998-mss-pil: - must be "cx", "mx" - qcom,sc7180-mss-pil: - must be "cx", "mx", "mss" - qcom,sc7280-mss-pil: - must be "cx", "mss" - qcom,sdm845-mss-pil: - must be "cx", "mx", "mss" - -- qcom,qmp: - Usage: optional - Value type: - Definition: reference to the AOSS side-channel message RAM. - -- qcom,smem-states: - Usage: required - Value type: - Definition: reference to the smem state for requesting the Hexagon to - shut down - -- qcom,smem-state-names: - Usage: required - Value type: - Definition: must be "stop" - -- qcom,halt-regs: - Usage: required - Value type: - Definition: a phandle reference to a syscon representing TCSR followed - by the three offsets within syscon for q6, modem and nc - halt registers. - a phandle reference to a syscon representing TCSR followed - by the four offsets within syscon for q6, modem, nc and vq6 - halt registers on SC7280 SoCs. - -For the compatible strings below the following phandle references are required: - "qcom,sc7180-mss-pil" -- qcom,spare-regs: - Usage: required - Value type: - Definition: a phandle reference to a syscon representing TCSR followed - by the offset within syscon for conn_box_spare0 register - used by the modem sub-system running on SC7180 SoC. - -For the compatible strings below the following phandle references are required: - "qcom,sc7280-mss-pil" -- qcom,ext-regs: - Usage: required - Value type: - Definition: two phandle references to syscons representing TCSR_REG and - TCSR register space followed by the two offsets within the syscon - to force_clk_en/rscc_disable and axim1_clk_off/crypto_clk_off - registers respectively. - -- qcom,qaccept-regs: - Usage: required - Value type: - Definition: a phandle reference to a syscon representing TCSR followed - by the three offsets within syscon for mdm, cx and axi - qaccept registers used by the modem sub-system running on - SC7280 SoC. - -The Hexagon node must contain iommus property as described in ../iommu/iommu.txt -on platforms which do not have TrustZone. - -= SUBNODES: -The Hexagon node must contain two subnodes, named "mba" and "mpss" representing -the memory regions used by the Hexagon firmware. Each sub-node must contain: - -- memory-region: - Usage: required - Value type: - Definition: reference to the reserved-memory for the region - -The Hexagon node may also have an subnode named either "smd-edge" or -"glink-edge" that describes the communication edge, channels and devices -related to the Hexagon. See ../soc/qcom/qcom,smd.txt and -../soc/qcom/qcom,glink.txt for details on how to describe these. - -= EXAMPLE -The following example describes the resources needed to boot control the -Hexagon, as it is found on MSM8974 boards. - - modem-rproc@fc880000 { - compatible = "qcom,q6v5-pil"; - reg = <0xfc880000 0x100>, - <0xfc820000 0x020>; - reg-names = "qdsp6", "rmb"; - - interrupts-extended = <&intc 0 24 1>, - <&modem_smp2p_in 0 0>, - <&modem_smp2p_in 1 0>, - <&modem_smp2p_in 2 0>, - <&modem_smp2p_in 3 0>; - interrupt-names = "wdog", - "fatal", - "ready", - "handover", - "stop-ack"; - - clocks = <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>, - <&gcc GCC_MSS_CFG_AHB_CLK>, - <&gcc GCC_BOOT_ROM_AHB_CLK>; - clock-names = "iface", "bus", "mem"; - - qcom,halt-regs = <&tcsr_mutex_block 0x1180 0x1200 0x1280>; - - resets = <&gcc GCC_MSS_RESTART>; - reset-names = "mss_restart"; - - cx-supply = <&pm8841_s2>; - mss-supply = <&pm8841_s3>; - mx-supply = <&pm8841_s1>; - pll-supply = <&pm8941_l12>; - - qcom,smem-states = <&modem_smp2p_out 0>; - qcom,smem-state-names = "stop"; - - mba { - memory-region = <&mba_region>; - }; - - mpss { - memory-region = <&mpss_region>; - }; - }; diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,q6v5.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,q6v5.yaml new file mode 100644 index 000000000000..1c67c6cbf417 --- /dev/null +++ b/Documentation/devicetree/bindings/remoteproc/qcom,q6v5.yaml @@ -0,0 +1,702 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/remoteproc/qcom,q6v5.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Qualcomm Hexagon Peripheral Image Loader + +maintainers: + - Bjorn Andersson + +description: + This document defines the binding for a component that loads and boots firmware + on the Qualcomm Hexagon core. + +properties: + compatible: + # Special case, because older platforms like MSM8916 use both compatibles together + minItems: 1 + maxItems: 2 + oneOf: + - items: + - enum: + - qcom,msm8916-mss-pil + - enum: + - qcom,q6v5-pil + - items: + - enum: + - qcom,q6v5-pil + - qcom,ipq8074-wcss-pil + - qcom,qcs404-wcss-pil + - qcom,msm8916-mss-pil + - qcom,msm8974-mss-pil + - qcom,msm8996-mss-pil + - qcom,msm8998-mss-pil + - qcom,sc7180-mss-pil + - qcom,sc7280-mss-pil + - qcom,sdm845-mss-pil + + reg: + description: must specify the base address and size of the qdsp6 and rmb + register blocks + maxItems: 2 + + reg-names: + items: + - const: qdsp6 + - const: rmb + + interrupts-extended: + minItems: 5 + maxItems: 6 + + interrupt-names: + minItems: 5 + maxItems: 6 + + firmware-name: + $ref: /schemas/types.yaml#/definitions/string-array + description: List the relative firmware image paths for the mba and + modem. They are used for booting and authenticating the Hexagon core. + maxItems: 2 + + clocks: + minItems: 4 + maxItems: 10 + + clock-names: + minItems: 4 + maxItems: 10 + + resets: + description: Reference to the reset-controllwer for the modem subsystem + minItems: 1 + maxItems: 3 + + reset-names: + minItems: 1 + maxItems: 3 + + memory-region: + maxItems: 1 + description: Reference to the reserved-memory for the mba region followed + by the mpss region. Required if the mba and mpss sub-nodes are not + specified. + + cx-supply: + description: Phandle to the CX regulator + + mx-supply: + description: Phandle to the MX regulator + + pll-supply: + description: Phandle to the PLL regulator, to be held on behalf of the + booting Hexagon core + + mss-supply: + description: Phandle to the mss regulator, to be held on behalf of the + booting Hexagon core + + power-domains: + minItems: 1 + maxItems: 4 + + power-domain-names: + minItems: 1 + maxItems: 4 + + qcom,qmp: + $ref: /schemas/types.yaml#/definitions/phandle + description: Reference to the AOSS side-channel message RAM. + + qcom,smem-states: + $ref: /schemas/types.yaml#/definitions/phandle-array + description: States used by the AP to signal the Hexagon core + items: + - description: Stop the modem + + qcom,smem-state-names: + $ref: /schemas/types.yaml#/definitions/string-array + description: The names of the state bits used for SMP2P output + items: + - const: stop + + qcom,halt-regs: + $ref: /schemas/types.yaml#/definitions/phandle-array + description: + Phandle reference to a syscon representing TCSR followed by the + three offsets within syscon for q6, modem and nc halt registers. + + qcom,spare-regs: + $ref: /schemas/types.yaml#/definitions/phandle-array + description: + A phandle reference to a syscon representing TCSR followed by the + offset within syscon for conn_box_spare0 register used by the modem + sub-system running on SC7180 SoC. + + qcom,ext-regs: + $ref: /schemas/types.yaml#/definitions/phandle-array + description: + Two phandle references to syscons representing TCSR_REG and TCSR + register space followed by the two offsets within the syscon to + force_clk_en/rscc_disable and axim1_clk_off/crypto_clk_off registers + respectively. + + qcom,qaccept-regs: + $ref: /schemas/types.yaml#/definitions/phandle-array + description: + A phandle reference to a syscon representing TCSR followed by the three + offsets within syscon for mdm, cx and axi qaccept registers used by the + modem sub-system running on SC7280 SoC. + + iommus: + description: + Only required on platforms that do not have TrustZone. + + smd-edge: + type: object + description: + Qualcomm Shared Memory subnode which represents communication edge, + channels and devices related to the ADSP. + + glink-edge: + type: object + description: + Qualcomm G-Link subnode which represents communication edge, channels + and devices related to the ADSP. + + mba: + type: object + properties: + memory-region: + maxItems: 1 + + required: + - memory-region + + mpss: + type: object + properties: + memory-region: + maxItems: 1 + + required: + - memory-region + +required: + - compatible + - clocks + - clock-names + - interrupts-extended + - interrupt-names + - qcom,smem-states + - qcom,smem-state-names + +additionalProperties: false + +allOf: + - if: + properties: + compatible: + contains: + enum: + - qcom,ipq8074-wcss-pil + then: + properties: + clocks: false + clock-names: false + + - if: + properties: + compatible: + contains: + enum: + - qcom,qcs404-wcss-pil + then: + properties: + clocks: + items: + - description: GCC_AHBS_CBCR clock + - description: GCC_AXIM_CBCR clock + - description: LCC_AHBFABRIC_CBC clock + - description: TCSR_LCC_CBC clock + - description: LCC_AHBS_CBC clock + - description: LCC_TCM_SLAVE_CBC clock + - description: LCC_ABHM_CBC clock + - description: LCC_AXIM_CBC clock + - description: LCC_BCR_SLEEP clock + - description: XO clock + clock-names: + items: + - const: gcc_ahbs_cbcr + - const: gcc_axim_cbcr + - const: lcc_ahbfabric_cbc + - const: tcsr_lcc_cbc + - const: lcc_abhs_cbc + - const: lcc_tcm_slave_cbc + - const: lcc_abhm_cbc + - const: lcc_axim_cbc + - const: lcc_bcr_sleep + - const: xo + + - if: + properties: + compatible: + contains: + enum: + - qcom,q6v5-pil + - qcom,msm8916-mss-pil + - qcom,msm8974-mss-pil + then: + properties: + clocks: + items: + - description: Interface clock + - description: Bus clock + - description: Memory clock + - description: XO clock + clock-names: + items: + - const: iface + - const: bus + - const: mem + - const: xo + + - if: + properties: + compatible: + contains: + enum: + - qcom,msm8996-mss-pil + then: + properties: + clocks: + items: + - description: Interface clock + - description: Bus clock + - description: Memory clock + - description: GPLL0_MSS clock + - description: SNOC_AXI clock + - description: MNOC_AXI clock + - description: PNOC clock + - description: QDSS clock + - description: XO clock + clock-names: + items: + - const: iface + - const: bus + - const: mem + - const: gpll0_mss + - const: snoc_axi + - const: mnoc_axi + - const: pnoc + - const: qdss + - const: xo + + - if: + properties: + compatible: + contains: + enum: + - qcom,msm8998-mss-pil + then: + properties: + clocks: + items: + - description: Interface clock + - description: Bus clock + - description: Memory clock + - description: GPLL0_MSS clock + - description: SNOC_AXI clock + - description: MNOC_AXI clock + - description: QDSS clock + - description: XO clock + clock-names: + items: + - const: iface + - const: bus + - const: mem + - const: gpll0_mss + - const: snoc_axi + - const: mnoc_axi + - const: qdss + - const: xo + + - if: + properties: + compatible: + contains: + enum: + - qcom,sc7180-mss-pil + then: + properties: + clocks: + items: + - description: Interface clock + - description: Bus clock + - description: NAV clock + - description: SNOC_AXI clock + - description: MNOC_AXI clock + - description: XO clock + clock-names: + items: + - const: iface + - const: bus + - const: nav + - const: snoc_axi + - const: mnoc_axi + - const: xo + + - if: + properties: + compatible: + contains: + enum: + - qcom,sc7280-mss-pil + then: + properties: + clocks: + items: + - description: Interface clock + - description: Offline clock + - description: SNOC_AXI clock + - description: PKA clock + - description: XO clock + clock-names: + items: + - const: iface + - const: offline + - const: snoc_axi + - const: pka + - const: xo + + - if: + properties: + compatible: + contains: + enum: + - qcom,sdm845-mss-pil + then: + properties: + clocks: + items: + - description: Interface clock + - description: Bus clock + - description: Memory clock + - description: GPLL0_MSS clock + - description: SNOC_AXI clock + - description: MNOC_AXI clock + - description: PRNG clock + - description: XO clock + clock-names: + items: + - const: iface + - const: bus + - const: mem + - const: gpll0_mss + - const: snoc_axi + - const: mnoc_axi + - const: prng + - const: xo + + - if: + properties: + compatible: + contains: + enum: + - qcom,q6v5-pil + - qcom,ipq8074-wcss-pil + - qcom,qcs404-wcss-pil + - qcom,msm8916-mss-pil + - qcom,msm8974-mss-pil + then: + properties: + interrupts-extended: + items: + - description: Watchdog interrupt + - description: Fatal interrupt + - description: Ready interrupt + - description: Handover interrupt + - description: Stop acknowledge interrupt + interrupt-names: + items: + - const: wdog + - const: fatal + - const: ready + - const: handover + - const: stop-ack + + - if: + properties: + compatible: + contains: + enum: + - qcom,msm8996-mss-pil + - qcom,msm8998-mss-pil + - qcom,sc7180-mss-pil + - qcom,sc7280-mss-pil + - qcom,sdm845-mss-pil + then: + properties: + interrupts-extended: + items: + - description: Watchdog interrupt + - description: Fatal interrupt + - description: Ready interrupt + - description: Handover interrupt + - description: Stop acknowledge interrupt + - description: Shutdown acknowledge interrupt + interrupt-names: + items: + - const: wdog + - const: fatal + - const: ready + - const: handover + - const: stop-ack + - const: shutdown-ack + + - if: + properties: + compatible: + enum: + - const: qcom,q6v5-pil + - const: qcom,msm8916-mss-pil + - const: qcom,msm8974-mss-pil + then: + properties: + cx-supply: + deprecated: true + mx-supply: + deprecated: true + + required: + - pll-supply + + - if: + properties: + compatible: + enum: + - qcom,msm8916-mss-pil + - qcom,msm8974-mss-pil + - qcom,msm8996-mss-pil + - qcom,msm8998-mss-pil + then: + properties: + power-domains: + items: + - description: CX power domain + - description: MX power domain + power-domain-names: + items: + - const: cx + - const: mx + + required: + - power-domains + - power-domain-names + + - if: + properties: + compatible: + enum: + - const: qcom,msm8996-mss-pil + then: + properties: + cx-supply: false + mx-supply: false + + required: + - pll-supply + + - if: + properties: + compatible: + enum: + - const: qcom,qcs404-wcss-pil + then: + required: + - cx-supply + + - if: + properties: + compatible: + contains: + enum: + - qcom,sdm845-mss-pil + - qcom,sc7180-mss-pil + then: + properties: + power-domains: + items: + - description: CX power domain + - description: MX power domain + - description: MSS power domain + power-domain-names: + items: + - const: cx + - const: mx + - const: mss + + required: + - power-domains + - power-domain-names + + - if: + properties: + compatible: + contains: + enum: + - qcom,sc7280-mss-pil + then: + properties: + power-domains: + items: + - description: CX power domain + - description: MSS power domain + power-domain-names: + items: + - const: cx + - const: mss + + required: + - power-domains + - power-domain-names + - qcom,ext-regs + - qcom,qaccept-regs + + - if: + properties: + compatible: + contains: + enum: + - qcom,q6v5-pil + - qcom,msm8916-mss-pil + - qcom,msm8974-mss-pil + - qcom,msm8996-mss-pil + - qcom,msm8998-mss-pil + then: + properties: + resets: + items: + - description: MSS reset + reset-names: + items: + - const: mss_restart + + - if: + properties: + compatible: + contains: + enum: + - qcom,ipq8074-wcss-pil + - qcom,qcs404-wcss-pil + then: + properties: + resets: + items: + - description: WCSS Always On restart + - description: WCSS reset + - description: WCSS Q6 reset + reset-names: + items: + - const: wcss_aon_restart + - const: wcss_reset + - const: wcss_q6_reset + + - if: + properties: + compatible: + contains: + enum: + - qcom,sc7180-mss-pil + - qcom,sc7280-mss-pil + - qcom,sdm845-mss-pil + then: + properties: + resets: + items: + - description: MSS restart + - description: PDC reset + reset-names: + items: + - const: mss_restart + - const: pdc_reset + + - if: + properties: + compatible: + contains: + enum: + - qcom,q6v5-pil + - qcom,ipq8074-wcss-pil + - qcom,qcs404-wcss-pil + - qcom,msm8916-mss-pil + - qcom,msm8974-mss-pil + - qcom,msm8996-mss-pil + - qcom,msm8998-mss-pil + then: + properties: + qcom,qmp: false + iommus: false + +examples: + - | + #include + #include + #include + #include + #include + modem-rproc@fc880000 { + compatible = "qcom,q6v5-pil"; + reg = <0xfc880000 0x100>, + <0xfc820000 0x020>; + reg-names = "qdsp6", "rmb"; + + interrupts-extended = <&intc GIC_SPI 24 IRQ_TYPE_EDGE_RISING>, + <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>, + <&modem_smp2p_in 1 IRQ_TYPE_EDGE_RISING>, + <&modem_smp2p_in 2 IRQ_TYPE_EDGE_RISING>, + <&modem_smp2p_in 3 IRQ_TYPE_EDGE_RISING>; + interrupt-names = "wdog", + "fatal", + "ready", + "handover", + "stop-ack"; + + clocks = <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>, + <&gcc GCC_MSS_CFG_AHB_CLK>, + <&gcc GCC_BOOT_ROM_AHB_CLK>, + <&xo_board>; + clock-names = "iface", "bus", "mem", "xo"; + + qcom,halt-regs = <&tcsr_mutex_block 0x1180 0x1200 0x1280>; + + resets = <&gcc GCC_MSS_RESTART>; + reset-names = "mss_restart"; + + cx-supply = <&pm8841_s2>; + mss-supply = <&pm8841_s3>; + mx-supply = <&pm8841_s1>; + pll-supply = <&pm8941_l12>; + + qcom,smem-states = <&modem_smp2p_out 0>; + qcom,smem-state-names = "stop"; + + mba { + memory-region = <&mba_region>; + }; + + mpss { + memory-region = <&mpss_region>; + }; + + smd-edge { + interrupts = ; + + qcom,ipc = <&apcs 8 12>; + qcom,smd-edge = <0>; + + label = "modem"; + }; + }; From patchwork Wed May 11 16:16:01 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sireesh Kodali X-Patchwork-Id: 571634 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 078DFC433F5 for ; Wed, 11 May 2022 16:18:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237109AbiEKQR6 (ORCPT ); Wed, 11 May 2022 12:17:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37302 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344526AbiEKQRI (ORCPT ); Wed, 11 May 2022 12:17:08 -0400 Received: from mail-pg1-x533.google.com (mail-pg1-x533.google.com [IPv6:2607:f8b0:4864:20::533]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4A0CD2C65F; Wed, 11 May 2022 09:16:58 -0700 (PDT) Received: by mail-pg1-x533.google.com with SMTP id a191so2219705pge.2; Wed, 11 May 2022 09:16:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=rIh+E3nj4ZucvsTWikm/zNRtjIM6XJcYz1RFNPDBCWk=; b=pKe5IPl9JxJ0F28WDZ8Rs7q9M09T1glWF2keFY/yF0wEnuz8uqbnx9145UbAcNZunj tRdCXrWDQk1tR0taCF+FvfX3gYJW0jtVtx5t0Iwv9E0u9aflrek1oOkncXLFPhqWWf/3 8xnwQqxSpSHiteWnjfsTCPhshTxfoUbmlWDHtAXht9D8MjATHdAu5bg9Iknm2cSpLrrz hVCciKoiHWb4gDFZFDcCiTd5D67L2dFQ0695jbp1kePc6GBYITLnuZNb2O1pvfRY2ayj NpcUGQgcOVSBROYgMefaswyb8GPo3BumkWxKJq86VKaFIjUQvEpIVlhtYgFpY+A+xPen 8n/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=rIh+E3nj4ZucvsTWikm/zNRtjIM6XJcYz1RFNPDBCWk=; b=3Qw8ymLi3erKp8V6sOxNa5tlYI5fW1AVDPTMisJ0LPLEk94x503c2E5JQbBVhBmv9M JJiSMC/mk57IflEMsDc+O2i9lBG6o9UNNRH+fSGThAXxTyGh18YIs8vyc9IXHJWJNJje QiS6fv+cmt2UVcALkgvyS5ECDyy8s8XUTOJ0FWjKjmhA1ZelVvP8xecnsMbxvwXkl9qQ MECJx5rJ6Xujl9x0ouvaCzAF2sVbCViqsiscjZ7AifbMKgVbvDMVL5zy8Dv6PEfjfn8i jmknsAJgOgKiVDWzG9HKX4rjs4ePwICyfp8vIBoFzz7ozAQVRYRGkpvx9iFHUhFdMznZ hvkw== X-Gm-Message-State: AOAM531Kde+8T9FQBfnvaenEpWgF+AuYtkopD9uQ9FhbgS/UzR9v4Qz/ DCAnICey2VBTnuZNaQM1d9EjLYnZKJ5mO6fg X-Google-Smtp-Source: ABdhPJxc44jVyPJPWlqlXL6RS8YDigdvrW2+6zf8UtC0DIAUADXr1EBGHtKbWqWOfQGXKosPHfhf0g== X-Received: by 2002:a63:9752:0:b0:3c6:5a7a:5bd6 with SMTP id d18-20020a639752000000b003c65a7a5bd6mr19901744pgo.390.1652285817617; Wed, 11 May 2022 09:16:57 -0700 (PDT) Received: from skynet-linux.local ([49.204.239.218]) by smtp.googlemail.com with ESMTPSA id x7-20020a17090a1f8700b001ded49491basm220322pja.2.2022.05.11.09.16.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 May 2022 09:16:57 -0700 (PDT) From: Sireesh Kodali To: linux-remoteproc@vger.kernel.org Cc: linux-arm-msm@vger.kernel.org, ~postmarketos/upstreaming@lists.sr.ht, bjorn.andersson@linaro.org, devicetree@vger.kernel.org, phone-devel@vger.kernel.org, linux-kernel@vger.kernel.org, Sireesh Kodali , Andy Gross , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Manivannan Sadhasivam Subject: [PATCH 8/9] dt-bindings: remoteproc: qcom: adsp: Add ADSP on MSM8953 Date: Wed, 11 May 2022 21:46:01 +0530 Message-Id: <20220511161602.117772-9-sireeshkodali1@gmail.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220511161602.117772-1-sireeshkodali1@gmail.com> References: <20220511161602.117772-1-sireeshkodali1@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Add support for booting the Audio DSP on the MSM8953 platform. This is used by SoCs like SDM450, SDM625, SDM626, APQ8053, etc. Since the configuration is the same on all SoCs, a single compatible string is used. Signed-off-by: Sireesh Kodali --- Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml index a4409c398193..0e70e49b4e53 100644 --- a/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml +++ b/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml @@ -17,6 +17,7 @@ properties: compatible: enum: - qcom,msm8974-adsp-pil + - qcom,msm8953-adsp-pil - qcom,msm8996-adsp-pil - qcom,msm8996-slpi-pil - qcom,msm8998-adsp-pas @@ -160,6 +161,7 @@ allOf: contains: enum: - qcom,msm8974-adsp-pil + - qcom,msm8953-adsp-pil - qcom,msm8996-adsp-pil - qcom,msm8996-slpi-pil - qcom,msm8998-adsp-pas @@ -275,6 +277,7 @@ allOf: contains: enum: - qcom,msm8974-adsp-pil + - qcom,msm8953-adsp-pil - qcom,msm8996-adsp-pil - qcom,msm8996-slpi-pil - qcom,msm8998-adsp-pas @@ -364,6 +367,7 @@ allOf: compatible: contains: enum: + - qcom,msm8953-adsp-pil - qcom,msm8996-adsp-pil - qcom,msm8998-adsp-pas then: @@ -547,6 +551,7 @@ allOf: contains: enum: - qcom,msm8974-adsp-pil + - qcom,msm8953-adsp-pil - qcom,msm8996-adsp-pil - qcom,msm8996-slpi-pil - qcom,msm8998-adsp-pas From patchwork Wed May 11 16:16:02 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sireesh Kodali X-Patchwork-Id: 571635 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 315C3C433FE for ; Wed, 11 May 2022 16:17:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344678AbiEKQRg (ORCPT ); Wed, 11 May 2022 12:17:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38636 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241166AbiEKQRQ (ORCPT ); Wed, 11 May 2022 12:17:16 -0400 Received: from mail-pj1-x102b.google.com (mail-pj1-x102b.google.com [IPv6:2607:f8b0:4864:20::102b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1D3E72CC8C; Wed, 11 May 2022 09:17:03 -0700 (PDT) Received: by mail-pj1-x102b.google.com with SMTP id a15-20020a17090ad80f00b001dc2e23ad84so5365847pjv.4; Wed, 11 May 2022 09:17:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ZBJKZIsVMsFKHOYwovHJla2knjXCDedlt+wjbXlZFEw=; b=QfFjHLv0s3dOvr2zX8dOoxKGo+oPkncDzpEXD5i/0R2k1Amvn/z/1pWMGEsJoYAQJt BAqC9FlB8PnmrjnzLtkhPgXjFKEY1h7dq21UmiUakxJyR3iKN+mCbRNeAxppdKwQlOrq EkAroyPY00i4B31fMUvhjvx5H9B54O2E50vhU79xHy/BM9qb7LVD/H9q5HifjewbW7i+ PwR+qGAZsjVYXOME0OY0l3n1yXwbIJ/RVtHIBFMnDZ1OeGYJ5ws13n0wCxdsRIJB6Ofs ui9fQOfhM5FQHkgKGMKmfVyuvPCxpVbzoOmwkqwMsExDTnZmp3CBswHVEQbNDNIpVnSG 42bQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ZBJKZIsVMsFKHOYwovHJla2knjXCDedlt+wjbXlZFEw=; b=tZ08RvklxBeqLjRh0vxE9RlKVRfk3eRzr4cgmDH1GMKhv8HTVAnBB4JfX3TG1igRKY JWMujM+SOCY+jRaT1ticpH3dctaJCnKZo2ysKWxTHy+AO984e5aV6X4QoRGsUM9acqcS v86yALsc09HpDeZMWpQleiXzmQMbMoRQBYGS30i6NY86H3Q8rczYm0s1RB50l2mE+BFw KuTFAkTfTvPiUjnD8p60cTEiEH3HLqZsdtsOs62alfxg0pm33M000x8ZHS4p0R3dmxhl +1XtCotorbBDDN2ESjA4NxDM9CQRQxwisBDAw0eWV02tLbiUsskTq5K7T95K5VCrCaOB tb6Q== X-Gm-Message-State: AOAM531TpSTgebKmNh8UWWN8EeRRLYuaamjOtyVTq1GKBwV5OYFFJnDO ei/7jny1uuOaT0VjI5BRtIR786FsgWvdyn6h X-Google-Smtp-Source: ABdhPJwxI08p83XE/Dos9iEQkLfNw4eXNlmTKOWVJXbcZ4PNRiJ9Pm5Tdd7F7r1+vZzTyCJ4FWBIng== X-Received: by 2002:a17:90a:c08a:b0:1d9:88de:d192 with SMTP id o10-20020a17090ac08a00b001d988ded192mr6165192pjs.8.1652285822231; Wed, 11 May 2022 09:17:02 -0700 (PDT) Received: from skynet-linux.local ([49.204.239.218]) by smtp.googlemail.com with ESMTPSA id x7-20020a17090a1f8700b001ded49491basm220322pja.2.2022.05.11.09.16.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 May 2022 09:17:01 -0700 (PDT) From: Sireesh Kodali To: linux-remoteproc@vger.kernel.org Cc: linux-arm-msm@vger.kernel.org, ~postmarketos/upstreaming@lists.sr.ht, bjorn.andersson@linaro.org, devicetree@vger.kernel.org, phone-devel@vger.kernel.org, linux-kernel@vger.kernel.org, Sireesh Kodali , Andy Gross , Rob Herring , Krzysztof Kozlowski Subject: [PATCH 9/9] arm64: dts: qcom: msm8953: Add remote processor nodes Date: Wed, 11 May 2022 21:46:02 +0530 Message-Id: <20220511161602.117772-10-sireeshkodali1@gmail.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220511161602.117772-1-sireeshkodali1@gmail.com> References: <20220511161602.117772-1-sireeshkodali1@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org This commit adds the modem (q6v5_mss), WiFi (wcnss-pil) and audio DSP (q6v5_pas) remote processor nodes for the MSM8953 platform. It also adds the coresponding SMP2P, SMSM and pinctrl nodes that are needed by these remote processors. Signed-off-by: Sireesh Kodali --- arch/arm64/boot/dts/qcom/msm8953.dtsi | 378 ++++++++++++++++++++++++++ 1 file changed, 378 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/msm8953.dtsi b/arch/arm64/boot/dts/qcom/msm8953.dtsi index 431228faacdd..04e285e442ff 100644 --- a/arch/arm64/boot/dts/qcom/msm8953.dtsi +++ b/arch/arm64/boot/dts/qcom/msm8953.dtsi @@ -2,9 +2,13 @@ /* Copyright (c) 2022, The Linux Foundation. All rights reserved. */ #include +#include #include #include #include +#include +#include +#include #include / { @@ -384,6 +388,80 @@ rpmpd_opp_turbo: opp9 { }; }; + modem-smp2p { + compatible = "qcom,smp2p"; + qcom,smem = <435>, <428>; + + interrupts = ; + + qcom,ipc = <&apcs 8 14>; + + qcom,local-pid = <0>; + qcom,remote-pid = <1>; + + modem_smp2p_out: master-kernel { + qcom,entry-name = "master-kernel"; + + #qcom,smem-state-cells = <1>; + }; + + modem_smp2p_in: slave-kernel { + qcom,entry-name = "slave-kernel"; + + interrupt-controller; + #interrupt-cells = <2>; + }; + }; + + adsp-smp2p { + compatible = "qcom,smp2p"; + qcom,smem = <443>, <429>; + + interrupts = ; + + mboxes = <&apcs 10>; + + qcom,local-pid = <0>; + qcom,remote-pid = <2>; + + smp2p_adsp_out: master-kernel { + qcom,entry-name = "master-kernel"; + #qcom,smem-state-cells = <1>; + }; + + smp2p_adsp_in: slave-kernel { + qcom,entry-name = "slave-kernel"; + + interrupt-controller; + #interrupt-cells = <2>; + }; + }; + + wcnss-smp2p { + compatible = "qcom,smp2p"; + qcom,smem = <451>, <431>; + + interrupts = ; + + qcom,ipc = <&apcs 8 18>; + + qcom,local-pid = <0>; + qcom,remote-pid = <4>; + + wcnss_smp2p_out: master-kernel { + qcom,entry-name = "master-kernel"; + + #qcom,smem-state-cells = <1>; + }; + + wcnss_smp2p_in: slave-kernel { + qcom,entry-name = "slave-kernel"; + + interrupt-controller; + #interrupt-cells = <2>; + }; + }; + smsm { compatible = "qcom,smsm"; @@ -398,6 +476,22 @@ apps_smsm: apps@0 { #qcom,smem-state-cells = <1>; }; + + hexagon_smsm: hexagon@1 { + reg = <1>; + interrupts = ; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + wcnss_smsm: wcnss@6 { + reg = <6>; + interrupts = ; + + interrupt-controller; + #interrupt-cells = <2>; + }; }; soc: soc@0 { @@ -688,6 +782,59 @@ i2c_8_sleep: i2c-8-sleep-pins { drive-strength = <2>; bias-disable; }; + + wcnss_default: wcnss-default-pins { + wcss_wlan2 { + pins = "gpio76"; + function = "wcss_wlan2"; + }; + wcss_wlan1 { + pins = "gpio77"; + function = "wcss_wlan1"; + }; + wcss_wlan0 { + pins = "gpio78"; + function = "wcss_wlan0"; + }; + wcss_wlan { + pins = "gpio79", "gpio80"; + function = "wcss_wlan"; + }; + + pinconf { + pins = "gpio76", "gpio77", "gpio78", + "gpio79", "gpio80"; + drive-strength = <6>; + bias-pull-up; + }; + }; + + wcnss_sleep: wcnss-sleep-pins { + wcss_wlan2 { + pins = "gpio76"; + function = "wcss_wlan2"; + }; + wcss_wlan1 { + pins = "gpio77"; + function = "wcss_wlan1"; + }; + wcss_wlan0 { + pins = "gpio78"; + function = "wcss_wlan0"; + }; + wcss_wlan { + pins = "gpio79", "gpio80"; + function = "wcss_wlan"; + }; + + pinconf { + pins = "gpio76", "gpio77", + "gpio78", "gpio79", + "gpio80"; + drive-strength = <2>; + bias-pull-down; + }; + }; }; gcc: clock-controller@1800000 { @@ -745,6 +892,59 @@ spmi_bus: spmi@200f000 { #size-cells = <0>; }; + modem: remoteproc@4080000 { + compatible = "qcom,msm8953-mss-pil"; + reg = <0x4080000 0x100>, + <0x4020000 0x040>; + + reg-names = "qdsp6", "rmb"; + + interrupts-extended = <&intc 0 24 1>, + <&modem_smp2p_in 0 0>, + <&modem_smp2p_in 1 0>, + <&modem_smp2p_in 2 0>, + <&modem_smp2p_in 3 0>; + interrupt-names = "wdog", "fatal", "ready", + "handover", "stop-ack"; + + clocks = <&gcc GCC_MSS_CFG_AHB_CLK>, + <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>, + <&gcc GCC_BOOT_ROM_AHB_CLK>, + <&xo_board>; + clock-names = "iface", "bus", "mem", "xo"; + + power-domains = <&rpmpd MSM8953_VDDCX>, <&rpmpd MSM8953_VDDMX>; + power-domain-names = "cx", "mx"; + + qcom,smem-states = <&modem_smp2p_out 0>; + qcom,smem-state-names = "stop"; + + resets = <&gcc GCC_MSS_BCR>; + reset-names = "mss_restart"; + + qcom,halt-regs = <&tcsr 0x18000 0x19000 0x1a000>; + + status = "okay"; + + mba { + memory-region = <&mba_mem>; + }; + + mpss { + memory-region = <&mpss_mem>; + }; + + smd-edge { + interrupts = ; + + qcom,smd-edge = <0>; + qcom,ipc = <&apcs 8 12>; + qcom,remote-pid = <1>; + + label = "modem"; + }; + }; + usb3: usb@70f8800 { compatible = "qcom,msm8953-dwc3", "qcom,dwc3"; reg = <0x70f8800 0x400>; @@ -1057,6 +1257,74 @@ i2c_8: i2c@7af8000 { status = "disabled"; }; + pronto: remoteproc@a21b000 { + compatible = "qcom,pronto-v3-pil", "qcom,pronto"; + reg = <0xa204000 0x2000>, + <0xa202000 0x1000>, + <0xa21b000 0x3000>; + reg-names = "ccu", "dxe", "pmu"; + + memory-region = <&wcnss_fw_mem>; + + interrupts-extended = <&intc 0 149 IRQ_TYPE_EDGE_RISING>, + <&wcnss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>, + <&wcnss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>, + <&wcnss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>, + <&wcnss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>; + interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack"; + + power-domains = <&rpmpd MSM8953_VDDCX>, <&rpmpd MSM8953_VDDMX>; + power-domain-names = "cx", "mx"; + + qcom,state = <&wcnss_smp2p_out 0>; + qcom,state-names = "stop"; + + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&wcnss_default>; + pinctrl-1 = <&wcnss_sleep>; + + status = "okay"; + + iris: iris { + compatible = "qcom,wcn3660b"; + + clocks = <&rpmcc RPM_SMD_RF_CLK2>; + clock-names = "xo"; + }; + + smd-edge { + interrupts = ; + + qcom,ipc = <&apcs 8 17>; + qcom,smd-edge = <6>; + qcom,remote-pid = <4>; + + label = "pronto"; + + wcnss { + compatible = "qcom,wcnss"; + qcom,smd-channels = "WCNSS_CTRL"; + + qcom,mmio = <&pronto>; + + bt { + compatible = "qcom,wcnss-bt"; + }; + + wifi { + compatible = "qcom,wcnss-wlan"; + + interrupts = , + ; + interrupt-names = "tx", "rx"; + + qcom,smem-states = <&apps_smsm 10>, <&apps_smsm 9>; + qcom,smem-state-names = "tx-enable", "tx-rings-empty"; + }; + }; + }; + }; + intc: interrupt-controller@b000000 { compatible = "qcom,msm-qgic2"; interrupt-controller; @@ -1070,6 +1338,116 @@ apcs: mailbox@b011000 { #mbox-cells = <1>; }; + lpass: remoteproc@c200000 { + compatible = "qcom,msm8953-adsp-pil"; + reg = <0xc200000 0x100>; + + interrupts-extended = <&intc 0 293 IRQ_TYPE_EDGE_RISING>, + <&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>, + <&smp2p_adsp_in 1 IRQ_TYPE_EDGE_RISING>, + <&smp2p_adsp_in 2 IRQ_TYPE_EDGE_RISING>, + <&smp2p_adsp_in 3 IRQ_TYPE_EDGE_RISING>; + interrupt-names = "wdog", "fatal", "ready", + "handover", "stop-ack"; + clocks = <&xo_board>; + clock-names = "xo"; + + power-domains = <&rpmpd MSM8953_VDDCX>; + power-domain-names = "cx"; + + memory-region = <&adsp_fw_mem>; + + qcom,smem-states = <&smp2p_adsp_out 0>; + qcom,smem-state-names = "stop"; + + smd-edge { + interrupts = ; + + label = "lpass"; + mboxes = <&apcs 8>; + qcom,smd-edge = <1>; + qcom,remote-pid = <2>; + #address-cells = <1>; + #size-cells = <0>; + + apr { + compatible = "qcom,apr-v2"; + qcom,smd-channels = "apr_audio_svc"; + qcom,apr-domain = ; + #address-cells = <1>; + #size-cells = <0>; + + q6core { + reg = ; + compatible = "qcom,q6core"; + }; + + q6afe: q6afe { + compatible = "qcom,q6afe"; + reg = ; + q6afedai: dais { + compatible = "qcom,q6afe-dais"; + #address-cells = <1>; + #size-cells = <0>; + #sound-dai-cells = <1>; + + dai@16 { + reg = ; + qcom,sd-lines = <0 1>; + }; + + dai@21 { + reg = ; + qcom,sd-lines = <0 1>; + }; + }; + q6afecc: clock-controller { + compatible = "qcom,q6afe-clocks"; + #clock-cells = <2>; + }; + }; + + q6asm: q6asm { + compatible = "qcom,q6asm"; + reg = ; + q6asmdai: dais { + compatible = "qcom,q6asm-dais"; + #address-cells = <1>; + #size-cells = <0>; + #sound-dai-cells = <1>; + + dai@0 { + reg = ; + }; + + dai@1 { + reg = ; + }; + + dai@2 { + reg = ; + }; + + dai@3 { + reg = ; + is-compress-dai; + }; + }; + }; + + q6adm: q6adm { + compatible = "qcom,q6adm"; + reg = ; + q6routing: routing { + compatible = "qcom,q6adm-routing"; + #sound-dai-cells = <0>; + }; + }; + }; + }; + + }; + timer@b120000 { compatible = "arm,armv7-timer-mem"; reg = <0xb120000 0x1000>;