From patchwork Thu Mar 16 03:05:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xingyu Wu X-Patchwork-Id: 6724 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp256069wrt; Wed, 15 Mar 2023 20:06:40 -0700 (PDT) X-Google-Smtp-Source: AK7set+iZDWs70siPnQeZ08wJK7CWbT+3VAYKutzp8TcnHYGTf06cWitFJp8iU2QRJZWuRKHQ7P/ X-Received: by 2002:a05:6102:5c05:b0:425:a332:2da4 with SMTP id ds5-20020a0561025c0500b00425a3322da4mr6451576vsb.17.1678936000222; Wed, 15 Mar 2023 20:06:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1678936000; cv=none; d=google.com; s=arc-20160816; b=W//sKbUSjBbpX8QRIwNFvGBtgLRG3K+Xy5pnCW0rmey3CxLWHJVv2rRImLN6jt+/rV gdQxmagwFkZNqnJHiraPHXGij7hLwcL8Y3rYbEVeLV8PKVYp6FENtdrsSXtQiQwzVS4c y3UdjldhZ1c+GKXFKwySui8Lsim46LgP8Ce0AegcmvFHKf6yM+9Kw6EB7jF74y/6aht4 nTk1kR6NTeHZoruYFNZvLKHHRtVBPDzTXZ9gW6grG2+i/SddceMXtS+N9AhLV73nCNWL 16VHi8Kzxoapt5yP5NMsOx3f2mLQpyK0UP/dsznrwUvMuJn9oTpm3VgIW8eChU0+FEzT PUjA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=VEWcij0Gvrrx87075HjFL5Hv046tjndQV/cOHQSulmo=; b=FXq5WsRq8lI0g/fnFqsGFlFN5wj7gJL63yMdOtTBQhfODwl69Ag02V7FNJPEyh+SCE HXEMNMhNtp2esPtvdRkqQYqQ+TEhpVUfrEEXRglxBZslwjyBR8xwO1Mbsd5XfeIhn0aU hReB5CW6u0b5051Tdyar/M+7tlIR7mNG40A8CMilpSRu93M3SYrsthSG2uF/KSpjKyPg //1VInzJ8IhSwuZ4dcYDyAIkP5PpIm1WEbxpnpbUzFQVpFDQsGNIWpmJj39qKSXUEUwe YE7mMH4O+2W9sMxd1BzST4qHxEEjl+on+gpGfYnxGYPq5/gPo8YXW/4bkyhnjaO6yY/j ypDw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f10-20020a67ee0a000000b00425d22faa3asi783242vsp.756.2023.03.15.20.06.25; Wed, 15 Mar 2023 20:06:40 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229865AbjCPDFc convert rfc822-to-8bit (ORCPT + 99 others); Wed, 15 Mar 2023 23:05:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39108 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229780AbjCPDFU (ORCPT ); Wed, 15 Mar 2023 23:05:20 -0400 Received: from ex01.ufhost.com (ex01.ufhost.com [61.152.239.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A5D294ED2; Wed, 15 Mar 2023 20:05:17 -0700 (PDT) Received: from EXMBX165.cuchost.com (unknown [175.102.18.54]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "EXMBX165", Issuer "EXMBX165" (not verified)) by ex01.ufhost.com (Postfix) with ESMTP id 5DC2524E201; Thu, 16 Mar 2023 11:05:16 +0800 (CST) Received: from EXMBX061.cuchost.com (172.16.6.61) by EXMBX165.cuchost.com (172.16.6.75) with Microsoft SMTP Server (TLS) id 15.0.1497.42; Thu, 16 Mar 2023 11:05:16 +0800 Received: from localhost.localdomain (113.72.145.194) by EXMBX061.cuchost.com (172.16.6.61) with Microsoft SMTP Server (TLS) id 15.0.1497.42; Thu, 16 Mar 2023 11:05:15 +0800 From: Xingyu Wu To: , , "Michael Turquette" , Stephen Boyd , Krzysztof Kozlowski , Philipp Zabel , Conor Dooley , "Emil Renner Berthing" CC: Rob Herring , Paul Walmsley , Palmer Dabbelt , Albert Ou , Hal Feng , Xingyu Wu , William Qiu , , Subject: [PATCH v2 0/6] Add PLL clocks driver for StarFive JH7110 SoC Date: Thu, 16 Mar 2023 11:05:08 +0800 Message-ID: <20230316030514.137427-1-xingyu.wu@starfivetech.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-Originating-IP: [113.72.145.194] X-ClientProxiedBy: EXCAS064.cuchost.com (172.16.6.24) To EXMBX061.cuchost.com (172.16.6.61) X-YovoleRuleAgent: yovoleflag X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760491995427900577?= X-GMAIL-MSGID: =?utf-8?q?1760491995427900577?= This patch serises are to add PLL clocks driver and providers by writing and reading syscon registers for the StarFive JH7110 RISC-V SoC. PLL are high speed, low jitter frequency synthesizers in JH7110. Each PLL clocks work in integer mode or fraction mode by some dividers, and the dividers are set in several syscon registers. The formula for calculating frequency is: Fvco = Fref * (NI + NF) / M / Q1 The first patch adds docunmentation to describe PLL clock bindings, and the second patch adds driver to support PLL clocks for JH7110. The patch 3 modifies the syscon dt-bindings and adds optional pateerProperties about PLL clock controller. The patch 4 modifies the SYSCRG dibindings and adds PLL clock inputs. The patch 5 modifies the system clock driver and changes PLL clock source from PLL clock controller instead of the fixed factor clocks. The last patch adds PLL clock node and modifies the syscrg node in dts file. This patchset should be applied after these patchset about JH7110 clock driver[1] and syscon dt-bindings[2]. [1] https://lore.kernel.org/all/20230221024645.127922-1-hal.feng@starfivetech.com/ [2] https://lore.kernel.org/all/20230315055813.94740-1-william.qiu@starfivetech.com/ Changes since v1: - Changed PLL clock node to be child of syscon node in dts. - Modifed the definitions and names of function in PLL clock driver. - Added commit to update syscon and syscrg dt-bindings. Xingyu Wu (6): dt-bindings: clock: Add StarFive JH7110 PLL clock generator clk: starfive: Add StarFive JH7110 PLL clock driver dt-bindings: soc: starfive: syscon: Add optional patternProperties dt-bindings: clock: jh7110-syscrg: Add PLL clock inputs clk: starfive: jh7110-sys: Modify PLL clocks source riscv: dts: starfive: jh7110: Add PLL clock node and modify syscrg node .../bindings/clock/starfive,jh7110-pll.yaml | 46 ++ .../clock/starfive,jh7110-syscrg.yaml | 20 +- .../soc/starfive/starfive,jh7110-syscon.yaml | 39 +- arch/riscv/boot/dts/starfive/jh7110.dtsi | 16 +- drivers/clk/starfive/Kconfig | 9 + drivers/clk/starfive/Makefile | 1 + .../clk/starfive/clk-starfive-jh7110-pll.c | 420 ++++++++++++++++++ .../clk/starfive/clk-starfive-jh7110-pll.h | 293 ++++++++++++ .../clk/starfive/clk-starfive-jh7110-sys.c | 35 +- .../dt-bindings/clock/starfive,jh7110-crg.h | 6 + 10 files changed, 845 insertions(+), 40 deletions(-) create mode 100644 Documentation/devicetree/bindings/clock/starfive,jh7110-pll.yaml create mode 100644 drivers/clk/starfive/clk-starfive-jh7110-pll.c create mode 100644 drivers/clk/starfive/clk-starfive-jh7110-pll.h base-commit: 8ca09d5fa3549d142c2080a72a4c70ce389163cd prerequisite-patch-id: ebaead89601acf604e83224f4df8d57a7f4331b8 prerequisite-patch-id: 609d5d7c55b0b8e2967966673dab8f62a6fceab9 prerequisite-patch-id: ac150a8c622e858e088df8121093d448df49c245 prerequisite-patch-id: a4255724d4698f1238663443024de56de38d717b prerequisite-patch-id: 89f049f951e5acf75aab92541992f816fd0acc0d prerequisite-patch-id: dfb8d5a1fb262127d7a8e1ef3e97f455aaa19509 prerequisite-patch-id: 11b0f5746bbfbf8aa5c5746dcd7b0dce62e7f922 prerequisite-patch-id: 315303931e4b6499de7127a88113763f86e97e16 prerequisite-patch-id: 40cb8212ddb024c20593f73d8b87d9894877e172 prerequisite-patch-id: a1673a9e9f19d6fab5a51abb721e54e36636f067 prerequisite-patch-id: 189a0f41ba4eecd4f3f35c503baac8aed8ccd7de prerequisite-patch-id: 1117ecaa40a353c667b71802ab34ecf9568d8bb2 prerequisite-patch-id: 25923a0c77e92631ed3cd8a163d789daad35f0f8 prerequisite-patch-id: 6a6f6215f09932e68fdfd294df2e813ec9d2481f prerequisite-patch-id: 2cc95b47cad25fd9b875d27f4e8e3d84eb70274b prerequisite-patch-id: 258ea5f9b8bf41b6981345dcc81795f25865d38f prerequisite-patch-id: 8b6f2c9660c0ac0ee4e73e4c21aca8e6b75e81b9 prerequisite-patch-id: dbb0c0151b8bdf093e6ce79fd2fe3f60791a6e0b prerequisite-patch-id: e7773c977a7b37692e9792b21cc4f17fa58f9215 prerequisite-patch-id: d57e95d31686772abc4c4d5aa1cadc344dc293cd prerequisite-patch-id: 0a0ac5a8a90655b415f6b62e324f3db083cdaaee prerequisite-patch-id: 2ffbced093555055b5796c0c0572b3b0216f8938 prerequisite-patch-id: 1be0fb49e0fbe293ca8fa94601e191b13c8c67d9