2023-08-14 08:18:40

by Martin Botka

[permalink] [raw]
Subject: [PATCH v5 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/2/801
"dt-bindings: mfd: x-powers,axp152: make interrupt optional for more chips".

Due to the threading issues v5 is sent via my SoMainline email.

Cheers,
Martin

Signed-off-by: Martin Botka <[email protected]>
---
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 | 70 +++++++++++
6 files changed, 258 insertions(+)
---
base-commit: 7935746bb793571417f832f0f1c8852cfdfccc06
change-id: 20230814-b4-cb1-4b18801ecf6e

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



2023-08-14 08:18:44

by Martin Botka

[permalink] [raw]
Subject: [PATCH v5 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 6a96494a2e0a..7b386428510b 100644
--- a/arch/arm64/boot/dts/allwinner/Makefile
+++ b/arch/arm64/boot/dts/allwinner/Makefile
@@ -38,5 +38,6 @@ 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
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.41.0


2023-08-14 08:37:55

by Martin Botka

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



On Mon, Aug 14 2023 at 10:07:02 AM +02:00:00, Martin Botka
<[email protected]> wrote:
> 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/2/801
> "dt-bindings: mfd: x-powers,axp152: make interrupt optional for more
> chips".
>
> Due to the threading issues v5 is sent via my SoMainline email.
>
> Cheers,
> Martin
>
> Signed-off-by: Martin Botka <[email protected]>
> ---
Forgot to add it here
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 | 70 +++++++++++
> 6 files changed, 258 insertions(+)
> ---
> base-commit: 7935746bb793571417f832f0f1c8852cfdfccc06
> change-id: 20230814-b4-cb1-4b18801ecf6e
>
> Best regards,
> --
> Martin Botka <[email protected]>
>



2023-08-14 08:40:50

by Martin Botka

[permalink] [raw]
Subject: [PATCH v5 2/4] dt-bindings: arm: sunxi: Add BigTreeTech boards

Add name & compatible for BigTreeTech Manta boards and
BigTreeTech Pi

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

diff --git a/Documentation/devicetree/bindings/arm/sunxi.yaml b/Documentation/devicetree/bindings/arm/sunxi.yaml
index ee8fdd2da869..b90d2a7dbe2d 100644
--- a/Documentation/devicetree/bindings/arm/sunxi.yaml
+++ b/Documentation/devicetree/bindings/arm/sunxi.yaml
@@ -151,6 +151,17 @@ properties:
- const: roofull,beelink-x2
- const: allwinner,sun8i-h3

+ - description: BigTreeTech Manta M4/8P
+ items:
+ - const: bigtreetech,cb1-manta
+ - const: bigtreetech,cb1
+ - const: allwinner,sun50i-h616
+
+ - description: BigTreeTech Pi
+ items:
+ - const: bigtreetech,pi
+ - const: allwinner,sun50i-h616
+
- description: Chuwi V7 CW0825
items:
- const: chuwi,v7-cw0825

--
2.41.0