xref: /linux/arch/arm64/boot/dts/amlogic/meson-gxm-ugoos-am3.dts (revision 115e74a29b530d121891238e9551c4bcdf7b04b5)
1*b33f8cfbSJ. Neuschäfer// SPDX-License-Identifier: GPL-2.0
2*b33f8cfbSJ. Neuschäfer/*
3*b33f8cfbSJ. Neuschäfer * Copyright (C) 2025 J. Neuschäfer <j.ne@posteo.net>
4*b33f8cfbSJ. Neuschäfer *
5*b33f8cfbSJ. Neuschäfer * Debug UART (3.3V, 115200 baud) at the corner of the board:
6*b33f8cfbSJ. Neuschäfer *   (4) (3) (2) [1]
7*b33f8cfbSJ. Neuschäfer *   Vcc RXD TXD GND
8*b33f8cfbSJ. Neuschäfer */
9*b33f8cfbSJ. Neuschäfer
10*b33f8cfbSJ. Neuschäfer/dts-v1/;
11*b33f8cfbSJ. Neuschäfer
12*b33f8cfbSJ. Neuschäfer#include <dt-bindings/input/input.h>
13*b33f8cfbSJ. Neuschäfer#include <dt-bindings/interrupt-controller/amlogic,meson-g12a-gpio-intc.h>
14*b33f8cfbSJ. Neuschäfer
15*b33f8cfbSJ. Neuschäfer#include "meson-gxm.dtsi"
16*b33f8cfbSJ. Neuschäfer#include "meson-gx-p23x-q20x.dtsi"
17*b33f8cfbSJ. Neuschäfer
18*b33f8cfbSJ. Neuschäfer/ {
19*b33f8cfbSJ. Neuschäfer	compatible = "ugoos,am3", "amlogic,s912", "amlogic,meson-gxm";
20*b33f8cfbSJ. Neuschäfer	model = "Ugoos AM3";
21*b33f8cfbSJ. Neuschäfer
22*b33f8cfbSJ. Neuschäfer	adc-keys {
23*b33f8cfbSJ. Neuschäfer		compatible = "adc-keys";
24*b33f8cfbSJ. Neuschäfer		io-channels = <&saradc 0>;
25*b33f8cfbSJ. Neuschäfer		io-channel-names = "buttons";
26*b33f8cfbSJ. Neuschäfer		keyup-threshold-microvolt = <1710000>;
27*b33f8cfbSJ. Neuschäfer
28*b33f8cfbSJ. Neuschäfer		button-function {
29*b33f8cfbSJ. Neuschäfer			label = "Update";
30*b33f8cfbSJ. Neuschäfer			linux,code = <KEY_VENDOR>;
31*b33f8cfbSJ. Neuschäfer			press-threshold-microvolt = <10000>;
32*b33f8cfbSJ. Neuschäfer		};
33*b33f8cfbSJ. Neuschäfer	};
34*b33f8cfbSJ. Neuschäfer};
35*b33f8cfbSJ. Neuschäfer
36*b33f8cfbSJ. Neuschäfer&cvbs_connector {
37*b33f8cfbSJ. Neuschäfer	/* Not used on this board */
38*b33f8cfbSJ. Neuschäfer	status = "disabled";
39*b33f8cfbSJ. Neuschäfer};
40*b33f8cfbSJ. Neuschäfer
41*b33f8cfbSJ. Neuschäfer&ethmac {
42*b33f8cfbSJ. Neuschäfer	pinctrl-0 = <&eth_pins>;
43*b33f8cfbSJ. Neuschäfer	pinctrl-names = "default";
44*b33f8cfbSJ. Neuschäfer
45*b33f8cfbSJ. Neuschäfer	/* Select external PHY by default */
46*b33f8cfbSJ. Neuschäfer	phy-handle = <&external_phy>;
47*b33f8cfbSJ. Neuschäfer
48*b33f8cfbSJ. Neuschäfer	amlogic,tx-delay-ns = <2>;
49*b33f8cfbSJ. Neuschäfer
50*b33f8cfbSJ. Neuschäfer	/* External PHY is in RGMII */
51*b33f8cfbSJ. Neuschäfer	phy-mode = "rgmii";
52*b33f8cfbSJ. Neuschäfer
53*b33f8cfbSJ. Neuschäfer	status = "okay";
54*b33f8cfbSJ. Neuschäfer};
55*b33f8cfbSJ. Neuschäfer
56*b33f8cfbSJ. Neuschäfer&external_mdio {
57*b33f8cfbSJ. Neuschäfer	external_phy: ethernet-phy@0 {
58*b33f8cfbSJ. Neuschäfer		/* Realtek RTL8211F (0x001cc916) */
59*b33f8cfbSJ. Neuschäfer		reg = <0>;
60*b33f8cfbSJ. Neuschäfer
61*b33f8cfbSJ. Neuschäfer		reset-assert-us = <10000>;
62*b33f8cfbSJ. Neuschäfer		reset-deassert-us = <80000>;
63*b33f8cfbSJ. Neuschäfer		reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
64*b33f8cfbSJ. Neuschäfer
65*b33f8cfbSJ. Neuschäfer		interrupt-parent = <&gpio_intc>;
66*b33f8cfbSJ. Neuschäfer		/* MAC_INTR on GPIOZ_15 */
67*b33f8cfbSJ. Neuschäfer		interrupts = <25 IRQ_TYPE_LEVEL_LOW>;
68*b33f8cfbSJ. Neuschäfer	};
69*b33f8cfbSJ. Neuschäfer};
70*b33f8cfbSJ. Neuschäfer
71*b33f8cfbSJ. Neuschäfer&i2c_B {
72*b33f8cfbSJ. Neuschäfer	status = "okay";
73*b33f8cfbSJ. Neuschäfer	pinctrl-names = "default";
74*b33f8cfbSJ. Neuschäfer	pinctrl-0 = <&i2c_b_pins>;
75*b33f8cfbSJ. Neuschäfer
76*b33f8cfbSJ. Neuschäfer	rtc: rtc@51 {
77*b33f8cfbSJ. Neuschäfer		compatible = "haoyu,hym8563";
78*b33f8cfbSJ. Neuschäfer		reg = <0x51>;
79*b33f8cfbSJ. Neuschäfer		#clock-cells = <0>;
80*b33f8cfbSJ. Neuschäfer	};
81*b33f8cfbSJ. Neuschäfer};
82*b33f8cfbSJ. Neuschäfer
83*b33f8cfbSJ. Neuschäfer/* WLAN: Atheros 10k (QCA9377) */
84*b33f8cfbSJ. Neuschäfer&sd_emmc_a {
85*b33f8cfbSJ. Neuschäfer	max-frequency = <200000000>;
86*b33f8cfbSJ. Neuschäfer};
87*b33f8cfbSJ. Neuschäfer
88*b33f8cfbSJ. Neuschäfer/* eMMC */
89*b33f8cfbSJ. Neuschäfer&sd_emmc_c {
90*b33f8cfbSJ. Neuschäfer	max-frequency = <100000000>;
91*b33f8cfbSJ. Neuschäfer};
92