{"id":2213760,"url":"http://patchwork.ozlabs.org/api/1.2/covers/2213760/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-i2c/cover/cover.1773991081.git.zhoubinbin@loongson.cn/","project":{"id":35,"url":"http://patchwork.ozlabs.org/api/1.2/projects/35/?format=json","name":"Linux I2C development","link_name":"linux-i2c","list_id":"linux-i2c.vger.kernel.org","list_email":"linux-i2c@vger.kernel.org","web_url":"","scm_url":"","webscm_url":"","list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<cover.1773991081.git.zhoubinbin@loongson.cn>","list_archive_url":null,"date":"2026-03-20T07:25:45","name":"[v6,0/2] i2c: Add Loongson-2K0300 I2C controller support","submitter":{"id":84810,"url":"http://patchwork.ozlabs.org/api/1.2/people/84810/?format=json","name":"Binbin Zhou","email":"zhoubinbin@loongson.cn"},"mbox":"http://patchwork.ozlabs.org/project/linux-i2c/cover/cover.1773991081.git.zhoubinbin@loongson.cn/mbox/","series":[{"id":496770,"url":"http://patchwork.ozlabs.org/api/1.2/series/496770/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-i2c/list/?series=496770","date":"2026-03-20T07:25:46","name":"i2c: Add Loongson-2K0300 I2C controller support","version":6,"mbox":"http://patchwork.ozlabs.org/series/496770/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/covers/2213760/comments/","headers":{"Return-Path":"\n <linux-i2c+bounces-16597-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-i2c@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-i2c+bounces-16597-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=114.242.206.163","smtp.subspace.kernel.org;\n dmarc=none (p=none dis=none) header.from=loongson.cn","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=loongson.cn"],"Received":["from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fcYzS4stDz1y0H\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 20 Mar 2026 18:27:00 +1100 (AEDT)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 81EA0301BC09\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 20 Mar 2026 07:26:04 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 33F9535CB64;\n\tFri, 20 Mar 2026 07:26:04 +0000 (UTC)","from mail.loongson.cn (mail.loongson.cn [114.242.206.163])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id C9E0535B637\n\tfor <linux-i2c@vger.kernel.org>; Fri, 20 Mar 2026 07:26:00 +0000 (UTC)","from loongson.cn (unknown [223.64.68.17])\n\tby gateway (Coremail) with SMTP id _____8Bx08CG9rxptfYcAA--.24577S3;\n\tFri, 20 Mar 2026 15:25:58 +0800 (CST)","from kernelserver (unknown [223.64.68.17])\n\tby front1 (Coremail) with SMTP id qMiowJDxaeCD9rxp7DxZAA--.40268S2;\n\tFri, 20 Mar 2026 15:25:56 +0800 (CST)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1773991564; cv=none;\n b=E3aIxL46dVShX/AzD70jRQQEobi1gg6wVLAx4FUhq9bLgThj4mAdKKxDjsjjvDr/qC89TVzxrqnz6ffumPK5r/LC7sQGAaAIskna0E6jWrwoxXFTy5IkqzePT7Tt4Wp4p6t2UthA59n+aJimtMYZLO7WDsVv+37nmesyRF6KNsw=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1773991564; c=relaxed/simple;\n\tbh=xtLi4IZTWrQbNgejqyOeih6Kuf2PVObdKTR3p8blIOo=;\n\th=From:To:Cc:Subject:Date:Message-ID:MIME-Version;\n b=HNvAmILa13bFYe/zosp3HddP28JSeiE5TZTgxiKSOh3UU2gdBxdD2leUQ8c6FFVkXqo5sID9GxGjkUsjsde+3cGj+KAjKQBkNG4sxBlciY4Ramh17hjcD8M2yxhB1PV3E+EtKkxwJzRblIG/KagIoMzr6XrGfWU8B4V2oIV0NE4=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dmarc=none (p=none dis=none) header.from=loongson.cn;\n spf=pass smtp.mailfrom=loongson.cn; arc=none smtp.client-ip=114.242.206.163","From":"Binbin Zhou <zhoubinbin@loongson.cn>","To":"Binbin Zhou <zhoubb.aaron@gmail.com>,\n\tHuacai Chen <chenhuacai@loongson.cn>,\n\tAndi Shyti <andi.shyti@kernel.org>,\n\tWolfram Sang <wsa+renesas@sang-engineering.com>,\n\tAndy Shevchenko <andy@kernel.org>,\n\tlinux-i2c@vger.kernel.org","Cc":"Huacai Chen <chenhuacai@kernel.org>,\n\tXuerui Wang <kernel@xen0n.name>,\n\tloongarch@lists.linux.dev,\n\tBinbin Zhou <zhoubinbin@loongson.cn>","Subject":"[PATCH v6 0/2] i2c: Add Loongson-2K0300 I2C controller support","Date":"Fri, 20 Mar 2026 15:25:45 +0800","Message-ID":"<cover.1773991081.git.zhoubinbin@loongson.cn>","X-Mailer":"git-send-email 2.52.0","Precedence":"bulk","X-Mailing-List":"linux-i2c@vger.kernel.org","List-Id":"<linux-i2c.vger.kernel.org>","List-Subscribe":"<mailto:linux-i2c+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-i2c+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","X-CM-TRANSID":"qMiowJDxaeCD9rxp7DxZAA--.40268S2","X-CM-SenderInfo":"p2kr3uplqex0o6or00hjvr0hdfq/1tbiAgEMCGm7kCMaqgABsX","X-Coremail-Antispam":"1Uk129KBj93XoWxWF4fGrWUCFWxGFWUXFy7Jwc_yoW5Xw1fpa\n\ty5A3sxKF1jgr4Ivrs3JrWruryavayfJa1Sgr4xA34F9a1DZ3yUZ3yFkF4YvFWDCrWxCF42\n\tqrZrGr1jka4DZFXCm3ZEXasCq-sJn29KB7ZKAUJUUUU5529EdanIXcx71UUUUU7KY7ZEXa\n\tsCq-sGcSsGvfJ3Ic02F40EFcxC0VAKzVAqx4xG6I80ebIjqfuFe4nvWSU5nxnvy29KBjDU\n\t0xBIdaVrnRJUUUkYb4IE77IF4wAFF20E14v26r1j6r4UM7CY07I20VC2zVCF04k26cxKx2\n\tIYs7xG6rWj6s0DM7CIcVAFz4kK6r1Y6r17M28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48v\n\te4kI8wA2z4x0Y4vE2Ix0cI8IcVAFwI0_JFI_Gr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI\n\t0_Gr0_Cr1l84ACjcxK6I8E87Iv67AKxVWxJVW8Jr1l84ACjcxK6I8E87Iv6xkF7I0E14v2\n\t6r4UJVWxJr1le2I262IYc4CY6c8Ij28IcVAaY2xG8wAqjxCEc2xF0cIa020Ex4CE44I27w\n\tAqx4xG64xvF2IEw4CE5I8CrVC2j2WlYx0E2Ix0cI8IcVAFwI0_Jrv_JF1lYx0Ex4A2jsIE\n\t14v26r1j6r4UMcvjeVCFs4IE7xkEbVWUJVW8JwACjcxG0xvY0x0EwIxGrwCF04k20xvY0x\n\t0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F40E14v26r1j6r18MI8I3I0E\n\t7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Jw0_GFylIxkGc2Ij64vIr41lIxAIcV\n\tC0I7IYx2IY67AKxVWUJVWUCwCI42IY6xIIjxv20xvEc7CjxVAFwI0_Jr0_Gr1lIxAIcVCF\n\t04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r1j6r4UMIIF0xvEx4A2jsIEc7\n\tCjxVAFwI0_Jr0_GrUvcSsGvfC2KfnxnUUI43ZEXa7IU8zwZ7UUUUU=="},"content":"Hi all:\n\nThis patch set describes the I2C controller integrated the\nLoongson-2K0300 chip.\n\nIt has a significantly different design from the previous I2C\ncontroller(i2c-ls2x), such as support for master-slave transfer mode,\nand  DMA transfers (implementation in progress), etc. Therefore, we try\nto name it i2c-ls2x-v2.\n\nThanks.\n\n======\nV6:\n- Rebase on linux-i2c/i2c-next;\nPatch (2/2):\n  - Update comment;\n  - Use regmap_get_device();\n\nLink to V5:\nhttps://lore.kernel.org/all/cover.1773142933.git.zhoubinbin@loongson.cn/\n\nV5:\n- Rebase on linux-i2c/i2c-next;\nPatch (2/2):\n  - Add time.h header file;\n  - Add the `MHz` suffix to `parent_rate` and `freq`;\n  - Define an iterator within the for loop, with its type being\n    `unsigned int`;\n  - Use dev_err_probe() in loongson2_i2c_adjust_bus_speed();\n  - i2c_adapter_set_node()->device_set_node().\n\nLink to V4:\nhttps://lore.kernel.org/all/cover.1772714348.git.zhoubinbin@loongson.cn/\n\nV4:\n- Rebase on linux-i2c/i2c-next;\nPatch (2/2):\n - The parent_rate parameter type should be `unsigned long`;\n - Drop fallthrough and add missing break;\n - device_set_node()->i2c_adapter_set_node();\n - Use i2c_parse_fw_timings();\n - Use i2c_t.bus_freq_hz instead of priv->speed;\n - Sperate loongson2_i2c_handle_read() into loongson2_i2c_handle_read()\n   and loongson2_i2c_handle_rx_done().\n\nLink to V3:\nhttps://lore.kernel.org/all/cover.1772001073.git.zhoubinbin@loongson.cn/\n\nV3:\n- Rebase on linux-i2c/i2c-next;\nPatch (2/2):\n - Reorder header file follow IWYU principle;\n - Better indentation and coding style;\n - Use generic macro definitions;\n - Amend *all* struct data types;\n - Correct unreasonable variable type definitions;\n - Refact loongson2_i2c_isr_error();\n - of_property_read_u32()->device_property_read_u32();\n - Remove meaningless blank lines and output.\n\nLink to V2:\nhttps://lore.kernel.org/all/cover.1769476820.git.zhoubinbin@loongson.cn/\n\nV2:\nPatch (1/2):\n - Add Acked-by tag from Conor, thanks.\n\nPatch (2/2):\n - Reorder the definitions of read() and write();\n - Adjust the calculation method for bus speed.\n\nLink to V1:\nhttps://lore.kernel.org/all/cover.1763018288.git.zhoubinbin@loongson.cn/\n\nBinbin Zhou (2):\n  dt-bindings: i2c: loongson,ls2x: Add ls2k0300-i2c compatible\n  i2c: ls2x-v2: Add driver for Loongson-2K0300 I2C controller\n\n .../bindings/i2c/loongson,ls2x-i2c.yaml       |   4 +\n MAINTAINERS                                   |   1 +\n drivers/i2c/busses/Kconfig                    |  10 +\n drivers/i2c/busses/Makefile                   |   1 +\n drivers/i2c/busses/i2c-ls2x-v2.c              | 544 ++++++++++++++++++\n 5 files changed, 560 insertions(+)\n create mode 100644 drivers/i2c/busses/i2c-ls2x-v2.c\n\n\nbase-commit: e9b13580b334040da0184a9f32106d808acd7fd5"}