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