{"id":2222378,"url":"http://patchwork.ozlabs.org/api/1.2/covers/2222378/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-i2c/cover/cover.1775900045.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.1775900045.git.zhoubinbin@loongson.cn>","list_archive_url":null,"date":"2026-04-11T09:58:23","name":"[v7,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.1775900045.git.zhoubinbin@loongson.cn/mbox/","series":[{"id":499545,"url":"http://patchwork.ozlabs.org/api/1.2/series/499545/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-i2c/list/?series=499545","date":"2026-04-11T09:58:24","name":"i2c: Add Loongson-2K0300 I2C controller support","version":7,"mbox":"http://patchwork.ozlabs.org/series/499545/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/covers/2222378/comments/","headers":{"Return-Path":"\n <linux-i2c+bounces-17034-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.105.105.114; helo=tor.lore.kernel.org;\n envelope-from=linux-i2c+bounces-17034-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 tor.lore.kernel.org (tor.lore.kernel.org [172.105.105.114])\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 4ft8Jg0MWfz1y2d\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 11 Apr 2026 19:58:58 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby tor.lore.kernel.org (Postfix) with ESMTP id 0BAB83024A1D\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 11 Apr 2026 09:58:52 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 67E133382C5;\n\tSat, 11 Apr 2026 09:58:47 +0000 (UTC)","from mail.loongson.cn (mail.loongson.cn [114.242.206.163])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 0EC472F0673;\n\tSat, 11 Apr 2026 09:58:42 +0000 (UTC)","from loongson.cn (unknown [223.64.68.17])\n\tby gateway (Coremail) with SMTP id _____8AxBMFQG9ppDkYkAA--.2071S3;\n\tSat, 11 Apr 2026 17:58:40 +0800 (CST)","from kernelserver (unknown [223.64.68.17])\n\tby front1 (Coremail) with SMTP id qMiowJAxGMFLG9ppx_NqAA--.58577S2;\n\tSat, 11 Apr 2026 17:58:37 +0800 (CST)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1775901527; cv=none;\n b=aGyXVmbiiWpU9I0in4Fmzx184s1qGMvW2l0xEkR6hHG9v47X8piaYRSQ4gmfUHBKdYNvQ9o/jJa5EJ1CDlxSVMWZL0eTZ5HkGcxOA+OqC0BhZTmSbxvxnG0s1zxHax+t1bQt7C4T5f+8WFoPBchatdeymd2iEnmgNUYL9Ud36WE=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1775901527; c=relaxed/simple;\n\tbh=IHAGdw1aVu7ekSu6b1/9p6ag+6/LvGrWHxRvxe4feeo=;\n\th=From:To:Cc:Subject:Date:Message-ID:MIME-Version;\n b=nzvkAwh/8VZ6ZM9nPPJMVZDNX1ryoXyIdhKAFThhDFAKE1jCbwCHBMZGbi72aTJxVc/16cnkZf9EsUTC+yTcgck24cxk6q2yoWv9DboBDYglUHJCDVKmGiXhmhsmDx36X1DfQSfGvAHKHlauhwuC+/s44e11erSzsjYejbpGa3I=","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 v7 0/2] i2c: Add Loongson-2K0300 I2C controller support","Date":"Sat, 11 Apr 2026 17:58:23 +0800","Message-ID":"<cover.1775900045.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":"qMiowJAxGMFLG9ppx_NqAA--.58577S2","X-CM-SenderInfo":"p2kr3uplqex0o6or00hjvr0hdfq/1tbiAQEOCGnZ4sgBzgAAsT","X-Coremail-Antispam":"1Uk129KBj93XoWxWF4DZw4fCr1DGF4xJry8tFc_yoW5Cr1kpa\n\ty5C39xKF1qgr12vrs3JFWrurySvayfJa1Sgr4xA34F9a1DZ3yUZ3ySkFs0vFWDArWxuF42\n\tq39rKw10ka4DZFXCm3ZEXasCq-sJn29KB7ZKAUJUUUUr529EdanIXcx71UUUUU7KY7ZEXa\n\tsCq-sGcSsGvfJ3Ic02F40EFcxC0VAKzVAqx4xG6I80ebIjqfuFe4nvWSU5nxnvy29KBjDU\n\t0xBIdaVrnRJUUUB0b4IE77IF4wAFF20E14v26r1j6r4UM7CY07I20VC2zVCF04k26cxKx2\n\tIYs7xG6rWj6s0DM7CIcVAFz4kK6r1Y6r17M28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48v\n\te4kI8wA2z4x0Y4vE2Ix0cI8IcVAFwI0_Jr0_JF4l84ACjcxK6xIIjxv20xvEc7CjxVAFwI\n\t0_Jr0_Gr1l84ACjcxK6I8E87Iv67AKxVW8JVWxJwA2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_\n\tGr0_Gr1UM2kKe7AKxVWUXVWUAwAS0I0E0xvYzxvE52x082IY62kv0487Mc804VCY07AIYI\n\tkI8VC2zVCFFI0UMc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0I7IYx2IY67AKxVWUXVWU\n\tAwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r4UM4x0Y48IcxkI7VAKI4\n\t8JMxkF7I0En4kS14v26r126r1DMxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j\n\t6r4UMxCIbckI1I0E14v26r1Y6r17MI8I3I0E5I8CrVAFwI0_Jr0_Jr4lx2IqxVCjr7xvwV\n\tAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWUtVW8ZwCIc40Y0x0EwIxGrwCI42IY6xIIjxv2\n\t0xvE14v26r1j6r1xMIIF0xvE2Ix0cI8IcVCY1x0267AKxVWUJVW8JwCI42IY6xAIw20EY4\n\tv20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr0_Gr1lIxAIcVC2z280aVCY1x0267AK\n\txVWUJVW8JbIYCTnIWIevJa73UjIFyTuYvjxUc9a9UUUUU"},"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======\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"}