1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2
3/*
4 * Author: Christian Hewitt <christianshewitt@gmail.com>
5 */
6
7/dts-v1/;
8
9#include "meson-gxm.dtsi"
10#include "meson-gx-p23x-q20x.dtsi"
11#include <dt-bindings/input/input.h>
12#include <dt-bindings/leds/common.h>
13
14/ {
15	compatible = "videostrong,gxm-kiii-pro", "amlogic,s912", "amlogic,meson-gxm";
16	model = "MeCool KIII Pro";
17
18	memory@0 {
19		device_type = "memory";
20		reg = <0x0 0x0 0x0 0xC0000000>;
21	};
22
23	adc-keys {
24		compatible = "adc-keys";
25		io-channels = <&saradc 0>;
26		io-channel-names = "buttons";
27		keyup-threshold-microvolt = <1710000>;
28
29		button-function {
30			label = "Update";
31			linux,code = <KEY_VENDOR>;
32			press-threshold-microvolt = <10000>;
33		};
34	};
35
36	gpio-keys-polled {
37		compatible = "gpio-keys-polled";
38		#address-cells = <1>;
39		#size-cells = <0>;
40		poll-interval = <100>;
41
42		button@0 {
43			label = "power";
44			linux,code = <KEY_POWER>;
45			gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>;
46		};
47	};
48
49	leds {
50		compatible = "gpio-leds";
51
52		led-blue {
53			color = <LED_COLOR_ID_BLUE>;
54			function = LED_FUNCTION_POWER;
55			gpios = <&gpio GPIODV_24 GPIO_ACTIVE_HIGH>;
56			default-state = "on";
57			panic-indicator;
58		};
59	};
60};
61
62&ethmac {
63	pinctrl-0 = <&eth_pins>;
64	pinctrl-names = "default";
65
66	phy-handle = <&external_phy>;
67
68	amlogic,tx-delay-ns = <2>;
69
70	phy-mode = "rgmii";
71};
72
73&external_mdio {
74	external_phy: ethernet-phy@0 {
75		/* Realtek RTL8211F (0x001cc916) */
76		reg = <0>;
77		max-speed = <1000>;
78
79		reset-assert-us = <10000>;
80		reset-deassert-us = <80000>;
81		reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
82
83		interrupt-parent = <&gpio_intc>;
84		/* MAC_INTR on GPIOZ_15 */
85		interrupts = <25 IRQ_TYPE_LEVEL_LOW>;
86	};
87};
88
89&ir {
90	linux,rc-map-name = "rc-mecool-kiii-pro";
91};
92
93&sd_emmc_a {
94	brcmf: wifi@1 {
95		reg = <1>;
96		compatible = "brcm,bcm4329-fmac";
97	};
98};
99
100&uart_A {
101	status = "okay";
102	pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
103	pinctrl-names = "default";
104	uart-has-rtscts;
105
106	bluetooth {
107		compatible = "brcm,bcm43438-bt";
108		shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
109		max-speed = <2000000>;
110		clocks = <&wifi32k>;
111		clock-names = "lpo";
112	};
113};
114