Hello! This adds support for the FriendlyElec CM3588 NAS board. The board's device tree makes use of the latest upstream advances on the RK3588 like USB3 DRD and GPU support as well as the latest Rockchip PCIe driver bifurcation fixes, but some features such as thermal management and HDMI will have to be added later when SoC support for these features is merged. Since the hardware has similarities with FriendlyElec's NanoPC T6, the device tree for the CM3588 NAS took some inspirations from and also partially shares some sections with the NanoPC T6 tree. Minor issue: The device enumeration of NVMe SSDs plugged into the four PCIe M.2 slots does not follow the order of the slots on the board: The slots are physically named from 1 to 4, top to bottom. However, they do not show up in this same order in Linux when all slots are polulated: - SSD in physical slot 1 shows up as nvme0 - SSD in physical slot 2 shows up as nvme2 - SSD in physical slot 3 shows up as nvme1 - SSD in physical slot 4 shows up as nvme3 This is the same order in which the data lanes are mapped for PCIe bifurcation (dts property: data-lanes = <1 3 2 4>). I could not solve this by using aliases for the PCIe nodes in the device tree. Perhaps this is something that can only be solved at driver level? I am not sure if this behaviour is even considered a bug or if this is intended behaviour by design. Devicetree validation: `make CHECK_DTBS=y rockchip/rk3588-cm3588-nas.dtb` does not give any warnings or errors, tested on Linux next-20240523. Best regards, Sebastian Kropatsch --- Changes in v2: - split dts into two files (CM and carrier board) - rename fixed regulators with preferred 'regulator-' prefix - use preferred 'gpios' property instead of 'gpio' - add 'pinctrl-names' property for every pinctrl - add several pwm nodes - drop HMDI PHY and VOP support - drop unneeded &wdt node - remove i2c4 since it's not availabe according to the schematics - &sdhci: drop 'full-pwr-cycle-in-suspend' flag - &sdmmc: drop 'cap-mmc-highspeed' flag because of no-mmc - &sdmmc: drop 'cd-gpios' property, unneeded w/ using sdmmc_det pinctrl - &usb_host0_xhci, &usb_host2_xhci: remove default 'dr_mode' property --- Sebastian Kropatsch (2): dt-bindings: arm: rockchip: Add FriendlyElec CM3588 NAS arm64: dts: rockchip: Add FriendlyElec CM3588 NAS board .../devicetree/bindings/arm/rockchip.yaml | 7 + arch/arm64/boot/dts/rockchip/Makefile | 1 + .../rk3588-friendlyelec-cm3588-nas.dts | 705 ++++++++++++++++++ .../rockchip/rk3588-friendlyelec-cm3588.dtsi | 660 ++++++++++++++++ 4 files changed, 1373 insertions(+) create mode 100644 arch/arm64/boot/dts/rockchip/rk3588-friendlyelec-cm3588-nas.dts create mode 100644 arch/arm64/boot/dts/rockchip/rk3588-friendlyelec-cm3588.dtsi -- 2.43.0