From patchwork Tue Sep 10 19:07:18 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 1983467 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector1 header.b=gjLAY4YH; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:45e3:2400::1; helo=sv.mirrors.kernel.org; envelope-from=linux-pwm+bounces-3192-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org [IPv6:2604:1380:45e3:2400::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4X3CtN1XYMz1y1s for ; Wed, 11 Sep 2024 05:09:16 +1000 (AEST) Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id A9BA4287F3C for ; Tue, 10 Sep 2024 19:09:14 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 4A3C31AAE27; Tue, 10 Sep 2024 19:07:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="gjLAY4YH" X-Original-To: linux-pwm@vger.kernel.org Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazon11013052.outbound.protection.outlook.com [52.101.67.52]) (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 48E691A7AD6; Tue, 10 Sep 2024 19:07:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.67.52 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1725995272; cv=fail; b=I9EeAFzu0eAWhwkVrWv8W9Qw8wzFOFLGl/voGkELbmtthFvo7idk802eIbF/a1gFRVgCi5lshll5uXQw84mRfr4OCleL1czWe4qHxhoRBO2qRhp38/HshTw5ScBLLhN8pQZQ8A9103HY5Wmfh6Npl+VDN+dbJHCcrDkwIofQWEw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1725995272; c=relaxed/simple; bh=7cPnhCSJUSFQl0yVoLJxwbOrnCIHH/QeAWGfdDS7p3I=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=k0tXtE+M2dR20Zqw1KIpjjbSfcotKUvmtIUSC6blsqZ4XFqT2EM9Y5+yhU0i7BQsvVvJic7Z2jNK/DeNM51zJHMViaw/QkS2OcnLDJ5JEdaAzxJH/xt1vHBgh+ylblm7HgI+S4GvZwKwJsJ/aAYo/NXQyj9QXpRP2wAG6BQrZHA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=gjLAY4YH; arc=fail smtp.client-ip=52.101.67.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Op+sTRss2a/ybrnVnsykXl+jkyBHi1BV2IU4skeSKYRDIR1HfS3yid3h0O8MdiRlDnVozxbtTt4f1CnjmCKm+oyWc1BzcNVDqDHil1BOIpUCkM74GpPK3XJ/Tga4BgxWj6s/Si5vWQ5zFmxyV1ylmOmjNhDa4CwlKqsel1jxMq3J4aOCpS/6j09GrpekNFGEgElbB26/lfDo9rIi9kBva+edapDX1QowSXd5gM+NFaUZZpks3Hf9tlD3It6uSzFpz2epYBMRQekf7wmvCSbbASYgnJuen9zRnmEdZwy20chQVF5VQuwdt0XOqsw1NmZ4Q6b8j/1y00klaPO89DCE0A== 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=6S5qPC9dLd+uFJW3y7aEhwRdoqpfhTFn0U6wBratWY8=; b=EEUCoRAtnwe9wVVnbGbNLF42pa70bLlrkZRYKHRQ/pKc8e3q6iWHK7ZqAz9yrGvuCL3fdBbb3xkD+KtjNPSsdkBNYKN+kswUYZqYJqrBM/mcwVLCjVcGwkMLu+z4WjVPaS924w6ooWdqh9i4rBdkkfhiZLoYE3pyJ9MhjL04lm2tiaSS1HxGrz7ryEceqDv7dn1V20lFH539YmbyV4EyySNYehOnEOiaNOEVcop+7Il0OnM9+ZY1GEaGtSMRzMwO4B7Rm+KuBMcD7gxtEljxU9X4qI9HD9b0A7YzZIs8i4zcdiJex0AHdpz1iqLfdZl8GU9iq96aIzSXm6dyQsNerA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6S5qPC9dLd+uFJW3y7aEhwRdoqpfhTFn0U6wBratWY8=; b=gjLAY4YHP7y+JL7bJrsVz4uvKu/W8KxGEXkwQTYb3F1huOA3iIR4UvdESnf0wcff+jyUpTWnNsrK2T7wJNI5IyeUGLByRoaak3k1HQW2YlRjOErPrl/cD4gS4zZZnZfwwDs2OkAH55ObdLI0i6pEpUZNaRuVHn+2zmmEdePzwKBmXCpb8SMkEU6uH1NymrA0mKisXu62JGyjpvbuLsWTVbT7iTaLttHDDfhDHJPUxf8cPkN7g56Vtg/k20RCYwtCE5gnN6nneEggsgeDfYEfxnWVwBgTQXigfJL8EUnnw5vXeo3ITAFjO63CzJZu8KlCFqXm78oVO6GuchCkF8+iUw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) by VI2PR04MB10115.eurprd04.prod.outlook.com (2603:10a6:800:21d::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7939.23; Tue, 10 Sep 2024 19:07:47 +0000 Received: from PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06]) by PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06%4]) with mapi id 15.20.7939.022; Tue, 10 Sep 2024 19:07:47 +0000 From: Frank Li Date: Tue, 10 Sep 2024 15:07:18 -0400 Subject: [PATCH v3 1/3] dt-bindings: pwm: imx: Add optional clock '32k' Message-Id: <20240910-pwm-v3-1-fbb047896618@nxp.com> References: <20240910-pwm-v3-0-fbb047896618@nxp.com> In-Reply-To: <20240910-pwm-v3-0-fbb047896618@nxp.com> To: Marek Vasut , =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Philipp Zabel Cc: linux-pwm@vger.kernel.org, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, pratikmanvar09@gmail.com, francesco@dolcini.it, Frank Li , Conor Dooley X-Mailer: b4 0.13-dev-e586c X-Developer-Signature: v=1; a=ed25519-sha256; t=1725995258; l=1015; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=7cPnhCSJUSFQl0yVoLJxwbOrnCIHH/QeAWGfdDS7p3I=; b=Bam3qE7LdW7I8HK40G++J9Q0EB+MBDWjitKUiXZu3VvyFX7WYHIGXD5FQeHsAq6Y1vE5HF6SR KunCul3BIqIA7SWUVYZMgADG8IdDa7Xoe9WV7R/v2+/MzERRUsmErMS X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR13CA0145.namprd13.prod.outlook.com (2603:10b6:a03:2c6::30) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) Precedence: bulk X-Mailing-List: linux-pwm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|VI2PR04MB10115:EE_ X-MS-Office365-Filtering-Correlation-Id: 2358c602-47fb-4aaa-97a0-08dcd1cbdbcc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014|52116014|921020|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?cZAAP8Ey5BXgnY031Zjh7FcNfSnrsmx?= =?utf-8?q?NJqbqmAkz8TXmGHpXQ6PVXMkNZV53C8gWmt0DPe3ksv1BAv11TwOf8+Z1gXEmnBBb?= =?utf-8?q?Xb7BWrrgvB8S+YTxyB6/PwrS19cpmnwSyrGN1VW+yr8sr1aS9qBg9M6RZmalkcWLM?= =?utf-8?q?BROQn6e3xc0OEPViZyIgAVGfQ8mKtzpH333M90ZGbOneiguEatcSMvvWUaD4hbOVi?= =?utf-8?q?H5faCRIu30aerPEstQLXv0Y8EgL796hKf10zDKc2aeyeSsy40Ug5Ptqn5ilXAovZu?= =?utf-8?q?VWg7fNYRwUAv2COSQdut3FMbCLfrctVJ5zd1FyMax7UFiX3jjfUvQ9NxNsyPl0zhh?= =?utf-8?q?dHlWC2XAsl2DY4oqUzGuBYOsu3WeJGVupPZqdci4aHVgrwmu1JYHN6/i3Ycqbp26I?= =?utf-8?q?FBYyzAZZ7+6zD78QGkSZwjuHSSIzZQWrbHpM4lwPX74IBx/LskOVoGgrfebjWQMBo?= =?utf-8?q?YD9QQBxGOB9KQkWTK6vagbRiGftVMUdB2Y9lUk53QVin1FiDBAyXJYt3MH9cCwN6v?= =?utf-8?q?m1ei8gX3lnRxodWSxPdPGmjrGJop+CtjA2IU/K3uy/jMzdIY3vm2wg8m2xA0VP1iY?= =?utf-8?q?4VVdFdG7WXwm4OMpF43k2IFkIh37Z73MMQWbxS/gVVyYrbeO2dyi79gvrM7RFZ9Az?= =?utf-8?q?JLBGSBmcXXq603QVe2Whl6YLveGL5tV7T16Gph54wbfH+/KGlw+0pdSUWunMv0J4S?= =?utf-8?q?wRhb3ws9j9xlADu8umlv2/klHZHofYNxvYzCDVdW+RliZyxk1mNdtlu+d0XYdrLaB?= =?utf-8?q?c8NJsh2t6tUG3hxyEtxh250WA6llY79YPD+EIl4K0lmL8TobxeuOuHGCvPuc90Nzd?= =?utf-8?q?KDAAXJo9Oxsg3iIEO0YtX6MPjhH3aGjtZE2O6lA33sc3eOkTQWcLzZ3Iww7lh3Pqj?= =?utf-8?q?XbiO3SpjV99SkeySEg/2+VhRcvIuoWVxPXMbqX3JUBDmuznSF6olc6/XVA+5GKuZz?= =?utf-8?q?yuuu6mPhX1HCtWGq5z3dns03S8T1bFyaACopO5trz1jX8nx1VuTgha5tqdYVgceQG?= =?utf-8?q?xsyzoNnwF1nwZj604uU7Bgdk45JuYAJSHEAys+mD1F8BCeOFe6dZKRugKHC5ggZpm?= =?utf-8?q?ckjTMXSzMfu84kDnXfm8vvNV5i7U9mbt8/qxpXtmjwQRrFh5L/jiuZCgIRHgMK+qL?= =?utf-8?q?i7j81dlFIzzqHzeEQfowEx97vyhHFPoMoeMz+KUsIgIiWXkHBS/tFD7LcmdBDmtDF?= =?utf-8?q?Nor0zOt0EeIdWC/f21Fvd1oANhNZDz13pI82OAtQF4C6OpFpzqHGFjJIx3q88hyB1?= =?utf-8?q?RxJpzW3QC8+e/tGpWiQfaH/nUC2RBPK7rPLleFcSmiQ92J0yeFAM0qq9BcCsL17nN?= =?utf-8?q?UJNHs05V7eTiJuU/udMLEVjY7trmMaGzrdc/E7Kus+WFEDKRBT2Fae8=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9642.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014)(52116014)(921020)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?bdCYo+sExvuwlnd7L0O6s2lYvix8?= =?utf-8?q?8rZaS4f6Y82f6N2JbgNBNoMiAAl1roME18lWyMmKZa/Hiqp8bRc+g4uiTcZ/6D/dE?= =?utf-8?q?TReSQYczWCXbujyD8cw8baer8wwYcz6hAi1gX0SxgsYgL5DeRCEURi5N4ZuxZXmSt?= =?utf-8?q?GpeGGDxQLDN8XiQwyAl1YdQgYzgB+WIqd76mux87PmKhLK5OOS3fD3atE/zrdWk2r?= =?utf-8?q?7UCbvop7aOzpm3ltGvBUeMSnHYB/HcjVsTJaXERDZCg4kKVLETtA4Et14oHZ1qVzu?= =?utf-8?q?QDO2LItAF0kG0ha/WTZljcOdJGuEUPcKmel0P795kjHnFiNyex85UF7svrG/e4mzo?= =?utf-8?q?hn026ziju9BfSVR3R77MfubdeOnb3oCkPlRXPyg8lHs7onZM5uO+ah+UwHvHbL8C/?= =?utf-8?q?niBpYQXHRdcWPzdeR1PpHoIGFC4bjkt7dCIyFbTkmrV0pGbsV8MFGxeGRWf6X/LM6?= =?utf-8?q?f5CODOPhSQmYW1UoIZLO7OdFQ+h6OVQY+4G7VzMFNdIYqpIG/7yorpWazjA6hCq16?= =?utf-8?q?86MF0T+B7YBfyIPpUTCa7wEpgg3uN3Yk3yJID8+aeru6ZWKaI4bLNSXv68A0ErGSP?= =?utf-8?q?HbjPe0E06cGH89Oyzl2vt5h62JbyqAE6bazQLcPvg8IrGkieEKuWsnrg/zXbNw8zb?= =?utf-8?q?gVGP2zckZU0xYlnXiwUdr0Xq2Slbd94xn3UiE2mxk/SStVbSEjJIrts+Xi6IPJNM8?= =?utf-8?q?zDA/b0cg9KpquGno5mfPbsAaqYsOt7qPGSFSyrI46/KRcLLY9c99fX3Nx1FhSOoK7?= =?utf-8?q?eWXJiW/3Rs5/ii9JXH/QUNG6Zw55dKJpsMTj3E+eU8BAwTFaZRN3bdwq6/ZF6Hlnj?= =?utf-8?q?Q9I7dqWY8KdR5WYyIAuAgFKUBy95KgzplvgXEcfIBdKqTBpHD6T8Nb9Pa12TkNe5U?= =?utf-8?q?9Co6iygnUUTfT27x3k1wS1d4kCbt53fIxi6iOoKZNdwCHCJQDCrQMUTMQYVx32/W1?= =?utf-8?q?CXSM/7bztaaJedC0jeRHmcmn9+1WQn+kDQpWYzT6XAdqa32o4jf3dZE9IYqr1mFDR?= =?utf-8?q?urQPEDWNvbOFDyBPAijWTmDWdaVvrXclhcgzkYoTcvz8FSclOv4a3s12wdLNwOm/B?= =?utf-8?q?JR6DOHBbMzpUXfFqkv8dz/bY6CSVOAH2PJditQotnHo7Kneu5NKu6LS31cifeRCN9?= =?utf-8?q?LsF1PlPXW3a4TMRU0iWJC6hHC0S3eti5hljWpTILPfU/1Yr1mW35tcloDD/FNTHbg?= =?utf-8?q?4VKBotW9HUUqQ6oZd9Tdxb9uuaJBnhWjnj9WxWBiY2eClsJZE/tK8qSN9cpxX7v4S?= =?utf-8?q?3LThtm8xZSVjmB75ukpizxe4lCeX+Rjyi6odpFF4HalWwP2ULGLDAPZRZnEkafsbj?= =?utf-8?q?eZR+I/4pB0/+WFVTyVTVFgOhxfePoyXAWtTcS+E0z5ChVosk5FiFLRRxdjXQD90WF?= =?utf-8?q?8Xkomo58RSgaasnovsKd+FryNC3HNqgPhYBp38ySyUgSOIE4jHSV/cvb6hnG5YjHi?= =?utf-8?q?+tsiy/rpgDsrbVhutmU2afJVJ0wU5Yfba4KyjN+r+B9uEAX/eSKPhamE=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2358c602-47fb-4aaa-97a0-08dcd1cbdbcc X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Sep 2024 19:07:47.6981 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 4TrNZ2CmquKfk+8L0bSiUTMfyg8ocuWj/qWVtKcT04dSwIjeBJmSKZFiWVnPVWWa7LVabEjQBgrvwjrViSbwEw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI2PR04MB10115 The pwm in imx8qxp mipi subsystem require one extra '32k' clock. So increase maxItems for clock and clock-names. Acked-by: Conor Dooley Signed-off-by: Frank Li --- Change from v1 to v2 - remove compatible string fsl,imx8qxp-mipi-pwm --- Documentation/devicetree/bindings/pwm/imx-pwm.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Documentation/devicetree/bindings/pwm/imx-pwm.yaml b/Documentation/devicetree/bindings/pwm/imx-pwm.yaml index 04148198e34d0..bc6991bd466e1 100644 --- a/Documentation/devicetree/bindings/pwm/imx-pwm.yaml +++ b/Documentation/devicetree/bindings/pwm/imx-pwm.yaml @@ -51,11 +51,15 @@ properties: items: - description: SoC PWM ipg clock - description: SoC PWM per clock + - description: 32k clock + minItems: 2 clock-names: items: - const: ipg - const: per + - const: 32k + minItems: 2 interrupts: maxItems: 1 From patchwork Tue Sep 10 19:07:19 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 1983469 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector1 header.b=ewNIZjD6; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=147.75.80.249; helo=am.mirrors.kernel.org; envelope-from=linux-pwm+bounces-3193-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from am.mirrors.kernel.org (am.mirrors.kernel.org [147.75.80.249]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4X3Ctn5NWBz1y1s for ; Wed, 11 Sep 2024 05:09:37 +1000 (AEST) Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 31A701F26899 for ; Tue, 10 Sep 2024 19:09:35 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 0E6F31AC430; Tue, 10 Sep 2024 19:07:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="ewNIZjD6" X-Original-To: linux-pwm@vger.kernel.org Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11011014.outbound.protection.outlook.com [52.101.70.14]) (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 D50081ABEDB; Tue, 10 Sep 2024 19:07:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.70.14 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1725995276; cv=fail; b=C9RWAK+bv3aVxyEb/kO1uipBjHiU+IwE85a2iPqTRk6kMH2IuMnAYwAp1l7enFSVkZce8z8VJNrj7HgOI/BeBTbX6grqBJ5O7KiBgnlDSHTeZA+0oIxjhC/yI/1iH1dXIC6hB92JrjktkG3ITxr6yzt5CKz4HQ7b1Z/v279ztSI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1725995276; c=relaxed/simple; bh=Fv/rjc6K+Tgi8oLugRWIWJNXxGBfq8oLj375Kdahgzk=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=UB60f205vOACOAv/eV4hyvJHZ9RN8ApQgLGHN9n/IU1waZl3CLuhlmWhi6+0CGx1SVwD+1uUqKgOXK1VnlQSZxhWrpOmErTffS4nl01ppPcA7oHZNwKnN+bk9UjZaPho1jf4SQ+ZdYg+kFmr7/g/8da+lHDXLw2/K4RxPzjPtBw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=ewNIZjD6; arc=fail smtp.client-ip=52.101.70.14 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=yDvlDqsiayQ4hyOQv/34HSiCfVQV+X08NzZCgWwbJC18SS6s1KTVaa1NZs0lNxS0837op18jXHJqx3ib8mXZ/C89+Cv0FtQ4oDEzQ6a+Z7+QG12fJ1COfp4/U3gJAqLel6Mh0aF2L8qzrto/uUh6VhfpDdUpqxE3DyeLqDgAcq37bU/yxE0Uy5R9sQsQnI9ie2FKxTpIOmAMtvSkwD58gEGry89Ymsb/OfZwlpFLbBl7PQU45QK1wINMqXEixR03r4tZTP1OskYCIISzcyIedA3od87phFkP8zo8PSzuZMOWdi5TK0cJGis0EVrcYsh0J9f7S9yuyr2sZa85jw/Wwg== 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=BCtkPEOKBRoUNpB05Iym30l5jBGSebnuQxLOOU+RHjA=; b=ZIfhrPRdujTRCKtUczVpnpOkV4vTSxnpmLw9SFkay/kUeJDa6O8mLHvK9uCuZuo/GG8ZGug4cCLQJNV20tapSS8CzhOOc6kSqbLdB7Ay3uir5W+1wex+xUV2IqZfl0IstzKdgXidgLQ3I5gDTgWnm89CaJj3G9bQ3/VKVbF97NcG3LxgwsO8KhB+qX6l9blT+qUJ7rn5BqdaCM60sicdkKiP0KuZoRNbUbohCI+SrU/DpufK9KEglGDia0PSULUqQ3E2XZOircT8yKIP5iNJkykq202pHbXZX685/wUojmIFMFp/Az2LxIQ0Gix1r9Ccht9eO28Q7MABa1sHaVmgAw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BCtkPEOKBRoUNpB05Iym30l5jBGSebnuQxLOOU+RHjA=; b=ewNIZjD6NcYfKkYu3Wns9m6Ic2N8SBH5BrhDrpGon45RzfLF2O7DXE8Pglk9LM5+I/WHq+56WwvKOcqgJchbd2XM2yZL7btMIB450IrRzfxZletbsEdVxOc/VJ7/z3VGBKe0FyIkr+rRttGrwFcFRJD8t42jj8fdszY7k5MHSUNpHmeldWUZcR76JfGtZJNZ7uLxqR4Nt5kR4cCX5iReeT1xvtSgQHMfEFVjI3xTx+2H0J2oyQnQYtNUeGlW6dHcx3MlyVP+LPT4sdDsyfqoEOmvcgn7dmtz+1flad1uLHiV4EXS9X23R7/do5QYUHrZia4SPpr27Ipzticq5TOCTw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) by VI2PR04MB10115.eurprd04.prod.outlook.com (2603:10a6:800:21d::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7939.23; Tue, 10 Sep 2024 19:07:52 +0000 Received: from PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06]) by PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06%4]) with mapi id 15.20.7939.022; Tue, 10 Sep 2024 19:07:52 +0000 From: Frank Li Date: Tue, 10 Sep 2024 15:07:19 -0400 Subject: [PATCH v3 2/3] pwm: imx27: Use clk_bulk_*() API to simplify clock handling Message-Id: <20240910-pwm-v3-2-fbb047896618@nxp.com> References: <20240910-pwm-v3-0-fbb047896618@nxp.com> In-Reply-To: <20240910-pwm-v3-0-fbb047896618@nxp.com> To: Marek Vasut , =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Philipp Zabel Cc: linux-pwm@vger.kernel.org, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, pratikmanvar09@gmail.com, francesco@dolcini.it, Frank Li X-Mailer: b4 0.13-dev-e586c X-Developer-Signature: v=1; a=ed25519-sha256; t=1725995258; l=4875; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=Fv/rjc6K+Tgi8oLugRWIWJNXxGBfq8oLj375Kdahgzk=; b=90s3Uzgics86Z6o3Iv4aNOpDLSGdNdKlOXofzw60xM3AW2vPOLSZfG/NPlWTEer9h2mF5ypWD n62gBae1B5gBJyui0M2Y1lfosNwzY+wm0s7KYLQFG0qfOInhIrQ6Mac X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR13CA0145.namprd13.prod.outlook.com (2603:10b6:a03:2c6::30) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) Precedence: bulk X-Mailing-List: linux-pwm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|VI2PR04MB10115:EE_ X-MS-Office365-Filtering-Correlation-Id: 5b708ad6-8efe-481d-52cb-08dcd1cbde5d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014|52116014|921020|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?CSE0rZbKKxWcGDqsBtLL4P7H/u/9coG?= =?utf-8?q?iJn63zYYI1lnvotRYAAVbW4VqEjQ/aMJp7JBEzhgAX9qpCk3S3Cdpt+TEmIuoCOLD?= =?utf-8?q?iGEU4dvHX0ZR68mArUSFPo3dqW6tb2fNFntnwI65ZulPudQ3el2RnETqF5mwN7JDg?= =?utf-8?q?AvHEPpTeX0dOA8+MOyMkKNBJx4lg86NWu0T8R8zz5GN/nG7qtIeHnJNQDqZTclZFt?= =?utf-8?q?yoItHRSBTY23ThvKOowe+l4c1BV8uMLuiSTZpoDSq08HtQdUR9ATGQoJtC8uDWp5+?= =?utf-8?q?LoGRYm75N/qAdeRepACGTm7xY5An9XVlBWw4pC0Jp9GAsFwoMBb1T/Ili0uuDhM/w?= =?utf-8?q?58Cf5NG+z7pZAzFxyndQTY9r0KDKXASwDCtEp11Y/VPDtGMqeK1oBLvqTccOit8JT?= =?utf-8?q?wZoI/G4Au/awfiz3FnTjFjttO2B1/SElcpTi8Iyt5nA3pK5aRg71gAnwcOBb/dJjT?= =?utf-8?q?1WOizo3YR53+qZXMwgU/2mz6zwf7eff9nj5PLNkUq+On5A76gvxJv6vzZpZ9gSS72?= =?utf-8?q?bAA28J1l8I0wqp/E0c/Djjun1pANZ55MZsTgoEghE5hIQeCrU36moV0jxGoal5DL7?= =?utf-8?q?1FxKgqQgg+VRNw87VtVl1SeeJyZKHRvs707rg2NOu/XROeO58oPzePw/+B0enypjN?= =?utf-8?q?Ix+jJh12lS12Hv9MfoZ1rsGAsMiq9fII/ynFwx9yqEx/20OP7L2kxh4d3U/37ZHhi?= =?utf-8?q?qGtdPYhhZ+lUzouQ9lsALEtGmUhaH7tFvzJD/Sp9Y3+7wdSEqf8p1pFnAhSYt5SYf?= =?utf-8?q?FKizRZSE/8ZX3LzrGZw/7DvDnhFGSWf7AweAGzh7CFoVtVjqeY6BACYCE2C22iRrK?= =?utf-8?q?MuuNsQmxW/kKvbPx0566vQVwZr3OyU0PHpsCifXtllfPiGwvahweMMwgS6Ly11H7w?= =?utf-8?q?Ky1HwOUGnD0sU4O2C8IJpEObgzjqkvT5vhdJXN28cYfwdEtjYvyC/V/IA3UjX7U1Z?= =?utf-8?q?jHTwo4KjDzXMcjIfpzLrTAARazidBkXPTSA/T7bLue8zsuupMTOhGxrYjcnuVjHXc?= =?utf-8?q?cnSU4CRP3ntHiu9w7b+fSf4nhbD3048FKCXykvcoY5ASt7e41yVZP4GQi2bciui4U?= =?utf-8?q?UOYIXasgQdBgS+kybPXWgOQRoOQOq8+pjED6Qs1hL3ds1HwWWAojOd+Zs/DNCTmbX?= =?utf-8?q?jWA+DC8XzkPzM3vwjKAbJeFyuBRTSlIprYiQVXiOpSs2f/E7gqrThCz7SwjiXjHIE?= =?utf-8?q?GKTO/si1pfGOJ8pKEU+BG0RcMxICNFA0pmIsBu8NI3zcYMAxQXT2slpUD3J9ueVAL?= =?utf-8?q?ztLccmAvNgIfPcUJP8W9fCGzPw1mzMZ/Q5JsTYuunGxod82QLBQArwDDbbR0fD6LB?= =?utf-8?q?TpUeFDwF025Qe+iwCh5SDdw6JUzuLSF7ERw47bM7Q0zIyQNMl1Ok/Y4=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9642.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014)(52116014)(921020)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?tL9TiH/nFOOyo8YvGqMOdkugSLa+?= =?utf-8?q?Umj3LcEaq86WW3M8GBA/fg3DSrvCSoqjJgoClykMHzo4rZXR8RH5mgkCGoTIriQlm?= =?utf-8?q?5+8MJMM8jXvfru4CcSY+5kRauIT/y3yrHLMO6fHZfeXPdPFUAuPD72kjHQ5T83v2u?= =?utf-8?q?bWdvvRg4dmcDIjv4LdjdtL/i4UfFdjLcxaVOiXqjND+m+g38DWdAGyZN54u8EDCOh?= =?utf-8?q?pf/HvPVZi2L9oiJEndaYgayXjUxLQkVuZ67hRYp7o0LeacxdZLblbV5U6kkvewuj5?= =?utf-8?q?Lr44Nt3QceCf+uYjokyv+o/Jdq6jFQFBgy1uEdNnmJ0eFn6v4f6Y8AHounZ9UPyjS?= =?utf-8?q?NE4cJXgRBB88NeM3zIfujHXdHzBJQlr0P9CSzUkzvKVZX5Mt+s7q2FdTzT2Q8nKBd?= =?utf-8?q?1g86rofsYYgoFZmQhbsku9ZmhsF2qV+RFyBE2+quS1eHv7Cdp/wP6tJdQ0FuKtJ0t?= =?utf-8?q?H1kO/B338ORas9Kcqha7qQec6Hi6OHN4Bmm03XG8wTYHaRMcD1YxQ6OXg8OR4cOW3?= =?utf-8?q?/lkyDzb7qg+pVhyFKeV8zfMANBa9xoEzS7eeciQprcqJzpeSZzLeKyjcpehWBMVaU?= =?utf-8?q?VH/nUjiISnUMVa+8Cxa37srjCIV4TPkE9k/hTiY4B8eX2PhZCqNi2zViQsk6jxhz9?= =?utf-8?q?sl+deuelDw06W8zpdkMkUJtQAoECR9LF2GhJZ44wDqAXXb8Ap+beei8KryLmAtvmQ?= =?utf-8?q?DfvmY6yX9aq2GUiPGH6gK75iIuQXYpzxC1Mc+noDdqalj4tpql3ukM/nn7NwW5CMK?= =?utf-8?q?R03fOsip3yHPlxxB+BSr7hYFKN72RIN3ebUl5u3TG//SBISESMKhdTIjR/A/DiZL5?= =?utf-8?q?n+kSBLlu4s7GtA6kBhNrMTDzpDrw5wd+7qHdb2gVaGwenFh1VMBr28ChTcVoLIIDD?= =?utf-8?q?CY0VMLZFE6YDqLQoQ28aPRj+gnMyXoXohJHuRuua2Sd+zOMlG5a3D9UYl04Fc/H50?= =?utf-8?q?Z/e3wxFG6DUlEGhEZUmww8sqBIM0GOoIEEQmj2ZGf4IhXnXWy2IjbGL37dKxLRAgt?= =?utf-8?q?rir5uG2PovzqIWjWKtGRCW1bDsRnFXWnYW7fvr8mdeMtoK5ta4jyvNpYbfvhtiy9w?= =?utf-8?q?oqF/EiHbdJiPymBknxD5Vgu5yD8KE2Rse/Ec7fXAPR1m8M5sN93Y5tELf/TCVBJsR?= =?utf-8?q?LUbBk7hfCo+ie/Lx9zTHiy0btZFrJ+VhHSEk+5h1pyN+wJCTIrHSbuZa6NPebkdlk?= =?utf-8?q?7Kfw2Ae6AFenr4cDJj7mSIKMFnLGRXs6jjdCw5FyzVkgUSZc2bUiZgPvkZTualBGM?= =?utf-8?q?4Pi1nrkOSgMCx9sRYKpYVTwFsEoo4OqDGSY/9qyUffyN3oKSFrrQwK+BKYSb2uO5d?= =?utf-8?q?dyaS1EHVMz1uyDwCEkv87NfL4iCT5tyr8YKkLNbpxjA/DV5sMNFOW0krLV3f1MgJq?= =?utf-8?q?8eox5eY/WcpGAIIw12mu3DfBxQYJVVOkzRAor1/tTFo+Pbar8wW8t54pFk0k0TtOI?= =?utf-8?q?TQrW/pV3sBoxmeA7NMf33tPHIc8zM9TS6pEQmbu2MTeA2t28B7HYBMfQ=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5b708ad6-8efe-481d-52cb-08dcd1cbde5d X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Sep 2024 19:07:52.0602 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: NsnNLfNAyCp20Csa5uSc6eX8CMN9MDIY7GhznR1svb1CvSh32szNpLU58RGRUyjOGihh/YuBzZd+xVvE8vkhvQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI2PR04MB10115 Simplify the clock handling logic by using the clk_bulk_*() API. Signed-off-by: Frank Li --- drivers/pwm/pwm-imx27.c | 63 +++++++++++++++++-------------------------------- 1 file changed, 22 insertions(+), 41 deletions(-) diff --git a/drivers/pwm/pwm-imx27.c b/drivers/pwm/pwm-imx27.c index 14706c3bb96cc..ce9208540f1b8 100644 --- a/drivers/pwm/pwm-imx27.c +++ b/drivers/pwm/pwm-imx27.c @@ -80,9 +80,12 @@ /* PWMPR register value of 0xffff has the same effect as 0xfffe */ #define MX3_PWMPR_MAX 0xfffe +static const char * const pwm_imx27_clks[] = {"ipg", "per"}; +#define PWM_IMX27_PER 1 + struct pwm_imx27_chip { - struct clk *clk_ipg; - struct clk *clk_per; + struct clk_bulk_data clks[ARRAY_SIZE(pwm_imx27_clks)]; + int clks_cnt; void __iomem *mmio_base; /* @@ -98,29 +101,6 @@ static inline struct pwm_imx27_chip *to_pwm_imx27_chip(struct pwm_chip *chip) return pwmchip_get_drvdata(chip); } -static int pwm_imx27_clk_prepare_enable(struct pwm_imx27_chip *imx) -{ - int ret; - - ret = clk_prepare_enable(imx->clk_ipg); - if (ret) - return ret; - - ret = clk_prepare_enable(imx->clk_per); - if (ret) { - clk_disable_unprepare(imx->clk_ipg); - return ret; - } - - return 0; -} - -static void pwm_imx27_clk_disable_unprepare(struct pwm_imx27_chip *imx) -{ - clk_disable_unprepare(imx->clk_per); - clk_disable_unprepare(imx->clk_ipg); -} - static int pwm_imx27_get_state(struct pwm_chip *chip, struct pwm_device *pwm, struct pwm_state *state) { @@ -129,7 +109,7 @@ static int pwm_imx27_get_state(struct pwm_chip *chip, u64 tmp; int ret; - ret = pwm_imx27_clk_prepare_enable(imx); + ret = clk_bulk_prepare_enable(imx->clks_cnt, imx->clks); if (ret < 0) return ret; @@ -152,7 +132,7 @@ static int pwm_imx27_get_state(struct pwm_chip *chip, } prescaler = MX3_PWMCR_PRESCALER_GET(val); - pwm_clk = clk_get_rate(imx->clk_per); + pwm_clk = clk_get_rate(imx->clks[PWM_IMX27_PER].clk); val = readl(imx->mmio_base + MX3_PWMPR); period = val >= MX3_PWMPR_MAX ? MX3_PWMPR_MAX : val; @@ -172,7 +152,7 @@ static int pwm_imx27_get_state(struct pwm_chip *chip, tmp = NSEC_PER_SEC * (u64)(val) * prescaler; state->duty_cycle = DIV_ROUND_UP_ULL(tmp, pwm_clk); - pwm_imx27_clk_disable_unprepare(imx); + clk_bulk_disable_unprepare(imx->clks_cnt, imx->clks); return 0; } @@ -229,7 +209,7 @@ static int pwm_imx27_apply(struct pwm_chip *chip, struct pwm_device *pwm, int ret; u32 cr; - clkrate = clk_get_rate(imx->clk_per); + clkrate = clk_get_rate(imx->clks[PWM_IMX27_PER].clk); c = clkrate * state->period; do_div(c, NSEC_PER_SEC); @@ -259,7 +239,7 @@ static int pwm_imx27_apply(struct pwm_chip *chip, struct pwm_device *pwm, if (pwm->state.enabled) { pwm_imx27_wait_fifo_slot(chip, pwm); } else { - ret = pwm_imx27_clk_prepare_enable(imx); + ret = clk_bulk_prepare_enable(imx->clks_cnt, imx->clks); if (ret) return ret; @@ -352,7 +332,7 @@ static int pwm_imx27_apply(struct pwm_chip *chip, struct pwm_device *pwm, writel(cr, imx->mmio_base + MX3_PWMCR); if (!state->enabled) - pwm_imx27_clk_disable_unprepare(imx); + clk_bulk_disable_unprepare(imx->clks_cnt, imx->clks); return 0; } @@ -374,21 +354,22 @@ static int pwm_imx27_probe(struct platform_device *pdev) struct pwm_imx27_chip *imx; int ret; u32 pwmcr; + int i; chip = devm_pwmchip_alloc(&pdev->dev, 1, sizeof(*imx)); if (IS_ERR(chip)) return PTR_ERR(chip); imx = to_pwm_imx27_chip(chip); - imx->clk_ipg = devm_clk_get(&pdev->dev, "ipg"); - if (IS_ERR(imx->clk_ipg)) - return dev_err_probe(&pdev->dev, PTR_ERR(imx->clk_ipg), - "getting ipg clock failed\n"); + imx->clks_cnt = ARRAY_SIZE(pwm_imx27_clks); + for (i = 0; i < imx->clks_cnt; ++i) + imx->clks[i].id = pwm_imx27_clks[i]; - imx->clk_per = devm_clk_get(&pdev->dev, "per"); - if (IS_ERR(imx->clk_per)) - return dev_err_probe(&pdev->dev, PTR_ERR(imx->clk_per), - "failed to get peripheral clock\n"); + ret = devm_clk_bulk_get(&pdev->dev, imx->clks_cnt, imx->clks); + + if (ret) + return dev_err_probe(&pdev->dev, ret, + "getting clocks failed\n"); chip->ops = &pwm_imx27_ops; @@ -396,14 +377,14 @@ static int pwm_imx27_probe(struct platform_device *pdev) if (IS_ERR(imx->mmio_base)) return PTR_ERR(imx->mmio_base); - ret = pwm_imx27_clk_prepare_enable(imx); + ret = clk_bulk_prepare_enable(imx->clks_cnt, imx->clks); if (ret) return ret; /* keep clks on if pwm is running */ pwmcr = readl(imx->mmio_base + MX3_PWMCR); if (!(pwmcr & MX3_PWMCR_EN)) - pwm_imx27_clk_disable_unprepare(imx); + clk_bulk_disable_unprepare(imx->clks_cnt, imx->clks); return devm_pwmchip_add(&pdev->dev, chip); } From patchwork Tue Sep 10 19:07:20 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 1983470 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector1 header.b=c3UjM5OJ; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:4601:e00::3; helo=am.mirrors.kernel.org; envelope-from=linux-pwm+bounces-3194-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from am.mirrors.kernel.org (am.mirrors.kernel.org [IPv6:2604:1380:4601:e00::3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4X3Cv019ZLz1y1s for ; Wed, 11 Sep 2024 05:09:47 +1000 (AEST) Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 5CD291F2833E for ; Tue, 10 Sep 2024 19:09:45 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 39BBF1AC448; Tue, 10 Sep 2024 19:08:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="c3UjM5OJ" X-Original-To: linux-pwm@vger.kernel.org Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11011060.outbound.protection.outlook.com [52.101.65.60]) (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 275631AC436; Tue, 10 Sep 2024 19:07:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.60 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1725995281; cv=fail; b=PsenX0JOHAfabkst70bHHWPeqVy2qMOUZu6KXrY1INUeaSo5eSfGvMfmxYwhcFENokX+GUAeKiFdrfAG0JP80w2wCOfg/q0Mrjwb5SuKFWXld54mQCezrvrYv+Uyn3n3FX4m8TsKDPfrpu6ansedPcA1Oj5n/9M1ri6Rezaf86E= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1725995281; c=relaxed/simple; bh=OPJTK5Szo3uv98miP/aIaKW04fTtNNv1xFO57Ma99VM=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=oKdFQVfhKLxPmkX11PFH44BKrjHMfBA65gZn6Mz8yW8FZZWNfj9iaZqP8cq9oCD6cp/vNIPTv0xwxe9pzsPZ9+8BS1cPH6hZrm4m+j09oLOaLG+Kfv7hnF/z/ww9Gkla7hamH7FNItljoMyk0QaH8XUE1oD4Wc2Ql9DEFl7pXm8= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=c3UjM5OJ; arc=fail smtp.client-ip=52.101.65.60 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=C6Cl1NEwZSpvSftV4Jq+hjyPDgC0R320BL6DKaO6pkDUcIhXsuUbxOsURcCxGs6jiTZrC4zJEqBQgPPBEuS57MVpbvjkEKXiAV002hQrKmK84Gy99505LHezVfcF650rT+O5HNK78N1VyXqYNoLiXKkIREHa5++yo4/zP8fUoMBjaHlF2GCETVA90mZl53Y+16HJShAExXhHS41iZTiUeSS8dGJd7AJdJTDBxbNJnZqiObuxN94DIdbgUU2Mls79SmtJ53TYMepZPhz8X4kqW4SZDN6IyC72cvduVEgnJvgLnZHVAUGm+Qo2WiwflL4AC6fIHWUrKaO6Ohpare3ONA== 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=RpQmdIpW1nEf/t8itYF7d7iwzZIIlNVQvBzSUpk1TFU=; b=kESMwTh3vpGTPrT2+3VPRWdwLPMWyhdn/sg7d8PVS1/P7nb1GgUb8emI3PFX6uz4nNjUJ89Hk9goXv/VRr4EpNMUy3NK0XqD1wUWfrOU8Na1AxZPitpA2pIatzl8B5+eLUAPS7j3oNgDkGR2JozDJO41hTOfIIeXEVjauWjzg6AVxSMyqiX3rI2zqQwtpX8GnFZEUxP+5abhJwMrJHp2aAnmb4YZVyaHeMT+f9/KNu6YOVFodzVCx+9OrXioImPOWodKnZMD/5u+vmL6g5/L3CUJexHJ6hwL8KgVzFhwLdIxmTAcqJzdDrzpQayghtGHgLpeCOT+zbMSAYKFcSejLg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=RpQmdIpW1nEf/t8itYF7d7iwzZIIlNVQvBzSUpk1TFU=; b=c3UjM5OJNtXG/VTMw6/meZCCVPoNahXHOkJ4UJFAYeB9f8D+pF0dD0CfYyYbgH78Xrr1tg8w7LvRXSE7PPe5fggSMGhjv22B3gNqYOT6EMvP2Nwoi4v/Jpdtn1jz9jZl4DfShv7lhYflmY/T4tC0lJ9IpS+QutUsrzRzxEjF6cko8KZb5s6G4h8c3Ma+ECcaf/1d+1Zryen+WiLndfnEapWViGNX0DA73VNoOs/7Myepj1/uMc/JsMyYDQ/LvReooG+j++YQ/aJDJXYfC7tD/YT85+Gs4pY6TXWcrMQC/6k/j8QfPbbozSWAOm5/UsisUPBcKHfhD4RO4Hr3t2CI1w== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) by VI2PR04MB10115.eurprd04.prod.outlook.com (2603:10a6:800:21d::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7939.23; Tue, 10 Sep 2024 19:07:56 +0000 Received: from PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06]) by PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06%4]) with mapi id 15.20.7939.022; Tue, 10 Sep 2024 19:07:56 +0000 From: Frank Li Date: Tue, 10 Sep 2024 15:07:20 -0400 Subject: [PATCH v3 3/3] pwm: imx27: Add optional 32k clock for pwm in i.MX8QXP MIPI subsystem Message-Id: <20240910-pwm-v3-3-fbb047896618@nxp.com> References: <20240910-pwm-v3-0-fbb047896618@nxp.com> In-Reply-To: <20240910-pwm-v3-0-fbb047896618@nxp.com> To: Marek Vasut , =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Philipp Zabel Cc: linux-pwm@vger.kernel.org, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, pratikmanvar09@gmail.com, francesco@dolcini.it, Frank Li , Liu Ying X-Mailer: b4 0.13-dev-e586c X-Developer-Signature: v=1; a=ed25519-sha256; t=1725995258; l=1677; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=L/XPTHuau3NF7c+XW7u38Kz5DmqTCXnWMscgXXRISiw=; b=3OAc+pyLPshIlPRvYlJxzCzQT5iymtxjjZlMgi2MYCbWOLWkSC6fLCzcIH7YuUwpsE8vhjLPw Jha9yD8YRN7BkboLQX8tgXsBK2FKzHwr1WjV14yeqo0pMeTWbp5pM/v X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR13CA0145.namprd13.prod.outlook.com (2603:10b6:a03:2c6::30) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) Precedence: bulk X-Mailing-List: linux-pwm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|VI2PR04MB10115:EE_ X-MS-Office365-Filtering-Correlation-Id: 6ae88040-9e20-4c45-b046-08dcd1cbe117 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014|52116014|921020|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?UloGRQzHsBHGJDfztFnWMWC5se61Eap?= =?utf-8?q?XS0BwwnLvpcgcIeiZCRnREp1JySNIpyYDGjVFA+n7JvQmGKDFatkRMD8RdrSk5CJx?= =?utf-8?q?fTZtcqGc+10UjAw+o0BRNyfQfM2pazuXSGeFtZEW8E7tBUXmpY2sd1YIQmVUUvDSr?= =?utf-8?q?gpx/gQsMTeVBuWOiZoD6QboZChnEA2YXZG4zpQWD6kGidhRMZztrRuCJiWrJJRKFd?= =?utf-8?q?prbplh5LCy96VASLpPYI6EOn1OH0MA+4/DMWrqZfX1bH0UcOkgMUEvRPEn1uLO32o?= =?utf-8?q?w5hAnwMW+oDEcT/9D60mEWTB5H0uFn3KsISEleVKwYifpxjgN9WTYN+tT4WckKG7R?= =?utf-8?q?Fjr6Fq3W2gflr7dknZK8A+MRn/bCfStwi0XJaSGjEWy5IiCm2uh1PSsOzeFLmBTSl?= =?utf-8?q?hd8Z3O3AXrDflmWNAJ/tQrp4tmUi5qGlonzH84iPhKnLMSrTD06jJP22nBEknQ/Q7?= =?utf-8?q?/vjaIDDfkiSE66buP/gKGT8gj/2Gau5NXkVobWRXd3QdwxaDmrNvCm9iHVjOYAQtE?= =?utf-8?q?RmoErS0jHpAn0W1KOYsdGph+aIVSSOtTjnyonRdeNUzcCz/3U7Ty6FB0BRojbF0zN?= =?utf-8?q?baUp6Cf5RpmGbZKwc7eW9sxIhkwZgf+SAOxths/RQ7miI1BFEj/pZ4Ff7jiyXC0NY?= =?utf-8?q?hrtHyTQuvhcYvU6OrHAsCEWHXs6qoRadu1xM3NIvxMwIc4suO9edY7igHMW5C9OqY?= =?utf-8?q?zj4b7tH9CbZMO87MUP/9DOTNXAQVp3KL9iJySS4gdKkKmoGZ5gHzLF1QKXM+p7Z1p?= =?utf-8?q?5uasv2C0pmSBGpSF2nLEJ623HItoHqgAgti86EewUjcqmtGM8NaFCK/SDTQ+4GrlU?= =?utf-8?q?buiW9VpcvONKBRcNsqWybtwomD4aw2W/9fpZTl5RdnQwQpM5gANcfM8UJZt7DRaGx?= =?utf-8?q?OCFFjm+31rIgZHDYdfpCj9YruSPe/Jl6BBNR4iNakPunoaX/Mz6A6XA34LLEgdEQk?= =?utf-8?q?LScCI+H/hvdO8q7oWjRS9KnPiAtA7lmytYEMx39i6U5Ugn8MoViBbDVGOUw1F03Um?= =?utf-8?q?UFqDsyVVy+NpdyNPwI4eOZkdp6ExllnnU3tyVG8LmGRe3PuxCcuJXFsmLq6cH18d+?= =?utf-8?q?757Ex0GcDLzo+8r/HFPKJlHietjq4PCOkucwqtcDKj+YKUEk84Gwbr8InGKvWJPkw?= =?utf-8?q?qqGtuwVQrDHfvbWucH3h71Ga2E7ygh1A1wcKxvHKaGF6sxdICVwJK5QHGYZXaoP0A?= =?utf-8?q?ccwxdudI0ddPWb1O3AihPE4LQxlibFWpJOcWWxN+xZ9TW3oPyabELlPLIGLJ+e8KI?= =?utf-8?q?7rOyQS350NVpWqGYujY2d/KHMsrhMXn+GdCSpZv7aVB4vfh7smWjhcijX9gNIvcDK?= =?utf-8?q?NKE5ElpNV7hRj2yuas5sKA1Cd7TyJ+ins48/JGgbZmewCZQqt13E1Dc=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9642.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014)(52116014)(921020)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?QaX/jAM5vRe4dWeJ2r35/f4WRoLJ?= =?utf-8?q?ZdUG7T3CQ8oQFc3uZyGGycyt9j88h+G2FTZc3lbiGGmRnbbHEsA4YLMWRUSXk/xze?= =?utf-8?q?VudaKMB0ZLnA1l4m1CuKA2dihuSSqtmKNCzbfR4wd1t7Ee7J8ckaGjfiPjxvtOZVx?= =?utf-8?q?rLinF3tybYytvFeXvsWHbthIFmijf/XS/yVs4mzJBzuOIVefWTV8b3Ft3fL+TldxT?= =?utf-8?q?AFqHlAK4z1W8RlRHRiDN/47ORMKopm4ai0dVWYB+w5QhSlVprY5k8P5WJO04zruYh?= =?utf-8?q?f/ylz+91xMDZ89i2OoWzS3LMsK0i42wC2tE2S0FjU1knRAGUHiZZdZi45K80QvYJ5?= =?utf-8?q?JIr2W/p406srBPcyI50XTvrGSjljGFssVWnSdwEk3POhkweWpuy6FCu60tNvmk7ly?= =?utf-8?q?3co7yIihCEDnMzZx/FGCoAHL2q4kIy0/ts+wserm/oP0eAnB6/ml4tlAq6vBkvzzX?= =?utf-8?q?HPZduQ0wPJ3uqjJPFQXFD2MInUBdMFrei4NC65xg3DfQIiQYHX8J2r6ZbHCAQiC9y?= =?utf-8?q?Lk5hGC+XY0dDgeOiEr4rr0pZ4QiAdJTrDHcgGKdtgoah6tOq7f/XqvVX5CUI1vc9G?= =?utf-8?q?eaNA5pNNHpwt4ApKgS1qDr8ZWgrTScqhoqUXvqFi9G2dfRaqF9xkXOwu4juLZz0UU?= =?utf-8?q?+udGhpkKmuZ4fatQQ4TRRP/cBnKW7+JQus3it6CtV1fq9L+c3hXhki+EvCHZk8e/0?= =?utf-8?q?4ilx6nWxNGb4aKR1ocT4h4hQkxl3wOEVStbJk3TC+ZP2pUQPPhcvCqiw+Hs+2zD0j?= =?utf-8?q?PMjYMAigL9OJ9VibhSlsMQpDFgkBArHXuhiGUrm7/vDnly5gaHl9BJ610IToDZSK1?= =?utf-8?q?8BJyNWT6QAEGZNiZGt4ccOc5SP0uO3qrO7F9Pxjx0+/GsH9z0G6+tQl8L6rDQuuwo?= =?utf-8?q?tjuS87WVhye0kDi2c9gnrViu4719tC9qGzOHmykwbb9IafgCAKDMRWeJ8gzkhe/eK?= =?utf-8?q?VrIIMhssfb3eHJpEWwWlYmpSCxrVM0rWtZNeJI03F7/eP+gwKL6BPxsQj5Nu6ytSU?= =?utf-8?q?7TbAz9ybJVsEF11yqqEO6tr7sVhY75zCYubGrKvM+VIJndheevjbGlIJWPHGdv+rG?= =?utf-8?q?0s6YwbrIJiXZqIAYYYpzzjNOjiR8aXkSJcfrC4JJ7hIVuloaCFyPS6qA3wVa4/773?= =?utf-8?q?e4NUlD4tGB9+NGSvezfJy3qS+lLwbSNLHR2rqhPkkCjQfmyoKghCCfowPwYT0FJmH?= =?utf-8?q?DtnFHmM25QDvs/KJySgdwzjIcYIuQpBtAIVKFzQUKBv7jD5dvZm6nK3fWPYgoP4DH?= =?utf-8?q?F5jm36IbHgl2EPAZ7K+LpFxK2Cn3+1AyuqvdS1OJBwClZizy4ropZhkcELROWQaIn?= =?utf-8?q?fQtExlqVLi0ud02wqIhISTTetSaHOHNUhbGym2oT2A1yXuLHzlr/xK6L6LTeX1UFI?= =?utf-8?q?M0QRq+Zgs7WhdlkzhsVb+IBE2wI4/QGsai4p5691JCIqVmkZwmeB+MyFki3FhzGq3?= =?utf-8?q?xL5eNudvpYOSpJMrhDUc7w4HzwF7vlPAY24y71e/xoTUH5kok35DGPlQ=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6ae88040-9e20-4c45-b046-08dcd1cbe117 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Sep 2024 19:07:56.5704 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: XbROQMiS5Nuq1wRXo9P8nNoeqfXBgrLIvMBa36/6lZ3pWoLVBxxuCh4Q64KaCb3LcXYwKsV9fpVTMrcD9VL4fA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI2PR04MB10115 From: Liu Ying PWM in i.MX8QXP MIPI subsystem needs the clock '32k'. Use it if the DTS provides that. Signed-off-by: Liu Ying Signed-off-by: Frank Li --- Change from v2 to v3 - use buck clk API Change from v1 to v2 - remove if check for clk - use dev_err_probe - remove int val --- drivers/pwm/pwm-imx27.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/drivers/pwm/pwm-imx27.c b/drivers/pwm/pwm-imx27.c index ce9208540f1b8..2a9fba6f9d0a8 100644 --- a/drivers/pwm/pwm-imx27.c +++ b/drivers/pwm/pwm-imx27.c @@ -81,10 +81,11 @@ #define MX3_PWMPR_MAX 0xfffe static const char * const pwm_imx27_clks[] = {"ipg", "per"}; +static const char * const pwm_imx27_opt_clks[] = {"32k"}; #define PWM_IMX27_PER 1 struct pwm_imx27_chip { - struct clk_bulk_data clks[ARRAY_SIZE(pwm_imx27_clks)]; + struct clk_bulk_data clks[ARRAY_SIZE(pwm_imx27_clks) + ARRAY_SIZE(pwm_imx27_opt_clks)]; int clks_cnt; void __iomem *mmio_base; @@ -371,6 +372,16 @@ static int pwm_imx27_probe(struct platform_device *pdev) return dev_err_probe(&pdev->dev, ret, "getting clocks failed\n"); + for (i = 0; i < ARRAY_SIZE(pwm_imx27_opt_clks); i++) + imx->clks[i + imx->clks_cnt].id = pwm_imx27_opt_clks[i]; + + ret = devm_clk_bulk_get_optional(&pdev->dev, ARRAY_SIZE(pwm_imx27_opt_clks), + imx->clks + imx->clks_cnt); + if (ret) + return dev_err_probe(&pdev->dev, ret, "get optional clocks failed\n"); + + imx->clks_cnt += ARRAY_SIZE(pwm_imx27_opt_clks); + chip->ops = &pwm_imx27_ops; imx->mmio_base = devm_platform_ioremap_resource(pdev, 0);