xref: /freebsd/sys/contrib/device-tree/src/arm/gemini/gemini-rut1xx.dts (revision 397e83df75e0fcd0d3fcb95ae4d794cb7600fc89)
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Device Tree file for Teltonika RUT1xx
4 */
5
6/dts-v1/;
7
8#include "gemini.dtsi"
9#include <dt-bindings/input/input.h>
10
11/ {
12	model = "Teltonika RUT1xx";
13	compatible = "teltonika,rut1xx", "cortina,gemini";
14	#address-cells = <1>;
15	#size-cells = <1>;
16
17	memory@0 { /* 128 MB */
18		device_type = "memory";
19		reg = <0x00000000 0x8000000>;
20	};
21
22	chosen {
23		bootargs = "console=ttyS0,115200n8";
24		stdout-path = &uart0;
25	};
26
27	gpio_keys {
28		compatible = "gpio-keys";
29
30		button-setup {
31			debounce-interval = <100>;
32			wakeup-source;
33			linux,code = <KEY_SETUP>;
34			label = "Reset to defaults";
35			/* Conflict with TVC */
36			gpios = <&gpio1 28 GPIO_ACTIVE_LOW>;
37		};
38	};
39
40	leds {
41		compatible = "gpio-leds";
42		led-gsm {
43			/* FIXME: add the LED color */
44			label = "rut1xx::gsm";
45			/* Conflict with ICE */
46			gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
47			default-state = "on";
48		};
49		led-power {
50			/* FIXME: add the LED color */
51			label = "rut1xx::power";
52			/* Conflict with NAND CE0 */
53			gpios = <&gpio0 17 GPIO_ACTIVE_HIGH>;
54			default-state = "off";
55			linux,default-trigger = "heartbeat";
56		};
57	};
58
59	mdio0: mdio {
60		compatible = "virtual,mdio-gpio";
61		gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>, /* MDC */
62			<&gpio0 21 GPIO_ACTIVE_HIGH>; /* MDIO */
63		#address-cells = <1>;
64		#size-cells = <0>;
65
66		phy0: ethernet-phy@1 {
67			reg = <1>;
68			device_type = "ethernet-phy";
69		};
70	};
71
72	soc {
73		flash@30000000 {
74			status = "okay";
75			/* 8MB of flash */
76			reg = <0x30000000 0x00800000>;
77			/* TODO: add flash partitions here */
78		};
79
80		syscon: syscon@40000000 {
81			pinctrl {
82				/*
83				 * gpio0bgrp cover line 7 used by GSM LED
84				 * gpio0fgrp cover line 17 used by power LED
85				 */
86				gpio0_default_pins: pinctrl-gpio0 {
87					mux {
88						function = "gpio0";
89						groups = "gpio0bgrp",
90						"gpio0fgrp";
91					};
92				};
93				/*
94				 * gpio1dgrp cover line 28-31 otherwise used
95				 * by TVC.
96				 */
97				gpio1_default_pins: pinctrl-gpio1 {
98					mux {
99						function = "gpio1";
100						groups = "gpio1dgrp";
101					};
102				};
103			};
104		};
105
106		gpio0: gpio@4d000000 {
107			pinctrl-names = "default";
108			pinctrl-0 = <&gpio0_default_pins>;
109		};
110
111		gpio1: gpio@4e000000 {
112			pinctrl-names = "default";
113			pinctrl-0 = <&gpio1_default_pins>;
114		};
115
116		ethernet@60000000 {
117			status = "okay";
118
119			ethernet-port@0 {
120				phy-mode = "rgmii";
121				phy-handle = <&phy0>;
122			};
123			ethernet-port@1 {
124				/* Not used in this platform */
125			};
126		};
127
128		usb@68000000 {
129			status = "okay";
130		};
131
132		usb@69000000 {
133			status = "okay";
134		};
135	};
136};
137