// SPDX-License-Identifier: GPL-2.0-or-later OR MIT /dts-v1/; #include #include #include "ar9344.dtsi" / { model = "Teltonika RUT955"; compatible = "teltonika,rut955", "qca,ar9344"; aliases { serial0 = &uart; serial1 = &hs_uart; led-boot = &led_system_green; led-failsafe = &led_system_red; led-running = &led_system_green; led-upgrade = &led_system_red; label-mac-device = ð1; }; i2c { compatible = "i2c-gpio"; scl-gpios = <&gpio 16 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; sda-gpios = <&gpio 17 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; #address-cells = <1>; #size-cells = <0>; hwmon@4d { compatible = "microchip,mcp3221"; reg = <0x4d>; }; }; leds { compatible = "gpio-leds"; signal1 { label = "rut955:green:signal1"; gpios = <&gpio_ext 0 GPIO_ACTIVE_HIGH>; }; signal2 { label = "rut955:green:signal2"; gpios = <&gpio_ext 1 GPIO_ACTIVE_HIGH>; }; signal3 { label = "rut955:green:signal3"; gpios = <&gpio_ext 2 GPIO_ACTIVE_HIGH>; }; signal4 { label = "rut955:green:signal4"; gpios = <&gpio_ext 3 GPIO_ACTIVE_HIGH>; }; signal5 { label = "rut955:green:signal5"; gpios = <&gpio_ext 4 GPIO_ACTIVE_HIGH>; }; led_system_red: system_red { label = "rut955:red:system"; gpios = <&gpio_ext 5 GPIO_ACTIVE_HIGH>; }; led_system_green: system_green { label = "rut955:green:system"; gpios = <&gpio_ext 6 GPIO_ACTIVE_HIGH>; default-state = "on"; }; }; keys { compatible = "gpio-keys"; reset { label = "reset"; linux,code = ; gpios = <&gpio 15 GPIO_ACTIVE_LOW>; debounce-interval = <60>; }; }; }; &gpio { pinctrl-names = "default"; pinctrl-0 = <&jtag_disable_pins>; gpio-line-names = "RS485_D", "led_wan", "DIN3", "mmc_cs", "ext_sck", "", "", "", "", "", "", "", "ext_mosi", "led_lan2", "led_lan1", "", "i2c_scl", "i2c_sda", "", "DIN2", "ext_cs", "DIN1", "led_lan3", "", "", "", "", "", "", "", "", ""; ext_sck { gpio-hog; gpios = <4 GPIO_ACTIVE_HIGH>; output-high; line-name = "rut955:ext:sck"; }; ext_mosi { gpio-hog; gpios = <12 GPIO_ACTIVE_HIGH>; output-high; line-name = "rut955:ext:mosi"; }; ext_cs { gpio-hog; gpios = <20 GPIO_ACTIVE_HIGH>; output-low; line-name = "rut955:ext:cs"; }; mmc_cs { gpio-hog; gpios = <3 GPIO_ACTIVE_HIGH>; output-high; line-name = "rut955:mmc:cs"; }; uart1_td { gpio-hog; gpios = <18 GPIO_ACTIVE_HIGH>; output-high; line-name = "rut955:uart1:td"; }; uart1_rd { gpio-hog; gpios = <11 GPIO_ACTIVE_LOW>; input; line-name = "rut955:uart1:rd"; }; led_wan { gpio-hog; gpios = <1 GPIO_ACTIVE_HIGH>; output-high; line-name = "rut955:led:wan"; }; led_lan2 { gpio-hog; gpios = <13 GPIO_ACTIVE_HIGH>; output-high; line-name = "rut955:led:lan2"; }; led_lan1 { gpio-hog; gpios = <14 GPIO_ACTIVE_HIGH>; output-high; line-name = "rut955:led:lan1"; }; led_lan3 { gpio-hog; gpios = <22 GPIO_ACTIVE_HIGH>; output-high; line-name = "rut955:led:lan3"; }; }; &ref { clock-frequency = <40000000>; }; &uart { status = "okay"; }; &hs_uart { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&pmx_uart2>; rts-gpios = <&gpio 0 GPIO_ACTIVE_HIGH>; rs485-rts-active-low; linux,rs485-enabled-at-boot-time; }; &spi { status = "okay"; num-cs = <3>; pinctrl-names = "default"; pinctrl-0 = <&pmx_spi>; flash@0 { compatible = "jedec,spi-nor"; reg = <0>; spi-max-frequency = <25000000>; partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; partition@0 { label = "u-boot"; reg = <0x0 0x20000>; read-only; }; config: partition@20000 { label = "config"; reg = <0x20000 0x10000>; read-only; }; art: partition@30000 { label = "art"; reg = <0x30000 0x10000>; read-only; }; partition@40000 { label = "firmware"; reg = <0x40000 0xf30000>; compatible = "tplink,firmware"; }; partition@f70000 { label = "event-log"; reg = <0xf70000 0x90000>; read-only; }; }; }; microsd@1 { status = "disabled"; compatible = "mmc-spi-slot"; spi-max-frequency = <25000000>; reg = <1>; voltage-ranges = <3200 3400>; broken-cd; }; gpio_ext: gpio_ext@2 { compatible = "fairchild,74hc595"; reg = <2>; gpio-controller; #gpio-cells = <2>; registers-number = <2>; spi-max-frequency = <10000000>; gpio-line-names = "led_signal_bar1", "led_signal_bar2", "led_signal_bar3", "led_signal_bar4", "led_signal_bar5", "led_status_red", "led_status_green", "sim_sel", "DOUT1", "DOUT2", "modem_vbus", "modem_rst", "DOUT3", "RS485_R", "SDCS", "HWRST"; }; }; &usb { #address-cells = <1>; #size-cells = <0>; status = "okay"; port@1 { #address-cells = <1>; #size-cells = <0>; reg = <1>; port@1 { compatible = "usb-a-connector"; reg = <1>; }; port@3 { label = "RS-232 serial adapter"; reg = <3>; }; port@4 { label = "internal wwan modem"; reg = <4>; }; }; }; &usb_phy { status = "okay"; }; &wmac { status = "okay"; mtd-cal-data = <&art 0x1000>; mtd-mac-address = <&config 0x0>; mtd-mac-address-increment = <2>; }; ð0 { status = "okay"; phy-handle = <&swphy4>; mtd-mac-address = <&config 0x0>; mtd-mac-address-increment = <1>; }; ð1 { status = "okay"; mtd-mac-address = <&config 0x0>; }; &builtin_switch { pinctrl-names = "default"; pinctrl-0 = <&pmx_leds_switch>; }; &pinmux { pmx_spi: spi { // SPI_CS1 on GPIO 3, 2nd SCK on GPIO 4 // 2nd MOSI on GPIO 12, SPI_CS2 on GPIO 20 pinctrl-single,bits = <0x0 0x07000000 0xff000000>, <0x4 0x0a 0xff>, <0xc 0x0b 0xff>, <0x14 0x08 0xff>; }; pmx_leds_switch: leds_switch { // switch port LEDs on GPIO 1, GPIO 13, GPIO 14 and GPIO 22 pinctrl-single,bits = <0x0 0x00002d00 0x0000ff00>, <0xc 0x002c2b00 0x00ffff00>, <0x14 0x002a0000 0x00ff0000>; }; pmx_uart2: uart2 { // UART1_DTR on GPIO 0, UART1_RD on GPIO 11, UART1_TD on GPIO 18 pinctrl-single,bits = <0x0 0x0 0xff>, <0x10 0x4f000000 0xff000000>, <0x3c 0x000b0000 0x00ff0000>; }; };