mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00

Underscores should not be used in node names (dtc with W=2 warns about them), so replace them with hyphens. Use also generic name for pwrseq node, because generic naming is favored by Devicetree spec. All the clocks affected by this change use clock-output-names, so resulting clock name should not change. Functional impact checked with comparing before/after DTBs with dtx_diff and fdtdump. Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com> Link: https://lore.kernel.org/r/20240317184130.157695-4-krzysztof.kozlowski@linaro.org Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.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";
|
|
};
|