From: Damien Le Moal <damien.lemoal@wdc.com>
To: Palmer Dabbelt <palmer@dabbelt.com>,
linux-riscv@lists.infradead.org, Rob Herring <robh+dt@kernel.org>,
Frank Rowand <frowand.list@gmail.com>,
devicetree@vger.kernel.org, Serge Semin <fancer.lancer@gmail.com>,
Mark Brown <broonie@kernel.org>,
linux-spi@vger.kernel.org, Stephen Boyd <sboyd@kernel.org>,
linux-clk@vger.kernel.org,
Linus Walleij <linus.walleij@linaro.org>,
linux-gpio@vger.kernel.org,
Philipp Zabel <p.zabel@pengutronix.de>
Cc: Sean Anderson <seanga2@gmail.com>
Subject: [PATCH 00/32] RISC-V Kendryte K210 support improvments
Date: Sat, 7 Nov 2020 17:13:48 +0900 [thread overview]
Message-ID: <20201107081420.60325-1-damien.lemoal@wdc.com> (raw)
This series of patches improves support for boards based on the Kendryte
K210 RISC-V dual core SoC. Minimal support for this SoC is already
included in the kernel. These patches complete it, enabling support for
most peripherals present on the SoC, as well as introducing device trees
for the various boards available on the market today from SiPeed and
Kendryte.
The first patch of this series is a fix of the device tree parsing code.
Without this fix, a warning is generated when parsing Designware gpio
controller nodes.
The following 6 patches are fixes and improvements to the Designware SPI
driver to enable support for the MMC-spi slot found on all K210 boards.
Pathes 8 to 13 are various fixes for riscv arch code and riscv
dependent devices. Of not here is patch 11 which fix system call
execution in the no MMU case, and patch 13 which simplifies DTB builtin
handling.
The following patches 14 to 25 implement and document idevice tree
mapping of several drivers for the K210 SoC: clock driver, reset
controller and pin function management (pinctrl).
Patches 26 to 31 update the existing K210 device tree and device new
device tree files for several K210 based boards: the MAIX Bit,
MAIXSUINO, MAIX Dock and MAIX Go boards from SiPeed and the KD233
development board from Kendryte.
Finally the last patch updates the k210 nommu defconfig to include
the newly implemented drivers.
A lot of the work on the device tree and on the K210 drivers come from
the work of Sean Anderson for the U-Boot project support of the K210
SoC. Sean also helped with debugging the idriver for the DesignWare SPIi
controller of the SoC.
A tree with all patches applied is available here:
https://github.com/damien-lemoal/linux (use the latest k210-sysctl-vXX
branch). A demonstration of this series used on a SiPeed MAIX Dock
board together with an I2C servo controller can be seen here:
https://damien-lemoal.github.io/linux-robot-arm/#example
This tree was used to build userspace busybox environment image that is
then copied onto SD card with ext2:
https://github.com/damien-lemoal/buildroot
Of note is that running this userspace environment requires a revert of
commit 2217b982624680d19a80ebb4600d05c8586c4f96 introduced during the
5.9 development cycle. Without this revert, execution of the init
process fails. A problem with the riscv port of elf2flt is suspected but
not confirmed. I am now starting to investigate this problem.
Reviews and comments are as always much welcome.
Damien Le Moal (32):
of: Fix property supplier parsing
spi: dw: Add support for 32-bits ctrlr0 layout
spi: dw: Fix driving MOSI low while recieving
spi: dw: Introduce polling device tree property
spi: dw: Introduce DW_SPI_CAP_POLL_NODELAY
spi: dw: Add support for the Kendryte K210 SoC
dt-bindings: Update DW SPI device tree bindings
riscv: Fix kernel time_init()
riscv: Fix SiFive gpio probe
riscv: Fix sifive serial driver
riscv: Enable interrupts during syscalls with M-Mode
riscv: Automatically select sysctl config options
riscv: Fix builtin DTB handling
dt-bindings: Define all Kendryte K210 clock IDs
dt-bindings: Define Kendryte K210 sysctl registers
dt-bindings: Define Kendryte K210 pin functions
dt-bindings: Define Kendryte K210 reset signals
riscv: Add Kendryte K210 SoC clock driver
riscv: Add Kendryte K210 SoC reset controller
riscv: Add Kendryte K210 FPIOA pinctrl driver
dt-bindings: Add Kendryte and Canaan vendor prefix
dt-binding: Document kendryte,k210-sysctl bindings
dt-binding: Document kendryte,k210-clk bindings
dt-bindings: Document kendryte,k210-fpioa bindings
dt-bindings: Document kendryte,k210-rst bindings
riscv: Update Kendryte K210 device tree
riscv: Add SiPeed MAIX BiT board device tree
riscv: Add SiPeed MAIX DOCK board device tree
riscv: Add SiPeed MAIX GO board device tree
riscv: Add SiPeed MAIXDUINO board device tree
riscv: Add Kendryte KD233 board device tree
riscv: Update Kendryte K210 defconfig
.../bindings/clock/kendryte,k210-clk.yaml | 70 ++
.../bindings/mfd/kendryte,k210-sysctl.yaml | 65 ++
.../bindings/pinctrl/kendryte,k210-fpioa.yaml | 106 ++
.../bindings/reset/kendryte,k210-rst.yaml | 78 ++
.../bindings/spi/snps,dw-apb-ssi.yaml | 5 +
.../devicetree/bindings/vendor-prefixes.yaml | 4 +
arch/riscv/Kconfig.socs | 29 +-
arch/riscv/boot/dts/kendryte/Makefile | 5 +-
arch/riscv/boot/dts/kendryte/k210.dts | 23 -
arch/riscv/boot/dts/kendryte/k210.dtsi | 564 +++++++++-
arch/riscv/boot/dts/kendryte/k210_generic.dts | 46 +
arch/riscv/boot/dts/kendryte/k210_kd233.dts | 177 ++++
.../riscv/boot/dts/kendryte/k210_maix_bit.dts | 226 ++++
.../boot/dts/kendryte/k210_maix_dock.dts | 229 ++++
arch/riscv/boot/dts/kendryte/k210_maix_go.dts | 237 +++++
.../boot/dts/kendryte/k210_maixduino.dts | 203 ++++
arch/riscv/configs/nommu_k210_defconfig | 45 +-
arch/riscv/include/asm/soc.h | 38 -
arch/riscv/kernel/entry.S | 9 +
arch/riscv/kernel/soc.c | 27 -
arch/riscv/kernel/time.c | 3 +
arch/riscv/mm/init.c | 6 +-
drivers/clk/Kconfig | 9 +
drivers/clk/Makefile | 1 +
drivers/clk/clk-k210.c | 962 +++++++++++++++++
drivers/gpio/gpio-sifive.c | 2 +-
drivers/of/property.c | 17 +-
drivers/pinctrl/Kconfig | 15 +
drivers/pinctrl/Makefile | 1 +
drivers/pinctrl/pinctrl-k210.c | 999 ++++++++++++++++++
drivers/reset/Kconfig | 9 +
drivers/reset/Makefile | 1 +
drivers/reset/reset-k210.c | 186 ++++
drivers/soc/Kconfig | 2 +-
drivers/soc/kendryte/Kconfig | 19 +-
drivers/soc/kendryte/Makefile | 2 +-
drivers/soc/kendryte/k210-sysctl.c | 253 +----
drivers/spi/spi-dw-core.c | 22 +-
drivers/spi/spi-dw-mmio.c | 20 +-
drivers/spi/spi-dw.h | 10 +
drivers/tty/serial/sifive.c | 1 +
include/dt-bindings/clock/k210-clk.h | 61 +-
include/dt-bindings/mfd/k210-sysctl.h | 41 +
include/dt-bindings/pinctrl/k210-pinctrl.h | 277 +++++
include/dt-bindings/reset/k210-rst.h | 42 +
include/soc/kendryte/k210-sysctl.h | 11 +
46 files changed, 4770 insertions(+), 388 deletions(-)
create mode 100644 Documentation/devicetree/bindings/clock/kendryte,k210-clk.yaml
create mode 100644 Documentation/devicetree/bindings/mfd/kendryte,k210-sysctl.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/kendryte,k210-fpioa.yaml
create mode 100644 Documentation/devicetree/bindings/reset/kendryte,k210-rst.yaml
delete mode 100644 arch/riscv/boot/dts/kendryte/k210.dts
create mode 100644 arch/riscv/boot/dts/kendryte/k210_generic.dts
create mode 100644 arch/riscv/boot/dts/kendryte/k210_kd233.dts
create mode 100644 arch/riscv/boot/dts/kendryte/k210_maix_bit.dts
create mode 100644 arch/riscv/boot/dts/kendryte/k210_maix_dock.dts
create mode 100644 arch/riscv/boot/dts/kendryte/k210_maix_go.dts
create mode 100644 arch/riscv/boot/dts/kendryte/k210_maixduino.dts
create mode 100644 drivers/clk/clk-k210.c
create mode 100644 drivers/pinctrl/pinctrl-k210.c
create mode 100644 drivers/reset/reset-k210.c
create mode 100644 include/dt-bindings/mfd/k210-sysctl.h
create mode 100644 include/dt-bindings/pinctrl/k210-pinctrl.h
create mode 100644 include/dt-bindings/reset/k210-rst.h
create mode 100644 include/soc/kendryte/k210-sysctl.h
--
2.28.0
next reply other threads:[~2020-11-07 8:14 UTC|newest]
Thread overview: 132+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-07 8:13 Damien Le Moal [this message]
2020-11-07 8:13 ` [PATCH 01/32] of: Fix property supplier parsing Damien Le Moal
2020-11-09 15:05 ` Serge Semin
2020-11-09 15:14 ` Andy Shevchenko
2020-11-09 17:44 ` Serge Semin
2020-11-09 20:52 ` Rob Herring
2020-11-07 8:13 ` [PATCH 02/32] spi: dw: Add support for 32-bits ctrlr0 layout Damien Le Moal
2020-11-07 13:28 ` Sean Anderson
2020-11-09 14:25 ` Serge Semin
2020-11-09 14:33 ` Sean Anderson
2020-11-09 14:35 ` Sean Anderson
2020-11-09 14:40 ` Andy Shevchenko
2020-11-09 14:41 ` Andy Shevchenko
2020-11-09 14:49 ` Sean Anderson
2020-11-09 15:10 ` Andy Shevchenko
2020-11-09 14:36 ` Andy Shevchenko
2020-11-09 17:56 ` Serge Semin
2020-11-07 8:13 ` [PATCH 03/32] spi: dw: Fix driving MOSI low while recieving Damien Le Moal
2020-11-07 13:30 ` Sean Anderson
2020-11-09 13:29 ` Mark Brown
2020-11-09 13:47 ` Sean Anderson
2020-11-09 14:14 ` Mark Brown
2020-11-09 14:48 ` Serge Semin
2020-11-09 16:45 ` Mark Brown
2020-11-09 19:19 ` Serge Semin
2020-11-09 19:40 ` Sean Anderson
2020-11-09 20:17 ` Serge Semin
2020-11-09 20:29 ` Mark Brown
2020-11-09 20:20 ` Mark Brown
2020-11-09 21:05 ` Serge Semin
2020-11-10 13:43 ` Mark Brown
2020-11-07 8:13 ` [PATCH 04/32] spi: dw: Introduce polling device tree property Damien Le Moal
2020-11-09 16:04 ` Mark Brown
2020-11-09 19:59 ` Serge Semin
2020-11-13 9:22 ` Damien Le Moal
2020-11-15 16:01 ` Serge Semin
2020-11-16 7:47 ` Damien Le Moal
2020-11-16 12:33 ` Mark Brown
2020-11-16 21:55 ` Serge Semin
2020-11-17 14:44 ` Damien Le Moal
2020-11-17 18:26 ` Serge Semin
2020-11-18 4:41 ` Damien Le Moal
2020-11-18 15:16 ` Serge Semin
2020-11-19 5:12 ` Damien Le Moal
2020-11-19 8:51 ` Serge Semin
2020-11-19 8:57 ` Damien Le Moal
2020-11-07 8:13 ` [PATCH 05/32] spi: dw: Introduce DW_SPI_CAP_POLL_NODELAY Damien Le Moal
2020-11-09 14:03 ` Mark Brown
2020-11-09 20:45 ` Serge Semin
2020-11-07 8:13 ` [PATCH 06/32] spi: dw: Add support for the Kendryte K210 SoC Damien Le Moal
2020-11-07 13:31 ` Sean Anderson
2020-11-07 13:42 ` Damien Le Moal
2020-11-07 13:52 ` Sean Anderson
2020-11-09 14:15 ` Mark Brown
2020-11-13 8:00 ` Damien Le Moal
2020-11-09 21:21 ` Serge Semin
2020-11-09 21:39 ` Damien Le Moal
2020-11-09 21:55 ` Rob Herring
2020-11-09 22:00 ` Damien Le Moal
2020-11-09 23:07 ` Rob Herring
2020-11-10 0:35 ` Damien Le Moal
2020-11-07 8:13 ` [PATCH 07/32] dt-bindings: Update DW SPI device tree bindings Damien Le Moal
2020-11-07 8:13 ` [PATCH 08/32] riscv: Fix kernel time_init() Damien Le Moal
2020-11-12 7:21 ` Atish Patra
2020-11-13 7:31 ` Stephen Boyd
2020-11-07 8:13 ` [PATCH 09/32] riscv: Fix SiFive gpio probe Damien Le Moal
2020-11-10 14:39 ` Linus Walleij
2020-11-07 8:13 ` [PATCH 10/32] riscv: Fix sifive serial driver Damien Le Moal
2020-11-07 8:13 ` [PATCH 11/32] riscv: Enable interrupts during syscalls with M-Mode Damien Le Moal
2020-11-07 8:14 ` [PATCH 12/32] riscv: Automatically select sysctl config options Damien Le Moal
2020-11-07 8:14 ` [PATCH 13/32] riscv: Fix builtin DTB handling Damien Le Moal
2020-11-15 4:17 ` kernel test robot
2020-11-07 8:14 ` [PATCH 14/32] dt-bindings: Define all Kendryte K210 clock IDs Damien Le Moal
2020-11-07 13:33 ` Sean Anderson
2020-11-07 8:14 ` [PATCH 15/32] dt-bindings: Define Kendryte K210 sysctl registers Damien Le Moal
2020-11-07 13:34 ` Sean Anderson
2020-11-09 21:59 ` Rob Herring
2020-11-09 22:10 ` Sean Anderson
2020-11-09 23:01 ` Rob Herring
2020-11-07 8:14 ` [PATCH 16/32] dt-bindings: Define Kendryte K210 pin functions Damien Le Moal
2020-11-07 13:38 ` Sean Anderson
2020-11-07 8:14 ` [PATCH 17/32] dt-bindings: Define Kendryte K210 reset signals Damien Le Moal
2020-11-07 13:38 ` Sean Anderson
2020-11-07 8:14 ` [PATCH 18/32] riscv: Add Kendryte K210 SoC clock driver Damien Le Moal
2020-11-07 13:48 ` Sean Anderson
2020-11-07 8:14 ` [PATCH 19/32] riscv: Add Kendryte K210 SoC reset controller Damien Le Moal
2020-11-07 13:58 ` Sean Anderson
2020-11-07 8:14 ` [PATCH 20/32] riscv: Add Kendryte K210 FPIOA pinctrl driver Damien Le Moal
2020-11-09 18:48 ` kernel test robot
2020-11-15 0:28 ` kernel test robot
2020-11-24 8:43 ` Linus Walleij
2020-11-24 8:53 ` Damien Le Moal
2020-11-29 21:33 ` Linus Walleij
2020-11-30 3:13 ` Damien Le Moal
2020-11-30 7:05 ` Serge Semin
2020-11-30 7:27 ` Damien Le Moal
2020-11-24 8:56 ` Damien Le Moal
2020-11-07 8:14 ` [PATCH 21/32] dt-bindings: Add Kendryte and Canaan vendor prefix Damien Le Moal
2020-11-07 14:03 ` Sean Anderson
2020-11-13 8:17 ` Damien Le Moal
2020-11-09 22:01 ` Rob Herring
2020-11-09 22:04 ` Damien Le Moal
2020-11-07 8:14 ` [PATCH 22/32] dt-binding: Document kendryte,k210-sysctl bindings Damien Le Moal
2020-11-07 14:05 ` Sean Anderson
2020-11-09 15:32 ` Rob Herring
2020-11-07 8:14 ` [PATCH 23/32] dt-binding: Document kendryte,k210-clk bindings Damien Le Moal
2020-11-07 14:05 ` Sean Anderson
2020-11-09 21:58 ` Rob Herring
2020-11-07 8:14 ` [PATCH 24/32] dt-bindings: Document kendryte,k210-fpioa bindings Damien Le Moal
2020-11-07 14:06 ` Sean Anderson
2020-11-09 15:32 ` Rob Herring
2020-11-09 15:36 ` Rob Herring
2020-11-09 15:45 ` Sean Anderson
2020-11-11 14:32 ` Rob Herring
2020-11-19 10:57 ` Geert Uytterhoeven
2020-11-19 11:22 ` Damien Le Moal
2020-11-07 8:14 ` [PATCH 25/32] dt-bindings: Document kendryte,k210-rst bindings Damien Le Moal
2020-11-07 14:07 ` Sean Anderson
2020-11-09 15:37 ` Rob Herring
2020-11-09 15:41 ` Rob Herring
2020-11-07 8:14 ` [PATCH 26/32] riscv: Update Kendryte K210 device tree Damien Le Moal
2020-11-07 14:08 ` Sean Anderson
2020-11-07 8:14 ` [PATCH 27/32] riscv: Add SiPeed MAIX BiT board " Damien Le Moal
2020-11-07 14:13 ` Sean Anderson
2020-11-07 8:14 ` [PATCH 28/32] riscv: Add SiPeed MAIX DOCK " Damien Le Moal
2020-11-07 8:14 ` [PATCH 29/32] riscv: Add SiPeed MAIX GO " Damien Le Moal
2020-11-07 8:14 ` [PATCH 30/32] riscv: Add SiPeed MAIXDUINO " Damien Le Moal
2020-11-07 14:14 ` Sean Anderson
2020-11-07 8:14 ` [PATCH 31/32] riscv: Add Kendryte KD233 " Damien Le Moal
2020-11-07 8:14 ` [PATCH 32/32] riscv: Update Kendryte K210 defconfig Damien Le Moal
2020-11-09 12:51 ` [PATCH 00/32] RISC-V Kendryte K210 support improvments Mark Brown
2020-11-09 12:55 ` Damien Le Moal
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=20201107081420.60325-1-damien.lemoal@wdc.com \
--to=damien.lemoal@wdc.com \
--cc=broonie@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=fancer.lancer@gmail.com \
--cc=frowand.list@gmail.com \
--cc=linus.walleij@linaro.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=linux-spi@vger.kernel.org \
--cc=p.zabel@pengutronix.de \
--cc=palmer@dabbelt.com \
--cc=robh+dt@kernel.org \
--cc=sboyd@kernel.org \
--cc=seanga2@gmail.com \
/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).