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