[PATCH v5 00/11] riscv: Add FPIOA and GPIO support for Kendryte K210

Sean Anderson
2020-08-15T15:52:26Z

This patch series adds support for pinmuxing, gpios, and leds on the Kendyte
K210.

This patch series was previously part of
https://patchwork.ozlabs.org/project/uboot/list/?series=161576

This patch series depends on
https://patchwork.ozlabs.org/project/uboot/list/?series=178480

Changes in v5:
- Increase CONSOLE_LOGLEVEL to 5 as a hack to get the board booting again
- Patch 05/12 "gpio: sifive: Use generic reg read function" has been superseded
by commit 2548493ab4.
- Rebase onto u-boot/master

Changes in v4:
- Add sandbox dt-binding headers to MAINTAINERS
- Add test for led behavior
- Add test/dm/pinmux.c to patch
- Move sandbox_* variables into a priv structure. This resets them to the
default state every time we re-probe.
- Reformat documentation in dm/pinctrl.h

Changes in v3:
- Add dt-bindings/pinctrl/sandbox-pinmux.h to patch

Changes in v2:
- Add test for pinmuxing
- Don't clear existing pinctrl settings on probe
- Re-order GPIOs to match the defaults more closely
- Rebase onto v13 of "riscv: Add Sipeed Maix support"
- Rewrite FPIOA driver to use pinmux property
- Support muxing the output enable signal for each function in the FPIOA
- Support output and input inversion in the pinmux driver
- Support pinmux property in pinctrl-generic

Sean Anderson (11):
pinctrl: Add pinmux property support to pinctrl-generic
pinctrl: Reformat documentation in dm/pinctrl.h
test: pinmux: Add test for pin muxing
pinctrl: Add support for Kendryte K210 FPIOA
gpio: dw: Fix warnings about casting int to pointer
gpio: dw: Add a trailing underscore to generated name
gpio: dw: Return output value when direction is out
led: gpio: Default to using node name if label is absent
test: dm: Test for default led naming
riscv: Add pinmux and gpio bindings for Kendryte K210
riscv: Add FPIOA and GPIO support for Kendryte K210

MAINTAINERS | 3 +
arch/riscv/dts/k210-maix-bit.dts | 104 +++
arch/riscv/dts/k210.dtsi | 12 +
arch/sandbox/dts/test.dts | 47 +-
board/sipeed/maix/Kconfig | 9 +
configs/sipeed_maix_bitm_defconfig | 2 +
doc/board/sipeed/maix.rst | 64 +-
.../pinctrl/kendryte,k210-fpioa.txt | 102 +++
.../pinctrl/pinctrl-bindings.txt | 65 +-
drivers/gpio/dwapb_gpio.c | 33 +-
drivers/led/led_gpio.c | 7 +-
drivers/pinctrl/Kconfig | 1 +
drivers/pinctrl/Makefile | 1 +
drivers/pinctrl/kendryte/Kconfig | 7 +
drivers/pinctrl/kendryte/Makefile | 1 +
drivers/pinctrl/kendryte/pinctrl.c | 678 ++++++++++++++++++
drivers/pinctrl/kendryte/pinctrl.h | 70 ++
drivers/pinctrl/pinctrl-generic.c | 125 +++-
drivers/pinctrl/pinctrl-sandbox.c | 186 +++--
include/dm/pinctrl.h | 360 +++++++---
include/dt-bindings/pinctrl/k210-pinctrl.h | 277 +++++++
include/dt-bindings/pinctrl/sandbox-pinmux.h | 19 +
test/dm/Makefile | 3 +
test/dm/led.c | 3 +-
test/dm/pinmux.c | 57 ++
test/py/tests/test_pinmux.py | 36 +-
26 files changed, 2028 insertions(+), 244 deletions(-)
create mode 100644 doc/device-tree-bindings/pinctrl/kendryte,k210-fpioa.txt
create mode 100644 drivers/pinctrl/kendryte/Kconfig
create mode 100644 drivers/pinctrl/kendryte/Makefile
create mode 100644 drivers/pinctrl/kendryte/pinctrl.c
create mode 100644 drivers/pinctrl/kendryte/pinctrl.h
create mode 100644 include/dt-bindings/pinctrl/k210-pinctrl.h
create mode 100644 include/dt-bindings/pinctrl/sandbox-pinmux.h
create mode 100644 test/dm/pinmux.c

--
2.28.0