1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Author: Christian Hewitt <christianshewitt@gmail.com>
4 */
5
6/dts-v1/;
7
8#include "meson-gxl-s905d.dtsi"
9#include "meson-gx-p23x-q20x.dtsi"
10#include <dt-bindings/input/input.h>
11#include <dt-bindings/leds/common.h>
12
13/ {
14	compatible = "osmc,vero4k-plus", "amlogic,s905d", "amlogic,meson-gxl";
15	model = "OSMC Vero 4K Plus";
16
17	gpio-keys-polled {
18		compatible = "gpio-keys-polled";
19		poll-interval = <20>;
20
21		button {
22			label = "power";
23			linux,code = <KEY_POWER>;
24			gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>;
25		};
26	};
27
28	leds {
29		compatible = "gpio-leds";
30
31		led-standby {
32			color = <LED_COLOR_ID_RED>;
33			function = LED_FUNCTION_POWER;
34			gpios = <&gpio_ao GPIOAO_9 GPIO_ACTIVE_LOW>;
35			default-state = "off";
36			panic-indicator;
37		};
38	};
39};
40
41&ethmac {
42	pinctrl-0 = <&eth_pins>;
43	pinctrl-names = "default";
44
45	phy-mode = "rgmii-txid";
46	phy-handle = <&external_phy>;
47
48	amlogic,tx-delay-ns = <0>;
49};
50
51&external_mdio {
52	external_phy: ethernet-phy@0 {
53		/* Realtek RTL8211F (0x001cc916) */
54		pinctrl-0 = <&eth_phy_irq_pin>;
55		pinctrl-names = "default";
56
57		reg = <0>;
58		max-speed = <1000>;
59
60		reset-assert-us = <10000>;
61		reset-deassert-us = <80000>;
62		reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
63
64		interrupt-parent = <&gpio_intc>;
65		interrupts = <25 IRQ_TYPE_LEVEL_LOW>;
66	};
67};
68
69&pinctrl_periphs {
70	/* Ensure the phy irq pin is properly configured as input */
71	eth_phy_irq_pin: eth-phy-irq {
72		mux {
73			groups = "GPIOZ_15";
74			function = "gpio_periphs";
75			bias-disable;
76			output-disable;
77		};
78	};
79};
80
81&sd_emmc_a {
82	brcmf: wifi@1 {
83		reg = <1>;
84		compatible = "brcm,bcm4329-fmac";
85	};
86};
87
88&uart_A {
89	status = "okay";
90	pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
91	pinctrl-names = "default";
92	uart-has-rtscts;
93
94	bluetooth {
95		compatible = "brcm,bcm43438-bt";
96		shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
97		max-speed = <2000000>;
98		clocks = <&wifi32k>;
99		clock-names = "lpo";
100	};
101};
102
103&usb {
104	dr_mode = "host";
105};
106
107&usb2_phy0 {
108	/* HDMI_5V also supplies the USB VBUS */
109	phy-supply = <&hdmi_5v>;
110};
111
112&usb2_phy0 {
113	/* HDMI_5V also supplies the USB VBUS */
114	phy-supply = <&hdmi_5v>;
115};
116