Received: by 2002:a05:6a10:413:0:0:0:0 with SMTP id 19csp1772912pxp; Mon, 21 Mar 2022 04:58:07 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzepo59bdtabEzwKVq97Qn6MqoOyqRqeG4F1yzteOCWA0AgcQAUnln/GgN3ipgEpVaGm/wS X-Received: by 2002:a17:902:f686:b0:151:ca86:e1be with SMTP id l6-20020a170902f68600b00151ca86e1bemr12783548plg.16.1647863887644; Mon, 21 Mar 2022 04:58:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647863887; cv=none; d=google.com; s=arc-20160816; b=UvG8PTib4X6yA50P+Ig1W9xI1nLHk8SscHEtQQituG96oy+T60eRsIK0wRMNY92W7D iORA78Nt8779HINGnWQE8M83sulMaFhSsQITe5ABKgWgk4rUueTfgmilivC33NTDlzBd XCzBWfkheMlmKe/a9Hkmp5OD+47LTcrdEKagtuZj2H3jp/l+ZSgWIFc/R7evCBhe195/ by7FkwDWyJxpgB595tBs0frKHRH20VrWOQtqGyrC9elX9Zf7uBYZoR7mVfU6+tQ2+9gU TjmPXfXVR9ecPExuUgQfMDUyRx94ppq0EWWpvLMQvVsBttXk5wPgmTgZCtbdLIvXhBA6 qFOg== 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 :message-id:date:subject:to:from; bh=KqYY7qqMB2Jk66QdSjw+fEA/08LLCykxf8LhFXLSAGo=; b=hIi+Ydqfr+Qh5iIQccovQ1HFS13Khw3HxIGVy68ITtwZVJBX7vqXbCeoraWZYZuXem 876AZ4g38zj15nAsstq1mhmm0z+ldPThIyTjlpAFSUllYcmBYkf4+rNmcDcLW7cxmWt3 6hcmJwyGdNmjccO1/TIfefule7uMmdgXRYpA+05OVZxyPXwY2JSCtURPWbmZL6zwD6N+ Bo9IQ6bVTbrP/yi2JP05XsUmNP5d5HylKQcYYQCrBYrx4IGH9jTjfYyasHsEhjD/ePZF 5PYtc3E0UaGHmjulYvlzuUsaOiNFzIL7JKzFiakFXkfCEB714Kjz5wcaCW3TYhS3Gv9/ FYww== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id c23-20020a634e17000000b00381ff256f5esi12908270pgb.551.2022.03.21.04.57.55; Mon, 21 Mar 2022 04:58:07 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344328AbiCUEcc (ORCPT + 99 others); Mon, 21 Mar 2022 00:32:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44686 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241992AbiCUEc3 (ORCPT ); Mon, 21 Mar 2022 00:32:29 -0400 Received: from mslow1.mail.gandi.net (mslow1.mail.gandi.net [217.70.178.240]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B20F22FFFC; Sun, 20 Mar 2022 21:31:02 -0700 (PDT) Received: from relay2-d.mail.gandi.net (unknown [IPv6:2001:4b98:dc4:8::222]) by mslow1.mail.gandi.net (Postfix) with ESMTP id E5511C445D; Mon, 21 Mar 2022 04:21:55 +0000 (UTC) Received: (Authenticated sender: frank@zago.net) by mail.gandi.net (Postfix) with ESMTPSA id CA1E740004; Mon, 21 Mar 2022 04:21:45 +0000 (UTC) From: frank zago To: Greg Kroah-Hartman , linux-kernel@vger.kernel.org, Bartosz Golaszewski , Wolfram Sang , Johan Hovold , linux-usb@vger.kernel.org, Lee Jones , Linus Walleij , linux-gpio@vger.kernel.org, linux-i2c@vger.kernel.org, frank zago Subject: [PATCH v4 0/3] WCH CH341 GPIO and SPI support Date: Sun, 20 Mar 2022 23:21:39 -0500 Message-Id: <20220321042142.69239-1-frank@zago.net> X-Mailer: git-send-email 2.32.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The CH341 is a multifunction chip, presenting 3 different USB PID. One of these functions is for I2C/SPI/GPIO. This new set of drivers will manage I2C and GPIO. Changes from v3: - really converted to an MFD driver. Driver is now split into 3 modules (MFD+I2C+GPIO). - minor code cleanups Changes from v2: - bug fixes - more robust USB enumeration - Changed to an MFD driver as suggested During testing I found that i2c handles hot removal, but not gpio. The gpio subsystem will complain with 'REMOVING GPIOCHIP WITH GPIOS STILL REQUESTED', but it's a gpiolib issue. Changes from v1: - Removed double Signed-off-by - Move Kconfig into the same directory as the driver frank zago (3): mfd: ch341: add core driver for the WCH CH341 in I2C/GPIO mode gpio: ch341: add MFD cell driver for the CH341 i2c: ch341: add MFD cell driver CH341 for I2C Documentation/misc-devices/ch341.rst | 114 ++++++++ Documentation/misc-devices/index.rst | 1 + MAINTAINERS | 9 + drivers/gpio/Kconfig | 10 + drivers/gpio/Makefile | 1 + drivers/gpio/gpio-ch341.c | 421 +++++++++++++++++++++++++++ drivers/i2c/busses/Kconfig | 10 + drivers/i2c/busses/Makefile | 1 + drivers/i2c/busses/i2c-ch341.c | 325 +++++++++++++++++++++ drivers/mfd/Kconfig | 12 + drivers/mfd/Makefile | 1 + drivers/mfd/ch341-core.c | 109 +++++++ include/linux/mfd/ch341.h | 25 ++ 13 files changed, 1039 insertions(+) create mode 100644 Documentation/misc-devices/ch341.rst create mode 100644 drivers/gpio/gpio-ch341.c create mode 100644 drivers/i2c/busses/i2c-ch341.c create mode 100644 drivers/mfd/ch341-core.c create mode 100644 include/linux/mfd/ch341.h -- 2.32.0