From patchwork Thu Sep 19 13:47:20 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrei Stefanescu X-Patchwork-Id: 829917 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11011067.outbound.protection.outlook.com [52.101.65.67]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AD88719CD17; Thu, 19 Sep 2024 13:48:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.67 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1726753733; cv=fail; b=sdcVSDqP20NnLIFQ6SuYAZmr/VhK30CfFKDB1p+jDeSlu8I68SeUhx2LemU3bHgl3U4WYhbTt9Oc02nyqUJEIaEimqr6lxGsiE+fuZETbUZC8xbgU0FNUiSEpzB5WT0/IvM/SYAkGRLfhzMweg3ad4/LOk5mVx8usFJb+3H+US8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1726753733; c=relaxed/simple; bh=MheB6xk7tkSiRs+taarcUKpPBZRcTKPqawqCW24MjZ4=; h=From:To:Cc:Subject:Date:Message-ID:Content-Type:MIME-Version; b=bl44rb2KbfiHr0gQxKvKCpRMJh3K2vZX66Wuij1yAqbjCQhEgmoktFZCOZptkwNO3AryX3H0E3XPdYtGYCunMvgcFOEuPxmQnsVMuhJPuGv4kTHHCWnQQwKAXgPNJEozsMLi/QOM+gAGj7Fe0dYLfovBbZGAeq9x6mV3d6mFygg= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=sj39Hxk3; arc=fail smtp.client-ip=52.101.65.67 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="sj39Hxk3" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=IcdJ4wEim0GYs+HNs4hcxxJRpPN01X1QM2C/Wqpr8+qPvTpnN+PkqZg7BUeryIvpCAlwFG4CQUmY6ouVEE+xtZM9HKpgJw16RmORkHfvl0L+AuaZaGGyu851ARC/yoVvo/Uoi5qF9M0iYz609ow54VChEZ+uT6qebKxt4QBT5vjw+99QWU2aXMaRXNY3mWtRjWSFxXcm3dxZcG4KyQCCrgTbfudYNyiBDolBSY4zvaFc+v/WGnaXQu6eMQTAqX7FWkBArezJytlMgMSarTWYdnvE9yKElSRisux/lYGdujAQspxgb2xRqOgFqMeeLX9t3KkHMiu4DXoz/lngWIQnXQ== 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=jBH0/Gmz65koXol9twNplDFQDt8S21OC2GAAd/tQ6Bo=; b=wJLlyn5yCAoF5LUS7T0/C9ennBxF4hc3mJM9iTeYbr7uZADg4s0Azk1S3nxdzPO1/tTp7HAosDXaUCbKch8HUse5Y/2OtGOAiD6JE4W1c36NBSYxQRG5lx89PEOYkYue9hiP9MeV/k0XIhOz6R4pMukcvpJDzC3FHXAIPwww0gT/iUvDyzyn2jzPeMrSuWCUvBUXWcnVJPy3HPZGbEv5NC10tugYLAO6bLbsjBX61IVsuB2RamoWV1nGA3tvAH5CMY0zWo8c6ozIswddxuUYID17Hsf4blAlwjy4MGneJLL7i/JSCmPgjljakycorar/sDetRTIs2n+XofAIpE0S2A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jBH0/Gmz65koXol9twNplDFQDt8S21OC2GAAd/tQ6Bo=; b=sj39Hxk3wqUUcVhJDEzOKS+eLoQWBYvtdQcac36/Bg4brXiaQO6++XFxBWzS85qh5ceiJZ8VlttK0r/n22aNOJ9uWPqMTOO1aQbfA47tQnMyBkTMWUoRKtg7GYHt0y6KWeLsIFYz+MpuWtb28hOZhEyO1olXFgQ1bK+yXUjhwL9fbKO3iCgstaMAuERW+3BRIj9pTf3zZ8168v89YO0kj1z3HcYCsTzXvj96CSm2kXjCFIprJ9JPbZC/dXo/ONZiEgcaiRffu2tkKmZEnT4bFc8e5m1/XzOAkrXiLcsuQGg6Mf9G+L+2SBh5cb3dWsIt59o7wcezxO/opaUzFCg6ww== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from AM9PR04MB8487.eurprd04.prod.outlook.com (2603:10a6:20b:41a::6) by GVXPR04MB10828.eurprd04.prod.outlook.com (2603:10a6:150:227::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7962.23; Thu, 19 Sep 2024 13:48:46 +0000 Received: from AM9PR04MB8487.eurprd04.prod.outlook.com ([fe80::6d7a:8d2:f020:455]) by AM9PR04MB8487.eurprd04.prod.outlook.com ([fe80::6d7a:8d2:f020:455%5]) with mapi id 15.20.7962.022; Thu, 19 Sep 2024 13:48:46 +0000 From: Andrei Stefanescu To: Linus Walleij , Bartosz Golaszewski , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Chester Lin , Matthias Brugger , Greg Kroah-Hartman , "Rafael J. Wysocki" Cc: linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, NXP S32 Linux Team , Andrei Stefanescu Subject: [PATCH v3 0/4] gpio: siul2-s32g2: add initial GPIO driver Date: Thu, 19 Sep 2024 16:47:20 +0300 Message-ID: <20240919134732.2626144-1-andrei.stefanescu@oss.nxp.com> X-Mailer: git-send-email 2.45.2 X-ClientProxiedBy: AM0PR10CA0109.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:208:e6::26) To AM9PR04MB8487.eurprd04.prod.outlook.com (2603:10a6:20b:41a::6) Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM9PR04MB8487:EE_|GVXPR04MB10828:EE_ X-MS-Office365-Filtering-Correlation-Id: 2a107bdd-7547-475b-3de3-08dcd8b1c83f X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|366016|1800799024|52116014|7416014|376014|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?ylKQb1B32LmCsx1LcH0QhK8g5SKdbhj?= =?utf-8?q?mMgZ6ZicDYmRe+0/Ml1u031x59sdztpdIHUqPNImVtmUSSE9KixhJuqRwRtAenaeX?= =?utf-8?q?ozbZCUM3AQHxOJMT6ZiUuwhe3GxQPAnbZVsGmKUtdbVkEeR1qJQ+NtWU11zNxfo+w?= =?utf-8?q?dbAMXFBt0sc77EVh4YG5CD7iNAZL1JHG/EiOGJOQojpUiPVuuKWmio7WJecOpLIOA?= =?utf-8?q?HD2sqAhrkIHudljRPfmAurNXlZfV0f97JOIFoJTvqsIsFDWEVZ8fZGdMfz7jZ8T5N?= =?utf-8?q?e0tU/XNBkJnEHQEtHLln5428vOfjahEZ8647EQVijGMYwAPaPBPCZIpP87f3hRbs4?= =?utf-8?q?nf4B1wu8uWZEAWb/OFIc6RWAKP/9Ti6eLJdiOFQTf/5+hbvo67ebL5yLBFmrdIs3e?= =?utf-8?q?sFhmlnzfOToTGUkDIu+5H764R2KMe7XdkIjDXnhkppnpNlRWeat4xXE9WK2D0PTCK?= =?utf-8?q?rl8FZ73seWv/6mNBeVKBAuoQMZKtYYL0ONiExucorx/UBF0NhVvgM+bpnffBxrerM?= =?utf-8?q?vEIZ+D2fFTEzV2F4JUjHuyYWpqiU/vCWPxqWI6ioWUl7HmZAmOIMkU+CHv5JJu9nq?= =?utf-8?q?Tsnjkcn87N7oFuXifAff4cYQS1G2tzpdWq8kiM2x4ZPeHuDuGCsCMPreUP4I7gOqd?= =?utf-8?q?qSMEsR1eieJLSD6aKwixtE2uo9BtbV2MGRgELYzMwOOphBICi/aT8HcKls/HU6zPN?= =?utf-8?q?qVCCILttmP8iPdVEc9VQQ9l+aJ2IN6Njhh9n6SkJoX3Y3HJ1TsnuPXxCDdmteR/TJ?= =?utf-8?q?3ue1pPBbfceqk1DpPgFw5Lx9RFXIKuk+OhODSUypmBmznJR43Fi4bHwnoMGIIpFUg?= =?utf-8?q?iXH/FdohyvTBsKHvZINqqAgZooJPdJqapXch1+6Hz7RLpdjw1xtOqWeax4M0AxfqU?= =?utf-8?q?rK9taYA40TEZCTaJhp1kZao9MU/+Cg0UcuWkLIo48LU5jlyWOfMazbMlakhyPnXIC?= =?utf-8?q?t++5gO4Y+Qu3ekUoYb/9eHk0JKIsCsi6KDbzYRxvcpLC0weT1r5WqCq92NpYpmfSf?= =?utf-8?q?rt2VEiejdy14l9h4p8Jj6hkpFTdsHnsRBrVPdu+2M0CX4vdMeU/0Ef1R33kv02P0h?= =?utf-8?q?SN8TBxUfkTlWrDtZCZ0MJHJHyOb5CyOzyEuIaRu2xDL9JnBBw6ac7Ib6XIeH6rJTI?= =?utf-8?q?HlnvL9pELtnmLt2PrgG9NWs34/UsF6k6G3B85csVb9I8kdtCo4zbkFgIWsvM5PAgZ?= =?utf-8?q?vUbMf+qBafvdzghUSdnN/USYRjorgIZAap9NLT/Nt5EiM0jGEdEv8CYYcm4blsSma?= =?utf-8?q?4bQ2WRk6lLH3+Zw8SWYwYAylnblhHpUzcj1PwDQrq5G93Ux1kkqbA9I1lrYQfWHTg?= =?utf-8?q?z2eK4kuHQSmp8bNhUtyBALVskwXEj65jcA=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM9PR04MB8487.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(1800799024)(52116014)(7416014)(376014)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?KAjaZG9BDxq5gA+Y/NmKH25OoVSw?= =?utf-8?q?uZbsND3EVHwwNPxpDDerNFtgMawwOqwmmFU1MrS8GwHcWrvlmRy1q3KktTloX+bgI?= =?utf-8?q?bM9NVpEnkWOUzoWq+jxdG9JxwJhdbJdARhls4bIVtgdQ/9t2dwuHpMlZTuO0cz13m?= =?utf-8?q?R/ikNLmj1OgkL1kF1irbid4hoAu0ZEnRJJJ23AkRLDXLGpp5h/ZAmR+Fi76fAbpu9?= =?utf-8?q?WzIqu6AdwppZiWKRlj43uFQr7asiRU4avMo6Ij95LQYHcx+RtxpORgP2n6Fk5ZOe1?= =?utf-8?q?t3GfrAttr6Jsn4su5GBgDghbLsGgeqg7+P2boEnPFj8UillEY9me6VTDDhqyjcRTd?= =?utf-8?q?0/hit2Y+1o9D8KF4z6yIWGO3sM551uv4449vrd5mcfO1f5ZFEiJ63hgPmD0hrzjlL?= =?utf-8?q?wG5izRYRKxP8eOHnAma2tgcP/i6Pfh6ZtVYyv92+pJxaKTe0R5jd1P+9bKP3y++F7?= =?utf-8?q?HUJQjq2J71O03wyRHGC4B9yzrikshu2WycxKt+M+7KN7P8hdccFuyEfWp3kyG4jBX?= =?utf-8?q?FjGs1Bs5Xw7vHjRyXQ09uEhSoouCRXBPShP6bPREG+Qfa2LEMQUnvLPtJ3dhm6kNT?= =?utf-8?q?hsSWCg/EYXrfQR0SFAaLROnbj7aB5E3/4S9CU8p2dTWlc/U86wcqOyRK+2+drEU/H?= =?utf-8?q?pdt1tv6wKHL72AewRFx65ye5QAHZ7P2Eezmh+08Pw0VNAaHnpJCqdT4iJnYAHmM0k?= =?utf-8?q?E6EFxyuxnAJqZtxB7P0X/N4Lk7+P5e6I8HVhDWzXp+nSX7KY3b5INWL60NSrhwJFH?= =?utf-8?q?U+FKXaJhtsh6R5WP55AH6CpiXZjTWfq/GGAnuNs5duXT56ha/larkKRTJ8hOUnkiy?= =?utf-8?q?A/DfzCRnx7hutZrNCft1CpGrqBMRz8uZHZT2XumBMfjnk4Bep9WwRhuKFFFjpKaiq?= =?utf-8?q?mv8FFyVloAh6N7UDbtokvWLd9zdJndKIWmC3KZC2nskjtOJMcz713huS+a4aUnpdY?= =?utf-8?q?grcIP7hTveujSnMT9z9YLwlydKtzwG8pxrsiYriJNGlJOIOQF2juGC1QJT69qyU95?= =?utf-8?q?xfd7lmb0nhkHKX6I/kHQ9ExmTjaN/Mog3zlzzEwFNR+Nm0WybuxKwdfIcaK8GaD2o?= =?utf-8?q?AWJ+WQUwlr+/vdbPbSgnCmW9T+H/jpTKbqWcpksVPYL4t+CcvP703kxF0hch0ANis?= =?utf-8?q?0t4z66cc4LbRUZziP+UHwm1q+/kBsh7hkUsOoMa27HlsS0UUG5SZBlCGkO9+NMasI?= =?utf-8?q?HzGqVR1oXsQI8QuTfHyBsbXKWN89dyvP8zDF7gAan2B4aROIUob3Shcyz83Eu3wCr?= =?utf-8?q?S0CdYmO7jMO/YYB2uai4WLJhISiu/lVnbawtnasWOjBIl6YMctG/TcrRzMa7DfIw/?= =?utf-8?q?mLoEIP0lXSn73tzJmQGPr7jRXXOaLXuM6WUTaWDq4gQT0onvBrCnUjssniYGOz5x3?= =?utf-8?q?bYN7pjw2YS9TrDAOoUtAtdym8OphRnfVrCBkot+Wue3sQM1XMhbe6JjyNqKXcQv3g?= =?utf-8?q?a/3mzd/21yfwtNVDB6/XGUXSL5S/QGGNKMDFIOkGKmMO2H2KXk3aG3ui2DWoZ29Uz?= =?utf-8?q?GTmr6NnfYmh1ZOdc+t03G6eklkqHcncArw=3D=3D?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2a107bdd-7547-475b-3de3-08dcd8b1c83f X-MS-Exchange-CrossTenant-AuthSource: AM9PR04MB8487.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Sep 2024 13:48:46.3140 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: U8Z7GzOQCKQgkzCX6FUxSEQ+bOvX9wc7erXK/MZGRHQyflFWfcWpeycQtzvgWQVl8552siv2tDaXHdAbnoCgH99hR+YU7UvFn+Hh9L7BtCc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR04MB10828 This patch series adds support for basic GPIO operations(set, get, direction_output/input, set_config). There are two SIUL2 hardware modules: SIUL2_0 and SIUL2_1. However, this driver exports both as a single GPIO driver. This is because the interrupt registers are located only in SIUL2_1, even for GPIOs that are part of SIUL2_0. There are two gaps in the GPIO ranges: - 102-111(inclusive) are invalid - 123-143(inclusive) are invalid These will be excluded via the `gpio-reserved-ranges` property. Writing and reading GPIO values is done via the PGPDO/PGPDI registers(Parallel GPIO Pad Data Output/Input) which are 16 bit registers, each bit corresponding to a GPIO. Note that the PGPDO order is similar to a big-endian grouping of two registers: PGPDO1, PGPDO0, PGPDO3, PGPDO2, PGPDO5, PGPDO4, gap, PGPDO6. I have other patches for this driver: - interrupt support - power management callbacks which I plan to upstream after this series gets merged in order to simplify the review process. v3 -> v2 - fix dt-bindings schema id - add maxItems to gpio-ranges - removed gpio label from dt-bindings example - added changelog for the MAINTAINERS commit and added separate entry for the SIUL2 GPIO driver - added guard(raw_spinlock_irqsave) in 'siul2_gpio_set_direction' - updated the description for 'devm_platform_get_and_ioremap_resource_byname' v2 -> v1 dt-bindings: - changed filename to match compatible - fixed commit messages - removed dt-bindings unnecessary properties descriptions - added minItems for the interrupts property driver: - added depends on ARCH_S32 || COMPILE_TEST to Kconfig - added select REGMAP_MMIO to Kconfig - remove unnecessary include - add of_node_put after `siul2_get_gpio_pinspec` - removed inline from function definitions - removed match data and moved the previous platdata definition to the top of the file to be visible - replace bitmap_set/clear with __clear_bit/set_bit and devm_bitmap_zalloc with devm_kzalloc - switched to gpiochip_generic_request/free/config - fixed dev_err format for size_t reported by kernel test robot - add platform_get_and_ioremap_resource_byname wrapper Andrei Stefanescu (4): drivers: provide devm_platform_get_and_ioremap_resource_byname() dt-bindings: gpio: add support for NXP S32G2/S32G3 SoCs gpio: siul2-s32g2: add NXP S32G2/S32G3 SoCs support MAINTAINERS: add MAINTAINER for S32G2 SIUL2 GPIO driver .../bindings/gpio/nxp,s32g2-siul2-gpio.yaml | 107 ++++ MAINTAINERS | 7 + drivers/base/platform.c | 27 + drivers/gpio/Kconfig | 10 + drivers/gpio/Makefile | 1 + drivers/gpio/gpio-siul2-s32g2.c | 576 ++++++++++++++++++ include/linux/platform_device.h | 13 + 7 files changed, 741 insertions(+) create mode 100644 Documentation/devicetree/bindings/gpio/nxp,s32g2-siul2-gpio.yaml create mode 100644 drivers/gpio/gpio-siul2-s32g2.c