2023-09-12 13:03:37

by Martin Botka

[permalink] [raw]
Subject: [PATCH v6 0/4] Add BigTreeTech CB1 SoM & Boards

Hello,
This series adds a vendor prefix for BigTreeTech and adds BigTreeTech CB1,
Manta board and BigTreeTech Pi.

CB1 is just an SoM thats based on AllWinner H616.
BigTreeTech Manta boards are expander boards for CB1 and BigTreeTech Pi
is an CB1 in Rpi style with few additional things like IR receiver and fan port
on GPIO.

This work started before I was hired by BigTreeTech and thus majority of the
patches are from SoMainline email and few are from my work email.

This series depends on commit https://lkml.org/lkml/2023/8/28/1073
and https://lkml.org/lkml/2023/8/2/801

Cheers,
Martin

Signed-off-by: Martin Botka <[email protected]>
---
Changes in v6:
- Remove SPI node from BTT Pi (To be used via overlays)
- Rebase on top of 6.6-rc1

Changes in v5:
- Removal of wifi node comments that were obvious from properties

Changes in v4:
- Extend the range of vcc-dram to 1.5V (Max of 1.35V caused issues with booting up)

Changes in v3:
- Add missed semicolons
- Move model string from dtsi to board dts
- Add cb1 compatible to manta
- Remove extra empty lines
- Add pinctrl for SPI0

Changes in v2:
- Fix alphabetical order in vendor prefixes
- Remove CB1 SoM from bindings (Its not standalone)
- Fixed whitespace errors
- Move UART into carrier boards and BTT Pi
- Remove usb1-vbus regulator
- Fix ranges and naming of AXP313A rails
- Add comment why broken-cb in mmc0 is needed
- Rename sdio_wifi to wifi
- Add model string to BTT Pi
- Enable IR receiver for BTT Pi
- Enable SPI0

---
Martin Botka (4):
dt-bindings: vendor-prefixes: Add BigTreeTech
dt-bindings: arm: sunxi: Add BigTreeTech boards
arm64: dts: allwinner: h616: Add BigTreeTech CB1 SoM & boards support
arm64: dts: allwinner: h616: Add BigTreeTech Pi support

Documentation/devicetree/bindings/arm/sunxi.yaml | 11 ++
.../devicetree/bindings/vendor-prefixes.yaml | 2 +
arch/arm64/boot/dts/allwinner/Makefile | 2 +
.../sun50i-h616-bigtreetech-cb1-manta.dts | 35 ++++++
.../dts/allwinner/sun50i-h616-bigtreetech-cb1.dtsi | 138 +++++++++++++++++++++
.../dts/allwinner/sun50i-h616-bigtreetech-pi.dts | 63 ++++++++++
6 files changed, 251 insertions(+)
---
base-commit: cc19c78b3b3f1af285182dd800a3def22227f9a2
change-id: 20230814-b4-cb1-4b18801ecf6e

Best regards,
--
Martin Botka <[email protected]>


2023-09-12 20:58:15

by Martin Botka

[permalink] [raw]
Subject: [PATCH v6 3/4] arm64: dts: allwinner: h616: Add BigTreeTech CB1 SoM & boards support

CB1 is Compute Module style board that plugs into Rpi board style adapter or
Manta 3D printer boards (M4P/M8P).

The SoM features:
- H616 SoC
- 1GiB of RAM
- AXP313A PMIC
- RTL8189FTV WiFi

Boards feature:
- 4x USB via USB2 hub (usb1 on SoM).
- SDcard slot for loading images.
- Ethernet port wired to the internal PHY. (100M)
- 2x HDMI 2.0. (Only 1 usable on CB1)
- Power and Status LEDs. (Only Status LED usable on CB1)
- 40 pin GPIO header

Currently working:
- Booting
- USB
- UART
- MMC
- Status LED
- WiFi (RTL8189FS via out of tree driver)

I didnt want to duplicate things so the manta DTS can also be used on BTT pi4b adapter.
CB1 SoM has its own DTSI file in case other boards shows up that accept this SoM.

Signed-off-by: Martin Botka <[email protected]>
Reviewed-by: Andre Przywara <[email protected]>
Reviewed-by: Jernej Skrabec <[email protected]>
---
arch/arm64/boot/dts/allwinner/Makefile | 1 +
.../sun50i-h616-bigtreetech-cb1-manta.dts | 35 ++++++
.../dts/allwinner/sun50i-h616-bigtreetech-cb1.dtsi | 138 +++++++++++++++++++++
3 files changed, 174 insertions(+)

diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile
index 3b0ad5406238..42e525b9d4b9 100644
--- a/arch/arm64/boot/dts/allwinner/Makefile
+++ b/arch/arm64/boot/dts/allwinner/Makefile
@@ -38,6 +38,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-pine-h64.dtb
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-orangepi-zero2.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-x96-mate.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h618-orangepi-zero3.dtb
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1-manta.dts b/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1-manta.dts
new file mode 100644
index 000000000000..dbce61b355d6
--- /dev/null
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1-manta.dts
@@ -0,0 +1,35 @@
+// SPDX-License-Identifier: (GPL-2.0+ or MIT)
+/*
+ * Copyright (C) 2023 Martin Botka <[email protected]>.
+ */
+
+/dts-v1/;
+
+#include "sun50i-h616-bigtreetech-cb1.dtsi"
+
+/ {
+ model = "BigTreeTech CB1";
+ compatible = "bigtreetech,cb1-manta", "bigtreetech,cb1", "allwinner,sun50i-h616";
+
+ aliases {
+ serial0 = &uart0;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+};
+
+&ehci1 {
+ status = "okay";
+};
+
+&ohci1 {
+ status = "okay";
+};
+
+&uart0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart0_ph_pins>;
+ status = "okay";
+};
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1.dtsi
new file mode 100644
index 000000000000..1fed2b46cfe8
--- /dev/null
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1.dtsi
@@ -0,0 +1,138 @@
+// SPDX-License-Identifier: (GPL-2.0+ or MIT)
+/*
+ * Copyright (C) 2023 Martin Botka <[email protected]>.
+ */
+
+/dts-v1/;
+
+#include "sun50i-h616.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+ aliases {
+ ethernet0 = &rtl8189ftv;
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ led-0 {
+ function = LED_FUNCTION_STATUS;
+ color = <LED_COLOR_ID_GREEN>;
+ gpios = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */
+ };
+ };
+
+ reg_vcc5v: regulator-vcc5v {
+ /* board wide 5V supply from carrier boards */
+ compatible = "regulator-fixed";
+ regulator-name = "vcc-5v";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ regulator-always-on;
+ };
+
+ reg_vcc33_wifi: vcc33-wifi {
+ compatible = "regulator-fixed";
+ regulator-name = "vcc33-wifi";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ vin-supply = <&reg_vcc5v>;
+ };
+
+ reg_vcc_wifi_io: vcc-wifi-io {
+ compatible = "regulator-fixed";
+ regulator-name = "vcc-wifi-io";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+ vin-supply = <&reg_vcc33_wifi>;
+ };
+
+ wifi_pwrseq: wifi-pwrseq {
+ compatible = "mmc-pwrseq-simple";
+ clocks = <&rtc 1>;
+ clock-names = "ext_clock";
+ reset-gpios = <&pio 6 18 GPIO_ACTIVE_LOW>; /* PG18 */
+ post-power-on-delay-ms = <200>;
+ };
+};
+
+&mmc0 {
+ vmmc-supply = <&reg_dldo1>;
+ /* Card detection pin is not connected */
+ broken-cd;
+ bus-width = <4>;
+ status = "okay";
+};
+
+&mmc1 {
+ vmmc-supply = <&reg_vcc33_wifi>;
+ vqmmc-supply = <&reg_vcc_wifi_io>;
+ mmc-pwrseq = <&wifi_pwrseq>;
+ bus-width = <4>;
+ non-removable;
+ mmc-ddr-1_8v;
+ status = "okay";
+
+ rtl8189ftv: wifi@1 {
+ reg = <1>;
+ };
+};
+
+&r_i2c {
+ status = "okay";
+
+ axp313a: pmic@36 {
+ compatible = "x-powers,axp313a";
+ reg = <0x36>;
+ interrupt-controller;
+ #interrupt-cells = <1>;
+
+ regulators{
+ reg_dcdc1: dcdc1 {
+ regulator-name = "vdd-gpu-sys";
+ regulator-min-microvolt = <810000>;
+ regulator-max-microvolt = <990000>;
+ regulator-always-on;
+ };
+
+ reg_dcdc2: dcdc2 {
+ regulator-name = "vdd-cpu";
+ regulator-min-microvolt = <810000>;
+ regulator-max-microvolt = <1100000>;
+ regulator-ramp-delay = <200>;
+ regulator-always-on;
+ };
+
+ reg_dcdc3: dcdc3 {
+ regulator-name = "vcc-dram";
+ regulator-min-microvolt = <1350000>;
+ regulator-max-microvolt = <1500000>;
+ regulator-always-on;
+ };
+
+ reg_aldo1: aldo1 {
+ regulator-name = "vcc-1v8-pll";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+ };
+
+ reg_dldo1: dldo1 {
+ regulator-name = "vcc-3v3-io";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ };
+ };
+ };
+};
+
+&usbphy {
+ status = "okay";
+};

