From patchwork Wed Mar 12 11:22:23 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 14014166 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id DC8D0C35FF9 for ; Thu, 13 Mar 2025 01:33:15 +0000 (UTC) Received: from OS0P286CU010.outbound.protection.outlook.com (OS0P286CU010.outbound.protection.outlook.com [40.107.74.9]) by mx.groups.io with SMTP id smtpd.web10.34472.1741778753397119819 for ; Wed, 12 Mar 2025 04:25:53 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="dkim: body hash did not verify" header.i=@bp.renesas.com header.s=selector1 header.b=gzK0Iqxq; spf=pass (domain: bp.renesas.com, ip: 40.107.74.9, mailfrom: tommaso.merciai.xr@bp.renesas.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=k1Ka1WYR1LtXQ/xF96WdOyVO0Ohv04V8lVoVQJv52jfRqq/iEEEdbAh1sWK7QSbegcFfZ9zwJt08Ia0HUiEiQQ8AsRkN8XAtNkePafr7VI9nVxUxrlGYFHVpH28JVtruIXV2p27kq5Jrayr3BzJJ4yrbhTvbWzStRJRcCdUIiWgeAaCWPWQEHgk2YIMECFAR2KhAvorOY9b5acH6sFHJxRKqjMjShbj0CMz0Bf5FgVItID6OalNgkut3JNYzahexyjlhOAt90vtfo6AQH/5s9yasCC80MNKGh60qM/FbAurEkC8dyE+MJIUyCgm2NyN1Frg2GrJyEzw7HVA5r78viw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=1xnWw+oSHWXQJOmrjD8Pq/xnrqez5ifrTalVyaUsUp0=; b=L8baAFlk/6vkzH45MzHg/Tvl3iNtZnD2/mgwD4L6EVj3o8ImOzDP3QnnUqgeL3ibQvTBoeFyOKCBbFesDrukhDX42aZZUsoW8GschxTYEJzGYZRlGZvPksDTyFG7Z03GCX+nZy0VGIVBEwOJFIXyV//r3eji5mxX3FTYzRXvGOEBxEfFCVtOHOtyx40j50w1LWRVEh2FzUIcBpK0RmHME7lReEKaZ00CsXgmwollUJAe6DiQpxaGlwHahSEu4HZyyjiGHvRZ0yiMebXbHSp2zredfJbB583u8oP/TnTUcAfgXchOHOnevntDC/nQ2ws6evuj1gfBxMve7EFMBUp7qQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=bp.renesas.com; dmarc=pass action=none header.from=bp.renesas.com; dkim=pass header.d=bp.renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bp.renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1xnWw+oSHWXQJOmrjD8Pq/xnrqez5ifrTalVyaUsUp0=; b=gzK0IqxqFy/7toyKG6m5yMc6Jz2+mvooXQsmmbilt+01rQNaEE0130mx+Wg463m4BQy5ZoVWq/DqWPy5mTllajOQoRQuf4ZcEAebx+xacwD0QKx8w6OpMZrtRakT3SDNb2f1OfK1yGAGX7UCqPTHytMBz4X3ZY9jYuqn+XF5rzc= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=bp.renesas.com; Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) by TYWPR01MB10982.jpnprd01.prod.outlook.com (2603:1096:400:397::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.27; Wed, 12 Mar 2025 11:25:51 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%5]) with mapi id 15.20.8511.026; Wed, 12 Mar 2025 11:25:51 +0000 From: Tommaso Merciai To: cip-dev@lists.cip-project.org, Nobuhiro Iwamatsu , Pavel Machek CC: Biju Das , Lad Prabhakar , tomm.merciai@gmail.com Subject: [PATCH 6.1.y-cip 46/85] pinctrl: renesas: rzg2l: Clarify OEN read/write support Date: Wed, 12 Mar 2025 12:22:23 +0100 Message-ID: <20250312112302.1605750-47-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250312112302.1605750-1-tommaso.merciai.xr@bp.renesas.com> References: <20250312112302.1605750-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR4P281CA0246.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:f5::15) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|TYWPR01MB10982:EE_ X-MS-Office365-Filtering-Correlation-Id: 47410419-bf89-48e0-e23a-08dd6158a513 X-LD-Processed: 53d82571-da19-47e4-9cb4-625a166a4a2a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: L1O59YKmetJ5SQUTO7c3aQp/EYGgzEWCROISz6GV9DnKlGbes0mKRtvAFIRM4qxTVzA34sMgxOXhvPhwO4XvBCS3oloOBfrGLUz276XElCGKGGRBW15uC5038pvQxviIKDSfG7gT3B38TlrayPtXMZfW07Q3VTTpa1Shq4PrS5ruzOdabMmD5/1smahDRGTgTXE30PwkFG0M7KCax1Yd4Y4C7QopQAOhQvFzThZ5ww6tNB9Pj5QYqugu6otH3JypP+6IJaoJYEvuymfxspFmPhNziJNHBVKkb3dO3HLiAK9buH2cpgNwJZ1H00sO7G5QlEqD+T8KeeUS67BxQfKpwbWYUmkt0xBOfb43jszmZjIHrlK/ihQx12nectW89c3uahILJAJcreKoBB8T4LjK+n3PuKjEFk1An0+IAXqYabD2wiPh5/t0U+zr1MebonXRPNmb0AtiweQ8/LPiT96mXSxVP7zqOrT43+yaGHqlSfJYHZ0DiQVYcCXdSIr49rcm5duKothyLLbpuJ52+/T56yh3H/TZ1JBrBJHYJOdG1rwohcZDFmoX6RnSFqdODvVuWU9bC5IGFzcYXpHlnFfbqLv8KWe+4XnmylXQbD11AGDpk9W1D/T10ZKa9nxO6WUhC4IqOCdiB8mbUfhmbPGuRWYmAK4YKaQwVuAaNz+1fF86hkc3feI+0m3YFtcg7Yj3ctoSWVKP9GHiVhGf43yRTHPXdXMq4fiYCNRLF1+TN1H6PWXdRkNErvJ52Sz0PKKEkP+SOsD/2wXKemDwskVwSxepKvHmInYV39g8S+18xEKMY1IVKREREJt6kcGYTX8H9FdLYpsc1GYzUzVjpLzVVZKJTZgUmqQfyQP1y1BCnJj9QQlQvYpq5Gbq1PBECWhTzhBRz5A4l2WeVTI6GP+b2yPKAdvui23Cyd5pO3+9yQx+8T4UMqmoWfufLJ116u1cscrQt17wIj/8E7QajtwV2p5g/xT0AiYcDonoRsmbowX8fIwcxch67GsV1T7rTlin7cmisGP5Sop/Exq5s/eGVuvOp9qObCWpOASAoHFRwTbn0GXtvb2ZkNb1kvmQnvqjVnDMPfnrnwaN+nr1NR8H9fpXRmY55LC8z9dEvmuku2r5ZJJbNZJjFavmtIxux0a4VI8YCCFKrE3EfkP+KhkTdvxX6H/4n2xVczw90CjaVuQ3Pi2D75egBRRQ7L4m0W4+ZkoyC14gSFtN2s5BrzUyaJnp1vzWQpRE7Wv0axq9S5vf6bjcRRw0T0rLIAlp8znNbC1XmsSRtSneNLsuChysbihrVR6O86LQP3xF/IRjXRgMIjOx8yC5/U4GOGXZUe2mZpCr+hKcdUaeT4dF8Ii7LGeAyahS9aBPTPEc1Xv+F8mzA5Dzn1ey6Gt/mhva6OYYUckml2o/fL5pZMnA0yNywjXLeP5vcajbs5lcDVstrzE3cfBhamwAzcGeOYA/7exe X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9PR01MB13950.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(52116014)(376014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 4WmG+bZ70M6iX+kbK/afJcY2LJiCaD71TrUDdE+x0UsR/CvAKjYRw3KR8r5YVBNMDDHjLuVlBg1uiuoSSE5WjPOwFLPWtOlWbhrBMyFWp1UCrIWgKE/66kKthA23FpVZGsovJ2qWPvASAoAFcFEr3NKp/p27UsXBMkZDxmBVb/8pfrbRyBkYSc+99ANruVO7RgHGH2QI0sYIp7tatbKw8VQX1JjixDBbbWwsmb/lPZSlmP71jFzYwON/LMqZjrCgqU0BvMdXeSEmzLFnjn+uV6eA3wwOKE3Fcdx+ApFQalHUbiE9nb32nUZ+oThWDgxDuJlnwPcsbqCaS5AIgUI/RK1jvqf2uZbokDqmCqknOzlEbnZsdhLZgeNN/N2Ef9CxWEGBYvu6JjgvC2qDr0Ft8USQRHT1m0DHKOKxvvmEugQfDklsFZS+ck7RZGux3LTEYYLAsFRQTiKz9YJhrxNYaldup5TeFj/3Apa0ukVDGk493pPwMskuGFlB7e8eA2kSYcIDOJfFjc+9WFAPlVon02qjH0JZsLXnLyhZ2lMrdhg/5743TQEYb/FwAwhKl/yhYTTW3tgoGn6mTvkgyN8mRntCtF+/f5cUwwbCeDV5dVcIdWwDyXWcxEIpI+GYqd297wFkiyyMLvn4f/lIo34QpXRCi3PYd2mICTiGd5DZpn+Gf18YA4YXDNmKoWUyUfJiao/OA7J66HFq4uwyDePwwE+rMM5Pd3GV0eoxvpkIjNye7Zo6w1b6pv6UPVnGyn2fdebm7UbaDHaXSUPaP2YgPPkavqgu8Ho0ixTxky/Y6AXaXHrD4suNu0UqkvOJoxnlrjG6F7wjXUYDFbfYyDCgkj3N60VDvLYqx+1g+LvmbDeYcVEiNCOKOi55p71nrWREYECmlCnfbbwilhC/VuYE+NkeYgvZn6RPTbd7A0jTt0V0tX+/mGsAD0nMZcDAIRrF9NCObUJnwY97jMfxjNKF+bgRmHFzMUtoT2U+0zB3CV//Qq5xJ+1fSCELlxgDNH1iFdecNclO61ZvHR6VuhIOeyQScduUeA8E7pGyWUigrcwD8/ZETZlCkVOq/hgMtJYHlGcWBx+hJGygGhXE/bfd33fD3fnSAD1M6Z/Jo1U4iqDFTVq6gF5F7zi4pM4MlcqD+cF4bSoWqslOKGn0y2dE/z7O7rC0qT3dStFOa0xs8yngSPpZ6SSDY5mqJTkj/GiovD7ewmYIVwRayOpaVXZsWpsd1OrSuBlIdJZ7imGZ46nbLIZQpjCXWsWEzeNRSJiUzEZGMoV9qmZH6l3FY9Op6P1KfNfNIJGshlXOk9jAMqgo8UO2NHY84z9vtZUFGn2d/Vpumhl68uN9lIPUuyLBQ0yDjeVyDZC78EBDI1GLCy+9FAYB8fXoROhhv+j1J5wR5RA5WPjsYRs7AcqwkSTcgJHG65oQcegNLc0DKMNeXkP5dD0iTYR+tSFcCuAyZoahKXUJsta2BbNwkG6lGTAbgaL51WuE6HclUhBV/p2Olk4ktsAXE0A1Do8jJwnKQZsl8c4s0I5PwGuF8/mGy/uQ2nDwbmky1MTSGCIuEOADWsx6XC82+G9GsbI4t+9sFkByWMMkOoI876XWyrd2FdCXyGgib0PV08ASBB+P23jwZdk= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 47410419-bf89-48e0-e23a-08dd6158a513 X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2025 11:25:51.4624 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: CpEcZc9dovaduMfaF0A/94oDisbU8OLkZczWVAzn1Qz5VtX9vnQmtEaX/1whnY+odKlwwibqStiaxz/w1tmRsGT3SN7CwRCGR5n/w0QVerle+aRGUYF0omWoN0IJ7yao X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYWPR01MB10982 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 13 Mar 2025 01:33:15 -0000 X-Groupsio-URL: https://lists.cip-project.org/g/cip-dev/message/18138 From: Paul Barker commit 07dd08c39eb4b645a0e2f2440a54326b49944705 upstream. We currently support OEN read/write for the RZ/G3S SoC but not the RZ/G2L SoC family (consisting of RZ/G2L, RZ/G2LC, RZ/G2UL, RZ/V2L & RZ/Five). The appropriate functions are renamed to clarify this and to match the callback names. We should also only set the oen_read and oen_write function pointers for the devices which support these operations. This requires us to check that these function pointers are valid before calling them. Signed-off-by: Paul Barker Acked-by: Linus Walleij Reviewed-by: Geert Uytterhoeven Link: https://lore.kernel.org/20240625200316.4282-2-paul.barker.ct@bp.renesas.com Signed-off-by: Geert Uytterhoeven --- drivers/pinctrl/renesas/pinctrl-rzg2l.c | 28 ++++++++++++------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/drivers/pinctrl/renesas/pinctrl-rzg2l.c b/drivers/pinctrl/renesas/pinctrl-rzg2l.c index 7d76e0962e5c..5159dff565b7 100644 --- a/drivers/pinctrl/renesas/pinctrl-rzg2l.c +++ b/drivers/pinctrl/renesas/pinctrl-rzg2l.c @@ -999,7 +999,7 @@ static bool rzg2l_ds_is_supported(struct rzg2l_pinctrl *pctrl, u32 caps, return false; } -static bool rzg2l_oen_is_supported(u32 caps, u8 pin, u8 max_pin) +static bool rzg3s_oen_is_supported(u32 caps, u8 pin, u8 max_pin) { if (!(caps & PIN_CFG_OEN)) return false; @@ -1010,7 +1010,7 @@ static bool rzg2l_oen_is_supported(u32 caps, u8 pin, u8 max_pin) return true; } -static u8 rzg2l_pin_to_oen_bit(u32 offset, u8 pin, u8 max_port) +static u8 rzg3s_pin_to_oen_bit(u32 offset, u8 pin, u8 max_port) { if (pin) pin *= 2; @@ -1021,31 +1021,31 @@ static u8 rzg2l_pin_to_oen_bit(u32 offset, u8 pin, u8 max_port) return pin; } -static u32 rzg2l_read_oen(struct rzg2l_pinctrl *pctrl, u32 caps, u32 offset, u8 pin) +static u32 rzg3s_oen_read(struct rzg2l_pinctrl *pctrl, u32 caps, u32 offset, u8 pin) { u8 max_port = pctrl->data->hwcfg->oen_max_port; u8 max_pin = pctrl->data->hwcfg->oen_max_pin; u8 bit; - if (!rzg2l_oen_is_supported(caps, pin, max_pin)) + if (!rzg3s_oen_is_supported(caps, pin, max_pin)) return 0; - bit = rzg2l_pin_to_oen_bit(offset, pin, max_port); + bit = rzg3s_pin_to_oen_bit(offset, pin, max_port); return !(readb(pctrl->base + ETH_MODE) & BIT(bit)); } -static int rzg2l_write_oen(struct rzg2l_pinctrl *pctrl, u32 caps, u32 offset, u8 pin, u8 oen) +static int rzg3s_oen_write(struct rzg2l_pinctrl *pctrl, u32 caps, u32 offset, u8 pin, u8 oen) { u8 max_port = pctrl->data->hwcfg->oen_max_port; u8 max_pin = pctrl->data->hwcfg->oen_max_pin; unsigned long flags; u8 val, bit; - if (!rzg2l_oen_is_supported(caps, pin, max_pin)) + if (!rzg3s_oen_is_supported(caps, pin, max_pin)) return -EINVAL; - bit = rzg2l_pin_to_oen_bit(offset, pin, max_port); + bit = rzg3s_pin_to_oen_bit(offset, pin, max_port); spin_lock_irqsave(&pctrl->lock, flags); val = readb(pctrl->base + ETH_MODE); @@ -1220,6 +1220,8 @@ static int rzg2l_pinctrl_pinconf_get(struct pinctrl_dev *pctldev, break; case PIN_CONFIG_OUTPUT_ENABLE: + if (!pctrl->data->oen_read) + return -EOPNOTSUPP; arg = pctrl->data->oen_read(pctrl, cfg, _pin, bit); if (!arg) return -EINVAL; @@ -1359,6 +1361,8 @@ static int rzg2l_pinctrl_pinconf_set(struct pinctrl_dev *pctldev, case PIN_CONFIG_OUTPUT_ENABLE: arg = pinconf_to_config_argument(_configs[i]); + if (!pctrl->data->oen_write) + return -EOPNOTSUPP; ret = pctrl->data->oen_write(pctrl, cfg, _pin, bit, !!arg); if (ret) return ret; @@ -3070,8 +3074,6 @@ static struct rzg2l_pinctrl_data r9a07g043_data = { #endif .pwpr_pfc_lock_unlock = &rzg2l_pwpr_pfc_lock_unlock, .pmc_writeb = &rzg2l_pmc_writeb, - .oen_read = &rzg2l_read_oen, - .oen_write = &rzg2l_write_oen, .hw_to_bias_param = &rzg2l_hw_to_bias_param, .bias_param_to_hw = &rzg2l_bias_param_to_hw, }; @@ -3087,8 +3089,6 @@ static struct rzg2l_pinctrl_data r9a07g044_data = { .hwcfg = &rzg2l_hwcfg, .pwpr_pfc_lock_unlock = &rzg2l_pwpr_pfc_lock_unlock, .pmc_writeb = &rzg2l_pmc_writeb, - .oen_read = &rzg2l_read_oen, - .oen_write = &rzg2l_write_oen, .hw_to_bias_param = &rzg2l_hw_to_bias_param, .bias_param_to_hw = &rzg2l_bias_param_to_hw, }; @@ -3103,8 +3103,8 @@ static struct rzg2l_pinctrl_data r9a08g045_data = { .hwcfg = &rzg3s_hwcfg, .pwpr_pfc_lock_unlock = &rzg2l_pwpr_pfc_lock_unlock, .pmc_writeb = &rzg2l_pmc_writeb, - .oen_read = &rzg2l_read_oen, - .oen_write = &rzg2l_write_oen, + .oen_read = &rzg3s_oen_read, + .oen_write = &rzg3s_oen_write, .hw_to_bias_param = &rzg2l_hw_to_bias_param, .bias_param_to_hw = &rzg2l_bias_param_to_hw, };