From patchwork Tue May 13 16:19:16 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Markus Burri X-Patchwork-Id: 2085176 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=mt.com header.i=@mt.com header.a=rsa-sha256 header.s=selector2 header.b=GzCMJycz; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:45e3:2400::1; helo=sv.mirrors.kernel.org; envelope-from=linux-rtc+bounces-4090-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org [IPv6:2604:1380:45e3:2400::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4ZxhX24xRmz1yYJ for ; Wed, 14 May 2025 02:20:02 +1000 (AEST) Received: from smtp.subspace.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 2EE91863C50 for ; Tue, 13 May 2025 16:19:50 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 8BA092BF3C2; Tue, 13 May 2025 16:19:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=mt.com header.i=@mt.com header.b="GzCMJycz" X-Original-To: linux-rtc@vger.kernel.org Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03on2086.outbound.protection.outlook.com [40.107.105.86]) (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 91F642BEC5B; Tue, 13 May 2025 16:19:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.105.86 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747153189; cv=fail; b=ob5v1Pf+X48IpfvpK9EffYG4Ea31Z6Vw+mep5c/MasPCP9Cp8kHwd5UGoOPOUh21vqDyKcW3VNsRd0iKV5vZH8p+yppCoce+TwFCRYW7MnSjiKmpShfvGbK0B5V0k9hr4Xlwi2PtkZ/tz2kH3FFHi+5fWXnYusHviiF21L+/JsI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747153189; c=relaxed/simple; bh=JtwWCfsnLRCSle9IigsH1Mcm7KHQA6XlE2qlJZKCa28=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=aCMX/sImV/c6r6Pxt1zjnVMaNTu5Da7fCzcI5cpL6fb21/kYYVwGaekwGDjnY8yiBAbQLOhM2OSdRSMpTMzkPi9+5WlknN7hoyW2YI6UxoRZmGaXiMWcH7frFXYukpyJW8G5eGLfMm68ModY+evQySBPTEsWVzmZs7zEAf/7Ns4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=mt.com; spf=fail smtp.mailfrom=mt.com; dkim=pass (2048-bit key) header.d=mt.com header.i=@mt.com header.b=GzCMJycz; arc=fail smtp.client-ip=40.107.105.86 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=mt.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=mt.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=y5u4QkjZXmAyjd/GAmt1IAB/WWCmf+kt2Kwv3PPgJDot1kl5gIYwTif5esE2tzwTCuwSJP3Q5N2XFOi1RubfoVyw7Hv37D+DDgCzAUfg5yfOR1tekb045P1+VIQnW0qQN1cz6SFtGMqPAEOUcFMdZPgg4DciRCWgHXGg89lYpeqaeop/zMEwp5PF4trOZlCVlBUyTtwWFcrcajZjJItqm5DXIgEV5/ySoDzVkntyQuDY2d+OovHcVqT3/e9Bw7MPCQ0bP9HrwbyOakf8NP6fjCnpRWlHgY4JYcgEco+bXdio3MAMCYjoXwi/hpvSL8sU+M0w0aYIXnmKNKFMnw5IpA== 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=n+0A18aQs6LwmmFcOijBKrJZEbJh7/JXhgaoKMREink=; b=xJnH9kbDhQ+vT+ArQWIIiM+2Dvi6if5/6ZBO/GKIC0TxarZs3IEnmbCdRiIExKvabzm+OgH1EEHQ6PyLAYST5YDMiJlPJN5bSeWT8S+igsuEnq+z9oK14tGOqkRApO/VD0Ko/MBZZ90KJLw37zr37rnvN//cAHydmKV6Is7adxaIylyZTs2M6Bi92tFKNMj2vy+elWMukNlW4pBq9x7JbMQu0cENx+Wa2Rny/pJqnOJ+h8/YTnpJoJMlTmLYQBOb8w9PbzrevlWmudD7Kg4gAvkY6aU4gk21gkh+X2KogtLpDW47yJdrJB6AVFhWp0CfALT/QwTWneSzgwC4DhAc2Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mt.com; dmarc=pass action=none header.from=mt.com; dkim=pass header.d=mt.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mt.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=n+0A18aQs6LwmmFcOijBKrJZEbJh7/JXhgaoKMREink=; b=GzCMJycz6VyyJfZlh1fW6/EzgMRLC8mD+9gZklwhnMxEkXRYavBpmk8NSq6GzA5eXuuxsOl43pNH8tKL2WKNLr6mD3tYw2wF5PaywL2eVMN0Ui2LwaZR21EZd90trTCtZutVnBPjatZaAWKmHwqPxMcZZ3r2k0yc6/zbr/ffN6uOAfZdq8gNa5AkSnNI1bx8Ap2Fg1xzRjVnpELK91qOLtfkOnOcoPANx3mhsS96wGnLZDZr6SIl2aBFA5iGpEGqwrg+Znllx7IoP435oGOgfBjUkqhtg45steztRbPAjGE4GhaU4dQcwN+Mml4mp+kL7WbdpnBwj2t9fG8bMEkVpQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=mt.com; Received: from DB6PR03MB3062.eurprd03.prod.outlook.com (2603:10a6:6:36::19) by AM9PR03MB6724.eurprd03.prod.outlook.com (2603:10a6:20b:280::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8722.29; Tue, 13 May 2025 16:19:44 +0000 Received: from DB6PR03MB3062.eurprd03.prod.outlook.com ([fe80::b201:e423:f29:53b]) by DB6PR03MB3062.eurprd03.prod.outlook.com ([fe80::b201:e423:f29:53b%4]) with mapi id 15.20.8678.033; Tue, 13 May 2025 16:19:44 +0000 From: Markus Burri To: linux-kernel@vger.kernel.org Cc: Markus Burri , Alexandre Belloni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manuel Traut , Marek Vasut , linux-rtc@vger.kernel.org, devicetree@vger.kernel.org, Markus Burri , Krzysztof Kozlowski Subject: [PATCH v3 1/7] dt-bindings: rtc: add new type for epson,rx8901 Date: Tue, 13 May 2025 18:19:16 +0200 Message-Id: <20250513161922.4064-2-markus.burri@mt.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250513161922.4064-1-markus.burri@mt.com> References: <20250513161922.4064-1-markus.burri@mt.com> X-ClientProxiedBy: MI1P293CA0006.ITAP293.PROD.OUTLOOK.COM (2603:10a6:290:2::16) To DB6PR03MB3062.eurprd03.prod.outlook.com (2603:10a6:6:36::19) Precedence: bulk X-Mailing-List: linux-rtc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB6PR03MB3062:EE_|AM9PR03MB6724:EE_ X-MS-Office365-Filtering-Correlation-Id: a704d912-6066-458a-47a9-08dd9239f926 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|52116014|366016|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: SvedwwTzfMV81fBJn0T5KIkajIf2llOVChnzqzASCapE4naAMpKXW+QvtTtAiJDwXDHcFLwSy8+5Qq9jzkFH0ZOsuMN46sOVEHkWJ+oOI5sy9ihTKjS/+Eq8gQtxf67Xo+iqxpsOEIOQ8b9wJlOMH+Kw4aSuBNXwO6qysXzsRLPMF3mSwng/CSc+YLrXdm3LDLTNpMBWC6j/9MzV6qR4GSbl6+ElWKZBqFsgt3VyZcXky6fzBp1V92nxQK2g0sFJGNUK+SmiYiKtkv1TaSaIY9CAGgKiQ3+VO1u7X7vgayY+ak0ZS7+d8WfiLKhnQGJw+7bRoHik0TQquGCOJCvDAcw+rFCD/FOWSVtUlXdwpr4Bp8x7WYZAEF+7NmL9Q8BZOByx+orRhiKzoGwE/1W5OveAW/MQbMipFF+UyospzIoNCIKVH5h3CK8tiojYwK5fgPTcs20BSTq12bBlKQvKcisbPP8tkdMsn/39rV+AbWC9KnObAEDMo1dGKJV8Z6/6m49w5ToxMCGPXZ7vHj5VUkNqMlqXEuY6jXUKC3vWCRMXDgjnOq/R6DzzUI96BMkGZjr7ayMRqx2bHk7YOi6Uttsh/HQqjBLvrZ6s9svplCpEx/oWTi0I/wJeHOgvCpTdNPxDoVyh9YUosZLh3x/Xczurj+X2R77GC3NqlD+n1J7Jmje0v/iEtvmrYcgnvgFzjEkPNKULBWIuyMt10ghH7ztv5N0EEkv2aAuIu1YRsHbMHO/W1hwHwB7LW2HLazEeBxfHNLXwv1iOO+j05SyzKTKoAzD8jdZGCqPijxuB/1s6cnsHyDnzK/v2PjLlmqax5Tvn+C3gHQsVW8bv7+en3CKh4Nm4HbOqjVOMfUN8qZV33c2yBnshcezWkEVPHczK4DpsD4sIy4qau2E1nduNiI8mm+20a8Y11kgNbEyWwzgOcEC970OpkxP74VQcP82gr6GmmvgngAg29af8XnCdn4AqyV5if/FDYFr4r9nhjl1yXuAVmIVxPdjTh5UH4XB/sxeTouKjm3eeuRxqVsb2ZJZxy53Rw82AmWgWj0al3qpOfVIM4h70MsocG6zTCTGP6WA5Y9D8VCsZrCgzLbZmTvbXLTFI1FOx5NMUuTaukpBictAOHR8naW5CmdZpbEGoQ0kc4kw8+gOFmdgwXM+jrB4W5DdCb8e9N3UQYuPd0HuF3DirkCAgHajm1NiBmC0aWNTGYXlm1zNnAX+AhGAeexKAfdnJH3gU/DY7TDyc0YIwgqZSCA6u0DKmeLUJ0E0U3KtAeXsPjxiIHngR/uSbxb9xxMl7zhnQt72FpuDsiPPDkxMSGfmcJfUI/czk4fcMUU8a6N9zH39SH75xFrhMmjrcf906P7llAB2MiqBrD/XLGATDXzlYQL3o2Zzn0AspI/wU8QEVrExSIZJBZsp0ZK1cH3IWscV2YwuzO7S4mCK31ah44BMR78oocaPtlHXiCSQ3I/eMwN4z+ctIDhKt3w== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB6PR03MB3062.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(52116014)(366016)(1800799024)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: C1R2UH3BNhZVxoV2gvFxq9jHiKzL+/boAts5ldUQ/vBLnVi73/tqcQ7fosKIyJBhtpOiUuTuSW0BiQeTAsXSaoegvgRTmEIz0+v0WAnvyzaSXFITazpd9yWX3wWh1AE0BkjhhhJJJQyRCJFRl8yADlJt5XUmtdHp+h23E38CckgJzvIpEMguKfJ0kn3d6vZHLXaIo+bs54WAbatAXC/3haSn+O1FDez3hEjJW+Ksuo8rOtQ9n1I90GLMk1iavZ4L60YVyHIouHOkVLvG+za5VvW0f9g7sBjocJGglizfRhGTClxPISJO/XbAr4FmzV+bV4CdtkmrAMhCybqLK+MUL7Q+coR8uisHxfyCvo1+LhRHJw9OPM6dVwCfMI7zFPcNnTP3FDCwSxVP/iwkZc+XD5RgM0drCyWbn90X5nNBuByAmXD/xImIHZyieAp+9U3rBUxm7jmR0yAgd+nOAxVAuR5CLp7ttYGNxqKsu8OvNdkqUkOkAsntldqjXHxF0wKR3CHP599ZS0Q0of5ixo+sWUZd0fmMkcwP5vbDMWzX0fG/WrxAKsRmjqOM9df6TzQoUci6BJ4AE+V9B0qK7x70617V+9hPiydUBax+16tdj6JxzwSgtd28iQwHDv4GKbi7EAVdFgcFi7Ikf0xXE5N9YWVVj3Zmloll4+3vbkZNVe91bUsBKt3JMQyvxZc8PMcxxBRs/p4kIvTj5yW3FWyxOnFa6twyRCX/9FQxJBp1BiVv00u5EPP8Tfh32EJf2w1/D7TFjUT4eSW+8/MhOjfgVPLuQT4YHhzv4n9HWEy7qPoHNKe424Jf0Nf8ApfUqOiNUnpHr7fzOGWU9HAQejvvz0wjE6B7UJglCotHsfCoCV4ao0OAMVg/U4DF3Wp4xmW7B6HAtlhJLATm6z6L8VB3CJHg4itaNaTQS+0kANKPTdxHK2Cfq8reBCpEzsWhC+QAG69Gem5qhpViUMFqIkPD+VDHheY6jhTUD0aP4QgRxOVc8940JuhDolAyE02tv2n1La8Or1cytYyq+4WB6AZKAiWbsAboNM4J0qC+b6rezzkrXI/28lyDGRyPY5hgXfQV8PQ+wRnQHiL4WPCpZxt8zoY3rEZ8T4fbtl59VZe6wKwpIDOAxJqcNBviu8OWtp9eFEVZC4yFxxOlJt5K2yKnfw7V894esqQNACY02q4/sfarim+K47Uq0SWpmTYzItc1YXiyOJEF5NTpMlHVkdChMSHQFKof4miAhCKwng48z6MQPtiHabWnmryaTGQ0UnNJQzYEqVeBXCA4cgcp8l5VBVSt0yKHG3fzOX9dNlUDOMtPjelvga1d7g3cjenAKWznGLyovSUMnXxoFIs4IFXD/tCwnYmchfFnQg826gsxCcNovxKMgbHTWYgrrwNevWsy18x591BPt0v3nHip9ydo68j68Va+QtcH/gD+GtWZKSQvMx8IkO2NUuZXHQDRMkAI3IGY1W7i0sjiF10aEpNX5TXqiQpvmI1xhhHPxCAOs2/+/C6QgTqd1856QCmlMT2tTFwJyT9ygFBbgmsiZVQqcIMpgXckSPm43VzAGRD33NDgdOzsto+dBzL57CaNpMj3 X-OriginatorOrg: mt.com X-MS-Exchange-CrossTenant-Network-Message-Id: a704d912-6066-458a-47a9-08dd9239f926 X-MS-Exchange-CrossTenant-AuthSource: DB6PR03MB3062.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2025 16:19:44.8082 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fb4c0aee-6cd2-482f-a1a5-717e7c02496b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 1sfMITAVSZbrJ4iS2tvCnfM1VlrBHcB5NFn4HLrNZ7idanIw7pO8t+GxPVBHBJjsPxJAuzIkqqc1r7c4FxXIWw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB6724 Document compatibles for: - RX8803: already used by the driver - RX8901: new device supporting also tamper detection and pinctrl Signed-off-by: Markus Burri Acked-by: Krzysztof Kozlowski Reviewed-by: Manuel Traut --- Documentation/devicetree/bindings/rtc/epson,rx8900.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/rtc/epson,rx8900.yaml b/Documentation/devicetree/bindings/rtc/epson,rx8900.yaml index b770149c5fd6..03af81754482 100644 --- a/Documentation/devicetree/bindings/rtc/epson,rx8900.yaml +++ b/Documentation/devicetree/bindings/rtc/epson,rx8900.yaml @@ -15,8 +15,10 @@ allOf: properties: compatible: enum: + - epson,rx8803 - epson,rx8804 - epson,rx8900 + - epson,rx8901 - microcrystal,rv8803 reg: From patchwork Tue May 13 16:19:17 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Markus Burri X-Patchwork-Id: 2085178 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=mt.com header.i=@mt.com header.a=rsa-sha256 header.s=selector2 header.b=WG5i3hYm; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:4601:e00::3; helo=am.mirrors.kernel.org; envelope-from=linux-rtc+bounces-4091-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from am.mirrors.kernel.org (am.mirrors.kernel.org [IPv6:2604:1380:4601:e00::3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4ZxhXD5SY8z1yYJ for ; Wed, 14 May 2025 02:20:12 +1000 (AEST) Received: from smtp.subspace.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id B18721B61E5C for ; Tue, 13 May 2025 16:20:37 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 4C0532BEC3A; Tue, 13 May 2025 16:19:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=mt.com header.i=@mt.com header.b="WG5i3hYm" X-Original-To: linux-rtc@vger.kernel.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2079.outbound.protection.outlook.com [40.107.21.79]) (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 76C782BEC32; Tue, 13 May 2025 16:19:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.21.79 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747153197; cv=fail; b=Sxh8pJd41kbn7juyoJv0SpK7rRLIrAnGqF8uKwX4PlduxMv1wcS4F50lJTuCem4Syv9lO8YPK4xAK1Uz8V33why3xFwsmr1OdC/6i0pFRLzPVLA+8SyxlzXYEdnWQSust0dNX6jU32WG47q131eTEgPETIfVToGzvFx4KjJKJLU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747153197; c=relaxed/simple; bh=24WSwZ9HziFncgfmEHdK+CJPI626z4TUWeFg7imzPpU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=r2JGh94O+u9AK/FQRg6JkxlnvIYTwXsoF9Do10FwesrjSeJOLNiuk2cXwbSTRCbZTV6K42kZlHOpZx7Oeo4vNo+RYD1qBYAX8BbccRibt6REVmJsl0RO9V53mW5lXkPahsua+6WdBkEa78guSTLpgymOoEBw/psi2JyL8WC3yzE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=mt.com; spf=fail smtp.mailfrom=mt.com; dkim=pass (2048-bit key) header.d=mt.com header.i=@mt.com header.b=WG5i3hYm; arc=fail smtp.client-ip=40.107.21.79 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=mt.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=mt.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=mar9g0yS5ilr9DUHyOfjMdVWmP9wuCrpWZEEyHoe9BK6+1G/75bdDve9lRK+CWVfiGF71XO6FgzE0QF0jCVR4z8QBP7LaXOsE+/5ua1KkGD/FJj1J/ZvS9HYEkCtePj8v1gV1YI0gwn/FWVgayAYuqAHKkxWtEEKCE6Inhd7MqTq50AVAQkt95/qLJIJqL8S1mOLOD7tlCXO9sntB8LGeEDJsF2iJWg1om52/iNLBmjv4J+kMjMsPG9nOnt3ghK9oP/L7ZQvzH48v+FGrkpYA+ZEZW1dEOxSEUXao5ETGeNbfRfC34BD9yFQi09BR90lbKCpyBBZQ5kUehaToBlkqA== 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=x1STVCrl3CxR+qBC/GEUYJKf9+guog5hYar4kZSpzbI=; b=tSJOYOHTmsKvYr4DTACAcr1VvYLRlDo7Ur+jywhKX7EjiWM7IyWD50UhCm1tPzvh5s3ROUTz3JzxcXG8r7Y6bsfAdN7n6skfRPMJz54y+Y64Ztp4SKxJib5M9DgGwjOcBzDVqnRu7OBwfbeHchCtzNXufxK3rw3OLv+31F+/FSa95/4EFeqLTEJLzaUvQs1oOgcIQKdIibbtEwL9t4uxr8nRrxH8O+do9JaMdFFE/pOt/qTjbYO48CrzXuYdDTK00XEWBiQ+E73KfpVDjiJGzQldhtQ24Bmo1J5jzI0eZ5dmd5EZNH7jVySF6Ka4oHcS7hek7CPdBKcMlnc/OC8Hxg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mt.com; dmarc=pass action=none header.from=mt.com; dkim=pass header.d=mt.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mt.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=x1STVCrl3CxR+qBC/GEUYJKf9+guog5hYar4kZSpzbI=; b=WG5i3hYmlKGVkdXg34Oz2wZwQQhEEtd4Ym69rWOG0L/FCXQaS7HlAe0gzT3WXLa5pa2akC9qj5jQMomgKkHToWci86YhfqkgqI1toHP/7mKoB4WLboVSOq+r7CdeBMCHV4uOVahmCeaPokqn/aU4WtSumOzXSFUkkQ7KlULkRuZTGUhdOjsd/Wet+W0T8wIuhaWjucV9ltTagdgkUsKJbWuCmKis9mNI4XBC5qebzMeddsbqdR5e7mrbop5kk6kCvOKWk8qhFwO/5K6vGi6Q2Tf4avSov8ywZQug4ZQj+1mhRm/D7uslfGOk5lASbyZd8nE/ByYw7E0EJO1bki8FtA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=mt.com; Received: from DB6PR03MB3062.eurprd03.prod.outlook.com (2603:10a6:6:36::19) by AM9PR03MB6724.eurprd03.prod.outlook.com (2603:10a6:20b:280::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8722.29; Tue, 13 May 2025 16:19:52 +0000 Received: from DB6PR03MB3062.eurprd03.prod.outlook.com ([fe80::b201:e423:f29:53b]) by DB6PR03MB3062.eurprd03.prod.outlook.com ([fe80::b201:e423:f29:53b%4]) with mapi id 15.20.8678.033; Tue, 13 May 2025 16:19:52 +0000 From: Markus Burri To: linux-kernel@vger.kernel.org Cc: Markus Burri , Alexandre Belloni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manuel Traut , Marek Vasut , linux-rtc@vger.kernel.org, devicetree@vger.kernel.org, Markus Burri Subject: [PATCH v3 2/7] rtc-rv8803: add new type for rv8901 Date: Tue, 13 May 2025 18:19:17 +0200 Message-Id: <20250513161922.4064-3-markus.burri@mt.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250513161922.4064-1-markus.burri@mt.com> References: <20250513161922.4064-1-markus.burri@mt.com> X-ClientProxiedBy: MI0P293CA0015.ITAP293.PROD.OUTLOOK.COM (2603:10a6:290:44::8) To DB6PR03MB3062.eurprd03.prod.outlook.com (2603:10a6:6:36::19) Precedence: bulk X-Mailing-List: linux-rtc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB6PR03MB3062:EE_|AM9PR03MB6724:EE_ X-MS-Office365-Filtering-Correlation-Id: 1f012b14-5762-45a1-f7a0-08dd9239fdc7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|366016|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: HayxHCYKQbnQOH2mjsbK/qL0mc0e14jk/HXqEn9ZFyvFnniLa6JRDUP0TYuIxcrURnAwFwBxD2WZmn7OfzuzTW7YVOq3UNJ29ggOgic7YY7iSmZm+7i4C3jnNEcmw5lrg8SVhM9vcg1T90XgpRmlfrFP32oAMm1wnkOsfgQjeRNBFEYoyTwrqpd0YF9zh8BfKfYfOoV/t3wszyueyyBEFhRGud47p7bKYBQdmF8Jh+AlGH54hrQK7V2EObqvFflA3EZeAjY3KzrSU7hVINHRdAhgZ+a7ESKQZlGqpGniyNtWpJIhjKAILn2Ns5v8v7oCr0ssYC3jL2QF6J+0OYZR2Zo79fX2F1UIGnvdRFZIFvCS1yTiAiG89pz2zm9ukPOZw6vuC7FG0pAWLgIVqkE5rnz8SoYnS8UfJYvPI1zQjp+EaU5GI1X73kHoU0iyoHgBRDt5SDJ1kM/wGgQYvngpDUXwQbO0fLYnHiciA8u8O2YhlO/NyOeyyYTw9WdOrCCBjiPZon3cBDIehcy9LfMBArdcY5PdeoGC6QwhFTPM3L+wP5PDZUD+3GMAIHpje7yq/ouAU3bcCALC5n4+bYmoXC26QLlsfVAsxFNi2Xqyi0I3DnC7aW1UKSMI0VmlHB6b797/A2tN4tNvyLkn0Ay+aMdhkoFNzfY8ymm15onsZV334q8crB01E84ypT+lJ3TYpYzUH6lJQKgVxIrIBANEd8HZBA6Pfv5Niwsefu9mPILuxi7ANdGVHJI+QeU1w0+0bpiyKZ/aXauwn+VLUQFX8o8fj3D90xTtjByd1RwOi9E/63CQNmro+LQkK5aVllCCf6CgpXrj295SKbl/1NJeBjIbyZWDR3nK6ZVhTtjt232b4dL4Tm1xQ4RLPn4+NL9CjHpNBxTY9ihypauxHaa2gc5MWbSn446FrZ5nAy/8Jz+Xix4+FkBfNzdoye6X+16W0n2TLIfq9RN4nE29ww0rgClE9NV5OLpPYfcqG9O0gH7EpdU3AGN4p2oqh1+6hW9l/pusEHZIy5RwfuB/UOsqawjG+C0tf6UnIoVpDpo2pETtIsoybBORtDcIt5FGagMS3jLVSnsZyzpT+2pdEoKujM2e47WhXPsGepke4jG6iZe0LXJZ3g/utKJIfznIBw63iJaLNu9WCUML/JapM9ktk06BDXaHqdhLUx0JEmIptY5hMQx5YLcj/xXb0o2ZTpdh1ela76WGeEmtMv+k3625XdVBj5sx0074f4j1Yx75F7eMG4sBA2g72bOlnD4eCCLxvqaiCFI1jswwIofwn9KryeSgcShuhj353FNTWPbykF3M1h1GNVVeMuRK36XpL88xLZJWX0lrojzWlsu+E18MCtGAzDQgzkOoeXwB79dl6zQQhnBhNGBwu0+oG8W8cdtXlpBkl1VbQtj9pFzvdqcFp1oGYCA0MwYZ6bMNjIsir/ETp+xQL/v14F2x+g1pF8hebqQpamOydy4tFhZm1JoAKA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB6PR03MB3062.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(366016)(1800799024)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 9Ku3VYMDSk6RD9TpRiRrXa7FrL9eCiDZH/XJEecPGFd2gHbzDEbvDIJaY1gDjC3pt9BDcIZCTzOdbrQoK0wZEt8bdL08eU61YcCW9FBjUl26dE97IAfthhQJGxpXolUWKG3RPl4tWQBG7n71TZK7I9OYALOuHbrRCCKW2Vrd9yAsHS9PIfyA748HtRH/k0p7jqtHphFxGkDGg4QRqXyTs7wy4W9UgJmSGIAnMPvDzKzrKjc0PPaVEugMApMqM9wm9dsEjN4Nh3IJJH+7bwlWUqWV0bTmI5Rz+kU6HQ8435fcg9Fm6kXJXZOwSAqd5fDxA3R/7duHrrOTaXHGe8afwBT3MKM7V1tB+NQma35hViPd5TS9XX8MnXO0flwv1ursBiesC480IQjxcF1P0/dElcz/B7MLVA7o+HmhfdIwwHvdaiMrlYzcdNyms3C5kn7HG+XJrAwe4qNBoMXvWZgOcUghdT0J4PK7I2IaZksx4+/bnL7mhLJyqlIe38eaJQElaUvmTzZKCYTH8yfiUSTi52tgTMSDACKaOxpvraLB2rpVT80YpNWJ96Z2J/txrMy86/OiLcTbDzRyTKq2d9rwKUqPQ+qT7jBsom4YuTWDSVMP2wZNec8VxuUaIIyHp2zuFhqSm6nrBV0CXBsZxABqUxgdMpInEHNURZx94F3SXb8TubqdzSJMY0OtYEvcR4q4IUm9oa6j4/aDjtXN5skkeprzfIYHlYXK2TyvnGT5ul73JoLxu9Jjc2Nb41fVEBaW3xvTs5Eakk8hxnUUVAlliMlMS+imLuQuA2tCa7Ep7GBLKSGs5QCOl1oID/1qY3EMtaa+gghQWaDofbxakscuqMSo8pnelhSMXJx51g7Q9tQ5XsZlkxD5Hka/GYBL6KSxLoI2SOMfy6CFbhfMlsnt4Y316ebhoSzreWvxguyjLBLtOc9nowIGMmZTpGOW4J4pWgbPbo5MsBzj4EtfZp34MN3ppHnAKnBzw0bwi3QbGamSqgZx+X4SI4s6NdwCUh+oXpY6k0AhuuyDUwoP5h+K3zQQ5QmBoxAYito0JT6EBXE0gyRua/lePg+/wNED/JVhXHtCKTHVzQU+JpPzqp4dN1xIeFua0mGR8VWtmHG1E7v0BOzdNgdfVaVYGw4AM140JcLuVZEGy20g/a6UNZYWEXjGMfLSJqBhVk8sRR16CmI+B4r1AiYbnKdIwe0W2rCKaoeOa34Wjp6SxD+l1uZWglGYSU8DZ+JR6YCX04NwDVqau5vdfp8NhcKV4TOh9TqW4u1fvA4pPKFNJam7HrSkHLDUxPhOICAxiKSP5jebFF83isM+B4mu+oBEjst3yWOjBAi1W+1AeSHA1fKp3Se1pmZElS2W2oihHIPcJsMzR9TMoDIrASGA1qxtBXmatJr4R8WShQeYLq+tVMAMaoRIvJoAGYlpK/9KxZiJQ+J4Xz83GeUPk63MH/KRwVegrsja0t0O0MK7eAk6K9lUedy9GlVfR7cND/4Wj6hhR0jDOmqveaoTzbbA0MXwQAPr6dW2UkFfqiFAC4sxn70Q+HoMVnPiB0Lfuc86aVqsCB++85/0qZKCXV8CbgkfUaGexMLS X-OriginatorOrg: mt.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1f012b14-5762-45a1-f7a0-08dd9239fdc7 X-MS-Exchange-CrossTenant-AuthSource: DB6PR03MB3062.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2025 16:19:52.6205 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fb4c0aee-6cd2-482f-a1a5-717e7c02496b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: hT1NJSokoNQlPrdyYxK6CY3f/UC+blB7+QN8Vte0ASApYiusCovE/YLyCaWUQ3KPW5RovamFPU8WNvBhQp6Kpw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB6724 The rtc-rv8901 has additional functionality (tamper detection). To support this additional functionality the type must be extended. Signed-off-by: Markus Burri Reviewed-by: Manuel Traut --- drivers/rtc/rtc-rv8803.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/rtc/rtc-rv8803.c b/drivers/rtc/rtc-rv8803.c index 1327251e527c..50fbae931cb2 100644 --- a/drivers/rtc/rtc-rv8803.c +++ b/drivers/rtc/rtc-rv8803.c @@ -62,7 +62,8 @@ enum rv8803_type { rv_8803, rx_8803, rx_8804, - rx_8900 + rx_8900, + rx_8901, }; struct rv8803_data { @@ -173,7 +174,8 @@ static int rv8803_regs_reset(struct rv8803_data *rv8803, bool full) * The RV-8803 resets all registers to POR defaults after voltage-loss, * the Epson RTCs don't, so we manually reset the remainder here. */ - if (full || rv8803->type == rx_8803 || rv8803->type == rx_8900) { + if (full || rv8803->type == rx_8803 || rv8803->type == rx_8900 || + rv8803->type == rx_8901) { int ret = rv8803_regs_init(rv8803); if (ret) return ret; @@ -635,6 +637,7 @@ static const struct i2c_device_id rv8803_id[] = { { "rv8804", rx_8804 }, { "rx8803", rx_8803 }, { "rx8900", rx_8900 }, + { "rx8901", rx_8901 }, { } }; MODULE_DEVICE_TABLE(i2c, rv8803_id); @@ -760,6 +763,10 @@ static const __maybe_unused struct of_device_id rv8803_of_match[] = { .compatible = "epson,rx8900", .data = (void *)rx_8900 }, + { + .compatible = "epson,rx8901", + .data = (void *)rx_8901 + }, { } }; MODULE_DEVICE_TABLE(of, rv8803_of_match); From patchwork Tue May 13 16:19:18 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Markus Burri X-Patchwork-Id: 2085179 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=mt.com header.i=@mt.com header.a=rsa-sha256 header.s=selector2 header.b=JzWcQHZC; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:45e3:2400::1; helo=sv.mirrors.kernel.org; envelope-from=linux-rtc+bounces-4092-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org [IPv6:2604:1380:45e3:2400::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4ZxhXh6k3Bz1yYJ for ; Wed, 14 May 2025 02:20:36 +1000 (AEST) Received: from smtp.subspace.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 17B83864C48 for ; Tue, 13 May 2025 16:20:22 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 8C2902BEC57; Tue, 13 May 2025 16:20:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=mt.com header.i=@mt.com header.b="JzWcQHZC" X-Original-To: linux-rtc@vger.kernel.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2078.outbound.protection.outlook.com [40.107.22.78]) (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 275282BF3F4; Tue, 13 May 2025 16:20:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.22.78 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747153205; cv=fail; b=WYHM40PkGBTAPzonCbbgeRGTduAHk+yGZRrizaADlIc4hCSneK+NPHZHlHPr3oaWDg6A5r5ZKxzWka7aw19YzhILCT4R/rtA//Xg/pOxmiI/2yexVz547++TiP7HXsKMyJrLDeGj31bN3NKu8i2iCCOMa3Swvk+Q222/fOyZC9o= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747153205; c=relaxed/simple; bh=SYMAaAMvDoXEToCxfqSCrW89cr/xHmgtseHLigX8txg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=DvSJ2/ulkZOwpM857u2jOuaes5E5uUkJYJzoQlda3skIbTgsR6jbbFJKrHPXyq3H0lT3lFt+Dgp4GBCUcZK0V6vHFx8xWca8xwDdBPxWW8lDSUG8UKqgIQ5OEugR4H9EuSXN9hcB+g8eCB4Gmjmh4RLNHhUx+1soqzE4o+KMZHk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=mt.com; spf=fail smtp.mailfrom=mt.com; dkim=pass (2048-bit key) header.d=mt.com header.i=@mt.com header.b=JzWcQHZC; arc=fail smtp.client-ip=40.107.22.78 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=mt.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=mt.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=iY40IZ8e52PK7xfeSgVzTcxMc76ZzBQ3G4ys99D1fN+8QUbom5fFXpKizLY2zd3SZTXUFmFxlIEuBjGLa9eEyWuLDPAsfZzwCyjtSbSzQGcUfN+KWIvd0ZkM278Eir27Dt20XpfaA64o9vZlxV+WSVbl6yioAffwQMAtEsjYJN2A9LtQEJm8pZoy4SFyoXN7dU2uk6BbHPUnKbXtGA83QEjyJwyah4vNOPx60IUMHeMnyMo1r6WP1MF3avQYUh+hWcl1nEtsuk2jTgdDtxtdMsoR8+lgWh0VbV8z7D9tJHNl3kXeV/p/m4vGs/LU42vhbNo/5BEUfioLTW2slb3gog== 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=vsRCCeOKY4NaiCFBt1H76CDX82nFsgaQFOBzAkv/uQM=; b=rDM/8iZJyO68ldXQTESkMDAqICC+iBVgLOUcVm5pEhcbHJi28ZvKzsO5UDWJXJbDINRfEN5XhANNCHr1J6MY5JW+NTcJsbfOzeYXxE6B3759AKw6vovJUlRWIHx7/rjvlQnFsL63ahUXHSb9K8RBOpquE1QDlBiGuGhSOhs077ff5BUprMfVpnX4p/qw1Kr9KU267NY/CXnoqrlAQ9uGplE8w60en3dmpJLcV8AZKcVdeoyY0FTvPVctdm26+bcD6K6zDiuEG7yYeebRinYYYAtv/DtGCoBRPM63bqNHawxrUKknoUwKJf86C/dZEmWhD87fbWaJ7vBxvs69QGWPKQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mt.com; dmarc=pass action=none header.from=mt.com; dkim=pass header.d=mt.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mt.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=vsRCCeOKY4NaiCFBt1H76CDX82nFsgaQFOBzAkv/uQM=; b=JzWcQHZC4LfezPxt7IT3Lsc3GzogxkK9w17ffPa9HWSmbSgYWQGLRu6QIJatTvRwFxoAUBPia/U0HgSnzVwAhN+vMM/Bot6+FsVPtW46zVdB+CNfwoSlZmsJjMwSwGkv9dd4Po/YySiWYX09f+iOCvhqn+90SKPFBPUYrKvP9QoE0x/FrhCb12IuYaUVyqOOv9buxB9o5ZCV+l/x7SlCr86FPlTP3BgnF4Mvey4rMOc/YEjKekukfHrmiPFOXEoIN+e9vgXWCdCps12gHo2f8QYwY0zE2tDjqNPF8umrBVgWlWs6LeMliJI2adpkGbEd0mpHW0KkCXcCVu6I1VkLAQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=mt.com; Received: from DB6PR03MB3062.eurprd03.prod.outlook.com (2603:10a6:6:36::19) by AM9PR03MB6724.eurprd03.prod.outlook.com (2603:10a6:20b:280::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8722.29; Tue, 13 May 2025 16:20:00 +0000 Received: from DB6PR03MB3062.eurprd03.prod.outlook.com ([fe80::b201:e423:f29:53b]) by DB6PR03MB3062.eurprd03.prod.outlook.com ([fe80::b201:e423:f29:53b%4]) with mapi id 15.20.8678.033; Tue, 13 May 2025 16:20:00 +0000 From: Markus Burri To: linux-kernel@vger.kernel.org Cc: Markus Burri , Alexandre Belloni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manuel Traut , Marek Vasut , linux-rtc@vger.kernel.org, devicetree@vger.kernel.org, Markus Burri Subject: [PATCH v3 3/7] rtc-rv8803: add tamper function to sysfs for rv8901 Date: Tue, 13 May 2025 18:19:18 +0200 Message-Id: <20250513161922.4064-4-markus.burri@mt.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250513161922.4064-1-markus.burri@mt.com> References: <20250513161922.4064-1-markus.burri@mt.com> X-ClientProxiedBy: MI1P293CA0008.ITAP293.PROD.OUTLOOK.COM (2603:10a6:290:2::11) To DB6PR03MB3062.eurprd03.prod.outlook.com (2603:10a6:6:36::19) Precedence: bulk X-Mailing-List: linux-rtc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB6PR03MB3062:EE_|AM9PR03MB6724:EE_ X-MS-Office365-Filtering-Correlation-Id: 700569ba-3dd6-4da8-fbe5-08dd923a027a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|366016|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: 5/3i9H8kn5TZyQ8kkgzrjkco3WBvmST0RGTurgQm5t+mAWLy4HTRAiKdQpJ82Dea+y0Nf+/nblUHtnTVxAsMY3Zkmftg0yjVUPt9VyQ8LbKgAqRJz5nR242p8RJ4MtbO7SEa/Yh1aito9RwmHqVdI/CMcOtPoXVgj0sOhX7+n3JcNDuTTNw3/BsyiOp91O05/4E3kovcEq2awyYACF4joo9KFEVPwmdRwlL4dCeHVyhl5c6lH8bgEMWWHch7DlSJhpKSHxx7XR+lDSC7UWWMIcTxcLvT9+0eGhxGgViJAEbycFzjOSvIaoeB+zrnMgG7IK+/TvLeR2DbZJXkZhiSVOoYpZP84S5cWB0o5xfw69v8sim16vm80JUrXpNlXbTKlC6H3EJqkN33i8xPZdLOEpNWUafVm+pJ6eHJKQOPFylXGNhOk7TbtqhaH/zCbQtbzrJqDdGyCWwuBDkqu2+AfTYSwlCZgkn740jRYaq75m8wsObcoCWtKKwrwcyk6/rLyLSJHnyH+MX2n1TUt0eoefEQ6qdi2oD2nxV4bop6z7JRv7MGFtNDad4Ind4EcA3a13qKN2CFZanV+TMpGWQDlRjQivclayMZcbakbw1WG6XCH+J4uxbaq89TuO8u6bbN1iwoAp0i65hbhABC0krW+iO+vn46QWoZ8ySfq6M1mg5PC4a6Nmy26VrTB4WcgzxG4A34GjUY5dZ/Kw3/IGRWdjV8XXnnAaisrAsRmqL7E46EKfhtI5vgqJQcRwiuzxyaHZ5odcrskfM8ktd4n9y6khzMeId0nGhlW1OMFh5byVBk4wfyZPqaOaJD1ilzwS6h2PUW/l7SbDaOxFZ0FLomxw7jPW/DUocAGuJnDkP2ICf5SG5Jh4PZ27UgW96NDn+f0x7AYKFPjiWZPwRUPLmjPFZVG12Hnmh69tvaZ4jwWct83Zc3JEJ3RB6vb/mDHMWTJ2YaPvzKTYR2QazH67Knlr+zLVRN1hytd3DkHAIBpXXkkpbHQJx7zOPPxq8Ud1LSl/DbVThx7gtyJ/yJIXzmmZ2toZTXe50IMXtjS4s6yegjhWPNv8xIz8yRt7WuRGNtsTt7NiqvvNbPzjgZ1j5UUbi1jBM8efmyChVaUD/owK+OA/0QlLyGleXRwhVKgRp5eGO4z3JeXyG3O79nnljgyprjefjm3b0PiEV6e8QwOPSfUL9UBEiiDhQhuwxyEKe39Vc8+MCXllbVjsfq2oqovD278aYYy0TIywq0dURAAuxIb85kqSO7xL++2k9DzIQq5sjkar+JB+l+4he4MIJvD8yC/e+gz8lsm1wx0y3PbZSLxCeDs8cIWUqwJS1BN9oqDNr72loi/YhW4wbpJ5fhsHYkaOPH16+6+33U9154RAfwQSxM/yr8KeowiKclY2CC5re4KoWNVHONDgO8aY6JovljPuOCOZS5HPj9hbVy8UA8fQrASKLPaIGYzMOGz9kPYfGkpuMZFahXIkEMJx9dJg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB6PR03MB3062.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(366016)(1800799024)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 5ddxZURwFOD5q2TjGAePLiTLPJ/RJe+/ifskGPtIkUZ8pZwM08R4iKhJoORX/sroeT9LirOhdPgFiW4xqPq/88FNK5C1JC4Zrabv5hbjCTB8NC2kpm0dOsrAyUS1Hsb18WjbQ5Lv5yZOBzZ39ZWWHN+3A0uteRTMdKDEpeKMQQY940WJQo9yhIbHlYMjGl1rYSggwKeMVdlZUi5itPE5bQV3lT78psD0DJaJ+LJsAEsXagD0gptBpDEWdW7OkSeDYCsZX4obw6BOX6HPFwrh7uuvbMZz7KE5IW5nFgrC07+n0/m9hSH3i5CGivDo2l5EiZy1J82wLpC1jHulvviDxuzVPByTw+k+QLmNpOW5J5j+7I2YhsAEQdiF/F0zPRva11jEenKQdSOOfuM3RU37QLka0SBrUuAGreMxh6VDp42iIfLVbUsnumSPT9OUjg2vr5umw3IGpBsSHkqyS9LEqrVc2jk6x9Gk5PYZFjNnXrhZ08uWYNrdLBUyt9dJV5LdwgZuaiWAYgsk0TJIPH5af5oLv5t3n4Dwhp37OIJwNT2hZjPojs6fSekkj28leHro5hljygKW3U/NnWsrhor5lbOWsXpZwdpXnwWf1n+6JNqo6AnYVpxxXtO7eo2kf1EVJamfnOVbCH9m4RmzZREy2F65VW5aySKiONyahOAFqz8QoEL62uyOwKdQEcs6oJmPZMwvShTQWRIuv7xzV7XA3i1YGS57wBJCBvQ6GIZTqOAvU4opQ/ZEVcjvxzr/tUCM9mda1ygktuIYeKNKHMMotmwAAm7q6cSHTImRKFVBuSX0EMZw0GhQqAVPPKJC+TpXS58LPLUxgpDKEvVv2WBRmytAZt5QSfsk6PoKIFcRCxtwC31wWO7XVagz5uX7Lwdqt5lrAJScINWReI9XsOfZuZFlxMo/cNhDN2mhUsS30jEvqJifqo7OzVKu14Vmr6vCjxFe/LFoEC6sBFPKjWG5AMdoCTYXcJjjU4t4F96ttimmKUegEAwcCYP7lkhqc3FRNCj/3UTRZOIEYnnSE00VfG6GeGLy7si+sCMB0o9EjNovacgZ9eMqoL5yKiFsoxNKVCSqzJS9kpfJt62Mz5AIA27v3QUAvY4TomaYbMTlgssVdwntmo4tCCkXlHLjmrYTNKSbMW899NgHFeQPh9rGAMCAN5Wg2zD80iV9vBh97lzlG4lEnBu9dH9P1VWoLzks5zX39OzWCXfdsgN6yTTuEZSpQa/2azAoCYowYKPBjMa78fJhSoZV4Uo+03Zd20xrOdMZPUq8TS7oYDd13jHUhMe+/EkdOWUoCM2V8xJtD3NDlDMVXIRTBUX8EzHaxJGyGZfP287JwVIVGjkw/puUA4X//F5uYXqfHhRmuQ6bwvqbCfjWtEJ03lXW6yQEhk8Bw+lX7GSJeN6loT8KwQQUjXZW5YHCEnGCUgviOZb44sVmO3jbAA0LtDZTKgzx6Ndqaf6+d2+vSJtHBU4hm0m+pZyn7RuhG84zFYB+u0mNyi9hpyMncM2gHE12XTe2Ce8kNzINQhotaRxYy5cNXqRf6Kkjh1Dy0ijKQ3SSpsTcnyb2HoFkzbB1hyNespbT6i1+ X-OriginatorOrg: mt.com X-MS-Exchange-CrossTenant-Network-Message-Id: 700569ba-3dd6-4da8-fbe5-08dd923a027a X-MS-Exchange-CrossTenant-AuthSource: DB6PR03MB3062.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2025 16:20:00.4963 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fb4c0aee-6cd2-482f-a1a5-717e7c02496b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: TH3cLR/jp20zydGn5ks19tnlI8yJTe6m9XMy9J0ik0fnWncq5WoZBb4rsfAduRn4D+MOKoGJqsXNN0mrCpmSXA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB6724 Add sysfs interface to enable the EVINx pins and read the time-stamp events from EVINX. Signed-off-by: Markus Burri Reviewed-by: Manuel Traut --- .../ABI/testing/sysfs-class-rtc-tamper | 21 + drivers/rtc/rtc-rv8803.c | 366 ++++++++++++++++++ 2 files changed, 387 insertions(+) create mode 100644 Documentation/ABI/testing/sysfs-class-rtc-tamper diff --git a/Documentation/ABI/testing/sysfs-class-rtc-tamper b/Documentation/ABI/testing/sysfs-class-rtc-tamper new file mode 100644 index 000000000000..f035d0fa5fde --- /dev/null +++ b/Documentation/ABI/testing/sysfs-class-rtc-tamper @@ -0,0 +1,21 @@ +What: /sys/class/rtc/rtcX/tamper/enable +Date: January 2025 +KernelVersion: 6.13 +Contact: Markus Burri +Description: (WO) Attribute to enable and disable the rtc tamper function. + Write a '1' to enable tamper detection or a '0' to disable. + +What: /sys/class/rtc/rtcX/tamper/read +Date: January 2025 +KernelVersion: 6.13 +Contact: Markus Burri +Description: (RO) Attribute to read the stored timestamps form buffer FIFO. + The timestamps are returned one by one + Format is 'seconds.milliseconds' since the epoch followed by the trigger events. + The value of the event is the current pin value. + + Example values: + - "1234.567 EVIN1=1" for a trigger from EVIN1 changed from low to high + - "1234.567 EVIN1=0 EVIN2=1 for a simultaneous trigger of EVIN1 changed to low and + EVIN2 changed to high. + diff --git a/drivers/rtc/rtc-rv8803.c b/drivers/rtc/rtc-rv8803.c index 50fbae931cb2..ef2231e5abc9 100644 --- a/drivers/rtc/rtc-rv8803.c +++ b/drivers/rtc/rtc-rv8803.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -58,6 +59,35 @@ #define RX8900_FLAG_SWOFF BIT(2) #define RX8900_FLAG_VDETOFF BIT(3) +#define RX8901_EVIN_EN 0x20 +#define RX8901_EVIN1_CFG 0x21 +#define RX8901_EVIN2_CFG 0x23 +#define RX8901_EVIN3_CFG 0x25 +#define RX8901_EVENTx_CFG_POL GENMASK(1, 0) +#define RX8901_EVENTx_CFG_PUPD GENMASK(4, 2) + +#define RX8901_EVIN1_FLT 0x22 +#define RX8901_EVIN2_FLT 0x24 +#define RX8901_EVIN3_FLT 0x26 + +#define RX8901_BUF1_CFG1 0x27 + +#define RX8901_BUF1_STAT 0x28 +#define RX8901_BUFx_STAT_PTR GENMASK(5, 0) +#define RX8901_WRCMD_CFG 0x41 +#define RX8901_WRCMD_TRG 0x42 + +#define RX8901_EVNT_INTE 0x43 + +#define RX8901_BUF_INTF 0x46 +#define RX8901_BUF_INTF_BUF1F BIT(5) + +#define RX8901_EVNT_INTF 0x47 + +#define NO_OF_EVIN 3 + +#define EVIN_FILTER_MAX 40 + enum rv8803_type { rv_8803, rx_8803, @@ -66,6 +96,50 @@ enum rv8803_type { rx_8901, }; +enum evin_pull_resistor { + no = 0b000, + pull_up_500k = 0b001, + pull_up_1M = 0b010, + pull_up_10M = 0b011, + pull_down_500k = 0b100, +}; + +enum evin_trigger { + falling_edge = 0b00, + rising_edge = 0b01, + both_edges = 0b10, +}; + +struct cfg_val_txt { + char *txt; + u8 val; + bool hide; +}; + +static const struct cfg_val_txt trg_status_txt[] = { + { "EVIN1", BIT(5) }, + { "EVIN2", BIT(6) }, + { "EVIN3", BIT(7) }, + { "CMD", BIT(4) }, + { "VBATL", BIT(3) }, + { "VTMPL", BIT(2) }, + { "VDDL", BIT(1) }, + { "OSCSTP", BIT(0) }, + { NULL } +}; + +static const u8 evin_cfg_regs[] = { + RX8901_EVIN1_CFG, + RX8901_EVIN2_CFG, + RX8901_EVIN3_CFG +}; + +static const u8 evin_flt_regs[] = { + RX8901_EVIN1_FLT, + RX8901_EVIN2_FLT, + RX8901_EVIN3_FLT +}; + struct rv8803_data { struct i2c_client *client; struct rtc_device *rtc; @@ -558,6 +632,292 @@ static int rv8803_nvram_read(void *priv, unsigned int offset, return 0; } +static int rv8803_ts_event_write_evin(int evin, struct rv8803_data *rv8803, + enum evin_pull_resistor pullup_down, + enum evin_trigger trigger, int filter) +{ + int ret; + u8 reg_mask; + struct i2c_client *client = rv8803->client; + + /* according to data-sheet, "1" is not valid for filter */ + if (evin >= NO_OF_EVIN || filter == 1 || filter > EVIN_FILTER_MAX) + return -EINVAL; + + guard(mutex)(&rv8803->flags_lock); + + /* set EVENTx pull-up edge trigger */ + ret = rv8803_read_reg(client, evin_cfg_regs[evin]); + if (ret < 0) + return ret; + reg_mask = ret; + reg_mask &= ~(RX8901_EVENTx_CFG_PUPD | RX8901_EVENTx_CFG_POL); + reg_mask |= FIELD_PREP(RX8901_EVENTx_CFG_PUPD, pullup_down); + reg_mask |= FIELD_PREP(RX8901_EVENTx_CFG_POL, trigger); + ret = rv8803_write_reg(client, evin_cfg_regs[evin], reg_mask); + if (ret < 0) + return ret; + + /* set EVENTx noise filter */ + if (filter != -1) { + ret = rv8803_write_reg(client, evin_flt_regs[evin], filter); + if (ret < 0) + return ret; + } + + return 0; +} + +static int rv8803_ts_enable_events(struct rv8803_data *rv8803, u8 enable_mask) +{ + int ret; + u8 reg_mask; + struct i2c_client *client = rv8803->client; + + guard(mutex)(&rv8803->flags_lock); + + /* event detection interrupt */ + ret = rv8803_read_reg(client, RV8803_CTRL); + if (ret < 0) + return ret; + + reg_mask = ret & ~RV8803_CTRL_EIE; + if (enable_mask) + reg_mask |= RV8803_CTRL_EIE; + + ret = rv8803_write_reg(client, RV8803_CTRL, reg_mask); + if (ret) + return ret; + + /* events for configuration */ + ret = rv8803_write_reg(client, RX8901_EVIN_EN, enable_mask); + if (ret < 0) + return ret; + + return 0; +} + +static ssize_t enable_store(struct device *dev, struct device_attribute *attr, const char *buf, + size_t count) +{ + int ret; + int i; + unsigned long tmo; + u8 reg; + u8 reg_mask; + struct rv8803_data *rv8803 = dev_get_drvdata(dev->parent); + struct i2c_client *client = rv8803->client; + + /* EVINxCPEN | EVINxEN */; + const u8 reg_mask_evin_en = GENMASK(5, 3) | GENMASK(2, 0); + + bool enable = (strstr(buf, "1") == buf) ? true : false; + + /* check if event detection status match requested mode */ + ret = rv8803_read_reg(client, RX8901_EVIN_EN); + if (ret < 0) + return ret; + + /* requested mode match current state -> nothing to do */ + if (ret == (enable ? reg_mask_evin_en : 0)) + return count; + + dev_info(&client->dev, "%s time-stamp event detection\n", + (enable) ? "configure" : "disable"); + + /* + * 1. disable event detection interrupt + * 2. disable events for configuration + */ + ret = rv8803_ts_enable_events(rv8803, 0); + if (ret < 0) + return ret; + + /* for disable no configuration is needed */ + if (!enable) + return count; + + /* 3. set EVENTx pull-up edge trigger and noise filter */ + for (i = 0; i < NO_OF_EVIN; ++i) { + ret = rv8803_ts_event_write_evin(i, rv8803, pull_up_1M, falling_edge, 0); + if (ret < 0) + return ret; + } + + scoped_guard(mutex, &rv8803->flags_lock) { + /* 4. enable EVENTx interrupt */ + ret = rv8803_read_reg(client, RX8901_EVNT_INTE); + if (ret < 0) + return ret; + reg_mask = BIT(5) | BIT(6) | BIT(7); /* EVINxIEN 1-3 */ + reg = (ret & ~reg_mask) | reg_mask; + ret = rv8803_write_reg(client, RX8901_EVNT_INTE, reg); + if (ret < 0) + return ret; + } + + /* + * 5. set BUF1 inhibit and interrupt every 1 event + * NOTE: BUF2-3 are not used in FIFO-mode + */ + ret = rv8803_write_reg(client, RX8901_BUF1_CFG1, 0x01); + if (ret < 0) + return ret; + + /* 6. clean and init for BUFx and event counter 1-3 and trigger cmd */ + reg = BIT(7) | GENMASK(6, 4); + reg |= BIT(0); /* CMDTRGEN */ + ret = rv8803_write_reg(client, RX8901_WRCMD_CFG, reg); + if (ret < 0) + return ret; + ret = rv8803_write_reg(client, RX8901_WRCMD_TRG, 0xFF); + if (ret < 0) + return ret; + tmo = jiffies + msecs_to_jiffies(100); /* timeout 100ms */ + do { + usleep_range(10, 2000); + ret = rv8803_read_reg(client, RX8901_WRCMD_TRG); + if (ret < 0) + return ret; + if (time_after(jiffies, tmo)) + return -EBUSY; + } while (ret); + + /* + * 7. enable event detection interrupt + * 8. / 10. enable events for configuration in FIFO mode + */ + ret = rv8803_ts_enable_events(rv8803, reg_mask_evin_en); + if (ret < 0) + return ret; + + return count; +} + +static ssize_t read_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + int ret; + int ev_idx; + int num_events; + unsigned long long time_s; + int time_ms; + int offset = 0; + u8 reg_mask; + u8 data[10]; + struct rtc_time tm; + + struct i2c_client *client = to_i2c_client(dev->parent); + struct rv8803_data *rv8803 = dev_get_drvdata(dev->parent); + + guard(mutex)(&rv8803->flags_lock); + + /* + * For detailed description see datasheet: + * - Reading Time Stamp Data (FIFO mode) + */ + + /* check interrupt source is from event 1-3 */ + ret = rv8803_read_reg(client, RX8901_EVNT_INTF); + if (ret < 0) + return ret; + + /* CHECK for EVF bit */ + if (ret & BIT(2)) { + /* clear EVINxF 1-3 */ + reg_mask = BIT(5) | BIT(6) | BIT(7); + ret = rv8803_write_reg(client, RX8901_EVNT_INTF, ret & ~reg_mask); + if (ret < 0) + return ret; + } + + /* check interrupt source is from event 1-3 */ + ret = rv8803_read_reg(client, RX8901_BUF_INTF); + if (ret < 0) + return ret; + if (ret & RX8901_BUF_INTF_BUF1F) { + /* disable interrupts */ + ret = rv8803_read_reg(client, RV8803_CTRL); + if (ret < 0) + return ret; + ret = rv8803_write_reg(client, RV8803_CTRL, ret & ~RV8803_CTRL_EIE); + if (ret < 0) + return ret; + + /* clear interrupt flag */ + ret = rv8803_read_reg(client, RX8901_BUF_INTF); + if (ret < 0) + return ret; + ret = rv8803_write_reg(client, RX8901_BUF_INTF, ret & ~RX8901_BUF_INTF_BUF1F); + if (ret < 0) + return ret; + } + + /* test if there are events available */ + ret = rv8803_read_reg(client, RX8901_BUF1_STAT); + if (ret < 0) + return ret; + num_events = ret & RX8901_BUFx_STAT_PTR; + + if (num_events) { + ret = rv8803_read_regs(client, 0x60, ARRAY_SIZE(data), data); + if (ret < 0) + return ret; + + tm.tm_sec = bcd2bin(data[2]); + tm.tm_min = bcd2bin(data[3]); + tm.tm_hour = bcd2bin(data[4]); + tm.tm_mday = bcd2bin(data[5]); + tm.tm_mon = bcd2bin(data[6]) - 1; + tm.tm_year = bcd2bin(data[7]) + 100; + tm.tm_wday = -1; + tm.tm_yday = -1; + tm.tm_isdst = -1; + + ret = rtc_valid_tm(&tm); + if (ret) + return ret; + + /* calculate 1/1024 -> ms */ + time_ms = (1000 * ((data[1] << 2) | (data[0] >> 6))) / 1024; + time_s = rtc_tm_to_time64(&tm); + + offset += snprintf(buf + offset, PAGE_SIZE - offset, "%llu.%03d", time_s, time_ms); + for (ev_idx = 0; trg_status_txt[ev_idx].txt; ++ev_idx) + if (data[9] & trg_status_txt[ev_idx].val) + offset += snprintf(buf + offset, PAGE_SIZE - offset, " %s=%d", + trg_status_txt[ev_idx].txt, + !!(trg_status_txt[ev_idx].val & data[8])); + offset += snprintf(buf + offset, PAGE_SIZE - offset, "\n"); + + /* according to the datasheet we have to wait for 1ms */ + usleep_range(1000, 2000); + } + + /* re-enable interrupts */ + ret = rv8803_read_reg(client, RV8803_CTRL); + if (ret < 0) + return ret; + ret = rv8803_write_reg(client, RV8803_CTRL, ret | RV8803_CTRL_EIE); + if (ret < 0) + return ret; + + return offset; +} + +static DEVICE_ATTR_WO(enable); +static DEVICE_ATTR_ADMIN_RO(read); + +static struct attribute *rv8803_rtc_event_attrs[] = { + &dev_attr_enable.attr, + &dev_attr_read.attr, + NULL +}; + +static const struct attribute_group rv8803_rtc_sysfs_event_files = { + .name = "tamper", + .attrs = rv8803_rtc_event_attrs, +}; + static const struct rtc_class_ops rv8803_rtc_ops = { .read_time = rv8803_get_time, .set_time = rv8803_set_time, @@ -732,6 +1092,12 @@ static int rv8803_probe(struct i2c_client *client) if (err) return err; + if (rv8803->type == rx_8901) { + err = rtc_add_group(rv8803->rtc, &rv8803_rtc_sysfs_event_files); + if (err) + return err; + } + rv8803->rtc->ops = &rv8803_rtc_ops; rv8803->rtc->range_min = RTC_TIMESTAMP_BEGIN_2000; rv8803->rtc->range_max = RTC_TIMESTAMP_END_2099; From patchwork Tue May 13 16:19:19 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Markus Burri X-Patchwork-Id: 2085181 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=mt.com header.i=@mt.com header.a=rsa-sha256 header.s=selector2 header.b=esmrRlkK; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:40f1:3f00::1; helo=sy.mirrors.kernel.org; envelope-from=linux-rtc+bounces-4093-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org [IPv6:2604:1380:40f1:3f00::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4ZxhYf53N8z1yYJ for ; Wed, 14 May 2025 02:21:26 +1000 (AEST) Received: from smtp.subspace.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sy.mirrors.kernel.org (Postfix) with ESMTPS id 625287ADAAE for ; Tue, 13 May 2025 16:19:54 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 1D56D2BF980; Tue, 13 May 2025 16:20:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=mt.com header.i=@mt.com header.b="esmrRlkK" X-Original-To: linux-rtc@vger.kernel.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2043.outbound.protection.outlook.com [40.107.21.43]) (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 421C32BF96B; Tue, 13 May 2025 16:20:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.21.43 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747153214; cv=fail; b=fa8jX8XMsNqwIdbixENYQ6/h9lOx2GBjZpwnnV8Xas+sRqCAEvuo4gN1z1/yzypuj33UuNJkll1VWmpGxrAPf25YcIMN9cGv3Y5TjX0jqwFy+gz4zL92j58tlCJFKeiDUISDV+BW1apafl1HXcZpvoIL5uZlx1ghN4w6i5YNIfo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747153214; c=relaxed/simple; bh=MF7FFIm1Lbx0pc7Wct9jDbezLvjWhTAk8b+TL8tAnkw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=D/UrciToJyB706xf3ZdTtWa7KjW8jTLeKWv7EDwrBLG0lCZYfBmBTZ32q0aqqfNbopMLjTMepBq/L+Vu5PznDtpKFplj3nO8qLJ1t3+iOkG8yv1DZ53980h+Ljw6ElXjK2GCCySHBtbXnan9CXyjIxhHl5NKrOWaEQ5A7BbZhFE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=mt.com; spf=fail smtp.mailfrom=mt.com; dkim=pass (2048-bit key) header.d=mt.com header.i=@mt.com header.b=esmrRlkK; arc=fail smtp.client-ip=40.107.21.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=mt.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=mt.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=qigDG7m4OBG7DbSv/yMSr0dvppsMS6UTo4KyrtuVTDbAxi06x1iFTWIPEFfeY/9+WZVqHx6F44sFbcka/HiSkrg1vMaFHcbF8aOwVjR7KCb+GvJjYortIxsgALow9lwCblZqIyG8oxoI1iOJg7zVxt//xIEpYHH6VPQpLdmFD/0jFTvuHyai43CX2/t8YhbncrqWkJcxtTjmbSadrDW0+fzBQK0v8Jn6HDf5y5M5E3kMEfA5Y6C2wqChi7L5y+D39Q58lr4WPqzwgvKI+t2YOgMGw4K8ps5ma6Rbb9EHz8h1cfN6hQdMIUruU2kd363iv2MSg9omN9TgZculcXjspw== 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=+KJS/MInhvMq1OZEUCZ5P9nuG/g89xibJayd5dh3lrU=; b=y6pQ53mt8s98Myu+LthOP/0kh4jY8Sa3ou46scnVXYJchUK59ntLsNLrhg4ak1tJIXJaQhuylvPbQ6q37j7T64AZ5jCckBUqzJC2XFIffEKjcG2g5tiw/j1r127CpV55SbODP4VDb4E2FYyLhOmZWlqmPcf9LUqDedQ/xa6OgEiZibYD4PloSi0FAxMV7MU/BY4LMqJWxWNzqr+euiY8xGac9WVNSr0kFH3Yz1z7uyJY3f2dlNUi8Vs20+lFuWDItOksZdzaZSstl4hMoBsgYy+WcEOmkzTasIfcWdvQclanH4HUbMCebNEbfiowzkwVERm7BB0/aoqLKfT3RmL00w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mt.com; dmarc=pass action=none header.from=mt.com; dkim=pass header.d=mt.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mt.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+KJS/MInhvMq1OZEUCZ5P9nuG/g89xibJayd5dh3lrU=; b=esmrRlkKLAFNgOxWKCkmLfaRmgmZcJKSzKe4daskvHrzaE+WOWg6EnVDpngb8s+m3ws6nbEkDtRYvegY2CRkKli0uVfURlpjynAjSE29uBH/kprgt+kFQFW0YJjB7Sg+SIV1LPRXqQzfhEEEHV2rizk7mDFfJIh2CuI2Rsod1JLz0+NzXnU2JE8yi0Dx9IfafI1gED1C6F6CzMZR9qzIO4+3AwWH6hYtBfVbfQuFjyz07zhEdXOujlvrnzd7jSk8mydOcp+2R24xCXPv2P2ojXJG7jqbtbDjFZAYOs9rYrXucOH8LYhxk+tpzysUs2UCBznHyHaAxz0E3J2zD1hKyw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=mt.com; Received: from DB6PR03MB3062.eurprd03.prod.outlook.com (2603:10a6:6:36::19) by AM9PR03MB6724.eurprd03.prod.outlook.com (2603:10a6:20b:280::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8722.29; Tue, 13 May 2025 16:20:09 +0000 Received: from DB6PR03MB3062.eurprd03.prod.outlook.com ([fe80::b201:e423:f29:53b]) by DB6PR03MB3062.eurprd03.prod.outlook.com ([fe80::b201:e423:f29:53b%4]) with mapi id 15.20.8678.033; Tue, 13 May 2025 16:20:09 +0000 From: Markus Burri To: linux-kernel@vger.kernel.org Cc: Markus Burri , Alexandre Belloni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manuel Traut , Marek Vasut , linux-rtc@vger.kernel.org, devicetree@vger.kernel.org, Markus Burri Subject: [PATCH v3 4/7] rtc-rv8803: extend sysfs to trigger internal ts-event Date: Tue, 13 May 2025 18:19:19 +0200 Message-Id: <20250513161922.4064-5-markus.burri@mt.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250513161922.4064-1-markus.burri@mt.com> References: <20250513161922.4064-1-markus.burri@mt.com> X-ClientProxiedBy: MI0P293CA0005.ITAP293.PROD.OUTLOOK.COM (2603:10a6:290:44::19) To DB6PR03MB3062.eurprd03.prod.outlook.com (2603:10a6:6:36::19) Precedence: bulk X-Mailing-List: linux-rtc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB6PR03MB3062:EE_|AM9PR03MB6724:EE_ X-MS-Office365-Filtering-Correlation-Id: 0afa3faf-c1f4-4f6c-3e85-08dd923a078b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|366016|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: tB4vESeziYA/noPsW6LbR1qnV1H6MiJbraz3MrebXiEryB2c9p6Z+KB57pMkrppoihOSOcPZIxgJxfFkzb/0DiKHUvUvyD4jAwqAaeqiqYuT3efu4FxiFfxM+15/OcLW+oeAo8LEaz5oaNJd+47gjUnufCpNV3NMkcRgZ1R2npv2rZikBwAvUSECzMJgSUUt2WUWV2xqt1Bh4BOw9SK3o0ZltIbV+8O1Lw2/5oj/Zbb3IDiBK0Wkud8TrLEpmQmnVkLnoNAFqeECgcE5kob2bomaIHpx3BRJsxPb6wEieKsmk6ryENDmixGbc7xCC90OfidZZkeJeeNDI5ZQk+BA/glZ68/AGBy9bBVXNPRJe3OVh+FXQyUOoQC64t3k5igAJpGi+8r1yBOQdrQr0pJRk9GjnMgJGEDHPzRvejulmEhzZkacdyZR4Osj12g0ysSMCn0zA62HO7B1NMOCtYC0NmygosxS50kEgChe+Jx3dYkqjXUtf/zLInE+c6fA31L4e7KbtDFC3RgUNghvNG24rCjy44h/AOE2i4PSSfbTF+3RpoTZew/wJYXrtL331VbAny2AoANZ4fbVDvY86G7pAkSeSXR7Mz59gKZQ/hgsnlddyyYNS3th2e5+2ezj9w8SC2ULpD2D63Ay02hhoRz7q7xb+wOrnLl50SguqWhBPQNN+jJzHgpgNO7Zx+zziGfBJzd7g+5c79/xsKYZGvT6hAFxssKFoAzFJ+SpRRJ3MUB7erkz7YSqhr4b1yJ2AYNV2KHLOKRyaGUJs/QT8uoNgiomQZYSNHLR7lsmK+uGaPQ9x4IcyYTc4/TNmNFed2DVLZtfko3IYg7ITaVOVZjtoBoOTxR61tRmcH5d12XS9K7EcPq/fS/B/zKZw1NcEaQre0OpF3x9jNTekmCN8Yl4N9ONYxNG7i8mbrUI6ztDxlOHY6PQ9ZPUe8FdH6SmPsyzt2g+EQ8d8qs8Gchq6aoip152pbS/soFVb3+c2OWkwlvjF6h8f9JRNE2LFVPOPwOZcNmh+EGDLsoNKUgWcHq3KDQZod1tzZ1iVpHv+635pLlOf8ZlT6AIoLvIT/k3RBzRUvoH0OhfwPxiLWyDnUTYsf4eJf1/N0ycVI7exfoTVYsRToB6TIpCRYqh06DjqRpZV5mKrp1KtRrlyFmqCXghC7NUMqm/ezrKhHAcHzt0WhtebEz6aBjlavs0H/ml7NxjlO9kjXyK4fPgN4AkojFYVDwKt6bEoSbaQqB8LDWRfAsovQHihtqTVz9rOWezBLCawwaXLh/ER6GGw86G6arOVIG/rsXqvoqrcml/9R9wSEzL3zGzs3k/2yk98fltcgrtkESaKtMOHLU4I7+zYc5pAmPQRTOwcVSBIvNuD4DdRyjbDOAZjcXpFCfyhHbRBJ5F9F07C5vGaWh0LYVcRS3YspS4Js5yMXXBFIHRBEXY3QDxfx7P8AAxygDM6O+IF7xC2tQskwR9Bd/NPtlZF/4AMw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB6PR03MB3062.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(366016)(1800799024)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: lM+EKZDKm9AIazhQwk0pkgCp1oDGTWG5vYF++C0wN4y3OmyzMD3XPRXpprl25VSWY2picQeJgYep2i+6nxryxiEbIfpx7ZAdjGiUPEs2Im+7I5qx22+zjKkD8kdM+VoJZOfLNgHTsqy+4Cy0aTfRiM+xRQ4ZrK/IfMpWbmbUgl6PdGR8IawjdF3Z42Y0gXPyjhYA04FB+csOW76oWrADX/5BCEKN+k0/DRuodTSEl8AEE4a0d/2jhxse4rKoKyORYkj75rQKx6sTO8GECvjXATsUs9HI5gdG2eBJE8qGA9DAWO8tuQloL/lTIpwk1RB94QupkM3vIJRYAkM3+WjRaE8fs67pAVQDBywcFIRw3EesguIR1pDu9Oj6MUJVCvMwcemXgNGEVdycQ0y4foxHNjgSawdBQPfQxt/TYsIDbRASfW2NxxrEuUH8WQB8QeGtMpLDwqQ/AmQbKG2gTHrYIVggy9LW3oIW/Mu6sxfcqhXVRdC8rK52aNgtt79db+4nvzWZnuQTJv6nWe93np4G6WGvBGvTY98fO24DgHQ5BkRdAiRxMPRG0NihbAEAT45+UwhtyZ8DB9Kjxi9w3LdpWzmL0S+EqdwhVCdYZiDhPI0OJ5QAemlyxF5VVNtt4f2k/unUj4NYD3kqBBDOydhfbJArJ4Pi9DtRZoHWWLaY/QzI7hOkS8KCpjHLr6zNEgw0yPnyjWbjZyizON4FifPAoi7mmbvQAWq7ETjP7AMUJ4GiuxwteGuv1AvUmIIVVuCKZxYB/q1VK2U67YBL/fEwcHNB2fbxvG+WEfPEPfZ8nG4lXP7Yegcxi8Wi3HfJQPREN814Nx3q3XETfRLhh8sx8S+lK6XArgCEbDFnqHwc4r5wNN3eavJauryU9np+b1/aKIFk1qWFYGBfN+FzQMwUZzN5jYFqTiu55iP4iQvKv2P/Sw9tbBN8ApbjHhSVzPskdf/OMYS6NLW7XXmTHstU0JWwiZbnlAXztZ8t7CLVEIr2YZ6MK9TGDwhyK9FaxbdK5JhQ143swDNkErPW8iC32POMTaEZC20LlKT5ZVkpRM/K2yIVKKVasfpoPPg1+dCZBqVTpdPgfvDgFDO9s0ON4ZdDfE2YEms4OMRb0b+wcaRW9Akl3ij5S24pkGtMUc3tBM0fY/OtK5jAIMOmNoTcUsOUnXemUkeDIVJ2cZXThgUIKmQnUD1rL83u6G9nDSW3fIhJmsnj5xbRG6TWaCRRZqe2rg4Nc7V3NTpW58xhJrIFVM8xsxwLoMQ/yPf8w7P67c8BjfzH461rEnWhTssB/VlJvTXHdvarCWc1I61bp2jBOJUETD61CSDpKj7XjgzNiUMk3dnkSBS1Dc5/s3mdO3tN+nYLmhwrTbDBEgVfWpl7K9j9XeVhRa0h1VgP3oF6V60byOKk6WyY6CfGam/N6Ecc7znZmPIO5Iu1e08r/AHZ/WmwxVWGMM3fg27GvIb/KmxuWF68MCf0FN3RIJZDRNKlc6gsgWCrye2sTFjogNaA3F9VX7D6EA8GudBjrFGJIm8Adu2CEivW8MfpiOE0yJE6GdrhA5U++5hQMf6GXsJCU/1Uom6QdlFRuv0cNj+K X-OriginatorOrg: mt.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0afa3faf-c1f4-4f6c-3e85-08dd923a078b X-MS-Exchange-CrossTenant-AuthSource: DB6PR03MB3062.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2025 16:20:08.9941 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fb4c0aee-6cd2-482f-a1a5-717e7c02496b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 6gVvGkNDMiKYycIZFDjHNvFO3fsT3zJuUaqLxzBSZEFdsWzbOJLCnr3A6v+wjYsYRetY0sRsyAVzgn4M567qaw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB6724 Extend sysfs to trigger an internal time-stamp event. The trigger function can be used from an application to trigger an internal time-stamp event. Signed-off-by: Markus Burri Reviewed-by: Manuel Traut --- .../ABI/testing/sysfs-class-rtc-tamper | 7 ++++ drivers/rtc/rtc-rv8803.c | 33 +++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/Documentation/ABI/testing/sysfs-class-rtc-tamper b/Documentation/ABI/testing/sysfs-class-rtc-tamper index f035d0fa5fde..2fd6578a6bd9 100644 --- a/Documentation/ABI/testing/sysfs-class-rtc-tamper +++ b/Documentation/ABI/testing/sysfs-class-rtc-tamper @@ -18,4 +18,11 @@ Description: (RO) Attribute to read the stored timestamps form buffer FIFO. - "1234.567 EVIN1=1" for a trigger from EVIN1 changed from low to high - "1234.567 EVIN1=0 EVIN2=1 for a simultaneous trigger of EVIN1 changed to low and EVIN2 changed to high. + - "1234.567 CMD=0" for a internal trigger +What: /sys/class/rtc/rtcX/tamper/trigger +Date: January 2025 +KernelVersion: 6.13 +Contact: Markus Burri +Description: (WO) Attribute to trigger an internal timestamp event + Write a '1' to trigger an internal event and store a timestamp. diff --git a/drivers/rtc/rtc-rv8803.c b/drivers/rtc/rtc-rv8803.c index ef2231e5abc9..8f9bcce6351c 100644 --- a/drivers/rtc/rtc-rv8803.c +++ b/drivers/rtc/rtc-rv8803.c @@ -904,12 +904,45 @@ static ssize_t read_show(struct device *dev, struct device_attribute *attr, char return offset; } +static ssize_t trigger_store(struct device *dev, struct device_attribute *attr, const char *buf, + size_t count) +{ + struct rv8803_data *rv8803 = dev_get_drvdata(dev->parent); + struct i2c_client *client = rv8803->client; + int ret; + unsigned long tmo; + + guard(mutex)(&rv8803->flags_lock); + + /* CMDTRGEN */ + ret = rv8803_write_reg(client, RX8901_WRCMD_CFG, BIT(0)); + if (ret < 0) + return ret; + ret = rv8803_write_reg(client, RX8901_WRCMD_TRG, 0xFF); + if (ret < 0) + return ret; + + tmo = jiffies + msecs_to_jiffies(100); /* timeout 100ms */ + do { + usleep_range(10, 2000); + ret = rv8803_read_reg(client, RX8901_WRCMD_TRG); + if (ret < 0) + return ret; + if (time_after(jiffies, tmo)) + return -EBUSY; + } while (ret); + + return count; +} + static DEVICE_ATTR_WO(enable); static DEVICE_ATTR_ADMIN_RO(read); +static DEVICE_ATTR_WO(trigger); static struct attribute *rv8803_rtc_event_attrs[] = { &dev_attr_enable.attr, &dev_attr_read.attr, + &dev_attr_trigger.attr, NULL }; From patchwork Tue May 13 16:19:20 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Markus Burri X-Patchwork-Id: 2085180 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=mt.com header.i=@mt.com header.a=rsa-sha256 header.s=selector2 header.b=DTsx7kB/; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=147.75.80.249; helo=am.mirrors.kernel.org; envelope-from=linux-rtc+bounces-4094-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from am.mirrors.kernel.org (am.mirrors.kernel.org [147.75.80.249]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4ZxhYJ2Zpjz1yYJ for ; Wed, 14 May 2025 02:21:08 +1000 (AEST) Received: from smtp.subspace.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 89C1F1B6269F for ; Tue, 13 May 2025 16:21:33 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 996B22BF3CC; Tue, 13 May 2025 16:20:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=mt.com header.i=@mt.com header.b="DTsx7kB/" X-Original-To: linux-rtc@vger.kernel.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2066.outbound.protection.outlook.com [40.107.22.66]) (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 AA2D22BEC2A; Tue, 13 May 2025 16:20:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.22.66 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747153223; cv=fail; b=JrkXejcJOkoVZmZz5rmrlDyYWi1dFL8rLQLRA9kIgK7Jhg6qLxn8FylI27+idpDicoxpRAiWE/O9DiQspewIWjhCov7Pvd/kR2BT1z1SwhERbrTorzKbaQS4PpHN4czNOc9ckjzJeb0nZY6MmG1VeQdqa3aev/Nqeqnmeh7aPeY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747153223; c=relaxed/simple; bh=RVF5ViFcozAy+CfIIu9Gua1PQr91xsgjVwm/TuHwqE0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=S61oIe+6qQJQICP5nozLmhRn+7Isqu/jC2TCOnE7hYBNsUkuUcTWGJlUNEF4uOS1subuS6zv28l7k6u/QOrJOKJppf5qlAeN4EAU+HFeZtUg4xl6iDF52HgfE4bqOrcjInp3XBtM4bwnP35aGGviHeloqzrB32gxV4iHPuG1sQM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=mt.com; spf=fail smtp.mailfrom=mt.com; dkim=pass (2048-bit key) header.d=mt.com header.i=@mt.com header.b=DTsx7kB/; arc=fail smtp.client-ip=40.107.22.66 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=mt.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=mt.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=CPUxBzcxbMF+1dvJMcg8SrCjbkHScFEZ6j7cvZPPh30skQS95EhZGjMAsmUzkSh37vkn2nNTQbX3/uqkYhKyBJXvUvHPnKgjsdN1PdscMVb9NxasSWOMdoIpf7Z9BwEGzGk+ePwyC110fK/xmuS/yLiHxfDi7TDGKM6141aFRlBRSWEkS14eyNMQ57CF2M4BTTy+VIcZSijLQbRDCXTBVRMkhczcAcyPY7ZJqMLP7kSrMfy31GYXtJ5ghyvv8wTOACXILCiyUjfGlhhydOO+UrQcPxekGbmlr1QP50Zc6k/dmhNaesw8Hgew/nSTGqwwC9PDJWTI8VEqu9/Pnl5/9w== 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=JfYly4m1xhrA/vLI1EL5BqOEJed0LZ5VAJbT7NH/gjY=; b=k+Om9u4lnMiqrZW1XPQ0D9AFSkyab+4Jkb2Wr8GzNdunnmIoQ5vDw0k8JaiCnXOBtB8Zr8pJPELiwNQXG797W/Il0FxmNRqeE365uVt6ZwS5PsPnn9fdgV+0sw9Qt6b2j5m0G5FJBPQcEAsaq5tlWKZfsc2sR/ZN/RXV3zx+mWHp/EC1e5pEJzTI0uqU6ShSag6aFBKWYQUZTeoWv2Gnap9fLg4zz/q7ckJlM8tz6EdURHtXvHuDIItqExP9mij6ZBXU0R1XNNt+jAHfCjuDMaRH5z3anWAsAerzZrAfLG8NWkz4YT5pmoyutc1le0TLK/J0u9zXpo9UwxvKtW65BQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mt.com; dmarc=pass action=none header.from=mt.com; dkim=pass header.d=mt.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mt.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=JfYly4m1xhrA/vLI1EL5BqOEJed0LZ5VAJbT7NH/gjY=; b=DTsx7kB/Rv33U87q0D/0xZq73oVJgIiIJuCR7VZ0KGtiWchqlAT4ljSyRRIe5fgHb6DkKccT9qkJGdC+8ioyvFVzrgKwvuy8txVKJ05957qL6nbZ2xpZMGvBtt7HxbVB+wTt5qs+UJh+76SzmabpE5bKDzZxt7nSibD4U0+V2uRFB0JV8FvUbVD2x/9ze/7d/HVw4DPE/MVsxEasu6wQZ4Heq0srTjp8F2RQOhMLjezDCYsCXqrLkvvfAadYyvR1jRdwE3EGegbFOGt3Ap7RECQ0svJ83nA+bypn+L+giuAzikC8293VZc/H2UoD6DpZKZObCo+DghDcl00QsvWS8A== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=mt.com; Received: from DB6PR03MB3062.eurprd03.prod.outlook.com (2603:10a6:6:36::19) by AM9PR03MB6724.eurprd03.prod.outlook.com (2603:10a6:20b:280::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8722.29; Tue, 13 May 2025 16:20:18 +0000 Received: from DB6PR03MB3062.eurprd03.prod.outlook.com ([fe80::b201:e423:f29:53b]) by DB6PR03MB3062.eurprd03.prod.outlook.com ([fe80::b201:e423:f29:53b%4]) with mapi id 15.20.8678.033; Tue, 13 May 2025 16:20:18 +0000 From: Markus Burri To: linux-kernel@vger.kernel.org Cc: Markus Burri , Alexandre Belloni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manuel Traut , Marek Vasut , linux-rtc@vger.kernel.org, devicetree@vger.kernel.org, Markus Burri Subject: [PATCH v3 5/7] rtc-rv8803: extend sysfs to read status Date: Tue, 13 May 2025 18:19:20 +0200 Message-Id: <20250513161922.4064-6-markus.burri@mt.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250513161922.4064-1-markus.burri@mt.com> References: <20250513161922.4064-1-markus.burri@mt.com> X-ClientProxiedBy: MI1P293CA0019.ITAP293.PROD.OUTLOOK.COM (2603:10a6:290:3::16) To DB6PR03MB3062.eurprd03.prod.outlook.com (2603:10a6:6:36::19) Precedence: bulk X-Mailing-List: linux-rtc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB6PR03MB3062:EE_|AM9PR03MB6724:EE_ X-MS-Office365-Filtering-Correlation-Id: 411e08e4-56b3-4833-65e9-08dd923a0d66 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|366016|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: nVr6Jbtg8aH5Z20LYtqyaJnLJO3JfezAYclNz0Rva56GOIeX0OxB0Im7FC4j9C3o5cY+ODbAOUNVO+f5Myhfmir+TNdcWbaNu9yY6A9bSalDAvZXdv2FVwJARvu3p77JziwjkNFHBfKxhLPP5/POwgZ62OgCm+OLhb/xjx1WGI+RksZBWELMa/VeWdkDbOAdk8Lv1EwxSnRoA5la/hzPRC3DaoFKmRdzbkUWfQbP2Vw5j7gS/0K+OZL3GaqU98WVXzYMw479Uufe3MPDHRFzgiavUcTk85PQhXiBTVyOtzs6TeTbkNO3HwveNJGVWbSasHIQ0pcLXAljU7SgNeDU1R+V9nh+Q8cF81NFvpCN217ZCe+klSsq6MBAyPTLK6ewRSOoBa50pTZ+mypBiz6QKHyIJE5uZtIwWp3ZIKnD3WeDRlsEkxCiYKc6ukVzlBCTPCFzJHqfeYDA2FVJNQSg8IuOTMaUUYUXuP361HfgU8lQAq8+4jvsviGi8/aeF7royztJ6EF1N9jlPcqA4jlyXmmQEfgtN/VDcPsFxtC9Bnh3qluwSEOVIKAo9lPcKouGh0iFTH/pBpTIyQYfBSMdwY29G1gx2/eQKLm/x25yKagkTbOBELjLdIhKykcAZw5rqsgdeiToxbgZtZeCtdU8KaRl80cy7VH7NPC896Ue7vfg3Jbcu0wKz4yJQojVGgm/xfdqA0WWACThK+uUatnd5BQeiBBuwWDtK2gz+mkEZ/Xwq2sA67FuDllA8pLbZJaCH1LEjUGonNCFGJZBo+TBK9DynojJG1uOoOfsnTuV213gHuw5GoaBl/NLfjbUPwv8pAYtLjM7QLc62zYzmght6fJxY5FoEST4R2tcxxA76s68z6x+RyZblTsH5Nqvv2LPYiSpmqTwPRmr3hKRNxJar1udKrwQvi0hbmb2HFGbNswAu5g+opKcjQO/wif4k07qVplWE1HlNG12gt7+9AKakaMMd+JUDp37XRe1zVwwb8UfQSKez9s9A3c6ux66N3e8gK43l6pI6VCpjijAp0dCSqS6kRQVHdfKh8wrYM5vMrYJynL2S7mwUFh6U4bhQTBlQrZapkMbPfpkRod4EkE/dXN446RJqXPAsgoZvgOP/b/tHJMbTjD70Qh+NP+unI7f0aQA2wAgNrUlwPz73/MEbT1KvWfHV1+MAtk3ongi2lI1JkgTXWXDVOfm/Qp2w/92Kf7qQ2ERmVfVEKvTOvZnd6cPpPFIGyEzvEaFRVim0L3XlKdNCB5KYhuY83OJqoCWRCPSELhfdc6RAoWwjTqwy3ErGaeYVYQuU57wYMVtiz9KajYvz94G4rV68IZJqPT5iGJxSzLSwZUtrIQb0fdJ8C9Hv6MMMURrMPi/6tSctwOGyM/Q8zq8m1/I3bF8d2OmlT4nncU9oBiMb8w7yJdZ20nm3OwuzFuSdCnnc3nMNY0bFsiydbK08NTI0O1HqCNY6O+Km4ArnGCy47D+Xod19Q== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB6PR03MB3062.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(366016)(1800799024)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: opfNaTWlnl15YNfyNPv4nd4yDb0qSrKjjAksIfv7pSSprgZoanQPibvrK+8HS0mT0VFRNdopFPf7WLXeUKok2q6ddz6vfgnYZDM7G3MpuNQtvmuq0FmAKvX7/qqPIGbmrIBCI5n1Aj+4JGDyf6piiirs508obg/fbeS+GadpS1LrGTBNCE4O9AMbiPdMwBo/SavsJAXtie7MSmt5XKHcY3F6ZxqzMGP9/y4SoLBxpexRdjqUyfZowzbTFlOPzJASqk7WeQmrSIPeTm8OvC1DA3pOrhaSGQ/RfP/9P5v8hgcyJMskg58i+AccdC9Dyr8qOqoLyUuHw7/RImoPrnQ3EG34WwzKtG4k2vRSzBnhogdkLkaP3kwOmt85/zKqDD67mS0YRfSUXoK5kDeJf3kCTncfAw409LIRcQOZFUngM36fO3Lt9BmyCk1xk/dpyvPwOINDCBF3BgsvP0OtRW73GtMQMsFn7Qf9V4vYyMuourYoCK3Io5t4h5ie90oztYKaelPAJdOfDrTjL1Y0LY1L+/LaECfA94ORKdoxi3whdS7/xBOconyEGKo1EPWp9bFdCWfdjR1pb8veJW1o+BJhxn8k+srk+PdLg/GoAUx7KEn/0VkHwMSOy47pXd8WBaaVLnDJTfvi2yAXXQS2zDua9iMiL08iDOBnYzt6+gpQnMjm4txF6P1eAdriNSW3bkV2NTaDhiRid6FAD9OJGwk6PDwAfaYKLHsf5cqQyEiuGziDHthCi4QQpDrIsgw3LUlf7xFUjsDApu091f7utTbXFStr0hU8FUyvnXMKkWd7T/2UvL+QL2S5WeguzcJi1BKVjKgQqo4vSCPFlBqwEn/61rChNOmG7B9CwGKI1HaoDPBeX7uVQ5hd9sOLFD2asnMwIkfyIYFIHThvI2RWNnYvxoxcU8GQLrTXGNkRnwkVYbC6z9Vqxr6PjbuLjWqU9EGffr79HaYO85Z4dMsdSltaKTbsGXzjCFivhLKIQybo+mOQsMS1KjHReVUsJ4u+OLitIy3zCTWF3YyxcCLPDHklzYKaADg09zSNltsPg5ArrGkydsG2u84kDqbopHDD24UI+ZTlz1M4g5B489LaPVPfyrblg7/paL/9DJri0Gg/61wAKwcO2PnbT273cU6fJ8Bhy74qdajwDsq4dXIxBdfKH3B1yU000X/aFYqgqa0vYH0PSUlkHdFzxVgpl8MUeuPDCytQPYO5fcyOmek1V3nx6acfxCxBh97L4VSQL0DoqebNpZmX6YJDEi1F/Vd9YkbqilSGqxTKzQJYAeB1YrvFoNP15iN/1bQ+t70mvkjE29fBtS/pjSD6FMSXTbI7q+2oQGLl+n0jBV8l3j0yS/At24HwJf3SLbG8F8E6U4CGxsbiiFl4Bv3gSL3jFf0xCVdEsFKnLCG5ugq/OuVzsZIBb3rYa9vNkLXBRYgIIBUVirwxbo/Cnxp1wwLDXUCI5FXAi1YsgCkE4yBgjLS/99GEHtMq8ToHXqltrBRYnvyo5Hpbj9n+HuVOPiwzAaDESvoxM8272HVxWDkYMq1TfjiFfNK7bOXg5MKn+eQrE8CB7tzsGtKTosC5ZTUWgXXsnwYX X-OriginatorOrg: mt.com X-MS-Exchange-CrossTenant-Network-Message-Id: 411e08e4-56b3-4833-65e9-08dd923a0d66 X-MS-Exchange-CrossTenant-AuthSource: DB6PR03MB3062.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2025 16:20:18.8336 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fb4c0aee-6cd2-482f-a1a5-717e7c02496b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: hFvmcTdWkNuTxYsi+SNdAVyuz+TCIv7KfNOkTk1JgFFddiGfIuBhRc+dnjhSzNSunVxYsEdEuoWznl3bDrtAWQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB6724 Add sysfs functionality to read the status and configuration. The functions provide the number of stored timestamp events, the current EVIN pin configuration and the enabled/disabled status. Signed-off-by: Markus Burri Reviewed-by: Manuel Traut --- .../ABI/testing/sysfs-class-rtc-tamper | 8 ++ drivers/rtc/rtc-rv8803.c | 106 ++++++++++++++++++ 2 files changed, 114 insertions(+) diff --git a/Documentation/ABI/testing/sysfs-class-rtc-tamper b/Documentation/ABI/testing/sysfs-class-rtc-tamper index 2fd6578a6bd9..b3aa73c81c6b 100644 --- a/Documentation/ABI/testing/sysfs-class-rtc-tamper +++ b/Documentation/ABI/testing/sysfs-class-rtc-tamper @@ -26,3 +26,11 @@ KernelVersion: 6.13 Contact: Markus Burri Description: (WO) Attribute to trigger an internal timestamp event Write a '1' to trigger an internal event and store a timestamp. + +What: /sys/class/rtc/rtcX/tamper/status +Date: January 2025 +KernelVersion: 6.13 +Contact: Markus Burri +Description: (RO) Attribute to read configuration and status for EVINx and buffer. + Provide the number of stored timestamp events, the current EVIN pin configuration + and the enabled/disabled status. diff --git a/drivers/rtc/rtc-rv8803.c b/drivers/rtc/rtc-rv8803.c index 8f9bcce6351c..d4b1e04c97de 100644 --- a/drivers/rtc/rtc-rv8803.c +++ b/drivers/rtc/rtc-rv8803.c @@ -84,8 +84,11 @@ #define RX8901_EVNT_INTF 0x47 +#define RX8901_BUF_OVWF 0x4F + #define NO_OF_EVIN 3 +#define EVIN_FILTER_FACTOR 125 #define EVIN_FILTER_MAX 40 enum rv8803_type { @@ -116,6 +119,26 @@ struct cfg_val_txt { bool hide; }; +static const struct cfg_val_txt pull_resistor_txt[] = { + { "no", no }, + { "PU/500k", pull_up_500k }, + { "PU/1M", pull_up_1M }, + { "PU/10M", pull_up_10M }, + { "PD/500k", pull_down_500k }, + { "no", 0b101, 1 }, + { "no", 0b110, 1 }, + { "no", 0b111, 1 }, + { NULL } +}; + +static const struct cfg_val_txt trigger_txt[] = { + { "falling", falling_edge }, + { "rising", rising_edge }, + { "both", both_edges }, + { "both", 0b11, 1 }, + { NULL } +}; + static const struct cfg_val_txt trg_status_txt[] = { { "EVIN1", BIT(5) }, { "EVIN2", BIT(6) }, @@ -632,6 +655,16 @@ static int rv8803_nvram_read(void *priv, unsigned int offset, return 0; } +static char *cfg2txt(const struct cfg_val_txt *cfg, u8 value) +{ + do { + if (cfg->val == value) + return cfg->txt; + } while (++cfg && cfg->txt); + + return NULL; +} + static int rv8803_ts_event_write_evin(int evin, struct rv8803_data *rv8803, enum evin_pull_resistor pullup_down, enum evin_trigger trigger, int filter) @@ -935,14 +968,87 @@ static ssize_t trigger_store(struct device *dev, struct device_attribute *attr, return count; } +static ssize_t status_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + int evin_en, evin_cfg, evin_flt, buf1_cfg, buf1_stat, buf_ovwf; + int i; + int offset = 0; + u8 ev_pullupdown[NO_OF_EVIN]; + u8 ev_trigger[NO_OF_EVIN]; + int ev_filter[NO_OF_EVIN]; + + struct i2c_client *client = to_i2c_client(dev->parent); + struct rv8803_data *rv8803 = dev_get_drvdata(dev->parent); + + scoped_guard(mutex, &rv8803->flags_lock) { + evin_en = rv8803_read_reg(client, RX8901_EVIN_EN); + if (evin_en < 0) + return evin_en; + + for (i = 0; i < NO_OF_EVIN; ++i) { + evin_cfg = rv8803_read_reg(client, evin_cfg_regs[i]); + evin_flt = rv8803_read_reg(client, evin_flt_regs[i]); + if (evin_cfg < 0 || evin_flt < 0) + return -EIO; + + ev_pullupdown[i] = FIELD_GET(RX8901_EVENTx_CFG_PUPD, evin_cfg); + ev_trigger[i] = FIELD_GET(RX8901_EVENTx_CFG_POL, evin_cfg); + ev_filter[i] = EVIN_FILTER_FACTOR * evin_flt; + } + + buf1_cfg = rv8803_read_reg(client, RX8901_BUF1_CFG1); + buf1_stat = rv8803_read_reg(client, RX8901_BUF1_STAT); + buf_ovwf = rv8803_read_reg(client, RX8901_BUF_OVWF); + if (buf1_stat < 0 || buf1_stat < 0 || buf_ovwf < 0) + return -EIO; + } + + offset += sprintf(buf + offset, "Mode: %s\n\n", + FIELD_GET(BIT(6), evin_en) ? "direct" : "fifo"); + offset += sprintf(buf + offset, "Event config:\n"); + offset += sprintf(buf + offset, " %-13s %-7s %-7s %-7s\n", "", "EVIN1", "EVIN2", "EVIN3"); + offset += sprintf(buf + offset, " %-13s %-7ld %-7ld %-7ld\n", "Enable", + FIELD_GET(BIT(0), evin_en), FIELD_GET(BIT(1), evin_en), + FIELD_GET(BIT(2), evin_en)); + offset += sprintf(buf + offset, " %-13s %-7ld %-7ld %-7ld\n", "Capture", + FIELD_GET(BIT(3), evin_en), FIELD_GET(BIT(4), evin_en), + FIELD_GET(BIT(5), evin_en)); + + offset += sprintf(buf + offset, " %-13s %-7s %-7s %-7s\n", "Pull-resistor", + cfg2txt(pull_resistor_txt, ev_pullupdown[0]), + cfg2txt(pull_resistor_txt, ev_pullupdown[1]), + cfg2txt(pull_resistor_txt, ev_pullupdown[2])); + offset += sprintf(buf + offset, " %-13s %-7s %-7s %-7s\n", "Edge", + cfg2txt(trigger_txt, ev_trigger[0]), + cfg2txt(trigger_txt, ev_trigger[1]), + cfg2txt(trigger_txt, ev_trigger[2])); + offset += sprintf(buf + offset, " %-13s %-7d %-7d %-7d\n\n", "Filter [ms]", + ev_filter[0], ev_filter[1], ev_filter[2]); + + offset += sprintf(buf + offset, "Buffer config:\n"); + offset += sprintf(buf + offset, " %-13s %-10s\n", "Mode", + (FIELD_GET(BIT(6), buf1_cfg) ? "overwrite" : "inhibit")); + offset += sprintf(buf + offset, " %-13s %-10s\n", "Status", + (FIELD_GET(BIT(7), buf1_stat) ? "full" : "free")); + offset += sprintf(buf + offset, " %-13s %-10ld\n", "Overrun", + (FIELD_GET(BIT(4), buf_ovwf))); + offset += sprintf(buf + offset, " %-13s %-10ld\n", "No of data", + (FIELD_GET(GENMASK(5, 0), buf1_stat))); + + return offset; +} + static DEVICE_ATTR_WO(enable); static DEVICE_ATTR_ADMIN_RO(read); static DEVICE_ATTR_WO(trigger); +static DEVICE_ATTR_RO(status); static struct attribute *rv8803_rtc_event_attrs[] = { &dev_attr_enable.attr, &dev_attr_read.attr, &dev_attr_trigger.attr, + &dev_attr_status.attr, NULL }; From patchwork Tue May 13 16:19:21 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Markus Burri X-Patchwork-Id: 2085182 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=mt.com header.i=@mt.com header.a=rsa-sha256 header.s=selector2 header.b=vpvGYokQ; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:4601:e00::3; helo=am.mirrors.kernel.org; envelope-from=linux-rtc+bounces-4095-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from am.mirrors.kernel.org (am.mirrors.kernel.org [IPv6:2604:1380:4601:e00::3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4ZxhYg0YYFz1yYx for ; Wed, 14 May 2025 02:21:27 +1000 (AEST) Received: from smtp.subspace.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 4311D1B627E1 for ; Tue, 13 May 2025 16:21:53 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 6EC152BFC62; Tue, 13 May 2025 16:20:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=mt.com header.i=@mt.com header.b="vpvGYokQ" X-Original-To: linux-rtc@vger.kernel.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2043.outbound.protection.outlook.com [40.107.21.43]) (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 91DAE2BF3E5; Tue, 13 May 2025 16:20:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.21.43 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747153233; cv=fail; b=je00hr9BoLeB4/CCWZoCD8QUWEo+gp0S+wdyiSK9dywFIpQEKkKtd1M8kszw5kjKrrCHwv21TrTEtZdHlELqn7anvs/QJGgf7TEzy6KGhXRCcYIQnbs86DbiuGEOUtDQHIXvDoCzScZ8bj3kmCwrpfj8sES5HKTU94d01vv/SIA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747153233; c=relaxed/simple; bh=tkTekrrVcC+3JMyJPy9oa1gIjWulsKuVoezLxp038ag=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=P4qcMgJt3TdeTrVEWj18uxf2/RuM5rShkdgBKcGi3hxYx1l/0JvvQXjNFTjuhJUtIYQBLKcQLmMifZSduyHeXsaR/TKpSkBoLQEWGJ6mHdy8kbIg0BS5o1YjqYlUsYFMFcUigpbsAcoqZeXgtvsKt/NUdu6bqncj22UHwD+tnqo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=mt.com; spf=fail smtp.mailfrom=mt.com; dkim=pass (2048-bit key) header.d=mt.com header.i=@mt.com header.b=vpvGYokQ; arc=fail smtp.client-ip=40.107.21.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=mt.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=mt.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=QNEMH2F8dRujHCED9FBDXpKvPedYM5FZ3Xp8H71SkjpOrikWSXA/udbOsYKjHa8Sr8M5H08xBgA+qf7BVwTT7mXtKl/73EP3MIKkpr/eQ+nMJSCUQ5Lhx/1JstsYmoBpEeoXdu3tNE106TShqKdpT1KkYwEthZHTbP3D8rZNx5mI1t81zSHsAEj3c7a7eBuVkFaGnEcKE8K8kR3vbQD94vJcfCfrK1IKej1lbKAL9V5PVFyjd3VO1FR92UobO2URfyDOzDAKdaWzsdhgtgtGfNFaOPYMQM7g+STHBamSTkK/ZdTm8eCFjyNI0d/Rfy9YCAvAIgBpmBTo7izbrBW3yw== 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=2bMXwhyxCIPcYFXGaUnMloh8CzPoCMaEheDxe0yX4bI=; b=qG1LsxSt6zV5Rq+s6gT0fGDGugsXgnOKviliPAMyV7yLq3LXvqMrmRpy5mUi5BqNMY+h3aXVfvJx5WP003VUVC7v95TAkrPW/RhgEnhADoeN6ZeR9WeayLxvGaWgmFkKC/pSY83mm2QegVUUZBgsBbyKWk65tXMNaF+X4Jxha1niPb8wtsF2uTIGtuUJZcNwtyWZ7EO+1lZrmSl9/MbfBDXEZ0rXiAqyOIGcKIJgKviwChN8dk3z7MEU8/YegBaT4Rat6/tM6lUO9AcOUhJidM+mXUhkVLZA1sqr145NAGb4XSENvaae9iwcyOLdLNWryv5dsuQ3oka00gvPza0O7w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mt.com; dmarc=pass action=none header.from=mt.com; dkim=pass header.d=mt.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mt.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2bMXwhyxCIPcYFXGaUnMloh8CzPoCMaEheDxe0yX4bI=; b=vpvGYokQ6XuRygNo2c+/MljPDW32etgPNcM0uaZxBOKzHcCuH6fMUewSGDk98GX856L6y5xoLujKImfksB7Mm8U5s/5cr3fsDsbNvpsanx+Lym6Pjwl/IOSXlqym7KY6ofPwZWS1E8cZRjnKRhN+efNE+wO5G+s7WfpVUefbqvya220nFZmjBbpjSA6TM/JegL6o3/Wj/qCgAOTR6RVf6fhwkcWzze4rBOAX9heoTTSZ949Mbp40aDPTuEUZ7vv/Lb6GvGa+tSRSymCA12nBvEkr6Cs/j3/qAnxtCBSvr8WCDqQVZ8KFzFSOKzjtF/8Ouj6cjlXeD4ObHJQZ5zgwiw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=mt.com; Received: from DB6PR03MB3062.eurprd03.prod.outlook.com (2603:10a6:6:36::19) by AM9PR03MB6724.eurprd03.prod.outlook.com (2603:10a6:20b:280::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8722.29; Tue, 13 May 2025 16:20:27 +0000 Received: from DB6PR03MB3062.eurprd03.prod.outlook.com ([fe80::b201:e423:f29:53b]) by DB6PR03MB3062.eurprd03.prod.outlook.com ([fe80::b201:e423:f29:53b%4]) with mapi id 15.20.8678.033; Tue, 13 May 2025 16:20:27 +0000 From: Markus Burri To: linux-kernel@vger.kernel.org Cc: Markus Burri , Alexandre Belloni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manuel Traut , Marek Vasut , linux-rtc@vger.kernel.org, devicetree@vger.kernel.org, Markus Burri Subject: [PATCH v3 6/7] dt-bindings: rtc-rv8803: add tamper detection property node Date: Tue, 13 May 2025 18:19:21 +0200 Message-Id: <20250513161922.4064-7-markus.burri@mt.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250513161922.4064-1-markus.burri@mt.com> References: <20250513161922.4064-1-markus.burri@mt.com> X-ClientProxiedBy: ZR0P278CA0154.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:41::9) To DB6PR03MB3062.eurprd03.prod.outlook.com (2603:10a6:6:36::19) Precedence: bulk X-Mailing-List: linux-rtc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB6PR03MB3062:EE_|AM9PR03MB6724:EE_ X-MS-Office365-Filtering-Correlation-Id: 83784d45-96ba-4ba7-e1e9-08dd923a12b7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|366016|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: m1JHhqeA0z8puv9Aa03ycSW9h8ecTJggSx4O1j+KVHrVOfUHttlAm9cvHeoQn/CLrFfWj2kT73dF0Iz0v0LGOK09YTz5EWkF/vhhhiOeDpYEDf58HcJ6qnQ1bJN36Gca48ksFQomqBKfivcRciqpK7oO3jwCRrzvQ3JRvSQBBEDcgwmOLTSZKiRjd59bgz7dXQhaDbzaKUOAiKqUjaOkk21hpIVsxpPbjShT8BLe2FFDI0nvqRuAji5LoyAE7dsAFWWgYPJOex8mT176jFH4nC89W+upwscDjNoMx4jE6izUlmHlJ8IPNizropMV+lRJdzllmqls9irWrO4LE/iloci/iYh7ohtbHrGIhsHwHKXHcJssOgY7jv8qaKDOH/KqOJm9WmCWv+M36PzbIqssbgMZd53wmG3fHQk/b/30nzEeuotIVF2VF8fYsjspWBeyynpI5QgU/FRObzFZibuqE9h50uUwUq63DLgOBGKIhhxIlrj9ezBxGSVjIoakaY4zetVSWLgyVtNLTUA5hvxxaAmVVqpNNKxxKacczJoJTeb+JCZSeOaa0ntKMHZoe4a9pcWzJ5kRQXKPLvkGQNlAl6fEddiXWjN8e8mCz/HVbiPpNymLEifAnu9VKYrEqEmplvJd5Lcwf+wfi4syBd7FXe3pQQzoX2uIJfp4xCU/IRReZYsbYmJVezbU1TuxuSz61HErh36JqMzWn8ia538nLkdOoqlxrTsEhuSALUXrTgs7UaOApa5/USwqbco2srjVngjWog7gZgdICjpZaNJeoUJSLiYNMTqVexUCBD9Wavz1pqvqhH5nu61ELdb1OhU7qTvEWgK5bbk9ACua0sdOmK60FJU7g1+BTmKkw9VeQbrJ4gnq7y5Qi1z8Conx7ulMDd5RZSrF4yeH6mzVGZsGgo2+BlwafICAx11JfHU1B4GPT7S9ZXtDmLTqa6p3oGitoOeZXo/MkLiW0M7xL9f/koC5FFXXT35TbCpxc7sUR1bpXfyVBv6XlDcDowBCmTIu4NxlZxqyHjmg+kflHbkmJklW2vM0CZtsDNuHq4g9m4a6MDH7Bvv+MuAK1O0/I7yM73xJ0tTnZf3p+7sauVc5xpAh9IBZWaaI5rMVq6YdQtF8C0g62UaROmt7S87c5k745TfrRB8SlCo+7uLfEbXkkeulF2uC9ibBz2a8LIRTvnPpqFtHqTt/O7bnPY6mg0FS1tzDD1QaEogAEzQhKm845GQXzwOT9HDCpBI0fjLDc7G+crxk2jQ7g7953GeAG910ayoXmPQl1sMxss3gSkOMJlUQB78Vl5/SjwIgEaogIMSCGTY4/MCsr5DQ3RNiuvpGoh2nFmupighajKrX6AN2cZTk4vyE6h+qcUrwNT0Ny9xNncKexlgFs9uEY0Ssuhx2JOewrRibkBDuBZHPYfrxrp5w3JMfieo+QwS/spXDtRrnZaT1in2dN7CR13MNV1B/xTCS4PKvr0GDDKZYS/zAJw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB6PR03MB3062.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(366016)(1800799024)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: vlSsiAV3Jv7EutaLRqqN1VsXEcO3Vxlf98ixE8yozmTosIUGCwtPRASpa8SRYmnItZCgm+IHhFFTNIi5arA982zmhkQa4tm3DE6uV/esd7EuccXNd8Yp21aSmRO4koRqMh9SVl29+9f0wc3ftH6WmqGXlOACSXbqSg97IbfAUH/0+TdvHS8KTGUZUYks5QvZ+2wDME1fKcsnZnl/Q4xPVaWa1XHC3jBsumq8r/9mLVQdRYdSuf/psXdld5GPLsS6B6PliJb+CGFJhK43LgdSE5DGiAeqYqiat4+xwoGkNR2XLC4IQYiXbg79Z6lzjxxvVdWT0P016SU+3/dB8YwC07soFNdDH08HXXxQVzOuHgiBS1OiZm2x91stnFlZV3zdSSz5dO6Csphs5FqS64rsceBgO7X9E25AFcYvmBHJU616ymR9XmeAMO6npbFxadcWfjBZqw37BwSjo7L7aMZnHtzxLuTYDxP4fZ6XL3gkSDN7ecr2fj9P8dO40VYiixtAp3LX1gQgBNEBwud/CIj5P0vQncwQuzIEfHQ1TQqybrLNtGQTcprLdWrTedlMsNBKi+bpmm2krwQofklyFBrMGpvFORefsWCokq+B3sQ+ihhhwJfw/CE4FVa/4AsMUxKbV1zC+MrFPLlYqZPD5F2RQ771W84zaCCG2ql/R0GL/aHiCAWWk794uLbrC92lkAPSkS1oUdpFjvzuw1KLWjBBmPc5Xj3+ABjqmGbsixfCzuQ0XkZ9x5Ie0lPLhZmc9WhZ13NiALuctersjxvt/D66SGuGZW0irEj03L15V5IDRfxNWG3rECHcoa5ybvvb1FfiIV4NBtiAvysOkxWtPig6F6vMPwTrZ+HzdrBZTzKcEVw8+FpFzRm+BzIHR3kvo7wtqqi2hNvImPE3Qt8vDqmNLxqnnD0Pc/O5bwFgyuXF839CvqhhmiQx+pfQCero5Ih3Ik3OYcbea8dxfQojpbPkDiJhOhQhQBIG7COfX6eJM2a0XL6Ws3hOwAfWAWKh3JKn4oEsmkASWNb9Zf0Rnyp1RSqnXQ9eqevH8SaRmscVLACYDtj9plj/8tKN0rde5baPRKemHZzXcboyo2Zo4ydshqewdcY/XieJ6qhsCXVZ4LywawLXimo3rrHMVtw6Y1SoJvBe7BoZA914NimWRpWN1HbiIN8hFAfULhrFGrm+VykThYzc/zUJsLuF80AUU4h0ZPhvv96K7P/ipZDTmHTo684d84B49UrqqpCYnWF6FEwRBlrXAAn7qFSjLK9R9p4jOgySDvnzzIJ8W9klxdktVYbsER5d/e3UvqlU71Lmi0HoFSMXLAVE6TC/Y2uxLqJK2vq90gdQ1p34Dy2ctpiroC76/GRW170bE5SUOCmEodXwiwLmB3+6zGQplrOnO4NdjeRauRoW97VrZNSmvN3GLv15lGWYILPOPcTCI+s2qINxg/wxlw511lg4SEs35FU5UGCmzoI4tDrqcjfCBVqpVZyfGlvSztSTJn4cQfcD2l+bgAqDKpw0ovYyIoy3udZuPkOchwun3qvoo2UZGvG/Yg8dx4y6Cncfhi/q5MSOspj+PGGoIY9qh/LSncx9MS7F X-OriginatorOrg: mt.com X-MS-Exchange-CrossTenant-Network-Message-Id: 83784d45-96ba-4ba7-e1e9-08dd923a12b7 X-MS-Exchange-CrossTenant-AuthSource: DB6PR03MB3062.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2025 16:20:27.7563 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fb4c0aee-6cd2-482f-a1a5-717e7c02496b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 6Y0BhInhY8eXSB1jwKI4fjqH/6jp4//27AkISYw1ksZ9AGAft3Tz1AoGCtJvouhpG5tM9mbA4Flxlydn5AIing== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB6724 Document tamper detection property for epson,rx8901 rtc chip. Signed-off-by: Markus Burri --- .../devicetree/bindings/rtc/epson,rx8900.yaml | 40 +++++++++++++++++-- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/Documentation/devicetree/bindings/rtc/epson,rx8900.yaml b/Documentation/devicetree/bindings/rtc/epson,rx8900.yaml index 03af81754482..c2e542c9bdc6 100644 --- a/Documentation/devicetree/bindings/rtc/epson,rx8900.yaml +++ b/Documentation/devicetree/bindings/rtc/epson,rx8900.yaml @@ -9,9 +9,6 @@ title: EPSON RX8900 / Microcrystal RV8803 Real-Time Clock maintainers: - Marek Vasut -allOf: - - $ref: rtc.yaml# - properties: compatible: enum: @@ -33,6 +30,43 @@ properties: wakeup-source: true + tamper: + description: Subnode for tamper configuration. This + subnode is only available for epson,rx8901. + type: object + additionalProperties: false + properties: + buffer-mode: + description: Set the buffer mode to inhibit (0) or overwrite (1). + minimum: 0 + maximum: 1 + patternProperties: + "^evin-[0-3]$": + $ref: /schemas/types.yaml#/definitions/uint32-array + minItems: 3 + maxItems: 3 + description: | + Event input pin configuration. + The configuration is an array of tree values and contains + "pull-resistore", "trigger" and "filter". + For a detaild description, see epson-rx8901 datasheet. + +allOf: + - $ref: rtc.yaml# + - if: + properties: + compatible: + contains: + enum: + - epson,rx8901 + then: + properties: + tamper: true + else: + # property is not allowed: + properties: + tamper: false + required: - compatible - reg From patchwork Tue May 13 16:19:22 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Markus Burri X-Patchwork-Id: 2085184 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=mt.com header.i=@mt.com header.a=rsa-sha256 header.s=selector2 header.b=XUg3Dy5f; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=147.75.80.249; helo=am.mirrors.kernel.org; envelope-from=linux-rtc+bounces-4096-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from am.mirrors.kernel.org (am.mirrors.kernel.org [147.75.80.249]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4ZxhZR0NcJz1yYJ for ; Wed, 14 May 2025 02:22:07 +1000 (AEST) Received: from smtp.subspace.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 34B67189C374 for ; Tue, 13 May 2025 16:22:15 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 2A5392BF3F5; Tue, 13 May 2025 16:20:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=mt.com header.i=@mt.com header.b="XUg3Dy5f" X-Original-To: linux-rtc@vger.kernel.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2080.outbound.protection.outlook.com [40.107.21.80]) (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 1896E2BEC32; Tue, 13 May 2025 16:20:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.21.80 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747153242; cv=fail; b=CUkCiERjvJELUTUAn/jhH3VD3xpaHeqWE5LUGl/hxQdyC/WxLzoKnxVy+1VimNyMXvTnhcEi1mDy2+DELj80MLbUuLVZ0+4ChqM/DkZh9Ze3peu/9W7ASRcVAWZJkQoCCWUuvp56/ROukcUm62M3AZTtR5Q/9sxN4bbVGXIU33A= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747153242; c=relaxed/simple; bh=aVaCa6knYN3wdv4Qh7BCP9ztlsu9/+EjuxJRf2UeVR8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=Qj5aE/zE9V1yiCowB6Rtc1cBASi9wDXBGU719F6b74AgHm7nqnaoDVrrZ8Ei1j7CGQTa+6jiR3x3wFU+Nr9Wy8m03XBdG+PtAmvy45VIo5sEjwbhMPZTKMJ5JENi/ktfqd5u9yC6cA6zeFAwhLU+kU5bpRCybQHl64CEv+ujeUQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=mt.com; spf=fail smtp.mailfrom=mt.com; dkim=pass (2048-bit key) header.d=mt.com header.i=@mt.com header.b=XUg3Dy5f; arc=fail smtp.client-ip=40.107.21.80 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=mt.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=mt.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ay80PEHyrAWwluB7C9VST50xAI4i0dx00FARUdhq38RxxwpNuUUKQZ5wicnpsyMM7EyXKyohnBI1CyurjjHNXX0hK14Rl6pGLU+aJGAba8G6TRjIuzZSn/GJyPJhVRTvqkjWexInaUEMags8JFVeuPRY5Z4OZjZmB0JT6RDpww9AaznP8Y/QmMHOez6D9K51P+CA8tAD+2qcqqd9vnekTmjkNLm4RwLASvHqEY2jFj63dxaYpNKkQVQMs0fxXOFbrRPB0BpQPILhg6zcQFoPlVoy86Wa6uUEkXs0H9MZrrOKBenh9IaM9bqR1DrO9SKRcACa2N2RkLaaiSImK0U3AA== 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=0Ai0RgXeyZkcJ6jlUzXDtzGNrbj997/g/dZPMiNZkUk=; b=pEJRgH9tDsPtBCkfeYD4vrmO5dqMxd75D5O0gOyU08n0HF4fjJNF/qsHIuD/lsRukDe00bTV6+mUV8G/KAaIXFmPlsNfTAz7xJxaiGxXy7pPGeXS4vC+frDmUy1CDWr5YncutUlCTdQdse6B1QcZTD0tOwV7befEcoRGndy2ceIpsdXGDEdMMQJSz38OE79lmK7Bcbql4E12k+ig8QlaeQ2DtXjiz4+9ylblx3z8huh8EoiyAQ8LsU3xaF4O7+laJAVT7c6HPLXOD2eIBsz3rRiVrpHey+DOsad2iFYZTkR+iZwBG1uZUvqn6cNtmpz6ujGOfkvVn9TliQs+07E/qA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mt.com; dmarc=pass action=none header.from=mt.com; dkim=pass header.d=mt.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mt.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0Ai0RgXeyZkcJ6jlUzXDtzGNrbj997/g/dZPMiNZkUk=; b=XUg3Dy5ftwxRR4DcuGskJHwG978yXVJFKdYb6ZRDRiJUE5vCx+IH9aH4Jg05K7j45Q3zSopc7kD4vMF6RiNh6IrBYqQ4GAw14kq5DSqcVNOwUjtgPb1ax7uMYbwGTAfjezgqM/+FdlvIwdBVOSn7Y84xRBGuEpU9PIopMvEDqQCu6dNVgku0AchO2YtDTzJczVIvkDNqUuhqv8WpnV0aG5CCjnQToxK7qASa7FC37y2RO2y3XFbDRrHDdYQOBhW6xEhRIE0mvJrwiR1Y4LzfLgZv5+qK7GfV5D3pgk4YIiZBXRT6L23b7ZoN8NxGFAvQbCp2Jin3EUIFjxP23om5GA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=mt.com; Received: from DB6PR03MB3062.eurprd03.prod.outlook.com (2603:10a6:6:36::19) by AM9PR03MB6724.eurprd03.prod.outlook.com (2603:10a6:20b:280::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8722.29; Tue, 13 May 2025 16:20:37 +0000 Received: from DB6PR03MB3062.eurprd03.prod.outlook.com ([fe80::b201:e423:f29:53b]) by DB6PR03MB3062.eurprd03.prod.outlook.com ([fe80::b201:e423:f29:53b%4]) with mapi id 15.20.8678.033; Tue, 13 May 2025 16:20:37 +0000 From: Markus Burri To: linux-kernel@vger.kernel.org Cc: Markus Burri , Alexandre Belloni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manuel Traut , Marek Vasut , linux-rtc@vger.kernel.org, devicetree@vger.kernel.org, Markus Burri Subject: [PATCH v3 7/7] rtc-rv8803: make tamper function configurable via dt Date: Tue, 13 May 2025 18:19:22 +0200 Message-Id: <20250513161922.4064-8-markus.burri@mt.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250513161922.4064-1-markus.burri@mt.com> References: <20250513161922.4064-1-markus.burri@mt.com> X-ClientProxiedBy: MI1P293CA0001.ITAP293.PROD.OUTLOOK.COM (2603:10a6:290:2::8) To DB6PR03MB3062.eurprd03.prod.outlook.com (2603:10a6:6:36::19) Precedence: bulk X-Mailing-List: linux-rtc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB6PR03MB3062:EE_|AM9PR03MB6724:EE_ X-MS-Office365-Filtering-Correlation-Id: 42b54211-cf84-4c49-dc7b-08dd923a1866 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|366016|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: pn0M2fnd4Xvm7+lF4RoEiixFUxu6q1bdQJdqNDB3Wicpfv2Qw9XEnwkZH2ETLhQcPSFu0SalZS2sEo6IdxViB0wrbF09yS+9vzCyzi8D5zmxqCZt+NbESDPmHABDIPHIM2EU5arrRlaFzq3pLncvuqT6+v3d1OI+i30NvriLjrH+COJVTYFQ5OWr7aeX9ZxGvwhF/bhlb+JRt9HxCKfxexNwb+OwA3eHYKdBeOhnIWrX7RSGdYs3HGE7S7Ixhe1pYdPQBzgVka1DeF6gNxpDi0Ls3+7cm1qAz3cBEetF+N4Fs3Ch0YkuuoWtedoy8BBY3cozkbpseji/4rUXFdEnAZoV6GxTNMnTYNLQMPpbIkOGkH0ShrrwlDWFqu60aTS6zc5HfwysXmPNg3yzcD5xqeZnkDCRTAyqE43LKGjvmsSJdFIB1KdJ47TXxcdQKHv9j3VDFenEnfG+BcmYE8d+y9IXe1dxjh/OlLOCZF7xpW5Sk1crsZir0/b4SC1NYD6rYeWlYIUZ/Msx+zlAuqdmfm3OZxXIDxtv9eLJC8y5Mm6YGmyOaaXqKNb+FCulS+W1ZSv++eLBjeC5o55a3sKydWjS3+9D60FXG6qJFvVWDrHVpeqXMw2tD/xZomGAxBW6B82JjjqUj9Q8DJA7FCgFgEkKxh8Ca370q45BCEwAn7+dv6IPl8WcIOpss8tlr3fvX5GyexKglTj9lnWPuakp1KLhpHvUbY/v7FvnGhm4NLeb6zd42xu+f2sSBNJ6bM+qNqsmsWFW+qOVlaFaDjPKpHkqtCqiQpOTYjX+Iyw+1T+sOJtOcI0IB2ZadWrTGigRMoz/QI3CR3/A7UC5qbQF/CRmG5AWtxrBwS1JL3lzaimtoRWuTAJ7OdulRzCH+MFj/yaVJxB4atCeBiAZbDTnzWgV0Zl0XfN0zs3Kcwj91bH3oeJqK2znJpy/pvRc4jtZ6iObT7qAtg/Gt1lJrQqCQHE7VZpXSSOyGF/Lu9hbVII2CR+XPZSluZdGiX/9e1kFMC7nog4SJJXxQy0WEAlN6QOihO0UJQ0iIZtN2nlAiIUXO7OdkRUtHgY9YWCZRMEgeN0GJFLKSnujF/0mm7I/1cBX3ngI2cilFYTAG5+/Y5ekoV6rUhmeCWODGKH+Zem85w+8XmfAcNMkURu9TzgkweKzfKMKWHhseFPtck6RCNts2rMAjglDSEb7oJKGbg4bLzcSkyLh5mpVIr/Gs4Ik6LIvJkimTXndJOA2FqJdmLqTkq6I4d/TZ/6yua+G8WNFeQFbCx3UnqeX/aLKisSIqF2av+YQ9Gp+T3aoMn5OV3nUF/+S9fWfQVRXYj9fxVbft6Z2bvfGq4nm5q5w0NseuYTglv0Xf+JwGVhm0AvLReiTlT1kdWhbvihOHQC3QSxfVHHpeJARFG3X49SE6aVjCwX2gSicqLdSDMIcAAOgvgiaZNg7PSeNWILuqONzSvKxEvMtGZu4Iq63ReYft944vw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB6PR03MB3062.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(366016)(1800799024)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: QzcF3Gp8M6eWhEtOfNtXA42Il3/ZuFTfdJCe07R/FM0cbqGP6Eddmz5G6cPyGlSEGdvtNlEHENFgaHJ+crexDmCKT5H7ni5laufA1hAruHuMUsY7kxcyNQWcfku5KiiqWChKhVIr96M1Q36ui7DI3ahPovDDRnY5z4OGFqcj6jokdZa2qC6t64OccYuGAxiqema1WeChvQo6K9ZTGYUFf4AE0i0of/kBVV7SSTAAVO4mwZMQugtG3pKDoQRvSHvYx2aWCJGeFo2kLnGNPNIsHx//VhCN8i6zVlANK9lWxLcXVbecHbL1BRepUjOdcSpXzUFw6jdTXehJV+PDkW70b+FdsYWiMO71CcywkJXmD+6HL//zBEr8HbNnIf6nA+MItCkhfdnnMB8SH9El3ZC7f1Ni7PORGmEuM7n3Ta3I3gMqmZ909bET0vlh2CPCgT3kpOfxJqrqQw6Q10L6gpMz+V6cUpWkS8Xh1OtYFnk4oUzzNJtA6NSD8TgOXD5Mb1pMeN3Alxir/OfY55nCAFPXN+dQ4wxCc0K7JBBaNTSpgyUzcBe3hw939hrpTPeVDI8chnPdiBHuOr0Yb4HaowigWhTvV72s/snmcrgULVGAi2V5w+BdTlauWeAgN+e3IzAM1FPHbcC29llQFM0rc9nPYY931SvH1drCJEoZr+9DhGMyLTn0rXd0vibOOhJX0uSyJUmJ3wZaDPaB8yud9NxXDZyRHghlXs+Up1osQF8Qp6b/cMXV+QtpT+DMPji6oxK3dYIzeQDujVG5G52uG64vqA3vkW1Gi4k1Su0COvjAunVGuRz/yLX82Jk/Qdx4AKWgi9g4y8KR91VQKNHCE7JmNXVJhLiP6a9W18+RNvcq02ngElXzJGVFR6cKr9qO+m+k73FCOkuXrVMbHkO6ztVXqJLq2roOp8JOn+gfHneFl/PWmIeWyAoTyK21Dcwqi5YhKEVd3CU1N1jgls3jpurCLtRws0LFlYsbwlAnvzV3gMuS85GXFG09/dlKkpUZyFWbQuJaHqu3hyh+iE07B9PGzehuBXOc7BApilyK7V5JJ0iSQZAsfD1q+h7aRJNcA79BXwl3lWhJdJIy9hFHVhwo30xjoH5nKNQ6ZgStXA727kDop6qppnp9mfDycP/BWOojMEXSwPWXY922aWXMnqeO7NkMJ+mzEqcOJiIxW0mITXjiJbaqkORUhKIGw4FNYtQHWWwm2mIHgqMGlnr7Y+0EB248uMBlPb0QlXDIFqwxPScxRNpgw0MfdTy4RFl/Or3J8G0L6+5OOUNN4F3VrBE4E4i0pjN86tYxYKMICzA2aaWYhYezI6ae9mdVhHOrYLAQuByTTXNSywSW1z7TyzyqxX65YgEWzKi6QtFcOWeTnyBfTreZ44CfDKo58aS9v5vIC+MI2GOAjJ7hnE7quEJA0kNcxa9efFO/HhSKOgcc/iuM5K0i9rb/FaSEs2AT6hwRhQpjST1pfkmJAEACiKu9Zhhoyr7AK46ay+Hi5VHm5Q7g6A7V+omAseeIPiLMLQ1bpzX3ZN/SHqth6RXYHLSaqgesnBCfRFQrMsh4tqG6q36sVHrjzO95zZcsnhDd7jrB X-OriginatorOrg: mt.com X-MS-Exchange-CrossTenant-Network-Message-Id: 42b54211-cf84-4c49-dc7b-08dd923a1866 X-MS-Exchange-CrossTenant-AuthSource: DB6PR03MB3062.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2025 16:20:37.2338 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fb4c0aee-6cd2-482f-a1a5-717e7c02496b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: zcbuanuju9DftRg0xODpTt7W5YPqPQoda/o2Mvr6aI1/DNQnEdS5T/zuzJW0d7IyCzTN9jtlaKR2vlkZl+B4EA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB6724 This settings are configurable in the device-tree: - for the input pins: input resistor, trigger edge, de-jitter filter - for the buffer: overwrite or inhibit mode for the FIFO Signed-off-by: Markus Burri --- drivers/rtc/rtc-rv8803.c | 89 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 86 insertions(+), 3 deletions(-) diff --git a/drivers/rtc/rtc-rv8803.c b/drivers/rtc/rtc-rv8803.c index d4b1e04c97de..de28f7846dd7 100644 --- a/drivers/rtc/rtc-rv8803.c +++ b/drivers/rtc/rtc-rv8803.c @@ -113,6 +113,11 @@ enum evin_trigger { both_edges = 0b10, }; +enum evin_buffer_mode { + inhibit = 0, + overwrite = 1, +}; + struct cfg_val_txt { char *txt; u8 val; @@ -163,6 +168,15 @@ static const u8 evin_flt_regs[] = { RX8901_EVIN3_FLT }; +struct tamper_cfg { + struct { + u8 pull_resistor; + u8 trigger; + u8 filter; + } evin[NO_OF_EVIN]; + u8 buffer_mode; +}; + struct rv8803_data { struct i2c_client *client; struct rtc_device *rtc; @@ -170,6 +184,7 @@ struct rv8803_data { u8 ctrl; u8 backup; u8 alarm_invalid:1; + struct tamper_cfg tamper_cfg; enum rv8803_type type; }; @@ -772,7 +787,10 @@ static ssize_t enable_store(struct device *dev, struct device_attribute *attr, c /* 3. set EVENTx pull-up edge trigger and noise filter */ for (i = 0; i < NO_OF_EVIN; ++i) { - ret = rv8803_ts_event_write_evin(i, rv8803, pull_up_1M, falling_edge, 0); + ret = rv8803_ts_event_write_evin(i, rv8803, + rv8803->tamper_cfg.evin[i].pull_resistor, + rv8803->tamper_cfg.evin[i].trigger, + rv8803->tamper_cfg.evin[i].filter); if (ret < 0) return ret; } @@ -790,10 +808,11 @@ static ssize_t enable_store(struct device *dev, struct device_attribute *attr, c } /* - * 5. set BUF1 inhibit and interrupt every 1 event + * 5. set BUF1 inhibit/overwrite mode and interrupt every 1 event * NOTE: BUF2-3 are not used in FIFO-mode */ - ret = rv8803_write_reg(client, RX8901_BUF1_CFG1, 0x01); + reg_mask = 0x01 | FIELD_PREP(BIT(6), rv8803->tamper_cfg.buffer_mode); + ret = rv8803_write_reg(client, RX8901_BUF1_CFG1, reg_mask); if (ret < 0) return ret; @@ -1091,6 +1110,66 @@ static int rx8900_trickle_charger_init(struct rv8803_data *rv8803) flags); } +static int rx8900_tamper_init(struct rv8803_data *rv8803) +{ + int i; + int err; + u8 flags; + struct device_node *of_tamper; + struct i2c_client *client = rv8803->client; + struct tamper_cfg *tamper_cfg = &rv8803->tamper_cfg; + + rv8803->tamper_cfg.buffer_mode = inhibit; + for (i = 0; i < NO_OF_EVIN; ++i) { + tamper_cfg->evin[i].pull_resistor = pull_up_1M; + tamper_cfg->evin[i].trigger = falling_edge; + tamper_cfg->evin[i].filter = 0; + } + + of_tamper = of_get_child_by_name(client->dev.of_node, "tamper"); + if (of_tamper) { + u32 node_value; + + if (of_property_read_u32(of_tamper, "buffer-mode", &node_value)) + tamper_cfg->buffer_mode = node_value; + + for (i = 0; i < NO_OF_EVIN; ++i) { + char of_evin_name[10]; + u32 evin_val[3]; + + snprintf(of_evin_name, sizeof(of_evin_name), "evin-%d", i + 1); + if (!of_property_read_u32_array(of_tamper, of_evin_name, evin_val, + ARRAY_SIZE(evin_val))) { + tamper_cfg->evin[i].pull_resistor = evin_val[0]; + tamper_cfg->evin[i].trigger = evin_val[1]; + tamper_cfg->evin[i].filter = evin_val[2]; + } + } + of_node_put(of_tamper); + } + + scoped_guard(mutex, &rv8803->flags_lock) { + err = rv8803_read_reg(client, RX8901_BUF1_CFG1); + if (err < 0) + return err; + flags = (err & ~BIT(6)) | FIELD_PREP(BIT(6), tamper_cfg->buffer_mode); + err = rv8803_write_reg(client, RX8901_BUF1_CFG1, flags); + if (err < 0) + return err; + } + + for (i = 0; i < NO_OF_EVIN; ++i) { + err = rv8803_ts_event_write_evin(i, rv8803, + tamper_cfg->evin[i].pull_resistor, + tamper_cfg->evin[i].trigger, + tamper_cfg->evin[i].filter); + if (err) + return err; + } + + return 0; +} + /* configure registers with values different than the Power-On reset defaults */ static int rv8803_regs_configure(struct rv8803_data *rv8803) { @@ -1232,6 +1311,10 @@ static int rv8803_probe(struct i2c_client *client) return err; if (rv8803->type == rx_8901) { + err = rx8900_tamper_init(rv8803); + if (err) + return err; + err = rtc_add_group(rv8803->rtc, &rv8803_rtc_sysfs_event_files); if (err) return err;