[PATCH v4 00/12] riscv: Allwinner D1/D1s platform support

Samuel Holland
2022-12-31T23:39:42Z

This series adds the Kconfig/defconfig plumbing and devicetrees for a
range of Allwinner D1 and D1s-based boards. Many features are already
enabled, including USB, Ethernet, and WiFi.

The devicetrees use bindings from the following series which have not
yet been merged to linux-next:
- In-package LDO regulators:
https://lore.kernel.org/lkml/20221208084127.17443-1-samuel@sholland.org/
- Ethernet MAC binding fix (not a new issue with D1):
https://lore.kernel.org/lkml/20221231220546.1188-1-samuel@sholland.org/

The only remaining DT validation issue is that gpio-fan is missing a
YAML conversion, although one is on the list here (v2):
https://lore.kernel.org/lkml/20221217210423.836948-1-clabbe@baylibre.com/

$ make ARCH=riscv CROSS_COMPILE=riscv64-linux-musl- dtbs_check
SYNC include/config/auto.conf.cmd
LINT Documentation/devicetree/bindings
CHKDT Documentation/devicetree/bindings/processed-schema.json
SCHEMA Documentation/devicetree/bindings/processed-schema.json
DTC_CHK arch/riscv/boot/dts/allwinner/sun20i-d1-clockworkpi-v3.14.dtb
DTC_CHK arch/riscv/boot/dts/allwinner/sun20i-d1-devterm-v3.14.dtb
DTC_CHK arch/riscv/boot/dts/allwinner/sun20i-d1-dongshan-nezha-stu.dtb
DTC_CHK arch/riscv/boot/dts/allwinner/sun20i-d1-lichee-rv-86-panel-480p.dtb
DTC_CHK arch/riscv/boot/dts/allwinner/sun20i-d1-lichee-rv-86-panel-720p.dtb
DTC_CHK arch/riscv/boot/dts/allwinner/sun20i-d1-lichee-rv-dock.dtb
DTC_CHK arch/riscv/boot/dts/allwinner/sun20i-d1-lichee-rv.dtb
DTC_CHK arch/riscv/boot/dts/allwinner/sun20i-d1-mangopi-mq-pro.dtb
DTC_CHK arch/riscv/boot/dts/allwinner/sun20i-d1-nezha.dtb
DTC_CHK arch/riscv/boot/dts/allwinner/sun20i-d1s-mangopi-mq.dtb
arch/riscv/boot/dts/allwinner/sun20i-d1-devterm-v3.14.dtb:0:0: /fan: failed to match any schema with compatible: ['gpio-fan']

Note that validation requires dt-schema v2022.12 or newer.

I thoroughly tested earlier versions of this series (DMIC, Ethernet,
LEDs, MMC, PMIC, touch, and USB, where available) on several boards.
v4 has only trivial changes, and I boot-tested it on sun20i-d1-nezha.

This series is pretty much just waiting on the regulator binding to
land. I do not expect to send another version. For the rest of the
hardware blocks, DT additions will be based on top of this series.

Changes in v4:
- Rebase on v6.2-rc1 + soc2arch-immutable
- Drop the now-redundant 'select SIFIVE_PLIC'

