Message ID | 20250228081812.3115478-1-ciprianmarian.costea@oss.nxp.com (mailing list archive) |
---|---|
Headers | show
Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03on2041.outbound.protection.outlook.com [40.107.104.41]) (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 5040921420B for <imx@lists.linux.dev>; Fri, 28 Feb 2025 08:18:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.104.41 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740730705; cv=fail; b=OLvonT5xYf301/sRlZqZf4oDbXlQABrmgmOhL6b2wkKI/axyzMpCgVA4Qk4MREiMxI0+dUNzPATQ4y1XzJBmC4rT8ZrH2MzOmmmkdoKuY4T77n72/0D3ENs/Siji+MZD6FxGuBgiPoP9pGWCOLRR6CpYhrQI/wDB0ko0hwpex98= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740730705; c=relaxed/simple; bh=WcXGujbzEcZZPO7kxTssm9NW+b6NjsX0rAtRhtqKmGM=; h=From:To:Cc:Subject:Date:Message-ID:Content-Type:MIME-Version; b=tcUHpelZBuoMKR//tr96Fzmlu7ZjrNPp74uap9YWJmCunVqb4500fia5n5Wf5sWJqLg6EKeoOe6vsaD7jKxThSlrzHdeHW1zqILnAz3pRnIBdw5wRn0uJBIMlzgTq/J2SiC3CZYcm1zutPDSzymOhgw3mZuBuW+4MV8zhZmmbgM= 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=rBIF9OOz; arc=fail smtp.client-ip=40.107.104.41 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="rBIF9OOz" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=EfTaWQmvSQfRVeEkUd7cYGPuiiOIS3jZtkweuDJOTkFX41OPS+Q1ulYM8wk//Q7rVzydUrEwXRbSoBo6FVN+eSRXOdR8TAq2j4FKsa5u1mbBrTLmXNA5JbNrAs+9AnHCf/AFXrrb4Z8zgBIBxzUFQ1UiMERnYW5fl+CtbNcP16EbSsSIWQ08dnIm5LhfpmsfRxBVh7+Is7yvH57oMa7f7e//I7YhoepqeOIB7PAIIGeUdUI3Mf8UfdYpXGpuQuzHJ0eivIIMRyQVlgNsn0OoZhof/JegfPDYqMEQposKQQRbJXDHT9N8p39a5AZoFs2xdLbHj+ZiogyZt9hh+nzx0Q== 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=0G7NN6Kl5COfmtpPduq96FDYZsNDDrMkC17nbtyCYNY=; b=WzknnWI+/AOSHogRBNdJKNP6opPeqqoj/JHl6TZ8lhr84YBeXtG6YNRK1rgB1v8fynGh1mKYZ51hszgqt7a6ApmGuue34Ks9nQr9gF2xi2jVhcGpcrLHyJohPEKn0LyVNFCXO+qtES6WBPh2kkczXOlCTmBYHWZBorAEVjh1g0+Q/WQtPeMO47wJUDldPVr8h4LwORHB2hbynPJMiST5F8A0T8MwzXq/6T8CQuvkN7mIXcZvVKfQT0v3SyaymsRqmy4tshqVqGTwshLnvZ/8erWVczK1II/8Z4mJzJ7/TOcE5W0+G50GF78wqH2WLASp71QkNjfI514MbTCrevBYmQ== 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=0G7NN6Kl5COfmtpPduq96FDYZsNDDrMkC17nbtyCYNY=; b=rBIF9OOzdfRY6PWNtwbVQ+ZcwMFoNCCXW+1rodC4hooMPkW/NuD1f59xPUBph6lumeP/qO4zOTQWqPEdFyDi4VLgfN+6hnyl1OOPTNyYjL5HiNHGuaF39nF+PZAf4p+EKg3u36DIZDXjPObaU/4LcSQy3vWgLW9HJOYH8xN6RfS1dKZmL2vwEvD+4jhDW8ATn87K19tDMgEbeGYCmE5j/7YmlgdzIpGzDFnB1rEujdPiJc6wnuPbAu6TYxWklw++mjg0owGrhzCD1jWrEN3GhnvHOphhDTp9Fnn2qeDvRzFDoGFlkjTbLiyRvR00Up+Rgtr3uAKU591XJRmpKjhOcA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9251.eurprd04.prod.outlook.com (2603:10a6:10:352::15) by PR3PR04MB7305.eurprd04.prod.outlook.com (2603:10a6:102:83::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.15; Fri, 28 Feb 2025 08:18:19 +0000 Received: from DU0PR04MB9251.eurprd04.prod.outlook.com ([fe80::708f:69ee:15df:6ebd]) by DU0PR04MB9251.eurprd04.prod.outlook.com ([fe80::708f:69ee:15df:6ebd%4]) with mapi id 15.20.8489.021; Fri, 28 Feb 2025 08:18:19 +0000 From: Ciprian Costea <ciprianmarian.costea@oss.nxp.com> To: Alexandre Belloni <alexandre.belloni@bootlin.com>, Rob Herring <robh@kernel.org>, Krzysztof Kozlowski <krzk+dt@kernel.org>, Conor Dooley <conor+dt@kernel.org>, Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will@kernel.org> Cc: linux-rtc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, NXP S32 Linux <s32@nxp.com>, imx@lists.linux.dev, Christophe Lizzi <clizzi@redhat.com>, Alberto Ruiz <aruizrui@redhat.com>, Enric Balletbo <eballetb@redhat.com>, Ciprian Marian Costea <ciprianmarian.costea@oss.nxp.com> Subject: [PATCH v8 0/4] add NXP RTC driver support for S32G2/S32G3 SoCs Date: Fri, 28 Feb 2025 10:18:08 +0200 Message-ID: <20250228081812.3115478-1-ciprianmarian.costea@oss.nxp.com> X-Mailer: git-send-email 2.45.2 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-ClientProxiedBy: AS4P190CA0010.EURP190.PROD.OUTLOOK.COM (2603:10a6:20b:5de::20) To DU0PR04MB9251.eurprd04.prod.outlook.com (2603:10a6:10:352::15) Precedence: bulk X-Mailing-List: imx@lists.linux.dev List-Id: <imx.lists.linux.dev> List-Subscribe: <mailto:imx+subscribe@lists.linux.dev> List-Unsubscribe: <mailto:imx+unsubscribe@lists.linux.dev> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU0PR04MB9251:EE_|PR3PR04MB7305:EE_ X-MS-Office365-Filtering-Correlation-Id: 536f13ce-411b-4146-e0ec-08dd57d0755a 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|376014|7416014|366016|1800799024; X-Microsoft-Antispam-Message-Info: =?utf-8?q?W2WChppz1EymxUsSncPuvzBdJno4PX6?= =?utf-8?q?uafO1/51czGQ23beQ7I92HowmxTWrg86OSpz7cSvXfKYXqoEPvDJTqIjnoTKKcMut?= =?utf-8?q?7bLkzwgseydflyz/R/y3gQ2BwvQoSMKLO/YXvQ7BM2JPviH3Hd0DqL/QgznvPY+B+?= =?utf-8?q?85UGdVNkcuapbDi5RbO8qzT+nd4ypfNJ0TNvsvttYzkAeIbosbxRBIK7vuPWaTIMj?= =?utf-8?q?ePbdAn+2Q0mgB6KpWBeOE9AXVzLUHgt8m1FyE+zMwoJEC29dXM2LGJZJhBJHdf6B0?= =?utf-8?q?R3vD2aTDxw0pnc8sa9TiEFbF3nA/bQgastwZb5Dcdf6FOVw5rrpzt/oF0UqFFnPcs?= =?utf-8?q?WhUFw8knbiPek5x3tPsc1f3eRa0ZYZSoUlZWFlOHKXNSj07PsqyBjWsVZ7jxXcI7z?= =?utf-8?q?Q+b4aWekfwB3qqf8MhWokpt+DxPnLZxf14clnQsqIv1pMOk6QrYYlwqACD+n36cHw?= =?utf-8?q?PhXnk7ZEX/aHy9nrgwQLZTrahWA1SFDimuGAeaTFaCQsL0EoZeSv0xRjT3URp4qhk?= =?utf-8?q?lZiGb19S3ZrsXZB3u/0XmPR0lLKSkVcd5+S+3UMTgpCtVnSjxfasFapeL6WzuMAmg?= =?utf-8?q?2D4bxvMTL4j0R8yEXgtUPIhAApX6UUvo9UYX5lqh5Q6MA91FSEV3AUKDgePuHgtZV?= =?utf-8?q?gFXHpZhvNgRaecjhi9Vhg6pQlAkWzirNTY2Iu4XH61E8yLzaIa9E3y5kJyvQUD1Cm?= =?utf-8?q?+09lGgYGSrA7yLj5bmG2aHupFVRGvEOtyx5EIm+KmZLBqvn82JGFrKh9a/KVgiYgO?= =?utf-8?q?BD0fR5Sw8FgTc8TcYoyr3bHFL1BCvkm29nTK/00FoD0cYi0mSi3DiPSb9dt+PZ2yf?= =?utf-8?q?3a7kh0wscH+w5JS0tGyFIMyaXePkUCyKp0oimc09tWbUexSY6JGcyJ4x1jraI9kWy?= =?utf-8?q?RXj5/mnLudFw9Dd43iwNrxWbKWCnuUzKUo0y/+WW3am4i8gmk16or/jONoL3c+pzQ?= =?utf-8?q?xAT1DpPpaDfMsEJqyv90DuDVKxDBuIdVNwia1CZ4zQfUQSjLF1fbPEXHx77D0YXsT?= =?utf-8?q?6ct1GaRAj8UWT25wiPzHKq+5q3uybm52X9kEsdje5X9TU8jvcuijksmM5EfapI/UM?= =?utf-8?q?XkHaNOqN2sORfx84mUFeHD46kroQk+7lFuUnQ26y6EMg4d4GUKkeBhmBC10kMyTJj?= =?utf-8?q?JDkz3yn61F2d/4HDa/XLod2VhwwKziZyhmBe6lvi548WkAyV21a5Nz6V4SyNFHxlX?= =?utf-8?q?C4FNCZZpPvb+mltzS6qAHFep1lq7uRI2lqziCeSu3Me8R1ifVLAehm+/jSRPtyxyo?= =?utf-8?q?FFbtRnrQrLBmGCWaSfLGeaXA0m5UpLYgu2D6FjQZbrU+TWaAIABhweVUX45dm3BPa?= =?utf-8?q?Z0TmFzuv17TK?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR04MB9251.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?V0AKWsZHpmtGcKdScsbBU1COf8s5?= =?utf-8?q?L+U47zbmqkXftdd9Lghd22wol7Ag9Tgqe/+HMblz5LjGAkoIIGJ9miF1f+rYBDnt7?= =?utf-8?q?qXYScfnzpzwmaeuNBWKnBWLrvmsHKzk2dkwoBl6lwH1U9w+J8XufZHuRbx6krJ1tu?= =?utf-8?q?5orLICvB6Vh1r8d24t9OqiUkO6gzeqr159qatH2Qe+x/jP9OHW7fY4bWF2L2ZpGPh?= =?utf-8?q?wmXJTKGgCrlFW2ILS8xv6wXmCZNazjBsYSU+w9p0VwNflIM+9xrdMyFIkA1MgWep7?= =?utf-8?q?9ks6lukj8UhzHS7CCRNzdoWioGWI/BkmlEivJrPGFQoOEP+lT83oQ5ySbXXt254gL?= =?utf-8?q?vPgWbB6U3VZ8W43bGoHyZvCSAC5Nk31fTrlCz3K6ArQymhX4+jEwLMTvh9DuYOjLV?= =?utf-8?q?XZRgE2xg4eF6dizGVrqhn65mz8LSieD4PuO37lMIW2aohj2xxPjJkFGF7yi3TszHO?= =?utf-8?q?b2ZRgeJPYeWDiXvQtnCEBgqb6NWgP1iYAM2Zdy1ZPk5AiAkyID/42WDcXv0dX2kE+?= =?utf-8?q?KVohkrKFfQOlJi/jKIw7nhF+FkTHK+pB1adVlZSk6jjGMBdih0YJfD54ftwBSsLcq?= =?utf-8?q?hoCqSzS/RUHVSRWlKFzQgGG1XyADkRUoD8S6AiF3GGuf0kTlF4SeH2/wL7NxmIXyT?= =?utf-8?q?CkdMqkBiMLSGglKNKERuOIWUgJoRebTtWQvBr+D/w4kUb5YgzaU19dLoUzRiG41br?= =?utf-8?q?fhYH0FHK8Hnf4Aa0B/EhZXHqW/esWFQrUJQ9NXiYuyI4z54YF3YDnWhxTF3MWCIbj?= =?utf-8?q?3v7TVj6bVPM7I+cP7oJ2JEs40aekbNeIrsmcYOsLzumF4aPLpYaSzrqe9V5+hxlnO?= =?utf-8?q?8vNX7+M7AgaAPAKfnfhKky3Ft/qXffMAlvZ0y6Pq3hG9Px3htl1xuBtuOe4/pXNfZ?= =?utf-8?q?1UUTr8o9A7R2/aHi4BAxB7ShbrAIxSMQPVSLrcsE2yQyn+QqegEOc05tNBZVbm9am?= =?utf-8?q?81F6vFE3xePMbiVzoEJCrORm9aOJ3lT+qJED442QwPymkbO0KBJz2/8BS3QcuvG9z?= =?utf-8?q?5wXv0HneQsLA761G2RAY6UXWHmBNboOJz5SrjUOcyVV7pnds2vVCB4chzH0EY+wNl?= =?utf-8?q?HMAsmHv51q7SxyhDiQrQeQzmwV8ixLeYF+UoObH8zc0ZgvSYHvbRAmTRzds1i0xi7?= =?utf-8?q?g0T5tvV0zRCwTHxcUOExboFBAzMvFcdP5x8clBM8Rf3TwCue4/zIpgorYkij+8Ztq?= =?utf-8?q?tavn+HiZm1GM6rY2YfTMNgjyDhjG5VTQ9VyqskG58eCPJ5ZTSySCSfPb2FLwYsAdi?= =?utf-8?q?WBgWUiyDhciMqCzNr1I3lLurvAw3stuIMH12H+QhNL2Yr0cZXqEsGrVWMmDx6UoJI?= =?utf-8?q?keWwx/f7e41UtR9kbUlrn90gkb1meIo374VpGqFvJW4jYbrRgLxWE9UJ1zuChvFmF?= =?utf-8?q?p4dE2ZSvbFIvj+7s9eyp2Atd1/LzYPibxNC3z+pLO3x2Hl0Ba3WNNXiroxr4rM+SM?= =?utf-8?q?zNSrjlFWHsU8J5f/QYCD07O1d4o8SkVmF18aZfmLoAmzPGkK80cg9hAnLzhSIz5Vt?= =?utf-8?q?Cgm2rerpCiZ6gWMoCyVeNxLtq4JAn2Y1HA=3D=3D?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 536f13ce-411b-4146-e0ec-08dd57d0755a X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9251.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Feb 2025 08:18:19.3341 (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: XTz3+gKIvAr8c0LwJUPZb54w8UtasUoLFnRZGktPUysn7yF3FDMxw53cu5N1sNNrVuvlb14rAuFWLvIunA/bs0SQSB0UpFTztzI5heHrW7w= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR04MB7305 |
Series |
add NXP RTC driver support for S32G2/S32G3 SoCs
|
expand
|
From: Ciprian Marian Costea <ciprianmarian.costea@oss.nxp.com> This patch series add support for the NXP RTC hardware module present on S32G2/S32G3 SoCs. RTC tracks clock time during system suspend. It is used as a time-based wakeup source for the S32G2/S32G3 SoCs. RTC is not battery-powered and it is not kept alive during system reset. Following is an example of Suspend to RAM trigger on S32G2/S32G3 SoCs, using userspace tools such as rtcwake: # rtcwake -s 120 -m mem # rtcwake: assuming RTC uses UTC ... # rtcwake: wakeup from "mem" using /dev/rtc0 at Wed Feb 6 06:28:36 2036 # Changes in V8: - Added description of uncommon S32G RTC hardware behaviour on resume. Changes in V7: - Changed 'ioread32/iowrite32' calls to more common 'readl/writel'. - Removed calculations performed in 'suspend' and 'resume' routines by using RTC API ('APIVAL') functionality instead of relying on setting 'RTCVAL'. - Simplified 'set_alarm' and 'read_time/read_alarm' by usage of RTC APIVAL functionality and relying on kernel system time. - Added comment about the available RTC hardware frequency divisors in the RTC driver. - Used both available frequency divisors to increase the RTC rollover time. - Removed a redundant error check on 'priv->irq'. Changes in V6: - Fixed a coding style issue regarding kernel doc reported by kernel test robot - Refactored small sections from the S32G RTC driver without impacting functionality - Fixed an error probe path issue on S32G RTC driver. - Added 'rtc' schema in S32G-RTC bindings Changes in V5: - Removed rollover support. - Removed clock switching support between Runtime and Suspend. A clock source which is always available has been used instead. - Enabled 512 value RTC hardware frequency divisor to achieve higher rollover time - Removed unneeded 'remove' callback. - Decreased driver print verbosity on error paths. - Provided 'clock-names' actual names in bindings documentation - Remove __maybe_unused notations. Used the DEFINE_SIMPLE_DEV_PM_OPS() and pm_sleep_ptr() macros to handle the .suspend/.resume callbacks. - Fixed some alignment issues. Changes in V4: - Dropped 'assigned-*' clock management approach. Simplified RTC Runtime and Suspend/Standby clock configuration. - Simplified error paths on probe function - Removed node label from bindings example - Several cosmetic coding style fixes Changes in V3: - Removed 'nxp,s32g3-rtc' compatible string - Change to 'remove' callback from 'remove_new' - Used 'dev.parent' from 'struct rtc_device' instead of defining a specific 'struct device' in driver data - Fixed several errors reported by kernel test robot - Removed 'assigned-clocks', 'assigned-clock-parents' and 'assigned-clock-rates' from required properties in the binding documentation. - Refactored S32G RTC driver such that a default clock source and divisors configuration will be applied in case 'assigned-clocks' and 'assigned-clock-parents' properties are missing. Changes in V2: - Removed 'clksel' support from dts bindings. Used clock parents support from CCF to better illustrate the RTC hardware IP from S32G2/S32G3. - Removed frequency dividers support from dts bindings. Used assigned clock frequencies support from CCF instead. - Reduced the interval while RTC is voluntarily disabled to a simple register write in order to avoid any race condition between a possbile rollover and 'suspend' callback execution flow. - Updated bindings documentation with respect to clocking support. - Fixed a potential unused variable warning reported by kernel test robot. - Updated to usage of 'devm_rtc_allocate_device' and 'devm_rtc_register_device' instead of deprecated 'devm_rtc_device_register'. Ciprian Marian Costea (4): dt-bindings: rtc: add schema for NXP S32G2/S32G3 SoCs rtc: s32g: add NXP S32G2/S32G3 SoC support arm64: defconfig: add S32G RTC module support MAINTAINERS: add NXP S32G RTC driver .../devicetree/bindings/rtc/nxp,s32g-rtc.yaml | 72 ++++ MAINTAINERS | 2 + arch/arm64/configs/defconfig | 1 + drivers/rtc/Kconfig | 11 + drivers/rtc/Makefile | 1 + drivers/rtc/rtc-s32g.c | 386 ++++++++++++++++++ 6 files changed, 473 insertions(+) create mode 100644 Documentation/devicetree/bindings/rtc/nxp,s32g-rtc.yaml create mode 100644 drivers/rtc/rtc-s32g.c