Received: by 2002:a05:6a10:17d3:0:0:0:0 with SMTP id hz19csp2155819pxb; Mon, 12 Apr 2021 16:18:34 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzTOLFyKO6/oa2yHHxMzGwrMVB2BaXzpnRcESFpwFWUHx6/p7Fr0NX2mAXEmqHj38LHNkiN X-Received: by 2002:a05:6402:4301:: with SMTP id m1mr32715768edc.210.1618269513951; Mon, 12 Apr 2021 16:18:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1618269513; cv=none; d=google.com; s=arc-20160816; b=lyI1MW0oiPD1E0/KJIeLIlq0w8SRD+YAyjnIn5cHqf2jE9U58ZVc7cFY5D7On+Rg2F Z1gEj29zyFQ+9OXVS0cUyms7aubtsVHtx+LcQVjx97pfiaNXFQiv1csbdInA10dYhAoC bNYCbiJc8ofBJbXMxu7E8NTuKvSZNHcAfKH05YlovOz17TiL6+45C0EbshrJ9zHY6W72 FjXY5pA6X/bXDuomKSScsL8Fr+iyEvYuhPZAXGK/DwJ4turroZ5YB5/kLvInMCnQejmQ S/GQuV6NU1InCGTm+fG1GQfN+6byF84PqeJax/h9KKW5CTHoyyp+pAQmd/t6LCJlzwMe AilQ== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=RxVF2YSv4pPIAc7Wui6wjPhJD5ZoKx63vzGKTphSkmc=; b=rHzSoCUl5l9Keq8Le1Ay0EVOo8O+D8wyf6B64K15hVhdwaa8I1PrYt9V0J0Z7+Z9XV vPbc17IICERP8aJNnaDO7wv/N78EJn/BF9fNQnUNCkioNiZhlox+ke6PukZ3Z10wJIzm MAR2t74+Jv2otZr9HLnffWPWqbCrduHolyG7hEHRY8DLQjAeCIqWQcib6S5x2MhUa7Of GOazIyRBTz5EdQ/OfyZ8Y7ZhSPUp4ApJa8OERY6PVfaUQVF4bOcLJO2fP8BDmzlijmAi Unx7Ove3FUUk230QHr0V7OPkEO2SQotMgAb7wR6KxAq0cAXiN/6++rE0KmiHIE/nw8ih TToQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=O3HBqu7m; 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=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id ca24si6998628ejb.527.2021.04.12.16.18.10; Mon, 12 Apr 2021 16:18:33 -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=k20201202 header.b=O3HBqu7m; 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=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S243863AbhDLKAD (ORCPT + 99 others); Mon, 12 Apr 2021 06:00:03 -0400 Received: from mail.kernel.org ([198.145.29.99]:38564 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244812AbhDLJ4n (ORCPT ); Mon, 12 Apr 2021 05:56:43 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id B612761289; Mon, 12 Apr 2021 09:56:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1618221378; bh=Qx3uIICjxsR/7ZgFZaHsruYnYuOO5JAwUyW0HFtbjGk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=O3HBqu7mH0dUxajHoxtRD17f7y/nnRFk4xM+JogQEMf1XH0yWW2gc65BRX5rygVFy 98L4yG47d9193+nx9E/AkBgSWRSCCQTIRy6WcDeKrWATd1IACf2WaHCFE3LYIuZTIf /sC/rp74+xHZiVWsVyRn7KNZ9GaUPjOjxBIzcsM0IEfwp8Zldc3b2dQStLzZtHr7wd mHImjvAYxMEHcmnC6OOqOD2WVKMwQeFW3ezDsStmHey7+MvUutQdqOh35v2w5ysY35 zLVRiaAr52LmkVwJHDySkouhAVxnL7+275wKuGNGdpElGR+lDNY/PhNpMu7F+tiSSG fzkJBfo2b4whg== Received: from johan by xi with local (Exim 4.93.0.4) (envelope-from ) id 1lVtIj-0000Kw-8b; Mon, 12 Apr 2021 11:56:13 +0200 From: Johan Hovold To: Johan Hovold Cc: Mauro Carvalho Chehab , Manivannan Sadhasivam , linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 09/12] USB: serial: xr: add support for XR22801, XR22802, XR22804 Date: Mon, 12 Apr 2021 11:55:54 +0200 Message-Id: <20210412095557.1213-10-johan@kernel.org> X-Mailer: git-send-email 2.26.3 In-Reply-To: <20210412095557.1213-1-johan@kernel.org> References: <20210412095557.1213-1-johan@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The XR22801, XR22802 and XR22804 are compound devices with an embedded hub and up to seven downstream USB devices including one, two or four UARTs respectively. The UART function is similar to XR21B142X but most registers are offset by 0x40, the register requests are different and are directed at the device rather than interface, and 5 and 6-bit words are not supported. Signed-off-by: Johan Hovold --- drivers/usb/serial/xr_serial.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/drivers/usb/serial/xr_serial.c b/drivers/usb/serial/xr_serial.c index 46e5e1b2f3c0..14dbda13ab4d 100644 --- a/drivers/usb/serial/xr_serial.c +++ b/drivers/usb/serial/xr_serial.c @@ -134,6 +134,7 @@ enum xr_type_id { XR21V141X, XR21B142X, XR21B1411, + XR2280X, XR_TYPE_COUNT, }; @@ -198,6 +199,24 @@ static const struct xr_type xr_types[] = { .gpio_status = 0xc10, .custom_driver = 0x20d, }, + [XR2280X] = { + .reg_width = 16, + .reg_recipient = USB_RECIP_DEVICE, + .set_reg = 0x05, + .get_reg = 0x05, + + .uart_enable = 0x40, + .flow_control = 0x46, + .xon_char = 0x47, + .xoff_char = 0x48, + .tx_break = 0x4a, + .gpio_mode = 0x4c, + .gpio_direction = 0x4d, + .gpio_set = 0x4e, + .gpio_clear = 0x4f, + .gpio_status = 0x50, + .custom_driver = 0x81, + }, }; struct xr_data { @@ -906,6 +925,10 @@ static void xr_port_remove(struct usb_serial_port *port) .driver_info = (type) static const struct usb_device_id id_table[] = { + { XR_DEVICE(0x04e2, 0x1400, XR2280X) }, + { XR_DEVICE(0x04e2, 0x1401, XR2280X) }, + { XR_DEVICE(0x04e2, 0x1402, XR2280X) }, + { XR_DEVICE(0x04e2, 0x1403, XR2280X) }, { XR_DEVICE(0x04e2, 0x1410, XR21V141X) }, { XR_DEVICE(0x04e2, 0x1411, XR21B1411) }, { XR_DEVICE(0x04e2, 0x1412, XR21V141X) }, -- 2.26.3