Received: by 2002:ab2:68c1:0:b0:1fd:9a81:d0e4 with SMTP id e1csp624798lqp; Sun, 9 Jun 2024 11:24:06 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCWGQSiXTc/85obFLV303czpWqBzF8I2dhVQ0+xDqRqg0LiJxefI5uQZEuyYGzyE/Agzfpe/q0DzIhZQ3y3UujGxAr3+EXTUm07P9bruCw== X-Google-Smtp-Source: AGHT+IHTsC+ALCzub9sVfrcePxsIVMpsGYMDIuh/SxjtA/GmoP2klVyJJjkdLLK0NtYbqqdw83+E X-Received: by 2002:a2e:96c4:0:b0:2ea:ea29:32ae with SMTP id 38308e7fff4ca-2eaea2933bamr35733221fa.23.1717957446164; Sun, 09 Jun 2024 11:24:06 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1717957446; cv=pass; d=google.com; s=arc-20160816; b=gQQ2QjB+ez/+fQJawrLZzxkkhKMQSi1woIB9H7xZWJU3e+nWPEBsspDA/cstC+XMsP LHqgCSHe19RFUhPrNCFj0WIbcT98mX4azrMFRbfyu8Bv2JSW1ELfIsWtTL7csH1KUOxQ qbcKDjJV+BOK9JDkj9QQ+Mps1vMkkvb9n3Z65AA9LI2tYo0pcMv6Ym/34CL6KINPzFbv h4lAWnOJwiRhpFFDO5JNW/y+ACTg1uHq+mpAuDmIg45eI0ANwEpNjiAAOrQLGGbmba9M 0vYPfOz3CQPueI0LCEDwJe9bpP+Logk0nUS+G+R6A9lkTqaJGnVxFpbQdP+7AHF9JM3T mKlQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:date:subject:cc:to :from:dkim-signature; bh=cSfvYvzBmYrUCQrsvZttd9uC1f9tZlj9u4TGkEIVRRQ=; fh=9wppj6BW2zCpqLo1B1NiqMqgGPPjKdl4VRttvf59pYE=; b=0d+5MAzgsqUM3phckY+Uf52MmGpK+U8tb8fK0UAFpdVf0tc6cKC1JkLc/faeiy+TtM SJ9abc+6yUdBips3LQpKgr47KluZycVdgcGz0ZBnLVI86Gpn9cIOTJJhiH+pPujT4Z5c CZjYTB064EBfANem1R3E6PtQFrYbwSvjqTIFyKNyPBnQaL2TY++KxNojJFt9FYo0DYrG UFJ6R0/kcpYGBVPQBwVBV1yXBMebdDBh5cZrGt51c/iKil/qiYbTvGJCenNSEJuwvki+ nelT1tIbSu0TGv34bYRaI7UliRvkp4bC6WMX75pAqx/MPVss9afBbbu3FPKVliBJQTMY UaHQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=BCgEWKD1; arc=pass (i=1 spf=pass spfdomain=ti.com dkim=pass dkdomain=ti.com dmarc=pass fromdomain=ti.com); spf=pass (google.com: domain of linux-wireless+bounces-8723-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-wireless+bounces-8723-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [2604:1380:4601:e00::3]) by mx.google.com with ESMTPS id 4fb4d7f45d1cf-57c748c226csi1180521a12.271.2024.06.09.11.24.06 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 09 Jun 2024 11:24:06 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-wireless+bounces-8723-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) client-ip=2604:1380:4601:e00::3; Authentication-Results: mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=BCgEWKD1; arc=pass (i=1 spf=pass spfdomain=ti.com dkim=pass dkdomain=ti.com dmarc=pass fromdomain=ti.com); spf=pass (google.com: domain of linux-wireless+bounces-8723-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-wireless+bounces-8723-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id D174C1F2125A for ; Sun, 9 Jun 2024 18:24:05 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 8D33D4D8A8; Sun, 9 Jun 2024 18:22:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ti.com header.i=@ti.com header.b="BCgEWKD1" X-Original-To: linux-wireless@vger.kernel.org Received: from lelv0142.ext.ti.com (lelv0142.ext.ti.com [198.47.23.249]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B32F74B5CD; Sun, 9 Jun 2024 18:22:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.47.23.249 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717957374; cv=none; b=J6wg9c3FqgVibvtp/h2M+yYwGZDD9W7NwgkV3mODeHIiSLhlpbtmDHi9JWgprP9L3wXlMV8bFdcmJAxLLzqskdBJUyB+lQWHowvVZ3++NRyLZ/tb/+BmFeHyh6GRXhStb945/MA8ktr2+D86fXwojh35zw16ZiJXHR8PJWL9dew= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717957374; c=relaxed/simple; bh=WrpG+zUjoRKTJSZLWRbH5k5+XZ/d1V3WILsLp9GG23c=; h=From:To:CC:Subject:Date:Message-ID:MIME-Version:Content-Type; b=BWC68EOZJUc1nKSIlJwp+VxI+IuuvHz7OJh8euSmdZnzggqrY4q1pHAOOOLByBsC2HwYrsaFRW8vm2JsOVy9F1R7PRW6MJxSKBNhORxEx0hX+u2ExLMf9niXHSM9q39UuynxSFhlIlf8vmPBpefek+IHf5ZnBT/m5XHEXcp3T+0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=ti.com; spf=pass smtp.mailfrom=ti.com; dkim=pass (1024-bit key) header.d=ti.com header.i=@ti.com header.b=BCgEWKD1; arc=none smtp.client-ip=198.47.23.249 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=ti.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ti.com Received: from fllv0034.itg.ti.com ([10.64.40.246]) by lelv0142.ext.ti.com (8.15.2/8.15.2) with ESMTP id 459IMV7d004343; Sun, 9 Jun 2024 13:22:31 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1717957351; bh=cSfvYvzBmYrUCQrsvZttd9uC1f9tZlj9u4TGkEIVRRQ=; h=From:To:CC:Subject:Date; b=BCgEWKD1jQqVdVSSaTwuAgmXOLz32UyZUP/kEzZP6ngBlJcvdAnGc2NQFmFHVxxqS UW4R+MqL1bTQoZbatsf8IIHSEIbaCh0qVzieb+4nv8fo8w28lKbmrdl1NxxTslt0JF tk6UcYjye4ONXd7rnQ26jlg2FSJnb/FsmG6MRN0s= Received: from DFLE114.ent.ti.com (dfle114.ent.ti.com [10.64.6.35]) by fllv0034.itg.ti.com (8.15.2/8.15.2) with ESMTPS id 459IMU9b053389 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Sun, 9 Jun 2024 13:22:31 -0500 Received: from DFLE111.ent.ti.com (10.64.6.32) by DFLE114.ent.ti.com (10.64.6.35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.23; Sun, 9 Jun 2024 13:22:30 -0500 Received: from lelvsmtp6.itg.ti.com (10.180.75.249) by DFLE111.ent.ti.com (10.64.6.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.23 via Frontend Transport; Sun, 9 Jun 2024 13:22:30 -0500 Received: from localhost (uda0389739.dhcp.ti.com [137.167.1.114]) by lelvsmtp6.itg.ti.com (8.15.2/8.15.2) with ESMTP id 459IMTgH034443; Sun, 9 Jun 2024 13:22:30 -0500 From: To: Sabeeh Khan , Kalle Valo , Johannes Berg , "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley CC: , , , , Michael Nemanov Subject: [PATCH v2 00/17] wifi: cc33xx: Add driver for new TI CC33xx wireless device family Date: Sun, 9 Jun 2024 21:20:45 +0300 Message-ID: <20240609182102.2950457-1-michael.nemanov@ti.com> X-Mailer: git-send-email 2.25.1 Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 From: Michael Nemanov Hello everyone, This series adds support for CC33xx which is a new family of WLAN IEEE802.11 a/b/g/n/ax and BLE 5.4 transceivers by Texas Instruments. These devices are 20MHz single spatial stream enabling STA (IEEE802.11ax) and AP (IEEE802.11n only) roles as well as both roles simultaneously. Communication to the CC33xx is done via 4-bit SDIO with two extra GPIOs: Enable and Interrupt. This driver's architecture is a soft-MAC and derivative of existing wl18xx + wlcore code [1]. It has been tested with the AM335x, AM625x, and i.MX8-MP evaluation kits. Data sheet: https://www.ti.com/lit/gpn/cc3301 All code passes sparse, smatch, coccicheck and checkpatch with very few pragmatic exceptions. Driver is split on file boundary as required by Linux-wireless wiki: https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches#new_driver Known gaps to be addressed in following patches: 1. BLE support Change log: v2: * Fixed build bug on non-ARM architectures * Removed driver version * Removed trivial debug traces * Removed debug parameters for cc33xx module * Added pre-post smatch and coccicheck tests * Fixed multiple type compatibility warnings * Minor fixes v1: * Added dt-bindings * Removed debugfs to ease review * Fix build issue with CONFIG_CFG80211_CERTIFICATION_ONUS * Fix multiple build warnings found with Clang 18 and W=12 Lore: https://lore.kernel.org/linux-wireless/20240521171841.884576-1-michael.nemanov@ti.com/ Test log: https://0x0.st/XbyX.log [1] It was considered implementing CC33xx as another user of wlcore but The differences in HW, host interface, IRQ functionality, Rx/Tx behavior and supported features were too significant so this was abandoned. Michael Nemanov Texas Instruments Michael Nemanov (17): wifi: cc33xx: Add cc33xx.h, cc33xx_i.h wifi: cc33xx: Add debug.h wifi: cc33xx: Add sdio.c, io.c, io.h wifi: cc33xx: Add cmd.c, cmd.h wifi: cc33xx: Add acx.c, acx.h wifi: cc33xx: Add event.c, event.h wifi: cc33xx: Add boot.c, boot.h wifi: cc33xx: Add main.c wifi: cc33xx: Add rx.c, rx.h wifi: cc33xx: Add tx.c, tx.h wifi: cc33xx: Add init.c, init.h wifi: cc33xx: Add scan.c, scan.h wifi: cc33xx: Add conf.h wifi: cc33xx: Add ps.c, ps.h wifi: cc33xx: Add testmode.c, testmode.h wifi: cc33xx: Add Kconfig, Makefile Integrate cc33xx into wireless/ti folder dt-bindings: net: wireless: cc33xx: Add ti,cc33xx.yaml .../bindings/net/wireless/ti,cc33xx.yaml | 60 + drivers/net/wireless/ti/Kconfig | 1 + drivers/net/wireless/ti/Makefile | 1 + drivers/net/wireless/ti/cc33xx/Kconfig | 24 + drivers/net/wireless/ti/cc33xx/Makefile | 10 + drivers/net/wireless/ti/cc33xx/acx.c | 1008 +++ drivers/net/wireless/ti/cc33xx/acx.h | 835 +++ drivers/net/wireless/ti/cc33xx/boot.c | 363 + drivers/net/wireless/ti/cc33xx/boot.h | 24 + drivers/net/wireless/ti/cc33xx/cc33xx.h | 483 ++ drivers/net/wireless/ti/cc33xx/cc33xx_i.h | 459 ++ drivers/net/wireless/ti/cc33xx/cmd.c | 2030 ++++++ drivers/net/wireless/ti/cc33xx/cmd.h | 700 ++ drivers/net/wireless/ti/cc33xx/conf.h | 1246 ++++ drivers/net/wireless/ti/cc33xx/debug.h | 92 + drivers/net/wireless/ti/cc33xx/event.c | 385 ++ drivers/net/wireless/ti/cc33xx/event.h | 71 + drivers/net/wireless/ti/cc33xx/init.c | 236 + drivers/net/wireless/ti/cc33xx/init.h | 15 + drivers/net/wireless/ti/cc33xx/io.c | 131 + drivers/net/wireless/ti/cc33xx/io.h | 26 + drivers/net/wireless/ti/cc33xx/main.c | 5854 +++++++++++++++++ drivers/net/wireless/ti/cc33xx/ps.c | 117 + drivers/net/wireless/ti/cc33xx/ps.h | 16 + drivers/net/wireless/ti/cc33xx/rx.c | 393 ++ drivers/net/wireless/ti/cc33xx/rx.h | 86 + drivers/net/wireless/ti/cc33xx/scan.c | 754 +++ drivers/net/wireless/ti/cc33xx/scan.h | 364 + drivers/net/wireless/ti/cc33xx/sdio.c | 584 ++ drivers/net/wireless/ti/cc33xx/testmode.c | 359 + drivers/net/wireless/ti/cc33xx/testmode.h | 12 + drivers/net/wireless/ti/cc33xx/tx.c | 1411 ++++ drivers/net/wireless/ti/cc33xx/tx.h | 160 + 33 files changed, 18310 insertions(+) create mode 100644 Documentation/devicetree/bindings/net/wireless/ti,cc33xx.yaml create mode 100644 drivers/net/wireless/ti/cc33xx/Kconfig create mode 100644 drivers/net/wireless/ti/cc33xx/Makefile create mode 100644 drivers/net/wireless/ti/cc33xx/acx.c create mode 100644 drivers/net/wireless/ti/cc33xx/acx.h create mode 100644 drivers/net/wireless/ti/cc33xx/boot.c create mode 100644 drivers/net/wireless/ti/cc33xx/boot.h create mode 100644 drivers/net/wireless/ti/cc33xx/cc33xx.h create mode 100644 drivers/net/wireless/ti/cc33xx/cc33xx_i.h create mode 100644 drivers/net/wireless/ti/cc33xx/cmd.c create mode 100644 drivers/net/wireless/ti/cc33xx/cmd.h create mode 100644 drivers/net/wireless/ti/cc33xx/conf.h create mode 100644 drivers/net/wireless/ti/cc33xx/debug.h create mode 100644 drivers/net/wireless/ti/cc33xx/event.c create mode 100644 drivers/net/wireless/ti/cc33xx/event.h create mode 100644 drivers/net/wireless/ti/cc33xx/init.c create mode 100644 drivers/net/wireless/ti/cc33xx/init.h create mode 100644 drivers/net/wireless/ti/cc33xx/io.c create mode 100644 drivers/net/wireless/ti/cc33xx/io.h create mode 100644 drivers/net/wireless/ti/cc33xx/main.c create mode 100644 drivers/net/wireless/ti/cc33xx/ps.c create mode 100644 drivers/net/wireless/ti/cc33xx/ps.h create mode 100644 drivers/net/wireless/ti/cc33xx/rx.c create mode 100644 drivers/net/wireless/ti/cc33xx/rx.h create mode 100644 drivers/net/wireless/ti/cc33xx/scan.c create mode 100644 drivers/net/wireless/ti/cc33xx/scan.h create mode 100644 drivers/net/wireless/ti/cc33xx/sdio.c create mode 100644 drivers/net/wireless/ti/cc33xx/testmode.c create mode 100644 drivers/net/wireless/ti/cc33xx/testmode.h create mode 100644 drivers/net/wireless/ti/cc33xx/tx.c create mode 100644 drivers/net/wireless/ti/cc33xx/tx.h base-commit: a46300b1b09ba260c2c2b00f06f6e34482a8ec01 -- 2.25.1