From nobody Thu Apr 2 20:22:13 2026 Received: from mail-wr1-f47.google.com (mail-wr1-f47.google.com [209.85.221.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 13D81401485 for ; Thu, 26 Mar 2026 16:25:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774542306; cv=none; b=kgqbUWz4sSBNDJYc2lznp3d4MUw5UwE3MNm8G1SHYoKfFeBPwIZi1vZsKekbq5Vrdq0I9je/2wj/ptvUwOK2/aMhf1vtBCtCMPJaU+OcJm890OO92SmJOn3RLH7Q8D2l6ydCF2t3zBMLcDlu6EC9rX2rQYlvwD2/M6xp+eDf/mY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774542306; c=relaxed/simple; bh=yRn65xz5S6D3nAmmUq5pfrFoiqpW/Jk83rHf1vrztWk=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=s3QIt2RGk5ZpY2y3MrieVQxkG8Xw0W8BAWGepZeH++QytEZ4S4tTXa1H+CmeODYTweU4aqMjNquT6KRokR/UZ9LwV8RszuknpwNZPdcs9Y0/PRYGILydKGHlSkcfOEoop1UOpNeNxuQOnNKPeXCtmpTbBb9JNnECd2RJg0H7sgc= 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=Wq03FqpE; arc=none smtp.client-ip=209.85.221.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="Wq03FqpE" Received: by mail-wr1-f47.google.com with SMTP id ffacd0b85a97d-439bc14dcf4so1728827f8f.1 for ; Thu, 26 Mar 2026 09:25:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1774542302; x=1775147102; 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=Q2ce0HxX3/F0Io4jy/v+v+g0q9K7PyjffbJmK+am7Z8=; b=Wq03FqpEQPYzKKALhRbzEptoA2qmrXo8G4mBc41X89p1b7ioLim4uSAjC2kFs7wZVq BtMS7DaGJ25lCl2S0cpsN1Z46q3Uvre4gBTqy+/YTI15sODBzogdDEvx+3LuexL8vmsE uI6E1rYaFWG1tr6FYtnsRIqByzhlyA5LRlCZGNpyD9mfw2UETbcaTc/2K/fmljzDNYjd HeLpe6hOfvr9EEj3mIzDNfhk4r6c5YBVnzHh6QCoHNzENDPOLcRaH3okODBa5PgTP6Cb ml5TJKmLDB/8cYXYAH+o2rYXnjjJ2VkanZs+xl3sgH+rWjzrqH2r75GHhh7lSL0OYeuj O0aw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774542302; x=1775147102; 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=Q2ce0HxX3/F0Io4jy/v+v+g0q9K7PyjffbJmK+am7Z8=; b=qT2MYfmqvj2CW7lqtELigsWFImZM+hegcz9tce1suthaFaC+1yFUR0zFvqdGNayXb/ ZI2F1hduSOL85EZ5+kB0U8ZNT8DUWmdHV6PzC5iopppe/4kay5cimBmozznxJLTRkezV DrGritLs2BEkzHBN8OwLGsm+xH252GiiYcThT1WOxYbESIM/E9RFqR8zSwuFksqGMtTo LN42zA5quXf7H6rPVEYI+hhIidVKMVJ0xqLF8SSn590hyZ4Z8GI5Vq44vXrjt4rSvWQD pCgi5YfNbZNiQtFTVKNJqFIcLqwSszcNaCjM7JQHrp6rfpiOw70YzefYQpuZVC7Pw6lB /Z4Q== X-Forwarded-Encrypted: i=1; AJvYcCXgZVm0Rx79rh/k2Bj1SDluiHdhmm6oyhMlNsM7SRCfDcpOUPv4w1y9CcrEP6iJ6T7ROIZwDSEGzCa5ieU=@vger.kernel.org X-Gm-Message-State: AOJu0Yz8BsgZ6rsffClgLKhAso5RZqxoXmWyekcklMKAu9ARK3yygrcL Q1bYOmVFuNJekSklJ6W+R8LtK9aDAid8/lHLFjHAHRrOZiVL7wgzab6D X-Gm-Gg: ATEYQzwQQUbtoYulg1ip8nHJ3Bq0ZQqIpsydWSz1SEA23Bnr66uVv+XntnPoTQEnjpR X6HBGIqi9Fh5kcB1efZLbXoveFx+ulR88gR8ZNHmH/beyLHVOA8GvLfFYtQ5SeAp3E8+XySA8YV /IiedtzBagg6FXHy7YTQt+gFupO5a86jAUYp4UUiLQ1hdUE9JbpZeIFx7UAV6XlNzUSgdhpbmTd 5oMz8D7V0+S2kzH1oQ9etUuHberlRwLMtszor1SAgIjFKejdjnePBsl/S1d4ioVtI1OnQynALXQ BxIO5zqxeHpo3HmEBpEc+wAv6e0ntuNvvASxU5zwzjpjpSzNAauNcVvk2riqqN7s4v3crJQTy0V 3Nhqoh7IGKRUZguHXJqWibWHR1kTLUW5EnEITYy5gxmVaQxAznJOqv5jYpyUCoOOFzc8NpHDJsy ndkTNJ0uYg3deyABGO038JtNEVyJyhmPVYZhRz6lSdld3ychjC X-Received: by 2002:adf:9cc1:0:b0:43b:3eef:acd9 with SMTP id ffacd0b85a97d-43b97a86605mr2884336f8f.27.1774542301944; Thu, 26 Mar 2026 09:25:01 -0700 (PDT) Received: from localhost.localdomain ([2a00:23c4:a758:8a01:377f:9a3e:6c94:560d]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43b919588e6sm8460951f8f.16.2026.03.26.09.25.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Mar 2026 09:25:01 -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 v3] pinctrl: renesas: rzg2l: Fix save/restore of {IOLH,IEN,PUPD,SMT} registers Date: Thu, 26 Mar 2026 16:24:51 +0000 Message-ID: <20260326162459.101414-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 rzg2l_pinctrl_pm_setup_regs() handles save/restore of {IOLH,IEN,PUPD,SMT} registers during s2ram, but only for ports where all pins share the same pincfg. Extend the code to also support ports with variable pincfg per pin, so that {IOLH,IEN,PUPD,SMT} registers are correctly saved and restored for all pins. Fixes: 254203f9a94c ("pinctrl: renesas: rzg2l: Add suspend/resume support") Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven --- v2->v3: * Dropped pin_off, pin_desc, and pin_data local variables and instead used pctrl->desc.pins[pin + i].drv_data. * Started the loop at 0 so that it covers all the variable pins. v1->v2: * Updated commit description * Improved the logic. --- drivers/pinctrl/renesas/pinctrl-rzg2l.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/pinctrl/renesas/pinctrl-rzg2l.c b/drivers/pinctrl/rene= sas/pinctrl-rzg2l.c index 863e779dda02..55e35f63343c 100644 --- a/drivers/pinctrl/renesas/pinctrl-rzg2l.c +++ b/drivers/pinctrl/renesas/pinctrl-rzg2l.c @@ -3012,6 +3012,13 @@ 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) { + unsigned int pin =3D port * RZG2L_PINS_PER_PORT; + + for (unsigned int i =3D 0; i < RZG2L_PINS_PER_PORT; i++) + cfg |=3D *(u64 *)pctrl->desc.pins[pin + i].drv_data; + } + 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