Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.1/patches/2223673/?format=api
{ "id": 2223673, "url": "http://patchwork.ozlabs.org/api/1.1/patches/2223673/?format=api", "web_url": "http://patchwork.ozlabs.org/project/uboot/patch/20260415172113.273702-1-micbis.openwrt@gmail.com/", "project": { "id": 18, "url": "http://patchwork.ozlabs.org/api/1.1/projects/18/?format=api", "name": "U-Boot", "link_name": "uboot", "list_id": "u-boot.lists.denx.de", "list_email": "u-boot@lists.denx.de", "web_url": null, "scm_url": null, "webscm_url": null }, "msgid": "<20260415172113.273702-1-micbis.openwrt@gmail.com>", "date": "2026-04-15T17:21:13", "name": "usb: gadget: renesas: add support for RZ/G2L SoC", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "3dc975bbf4ed15732786c7024dcb60a7846bf7c2", "submitter": { "id": 93164, "url": "http://patchwork.ozlabs.org/api/1.1/people/93164/?format=api", "name": "Michele Bisogno", "email": "micbis.openwrt@gmail.com" }, "delegate": { "id": 1699, "url": "http://patchwork.ozlabs.org/api/1.1/users/1699/?format=api", "username": "marex", "first_name": "Marek", "last_name": "Vasut", "email": "marek.vasut@gmail.com" }, "mbox": "http://patchwork.ozlabs.org/project/uboot/patch/20260415172113.273702-1-micbis.openwrt@gmail.com/mbox/", "series": [ { "id": 500056, "url": "http://patchwork.ozlabs.org/api/1.1/series/500056/?format=api", "web_url": "http://patchwork.ozlabs.org/project/uboot/list/?series=500056", "date": "2026-04-15T17:21:13", "name": "usb: gadget: renesas: add support for RZ/G2L SoC", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/500056/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2223673/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2223673/checks/", "tags": {}, "headers": { "Return-Path": "<u-boot-bounces@lists.denx.de>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=oIor773y;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de\n (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de;\n envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org)", "phobos.denx.de;\n dmarc=pass (p=none dis=none) header.from=gmail.com", "phobos.denx.de;\n spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de", "phobos.denx.de;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.b=\"oIor773y\";\n\tdkim-atps=neutral", "phobos.denx.de;\n dmarc=pass (p=none dis=none) header.from=gmail.com", "phobos.denx.de;\n spf=pass smtp.mailfrom=micbis.openwrt@gmail.com" ], "Received": [ "from phobos.denx.de (phobos.denx.de\n [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fwyn72f02z1yHV\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 16 Apr 2026 09:59:55 +1000 (AEST)", "from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id B852F84201;\n\tThu, 16 Apr 2026 01:59:52 +0200 (CEST)", "by phobos.denx.de (Postfix, from userid 109)\n id 3C3358407E; Wed, 15 Apr 2026 19:21:40 +0200 (CEST)", "from mail-wr1-x436.google.com (mail-wr1-x436.google.com\n [IPv6:2a00:1450:4864:20::436])\n (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits))\n (No client certificate requested)\n by phobos.denx.de (Postfix) with ESMTPS id 34B4583936\n for <u-boot@lists.denx.de>; Wed, 15 Apr 2026 19:21:38 +0200 (CEST)", "by mail-wr1-x436.google.com with SMTP id\n ffacd0b85a97d-43cfce3a195so4394075f8f.2\n for <u-boot@lists.denx.de>; Wed, 15 Apr 2026 10:21:38 -0700 (PDT)", "from localhost.localdomain ([151.70.144.55])\n by smtp.gmail.com with ESMTPSA id\n ffacd0b85a97d-43ead33da6esm6210954f8f.5.2026.04.15.10.21.35\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Wed, 15 Apr 2026 10:21:36 -0700 (PDT)" ], "X-Spam-Checker-Version": "SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de", "X-Spam-Level": "", "X-Spam-Status": "No, score=-1.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,\n DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_GMAIL_RCVD,FREEMAIL_FROM,\n RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS autolearn=no\n autolearn_force=no version=3.4.2", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=gmail.com; s=20251104; t=1776273697; x=1776878497; darn=lists.denx.de;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:from:to:cc:subject:date:message-id:reply-to;\n bh=ChralTyzbjqayJnfM9/H7w8B69XsMq5McNeKcy90Vys=;\n b=oIor773y6bu+zp/duqpRaFjYSpbovgQGEja2QhMKX/Z41gzN1Ve4zLI9eoHJTnjEDx\n 9aQ2fI5EHhwjqdB4Gq5n7ctGxHoCvh01cyfwn+EWesKNjGS3LN0VfL4dTvxOsVBO/HH/\n Si69iX5efY+SgmHdoj4SkcMgt+j5OtcE3s5FsVbM7VD0ShjTGRumsi8qwMmqsQggf/SK\n 18JTJjcUjxsnM2cvF+z03V84CTyxn1id1iW0yj3YY9grQuw4K/BT0Pu6XwXcrE18PNU2\n XYHrg4vJCb14Cup7ZiCgK0oJYvKkmFl0hnqmmbx1Zelq5xgRoxtZyK8V6pqes3w1Eq/S\n GAeg==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776273697; x=1776878497;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=ChralTyzbjqayJnfM9/H7w8B69XsMq5McNeKcy90Vys=;\n b=fwAzor9daSv8dGnYZaKObYWb5m1sNmJuaUGUc0tV+sQ2OV7hlDAmhKzUYOxyKxjUnm\n sfnsZciKZvYQ44ke0yl3IEtTUZdGKe0ZURZs3EieIMHryUrJ2Fqs9jCaPB8FjBtIRrbi\n MgiB4aM5nGyXKVyS7JQNXy5G9fWFG/h25+lY+79HAEqqrWmnN5CsiLmgcruf49WbAn+P\n DS2YiAqYxc0VAaiB/0SyNLEi+xLIcypQkuhRwQCGGQWC+vFvu0NM9J+GoR4WQzvM8sK6\n O0OQuV90FQGGIYNpUKU6yNVLw8jJc6K6r+Mp1Qs7kspq92WdOuUDjiMchH1chn/trzw+\n Jxkg==", "X-Gm-Message-State": "AOJu0Ywv6fn27oYtL+A97WC8dH2f2AAt+ePV11bOqW3tB9RAHyQY37gp\n J/pN8kam3Qh4ecwl0QYYO52d1Es0fjB6lnSOjdfYkrjZCy7sGAIcgbPNlsv1FCXf4UA=", "X-Gm-Gg": "AeBDievN+34qt/0Vht3uZsg0fc0vywFY4SnNAFmspj5z1Hkc7vrD1LzMC6uv1rYH9rY\n I4VNBVvOkPr7sQ8N6bOgRqc50jnScFwmRMxQjlE0cZi5r+ORvA9DrUvsZMaxyA/NAhw9KTCmH0O\n /oZq0acSfnZev8ObmBYz5tnKvynx6b88X4Lt69/MTqsgS9VH4zSV0BPj16sJzSLCAoWVwxJesy2\n oJGNlS5jR2n4NIuRIOgT2MN8GlMzTgQ16YSJdYEokBLnHK/P/Uoxc1Qrhfdg2oGr+cjpRo3sfxx\n Wk5WmrH7PvjUsPeomY1l+pYfwQc5XIqCQANlQwGluOI8eAP+JjzuePYVXAzgPWp7qbt+M3zePPV\n Jftp7egUywXVRsc73V4Kmb2gJMVrWe+ING6HjKErjquXWjozim9yuOsTA8EiWyCLm/deqFauUN1\n yhPN0/ZWcrnG1cuGL7mvgZ/zpBsjQDHOMWskc4sUfa", "X-Received": "by 2002:a5d:64e4:0:b0:43e:a638:250f with SMTP id\n ffacd0b85a97d-43ea638264cmr11844620f8f.1.1776273697008;\n Wed, 15 Apr 2026 10:21:37 -0700 (PDT)", "From": "Michele Bisogno <micbis.openwrt@gmail.com>", "To": "u-boot@lists.denx.de", "Cc": "marek.vasut+renesas@mailbox.org, paul@pbarker.dev, jh80.chung@samsung.com,\n peng.fan@nxp.com, lukma@denx.de, mkorpershoek@kernel.org,\n trini@konsulko.com, Michele Bisogno <micbis.openwrt@gmail.com>", "Subject": "[PATCH] usb: gadget: renesas: add support for RZ/G2L SoC", "Date": "Wed, 15 Apr 2026 19:21:13 +0200", "Message-Id": "<20260415172113.273702-1-micbis.openwrt@gmail.com>", "X-Mailer": "git-send-email 2.34.1", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "X-Mailman-Approved-At": "Thu, 16 Apr 2026 01:59:51 +0200", "X-BeenThere": "u-boot@lists.denx.de", "X-Mailman-Version": "2.1.39", "Precedence": "list", "List-Id": "U-Boot discussion <u-boot.lists.denx.de>", "List-Unsubscribe": "<https://lists.denx.de/options/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=unsubscribe>", "List-Archive": "<https://lists.denx.de/pipermail/u-boot/>", "List-Post": "<mailto:u-boot@lists.denx.de>", "List-Help": "<mailto:u-boot-request@lists.denx.de?subject=help>", "List-Subscribe": "<https://lists.denx.de/listinfo/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=subscribe>", "Errors-To": "u-boot-bounces@lists.denx.de", "Sender": "\"U-Boot\" <u-boot-bounces@lists.denx.de>", "X-Virus-Scanned": "clamav-milter 0.103.8 at phobos.denx.de", "X-Virus-Status": "Clean" }, "content": "Support the Renesas RZ/G2L (r9a07g044) USBHS IP by addressing\nplatform-specific reset, glue logic, and FIFO access requirements.\n\n- regulator: rzg2l: Implement CON_CTRL manual connectivity notification.\n By setting SEL_CONNECT and CONNECT_1, the UTM+ core is notified of\n connection status in peripheral mode.\n- gadget: common: Add \"renesas,rzg2l-usbhs\" compatible and support\n reset deassertion. Fix a re-entrancy bug by calling usb_del_gadget_udc()\n in the remove callback to prevent stale UDC list entries.\n- gadget: fifo: Refactor PIO push/pop logic to handle trailing bytes\n using iowrite8/ioread8. This ensures correct data alignment on\n RZ/G2L and simplifies the data transfer loop.\n\nSigned-off-by: Michele Bisogno <micbis.openwrt@gmail.com>\n---\n .../power/regulator/rzg2l-usbphy-regulator.c | 10 ++++++--\n drivers/usb/gadget/rcar/common.c | 15 ++++++++++++\n drivers/usb/gadget/rcar/fifo.c | 23 +++++++++++--------\n 3 files changed, 36 insertions(+), 12 deletions(-)", "diff": "diff --git a/drivers/power/regulator/rzg2l-usbphy-regulator.c b/drivers/power/regulator/rzg2l-usbphy-regulator.c\nindex 0354555d0b5..03f8dec4f08 100644\n--- a/drivers/power/regulator/rzg2l-usbphy-regulator.c\n+++ b/drivers/power/regulator/rzg2l-usbphy-regulator.c\n@@ -9,16 +9,22 @@\n #include <renesas/rzg2l-usbphy.h>\n \n #define VBENCTL\t\t\t0x03c\n+#define CON_CTRL\t\t0x020\n #define VBENCTL_VBUS_SEL\tBIT(0)\n+#define SEL_CONNECT\t\tBIT(4)\n+#define CONNECT_1\t\tBIT(0)\n \n static int rzg2l_usbphy_regulator_set_enable(struct udevice *dev, bool enable)\n {\n \tstruct rzg2l_usbphy_ctrl_priv *priv = dev_get_priv(dev->parent);\n \n-\tif (enable)\n+\tif (enable) {\n \t\tclrbits_le32(priv->regs + VBENCTL, VBENCTL_VBUS_SEL);\n-\telse\n+\t\tsetbits_le32(priv->regs + CON_CTRL, SEL_CONNECT | CONNECT_1);\n+\t} else {\n \t\tsetbits_le32(priv->regs + VBENCTL, VBENCTL_VBUS_SEL);\n+\t\tclrbits_le32(priv->regs + CON_CTRL, SEL_CONNECT | CONNECT_1);\n+\t}\n \n \treturn 0;\n }\ndiff --git a/drivers/usb/gadget/rcar/common.c b/drivers/usb/gadget/rcar/common.c\nindex 2ba022a3f2c..1f266ae5ac9 100644\n--- a/drivers/usb/gadget/rcar/common.c\n+++ b/drivers/usb/gadget/rcar/common.c\n@@ -16,6 +16,7 @@\n #include <linux/usb/ch9.h>\n #include <linux/usb/gadget.h>\n #include <usb.h>\n+#include <reset.h>\n \n #include \"common.h\"\n \n@@ -397,6 +398,7 @@ static int usbhs_udc_otg_probe(struct udevice *dev)\n \tstruct usbhs_priv_otg_data *priv = dev_get_priv(dev);\n \tstruct usb_gadget *gadget;\n \tstruct clk_bulk clk_bulk;\n+\tstruct reset_ctl_bulk reset_bulk;\n \tint ret = -EINVAL;\n \n \tpriv->base = dev_read_addr_ptr(dev);\n@@ -411,6 +413,14 @@ static int usbhs_udc_otg_probe(struct udevice *dev)\n \tif (ret)\n \t\treturn ret;\n \n+\tret = reset_get_bulk(dev, &reset_bulk);\n+\tif (ret)\n+\t\treturn ret;\n+\n+\tret = reset_deassert_bulk(&reset_bulk);\n+\tif (ret)\n+\t\treturn ret;\n+\n \tclrsetbits_le32(priv->base + UGCTRL2, UGCTRL2_USB0SEL_MASK, UGCTRL2_USB0SEL_EHCI);\n \tclrsetbits_le16(priv->base + LPSTS, LPSTS_SUSPM, LPSTS_SUSPM);\n \n@@ -447,7 +457,11 @@ err_clk:\n static int usbhs_udc_otg_remove(struct udevice *dev)\n {\n \tstruct usbhs_priv_otg_data *priv = dev_get_priv(dev);\n+\tstruct usb_gadget *gadget;\n \n+\tgadget = usbhsg_get_gadget(&priv->usbhs_priv);\n+\tif (gadget)\n+\t\tusb_del_gadget_udc(gadget);\n \tusbhs_rcar3_power_ctrl(&priv->usbhs_priv, false);\n \tusbhs_mod_remove(&priv->usbhs_priv);\n \tusbhs_fifo_remove(&priv->usbhs_priv);\n@@ -460,6 +474,7 @@ static int usbhs_udc_otg_remove(struct udevice *dev)\n \n static const struct udevice_id usbhs_udc_otg_ids[] = {\n \t{ .compatible = \"renesas,rcar-gen3-usbhs\" },\n+\t{ .compatible = \"renesas,rzg2l-usbhs\"},\n \t{},\n };\n \ndiff --git a/drivers/usb/gadget/rcar/fifo.c b/drivers/usb/gadget/rcar/fifo.c\nindex 6016b2987d5..b5340b4d860 100644\n--- a/drivers/usb/gadget/rcar/fifo.c\n+++ b/drivers/usb/gadget/rcar/fifo.c\n@@ -535,18 +535,21 @@ static int usbhsf_pio_try_push(struct usbhs_pkt *pkt, int *is_done)\n \t * 32-bit access only\n \t */\n \tif (len >= 4 && !((unsigned long)buf & 0x03)) {\n-\t\tiowrite32_rep(addr, buf, len / 4);\n-\t\tlen %= 4;\n-\t\tbuf += total_len - len;\n+\t\tint words = len / 4;\n+\n+\t\tiowrite32_rep(addr, buf, words);\n+\t\tbuf += (words * 4);\n+\t\tlen -= (words * 4);\n \t}\n \n \t/* the rest operation */\n-\tif (usbhs_get_dparam(priv, cfifo_byte_addr)) {\n-\t\tfor (i = 0; i < len; i++)\n-\t\t\tiowrite8(buf[i], addr + (i & 0x03));\n-\t} else {\n-\t\tfor (i = 0; i < len; i++)\n-\t\t\tiowrite8(buf[i], addr + (0x03 - (i & 0x03)));\n+\tif (len > 0) {\n+\t\tif (len == 2 && !((unsigned long)buf & 0x01)) {\n+\t\t\tiowrite16(*(u16 *)buf, addr);\n+\t\t} else {\n+\t\t\tfor (i = 0; i < len; i++)\n+\t\t\t\tiowrite8(buf[i], addr);\n+\t\t}\n \t}\n \n \t/*\n@@ -716,7 +719,7 @@ static int usbhsf_pio_try_pop(struct usbhs_pkt *pkt, int *is_done)\n \t\tif (!(i & 0x03))\n \t\t\tdata = ioread32(addr);\n \n-\t\tbuf[i] = (data >> ((i & 0x03) * 8)) & 0xff;\n+\t\tbuf[i] = ioread8(addr);\n \t}\n \n usbhs_fifo_read_end:\n", "prefixes": [] }