--
2.42.0

2023-09-12 20:58:19

by Martin Botka

[permalink] [raw]
Subject: [PATCH v6 1/4] dt-bindings: vendor-prefixes: Add BigTreeTech

BigTreeTech is a company based in Shenzhen that makes
3D printers and accessories.

Add prefix for it.

Signed-off-by: Martin Botka <[email protected]>
Reviewed-by: Andre Przywara <[email protected]>
Reviewed-by: Krzysztof Kozlowski <[email protected]>
Acked-by: Jernej Skrabec <[email protected]>
---
Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
1 file changed, 2 insertions(+)

diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
index 573578db9509..d077cbcaf4e2 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
+++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
@@ -194,6 +194,8 @@ patternProperties:
description: Shanghai Belling Co., Ltd.
"^bhf,.*":
description: Beckhoff Automation GmbH & Co. KG
+ "^bigtreetech,.*":
+ description: Shenzhen BigTree Tech Co., LTD
"^bitmain,.*":
description: Bitmain Technologies
"^blutek,.*":

--
2.42.0

2023-09-24 21:22:43

by Jernej Škrabec

[permalink] [raw]
Subject: Re: [PATCH v6 0/4] Add BigTreeTech CB1 SoM & Boards

Dne torek, 12. september 2023 ob 13:20:46 CEST je Martin Botka napisal(a):
> Hello,
> This series adds a vendor prefix for BigTreeTech and adds BigTreeTech CB1,
> Manta board and BigTreeTech Pi.
>
> CB1 is just an SoM thats based on AllWinner H616.
> BigTreeTech Manta boards are expander boards for CB1 and BigTreeTech Pi
> is an CB1 in Rpi style with few additional things like IR receiver and fan port
> on GPIO.
>
> This work started before I was hired by BigTreeTech and thus majority of the
> patches are from SoMainline email and few are from my work email.
>
> This series depends on commit https://lkml.org/lkml/2023/8/28/1073
> and https://lkml.org/lkml/2023/8/2/801
>
> Cheers,
> Martin

Applied, thanks!

Best regards,
Jernej

>
> Signed-off-by: Martin Botka <[email protected]>
> ---
> Changes in v6:
> - Remove SPI node from BTT Pi (To be used via overlays)
> - Rebase on top of 6.6-rc1
>
> Changes in v5:
> - Removal of wifi node comments that were obvious from properties
>
> Changes in v4:
> - Extend the range of vcc-dram to 1.5V (Max of 1.35V caused issues with booting up)
>
> Changes in v3:
> - Add missed semicolons
> - Move model string from dtsi to board dts
> - Add cb1 compatible to manta
> - Remove extra empty lines
> - Add pinctrl for SPI0
>
> Changes in v2:
> - Fix alphabetical order in vendor prefixes
> - Remove CB1 SoM from bindings (Its not standalone)
> - Fixed whitespace errors
> - Move UART into carrier boards and BTT Pi
> - Remove usb1-vbus regulator
> - Fix ranges and naming of AXP313A rails
> - Add comment why broken-cb in mmc0 is needed
> - Rename sdio_wifi to wifi
> - Add model string to BTT Pi
> - Enable IR receiver for BTT Pi
> - Enable SPI0
>
> ---
> Martin Botka (4):
> dt-bindings: vendor-prefixes: Add BigTreeTech
> dt-bindings: arm: sunxi: Add BigTreeTech boards
> arm64: dts: allwinner: h616: Add BigTreeTech CB1 SoM & boards support
> arm64: dts: allwinner: h616: Add BigTreeTech Pi support
>
> Documentation/devicetree/bindings/arm/sunxi.yaml | 11 ++
> .../devicetree/bindings/vendor-prefixes.yaml | 2 +
> arch/arm64/boot/dts/allwinner/Makefile | 2 +
> .../sun50i-h616-bigtreetech-cb1-manta.dts | 35 ++++++
> .../dts/allwinner/sun50i-h616-bigtreetech-cb1.dtsi | 138 +++++++++++++++++++++
> .../dts/allwinner/sun50i-h616-bigtreetech-pi.dts | 63 ++++++++++
> 6 files changed, 251 insertions(+)
> ---
> base-commit: cc19c78b3b3f1af285182dd800a3def22227f9a2
> change-id: 20230814-b4-cb1-4b18801ecf6e
>
> Best regards,
>