clk: add driver for the SiFive FU740
From: | Zong Li <zong.li-AT-sifive.com> | |
To: | paul.walmsley-AT-sifive.com, palmer-AT-dabbelt.com, sboyd-AT-kernel.org, schwab-AT-linux-m68k.org, pragnesh.patel-AT-openfive.com, aou-AT-eecs.berkeley.edu, mturquette-AT-baylibre.com, yash.shah-AT-sifive.com, linux-kernel-AT-vger.kernel.org, linux-clk-AT-vger.kernel.org, linux-riscv-AT-lists.infradead.org | |
Subject: | [PATCH v5 0/5] clk: add driver for the SiFive FU740 | |
Date: | Mon, 30 Nov 2020 16:23:25 +0800 | |
Message-ID: | <20201130082330.77268-1-zong.li@sifive.com> | |
Cc: | Zong Li <zong.li-AT-sifive.com> | |
Archive-link: | Article |
Add a driver for the SiFive FU740 PRCI IP block, which handles more clocks than FU540. These patches also refactor the original implementation by spliting the dependent-code of fu540 and fu740 respectively. In v3 and v4 patch set, it fix the wrong clk enable bit field which reported by Pragnesh. We also add a separate patch for DT binding documentation of FU740 PRCI: https://patchwork.kernel.org/project/linux-riscv/patch/20... Changed in v5: - Fix copyright format - Add a link of documentation in commit message - Modify build dependency for sifive-prci.c - Add enable and disable functions by Pragnesh Patel Changed in v4: - Fix the wrong enable bit field shift for FU540 and FU740. Changed in v3: - Fix the wrong enable bit field shift for FU740. Changed in v2: - Remove the macro definition for __prci_clock_array. - Indicate the functional changes in commit message. - Using option -M and -C to create patches. - Rebase code to kernel v5.10-rc3. Pragnesh Patel (1): clk: sifive: Add clock enable and disable ops Zong Li (4): clk: sifive: Extract prci core to common base clk: sifive: Use common name for prci configuration clk: sifive: Add a driver for the SiFive FU740 PRCI IP block clk: sifive: Fix the wrong bit field shift arch/riscv/Kconfig.socs | 2 +- drivers/clk/sifive/Kconfig | 8 +- drivers/clk/sifive/Makefile | 2 +- drivers/clk/sifive/fu540-prci.c | 585 +---------------- drivers/clk/sifive/fu540-prci.h | 21 + drivers/clk/sifive/fu740-prci.c | 120 ++++ drivers/clk/sifive/fu740-prci.h | 21 + drivers/clk/sifive/sifive-prci.c | 588 ++++++++++++++++++ drivers/clk/sifive/sifive-prci.h | 301 +++++++++ include/dt-bindings/clock/sifive-fu740-prci.h | 23 + 10 files changed, 1105 insertions(+), 566 deletions(-) create mode 100644 drivers/clk/sifive/fu540-prci.h create mode 100644 drivers/clk/sifive/fu740-prci.c create mode 100644 drivers/clk/sifive/fu740-prci.h create mode 100644 drivers/clk/sifive/sifive-prci.c create mode 100644 drivers/clk/sifive/sifive-prci.h create mode 100644 include/dt-bindings/clock/sifive-fu740-prci.h -- 2.29.2