aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ipq40xx/files/arch/arm
diff options
context:
space:
mode:
authorDavid Bauer <mail@david-bauer.net>2023-05-06 16:57:18 +0200
committerDavid Bauer <mail@david-bauer.net>2023-07-26 15:37:56 +0200
commit897d55bcdf864f4d40cf50396b963ca240bbc1fc (patch)
treefe6d0a15209ffbece1ac19751d21aece815fe644 /target/linux/ipq40xx/files/arch/arm
parent1face854a2fd8c79fc568877068cf9c608a6360e (diff)
downloadupstream-897d55bcdf864f4d40cf50396b963ca240bbc1fc.tar.gz
upstream-897d55bcdf864f4d40cf50396b963ca240bbc1fc.tar.bz2
upstream-897d55bcdf864f4d40cf50396b963ca240bbc1fc.zip
ipq40xx: add support for Teltonika RUTX50
Hardware -------- CPU: Qualcomm IPQ4018 RAM: 256M Flash: 16MB SPI-NOR (W25Q128) 128MB SPI-NAND (XTX) WiFi: 2T2R (2GHz 802.11n ; 5 GHz 802.11ac) ETH: 4x LAN ; 1x WAN (Gigabit) CELL: Quectel RG501Q 3G/4G/5G UART: Available on the goldfinger connector (Pinout silkscreened) 115200 8N1 3V3 - Only connect RX / TX / GND Installation ------------ 1. Enable SSH in the Teltonika UI (System --> Administration --> Access Control) 2. Check from which partition set the device is currently running from. $ cat /proc/boot_info/rootfs/primaryboot In case this output reads 0, install a Software update from Teltonika first. After upgrade completion, check this file now reads 1 before continuing. 2. Transfer the OpenWrt factory image to the device using scp. Use the same password (user root!) as used for the Web-UI. $ scp -O openwrt-factory.bin root@192.168.1.1:/tmp 3. Connect to the device using ssh as the root user. 4. Install OpenWrt by writing the factory image to flash. $ ubiformat /dev/mtd16 -y -f /tmp/openwrt-factory.bin 5. Instruct the bootloaer to boot from the first partition set. $ echo 0 > /proc/boot_info/rootfs/primaryboot $ cat /proc/boot_info/getbinary_bootconfig > /tmp/bootconfig.bin $ cat /proc/boot_info/getbinary_bootconfig1 > /tmp/bootconfig1.bin $ mtd write /tmp/bootconfig.bin /dev/mtd2 $ mtd write /tmp/bootconfig1.bin /dev/mtd3 6. Reboot the device. $ reboot Signed-off-by: David Bauer <mail@david-bauer.net> (cherry picked from commit 844bb4bfad84cc6267f9b138d1f63b07ed3b77d0)
Diffstat (limited to 'target/linux/ipq40xx/files/arch/arm')
-rw-r--r--target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-rutx50.dts181
1 files changed, 181 insertions, 0 deletions
diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-rutx50.dts b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-rutx50.dts
new file mode 100644
index 0000000000..ea2102f7d6
--- /dev/null
+++ b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-rutx50.dts
@@ -0,0 +1,181 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "qcom-ipq4018-rutx.dtsi"
+
+/ {
+ model = "Teltonika RUTX50";
+ compatible = "teltonika,rutx50";
+
+ aliases {
+ led-boot = &led_rssi0;
+ led-failsafe = &led_rssi0;
+ led-running = &led_rssi0;
+ led-upgrade = &led_rssi0;
+ label-mac-device = &gmac;
+ };
+
+ soc {
+ gpio-export {
+ compatible = "gpio-export";
+ #size-cells = <0>;
+
+ gpio_modem_reset {
+ gpio-export,name = "modem_reset";
+ gpio-export,output = <0>;
+ gpios = <&shift_io 8 GPIO_ACTIVE_HIGH>;
+ };
+
+ gpio_modem_power {
+ gpio-export,name = "modem_power";
+ gpio-export,output = <0>;
+ gpios = <&shift_io 9 GPIO_ACTIVE_HIGH>;
+ };
+
+ gpio_out_1 {
+ gpio-export,name = "sim-select";
+ /* 0 = SIM1 ; 1 = SIM2 */
+ gpio-export,output = <0>;
+ gpios = <&shift_io 10 GPIO_ACTIVE_HIGH>;
+ };
+
+ gpio_in_1 {
+ gpio-export,name = "sim-detect";
+ gpio-export,input = <0>;
+ gpios = <&tlmm 0 GPIO_ACTIVE_HIGH>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ led-0 {
+ label = "green:sim1";
+ gpios = <&shift_io 14 GPIO_ACTIVE_HIGH>;
+ };
+
+ led-1 {
+ label = "green:sim2";
+ gpios = <&shift_io 15 GPIO_ACTIVE_HIGH>;
+ };
+
+ led-2 {
+ label = "green:eth";
+ gpios = <&shift_io 6 GPIO_ACTIVE_HIGH>;
+ };
+
+ led-3 {
+ label = "green:wifi";
+ gpios = <&shift_io 7 GPIO_ACTIVE_HIGH>;
+ };
+
+ led-4 {
+ label = "green:3g";
+ gpios = <&shift_io 5 GPIO_ACTIVE_HIGH>;
+ };
+
+ led-5 {
+ label = "green:4g";
+ gpios = <&shift_io 4 GPIO_ACTIVE_HIGH>;
+ };
+
+ led-6 {
+ label = "green:5g";
+ gpios = <&shift_io 3 GPIO_ACTIVE_HIGH>;
+ };
+
+ led_rssi0: led-7 {
+ label = "green:rssi0";
+ gpios = <&shift_io 0 GPIO_ACTIVE_HIGH>;
+ };
+
+ led-8 {
+ label = "green:rssi1";
+ gpios = <&shift_io 1 GPIO_ACTIVE_HIGH>;
+ };
+
+ led-9 {
+ label = "green:rssi2";
+ gpios = <&shift_io 2 GPIO_ACTIVE_HIGH>;
+ };
+
+ led-10 {
+ label = "green:wifi2g";
+ gpios = <&shift_io 12 GPIO_ACTIVE_HIGH>;
+ };
+
+ led-11 {
+ label = "green:wifi5g";
+ gpios = <&shift_io 13 GPIO_ACTIVE_HIGH>;
+ };
+ };
+
+ spi-gpio {
+ compatible = "spi-gpio";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ gpio-sck = <&tlmm 1 GPIO_ACTIVE_HIGH>;
+ gpio-mosi = <&tlmm 3 GPIO_ACTIVE_HIGH>;
+ cs-gpios = <&tlmm 2 GPIO_ACTIVE_HIGH>;
+ num-chipselects = <1>;
+
+ shift_io: shift_io@0 {
+ compatible = "fairchild,74hc595";
+ reg = <0>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ /* Attn: This is specific to RUTX50 in Teltonika GPL */
+ registers-number = <2>;
+ spi-max-frequency = <10000000>;
+ };
+ };
+ };
+};
+
+&wifi0 {
+ status = "okay";
+ qcom,ath10k-calibration-variant = "Teltonika-RUTX10";
+};
+
+&wifi1 {
+ status = "okay";
+ qcom,ath10k-calibration-variant = "Teltonika-RUTX10";
+};
+
+&gmac {
+ status = "okay";
+};
+
+&switch {
+ status = "okay";
+};
+
+&swport1 {
+ status = "okay";
+
+ label = "lan1";
+};
+
+&swport2 {
+ status = "okay";
+
+ label = "lan2";
+};
+
+&swport3 {
+ status = "okay";
+
+ label = "lan3";
+};
+
+&swport4 {
+ status = "okay";
+
+ label = "lan4";
+};
+
+&swport5 {
+ status = "okay";
+
+ label = "wan";
+};