mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-16 09:54:35 +00:00

Sync the devicetree files from the official Linux kernel tree, v6.10. This is covering Allwinner SoCs with 32-bit and 64-bit ARM cores. Besides mostly cosmectic changes, this adds cpufreq support to H616 boards, Nothing that U-Boot needs for itself, but helpful to pass on to kernels. We also get the .dts files for the Tanix TX1 TV box and three Anbernic handheld gaming devices. As before, this omits the non-backwards compatible changes to the R_INTC controller, to remain compatible with older kernels. Signed-off-by: Andre Przywara <andre.przywara@arm.com>
273 lines
6.1 KiB
Text
273 lines
6.1 KiB
Text
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
|
/*
|
|
* Copyright (C) 2017 Icenowy Zheng <icenowy@aosc.io>
|
|
*
|
|
* Based on sun8i-h3-bananapi-m2-plus.dts, which is:
|
|
* Copyright (C) 2016 Chen-Yu Tsai <wens@csie.org>
|
|
*/
|
|
|
|
/dts-v1/;
|
|
#include "sun8i-h3.dtsi"
|
|
#include "sunxi-common-regulators.dtsi"
|
|
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
#include <dt-bindings/input/input.h>
|
|
|
|
/ {
|
|
model = "Banana Pi BPI-M2-Zero";
|
|
compatible = "sinovoip,bpi-m2-zero", "allwinner,sun8i-h2-plus";
|
|
|
|
aliases {
|
|
serial0 = &uart0;
|
|
serial1 = &uart1;
|
|
};
|
|
|
|
chosen {
|
|
stdout-path = "serial0:115200n8";
|
|
};
|
|
|
|
connector {
|
|
compatible = "hdmi-connector";
|
|
type = "c";
|
|
|
|
port {
|
|
hdmi_con_in: endpoint {
|
|
remote-endpoint = <&hdmi_out_con>;
|
|
};
|
|
};
|
|
};
|
|
|
|
leds {
|
|
compatible = "gpio-leds";
|
|
|
|
pwr_led {
|
|
label = "bananapi-m2-zero:red:pwr";
|
|
gpios = <&r_pio 0 10 GPIO_ACTIVE_LOW>; /* PL10 */
|
|
default-state = "on";
|
|
};
|
|
};
|
|
|
|
gpio-keys {
|
|
compatible = "gpio-keys";
|
|
|
|
switch-4 {
|
|
label = "power";
|
|
linux,code = <KEY_POWER>;
|
|
gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
|
|
wakeup-source;
|
|
};
|
|
};
|
|
|
|
reg_vdd_cpux: vdd-cpux-regulator {
|
|
compatible = "regulator-gpio";
|
|
regulator-name = "vdd-cpux";
|
|
regulator-type = "voltage";
|
|
regulator-boot-on;
|
|
regulator-always-on;
|
|
regulator-min-microvolt = <1100000>;
|
|
regulator-max-microvolt = <1300000>;
|
|
regulator-ramp-delay = <50>; /* 4ms */
|
|
|
|
gpios = <&r_pio 0 1 GPIO_ACTIVE_HIGH>; /* PL1 */
|
|
enable-active-high;
|
|
gpios-states = <0x1>;
|
|
states = <1100000 0>, <1300000 1>;
|
|
};
|
|
|
|
reg_vcc_dram: vcc-dram {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "vcc-dram";
|
|
regulator-min-microvolt = <1500000>;
|
|
regulator-max-microvolt = <1500000>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
enable-active-high;
|
|
gpio = <&r_pio 0 9 GPIO_ACTIVE_HIGH>; /* PL9 */
|
|
vin-supply = <®_vcc5v0>;
|
|
};
|
|
|
|
reg_vcc1v2: vcc1v2 {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "vcc1v2";
|
|
regulator-min-microvolt = <1200000>;
|
|
regulator-max-microvolt = <1200000>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
enable-active-high;
|
|
gpio = <&r_pio 0 8 GPIO_ACTIVE_HIGH>; /* PL8 */
|
|
vin-supply = <®_vcc5v0>;
|
|
};
|
|
|
|
poweroff {
|
|
compatible = "regulator-poweroff";
|
|
cpu-supply = <®_vcc1v2>;
|
|
};
|
|
|
|
wifi_pwrseq: pwrseq {
|
|
compatible = "mmc-pwrseq-simple";
|
|
reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
|
|
clocks = <&rtc CLK_OSC32K_FANOUT>;
|
|
clock-names = "ext_clock";
|
|
};
|
|
};
|
|
|
|
&cpu0 {
|
|
cpu-supply = <®_vdd_cpux>;
|
|
};
|
|
|
|
&de {
|
|
status = "okay";
|
|
};
|
|
|
|
&ehci0 {
|
|
status = "okay";
|
|
};
|
|
|
|
&hdmi {
|
|
status = "okay";
|
|
};
|
|
|
|
&hdmi_out {
|
|
hdmi_out_con: endpoint {
|
|
remote-endpoint = <&hdmi_con_in>;
|
|
};
|
|
};
|
|
|
|
&mmc0 {
|
|
vmmc-supply = <®_vcc3v3>;
|
|
bus-width = <4>;
|
|
/*
|
|
* On the production batch of this board the card detect GPIO is
|
|
* high active (card inserted), although on the early samples it's
|
|
* low active.
|
|
*/
|
|
cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 */
|
|
status = "okay";
|
|
};
|
|
|
|
&mmc1 {
|
|
vmmc-supply = <®_vcc3v3>;
|
|
vqmmc-supply = <®_vcc3v3>;
|
|
mmc-pwrseq = <&wifi_pwrseq>;
|
|
bus-width = <4>;
|
|
non-removable;
|
|
status = "okay";
|
|
|
|
brcmf: wifi@1 {
|
|
reg = <1>;
|
|
compatible = "brcm,bcm4329-fmac";
|
|
interrupt-parent = <&pio>;
|
|
interrupts = <6 10 IRQ_TYPE_LEVEL_LOW>; /* PG10 / EINT10 */
|
|
interrupt-names = "host-wake";
|
|
};
|
|
};
|
|
|
|
&ohci0 {
|
|
status = "okay";
|
|
};
|
|
|
|
&uart0 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&uart0_pa_pins>;
|
|
status = "okay";
|
|
};
|
|
|
|
&uart1 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
|
|
uart-has-rtscts;
|
|
status = "okay";
|
|
|
|
bluetooth {
|
|
compatible = "brcm,bcm43438-bt";
|
|
max-speed = <1500000>;
|
|
clocks = <&rtc CLK_OSC32K_FANOUT>;
|
|
clock-names = "lpo";
|
|
vbat-supply = <®_vcc3v3>;
|
|
vddio-supply = <®_vcc3v3>;
|
|
device-wakeup-gpios = <&pio 6 13 GPIO_ACTIVE_HIGH>; /* PG13 */
|
|
host-wakeup-gpios = <&pio 6 11 GPIO_ACTIVE_HIGH>; /* PG11 */
|
|
shutdown-gpios = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
|
|
};
|
|
|
|
};
|
|
|
|
&pio {
|
|
gpio-line-names =
|
|
/* PA */
|
|
"CON2-P13", "CON2-P11", "CON2-P22", "CON2-P15",
|
|
"CON3-P03", "CON3-P02", "CON2-P07", "CON2-P29",
|
|
"CON2-P31", "CON2-P33", "CON2-P35", "CON2-P05",
|
|
"CON2-P03", "CON2-P08", "CON2-P10", "CON2-P16",
|
|
"CON2-P12", "CON2-P37", "CON2-P28", "CON2-P27",
|
|
"CON2-P40", "CON2-P38", "", "",
|
|
"", "", "", "", "", "", "", "",
|
|
|
|
/* PB */
|
|
"", "", "", "", "", "", "", "",
|
|
"", "", "", "", "", "", "", "",
|
|
"", "", "", "", "", "", "", "",
|
|
"", "", "", "", "", "", "", "",
|
|
|
|
/* PC */
|
|
"CON2-P19", "CON2-P21", "CON2-P23", "CON2-P24",
|
|
"CON2-P18", "", "", "CON2-P26",
|
|
"", "", "", "", "", "", "", "",
|
|
"", "", "", "", "", "", "", "",
|
|
"", "", "", "", "", "", "", "",
|
|
|
|
/* PD */
|
|
"", "", "", "", "", "", "", "",
|
|
"", "", "", "", "", "", "CSI-PWR-EN", "",
|
|
"", "", "", "", "", "", "", "",
|
|
"", "", "", "", "", "", "", "",
|
|
|
|
/* PE */
|
|
"CN3-P17", "CN3-P13", "CN3-P09", "CN3-P07",
|
|
"CN3-P19", "CN3-P21", "CN3-P22", "CN3-P20",
|
|
"CN3-P18", "CN3-P16", "CN3-P14", "CN3-P12",
|
|
"CN3-P05", "CN3-P03", "CN3-P06", "CN3-P08",
|
|
"", "", "", "", "", "", "", "",
|
|
"", "", "", "", "", "", "", "",
|
|
|
|
/* PF */
|
|
"SDC0-D1", "SDC0-D0", "SDC0-CLK", "SDC0-CMD", "SDC0-D3",
|
|
"SDC0-D2", "SDC0-DET", "",
|
|
"", "", "", "", "", "", "", "",
|
|
"", "", "", "", "", "", "", "",
|
|
"", "", "", "", "", "", "", "",
|
|
|
|
/* PG */
|
|
"WL-SDIO-CLK", "WL-SDIO-CMD", "WL-SDIO-D0", "WL-SDIO-D1",
|
|
"WL-SDIO-D2", "WL-SDIO-D3", "BT-UART-TX", "BT-UART-RX",
|
|
"BT-UART-RTS", "BT-UART-CTS", "WL-WAKE-AP", "BT-WAKE-AP",
|
|
"BT-RST-N", "AP-WAKE-BT", "", "",
|
|
"", "", "", "", "", "", "", "",
|
|
"", "", "", "", "", "", "", "";
|
|
};
|
|
|
|
&r_pio {
|
|
gpio-line-names =
|
|
/* PL */
|
|
"", "CPUX-SET", "CON2-P32", "POWER-KEY", "CON2-P36",
|
|
"VCC-IO-EN", "USB0-ID", "WL-PWR-EN",
|
|
"PWR-STB", "PWR-DRAM", "PWR-LED", "IR-RX", "", "", "", "",
|
|
"", "", "", "", "", "", "", "",
|
|
"", "", "", "", "", "", "", "";
|
|
};
|
|
|
|
&usb_otg {
|
|
dr_mode = "otg";
|
|
status = "okay";
|
|
};
|
|
|
|
&usbphy {
|
|
usb0_id_det-gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */
|
|
/*
|
|
* There're two micro-USB connectors, one is power-only and another is
|
|
* OTG. The Vbus of these two connectors are connected together, so
|
|
* the external USB device will be powered just by the power input
|
|
* from the power-only USB port.
|
|
*/
|
|
status = "okay";
|
|
};
|