Linux 6.7-rc7
[linux-modified.git] / arch / arm64 / boot / dts / amlogic / meson-gxl-s905d-vero4k-plus.dts
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 };