From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ed1-f50.google.com (mail-ed1-f50.google.com [209.85.208.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BF5D53FA5F9 for ; Mon, 11 May 2026 13:57:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.50 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778507849; cv=none; b=P9XXIPSABE4uM48AYjPdwpFM6HWplZv7mg5JEhBVKCar1ywZWXVlfe1zncQbGpbrJFbi0HByFvxyzZSbg8KOyaJYZC0CvBWaRSHdSCjyP6No3SRLKlG6jsaW57mB0l9ltIjIgr7/d9iXY1KWnslLaclHAreO6q8DsAolpY1X6+c= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778507849; c=relaxed/simple; bh=kC4DSO7lEOOKLgNDNQTeigNoYcFvo7FOe74XyG/nGrE=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type; b=EpFaArbpa5KguKouZk6BXuj2Y5C1NzZeuaKxrYqJU5lSkMNElPjYatuEIxsK+7Q9zQ+s18o3fVWmGxofVc35CaoKt7VLvcjdvJvq9ps3ZWxm0W1y5GifUem0R1NnpDbcDswpT5goTqWjeYd3WwV8dIsaYVglmv5JRqu0PX/YLC0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=O6s1o+Eo; arc=none smtp.client-ip=209.85.208.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="O6s1o+Eo" Received: by mail-ed1-f50.google.com with SMTP id 4fb4d7f45d1cf-67c4aaf76ecso6810927a12.3 for ; Mon, 11 May 2026 06:57:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778507843; x=1779112643; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=jKhdwsAy/86G+JOwXd2p+pdbXnbrja7bwh3PVXwh7m4=; b=O6s1o+EokPZ/vWnPsmsKyx5Ei9uZcDJWti+ZFv8hC+jHsWr6oAPXk0pIAR0Cqv8fDu Xy8CkOJJ30Mx1ekmPtxKUg28YkVeziO8oiMX1cH2iEsMAOdXbKVE1QC+ShJvh2MyHyoQ uuPgIU8AVRu0cNLHP9g3Gi6bkV3ZVIIOWN5vcKzQvxDofG/oXfh0H0NAB6RnQz8H8pTa +5ZGui77KCjsXMSqI4NYjoRgePzAwsJt6xWhVuiDAgm6R8XD5+YqdM3IIjbLF4OtbnnN IC13ErPxw0Ai3qnXNMwbDQ6G67Mlnz4Es9JHQHTLjJl43kEzW7ZYAF7pu9r4Vmq1pRF6 I/Fw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778507843; x=1779112643; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=jKhdwsAy/86G+JOwXd2p+pdbXnbrja7bwh3PVXwh7m4=; b=lI2kjN3/sVV4Y47uNVcW4mQsvRQIoAhPXsFSZaLAI85GUl6yLEt9/U9vDTbId6E5sd ueS92xLS6+C7DBrHyW4yG8cVHOO8lBjOaDbVik9xIDf0lyQ/tm8yQW5BJuEst9pOntqh Cnm0H1x0zSZvvgxzY3VUWHoUxbwZeyDaqnRXKKTH2v3NX6vMYAFTNsyOymxbueX1r2h7 NCG9vLhVHQat1NEX3oeYeMMYSUaBRwQXVfxIO4yHKh+RLskdV0oWoFOPQZf7VgheF5DK sUFduESSMI39QgihKwJfeMyFz+Wcc8FfJYMfBcuSnHomzfxfANAJ9l6YAMHLoY2EBq23 xyMw== X-Forwarded-Encrypted: i=1; AFNElJ8eu438Db0hHdg9auJsNoZ/4sT6EsmEfKSt0nqLEGV+8052+YeTzuuIGxeq5hkb+6QadnkExqK6xvspEkk=@vger.kernel.org X-Gm-Message-State: AOJu0YzQHWoyMNf53qnqbyNwBQQmIsA3ue2odXvsnrgrFWkiFQ/qIvhf bAcdVI09JWvgMuI8lySfSyCFmHnu3jQOECf2nRV4hr7DEg8RzHmCaXyS X-Gm-Gg: Acq92OFLDRB8IJJz8j3xzrLtN7LIw8RCICapJQBh9KjxV0ZjYfxTlWtygyOzWNCZiKw qouQaAVZGkxKoUFZ0sWKp8rL0ZB2QG/9KPevymb0EuCkDXXAA3MBPeDdINZoDyHwA19irxWuAlv gvms2AzMfcpQDoBbV31fZxBdJ++QhDh8xryqayTTCr+/PjXd5rqZEcXAdT41AKDL8/QVnzsb1mW fHbs4p44CaoGav28Y+0Qx/tHMPLMgYr61AiuJmBLbF/0y5Khyh5cLHI1MS603IR5VQ3c7hJd0y7 9+P8MFSC0cx0R11aRSPPZRzyRZjtZPRzGAAhHBMzOd5pAJoho/0cnEJp72QsUze2TjSBxti+R1/ tVwTiqsudK0hnaw6+vdQHLBvij2GPJFFvfn3BTGgqaCYh96hxJjNLwGO1BiwHpHTDwDm+YJqyes baKiM04PNfOQIM X-Received: by 2002:a05:6402:278c:b0:67d:a63a:deb1 with SMTP id 4fb4d7f45d1cf-67da63adf40mr11744584a12.5.1778507842405; Mon, 11 May 2026 06:57:22 -0700 (PDT) Received: from xeon ([188.163.112.56]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-67ef0b3b904sm3685357a12.1.2026.05.11.06.57.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 May 2026 06:57:20 -0700 (PDT) From: Svyatoslav Ryhel To: Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vinod Koul , Neil Armstrong , Thierry Reding , Jonathan Hunter , Greg Kroah-Hartman , Peter Chen , Svyatoslav Ryhel Cc: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-phy@lists.infradead.org, linux-tegra@vger.kernel.org, linux-usb@vger.kernel.org Subject: [PATCH v1 0/6] Add support for Infineon/Intel XMM6260 modem Date: Mon, 11 May 2026 16:56:55 +0300 Message-ID: <20260511135703.62470-1-clamor95@gmail.com> X-Mailer: git-send-email 2.51.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Infineon/Intel XMM6260 is a 3G-focused, slim modem platform designed for smartphones, data cards, and Machine-to-Machine (M2M) applications. The modem is typically connected via the application processor's USB line in HSIC mode. To function correctly, the modem must control this line, as it requires precise timing to initiate or de-initialize the USB connection. This control is necessary to successfully enumerate the next stage of the USB device loader (moving from firmware loading to the actual device interface for example). Patches 1 and 2 adjust the Tegra-specific portion of the Chipidea USB controller to allow for the disabling of automatic PHY and USB controller registration. This is achieved by adding the nvidia,external-control property/flag. It does not affect any existing configurations, but it allows the USB line to be registered or deregistered by an external device — in this case, the modem. Patches 3 and 4 add support for the generic portion of the Infineon XMM6260 baseband modem, which was used in many Tegra-, OMAP-, and Exynos-based devices circa 2012. This driver provides power sequences, manages initial communication with the application processor, handles the SoC-specific modem PHY, and verifies that the modem USB device appears correctly. Patches 5 and 6 implement support for the Tegra-specific modem physical layer, which handles the registration and unregistration of the USB controller. While current support is relatively basic, this configuration already allows the modem device to appear in the dmesg of my device (LG Optimus Vu (P895)): [ 9.427014] ci_hdrc ci_hdrc.1: EHCI Host Controller [ 9.431488] ci_hdrc ci_hdrc.1: new USB bus registered, assigned bus number 1 [ 9.457197] ci_hdrc ci_hdrc.1: USB 2.0 started, EHCI 1.00 [ 9.460370] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.16 [ 9.468470] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 9.475597] usb usb1: Product: EHCI Host Controller [ 9.480508] usb usb1: Manufacturer: Linux 6.16.0+ ehci_hcd [ 9.485913] usb usb1: SerialNumber: ci_hdrc.1 [ 9.490862] hub 1-0:1.0: USB hub found [ 9.494005] hub 1-0:1.0: 1 port detected [ 9.657191] usb 1-1: new high-speed USB device number 2 using ci_hdrc [ 9.844726] usb 1-1: New USB device found, idVendor=1519, idProduct=0020, bcdDevice=12.74 [ 9.850530] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 9.857594] usb 1-1: Product: HSIC Device [ 9.861606] usb 1-1: Manufacturer: Comneon [ 9.865627] usb 1-1: SerialNumber: 0123456789 [ 9.908739] cdc_acm 1-1:1.0: ttyACM0: USB ACM device Svyatoslav Ryhel (6): dt-bindings: usb: ci-hdrc-usb2: Document nvidia,external-control property usb: chipidea: tegra: Avoid controller/PHY init if bus is externally controlled dt-bindings: net: Document Infineon/Intel XMM6260 modem net: usb: Add Infineon XMM6260 Baseband modem support dt-bindings: phy: tegra: Document Nvidia Tegra XMM6260 PHY phy: tegra: Add support for Nvidia Tegra XMM6260 PHY .../bindings/net/infineon,xmm6260.yaml | 72 ++++ .../bindings/phy/nvidia,tegra-xmm6260.yaml | 58 +++ .../devicetree/bindings/usb/ci-hdrc-usb2.yaml | 7 + drivers/net/usb/Kconfig | 15 + drivers/net/usb/Makefile | 1 + drivers/net/usb/baseband-xmm6260.c | 335 ++++++++++++++++++ drivers/phy/tegra/Kconfig | 12 + drivers/phy/tegra/Makefile | 1 + drivers/phy/tegra/phy-tegra-xmm6260.c | 144 ++++++++ drivers/usb/chipidea/ci_hdrc_tegra.c | 36 +- 10 files changed, 667 insertions(+), 14 deletions(-) create mode 100644 Documentation/devicetree/bindings/net/infineon,xmm6260.yaml create mode 100644 Documentation/devicetree/bindings/phy/nvidia,tegra-xmm6260.yaml create mode 100644 drivers/net/usb/baseband-xmm6260.c create mode 100644 drivers/phy/tegra/phy-tegra-xmm6260.c -- 2.51.0