mirror of
https://github.com/Ysurac/openmptcprouter.git
synced 2025-03-09 15:40:20 +00:00
Merge branch 'test' into develop
This commit is contained in:
commit
1a7fd295b6
22 changed files with 1028 additions and 5 deletions
2
.github/ISSUE_TEMPLATE/help.md
vendored
2
.github/ISSUE_TEMPLATE/help.md
vendored
|
@ -21,4 +21,4 @@ labels: help wanted
|
||||||
- OpenMPTCProuter VPS provider:
|
- OpenMPTCProuter VPS provider:
|
||||||
- OpenMPTCProuter platform: <!--- (RPI2/RPI3/x86/x86_64) -->
|
- OpenMPTCProuter platform: <!--- (RPI2/RPI3/x86/x86_64) -->
|
||||||
|
|
||||||
<!--- (please do not attach text files) -->
|
<!--- (please do not attach text files, use pastebin or paste in issue) -->
|
2
.github/ISSUE_TEMPLATE/issue.md
vendored
2
.github/ISSUE_TEMPLATE/issue.md
vendored
|
@ -39,4 +39,4 @@ labels: bug
|
||||||
- OpenMPTCProuter platform: <!--- (RPI2/RPI3/x86/x86_64) -->
|
- OpenMPTCProuter platform: <!--- (RPI2/RPI3/x86/x86_64) -->
|
||||||
- Country: <!--- Some ISP have restrictions in many countries -->
|
- Country: <!--- Some ISP have restrictions in many countries -->
|
||||||
|
|
||||||
<!--- (please do not attach text files) -->
|
<!--- (please do not attach text files, use pastebin or paste in issue) -->
|
||||||
|
|
2
build.sh
2
build.sh
|
@ -72,6 +72,8 @@ elif [ "$OMR_TARGET" = "bpi-r1" ]; then
|
||||||
OMR_REAL_TARGET="arm_cortex-a7_neon-vfpv4"
|
OMR_REAL_TARGET="arm_cortex-a7_neon-vfpv4"
|
||||||
elif [ "$OMR_TARGET" = "bpi-r2" ]; then
|
elif [ "$OMR_TARGET" = "bpi-r2" ]; then
|
||||||
OMR_REAL_TARGET="arm_cortex-a7_neon-vfpv4"
|
OMR_REAL_TARGET="arm_cortex-a7_neon-vfpv4"
|
||||||
|
elif [ "$OMR_TARGET" = "rutx" ]; then
|
||||||
|
OMR_REAL_TARGET="arm_cortex-a7_neon-vfpv4"
|
||||||
elif [ "$OMR_TARGET" = "bpi-r64" ]; then
|
elif [ "$OMR_TARGET" = "bpi-r64" ]; then
|
||||||
OMR_REAL_TARGET="aarch64_cortex-a53"
|
OMR_REAL_TARGET="aarch64_cortex-a53"
|
||||||
elif [ "$OMR_TARGET" = "espressobin" ]; then
|
elif [ "$OMR_TARGET" = "espressobin" ]; then
|
||||||
|
|
13
config-rutx
Normal file
13
config-rutx
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
CONFIG_TARGET_ipq40xx=y
|
||||||
|
CONFIG_TARGET_ipq40xx_generic=y
|
||||||
|
CONFIG_TARGET_ipq40xx_generic_DEVICE_rutx10=y
|
||||||
|
CONFIG_PACKAGE_kmod-6lowpan=y
|
||||||
|
# CONFIG_KERNEL_CC_OPTIMIZE_FOR_PERFORMANCE is not set
|
||||||
|
CONFIG_KERNEL_CC_OPTIMIZE_FOR_SIZE=y
|
||||||
|
CONFIG_PACKAGE_ipq-wifi-teltonika_rutx=y
|
||||||
|
CONFIG_DEFAULT_ath10k-firmware-qca4019-ct=y
|
||||||
|
CONFIG_DEFAULT_kmod-ath10k-ct=y
|
||||||
|
CONFIG_PACKAGE_kmod-ath10k-ct=y
|
||||||
|
CONFIG_ATH10K-CT_LEDS=y
|
||||||
|
CONFIG_PACKAGE_ath10k-firmware-qca4019-ct=y
|
||||||
|
CONFIG_KERNEL_ARM_MODULE_PLTS=y
|
|
@ -51,6 +51,8 @@ ALLWIFIBOARDS:= \
|
||||||
plasmacloud_pa2200 \
|
plasmacloud_pa2200 \
|
||||||
pangu_l1000 \
|
pangu_l1000 \
|
||||||
qxwlan_e2600ac
|
qxwlan_e2600ac
|
||||||
|
qxwlan_e2600ac \
|
||||||
|
teltonika_rutx
|
||||||
|
|
||||||
ALLWIFIPACKAGES:=$(foreach BOARD,$(ALLWIFIBOARDS),ipq-wifi-$(BOARD))
|
ALLWIFIPACKAGES:=$(foreach BOARD,$(ALLWIFIBOARDS),ipq-wifi-$(BOARD))
|
||||||
|
|
||||||
|
@ -136,6 +138,7 @@ $(eval $(call generate-ipq-wifi-package,nec_wg2600hp3,NEC Platforms WG2600HP3))
|
||||||
$(eval $(call generate-ipq-wifi-package,plasmacloud_pa1200,Plasma Cloud PA1200))
|
$(eval $(call generate-ipq-wifi-package,plasmacloud_pa1200,Plasma Cloud PA1200))
|
||||||
$(eval $(call generate-ipq-wifi-package,plasmacloud_pa2200,Plasma Cloud PA2200))
|
$(eval $(call generate-ipq-wifi-package,plasmacloud_pa2200,Plasma Cloud PA2200))
|
||||||
$(eval $(call generate-ipq-wifi-package,pangu_l1000,PANGU L1000))
|
$(eval $(call generate-ipq-wifi-package,pangu_l1000,PANGU L1000))
|
||||||
$(eval $(call generate-ipq-wifi-package,qxwlan_e2600ac,Qxwlan E2600AC))
|
$(eval $(call generate-ipq-wifi-package,p2w_r619ac,P&W R619AC))
|
||||||
|
$(eval $(call generate-ipq-wifi-package,teltonika_rutx,Teltonika RUTX))
|
||||||
|
|
||||||
$(foreach PACKAGE,$(ALLWIFIPACKAGES),$(eval $(call BuildPackage,$(PACKAGE))))
|
$(foreach PACKAGE,$(ALLWIFIPACKAGES),$(eval $(call BuildPackage,$(PACKAGE))))
|
||||||
|
|
BIN
root/package/firmware/ipq-wifi/board-teltonika_rutx.qca4019
Normal file
BIN
root/package/firmware/ipq-wifi/board-teltonika_rutx.qca4019
Normal file
Binary file not shown.
177
root/scripts/mkits.sh
Executable file
177
root/scripts/mkits.sh
Executable file
|
@ -0,0 +1,177 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Licensed under the terms of the GNU GPL License version 2 or later.
|
||||||
|
#
|
||||||
|
# Author: Peter Tyser <ptyser@xes-inc.com>
|
||||||
|
#
|
||||||
|
# U-Boot firmware supports the booting of images in the Flattened Image
|
||||||
|
# Tree (FIT) format. The FIT format uses a device tree structure to
|
||||||
|
# describe a kernel image, device tree blob, ramdisk, etc. This script
|
||||||
|
# creates an Image Tree Source (.its file) which can be passed to the
|
||||||
|
# 'mkimage' utility to generate an Image Tree Blob (.itb file). The .itb
|
||||||
|
# file can then be booted by U-Boot (or other bootloaders which support
|
||||||
|
# FIT images). See doc/uImage.FIT/howto.txt in U-Boot source code for
|
||||||
|
# additional information on FIT images.
|
||||||
|
#
|
||||||
|
|
||||||
|
usage() {
|
||||||
|
printf "Usage: %s -A arch -C comp -a addr -e entry" "$(basename "$0")"
|
||||||
|
printf " -v version -k kernel [-D name -n address -d dtb] -o its_file"
|
||||||
|
|
||||||
|
printf "\n\t-A ==> set architecture to 'arch'"
|
||||||
|
printf "\n\t-C ==> set compression type 'comp'"
|
||||||
|
printf "\n\t-c ==> set config name 'config'"
|
||||||
|
printf "\n\t-a ==> set load address to 'addr' (hex)"
|
||||||
|
printf "\n\t-e ==> set entry point to 'entry' (hex)"
|
||||||
|
printf "\n\t-v ==> set kernel version to 'version'"
|
||||||
|
printf "\n\t-k ==> include kernel image 'kernel'"
|
||||||
|
printf "\n\t-D ==> human friendly Device Tree Blob 'name'"
|
||||||
|
printf "\n\t-n ==> fdt unit-address 'address'"
|
||||||
|
printf "\n\t-d ==> include Device Tree Blob 'dtb'"
|
||||||
|
printf "\n\t-o ==> create output file 'its_file'\n"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
FDTNUM=1
|
||||||
|
|
||||||
|
while getopts ":A:a:c:C:D:d:e:k:n:o:v:" OPTION
|
||||||
|
do
|
||||||
|
case $OPTION in
|
||||||
|
A ) ARCH=$OPTARG;;
|
||||||
|
a ) LOAD_ADDR=$OPTARG;;
|
||||||
|
c ) CONFIG=$OPTARG;;
|
||||||
|
C ) COMPRESS=$OPTARG;;
|
||||||
|
D ) DEVICE=$OPTARG;;
|
||||||
|
d ) DTB=$OPTARG;;
|
||||||
|
e ) ENTRY_ADDR=$OPTARG;;
|
||||||
|
k ) KERNEL=$OPTARG;;
|
||||||
|
n ) FDTNUM=$OPTARG;;
|
||||||
|
o ) OUTPUT=$OPTARG;;
|
||||||
|
v ) VERSION=$OPTARG;;
|
||||||
|
* ) echo "Invalid option passed to '$0' (options:$*)"
|
||||||
|
usage;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# Make sure user entered all required parameters
|
||||||
|
if [ -z "${ARCH}" ] || [ -z "${COMPRESS}" ] || [ -z "${LOAD_ADDR}" ] || \
|
||||||
|
[ -z "${ENTRY_ADDR}" ] || [ -z "${VERSION}" ] || [ -z "${KERNEL}" ] || \
|
||||||
|
[ -z "${OUTPUT}" ] || [ -z "${CONFIG}" ]; then
|
||||||
|
usage
|
||||||
|
fi
|
||||||
|
|
||||||
|
ARCH_UPPER=$(echo "$ARCH" | tr '[:lower:]' '[:upper:]')
|
||||||
|
|
||||||
|
# Conditionally create fdt information
|
||||||
|
if [ -n "${DTB}" ]; then
|
||||||
|
if [ -f "$DTB" ]; then
|
||||||
|
FDT_NODE="
|
||||||
|
fdt@$FDTNUM {
|
||||||
|
description = \"${ARCH_UPPER} OpenWrt ${DEVICE} device tree blob\";
|
||||||
|
data = /incbin/(\"${DTB}\");
|
||||||
|
type = \"flat_dt\";
|
||||||
|
arch = \"${ARCH}\";
|
||||||
|
compression = \"none\";
|
||||||
|
hash@1 {
|
||||||
|
algo = \"crc32\";
|
||||||
|
};
|
||||||
|
hash@2 {
|
||||||
|
algo = \"sha1\";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"
|
||||||
|
|
||||||
|
CONFIG_NODE="
|
||||||
|
${CONFIG} {
|
||||||
|
description = \"OpenWrt\";
|
||||||
|
kernel = \"kernel@1\";
|
||||||
|
fdt = \"fdt@$FDTNUM\";
|
||||||
|
};
|
||||||
|
"
|
||||||
|
else
|
||||||
|
FDTNUM=0
|
||||||
|
DEFAULT_CONFIG=$FDTNUM
|
||||||
|
|
||||||
|
# for f in $(eval echo $DTB); do <= doesn't work on dash, here comes a workaround:
|
||||||
|
DTB_DIR="${DTB%%{*}"
|
||||||
|
DTB="${DTB##*{}"
|
||||||
|
DTB_CSV="${DTB##*{}"
|
||||||
|
DTB_CSV="${DTB%\}*}"
|
||||||
|
IFS=,
|
||||||
|
for f in $DTB_CSV; do
|
||||||
|
FDTNUM=$((FDTNUM+1))
|
||||||
|
|
||||||
|
ff="${DTB_DIR}/${f}"
|
||||||
|
[ -f "${ff}" ] || {
|
||||||
|
echo "ERROR: no DTBs found" >&2
|
||||||
|
rm -f "${OUTPUT}"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
FDT_NODE="${FDT_NODE}
|
||||||
|
|
||||||
|
fdt@$FDTNUM {
|
||||||
|
description = \"${f}\";
|
||||||
|
data = /incbin/(\"${ff}\");
|
||||||
|
type = \"flat_dt\";
|
||||||
|
arch = \"${ARCH}\";
|
||||||
|
compression = \"none\";
|
||||||
|
hash@1 {
|
||||||
|
algo = \"crc32\";
|
||||||
|
};
|
||||||
|
hash@2 {
|
||||||
|
algo = \"sha1\";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"
|
||||||
|
# extract XYZ from image-qcom-ipq4018-rutx-XYZ.dtb
|
||||||
|
f=${f##*-}
|
||||||
|
f=${f%.*}
|
||||||
|
|
||||||
|
CONFIG_NODE="${CONFIG_NODE}
|
||||||
|
|
||||||
|
conf_mdtb@${FDTNUM} {
|
||||||
|
description = \"${f}\";
|
||||||
|
kernel = \"kernel@1\";
|
||||||
|
fdt = \"fdt@$FDTNUM\";
|
||||||
|
};
|
||||||
|
"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create a default, fully populated DTS file
|
||||||
|
DATA="/dts-v1/;
|
||||||
|
|
||||||
|
/ {
|
||||||
|
description = \"${ARCH_UPPER} OpenWrt FIT (Flattened Image Tree)\";
|
||||||
|
#address-cells = <1>;
|
||||||
|
|
||||||
|
images {
|
||||||
|
kernel@1 {
|
||||||
|
description = \"${ARCH_UPPER} OpenWrt Linux-${VERSION}\";
|
||||||
|
data = /incbin/(\"${KERNEL}\");
|
||||||
|
type = \"kernel\";
|
||||||
|
arch = \"${ARCH}\";
|
||||||
|
os = \"linux\";
|
||||||
|
compression = \"${COMPRESS}\";
|
||||||
|
load = <${LOAD_ADDR}>;
|
||||||
|
entry = <${ENTRY_ADDR}>;
|
||||||
|
hash@1 {
|
||||||
|
algo = \"crc32\";
|
||||||
|
};
|
||||||
|
hash@2 {
|
||||||
|
algo = \"sha1\";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
${FDT_NODE}
|
||||||
|
};
|
||||||
|
|
||||||
|
configurations {
|
||||||
|
default = \"${DEFAULT_CONFIG}\";
|
||||||
|
${CONFIG_NODE}
|
||||||
|
};
|
||||||
|
};"
|
||||||
|
|
||||||
|
# Write .its file to disk
|
||||||
|
echo "$DATA" > "${OUTPUT}"
|
|
@ -3714,6 +3714,7 @@ CONFIG_NFS_V3=y
|
||||||
# CONFIG_NF_CONNTRACK is not set
|
# CONFIG_NF_CONNTRACK is not set
|
||||||
# CONFIG_NF_CONNTRACK_AMANDA is not set
|
# CONFIG_NF_CONNTRACK_AMANDA is not set
|
||||||
# CONFIG_NF_CONNTRACK_BRIDGE is not set
|
# CONFIG_NF_CONNTRACK_BRIDGE is not set
|
||||||
|
# CONFIG_NF_CONNTRACK_CHAIN_EVENTS is not set
|
||||||
# CONFIG_NF_CONNTRACK_EVENTS is not set
|
# CONFIG_NF_CONNTRACK_EVENTS is not set
|
||||||
# CONFIG_NF_CONNTRACK_FTP is not set
|
# CONFIG_NF_CONNTRACK_FTP is not set
|
||||||
# CONFIG_NF_CONNTRACK_H323 is not set
|
# CONFIG_NF_CONNTRACK_H323 is not set
|
||||||
|
|
|
@ -35,7 +35,8 @@ ipq40xx_setup_interfaces()
|
||||||
zyxel,wre6606)
|
zyxel,wre6606)
|
||||||
ucidef_set_interface_lan "eth0"
|
ucidef_set_interface_lan "eth0"
|
||||||
;;
|
;;
|
||||||
aruba,ap-303h)
|
aruba,ap-303h|\
|
||||||
|
teltonika,rutx10)
|
||||||
ucidef_set_interfaces_lan_wan "eth0" "eth1"
|
ucidef_set_interfaces_lan_wan "eth0" "eth1"
|
||||||
ucidef_add_switch "switch0" \
|
ucidef_add_switch "switch0" \
|
||||||
"0u@eth0" "2:lan:1" "3:lan:2" "4:lan:3" "0u@eth1" "5:wan"
|
"0u@eth0" "2:lan:1" "3:lan:2" "4:lan:3" "0u@eth1" "5:wan"
|
||||||
|
|
|
@ -272,6 +272,10 @@ case "$FIRMWARE" in
|
||||||
caldata_extract "ART" 0x5000 0x2f20
|
caldata_extract "ART" 0x5000 0x2f20
|
||||||
ath10k_patch_mac $(mtd_get_mac_binary dnidata 0xc)
|
ath10k_patch_mac $(mtd_get_mac_binary dnidata 0xc)
|
||||||
;;
|
;;
|
||||||
|
teltonika,rutx10)
|
||||||
|
caldata_extract "0:ART" 0x1000 0x2f20
|
||||||
|
ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary "0:CONFIG" 0x0) 3)
|
||||||
|
;;
|
||||||
zyxel,nbg6617 |\
|
zyxel,nbg6617 |\
|
||||||
zyxel,wre6606)
|
zyxel,wre6606)
|
||||||
caldata_extract "ART" 0x5000 0x2f20
|
caldata_extract "ART" 0x5000 0x2f20
|
||||||
|
|
|
@ -125,6 +125,10 @@ platform_do_upgrade() {
|
||||||
PART_NAME="inactive"
|
PART_NAME="inactive"
|
||||||
platform_do_upgrade_dualboot_datachk "$1"
|
platform_do_upgrade_dualboot_datachk "$1"
|
||||||
;;
|
;;
|
||||||
|
teltonika,rutx10)
|
||||||
|
CI_UBIPART="rootfs"
|
||||||
|
nand_do_upgrade "$1"
|
||||||
|
;;
|
||||||
zyxel,nbg6617)
|
zyxel,nbg6617)
|
||||||
zyxel_do_upgrade "$1"
|
zyxel_do_upgrade "$1"
|
||||||
;;
|
;;
|
||||||
|
|
|
@ -0,0 +1,57 @@
|
||||||
|
#include "qcom-ipq4018-rutx-common.dtsi"
|
||||||
|
#include "qcom-ipq4018-rutx-shiftreg.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "RUTX08/10";
|
||||||
|
|
||||||
|
soc {
|
||||||
|
gpio-export {
|
||||||
|
compatible = "gpio-export";
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
gpio_modem_reset {
|
||||||
|
gpio-export,name = "modem_reset";
|
||||||
|
gpio-export,output = <0>;
|
||||||
|
gpios = <&shift_io 1 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio_modem_power {
|
||||||
|
gpio-export,name = "modem_power";
|
||||||
|
gpio-export,output = <0>;
|
||||||
|
gpios = <&shift_io 2 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio_sim_select {
|
||||||
|
gpio-export,name = "sim_sel";
|
||||||
|
gpio-export,output = <1>;
|
||||||
|
gpios = <&shift_io 3 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio_out_1 {
|
||||||
|
gpio-export,name = "gpio23";
|
||||||
|
gpio-export,output = <0>;
|
||||||
|
gpios = <&shift_io 0 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio_in_1 {
|
||||||
|
gpio-export,name = "gpio24";
|
||||||
|
gpio-export,input = <0>;
|
||||||
|
gpios = <&tlmm 0 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
leds {
|
||||||
|
compatible = "gpio-leds";
|
||||||
|
|
||||||
|
led_wifi_24 {
|
||||||
|
label = "wifi_gen_2";
|
||||||
|
gpios = <&shift_io 5 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led_wifi_50 {
|
||||||
|
label = "wifi_gen_5";
|
||||||
|
gpios = <&shift_io 6 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
|
@ -0,0 +1,122 @@
|
||||||
|
#include "qcom-ipq4018-rutx-common.dtsi"
|
||||||
|
#include "qcom-ipq4018-rutx-shiftreg.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "RUTX09/11";
|
||||||
|
|
||||||
|
soc {
|
||||||
|
gpio-export {
|
||||||
|
compatible = "gpio-export";
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
gpio_modem_reset {
|
||||||
|
gpio-export,name = "modem_reset";
|
||||||
|
gpio-export,output = <0>;
|
||||||
|
gpios = <&shift_io 1 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio_modem_power {
|
||||||
|
gpio-export,name = "modem_power";
|
||||||
|
gpio-export,output = <0>;
|
||||||
|
gpios = <&shift_io 2 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio_sim_select {
|
||||||
|
gpio-export,name = "sim_sel";
|
||||||
|
gpio-export,output = <1>;
|
||||||
|
gpios = <&shift_io 3 GPIO_ACTIVE_LOW>;
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio_out_1 {
|
||||||
|
gpio-export,name = "gpio23";
|
||||||
|
gpio-export,output = <0>;
|
||||||
|
gpios = <&shift_io 0 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio_in_1 {
|
||||||
|
gpio-export,name = "gpio24";
|
||||||
|
gpio-export,input = <0>;
|
||||||
|
gpios = <&tlmm 0 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
leds {
|
||||||
|
compatible = "gpio-leds";
|
||||||
|
|
||||||
|
led_wan_sim1 {
|
||||||
|
label = "wan_sim_1";
|
||||||
|
gpios = <&shift_io 21 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led_wan_sim2 {
|
||||||
|
label = "wan_sim_2";
|
||||||
|
gpios = <&shift_io 22 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led_wan_eth {
|
||||||
|
label = "wan_wifi_4"; // not wan_eth_3 !
|
||||||
|
gpios = <&shift_io 13 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led_wan_wifi {
|
||||||
|
label = "wan_eth_3"; // not wan_wifi_4 !
|
||||||
|
gpios = <&shift_io 20 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led_gen_2 {
|
||||||
|
label = "mob_gen_2";
|
||||||
|
gpios = <&shift_io 7 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led_gen_3 {
|
||||||
|
label = "mob_gen_3";
|
||||||
|
gpios = <&shift_io 8 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led_gen_4 {
|
||||||
|
label = "mob_gen_4";
|
||||||
|
gpios = <&shift_io 9 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led_ssid_1 {
|
||||||
|
label = "mob_ssid_1";
|
||||||
|
gpios = <&shift_io 10 GPIO_ACTIVE_HIGH>;
|
||||||
|
linux,default-trigger = "timer";
|
||||||
|
};
|
||||||
|
|
||||||
|
led_ssid_2 {
|
||||||
|
label = "mob_ssid_2";
|
||||||
|
gpios = <&shift_io 11 GPIO_ACTIVE_HIGH>;
|
||||||
|
linux,default-trigger = "timer";
|
||||||
|
};
|
||||||
|
|
||||||
|
led_ssid_3 {
|
||||||
|
label = "mob_ssid_3";
|
||||||
|
gpios = <&shift_io 12 GPIO_ACTIVE_HIGH>;
|
||||||
|
linux,default-trigger = "timer";
|
||||||
|
};
|
||||||
|
|
||||||
|
led_ssid_4 {
|
||||||
|
label = "mob_ssid_4";
|
||||||
|
gpios = <&shift_io 14 GPIO_ACTIVE_HIGH>;
|
||||||
|
linux,default-trigger = "timer";
|
||||||
|
};
|
||||||
|
|
||||||
|
led_ssid_5 {
|
||||||
|
label = "mob_ssid_5";
|
||||||
|
gpios = <&shift_io 15 GPIO_ACTIVE_HIGH>;
|
||||||
|
linux,default-trigger = "timer";
|
||||||
|
};
|
||||||
|
|
||||||
|
led_wifi_24 {
|
||||||
|
label = "wifi_gen_2";
|
||||||
|
gpios = <&shift_io 5 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led_wifi_50 {
|
||||||
|
label = "wifi_gen_5";
|
||||||
|
gpios = <&shift_io 6 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
|
@ -0,0 +1,149 @@
|
||||||
|
#include "qcom-ipq4018-rutx-common.dtsi"
|
||||||
|
#include "qcom-ipq4018-rutx-shiftreg.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "RUTX12";
|
||||||
|
|
||||||
|
soc {
|
||||||
|
gpio-export {
|
||||||
|
compatible = "gpio-export";
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
gpio_modem_reset {
|
||||||
|
gpio-export,name = "modem_reset";
|
||||||
|
gpio-export,output = <0>;
|
||||||
|
gpios = <&shift_io 16 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio_modem_power {
|
||||||
|
gpio-export,name = "modem_power";
|
||||||
|
gpio-export,output = <0>;
|
||||||
|
gpios = <&shift_io 17 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio_modem2_reset {
|
||||||
|
gpio-export,name = "modem2_reset";
|
||||||
|
gpio-export,output = <0>;
|
||||||
|
gpios = <&shift_io 18 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio_modem2_power {
|
||||||
|
gpio-export,name = "modem2_power";
|
||||||
|
gpio-export,output = <0>;
|
||||||
|
gpios = <&shift_io 19 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio_out_1 {
|
||||||
|
gpio-export,name = "gpio23";
|
||||||
|
gpio-export,output = <0>;
|
||||||
|
gpios = <&shift_io 20 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio_in_1 {
|
||||||
|
gpio-export,name = "gpio24";
|
||||||
|
gpio-export,input = <0>;
|
||||||
|
gpios = <&tlmm 0 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
leds {
|
||||||
|
compatible = "gpio-leds";
|
||||||
|
|
||||||
|
led_wan_sim1 {
|
||||||
|
label = "wan_sim_1";
|
||||||
|
gpios = <&shift_io 14 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led_wan_sim2 {
|
||||||
|
label = "wan_sim_2";
|
||||||
|
gpios = <&shift_io 15 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led_wan_eth {
|
||||||
|
label = "wan_wifi_4"; // not wan_eth_3 !
|
||||||
|
gpios = <&shift_io 6 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led_wan_wifi {
|
||||||
|
label = "wan_eth_3"; // not wan_wifi_4 !
|
||||||
|
gpios = <&shift_io 7 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led_gen_2 {
|
||||||
|
label = "mob_gen_2";
|
||||||
|
gpios = <&shift_io 5 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led_gen_3 {
|
||||||
|
label = "mob_gen_3";
|
||||||
|
gpios = <&shift_io 4 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led_gen_4 {
|
||||||
|
label = "mob_gen_4";
|
||||||
|
gpios = <&shift_io 3 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led2_gen_2 {
|
||||||
|
label = "mob2_gen_2";
|
||||||
|
gpios = <&shift_io 11 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led2_gen_3 {
|
||||||
|
label = "mob2_gen_3";
|
||||||
|
gpios = <&shift_io 12 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led2_gen_4 {
|
||||||
|
label = "mob2_gen_4";
|
||||||
|
gpios = <&shift_io 13 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led_ssid_1 {
|
||||||
|
label = "mob_ssid_1";
|
||||||
|
gpios = <&shift_io 0 GPIO_ACTIVE_HIGH>;
|
||||||
|
linux,default-trigger = "timer";
|
||||||
|
};
|
||||||
|
|
||||||
|
led_ssid_3 {
|
||||||
|
label = "mob_ssid_3";
|
||||||
|
gpios = <&shift_io 1 GPIO_ACTIVE_HIGH>;
|
||||||
|
linux,default-trigger = "timer";
|
||||||
|
};
|
||||||
|
|
||||||
|
led_ssid_5 {
|
||||||
|
label = "mob_ssid_5";
|
||||||
|
gpios = <&shift_io 2 GPIO_ACTIVE_HIGH>;
|
||||||
|
linux,default-trigger = "timer";
|
||||||
|
};
|
||||||
|
|
||||||
|
led2_ssid_1 {
|
||||||
|
label = "mob2_ssid_1";
|
||||||
|
gpios = <&shift_io 8 GPIO_ACTIVE_HIGH>;
|
||||||
|
linux,default-trigger = "timer";
|
||||||
|
};
|
||||||
|
|
||||||
|
led2_ssid_3 {
|
||||||
|
label = "mob2_ssid_3";
|
||||||
|
gpios = <&shift_io 9 GPIO_ACTIVE_HIGH>;
|
||||||
|
linux,default-trigger = "timer";
|
||||||
|
};
|
||||||
|
|
||||||
|
led2_ssid_5 {
|
||||||
|
label = "mob2_ssid_5";
|
||||||
|
gpios = <&shift_io 10 GPIO_ACTIVE_HIGH>;
|
||||||
|
linux,default-trigger = "timer";
|
||||||
|
};
|
||||||
|
|
||||||
|
led_wifi_24 {
|
||||||
|
label = "wifi_gen_2";
|
||||||
|
gpios = <&shift_io 22 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led_wifi_50 {
|
||||||
|
label = "wifi_gen_5";
|
||||||
|
gpios = <&shift_io 23 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
|
@ -0,0 +1,84 @@
|
||||||
|
#include "qcom-ipq4018-rutx-common.dtsi"
|
||||||
|
#include "qcom-ipq4018-rutx-shiftreg.dtsi"
|
||||||
|
#include "qcom-ipq4018-rutx-i2c.dtsi" // SFP
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "RUTXR1";
|
||||||
|
|
||||||
|
soc {
|
||||||
|
gpio-export {
|
||||||
|
compatible = "gpio-export";
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
gpio_modem_reset {
|
||||||
|
gpio-export,name = "modem_reset";
|
||||||
|
gpio-export,output = <0>;
|
||||||
|
gpios = <&shift_io 1 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio_modem_power {
|
||||||
|
gpio-export,name = "modem_power";
|
||||||
|
gpio-export,output = <0>;
|
||||||
|
gpios = <&shift_io 2 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio_sim_select {
|
||||||
|
gpio-export,name = "sim_sel";
|
||||||
|
gpio-export,output = <1>;
|
||||||
|
gpios = <&shift_io 3 GPIO_ACTIVE_LOW>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
leds {
|
||||||
|
compatible = "gpio-leds";
|
||||||
|
|
||||||
|
led_wan_sim1 {
|
||||||
|
label = "wan_sim_1";
|
||||||
|
gpios = <&shift_io 4 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led_wan_sim2 {
|
||||||
|
label = "wan_sim_2";
|
||||||
|
gpios = <&shift_io 5 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led_wan_eth {
|
||||||
|
label = "wan_wifi_4"; // not wan_eth_3 !
|
||||||
|
gpios = <&shift_io 11 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led_wan_mob {
|
||||||
|
label = "wan_mob_5";
|
||||||
|
gpios = <&shift_io 0 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led_gen_3 {
|
||||||
|
label = "mob_gen_3";
|
||||||
|
gpios = <&shift_io 6 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led_gen_4 {
|
||||||
|
label = "mob_gen_4";
|
||||||
|
gpios = <&shift_io 7 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led_ssid_1 {
|
||||||
|
label = "mob_ssid_1";
|
||||||
|
gpios = <&shift_io 8 GPIO_ACTIVE_HIGH>;
|
||||||
|
linux,default-trigger = "timer";
|
||||||
|
};
|
||||||
|
|
||||||
|
led_ssid_3 {
|
||||||
|
label = "mob_ssid_3";
|
||||||
|
gpios = <&shift_io 9 GPIO_ACTIVE_HIGH>;
|
||||||
|
linux,default-trigger = "timer";
|
||||||
|
};
|
||||||
|
|
||||||
|
led_ssid_5 {
|
||||||
|
label = "mob_ssid_5";
|
||||||
|
gpios = <&shift_io 10 GPIO_ACTIVE_HIGH>;
|
||||||
|
linux,default-trigger = "timer";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
|
@ -0,0 +1,188 @@
|
||||||
|
#include "qcom-ipq4018-rutx-common.dtsi"
|
||||||
|
#include "qcom-ipq4018-rutx-i2c.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "RUTX STM32";
|
||||||
|
io_expander = "stm32";
|
||||||
|
|
||||||
|
soc {
|
||||||
|
i2c_0: i2c@78b7000 {
|
||||||
|
stm32_io: stm32@74 {
|
||||||
|
#gpio-cells = <2>;
|
||||||
|
compatible = "tlt,stm32v1";
|
||||||
|
reg = <0x74>;
|
||||||
|
gpio-controller;
|
||||||
|
interrupt-parent = <&tlmm>;
|
||||||
|
interrupts = <5 2>;
|
||||||
|
interrupt-controller;
|
||||||
|
#interrupt-cells = <2>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio-export {
|
||||||
|
compatible = "gpio-export";
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
gpio_modem_reset {
|
||||||
|
gpio-export,name = "modem_reset";
|
||||||
|
gpio-export,output = <0>;
|
||||||
|
gpios = <&stm32_io 21 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio_modem_power {
|
||||||
|
gpio-export,name = "modem_power";
|
||||||
|
gpio-export,output = <0>;
|
||||||
|
gpios = <&stm32_io 20 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio_modem2_reset {
|
||||||
|
gpio-export,name = "modem2_reset";
|
||||||
|
gpio-export,output = <0>;
|
||||||
|
gpios = <&stm32_io 13 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio_modem2_power {
|
||||||
|
gpio-export,name = "modem2_power";
|
||||||
|
gpio-export,output = <0>;
|
||||||
|
gpios = <&stm32_io 14 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio_sim_select {
|
||||||
|
gpio-export,name = "sim_sel";
|
||||||
|
gpio-export,output = <1>;
|
||||||
|
gpios = <&stm32_io 22 GPIO_ACTIVE_LOW>;
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio_out_1 {
|
||||||
|
gpio-export,name = "gpio23";
|
||||||
|
gpio-export,output = <0>;
|
||||||
|
gpio-export,direction_may_change;
|
||||||
|
gpios = <&stm32_io 23 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio_in_1 {
|
||||||
|
gpio-export,name = "gpio24";
|
||||||
|
gpio-export,input = <0>;
|
||||||
|
gpio-export,direction_may_change;
|
||||||
|
gpios = <&stm32_io 24 GPIO_ACTIVE_LOW>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
leds {
|
||||||
|
compatible = "gpio-leds";
|
||||||
|
|
||||||
|
led_wan_sim1 {
|
||||||
|
label = "wan_sim_1";
|
||||||
|
gpios = <&stm32_io 0 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led_wan_sim2 {
|
||||||
|
label = "wan_sim_2";
|
||||||
|
gpios = <&stm32_io 1 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led_wan_eth {
|
||||||
|
label = "wan_eth_3";
|
||||||
|
gpios = <&stm32_io 2 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led_wan_wifi {
|
||||||
|
label = "wan_wifi_4";
|
||||||
|
gpios = <&stm32_io 3 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led_wan_mob {
|
||||||
|
label = "wan_mob_5";
|
||||||
|
gpios = <&stm32_io 16 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led_gen_2 {
|
||||||
|
label = "mob_gen_2";
|
||||||
|
gpios = <&stm32_io 4 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led_gen_3 {
|
||||||
|
label = "mob_gen_3";
|
||||||
|
gpios = <&stm32_io 5 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led_gen_4 {
|
||||||
|
label = "mob_gen_4";
|
||||||
|
gpios = <&stm32_io 6 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led2_gen_2 {
|
||||||
|
label = "mob2_gen_2";
|
||||||
|
gpios = <&stm32_io 32 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led2_gen_3 {
|
||||||
|
label = "mob2_gen_3";
|
||||||
|
gpios = <&stm32_io 33 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led2_gen_4 {
|
||||||
|
label = "mob2_gen_4";
|
||||||
|
gpios = <&stm32_io 34 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led_ssid_1 {
|
||||||
|
label = "mob_ssid_1";
|
||||||
|
gpios = <&stm32_io 7 GPIO_ACTIVE_HIGH>;
|
||||||
|
linux,default-trigger = "timer";
|
||||||
|
};
|
||||||
|
|
||||||
|
led_ssid_2 {
|
||||||
|
label = "mob_ssid_2";
|
||||||
|
gpios = <&stm32_io 8 GPIO_ACTIVE_HIGH>;
|
||||||
|
linux,default-trigger = "timer";
|
||||||
|
};
|
||||||
|
|
||||||
|
led_ssid_3 {
|
||||||
|
label = "mob_ssid_3";
|
||||||
|
gpios = <&stm32_io 9 GPIO_ACTIVE_HIGH>;
|
||||||
|
linux,default-trigger = "timer";
|
||||||
|
};
|
||||||
|
|
||||||
|
led_ssid_4 {
|
||||||
|
label = "mob_ssid_4";
|
||||||
|
gpios = <&stm32_io 10 GPIO_ACTIVE_HIGH>;
|
||||||
|
linux,default-trigger = "timer";
|
||||||
|
};
|
||||||
|
|
||||||
|
led_ssid_5 {
|
||||||
|
label = "mob_ssid_5";
|
||||||
|
gpios = <&stm32_io 11 GPIO_ACTIVE_HIGH>;
|
||||||
|
linux,default-trigger = "timer";
|
||||||
|
};
|
||||||
|
|
||||||
|
led2_ssid_1 {
|
||||||
|
label = "mob2_ssid_1";
|
||||||
|
gpios = <&stm32_io 31 GPIO_ACTIVE_HIGH>;
|
||||||
|
linux,default-trigger = "timer";
|
||||||
|
};
|
||||||
|
|
||||||
|
led2_ssid_3 {
|
||||||
|
label = "mob2_ssid_3";
|
||||||
|
gpios = <&stm32_io 30 GPIO_ACTIVE_HIGH>;
|
||||||
|
linux,default-trigger = "timer";
|
||||||
|
};
|
||||||
|
|
||||||
|
led2_ssid_5 {
|
||||||
|
label = "mob2_ssid_5";
|
||||||
|
gpios = <&stm32_io 29 GPIO_ACTIVE_HIGH>;
|
||||||
|
linux,default-trigger = "timer";
|
||||||
|
};
|
||||||
|
|
||||||
|
led_wifi_24 {
|
||||||
|
label = "wifi_gen_2";
|
||||||
|
gpios = <&stm32_io 19 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led_wifi_50 {
|
||||||
|
label = "wifi_gen_5";
|
||||||
|
gpios = <&stm32_io 18 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
|
@ -0,0 +1,84 @@
|
||||||
|
#include "qcom-ipq4019-ap.dk01.1.dtsi"
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
//#include "platform_name.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
compatible = "teltonika,rutx", "qcom,ap-dk01.1-c2", "qcom,ipq4019";
|
||||||
|
|
||||||
|
memory {
|
||||||
|
device_type = "memory";
|
||||||
|
reg = <0x80000000 0x10000000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
soc {
|
||||||
|
mdio@90000 {
|
||||||
|
status = "ok";
|
||||||
|
pinctrl-0 = <&mdio_pins>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
phy-reset-gpio = <&tlmm 62 0>;
|
||||||
|
|
||||||
|
ethphy4: ethernet-phy@4 {
|
||||||
|
qcom,fiber-enable;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
pinctrl@1000000 {
|
||||||
|
mdio_pins: mdio_pinmux {
|
||||||
|
mux_1 {
|
||||||
|
pins = "gpio53";
|
||||||
|
function = "mdio";
|
||||||
|
bias-pull-up;
|
||||||
|
};
|
||||||
|
mux_2 {
|
||||||
|
pins = "gpio52";
|
||||||
|
function = "mdc";
|
||||||
|
bias-pull-up;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
spi_0: spi@78b5000 {
|
||||||
|
cs-gpios = <&tlmm 54 0>, <&tlmm 63 0>;
|
||||||
|
num-cs = <2>;
|
||||||
|
|
||||||
|
mx25l25635f@0 {
|
||||||
|
compatible = "n25q128a11", "mx25l25635f", "jedec,spi-nor";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
reg = <0>;
|
||||||
|
spi-max-frequency = <24000000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
mt29f@1 {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
compatible = "spi-nand","spinand,mt29f";
|
||||||
|
reg = <1>;
|
||||||
|
spi-max-frequency = <24000000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio_keys {
|
||||||
|
compatible = "gpio-keys";
|
||||||
|
|
||||||
|
reset {
|
||||||
|
label = "reset";
|
||||||
|
gpios = <&tlmm 4 1>;
|
||||||
|
linux,code = <0x198>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
usb3: usb3@8af8800 {
|
||||||
|
dwc3@8a00000 {
|
||||||
|
snps,dis_u2_susphy_quirk;
|
||||||
|
snps,dis_u3_susphy_quirk;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
usb2: usb2@60f8800 {
|
||||||
|
dwc3@6000000 {
|
||||||
|
snps,dis_u2_susphy_quirk;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
|
@ -0,0 +1,20 @@
|
||||||
|
/ {
|
||||||
|
soc {
|
||||||
|
pinctrl@1000000 {
|
||||||
|
i2c_0_pins: i2c_0_pinmux {
|
||||||
|
mux {
|
||||||
|
pins = "gpio58", "gpio59";
|
||||||
|
function = "blsp_i2c0";
|
||||||
|
bias-disable;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
i2c_0: i2c@78b7000 { /* BLSP1 QUP2 */
|
||||||
|
pinctrl-0 = <&i2c_0_pins>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
clock-frequency = <400000>;
|
||||||
|
status = "ok";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
|
@ -0,0 +1,25 @@
|
||||||
|
/ {
|
||||||
|
io_expander = "shiftreg_1";
|
||||||
|
|
||||||
|
soc {
|
||||||
|
ext_io {
|
||||||
|
compatible = "spi-gpio";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
gpio-sck = <&tlmm 1 GPIO_ACTIVE_HIGH>; // SRCLK
|
||||||
|
gpio-mosi = <&tlmm 3 GPIO_ACTIVE_HIGH>; // SER
|
||||||
|
cs-gpios = <&tlmm 2 GPIO_ACTIVE_HIGH>; // RCLK
|
||||||
|
num-chipselects = <1>;
|
||||||
|
|
||||||
|
shift_io: shift_io@0 {
|
||||||
|
compatible = "fairchild,74hc595";
|
||||||
|
reg = <0>;
|
||||||
|
gpio-controller;
|
||||||
|
#gpio-cells = <2>;
|
||||||
|
registers-number = <3>;
|
||||||
|
spi-max-frequency = <10000000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
|
@ -46,6 +46,17 @@ define Build/append-rootfshdr
|
||||||
dd if=$@.new bs=64 count=1 >> $(IMAGE_KERNEL)
|
dd if=$@.new bs=64 count=1 >> $(IMAGE_KERNEL)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define Build/append-rutx-metadata
|
||||||
|
echo \
|
||||||
|
'{ \
|
||||||
|
"device_code": [".*"], \
|
||||||
|
"hwver": [".*"], \
|
||||||
|
"batch": [".*"], \
|
||||||
|
"serial": [".*"], \
|
||||||
|
"supported_devices":["teltonika,rutx"] \
|
||||||
|
}' | fwtool -I - $@
|
||||||
|
endef
|
||||||
|
|
||||||
define Build/mkmylofw_32m
|
define Build/mkmylofw_32m
|
||||||
$(eval device_id=$(word 1,$(1)))
|
$(eval device_id=$(word 1,$(1)))
|
||||||
$(eval revision=$(word 2,$(1)))
|
$(eval revision=$(word 2,$(1)))
|
||||||
|
@ -786,6 +797,24 @@ define Device/qxwlan_e2600ac-c2
|
||||||
endef
|
endef
|
||||||
TARGET_DEVICES += qxwlan_e2600ac-c2
|
TARGET_DEVICES += qxwlan_e2600ac-c2
|
||||||
|
|
||||||
|
define Device/teltonika_rutx
|
||||||
|
$(call Device/FitImage)
|
||||||
|
$(call Device/UbiFit)
|
||||||
|
DEVICE_VENDOR := Teltonika
|
||||||
|
DEVICE_MODEL := RUTX
|
||||||
|
SOC := qcom-ipq4018
|
||||||
|
DEVICE_DTS := qcom-ipq4018-rutx-12 qcom-ipq4018-rutx-08_10 qcom-ipq4018-rutx-09_11 qcom-ipq4018-rutx-R1 qcom-ipq4018-rutx-STM32
|
||||||
|
DEVICE_DTS_CONFIG := config@5
|
||||||
|
mc KERNEL = kernel-bin | gzip | fit gzip "$$(KDIR)/{$$(subst $$(space),$$(comma),$$(addprefix image-,$$(addsuffix .dtb,$$(DEVICE_DTS))))}"
|
||||||
|
KERNEL_INSTALL := 1
|
||||||
|
BLOCKSIZE := 128k
|
||||||
|
PAGESIZE := 2048
|
||||||
|
FILESYSTEMS := squashfs
|
||||||
|
IMAGE/nand-factory.ubi := append-ubi | qsdk-ipq-factory-nand | append-rutx-metadata
|
||||||
|
DEVICE_PACKAGES := ipq-wifi-teltonika_rutx kmod-bluetooth
|
||||||
|
endef
|
||||||
|
TARGET_DEVICES += teltonika_rutx
|
||||||
|
|
||||||
define Device/unielec_u4019-32m
|
define Device/unielec_u4019-32m
|
||||||
$(call Device/FitImage)
|
$(call Device/FitImage)
|
||||||
DEVICE_VENDOR := Unielec
|
DEVICE_VENDOR := Unielec
|
||||||
|
|
|
@ -0,0 +1,57 @@
|
||||||
|
--- a/arch/arm/boot/dts/Makefile
|
||||||
|
+++ b/arch/arm/boot/dts/Makefile
|
||||||
|
@@ -950,11 +950,54 @@
|
||||||
|
qcom-ipq4018-ap120c-ac.dtb \
|
||||||
|
qcom-ipq4018-ap120c-ac-bit.dtb \
|
||||||
|
qcom-ipq4018-jalapeno.dtb \
|
||||||
|
+ qcom-ipq4018-a42.dtb \
|
||||||
|
+ qcom-ipq4018-dap-2610.dtb \
|
||||||
|
+ qcom-ipq4018-cs-w3-wd1200g-eup.dtb \
|
||||||
|
+ qcom-ipq4018-ea6350v3.dtb \
|
||||||
|
+ qcom-ipq4018-eap1300.dtb \
|
||||||
|
+ qcom-ipq4018-emd1.dtb \
|
||||||
|
+ qcom-ipq4018-emr3500.dtb \
|
||||||
|
+ qcom-ipq4018-ens620ext.dtb \
|
||||||
|
+ qcom-ipq4018-ex6100v2.dtb \
|
||||||
|
+ qcom-ipq4018-ex6150v2.dtb \
|
||||||
|
+ qcom-ipq4018-fritzbox-4040.dtb \
|
||||||
|
+ qcom-ipq4018-jalapeno.dtb \
|
||||||
|
+ qcom-ipq4018-meshpoint-one.dtb \
|
||||||
|
+ qcom-ipq4018-nbg6617.dtb \
|
||||||
|
+ qcom-ipq4018-rt-ac58u.dtb \
|
||||||
|
+ qcom-ipq4018-rutx-08_10.dtb \
|
||||||
|
+ qcom-ipq4018-rutx-09_11.dtb \
|
||||||
|
+ qcom-ipq4018-rutx-12.dtb \
|
||||||
|
+ qcom-ipq4018-wre6606.dtb \
|
||||||
|
qcom-ipq4019-ap.dk01.1-c1.dtb \
|
||||||
|
qcom-ipq4019-ap.dk04.1-c1.dtb \
|
||||||
|
qcom-ipq4019-ap.dk04.1-c3.dtb \
|
||||||
|
qcom-ipq4019-ap.dk07.1-c1.dtb \
|
||||||
|
qcom-ipq4019-ap.dk07.1-c2.dtb \
|
||||||
|
+ com-ipq4019-a62.dtb \
|
||||||
|
+ qcom-ipq4019-cm520-79f.dtb \
|
||||||
|
+ qcom-ipq4019-ea8300.dtb \
|
||||||
|
+ qcom-ipq4019-eap2200.dtb \
|
||||||
|
+ qcom-ipq4019-fritzbox-7530.dtb \
|
||||||
|
+ qcom-ipq4019-fritzrepeater-1200.dtb \
|
||||||
|
+ qcom-ipq4019-fritzrepeater-3000.dtb \
|
||||||
|
+ qcom-ipq4019-r619ac.dtb \
|
||||||
|
+ qcom-ipq4019-r619ac-128m.dtb \
|
||||||
|
+ qcom-ipq4019-map-ac2200.dtb \
|
||||||
|
+ qcom-ipq4019-e2600ac-c1.dtb \
|
||||||
|
+ qcom-ipq4019-e2600ac-c2.dtb \
|
||||||
|
+ qcom-ipq4019-habanero-dvk.dtb \
|
||||||
|
+ qcom-ipq4019-rtl30vw.dtb \
|
||||||
|
+ qcom-ipq4019-u4019-32m.dtb \
|
||||||
|
+ qcom-ipq4019-wpj419.dtb \
|
||||||
|
+ qcom-ipq4019-wtr-m2133hp.dtb \
|
||||||
|
+ qcom-ipq4028-wpj428.dtb \
|
||||||
|
+ qcom-ipq4029-ap-303.dtb \
|
||||||
|
+ qcom-ipq4029-ap-303h.dtb \
|
||||||
|
+ qcom-ipq4029-ap-365.dtb \
|
||||||
|
+ qcom-ipq4029-gl-b1300.dtb \
|
||||||
|
+ qcom-ipq4029-gl-s1300.dtb \
|
||||||
|
+ qcom-ipq4029-mr33.dtb \
|
||||||
|
qcom-ipq8064-ap148.dtb \
|
||||||
|
qcom-ipq8064-rb3011.dtb \
|
||||||
|
qcom-msm8226-samsung-s3ve3g.dtb \
|
|
@ -10,7 +10,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
|
||||||
|
|
||||||
--- a/arch/arm/boot/dts/Makefile
|
--- a/arch/arm/boot/dts/Makefile
|
||||||
+++ b/arch/arm/boot/dts/Makefile
|
+++ b/arch/arm/boot/dts/Makefile
|
||||||
@@ -837,11 +837,62 @@ dtb-$(CONFIG_ARCH_QCOM) += \
|
@@ -837,11 +837,63 @@ dtb-$(CONFIG_ARCH_QCOM) += \
|
||||||
qcom-apq8074-dragonboard.dtb \
|
qcom-apq8074-dragonboard.dtb \
|
||||||
qcom-apq8084-ifc6540.dtb \
|
qcom-apq8084-ifc6540.dtb \
|
||||||
qcom-apq8084-mtp.dtb \
|
qcom-apq8084-mtp.dtb \
|
||||||
|
@ -37,6 +37,9 @@ Signed-off-by: John Crispin <john@phrozen.org>
|
||||||
+ qcom-ipq4019-oap100.dtb \
|
+ qcom-ipq4019-oap100.dtb \
|
||||||
+ qcom-ipq4018-pa1200.dtb \
|
+ qcom-ipq4018-pa1200.dtb \
|
||||||
+ qcom-ipq4018-rt-ac58u.dtb \
|
+ qcom-ipq4018-rt-ac58u.dtb \
|
||||||
|
+ qcom-ipq4018-rutx-08_10.dtb \
|
||||||
|
+ qcom-ipq4018-rutx-09_11.dtb \
|
||||||
|
+ qcom-ipq4018-rutx-12.dtb \
|
||||||
+ qcom-ipq4018-wre6606.dtb \
|
+ qcom-ipq4018-wre6606.dtb \
|
||||||
+ qcom-ipq4018-wrtq-329acn.dtb \
|
+ qcom-ipq4018-wrtq-329acn.dtb \
|
||||||
qcom-ipq4019-ap.dk01.1-c1.dtb \
|
qcom-ipq4019-ap.dk01.1-c1.dtb \
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue