mbox series

[v3,0/3] clk: add driver for the SiFive FU540 PRCI and PLLs it controls

Message ID 20190411082618.3502-1-paul.walmsley@sifive.com
Headers show
Series clk: add driver for the SiFive FU540 PRCI and PLLs it controls | expand

Message

Paul Walmsley April 11, 2019, 8:26 a.m. UTC
clk: add driver for the SiFive FU540 PRCI and PLLs it controls

Add a driver for the SiFive FU540 PRCI IP block, which handles clock and
some device reset control for the SiFive FU540 chip.  Also add a driver-
independent library for the Analog Bits Wide-Range PLL (WRPLL), used by
the PRCI driver to monitor and control the WRPLL instances on the FU540
chip.

Boot-tested on a SiFive HiFive Unleashed board, using BBL and the
open-source FSBL with a mainline-focused DTB.

This third version incorporates changes requested by Stephen Boyd
<sboyd@kernel.org> and Rob Herring <robh@kernel.org>.

This patch series is also available, along with the DT macro prerequisite
patch, at:

https://github.com/sifive/riscv-linux/tree/dev/paulw/prci-v5.1-rc4


- Paul


Paul Walmsley (3):
  clk: analogbits: add Wide-Range PLL library
  dt-bindings: clk: add documentation for the SiFive PRCI driver
  clk: sifive: add a driver for the SiFive FU540 PRCI IP block

 .../bindings/clock/sifive/fu540-prci.txt      |  46 ++
 MAINTAINERS                                   |   6 +
 drivers/clk/Kconfig                           |   2 +
 drivers/clk/Makefile                          |   2 +
 drivers/clk/analogbits/Kconfig                |   2 +
 drivers/clk/analogbits/Makefile               |   1 +
 drivers/clk/analogbits/wrpll-cln28hpc.c       | 360 ++++++++++
 drivers/clk/sifive/Kconfig                    |  18 +
 drivers/clk/sifive/Makefile                   |   1 +
 drivers/clk/sifive/fu540-prci.c               | 630 ++++++++++++++++++
 include/linux/clk/analogbits-wrpll-cln28hpc.h |  96 +++
 11 files changed, 1164 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/clock/sifive/fu540-prci.txt
 create mode 100644 drivers/clk/analogbits/Kconfig
 create mode 100644 drivers/clk/analogbits/Makefile
 create mode 100644 drivers/clk/analogbits/wrpll-cln28hpc.c
 create mode 100644 drivers/clk/sifive/Kconfig
 create mode 100644 drivers/clk/sifive/Makefile
 create mode 100644 drivers/clk/sifive/fu540-prci.c
 create mode 100644 include/linux/clk/analogbits-wrpll-cln28hpc.h

Comments

Stephen Boyd April 26, 2019, 1:38 a.m. UTC | #1
Quoting Paul Walmsley (2019-04-11 01:26:16)
> clk: add driver for the SiFive FU540 PRCI and PLLs it controls
> 
> Add a driver for the SiFive FU540 PRCI IP block, which handles clock and
> some device reset control for the SiFive FU540 chip.  Also add a driver-
> independent library for the Analog Bits Wide-Range PLL (WRPLL), used by
> the PRCI driver to monitor and control the WRPLL instances on the FU540
> chip.
> 
> Boot-tested on a SiFive HiFive Unleashed board, using BBL and the
> open-source FSBL with a mainline-focused DTB.
> 
> This third version incorporates changes requested by Stephen Boyd
> <sboyd@kernel.org> and Rob Herring <robh@kernel.org>.
> 
> This patch series is also available, along with the DT macro prerequisite
> patch, at:

Can you please send the dt macro patch along with the rest of the
patches? I can't apply these patches and build them without it.
Typically the macro patch is part of the binding patch and Rob
acks/reviews it as one change. Then I pick that up and the clk driver
parts and they get pulled into whatever SoC tree is using the bindings
header with and those defines get merged up through some other path..

> 
> https://github.com/sifive/riscv-linux/tree/dev/paulw/prci-v5.1-rc4
> 

I suppose I'll go and fetch it from here manually.
Paul Walmsley April 26, 2019, 5:01 p.m. UTC | #2
Hi Stephen,

On Thu, 25 Apr 2019, Stephen Boyd wrote:

> Quoting Paul Walmsley (2019-04-11 01:26:16)
> > clk: add driver for the SiFive FU540 PRCI and PLLs it controls
> > 
> > Add a driver for the SiFive FU540 PRCI IP block, which handles clock and
> > some device reset control for the SiFive FU540 chip.  Also add a driver-
> > independent library for the Analog Bits Wide-Range PLL (WRPLL), used by
> > the PRCI driver to monitor and control the WRPLL instances on the FU540
> > chip.
> > 
> > Boot-tested on a SiFive HiFive Unleashed board, using BBL and the
> > open-source FSBL with a mainline-focused DTB.
> > 
> > This third version incorporates changes requested by Stephen Boyd
> > <sboyd@kernel.org> and Rob Herring <robh@kernel.org>.
> > 
> > This patch series is also available, along with the DT macro prerequisite
> > patch, at:
> 
> Can you please send the dt macro patch along with the rest of the
> patches? I can't apply these patches and build them without it.

It's upstream now as commit 6ec4bae178d8 ("dt-bindings: clock: sifive: add 
FU540-C000 PRCI clock constants")

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6ec4bae178d8a1e9814eb3bfdd321b0475de0468


- Paul
Stephen Boyd April 26, 2019, 5:17 p.m. UTC | #3
Quoting Paul Walmsley (2019-04-26 10:01:23)
> On Thu, 25 Apr 2019, Stephen Boyd wrote:
> > 
> > Can you please send the dt macro patch along with the rest of the
> > patches? I can't apply these patches and build them without it.
> 
> It's upstream now as commit 6ec4bae178d8 ("dt-bindings: clock: sifive: add 
> FU540-C000 PRCI clock constants")
> 
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6ec4bae178d8a1e9814eb3bfdd321b0475de0468
> 

Hmm ok. Thanks for the pointer.