Re: [PATCH v4 4/4] arm64: dts: allwinner: h616: Add BigTreeTech Pi support

From: Martin Botka
Date: Sun Aug 13 2023 - 12:25:02 EST




On Sun, Aug 13 2023 at 05:55:35 PM +02:00:00, Jernej Škrabec <jernej.skrabec@xxxxxxxxx> wrote:
Dne ponedeljek, 07. avgust 2023 ob 16:53:24 CEST je Martin Botka napisal(a):
The BigTreeTech Pi is an H616 based board based on CB1.
Just in Rpi format board.

It features the same internals as BTT CB1 but adds:
- Fan port
- IR receiver
- ADXL345 Accelerometer connector via SPI
- 24V DC power supply via terminal plugs
- USB to CAN module connector (The actual USB to CAN happens on the
external module)

List of currently working things is same as BTT CB1 but also:
- IR receiver
- ADXL345 connector

Signed-off-by: Martin Botka <martin@xxxxxxxxxx>
Reviewed-by: Andre Przywara <andre.przywara@xxxxxxx>
---
Changes in V2:
- Add UART alongside aliases and chosen for it
- Add model string
- Enable IR receiver
- Enable SPI0 for ADXL345 connector
Changes in V3:
- Add missing semicolons
- Add pinctrl for SPI0

arch/arm64/boot/dts/allwinner/Makefile | 1 +
.../allwinner/sun50i-h616-bigtreetech-pi.dts | 70 +++++++++++++++++++
2 files changed, 71 insertions(+)
create mode 100644
arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-pi.dts

diff --git a/arch/arm64/boot/dts/allwinner/Makefile
b/arch/arm64/boot/dts/allwinner/Makefile index 7b386428510b..0b6232a7f328
100644
--- a/arch/arm64/boot/dts/allwinner/Makefile
+++ b/arch/arm64/boot/dts/allwinner/Makefile
@@ -39,5 +39,6 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-pine-h64-model-b.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-tanix-tx6.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-tanix-tx6-mini.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-bigtreetech-cb1-manta.dtb
+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-bigtreetech-pi.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-orangepi-zero2.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-x96-mate.dtb
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-pi.dts
b/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-pi.dts new file
mode 100644
index 000000000000..b0d0386e8f13
--- /dev/null
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-pi.dts
@@ -0,0 +1,70 @@
+// SPDX-License-Identifier: (GPL-2.0+ or MIT)
+/*
+ * Copyright (C) 2023 Martin Botka <martin@xxxxxxxxxx>.
+ */
+
+/dts-v1/;
+
+#include "sun50i-h616-bigtreetech-cb1.dtsi"
+
+/ {
+ model = "BigTreeTech Pi";
+ compatible = "bigtreetech,pi", "allwinner,sun50i-h616";
+
+ aliases {
+ serial0 = &uart0;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+};
+
+&ehci0 {
+ status = "okay";
+};
+
+&ehci1 {
+ status = "okay";
+};
+
+&ehci2 {
+ status = "okay";
+};
+
+&ehci3 {
+ status = "okay";
+};
+
+&ir {
+ status = "okay";
+};
+
+&ohci0 {
+ status = "okay";
+};
+
+&ohci1 {
+ status = "okay";
+};
+
+&ohci2 {
+ status = "okay";
+};
+
+&ohci3 {
+ status = "okay";
+};
+
+&spi0 {
+ /* SPI connection for onboard connector for ADXL345 accelerometer
*/
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi0_pins>, <&spi0_cs0_pin>;

Driver and compatible for ADXL345 already exists, why don't you add child node
for it?

Best regards,
Jernej
Ah. So the ADXL345 actually wont be driven by kernel.
The SPI connection is enabled so that klipper (3d printer firmware) can
be told to look for ADXL345 at this SPI and use it on its own.

Klipper will initialize and communicate with the ADXL on its own.

+};
+
+&uart0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart0_ph_pins>;
+ status = "okay";
+};