From patchwork Thu Mar 11 22:24:28 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Robert Hancock X-Patchwork-Id: 398992 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER, INCLUDES_PATCH, MAILING_LIST_MULTI, MSGID_FROM_MTA_HEADER, SPF_HELO_NONE, SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7D6BCC433E6 for ; Thu, 11 Mar 2021 22:25:53 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 3E7A164F94 for ; Thu, 11 Mar 2021 22:25:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229587AbhCKWZV (ORCPT ); Thu, 11 Mar 2021 17:25:21 -0500 Received: from mx0c-0054df01.pphosted.com ([67.231.159.91]:39967 "EHLO mx0c-0054df01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229584AbhCKWZQ (ORCPT ); Thu, 11 Mar 2021 17:25:16 -0500 Received: from pps.filterd (m0208999.ppops.net [127.0.0.1]) by mx0c-0054df01.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 12BMLkjI009820; Thu, 11 Mar 2021 17:25:11 -0500 Received: from can01-to1-obe.outbound.protection.outlook.com (mail-to1can01lp2052.outbound.protection.outlook.com [104.47.61.52]) by mx0c-0054df01.pphosted.com with ESMTP id 376bes9m83-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 11 Mar 2021 17:25:10 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Qmns7X8JutTVPnj3l8F/stBBMimyAmzNlCtdnRhZIKwViqrRwFbwmirV6hkLQF1BPzEay9ge2OKzO6chea1F1/fbkOHeU7WUBbVuVgDHBp4W/t/oWijezZb/U9WZ+WgsqSsVeD4nJbATx/PfB3+nWkqNEdOUWGifjz4UqBgic0xI6sZbwg0D6YnkfI4GBM0gjOJIF+KVdqKCe06GdNBjpQUe2TfxXDo1gPWHDKRas4Kr54ns4b9+fj4l4+eT0me8H8d/TGZqApWALhOSZrPxAANy2OtXfV4dSxVJX95RautUnFtIjSSOqQ+b+zI6irDVjC4HT0DdcDFwCmQkfiJ7wA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=y7Zvi/oorIy4mTslUfQQatnXxwI40tGSvu8GL+ar32w=; b=FmhqzBeUp96uSprJ7QhvRcjkWA3wyNms5TQ5ZYCXE0yFZYZsgxjGlcYFlN5viWVTkg9z0Q5hlhWtubWqr30WCvdZPAtuwUg5A7NcKhviZ2E/nzHK42b6aAbhsDUwpzj1mp8N4pj7Hft7zw8VpRnr0elwH+DhaEtZd8uYYxI8zD0VZCpKIqoLwjLxB5jXT4n68FRHQxdeazOHCRcZ2Lrjyn157stWxPlyVwxSOceEyE5zI4n+64jKBVE9DKdbL4VNen1AyGeFmqtJ9RLnePPyPSTS//dfIVxFxj75gQIAUajSQE6WqNHVQ7uHWiXjtvqtFJfuhpQN73yg5mqcx+dapw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=calian.com; dmarc=pass action=none header.from=calian.com; dkim=pass header.d=calian.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=calian.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=y7Zvi/oorIy4mTslUfQQatnXxwI40tGSvu8GL+ar32w=; b=pg/io8K+hSGa99R0TrePO133+S6NJI+e/jy3A0+bu0fnpD4os3kmHjrQj8mMG84ali1Axt+ERo4TuUqlVnOrAeOJkxZRvQIJ/+n0iBRE76+R0wxL1F1nLLMI/wO0VJjcyCzcJvwSfPOSdhK3Nj5B93VYRegnvhyhkugVFRZcfdA= Authentication-Results: baylibre.com; dkim=none (message not signed) header.d=none; baylibre.com; dmarc=none action=none header.from=calian.com; Received: from YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:f::20) by YTXPR0101MB0960.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b00:b::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3890.28; Thu, 11 Mar 2021 22:25:09 +0000 Received: from YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM ([fe80::90d4:4d5b:b4c2:fdeb]) by YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM ([fe80::90d4:4d5b:b4c2:fdeb%7]) with mapi id 15.20.3912.027; Thu, 11 Mar 2021 22:25:09 +0000 From: Robert Hancock To: mturquette@baylibre.com, sboyd@kernel.org Cc: mike.looijmans@topic.nl, devicetree@vger.kernel.org, linux-clk@vger.kernel.org, Robert Hancock Subject: [PATCH 1/9] dt-bindings: clock: clk-si5341: Add new attributes Date: Thu, 11 Mar 2021 16:24:28 -0600 Message-Id: <20210311222436.3826800-2-robert.hancock@calian.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210311222436.3826800-1-robert.hancock@calian.com> References: <20210311222436.3826800-1-robert.hancock@calian.com> X-Originating-IP: [204.83.154.189] X-ClientProxiedBy: MWHPR12CA0055.namprd12.prod.outlook.com (2603:10b6:300:103::17) To YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:f::20) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (204.83.154.189) by MWHPR12CA0055.namprd12.prod.outlook.com (2603:10b6:300:103::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3912.17 via Frontend Transport; Thu, 11 Mar 2021 22:25:08 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2db513db-31aa-4837-ee48-08d8e4dc87c1 X-MS-TrafficTypeDiagnostic: YTXPR0101MB0960: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8882; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 18eVDjpa/K3jYn7LsxjAX0rR64OpCU6DrZmQVLHcOWfyL0aX62/yWFLOMMeafcOE0x5dsFv7I1+AaWDuO1dEJzc4kPrmWEkLKop70+Cv/IqF67m+YP3p+oPlLNelDFdZ4GVZCmGbfmQWoKT/mmfQf2QuTZPDcrXRPboI3tIvGbybJvVyGiF0eAO/t0/4tmYAbtows2owcXEW/7P69NA95+K7rJ+TM7mmJCDPzuIyM9gIVdFjoVo6vwHsOHa0Zmsf+z784xXLZUGvEb62tMDeiyt2QmDp6Qorhcv/Cb5HQxYOrZMCJ66PuyHenSUPdcQDUWg+3k1boRsu9pj0oKV2/vN1EE//8KskEShRLDuNdSLhUChKu02IiTrpP+0z6EahWu4C1DrlRn7JHLqBnaPoq5I6ECNlpzDthfqEED9cMDDMC3vAEQYtDKtIujLxpFP81gE8DG1aiHfqL8oTehIQUEy02tWN95aHDGrrdkVI9m1I876aPfu2O132Ge0LaSj7a0irFNNdnywGpIgoEp251UVZ+6xQm0whBvNnsoseRiEjGtpfwo5TbaNTYyIar9+wKGCny59944I1Hj7/EH/xgA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(4636009)(376002)(39850400004)(366004)(136003)(346002)(396003)(69590400012)(6666004)(6506007)(26005)(66946007)(66556008)(16526019)(44832011)(2616005)(956004)(478600001)(107886003)(6512007)(83380400001)(8676002)(4326008)(36756003)(8936002)(6486002)(186003)(1076003)(52116002)(66476007)(2906002)(5660300002)(316002)(86362001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: oeXfiw+SCXOS1xhfAmWrcJdy+bWn1jlAEq7RAQuyGRCTm/YyNIuRfpaZfTbdWZHK/BjnkoQRRIxo1PMLA/rTrJKVb6r0To0wHVrAY14+XAndPKOtAu0U8bT2dUjIyN/IwcNFR8Ky+URdaCGtbjfiqBVkreIW89tRhrEDu97OciJtrsqnQXVhmXZl2893VGpDUhspyi9MgAoG7aA1lVi7c9h6+p9eJxp59NjyeZxeY99t1JATojpN/8Cfi43FqPqOFPhf45IQB00+3cpyN7fJAiRIqvRmq+11PosWZnhwv8C7me5+bUq5upJMyhd7TJW/3bxUhstbnomIcDGM70fpKHd8/5YXob/4tpV65kafEdDykMgHvR6nI/gAFY4K4/bO1hwYiViZBVvuFzHs5vec1fi3arE91gapKgOmqnKEo23ZjZn0oX8DaJMKeYP1P5PvPVW62WAvOFcSOxtu7CLBMW1EB6H8kwD24kTOKwp2rHyDBlWmS9Av45IHh11SUCzwMKsPGungoUaktoL4XeVJsYtBB+6ABhFXG7JqvG0W4qE5qfNgwvEzN6wV/X09gYVF0Cl4XlCNsgK4wLWpYUOPm2NwegmQm6csOUOFT0SaA9qutXtGzqooqiWfH/U611I4kzxkNC9yxpwmFnXKzjhZJZEMibINdHy2d3GIhYgBTLIyrjgQ3y4r5Q5sar3wdGm8+QdtF7Eus5EThj8RmJWMIUzuJBoTR7vBwZFdhWZbcghYjDwq+f7xyAIQ+E9EOe7Q1fs6KIENjVJIM9n5kt8vQohzQjbdWidBkwhmD5XudZfc+0x5N0+vU5UyIfG7Dy3b9AHBaVnG4QO7qXAY1J0TRUdObC2LaYDGUoYGg0MP4NELYJktu17fuLgODIFDr+ngI3AyNRNfsPM1yXAOlyHhub7vSQOuLezYDRl4z92FhfsxMj6kDowzOg3S9PXkx4Wct3P2pibKzdlZiURD56M33Tmzn73GR25LqoSwyCGK8GFp6MSxVi5jY84uoD2BymqaH982/x0BZtTPD6FPZI9i2eBox41Cvbkht/GBBaQENje0tPGYwI8Vee4q3KekxSNumBqVZVg/JrGEEOMvyJlMK589kGZaTtu4RtHXR/SEPHLDiA0mFWq4GgTuI3PvU+NUQPABQWG/c4maslJgEk972YEPTFM5aNJGWhykUtrex+R7s1h7yplfE0EhIr7vFnzGofy+CFKEV+MRhCyykxrcOHUP3VHGnmfALiM+yEhQ7pfHYRbpeRY1USN7NpfytSAofwXZ0jO9rv34spZxldCEvg85t6lZEK6VgxATdVKhxp5dYtTDIxKJtvVuTqSR7wkN X-OriginatorOrg: calian.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2db513db-31aa-4837-ee48-08d8e4dc87c1 X-MS-Exchange-CrossTenant-AuthSource: YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2021 22:25:09.5956 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 23b57807-562f-49ad-92c4-3bb0f07a1fdf X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 94ZKHtv47iLuYGJRAopqBD07ZAbyuhA/6KpEnkMjrMFowI7AgkoICpkEySy0/gRQEOmXVwcxyo5+J0kISrJ+N44lm9qBGqpZHo8waiwy1JA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: YTXPR0101MB0960 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.369, 18.0.761 definitions=2021-03-11_12:2021-03-10,2021-03-11 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxlogscore=999 phishscore=0 priorityscore=1501 adultscore=0 spamscore=0 lowpriorityscore=0 bulkscore=0 malwarescore=0 mlxscore=0 suspectscore=0 clxscore=1015 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2103110117 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Add new silabs,xaxb-ext-clk and silabs,iovdd-33 properties. Changed vdd-supply on top-level node to optional since it is not actually used by the driver. Removed vdd-supply from output sub-nodes, as it was not supported by the driver and it is not easily possible to support this in that location with the kernel regulator infrastructure. Changed to have vddX-supply attributes for each output on the top-level device node. Signed-off-by: Robert Hancock --- .../devicetree/bindings/clock/silabs,si5341.txt | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/Documentation/devicetree/bindings/clock/silabs,si5341.txt b/Documentation/devicetree/bindings/clock/silabs,si5341.txt index 504cce3abe46..1cf7e002cb16 100644 --- a/Documentation/devicetree/bindings/clock/silabs,si5341.txt +++ b/Documentation/devicetree/bindings/clock/silabs,si5341.txt @@ -24,9 +24,8 @@ it. The device type, speed grade and revision are determined runtime by probing. -The driver currently only supports XTAL input mode, and does not support any -fancy input configurations. They can still be programmed into the chip and -the driver will leave them "as is". +The driver currently does not support any fancy input configurations. They can +still be programmed into the chip and the driver will leave them "as is". ==I2C device node== @@ -45,9 +44,9 @@ Required properties: corresponding to inputs. Use a fixed clock for the "xtal" input. At least one must be present. - clock-names: One of: "xtal", "in0", "in1", "in2" -- vdd-supply: Regulator node for VDD Optional properties: +- vdd-supply: Regulator node for VDD - vdda-supply: Regulator node for VDDA - vdds-supply: Regulator node for VDDS - silabs,pll-m-num, silabs,pll-m-den: Numerator and denominator for PLL @@ -60,7 +59,14 @@ Optional properties: be initialized, and always performs the soft-reset routine. Since this will temporarily stop all output clocks, don't do this if the chip is generating the CPU clock for example. +- silabs,xaxb-ext-clk: When present, indicates that the XA/XB pins are used + in EXTCLK (external reference clock) rather than XTAL (crystal) mode. - interrupts: Interrupt for INTRb pin. +- silabs,iovdd-33: When present, indicates that the I2C lines are using 3.3V + rather than 1.8V thresholds. +- vddX-supply (where X is an output index): Regulator node for VDD for the + specified output. The driver selects the output VDD_SEL setting based on this + voltage. - #address-cells: shall be set to 1. - #size-cells: shall be set to 0. @@ -77,8 +83,6 @@ Required child node properties: - reg: number of clock output. Optional child node properties: -- vdd-supply: Regulator node for VDD for this output. The driver selects default - values for common-mode and amplitude based on the voltage. - silabs,format: Output format, one of: 1 = differential (defaults to LVDS levels) 2 = low-power (defaults to HCSL levels) From patchwork Thu Mar 11 22:24:29 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Robert Hancock X-Patchwork-Id: 398994 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER, INCLUDES_PATCH, MAILING_LIST_MULTI, MSGID_FROM_MTA_HEADER, SPF_HELO_NONE, SPF_PASS, URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 54A11C433DB for ; Thu, 11 Mar 2021 22:25:53 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 1BD9D64F85 for ; Thu, 11 Mar 2021 22:25:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229470AbhCKWZW (ORCPT ); Thu, 11 Mar 2021 17:25:22 -0500 Received: from mx0d-0054df01.pphosted.com ([67.231.150.19]:9387 "EHLO mx0d-0054df01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229602AbhCKWZR (ORCPT ); Thu, 11 Mar 2021 17:25:17 -0500 Received: from pps.filterd (m0209000.ppops.net [127.0.0.1]) by mx0c-0054df01.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 12BML6JN021367; Thu, 11 Mar 2021 17:25:11 -0500 Received: from can01-to1-obe.outbound.protection.outlook.com (mail-to1can01lp2051.outbound.protection.outlook.com [104.47.61.51]) by mx0c-0054df01.pphosted.com with ESMTP id 375yymh9d6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 11 Mar 2021 17:25:11 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JzzvtZxs3q460VYLtpLUY8NmmZSfIV0ppsY3mCFNYnTrApS0BFUrxwMiOGl6+1/LZEqGj6if596CD0u3UKWomlhUihytxufTQh0zihvE7EDTXbNJroE0QuAlGDIV9GVi+64MYF1++xWYpM3gmG22jrCJFP62repO6FAozlpgIi/hhLHIcwShXlk74ZUX46arqQ2RicbBhT6A0ROj4MA+BBC9dwzCMVLh2hmJmTbIAZTkAwVWHqDcWN3GNMY/aaiyq9xcUi1NI9OuYmvq2brwHkb48gV7bZscEqcMOPpaxDgYxu/Bi6tJERdYJyvFlDlcora6V49cl4ga0727Pz8XDw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2yvqzXTGVgOj6vXGuRJuwLpO5ghDU654jPwR8E80KQg=; b=Y89QQ2BM8ne2zqrd1AIQUKTsEtrtAzrGLRjQjRGUcNaD1iIPS4+C8dLW5oMFn8dv8BqbD/tX+8oCNnKNIFl6Lu51U48LzQ5vq7cnhkws2b6e+1x5dhnbzXANP0kTq/zvOKiAcUUzCQGS56bKfw2vuVcMgKzXeaimdGCdSPVhmrf4NhkUTAlBBRZPvXswe/GmIGOqlLf4IL2PdRr+IPHno4lN+h3h3nK129nge15RU5bTNGJlRbj6lTDOwl494ZEcXs9hLLrIUpEYU5hNaD/q+v0re/fP+SSWeB3uFoWx+IHlZtL4c8MEHi4F1c+VmToCxw+m+8O9e1CWTrsTl+cGtQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=calian.com; dmarc=pass action=none header.from=calian.com; dkim=pass header.d=calian.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=calian.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2yvqzXTGVgOj6vXGuRJuwLpO5ghDU654jPwR8E80KQg=; b=XKd2PHiyJ4TpW1hKXHwZyB77rMjyv6b0G6ApheSqB+rDu3xMMletq1m+ryxTfd7BaH0v6v7YaRv5ugPvVZc2tlF6xQ3OIyYVGXaAnXBJsA+QayBvqL1rpRh6pHj4Ev+ORkQqFrSfOl7zhgy9i3zuuzy1Na0q+8C2BGI4MaBdSJk= Authentication-Results: baylibre.com; dkim=none (message not signed) header.d=none; baylibre.com; dmarc=none action=none header.from=calian.com; Received: from YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:f::20) by YTXPR0101MB0960.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b00:b::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3890.28; Thu, 11 Mar 2021 22:25:10 +0000 Received: from YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM ([fe80::90d4:4d5b:b4c2:fdeb]) by YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM ([fe80::90d4:4d5b:b4c2:fdeb%7]) with mapi id 15.20.3912.027; Thu, 11 Mar 2021 22:25:10 +0000 From: Robert Hancock To: mturquette@baylibre.com, sboyd@kernel.org Cc: mike.looijmans@topic.nl, devicetree@vger.kernel.org, linux-clk@vger.kernel.org, Robert Hancock Subject: [PATCH 2/9] clk: si5341: Wait for DEVICE_READY on startup Date: Thu, 11 Mar 2021 16:24:29 -0600 Message-Id: <20210311222436.3826800-3-robert.hancock@calian.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210311222436.3826800-1-robert.hancock@calian.com> References: <20210311222436.3826800-1-robert.hancock@calian.com> X-Originating-IP: [204.83.154.189] X-ClientProxiedBy: MWHPR12CA0055.namprd12.prod.outlook.com (2603:10b6:300:103::17) To YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:f::20) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (204.83.154.189) by MWHPR12CA0055.namprd12.prod.outlook.com (2603:10b6:300:103::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3912.17 via Frontend Transport; Thu, 11 Mar 2021 22:25:09 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 253d0560-e162-4b11-edc7-08d8e4dc8881 X-MS-TrafficTypeDiagnostic: YTXPR0101MB0960: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7691; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Xl2thOMdC39jWB9WMKIj5iJHLuhDrNG2IHIqNWmXCGjlwcN//TZ2QIpjC+kDdYmlEqgYjUyRJi+hMM+sNYkyFaIIWgp/ikU/upt2Q6R6o357wPiHbaumTmNee6RQmrM6Mey2C9UaV6PE/U+GScod2gJA9mMDNXeEe4Dd6wKPuRcqWcp/FWX6NJV60jbkVRdUJBbTS0btnJ0eSE+vASnH7JalY81ebbxWwq5qpancFQy1LXuV5RZPZOpkDCqgjU6+rlaCtF/y97Fbc6hWpsJ+tQkiYA3xkVINMXYVvT7kXwU+eP2X16tKu6j0donVLQxSXgh+O9f1n0g18EpEFankYrKOvdKTguGuCDtQqGTfKAt+JMAVVWiMNZf6NcBky1mokQHzSFaJIEK1LRrVUdJlLs7HXWJwnAlQ/HkZGi4fxkB0i5BPqCFxD00z3gVnVI//tc5TpRZ8QKRACHqfTTVlOjJHE9PgYIWTnHkxqTpfsprcbC4Dsm8B8o092tzrIAUdYVwMLD69kp2+y3utqgtvQAqHS5VgndOpP7j9/H2wEP8vTXqFv+YYtrBsDSQoSBK5LyxiOQIP3S9CUoqPbLaNjg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(4636009)(376002)(39850400004)(366004)(136003)(346002)(396003)(69590400012)(6666004)(6506007)(26005)(66946007)(66556008)(16526019)(44832011)(2616005)(956004)(478600001)(107886003)(6512007)(83380400001)(8676002)(4326008)(36756003)(8936002)(6486002)(186003)(1076003)(52116002)(66476007)(2906002)(5660300002)(316002)(86362001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: uNH44cfGbWcfK0FA+1ppnUcJl6BiliIXWhR5pbauS/h+lJvwYiFNHZHCPLyKpvizk2m+ai6oAvuXLhBRaGqlbEkvl8Qu9Te2yE+aMmLBwI/maAHRl5k1MY9yu6DHwBm9JnmxLOHmXW40BitGV3uwcIiWTjgVqqnS98BEGuc5hYk4dQLYNUwxg6XOrcOUaiYlQFonA73ETWcNA565zRdE3XIgIZMgd7yvg8oDan24uM9BMzGrOPegxmtGwvWhZ0GimHM0D0FllNK/+2T0BpUF6v+QdbpFfcWbLx9m5KmJWKgrtScLDl9VokeGTvaY6ykoxhPTvTP/WCBtLZhM57B381jtIvgd+Hzu0YoGJoNph+xJQq/p3qm3RZuRAO/g4OWZ3oSS/OWpsCVPQUm8AFQDhQYGaVtrk/gKuXYayxk6QjqtbCb8FBX0+T9kPniuJgBMfMEL+xVmunjRryafeqADeFIhfxrvXuEqwVh5pRcqZXvbVuZ25p8g9opz8uwKetwPn1hgLuayFbCgPoh9h9It4Ne7u2XXBOYu8hAeFXc+Zii9a9eAHoyHPscSLvVHyqkyr+OQDaGWX4xy2tD90y7STYAANSg1SEdRC2vqjJJ4MnUkycVADA9l9tezMcpywDbHz11mLYH7bcz7lQp8Mo9TR8UHavvPTD4OEHfyy0Jpv3I1lO8yzoXB2hmly0J2ed/sUo+SpRPIvgYjSHPKe/GTcoDwg6DRj1KzR33y/LAivyj8OCSKA8wl/enBnp0jE3GBNxdKgDftUbVVISXJYcPCEVPgMpM4DVdC2t2H2vIFKajwjqt7i8KmtTWrlHSxS6iSROQLBs/rrDKDo4xoTDTS1uM1Z1v2Mx6MJZESfx+jeXyXdmLBqfpjvi832asQEPD6EiqUuj/j1XCOJo0RiHOepPX3Nn70theA9Fin36W38Ho3+rZ3Eh+bjYf2I+TBEfjI2C2OvikzH6fzVOzgLGMnec5CsPddthDCwa9PATBJfiBcLts+YWr935eQsi4wD6w24knSYvOOQ37hWvkFwz93tRgtaiaumbb342NyCvgRQMRQMfTEMnliZEXIr9qjYtAc0INt8NBiRQ06OJ628YgI0/RIOnXqD0uEwWiE3uPDyEYliWXgwpQfNtSczID+qFBSCxFYuL+1UiX2e72UXApteQjEKdF4XDGT42RyNfjsrE7pk/3oR2BN1eJDTrCvjfBAaUh6vYpA1Q22h1sCChordg4iWbZMcLCA3P+VF7aiTQrB4hN8ilZL7hVG9b1CYpK7usUKfwf8QHxQts3sYO8eislV1DiiX7A/8V8a7YcnYd4HFcW7O0M0qOcj2mits7cD X-OriginatorOrg: calian.com X-MS-Exchange-CrossTenant-Network-Message-Id: 253d0560-e162-4b11-edc7-08d8e4dc8881 X-MS-Exchange-CrossTenant-AuthSource: YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2021 22:25:10.8708 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 23b57807-562f-49ad-92c4-3bb0f07a1fdf X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 02BIH8NR3E80mxMrnlCiA3lZ9o8ssdDv/cnAaL+Y9ka37Ws22Cd5mfCWKo56uaAjF44hb/Z3sT66RvS9fBnEyUEh7Pi5vkYpJWzlw0rgfWc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: YTXPR0101MB0960 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.369, 18.0.761 definitions=2021-03-11_12:2021-03-10,2021-03-11 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 clxscore=1015 spamscore=0 suspectscore=0 phishscore=0 adultscore=0 lowpriorityscore=0 bulkscore=0 mlxlogscore=999 impostorscore=0 malwarescore=0 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2103110117 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org The Si5341 datasheet warns that before accessing any other registers, including the PAGE register, we need to wait for the DEVICE_READY register to indicate the device is ready, or the process of the device loading its state from NVM can be corrupted. Wait for DEVICE_READY on startup before continuing initialization. This is done using a raw I2C register read prior to setting up regmap to avoid any potential unwanted automatic PAGE register accesses from regmap at this stage. Fixes: 3044a860fd ("clk: Add Si5341/Si5340 driver") Signed-off-by: Robert Hancock --- drivers/clk/clk-si5341.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/drivers/clk/clk-si5341.c b/drivers/clk/clk-si5341.c index e0446e66fa64..f210860fb96e 100644 --- a/drivers/clk/clk-si5341.c +++ b/drivers/clk/clk-si5341.c @@ -94,6 +94,7 @@ struct clk_si5341_output_config { #define SI5341_STATUS 0x000C #define SI5341_SOFT_RST 0x001C #define SI5341_IN_SEL 0x0021 +#define SI5341_DEVICE_READY 0x00FE #define SI5341_XAXB_CFG 0x090E #define SI5341_IN_EN 0x0949 #define SI5341_INX_TO_PFD_EN 0x094A @@ -1189,6 +1190,31 @@ static const struct regmap_range_cfg si5341_regmap_ranges[] = { }, }; +static int si5341_wait_device_ready(struct i2c_client *client) +{ + int count; + + /* Datasheet warns: Any attempt to read or write any register other + * than DEVICE_READY before DEVICE_READY reads as 0x0F may corrupt the + * NVM programming and may corrupt the register contents, as they are + * read from NVM. Note that this includes accesses to the PAGE register. + * Also: DEVICE_READY is available on every register page, so no page + * change is needed to read it. + * Do this outside regmap to avoid automatic PAGE register access. + */ + for (count = 0; count < 10; ++count) { + s32 result = i2c_smbus_read_byte_data(client, + SI5341_DEVICE_READY); + if (result < 0) + return result; + if (result == 0x0F) + return 0; + usleep_range(1000, 20000); + } + dev_err(&client->dev, "timeout waiting for DEVICE_READY\n"); + return -EIO; +} + static const struct regmap_config si5341_regmap_config = { .reg_bits = 8, .val_bits = 8, @@ -1385,6 +1411,11 @@ static int si5341_probe(struct i2c_client *client, data->i2c_client = client; + /* Must be done before otherwise touching hardware */ + err = si5341_wait_device_ready(client); + if (err) + return err; + for (i = 0; i < SI5341_NUM_INPUTS; ++i) { input = devm_clk_get(&client->dev, si5341_input_clock_names[i]); if (IS_ERR(input)) { From patchwork Thu Mar 11 22:24:30 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Robert Hancock X-Patchwork-Id: 397739 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER, INCLUDES_PATCH, MAILING_LIST_MULTI, MSGID_FROM_MTA_HEADER, SPF_HELO_NONE, SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B80BCC43381 for ; Thu, 11 Mar 2021 22:25:53 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8134A64F85 for ; Thu, 11 Mar 2021 22:25:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229476AbhCKWZW (ORCPT ); Thu, 11 Mar 2021 17:25:22 -0500 Received: from mx0d-0054df01.pphosted.com ([67.231.150.19]:12983 "EHLO mx0d-0054df01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229603AbhCKWZT (ORCPT ); Thu, 11 Mar 2021 17:25:19 -0500 Received: from pps.filterd (m0209000.ppops.net [127.0.0.1]) by mx0c-0054df01.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 12BML6JO021367; Thu, 11 Mar 2021 17:25:13 -0500 Received: from can01-to1-obe.outbound.protection.outlook.com (mail-to1can01lp2054.outbound.protection.outlook.com [104.47.61.54]) by mx0c-0054df01.pphosted.com with ESMTP id 375yymh9d7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 11 Mar 2021 17:25:13 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LxNRXec3/gbEjXFciauJj+xXASxGxaqa86HLaMtV1c0NNXnRWN5x87agwQXVr87DQU/EWuzf/kgOxMBhSwkSpU+ueSjdZJQIuPMCRBBv69cIaAxgso9TYuG3vk+vDKYBN90cQ0yBW3ODhnj39XkrHwKxWO+BaWA47P8PICkeF4e4zIjkOjKtGIzhIs7nLmRigvrI+7l83HQS8bWRqCzEBbp/fA+sRx7lgTeN+KvAsnsEGVxFpChnnjb8HCmf0hvLYM5tazniC1pM/Uoh42ur86phggHHoSHN7ZV4oL3RtPx0OApLj8HmlogjbXoyVBVECf2/4ypqjpx7O9NLEBGS/g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+BjrsK/Q9NiLvydn53QHJGCbH0b57OHokfQajY2Hf/E=; b=gNx7ujGpkMbD270um9EUYqI8J/vS8G5iUDIKLOr83WlXd8fW4OqDm2Sb+Ic8rowhJCCmFclV8LnmvRCzrgTaudKMvb0PMgwdgRjeHM2SCFVBo3zlNXUYxJmtm5fuj8uZ1DxmiBrxG3Vlgo3LXOwp0UmoLEBBOIOuSNXQ9SgSSW6IbrSn8/lQfkqgA+8Q+ThBJ4spPGShQzKCOr66oGJbMVP7FXWw3ahkK6zYd7jfheQey4rGRDg976dHVYUSjx+Bj+JlWGwkRkOTmDb22MHjV53/PBTl7T8DlNMKuvsVhRdBQivf8xFucHF4ytRNhwtak0UKgxAwhpqyBNWZtX9icg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=calian.com; dmarc=pass action=none header.from=calian.com; dkim=pass header.d=calian.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=calian.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+BjrsK/Q9NiLvydn53QHJGCbH0b57OHokfQajY2Hf/E=; b=Nf+KP1hwBOTPcli/h9hi9CDcja3U6fnLRyRkKYlhzzigFKhgcqFvCbMjjMzwkf/X3PNjFW/Peeypn+rVtTogyOXefcrUtO9L/dMGg0QNEri/cPxpMIzYHWt0iSUXQeboik15O0eIsJDp4MzCVsPMkSur0VkPmhKm+bIRo8yIQN8= Authentication-Results: baylibre.com; dkim=none (message not signed) header.d=none; baylibre.com; dmarc=none action=none header.from=calian.com; Received: from YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:f::20) by YTXPR0101MB0960.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b00:b::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3890.28; Thu, 11 Mar 2021 22:25:12 +0000 Received: from YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM ([fe80::90d4:4d5b:b4c2:fdeb]) by YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM ([fe80::90d4:4d5b:b4c2:fdeb%7]) with mapi id 15.20.3912.027; Thu, 11 Mar 2021 22:25:12 +0000 From: Robert Hancock To: mturquette@baylibre.com, sboyd@kernel.org Cc: mike.looijmans@topic.nl, devicetree@vger.kernel.org, linux-clk@vger.kernel.org, Robert Hancock Subject: [PATCH 3/9] clk: si5341: Avoid divide errors due to bogus register contents Date: Thu, 11 Mar 2021 16:24:30 -0600 Message-Id: <20210311222436.3826800-4-robert.hancock@calian.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210311222436.3826800-1-robert.hancock@calian.com> References: <20210311222436.3826800-1-robert.hancock@calian.com> X-Originating-IP: [204.83.154.189] X-ClientProxiedBy: MWHPR12CA0055.namprd12.prod.outlook.com (2603:10b6:300:103::17) To YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:f::20) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (204.83.154.189) by MWHPR12CA0055.namprd12.prod.outlook.com (2603:10b6:300:103::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3912.17 via Frontend Transport; Thu, 11 Mar 2021 22:25:11 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0392d1c0-5ba2-49ea-bd49-08d8e4dc8945 X-MS-TrafficTypeDiagnostic: YTXPR0101MB0960: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7219; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: LX+07PK6Gi5RrcTWOfdLs/QlpTfSNnyimz87y5jy2CBW10PQfDU41wsyazouAqmOmnkCmAzIO1l50D3U+fd6bTcH2Wg5fygitVrI/31xdZbk2hb4hXZzeZHTLbAbVwPLFFr5lHFJeX015yC+NfyRGPuLr3ya15X9BtdNECitoiC8s8WVioTfDz7TcwswzRyB1YC51fDqdd5Q6Q4YnIed6fnXEP2VOoFP13JWnokumri0CL6dY+FBKRuMWAp31zVIVUvNeAgJvKSsgu4iVFnEiAO6CdKfvQEJB6LGZp/eDCe5IScIjwcbzgoUAFrsF5x3MNnMMhX0BWH42EdCqsZWq/GfObvJKdbhYtfboR9veQeT/k1h3x0bZnQXMXQVVrvWOHa7mbViSWQ7kmlZkGekxEXPuGBinD8STnU2kBYnC8c+ThClxpGxAGM6e/GOtvc3CpRPApByDQHr1xEEetRNH+MRjpldGIGIeTfye4wAZdy21u9fRgRaty2y4cDF25aHl2ufXvuwRjXfmNUGYhUicUb6i5IJDL+Vhjjk1GQ9C8LiyGu+YasSzd2ZdB85e+EPPE90LbmemKgtKspoH2vXZg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(4636009)(376002)(39850400004)(366004)(136003)(346002)(396003)(69590400012)(6666004)(6506007)(26005)(66946007)(66556008)(16526019)(44832011)(2616005)(956004)(478600001)(107886003)(6512007)(83380400001)(8676002)(4326008)(36756003)(8936002)(6486002)(186003)(1076003)(52116002)(66476007)(2906002)(5660300002)(316002)(86362001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: XgLm6T7zZNZNxM7GXzxzin12I4wx1yolZdj384InLuJEXgvlMEG4yMfmGmBG5EqheU3CIanpR0EIfCGtc+wyg70yLdH2yZiQMUmrhxS9wKy7DnclBfozc5saMmA9mPaLF8l38Jc96+17TTx5bJyfGppu2gTasuOPDw8TljUB/p0tM0N/7Tho8V06C6Z01PnKwWZjG/S+Ude/sK1ihqPB1ufn6WZ1Jgk5/e2NgzdYgB5+WGXYR/IKm26362MDIX8Wy8tYlaYYDrSZpTCmJEJa6KayPfjcmJTVxcCpIkVQpG3BCcGoi8u1L+BqbRAM2+R55lBaSlqEwgjxrZIvMFPKzJSSb6qnkSBlPg+R3zXBXpG4fnpvVHOwcFmId3NPdWU5yJCRtybng0lTNjE38kvYrFXvhc+74zLsOsHl3oKIiKEyFhjxnF7i3XeTjTcaSZChIlcOfLCVCZKILyJx5ngx1P8Aw+PITVpF+U5o0J8EytCB4wOSnuITYwbGhMzzR7OuxCynnyvMhHwHJvjFknyBz2ru9e4vO4s3xlUaS1BhljvtLPrdPg+zVJxQkIcjhl+N6LU5ccDyn5dF/iSSU9JpVwoVuaYKnkGhBrehUHg6opKQnS5Mgoj5bHTVKFZ5jIDou6BcFHxVTrOPJwVzSWhVsDS3Y/l4JG2EAwbz0kslVu8u//az+O2s9jX1R5icT6ADDU+Ui6ue9bRqVq1obzDawLtupxh/qxeeNM+I1/FKVFLUPFimN9NS/d2WsspAg8Lrn7AzE8W5Df9ACAdnyZHHoVM6jFUFLeaz5Srw6L4twCLdHMfm2t8+EF0l5N8C2THvoYtLMGHHlozlDUL7B2KrHUUJJ5Z3DNtjasIHw2/sVgb6DFrPeSv7i9wdo6YpbV1Z+scrlPQumyRGdcvcnDuNSoqhVZ8WjD0Gas48RaDq4d0GpZfwtwoRAjqRKBLywVpwAMLHxAFRZe3m9CwePBBuiri0DcWhV5v1ciFEWpY+i+wMpThIbAzVPOQAU5ln5nnA5rubq6of4FoN4TLay8ymlBKvaCiqgKQjObw8P23yJCr10v0nNw4N2U2NPyaQNi5XRsGKkDXAmhCowLTAKWFRmfKamirMzBkJh0rept/4+3ZboDwdI/o37oqyu1oU6tYUKsXZOAP/1MH5JhBrzXamSSklvlfP0/fHdYvBfeERhk8Xkrdv4buBbiVIajJe5oeE6LKByhGwDYQKjpleXuckypcYnRoqd2mP5XAEGIh9ABRvVK2KRfKQ6/BtrH7W+QWBVnqTCT9wK4gRZIbnnLjYpgfOWbsav4u8T/xKgtPs87eHh7FiG7Trf3spGKNhLZSQ X-OriginatorOrg: calian.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0392d1c0-5ba2-49ea-bd49-08d8e4dc8945 X-MS-Exchange-CrossTenant-AuthSource: YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2021 22:25:12.1441 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 23b57807-562f-49ad-92c4-3bb0f07a1fdf X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: g1YJhE1UALKnRkv69kkWjZ91f3ejjUNR092m9QFNQaVooo7n9WtRKA7z6FlBYy+2shrBYZpX6j33fuGxi4qTxwkzIpKmAHQ93hM+03EEN+M= X-MS-Exchange-Transport-CrossTenantHeadersStamped: YTXPR0101MB0960 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.369, 18.0.761 definitions=2021-03-11_12:2021-03-10,2021-03-11 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 clxscore=1015 spamscore=0 suspectscore=0 phishscore=0 adultscore=0 lowpriorityscore=0 bulkscore=0 mlxlogscore=999 impostorscore=0 malwarescore=0 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2103110117 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org If the Si5341 is being initially programmed and has no stored NVM configuration, some of the register contents may contain unexpected values, such as zeros, which could cause divide by zero errors during driver initialization. Trap errors caused by zero registers or zero clock rates which could result in divide errors later in the code. Fixes: 3044a860fd ("clk: Add Si5341/Si5340 driver") Signed-off-by: Robert Hancock --- drivers/clk/clk-si5341.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/clk/clk-si5341.c b/drivers/clk/clk-si5341.c index f210860fb96e..2d69b2144acf 100644 --- a/drivers/clk/clk-si5341.c +++ b/drivers/clk/clk-si5341.c @@ -624,6 +624,9 @@ static unsigned long si5341_synth_clk_recalc_rate(struct clk_hw *hw, SI5341_SYNTH_N_NUM(synth->index), &n_num, &n_den); if (err < 0) return err; + /* Check for bogus/uninitialized settings */ + if (!n_num || !n_den) + return 0; /* * n_num and n_den are shifted left as much as possible, so to prevent @@ -807,6 +810,9 @@ static long si5341_output_clk_round_rate(struct clk_hw *hw, unsigned long rate, { unsigned long r; + if (!rate) + return 0; + r = *parent_rate >> 1; /* If rate is an even divisor, no changes to parent required */ @@ -835,11 +841,16 @@ static int si5341_output_clk_set_rate(struct clk_hw *hw, unsigned long rate, unsigned long parent_rate) { struct clk_si5341_output *output = to_clk_si5341_output(hw); - /* Frequency divider is (r_div + 1) * 2 */ - u32 r_div = (parent_rate / rate) >> 1; + u32 r_div; int err; u8 r[3]; + if (!rate) + return -EINVAL; + + /* Frequency divider is (r_div + 1) * 2 */ + r_div = (parent_rate / rate) >> 1; + if (r_div <= 1) r_div = 0; else if (r_div >= BIT(24)) From patchwork Thu Mar 11 22:24:31 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Robert Hancock X-Patchwork-Id: 398993 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER, INCLUDES_PATCH, MAILING_LIST_MULTI, MSGID_FROM_MTA_HEADER, SPF_HELO_NONE, SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A3BE0C433E9 for ; Thu, 11 Mar 2021 22:25:53 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 5F5CF64F99 for ; Thu, 11 Mar 2021 22:25:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229488AbhCKWZX (ORCPT ); Thu, 11 Mar 2021 17:25:23 -0500 Received: from mx0c-0054df01.pphosted.com ([67.231.159.91]:40455 "EHLO mx0c-0054df01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229664AbhCKWZU (ORCPT ); Thu, 11 Mar 2021 17:25:20 -0500 Received: from pps.filterd (m0208999.ppops.net [127.0.0.1]) by mx0c-0054df01.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 12BMLvD6009850; Thu, 11 Mar 2021 17:25:14 -0500 Received: from can01-to1-obe.outbound.protection.outlook.com (mail-to1can01lp2052.outbound.protection.outlook.com [104.47.61.52]) by mx0c-0054df01.pphosted.com with ESMTP id 376bes9m84-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 11 Mar 2021 17:25:14 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cgix1WGu72dsD6wg9wKd4lQhPMVa64wVolhAPwC4yMRTyYo1dfnONpSlMZC9qpaMjrMksHaejF2I0uSFPPewj8qvi9SLjldwJK+W8iwx2DchhylGYh2Hu8PnaQT58XJXwR8+vI57ICMrqsipyncxR2xO3Nuxn2vRXZgs42lU4xhkREExjY+ZYZWIcutOTS/Ik5PpBAgzuJWi4826KjHCoDdxCZ8o/yKk2veefPDJrNBMZ89PJlTPk+/cgfcratjQlJb2jwi04oaVkaSdwZTG8MZX2oJ5sZqE3HEgC/a3lYFPVVD/caRu7FpDMLwRoy/w95wC4CdIjReZsRVBhTIpXQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=FJQLceEnUqW4NPmr4QN64XNbQGtz8vEx3AGlcgu4jk8=; b=drp5mHnaTTMfH75RywpDLNT6nVUwkVsy5GXT99PlN8wCsAbLSLP8NySrB6ODb7reAQPqx5//Bk8frJwp4JeCjCoGtZcazGQbmyJV2PuAc05y7DvMeU920Y/a30EPDI6q6jUv89tsETamT20nF7jByO5z1N4vhgOcWhLeVN9R45tZDvLH43Lg2l+w52H2ImGNRYkCUUVC9qR46BxbGK66yucSQlIShJxhpsq1a9qt23zXwO3p55S80ZWL/YzkwuRGvvnenqxs1ZSUpC0iSHLnyc1XJCrFkXVf02KssVvkmakFzGQI2ihxHmEiF8TCQ7h/eGT8qY7iewRReb0Ru7e7sg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=calian.com; dmarc=pass action=none header.from=calian.com; dkim=pass header.d=calian.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=calian.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=FJQLceEnUqW4NPmr4QN64XNbQGtz8vEx3AGlcgu4jk8=; b=vfxX08yWPm9fmuGjIcUKE6GYM8SMvL5FCs0wL0KYf5sIfNNVuajafMUaXzddQ8Qe6sLSrsiJpkbX3krNVryNF8MnOPlry73tPllZNEonVARkhYFYYiVzRo0qkdWoDUI103RRb9VelK7E23gzCGah/JEojOEHwn6H/7k4MBCfTu0= Authentication-Results: baylibre.com; dkim=none (message not signed) header.d=none; baylibre.com; dmarc=none action=none header.from=calian.com; Received: from YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:f::20) by YTXPR0101MB0960.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b00:b::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3890.28; Thu, 11 Mar 2021 22:25:13 +0000 Received: from YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM ([fe80::90d4:4d5b:b4c2:fdeb]) by YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM ([fe80::90d4:4d5b:b4c2:fdeb%7]) with mapi id 15.20.3912.027; Thu, 11 Mar 2021 22:25:13 +0000 From: Robert Hancock To: mturquette@baylibre.com, sboyd@kernel.org Cc: mike.looijmans@topic.nl, devicetree@vger.kernel.org, linux-clk@vger.kernel.org, Robert Hancock Subject: [PATCH 4/9] clk: si5341: Check for input clock presence and PLL lock on startup Date: Thu, 11 Mar 2021 16:24:31 -0600 Message-Id: <20210311222436.3826800-5-robert.hancock@calian.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210311222436.3826800-1-robert.hancock@calian.com> References: <20210311222436.3826800-1-robert.hancock@calian.com> X-Originating-IP: [204.83.154.189] X-ClientProxiedBy: MWHPR12CA0055.namprd12.prod.outlook.com (2603:10b6:300:103::17) To YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:f::20) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (204.83.154.189) by MWHPR12CA0055.namprd12.prod.outlook.com (2603:10b6:300:103::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3912.17 via Frontend Transport; Thu, 11 Mar 2021 22:25:12 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 235c12aa-2405-484d-35c4-08d8e4dc8a0d X-MS-TrafficTypeDiagnostic: YTXPR0101MB0960: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6790; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: bo13AGcKTiPa4/L6pRl4psM8YJT7aPoeTWvF1H7UfK7x/a2kYBTSOjNXCZ0cxurKBH7saVM6xzoe65xn1GdFGGtbqJhUq0nMirfhSe53TDVj9LAueEzqYO1kRboFNdW5FIFOn8/xJ48G625Z2sPiZWLJNd2SCECLHZL1sQ3H2FqmzIGlKcuWKGUgIUEf0CT4xtLL6UyLW0dqL9Fsp9F2rAtq1JWLMVLRkW8BmIbJB+lYUszJg4HdS4BI4An90SSIdafQ6YCB01WmMeGcYh8VO4hwIDDsWQoHBcZdCILGJUz8E1L0nMP7EMSmPJ3tODlY2E+vyT7MzBKWKVhifuMu3jOLu6M1QrCNeiROtkDbDUhWgZmi7D5LOsDw+kFxuLz+WtS7APQTGzrrf1ZgfsM/hQUZJbDE7e9vLIjN3ckeSbzhddIMMwHixGg2W1ORrbKVSnM5/l9Thf0TADiUArIEnJW2CJGWTaIk8cnxjkGyn5x8ZRuxcdgITfkAiIZtiUmYhuhwEEjwgPe+cL+2eDRT2f+wGFKb9n6PuF+jC9ZWqOqwVqbKzRqYk+DGPKPjYFofJaamNDKdSNq3snVU+FpcNg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(4636009)(376002)(39850400004)(366004)(136003)(346002)(396003)(69590400012)(6666004)(6506007)(26005)(66946007)(66556008)(16526019)(44832011)(2616005)(956004)(478600001)(107886003)(6512007)(83380400001)(8676002)(4326008)(36756003)(8936002)(6486002)(186003)(1076003)(52116002)(66476007)(2906002)(5660300002)(316002)(86362001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: qgwhBQKqjbnqCe6YaT05dD5szJghlNFHaXP3ySbnjFqOoex9KBbAAhnnj1rLRiCvgGSiLLZ49zBdH2c8uL1WogwxHgl8/dSj1MThzJaz9EVSawuP8gzqbwB0fQVDJTSeMb/ikZMXkdbrOGVrpOS1A/DUhi61Kfc2VMEU8HIVpxaiHO5oXLKlynzEsTJ8xl0huWBdQQVM5vajKEc7G3um645Sr2moDdf73GDbasfLkaF7ZopSlJPYrtHaJYfcw4EMS6Zb9fYhKm6+cb0SLoUqihhaw3XPRUUF3RvU5bwwGq/WsZWes0r0RDGsBLEO0e9P33AQ9RNabP4tbOWCYiSNvVEJGfnFOQwUz67ThOx8KiGz0sVo9e9KZe6mEH5T92qovekfVJ3k57m0VC/niftkFjdyfZY1wfL4yZ5zZGr/BDolcmgPFaYdfcbI0fm83osx4lpJ5BGc7BhV5LnNU++8a1mxAxFpTMk8gRtyGyBDk+GpprtwvjRiNxsnKtJnUXd42J+Trd9GJsdkkBXsIPijSJPyajpbRwMkr+0TTrDHX0ozZIjHqN2a1nTSso7iBKXNq9X7D9Bk1MxpTgq+egyZM4Jg053YJ+Ynu3cseit4Ro16ERtOJ0fQtzqSl5ocdJe/tfmiSiGTdWjfaTzJqZ/uOU1MW+mDpoG167tis9STWRnyqLaaZVxEMckqZX9Ck/NUc1XGz4T+JL7UIN47fcH76jthFReW7lJ2TB/qV1SnPzirF7Yon62XplGZHz3bB9oy5MPSwkueYxNc1mx+dIWT9WS4WtBUb56wmlt10wz0raE8DzNXOkD/myYxtw+SlYJWrm1dmZKcdpn//CPaKp4dIwqtIUTPOLTZvrON/dzhBe0zXh9YZqZ+PCLMy2qOvkP+vUjCXHPF2c7+b8V05EUNu4x4cOlFLReHX8pCoXJv4oe79u4ItL4ydccLqSph5Ny6eI9f1YDYHXPz0VnEMK6MdOUQdmCKltkRqh5vnuPpaBzurjXgbpXAUVzZh2VkbQOUT1TF5juJBNkrOwUqeEurGoGNY1+VUVQOUAIGy+XDxnxlMWWsqvI3tbUUKOvWBWjxBRhMMiEL81mS/wKs+dCdgBZFA9lnrJvLVK3kR3TyVgNCxctmNcvbuFm/JwqN19Bx2gDM4mLWKhdbD+nK+M+0wt+kAk0yTu9+OjVFZwxjVsdiKlrb7v2CLaO0yFas5uUXsQySO4dqz4jvB1XgtnSLvjJvKQLybseznAQVqlkrL1eGrf5w8MtzFO6dy674etsYAYLPla4Wnt1e21+LN87m7ik6wnnRyV3+2Fi6OfLkj12lQmu91gZxGb3RtaomE+oI X-OriginatorOrg: calian.com X-MS-Exchange-CrossTenant-Network-Message-Id: 235c12aa-2405-484d-35c4-08d8e4dc8a0d X-MS-Exchange-CrossTenant-AuthSource: YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2021 22:25:13.4543 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 23b57807-562f-49ad-92c4-3bb0f07a1fdf X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: UaTPM8qmWNS0BdyCuXRLFVU9Ks1hhmvTXkmq/LghnJ0Lk+Fwj/otB4U2vKvfu6d0I34A8KwafQVj3a0nWKu1Z63DwstZqD/SITRdkSMv++c= X-MS-Exchange-Transport-CrossTenantHeadersStamped: YTXPR0101MB0960 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.369, 18.0.761 definitions=2021-03-11_12:2021-03-10,2021-03-11 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxlogscore=999 phishscore=0 priorityscore=1501 adultscore=0 spamscore=0 lowpriorityscore=0 bulkscore=0 malwarescore=0 mlxscore=0 suspectscore=0 clxscore=1015 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2103110117 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org After initializing the device, allow sufficient time for the PLL to lock (if we reconfigured it) and verify that the input clock is present and the PLL has locked before declaring success. Fixes: 3044a860fd ("clk: Add Si5341/Si5340 driver") Signed-off-by: Robert Hancock --- drivers/clk/clk-si5341.c | 46 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/drivers/clk/clk-si5341.c b/drivers/clk/clk-si5341.c index 2d69b2144acf..5221e431f6cb 100644 --- a/drivers/clk/clk-si5341.c +++ b/drivers/clk/clk-si5341.c @@ -92,6 +92,9 @@ struct clk_si5341_output_config { #define SI5341_PN_BASE 0x0002 #define SI5341_DEVICE_REV 0x0005 #define SI5341_STATUS 0x000C +#define SI5341_LOS 0x000D +#define SI5341_STATUS_STICKY 0x0011 +#define SI5341_LOS_STICKY 0x0012 #define SI5341_SOFT_RST 0x001C #define SI5341_IN_SEL 0x0021 #define SI5341_DEVICE_READY 0x00FE @@ -99,6 +102,12 @@ struct clk_si5341_output_config { #define SI5341_IN_EN 0x0949 #define SI5341_INX_TO_PFD_EN 0x094A +/* Status bits */ +#define SI5341_STATUS_SYSINCAL BIT(0) +#define SI5341_STATUS_LOSXAXB BIT(1) +#define SI5341_STATUS_LOSREF BIT(2) +#define SI5341_STATUS_LOL BIT(3) + /* Input selection */ #define SI5341_IN_SEL_MASK 0x06 #define SI5341_IN_SEL_SHIFT 1 @@ -1403,6 +1412,29 @@ static int si5341_clk_select_active_input(struct clk_si5341 *data) return res; } +static int si5341_check_healthy(struct clk_si5341 *data) +{ + u32 status; + int res = regmap_read(data->regmap, SI5341_STATUS, &status); + + if (res < 0) { + dev_err(&data->i2c_client->dev, "failed to read status\n"); + return res; + } + + if ((status & SI5341_STATUS_LOSREF)) { + dev_err(&data->i2c_client->dev, "input clock not present\n"); + return -EIO; + } + + if ((status & SI5341_STATUS_LOL)) { + dev_err(&data->i2c_client->dev, "PLL not locked\n"); + return -EIO; + } + + return 0; +} + static int si5341_probe(struct i2c_client *client, const struct i2c_device_id *id) { @@ -1580,6 +1612,20 @@ static int si5341_probe(struct i2c_client *client, err = si5341_finalize_defaults(data); if (err < 0) return err; + + /* allow time for PLL to lock */ + msleep(250); + } + + err = si5341_check_healthy(data); + if (err) + return err; + + /* clear sticky alarm bits from initialization */ + err = regmap_write(data->regmap, SI5341_STATUS_STICKY, 0); + if (err) { + dev_err(&client->dev, "unable to clear sticky status\n"); + return err; } /* Free the names, clk framework makes copies */ From patchwork Thu Mar 11 22:24:32 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Robert Hancock X-Patchwork-Id: 397738 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER, INCLUDES_PATCH, MAILING_LIST_MULTI, MSGID_FROM_MTA_HEADER, SPF_HELO_NONE, SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2AE25C433E0 for ; Thu, 11 Mar 2021 22:26:25 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E41D064F7A for ; Thu, 11 Mar 2021 22:26:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229564AbhCKWZx (ORCPT ); Thu, 11 Mar 2021 17:25:53 -0500 Received: from mx0d-0054df01.pphosted.com ([67.231.150.19]:9907 "EHLO mx0d-0054df01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229667AbhCKWZV (ORCPT ); Thu, 11 Mar 2021 17:25:21 -0500 Received: from pps.filterd (m0209000.ppops.net [127.0.0.1]) by mx0c-0054df01.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 12BML8bX021370; Thu, 11 Mar 2021 17:25:16 -0500 Received: from can01-to1-obe.outbound.protection.outlook.com (mail-to1can01lp2053.outbound.protection.outlook.com [104.47.61.53]) by mx0c-0054df01.pphosted.com with ESMTP id 375yymh9da-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 11 Mar 2021 17:25:16 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VdMMrR4SEzPDHK1g9meLEwTFjCzikryLd/+EdhT8nnnSREB1l8FrcPC4q66BZpSZy95fVtei5Up++3B1HvE1mS76tVTxvJxLLazD55t/G73p1j0NyJDJ5cbb/ePGHK2OeBoTjYt9gU+H9GKuKzBaIyNhCDWNK+/+/XbYhC9cswlTelwaz3g0QNkfinmfHDQ93hFTNeKeaLxtWaX2qjG1RO8MBwpK/VoEMn1vZNLwYmwOq9FGmRIPiIyqb1a+TBPtf1b0G15Gvrwrfw1uRlhyRyLNM/XZs1XELZiQLmEZCpjgmi3uaXsd2urh5MIXPkzV3aZ94iSC1BUXFeHM826nNw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WI8epYpgU2pi0jjIskqWRC4Qtf7HC/xj56GE9mczrxA=; b=KDanZPW1y2i5lGnVZO2u8twSDwea3XXntdgwuLTK4wnoLN3jDgwirHpVFHjgBvszbB3E7ZKBHIbnD7jlf4lbk6G59OWor33sbYbW55y0+/awdnWi7IlVGBaH0Xby0r0XKk3xkhS2Upjf7A3G8Vz1bm5Hpn3NVs0hOCQNo9q/jOkFJC0jkEne234vLcyz6ADFWTtZK9vTJaixSGJTBhZANCENGHzNwCjiVwpnboO8Q6pIok/ww2gHuYUW4oAYCz0rVE/Rt33pXxPxdaQxkmj8knZJGad3sctN2u4MtUSARwCKhx0D7ggVZbIPzKOpxV2aYUTmbjS4i0bbVhoR4byvlQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=calian.com; dmarc=pass action=none header.from=calian.com; dkim=pass header.d=calian.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=calian.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WI8epYpgU2pi0jjIskqWRC4Qtf7HC/xj56GE9mczrxA=; b=mLxpi/fB36wnFlz5DwMB2+3yM9St4yEwk/atqyp/p8n59Z4jD466w8SwwzOS+srqMZhhyEjMrimCYJ/NzxB1mZ3l5Q+qesGwAPwyYwFix+GtylceMDnkDGqILSpXh9wzkTVEx2fai8MB0wBn8I0I2pq3eNILqXKCwPX4NrqGQRk= Authentication-Results: baylibre.com; dkim=none (message not signed) header.d=none; baylibre.com; dmarc=none action=none header.from=calian.com; Received: from YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:f::20) by YTXPR0101MB0960.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b00:b::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3890.28; Thu, 11 Mar 2021 22:25:15 +0000 Received: from YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM ([fe80::90d4:4d5b:b4c2:fdeb]) by YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM ([fe80::90d4:4d5b:b4c2:fdeb%7]) with mapi id 15.20.3912.027; Thu, 11 Mar 2021 22:25:15 +0000 From: Robert Hancock To: mturquette@baylibre.com, sboyd@kernel.org Cc: mike.looijmans@topic.nl, devicetree@vger.kernel.org, linux-clk@vger.kernel.org, Robert Hancock Subject: [PATCH 5/9] clk: si5341: Update initialization magic Date: Thu, 11 Mar 2021 16:24:32 -0600 Message-Id: <20210311222436.3826800-6-robert.hancock@calian.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210311222436.3826800-1-robert.hancock@calian.com> References: <20210311222436.3826800-1-robert.hancock@calian.com> X-Originating-IP: [204.83.154.189] X-ClientProxiedBy: MWHPR12CA0055.namprd12.prod.outlook.com (2603:10b6:300:103::17) To YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:f::20) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (204.83.154.189) by MWHPR12CA0055.namprd12.prod.outlook.com (2603:10b6:300:103::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3912.17 via Frontend Transport; Thu, 11 Mar 2021 22:25:14 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 176a753a-dd76-4241-7db7-08d8e4dc8b5b X-MS-TrafficTypeDiagnostic: YTXPR0101MB0960: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7219; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: HdT60spqS618uwhabsMkDv81bGcFrspRz/E4O1W6bt6WJgVGrmmGMOkjzOJ1L2NuxMSubj+T2CW9O8Zaozzrp+65mmehbdGpv8DBuTMuH376/h5uA+CRzKCCUiBDFnDJZsbx7vY2VuN9zooOpAVRxEDvtxyxOZRKJx4vwh9GG8/J7E4pq42DxQOlhI6AhJLJtnKPFTTcmdqww5Zm4ajK52k+o7fSAOztVe9a/THNN6bhMmj/zDiwneNLbmpuMZtqEypWxS7mLB12KYiuy3Ph9mdO1kzLDgAfn6444sup4NEjrCje968Q01Pk0lt5YGDe7bWou0rUNbRaJVMWSy0MKOiex+qhGOKeFLV9l/uq0jh+l3q2Su+LH1zcVKiVRRQ0NVDky8OTdW/n0Dd/vjja6y7l0MbvUywfIYV5KjfIN3dOPtC9+2w3Iu0aVscZuXoDk1+bXoE5yB5F2xdbURW97fQltryykfA5xU0nuB4p9/rAJP9bRFmGc1KF+tFtwFLNIbWtdMznxi8P4SI0JdrMhVgKlR0nkbMS7TM4G8eNe/Ablh3dZrEDB7MtxXLKxBFvnsRdVSNgq/eEbQP3Flezsg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(4636009)(376002)(39850400004)(366004)(136003)(346002)(396003)(69590400012)(6666004)(6506007)(26005)(66946007)(66556008)(16526019)(44832011)(2616005)(956004)(478600001)(107886003)(6512007)(83380400001)(8676002)(4326008)(36756003)(8936002)(6486002)(186003)(1076003)(52116002)(66476007)(2906002)(5660300002)(316002)(15650500001)(86362001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: nv+I10JsK7GFY5kaCQhzIhigpws5RdO6AtglYKjI2QgVswewKIB4ub+1ZrRXM44RvnGiK5i1IX1+0up4CaJ6irBEpXey6eTNwslnsfW4LIH8H1IZ8fvEB3/OFKAgLF7rau2wy06C6EaZQKzU89ZejbqJeJNUKeOTTb45RumnT5kxSSF5SBi36wM9stpAfGz9S+dfW5VzX9kaN9fWTebf46QSQOsKe5ihqRuzri85DLbQnfJvtp3dtuz3jnE8N1Am5zMtwM/6eOkTbuJQjvgIh4v4FJ1TPwGFkwxLHzGkl0M6KKvBybocie8VLcGfocvWk4WnnRnVcvIAsUjetEvWv+29C+0maa1Umc5lDbgHXi9MGeviGUW9quno9IPShdyKAo0cL7ByTzpFSsTlC8UqD6pfUadG5NJIZw6Wdx7UvC+CAk7kwyANFSphniTE1XbpYwoByGs0DybzemRhw5yCvtUjTt6oCVkqFuzXq9ZwlcG9nulfDsT7J+MyYkDrGAbSsn8pSSWYZdvzJfoVpDHmXVTFiwLqn2DA8DnZ9sDJLO7QFQYCJGJho2oicof31wJVLVybZPmqAzBoAxktsfaAY8TOqGyasZaKX4TquAw/4KxWmCpx6xB53uqxkvkoJ+XjBMnCH6K6k15VCMTNI7xp3fJQLD7b2DBT+fFGO4qVNZGdPncvqUakBdZywPIv7rHEA0J8TvdGrfmC/D4gZcOm5hhGG3CWyz3hGnTvLU5o55bVABV1UI3X2uLcFN1MgDUFco7M/XJRRUO+uFVergj+WNM6ZUeMuXWTogGsJtBeNq9Oc9HpJdTv4LiGbMVI/uP13cpc97lFbm9Qj6POhxm65e7NNZOH6S7GE2w5NDD7j9bxb6u6xUAMW+CQnPOPpzRqhT7XcrTP3Fpf9P/WBTX7lkczZ0GMzZKqZ4bJeGcnkhV9ay80tpcy4nopU7LnH0fhdMEgRi+jaCj958Nv1HwYYdef/JGwgQZC/SVrGgqyFuCaTlywEoFrTVOpQWUKtCdWiFJJROv66uJCzHLiEjuK0Usfs2Vz9864b0W5Yriipm1DdmB78X0uiHV9Z10q0b5xhBqT/3AqjCFJHh1fL+L4Zfj3uoDbrz6qAwsMK7mnCD76eEaCkXhrAIMjGo5i6mLqnBrVlTCWx1uHinaF+LVgxJI6/IRhshtQ3kbS/b22f4J4MNAxPzcxCMweJb6QbJhmKLg359Kxe6T2mMJGOVG/gTaZOLPinsqomIsfPJo2qzBO24CU+zIDDiJpphp0NDn2/sS54MU7WjfHrcpJYJy9YEREZF4g8Qj+PFZXUISD6b2AOyO8X5rlWmPgzNnbTbEf X-OriginatorOrg: calian.com X-MS-Exchange-CrossTenant-Network-Message-Id: 176a753a-dd76-4241-7db7-08d8e4dc8b5b X-MS-Exchange-CrossTenant-AuthSource: YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2021 22:25:15.6781 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 23b57807-562f-49ad-92c4-3bb0f07a1fdf X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: U5oex0CpWUgsp5OsDPrDRakBaPVsja97R/mmSdkHWsrDhgjM66f2egLKlkAr12tD313DoqssqccfIcUcec31O5e0Zjux0arphSlml8uVMUs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: YTXPR0101MB0960 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.369, 18.0.761 definitions=2021-03-11_12:2021-03-10,2021-03-11 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 clxscore=1015 spamscore=0 suspectscore=0 phishscore=0 adultscore=0 lowpriorityscore=0 bulkscore=0 mlxlogscore=881 impostorscore=0 malwarescore=0 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2103110117 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Update the default register settings to include the VCO_RESET_CALCODE settings (set by the SiLabs ClockBuilder software but not described in the datasheet). Also update part of the initialization sequence to match ClockBuilder and the datasheet. Fixes: 3044a860fd ("clk: Add Si5341/Si5340 driver") Signed-off-by: Robert Hancock --- drivers/clk/clk-si5341.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/clk/clk-si5341.c b/drivers/clk/clk-si5341.c index 5221e431f6cb..b758cc9987ca 100644 --- a/drivers/clk/clk-si5341.c +++ b/drivers/clk/clk-si5341.c @@ -350,6 +350,8 @@ static const struct si5341_reg_default si5341_reg_defaults[] = { { 0x094A, 0x00 }, /* INx_TO_PFD_EN (disabled) */ { 0x0A02, 0x00 }, /* Not in datasheet */ { 0x0B44, 0x0F }, /* PDIV_ENB (datasheet does not mention what it is) */ + { 0x0B57, 0x10 }, /* VCO_RESET_CALCODE (not described in datasheet) */ + { 0x0B58, 0x05 }, /* VCO_RESET_CALCODE (not described in datasheet) */ }; /* Read and interpret a 44-bit followed by a 32-bit value in the regmap */ @@ -1104,7 +1106,7 @@ static const struct si5341_reg_default si5341_preamble[] = { { 0x0B25, 0x00 }, { 0x0502, 0x01 }, { 0x0505, 0x03 }, - { 0x0957, 0x1F }, + { 0x0957, 0x17 }, { 0x0B4E, 0x1A }, }; From patchwork Thu Mar 11 22:24:33 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Robert Hancock X-Patchwork-Id: 398990 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER, INCLUDES_PATCH, MAILING_LIST_MULTI, MSGID_FROM_MTA_HEADER, SPF_HELO_NONE, SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 76D2DC433E6 for ; Thu, 11 Mar 2021 22:26:25 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 4B89D64F7A for ; Thu, 11 Mar 2021 22:26:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229677AbhCKWZx (ORCPT ); Thu, 11 Mar 2021 17:25:53 -0500 Received: from mx0c-0054df01.pphosted.com ([67.231.159.91]:12275 "EHLO mx0c-0054df01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229524AbhCKWZY (ORCPT ); Thu, 11 Mar 2021 17:25:24 -0500 Received: from pps.filterd (m0208999.ppops.net [127.0.0.1]) by mx0c-0054df01.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 12BMLkgU009817; Thu, 11 Mar 2021 17:25:18 -0500 Received: from can01-to1-obe.outbound.protection.outlook.com (mail-to1can01lp2059.outbound.protection.outlook.com [104.47.61.59]) by mx0c-0054df01.pphosted.com with ESMTP id 376bes9m86-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 11 Mar 2021 17:25:18 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nMrwj9cwIDzG5yNp6qNao5abXV+PZUYLqClVkNZLQOPT059+pdETryiAOgZewLuEvRzp3lGOq86Zo7tYX4pfxITQYlTU0aj3mddW+ZQ2fxLM1zNfFYJkyp18bFeMGISfytGFdQrHJq8S0Hi0YjV3/QJGxa6MUWcdj/9qC00DGfL98lXkXT1sWiDjyR2Tk9jT0kXrhArpp99S+I0ZOUbV2JdXpQdTZYdH3IGxiHuZITeVfE6zd/NOJgZ6cv4syBXaokly42QplxjszNXvsyS7z+M1XFgQzl/Aq8wRxvZh8FVQfcPdPe0VV4A+2X32jkzlci+G74ufbHqS8QlsHD4E3A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=CjcKKyNUvpP2gbc3MnQKFtCAOrmz+UNMPDn966oOCRE=; b=iJqm2RW1XC3sMm47/reR1sYlEn0R5EihGLp6oiQzf9VEpIxfzMngy9sBTNS15LZ8zWyce8gXmkBHHI6P3QKsGUDKv3S+oGunAsAWlTcQ7xKTR0tlNJTpJHcv7XOhMG0bQr5bkgbdZyNg/53dP1nkDXX1QgF9BmKecUMji+9Zydm8l4XBtMcuM0FAUhBDLvKYUYIEjLuiTLbYujBrqqul3r0W2LNP/37qo++usq3cjJlPwkfeexGrIcLSTffHnhctcBjfW+G9aRawgwhGEEP1YRcJzFTsLsRRw3xJz7tngxjCNUuYQZ+5rM/gi5/WPbZKvtsxFEOyPke7z8QLNYkQPg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=calian.com; dmarc=pass action=none header.from=calian.com; dkim=pass header.d=calian.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=calian.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=CjcKKyNUvpP2gbc3MnQKFtCAOrmz+UNMPDn966oOCRE=; b=G6wSr4HKq0YxsDCjEYxOoC9sIbn7rP26J5LgAzlvKqRz5P9cDW9GfB28iCOUeD6tTXDHIkAtQJ18kRKFbcbYk3Jya7XHt/x0bWfRNBN1sp2wzE8Vmtr0TYgJyCGENVehV6A2Hiyp5Soq0EQ6iWi21PYjw2cxPq5HM1PapvIZfAI= Authentication-Results: baylibre.com; dkim=none (message not signed) header.d=none; baylibre.com; dmarc=none action=none header.from=calian.com; Received: from YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:f::20) by YTXPR0101MB0960.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b00:b::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3890.28; Thu, 11 Mar 2021 22:25:17 +0000 Received: from YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM ([fe80::90d4:4d5b:b4c2:fdeb]) by YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM ([fe80::90d4:4d5b:b4c2:fdeb%7]) with mapi id 15.20.3912.027; Thu, 11 Mar 2021 22:25:17 +0000 From: Robert Hancock To: mturquette@baylibre.com, sboyd@kernel.org Cc: mike.looijmans@topic.nl, devicetree@vger.kernel.org, linux-clk@vger.kernel.org, Robert Hancock Subject: [PATCH 6/9] clk: si5341: Allow different output VDD_SEL values Date: Thu, 11 Mar 2021 16:24:33 -0600 Message-Id: <20210311222436.3826800-7-robert.hancock@calian.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210311222436.3826800-1-robert.hancock@calian.com> References: <20210311222436.3826800-1-robert.hancock@calian.com> X-Originating-IP: [204.83.154.189] X-ClientProxiedBy: MWHPR12CA0055.namprd12.prod.outlook.com (2603:10b6:300:103::17) To YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:f::20) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (204.83.154.189) by MWHPR12CA0055.namprd12.prod.outlook.com (2603:10b6:300:103::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3912.17 via Frontend Transport; Thu, 11 Mar 2021 22:25:15 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 954eef2f-b666-4fd4-5a06-08d8e4dc8c22 X-MS-TrafficTypeDiagnostic: YTXPR0101MB0960: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:983; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: i0/CpYj90o+aXCXhvv/6nBh6RxLmeX3oTH1iXYTbxoBThCdrXGN31BIpH5XU3YGmMS3u72kukRpk+5Q8dHhJv72KEG/+KHrTP76PgzTaVzqcvT2L79oN1kRwFhHWvErgbuFn8Or37EO3CVNkii8SNLBLSAZoXRAvSIx/b76Gzaf7tsmb6t0BEXbS4YOPpJlEUOq/ZANHb55Qx4YKjk4CRgEDlYTMEF4UYOcxR4oNixsCbN4XLO/8Mehf7HmsbOwDt0xog9NZQazkvON4L4o4SDurfydNu2bO7qfN8d8xPsp4Q0TPwz2cvXJ8RvDMlkdSUz5jslLq1OqpLpi3Gpx/lhWelzLUyOVm37HclAcYGtPxuaW/EU5lGJf3XDzSOf3bHOM2LhK9yKTanEzzlNsrxMsarQKSS+mxg1AlbcVSQ8puJ5QKwso1ze8qa8MLEvxiilbVDIDUd4UBuuMlEy2bCwpjZsckPdgGLXZUqSY8Bl/LnKtb4a38jHBLipuwPOZnq7OaDRa4o9y82ZofT0ZKxyWGG2FMS3GSe6nLZdD2BCtHxww4JKC2dkqoGaRObgdlkWBakv+D9RDMiUNUm4Mh8yTa5jBtlMuJomfImQbJ5l4= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(4636009)(376002)(39850400004)(366004)(136003)(346002)(396003)(69590400012)(6666004)(6506007)(26005)(66946007)(66556008)(16526019)(44832011)(2616005)(956004)(478600001)(107886003)(6512007)(83380400001)(8676002)(4326008)(36756003)(8936002)(6486002)(186003)(1076003)(52116002)(66476007)(2906002)(5660300002)(316002)(86362001)(461764006); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: vMREDbY3WIQ+Xt+V7wkxXwom0Bipb99ltqQ//T6WB/xU0gMqecbxjtCDXzgSKxxtV5MjZPc2+ghU+ILwvox4rUoWzWKcxiw/JivrPEcdMLnFc13anjcfLP1oRJw/dVoc9NXCm6GTt2OGao2hm+XaslHNIloscvl0LVTIiJ5yVSs2v7XFJEFRzzIVLdKisPSE7TtBFQVDrO4R9tCRl1X2LB7Vdp/I1UJx8qWCJeTvyQkwihzYMimVkTXWVoXZxbmH7oVNbE9dvt5Xa5nUDIQ9CvBx5YKJznpCkHsOwZoNF/0LsncKAiZrd9amjv0KrI2EpW7RkCrhZMzR4h8/InhwVhLAIVOWnJovn9jyrGFk7ei9xXAMXsp186rWL97tcdOZekGR7j9IKCi8PIZ8z5jlV+oehUYAykTLwIK1kAyR7c13GZwhkMEk7ZJEVPb+x8Ud8dOIs0fyQnB7dw/MkUhpfLls31nJZiuFH465FlQrqpwpppgq0C0wpxGNXkSgdx69UknuiAN+4V5jbbry2uJB/Q3YSCgUZFizzH91Ilyh/ynF7iLBOqP79fOR5bjRxNN4yWrkB00AHlgksxL2VuICm0L3QmS6kH1s1YYXesMAyVeVNWP3N5EVlV+zm6MSQ7oT1+J4vbR50Av47mKx3ivsBiEkp7yCS0UYPVsZoo1Wsiwnfxt3Xaavr4ibLBRWFkIUetFJQWfX089qZTooDWVcKE+QUvKX/yae4e1Cfvqz1uxzWuCoM+5lyH85CgBTMVRS5CCC/v67gDK6OH319NQ3wG72Ntp3ifCQSYEQN88dVzMK5yS3E2+v/75I4ZpRnoGxgWW6TjRa/K18mWeYg++7mpwTA0XMjdolCvG3rrpgbAjFUoac6aVPDyprIvCvKBGcHEw99DF0Xgbg2dWSnSa/q64hsd1suM0dmO2H8k3C6nJXbCpGi+o0q5OaqXW1pBrMiAJ1pMLjs5lpcGLLJ9tv5c4eHlXFRicyFrrs4QMC15AHBnZhzrfqkMKY6mE5JOyanltO4FPnAYFJB+mRA3JSD5KlelgdtQXWPvSLRbW3rN86SD6bDg3Wscz2M+TFeJtNzRbfL5C2mZ10ZfKfZdl0+nmqHuKnLJ46u44dptD31/3QtIDVx0Cc5YJNBGTjQRhFEOjymGNL16Dz+xvv+akNP8D8JbMQzsaozj3fmnKviMkCGh1fU7jkDVIZaYDYxWpFN+nOa8K15nVEjW6T1tnnkuPeGSVavRwrpi2aEbXHlhoKZk6Xt0lyhAXB3F8yvMkvg7rSrq0TLdDTSlQ+iWHqNpwQ3lLiomO8G+Y9yGbddJffdDxtAUwdV7d7Cnh6HCgA X-OriginatorOrg: calian.com X-MS-Exchange-CrossTenant-Network-Message-Id: 954eef2f-b666-4fd4-5a06-08d8e4dc8c22 X-MS-Exchange-CrossTenant-AuthSource: YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2021 22:25:16.9273 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 23b57807-562f-49ad-92c4-3bb0f07a1fdf X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: aetl636mKYUmL6N+y7FVZt1eobcPGO0zrSxzwrTQBk5mJ44NUcgx0dmveSXXD2plbzCXFRlX9kFWhObLFnuSy6EZuqMgMHM36F3r7kYWG4M= X-MS-Exchange-Transport-CrossTenantHeadersStamped: YTXPR0101MB0960 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.369, 18.0.761 definitions=2021-03-11_12:2021-03-10,2021-03-11 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxlogscore=999 phishscore=0 priorityscore=1501 adultscore=0 spamscore=0 lowpriorityscore=0 bulkscore=0 malwarescore=0 mlxscore=0 suspectscore=0 clxscore=1015 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2103110117 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org The driver was not previously programming the VDD_SEL values for each output to indicate what external VDD voltage was used for each. Add ability to specify a regulator supplying the VDD pin for each output of the device. The voltage of the regulator is used to automatically set the VDD_SEL value appropriately. If no regulator is specified and the chip is being reconfigured, assume 2.5V which appears to be the chip default. Signed-off-by: Robert Hancock --- drivers/clk/clk-si5341.c | 136 +++++++++++++++++++++++++++++++-------- 1 file changed, 110 insertions(+), 26 deletions(-) diff --git a/drivers/clk/clk-si5341.c b/drivers/clk/clk-si5341.c index b758cc9987ca..f01a20fdf005 100644 --- a/drivers/clk/clk-si5341.c +++ b/drivers/clk/clk-si5341.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include @@ -59,6 +60,7 @@ struct clk_si5341_synth { struct clk_si5341_output { struct clk_hw hw; struct clk_si5341 *data; + struct regulator *vdd_reg; u8 index; }; #define to_clk_si5341_output(_hw) \ @@ -84,6 +86,7 @@ struct clk_si5341 { struct clk_si5341_output_config { u8 out_format_drv_bits; u8 out_cm_ampl_bits; + u8 vdd_sel_bits; bool synth_master; bool always_on; }; @@ -136,6 +139,8 @@ struct clk_si5341_output_config { #define SI5341_OUT_R_REG(output) \ ((output)->data->reg_rdiv_offset[(output)->index]) +#define SI5341_OUT_MUX_VDD_SEL_MASK 0x38 + /* Synthesize N divider */ #define SI5341_SYNTH_N_NUM(x) (0x0302 + ((x) * 11)) #define SI5341_SYNTH_N_DEN(x) (0x0308 + ((x) * 11)) @@ -1247,11 +1252,11 @@ static const struct regmap_config si5341_regmap_config = { .volatile_table = &si5341_regmap_volatile, }; -static int si5341_dt_parse_dt(struct i2c_client *client, - struct clk_si5341_output_config *config) +static int si5341_dt_parse_dt(struct clk_si5341 *data, + struct clk_si5341_output_config *config) { struct device_node *child; - struct device_node *np = client->dev.of_node; + struct device_node *np = data->i2c_client->dev.of_node; u32 num; u32 val; @@ -1260,13 +1265,13 @@ static int si5341_dt_parse_dt(struct i2c_client *client, for_each_child_of_node(np, child) { if (of_property_read_u32(child, "reg", &num)) { - dev_err(&client->dev, "missing reg property of %s\n", + dev_err(&data->i2c_client->dev, "missing reg property of %s\n", child->name); goto put_child; } if (num >= SI5341_MAX_NUM_OUTPUTS) { - dev_err(&client->dev, "invalid clkout %d\n", num); + dev_err(&data->i2c_client->dev, "invalid clkout %d\n", num); goto put_child; } @@ -1285,7 +1290,7 @@ static int si5341_dt_parse_dt(struct i2c_client *client, config[num].out_format_drv_bits |= 0xc0; break; default: - dev_err(&client->dev, + dev_err(&data->i2c_client->dev, "invalid silabs,format %u for %u\n", val, num); goto put_child; @@ -1298,7 +1303,7 @@ static int si5341_dt_parse_dt(struct i2c_client *client, if (!of_property_read_u32(child, "silabs,common-mode", &val)) { if (val > 0xf) { - dev_err(&client->dev, + dev_err(&data->i2c_client->dev, "invalid silabs,common-mode %u\n", val); goto put_child; @@ -1309,7 +1314,7 @@ static int si5341_dt_parse_dt(struct i2c_client *client, if (!of_property_read_u32(child, "silabs,amplitude", &val)) { if (val > 0xf) { - dev_err(&client->dev, + dev_err(&data->i2c_client->dev, "invalid silabs,amplitude %u\n", val); goto put_child; @@ -1326,6 +1331,34 @@ static int si5341_dt_parse_dt(struct i2c_client *client, config[num].always_on = of_property_read_bool(child, "always-on"); + + config[num].vdd_sel_bits = 0x08; + if (data->clk[num].vdd_reg) { + int vdd = regulator_get_voltage(data->clk[num].vdd_reg); + + switch (vdd) { + case 3300000: + config[num].vdd_sel_bits |= 0 << 4; + break; + case 1800000: + config[num].vdd_sel_bits |= 1 << 4; + break; + case 2500000: + config[num].vdd_sel_bits |= 2 << 4; + break; + default: + dev_err(&data->i2c_client->dev, + "unsupported vdd voltage %d for %s\n", + vdd, child->name); + goto put_child; + } + } else { + /* chip seems to default to 2.5V when not set */ + dev_warn(&data->i2c_client->dev, + "no regulator set, defaulting vdd_sel to 2.5V for %s\n", + child->name); + config[num].vdd_sel_bits |= 2 << 4; + } } return 0; @@ -1473,9 +1506,33 @@ static int si5341_probe(struct i2c_client *client, } } - err = si5341_dt_parse_dt(client, config); + for (i = 0; i < SI5341_MAX_NUM_OUTPUTS; ++i) { + char reg_name[10]; + + snprintf(reg_name, sizeof(reg_name), "vdd%d", i); + data->clk[i].vdd_reg = devm_regulator_get_optional( + &client->dev, reg_name); + if (IS_ERR(data->clk[i].vdd_reg)) { + err = PTR_ERR(data->clk[i].vdd_reg); + data->clk[i].vdd_reg = NULL; + if (err == -ENODEV) + continue; + goto cleanup; + } else { + err = regulator_enable(data->clk[i].vdd_reg); + if (err) { + dev_err(&client->dev, + "failed to enable %s regulator: %d\n", + reg_name, err); + data->clk[i].vdd_reg = NULL; + goto cleanup; + } + } + } + + err = si5341_dt_parse_dt(data, config); if (err) - return err; + goto cleanup; if (of_property_read_string(client->dev.of_node, "clock-output-names", &init.name)) @@ -1483,21 +1540,23 @@ static int si5341_probe(struct i2c_client *client, root_clock_name = init.name; data->regmap = devm_regmap_init_i2c(client, &si5341_regmap_config); - if (IS_ERR(data->regmap)) - return PTR_ERR(data->regmap); + if (IS_ERR(data->regmap)) { + err = PTR_ERR(data->regmap); + goto cleanup; + } i2c_set_clientdata(client, data); err = si5341_probe_chip_id(data); if (err < 0) - return err; + goto cleanup; if (of_property_read_bool(client->dev.of_node, "silabs,reprogram")) { initialization_required = true; } else { err = si5341_is_programmed_already(data); if (err < 0) - return err; + goto cleanup; initialization_required = !err; } @@ -1506,11 +1565,11 @@ static int si5341_probe(struct i2c_client *client, /* Populate the regmap cache in preparation for "cache only" */ err = si5341_read_settings(data); if (err < 0) - return err; + goto cleanup; err = si5341_send_preamble(data); if (err < 0) - return err; + goto cleanup; /* * We intend to send all 'final' register values in a single @@ -1523,19 +1582,19 @@ static int si5341_probe(struct i2c_client *client, err = si5341_write_multiple(data, si5341_reg_defaults, ARRAY_SIZE(si5341_reg_defaults)); if (err < 0) - return err; + goto cleanup; } /* Input must be up and running at this point */ err = si5341_clk_select_active_input(data); if (err < 0) - return err; + goto cleanup; if (initialization_required) { /* PLL configuration is required */ err = si5341_initialize_pll(data); if (err < 0) - return err; + goto cleanup; } /* Register the PLL */ @@ -1548,7 +1607,7 @@ static int si5341_probe(struct i2c_client *client, err = devm_clk_hw_register(&client->dev, &data->hw); if (err) { dev_err(&client->dev, "clock registration failed\n"); - return err; + goto cleanup; } init.num_parents = 1; @@ -1585,13 +1644,17 @@ static int si5341_probe(struct i2c_client *client, regmap_write(data->regmap, SI5341_OUT_CM(&data->clk[i]), config[i].out_cm_ampl_bits); + regmap_update_bits(data->regmap, + SI5341_OUT_MUX_SEL(&data->clk[i]), + SI5341_OUT_MUX_VDD_SEL_MASK, + config[i].vdd_sel_bits); } err = devm_clk_hw_register(&client->dev, &data->clk[i].hw); kfree(init.name); /* clock framework made a copy of the name */ if (err) { dev_err(&client->dev, "output %u registration failed\n", i); - return err; + goto cleanup; } if (config[i].always_on) clk_prepare(data->clk[i].hw.clk); @@ -1601,7 +1664,7 @@ static int si5341_probe(struct i2c_client *client, data); if (err) { dev_err(&client->dev, "unable to add clk provider\n"); - return err; + goto cleanup; } if (initialization_required) { @@ -1609,11 +1672,11 @@ static int si5341_probe(struct i2c_client *client, regcache_cache_only(data->regmap, false); err = regcache_sync(data->regmap); if (err < 0) - return err; + goto cleanup; err = si5341_finalize_defaults(data); if (err < 0) - return err; + goto cleanup; /* allow time for PLL to lock */ msleep(250); @@ -1621,13 +1684,13 @@ static int si5341_probe(struct i2c_client *client, err = si5341_check_healthy(data); if (err) - return err; + goto cleanup; /* clear sticky alarm bits from initialization */ err = regmap_write(data->regmap, SI5341_STATUS_STICKY, 0); if (err) { dev_err(&client->dev, "unable to clear sticky status\n"); - return err; + goto cleanup; } /* Free the names, clk framework makes copies */ @@ -1635,6 +1698,26 @@ static int si5341_probe(struct i2c_client *client, devm_kfree(&client->dev, (void *)synth_clock_names[i]); return 0; + +cleanup: + for (i = 0; i < SI5341_MAX_NUM_OUTPUTS; ++i) { + if (data->clk[i].vdd_reg) + regulator_disable(data->clk[i].vdd_reg); + } + return err; +} + +int si5341_remove(struct i2c_client *client) +{ + struct clk_si5341 *data = i2c_get_clientdata(client); + int i; + + for (i = 0; i < SI5341_MAX_NUM_OUTPUTS; ++i) { + if (data->clk[i].vdd_reg) + regulator_disable(data->clk[i].vdd_reg); + } + + return 0; } static const struct i2c_device_id si5341_id[] = { @@ -1663,6 +1746,7 @@ static struct i2c_driver si5341_driver = { .of_match_table = clk_si5341_of_match, }, .probe = si5341_probe, + .remove = si5341_remove, .id_table = si5341_id, }; module_i2c_driver(si5341_driver); From patchwork Thu Mar 11 22:24:34 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Robert Hancock X-Patchwork-Id: 397737 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER, INCLUDES_PATCH, MAILING_LIST_MULTI, MSGID_FROM_MTA_HEADER, SPF_HELO_NONE, SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5E2C5C433E9 for ; Thu, 11 Mar 2021 22:26:25 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 3159564F94 for ; Thu, 11 Mar 2021 22:26:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229524AbhCKWZy (ORCPT ); Thu, 11 Mar 2021 17:25:54 -0500 Received: from mx0c-0054df01.pphosted.com ([67.231.159.91]:16158 "EHLO mx0c-0054df01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229517AbhCKWZY (ORCPT ); Thu, 11 Mar 2021 17:25:24 -0500 Received: from pps.filterd (m0208999.ppops.net [127.0.0.1]) by mx0c-0054df01.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 12BMLkgV009817; Thu, 11 Mar 2021 17:25:19 -0500 Received: from can01-to1-obe.outbound.protection.outlook.com (mail-to1can01lp2059.outbound.protection.outlook.com [104.47.61.59]) by mx0c-0054df01.pphosted.com with ESMTP id 376bes9m86-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 11 Mar 2021 17:25:18 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oO5DT4htzVUvA0QiwGiFi77bCQIgE/s/uZ3onkcLTbtvbW+JQcOJXf7r8bsVgsNCXutPbKwq56hmV8fcNHgsSkE8iQGQTaOaQ1/jmA3IEHs4xSAyjXvqXXNRoYVy3CdgmRbqWaOUeIivxnt21YJLyIA4iVNHI7Jt5Dt9d7IXo2156xjrTO8sVku1ZKfgnNW4Lj9bWXVCy+6fytyC8UWMI6sHysydHXLTSYWbCRFBhKKbQQdHZFULLrZafGoMrAEOsRlw4VH16o+qC/U7MJZo8z83Q5RYhQSQZPgQPv+4UkPCQ3qXefs9cUKVIWy9feBQTQCrwp6PQUDhm4hNCmomhA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4UVZZfuFmGSz17yssT97BuPz7Iw9bV/xAe6p7IRgE5E=; b=YKtJ2ucoXMU3to/wgyNFrhNawx33uipqEoJTTvKg1tkUJakZ42Q+ryjudkTwmCYT9stxE+tXmaIjw8DCJDg3uvXDMnAIN2XCRc24sTX1G5i734dXfJM1/yg0BCdYPsnzL8LgOEvCiwgzkKjZqogxvfsEacZXfHrkf6N6pfLVNdJih10I4y4NOdz/56g6DmGCcLw/pJzWSr4ClZqydfCc/4Nn4Tfg1gB8fs9k4ia3JI80TP63XfWDLsQcbQ1uuSIwWVwitqElLvsyqNjmVYsfsRTVcMIHsWvbRtwWk96Yy1nl7Tduk5IihQCmBIIXGTzljS5i9iIGp4ppa3bFqg5sUg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=calian.com; dmarc=pass action=none header.from=calian.com; dkim=pass header.d=calian.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=calian.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4UVZZfuFmGSz17yssT97BuPz7Iw9bV/xAe6p7IRgE5E=; b=KTgT0c1sWJkdo19Y6f7fq/oHXIk9CspX30O/AgnsaI/lD+W8ZqCSSPhMyiUSyoH92ZqHeXO+jSmXCiv16uo7iJHEjyID24C1KFPgY7elMb81SV9YbtlRuvutWIBbqAx326Z88PN5PXbcHu9KfEZPZuOsx+QN3Gli33AnMFvTMyI= Authentication-Results: baylibre.com; dkim=none (message not signed) header.d=none; baylibre.com; dmarc=none action=none header.from=calian.com; Received: from YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:f::20) by YTXPR0101MB0960.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b00:b::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3890.28; Thu, 11 Mar 2021 22:25:18 +0000 Received: from YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM ([fe80::90d4:4d5b:b4c2:fdeb]) by YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM ([fe80::90d4:4d5b:b4c2:fdeb%7]) with mapi id 15.20.3912.027; Thu, 11 Mar 2021 22:25:18 +0000 From: Robert Hancock To: mturquette@baylibre.com, sboyd@kernel.org Cc: mike.looijmans@topic.nl, devicetree@vger.kernel.org, linux-clk@vger.kernel.org, Robert Hancock Subject: [PATCH 7/9] clk: si5341: Add silabs,xaxb-ext-clk property Date: Thu, 11 Mar 2021 16:24:34 -0600 Message-Id: <20210311222436.3826800-8-robert.hancock@calian.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210311222436.3826800-1-robert.hancock@calian.com> References: <20210311222436.3826800-1-robert.hancock@calian.com> X-Originating-IP: [204.83.154.189] X-ClientProxiedBy: MWHPR12CA0055.namprd12.prod.outlook.com (2603:10b6:300:103::17) To YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:f::20) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (204.83.154.189) by MWHPR12CA0055.namprd12.prod.outlook.com (2603:10b6:300:103::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3912.17 via Frontend Transport; Thu, 11 Mar 2021 22:25:17 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: fec8b4a2-f917-4b15-ed5a-08d8e4dc8cdd X-MS-TrafficTypeDiagnostic: YTXPR0101MB0960: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5797; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: p7otFdpSou+F6a7Cm4ad72oKsxkW1K3Jzguf/kp74rK7DgWtFaqrJg797PE3zocuNU2uuwy1FWRx6yz+dyu2YWk+qiDoDTs8oQ5OgegwMW1S0c39QF8x+sbIMesPdrAdZI5lqJERYGMjPnUfFDxGnwNg9nbqMs3lEXsIj3HHqSkfsH11v0bPyXax1OhUZezJbxUYmwldK0dN7R18U/r0Mb6Ttl3XiTJxrnvi21LAKS5b+Ud+l6aXu5q21Vp4NqoEG8f8xXguCdq3QR+4ygrtaCRXzX5M5+z08GL8M2M4xLmTIYnk+UJUWGkfzddXOTazTQvTMl/2gAH7h2dL4CvxhOhP7lvuYbYYGRJ/8zYDbU2YttcRnRtGaXDFKtN7mcTieG3CaH06L0xT1VncnnBjRTDM3MaXN+mTuGSIGOEzou3aXXFW9a4V+nlFGXo9rHaX5V76ezNKN7SY/jpPdHGOga/4YZpUCj0lyXn+6YgQsdwqh+BiqFgv1YFNbHdlt4qsI08JGgratyuJdRng1mWrROiYFvJvoPcA4kZKBPaQFp5YiADU4Zg241jWzEpzSDRiLmsrHQxZpareiaXzdeZ6gA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(4636009)(376002)(39850400004)(366004)(136003)(346002)(396003)(69590400012)(6666004)(6506007)(26005)(66946007)(66556008)(16526019)(44832011)(2616005)(956004)(478600001)(107886003)(6512007)(83380400001)(8676002)(4326008)(36756003)(8936002)(6486002)(186003)(1076003)(52116002)(66476007)(2906002)(5660300002)(316002)(86362001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: 81bC53ZtqKNKCo5y3qfz5sN9FifSMUNbB/Y6BjRSpGcuDa2U6819cRaMmGNlI+9MWzZrWR9fzIgqOzuTs6YyzT9RhpN8qsHRHAj4j99Tt5wOXCwuj9ikBeK44D/Ii0DJ21CC7DLE2jVNqY1YhTaZyhNc4pmcV5y7btzgZ5Ql+whAaEfOc0oYvGtmeFfYFGTizXRwa64e9CIpR+I/UdkO9vd5XxYWbjNAsPd0N/qTyYQP0zNwJffNd2iWIiTtSJloacwPx+BZ2d+2g3Rn4ADLvADzSbLOmVCD0sVRhNm1b193TdyvRyp1ECXhq9VK5TjP9+sMovuDPliZMsvaT5bswcUvxDiyId8Mx3SOTuFwAN0mLDh852ZZuk+yxOW7CEPmXY4ZyXWoj7uyue09O1CJgzaPO7MWNrxTMJI16GIC9JhxkKrPR7RZrGPI1xn0G/e0nJCGSLHws1+hODnPQ+F7kSXALzliqWMmQWHNSrFM7E/ggUwMc06UhhISmoiIsWRSNwW+ZbkYTmTWThv3qrqZlUVu0jM24SyhViEVL2V7WnbJYU4aYYH8HrmeF/4uAiqPI/fO56c871RdqTFxC/K6m2p06fglm52XJisYivUdMHSDaHIMZN/eT2kILyLKsp8Bzr1FYFPpZaW7euHR6eMktopbOZsYqgWTUMDBe/deEt/XyggkcYp/SCJPaEroRb5bsSf4HBcLa0byVOwf+pTqVlxQUsaMlT54g5kI6je+CV65rmd2GrDzMxih83ehFUpdykkAy1WdiuX2JX0fTVMxd7c82fzvKhjG8kUZkLkRbFr0EiYyZJ9J6DhuzJ17cG+0GJsa/dxeyKBjNqqMzD2iSeA1jVq+tlMh8Mw1TxlwAeDQSRPYzM/e3IPVBu52zfxHLMhky32H99b3hvv0L0HTatzkQYxSBmmFUJb+nTuGv4fdV3nSar8reFx1h1aW6db3Ra16ePr2m8GT90Fu1+JEpU6ld1p5LTfPLvqA1YYpHqvY+Ih7bOgeb5aHM8IzptwA/N/xMCZfdCkiga6YxWubUq2LEVh6Nc5gNW8zEiwO+uVbP/P43OJE5/ThUkF+sVu5ivArjO6z11RIfAoYDSrk2bHhZeekw4VNIPx8r8KTSV4lB7gU7cE7XKdq3X8xbqWC26fTqV8/a6lr+F7w8vCJLVAkhS4aKbj6IzbC/MmNcrJiviMtFvq5zGxkFYuBJumPF1YV4o2EJ1FxIp34hn6xpBvJPSLF8u8FIfL/pKrqfj6Jrq1WZb/91maBsRgsMkaifw7RKnF8NnEi1sxD+kF3643bOCCXEPGuQ/sbn/TTnN/uW7wd15nMt630DO0Y9OzS X-OriginatorOrg: calian.com X-MS-Exchange-CrossTenant-Network-Message-Id: fec8b4a2-f917-4b15-ed5a-08d8e4dc8cdd X-MS-Exchange-CrossTenant-AuthSource: YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2021 22:25:18.1576 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 23b57807-562f-49ad-92c4-3bb0f07a1fdf X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: hdx08Zbo8Higx5D9u5NP72frdnc7uUb7WEb7qSWTy/Peao4M5l6jlwDUde+PIi8E71+Bm/P8QIpYjRA266h7mYFgw504Issk63ajoh0r/NQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: YTXPR0101MB0960 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.369, 18.0.761 definitions=2021-03-11_12:2021-03-10,2021-03-11 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxlogscore=999 phishscore=0 priorityscore=1501 adultscore=0 spamscore=0 lowpriorityscore=0 bulkscore=0 malwarescore=0 mlxscore=0 suspectscore=0 clxscore=1015 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2103110117 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Add a property to allow specifying that the device XA/XB pins are used for an external clock input rather than for a clock crystal. Signed-off-by: Robert Hancock --- drivers/clk/clk-si5341.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/clk/clk-si5341.c b/drivers/clk/clk-si5341.c index f01a20fdf005..11740855bcde 100644 --- a/drivers/clk/clk-si5341.c +++ b/drivers/clk/clk-si5341.c @@ -80,6 +80,7 @@ struct clk_si5341 { u8 num_outputs; u8 num_synth; u16 chip_id; + bool xaxb_ext_clk; }; #define to_clk_si5341(_hw) container_of(_hw, struct clk_si5341, hw) @@ -529,9 +530,11 @@ static int si5341_clk_reparent(struct clk_si5341 *data, u8 index) if (err < 0) return err; - /* Power up XTAL oscillator and buffer */ + /* Power up XTAL oscillator and buffer, select clock mode */ err = regmap_update_bits(data->regmap, SI5341_XAXB_CFG, - SI5341_XAXB_CFG_PDNB, SI5341_XAXB_CFG_PDNB); + SI5341_XAXB_CFG_PDNB | SI5341_XAXB_CFG_EXTCLK_EN, + SI5341_XAXB_CFG_PDNB | (data->xaxb_ext_clk ? + SI5341_XAXB_CFG_EXTCLK_EN : 0)); if (err < 0) return err; } @@ -1560,6 +1563,8 @@ static int si5341_probe(struct i2c_client *client, initialization_required = !err; } + data->xaxb_ext_clk = of_property_read_bool(client->dev.of_node, + "silabs,xaxb-ext-clk"); if (initialization_required) { /* Populate the regmap cache in preparation for "cache only" */ From patchwork Thu Mar 11 22:24:35 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Robert Hancock X-Patchwork-Id: 398991 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER, INCLUDES_PATCH, MAILING_LIST_MULTI, MSGID_FROM_MTA_HEADER, SPF_HELO_NONE, SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4D2A4C433DB for ; Thu, 11 Mar 2021 22:26:25 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 1133C64F87 for ; Thu, 11 Mar 2021 22:26:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229517AbhCKWZy (ORCPT ); Thu, 11 Mar 2021 17:25:54 -0500 Received: from mx0d-0054df01.pphosted.com ([67.231.150.19]:13693 "EHLO mx0d-0054df01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229553AbhCKWZZ (ORCPT ); Thu, 11 Mar 2021 17:25:25 -0500 Received: from pps.filterd (m0209000.ppops.net [127.0.0.1]) by mx0c-0054df01.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 12BML6JP021367; Thu, 11 Mar 2021 17:25:20 -0500 Received: from can01-to1-obe.outbound.protection.outlook.com (mail-to1can01lp2050.outbound.protection.outlook.com [104.47.61.50]) by mx0c-0054df01.pphosted.com with ESMTP id 375yymh9db-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 11 Mar 2021 17:25:20 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Dmc31xUzTCBbIxFn5YtG4Jim2hcQ1aoxfRSr+oti81LA8Tzheqxp2obJZBg7+R7c4z9DxTbpaBKD8uak2spAozqmAbWydb1sIPdF8IibLzHN2AfmjdSMJ7ht9mNaQo7Cpz5Zn5KdM426GbwP0cBExSaTaezIPG+hmYZx6/oytGCRrdaFpN91cQLu4H4GtDflR1YGh9ONRl1wOpPeDAWZUiHEof7mjL8VXKBENDmw4ODhkFdHoP2x9fiHljXuEMS3LQBLjDiTENpUnrKItGNxaW/aSq+SVhQY70jwmz/HlfglcfIU5s3Loqmn8/J7sLAnYHqOzmgyjL5WBJNt2oLvLA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0FR/y+NIOUN/8kXh0R0C3pk2hi3mpXcOY+2ysPa2OmQ=; b=OEkkCHy523YBkBF1NYwqVN3G6iEj0ehQjOF/EA46FVAxUrNBdcNgWKHQFMrOVcmdKaPywZ4945iPxIKe6GmNXTYPhzYL/ILGfrE8VPGkm34r7i7xWQdyzveh6TCRmxADf20TwPQiWHiEF1eV9UjkW7Ho4Pcs+xfv4uinG2Z9+GjZbnhXQDGVWpEuOuQyWXj1eRnOVXjddrJ73Hhp9A3qF8pCOSeANgBIln6ffoYehoKuJbOhBjdCglqV3E5QEZ5qsrU7QCbq0OTw0l9xVdy0mr9nTWACmFfCfeor6EF7npM50KMf8f7gPBIDrNf6XSaLK9ak2+j7w1kxKYarECpfFw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=calian.com; dmarc=pass action=none header.from=calian.com; dkim=pass header.d=calian.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=calian.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0FR/y+NIOUN/8kXh0R0C3pk2hi3mpXcOY+2ysPa2OmQ=; b=iXG8gginxvdJeyjdEnoHW0OkKsolSayr0cZAtlVr2eUurr2t9F2dFpuGnKPJI9puGtmSmKjjtoPXBeDqQP6G+h5XuoiDvyjU5H9mmpklJhJLiGQHsjFewdaEr6QL73qqgKobZ8igCAlyJL+5XpIaerocyabtjUMEIYZu8KfRMrA= Authentication-Results: baylibre.com; dkim=none (message not signed) header.d=none; baylibre.com; dmarc=none action=none header.from=calian.com; Received: from YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:f::20) by YTXPR0101MB0960.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b00:b::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3890.28; Thu, 11 Mar 2021 22:25:19 +0000 Received: from YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM ([fe80::90d4:4d5b:b4c2:fdeb]) by YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM ([fe80::90d4:4d5b:b4c2:fdeb%7]) with mapi id 15.20.3912.027; Thu, 11 Mar 2021 22:25:19 +0000 From: Robert Hancock To: mturquette@baylibre.com, sboyd@kernel.org Cc: mike.looijmans@topic.nl, devicetree@vger.kernel.org, linux-clk@vger.kernel.org, Robert Hancock Subject: [PATCH 8/9] clk: si5341: Add silabs,iovdd-33 property Date: Thu, 11 Mar 2021 16:24:35 -0600 Message-Id: <20210311222436.3826800-9-robert.hancock@calian.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210311222436.3826800-1-robert.hancock@calian.com> References: <20210311222436.3826800-1-robert.hancock@calian.com> X-Originating-IP: [204.83.154.189] X-ClientProxiedBy: MWHPR12CA0055.namprd12.prod.outlook.com (2603:10b6:300:103::17) To YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:f::20) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (204.83.154.189) by MWHPR12CA0055.namprd12.prod.outlook.com (2603:10b6:300:103::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3912.17 via Frontend Transport; Thu, 11 Mar 2021 22:25:18 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 618170d7-5e62-44b4-b492-08d8e4dc8d9c X-MS-TrafficTypeDiagnostic: YTXPR0101MB0960: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6108; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: B+niPmsGG9d1ClgQ8Au9mP2hsZ5FDU7RqvCTQDPbEBvX02v36ySt7G4WFX5Q9j8fTuKAAvwmBMb4zxh49M2odOjpjZO9zVJ1mLF1gyifpmNxLeHBWxz895Sg+lbg6aAwOsBHPsYrMwRzMOtWepjhkCg/HxWSrDKKiKhdA5FfH6utlh3fco7MgA+3oe9qINGAUU5/vdNZ4PtVzIdJW8S3sQLzs5cRXMUstrqBCr6gDiai1CJh907tVh8wOdfHZpaEPae3di83oivpXFLlv7HUKpsY/Id9wFtPK/FeluI8XVAxpM0uWK2SvfVbqw1v+0x4tQU7rcVXZnh8SSmALuYoz9xJ3PhUpXyv4Qaqw2Tny9oKSZcdJKQr7uWLLGCOMEiXxyYSY6fqCZHeZCVflaSOzEy8ds1duIgP1PbwXk/VYyP/h267g3x4i+N/lZl9hA+yiVDHXYN5orz1YYAoDOZqz6KXo7oa2A4enbwPySuPLmDdssVSPMECuS4mYJ82Np1iROCf/Uq4hZ8s8iz213YyUGUQf3MGxTz41TVM1H+yGikCFlOHkp15YakYjdkCjNh21Hr1llO6ailioJv/ErrMrA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(4636009)(376002)(39850400004)(366004)(136003)(346002)(396003)(69590400012)(6666004)(6506007)(26005)(66946007)(66556008)(16526019)(44832011)(2616005)(956004)(478600001)(107886003)(6512007)(83380400001)(8676002)(4326008)(36756003)(8936002)(6486002)(186003)(1076003)(52116002)(66476007)(2906002)(5660300002)(316002)(86362001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: G2mX+RA66AyQIluqOMWxpzJ19OH7W4+nCjt8jXI/joVZ+YVcdLOaJKXusGA9lODAVBeLMSSFQHTL3/TOOGeqPrKZLg3wdIvhCXSvVPo6C2v7Gz+GoeTDTScQW+zy2VXggRw6jppYRkqWmnRxZj1FSwsdBH/+1SKbdM5eQbwTfHQFPtnmdT22bTI5JXhg50eYrG9NIFkh+PMfS3hBs/k6+4xJUi7p9zB3cntU7TgBigzR8eg6alvB/kM3bvTeUaRvNdsUyylQPMJaBm3Gdhke43jDjXZ5bvlgPyHCI3sHkn6p3irCQRgQ/FeeRzCok4dL7IFeV7P6PIQuzpnCq1rlr1K7d4C+eDLqh/EeyHUlrVt+mrzC0aVUSiIizgOqUVSqmmYHqKKgFWDt9pcLHRcDO7qTY7k9Sd+FsL5k/aY0lfJrqLorYWxLuhWR+/xDQtGyr2OWzz9mW/hDZ1EBDYh7v+mrK+u7lFjhACicc+A1BVGLgWe9yPJP9LlJyjEfVZpTOv4lE3BBfubL24VUezZtHVbl8lLqEo8AE/1247NesmogEnsA/yMehr9nlq0uglIoxbTxzGw2uchJxXg73AvNfCmA25uoa2eZSKSCH/aRJTyD53wRTOGqwpPkWfpQO5PjT0ttF2hPo4rEzKu8IXZk5un92EL8So8synTFSreECY0CSmrKayFEzqW1g/2pHTNUVcoo6AHW/+LHrAAZYLX176sktPcf/UL0lU+xN7ModZQlOkykDVHExi334JCmZwZdEnXBcG+KvtLUiEYtDSXrHP8kQrf+goqzB4xbQy6M9EU/f5JO3XKy0EqZBt3fEAMrrMnbsdUKVIvRGxX7ETw5qUWu72jToGBFIBRCHKntL9I1WiDWns9ZF6LIRmRTSRAT00FNTD0wss2LRsAfoBpHzkgjqi91uChX+XJ3aXbYNqt1+tqRPmvkyDToVM58qi42xX6aJ38bnaIyxNRht0aRH4rffk3k0pphgvMyOjVOW+mCZ37mXTjT4ig3/fxYqMZ+b6kymaYwFgeE+xChSutaqdDec8JATjBOKrPaaNkRIk7ttVV6MPPzDCizcLYZ1g9egMorAAmY/8FrXw4IYnRCzKiCw58Ylt+lXTSj05fbyS244xvS3bfUechMNPKMfWD8MGb8y+x/ivxPJF99mqAzc4ooNbUL687MgzTFu+CZQ7EXiwEMulwwGDTtpc6xh33eDrGqVALy7qIwJBuBqLAC9PEOdKBQVljsXdjfj704SMkhOjUgOe9zt9xqPhnh61RQQleRMv9ntabLfvMWXp9zPpKAYVstw2qHlKXcM/d/hSOu0lYxfeJkHzMmdmqriI4S X-OriginatorOrg: calian.com X-MS-Exchange-CrossTenant-Network-Message-Id: 618170d7-5e62-44b4-b492-08d8e4dc8d9c X-MS-Exchange-CrossTenant-AuthSource: YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2021 22:25:19.4789 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 23b57807-562f-49ad-92c4-3bb0f07a1fdf X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: StP4Md7Mg9VT5APjRnopMp2uc2wQOy8ENt0za87XY8i4sHtERlypjC1ed+jmZCVoBijPLwhpxQsNXfn8qw34qy8bbfurzSc1mM8gXSAdAac= X-MS-Exchange-Transport-CrossTenantHeadersStamped: YTXPR0101MB0960 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.369, 18.0.761 definitions=2021-03-11_12:2021-03-10,2021-03-11 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 clxscore=1015 spamscore=0 suspectscore=0 phishscore=0 adultscore=0 lowpriorityscore=0 bulkscore=0 mlxlogscore=999 impostorscore=0 malwarescore=0 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2103110117 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Add a property to allow specifying that the external I2C IO pins are using 3.3V voltage thresholds rather than 1.8V. Signed-off-by: Robert Hancock --- drivers/clk/clk-si5341.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/clk/clk-si5341.c b/drivers/clk/clk-si5341.c index 11740855bcde..4cd80ef389d2 100644 --- a/drivers/clk/clk-si5341.c +++ b/drivers/clk/clk-si5341.c @@ -81,6 +81,7 @@ struct clk_si5341 { u8 num_synth; u16 chip_id; bool xaxb_ext_clk; + bool iovdd_33; }; #define to_clk_si5341(_hw) container_of(_hw, struct clk_si5341, hw) @@ -103,6 +104,7 @@ struct clk_si5341_output_config { #define SI5341_IN_SEL 0x0021 #define SI5341_DEVICE_READY 0x00FE #define SI5341_XAXB_CFG 0x090E +#define SI5341_IO_VDD_SEL 0x0943 #define SI5341_IN_EN 0x0949 #define SI5341_INX_TO_PFD_EN 0x094A @@ -351,7 +353,6 @@ static const struct si5341_reg_default si5341_reg_defaults[] = { { 0x0804, 0x00 }, /* Not in datasheet */ { 0x090E, 0x02 }, /* XAXB_EXTCLK_EN=0 XAXB_PDNB=1 (use XTAL) */ { 0x091C, 0x04 }, /* ZDM_EN=4 (Normal mode) */ - { 0x0943, 0x00 }, /* IO_VDD_SEL=0 (0=1v8, use 1=3v3) */ { 0x0949, 0x00 }, /* IN_EN (disable input clocks) */ { 0x094A, 0x00 }, /* INx_TO_PFD_EN (disabled) */ { 0x0A02, 0x00 }, /* Not in datasheet */ @@ -1160,6 +1161,11 @@ static int si5341_finalize_defaults(struct clk_si5341 *data) int res; u32 revision; + res = regmap_write(data->regmap, SI5341_IO_VDD_SEL, + data->iovdd_33 ? 1 : 0); + if (res < 0) + return res; + res = regmap_read(data->regmap, SI5341_DEVICE_REV, &revision); if (res < 0) return res; @@ -1565,6 +1571,8 @@ static int si5341_probe(struct i2c_client *client, } data->xaxb_ext_clk = of_property_read_bool(client->dev.of_node, "silabs,xaxb-ext-clk"); + data->iovdd_33 = of_property_read_bool(client->dev.of_node, + "silabs,iovdd-33"); if (initialization_required) { /* Populate the regmap cache in preparation for "cache only" */ From patchwork Thu Mar 11 22:24:36 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Robert Hancock X-Patchwork-Id: 397736 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.9 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER, INCLUDES_PATCH, MAILING_LIST_MULTI, MSGID_FROM_MTA_HEADER, SPF_HELO_NONE, SPF_PASS,UNWANTED_LANGUAGE_BODY,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 810A1C43381 for ; Thu, 11 Mar 2021 22:26:25 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 61F8C64F87 for ; Thu, 11 Mar 2021 22:26:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229553AbhCKWZy (ORCPT ); Thu, 11 Mar 2021 17:25:54 -0500 Received: from mx0d-0054df01.pphosted.com ([67.231.150.19]:11151 "EHLO mx0d-0054df01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229602AbhCKWZa (ORCPT ); Thu, 11 Mar 2021 17:25:30 -0500 Received: from pps.filterd (m0209000.ppops.net [127.0.0.1]) by mx0c-0054df01.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 12BMKoit020131; Thu, 11 Mar 2021 17:25:22 -0500 Received: from can01-to1-obe.outbound.protection.outlook.com (mail-to1can01lp2051.outbound.protection.outlook.com [104.47.61.51]) by mx0c-0054df01.pphosted.com with ESMTP id 375yymh9dc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 11 Mar 2021 17:25:22 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YuxvK9VoEcijS/BHzqRgoXSEt8SHEUiNd2spVKjErVvedxAbDjlrB6ixSLXKo16dQcIWcRfh4k4NwcicJS21ffcQG3NIHu5CdPSGHdHurgs1CEULhv3rL85u/TTZmagjjLuSZyWOJnM4ViA8BprMV7ZiVyPR8srAzVEHqQrJzAqwidiHE8JcL62cCvnFeklKk4a+p/iK266snFkxs3N4OkGMpdNuYyps6Ae3ZRozisM1a3wIZqIulgvESKOKvDzS6mZVX5whlfZ6GcERb6RKRuVbF9u7UxaiQQc61kL0reQKoM3tphihyIaQdO+Scv5Cqs5Oujhj3crBI68FpkF5uw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wTM8UCu3cwnJzL7a+5I4KnGxKsQPxYaBMZb32Tuad00=; b=fsiPn+EyP6aCQbjIJER+ISLpxDOdCD0JkmmSbFIRc//wkc7fg4eDDSD4H9q2do6hCclOtTtFm4rTIqCi9lkIkE/TjDkZKA1GQe4M73uZrzDZ6rTTOWdzo+UKJQRTmR6kAfnPVnlg0ZeF/pKxst74ZL47RzSTxbmGj2uo7DtEqKiYGjsqqX/sD96hJY7P6FQBNAfu3uXNNOnvfHyNXWJNIAiSTnpJHFHLoc6/8h7qSo1hSVaQ86p81RUAoc5H0+DiXLJW29WAnG5FnW/PT1kIHmo/rmBxbkaTgLORhF2/DXUAvl28KtBHpQisAoPSkFESia/NHD6gGEJfctbMOIx/LA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=calian.com; dmarc=pass action=none header.from=calian.com; dkim=pass header.d=calian.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=calian.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wTM8UCu3cwnJzL7a+5I4KnGxKsQPxYaBMZb32Tuad00=; b=AuGM+u2/0Upr9oFQfrpx4UsJyR/XQThKruEzZHFkotI7z2yox6Z9VwS4qBEf47jfltbQyxVBHRMNdA9QM7cVFNEeu4sxBdU8wFFYSDolU0fY0H/g2atIJGiX1Ic+w+oWDUXwyUDuXsTwfdAtE3PrWlNOYlGgu0CYs6t7u+ahgWw= Authentication-Results: baylibre.com; dkim=none (message not signed) header.d=none; baylibre.com; dmarc=none action=none header.from=calian.com; Received: from YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:f::20) by YTOPR0101MB0971.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b00:1b::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3912.27; Thu, 11 Mar 2021 22:25:20 +0000 Received: from YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM ([fe80::90d4:4d5b:b4c2:fdeb]) by YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM ([fe80::90d4:4d5b:b4c2:fdeb%7]) with mapi id 15.20.3912.027; Thu, 11 Mar 2021 22:25:20 +0000 From: Robert Hancock To: mturquette@baylibre.com, sboyd@kernel.org Cc: mike.looijmans@topic.nl, devicetree@vger.kernel.org, linux-clk@vger.kernel.org, Robert Hancock Subject: [PATCH 9/9] clk: si5341: Add sysfs properties to allow checking/resetting device faults Date: Thu, 11 Mar 2021 16:24:36 -0600 Message-Id: <20210311222436.3826800-10-robert.hancock@calian.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210311222436.3826800-1-robert.hancock@calian.com> References: <20210311222436.3826800-1-robert.hancock@calian.com> X-Originating-IP: [204.83.154.189] X-ClientProxiedBy: MWHPR12CA0055.namprd12.prod.outlook.com (2603:10b6:300:103::17) To YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:f::20) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (204.83.154.189) by MWHPR12CA0055.namprd12.prod.outlook.com (2603:10b6:300:103::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3912.17 via Frontend Transport; Thu, 11 Mar 2021 22:25:19 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 643a62b4-b3f7-454d-7b22-08d8e4dc8e64 X-MS-TrafficTypeDiagnostic: YTOPR0101MB0971: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3968; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ssXbRhr2Cx8tgFxRMU+UJ0XcHYejMeMnOeZsW/8OHD9wd2VGpVmpcu7JKfcWQE/TbB4AkxJ5ARP4x5w8EKOHFx5NZn/SqQ7uZlNsMkDQbnyjEfwI2rS9n6LlYhkOJovcm7q/8dpwwEDPKcuPbKm4bYcrNvT0UZbykoTXdBhWyhGb6Tqwcwtqeru19H9Gtl7fl57qzoNccFNZ7AqC3/64Jm2EjfleTCy+YoZKrtrwp0ub3Db+b6t8wo7aDYcL6+8RMfXpGJ7y8HszJ2HVFxa6HwiZZ/XxSyt6lMDpp1yCZN4H6lFv8dv/50PtvBPouZ1wibq8A3+/wfyNXHTQCBBVcKtfRRnYUdfDINqwPfN959+PhW84Zbzlgv8TQaq5EztMFEfsz+jPwwuYavdbIdr0zGW02dr89/C40isHasuJyuaXY0Nnm2sg5Cd39haHet8IXvk/mK8RpUH1WXho32IKSE42Jnnsa4y1lWFEYZ1OrckeqyHlafSKdObo1Lb/ytDHbsGoYWZguHuhhnXfKUm5gYWiOEm7ziXvgb6spgu/BFweSaR4UPvo50fBvDfMLgooB3nCy1dEK2zCuJnHCmTbOA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(4636009)(366004)(39850400004)(376002)(346002)(396003)(136003)(66946007)(8936002)(66476007)(4326008)(69590400012)(83380400001)(316002)(2616005)(6506007)(8676002)(66556008)(107886003)(956004)(44832011)(86362001)(6666004)(5660300002)(6512007)(26005)(1076003)(6486002)(186003)(52116002)(478600001)(2906002)(16526019)(36756003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: 6br420pLVPhGaB5JEl9kFjDF7AyX+LZAbiACbYMxr/Jz2w3LYjRjPZZWIZr26LHvE/zWTK99bnSt/R+8mUdt54BQQ8C9AjU5PEDxXw+Jm192dGVcY1LUdQsG9sBMFfoPJ1uOJcShY5ehgGCW+Y2bd7JiFUfJhO0kMw8AItTj8FaC+OQhCnuvLrbtKi6JwFCmgsQTo9n0mJOITBfvXnUlUh+ZpH98tZ9R6G8xgytYQHo33ojwN9dI3ekNDOKmAEJJllWrpuqK1TrkwBK/9Rw9V9UvOcrkIVEkg9NUNRlXp3tY57lCkNSrs6bnfcI55DbgO6tB/3wa9D6f0RbF9c434rxnUFFIk6rkdtG8QCJtR4CUyZkEVBKwwmIvJ3m5t3abD9oOlvBVAljvEoSfBw96OaXvvsnk977lxc2YyY1cMQ/waj7oVeB5vax0UScr+TJEsRWOogtaTKh5NSNgnsCVgEnAP/3jPRxYsmojWfR1kilZpaFj6DnLt+s6cwYN3DwWpyObEffa8hjXVSNY6+VHw8L4pyMi3Saw1OaMLE8DOQP8G8tluuI1O02lD3MKAyICDAYyRgNU0XJFs4r+MKdhosOYAh+JQ1Br62rddmYvjx1lI2gc5jT8Bkb8WzNdarahJI1IkvmWkY8lQCqoaERrfCnR0ddd46U/xIgWnELrcmhSxm2wa3203LwosZcgsR8Ik46wZ5lsc0c8XZIQ7il5MJ+vECiJzLdJi3qS/hGjyhNelBm+BpXWFeGX7+QMOuPE+ed0nr6gJTaNOl0HwDX0RJqVK+SNNoWXwqfeWXGFfjHr/oHc6LYsMNrvwwTC7OUBbixPHESQySaZKzBW0kPJoaNmvO9zgPjgtj1eovub+XiCrJQpOKdIjuDnSiDAFKlzmhlafuVjGmfS+UGFrx7eg5kF5yDq9PKFaW209711AgKI0O2DN/xIAOVFQbFz1g+EkZ4b8HiXBHzAmpVmswsmZRCjJEbwN426WQupuxCR7m8dGGkUzQ7v9nCjXcL4IcUawvOtIbYxuGBGgG6vZlVXuX8nVlrBNFJlJ3l7R96ZkeW8HUs67dGwqDrTZadOldfBzv1E6faTzk/GdcfGPbx0TpwkJkhx+qInaRfXOHzQ+p6sOxnyPcULkmZZUTyopnrGL8QEfaBIyI3vKjxz4r4IfOh+igl4T37dQ+ls1fTF1zykSsCLsvwchLX/ZC+BLk1t+F2TFrSc74L4m9JPQEKV1f9822ImJ2A0NRQddWXDTzOPqSq8OJ4JnUL0zYkL7t2SceIKt470odM4ige9HLygfkreWrv70SQOvV+tGFCAYLE3uUwBJlzIX3R0B2Xsyahw X-OriginatorOrg: calian.com X-MS-Exchange-CrossTenant-Network-Message-Id: 643a62b4-b3f7-454d-7b22-08d8e4dc8e64 X-MS-Exchange-CrossTenant-AuthSource: YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2021 22:25:20.7452 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 23b57807-562f-49ad-92c4-3bb0f07a1fdf X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: CeltL2m/6GvTBXHKvxz7J1pPURlOWf/KJ+VNaUQKfYtg5DnjpuefsZ20NpYreFTqukmCcCR1kG9G7HOWu35qiq+ZJ6P0n29Ye8Xoqebxsq0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: YTOPR0101MB0971 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.369, 18.0.761 definitions=2021-03-11_12:2021-03-10,2021-03-11 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 clxscore=1015 spamscore=0 suspectscore=0 phishscore=0 adultscore=0 lowpriorityscore=0 bulkscore=0 mlxlogscore=999 impostorscore=0 malwarescore=0 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2103110117 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Add sysfs property files to allow viewing the current and latched states of the input present and PLL lock bits, and allow resetting the latched fault state. This allows manual checks or automated userspace polling for faults occurring after initialization. Signed-off-by: Robert Hancock --- drivers/clk/clk-si5341.c | 96 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) diff --git a/drivers/clk/clk-si5341.c b/drivers/clk/clk-si5341.c index 4cd80ef389d2..f2bcaedf1c71 100644 --- a/drivers/clk/clk-si5341.c +++ b/drivers/clk/clk-si5341.c @@ -1479,6 +1479,94 @@ static int si5341_check_healthy(struct clk_si5341 *data) return 0; } +static ssize_t input_present_show(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + struct clk_si5341 *data = dev_get_drvdata(dev); + u32 status; + int res = regmap_read(data->regmap, SI5341_STATUS, &status); + + if (res < 0) + return res; + res = !(status & SI5341_STATUS_LOSREF); + return snprintf(buf, PAGE_SIZE, "%d\n", res); +} +static DEVICE_ATTR_RO(input_present); + +static ssize_t input_present_sticky_show(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + struct clk_si5341 *data = dev_get_drvdata(dev); + u32 status; + int res = regmap_read(data->regmap, SI5341_STATUS_STICKY, &status); + + if (res < 0) + return res; + res = !(status & SI5341_STATUS_LOSREF); + return snprintf(buf, PAGE_SIZE, "%d\n", res); +} +static DEVICE_ATTR_RO(input_present_sticky); + +static ssize_t pll_locked_show(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + struct clk_si5341 *data = dev_get_drvdata(dev); + u32 status; + int res = regmap_read(data->regmap, SI5341_STATUS, &status); + + if (res < 0) + return res; + res = !(status & SI5341_STATUS_LOL); + return snprintf(buf, PAGE_SIZE, "%d\n", res); +} +static DEVICE_ATTR_RO(pll_locked); + +static ssize_t pll_locked_sticky_show(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + struct clk_si5341 *data = dev_get_drvdata(dev); + u32 status; + int res = regmap_read(data->regmap, SI5341_STATUS_STICKY, &status); + + if (res < 0) + return res; + res = !(status & SI5341_STATUS_LOL); + return snprintf(buf, PAGE_SIZE, "%d\n", res); +} +static DEVICE_ATTR_RO(pll_locked_sticky); + +static ssize_t clear_sticky_store(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + struct clk_si5341 *data = dev_get_drvdata(dev); + long val; + + if (kstrtol(buf, 10, &val)) + return -EINVAL; + if (val) { + int res = regmap_write(data->regmap, SI5341_STATUS_STICKY, 0); + + if (res < 0) + return res; + } + return count; +} +static DEVICE_ATTR_WO(clear_sticky); + +static const struct attribute *si5341_attributes[] = { + &dev_attr_input_present.attr, + &dev_attr_input_present_sticky.attr, + &dev_attr_pll_locked.attr, + &dev_attr_pll_locked_sticky.attr, + &dev_attr_clear_sticky.attr, + NULL +}; + static int si5341_probe(struct i2c_client *client, const struct i2c_device_id *id) { @@ -1706,6 +1794,12 @@ static int si5341_probe(struct i2c_client *client, goto cleanup; } + err = sysfs_create_files(&client->dev.kobj, si5341_attributes); + if (err) { + dev_err(&client->dev, "unable to create sysfs files\n"); + goto cleanup; + } + /* Free the names, clk framework makes copies */ for (i = 0; i < data->num_synth; ++i) devm_kfree(&client->dev, (void *)synth_clock_names[i]); @@ -1725,6 +1819,8 @@ int si5341_remove(struct i2c_client *client) struct clk_si5341 *data = i2c_get_clientdata(client); int i; + sysfs_remove_files(&client->dev.kobj, si5341_attributes); + for (i = 0; i < SI5341_MAX_NUM_OUTPUTS; ++i) { if (data->clk[i].vdd_reg) regulator_disable(data->clk[i].vdd_reg);