252 lines
5.8 KiB
Diff
252 lines
5.8 KiB
Diff
From f9756b4f8625f2bfd03ef52c5eef9762f489d578 Mon Sep 17 00:00:00 2001
|
|
From: Andre Przywara <andre.przywara@arm.com>
|
|
Date: Wed, 28 Apr 2021 00:06:26 +0100
|
|
Subject: [PATCH 033/101] arm64:dts: Add sun50i-h616-x96-mate TV box device
|
|
support
|
|
|
|
The X96 Mate is an Allwinner H616 based TV box, featuring:
|
|
- Four ARM Cortex-A53 cores, Mali-G31 MP2 GPU
|
|
- 2GiB/4GiB RAM (fully usable!)
|
|
- 16/32/64GiB eMMC
|
|
- 100Mbps Ethernet (via embedded AC200 EPHY, not yet supported)
|
|
- Unsupported Allwinner WiFi chip
|
|
- 2 x USB 2.0 host ports
|
|
- HDMI port
|
|
- IR receiver
|
|
- 5V/2A DC power supply via barrel plug
|
|
|
|
For more information see: https://linux-sunxi.org/X96_Mate
|
|
|
|
Add a basic devicetree for it, with SD card, eMMC and USB working, as
|
|
well as serial and the essential peripherals, like the AXP PMIC.
|
|
|
|
This DT is somewhat minimal, and should work on many other similar TV
|
|
boxes with the Allwinner H616 chip.
|
|
|
|
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
|
|
---
|
|
arch/arm64/boot/dts/allwinner/Makefile | 1 +
|
|
.../dts/allwinner/sun50i-h616-x96-mate.dts | 201 ++++++++++++++++++
|
|
2 files changed, 202 insertions(+)
|
|
create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h616-x96-mate.dts
|
|
|
|
diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile
|
|
index 62f8d43cf..14053c566 100644
|
|
--- a/arch/arm64/boot/dts/allwinner/Makefile
|
|
+++ b/arch/arm64/boot/dts/allwinner/Makefile
|
|
@@ -38,3 +38,4 @@ 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-h616-orangepi-zero2.dtb
|
|
+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-x96-mate.dtb
|
|
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-x96-mate.dts b/arch/arm64/boot/dts/allwinner/sun50i-h616-x96-mate.dts
|
|
new file mode 100644
|
|
index 000000000..b960bb310
|
|
--- /dev/null
|
|
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-x96-mate.dts
|
|
@@ -0,0 +1,201 @@
|
|
+// SPDX-License-Identifier: (GPL-2.0+ or MIT)
|
|
+/*
|
|
+ * Copyright (C) 2021 Arm Ltd.
|
|
+ */
|
|
+
|
|
+/dts-v1/;
|
|
+
|
|
+#include "sun50i-h616.dtsi"
|
|
+
|
|
+#include <dt-bindings/gpio/gpio.h>
|
|
+#include <dt-bindings/interrupt-controller/arm-gic.h>
|
|
+
|
|
+/ {
|
|
+ model = "X96 Mate";
|
|
+ compatible = "hechuang,x96-mate", "allwinner,sun50i-h616";
|
|
+
|
|
+ aliases {
|
|
+ serial0 = &uart0;
|
|
+ };
|
|
+
|
|
+ chosen {
|
|
+ stdout-path = "serial0:115200n8";
|
|
+ };
|
|
+
|
|
+ reg_vcc5v: vcc5v {
|
|
+ /* board wide 5V supply directly from the DC input */
|
|
+ compatible = "regulator-fixed";
|
|
+ regulator-name = "vcc-5v";
|
|
+ regulator-min-microvolt = <5000000>;
|
|
+ regulator-max-microvolt = <5000000>;
|
|
+ regulator-always-on;
|
|
+ };
|
|
+};
|
|
+
|
|
+&ehci0 {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&ehci2 {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&ir {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&mmc0 {
|
|
+ vmmc-supply = <®_dcdce>;
|
|
+ cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
|
|
+ bus-width = <4>;
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&mmc2 {
|
|
+ vmmc-supply = <®_dcdce>;
|
|
+ vqmmc-supply = <®_bldo1>;
|
|
+ bus-width = <8>;
|
|
+ non-removable;
|
|
+ cap-mmc-hw-reset;
|
|
+ mmc-hs200-1_8v;
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&ohci0 {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&ohci2 {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&r_rsb {
|
|
+ status = "okay";
|
|
+
|
|
+ axp305: pmic@745 {
|
|
+ compatible = "x-powers,axp305", "x-powers,axp805",
|
|
+ "x-powers,axp806";
|
|
+ interrupt-controller;
|
|
+ #interrupt-cells = <1>;
|
|
+ reg = <0x745>;
|
|
+
|
|
+ x-powers,self-working-mode;
|
|
+ vina-supply = <®_vcc5v>;
|
|
+ vinb-supply = <®_vcc5v>;
|
|
+ vinc-supply = <®_vcc5v>;
|
|
+ vind-supply = <®_vcc5v>;
|
|
+ vine-supply = <®_vcc5v>;
|
|
+ aldoin-supply = <®_vcc5v>;
|
|
+ bldoin-supply = <®_vcc5v>;
|
|
+ cldoin-supply = <®_vcc5v>;
|
|
+
|
|
+ regulators {
|
|
+ reg_aldo1: aldo1 {
|
|
+ regulator-always-on;
|
|
+ regulator-min-microvolt = <3300000>;
|
|
+ regulator-max-microvolt = <3300000>;
|
|
+ regulator-name = "vcc-sys";
|
|
+ };
|
|
+
|
|
+ /* Enabled by the Android BSP */
|
|
+ reg_aldo2: aldo2 {
|
|
+ regulator-min-microvolt = <3300000>;
|
|
+ regulator-max-microvolt = <3300000>;
|
|
+ regulator-name = "vcc3v3-ext";
|
|
+ status = "disabled";
|
|
+ };
|
|
+
|
|
+ /* Enabled by the Android BSP */
|
|
+ reg_aldo3: aldo3 {
|
|
+ regulator-min-microvolt = <3300000>;
|
|
+ regulator-max-microvolt = <3300000>;
|
|
+ regulator-name = "vcc3v3-ext2";
|
|
+ status = "disabled";
|
|
+ };
|
|
+
|
|
+ reg_bldo1: bldo1 {
|
|
+ regulator-always-on;
|
|
+ regulator-min-microvolt = <1800000>;
|
|
+ regulator-max-microvolt = <1800000>;
|
|
+ regulator-name = "vcc1v8";
|
|
+ };
|
|
+
|
|
+ /* Enabled by the Android BSP */
|
|
+ reg_bldo2: bldo2 {
|
|
+ regulator-min-microvolt = <1800000>;
|
|
+ regulator-max-microvolt = <1800000>;
|
|
+ regulator-name = "vcc1v8-2";
|
|
+ status = "disabled";
|
|
+ };
|
|
+
|
|
+ bldo3 {
|
|
+ /* unused */
|
|
+ };
|
|
+
|
|
+ bldo4 {
|
|
+ /* unused */
|
|
+ };
|
|
+
|
|
+ cldo1 {
|
|
+ regulator-min-microvolt = <2500000>;
|
|
+ regulator-max-microvolt = <2500000>;
|
|
+ regulator-name = "vcc2v5";
|
|
+ };
|
|
+
|
|
+ cldo2 {
|
|
+ /* unused */
|
|
+ };
|
|
+
|
|
+ cldo3 {
|
|
+ /* unused */
|
|
+ };
|
|
+
|
|
+ reg_dcdca: dcdca {
|
|
+ regulator-always-on;
|
|
+ regulator-min-microvolt = <810000>;
|
|
+ regulator-max-microvolt = <1080000>;
|
|
+ regulator-name = "vdd-cpu";
|
|
+ };
|
|
+
|
|
+ reg_dcdcc: dcdcc {
|
|
+ regulator-always-on;
|
|
+ regulator-min-microvolt = <810000>;
|
|
+ regulator-max-microvolt = <1080000>;
|
|
+ regulator-name = "vdd-gpu-sys";
|
|
+ };
|
|
+
|
|
+ reg_dcdcd: dcdcd {
|
|
+ regulator-always-on;
|
|
+ regulator-min-microvolt = <1360000>;
|
|
+ regulator-max-microvolt = <1360000>;
|
|
+ regulator-name = "vdd-dram";
|
|
+ };
|
|
+
|
|
+ reg_dcdce: dcdce {
|
|
+ regulator-boot-on;
|
|
+ regulator-min-microvolt = <3300000>;
|
|
+ regulator-max-microvolt = <3300000>;
|
|
+ regulator-name = "vcc-eth-mmc";
|
|
+ };
|
|
+
|
|
+ sw {
|
|
+ /* unused */
|
|
+ };
|
|
+ };
|
|
+ };
|
|
+};
|
|
+
|
|
+&uart0 {
|
|
+ pinctrl-names = "default";
|
|
+ pinctrl-0 = <&uart0_ph_pins>;
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&usbotg {
|
|
+ dr_mode = "host"; /* USB A type receptable */
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&usbphy {
|
|
+ status = "okay";
|
|
+};
|
|
--
|
|
2.31.1
|
|
|