From: Emil Renner Berthing <kernel@esmil.dk>
To: linux-riscv@lists.infradead.org, devicetree@vger.kernel.org,
linux-clk@vger.kernel.org, linux-gpio@vger.kernel.org,
linux-serial@vger.kernel.org
Cc: Emil Renner Berthing <kernel@esmil.dk>,
Palmer Dabbelt <palmer@dabbelt.com>,
Paul Walmsley <paul.walmsley@sifive.com>,
Rob Herring <robh+dt@kernel.org>,
Michael Turquette <mturquette@baylibre.com>,
Stephen Boyd <sboyd@kernel.org>,
Thomas Gleixner <tglx@linutronix.de>,
Marc Zyngier <maz@kernel.org>,
Philipp Zabel <p.zabel@pengutronix.de>,
Linus Walleij <linus.walleij@linaro.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Daniel Lezcano <daniel.lezcano@linaro.org>,
Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
Jiri Slaby <jirislaby@kernel.org>,
Maximilian Luz <luzmaximilian@gmail.com>,
Sagar Kadam <sagar.kadam@sifive.com>,
Drew Fustini <drew@beagleboard.org>,
Geert Uytterhoeven <geert@linux-m68k.org>,
Michael Zhu <michael.zhu@starfivetech.com>,
Fu Wei <tekkamanninja@gmail.com>, Anup Patel <anup.patel@wdc.com>,
Atish Patra <atish.patra@wdc.com>,
Matteo Croce <mcroce@microsoft.com>,
Arnd Bergmann <arnd@arndb.de>,
linux-kernel@vger.kernel.org
Subject: [PATCH v4 00/16] Basic StarFive JH7100 RISC-V SoC support
Date: Tue, 16 Nov 2021 16:01:03 +0100 [thread overview]
Message-ID: <20211116150119.2171-1-kernel@esmil.dk> (raw)
This series adds support for the StarFive JH7100 RISC-V SoC. The SoC has
many devices that need non-coherent dma operations to work which isn't
upstream yet[1], so this just adds basic support to boot up, get a
serial console, blink an LED and reboot itself. Unlike the Allwinner D1
this chip doesn't use any extra pagetable bits, but instead the DDR RAM
appears twice in the memory map, with and without the cache.
The JH7100 is a test chip for the upcoming JH7110 and about 300 BeagleV
Starlight Beta boards were sent out with them as part of a now cancelled
BeagleBoard.org project. However StarFive has produced more of the
JH7100s and more boards will be available[2] to buy. I've seen pictures
of the new boards now, so hopefully before the end of the year.
This series is also available at
https://github.com/esmil/linux/commits/starlight-minimal
..but a more complete kernel including drivers for non-coherent
peripherals based on this series can be found at
https://github.com/starfive-tech/linux/tree/visionfive
[1]: https://lore.kernel.org/linux-riscv/20210723214031.3251801-2-atish.patra@wdc.com/
[2]: https://www.linkedin.com/pulse/starfive-release-open-source-single-board-platform-q3-2021-starfive/
/Emil
Changes since v3:
- The reset driver now uses 64bit read/write on the registers so we can
use the regular bitmap macros. Requested by Andy.
- The pinctrl driver no longer resets the GPIO irq handler to
handle_bad_irq on errors, uses reverse xmas tree order where possible
and other nits by Andy.
Changes since v2:
- Ahmad and Geert agreed to switch the license of the clock and reset dt
headers to GPL-2.0 OR MIT, so that both headers and device tree files
can all use the same license.
Bindings are still GPL-2.0-only OR BSD-2-Clause as recommended.
- Clock and reset drivers now set .suppress_bind_attrs = true and use
builtin_platform_driver_probe to make sure the probe function is only
called at init time so we can use __init and __initconst.
- The clock driver now uses devm_clk_hw_register and .parent_data when
registering clocks. This way we can use the dt clock indexes rather
than strings for parent lists and decrease the amount of static data
needed considerably.
- Various dt binding cleanups from Rob
- Reworked description in the pinctrl dt binding.
- Pinctrl driver now depends on CONFIG_OF again since it uses
pinconf_generic_parse_dt_config which is otherwise not defined.
- Pinctrl no longer devm_kfree's data that won't be referenced
if dt pinconf parsing fails before registering groups and function,
and other nits by Andy.
- The dw8250 quirk no longer needs a skip_clk_set_rate bit, but sets
port->set_termios to the function called after clk_set_rate.
Changes since v1:
- Let SOC_STARFIVE select RESET_CONTROLLER but drop SERIAL_8250_DW
- Add missing Signed-of-by to clock dt-binding header
- Use builtin_platform_driver macro for the clock driver, add explicit
comment to the determine_rate callback and other small nits from Andy
- Use reset-controller for node names in documentation and device tree
- Use readl_poll_timeout in reset driver to avoid hanging forever if a
driver leaves the associated clock gated and sort Kconfig and Makefile
entries properly.
- In the pinctrl driver align register names with documentation, remove
invalid __init tag from probe function, use of_property_* functions to
parse device tree, hoist pinmux unpacking into helper function to
better document what's going on, bail on invalid signal group in
device tree and fix many other nits from Andy.
- Refactor and rebase 8250_dw quirk on tty-next
Emil Renner Berthing (12):
RISC-V: Add StarFive SoC Kconfig option
dt-bindings: timer: Add StarFive JH7100 clint
dt-bindings: interrupt-controller: Add StarFive JH7100 plic
dt-bindings: reset: Add Starfive JH7100 reset bindings
reset: starfive-jh7100: Add StarFive JH7100 reset driver
dt-bindings: pinctrl: Add StarFive pinctrl definitions
dt-bindings: pinctrl: Add StarFive JH7100 bindings
pinctrl: starfive: Add pinctrl driver for StarFive SoCs
dt-bindings: serial: snps-dw-apb-uart: Add JH7100 uarts
serial: 8250_dw: Add StarFive JH7100 quirk
RISC-V: Add initial StarFive JH7100 device tree
RISC-V: Add BeagleV Starlight Beta device tree
Geert Uytterhoeven (4):
dt-bindings: clock: starfive: Add JH7100 clock definitions
dt-bindings: clock: starfive: Add JH7100 bindings
clk: starfive: Add JH7100 clock generator driver
dt-bindings: reset: Add StarFive JH7100 reset definitions
.../clock/starfive,jh7100-clkgen.yaml | 56 +
.../sifive,plic-1.0.0.yaml | 1 +
.../pinctrl/starfive,jh7100-pinctrl.yaml | 307 ++++
.../bindings/reset/starfive,jh7100-reset.yaml | 38 +
.../bindings/serial/snps-dw-apb-uart.yaml | 5 +
.../bindings/timer/sifive,clint.yaml | 1 +
MAINTAINERS | 22 +
arch/riscv/Kconfig.socs | 8 +
arch/riscv/boot/dts/Makefile | 1 +
arch/riscv/boot/dts/starfive/Makefile | 2 +
.../dts/starfive/jh7100-beaglev-starlight.dts | 164 ++
arch/riscv/boot/dts/starfive/jh7100.dtsi | 230 +++
drivers/clk/Kconfig | 1 +
drivers/clk/Makefile | 1 +
drivers/clk/starfive/Kconfig | 9 +
drivers/clk/starfive/Makefile | 3 +
drivers/clk/starfive/clk-starfive-jh7100.c | 689 +++++++++
drivers/pinctrl/Kconfig | 17 +
drivers/pinctrl/Makefile | 1 +
drivers/pinctrl/pinctrl-starfive.c | 1354 +++++++++++++++++
drivers/reset/Kconfig | 7 +
drivers/reset/Makefile | 1 +
drivers/reset/reset-starfive-jh7100.c | 176 +++
drivers/tty/serial/8250/8250_dw.c | 3 +
include/dt-bindings/clock/starfive-jh7100.h | 202 +++
.../dt-bindings/pinctrl/pinctrl-starfive.h | 275 ++++
include/dt-bindings/reset/starfive-jh7100.h | 126 ++
27 files changed, 3700 insertions(+)
create mode 100644 Documentation/devicetree/bindings/clock/starfive,jh7100-clkgen.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/starfive,jh7100-pinctrl.yaml
create mode 100644 Documentation/devicetree/bindings/reset/starfive,jh7100-reset.yaml
create mode 100644 arch/riscv/boot/dts/starfive/Makefile
create mode 100644 arch/riscv/boot/dts/starfive/jh7100-beaglev-starlight.dts
create mode 100644 arch/riscv/boot/dts/starfive/jh7100.dtsi
create mode 100644 drivers/clk/starfive/Kconfig
create mode 100644 drivers/clk/starfive/Makefile
create mode 100644 drivers/clk/starfive/clk-starfive-jh7100.c
create mode 100644 drivers/pinctrl/pinctrl-starfive.c
create mode 100644 drivers/reset/reset-starfive-jh7100.c
create mode 100644 include/dt-bindings/clock/starfive-jh7100.h
create mode 100644 include/dt-bindings/pinctrl/pinctrl-starfive.h
create mode 100644 include/dt-bindings/reset/starfive-jh7100.h
--
2.33.1
next reply other threads:[~2021-11-16 15:04 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-16 15:01 Emil Renner Berthing [this message]
2021-11-16 15:01 ` [PATCH v4 01/16] RISC-V: Add StarFive SoC Kconfig option Emil Renner Berthing
2021-11-16 15:01 ` [PATCH v4 02/16] dt-bindings: timer: Add StarFive JH7100 clint Emil Renner Berthing
2021-11-16 15:01 ` [PATCH v4 03/16] dt-bindings: interrupt-controller: Add StarFive JH7100 plic Emil Renner Berthing
2021-11-16 15:01 ` [PATCH v4 04/16] dt-bindings: clock: starfive: Add JH7100 clock definitions Emil Renner Berthing
2021-12-16 4:35 ` Stephen Boyd
2021-11-16 15:01 ` [PATCH v4 05/16] dt-bindings: clock: starfive: Add JH7100 bindings Emil Renner Berthing
2021-12-16 4:35 ` Stephen Boyd
2021-11-16 15:01 ` [PATCH v4 06/16] clk: starfive: Add JH7100 clock generator driver Emil Renner Berthing
2021-12-16 4:36 ` Stephen Boyd
2021-11-16 15:01 ` [PATCH v4 07/16] dt-bindings: reset: Add StarFive JH7100 reset definitions Emil Renner Berthing
2021-11-16 15:01 ` [PATCH v4 08/16] dt-bindings: reset: Add Starfive JH7100 reset bindings Emil Renner Berthing
2021-11-16 15:01 ` [PATCH v4 09/16] reset: starfive-jh7100: Add StarFive JH7100 reset driver Emil Renner Berthing
2021-11-16 16:01 ` Andy Shevchenko
2021-11-16 16:06 ` Emil Renner Berthing
2021-11-16 16:21 ` Andy Shevchenko
2021-11-16 16:24 ` Andy Shevchenko
2021-11-16 15:01 ` [PATCH v4 10/16] dt-bindings: pinctrl: Add StarFive pinctrl definitions Emil Renner Berthing
2021-11-16 15:01 ` [PATCH v4 11/16] dt-bindings: pinctrl: Add StarFive JH7100 bindings Emil Renner Berthing
2021-11-16 15:01 ` [PATCH v4 12/16] pinctrl: starfive: Add pinctrl driver for StarFive SoCs Emil Renner Berthing
2021-11-16 15:52 ` Andy Shevchenko
2021-11-21 23:35 ` Linus Walleij
2021-11-16 15:01 ` [PATCH v4 13/16] dt-bindings: serial: snps-dw-apb-uart: Add JH7100 uarts Emil Renner Berthing
2021-11-16 15:01 ` [PATCH v4 14/16] serial: 8250_dw: Add StarFive JH7100 quirk Emil Renner Berthing
2021-11-16 15:01 ` [PATCH v4 15/16] RISC-V: Add initial StarFive JH7100 device tree Emil Renner Berthing
2021-11-16 15:01 ` [PATCH v4 16/16] RISC-V: Add BeagleV Starlight Beta " Emil Renner Berthing
2021-11-16 16:07 ` [PATCH v4 00/16] Basic StarFive JH7100 RISC-V SoC support Arnd Bergmann
2021-11-16 16:13 ` Andy Shevchenko
2021-11-16 16:44 ` Arnd Bergmann
2021-11-16 17:01 ` Emil Renner Berthing
2021-11-16 17:28 ` Emil Renner Berthing
2021-11-27 1:30 ` Palmer Dabbelt
2021-11-28 18:19 ` Emil Renner Berthing
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20211116150119.2171-1-kernel@esmil.dk \
--to=kernel@esmil.dk \
--cc=andriy.shevchenko@linux.intel.com \
--cc=anup.patel@wdc.com \
--cc=arnd@arndb.de \
--cc=atish.patra@wdc.com \
--cc=daniel.lezcano@linaro.org \
--cc=devicetree@vger.kernel.org \
--cc=drew@beagleboard.org \
--cc=geert@linux-m68k.org \
--cc=gregkh@linuxfoundation.org \
--cc=jirislaby@kernel.org \
--cc=linus.walleij@linaro.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=linux-serial@vger.kernel.org \
--cc=luzmaximilian@gmail.com \
--cc=maz@kernel.org \
--cc=mcroce@microsoft.com \
--cc=michael.zhu@starfivetech.com \
--cc=mturquette@baylibre.com \
--cc=p.zabel@pengutronix.de \
--cc=palmer@dabbelt.com \
--cc=paul.walmsley@sifive.com \
--cc=robh+dt@kernel.org \
--cc=sagar.kadam@sifive.com \
--cc=sboyd@kernel.org \
--cc=tekkamanninja@gmail.com \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).