From mboxrd@z Thu Jan 1 00:00:00 1970 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 CFD70C433FE for ; Fri, 25 Feb 2022 11:34:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240147AbiBYLek (ORCPT ); Fri, 25 Feb 2022 06:34:40 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49158 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236989AbiBYLek (ORCPT ); Fri, 25 Feb 2022 06:34:40 -0500 Received: from alexa-out.qualcomm.com (alexa-out.qualcomm.com [129.46.98.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 100511DD0FF; Fri, 25 Feb 2022 03:34:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; i=@quicinc.com; q=dns/txt; s=qcdkim; t=1645788848; x=1677324848; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to:content-transfer-encoding; bh=BdrGyltJtUlZ5LIwA5cwkZigYOj/ztYa0eMdV+3luBM=; b=Ogj/ei0aujMNe7ZWLOn0GUrs2MRi8yN6j+6vxOpJQnsJCWnuDMm6XOj3 t319453ewDdUe1DCyV5ZQKGx2bGxuI1jbrAZQs1addK577bAuP6FkcIs6 0bUUg6gtBFMW2EkoArUZbc+GJ2qDKpAVFnYsFQessVs+WxnxRJj76z5Gm M=; Received: from ironmsg07-lv.qualcomm.com ([10.47.202.151]) by alexa-out.qualcomm.com with ESMTP; 25 Feb 2022 03:34:08 -0800 X-QCInternal: smtphost Received: from nasanex01c.na.qualcomm.com ([10.47.97.222]) by ironmsg07-lv.qualcomm.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Feb 2022 03:34:07 -0800 Received: from nalasex01a.na.qualcomm.com (10.47.209.196) by nasanex01c.na.qualcomm.com (10.47.97.222) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.15; Fri, 25 Feb 2022 03:34:07 -0800 Received: from [10.216.32.247] (10.80.80.8) by nalasex01a.na.qualcomm.com (10.47.209.196) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.15; Fri, 25 Feb 2022 03:34:04 -0800 Message-ID: <678de1cc-9756-ef27-e071-d8c1d3a55d45@quicinc.com> Date: Fri, 25 Feb 2022 17:04:00 +0530 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.6.1 Subject: Re: [PATCH v2 19/19] dt: bindings: net: add bindings of WCN6750 for ath11k Content-Language: en-US To: Rob Herring CC: , , References: <1642337235-8618-1-git-send-email-quic_mpubbise@quicinc.com> <1642337235-8618-20-git-send-email-quic_mpubbise@quicinc.com> From: Manikanta Pubbisetty In-Reply-To: Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nalasex01a.na.qualcomm.com (10.47.209.196) Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org On 2/8/2022 3:43 AM, Rob Herring wrote: > On Sun, Jan 16, 2022 at 06:17:15PM +0530, Manikanta Pubbisetty wrote: >> Add WCN6750 wireless driver support, its based on ath11k driver. > > As mentioned, provide a better commit message answering 'why'? > >> >> Signed-off-by: Manikanta Pubbisetty >> --- >> .../bindings/net/wireless/qcom,ath11k.yaml | 365 +++++++++++++++------ >> 1 file changed, 257 insertions(+), 108 deletions(-) >> >> diff --git a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml >> index cdf7b87..dba1434 100644 >> --- a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml >> +++ b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml >> @@ -20,120 +20,21 @@ properties: >> enum: >> - qcom,ipq8074-wifi >> - qcom,ipq6018-wifi >> + - qcom,wcn6750-wifi >> >> reg: >> maxItems: 1 >> >> - interrupts: >> - items: >> - - description: misc-pulse1 interrupt events >> - - description: misc-latch interrupt events >> - - description: sw exception interrupt events >> - - description: watchdog interrupt events >> - - description: interrupt event for ring CE0 >> - - description: interrupt event for ring CE1 >> - - description: interrupt event for ring CE2 >> - - description: interrupt event for ring CE3 >> - - description: interrupt event for ring CE4 >> - - description: interrupt event for ring CE5 >> - - description: interrupt event for ring CE6 >> - - description: interrupt event for ring CE7 >> - - description: interrupt event for ring CE8 >> - - description: interrupt event for ring CE9 >> - - description: interrupt event for ring CE10 >> - - description: interrupt event for ring CE11 >> - - description: interrupt event for ring host2wbm-desc-feed >> - - description: interrupt event for ring host2reo-re-injection >> - - description: interrupt event for ring host2reo-command >> - - description: interrupt event for ring host2rxdma-monitor-ring3 >> - - description: interrupt event for ring host2rxdma-monitor-ring2 >> - - description: interrupt event for ring host2rxdma-monitor-ring1 >> - - description: interrupt event for ring reo2ost-exception >> - - description: interrupt event for ring wbm2host-rx-release >> - - description: interrupt event for ring reo2host-status >> - - description: interrupt event for ring reo2host-destination-ring4 >> - - description: interrupt event for ring reo2host-destination-ring3 >> - - description: interrupt event for ring reo2host-destination-ring2 >> - - description: interrupt event for ring reo2host-destination-ring1 >> - - description: interrupt event for ring rxdma2host-monitor-destination-mac3 >> - - description: interrupt event for ring rxdma2host-monitor-destination-mac2 >> - - description: interrupt event for ring rxdma2host-monitor-destination-mac1 >> - - description: interrupt event for ring ppdu-end-interrupts-mac3 >> - - description: interrupt event for ring ppdu-end-interrupts-mac2 >> - - description: interrupt event for ring ppdu-end-interrupts-mac1 >> - - description: interrupt event for ring rxdma2host-monitor-status-ring-mac3 >> - - description: interrupt event for ring rxdma2host-monitor-status-ring-mac2 >> - - description: interrupt event for ring rxdma2host-monitor-status-ring-mac1 >> - - description: interrupt event for ring host2rxdma-host-buf-ring-mac3 >> - - description: interrupt event for ring host2rxdma-host-buf-ring-mac2 >> - - description: interrupt event for ring host2rxdma-host-buf-ring-mac1 >> - - description: interrupt event for ring rxdma2host-destination-ring-mac3 >> - - description: interrupt event for ring rxdma2host-destination-ring-mac2 >> - - description: interrupt event for ring rxdma2host-destination-ring-mac1 >> - - description: interrupt event for ring host2tcl-input-ring4 >> - - description: interrupt event for ring host2tcl-input-ring3 >> - - description: interrupt event for ring host2tcl-input-ring2 >> - - description: interrupt event for ring host2tcl-input-ring1 >> - - description: interrupt event for ring wbm2host-tx-completions-ring3 >> - - description: interrupt event for ring wbm2host-tx-completions-ring2 >> - - description: interrupt event for ring wbm2host-tx-completions-ring1 >> - - description: interrupt event for ring tcl2host-status-ring >> + reg-names: >> + maxItems: 1 > > Need to define the names though for 1 entry, -names is kind of > pointless. Makes sense, I'll remove this in the next revision. > >> >> + interrupts: >> + minItems: 32 >> + maxItems: 52 >> >> interrupt-names: >> - items: >> - - const: misc-pulse1 >> - - const: misc-latch >> - - const: sw-exception >> - - const: watchdog >> - - const: ce0 >> - - const: ce1 >> - - const: ce2 >> - - const: ce3 >> - - const: ce4 >> - - const: ce5 >> - - const: ce6 >> - - const: ce7 >> - - const: ce8 >> - - const: ce9 >> - - const: ce10 >> - - const: ce11 >> - - const: host2wbm-desc-feed >> - - const: host2reo-re-injection >> - - const: host2reo-command >> - - const: host2rxdma-monitor-ring3 >> - - const: host2rxdma-monitor-ring2 >> - - const: host2rxdma-monitor-ring1 >> - - const: reo2ost-exception >> - - const: wbm2host-rx-release >> - - const: reo2host-status >> - - const: reo2host-destination-ring4 >> - - const: reo2host-destination-ring3 >> - - const: reo2host-destination-ring2 >> - - const: reo2host-destination-ring1 >> - - const: rxdma2host-monitor-destination-mac3 >> - - const: rxdma2host-monitor-destination-mac2 >> - - const: rxdma2host-monitor-destination-mac1 >> - - const: ppdu-end-interrupts-mac3 >> - - const: ppdu-end-interrupts-mac2 >> - - const: ppdu-end-interrupts-mac1 >> - - const: rxdma2host-monitor-status-ring-mac3 >> - - const: rxdma2host-monitor-status-ring-mac2 >> - - const: rxdma2host-monitor-status-ring-mac1 >> - - const: host2rxdma-host-buf-ring-mac3 >> - - const: host2rxdma-host-buf-ring-mac2 >> - - const: host2rxdma-host-buf-ring-mac1 >> - - const: rxdma2host-destination-ring-mac3 >> - - const: rxdma2host-destination-ring-mac2 >> - - const: rxdma2host-destination-ring-mac1 >> - - const: host2tcl-input-ring4 >> - - const: host2tcl-input-ring3 >> - - const: host2tcl-input-ring2 >> - - const: host2tcl-input-ring1 >> - - const: wbm2host-tx-completions-ring3 >> - - const: wbm2host-tx-completions-ring2 >> - - const: wbm2host-tx-completions-ring1 >> - - const: tcl2host-status-ring >> + minItems: 32 >> + maxItems: 52 > > But you didn't define any names for the new chip. > In the case of new chip, interrupts are not tied for a specific purpose unlike the case of IPQ8074/IPQ6018 where the driver searches an IRQ based on name. That is the reason why interrupt-names are omitted for the new chip. >> >> qcom,rproc: >> $ref: /schemas/types.yaml#/definitions/phandle >> @@ -156,15 +57,201 @@ properties: >> phandle to a node describing reserved memory (System RAM memory) >> used by ath11k firmware (see bindings/reserved-memory/reserved-memory.txt) >> >> + iommus: >> + maxItems: 1 >> + >> + wifi-firmware: >> + type: object >> + description: | >> + WCN6750 wifi node can contain one optional firmware subnode. >> + Firmware subnode is needed when the platform does not have TustZone. > > Trustzone > I'll change it. >> + properties: >> + iommus: >> + maxItems: 1 > > If this is the only property, then just make parent 'iommus' 1 or 2 > entries. > You mean something like this shown below? iommus: minItems: 1 maxItems: 2 wifi-firmware: type: object description: | WCN6750 wifi node can contain one optional firmware subnode. Firmware subnode is needed when the platform does not have Tustzone. required: - iommus >> + required: >> + - iommus >> + >> required: >> - compatible >> - reg >> - interrupts >> - - interrupt-names >> - qcom,rproc >> >> additionalProperties: false >> >> +allOf: >> + - if: >> + properties: >> + compatible: >> + contains: >> + enum: >> + - qcom,ipq8074-wifi >> + - qcom,ipq6018-wifi >> + then: >> + properties: >> + interrupts: >> + items: >> + - description: misc-pulse1 interrupt events >> + - description: misc-latch interrupt events >> + - description: sw exception interrupt events >> + - description: watchdog interrupt events >> + - description: interrupt event for ring CE0 >> + - description: interrupt event for ring CE1 >> + - description: interrupt event for ring CE2 >> + - description: interrupt event for ring CE3 >> + - description: interrupt event for ring CE4 >> + - description: interrupt event for ring CE5 >> + - description: interrupt event for ring CE6 >> + - description: interrupt event for ring CE7 >> + - description: interrupt event for ring CE8 >> + - description: interrupt event for ring CE9 >> + - description: interrupt event for ring CE10 >> + - description: interrupt event for ring CE11 >> + - description: interrupt event for ring host2wbm-desc-feed >> + - description: interrupt event for ring host2reo-re-injection >> + - description: interrupt event for ring host2reo-command >> + - description: interrupt event for ring host2rxdma-monitor-ring3 >> + - description: interrupt event for ring host2rxdma-monitor-ring2 >> + - description: interrupt event for ring host2rxdma-monitor-ring1 >> + - description: interrupt event for ring reo2ost-exception >> + - description: interrupt event for ring wbm2host-rx-release >> + - description: interrupt event for ring reo2host-status >> + - description: interrupt event for ring reo2host-destination-ring4 >> + - description: interrupt event for ring reo2host-destination-ring3 >> + - description: interrupt event for ring reo2host-destination-ring2 >> + - description: interrupt event for ring reo2host-destination-ring1 >> + - description: interrupt event for ring rxdma2host-monitor-destination-mac3 >> + - description: interrupt event for ring rxdma2host-monitor-destination-mac2 >> + - description: interrupt event for ring rxdma2host-monitor-destination-mac1 >> + - description: interrupt event for ring ppdu-end-interrupts-mac3 >> + - description: interrupt event for ring ppdu-end-interrupts-mac2 >> + - description: interrupt event for ring ppdu-end-interrupts-mac1 >> + - description: interrupt event for ring rxdma2host-monitor-status-ring-mac3 >> + - description: interrupt event for ring rxdma2host-monitor-status-ring-mac2 >> + - description: interrupt event for ring rxdma2host-monitor-status-ring-mac1 >> + - description: interrupt event for ring host2rxdma-host-buf-ring-mac3 >> + - description: interrupt event for ring host2rxdma-host-buf-ring-mac2 >> + - description: interrupt event for ring host2rxdma-host-buf-ring-mac1 >> + - description: interrupt event for ring rxdma2host-destination-ring-mac3 >> + - description: interrupt event for ring rxdma2host-destination-ring-mac2 >> + - description: interrupt event for ring rxdma2host-destination-ring-mac1 >> + - description: interrupt event for ring host2tcl-input-ring4 >> + - description: interrupt event for ring host2tcl-input-ring3 >> + - description: interrupt event for ring host2tcl-input-ring2 >> + - description: interrupt event for ring host2tcl-input-ring1 >> + - description: interrupt event for ring wbm2host-tx-completions-ring3 >> + - description: interrupt event for ring wbm2host-tx-completions-ring2 >> + - description: interrupt event for ring wbm2host-tx-completions-ring1 >> + - description: interrupt event for ring tcl2host-status-ring >> + interrupt-names: >> + items: >> + - const: misc-pulse1 >> + - const: misc-latch >> + - const: sw-exception >> + - const: watchdog >> + - const: ce0 >> + - const: ce1 >> + - const: ce2 >> + - const: ce3 >> + - const: ce4 >> + - const: ce5 >> + - const: ce6 >> + - const: ce7 >> + - const: ce8 >> + - const: ce9 >> + - const: ce10 >> + - const: ce11 >> + - const: host2wbm-desc-feed >> + - const: host2reo-re-injection >> + - const: host2reo-command >> + - const: host2rxdma-monitor-ring3 >> + - const: host2rxdma-monitor-ring2 >> + - const: host2rxdma-monitor-ring1 >> + - const: reo2ost-exception >> + - const: wbm2host-rx-release >> + - const: reo2host-status >> + - const: reo2host-destination-ring4 >> + - const: reo2host-destination-ring3 >> + - const: reo2host-destination-ring2 >> + - const: reo2host-destination-ring1 >> + - const: rxdma2host-monitor-destination-mac3 >> + - const: rxdma2host-monitor-destination-mac2 >> + - const: rxdma2host-monitor-destination-mac1 >> + - const: ppdu-end-interrupts-mac3 >> + - const: ppdu-end-interrupts-mac2 >> + - const: ppdu-end-interrupts-mac1 >> + - const: rxdma2host-monitor-status-ring-mac3 >> + - const: rxdma2host-monitor-status-ring-mac2 >> + - const: rxdma2host-monitor-status-ring-mac1 >> + - const: host2rxdma-host-buf-ring-mac3 >> + - const: host2rxdma-host-buf-ring-mac2 >> + - const: host2rxdma-host-buf-ring-mac1 >> + - const: rxdma2host-destination-ring-mac3 >> + - const: rxdma2host-destination-ring-mac2 >> + - const: rxdma2host-destination-ring-mac1 >> + - const: host2tcl-input-ring4 >> + - const: host2tcl-input-ring3 >> + - const: host2tcl-input-ring2 >> + - const: host2tcl-input-ring1 >> + - const: wbm2host-tx-completions-ring3 >> + - const: wbm2host-tx-completions-ring2 >> + - const: wbm2host-tx-completions-ring1 >> + - const: tcl2host-status-ring >> + >> + - if: >> + properties: >> + compatible: >> + contains: >> + enum: >> + - qcom,ipq8074-wifi >> + - qcom,ipq6018-wifi >> + then: >> + required: >> + - interrupt-names >> + >> + - if: >> + properties: >> + compatible: >> + contains: >> + enum: >> + - qcom,wcn6750-wifi >> + then: >> + properties: >> + interrupts: >> + items: >> + - description: interrupt event for ring CE1 >> + - description: interrupt event for ring CE2 >> + - description: interrupt event for ring CE3 >> + - description: interrupt event for ring CE4 >> + - description: interrupt event for ring CE5 >> + - description: interrupt event for ring CE6 >> + - description: interrupt event for ring CE7 >> + - description: interrupt event for ring CE8 >> + - description: interrupt event for ring CE9 >> + - description: interrupt event for ring CE10 >> + - description: interrupt event for ring DP1 >> + - description: interrupt event for ring DP2 >> + - description: interrupt event for ring DP3 >> + - description: interrupt event for ring DP4 >> + - description: interrupt event for ring DP5 >> + - description: interrupt event for ring DP6 >> + - description: interrupt event for ring DP7 >> + - description: interrupt event for ring DP8 >> + - description: interrupt event for ring DP9 >> + - description: interrupt event for ring DP10 >> + - description: interrupt event for ring DP11 >> + - description: interrupt event for ring DP12 >> + - description: interrupt event for ring DP13 >> + - description: interrupt event for ring DP14 >> + - description: interrupt event for ring DP15 >> + - description: interrupt event for ring DP16 >> + - description: interrupt event for ring DP17 >> + - description: interrupt event for ring DP18 >> + - description: interrupt event for ring DP19 >> + - description: interrupt event for ring DP20 >> + - description: interrupt event for ring DP21 >> + - description: interrupt event for ring DP22 >> + >> examples: >> - | >> >> @@ -309,3 +396,65 @@ examples: >> }; >> }; >> }; >> + >> + - | >> + #include >> + >> + reserved-memory { >> + #address-cells = <2>; >> + #size-cells = <2>; >> + >> + wlan_ce_mem: wlan_ce_mem@4cd000 { >> + no-map; >> + reg = <0x0 0x4cd000 0x0 0x1000>; >> + }; >> + >> + wlan_fw_mem: wlan_fw_mem@80c00000 { >> + no-map; >> + reg = <0x0 0x80c00000 0x0 0xc00000>; >> + }; >> + }; >> + >> + wifi: wifi@17a10040 { >> + compatible = "qcom,wcn6750-wifi"; >> + reg = <0x17A10040 0x0>; >> + reg-names = "msi_addr"; >> + iommus = <&apps_smmu 0x1C00 0x1>; >> + interrupts = , >> + , >> + , >> + , >> + , >> + , >> + , >> + , >> + , >> + , >> + , >> + , >> + , >> + , >> + , >> + , >> + , >> + , >> + , >> + , >> + , >> + , >> + , >> + , >> + , >> + , >> + , >> + , >> + , >> + , >> + , >> + ; >> + qcom,rproc = <&remoteproc_wpss>; >> + memory-region = <&wlan_fw_mem &wlan_ce_mem>; > > memory-region = <&wlan_fw_mem>, <&wlan_ce_mem>; > Okay. >> + wifi-firmware { >> + iommus = <&apps_smmu 0x1C02 0x1>; >> + }; >> + }; >> -- >> 2.7.4 >> >>