From nobody Mon Jun 15 20:39:47 2026 Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 39EB618AFE for ; Mon, 13 Apr 2026 18:25:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776104709; cv=none; b=Au9mqZNKHRpJQdJRPbfmaJmagJeY/n7b2GKrUpeVvcjUKZU++2iMJroOTST41PmazDkgQPczBBJTEm/HPOx9ZgOyVY+FMw01YD+E8rXXwr1PsgawNoR/FetpsoHVBMEAcYgZNLbQ2KIM4RiQW3UxW8GAkveu1nWcndzbnFxH/nQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776104709; c=relaxed/simple; bh=cBFo06Qs8zryMh2Fij9/Im87Zl7Y6ils4ITVNZ8OOaQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TbAp05AhCmXNwWxT05tMQnONj/Jvz+GkUBLxgfBsjeheKETnp6X6mb2aom+ePi4ypvrjo32/HY4kRF4XaQFZPNFK4bwzvmGqw1AO7gfrWO0lapG2mMHUmP6r7dabhEG2ugZZ3YKE4kmbzyQWGd5gu0/2tHMUg5nsS4VW9iiClsU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=oFEuZ2oN; arc=none smtp.client-ip=209.85.128.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="oFEuZ2oN" Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-488a9033b2cso57781055e9.2 for ; Mon, 13 Apr 2026 11:25:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776104707; x=1776709507; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=nagTRmYKFkoTf8+mO64XZTWVXTJ06QmVA5WY/pQVWrM=; b=oFEuZ2oNYePUDLztK+/zDIQ61hVDSNHzElOqyOOYYBY1oZQeoFYZ4/37TgwV8jzxbS ZQM0YQz/PywQSGlBKzEyQ3bZoBn+xgz06HvDHJrxsEbcazsRUjPARlTJBrb/2yuQeV8o QyMJnmtutTS1WM+Zg5dY1S794c3eDt/OmconmLW0ACL+I2IAAMHdvOtDdy/TEzAMOFKZ Og250vffQdCHti4iLFLrmk3esEKptoPx1DFaX8tJSXgoNfw6YOv/iq+PBLfHxMZhih+F ypz7kVrmqiN/8lt1olOtJkwdRTWSAWy+4896wy0zT8hC2/ZSbdBBczor51XgalQ0tJd1 2Uaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776104707; x=1776709507; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=nagTRmYKFkoTf8+mO64XZTWVXTJ06QmVA5WY/pQVWrM=; b=tBUDeFBfDLW4ild0mYH7hQ3Og5TzPKeOcQy1YTHOc3XUuBK/TfwuKjVSllzg4KBHC9 Mm0lBihea/JE0YHA6ShYok4RTHH4RRA69K1DA/brQ7DZSfdWGpSz58L37aoNaIIChTH6 jVR++mfel2gjKkxIhlixYL+YNQcWwnFYuRdFOK+CFEjWCcS/EA5QkkmGH5FSUraEw4tp g6nvBIfx8+QTEL0jJUpepXxOQLFiLvhRFS5szJv5qug5c4+FRWYOvdrOX0dEiqekW7pH THCv56NGgvpGkRf49pbTTe/eVuX0HH00m+4ektTZrUZhtg5sshMn9ZgXsCLvAV7kLp6w 1Eaw== X-Forwarded-Encrypted: i=1; AFNElJ+b1zJJomnHkLasSAKNndPSTOjQ+gbA1A9ri07syZu1+WGzZ/MOng7bWznjDMgws/9istXMn/0DBftjfLo=@vger.kernel.org X-Gm-Message-State: AOJu0Yy06/jcK+Q974vMfyvunl0PWzYC2FQz1v70hpbRnCR/mBWCguUc 1S3zG9azexq6TFhREkCjVcw0Wkhy7f/f2NEHqfBrHvTNE8D9KNm6oV67 X-Gm-Gg: AeBDietjrQaaGlK+1suXRDcaZDGjjVYruG/zaaYoKSJGQK/rvDeiVu/w0y2HCfY3hj7 jrf2bXji/9gz9/HTEa/ILEmzzNotEuI226AXd6J6CshxS7fzN6ET7fUMpnLy1mdzIJi2M3oeo8k kkhjxHBP8J3wZpENc5Iba8RpTnyhE2kWbwR7KYlMZrgQYCzWiyByowXXriPOo9uF+7EtUjSrZTw 7OWe6OBY25MZi1T7gBBFPupPZa4S+SFi9U7tp3ZE+lUe+HTFb08rDUKK7LSxzDCRPfUwT+FhLrp AcoTarDsKKN16dwHND1D65wT6gtvnpWZYgugh+rn4cEUHxoQycf27KJlmPabafVhFJgAnl+Kt1L Hnnu3mAL96lQgDxH4wKpRz78/l7/5Zec99JINBXBM7VbyjRCxUVP/9yjZ/Q4pUc3oZeML5T6Izp 1av5euABmIYygCjN8oF/rIGkAm63VQiVLV9QG4FwOodx4Spet10Z8niLl5CEQQMKRWZ+etLr4FR svVyXWSZvScI6XRgHl2xIY5P4pjQEudB4M9t77Qo9N7PRk= X-Received: by 2002:a05:600c:c0c9:b0:487:1826:d89b with SMTP id 5b1f17b1804b1-488d67e262cmr131972925e9.9.1776104706627; Mon, 13 Apr 2026 11:25:06 -0700 (PDT) Received: from iku.example.org ([2a06:5906:61b:2d00:8060:3087:2ea2:f494]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-488d5b56d1asm301175695e9.15.2026.04.13.11.25.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Apr 2026 11:25:06 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: Geert Uytterhoeven , Linus Walleij Cc: linux-renesas-soc@vger.kernel.org, linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Prabhakar , Biju Das , Fabrizio Castro , Lad Prabhakar Subject: [PATCH v2 1/5] pinctrl: renesas: rzg2l: Fix SMT register cache handling Date: Mon, 13 Apr 2026 19:24:51 +0100 Message-ID: <20260413182456.811543-2-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260413182456.811543-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20260413182456.811543-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Lad Prabhakar Store SMT register cache per bank instead of using a single array. On RZ/V2H(P), the SMT register is split across two 32-bit registers: bits 0/8/16/24 control pins 0-3, while pins 4-7 are controlled by the corresponding bits in the next register. The previous implementation cached only a single SMT register, leading to incomplete save/restore of SMT state. Convert cache->smt to a per-bank array and allocate storage for both halves. Update suspend/resume handling to save and restore both SMT registers when present. Fixes: 837afa592c623 ("pinctrl: renesas: rzg2l: Add suspend/resume support = for Schmitt control registers") Signed-off-by: Lad Prabhakar Reviewed-by: Geert Uytterhoeven --- v1->v2: - New patch --- drivers/pinctrl/renesas/pinctrl-rzg2l.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/drivers/pinctrl/renesas/pinctrl-rzg2l.c b/drivers/pinctrl/rene= sas/pinctrl-rzg2l.c index 561e6018fd89..5722cd4c581d 100644 --- a/drivers/pinctrl/renesas/pinctrl-rzg2l.c +++ b/drivers/pinctrl/renesas/pinctrl-rzg2l.c @@ -335,7 +335,7 @@ struct rzg2l_pinctrl_reg_cache { u32 *iolh[2]; u32 *ien[2]; u32 *pupd[2]; - u32 *smt; + u32 *smt[2]; u8 sd_ch[2]; u8 eth_poc[2]; u8 oen; @@ -2737,10 +2737,6 @@ static int rzg2l_pinctrl_reg_cache_alloc(struct rzg2= l_pinctrl *pctrl) if (!cache->pfc) return -ENOMEM; =20 - cache->smt =3D devm_kcalloc(pctrl->dev, nports, sizeof(*cache->smt), GFP_= KERNEL); - if (!cache->smt) - return -ENOMEM; - for (u8 i =3D 0; i < 2; i++) { u32 n_dedicated_pins =3D pctrl->data->n_dedicated_pins; =20 @@ -2759,6 +2755,11 @@ static int rzg2l_pinctrl_reg_cache_alloc(struct rzg2= l_pinctrl *pctrl) if (!cache->pupd[i]) return -ENOMEM; =20 + cache->smt[i] =3D devm_kcalloc(pctrl->dev, nports, sizeof(*cache->smt[i]= ), + GFP_KERNEL); + if (!cache->smt[i]) + return -ENOMEM; + /* Allocate dedicated cache. */ dedicated_cache->iolh[i] =3D devm_kcalloc(pctrl->dev, n_dedicated_pins, sizeof(*dedicated_cache->iolh[i]), @@ -3066,8 +3067,14 @@ static void rzg2l_pinctrl_pm_setup_regs(struct rzg2l= _pinctrl *pctrl, bool suspen } } =20 - if (has_smt) - RZG2L_PCTRL_REG_ACCESS32(suspend, pctrl->base + SMT(off), cache->smt[po= rt]); + if (has_smt) { + RZG2L_PCTRL_REG_ACCESS32(suspend, pctrl->base + SMT(off), + cache->smt[0][port]); + if (pincnt >=3D 4) { + RZG2L_PCTRL_REG_ACCESS32(suspend, pctrl->base + SMT(off) + 4, + cache->smt[1][port]); + } + } } } =20 --=20 2.53.0 From nobody Mon Jun 15 20:39:47 2026 Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 71B8635AC21 for ; Mon, 13 Apr 2026 18:25:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776104710; cv=none; b=CFXaAYylq0ToD1n1a3q3Y43fzXzkeSCefSrRVmkBs4OLKH7jJCxvmo9aQ6cYQB42gVshSy7a1CNzsj2j1yWP4AJmBByWmBl/R6c2xUJnb1YLVFD3xbpGfX7nJBkY2BQ1UvG968plOJrbHz9mYdh/xZryB0V55JTGeezNY8r76Dc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776104710; c=relaxed/simple; bh=PhMu6IlyuJrTYVg5xXNObtcZkXdo0CAF0SJTcIQdUEo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=A+Akn7ZD2GTRYZ9+rnueKg6pSB4WvQ3IRvTbEHBpY6PSn/wt7Q8DLvyPuIiqiHSu8LX8mGS9xEYwTY1Fu9NAnQMZU2Vq+m16qeET3AR0VPsEl0jsjdYOhjquGhWhaklrkA/8N/1UU+qvZNDROi/+LjhUOTxbbi9QpOHywwTdsGA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=tGjw8SYn; arc=none smtp.client-ip=209.85.128.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="tGjw8SYn" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-488af9fdaa7so32778785e9.1 for ; Mon, 13 Apr 2026 11:25:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776104708; x=1776709508; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=TzWRo5P+IBz0/FlUg+Uf7FiB7FVcxaQR5SJIRNr9yuc=; b=tGjw8SYnJjdaK0v6xY1IrmZtbhdc4GzLUPHCT09JaLAluP+4vBN9EXoDoyW75g7olO EhptSRLu3+Oj3ZjFzGIk4PJcUYtQ44nlPpn9Udvpyv9D9bDTkteD9WG1FmPn8uahWf6o /U2rYWPsp89y/xuXUBFA5gLQbGS1IagF1KJZM2XMDiYApVWjNQpdRxgpdWeZhuysI5gB S86dZefYaspMyioJ9+P1nXpkiV1b3FEcVNon9hz51/sIG4z3JePHXopvGtcN1r8CPZNA 3afF7GEc2rAD9vE9fh5gQFC6nLnsYO8vhem3otvQGFJrmvDZlgkC+pzJdC/cl0iy7e29 fbGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776104708; x=1776709508; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=TzWRo5P+IBz0/FlUg+Uf7FiB7FVcxaQR5SJIRNr9yuc=; b=RJzL6j8rYaetSR+guP/QNd9i081yf5OuJC3P1SBc0pI5CTX8oxuJiSmgkq+K5KVsdv LTIYxGSt6Vkr/KXhXjxSq2XAmtTPBMkTcKZ+E/aVAtGh9hSC99YJZ+g8/EV9otbTtE6h WfyYHMUrW9yDY0sqYslL+xV17SEZCOVDrpXqvIDTbShubr8i1GrnApNHmSEuAEQnKnsN 1FX7EqMVI5+8aIxeecBXPX5x4tJDjk+07ZZD3a2Bstc5bzU6wLAJrU9F/EXUEwjrL+1n OBFPxQV/oDZeQhnzjCv8xnNTVfwGFaFHmg0mFUViNDelwClts0ikuIB/7LsLutEWAmQe QH1Q== X-Forwarded-Encrypted: i=1; AFNElJ8qyv8SGwur3DyxaSunD299FvY80ipD96wBoa/5iogu13vbXsArIP3aWP+BCQMfmXBkMKju9e/az3ZHKl4=@vger.kernel.org X-Gm-Message-State: AOJu0Yx04GqElK0sTaeeQ0zrTPHkASf5ohHb5Rsx35beLErBV+BcabmC k2BQEZsq8Gj9HbSQ7GrjAkpNztsSUkaWqblrPsN0v1fXPN+K9UVsl1VxNZR0W+sg+Go= X-Gm-Gg: AeBDietRei3QDymm/ojKkCNidTaH7HsXoogCwtpvOwSWKZkOzqNhz0Mevv2Oiv+tmmR EVa4CsWma+dHskhc8JM1ZbujDyWLdhtehSqfr61aqXGbIPySnETz6kiKcrfxNc64Zpyd2rKL8Fv pP18xWQZRccY5IQ+h/owWXgdfnbU0HcyC2b34LayZ4z4/pLdh65c0frQerHAmtzLbTBAG/h5ysg Bq8w/FckHBpwG5dUQHtI/kwQzfCw0YULCibXfFwgsykNf+zaDHTlUyO6E+g2HnYyIBT0oR3ZEHG SDhfqDLdktSWZi5xv4qRWpAm/zw7l2D7Or2cgX0fWHxUcwP/42eCPRv8lZBuO3seVcsViOroYZZ IxVYbJHVQv8hykpnMZCqjJVOlCjFVBv7NU0BM93ltIK3P5OUnk0E+zRP3PO7ag1f7fs9d+RC94x 0wZZM2Mqyq/Edr50qb74edxyoXbCHFtzF4veVrty/yvYHojRyIID/jSMiSKMfL2aNNGmxBLby5o E56BWhzmpHcQEGAIqPGQF/TMguyZnU5J8VNlXFPZCeTggc= X-Received: by 2002:a05:600c:8907:b0:488:ab1d:dcc5 with SMTP id 5b1f17b1804b1-488d6ac1bafmr127735555e9.27.1776104707704; Mon, 13 Apr 2026 11:25:07 -0700 (PDT) Received: from iku.example.org ([2a06:5906:61b:2d00:8060:3087:2ea2:f494]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-488d5b56d1asm301175695e9.15.2026.04.13.11.25.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Apr 2026 11:25:06 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: Geert Uytterhoeven , Linus Walleij Cc: linux-renesas-soc@vger.kernel.org, linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Prabhakar , Biju Das , Fabrizio Castro , Lad Prabhakar Subject: [PATCH v2 2/5] pinctrl: renesas: rzg2l: Add SR register cache for PM suspend/resume Date: Mon, 13 Apr 2026 19:24:52 +0100 Message-ID: <20260413182456.811543-3-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260413182456.811543-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20260413182456.811543-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Lad Prabhakar Include the SR (Slew Rate) register in the PM suspend/resume register cache. Signed-off-by: Lad Prabhakar Reviewed-by: Geert Uytterhoeven --- v1->v2: - Added dedicated cache for SR registers. --- drivers/pinctrl/renesas/pinctrl-rzg2l.c | 38 +++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 3 deletions(-) diff --git a/drivers/pinctrl/renesas/pinctrl-rzg2l.c b/drivers/pinctrl/rene= sas/pinctrl-rzg2l.c index 5722cd4c581d..1e8f631fcb66 100644 --- a/drivers/pinctrl/renesas/pinctrl-rzg2l.c +++ b/drivers/pinctrl/renesas/pinctrl-rzg2l.c @@ -322,6 +322,7 @@ struct rzg2l_pinctrl_pin_settings { * @pupd: PUPD registers cache * @ien: IEN registers cache * @smt: SMT registers cache + * @sr: SR registers cache * @sd_ch: SD_CH registers cache * @eth_poc: ET_POC registers cache * @oen: Output Enable register cache @@ -336,6 +337,7 @@ struct rzg2l_pinctrl_reg_cache { u32 *ien[2]; u32 *pupd[2]; u32 *smt[2]; + u32 *sr[2]; u8 sd_ch[2]; u8 eth_poc[2]; u8 oen; @@ -2760,6 +2762,11 @@ static int rzg2l_pinctrl_reg_cache_alloc(struct rzg2= l_pinctrl *pctrl) if (!cache->smt[i]) return -ENOMEM; =20 + cache->sr[i] =3D devm_kcalloc(pctrl->dev, nports, sizeof(*cache->sr[i]), + GFP_KERNEL); + if (!cache->sr[i]) + return -ENOMEM; + /* Allocate dedicated cache. */ dedicated_cache->iolh[i] =3D devm_kcalloc(pctrl->dev, n_dedicated_pins, sizeof(*dedicated_cache->iolh[i]), @@ -2772,6 +2779,12 @@ static int rzg2l_pinctrl_reg_cache_alloc(struct rzg2= l_pinctrl *pctrl) GFP_KERNEL); if (!dedicated_cache->ien[i]) return -ENOMEM; + + dedicated_cache->sr[i] =3D devm_kcalloc(pctrl->dev, n_dedicated_pins, + sizeof(*dedicated_cache->sr[i]), + GFP_KERNEL); + if (!dedicated_cache->sr[i]) + return -ENOMEM; } =20 pctrl->cache =3D cache; @@ -3003,7 +3016,7 @@ static void rzg2l_pinctrl_pm_setup_regs(struct rzg2l_= pinctrl *pctrl, bool suspen struct rzg2l_pinctrl_reg_cache *cache =3D pctrl->cache; =20 for (u32 port =3D 0; port < nports; port++) { - bool has_iolh, has_ien, has_pupd, has_smt; + bool has_iolh, has_ien, has_pupd, has_smt, has_sr; u32 off, caps; u8 pincnt; u64 cfg; @@ -3024,6 +3037,7 @@ static void rzg2l_pinctrl_pm_setup_regs(struct rzg2l_= pinctrl *pctrl, bool suspen has_ien =3D !!(caps & PIN_CFG_IEN); has_pupd =3D !!(caps & PIN_CFG_PUPD); has_smt =3D !!(caps & PIN_CFG_SMT); + has_sr =3D !!(caps & PIN_CFG_SR); =20 if (suspend) RZG2L_PCTRL_REG_ACCESS32(suspend, pctrl->base + PFC(off), cache->pfc[po= rt]); @@ -3075,6 +3089,15 @@ static void rzg2l_pinctrl_pm_setup_regs(struct rzg2l= _pinctrl *pctrl, bool suspen cache->smt[1][port]); } } + + if (has_sr) { + RZG2L_PCTRL_REG_ACCESS32(suspend, pctrl->base + SR(off), + cache->sr[0][port]); + if (pincnt >=3D 4) { + RZG2L_PCTRL_REG_ACCESS32(suspend, pctrl->base + SR(off) + 4, + cache->sr[1][port]); + } + } } } =20 @@ -3089,7 +3112,7 @@ static void rzg2l_pinctrl_pm_setup_dedicated_regs(str= uct rzg2l_pinctrl *pctrl, b * port offset are close together. */ for (i =3D 0, caps =3D 0; i < pctrl->data->n_dedicated_pins; i++) { - bool has_iolh, has_ien; + bool has_iolh, has_ien, has_sr; u32 off, next_off =3D 0; u64 cfg, next_cfg; u8 pincnt; @@ -3110,6 +3133,7 @@ static void rzg2l_pinctrl_pm_setup_dedicated_regs(str= uct rzg2l_pinctrl *pctrl, b /* And apply them in a single shot. */ has_iolh =3D !!(caps & (PIN_CFG_IOLH_A | PIN_CFG_IOLH_B | PIN_CFG_IOLH_C= )); has_ien =3D !!(caps & PIN_CFG_IEN); + has_sr =3D !!(caps & PIN_CFG_SR); pincnt =3D hweight8(FIELD_GET(RZG2L_SINGLE_PIN_BITS_MASK, cfg)); =20 if (has_iolh) { @@ -3120,7 +3144,10 @@ static void rzg2l_pinctrl_pm_setup_dedicated_regs(st= ruct rzg2l_pinctrl *pctrl, b RZG2L_PCTRL_REG_ACCESS32(suspend, pctrl->base + IEN(off), cache->ien[0][i]); } - + if (has_sr) { + RZG2L_PCTRL_REG_ACCESS32(suspend, pctrl->base + SR(off), + cache->sr[0][i]); + } if (pincnt >=3D 4) { if (has_iolh) { RZG2L_PCTRL_REG_ACCESS32(suspend, @@ -3132,6 +3159,11 @@ static void rzg2l_pinctrl_pm_setup_dedicated_regs(st= ruct rzg2l_pinctrl *pctrl, b pctrl->base + IEN(off) + 4, cache->ien[1][i]); } + if (has_sr) { + RZG2L_PCTRL_REG_ACCESS32(suspend, + pctrl->base + SR(off) + 4, + cache->sr[1][i]); + } } caps =3D 0; } --=20 2.53.0 From nobody Mon Jun 15 20:39:47 2026 Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CCD3A36607D for ; Mon, 13 Apr 2026 18:25:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776104712; cv=none; b=K7wWlMtHWK8dNPD6Az74I9+hdK4oMFYFlXG7dUhpTpomlnOlxdTtO9MRBkhHRCcbCoIRggY2oL6u1cT+LZ2TQzbE/lSZUa4ghuw7lu6GsZT33Yt2f96q9H50iAj8CWb9UA6PxWWi/wzlFR82MQRrSm99Lnv1EY1J9rxTCECC7X0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776104712; c=relaxed/simple; bh=ctHMnk/1g0jPYjYI2obSufNG3OHrd+HDWiATO42Of9s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=eA3Zg24VfO9ZitFvx2LufVcVUVxHNCS0+s/i11h33LPOfoweAv7VqU7439fsqwtTu7SQVbsdeg+GemiQp4d7YlngTSHvrkoZSe5+BZ4pX9mDsPUo4vQO7MBOinRRxXwYGM8484FkG20ICGic7mUvMjZg56B6CCXyOOhsBFrIees= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=hw4IVPL0; arc=none smtp.client-ip=209.85.128.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="hw4IVPL0" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-488aa77a06eso79969485e9.0 for ; Mon, 13 Apr 2026 11:25:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776104709; x=1776709509; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=eSD4IEKgoiSeEKAhaOoScHrR4rPxBxdMU+VQyrkI5fY=; b=hw4IVPL0uKtbsaQUlzmr6Ao5LU76gobjuxC3EuCltXDNBzwmghZXwSnVNeNitJi7of 2KQl6OK8OJVjP+wRfkiS9wasAk9wORClITo4VaziJVdnxAst4CqDa/0RVj0Tppadd7wC PQAjxUnB2bmgNjGunsn25xOY/sTREdxnFDRGM4iI920HL5Dkg7CosD8IhxSa4C4qNdF1 dC0q87II1jYqTQQBWPzR17xjD+sRy4cxO+a/d2TrkHZOpHtbQNy+fpk6QDyLeLgnHG9f nwm44g7N3U1p5fE5iW2iuzM18id6yf4LIxmtPsoj7EHf/FFYrfjU0gCNyPGaKzPKOqhM TyuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776104709; x=1776709509; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=eSD4IEKgoiSeEKAhaOoScHrR4rPxBxdMU+VQyrkI5fY=; b=OlTmXzxnt8w07egaK8nsEyjChUTetfwm+EwV3R8ofhjhQKpcpp/oALXoqubpNgQiIf 3CO1cPZgOkbmdGOGkZsU71/REAZWaeT0uw+9+JNlNJZWwgCK2wWjWywjtwS0bb7db3tm JTr+8JC8+GkXwWvFDj3LPzg1Bd5d+N1+/zigLW8LgxjEcle1g5ziPqqeGw/7hILvif0u Ne3hzYhpHf6DK+U+u9IUeGaWYtOYmmJoe7i0kaXx4C4FAzGUZwou5t2SJfTzWtVsUYEF HIQ0QEp4QjIgtnXUrunuqvaj3YzjeKBR6RowJ/C23llcqd3O7/SPL3NgUfw0GXn4xQMw HV9w== X-Forwarded-Encrypted: i=1; AFNElJ+/TUYKcR8KZDDDkQwH+5JBGxcqWqLRnt6DBbKOO5imbYAhcVjVxWgG+IrLjrMZGQ80HsXPdmm0lXE0kUE=@vger.kernel.org X-Gm-Message-State: AOJu0YzGGIP1YOHBhxPcBnLm8sjDsJhhGvO/Xz9+HtdL6ta5plcHULm9 FJiKpdzEuVKc2uyLWykuNaY38XR+3cqVVaXcEEv6r33XabU/ogUZjnNQ X-Gm-Gg: AeBDieuwMgN0/vd6hdHUFCCAUgudtvHPoNXT/a9gJM3Itysva6XEo487DKtjHDNAoS6 81ngoZitn+Sdt+9hEP3morVlEmbnlUPMcTFxi/KkcDIlqD5cFOTtwZ+uohmF+rv68wSdWlIcd2z MK/oqrekwV15/ZtU4sti/AEcaposJMDeIKIMCoAix19wOsnIAHlvnp3+zDFwQOcZrcMuBf78CbK M5rJIUfM0TysFxVLKeMEsT3OIXptt3J4SVEvw5BKjnSaDiFvbKvN63Jy3zoTkcWBGD0OOaTEyE+ gSQxRpobJmwl7RWDVcGcn9Rc1VQD6Mx6+JIO3edZ7PB3DSdgkGQAJd9Ycym+hxTz/kqwy5p73+c SqKfAPCsJV5JMd3OpKqW9tgE4MIDVUyrglAaF8Pow9rD/W2fH4nsdtT3zRJFA8dwFtVXLiTPrNJ EbAOJzVznSqku8sNRiHtPpo68MBCXCl5COxMncn8S4P3AokB58xgoXmV8oUXtHn9TvREYvEC9lB xE0+9O5HG7xRPxVbk5AV/aSOoJav1vVeP2qGbdluEyoh/Q= X-Received: by 2002:a05:600c:4987:b0:488:def6:bb17 with SMTP id 5b1f17b1804b1-488def6bce5mr74688915e9.4.1776104709159; Mon, 13 Apr 2026 11:25:09 -0700 (PDT) Received: from iku.example.org ([2a06:5906:61b:2d00:8060:3087:2ea2:f494]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-488d5b56d1asm301175695e9.15.2026.04.13.11.25.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Apr 2026 11:25:07 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: Geert Uytterhoeven , Linus Walleij Cc: linux-renesas-soc@vger.kernel.org, linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Prabhakar , Biju Das , Fabrizio Castro , Lad Prabhakar Subject: [PATCH v2 3/5] pinctrl: renesas: rzg2l: Handle RZ/V2H(P) IOLH configuration in PM cache Date: Mon, 13 Apr 2026 19:24:53 +0100 Message-ID: <20260413182456.811543-4-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260413182456.811543-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20260413182456.811543-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Lad Prabhakar Include PIN_CFG_IOLH_RZV2H in the IOLH capability checks when saving and restoring pin configuration registers. On RZ/V2H(P), the IOLH configuration is defined by the PIN_CFG_IOLH_RZV2H capability. The previous implementation did not account for this, causing the IOLH registers to be skipped during PM save/restore. Signed-off-by: Lad Prabhakar Reviewed-by: Geert Uytterhoeven --- v1->v2: - New patch --- drivers/pinctrl/renesas/pinctrl-rzg2l.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/pinctrl/renesas/pinctrl-rzg2l.c b/drivers/pinctrl/rene= sas/pinctrl-rzg2l.c index 1e8f631fcb66..b2eb9dca7eec 100644 --- a/drivers/pinctrl/renesas/pinctrl-rzg2l.c +++ b/drivers/pinctrl/renesas/pinctrl-rzg2l.c @@ -3033,7 +3033,8 @@ static void rzg2l_pinctrl_pm_setup_regs(struct rzg2l_= pinctrl *pctrl, bool suspen } =20 caps =3D FIELD_GET(PIN_CFG_MASK, cfg); - has_iolh =3D !!(caps & (PIN_CFG_IOLH_A | PIN_CFG_IOLH_B | PIN_CFG_IOLH_C= )); + has_iolh =3D !!(caps & (PIN_CFG_IOLH_A | PIN_CFG_IOLH_B | + PIN_CFG_IOLH_C | PIN_CFG_IOLH_RZV2H)); has_ien =3D !!(caps & PIN_CFG_IEN); has_pupd =3D !!(caps & PIN_CFG_PUPD); has_smt =3D !!(caps & PIN_CFG_SMT); @@ -3131,7 +3132,8 @@ static void rzg2l_pinctrl_pm_setup_dedicated_regs(str= uct rzg2l_pinctrl *pctrl, b } =20 /* And apply them in a single shot. */ - has_iolh =3D !!(caps & (PIN_CFG_IOLH_A | PIN_CFG_IOLH_B | PIN_CFG_IOLH_C= )); + has_iolh =3D !!(caps & (PIN_CFG_IOLH_A | PIN_CFG_IOLH_B | + PIN_CFG_IOLH_C | PIN_CFG_IOLH_RZV2H)); has_ien =3D !!(caps & PIN_CFG_IEN); has_sr =3D !!(caps & PIN_CFG_SR); pincnt =3D hweight8(FIELD_GET(RZG2L_SINGLE_PIN_BITS_MASK, cfg)); --=20 2.53.0 From nobody Mon Jun 15 20:39:47 2026 Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com [209.85.128.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E00DD377564 for ; Mon, 13 Apr 2026 18:25:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776104713; cv=none; b=TWA2Gc3ix1Ky+1bIkecL18MwoN7X1iezG5kZ1qhRZEBWaYhZR551W+J2qrrnftN9tCp9vfy24NX/q/9zwfa9NOXsvnZffFrjXYuXJkKCWbveGf6x9y6rQtRzybrG00ZDEIXAqOl++EtVbUA5A5sVr3uQh2w0ZaS6WUSDphw5sGQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776104713; c=relaxed/simple; bh=U4Y/F+JH7fE+UC5EjEQ+l4RRAJguyzUzwpFHaYQwvWY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jd2xCapD2WWeA88puzH7NWKg1Q0fcZPPffwXoe3zCuJHCKjJTJx6NSE8p+RNuu8BSdNdBqFgaHvmOBYSdEn/pr5T6NRFNN9q4Lo9nWx6GmH6OLzCHTNDg39rsDFp9dcTGA5DOmiugO0Fts1qvMWbF9va41mFdAecEs4mRLKhM3c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=oUtnyAvL; arc=none smtp.client-ip=209.85.128.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="oUtnyAvL" Received: by mail-wm1-f47.google.com with SMTP id 5b1f17b1804b1-488ad135063so45645385e9.0 for ; Mon, 13 Apr 2026 11:25:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776104710; x=1776709510; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=QvXShpkoYrfA999CM9pWEW9h1p62k4eqsGp9A9pTeT8=; b=oUtnyAvLJX682lG7orYukO4hCuYq7lOWhFQhKiqEm8L1Yn/VJ7pKqX2lLekTCNYXQS w3xlFXyZm/9aEHpS4rf807crVF2J3p5YxuT+2wJz0+xEKSWsz4D4baY0Juet1FTFLcQT PB3TgPUb6Kf8DD6aUvNvRw+BOyc7ByHmWUIACyno2mcfp0Y5us99dR2g1JlOZA/L9puV kHhaQxCSuukeR2JTI5QjHzTh1v4uKEAoVOZHCnTHfzBWEwBGY5VSVqOZvV4UC3pvRVgN xOx5MDDfzONvZkaY5Xe7GJTdKTmsYKabzm5k2NfywKIFCtxBdEyApPxFQoHdRdzo/Y5i DpPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776104710; x=1776709510; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=QvXShpkoYrfA999CM9pWEW9h1p62k4eqsGp9A9pTeT8=; b=ZduYeO/VvYQkfDgw7N6eEFnY4X1yjPyxwvL/ra6Jc6bc+yqsT9vAfk719GpiFMCFym Mjl+jGHtLTqvgQC00kuFePOHgT6aOBYjE3NfQf7Q3x1EhGfT7d5gDk+Z+saH2HCv7kAU W5aj58R8QwHb7B4TLNomC/GTWqlUoBztEOyI8b919+StducTuqkBLDK9AHbODaKYiV/5 f++mg4TOxVU0FFb3y1rUn/8c+36KLAAzgOBUVpdD5lAKDKfNRqEVF2RoEoAtQt2fRcaU 62dVK+XbN8ixTpUTxLXwOYG3s2XS38FuPl+UqSnQg791L+60UdHBXJWQ+DaQY1jNn6dY XNmw== X-Forwarded-Encrypted: i=1; AFNElJ8rS9yNqBhMbGOv7WBOAR+L0UXcGdpNBbUsSrZ14lVmOG/jk7d2Pbi2gkFyKHuvAWatJZVQCX/iMk6cR0E=@vger.kernel.org X-Gm-Message-State: AOJu0Yzxka8KpXJ0hRcFjRF9FxCSZ5/R8sqwFnMMx8pvwbj2uvGYs1Vd 3BpvgO/KI6x54WtAzWLx4V9Co9r9dwGFD2XQI8y1uOoHO4JnYZE8RL7v X-Gm-Gg: AeBDiesveaW082D4NwqGXltyGwEq9Pw51b3XV7ZcMKugr2BtKm5Kya6PcqRBKlDQ3FP 58p2XbZuiUSdtgQN4Vqe+Y/36m5M/Lu0S0ffekIkyXThoLjv3SbHw4P9VflPxdNdsmuOo5AJ8UT NqBpD1Q9EV0qsaCVYQh/WrIeqGSnJUL5r87rTehNLlkQD8CHVQRRlCwyR3n3RlbpXD8hx8uap3y 502DPydUbL5FhHmdbwcGVPrVBLxMQUXevUNmtr/33hdxt7eF37WZR/p0toX7uSHDcHRl8n0hb+d 38lgNGnXHgRoU70jyqtaefo1NL2Lqh2xmUmK7HBSoHAwFGXpEgK+lw33So8KYYwBBFiZApd39Pp jbu2bCHApJAzCOEYm7wsD0b1Bq3iFv86kGfxsE9d/bkxQRqfsKAD8XC6YQK2GT+KAq64Oedp6D+ MkTHaDDFLPtE2KWClg9h8dNJs+sDNXoGpPFVIvhLvY+31EIdpPQwCFr8HEZZDlAYtuIyGXBaL6H 35T7Nd1nsID6wVWarejU7d2r5jtej8RXgmYUGBkxtzV30I= X-Received: by 2002:a05:600c:5292:b0:486:fe39:28b7 with SMTP id 5b1f17b1804b1-488d67fa48emr206566925e9.9.1776104710273; Mon, 13 Apr 2026 11:25:10 -0700 (PDT) Received: from iku.example.org ([2a06:5906:61b:2d00:8060:3087:2ea2:f494]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-488d5b56d1asm301175695e9.15.2026.04.13.11.25.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Apr 2026 11:25:09 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: Geert Uytterhoeven , Linus Walleij Cc: linux-renesas-soc@vger.kernel.org, linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Prabhakar , Biju Das , Fabrizio Castro , Lad Prabhakar Subject: [PATCH v2 4/5] pinctrl: renesas: rzg2l: Add NOD register cache for PM suspend/resume Date: Mon, 13 Apr 2026 19:24:54 +0100 Message-ID: <20260413182456.811543-5-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260413182456.811543-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20260413182456.811543-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Lad Prabhakar Include the NOD (N-ch Open Drain) register in the PM suspend/resume register cache. Signed-off-by: Lad Prabhakar Reviewed-by: Geert Uytterhoeven --- v1->v2: - New patch --- drivers/pinctrl/renesas/pinctrl-rzg2l.c | 37 +++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/drivers/pinctrl/renesas/pinctrl-rzg2l.c b/drivers/pinctrl/rene= sas/pinctrl-rzg2l.c index b2eb9dca7eec..be6d229c927b 100644 --- a/drivers/pinctrl/renesas/pinctrl-rzg2l.c +++ b/drivers/pinctrl/renesas/pinctrl-rzg2l.c @@ -323,6 +323,7 @@ struct rzg2l_pinctrl_pin_settings { * @ien: IEN registers cache * @smt: SMT registers cache * @sr: SR registers cache + * @nod: NOD registers cache * @sd_ch: SD_CH registers cache * @eth_poc: ET_POC registers cache * @oen: Output Enable register cache @@ -338,6 +339,7 @@ struct rzg2l_pinctrl_reg_cache { u32 *pupd[2]; u32 *smt[2]; u32 *sr[2]; + u32 *nod[2]; u8 sd_ch[2]; u8 eth_poc[2]; u8 oen; @@ -2767,6 +2769,11 @@ static int rzg2l_pinctrl_reg_cache_alloc(struct rzg2= l_pinctrl *pctrl) if (!cache->sr[i]) return -ENOMEM; =20 + cache->nod[i] =3D devm_kcalloc(pctrl->dev, nports, sizeof(*cache->nod[i]= ), + GFP_KERNEL); + if (!cache->nod[i]) + return -ENOMEM; + /* Allocate dedicated cache. */ dedicated_cache->iolh[i] =3D devm_kcalloc(pctrl->dev, n_dedicated_pins, sizeof(*dedicated_cache->iolh[i]), @@ -2785,6 +2792,12 @@ static int rzg2l_pinctrl_reg_cache_alloc(struct rzg2= l_pinctrl *pctrl) GFP_KERNEL); if (!dedicated_cache->sr[i]) return -ENOMEM; + + dedicated_cache->nod[i] =3D devm_kcalloc(pctrl->dev, n_dedicated_pins, + sizeof(*dedicated_cache->nod[i]), + GFP_KERNEL); + if (!dedicated_cache->nod[i]) + return -ENOMEM; } =20 pctrl->cache =3D cache; @@ -3016,7 +3029,7 @@ static void rzg2l_pinctrl_pm_setup_regs(struct rzg2l_= pinctrl *pctrl, bool suspen struct rzg2l_pinctrl_reg_cache *cache =3D pctrl->cache; =20 for (u32 port =3D 0; port < nports; port++) { - bool has_iolh, has_ien, has_pupd, has_smt, has_sr; + bool has_iolh, has_ien, has_pupd, has_smt, has_sr, has_nod; u32 off, caps; u8 pincnt; u64 cfg; @@ -3039,6 +3052,7 @@ static void rzg2l_pinctrl_pm_setup_regs(struct rzg2l_= pinctrl *pctrl, bool suspen has_pupd =3D !!(caps & PIN_CFG_PUPD); has_smt =3D !!(caps & PIN_CFG_SMT); has_sr =3D !!(caps & PIN_CFG_SR); + has_nod =3D !!(caps & PIN_CFG_NOD); =20 if (suspend) RZG2L_PCTRL_REG_ACCESS32(suspend, pctrl->base + PFC(off), cache->pfc[po= rt]); @@ -3099,6 +3113,15 @@ static void rzg2l_pinctrl_pm_setup_regs(struct rzg2l= _pinctrl *pctrl, bool suspen cache->sr[1][port]); } } + + if (has_nod) { + RZG2L_PCTRL_REG_ACCESS32(suspend, pctrl->base + NOD(off), + cache->nod[0][port]); + if (pincnt >=3D 4) { + RZG2L_PCTRL_REG_ACCESS32(suspend, pctrl->base + NOD(off) + 4, + cache->nod[1][port]); + } + } } } =20 @@ -3113,7 +3136,7 @@ static void rzg2l_pinctrl_pm_setup_dedicated_regs(str= uct rzg2l_pinctrl *pctrl, b * port offset are close together. */ for (i =3D 0, caps =3D 0; i < pctrl->data->n_dedicated_pins; i++) { - bool has_iolh, has_ien, has_sr; + bool has_iolh, has_ien, has_sr, has_nod; u32 off, next_off =3D 0; u64 cfg, next_cfg; u8 pincnt; @@ -3136,6 +3159,7 @@ static void rzg2l_pinctrl_pm_setup_dedicated_regs(str= uct rzg2l_pinctrl *pctrl, b PIN_CFG_IOLH_C | PIN_CFG_IOLH_RZV2H)); has_ien =3D !!(caps & PIN_CFG_IEN); has_sr =3D !!(caps & PIN_CFG_SR); + has_nod =3D !!(caps & PIN_CFG_NOD); pincnt =3D hweight8(FIELD_GET(RZG2L_SINGLE_PIN_BITS_MASK, cfg)); =20 if (has_iolh) { @@ -3150,6 +3174,10 @@ static void rzg2l_pinctrl_pm_setup_dedicated_regs(st= ruct rzg2l_pinctrl *pctrl, b RZG2L_PCTRL_REG_ACCESS32(suspend, pctrl->base + SR(off), cache->sr[0][i]); } + if (has_nod) { + RZG2L_PCTRL_REG_ACCESS32(suspend, pctrl->base + NOD(off), + cache->nod[0][i]); + } if (pincnt >=3D 4) { if (has_iolh) { RZG2L_PCTRL_REG_ACCESS32(suspend, @@ -3166,6 +3194,11 @@ static void rzg2l_pinctrl_pm_setup_dedicated_regs(st= ruct rzg2l_pinctrl *pctrl, b pctrl->base + SR(off) + 4, cache->sr[1][i]); } + if (has_nod) { + RZG2L_PCTRL_REG_ACCESS32(suspend, + pctrl->base + NOD(off) + 4, + cache->nod[1][i]); + } } caps =3D 0; } --=20 2.53.0 From nobody Mon Jun 15 20:39:47 2026 Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8F53B37E302 for ; Mon, 13 Apr 2026 18:25:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776104714; cv=none; b=NN3RCqVIhFngTiyREkTeiY5Zj9TUNPdpRQmDAikhYIgb+s4TmE5scMqSwa6pOhbyl9nFjuPlfO0GYdyslur7HIBV4PktDdZkyj94KZ0qTihk4M1y7NxgocAdvvw+qZJ+KlihhyHZzIyL6/bKuohZCHJoQFu8AZR3LdgWpHRQO18= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776104714; c=relaxed/simple; bh=turxcnX6VN1eznYIWFKB43dvw3RiMLfdFwVTJ1DnT8g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=t6w3n82udWLjiVFFj4DNAilpB36e9l3Lxjz9snfeiVJ+GTq+7Yw+e/b79rg8nOasfzI9iGTEm5NDtyAi4eFsk3i0i3yhac0Ifx9+ZY2KVFPtgDveb5YYVi8x9W3AXOlqOgzea0i8YkbRMSoVzFAnQWw/7bGdj1tHNeDOGWklx/4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=DWLKszxi; arc=none smtp.client-ip=209.85.128.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="DWLKszxi" Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-488ab2db91aso73924995e9.3 for ; Mon, 13 Apr 2026 11:25:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776104711; x=1776709511; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=KVO71wT2Z3EhUstHSSWgsmxaknRZDzEPaI688DZMWQM=; b=DWLKszxilW6AUZ5ef/pAmEOFsEZqLQr3X6vlBdKXM8qmsdcg/UZc6CyCn2yrFGmRz1 +I7QnAqi1G6XjWLaxcbHy0sPfvBr24+RNdtwx+oUaCLomwBmXoEvvwDBK8Jl/MRXuy3B JoqHPoGuMwf9ztDahdF6Jhwv/m8jVYGQbcajm2peQpcjSTZIXOFOIh19AmX7aAbwixtt EvA1DY8BB7gNN7hVohbl/Lru36/NUZXUikpzvuElH93wwDjKphHa7IRwyYnW+0AQSA0x Rf0QPvfkoKlb8awLrGzmqN+4to3QVg4uIumcatmqalO06muz0dXROnIbrd+srCwK31iv pA+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776104711; x=1776709511; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=KVO71wT2Z3EhUstHSSWgsmxaknRZDzEPaI688DZMWQM=; b=hvgf6BeC6CXeEllJ7lB38OFegB//w61TeGm1oRJs0zWp8GHC/Pc3TjyDWPZMwdwa35 HQUDR32CUEYbffr07X9LesgDNsRvRFfgU0DvS/Q9fXoKSD0q04VGj1a/T5C9Nrs+r88N 57wR46Z9GRH27Ae1Dg1hC2Oi2RZG4DJfgF6qpJksfXkmF5tg5/tSz/OyApDpft70UlrA 3E47QEEjaR/shcpbFt+6uUHCEimiNr2n+YPDepTLsWQwmQuILE/8ADw7f4ge5mlZgXH1 QkNbX0936x69rK0Q/4SCxPZ9U+LI9JzBAjhvx2QbJMSDgTUZQnmzJ1bLCjBZMHEAdUz0 s6xQ== X-Forwarded-Encrypted: i=1; AFNElJ+f5X2rO0WMwUO0kgmA5npVDuWYJcq9cqFaHP2NYxC07kpclbWiQqxZpvWNlBDDEchCnb2H4lCwRD4sfcs=@vger.kernel.org X-Gm-Message-State: AOJu0YzIfhZfvPedrI9D+DDiBwwLrhJDrQxczqsNfqYwY3B8o9XBkDYR KTSMY7skwKN3RY1zEVUE0qrGWG0B3lmWJu2bK99nXqwI/5AdjV3zY1L7 X-Gm-Gg: AeBDieuo01ZfporrAvLM1PoaAp0JbPojEhDrycGvKqig3MCXZtn/VlcV1dbmQo6ty1w /Pu3Pc4klxTEUWHX9OLLHtysb/My/uGPv3NRW6cLvp3UGQae9i38SpRgu/1dCBpY4hwJQPY6HVd /aV+tpA9lWoU35+UlwxkJbM8U9QnPy+kNXkilsyg7ZYfHPmjxiVCRLdQhKIz/sNJkUwcf4h2mmS CU1Cybj3X6G2Rr7aUEHw30+wNwsQw3TS8SnQLU8wO/43skFOn5bIFQTGAQLkWEwIJgFcFqX4SN6 6nbDEmzV1hRmWE4t/2XhDJT0cdVPT3h8ZUhRGlBxOjeCema9MkPkq+6GowtawjBQfXt6oFHU+ab Zl3oxBHSPTew9E6y1tSY05F7Mwcgii3FbYssD7oTgiph3eYsTy8y6lSkxaNZ1Iwym7bHTlOVhqQ vqyCk1TUJ67F3KX83mNlB83SThEChRRgWhhJIvkK1nEuXEW0v0RFPeqsBhcOvyUjpAZzBOXxTGS JDt08EFh4KZQTyLeR4Qf6sR69EH1/mAJ6kgIYLIZBUYih8= X-Received: by 2002:a05:600c:608e:b0:488:78f2:6b0 with SMTP id 5b1f17b1804b1-488d688a11amr194803115e9.29.1776104710878; Mon, 13 Apr 2026 11:25:10 -0700 (PDT) Received: from iku.example.org ([2a06:5906:61b:2d00:8060:3087:2ea2:f494]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-488d5b56d1asm301175695e9.15.2026.04.13.11.25.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Apr 2026 11:25:10 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: Geert Uytterhoeven , Linus Walleij Cc: linux-renesas-soc@vger.kernel.org, linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Prabhakar , Biju Das , Fabrizio Castro , Lad Prabhakar Subject: [PATCH v2 5/5] pinctrl: renesas: rzg2l: Handle PUPD for RZ/V2H(P) dedicated pins in PM Date: Mon, 13 Apr 2026 19:24:55 +0100 Message-ID: <20260413182456.811543-6-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260413182456.811543-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20260413182456.811543-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Lad Prabhakar On RZ/V2H(P), dedicated pins support pull-up/pull-down configuration via PIN_CFG_PUPD. Add PUPD handling for dedicated pins in the PM save/restore path. Signed-off-by: Lad Prabhakar Reviewed-by: Geert Uytterhoeven --- v1->v2: - New patch --- drivers/pinctrl/renesas/pinctrl-rzg2l.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/drivers/pinctrl/renesas/pinctrl-rzg2l.c b/drivers/pinctrl/rene= sas/pinctrl-rzg2l.c index be6d229c927b..1aaa78469f52 100644 --- a/drivers/pinctrl/renesas/pinctrl-rzg2l.c +++ b/drivers/pinctrl/renesas/pinctrl-rzg2l.c @@ -2798,6 +2798,12 @@ static int rzg2l_pinctrl_reg_cache_alloc(struct rzg2= l_pinctrl *pctrl) GFP_KERNEL); if (!dedicated_cache->nod[i]) return -ENOMEM; + + dedicated_cache->pupd[i] =3D devm_kcalloc(pctrl->dev, n_dedicated_pins, + sizeof(*dedicated_cache->pupd[i]), + GFP_KERNEL); + if (!dedicated_cache->pupd[i]) + return -ENOMEM; } =20 pctrl->cache =3D cache; @@ -3136,7 +3142,7 @@ static void rzg2l_pinctrl_pm_setup_dedicated_regs(str= uct rzg2l_pinctrl *pctrl, b * port offset are close together. */ for (i =3D 0, caps =3D 0; i < pctrl->data->n_dedicated_pins; i++) { - bool has_iolh, has_ien, has_sr, has_nod; + bool has_iolh, has_ien, has_sr, has_nod, has_pupd; u32 off, next_off =3D 0; u64 cfg, next_cfg; u8 pincnt; @@ -3160,6 +3166,7 @@ static void rzg2l_pinctrl_pm_setup_dedicated_regs(str= uct rzg2l_pinctrl *pctrl, b has_ien =3D !!(caps & PIN_CFG_IEN); has_sr =3D !!(caps & PIN_CFG_SR); has_nod =3D !!(caps & PIN_CFG_NOD); + has_pupd =3D !!(caps & PIN_CFG_PUPD); pincnt =3D hweight8(FIELD_GET(RZG2L_SINGLE_PIN_BITS_MASK, cfg)); =20 if (has_iolh) { @@ -3178,6 +3185,11 @@ static void rzg2l_pinctrl_pm_setup_dedicated_regs(st= ruct rzg2l_pinctrl *pctrl, b RZG2L_PCTRL_REG_ACCESS32(suspend, pctrl->base + NOD(off), cache->nod[0][i]); } + if (has_pupd) { + RZG2L_PCTRL_REG_ACCESS32(suspend, pctrl->base + PUPD(off), + cache->pupd[0][i]); + } + if (pincnt >=3D 4) { if (has_iolh) { RZG2L_PCTRL_REG_ACCESS32(suspend, @@ -3199,6 +3211,11 @@ static void rzg2l_pinctrl_pm_setup_dedicated_regs(st= ruct rzg2l_pinctrl *pctrl, b pctrl->base + NOD(off) + 4, cache->nod[1][i]); } + if (has_pupd) { + RZG2L_PCTRL_REG_ACCESS32(suspend, + pctrl->base + PUPD(off) + 4, + cache->pupd[1][i]); + } } caps =3D 0; } --=20 2.53.0