From patchwork Fri Sep 13 08:29:31 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrei Stefanescu X-Patchwork-Id: 828724 Received: from AM0PR83CU005.outbound.protection.outlook.com (mail-westeuropeazon11010019.outbound.protection.outlook.com [52.101.69.19]) (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 91FA6185925; Fri, 13 Sep 2024 08:30:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.69.19 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1726216220; cv=fail; b=ArQ/7AiRFDi6qj6ptgDMcLLg+FJhUUkJdLOAHX13LsPieRzc/e0ehNjAc5CsmYVRDQCnGcnQJ+S3vE4/JklxSXfaMfwWEWPRGFsuU5aMY6vFYPCO7+u7I2MKOSUDOiW/YL1j4xRwMShpXP1lWT/MWRa+NMz0zUgHnujeocmDThE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1726216220; c=relaxed/simple; bh=EV0Kotmgs7Hxx3OhpROYuVdyDbXkMCuMGBy4yvVh7Vw=; h=From:To:Cc:Subject:Date:Message-ID:Content-Type:MIME-Version; b=f+UVtu22ZYuY52fPuGL0ppOhozD8NVe3XM/QKLrBwHV+qslSJn8Ew4UkV22GEboBfAp1wlDV3FpGF1Z/WklYkk3ufsXJvG1NJSi5EFcHNcqWkTy9jypTbD6/hs8UjmqsP3oEsyR2D+2wexPRO5zeOcat0iDVllI89omLKrg/5YU= 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=bBGiHGgf; arc=fail smtp.client-ip=52.101.69.19 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="bBGiHGgf" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=MO9+El2hLxLHF90eJNldZzS5K2gvf2mvqfWw23+Vs/9gIg6XAvvazxsuOUyJEhsGLZx8KZN4zSX1fnv9D1SB23AAQaPBktotdVpJ3U+UrS0xDqgSO1dGdf5mM5+Yc0DC9P0kVSGy7EYiygrDwWtAiL8GpFCGygi41LusOoTobgXZR0vQv6gWyz/5zwNryEmTx5MtNWRdZcwp51urEsGjtS6Kz53bTR4GcXj79BUU2Qd6IpUnqdWVUHEiGJoVmaPEd5G1JdZp4fxQTQVMb7ubxNJ6OIfwp3HzqAXR2qxPDNofc5GjWMUAAFqoWkmXtBsfUyUKVz9AF2tEBUbjg9PHAQ== 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=Ft4JzMtF4WyexVGA09i7K0sU/PAYWSx9myYsoZ3erz4=; b=PIavqcCht/ZdoG/VrG/8XKWukwfwfG538tphXKrp1YP7Lt5BwFtESn8+H7e8qbWc+f+ZpSiB2GjR6EtWp80u5YkbKMWI2Nz3TtWksLGdN6GKDR/iUcPG6k35JwqDaCPCxQTvP5prAdrlmwKO4nzPDcQJ0S5EU42dt85cH8EplxP9M9gtoqThvbFnIbXeBs//tHzMkuaxz4mlawWVNUnoYaRG/g7MLPxalgz0D9GtHNKh5E2dL1zRQ8MTUFZOxy+jDmMuHqBLf/q+ZH504ou0uI3ZikmSbX3siE1cTLKQEeTk9gw6ltqGfoDp0tmhWoY8PagM6NzXM88qtPVEF/lVMQ== 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=Ft4JzMtF4WyexVGA09i7K0sU/PAYWSx9myYsoZ3erz4=; b=bBGiHGgfxetzj9/ExARs0bbI+iUumROTp5PxZnUfqZ7bBs4hbBfqA5/vwCeDWUdmcjDA3dnfX2oxwKXFra1sUtFfahWV5oL51QTqHGK56zu8qqQByrPQqsJhRFK8kx+6gKLcvjA68qeRmFDfAZ+Fz+4qqu8HWeaQdFOgEnRmMynqF3sOH1O92fHXN25ZJGk/APFjr4MbQHaTp60grEDL8FZ10wcz7c8k8KeczUNhXoi+YOJ7qmQPMYFOK/zbmYtPQv9aYmg5NBie0+jq+32xzeXxPwvAqEkFwMy2d3ipZ0QD9/Qvxq7cy7GB/BBcbCd3u9y1sgGiHUrYNz0CRglc8A== 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 AM7PR04MB6966.eurprd04.prod.outlook.com (2603:10a6:20b:109::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7939.24; Fri, 13 Sep 2024 08:30:13 +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.018; Fri, 13 Sep 2024 08:30:13 +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 v2 0/4] gpio: siul2-s32g2: add initial GPIO driver Date: Fri, 13 Sep 2024 11:29:31 +0300 Message-ID: <20240913082937.444367-1-andrei.stefanescu@oss.nxp.com> X-Mailer: git-send-email 2.45.2 X-ClientProxiedBy: AM0PR02CA0134.eurprd02.prod.outlook.com (2603:10a6:20b:28c::31) 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_|AM7PR04MB6966:EE_ X-MS-Office365-Filtering-Correlation-Id: 8b87dc77-766b-40ea-e0cc-08dcd3ce497f 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|52116014|366016|1800799024|7416014|376014|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?nFon9nxaZarpjsfPxyGNcKm4JZ7+Ko4?= =?utf-8?q?MqmER3RpUzgzLgi7r87CAXSfMw07i5z1nqYGdsDNGgUmrzuPpmKl6XQKn8mDP6MB0?= =?utf-8?q?LqOldvi0vluq0J62msKiZqhUgYndaF9ZX5+643zjH6ZU65zzLnZ/4cjIq0HmZXEvA?= =?utf-8?q?7nlg/by5t8+61xhq8AYagewUDJUNx+qzckkh9Nn28kaE09pZycqG3Xz/4S/yvHIn9?= =?utf-8?q?f+FEDnSsZQNe31eVs6kEXTcnKqIdaLDRK2oW8Z6kARJ7QFOKNo2tztqPXghlwi6j4?= =?utf-8?q?T+crytuN+gnopvt7eccIyTjZEO2tZ0/b6HiKbQI1b92TqVIC9vW6RRgvaBbCS7ibn?= =?utf-8?q?7xbeo2jdziO3Ll+aGdXOfZT/dNMowv9XeKcdtBY+3NIU+IX+SmiT4RTkbCtCBxgSN?= =?utf-8?q?oWGJQIGOzKHC1QQbn47hH0hgswqxsyPnjgZPaUjDc23ah49jCd5SaLi9xx9aCZu8X?= =?utf-8?q?fbFceP1YdAemAXELTCEB+YSCOF0VqHoQTwhNRup5MHtgXj9XQiYlqnmbT0/1b/ZEG?= =?utf-8?q?TAYxt5xeBfI4doxS3MordNFVgtBktuxg0gWe19nyOCY0rgoF3PZ4n8fwnYfQNlccR?= =?utf-8?q?6U3pt+wWZJ26QoYoz2P1Is6r5trTBjm2+rbhe2TQJ3+n31GhPOZ0Z/XXngvOx/bjT?= =?utf-8?q?3N4gMRKo2AHfJx8dcw4gAWC4Jdt6xvNc1FM5bUX+Pmd/tKAnqEkS51nffuHv6Q79J?= =?utf-8?q?H+MqmPBPCXTNfxfsgyWsyhnUflD6OK/jD3IZgJTbUqjydIHGhyq+r8e0i6dBIdYY1?= =?utf-8?q?iYYzlw7sdEKuuMoa8b/pmL01af8Al5TiEWw0IB8vhch2c4sOxl6t0BbzEj8AlKv0X?= =?utf-8?q?vXVJAFRE9Jh6Lb81KLhSyszDCT2kvm+dKkEBZJ12uq1Z09xkY2WpXLHiMQ0PmoaPy?= =?utf-8?q?PFTFLUXuTDd9wzG1xQ+sRdk2ZYTbRj9zfaQi4ko216H6BRRPXBfmxtE7efUZ7Pw+X?= =?utf-8?q?cGepV6cgsw5LZMKsM3B3DDV65ClPG8InGexzET1J97ifBV2pNho/hZuAX8/0ffjIT?= =?utf-8?q?/EJ7ksRUKG1Hq2d64hWzTLp3+fu4zBP54gzqdoeTFIQXTpE/ACVLOF+PIhwtjRD/+?= =?utf-8?q?Ily8qCzBHawrvmQ3tEnOjUDC3qWCgeDL3XIqwPVX0ogAaF0sssDhz2qp7tFbJst/U?= =?utf-8?q?2JTukBT69bNKsM9BNWKUrCuvF+9xnnHHFAcO25onVfDauva/rjx+4N692VZWuDynd?= =?utf-8?q?+umFdP9XvyAkQ2lY9lrMoPWMdMyybUhm+jehzddDlRVHZF8cETSUJ5kjpy0WsrcS5?= =?utf-8?q?vL4zP+wirErKLpTC35BV3gtZsMO1s0tCbBh+z+tDnOXtBH44bPi/+7qXwA0ioc0gl?= =?utf-8?q?LctklKKC/nM0m9kfb43i4ZtX1XajO4vduA=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)(52116014)(366016)(1800799024)(7416014)(376014)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?txuNmazzYWVV/bUKbvcdLjnHASHS?= =?utf-8?q?I/ZSH6+QV9CAmMbSYjgOvhWwzmw391Irvyinmamp8U5t51tfCFN5jVNlFrIMKXfto?= =?utf-8?q?fIuSqXqkxU+TXi9yLK2+xgRM5BelF3ucssbGiJnzSo6QX6075Xk6A7ORo2N2/h96k?= =?utf-8?q?sbFIZvGmACwRF9xz4WEz8OwVPRQf2jId1Cfj4J8Lo2R03YbXwQSnJEdWsyMOhApZH?= =?utf-8?q?6XQJfogLJz+k4CueMGc8J0MQVI/bjdouMxG3WTZLSW+h3iAP7pYxGV/xNFUQZZLmx?= =?utf-8?q?vsZ18mcL4Z8A2dmbIGix5cBsizUVKHq6yFIfRg0hhOZyxDm/R2GFa76jgx7NlPMQM?= =?utf-8?q?TYfKlW5uWY3OyP1XsgtAFKUolP8ucQl9QPHTyU2dVRDrD46iOjAijlO+xY0zJOshJ?= =?utf-8?q?fMWkTYQT+U4U7wMotutyZcQOmnb4ONpBg2Kpjh3Lpx00lohUiu0DFaoSE2etLA2/Q?= =?utf-8?q?MLUVoVCxCNdx//Kpsv/aB1hLxkUbviKzvtHPDTGu7A9khE0j3W6WxMZc6Qc0H9PZe?= =?utf-8?q?x0RX1DrLc9m7zNO/qMb9Q3NsUL8ZcZtKPrL+z7m4Kc6m9QWOpn4ch9HCFubsC+EWW?= =?utf-8?q?+RgVy55bl67cUtMxFjab+RYWocV1jCymVpHgtqFDs42PXDl5fOlKkM1kYbBHJGZBj?= =?utf-8?q?CGdC7qdOKQBGI8Dh6pZwKPDIz0pUyHGLCwopoV1RU6ch82Supj0Uaf8u9hOjv9Hlq?= =?utf-8?q?leEgioR70o/lICi6TsW5psp0xC+Ef97j07zjHRrJxRXy2AvwPFkrE5GHaqnzK7UA5?= =?utf-8?q?jLb0Qv7fwRs96/nqExXOUufsxI4I2p8dk4pd1b0nNURIywNqei37zH/0nHMDShgJB?= =?utf-8?q?cMkYoEcbi5OA/lBkeC5pjjE5uRcdRRrke4nsVNLyrp20tMj+mmH2Rpr3hb20oi093?= =?utf-8?q?+9MkfdZptsx+TqfyMqtCMyHbs28pEHthZ9hQeXZLbLt7V7+K/7LV9pR1zTeRt7+4m?= =?utf-8?q?m+XnGrqrGdh5VXvebGK3GgsDcsSYTcOECEsVrisCN9ElAx6cNALaWnbAkYT5ic8Aj?= =?utf-8?q?I69b0LeITf+nnIvbDMxbFgoilK0pFwDamEpzyfP1bIuMcaHXprYUMXiKwSsy6jLmH?= =?utf-8?q?TedDaKDN2zzxV9M1AWJXwk0pY1/U5gB9DKWXzHTS/CeYKOTwMRxlP7aRD0bFGlZFj?= =?utf-8?q?U7bFsmrfxmDdx970OaCH9aDuCvqhFRQOksQaSfNnSJWapJW7uj58ZTtMGptBpO4kH?= =?utf-8?q?HdKd12/bkIeMhm+ZiiY6uhBLe9l/NbsmLUvMOE30zquon7hjLiTOzQyVa8yuy8Cmb?= =?utf-8?q?B0UAULX4g2IvZHvko19m9shgH/4QaDuKEZltQ7jqh1iUz24CBPRGc7+swcdMYZT8D?= =?utf-8?q?SL5Yz0WtEe06yRiiXlzv9uGAr2za2yWpZdlHkSL6DsLqrszh9jPGxNSZhUoB+0Wuh?= =?utf-8?q?ENZWYb7zZrl3yQwjNzzTC6GhbZqC/bEFaon1E1lgAK+fX2U7Z/xvJXxT9rjktS0+n?= =?utf-8?q?kdbEh3wYokyhU8dTCyRhOtlp4SN7x322GDX8Msu3bGGXy9h3C1EsG+8rxbUeUZXaI?= =?utf-8?q?FmvtOVLMTyi7IqOh6k00X2MX09e9zo+Dhw=3D=3D?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8b87dc77-766b-40ea-e0cc-08dcd3ce497f X-MS-Exchange-CrossTenant-AuthSource: AM9PR04MB8487.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Sep 2024 08:30:13.1708 (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: mEJwlBpE3HG0D3TtjsbD1H2luIYyHVrXTDtiNGOk+JvDoUt67QzLM7syFu7MuKfJi0WWBgplgiY8wVkKogpEenwM+s2EAPz5E7YLOQcRzE4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR04MB6966 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. 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 | 106 ++++ MAINTAINERS | 2 + drivers/base/platform.c | 28 + drivers/gpio/Kconfig | 10 + drivers/gpio/Makefile | 1 + drivers/gpio/gpio-siul2-s32g2.c | 581 ++++++++++++++++++ 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