1727d93edSChristian Hewitt// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2727d93edSChristian Hewitt
3727d93edSChristian Hewitt/*
4727d93edSChristian Hewitt * Author: Christian Hewitt <christianshewitt@gmail.com>
5727d93edSChristian Hewitt */
6727d93edSChristian Hewitt
7727d93edSChristian Hewitt/dts-v1/;
8727d93edSChristian Hewitt
9727d93edSChristian Hewitt#include "meson-gxm.dtsi"
10727d93edSChristian Hewitt#include "meson-gx-p23x-q20x.dtsi"
11727d93edSChristian Hewitt#include <dt-bindings/input/input.h>
12727d93edSChristian Hewitt#include <dt-bindings/leds/common.h>
13727d93edSChristian Hewitt
14727d93edSChristian Hewitt/ {
15727d93edSChristian Hewitt	compatible = "videostrong,gxm-kiii-pro", "amlogic,s912", "amlogic,meson-gxm";
16727d93edSChristian Hewitt	model = "MeCool KIII Pro";
17727d93edSChristian Hewitt
18727d93edSChristian Hewitt	memory@0 {
19727d93edSChristian Hewitt		device_type = "memory";
20727d93edSChristian Hewitt		reg = <0x0 0x0 0x0 0xC0000000>;
21727d93edSChristian Hewitt	};
22727d93edSChristian Hewitt
23727d93edSChristian Hewitt	adc-keys {
24727d93edSChristian Hewitt		compatible = "adc-keys";
25727d93edSChristian Hewitt		io-channels = <&saradc 0>;
26727d93edSChristian Hewitt		io-channel-names = "buttons";
27727d93edSChristian Hewitt		keyup-threshold-microvolt = <1710000>;
28727d93edSChristian Hewitt
29727d93edSChristian Hewitt		button-function {
30727d93edSChristian Hewitt			label = "Update";
31727d93edSChristian Hewitt			linux,code = <KEY_VENDOR>;
32727d93edSChristian Hewitt			press-threshold-microvolt = <10000>;
33727d93edSChristian Hewitt		};
34727d93edSChristian Hewitt	};
35727d93edSChristian Hewitt
36727d93edSChristian Hewitt	gpio-keys-polled {
37727d93edSChristian Hewitt		compatible = "gpio-keys-polled";
38727d93edSChristian Hewitt		poll-interval = <100>;
39727d93edSChristian Hewitt
40*4956be99SKrzysztof Kozlowski		button {
41727d93edSChristian Hewitt			label = "power";
42727d93edSChristian Hewitt			linux,code = <KEY_POWER>;
43727d93edSChristian Hewitt			gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>;
44727d93edSChristian Hewitt		};
45727d93edSChristian Hewitt	};
46727d93edSChristian Hewitt
47727d93edSChristian Hewitt	leds {
48727d93edSChristian Hewitt		compatible = "gpio-leds";
49727d93edSChristian Hewitt
50d9421d6cSKevin Hilman		led-blue {
51727d93edSChristian Hewitt			color = <LED_COLOR_ID_BLUE>;
52727d93edSChristian Hewitt			function = LED_FUNCTION_POWER;
53727d93edSChristian Hewitt			gpios = <&gpio GPIODV_24 GPIO_ACTIVE_HIGH>;
54727d93edSChristian Hewitt			default-state = "on";
55727d93edSChristian Hewitt			panic-indicator;
56727d93edSChristian Hewitt		};
57727d93edSChristian Hewitt	};
58727d93edSChristian Hewitt};
59727d93edSChristian Hewitt
60727d93edSChristian Hewitt&ethmac {
61727d93edSChristian Hewitt	pinctrl-0 = <&eth_pins>;
62727d93edSChristian Hewitt	pinctrl-names = "default";
63727d93edSChristian Hewitt
64727d93edSChristian Hewitt	phy-handle = <&external_phy>;
65727d93edSChristian Hewitt
66727d93edSChristian Hewitt	amlogic,tx-delay-ns = <2>;
67727d93edSChristian Hewitt
68727d93edSChristian Hewitt	phy-mode = "rgmii";
69727d93edSChristian Hewitt};
70727d93edSChristian Hewitt
71727d93edSChristian Hewitt&external_mdio {
72727d93edSChristian Hewitt	external_phy: ethernet-phy@0 {
73727d93edSChristian Hewitt		/* Realtek RTL8211F (0x001cc916) */
74727d93edSChristian Hewitt		reg = <0>;
75727d93edSChristian Hewitt		max-speed = <1000>;
76727d93edSChristian Hewitt
77727d93edSChristian Hewitt		reset-assert-us = <10000>;
78727d93edSChristian Hewitt		reset-deassert-us = <80000>;
79727d93edSChristian Hewitt		reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
80727d93edSChristian Hewitt
81727d93edSChristian Hewitt		interrupt-parent = <&gpio_intc>;
82727d93edSChristian Hewitt		/* MAC_INTR on GPIOZ_15 */
83727d93edSChristian Hewitt		interrupts = <25 IRQ_TYPE_LEVEL_LOW>;
84727d93edSChristian Hewitt	};
85727d93edSChristian Hewitt};
86727d93edSChristian Hewitt
87727d93edSChristian Hewitt&ir {
88727d93edSChristian Hewitt	linux,rc-map-name = "rc-mecool-kiii-pro";
89727d93edSChristian Hewitt};
90727d93edSChristian Hewitt
91727d93edSChristian Hewitt&sd_emmc_a {
92727d93edSChristian Hewitt	brcmf: wifi@1 {
93727d93edSChristian Hewitt		reg = <1>;
94727d93edSChristian Hewitt		compatible = "brcm,bcm4329-fmac";
95727d93edSChristian Hewitt	};
96727d93edSChristian Hewitt};
97727d93edSChristian Hewitt
98727d93edSChristian Hewitt&uart_A {
99727d93edSChristian Hewitt	status = "okay";
100727d93edSChristian Hewitt	pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
101727d93edSChristian Hewitt	pinctrl-names = "default";
102727d93edSChristian Hewitt	uart-has-rtscts;
103727d93edSChristian Hewitt
104727d93edSChristian Hewitt	bluetooth {
105727d93edSChristian Hewitt		compatible = "brcm,bcm43438-bt";
106727d93edSChristian Hewitt		shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
107727d93edSChristian Hewitt		max-speed = <2000000>;
108727d93edSChristian Hewitt		clocks = <&wifi32k>;
109727d93edSChristian Hewitt		clock-names = "lpo";
110727d93edSChristian Hewitt	};
111727d93edSChristian Hewitt};
112