From nobody Sun Dec 14 13:49:50 2025 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2088.outbound.protection.outlook.com [40.107.20.88]) (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 0BA6B1514E4; Wed, 21 May 2025 09:06:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.20.88 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747818386; cv=fail; b=fExdchxD1gkivgsRGZ/1REuF16fm9C/5DShSUqweXC8JJAgcU94UXLHJ17izMnVczm78WV25AVG0JL/C/Id76LPvNPscoQOvwZO6HQIb4i3GOwD0kKKSXoXBpWhDzQ9k6KasIDSNmSNSV48xj9DZeQWK4B0nQ75iW1f/fRaWPp8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747818386; c=relaxed/simple; bh=JtwWCfsnLRCSle9IigsH1Mcm7KHQA6XlE2qlJZKCa28=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=KaRljedgrUFAidyy3nfBf2ZWv0pxgJTST4xWPPiFY21p0RSNsNuPoRcLFRCn/1UvHcFqODPCJnNBDvDYyNO8qgs2zdwajw7GvnE3G0LNov3+eMOv48Y0PUt74dvLJzBYi9WqGOsva/8IsBgVuailrtMIRJcLlXmY11Fen6Wur2k= 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=RSQN4GMB; arc=fail smtp.client-ip=40.107.20.88 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=mt.com header.i=@mt.com header.b="RSQN4GMB" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=spOFQ+5H+2pMPjBGHE2R7MeXmaDo8XUIbOb4YZ/ECg6rWBCFi9NwKCpIYqD+O+nB7IFPx9tH/iD2TZzqZXV2Bbcf1YagqwRdCjTWy7cV3dfQreuyhRAi4dDeQXv44XnasnN5k1I1jjEeJ7pag/U/9qspeSTexeC4WeTU8KK7cC8EpwYSp//7HhR2QmT/W+mLoNsAQg8LlHpw9gjYM4EvvWiO00wXjpyCkpKwa6R90/xIy+AZ7obCC367sKf/9+KchOD/vAhAIIqKFNv94Td6AtG/TRWyTAva22zAlUh6DLTeILyubyCzuoi9tDny3jSVDrZVu4X5x+bMxD+pMXWL4w== 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=YzlDihFAhUU4XY2+HIyfJ2/w/4BMxqC6V9DpO96ocyFy9y35kEf8IoI7aSKraBHimgXjNoZiPmNAGCK1V/BVDRLkH6QxZ6E1ZfwXhG7r2bVsMf9Wrkgy9P6rpecBh5fYFDTl4ZTzLEK1Qfluyx2mMSWt9UOogH8nxKRocvwbyRXlVs/eE2ULWP27r/8anLblp9scfnEhUSBKPIb6xUq4Nis2LzA+zagALFSjKIQjsNJViukMkl//X/ID4r9Lre5mDYM6LtcadW+1Eex5log3zdg9bHCdZylm0yGVTkO2BbHFPvofMqxDXiEdu/g/G94dt+2WOX46RJA/5e2sphn1Cw== 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=RSQN4GMB4g3ettRgFVi4aTSdhUwWZMMhfgj6njJ6aJDojdDkOwHUBqgefCf8v4IyXPxngDA81iNguyXIu572dUO16t/ZxVqZUydtP8SwTYbwxX45jfeXYdw8FjopFfgYCvujqaBcZyt26tn9qNEcN8YtFvoMbO+edgevqP206dOFnwHr+4BgqDizv4skpizZshiOi0s3C0r6t+KGYuXpdUXRXdva1kdma7XMvNEPZnNuE3AgExXEjJj8O2tWjHPLbHKoyfixab7mDeMn2qKzDNhsp0oYXlqU5H+6gKA1KM0iZScQ/7JUW2OysRK220KEnbjujdSHw1nDszjUoAdszQ== 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 AS8PR03MB8088.eurprd03.prod.outlook.com (2603:10a6:20b:443::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8769.19; Wed, 21 May 2025 09:06:21 +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; Wed, 21 May 2025 09:06:21 +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 v4 1/7] dt-bindings: rtc: add new type for epson,rx8901 Date: Wed, 21 May 2025 11:05:46 +0200 Message-Id: <20250521090552.3173-2-markus.burri@mt.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250521090552.3173-1-markus.burri@mt.com> References: <20250521090552.3173-1-markus.burri@mt.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: ZR0P278CA0173.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:45::8) To DB6PR03MB3062.eurprd03.prod.outlook.com (2603:10a6:6:36::19) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB6PR03MB3062:EE_|AS8PR03MB8088:EE_ X-MS-Office365-Filtering-Correlation-Id: 1d5c0886-2c78-4b8e-bb5e-08dd9846c123 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|52116014|7416014|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?SzM/22fPcN1zK6/46+0hpHOwq2c7e4PYW5GaRansaHWpCvHOFfc3Hapacs14?= =?us-ascii?Q?MEqhETJnq4CxUpvsX9hTNiDplKsQ9zhUUqX91kEk6W6qOvLbqBsrKLYxY2TD?= =?us-ascii?Q?s6kv+Nvx69Yu+JAndV2FNMKY5Lx935r+J5TFbXYx/f5hT8oSi25Cj2Vtwbmh?= =?us-ascii?Q?SZ6DvegG+DLq3tl0SxmDhshVgRCj9d+eJoI5IofwRxNzKY70sYU3niUVSZOl?= =?us-ascii?Q?wHG7KU0mhFfLnSB6sQkE6E9UupWojy6YQTCHDnqpA9BiBz/bxLd3fAnLh9KT?= =?us-ascii?Q?cl8XXazmxdc6DoT299rRdfiYimFFmw1UE0odOpokYd1tKUVsWUDQTTILwDay?= =?us-ascii?Q?mxSrvzva1NYQlUe3Xh/NcrUJ3f4phw6Ap99+DmmU3MDAXctW/RE7cIJzhTGR?= =?us-ascii?Q?1+ms+ebMchemqt/sR//eghJnzRs9+7f24wu/No+nkQj3Q4cJUtWzLwHzbOpb?= =?us-ascii?Q?ms2Q4ilhZCP3tXGhmmN2QhApljvN4vb9S2N7nzYzu6bbFporm6izrIj78z4g?= =?us-ascii?Q?MoSoLOGAPP2oPIpHmsQyti+t/OmRHeLjmh/kxsYtXCV3ixomRRXTo1uNwZOg?= =?us-ascii?Q?yv+8S+Ljtp6V8dum0++3PCYd/7Uy3z5CmGNkguyyq7DuN0rnTulXRjYUJRfc?= =?us-ascii?Q?dU66HHh2PH2wWE8casLRUZKUyxvKZeJUJQxDCnahnE++A1kPZodMujBLcPgl?= =?us-ascii?Q?OC9og60cmQCGIlv7oOGeOlOpjHJ+JEcj6hujS7XPht3xmPmqJ7ysab0aDh4w?= =?us-ascii?Q?De50HDYONtIcxH3kPLxIaBMvCOXWbfNlIFsHyctqc8Ba5ItOTjuaLTdjjBJQ?= =?us-ascii?Q?UamiHaQqmjL7g+RN/EqAqPT225G/BIfhZSqb4bDX2lCLOfTdmZPcXroDAs8j?= =?us-ascii?Q?zGmG9LbO0p5xn282nLuAjmpeGuOI0z5ymj6xT3FR3q3/OC21NgEawvjQ/cuT?= =?us-ascii?Q?imrMKzZdu1/VfO6fcXEKVQAw9hZivesvMKH/yAk1oHm1d0GZWZdKNDs//zBx?= =?us-ascii?Q?zaFNykQ0/IwQxrxfma3eUxME39ZAwtH0psw03hEvkTdY0MMfrDknzcdi7ll1?= =?us-ascii?Q?RXb/9GDApXTftMx8MjqiWKAKlX+HeOZW9zYorfe9n00VAa3yJEkj48o2G3NE?= =?us-ascii?Q?o/g/LG6hASoeJjS5bZaMJifjLuzMhVd+u6ryIh0NJ4iXNgp4XNUqjPX+AaUG?= =?us-ascii?Q?hROcqq2vNDqXR4V4aG4CODufBfNJT0yNMJkmMU8EJLJ1zzeQ7A5SGbArUHXY?= =?us-ascii?Q?yK/fj0fKCSbzMjV9Grk2AYDyUNbtOzKMuvjWUHDmCLIigd+4ZhiygtVjgHnd?= =?us-ascii?Q?9VRSIWRq/A+TigmiIrUVf2SxCf9ah9nuUkldU/ujueT9Ttk9CFUw8XajXTzT?= =?us-ascii?Q?9AHJb7VqW6F3S8/dAqDnwczsoYiXQ5OV6GN7T634bf88qBiFBsecdljKUn0L?= =?us-ascii?Q?iJgumMMF/G6PXklOTA5vpnCiD56jP8pBAhPjZz18Aq+2MwdOqUmLGA=3D=3D?= 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)(1800799024)(366016)(376014)(52116014)(7416014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ADc/rF6zUlLq6ZiiKk2j0cahC7Mjhun8D80oE41Q6zMAGbyS+5FGtM5IRmjG?= =?us-ascii?Q?NxInjjJgXZqsnVTF3xdLs7v7sCGix9Fk0a/XPXEri3mgGWn3WnEV5CiRk2lm?= =?us-ascii?Q?vMOsTYK9+lcVFB+qvLG7GqYt50a+PvbNkCMR3OpPlg9SMGOiBBbNU3daUo6e?= =?us-ascii?Q?4KQg4JgSe4QuqOiKMb23D6xX+hMdgJbSEarIDSVjO52xQ4bIPLe5qZCPDQh+?= =?us-ascii?Q?IsrrDQvXIgYcGj1ExgTR6c/3ex2wCRYxt5wbQZpS5VsjwYD880OBvot/ckVw?= =?us-ascii?Q?9Y5edU9RI7wsd2crydh/NSac3OBpe/+euhlhCwGUqUjmE2+JItA+/CLQEBmY?= =?us-ascii?Q?qKgtSM1opKnsfCaM5E30UD4rJJ1uzedCMKJ7n+M1MSaiD+ldCWtkTrJp5JCT?= =?us-ascii?Q?SUXcoEdBo1TJj7asS4kwPlaockucJsn8/zHhFzIpSgVbbg4tgvPYdt1voCG4?= =?us-ascii?Q?bvD217YiEzqVZmuR0/ZVAl75Xox5sXEet5HSwJKTjgGXI2D2taHy+LaJhD3Z?= =?us-ascii?Q?CPSALKqLhc6ARxmslA17GTC+GZZNnERtSe6PqkJUQKE2p8W2H00emDE8Pr1K?= =?us-ascii?Q?wPmLS07IPJ7x6yNqTAPFWqkgmq1h0C6tEsx09ynCOieCgYtM7Jv4ZcVJV/4E?= =?us-ascii?Q?UbvFydFwS+evJq9mZ0rZVJj//Xndkx+ik9NzoVZd3UOzyXBnUh2T4zVnNQGi?= =?us-ascii?Q?2Wzhqc/exVtPo1ZkuWg3JOuTjEc27uf5ZEW1PoDiGVngqAXjUZllXRQN0M4c?= =?us-ascii?Q?0Xw+eYYKcgJsm832AjIzkRoGLE+agJVbD325OBn6hoyN5MG0w+FWGDpeKMt9?= =?us-ascii?Q?DFcHFBlaltnhk95SWkZIDlJTOCmO2l1kasBFYWr9+5U12T/QvE/KbuCSXZkP?= =?us-ascii?Q?WBggvs1eSbUU5SDgQEzlDeFR1+QHldLNtFB27kix3md8sgKQSNmtW8OFFOqK?= =?us-ascii?Q?t0QcQQKc/CX2V4lukJfY8wr2keF90qYE3HVMLI0vtU7fv7CtFNQt2W+wjAn0?= =?us-ascii?Q?cBqHWLQIj3zwfJM02SQ/5we+vmvl387geI0V9r48Ko7SCMr8eldFognil3TY?= =?us-ascii?Q?asAAnKckSowq25HrmN2QSlRsyvOLgYW+WzhztXxk9IKguXjIwpjCh4GG6FR/?= =?us-ascii?Q?9uMOZK37cM3YuvuerLwG5PlEVElF7C00kX9vFzufEypIvYXlb6z0DU+lkbfo?= =?us-ascii?Q?QDEzd99kpfyULK+5NL81v4HVFUCHWTBGvCiA2bKbhZ/xiHBJ4Ah1SKxJOL9u?= =?us-ascii?Q?tp2Pvx9ThS9yRpkiQ+46fST0pYX4WNFGy9oD9gpEU2idOv4Uqex3JZmR64jS?= =?us-ascii?Q?pa6TCLopYIaLiTR+Xa7+eRwlpwCBUZiB6aosQb1nwmrhZZsIdmbICcJbAqPS?= =?us-ascii?Q?DXvqbyVDgOP+efq61YkcODIm48+SZuH8mjTsQFJcNc1HE0sdBrNwQyubEeun?= =?us-ascii?Q?2kNdNxwkEoQ9CgXwFT6llzJ4+JQn2GFx4vngU4qQQtWmK4NsTDyUGPyr5WO/?= =?us-ascii?Q?yOh2jMtJ+hTghf4QgjZlsy1RDyWHpF1L0eiZBubZCe/pUXORBqFm0oCcXKsd?= =?us-ascii?Q?TOFUGAyCg3FxQnW72XxXivKFQw+5V6Khx+lksgqU?= X-OriginatorOrg: mt.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1d5c0886-2c78-4b8e-bb5e-08dd9846c123 X-MS-Exchange-CrossTenant-AuthSource: DB6PR03MB3062.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2025 09:06:21.2997 (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: Ng+Bi48oZIF/BES7JIew+qlRnOQXd2ZHwaNz1HLohJ26zFBc+83h6vBruNcwPwkClVQ7Llkc+Rsg+ohB9MtZRw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB8088 Content-Type: text/plain; charset="utf-8" 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/Docu= mentation/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 =20 reg: --=20 2.39.5 From nobody Sun Dec 14 13:49:50 2025 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2045.outbound.protection.outlook.com [40.107.21.45]) (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 9679C1514E4; Wed, 21 May 2025 09:06:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.21.45 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747818394; cv=fail; b=RHdEzD5K1rRpVdeO/2T3yq/9FZ7oCMQD3EJQsW2IZbwzRHGN6nzfm3ScbmiemS5HVCh0BeQOPLsrjOY4yy3lGY8ZkYq/F3qmBomYUoJR+eUXLxumh2aS0bfbRGxlirb2hQ4AalrnKs/DOQqRRCml+pAZ1TZv52gDeHoxgkm5sxc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747818394; c=relaxed/simple; bh=24WSwZ9HziFncgfmEHdK+CJPI626z4TUWeFg7imzPpU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=lYZm+mkDOe1RqmielfI+2xDyGVN0a3B3HpJ6jnjV0aMW1U3yK2acWO2XSPXEyl401elA5qN9Ud/L7iDyyt3c6DQgq4XQnlABHh9mY8epCMTyp1Gw8qUO2lFgnNxUkAFzMvOvGEhLPJdRHNWfWFNi8cpqeta0OecHNGY0vFgpQzs= 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=W8ren/zO; arc=fail smtp.client-ip=40.107.21.45 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=mt.com header.i=@mt.com header.b="W8ren/zO" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=hsX+hFAfL8MymrvlyU/w5OxUB6ARLTsnrIwf4Kp9BqzysCm0EYH5UME1H8Hx9Z2RO43WlK6kqOxvpxYN7MxnvIsn1MFsjgW/YyMLUEV6vmCtX/GtEpmOfFXXRoGpE/eJdVvc0CQdCEy1P7tD9XIT7vLdF4xeJYiJdSHu3s2aSDT9SpCftXV0/3triSCRWHAODAKrFYF7gAHXO5N1oZlfcmDIQbY88xzol54Gs80In+ofYPeFBpYHJK7U4LPd8oyCkmmqewJJc7XwfBPtoY/fMCM/zlnlQYGZ4UIquO4lqB98P20nGS7f07VXo0wp6F4drkumIISreitL4UAlhJaDEw== 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=ssyxVJVFvNU1DHKCUOQ3YdOOY5cO8v5KHAXNfEpWGhRymMHUQ1YVKYps+TT2GkdeZfENRY+Zf4DvBXbqT/HTaFEOl/d6K5nn64aJRK2XOyI6sjYmb/IPviZpKnzlHR8pzPIbKzLT7GszV67TTx5cSq56UTprl4+WIemRti5blX6kxIxDqFo8grsFd9hGQttzJIqUjWo7QNvw8SZIZHq5xWkrC4vXdelI2xOUqohqLTfu5u7Eq0E6QjVHtxyOm26c3W/JfVCLDeKh8SeIIXeZKhVguNEwgAw5WttmkO7XaVQ7xyZPg0SaQ9js4Qi5hwRAIByRXl4cYpEwBS7Y+6Tqzw== 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=W8ren/zObw5PV48tZ77vh4nhQKGyKP9xPo5iHpYSH0q6dlWUqxC37LHkKOdVACd/5IxqYeNOgwYVL08+IEQKXED4y4w28AGUEXX7eD9ZAynPHVImn9NnFetIF0N97GP79Tj1myLOOVChV02Lw6vuu8MqC5ITDvlQHhhz2yefgxg9cXHZEJcFhF4v8C16nIlRvC+IhVXUYyJoQGxpffw1pV81TduvwOk7v/Isd11JVcq0sVCH0HTJY0PFUM7rRtpm6Jv6uCOq1mn79PbNTwIMu2hiKv5VbsTCFQxIvkrN5NkacV+iTZs58ZodCuK5foDGpazu3+GzyBfwDclUoTJ3EA== 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 AS8PR03MB8088.eurprd03.prod.outlook.com (2603:10a6:20b:443::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8769.19; Wed, 21 May 2025 09:06:29 +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; Wed, 21 May 2025 09:06:29 +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 v4 2/7] rtc-rv8803: add new type for rv8901 Date: Wed, 21 May 2025 11:05:47 +0200 Message-Id: <20250521090552.3173-3-markus.burri@mt.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250521090552.3173-1-markus.burri@mt.com> References: <20250521090552.3173-1-markus.burri@mt.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: ZR0P278CA0073.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:22::6) To DB6PR03MB3062.eurprd03.prod.outlook.com (2603:10a6:6:36::19) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB6PR03MB3062:EE_|AS8PR03MB8088:EE_ X-MS-Office365-Filtering-Correlation-Id: 183ff08c-9d8c-442a-302e-08dd9846c61b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|52116014|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?BzMiGE1pZPwEvCxcLC4ZF6qYAWUjW3qdXmC6YZlVDruWZgWIiXybNFXBOY4z?= =?us-ascii?Q?vPeT0bECCc6Ay1inxqfs0q3n147S6T4v5GwS/y3Zm8rTY9HcsjqVxBviDXjh?= =?us-ascii?Q?B/XpcxixDh5ibetRJ/9G16pPkZHmV59GxRfFSPNTrgqPvvKFllKOfPr6l5/5?= =?us-ascii?Q?0HFeaiWfnE6gw6RGpcf6CIb1l8AGAihsvbmwgeZddgsDDgJOhWcCoPYTB9Ki?= =?us-ascii?Q?dZU/wahETomdAkOsJ9KbDBHK4XK7DmHCTWAR/pKbX05yzW6lQ/mKyATm92N3?= =?us-ascii?Q?slRenhvBetlAzJkmFLamp3dmswJsc2SSTcxPH76XPR9nA/3+7rmAQnpGsOh6?= =?us-ascii?Q?mQc0d4Z88G5mMO6eIBit8MNXifMBJYB81zzMFZkZ6bnNkWwFVLqu1CETmDpc?= =?us-ascii?Q?7M68o9amQGmZ6pRcQTbyOdXzL1q332nOSaMZ3XUw5h+KflLPZ6wKNEeP4y+4?= =?us-ascii?Q?EQ5OlRwq+wQ5XQGWbBtF/Kv22D6aHtCFhmv3PTmZdyYYQZomx8My3NmWkzsb?= =?us-ascii?Q?ljN4XqwAaYHousOjQ4C34IlW1Ypto5TUSh+UBkK/7ZIvHh0VDyoqEXubseWi?= =?us-ascii?Q?KQGfz8YVS5HxLkZEpJNPxYpsde8peKC4y4IRnC5XQTNZIyFBRGD+tsYutWyb?= =?us-ascii?Q?aT26ZnprIqKLGUk1ckVB7l0+IoJNvyt/Vm88fTysqud/Mwd3nnwgUAr4vGo7?= =?us-ascii?Q?M/eh7FDVVuEgYm4nPJGsVbOAr8RsWDJckQ1CK7KeV8vQJqPaUtPv/k4fH0S8?= =?us-ascii?Q?asOd9VH/YAggrzpsybMUtsLwlqaa6/wQd/D93nO3A433f333PT1Taoz9Ads5?= =?us-ascii?Q?CZoLks6DwixAAJTaGUOozCvzxOOvueobpkNMPbt9dGk9jBrnxIZjobet0LJn?= =?us-ascii?Q?SdbO7Km01FDyHwEPE70rgak+jprpvpJ3h21Cxk4fzLqc1FNQZaqUWRr5FCy9?= =?us-ascii?Q?cLhnC3QAB7c2zMZW7yMJMuuG4PqryMLLt6DFwn6T+dTVusKbTZX7MFaDSkQC?= =?us-ascii?Q?1Z8UFVrlk8yGDWp6AfS7A3QdwAxCnsff/t2G1UOOtDcZUQZb+YG5+5WjxxQk?= =?us-ascii?Q?hlf5mwQl8HUe3eeE77C1Fj6tHuNmpm1aZvlZRKG2I0ejequ/yJ0/7v1DJM2w?= =?us-ascii?Q?N9z28+Jsfi8id0MgiR0kLOv/Hub6MTw8oWTUyMKMmJFqM2TUtMei46+G/Qdg?= =?us-ascii?Q?9JujUENoOshgHn09pJKt5VaDHWYQX1ft3BQMeM+5DmlmQc70AQw7qjJfV0tA?= =?us-ascii?Q?aBIOXE67ZVFbp5Z9+8lENlOfbya5Xcir9SC9JVjK0rz59riZ6sWt1uHHjjKx?= =?us-ascii?Q?rrUWA4cMTC7Dd63pBgQII5tvXzCmIWrQ8GDtmN6UDjTonrdvVXFZwKrPB0jN?= =?us-ascii?Q?3/wasl9VfOmUaG9QqfenqICnAmT6J4gvDSU1yiBOXE1NrK5ENtCziB+aoheo?= =?us-ascii?Q?oC/9/l+oLIYC49vNFjlgDYa2ldOnLLxCENAEN/UCTUY/mMv6gWqq/w=3D=3D?= 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)(1800799024)(366016)(376014)(52116014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Q+3R0hexV/yQfChC4My6k48zQrQ8wAI+rMu9bIFBgkAbBs4PLtKmjABbs8a6?= =?us-ascii?Q?EFgDiOPvbcgL1P/4j7OugbPTj5WVysQvAW7gMocIJPdSFP8pbwJqSxsAxgoI?= =?us-ascii?Q?4dveBlISjViHATewqKc5lENNEElLVQFTox7g4OOWJNwrtu/2ha7vqs6w/5lc?= =?us-ascii?Q?fDIw7zmO6Dx6Tv7mWEAPiJJOQ0KRJ9YyzahZ77twLH/llBvgWcMWUD0Ppk6p?= =?us-ascii?Q?ADwp+KxY41joWVi0WLwSf4dnWAfSfPhr3/x3gQctIDw+DKaVcH2dChtyHBsA?= =?us-ascii?Q?JOnj+rwGSQOWyFlXSJe9pjv8OBBtvBNeUrUBUoBGdrr1zAS26vsDOmapz/rd?= =?us-ascii?Q?o+jqg7zPQmH3BZ0u0B+ssuORRukymJunUuu6e8Jdiq8HUCKA8O/LUSpRWaSI?= =?us-ascii?Q?6fjTpf0W0MbNESGSBUawcDviM3FixOiieYnewp054efiPy7BggsvPpoZGY7O?= =?us-ascii?Q?h6quKhPgv1t/iSEgk3IJXBP0LFbUs5gPqS4pB/drzmOUYLEjWlQTDaVq9Lvk?= =?us-ascii?Q?sU6We0d3htxqnh+Ni9otZYyQq8IDRcgz62cHbJSjMtUt3l0/XV/nwUl0CmY2?= =?us-ascii?Q?QPp4ZXN/yiuPs3nMWrdA5AC3m+XGPsdmvdEaoSJSVmMDZXLaDBXw89AFiP66?= =?us-ascii?Q?A12+e+XBsFuGCrw1UXRk/T62HAb2mR98MnlGRNT5YrpfwVDswPGi/FcgyIiB?= =?us-ascii?Q?FhcjdAlQtmaljTdQ8q9XyZVxLVxxaTkmbeAUzkZpvfbR0sAmnKndycLT+9UM?= =?us-ascii?Q?LU5280rC73kIVcx9wWpbgLrFhddY36cQS6bb5Ulr4gkcYEnnz8NoRZgej8fM?= =?us-ascii?Q?Umnp6UTmf4spr9mmtj7thAkb+6xoSkz6Zt6hofcJz8K4yK+/Af4pPVrhx12O?= =?us-ascii?Q?gfCfNl6rlv2WlaPyBUzeUg/J8KhvHnSg29Ol0vILWqR2XPKsO2xlbu8TW4VU?= =?us-ascii?Q?VhlL5z0cmJRyzKtBNzfJbsM5UDYDZHpsbmRLS0ozECpe5zzgmTkm/2sxFIXZ?= =?us-ascii?Q?JPvgrj+LR08DQYZ2rTtIrt8ooJlfVhURdPKVw/kpFePkB2wqqPY4U1Y8ep1T?= =?us-ascii?Q?f3Bp8YP9N8adBbgVr3TlGtyyeQc/QFKbkYEB6XvJvCGCyw+ghtTXuASh+w/8?= =?us-ascii?Q?NehodLNkjeWuhBXaueljjmVnQO/sF7pSmMC2i0pdcVWVbtzRuTHE5gz/BWHK?= =?us-ascii?Q?64Kzeb5WM5gYXljOpChD7Rh1ZEU636W1HAKkEDnA2CecNWVZSWYuoFrbZ0Y3?= =?us-ascii?Q?YbrZUr1iNJVVw4lcK5NUsvIaZYbHIBLfT6O+kC1BDuIfEiHxo8whsSxcmZ5e?= =?us-ascii?Q?p0N4uWtF9lgBl39u32FWGRQzSPrEQBB3xW2ZnJUvo+YtCzHzJtXQ6AUWgFhn?= =?us-ascii?Q?fozU95sVG8F/NEWQ8aOGmqG45Bh773imhbmJBWCOutz3I7K7kfZzF2xXXg6D?= =?us-ascii?Q?Beq6/OXu04+qfRZB+8XPKyw9qOwRXCTpro77vgZgKas1+JrWP2vDynk4GIQR?= =?us-ascii?Q?SBRMjGEZVxJxEK8T7AgVBSix3ZrJle/hW+q69KtP7WyhKWn7guslH87CL7yT?= =?us-ascii?Q?k/VUFsmf0FayiyJHMDMqjdDI7s5laJgl2RxD50HK?= X-OriginatorOrg: mt.com X-MS-Exchange-CrossTenant-Network-Message-Id: 183ff08c-9d8c-442a-302e-08dd9846c61b X-MS-Exchange-CrossTenant-AuthSource: DB6PR03MB3062.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2025 09:06:29.6458 (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: 1GXjxtl1qx1kxEdeXiW8rTZCE5cFmZC0+3UUGcaTum11PoPogEqm4lX2SXeHfB3dgqsJp3WmKTvaIba5cuyFnw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB8088 Content-Type: text/plain; charset="utf-8" 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, }; =20 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 =3D=3D rx_8803 || rv8803->type =3D=3D rx_8900) { + if (full || rv8803->type =3D=3D rx_8803 || rv8803->type =3D=3D rx_8900 || + rv8803->type =3D=3D rx_8901) { int ret =3D rv8803_regs_init(rv8803); if (ret) return ret; @@ -635,6 +637,7 @@ static const struct i2c_device_id rv8803_id[] =3D { { "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[] =3D { .compatible =3D "epson,rx8900", .data =3D (void *)rx_8900 }, + { + .compatible =3D "epson,rx8901", + .data =3D (void *)rx_8901 + }, { } }; MODULE_DEVICE_TABLE(of, rv8803_of_match); --=20 2.39.5 From nobody Sun Dec 14 13:49:50 2025 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2053.outbound.protection.outlook.com [40.107.22.53]) (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 CB5DB238D3A; Wed, 21 May 2025 09:06:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.22.53 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747818408; cv=fail; b=FweqZYM7hR3dRwoTp1XxStBW8vtuY33/lqMxDdfsZX4tHYEsmTIfEeI6AGU7MygYonPT7rP6AmlDu8azhNa5TjbVTNrYlWI9ZNlwCjWsCUYI0HCTYViy7PmcDFznJFcvSoOVPihocNKdZCNvF+jdTEIoMg0uNpO0SIUyhiDk9hU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747818408; c=relaxed/simple; bh=SzAa1zhmlr/TLycmHwE+rKqnbzteks96QW5pKfe/Hyo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=D2kb+DK69u9QIFHbVkawnpfMA6oN+ChJd3zfgbUnrJpMwk45/JU6vMTES1ftJLwlsrfGfD0WO4cuiC07YavJVe7/NVWvYPHkceX7NHn2YJQlPg+aEkcCfi/+n9Mv5WnvliblEonluPsYaTPtG4/q2KGUTy0/7vihSGuiRoXK5mQ= 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=T5rKyF5a; arc=fail smtp.client-ip=40.107.22.53 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=mt.com header.i=@mt.com header.b="T5rKyF5a" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Bl8xo+narxf0eQ7W0KA7P2I6iG78z9VrTt97pFQSdsUJFHhVK15lZZxqvWIDBISr7O1CE0oWehTNnKzPB7pDL7bq71K9vpcHQbGhCmXL506fL6bEs4XI3BdtetcXjuXyHAQbzzoPW42oTKpKqeMYq0Y5ywOnjxliDvnBjer7Rr//gh7ZeK6t30eQL7lFxZR94nqfALwjDlpg1hCfn0HtiY5HfZM1NAFh4GW0/W60D4Guqbfo3rKRct3ChgMIywL9uSzNIv8D7yVPACDugMn5dH937Jj0brhJtCqLE0yxeB6yJNCZXrR0cUxNdiMBygfXb2JIGgqiSTOwatERpDCPLg== 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=Xhsa9n3P6opxCU0Uj91w9kkrP8yAgn7lIfdDu4qlM80=; b=QsbiDorX5pd8IXeDhDYuWN8Imeu8xSbSM6biSmrVcNL55dbSKx6l1rlfAv1OEBd6DSmc1XwgJXlWrySxWpLwk1+zK6Bajt09gc9JtSbrCxYrb8mO9sUXp/sEjTpgtd729Rcx/4rzjcIXLJju3cAlnR70p2zFcH1O5ijD5hIFM/amI3Su3cjenb+9MIL2b7hPOWtrXUWC754zq4sSC+DcJ3p5KKLfj2jepiiofCcHH3ibiwa9QaqrJxkSboaTjmHzb1ZTgFDbfdnY6S6IiEaF8XjQW0XQSP7P6s//bRWd6+0hiBJ0Bs0ZAXP5IQ62mtBPmsbrgTjwgsg4jCzcI0TWZg== 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=Xhsa9n3P6opxCU0Uj91w9kkrP8yAgn7lIfdDu4qlM80=; b=T5rKyF5aM0t+H3XBfsvcZARwi+2IYxNxS5AhyV8Y+c/NRKGotFKGcwUa6E9ItIoTKovR2h8V0yluJDhP5niTaJpQC4sIdxYh5j+5GHAmC4Hnk2McW5IJM1TiKIGfNOCWhVeJ0WTBZOXmpOttDH+44SWIGYXAhBi2f3MvY41k02xWNqcfq6ArMeHtCnk4FkNQjr7mio7WZ7JvZx/I8C/X6d6R5souFj3XQrX4n/95jWu5bHgBVIQNlLGeGGnG2uIDo0jNMRPyjsltqp7kGxzSlC78V0I4dGGA/Brw+LHkZLLgs0sONahRrXJRD3atFVB5mEF2Tj5KWjEoKRtsIHow+g== 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 AS8PR03MB8088.eurprd03.prod.outlook.com (2603:10a6:20b:443::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8769.19; Wed, 21 May 2025 09:06:41 +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; Wed, 21 May 2025 09:06:39 +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 v4 3/7] rtc-rv8803: add tamper function to sysfs for rv8901 Date: Wed, 21 May 2025 11:05:48 +0200 Message-Id: <20250521090552.3173-4-markus.burri@mt.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250521090552.3173-1-markus.burri@mt.com> References: <20250521090552.3173-1-markus.burri@mt.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MI1P293CA0017.ITAP293.PROD.OUTLOOK.COM (2603:10a6:290:3::13) To DB6PR03MB3062.eurprd03.prod.outlook.com (2603:10a6:6:36::19) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB6PR03MB3062:EE_|AS8PR03MB8088:EE_ X-MS-Office365-Filtering-Correlation-Id: 42e78260-e86a-4d2e-9ec0-08dd9846cbab X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|52116014|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?k1EKuKH+6es7FZmS+/6AZOYKwYEqpcaa29Tn5cINKPWutS50Oe7Pse08/Yii?= =?us-ascii?Q?hB6iMBqa8+iTENVnTkAhTx1qJwnO5A5K/GGCGai5VhgE9JuvaSKUS4ricbtw?= =?us-ascii?Q?ZOjGOoDpW0DYNmTPv5RZpI53hPw6lWq4LOFOnLt4fNSbWxU632iQvhhqL2SY?= =?us-ascii?Q?x5Mi29MetMAox7JN/ECrYvXSzrc2NIoPvp6lX7v4kuCMqoH7b6lmRPzJm+1g?= =?us-ascii?Q?E+ELTiSedH5lSFrSwz5UQy1O5lGQoQQHyeudNruxN5qwuxkU+sCluAUfYq4i?= =?us-ascii?Q?8DXTw3ERq7yvR5aRVU37vYvPYs0Zq/lOynuqbF9qBWPFOY8Bo+QUjmwDayNX?= =?us-ascii?Q?b665YtrJDY44FH63H6KHihI8Z20yKot3TvNAjye1fvVzdGK2eT19WQdvWt54?= =?us-ascii?Q?m/EPGS0IT6YlaR7AQ6Q1I6pfE8cw2Ai/3mFljrMI0zTQB0YgTfBu5zHWomjO?= =?us-ascii?Q?xzAbK9koM8ILDdjdLXGpA/RrPWkDxdumKeZ8wiftGmHJbHY1r9PGCU6wg7EY?= =?us-ascii?Q?MpkaNSwxzJomhjcQeekgdaTtG+NQCMRoPBcwakdG1HkSpR3NQsRCPGtBnFNC?= =?us-ascii?Q?DgLU3tal29c86H5PCbNWT46fNWosRPL+jkS7G0gm9UKmNT5xuv0A2wJ6y4Wy?= =?us-ascii?Q?7nRqI4fsdPMZufOQQ/zNj4ckz9ZxG0Jilil+YH0Qq27Iwkjka6Q4kuGR2XQr?= =?us-ascii?Q?tQFYzq6wzKWsJh3ahMtAObpGssvINegBVBWQFKpgMcW7qeHxxz9K4gG4icRl?= =?us-ascii?Q?6+Latqt0kNck2jiVNcx0vXbLtNjAt8ncvaMVkTgDjaIfmXBXG2sE+VEcHDps?= =?us-ascii?Q?TmpC4iEc2npVqfBv5RBBppJuwk6enJOru9X9MH9wdEEyLQnmrP+xM/NUJ05E?= =?us-ascii?Q?kwoYyCyxBU+glMkZCz/WViA85Usc0gWqMYlkrw1U5xW0YGd8tGBVVVOXAQ7J?= =?us-ascii?Q?CnROBk9L39zZvxAkjv2Tx2Odo7I54psH17oWBYX63sxmjquR5lvHWPVF04aL?= =?us-ascii?Q?ysIjpC+893U05I9FBphnjfVGRcPKlbM0EuxOUn3BXgdpHiJrq/6sQXyhjt6v?= =?us-ascii?Q?J5Wdn1z9//qYI0yCHVt/ARphgNLsu6/3c3OfLeAWgC7ydWgRiIIdud3PGFUj?= =?us-ascii?Q?MKTCLwFP4asRjHFpTvCdGBUVc6BzpHztnmHFguRenlYaoWRNWjFCzes14X04?= =?us-ascii?Q?JPesA052biuOV3DMN6GVxfSzxHMh4W1dQRzJofXwECkqHh2hA6ftqqh8K8q1?= =?us-ascii?Q?v1OVCcr1QaV7GndmJHpigYL24FWFAuwpxlq8dWyDomxyXACM1UIEGmP2Zpuc?= =?us-ascii?Q?MHYX3KsoX5K3OOO/yFSJ2b0aFjequww2cIgLeoKEA6WiizctRWdiFzLtShW0?= =?us-ascii?Q?hFlyjao5JfLnGMcxiLaUvBewVXJM17gykdVpE04ZZ3IDrPySgqPCkv/sraxQ?= =?us-ascii?Q?wGJUuHEG1DZ4R9ozkj3qdWSg5tFqDwgeBRsAZ+HiNGbAx5Gbmx2Pig=3D=3D?= 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)(1800799024)(366016)(376014)(52116014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?39SM1xoHVjEdh3xH7M7QwzmUDzL/U3xO3F4bvcwko1QHfz9SBYetDvq0/sXQ?= =?us-ascii?Q?ZHliOOeWLaScL7mrJKZSDcZS2TJ72i1LX2IKGWozNFIGNNn1I2xUO+rVy39Q?= =?us-ascii?Q?E3zqRTwGNtLVOqA4fPijm8vd5HgToBfV4SJtfnUpy5fY9DXfklvc7pw19MXQ?= =?us-ascii?Q?zQYeZr4eSi+MqbCpH45a8G9s9kjOilYgVwYvgkNgTs8BynaqN6Ab94ORTMiL?= =?us-ascii?Q?GphApQcf7xstj2atkjuOV4sZ5Z0rXaqOoJEo//RF/HPJOo4BsbYopBvk/7/H?= =?us-ascii?Q?r2yGqseWPXCf0+SwP/c90TIrrGyH9AnyjD5ZP33zTMC3qNih8adDeKbbszlK?= =?us-ascii?Q?Su5BpweYr5eO0JL1hRZYoWESNfeHhO3hSKH+HI7vdfZWkmNiIfIEC59irLHM?= =?us-ascii?Q?C8IWWQmB1IenwdmkIypCIIyolIWOudIAMunwBvVffyMjMHL+TYc/6vFkwQgY?= =?us-ascii?Q?XLFpmek6pa59cxfPbj1tGXuXpNSZ8SGomyB6KUC0E1l/n7nGWotbncgxlKa+?= =?us-ascii?Q?BAhuQhZAEL73IPgkpUzfJtna0Dhi6lF61daVlxcM4pjAQWRNuYlKaRYFct1h?= =?us-ascii?Q?UhwmgCPtglDPXRRX0LjoLyUUTz/2ILbmmkiTdaLrQ+/E2XVqKmEpsx2vYceB?= =?us-ascii?Q?HHy6ucCU06UJNw0SXWU3i3MpLoD6VPVIZQWVDSXw4fJBuWe6flUs9i8255v7?= =?us-ascii?Q?zCYoBdniLG8qF/7PjtlevMKoZrpQPGjECXcWJmoQ8fLa7IhP5kRAAsxfgiPl?= =?us-ascii?Q?hNm8pAhrho87ouOPf+ZC2/NS3k3Oh84w51o5pUlF52/xP/1wT6dEaBMNN3m4?= =?us-ascii?Q?QX6q3Zdmtb/XcD2QcM1EI2yc1QVKu1vooyHO97cU49mdM1gj1DGgmP7phVso?= =?us-ascii?Q?utG1UHEq53pgYGIqheiaMeye5LRwbxSP32fGAOZg8/Aj+ucBhmvopwP6USQD?= =?us-ascii?Q?DWxwtq+ZYXdiSUeyN0g1r8xrZGlxbv2s9zJMqzopwSp01dcit8oiKhfVHma2?= =?us-ascii?Q?Aul82/yS4KjL/aIeD5366TdWYZ3np7LQm5MeDEA8fefcx+sRHLNU7jwpXKYV?= =?us-ascii?Q?D6G3dYqHIU9coAwRbVNgA33/jnxwykmm/wfNsU/6RwF3Z/9waUNwBDAP7MBI?= =?us-ascii?Q?FVeHe5Nc+vzrASTDX9QF9Kjs+6in+wHg5vKpaylPkS2LqejueU7CXPO2S5qS?= =?us-ascii?Q?yNTXYCTqUFLKpys2v6RXc82EZ7ZC6bYBpOxoxg7d1HWt+7yUC91nunOYUYKK?= =?us-ascii?Q?UCZq26tPdTtfn3AEtfwuHDzO3KZG8XRWubyxZZWnvo8/QnwqU3T6ohAtdOby?= =?us-ascii?Q?AXTZImITwbIleZoJpKhs5nBWxF0xzad9XqKqFR8oBiTxBuTGIMso/UPxeA10?= =?us-ascii?Q?NYcbr03gkJRQq6rQzXCIUQZqcgbI+vmp3P+6jhYPFRGzZXOXYumpOCQUJ0Lj?= =?us-ascii?Q?rhKixQ0mgTrADjEFnj0184XVHS2XNrym9jpD++ffM7uXArKf+VmgQsK5SXnL?= =?us-ascii?Q?yvpF6EWQXnBzdlyJq9p6i6oKLuvvsWY6r4mtzhNEsbmX6baWzEIqbEqqUEWg?= =?us-ascii?Q?Uz3vQOgwsE4SRsSFbYYQi2CL+IFU2FnQAlCZRavL?= X-OriginatorOrg: mt.com X-MS-Exchange-CrossTenant-Network-Message-Id: 42e78260-e86a-4d2e-9ec0-08dd9846cbab X-MS-Exchange-CrossTenant-AuthSource: DB6PR03MB3062.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2025 09:06:39.0012 (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: ORb8YUEhbMFqaiCcB+LaHSFp0TKd3ONaZeIQapie/n8khh5Ril1wp3VwfmyA8kYFKEf+HItg3audNYTD9VWPEQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB8088 Content-Type: text/plain; charset="utf-8" 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 | 391 ++++++++++++++++++ 2 files changed, 412 insertions(+) create mode 100644 Documentation/ABI/testing/sysfs-class-rtc-tamper diff --git a/Documentation/ABI/testing/sysfs-class-rtc-tamper b/Documentati= on/ABI/testing/sysfs-class-rtc-tamper new file mode 100644 index 000000000000..3e61ed628c17 --- /dev/null +++ b/Documentation/ABI/testing/sysfs-class-rtc-tamper @@ -0,0 +1,21 @@ +What: /sys/class/rtc/rtcX/tamper/enable +Date: May 2025 +KernelVersion: 6.15 +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: May 2025 +KernelVersion: 6.15 +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=3D1" for a trigger from EVIN1 changed from low to high + - "1234.567 EVIN1=3D0 EVIN2=3D1 for a simultaneous trigger of EVIN1 chan= ged to low and + EVIN2 changed to high. + diff --git a/drivers/rtc/rtc-rv8803.c b/drivers/rtc/rtc-rv8803.c index 50fbae931cb2..e367d37e6a8f 100644 --- a/drivers/rtc/rtc-rv8803.c +++ b/drivers/rtc/rtc-rv8803.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -41,6 +42,7 @@ =20 #define RV8803_FLAG_V1F BIT(0) #define RV8803_FLAG_V2F BIT(1) +#define RV8901_FLAG_EVF BIT(2) #define RV8803_FLAG_AF BIT(3) #define RV8803_FLAG_TF BIT(4) #define RV8803_FLAG_UF BIT(5) @@ -58,6 +60,35 @@ #define RX8900_FLAG_SWOFF BIT(2) #define RX8900_FLAG_VDETOFF BIT(3) =20 +#define RX8901_EVIN_EN 0x20 +#define RX8901_EVIN1_CFG 0x21 +#define RX8901_EVIN1_FLT 0x22 +#define RX8901_EVIN2_CFG 0x23 +#define RX8901_EVIN2_FLT 0x24 +#define RX8901_EVIN3_CFG 0x25 +#define RX8901_EVIN3_FLT 0x26 + +#define RX8901_EVENTx_CFG_POL GENMASK(1, 0) +#define RX8901_EVENTx_CFG_PUPD GENMASK(4, 2) + +#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 +97,50 @@ enum rv8803_type { rx_8901, }; =20 +enum evin_pull_resistor { + no =3D 0b000, + pull_up_500k =3D 0b001, + pull_up_1M =3D 0b010, + pull_up_10M =3D 0b011, + pull_down_500k =3D 0b100, +}; + +enum evin_trigger { + falling_edge =3D 0b00, + rising_edge =3D 0b01, + both_edges =3D 0b10, +}; + +struct cfg_val_txt { + char *txt; + u8 val; + bool hide; +}; + +static const struct cfg_val_txt trg_status_txt[] =3D { + { "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[] =3D { + RX8901_EVIN1_CFG, + RX8901_EVIN2_CFG, + RX8901_EVIN3_CFG +}; + +static const u8 evin_flt_regs[] =3D { + RX8901_EVIN1_FLT, + RX8901_EVIN2_FLT, + RX8901_EVIN3_FLT +}; + struct rv8803_data { struct i2c_client *client; struct rtc_device *rtc; @@ -558,6 +633,316 @@ static int rv8803_nvram_read(void *priv, unsigned int= offset, return 0; } =20 +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 =3D rv8803->client; + + /* according to data-sheet, "1" is not valid for filter */ + if (evin >=3D NO_OF_EVIN || filter =3D=3D 1 || filter > EVIN_FILTER_MAX) + return -EINVAL; + + guard(mutex)(&rv8803->flags_lock); + + /* set EVENTx pull-up edge trigger */ + ret =3D rv8803_read_reg(client, evin_cfg_regs[evin]); + if (ret < 0) + return ret; + reg_mask =3D ret; + reg_mask &=3D ~(RX8901_EVENTx_CFG_PUPD | RX8901_EVENTx_CFG_POL); + reg_mask |=3D FIELD_PREP(RX8901_EVENTx_CFG_PUPD, pullup_down); + reg_mask |=3D FIELD_PREP(RX8901_EVENTx_CFG_POL, trigger); + ret =3D rv8803_write_reg(client, evin_cfg_regs[evin], reg_mask); + if (ret < 0) + return ret; + + /* set EVENTx noise filter */ + if (filter !=3D -1) { + ret =3D 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 event_en= able_mask) +{ + int ret; + u8 reg_mask; + struct i2c_client *client =3D rv8803->client; + + guard(mutex)(&rv8803->flags_lock); + + /* event detection interrupt */ + ret =3D rv8803_read_reg(client, RV8803_CTRL); + if (ret < 0) + return ret; + + reg_mask =3D ret & ~RV8803_CTRL_EIE; + if (event_enable_mask) + reg_mask |=3D RV8803_CTRL_EIE; + + ret =3D rv8803_write_reg(client, RV8803_CTRL, reg_mask); + if (ret) + return ret; + + /* events for configuration */ + ret =3D rv8803_write_reg(client, RX8901_EVIN_EN, event_enable_mask); + if (ret < 0) + return ret; + + return 0; +} + +static int rv8803_ts_enable(struct rv8803_data *rv8803, u8 enable) +{ + int ret; + int i; + unsigned long tmo; + u8 reg; + u8 reg_mask; + struct i2c_client *client =3D rv8803->client; + + /* EVINxCPEN | EVINxEN */; + const u8 reg_mask_evin_en =3D GENMASK(5, 3) | GENMASK(2, 0); + + /* check if event detection status match requested mode */ + ret =3D rv8803_read_reg(client, RX8901_EVIN_EN); + if (ret < 0) + return ret; + + /* requested mode match current state -> nothing to do */ + if (ret =3D=3D (enable ? reg_mask_evin_en : 0)) + return 0; + + dev_info(&client->dev, "%s time-stamp event detection\n", + (enable) ? "configure" : "disable"); + + /* + * 1. disable event detection interrupt + * 2. disable events during configuration + */ + ret =3D rv8803_ts_enable_events(rv8803, 0); + if (ret < 0) + return ret; + + /* for disable no configuration is needed */ + if (!enable) + return 0; + + /* 3. set EVENTx pull-up edge trigger and noise filter */ + for (i =3D 0; i < NO_OF_EVIN; ++i) { + ret =3D 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 =3D rv8803_read_reg(client, RX8901_EVNT_INTE); + if (ret < 0) + return ret; + reg_mask =3D BIT(5) | BIT(6) | BIT(7); /* EVINxIEN 1-3 */ + reg =3D (ret & ~reg_mask) | reg_mask; + ret =3D 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 =3D 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 =3D BIT(7) | GENMASK(6, 4); + reg |=3D BIT(0); /* CMDTRGEN */ + ret =3D rv8803_write_reg(client, RX8901_WRCMD_CFG, reg); + if (ret < 0) + return ret; + ret =3D rv8803_write_reg(client, RX8901_WRCMD_TRG, 0xFF); + if (ret < 0) + return ret; + tmo =3D jiffies + msecs_to_jiffies(100); /* timeout 100ms */ + do { + usleep_range(10, 2000); + ret =3D 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 =3D rv8803_ts_enable_events(rv8803, reg_mask_evin_en); + if (ret < 0) + return ret; + + return 0; +} + +static ssize_t enable_store(struct device *dev, struct device_attribute *a= ttr, const char *buf, + size_t count) +{ + struct rv8803_data *rv8803 =3D dev_get_drvdata(dev->parent); + + bool enable =3D (strstr(buf, "1") =3D=3D buf) ? true : false; + + int ret =3D rv8803_ts_enable(rv8803, enable); + + 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 =3D 0; + u8 reg_mask; + u8 data[10]; + struct rtc_time tm; + + struct i2c_client *client =3D to_i2c_client(dev->parent); + struct rv8803_data *rv8803 =3D dev_get_drvdata(dev->parent); + + guard(mutex)(&rv8803->flags_lock); + + /* + * For detailed description see datasheet: + * - Reading Time Stamp Data (FIFO mode) + */ + + /* CHECK for EVF bit */ + ret =3D rv8803_read_reg(client, RV8803_FLAG); + if (ret < 0) + return ret; + + if (ret & RV8901_FLAG_EVF) { + /* clear EVF */ + reg_mask =3D RV8901_FLAG_EVF; + ret =3D rv8803_write_reg(client, RV8803_FLAG, ~reg_mask); + if (ret < 0) + return ret; + } + + /* check interrupt source is from event 1-3 */ + ret =3D rv8803_read_reg(client, RX8901_EVNT_INTF); + if (ret < 0) + return ret; + + /* CHECK for EVINx bit */ + if (ret & GENMASK(7, 5)) { + /* clear EVINxF 1-3 */ + reg_mask =3D GENMASK(7, 5); + ret =3D rv8803_write_reg(client, RX8901_EVNT_INTF, ~reg_mask); + if (ret < 0) + return ret; + } + + /* check interrupt source is from event 1-3 */ + ret =3D rv8803_read_reg(client, RX8901_BUF_INTF); + if (ret < 0) + return ret; + if (ret & RX8901_BUF_INTF_BUF1F) { + /* disable interrupts */ + ret =3D rv8803_read_reg(client, RV8803_CTRL); + if (ret < 0) + return ret; + ret =3D rv8803_write_reg(client, RV8803_CTRL, ret & ~RV8803_CTRL_EIE); + if (ret < 0) + return ret; + + /* clear interrupt flag */ + ret =3D rv8803_read_reg(client, RX8901_BUF_INTF); + if (ret < 0) + return ret; + ret =3D rv8803_write_reg(client, RX8901_BUF_INTF, ret & ~RX8901_BUF_INTF= _BUF1F); + if (ret < 0) + return ret; + } + + /* test if there are events available */ + ret =3D rv8803_read_reg(client, RX8901_BUF1_STAT); + if (ret < 0) + return ret; + num_events =3D ret & RX8901_BUFx_STAT_PTR; + + if (num_events) { + ret =3D rv8803_read_regs(client, 0x60, ARRAY_SIZE(data), data); + if (ret < 0) + return ret; + + tm.tm_sec =3D bcd2bin(data[2]); + tm.tm_min =3D bcd2bin(data[3]); + tm.tm_hour =3D bcd2bin(data[4]); + tm.tm_mday =3D bcd2bin(data[5]); + tm.tm_mon =3D bcd2bin(data[6]) - 1; + tm.tm_year =3D bcd2bin(data[7]) + 100; + tm.tm_wday =3D -1; + tm.tm_yday =3D -1; + tm.tm_isdst =3D -1; + + ret =3D rtc_valid_tm(&tm); + if (ret) + return ret; + + /* calculate 1/1024 -> ms */ + time_ms =3D (1000 * ((data[1] << 2) | (data[0] >> 6))) / 1024; + time_s =3D rtc_tm_to_time64(&tm); + + offset +=3D snprintf(buf + offset, PAGE_SIZE - offset, "%llu.%03d", time= _s, time_ms); + for (ev_idx =3D 0; trg_status_txt[ev_idx].txt; ++ev_idx) + if (data[9] & trg_status_txt[ev_idx].val) + offset +=3D snprintf(buf + offset, PAGE_SIZE - offset, " %s=3D%d", + trg_status_txt[ev_idx].txt, + !!(trg_status_txt[ev_idx].val & data[8])); + offset +=3D 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 =3D rv8803_read_reg(client, RV8803_CTRL); + if (ret < 0) + return ret; + ret =3D 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[] =3D { + &dev_attr_enable.attr, + &dev_attr_read.attr, + NULL +}; + +static const struct attribute_group rv8803_rtc_sysfs_event_files =3D { + .name =3D "tamper", + .attrs =3D rv8803_rtc_event_attrs, +}; + static const struct rtc_class_ops rv8803_rtc_ops =3D { .read_time =3D rv8803_get_time, .set_time =3D rv8803_set_time, @@ -732,6 +1117,12 @@ static int rv8803_probe(struct i2c_client *client) if (err) return err; =20 + if (rv8803->type =3D=3D rx_8901) { + err =3D rtc_add_group(rv8803->rtc, &rv8803_rtc_sysfs_event_files); + if (err) + return err; + } + rv8803->rtc->ops =3D &rv8803_rtc_ops; rv8803->rtc->range_min =3D RTC_TIMESTAMP_BEGIN_2000; rv8803->rtc->range_max =3D RTC_TIMESTAMP_END_2099; --=20 2.39.5 From nobody Sun Dec 14 13:49:50 2025 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2068.outbound.protection.outlook.com [40.107.20.68]) (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 3D131239E60; Wed, 21 May 2025 09:06:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.20.68 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747818412; cv=fail; b=eLgoEvBlKqEJ5vItgzoS25k8AB/mzjZX7aUhi+IwfD6aqL8E/XaAlQXL5ndk0bz+6lXkOLv7GaWWCIWGbEZmPCLdhoAtAT2DsIFABMRsJHpMuJJFJJPG9EO3oQq91oh1FcoHRtQ9ByGqnWn5ykmGy5MGs9r3XZV7uoUKRlkHtwc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747818412; c=relaxed/simple; bh=h54Fsqfttc+J57kI6GX5XNnQLqbG9n8coKBMBpxrP8k=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=cT1f4d2Tl3EZUcTnP1G3oo8UJJ6xrM9IHnA8HDI6GJC6zDDIAM4C6RfE94LAtTCOlR1MJEGqZwZ+BzhgCnRshBd6PUeZTlidaSxg/RXm8bib+mzJ63YNhMnaZoOk5llOGBaCkAE6ZEDckbGOrlGDRihISCPlHGz0HuN+qtTUKsM= 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=SeLNvf1S; arc=fail smtp.client-ip=40.107.20.68 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=mt.com header.i=@mt.com header.b="SeLNvf1S" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=srKEpYfl+OkP2I71T7hg6uScUcbX459/piiPFX2b5lZe1jX3iCbxOehwzVHq3oC/Vbpzl6HnOdat2r1maerIY5b4fEqnmyyapIhDZ+ADmXDKYz96/hha0//Rz+r4Y5eFMA5lbfvbTQlnba977lI2bjjfC3SVAZyl+vfR6fNeBL9pIrnabdJe4YKxCLUxtpl5eab9KIDdNO/KR4fMAgMrYzop6HY5u+qKUML0hhbI2IBfbR10+1nh+s8uAI1CkdI49Fr2pTslWzC7W7M7VrPJJe8OkhyaSM9fCzCf8Zic8sxX0UxxJlkJzMMp9v5LC9B70W+tztkoTuMrTeyVFjAuVQ== 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=WfhywwyPhH2+EQXtnNQ0SnYyoNLpb46m+gjnJJEG6Yw=; b=o39OGJkI1EMrsiMSi/pQJV472DqaGKSn3WJrVVtNIngHQDVDqoR3vGme1jcgQlXw36xAMWTyFMYBfp7CIO4nmlTwgyFQoNuFAPib876EvvaFids7FN6pAIyoqBR0/ang9outCPUd4ZYrohfAshu1fifPMWYnvGw/kb8soKxDWimUqjNcW6JTHmoWWGg+6BBkc+dIprmRKqR/4YKZCSor6FPMIvUbxN8S3IiZmX0PdH95F8U+EC5De8Hk18uO1eVmf0aFiYuS64ojaPke+h/GqTZoiYbAU1C6vaOW1fbdafv700FXT58D2RFJ84VrqsWaegewJDVTSFKNGFGvcWh7ZA== 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=WfhywwyPhH2+EQXtnNQ0SnYyoNLpb46m+gjnJJEG6Yw=; b=SeLNvf1SjgGUmrEGTPskY/1pqOiS8YE+rndASARMjG8dNu/f52wNgwSkpnccUGHpONf2ygDS/W6R8wyEkXBTqgb8z1FDivMNf3VlGUdLOPCaulqbijDNUyIIppBjLnlooIiQcVdggF21uSInIbnu3jyW8S1TLxgsPH0LSHUOR4X7x6uQwSm9RVJNYREs73IP3368OKEuYkVT04wMcEl4N+ebZzvUmkIcTgj4Axnc7jR3XXSHpWDI/vIai67Y0xWYJIoNznUiV1Nk++yoJ0miDceFjDlsSU++5rV0jXhYMROje5R928cpJ7V/Rzo/3xfrkPzDtwEzDe9PDvciN6hzHg== 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 AS8PR03MB8088.eurprd03.prod.outlook.com (2603:10a6:20b:443::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8769.19; Wed, 21 May 2025 09:06:48 +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; Wed, 21 May 2025 09:06:48 +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 v4 4/7] rtc-rv8803: extend sysfs to trigger internal ts-event Date: Wed, 21 May 2025 11:05:49 +0200 Message-Id: <20250521090552.3173-5-markus.burri@mt.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250521090552.3173-1-markus.burri@mt.com> References: <20250521090552.3173-1-markus.burri@mt.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MI1P293CA0002.ITAP293.PROD.OUTLOOK.COM (2603:10a6:290:2::9) To DB6PR03MB3062.eurprd03.prod.outlook.com (2603:10a6:6:36::19) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB6PR03MB3062:EE_|AS8PR03MB8088:EE_ X-MS-Office365-Filtering-Correlation-Id: f243b747-7608-435b-ec50-08dd9846d13a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|52116014|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?t9e3ZZJVWFXOF4XESCK1BHYNR1Be4B38EsxCUgmFrAa0I7ovA3PSw7otQRzH?= =?us-ascii?Q?3dgfZcpl3cNNQ7aeg8vNRti5siELa7yWxoq+UeIb8xEgUJuiQNwAJ+aXRkpu?= =?us-ascii?Q?0pfxDqhPTrTQZGdjYETSiKRqI3shvAMWfpMufCVZCnrB79wZrea0AUS37EyY?= =?us-ascii?Q?tEjlm6fvIc0jmcyMLD/baBeo+UW/p3329fwFT9r3ObzfStq5r/0AxRLHMGgj?= =?us-ascii?Q?WKle52UJyr3Dq7GbgsnSN1svLJxw0aQyBUKhyrl94Dx+vLtPUJgK0dAgJBWX?= =?us-ascii?Q?6E3wNxClBNPkN2Ixinl6rKEmmVvovkMigV/lD6O/ojDajWuDcPLI6AJk4IAp?= =?us-ascii?Q?lBrNz/7GTKdCHx/TBRdYxt1jVV7DTWnJXgDMVHvXiutrjcYDDW9D5IquIQj4?= =?us-ascii?Q?p46MU/56/enE6fJ0W8Y6XU6XrsVmu8T1DbBM/uZmaENzdoNHSRbw8FVryzwu?= =?us-ascii?Q?VtT+sDwfejxf0RblZ/iSXBdOVQTA51ldkaMPW4qbMScU9P7Jqo0P9olHJUiL?= =?us-ascii?Q?zgUXEQIsa7CclqeLybOQHtAfREYXbCS2mso6140OAePD5+nOSXYRTwfL4YGH?= =?us-ascii?Q?3Ae6ZDUY3IoFL6H1xwIDanQa9o4DQzK4USaqxpRWboDuET4UW80+9E9SkKtM?= =?us-ascii?Q?x022A60ElO/cK46w8XGalB+OmGjiueb0C0XLd2xJ3lyJqVkDHHtqnWfQ/Khx?= =?us-ascii?Q?hN9uhFmdOw6paJ9vxB1n1PSeLPnqPhUGS1Qip7uVRHEtk1bjDm8AScnpKb6V?= =?us-ascii?Q?oCmTwWIbgtNCBhCZnmvnJo1cagFeHYFXT0YJvwd91eJYRUny0ABG2eWe9JP0?= =?us-ascii?Q?Cw529ZqBjE7r84eQEw7t9v5Zn42U/Fb1YKrrD6eqBoKosRcH+Q3cCaVaj+x6?= =?us-ascii?Q?6R+YLTFzB1lTyrVGvs+AMIXbnVhmrHedvx3XkglWI8/JBLwi9om+PG4jDubi?= =?us-ascii?Q?gONdQFZ03EYronu/HAgbFRePraXMMs83bgt69tQBJhVm2mHFs7iMpibSdIgy?= =?us-ascii?Q?+jqcApqG+ejnOs+ejB/YpIBZagFf5Snnm/R/Pw9rH2svJBpG/evXlhO79vMJ?= =?us-ascii?Q?ekHRzxF12Rr6wte9cuw3gh2BisqLRcR4NqbOJ2n3IGl9eJ4QeHKjmkFRLsFP?= =?us-ascii?Q?3Gsre6BrBDSWwY/pIjNXeSoIue/9phutGfO1uJX0mKqpOL4g64Fox31y+47L?= =?us-ascii?Q?fqpcVwzsoGWjw8RCd54iJ+JcwcLQ5K/Uo5DCmGEu+voL5AXMQgLPm2n5YwBH?= =?us-ascii?Q?oiQ1ricf8uG1BPZLvlaGxcrVVBz9AAgHKTEGAbX2NtdiMyD0z5P+1tngIIVq?= =?us-ascii?Q?t1cbaHBn1vFOXfC6MX8IC+gUIHFNV8tkZADWSJw5pPnPkIMS88cr7o3YdIhm?= =?us-ascii?Q?/fWM45g5GvAym6sEZaJ0HebU/q96jp5NKRV2BZlTqFQUZGRgaKg3osc9EV3E?= =?us-ascii?Q?8I0RhEu+CodsgtUH7XCUPyw9BUI+qA8J8webu6hr7j9mIFi4OQpvNg=3D=3D?= 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)(1800799024)(366016)(376014)(52116014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?a2wK6G7ENmPjIr9tF82hDvMKhfQLT1DiFMz0M8phsglsv2XBB56K/XZYTg3H?= =?us-ascii?Q?fpZ0IfT36JNERy82xQjIbtyeseBm0okmRidhdj4+IA9OxD4ELgIKlUgnhXco?= =?us-ascii?Q?X5eFjeR3yRykLKmtCSm/+NKOupwxLCjCrxVbY1OMVDf63Ft7x+pHsfyH1OlH?= =?us-ascii?Q?kPWldazOXYsbX3WMuvmEH+lbVHqGAhNvBxpc/PEOln/7erU5t92dKjh3Egls?= =?us-ascii?Q?Pu95DlKTnLXDN/DSRXLrQ2Jdg6s4l+vyD6gX7qgt/3EvZ+r9+lux+rTXGfTR?= =?us-ascii?Q?WR2SRnYvSRJl8hsI1oqSqAvM3SAzt5hgky0h1CGbtwQYwPDBUPc3ykXmhsis?= =?us-ascii?Q?p81a3glMvqrxAC4vbNQqREFQqpXy9B3bEBzrHZSn9ndygNO4/6g+T4FRY4dZ?= =?us-ascii?Q?W4Xozy+C3PPD4fePrDlPNdORBCdSZN/k79FJpAlMOeDAgm3pinOpLZae1ev6?= =?us-ascii?Q?n3y/DCC9OcymVWWFDiBVQrO1hv2CKcg/uRkyal5zUpe1YtGXF3xK0oh/XXhp?= =?us-ascii?Q?xIZC5A2zNP8Wj/KdOZ9+Q+Kpf8KCWsesd37UlSDNOuu18bltsnJ5n2cvjdSi?= =?us-ascii?Q?TUnSGbndpFXWKdt2sQA54NYlpivJpavmlzOAUDnDjJeHrIzUdy99n6bxjevM?= =?us-ascii?Q?2fDZdrR7bKKeWtqc0IBBvGL0SrENnGD2XMpbYFWY4YHsiDgcVO1VRxiQcD3J?= =?us-ascii?Q?Jp9hpm5oST9avoP1DJyCTJU/dkObyEg5Udl2GI96dX4tvagaG7e+/V0J3wKa?= =?us-ascii?Q?PXQdTsJJHzRO0veNJbGfLI67MCNaKS/emjJob8Vg74wd5e+zj2LzefmZi7O3?= =?us-ascii?Q?49ZKD6s7Cnm2PdU69EvZh3hZdxCw1lwb74YtTo8sACblVKuNHEkovbeL+yte?= =?us-ascii?Q?0NEe09jGGV7uVj7QkQyg5OOhwXZTlhtdkgfAIWTYfd9Upl4Adh7oNUN+JMoI?= =?us-ascii?Q?1OvwYuqY524zDFZ9XrupKhEtvdinDtbmvcssopWAusuOpFgybg1/WzNZFDhF?= =?us-ascii?Q?zLQQxKB4lHPZv0duLwpzUuvRX41nyRF7j50hOx+Jdr062RX5JwZnzvtJRc8g?= =?us-ascii?Q?6T6eIcb3zQKGLIyFvY52P/UFp0sah4TH2kAV8ZXCPWcfJ1e4WuDLAfNw6kl2?= =?us-ascii?Q?6W9Qap5KtW2H8BoTAQpYXtYGlRA0dk0QjpXMSDr32XfYtoIxvgW5y5c1yOUM?= =?us-ascii?Q?O65ut8eNHg5kpcOD5cQ9wHh0haY1Qwps5rUEdwyxsybG6z7oYGKLEOzp/FEh?= =?us-ascii?Q?/noYaMjJwtttKyFNkayu3FETGR6EdOUqDFiB2+qcxGi6LhbEQp8cVRcQC6G6?= =?us-ascii?Q?nvSU5a3nIUh/lIc39hCudOgkBQ8BWBqTKZrdh7NzdEsE+qtFZ+Y5UDEKHHXu?= =?us-ascii?Q?3jubasGl2vpSsgK7cDYdS3qR1W4f18ksbMkBudf0kN+i2BdiSlPtAbOHujmd?= =?us-ascii?Q?BwKCg4ULBfiDvrCL3kmD4C+ehBMYMFu6EuwkRep1Dqyc651+zyEXFS8JF/mz?= =?us-ascii?Q?MTfFU74h5ZBBNp0EibtrB+Xwh6NvaLb/nUJnhcUee5M8eImqYuViBApxovKw?= =?us-ascii?Q?/QKvpx2E747g1cCxKWyjlL/RNwPSJS0+fYZAwQGL?= X-OriginatorOrg: mt.com X-MS-Exchange-CrossTenant-Network-Message-Id: f243b747-7608-435b-ec50-08dd9846d13a X-MS-Exchange-CrossTenant-AuthSource: DB6PR03MB3062.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2025 09:06:48.2737 (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: mVrV6VQYYaUtL2tm3iGY8HOM6vxaroiFOIfbvlLeWT5GP4aIHaNvIrSMiNRCNBNf4XwxUnT7utlG9JLxp5l34w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB8088 Content-Type: text/plain; charset="utf-8" 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/Documentati= on/ABI/testing/sysfs-class-rtc-tamper index 3e61ed628c17..83b2fae1fc6e 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 timestamp= s form buffer FIFO. - "1234.567 EVIN1=3D1" for a trigger from EVIN1 changed from low to high - "1234.567 EVIN1=3D0 EVIN2=3D1 for a simultaneous trigger of EVIN1 chan= ged to low and EVIN2 changed to high. + - "1234.567 CMD=3D0" for a internal trigger =20 +What: /sys/class/rtc/rtcX/tamper/trigger +Date: May 2025 +KernelVersion: 6.15 +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 e367d37e6a8f..d0aac250774a 100644 --- a/drivers/rtc/rtc-rv8803.c +++ b/drivers/rtc/rtc-rv8803.c @@ -929,12 +929,45 @@ static ssize_t read_show(struct device *dev, struct d= evice_attribute *attr, char return offset; } =20 +static ssize_t trigger_store(struct device *dev, struct device_attribute *= attr, const char *buf, + size_t count) +{ + struct rv8803_data *rv8803 =3D dev_get_drvdata(dev->parent); + struct i2c_client *client =3D rv8803->client; + int ret; + unsigned long tmo; + + guard(mutex)(&rv8803->flags_lock); + + /* CMDTRGEN */ + ret =3D rv8803_write_reg(client, RX8901_WRCMD_CFG, BIT(0)); + if (ret < 0) + return ret; + ret =3D rv8803_write_reg(client, RX8901_WRCMD_TRG, 0xFF); + if (ret < 0) + return ret; + + tmo =3D jiffies + msecs_to_jiffies(100); /* timeout 100ms */ + do { + usleep_range(10, 2000); + ret =3D 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); =20 static struct attribute *rv8803_rtc_event_attrs[] =3D { &dev_attr_enable.attr, &dev_attr_read.attr, + &dev_attr_trigger.attr, NULL }; =20 --=20 2.39.5 From nobody Sun Dec 14 13:49:50 2025 Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03on2046.outbound.protection.outlook.com [40.107.104.46]) (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 6A7B0231A23; Wed, 21 May 2025 09:07:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.104.46 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747818423; cv=fail; b=NUb1VWDISR3QtZOtHtmfsx4QpQsKLNFNxuyU1pzljNPPQ9wvpE/wYCPr8OpZvI2TY/WY2aBBGpjSlg0qEWPQRUQBllKuH8RoJ4rbZjroGHTBrmZjWBnsFUHSiU0uMi3YPELJTsTMLmSrFp3u2HTWAU62GPsMlFwfvKeXsfiWnLI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747818423; c=relaxed/simple; bh=HSkdFXYU1Cv3a6briY2MOuLGWeZ3MtWgh2s6K7PmE4I=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=o51h70mar25sj0gfFKfgahCnNJmf813G8GVhMik53DRpY98K25WxvKB/IdeN00YihVroL/UUkf7VGVDH3KG1DFN3nq6niPDUA1YPGugcgFu9wvsPkeCEgMsYsWybQesyPzdx4FKYEeq5c/qLeZfRc0ElRVms3kTAbrDgtaCe9eQ= 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=QFwvKt9p; arc=fail smtp.client-ip=40.107.104.46 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=mt.com header.i=@mt.com header.b="QFwvKt9p" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TQNlDxar6L5r2G39+z8HPn0wvieE09hjZLVXogAmbM+dGBLMTC3p4jCoZlH78oSrUmiovnI4/YlUo71rKGy9lVw3P37lmmy/SzwPNNXWsg5x6z0lOFVU2HbMnHartmRBnDmmb7MzOoB0Evo/ftNR2iGXggtmTunF0mzLvZbUmSTkFtQEh0jOfXygPmA4fW0WrwWmHqhAZwkWrWuas2/2REo5GZTvfIaoSTQnqLPS7z6IB+y73fnyjtszghhLPLGTwVTWr3omJFJMe4Lr4m9l0mL42PIqSF/PdOqJZZJW4ryu64aQJez3VjWjpy/IWy5Jmctagk+PWbGCFUaYerg7oQ== 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=HUoCDfR6fjnkqi8JnVtCYXzif94KGec9zo0HtoVnq9E=; b=IbHhUPDnWw+Ofqqk58Ae18bqXvh6yiaMu/C7S5gOd3NsStYExaUikR2dr4ulCIvBS5tTvi06JdJ+gbtkVSL7zCYEPqMvt2q6hzlmJCsbDuxrlmzdQNlux/lcKWIcgnWN0N0GUJsrsbsy3oWWpF1PQss+drsUJD+nIYrQlD28hXrfLWjzUabdQGYHEMDLKCWoIizr5bMf1SjUSvY/NMXPGzufnRwE7jlPgCJ6l85Ao8t3ophxG1cMXHBX0566YRsSzG9/29cD69v9vX/g7TRGL8DarxiQSljg8J3AVUzIv9nWR3qCUPTPZjTQtK/hAzaqFxTOTTLoMGviezyT7a/J1g== 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=HUoCDfR6fjnkqi8JnVtCYXzif94KGec9zo0HtoVnq9E=; b=QFwvKt9pfBrMNT8aLI7n/wJKd5BRJrC8tJS3HzPkn9Tp6Y2WwZsTGRY8sspjFQkT9Aumu8nYf5Z7ZSPT9fgPkUM3mdpU10gSefvTaLdj6Mtwlw4T5MuwVmw1WeAX5hUeEFNA7FN+yGyxKCVmy1k98pQP1jaS7GsEnF7Le2TOjAu3ZfwvnurFwU47+kK1eO76sTwnM5aV0WOExNz+imQ2p5nKM3Gwri/vH+M0zTM+UE/rKMQZ/zkWp/LGCdyLhBhAdR7dpTyOWqEv8mDuzeRoJcotjRKaDSPppb1d6H7J84GKzdCvcvJUKPg/FbFevqthLiYxKtYTfYb3Kn26S61H8g== 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 AS8PR03MB9486.eurprd03.prod.outlook.com (2603:10a6:20b:5a5::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8746.30; Wed, 21 May 2025 09:06:58 +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; Wed, 21 May 2025 09:06:57 +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 v4 5/7] rtc-rv8803: extend sysfs to read status Date: Wed, 21 May 2025 11:05:50 +0200 Message-Id: <20250521090552.3173-6-markus.burri@mt.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250521090552.3173-1-markus.burri@mt.com> References: <20250521090552.3173-1-markus.burri@mt.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: ZR0P278CA0116.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:20::13) To DB6PR03MB3062.eurprd03.prod.outlook.com (2603:10a6:6:36::19) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB6PR03MB3062:EE_|AS8PR03MB9486:EE_ X-MS-Office365-Filtering-Correlation-Id: 3864fcff-63a2-421f-46c6-08dd9846d6d7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|52116014|376014|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?pquA3FcDTBX0WvJ8jyqUW/yYWzR2D+0BYZN8TMZakOvbfVuQqFoPWYM+n0kz?= =?us-ascii?Q?TDAnedNWFPIfOLAMWVK63CaKity+RH5O17doFo3bzuywVcXZC5AOJzLnSWzy?= =?us-ascii?Q?JzNf+Dh4IVrR+4hymFIQr9QLrqilo5/3V25u6BasigdHEISm+E0U2dBRmMwK?= =?us-ascii?Q?JyCwTe5ugB8zYu1Q8fZwOfaAe5bvFAJMZBglzLWBbgz/ufyCVKF9uPL5EqWY?= =?us-ascii?Q?1obw1PepTuY1olb7IYpgfy9donRAZVo00p3luwTYUvESUrJPN1u9ppc0FRaJ?= =?us-ascii?Q?CIfd67P7SHpdQVreEkf1gEWhx6bg2DeipuXDsO9BWPdYWnbUXD1fmGmDtlW5?= =?us-ascii?Q?tYAykoNGc8aphfR561dnDjlIjha9f6A52275OZ7+GVusF4bE20Pi6XHj2vH7?= =?us-ascii?Q?BZEaK6T0YhwRk/YemC8tn1taGM6mTQ6qpmAK69gJNPjpYoKux2vEyDi2ZAFw?= =?us-ascii?Q?e4Sjrk0f0OD0tmOQxo0dhoLz/0GkjrKhsHLr38VKXRULR+xpwrML+C6HeWej?= =?us-ascii?Q?plWtLkWHhT+LDzOK/44rIz6hwhOKB7yNzo2xE3h0sDvo8RZ7xRI29/L9I7cT?= =?us-ascii?Q?l6PYWniAGFTH+ZjYq8tWPOIyacyd3oa9GW4lcyrl4ghD/GQA6mAgYaIZsMuW?= =?us-ascii?Q?m1mfloylFNqoekI+63v/950wXPXnSNIdEBD59IwhKHuy6qXb/wzLQ9CiZzqC?= =?us-ascii?Q?l9CFo6jrLDIFPCBh/BUVFB66NpALmE1F8aXGiDnOiBn2gyTTrBVotFwIwIZM?= =?us-ascii?Q?DNJkOs9/qzbAxk6ksQ6MSmqbByysqrNrPQlH/eH4dGD8u8YKUaANOe/aQMvm?= =?us-ascii?Q?ykgJnYLg8DmD9/GF8fA3m3OK8Vjoq4OF1MGYEhM5g50VKEvnL8k+u6fgne/t?= =?us-ascii?Q?GjgBd2lfdawbmj5QSXg9ah1J/ukNXLqod15xhk7wGakkVEIBw4r0kXEEy8d4?= =?us-ascii?Q?GTWhvKOYV61selnU0dnnYdok8hhV21u+QoM+O1FQw+eoaiLQC0tgNViozRE2?= =?us-ascii?Q?kpl3L4DlLdzOxb7YzD6iKKRXjnFNkPBGVZf3RqIAqAZeboaEJq6LQ8KIcYTW?= =?us-ascii?Q?PlY6nWH6kpVvimZkneyzCbgSlgsV5JxDBdfIfbr1bhCOHgrwxpB3JS64Bs5y?= =?us-ascii?Q?GgOxgy+HESDWbzUUkp5/HnvXlb466azOoqzEjhJ6QNREvc1dwlw6eTzo3XVt?= =?us-ascii?Q?FmvFmeUXYPm0iUmsEa75wxG2tmkW2IT2lv3xgkTSvkHQNBihMVqt0O1XdGyh?= =?us-ascii?Q?1KBfvcuDtGVzIgPZYgAa1USIt1hxjIaTwr51t2nnu7EoFIz9MjtAo/Ht+CHo?= =?us-ascii?Q?lvMimZ8EbNFNJV0QA0uw7zysHixGDttajvfeqeZV/4Ibo192jH+kj26VTmfb?= =?us-ascii?Q?74JAI3IiGHCIVGD1HScrm1c9sB/61Csqsy1n8R31FtWSgB9pyd304ziWGeuN?= =?us-ascii?Q?AywcBVb/Jk4bfi66rUBNQfflipZdO5C4A86j9AeXRdRYHc3k/qsAhw=3D=3D?= 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)(1800799024)(52116014)(376014)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?jMrxKoxVML5sqrkBFuQVU/oHRT2113dls1co/7qjT8L08DeYwG6E5YszfaRU?= =?us-ascii?Q?1yE3ly1sBk2qch/rhrlat6z3E/sPgZv1z18nl7n81uFU1gR55IiTKOhntLIc?= =?us-ascii?Q?H+SaZfjC0dnUvFNbNLz90CjQXS6a60R8/QUnleQ+2NzfW2ttzcC6qBHR91dN?= =?us-ascii?Q?WDko5RImgEwOYPEJAeSvZk54CsgPZ6NBSjj/w6HPoMcqjXIjMGFuycdnG/Sk?= =?us-ascii?Q?r56Ng8Kx92q1/pjf4qc9uOH+cZ6K9y8vF6QEvT2y6D94Dc5VLEjVxu+OKDJ4?= =?us-ascii?Q?mJRiNZ6r0CEyEvpEEqUOW0Yf87+bFfCaLAAR+lUG+XvOGSGehvSuzH2O0zx2?= =?us-ascii?Q?sYvjKYGGA6ajWOy4uFRRYXJoUARco68gFrWUtEJZF5Zq8L161duGLYqBF60t?= =?us-ascii?Q?to9ZLdmQ+vEUidPYoDTdtA/zqEQMlKRiihL0nP6U1VXU3YbNszDEi9FqhBjK?= =?us-ascii?Q?tkU8bHujZE73IiJ9ccU1B4UQ7Yo28y5hCK6LZMrnRK+pnqimsJ1rPdJy3Ih5?= =?us-ascii?Q?v5XEf6pWpiwEs4XMLXGa2p9v/i8MPrw81XFC/KRrjh2sLNqNMZ7dStLc6XD+?= =?us-ascii?Q?nfAVMMweWRj0zDgu7MaFaTHJWuZwPnG8jgz3w1RnESDaRuTocfRVLuP69LRR?= =?us-ascii?Q?v8BA2lrvKzH7WXWS+nTBty6+w+ag5zw8XcB5gQKw+WVSdio+KMbl2biWOjMk?= =?us-ascii?Q?Z642rI9kv7zDq1rpSn64ZoqLeLTvQDqnieSkYO2/+MNL+gBKjxHM9KukK7/n?= =?us-ascii?Q?FAr8AFvEfzU97fz5bQ6Gee1glR2fuYlU7rk0ApqZApX3P+6BJcCVFlrzKBl+?= =?us-ascii?Q?h6MzzPvK6L5xDZKV3BUfO1UTzT6J8UZWk4uhovT4RNLjp6/B8WOTUfddlszL?= =?us-ascii?Q?iWbsGuWA1gMVGDkoFhGJQVzKpHaEgYbVSPCy0gwTQw1gFh3OglGXGfK/CGV0?= =?us-ascii?Q?+qVRr4AXJBOJHGTSlMHN54cydI1mCyPLxzYtnEOyD4JsJG5nNvn/jJQiLubZ?= =?us-ascii?Q?6Ov9zjchRqvCH2ERIEkTQQHzG0TrbDaHcUWXTs8/6o3H5eiYiuXSIaBGHzyC?= =?us-ascii?Q?VhPLx6Vd1PjCFAtsu5OFbr5Yp8yZ34HICIVIYOMQcXSZoSnRT64DAhA0DDO4?= =?us-ascii?Q?AGhyWROkDjVy0fQTpgwIh5V3XeRbNi3waAh1W4+hi3aUimHbiAW7uVi9koDU?= =?us-ascii?Q?8AnBWKBYKazJUXgelxVeqcKSJLK13UxlXsjWk0QxiXxjKU1zWXv270ErRLcJ?= =?us-ascii?Q?V3K4vLeOBOmnuQifP7sappX3zlCwY9lu2wsaGu87uTtMZUuk17BwLJiCDwZm?= =?us-ascii?Q?jYzgngOPgrQkv71imdm+YOSJ8RX+CRmht9axFBhwCnAR9pmd4wm2NaHzY9se?= =?us-ascii?Q?wGrpXWmrjgn5OxOENyT0WT4UlFzDRZOtMS12JpcGbymhHBYbNzGk7YSq6WEO?= =?us-ascii?Q?lOUbkiZHQ6TFqejq5Rj2t+/3EO7OTELcb+oeADHuB8lALIaxRo27bybHT6QD?= =?us-ascii?Q?jaYTKIzKOafawoTA1mXSvvpjyuHPycErIiaAugSvzLYfEIljKcnUi3dbY8Wa?= =?us-ascii?Q?Yn8+bJ5QM4o7CXSeSuSaxHepxfkFLjRtY2FnA9Fr?= X-OriginatorOrg: mt.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3864fcff-63a2-421f-46c6-08dd9846d6d7 X-MS-Exchange-CrossTenant-AuthSource: DB6PR03MB3062.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2025 09:06:57.7387 (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: CmrxvVPO8LEqs2AEsQPGGpJZH3gWWbBI36C8YnyFDVaSx6cNCUXcdRvZMTSolxdMJsE8XSqyBb6brMZOK1BvWQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB9486 Content-Type: text/plain; charset="utf-8" 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 | 115 ++++++++++++++++++ 2 files changed, 123 insertions(+) diff --git a/Documentation/ABI/testing/sysfs-class-rtc-tamper b/Documentati= on/ABI/testing/sysfs-class-rtc-tamper index 83b2fae1fc6e..ef6d5f43abd8 100644 --- a/Documentation/ABI/testing/sysfs-class-rtc-tamper +++ b/Documentation/ABI/testing/sysfs-class-rtc-tamper @@ -26,3 +26,11 @@ KernelVersion: 6.15 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: May 2025 +KernelVersion: 6.15 +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 conf= iguration + and the enabled/disabled status. diff --git a/drivers/rtc/rtc-rv8803.c b/drivers/rtc/rtc-rv8803.c index d0aac250774a..39d5881ba261 100644 --- a/drivers/rtc/rtc-rv8803.c +++ b/drivers/rtc/rtc-rv8803.c @@ -85,8 +85,11 @@ =20 #define RX8901_EVNT_INTF 0x47 =20 +#define RX8901_BUF_OVWF 0x4F + #define NO_OF_EVIN 3 =20 +#define EVIN_FILTER_FACTOR 125 #define EVIN_FILTER_MAX 40 =20 enum rv8803_type { @@ -117,6 +120,26 @@ struct cfg_val_txt { bool hide; }; =20 +static const struct cfg_val_txt pull_resistor_txt[] =3D { + { "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[] =3D { + { "falling", falling_edge }, + { "rising", rising_edge }, + { "both", both_edges }, + { "both", 0b11, 1 }, + { NULL } +}; + static const struct cfg_val_txt trg_status_txt[] =3D { { "EVIN1", BIT(5) }, { "EVIN2", BIT(6) }, @@ -633,6 +656,16 @@ static int rv8803_nvram_read(void *priv, unsigned int = offset, return 0; } =20 +static char *cfg2txt(const struct cfg_val_txt *cfg, u8 value) +{ + do { + if (cfg->val =3D=3D 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) @@ -960,14 +993,96 @@ static ssize_t trigger_store(struct device *dev, stru= ct device_attribute *attr, return count; } =20 +static ssize_t status_show(struct device *dev, struct device_attribute *at= tr, + char *buf) +{ + int evin_en; + int evin_cfg, evin_flt; + int buf1_cfg, buf1_stat, buf_ovwf; + int inte; + int i; + int offset =3D 0; + u8 ev_pullupdown[NO_OF_EVIN]; + u8 ev_trigger[NO_OF_EVIN]; + int ev_filter[NO_OF_EVIN]; + + struct i2c_client *client =3D to_i2c_client(dev->parent); + struct rv8803_data *rv8803 =3D dev_get_drvdata(dev->parent); + + scoped_guard(mutex, &rv8803->flags_lock) { + evin_en =3D rv8803_read_reg(client, RX8901_EVIN_EN); + if (evin_en < 0) + return evin_en; + + inte =3D rv8803_read_reg(client, RX8901_EVNT_INTE); + if (inte < 0) + return evin_en; + + for (i =3D 0; i < NO_OF_EVIN; ++i) { + evin_cfg =3D rv8803_read_reg(client, evin_cfg_regs[i]); + evin_flt =3D rv8803_read_reg(client, evin_flt_regs[i]); + if (evin_cfg < 0 || evin_flt < 0) + return -EIO; + + ev_pullupdown[i] =3D FIELD_GET(RX8901_EVENTx_CFG_PUPD, evin_cfg); + ev_trigger[i] =3D FIELD_GET(RX8901_EVENTx_CFG_POL, evin_cfg); + ev_filter[i] =3D EVIN_FILTER_FACTOR * evin_flt; + } + + buf1_cfg =3D rv8803_read_reg(client, RX8901_BUF1_CFG1); + buf1_stat =3D rv8803_read_reg(client, RX8901_BUF1_STAT); + buf_ovwf =3D rv8803_read_reg(client, RX8901_BUF_OVWF); + if (buf1_stat < 0 || buf1_stat < 0 || buf_ovwf < 0) + return -EIO; + } + + offset +=3D sprintf(buf + offset, "Mode: %s\n", + FIELD_GET(BIT(6), evin_en) ? "direct" : "fifo"); + offset +=3D sprintf(buf + offset, "\nExternal Event config:\n"); + offset +=3D sprintf(buf + offset, " %-13s %-7s %-7s %-7s\n", "", "EVIN1= ", "EVIN2", "EVIN3"); + offset +=3D 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 +=3D sprintf(buf + offset, " %-13s %-7ld %-7ld %-7ld\n", "Captur= e", + FIELD_GET(BIT(3), evin_en), FIELD_GET(BIT(4), evin_en), + FIELD_GET(BIT(5), evin_en)); + offset +=3D sprintf(buf + offset, " %-13s %-7ld %-7ld %-7ld\n", "Interr= upt", + FIELD_GET(BIT(5), inte), FIELD_GET(BIT(6), inte), + FIELD_GET(BIT(7), inte)); + offset +=3D sprintf(buf + offset, " %-13s %-7s %-7s %-7s\n", "Pull-resi= stor", + cfg2txt(pull_resistor_txt, ev_pullupdown[0]), + cfg2txt(pull_resistor_txt, ev_pullupdown[1]), + cfg2txt(pull_resistor_txt, ev_pullupdown[2])); + offset +=3D 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 +=3D sprintf(buf + offset, " %-13s %-7d %-7d %-7d\n", "Filter [m= s]", + ev_filter[0], ev_filter[1], ev_filter[2]); + + offset +=3D sprintf(buf + offset, "\nBuffer config:\n"); + offset +=3D sprintf(buf + offset, " %-13s %-10s\n", "Mode", + (FIELD_GET(BIT(6), buf1_cfg) ? "overwrite" : "inhibit")); + offset +=3D sprintf(buf + offset, " %-13s %-10s\n", "Status", + (FIELD_GET(BIT(7), buf1_stat) ? "full" : "free")); + offset +=3D sprintf(buf + offset, " %-13s %-10ld\n", "Overrun", + (FIELD_GET(BIT(4), buf_ovwf))); + offset +=3D 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); =20 static struct attribute *rv8803_rtc_event_attrs[] =3D { &dev_attr_enable.attr, &dev_attr_read.attr, &dev_attr_trigger.attr, + &dev_attr_status.attr, NULL }; =20 --=20 2.39.5 From nobody Sun Dec 14 13:49:50 2025 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2046.outbound.protection.outlook.com [40.107.21.46]) (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 67C1F23958F; Wed, 21 May 2025 09:07:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.21.46 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747818436; cv=fail; b=Rj/Vmhdh/a3EMs1J9w2vOZXpcScgThBFWFtS9cD8LNTS6pBOZ71UHpgYsc5u9unkUlLd7I8Q3Y+808DBwXDBFUwXujKfMdtktPKC1VYeg67VAjuTTXjZp+W/iTzMpFAf1KV1IRERLODu3PqMAP8JBzh90uaSgT+E/BKCdHuLzQ8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747818436; c=relaxed/simple; bh=iK1HV9qvgVDRqctxyg1V7dR529bmmnYuqmKsI/O+Ca0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=lxpNulHIlx6X3ywTTMCnvDLkJxlX7zWEofIEPdomb2xzwZlurZ1GGgKij5I16wg8IHZb5TwUOCPjx4vxe9dnZFoKWGQKT6rcE4M8mFXaQbjgVpQ1lJSnV9btawtU3qX6okt4GNdeAItwu2vlRH6Fm51rP9TVQCmy8riE+JyKpFU= 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=n98/LH7w; arc=fail smtp.client-ip=40.107.21.46 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=mt.com header.i=@mt.com header.b="n98/LH7w" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=aZYqmCzhuoGeDyGG+SF13lkSDwDmGNYmmCBQEEP5y8RvvVW8kbMOfXOq1UbI8Te3CAmqUAIDRw8WS7mWxkceTODHCkzan/13HKXQhCLu+hcBPY7Ynvw1vwRW252mF3PKX6QkJM1VJrka/p0y2YcMJVvU/ESgKEFwHFbcnZM6QEbt+fv9ufjm/3qxegH/gqNPw5u3E0wDeE1Ps0Qs6GJ2yKQxjtvWup3BEm5bGd+Wl+M/BUNuzKkLU3+JQagmZW5oKQapQbhXCCuDj/dVfnYnIJN+wDx+i+5SuoaLb2pQMDfwtMiNjAM8DNKCjOkCpNXHYFykGI2tg0PQPwgLB7ODfA== 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=vYaVpEBhq5G5+PeOJjCdTaXasPhlHa8+UO/9rH1Z20s=; b=M1LyxNA4GClsJZGtJseVmNsaScCnrIDy4zh0jgFtmr0RaeSzry93ppPOZpLdb4WH99I9tMiHAMgHCm4PHlTn8S7ggutLVox/nHCPMCQw8OAJaNsURnpLVMo97+nDfRm5GPvBEt5G7CceqM9168UGTI/UM9RNmIgrTsZZeA0IiLa//ZKMVOiR9rIR1VIucn3TKVFYIBUFbLDedvGRXrTFUY5S61VX3JRWYIcokWRPI5lVwi6ihewP7SEyfOezwMOVe3yXdZ/FWHG3+cMBFNa9iMi8qz6Bpl/c+7vgwfMPYRLYj69HO8u4EvMBhl2JqJI94EoXezsbHwMyhCeO/eVaiQ== 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=vYaVpEBhq5G5+PeOJjCdTaXasPhlHa8+UO/9rH1Z20s=; b=n98/LH7wpy5odCtr/ZmJ/bQez2aSu8BKee7KKbqqNLjkzagnTgWjCzQbZnrIAPcvMABbeSRmn3wkwAIKWxpd6wsQxQaca6AwwyxoReZUbQFuwC+2/ihW1j+EBee7uJ2d/6VYpftjR4qWAxV3UNwmCoLaaAmoMGZwQTUnq7fTPfBqS9LOZtS6bg9BovHijviNEbqpVlyRtx5HlskAD+9iOcTK3GMMQ/yTbdN3e57UKMGjxA0cBeRYQBCqvMROJBHWhfAArR1MFbS866T1EDiKsncFJCOJRsgT5Re3YEMPa+AH+9vKfVtbXTlfNZVoJGNEOFcEsJBvIBeuGI98oJT/LQ== 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 AS8PR03MB9486.eurprd03.prod.outlook.com (2603:10a6:20b:5a5::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8746.30; Wed, 21 May 2025 09:07:10 +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; Wed, 21 May 2025 09:07: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 v4 6/7] dt-bindings: rtc-rv8803: add tamper detection property node Date: Wed, 21 May 2025 11:05:51 +0200 Message-Id: <20250521090552.3173-7-markus.burri@mt.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250521090552.3173-1-markus.burri@mt.com> References: <20250521090552.3173-1-markus.burri@mt.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: ZR0P278CA0176.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:45::21) To DB6PR03MB3062.eurprd03.prod.outlook.com (2603:10a6:6:36::19) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB6PR03MB3062:EE_|AS8PR03MB9486:EE_ X-MS-Office365-Filtering-Correlation-Id: 025675ab-320a-4a36-2636-08dd9846de1a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|52116014|376014|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?jyWgYt3NjgVHlFsqiPHkZrBmw9K4YntuC27nFdGAqJG3N2e9/r/oserdmG1N?= =?us-ascii?Q?SK71I7Cir+ZpTBycycvTxGoqT9tjGNWmtqV0IIw0HYG0EZHtbtURx4ph8jCq?= =?us-ascii?Q?FgXvfou30pJtSXf5sb3en2/cCpCAFW78oMJTdfyGaMDU9qzr8gF1zMBvslmM?= =?us-ascii?Q?a2wWnXr+RG0wBKqo0aGDdZtEbW1WuF1ZgUGz2j9nphjjat4W7NGqMpaSnYuk?= =?us-ascii?Q?Aak+JM3qivJqmnLoimHYDsnT8kY/UsqhTPyTplvwsyijCGhZCVMWDwh8N7F/?= =?us-ascii?Q?/xhRqssqSBGO8xEAexZR3X6jcE+QP0i8CQ1gBP1xiStNBD1v0s4yIM11ivKr?= =?us-ascii?Q?D7sAQIjjF0X7uymR08GTBiANOeEhDI3PcI9BfQ677jQxYMlzshY8wRCEfZZh?= =?us-ascii?Q?ne+bJt1DFupkCpjVPdCW3SXd26jeM9UVouc9Pdpqnb/kXq2I7JNk5Cn29uQs?= =?us-ascii?Q?orH8NOrvCtQfQSWrnDfyJtW9aDCA9pn+Du5J6lXQzAAqlLVJGU2v5QDL84E0?= =?us-ascii?Q?UPpj0rA1p6e3943aJHHisrqhQpIZ469S6UzrVzBEF4ldxbBv7hfaMxYzRq4h?= =?us-ascii?Q?eHxlRLol8rsXqdk2hO8WglEMdYQvoPQXllbXQhTFHKj1qqGlx/hhi899e9ZQ?= =?us-ascii?Q?jjGp8zz5cI9omfZLj3sn3sZe0knxjiSKrpUOtw2C7iz5jAhA6U/xFcyaAqEr?= =?us-ascii?Q?ekQC8m8gR5fH5TcJ15QOdKb/ZojNH1/b7/DbWu0LRggDgb4YCzvMjkU1YUWh?= =?us-ascii?Q?M3hz0nnmznAa8cW/tdIbbjootKuxZqHCG+scCyCryw4AikMXoHzTrJljZuhl?= =?us-ascii?Q?1kipWjHITaK6/IKZv3fMmKPt0B5sEhKhapdg5kjfwp0eAofhM5imRiLyXBwx?= =?us-ascii?Q?2PNBr5stAskkcAIelNccIDyRJ3o5Dx3pzS6TuM/zxR3sK0O5XOAYjYfXMu/D?= =?us-ascii?Q?U+jvSzwOdlFmcFsPD8qn1oeGrz+nCev2f+EPNmUnrOAGT/2W50s20q3DWu74?= =?us-ascii?Q?LKxEYivTzKLHxA2Z2MLp+MTbmxAMBGD/6dF22e2nRohYYFpl3cHtHMUc2kVI?= =?us-ascii?Q?3NnN4Bw7op0ZvLn4MF6W/c51HDVTDQfvw7ito6k2RVvS9Wz5a02NHYu9X3ek?= =?us-ascii?Q?L3Js6Hz8ZcXonxKabJ4cuUIb6Z2ynGkYw3khZZLMeWmGIzQ9L2X2FofN8lWj?= =?us-ascii?Q?69tE++FvcuY0DsqgkkdeANplUlu5a/RmS/X9ZoQlxIC/rA2l7zysqSDsbCEr?= =?us-ascii?Q?LjSOAc/itUMOty8CKI81jlinbHhA/CVE4n7ZgtLhjq+7jzTkoa2ktXJDwA+9?= =?us-ascii?Q?tSGTEKx1XaC/N/ETuvSNxCVCBjiM+PHSANomtPg1DpFfXyhSc+G1oaKDLKtw?= =?us-ascii?Q?rOk+xiJuI/JC2RKB/thQPkl79391gE0xn7W/ulc1sgKdZhR98ERR8MAFKGu4?= =?us-ascii?Q?nrzABs42X1661z7yZ087yAnfJ9bmDniCIBUbI+uq4uYXuIN31VGSNg=3D=3D?= 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)(1800799024)(52116014)(376014)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?sYLmyoBPQp0OU7tpE7N1ClQpgRDW/1DlcjjMkDTbOfUKHlxiX9oDYbY0A2av?= =?us-ascii?Q?TdcrVIH2tmUwWKbzFcPI97oKvjVk42hslB5foOh0eSXUHTxLxMAgAydJxNz7?= =?us-ascii?Q?VR+JuciwyLP4fKWy7zNeMxSKMNgTvYMI7pzxgsysYtOreuokSt8fp2CAe0jU?= =?us-ascii?Q?i6qS7vv0NwCalElJCt52p6DCeeDN2LyZwmFQdG27JiXU8KG4VFVBDtm9aQVU?= =?us-ascii?Q?CfZeaO0GshNppKIQ006IMUQlXa5kL7WDqcjItf7ws+hVfdxdE8CUEvninQnW?= =?us-ascii?Q?YL5xBBYc4liTQ7yeOzmwcK/jlVGmzNioxnidjRaI3HuUO3dXcVMhoSUmPAy5?= =?us-ascii?Q?qb7ThSNtJqV+0msTVv+eYQC2IeyekgS4pCv7qAdkkAG8VZLOjwwbMFpr9Vbb?= =?us-ascii?Q?QOZgwGcOeRay2VunT03U0jcA5LbB4PiT8RQsYnEkOkte5ZidGZbDW1RDim4w?= =?us-ascii?Q?dxkeIYtJwZtukGG4DfManVRXfPvGRHnI4IrtHkGVjlbRu28XVBBBNSd9IdLE?= =?us-ascii?Q?99xA6ZwqW39O79lzLP+PcqPJFTjxmIlHgF8CnpFLW6jd1ZC3aWB5COXQDK18?= =?us-ascii?Q?ANF72OSWsmZwZJifxrqd2bPVhO09z97+31ZlWGf/bXCpvicIwmQzsIn326rs?= =?us-ascii?Q?hy/U5oNUz+H+BwdsC6aWce9Q9V6JqQuQPWa8TD4WinfKehRGywGXiFiKEIpc?= =?us-ascii?Q?nPctxO/heNeVjXYT6J1lo/vqGYO1moVJD8wAaZY7UKPnHrmTxo+hHnX+pqE9?= =?us-ascii?Q?c88VF3PDl0t7ks+NdPulQJNIhtX5koZbFtPgF7Y32NivfAO7ChqaNqXJrztq?= =?us-ascii?Q?OuRxSb/nGur8GgU6YuHukMuzDr1C+tv72sXAeQaHbrBWTexaSn/4MFJ1mT6/?= =?us-ascii?Q?Y2427KN8K+sz9tWz55acRanDKo+wyVPn7eRu62ogNLoDETsss7k6aUzzq0pD?= =?us-ascii?Q?/fHMpYGUpeFgfaJeyNLsdOIXwxmZ4qz7FMKNEjMeTD3/6R+OPOcHyF61CKXx?= =?us-ascii?Q?+AGcZU56yh3Wk2tCnD4vCjjABefQk5UCp+CD3mSKzSB0rjEja7sCYLnLlli+?= =?us-ascii?Q?v7TzJuk+AWOboPmBul9y0zgAIM9k2aG1qKIaQVSRZL10FxlirfdlTpsek+/g?= =?us-ascii?Q?yyz5sIqFN3TpkfklJ0M2kMdhPQoMmOXU5/n2UdN27o9kHy4kcqooy8WNlE1Y?= =?us-ascii?Q?XiGA8zw5MNwlJjFYe96YCYq1lFuQY/9kLcgMt5C3yK2oOP1w1I1cl+Nk1xAd?= =?us-ascii?Q?NtF7flpO/qsjJKC7R3FNAU7/7yneKCiFeBJnkM2OYvZQM+ftylV+kIGGj9nS?= =?us-ascii?Q?PcGswS+D1Lpi93boGn7BMC7butcCqx0RVyb5bIwjjEYzr5X3irct/gDnFjKO?= =?us-ascii?Q?Oa5qdqe4Cr3phoiYWhtVWZ9j1dr5iqeJtnIbBqWUDXQmEf7NSiEFXMwjZCNs?= =?us-ascii?Q?6LLt8Cxg6NXgcXl0yH5qNFGUfmbzzRIM+X15HTybErYSJZf13SzvC04Xd+vV?= =?us-ascii?Q?TDPK8ihKa/aSjRCrrmWESroVxXkFfvS13MmBsVCvl8ahrKyjjPsRS6/WQ4T3?= =?us-ascii?Q?x/zJZuYdSiDU4j68aSuwrxoS6wv7Oy9N1tNkwB/x?= X-OriginatorOrg: mt.com X-MS-Exchange-CrossTenant-Network-Message-Id: 025675ab-320a-4a36-2636-08dd9846de1a X-MS-Exchange-CrossTenant-AuthSource: DB6PR03MB3062.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2025 09:07:09.9002 (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: PiVEeTi/qgm9eYY2mYQbpAoYHksZA7uCVBXPn9Cv+44w/SPyPdZ+2joe5x/jsyuirA6Vqs1tmCKVSDnjiy/Rbw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB9486 Content-Type: text/plain; charset="utf-8" The RV8901 RTC chip provides a function to store timestamp events. There are three input pins (EVIN1-3) available for triggering. The input pins can be configured and adapted according to the connected hardware. Add document of tamper detection properties for epson,rx8901 rtc chip. Signed-off-by: Markus Burri --- .../devicetree/bindings/rtc/epson,rx8900.yaml | 37 +++++++++++++++++-- 1 file changed, 34 insertions(+), 3 deletions(-) diff --git a/Documentation/devicetree/bindings/rtc/epson,rx8900.yaml b/Docu= mentation/devicetree/bindings/rtc/epson,rx8900.yaml index 03af81754482..2682cbb9097d 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 =20 -allOf: - - $ref: rtc.yaml# - properties: compatible: enum: @@ -33,6 +30,40 @@ properties: =20 wakeup-source: true =20 + tamper: + description: Subnode for tamper configuration. + This subnode is only available for epson,rx8901. + type: object + additionalProperties: false + + properties: + buffer-overwrite: + type: boolean + description: Set the buffer mode to overwrite. Default is inhibit. + + patternProperties: + "^evin-[0-3]$": + $ref: /schemas/types.yaml#/definitions/uint32-array + minItems: 3 + maxItems: 3 + description: External event input pin configuration. + The configuration is an array of tree values and contains + "pull-resistor", "trigger" and "filter". + For a detailed description, see epson-rx8901 datasheet. + +allOf: + - $ref: rtc.yaml# + - if: + properties: + compatible: + not: + contains: + enum: + - epson,rx8901 + then: + properties: + tamper: false + required: - compatible - reg --=20 2.39.5 From nobody Sun Dec 14 13:49:50 2025 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2079.outbound.protection.outlook.com [40.107.22.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 7B61C23A562; Wed, 21 May 2025 09:07:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.22.79 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747818444; cv=fail; b=Tg2BBxSsC9aNOwlY4tJXFPvvQbK9vmF+TYSobjlHR4G/4fq276HvKwi9O6tH9AMtHybwyIJXonKqK9x9g/SRBzVn8+4za1ciUzkCVzG1VKUNnwQxGkfB6emmfvllLDI98dkROtXIWRzXnyVkf4ainMRdXLMjKjxFEue46xh5ydI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747818444; c=relaxed/simple; bh=Ppe/91gWPFCURxQR2dJN7lEPhfGQOQrPY+1SqzH7S58=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=Tf74oaXBZGnRpWKPJOLJnLMiM24g4tSExaOXdBUonigKEmF4YVOoVFVPDcrsHYcCRrD3L2E9Dw/pXpoMLhDBUe1JUM01GpT9JWYRf3xgRr5xLoDVrGiSESH/qWM/U4ushBHYtTd8cg00FNK4pM2Zm8crED/g010eTqZdrYqWa7g= 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=xkKiicSv; arc=fail smtp.client-ip=40.107.22.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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=mt.com header.i=@mt.com header.b="xkKiicSv" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=r60iaFwXrXAEYAmQAnnIJxDF5b5r7WhDGH4gAykzKwbrnFBX5WfcGy8OvVytCZdOBt2nO4J24UMCesGfbCV3/dM2V0PiiXfOOUIeH823UcGiCdQk8uEBlHB/VZSSA04M0OAu/B6RlM86JnBj/nM+nfpNKrxbmgu+BB+WqajoXnburLDEz/ceDKq9pHRWEDp/hQROhfLyRfBqQiRvP0tJD+Cd6DkP10foOX76SSt0UA7XE6ROw6pywmsy7W4yIkC0kbIX160izhzCXQxoSeNx4fZyTnoxHYGFWQSpwkWPknb3Oy/1ByYps3CRY7X4N8VcVhfc8coDVAgiGByhitmX8g== 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=7gEp0fYdO7cCt9gEMnj11S8aYPZfloz0/3CSjKw2bs8=; b=YsUnz1vY6snFJcXIJTMmh/LIw9oFsQ2l0Mf+AS8dhqt1n104Ghj2iwCoCaC4o/txOqdKSK/Av0CWCbGKUhf06/cpe2442WDX8XuOAeF5DjUDhsxXcyAw26/YgGEJj9rwX5/sQ321AWBJpFMI5/OhEEr9amnQgX93BmpwVhS03GrOUYdZxV1RZLH6VFS+FLzKIhWAhdMaIT/t74/DKrVrM+tf063y7U6iP09WQE1eL2IfDH8xs/zlCOctVgQ2/ngWkOWUP6N1JbstG01ABwib9qudCHuUn4qXszetqifobU9r7V9XDsj2DO1vUg36HM4984j39El9I2gD0SM8lWmvUw== 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=7gEp0fYdO7cCt9gEMnj11S8aYPZfloz0/3CSjKw2bs8=; b=xkKiicSv6TSy6ZybfFQjAaviDAKfNPvzFU2TvNkNRMvivSZKuOBTu1NW7cL8fxavD6WSqvap3HzeTAq32w1QS21UGwTmMbdFNlcQugcpRiqh42aP/tN22D9ftBvxiSvjROJPA/Is2KUZTyRrCimSemmofT2nQ/VwhQqX6zzPc9xB1yA2IK7He6nl2bFg23Z7fdbwMqLLTsqw7Jepm3ZwZAKk00VZZDcA0iWwiF7kz9XO0a87HAxDzNSxk4tVcZTaGqJFoqNv3Q3eDZYY75IdiIMJgussg+B0tuvAh9Y1EKLOAiSeXmnTLa5BoiE6mbiXCLf/DrYjmSItsRuwJN1U2Q== 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 AS8PR03MB9486.eurprd03.prod.outlook.com (2603:10a6:20b:5a5::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8746.30; Wed, 21 May 2025 09:07:19 +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; Wed, 21 May 2025 09:07:19 +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 v4 7/7] rtc-rv8803: make tamper function configurable via dt Date: Wed, 21 May 2025 11:05:52 +0200 Message-Id: <20250521090552.3173-8-markus.burri@mt.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250521090552.3173-1-markus.burri@mt.com> References: <20250521090552.3173-1-markus.burri@mt.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: ZR2P278CA0075.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:52::12) To DB6PR03MB3062.eurprd03.prod.outlook.com (2603:10a6:6:36::19) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB6PR03MB3062:EE_|AS8PR03MB9486:EE_ X-MS-Office365-Filtering-Correlation-Id: 5a81e9a0-79d8-4c1d-2d6a-08dd9846e3c4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|52116014|376014|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?BisZDMoVvw7BZYl8l2OR7Mzcs8n+0hvujoBK4sO3uBy9XHYVuSShIZpO2aKo?= =?us-ascii?Q?s2unoM3dxH91y97v79by34rqMWZXGLrPEggf8R3lU7/W1uChXlSxr9ekMeR7?= =?us-ascii?Q?qVZ7Tm3F6+nPP3Xewq5jE7ErBlhgTs1Eo913Zwlc1yfbG4eV7UqzmR7aQL5W?= =?us-ascii?Q?aapL1ivTaUnBc91PmdrXihkeeKETDu4GFdgoOLTgFnjLBbkAAu/SdIftqXll?= =?us-ascii?Q?s7B2ypy2s/cztzCSPHGYI8bj6hAc6mH6CyZHES8iF3Jj4bjrivbfkjkf2Bzx?= =?us-ascii?Q?B7SOK9N2I1hKeBHnMn/lRip4sKYgPna1/MZ4GeZwUXFAdyCrb3O8NAiuNV0S?= =?us-ascii?Q?RIWuJdfvpknoOfkC10+mKMEF8v+8rytrLA3rOqAkZvCy67IpEK+Oi5NGfwEv?= =?us-ascii?Q?XJ2dLUlurIDQXnc05bl2hXAkCAZsra91JzUjxqRZzgORK7lF462mCTUcOYay?= =?us-ascii?Q?Px74mjAXdCXHQ9HdFdwCvBF6b+Eqjc6k4XAy8kPepIdpv4j5fdkcY1m4hUpK?= =?us-ascii?Q?rUId9oDg8w4o+7gF8Tz468SGmBkBmmZtngJBUsS/8QU1VOvCuRRZxXVAo1h+?= =?us-ascii?Q?SN5986c3iDkNos1LLfqp7pySfxl9YpBQCPbNCcIabLEDH4dF+Lt91g0RDQCZ?= =?us-ascii?Q?xIYm4PCc6haaS+X8V5oXBsursf517gi/kYqw0/pU4FmKmPKdKl7slR1NyP7u?= =?us-ascii?Q?9d+CMkFW8NFjPxuPITqtyvYlJA3A5JuVcRgA6pXmFqdi7CA5AX+4DsG9sB5U?= =?us-ascii?Q?0huC4DEMLr5il2Nob9zJrG1HFn7LUDn5dVa9YOMQjnCyXErsSMU7cZqh7lkd?= =?us-ascii?Q?FAjj8Frici4wwk0SZIRVB++sbcgMKGOHbEg1DvvM5hI20hVooJZH2ylnNzz3?= =?us-ascii?Q?5BAZwQawn3eqqF3TkDNkxxf23JDqkUGXnkGBrj+rN0coDF1FJQsjpgrcxZjq?= =?us-ascii?Q?OBncpa5G1rWO9gaSuxbjQrZRF22mfEcGihUqwIZxr1UfD2uYkVmc7qXxlA09?= =?us-ascii?Q?/e+56GigTg9kKUqufE7pdxpZvjXNYfWNoegxp6jSEOQpUjx+GVZHwKuC91x/?= =?us-ascii?Q?wTJ0Krso+28fPHO4iiGG9xdM2OJN4MaoZc/ZXiZA1sS00nCMFmOravywXiQ5?= =?us-ascii?Q?pHi36Q4p5PoI2kKnbi9GNsbPbX9V4mk8euhSxp1ACRGpd7DmiR3sLlEgyX0K?= =?us-ascii?Q?OxkeIgdbv9XftVa/OBZrfrjobOqyhdCdiI4PeIImYexOW5JESYTR8cztU0MH?= =?us-ascii?Q?oP1WF0ze+yJYN8N8DPKUk0lWrkTmE49Gstj+EjpYZ0RT+/rFq8rpqhY+vigU?= =?us-ascii?Q?L+u29favkDshgoN+SS4ee1UjWxeW4x+BfVgkmCduRsPFw5LciPk3LMFWy7aw?= =?us-ascii?Q?W56I5A7AYTlGyofj1eZ6z0myjS5FsaAaO8csn4+0pAni95AyWQWz6dhMRuJJ?= =?us-ascii?Q?LuBKpNN22Hm7FD+QwoWV9W1wbRlyXVYt0o5v73L9GagTdf7+V1JV4g=3D=3D?= 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)(1800799024)(52116014)(376014)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?zHfTapK23TooWmBLicrhDa94V2ZThqmYGtds5iwIqx/cwD4/UYk1jWWw4/qo?= =?us-ascii?Q?Ugc5ScsiIQqf0/3VDpaDiZWEoy5e9qPKSMWIJEd9AXbjGHbpivAofWriLvrx?= =?us-ascii?Q?jZD3TcE6ENKHOPSMng3zeSiEJZFX4XiK4HasAllZtXx/+NwShKc2N1Wi5C8o?= =?us-ascii?Q?9Mu/DU76hOaHxNR1zMjDVYqu0Fb+CyJPnW9jytFBY5dLI8oiA2r36O37/XCB?= =?us-ascii?Q?2RZFQR27PwsyRDTE7ZvYDxOZsjRkZZuKACZswQn3+QtZ8V85jaH6lFVk13mk?= =?us-ascii?Q?zpJzi5kGW1poMa6ONhw8FQUoTlfSxu0DVi6+Aq510eCEHZwHqaBHD6aYOV9I?= =?us-ascii?Q?lZyzmRDWA+MEgchE/tB7wfEYWUSStVq00ZuZsbkcmO+5PICBAsrIU8Lz/gGA?= =?us-ascii?Q?P96R81Q3YYfi2ITiX0kvAWO7SxinUjyn2Y0SvXIgH1mboa0WzcUERgkEHnUZ?= =?us-ascii?Q?Y0ofzTc1bVXl1NN2reeVja7dHjHbDZj91WoZJY4wpluQr2vHZr2YveznUDWu?= =?us-ascii?Q?Oplj/lPm/zUOoYp78yCHyQg06BS317/l5HjBO2RF1kZWMJ9L+2r/6djw+21I?= =?us-ascii?Q?baoW+hiaPpWC0JfXXYe4odgXLPXJ2/zFgs5w8Ka1lnRgfVzz6ci124aucmHu?= =?us-ascii?Q?Lx+et4soBqe21sWWuBIRcKaNNYJZIXRDpzUcWxAkqSHzgiWcAbAZGhZzyMHO?= =?us-ascii?Q?ihvLY8bRzZh7ErOZOinCQiyH1HiEQ5LdJ9+X4KQgIEJmABAuGQKYSRhcfr6m?= =?us-ascii?Q?mKmf95xCDxhBmkVCiHMSK8xj0GzxN/qQR5gYTo/87+6FVFU19H4JipV9P0FT?= =?us-ascii?Q?6EhG8S18pMcRM6P5cEYhinu3F7HVPNuh/HJ+daPilGUJ92lX/qI9yRMHlArS?= =?us-ascii?Q?I2vElUCbotdyEoD69bPGqyGV4w4quZ7nfUQN0qxGIgVhrTmgjIhdUqU/d1d0?= =?us-ascii?Q?Csuw0+3DDElOy7d8qoJ0AxKH85rbhT7ysTVtiunFZreq1av2ITO9A6gbXE6S?= =?us-ascii?Q?wMEpHfc8wrq8djeuUqkfkSOYKNL3m/D4zURG7iRyvs8AGRDN8whTYwn6J4Va?= =?us-ascii?Q?cuNaw/9JdgYbPEIhBDLdmmTFcGXPUflxlvEMs3aRgMgWcPP1sxGO35hh0Pnx?= =?us-ascii?Q?l97zC/UmsV7mbTBsYTzPQwfqCfFOyb8cMDz6SAwmcisYU3UDL+8ML0pM5HMK?= =?us-ascii?Q?aONBauUsOq6tkqR6KX/j/Z32HG9NVfU8mOWzhsbSSSBENtn8TXjxHgRy548A?= =?us-ascii?Q?1eueMDobYkdwMI71bxTJfkXzrVs7hIg/mNbbNiSWE3zwit2T7bBGbZWJYpYx?= =?us-ascii?Q?a7hSfj9APPk1ZMfCgvl5sNzlGnMlBvJZRWgdVaa56uZ9zspEJevnP05q3ILs?= =?us-ascii?Q?sj7rcI0Nmt8Ax91zSDQfu3MR0lcYbv8AY4bnVkaJx2EXFPWA5hoQWz6WdFe1?= =?us-ascii?Q?VCIOgGB0QtoDry6VywHeri4MqJJZWQSYanCtDsayeeIXLlTNYIPRcoaxIHfE?= =?us-ascii?Q?Gj/7Te9rWpGcYOYwzI02WRrADoOvKZqm/EoBNl51fHAvCBWSXwuyT/z3XB0Y?= =?us-ascii?Q?zlpXzMNl5RqJkdZ+DIdk0EpsZsVxGHR3Yu+RJVBL?= X-OriginatorOrg: mt.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5a81e9a0-79d8-4c1d-2d6a-08dd9846e3c4 X-MS-Exchange-CrossTenant-AuthSource: DB6PR03MB3062.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2025 09:07:19.4095 (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: JdCq6weGD9DFEW/GK1gHwd7jD66UlGT0mVLeClLYUHOCEWLdro6EgB0Z+QObv05+pMzLuau6e4rWhYB+YWglPg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB9486 Content-Type: text/plain; charset="utf-8" The settings are depending on hardware connected to the input pin. Make this settings 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 | 95 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 92 insertions(+), 3 deletions(-) diff --git a/drivers/rtc/rtc-rv8803.c b/drivers/rtc/rtc-rv8803.c index 39d5881ba261..e3a4e9eaccb1 100644 --- a/drivers/rtc/rtc-rv8803.c +++ b/drivers/rtc/rtc-rv8803.c @@ -114,6 +114,11 @@ enum evin_trigger { both_edges =3D 0b10, }; =20 +enum evin_buffer_mode { + inhibit =3D 0, + overwrite =3D 1, +}; + struct cfg_val_txt { char *txt; u8 val; @@ -164,6 +169,16 @@ static const u8 evin_flt_regs[] =3D { RX8901_EVIN3_FLT }; =20 +struct tamper_cfg { + struct { + u8 enable; + 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; @@ -171,6 +186,7 @@ struct rv8803_data { u8 ctrl; u8 backup; u8 alarm_invalid:1; + struct tamper_cfg tamper_cfg; enum rv8803_type type; }; =20 @@ -769,7 +785,10 @@ static int rv8803_ts_enable(struct rv8803_data *rv8803= , u8 enable) =20 /* 3. set EVENTx pull-up edge trigger and noise filter */ for (i =3D 0; i < NO_OF_EVIN; ++i) { - ret =3D rv8803_ts_event_write_evin(i, rv8803, pull_up_1M, falling_edge, = 0); + ret =3D 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; } @@ -787,10 +806,11 @@ static int rv8803_ts_enable(struct rv8803_data *rv880= 3, u8 enable) } =20 /* - * 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 =3D rv8803_write_reg(client, RX8901_BUF1_CFG1, 0x01); + reg_mask =3D 0x01 | FIELD_PREP(BIT(6), rv8803->tamper_cfg.buffer_mode); + ret =3D rv8803_write_reg(client, RX8901_BUF1_CFG1, reg_mask); if (ret < 0) return ret; =20 @@ -1125,6 +1145,71 @@ static int rx8900_trickle_charger_init(struct rv8803= _data *rv8803) flags); } =20 +static int rx8900_tamper_init(struct rv8803_data *rv8803) +{ + int i; + int err; + u8 flags; + struct device_node *of_tamper; + struct i2c_client *client =3D rv8803->client; + struct tamper_cfg *tamper_cfg =3D &rv8803->tamper_cfg; + + rv8803->tamper_cfg.buffer_mode =3D inhibit; + for (i =3D 0; i < NO_OF_EVIN; ++i) { + tamper_cfg->evin[i].enable =3D true; + tamper_cfg->evin[i].pull_resistor =3D pull_up_1M; + tamper_cfg->evin[i].trigger =3D falling_edge; + tamper_cfg->evin[i].filter =3D 0; + } + + of_tamper =3D of_get_child_by_name(client->dev.of_node, "tamper"); + if (of_tamper) { + if (of_property_read_bool(of_tamper, "buffer-overwrite")) + tamper_cfg->buffer_mode =3D overwrite; + + for (i =3D 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].enable =3D true; + tamper_cfg->evin[i].pull_resistor =3D evin_val[0]; + tamper_cfg->evin[i].trigger =3D evin_val[1]; + tamper_cfg->evin[i].filter =3D evin_val[2]; + } else { + tamper_cfg->evin[i].enable =3D false; + } + } + of_node_put(of_tamper); + } + + scoped_guard(mutex, &rv8803->flags_lock) { + err =3D rv8803_read_reg(client, RX8901_BUF1_CFG1); + if (err < 0) + return err; + flags =3D (err & ~BIT(6)) | FIELD_PREP(BIT(6), tamper_cfg->buffer_mode); + err =3D rv8803_write_reg(client, RX8901_BUF1_CFG1, flags); + if (err < 0) + return err; + } + + for (i =3D 0; i < NO_OF_EVIN; ++i) { + err =3D 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; + } + + if (of_tamper) + rv8803_ts_enable(rv8803, true); + + return 0; +} + /* configure registers with values different than the Power-On reset defau= lts */ static int rv8803_regs_configure(struct rv8803_data *rv8803) { @@ -1266,6 +1351,10 @@ static int rv8803_probe(struct i2c_client *client) return err; =20 if (rv8803->type =3D=3D rx_8901) { + err =3D rx8900_tamper_init(rv8803); + if (err) + return err; + err =3D rtc_add_group(rv8803->rtc, &rv8803_rtc_sysfs_event_files); if (err) return err; --=20 2.39.5