{"id":2222961,"url":"http://patchwork.ozlabs.org/api/covers/2222961/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-i2c/cover/cover.1776135865.git.zhoubinbin@loongson.cn/","project":{"id":35,"url":"http://patchwork.ozlabs.org/api/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.1776135865.git.zhoubinbin@loongson.cn>","list_archive_url":null,"date":"2026-04-14T06:25:09","name":"[v8,0/2] i2c: Add Loongson-2K0300 I2C controller support","submitter":{"id":84810,"url":"http://patchwork.ozlabs.org/api/people/84810/?format=json","name":"Binbin Zhou","email":"zhoubinbin@loongson.cn"},"mbox":"http://patchwork.ozlabs.org/project/linux-i2c/cover/cover.1776135865.git.zhoubinbin@loongson.cn/mbox/","series":[{"id":499780,"url":"http://patchwork.ozlabs.org/api/series/499780/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-i2c/list/?series=499780","date":"2026-04-14T06:25:09","name":"i2c: Add Loongson-2K0300 I2C controller support","version":8,"mbox":"http://patchwork.ozlabs.org/series/499780/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/covers/2222961/comments/","headers":{"Return-Path":"\n <linux-i2c+bounces-17047-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=172.234.253.10; helo=sea.lore.kernel.org;\n envelope-from=linux-i2c+bounces-17047-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 [172.234.253.10])\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 4fvvS41X9Nz1xtJ\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 14 Apr 2026 16:26:28 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 989303045A8B\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 14 Apr 2026 06:25:39 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 93B0934B69C;\n\tTue, 14 Apr 2026 06:25:38 +0000 (UTC)","from mail.loongson.cn (mail.loongson.cn [114.242.206.163])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 5CD7833EB1B;\n\tTue, 14 Apr 2026 06:25:36 +0000 (UTC)","from loongson.cn (unknown [223.64.68.8])\n\tby gateway (Coremail) with SMTP id _____8DxrOnW3d1pzGYAAA--.248S3;\n\tTue, 14 Apr 2026 14:25:26 +0800 (CST)","from kernelserver (unknown [223.64.68.8])\n\tby front1 (Coremail) with SMTP id qMiowJDxSMHR3d1pq7JsAA--.62093S2;\n\tTue, 14 Apr 2026 14:25:23 +0800 (CST)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776147938; cv=none;\n b=gCpKunXisTFZ4sPtk50a+p0L1SFKHEGuyITtx4KOSIGaC3ip8SazYzvgzrI68A5hvsvmG1dfqXo3MPxeiYseQCVYRtEGw+3LHCYQLpRbVP1ULIow2Lv1E6/n27v4czUckRgyxK7ayNdi89ecFW1SbYUldUUS/Dpeq2l6bFaG4KE=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776147938; c=relaxed/simple;\n\tbh=YfH3otYUPNpeAPZ1DPD5mKSRm4D4HznLLb9DnVMsQIE=;\n\th=From:To:Cc:Subject:Date:Message-ID:MIME-Version;\n b=dmsmibCnpue8m0auYu60bCUk2kFAjCpTzra5gCKupoe/KBYSawIbNkee6WgDVFUR4Deu/ew3JzSfTpQg78/lVDNpLl2o7bllI3MmpV25ur751XpOa48sd1AMK5F8JNOWRcwhaq5SQQbUNgiEy7108tf8sCmLJNXezjCbuRQunx4=","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\tRob Herring <robh@kernel.org>,\n\tKrzysztof Kozlowski <krzk+dt@kernel.org>,\n\tConor Dooley <conor+dt@kernel.org>,\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\tdevicetree@vger.kernel.org,\n\tBinbin Zhou <zhoubinbin@loongson.cn>","Subject":"[PATCH v8 0/2] i2c: Add Loongson-2K0300 I2C controller support","Date":"Tue, 14 Apr 2026 14:25:09 +0800","Message-ID":"<cover.1776135865.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":"qMiowJDxSMHR3d1pq7JsAA--.62093S2","X-CM-SenderInfo":"p2kr3uplqex0o6or00hjvr0hdfq/1tbiAgERCGnchacURgABse","X-Coremail-Antispam":"1Uk129KBj93XoWxWF4DGF4kArW7Cw13JryUtwc_yoW5Zw1rpa\n\ty5C39xKF1qgr42vrs3JFWfur1SvayfJa1Sgr4xA34F9F4DZ3yUZ3ySkFs0vFWDAFWxCF42\n\tqrZrKr10ka4DZFXCm3ZEXasCq-sJn29KB7ZKAUJUUUU5529EdanIXcx71UUUUU7KY7ZEXa\n\tsCq-sGcSsGvfJ3Ic02F40EFcxC0VAKzVAqx4xG6I80ebIjqfuFe4nvWSU5nxnvy29KBjDU\n\t0xBIdaVrnRJUUUv2b4IE77IF4wAFF20E14v26r1j6r4UM7CY07I20VC2zVCF04k26cxKx2\n\tIYs7xG6rWj6s0DM7CIcVAFz4kK6r1Y6r17M28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48v\n\te4kI8wA2z4x0Y4vE2Ix0cI8IcVAFwI0_Jr0_JF4l84ACjcxK6xIIjxv20xvEc7CjxVAFwI\n\t0_Jr0_Gr1l84ACjcxK6I8E87Iv67AKxVWxJVW8Jr1l84ACjcxK6I8E87Iv6xkF7I0E14v2\n\t6r4UJVWxJr1le2I262IYc4CY6c8Ij28IcVAaY2xG8wAqjxCEc2xF0cIa020Ex4CE44I27w\n\tAqx4xG64xvF2IEw4CE5I8CrVC2j2WlYx0E2Ix0cI8IcVAFwI0_Jrv_JF1lYx0Ex4A2jsIE\n\t14v26r1j6r4UMcvjeVCFs4IE7xkEbVWUJVW8JwACjcxG0xvY0x0EwIxGrwCY1x0262kKe7\n\tAKxVWUAVWUtwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02\n\tF40E14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Jw0_GF\n\tylIxkGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUJVWUCwCI42IY6xIIjxv20xvEc7Cj\n\txVAFwI0_Jr0_Gr1lIxAIcVCF04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r\n\t1j6r4UMIIF0xvEx4A2jsIEc7CjxVAFwI0_Jr0_GrUvcSsGvfC2KfnxnUUI43ZEXa7IU8aZ\n\tX5UUUUU=="},"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======\nV8:\nPatch (2/2):\n - Since the physical unit is specific, revert the change made in v7\n   to replace `MHz` with `mhz`.\n\nLink to V7:\nhttps://lore.kernel.org/all/cover.1775900045.git.zhoubinbin@loongson.cn/\n\nV7:\n- Add Reviewed-by tag from Huacai & Andy, thanks.\nPatch (2/2):\n - Add the REGMAP_MMIO Kconfig dependency;\n - parent_rate_MHz -> parent_rate_mhz to avoid CamelCase.\n\nLink to V6:\nhttps://lore.kernel.org/all/cover.1773991081.git.zhoubinbin@loongson.cn/\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                    |  11 +\n drivers/i2c/busses/Makefile                   |   1 +\n drivers/i2c/busses/i2c-ls2x-v2.c              | 544 ++++++++++++++++++\n 5 files changed, 561 insertions(+)\n create mode 100644 drivers/i2c/busses/i2c-ls2x-v2.c\n\n\nbase-commit: 8fc326e15895c9f0403e6243dd4ad468b10aab3d"}