Received: by 2002:a05:6a10:6744:0:0:0:0 with SMTP id w4csp1163732pxu; Fri, 16 Oct 2020 05:38:31 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw0ys2Ne67jkoHGOfHFB9DDk2sOanWbweMurvkXod09FySdKr3l0LBaeJNd6VoJCEBLip9w X-Received: by 2002:a17:906:82ce:: with SMTP id a14mr3466328ejy.84.1602851911471; Fri, 16 Oct 2020 05:38:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1602851911; cv=none; d=google.com; s=arc-20160816; b=whZ4ZxWs0hPDXusNlKY+F7kFhgjzpwxhvqIBsXEjmh2peMblT3dlFBHORhf9gCqD8C 6Iv7C8843ZjRj9OAIm5OLS0gvEYA7RdgGVoJ8V7MKTRpRHSK4VM2fYG4he+OF7mf9lxk SFeuQsAWilHjF7zpIjk/6S6lifBMssFh5znM88Cjn141U/BefcV0nzQUUx3RFkt7VLiX YFTIxo1kPumW6pcoJf58NshouvfhzBSAo/3CvjFW05UGEgpINMSBoZ/1mWLZ8pVFmcNI 1QqVvaG285+OczWWDJ+XmfIbvU+dqKlgcu4Ji6NBZEzn5C1+qyj3vduhX7rKv9FxptD/ V+XA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=CuBbxGO9IhuA2Mxvdbbugs2pKwA5RSZ2gkw5IBBBIyI=; b=rdpfqV1QAAtHD1AB9xXH7pHP1GGw/kufu9EylMXDeKaQiLQAEolO48Es30BqFrdeOi NPCOCvM6+DimzYUNoR94CxQQanevSpV1mxs3HHH4KYV5X8Ok3YjGcJLJ03OnwJQZn+Z6 PuOugah4lvtPUSM2lWT59LS+OW25bFND5r8I7z60noDsD5Kr43NkYdPyIKYrgGcdNrmM ybQ3lI1MT9jtTg5DaOQns+VC+n5drXNx0Dz9ijZI/eqVdC5Nly6MDz8rIfEhfbIw3U6V M6SIiMf2cbZSCg/6gbuSWaVwbM9pM0x4a8EaVmdw7n8AZAyRYAxRMm0Bh9qOJhd/qxx1 ZptA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=L7iDw1Zk; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id dn1si1649152edb.319.2020.10.16.05.38.09; Fri, 16 Oct 2020 05:38:31 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=L7iDw1Zk; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2405939AbgJPJML (ORCPT + 99 others); Fri, 16 Oct 2020 05:12:11 -0400 Received: from mail.kernel.org ([198.145.29.99]:41944 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2405926AbgJPJMI (ORCPT ); Fri, 16 Oct 2020 05:12:08 -0400 Received: from localhost (83-86-74-64.cable.dynamic.v4.ziggo.nl [83.86.74.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 26A3921655; Fri, 16 Oct 2020 09:12:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1602839525; bh=yKckwfUmmqhsdO2j2KA/qh1gXICTdLHLltRHDtBq+Ys=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=L7iDw1ZkJ1XmGzM6f70Xt4vv/NEEKk64Zcjry2xt3Pg+ftYOrI4qckkgwqtbfPjws DV5Lo4w8rzB2HvBN2gL2zxxs+CXpf3cTJn6Bqlmgtfs58Y9msYF6aZFEx/eNwHijjE A0vPENwixniRCbGThdgibDPj0rWSes3oeKiDoth0= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, "Mychaela N. Falconia" , Johan Hovold Subject: [PATCH 5.9 09/15] USB: serial: ftdi_sio: add support for FreeCalypso JTAG+UART adapters Date: Fri, 16 Oct 2020 11:08:11 +0200 Message-Id: <20201016090437.629039451@linuxfoundation.org> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201016090437.170032996@linuxfoundation.org> References: <20201016090437.170032996@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Mychaela N. Falconia commit 6cf87e5edd9944e1d3b6efd966ea401effc304ee upstream. There exist many FT2232-based JTAG+UART adapter designs in which FT2232 Channel A is used for JTAG and Channel B is used for UART. The best way to handle them in Linux is to have the ftdi_sio driver create a ttyUSB device only for Channel B and not for Channel A: a ttyUSB device for Channel A would be bogus and will disappear as soon as the user runs OpenOCD or other applications that access Channel A for JTAG from userspace, causing undesirable noise for users. The ftdi_sio driver already has a dedicated quirk for such JTAG+UART FT2232 adapters, and it requires assigning custom USB IDs to such adapters and adding these IDs to the driver with the ftdi_jtag_quirk applied. Boutique hardware manufacturer Falconia Partners LLC has created a couple of JTAG+UART adapter designs (one buffered, one unbuffered) as part of FreeCalypso project, and this hardware is specifically made to be used with Linux hosts, with the intent that Channel A will be accessed only from userspace via appropriate applications, and that Channel B will be supported by the ftdi_sio kernel driver, presenting a standard ttyUSB device to userspace. Toward this end the hardware manufacturer will be programming FT2232 EEPROMs with custom USB IDs, specifically with the intent that these IDs will be recognized by the ftdi_sio driver with the ftdi_jtag_quirk applied. Signed-off-by: Mychaela N. Falconia [johan: insert in PID order and drop unused define] Cc: stable@vger.kernel.org Signed-off-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman --- drivers/usb/serial/ftdi_sio.c | 5 +++++ drivers/usb/serial/ftdi_sio_ids.h | 7 +++++++ 2 files changed, 12 insertions(+) --- a/drivers/usb/serial/ftdi_sio.c +++ b/drivers/usb/serial/ftdi_sio.c @@ -1037,6 +1037,11 @@ static const struct usb_device_id id_tab /* U-Blox devices */ { USB_DEVICE(UBLOX_VID, UBLOX_C099F9P_ZED_PID) }, { USB_DEVICE(UBLOX_VID, UBLOX_C099F9P_ODIN_PID) }, + /* FreeCalypso USB adapters */ + { USB_DEVICE(FTDI_VID, FTDI_FALCONIA_JTAG_BUF_PID), + .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, + { USB_DEVICE(FTDI_VID, FTDI_FALCONIA_JTAG_UNBUF_PID), + .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, { } /* Terminating entry */ }; --- a/drivers/usb/serial/ftdi_sio_ids.h +++ b/drivers/usb/serial/ftdi_sio_ids.h @@ -39,6 +39,13 @@ #define FTDI_LUMEL_PD12_PID 0x6002 +/* + * Custom USB adapters made by Falconia Partners LLC + * for FreeCalypso project, ID codes allocated to Falconia by FTDI. + */ +#define FTDI_FALCONIA_JTAG_BUF_PID 0x7150 +#define FTDI_FALCONIA_JTAG_UNBUF_PID 0x7151 + /* Sienna Serial Interface by Secyourit GmbH */ #define FTDI_SIENNA_PID 0x8348