{"id":2230991,"url":"http://patchwork.ozlabs.org/api/1.1/covers/2230991/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-gpio/cover/20260430093422.74812-1-biju.das.jz@bp.renesas.com/","project":{"id":42,"url":"http://patchwork.ozlabs.org/api/1.1/projects/42/?format=json","name":"Linux GPIO development","link_name":"linux-gpio","list_id":"linux-gpio.vger.kernel.org","list_email":"linux-gpio@vger.kernel.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20260430093422.74812-1-biju.das.jz@bp.renesas.com>","date":"2026-04-30T09:34:05","name":"[v4,0/7] Add Renesas RZ/G3L PINCONTROL support","submitter":{"id":87968,"url":"http://patchwork.ozlabs.org/api/1.1/people/87968/?format=json","name":"Biju","email":"biju.das.au@gmail.com"},"mbox":"http://patchwork.ozlabs.org/project/linux-gpio/cover/20260430093422.74812-1-biju.das.jz@bp.renesas.com/mbox/","series":[{"id":502254,"url":"http://patchwork.ozlabs.org/api/1.1/series/502254/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-gpio/list/?series=502254","date":"2026-04-30T09:34:06","name":"Add Renesas RZ/G3L PINCONTROL support","version":4,"mbox":"http://patchwork.ozlabs.org/series/502254/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/covers/2230991/comments/","headers":{"Return-Path":"\n <linux-gpio+bounces-35848-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-gpio@vger.kernel.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=aJr1URz4;\n\tdkim-atps=neutral","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-gpio+bounces-35848-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com\n header.b=\"aJr1URz4\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=209.85.221.54","smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=gmail.com"],"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)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g5pwG6q9cz1yGq\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 30 Apr 2026 19:36:46 +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 D8CD3303742F\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 30 Apr 2026 09:34:31 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 7983C399015;\n\tThu, 30 Apr 2026 09:34:30 +0000 (UTC)","from mail-wr1-f54.google.com (mail-wr1-f54.google.com\n [209.85.221.54])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 7F2143A3E7E\n\tfor <linux-gpio@vger.kernel.org>; Thu, 30 Apr 2026 09:34:27 +0000 (UTC)","by mail-wr1-f54.google.com with SMTP id\n ffacd0b85a97d-43d7e23defbso401630f8f.0\n        for <linux-gpio@vger.kernel.org>;\n Thu, 30 Apr 2026 02:34:27 -0700 (PDT)","from localhost.localdomain ([2a00:23c4:a758:8a01:342:901:e785:f7d2])\n        by smtp.gmail.com with ESMTPSA id\n ffacd0b85a97d-447b76e5c22sm11953913f8f.28.2026.04.30.02.34.24\n        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n        Thu, 30 Apr 2026 02:34:25 -0700 (PDT)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1777541670; cv=none;\n b=ik2kFO2h11Am7a3jjTbmH+p5OTdxkwV1lV43ohgHjw+xUZ/a5lZjxzENsCIlyuSW6SqSLRqlWygYq7aEk40ADFIix7alQTf7N0jfEA12Mli6lVNW7VNa1aMxWRxKxdFFe31vVzaKhl/KczX1y3W9BVedpHC/k8zzoGjvfo7SwLk=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1777541670; c=relaxed/simple;\n\tbh=6jA2TVd5eEOSJX75sMck6m6Y4y4DMXDpaG1GvHZkuTk=;\n\th=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type;\n b=n6mKx3FdISGDMj5oVxmqWRTGMteCW9g+sc5dA7YDFL9Z5vpS48DmbwdyvcVVesBI7kJp/e6VDNEL5mr7GcFZjueK3yURdvOs942ymKVGPcQXXIiqH7Kfami2yBw1HuSmb3lhAz/zuym8aIkElBdTtzt7gkq9ZtTQ/0/tf5JSdwA=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com;\n spf=pass smtp.mailfrom=gmail.com;\n dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com\n header.b=aJr1URz4; arc=none smtp.client-ip=209.85.221.54","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=gmail.com; s=20251104; t=1777541666; x=1778146466;\n darn=vger.kernel.org;\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=UvUyUorr1MRTDJfdV4+jBpLC3bms0Zaxx62BaefmQJ0=;\n        b=aJr1URz4ts9xKuMcuWLmGq53U5h7G3ZSeEUdjWwkmfbEmSRKQCaksH6Fd0CnK6ef8G\n         ijQNKjJ5okRQ3lA4+2yb9wo1a0nqa1QsXZ+jbcM+pTerQL/dr2F7NnE2ZUnFAv6ERdOy\n         EnWsk6uq4fpPAegYEifKm5+xIH08T4lKCrZ/WCerRHEFneWFBp43lMDBHL3V5a8kz7Ig\n         eRaWOBdePvkZndTC7wJH8uNRlp79kAYJl+Y5DJDSAoV3LngRSlyQLr2CWbUUWy6nh0Db\n         wpGx9NdmG16oWBva+MNr1kc2PPO0pFCD+bcZFBP/VgdMOUVzFs+LCxudqOApc+TnHZ3L\n         5n5g==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=1e100.net; s=20251104; t=1777541666; x=1778146466;\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=UvUyUorr1MRTDJfdV4+jBpLC3bms0Zaxx62BaefmQJ0=;\n        b=H07HAISMCl9srlnM8QNoIIwHoFzYfk92b9VURNpjtzD1zPHVYgy8iNLW70ZnM63UF2\n         JCYacqX0oc4JV63C2EYrP6p829LX/KQ0ugf39zaOAu7iPl9sJ2zroLt7vkM/f/Xl67QB\n         ijKlLpHcQz6vcD0VmWcl5ej1tLi4Ib4R3+DnPaMydUe5NW2ZUaBxWiIZTubTBnApzwR5\n         x/yVGwUczhdFHyPhViP60tRjOmz6+P6cRxXalQpP2WhVV10svN05yFGNj++gtmSP7G3v\n         Tn76/i+chMfibZe4m7QNcqvDQFXntXDksri0MmbU6vUM2qKHYBX09QEyBQE643e7kOxm\n         waVw==","X-Forwarded-Encrypted":"i=1;\n AFNElJ+bnnUhXYzeoZKohyof3XIXfSoKqFxiviNpbjFYSAnOjajR88q5ruY5krxEe3TsK2PPGbGbJlULDRuN@vger.kernel.org","X-Gm-Message-State":"AOJu0YxFd0IPr8yRRxOkokRbNPKldG67q6rJVCLKHu7rx76fP97R4jh5\n\t1AeDMkZsLcHloVQRQU4XKs9aCd2Pop8ire/u9kPmUMl/QKHM1U98nAt/","X-Gm-Gg":"AeBDieuYWcS+L6FjztIEqBmSQpqxztHRg3JCXTNsEfX4RvFsxt9/LYv60WN/rfHM65s\n\tzMjzBRXIERE8QMkfuwdwSddyb4/48MM3+bOMtoD58bqZ3T1mKcJHO6hR6IZDJ0pm0MdoXNN+GA3\n\te1hUpd4jZ0vxRySuY2QbwCfIWuLEzSWy7nKizrOEYhDt/nbn5QyuBB2fypQl2lDJBsokr5IGKb7\n\tUlBjbjIfxlvw08zFHEZC9ihjqnwx7wjn0xKetBmv9Kp8+WjEoqCPf8B5YORg06+7W+MvWEGJJJQ\n\tYMgN+P5uWQxEH6n9nQxNLTFkFXwADCTdFUVqLSOWjgI7Q7/A8sWITpgDhJodlPCxTgmovBNXh/c\n\tudp2aODpibc1mQ6xzkdHLntkEO52sUNyjctFOiKONNHB3fZ7SGHSN7BUTj9oxz7z+hbYgVW/fvj\n\tryTn1RSfmO8QJrRKTzlp/ViX3KuA7Vvbi9D0CtcZRszgysT+agIHo0ivH++FChzbu5vwc=","X-Received":"by 2002:a5d:64e3:0:b0:43d:242:b9bb with SMTP id\n ffacd0b85a97d-4493e1c18edmr3288079f8f.18.1777541665576;\n        Thu, 30 Apr 2026 02:34:25 -0700 (PDT)","From":"Biju <biju.das.au@gmail.com>","X-Google-Original-From":"Biju <biju.das.jz@bp.renesas.com>","To":"Geert Uytterhoeven <geert+renesas@glider.be>,\n\tLinus Walleij <linusw@kernel.org>,\n\tRob Herring <robh@kernel.org>,\n\tKrzysztof Kozlowski <krzk+dt@kernel.org>,\n\tConor Dooley <conor+dt@kernel.org>,\n\tMagnus Damm <magnus.damm@gmail.com>","Cc":"Biju Das <biju.das.jz@bp.renesas.com>,\n\tLad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>,\n\tlinux-renesas-soc@vger.kernel.org,\n\tlinux-gpio@vger.kernel.org,\n\tdevicetree@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org,\n\tBiju Das <biju.das.au@gmail.com>","Subject":"[PATCH v4 0/7] Add Renesas RZ/G3L PINCONTROL support","Date":"Thu, 30 Apr 2026 10:34:05 +0100","Message-ID":"<20260430093422.74812-1-biju.das.jz@bp.renesas.com>","X-Mailer":"git-send-email 2.43.0","Precedence":"bulk","X-Mailing-List":"linux-gpio@vger.kernel.org","List-Id":"<linux-gpio.vger.kernel.org>","List-Subscribe":"<mailto:linux-gpio+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-gpio+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"8bit"},"content":"From: Biju Das <biju.das.jz@bp.renesas.com>\n\nHi All,\n\nThis patch series aims to add basic pin-control support for the Renesas\nRZ/G3L SoC. The RZ/G3L pinctrl has an OTHER_POC register compared to other\nSoCs for setting the IO domain voltage for AWO, ISO, and WDT.\n\nDocument the bindings for the RZ/G3L SoC and add pinctrl definitions in\nthe driver. Some IPs need to set the register IPCONT_SEL_CLONECH in SYSC\nto control the clone channel of the IP.\n\nv3->v4:\n * Dropped patch#1 and #3 from the series as it is accepted.\n * Dropped Port P4 from binding header as it does not exist on RZ/G3L SoC.\n * Retained the tag for bindings as it is trivial change.\n * Added a patch to make QSPI register handling conditional.\n * Updated commit description for patch#3.\n * Updated rzg2l_caps_to_pwr_reg() to return mask in addition to register\n   offset.\n * Dropped ffs(), using field_get() instead to get PoC offset in\n   rzg2l_get_power_source().\n * Simplified rzg2l_set_power_source() by using mask from\n   rzg2l_caps_to_pwr_reg().\n * Added scoped_guard() for RMW operation in rzg2l_set_power_source().\n * Added a patch to update rzg2l_pin_to_oen_bit() so that it can reuse on\n   RZ/G3L.\n * Dropped extra white spaces in SD0_CLK and SD0_DATA0 entries.\n * Renamed SD0_DATA* → SD0_DAT* to match the pin function spreadsheet.\n * Renamed SCIF_{RXD,TXD} → SCIF0_{RXD,TXD} to match the pin function\n   spreadsheet.\n * .pin_to_oen_bit = rzg2l_pin_to_oen_bit() and dropped oen_max_port from\n   rzg3l_hwcfg.\n * Updated the data type of func varaible from u8 to unsigned int.\n * Collected the tag.\n * Started using an 8-bit pin mask instead of start and end pin indices,\n   and combined multiple entries with the same port number and config\n   using ORed values of BIT() and GENMASK(), thereby reducing table size.\n * Started using an 8-bit function mask instead of a function index, and\n   got rid of the shared pin bit. This also provides info about the\n   possible functions.\n * Dropped RZG3L_CLONE_CHANNEL_{PACK,DTAT,SHARED_PIN_MASK} macros.\n * Replaced RZG3L_CLONE_CHANNEL_CFG_PIN_{START,END}_MASK macro with\n   RZG3L_CLONE_CHANNEL_PIN_MASK.\n * Replaced RZG3L_CLONE_CHANNEL_CFG_PORT_MASK macro with\n   RZG3L_CLONE_CHANNEL_PORT_MASK.\n * Updated kernel doc comment for clone register from 'registers' to\n   'register'.\n * Dropped dynamic allocation for the clone register cache, instead using\n   static allocation in struct rzg2l_pinctrl_reg_cache, as it is a single\n   32-bit register.\n * Replaced the LUT and for loop in rzg2l_pinctrl_set_clone_mode() with a\n   simple switch statement.\n * Dropped the complex check to find the func match in\n   rzg2l_pinctrl_set_clone_mode() by using pin_func_mask & BIT(func).\n * Dropped the inner for loop for finding a pin match in\n   rzg2l_pinctrl_set_clone_mode() by using pin_mask & BIT(pin).\n * Dropped field_prep with \"val << bit\" in rzg2l_pinctrl_set_clone_mode()\n   as val is just 0 or 1.\n * In rzg2l_pinctrl_probe(), replaced the temporary variable offset with\n   &pctrl->clone_offset.\n * Replaced RZG3L_CLONE_CHANNEL_PIN_CFG_PACK with RZG3L_CLONE_CHANNEL_DATA,\n   and replaced clone_pin_configs, n_clone_pins,\n   r9a08g046_clone_channel_pin_cfg with clone_channel_data,\n   n_clone_channel_data, and r9a08g046_clone_channel_data.\nv2->v3:\n * Dropped clk, pincontrol device node and pincontrol support for SCIF0\n   and GBETH nodes from this series. Will add this later.\n * Documented renesas,clonech property for controlling clone channel\n   control register located on SYSC IP block on RZ/G3L SoC.\n * Retained the tag as it is similar change for RZ/G3E thermal bindings.\n * Updated r9a08g046_gpio_configs[] by replacing the typo AWO->ISO.\n * Added PIN_CFG_PUPD to RZG3L_MPXED_ETH_PIN_FUNCS macro\n * Replaced RZG2L_MPXED_COMMON_PIN_FUNCS->RZG3L_MPXED_PIN_FUNCS in \n   RZG3L_MPXED_PIN_FUNCS_POC macro for setting power source for pins.\n * Added clone channel control support in the driver\nv1->v2:\n * Split DTSI patches from bindings\n * Fix typo maxItems->minItems in bindings\n * Collected the tag\n\nBiju Das (7):\n  dt-bindings: pinctrl: renesas: Document RZ/G3L SoC\n  pinctrl: renesas: rzg2l: Make QSPI register handling conditional\n  pinctrl: renesas: rzg2l: Add support for selecting power source for\n    {WDT,AWO,ISO}\n  pinctrl: renesas: rzg2l: Update OEN pin validation to use exact match\n  pinctrl: renesas: rzg2l: Add support for RZ/G3L SoC\n  pinctrl: renesas: rzg2l: Simplify rzg2l_pinctrl_set_mux()\n  pinctrl: renesas: rzg2l: Add support for clone channel control\n\n .../pinctrl/renesas,rzg2l-pinctrl.yaml        |  20 +\n drivers/pinctrl/renesas/pinctrl-rzg2l.c       | 485 +++++++++++++++++-\n .../pinctrl/renesas,r9a08g046-pinctrl.h       |  38 ++\n 3 files changed, 526 insertions(+), 17 deletions(-)\n create mode 100644 include/dt-bindings/pinctrl/renesas,r9a08g046-pinctrl.h"}