Changes in v3:
- Drop dummy DCXO clock-frequency property
- Decrease the PLIC's riscv,ndev property to 175
- Fix `make W=1 dtbs` warnings (unnecessary #address/#size-cells)
- Drop mmc aliases
- Change LED_FUNCTION_BACKLIGHT to LED_FUNCTION_STATUS (the backlight
regulator is disconnected by default, so this is a standalone LED)
- Fix `make W=1 dtbs` warnings (missing reg properties)
- ARCH_SUNXI depends on MMU && !XIP_KERNEL

Changes in v2:
- Add MangoPi MQ (non-Pro) board
- Split into separate files for sharing with D1s/R528/T113
- Use SOC_PERIPHERAL_IRQ macro for interrupts
- Rename osc24M to dcxo and move the frequency to the board DTs
- Drop analog LDOs due to the missing binding
- Correct tcon_top DSI clock reference
- Add DMIC, DSI controller, and DPHY (bindings are in linux-next)
- Add CPU OPP table
- Common regulators moved to MangoPi MQ patch, removed analog LDOs
- Removed LRADC (depends on analog LDOs)
- Added XR829 host-wake interrupt
- Added DMIC sound card to Lichee RV dock and Lichee RV 86 Panel
- Removed LRADC (depends on analog LDOs)
- Added LED (GPIO shared between onboard LED and backlight regulator)
- Added PMIC GPIO controller node (binding merged for 6.2)
- Sort Kconfig as if we had done s/SOC_/ARCH_/ for future-proofing

Samuel Holland (12):
MAINTAINERS: Match the sun20i family of Allwinner SoCs
dt-bindings: vendor-prefixes: Add Allwinner D1/D1s board vendors
dt-bindings: riscv: Add Allwinner D1/D1s board compatibles
riscv: dts: allwinner: Add the D1/D1s SoC devicetree
riscv: dts: allwinner: Add MangoPi MQ devicetree
riscv: dts: allwinner: Add Allwinner D1 Nezha devicetree
riscv: dts: allwinner: Add Sipeed Lichee RV devicetrees
riscv: dts: allwinner: Add MangoPi MQ Pro devicetree
riscv: dts: allwinner: Add Dongshan Nezha STU devicetree
riscv: dts: allwinner: Add ClockworkPi and DevTerm devicetrees
riscv: Add the Allwinner SoC family Kconfig option
riscv: defconfig: Enable the Allwinner D1 platform and drivers

.../devicetree/bindings/riscv/sunxi.yaml | 69 ++
.../devicetree/bindings/vendor-prefixes.yaml | 4 +
MAINTAINERS | 2 +-
arch/riscv/Kconfig.socs | 9 +
arch/riscv/boot/dts/Makefile | 1 +
arch/riscv/boot/dts/allwinner/Makefile | 11 +
.../allwinner/sun20i-common-regulators.dtsi | 35 +
.../allwinner/sun20i-d1-clockworkpi-v3.14.dts | 252 ++++++
.../dts/allwinner/sun20i-d1-devterm-v3.14.dts | 36 +
.../sun20i-d1-dongshan-nezha-stu.dts | 117 +++
.../sun20i-d1-lichee-rv-86-panel-480p.dts | 29 +
.../sun20i-d1-lichee-rv-86-panel-720p.dts | 10 +
.../sun20i-d1-lichee-rv-86-panel.dtsi | 119 +++
.../allwinner/sun20i-d1-lichee-rv-dock.dts | 97 ++
.../dts/allwinner/sun20i-d1-lichee-rv.dts | 87 ++
.../allwinner/sun20i-d1-mangopi-mq-pro.dts | 142 +++
.../boot/dts/allwinner/sun20i-d1-nezha.dts | 166 ++++
arch/riscv/boot/dts/allwinner/sun20i-d1.dtsi | 66 ++
.../dts/allwinner/sun20i-d1s-mangopi-mq.dts | 134 +++
arch/riscv/boot/dts/allwinner/sun20i-d1s.dtsi | 76 ++
.../boot/dts/allwinner/sunxi-d1-t113.dtsi | 15 +
.../boot/dts/allwinner/sunxi-d1s-t113.dtsi | 837 ++++++++++++++++++
arch/riscv/configs/defconfig | 22 +-
23 files changed, 2334 insertions(+), 2 deletions(-)
create mode 100644 Documentation/devicetree/bindings/riscv/sunxi.yaml
create mode 100644 arch/riscv/boot/dts/allwinner/Makefile
create mode 100644 arch/riscv/boot/dts/allwinner/sun20i-common-regulators.dtsi
create mode 100644 arch/riscv/boot/dts/allwinner/sun20i-d1-clockworkpi-v3.14.dts
create mode 100644 arch/riscv/boot/dts/allwinner/sun20i-d1-devterm-v3.14.dts
create mode 100644 arch/riscv/boot/dts/allwinner/sun20i-d1-dongshan-nezha-stu.dts
create mode 100644 arch/riscv/boot/dts/allwinner/sun20i-d1-lichee-rv-86-panel-480p.dts
create mode 100644 arch/riscv/boot/dts/allwinner/sun20i-d1-lichee-rv-86-panel-720p.dts
create mode 100644 arch/riscv/boot/dts/allwinner/sun20i-d1-lichee-rv-86-panel.dtsi
create mode 100644 arch/riscv/boot/dts/allwinner/sun20i-d1-lichee-rv-dock.dts
create mode 100644 arch/riscv/boot/dts/allwinner/sun20i-d1-lichee-rv.dts
create mode 100644 arch/riscv/boot/dts/allwinner/sun20i-d1-mangopi-mq-pro.dts
create mode 100644 arch/riscv/boot/dts/allwinner/sun20i-d1-nezha.dts
create mode 100644 arch/riscv/boot/dts/allwinner/sun20i-d1.dtsi
create mode 100644 arch/riscv/boot/dts/allwinner/sun20i-d1s-mangopi-mq.dts
create mode 100644 arch/riscv/boot/dts/allwinner/sun20i-d1s.dtsi
create mode 100644 arch/riscv/boot/dts/allwinner/sunxi-d1-t113.dtsi
create mode 100644 arch/riscv/boot/dts/allwinner/sunxi-d1s-t113.dtsi