From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Anderson Date: Mon, 14 Sep 2020 11:01:54 -0400 Subject: [PATCH v6 00/12] riscv: Add FPIOA and GPIO support for Kendryte K210 Message-ID: <20200914150206.90002-1-seanga2@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de This patch series adds support for pinmuxing, gpios, buttons, and leds on the Kendyte K210. The fail-to-boot bug should be fixed by the timer driver cleanup patch :) This patch series was previously part of https://patchwork.ozlabs.org/project/uboot/list/?series=161576 This series depends on https://patchwork.ozlabs.org/project/uboot/list/?series=200642 Changes in v6: - Add BOOT button binding - Add dependency on "riscv: Clean up timer drivers", which fixes the bugs discovered earlier. - DM_TESTF_SCAN_FDT -> UT_TESTF_SCAN_FDT - Reformat documentation so sphinx likes it better - Remove CONFIG_LOGLEVEL hack - Reorganize driver to use one file, instead of creating a new directory Changes in v5: - Increase CONFIG_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 Heinrich Schuchardt (1): riscv: add DT binding for BOOT button on Maix board 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 | 115 +++ arch/riscv/dts/k210.dtsi | 12 + arch/sandbox/dts/test.dts | 47 +- board/sipeed/maix/Kconfig | 9 + doc/api/index.rst | 1 + doc/api/pinctrl.rst | 7 + 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 | 7 + drivers/pinctrl/Makefile | 1 + drivers/pinctrl/pinctrl-generic.c | 125 ++- drivers/pinctrl/pinctrl-kendryte.c | 737 ++++++++++++++++++ drivers/pinctrl/pinctrl-sandbox.c | 186 +++-- include/dm/pinctrl.h | 498 ++++++++---- 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 +- 24 files changed, 2129 insertions(+), 285 deletions(-) create mode 100644 doc/api/pinctrl.rst create mode 100644 doc/device-tree-bindings/pinctrl/kendryte,k210-fpioa.txt create mode 100644 drivers/pinctrl/pinctrl-kendryte.c 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