From nobody Mon Apr 6 23:37:14 2026 Received: from mail-wr1-f53.google.com (mail-wr1-f53.google.com [209.85.221.53]) (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 1FC53390C82 for ; Tue, 17 Mar 2026 09:17:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773739044; cv=none; b=F911pVMXY5cFnqfWSh50GTFvbFqKEtdberMbykOA680Rb5ej1XjnQaCpFeGng4UFlsgp5jFpM7zDGHOihkKCwMScjzzSjeJ4ySU0+QCmPhD/BkMfqcFD9cEPpDknnQI90ohBuzKQleP3fNrgQiiFWUWPj2F3X6Ok93oi9wZIw1o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773739044; c=relaxed/simple; bh=Aij4QSJbc2SHAAPiNK0v2C11MArAEMRU80yQFCpR3G8=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=OjRH5xG93P2F9w8A0Pt+lohoiiTRNxTjfMbSvxXW4OEEjPlY1g1XMWtQeOy95iC77NM82j3qgU/MxlLo1+tPE57xzDP/KO70x41mFYc1+8SBbRzyFuViPDc96J3pqGnHChNbYpp0ic1Iv8towQ2ee2yL/EiF56SalMeuUapwD1Q= 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=WKXKWBWC; arc=none smtp.client-ip=209.85.221.53 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="WKXKWBWC" Received: by mail-wr1-f53.google.com with SMTP id ffacd0b85a97d-439b9cf8cb5so6174520f8f.0 for ; Tue, 17 Mar 2026 02:17:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773739037; x=1774343837; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=fYRJV2+dt7vDmdQuBVN01b08iS8nDG5cKKiaKd33MSU=; b=WKXKWBWCUaikIYbdNje71JunXeIbmHQlSWKrKIPNjz1Lpay3OsGq+BoOaNGPnpahLu fcFGqWzumXHz+jq8m5qLeo32CuSBCXNhQ3df/zCjnrdCeMZ0WkckLwb4M0zvUsPfRJLT GuVwkse/cqUVwZc9jPEn9TTQbkA1h5RtiQwyyKvTtgZ1nIN6iL2OdzCCbGOmmDZEmuzs +DVPnuXNPmZjtSEXRrU/MruMpI8pzeRGNTal3UG7pp6CuHKnwdLzU02Htaq1wYwC7t7s 6soSnQDSGZ08EFMRwx242jkjafkbu7fsfBNSvkp1+89K9T1fwjR/i36dIIg1MRk2HvfR 9/BQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773739037; x=1774343837; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=fYRJV2+dt7vDmdQuBVN01b08iS8nDG5cKKiaKd33MSU=; b=PBzPrFz1Bu41qLYc5Ia+ZHINpg3j2iVjUeGEdMNUGVgu+pb4oN6yQ2vcwAghhXQXpX A/G6+FNgw+WxQUqLlGKT94pd6PwLY0FT5xB/IN1ZuLnkX9gZMm5Yw+39EP2qbnEDbJQw PXzH8uu5TJts2CPV8Ed245Ipam90HvkCRlQXg7polkvpTYska4ZQPdtnOaxM8BUMqXrg inKaRurUdjXjTcNUz8SnNGGU0GUBlDtDW8qHLsUZY650WUvBkWQv/dsjwbU7DZUcWuWY 2GpumHV9gdb9vUhe+iG1lUa6WicjNmcXPl8lWYqSKPAU03WxbnI/fLQUaCRQt4/dbRjd KLVg== X-Forwarded-Encrypted: i=1; AJvYcCVFSVDsO4nVY2TLsaDoxzYgT4d8tZctEi/PNW1992QSPBTGPo+cgChpesL9o+caOzEas6ytDALnHBb1aDM=@vger.kernel.org X-Gm-Message-State: AOJu0YzooIEmefFpdsEUOT/xhxifYpyRmSvv/w9ZPaH07fHNI8/WVxx3 O9xNUkrRw8IV83K5uTWGAqgaSodrNorb8uP4nd5eNjlfEc8il6WI65I6 X-Gm-Gg: ATEYQzzt5sd0mIB2apIFDiXAyVd7POZAZd9PMF1AHtjIOJCtQjveIfBZRHhl3Mw9n2w owXkzuyBohDOQ+xFF87+u02U/PGt8c7hGDpgZ4mSQTrbL5N3DJMG/+vEekuT9+c7d34GAcXwx5m MlOPBKvBzAZH4Cm9tBfaqZt+et/7bHclf4pt7zgewo/WkhHFDlG9IDqqpF/XzRgQj2DJ/TOI9jA CHA+OMzyo4X8aUlrh2gQ1UbcHhpjsb/XoACkTT+WQ3cNCN1iQGw0RGuLg7QJzP18riAYFgVmCjt 2zhGnKg/v15scJVuft3+gaiRaiFzJe3mcg2NevyeLIR/N5J8vuI25yyBXcnl0Wwe5C83TRQPclI a/BfcVdJGVsRuJD98aLfPpYva/gDeRfKUwyiZ1J6uWpeoNsg1RDPjmC+H3ZzJ8r4eKUgb24Fhkp LcpuGaPPxxOXJXaY8obPu08PW56XRRhvzPmDsoqLVb+ZUo70q7 X-Received: by 2002:a05:600c:4ed1:b0:485:3d43:7c9a with SMTP id 5b1f17b1804b1-4855670e6dcmr282009045e9.25.1773739036875; Tue, 17 Mar 2026 02:17:16 -0700 (PDT) Received: from localhost.localdomain ([2a00:23c4:a758:8a01:e16b:fc56:e220:9aa9]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43b3d427457sm27555028f8f.3.2026.03.17.02.17.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Mar 2026 02:17:16 -0700 (PDT) From: Biju X-Google-Original-From: Biju To: Geert Uytterhoeven , Linus Walleij Cc: Biju Das , Claudiu Beznea , linux-renesas-soc@vger.kernel.org, linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Prabhakar Mahadev Lad , Biju Das Subject: [PATCH] pinctrl: renesas: rzg2l: Fix save/restore of {IOLH,IEN,PUPD,SMT} registers Date: Tue, 17 Mar 2026 09:17:12 +0000 Message-ID: <20260317091714.141179-1-biju.das.jz@bp.renesas.com> X-Mailer: git-send-email 2.43.0 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: Biju Das The driver uses rzg2l_pinctrl_pm_setup_regs() for save/restore {IOLH,IEN, PUPD,SMT} registers during str and it handles only for port with same pincfg for all the pins in the port. Extend the code to support the port with variable pincfg in pins to save/restore {IOLH,IEN,PUPD,SMT} registers. Fixes: 254203f9a94c ("pinctrl: renesas: rzg2l: Add suspend/resume support") Signed-off-by: Biju Das --- drivers/pinctrl/renesas/pinctrl-rzg2l.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/pinctrl/renesas/pinctrl-rzg2l.c b/drivers/pinctrl/rene= sas/pinctrl-rzg2l.c index 863e779dda02..3e5436acdbbe 100644 --- a/drivers/pinctrl/renesas/pinctrl-rzg2l.c +++ b/drivers/pinctrl/renesas/pinctrl-rzg2l.c @@ -3001,9 +3001,12 @@ static void rzg2l_pinctrl_pm_setup_regs(struct rzg2l= _pinctrl *pctrl, bool suspen { u32 nports =3D pctrl->data->n_port_pins / RZG2L_PINS_PER_PORT; struct rzg2l_pinctrl_reg_cache *cache =3D pctrl->cache; + u32 pin_off =3D 0; =20 - for (u32 port =3D 0; port < nports; port++) { + for (u32 port =3D 0; port < nports; port++, pin_off +=3D RZG2L_PINS_PER_P= ORT) { + const struct pinctrl_pin_desc *pin_desc =3D &pctrl->desc.pins[pin_off]; bool has_iolh, has_ien, has_pupd, has_smt; + u64 *pin_data =3D pin_desc->drv_data; u32 off, caps; u8 pincnt; u64 cfg; @@ -3012,6 +3015,12 @@ static void rzg2l_pinctrl_pm_setup_regs(struct rzg2l= _pinctrl *pctrl, bool suspen off =3D RZG2L_PIN_CFG_TO_PORT_OFFSET(cfg); pincnt =3D hweight8(FIELD_GET(PIN_CFG_PIN_MAP_MASK, cfg)); =20 + if (cfg & RZG2L_VARIABLE_CFG) { + cfg =3D pin_data[pin_off]; + for (unsigned int i =3D 1; i < RZG2L_PINS_PER_PORT; i++) + cfg |=3D pin_data[pin_off + i]; + } + 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_ien =3D !!(caps & PIN_CFG_IEN); --=20 2.43.0