forked from openwrt/openwrt
-
Notifications
You must be signed in to change notification settings - Fork 131
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ipq40xx: add support for Telco X1 Pro
Telco X1 Pro is a Cat12 LTE-A Pro modem router. Vendor firmware is based on a recent version of OpenWrt. Flashing is possible via CLI using sysupgrade -F -n The serial headers allow bootloader and console access Serial setting: 115200 8N1 Brief Specifications: IPQ4019 SoC 32MB flash 512MB RAM 4x gigabit LAN 1x gigabit WAN Dual-band Wave-2 wifi 2x SMA LTE antenna connectors 2x RP-SMA wifi antennas 1x USB 2.0 port 1x Reset button Serial headers installed 1x Nano SIM tray 1x Quectel EM-12G LTE-A Pro modem 1x M.2 slot attached to USB 3.0 1x internal micro SD card slot Signed-off-by: Nicholas Smith <nicholas@nbembedded.com>
- Loading branch information
Showing
5 changed files
with
347 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
103 changes: 103 additions & 0 deletions
103
target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-x1pro.dts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,103 @@ | ||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT | ||
|
||
/dts-v1/; | ||
|
||
#include "qcom-ipq4019-x1pro.dtsi" | ||
#include <dt-bindings/gpio/gpio.h> | ||
#include <dt-bindings/input/input.h> | ||
|
||
/ { | ||
model = "Telco X1 Pro"; | ||
compatible = "tel,x1pro","qcom,ipq4019"; | ||
}; | ||
|
||
&blsp1_spi1 { | ||
pinctrl-0 = <&spi_0_pins>; | ||
pinctrl-names = "default"; | ||
status = "okay"; | ||
cs-gpios = <&tlmm 12 GPIO_ACTIVE_LOW>; | ||
|
||
flash@0 { | ||
reg = <0>; | ||
compatible = "jedec,spi-nor"; | ||
spi-max-frequency = <24000000>; | ||
broken-flash-reset; | ||
|
||
partitions { | ||
compatible = "fixed-partitions"; | ||
#address-cells = <1>; | ||
#size-cells = <1>; | ||
|
||
partition@0 { | ||
label = "0:SBL1"; | ||
reg = <0x0 0x40000>; | ||
read-only; | ||
}; | ||
partition@40000 { | ||
label = "0:MIBIB"; | ||
reg = <0x40000 0x20000>; | ||
read-only; | ||
}; | ||
partition@60000 { | ||
label = "0:QSEE"; | ||
reg = <0x60000 0x60000>; | ||
read-only; | ||
}; | ||
partition@c0000 { | ||
label = "0:CDT"; | ||
reg = <0xc0000 0x10000>; | ||
read-only; | ||
}; | ||
partition@d0000 { | ||
label = "0:DDRPARAMS"; | ||
reg = <0xd0000 0x10000>; | ||
read-only; | ||
}; | ||
partition@e0000 { | ||
label = "0:APPSBLENV"; | ||
reg = <0xe0000 0x10000>; | ||
read-only; | ||
}; | ||
partition@f0000 { | ||
label = "0:APPSBL"; | ||
reg = <0xf0000 0x80000>; | ||
read-only; | ||
}; | ||
art: partition@170000 { | ||
label = "0:ART"; | ||
reg = <0x170000 0x10000>; | ||
read-only; | ||
compatible = "nvmem-cells"; | ||
#address-cells = <1>; | ||
#size-cells = <1>; | ||
|
||
precal_art_1000: precal@1000 { | ||
reg = <0x1000 0x2f20>; | ||
}; | ||
|
||
precal_art_5000: precal@5000 { | ||
reg = <0x5000 0x2f20>; | ||
}; | ||
}; | ||
partition@180000 { | ||
compatible = "denx,fit"; | ||
label = "firmware"; | ||
reg = <0x180000 0x1e80000>; | ||
}; | ||
}; | ||
}; | ||
}; | ||
|
||
&gmac0 { | ||
status = "okay"; | ||
|
||
mtd-mac-address = <&art 0x5006>; | ||
mtd-mac-address-increment = <2>; | ||
}; | ||
|
||
&gmac1 { | ||
status = "okay"; | ||
|
||
mtd-mac-address = <&art 0x5006>; | ||
mtd-mac-address-increment = <3>; | ||
}; |
228 changes: 228 additions & 0 deletions
228
target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-x1pro.dtsi
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,228 @@ | ||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT | ||
|
||
#include "qcom-ipq4019.dtsi" | ||
#include <dt-bindings/gpio/gpio.h> | ||
#include <dt-bindings/input/input.h> | ||
#include <dt-bindings/soc/qcom,tcsr.h> | ||
|
||
/ { | ||
compatible = "tel,x1pro","qcom,ipq4019"; | ||
aliases { | ||
led-boot = &led_status; | ||
led-failsafe = &led_status; | ||
led-running = &led_status; | ||
led-upgrade = &led_status; | ||
serial0 = &blsp1_uart1; | ||
serial1 = &blsp1_uart2; | ||
}; | ||
|
||
soc { | ||
|
||
rng@22000 { | ||
status = "okay"; | ||
}; | ||
|
||
mdio@90000 { | ||
status = "okay"; | ||
pinctrl-0 = <&mdio_pins>; | ||
pinctrl-names = "default"; | ||
reset-gpios = <&tlmm 47 GPIO_ACTIVE_LOW>; | ||
reset-delay-us = <2000>; | ||
}; | ||
|
||
ess-psgmii@98000 { | ||
status = "okay"; | ||
}; | ||
|
||
tcsr@1949000 { | ||
compatible = "qcom,tcsr"; | ||
reg = <0x1949000 0x100>; | ||
qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>; | ||
}; | ||
|
||
tcsr@194b000 { | ||
compatible = "qcom,tcsr"; | ||
reg = <0x194b000 0x100>; | ||
qcom,usb-hsphy-mode-select = <TCSR_USB_HSPHY_HOST_MODE>; | ||
status = "okay"; | ||
}; | ||
|
||
ess_tcsr@1953000 { | ||
compatible = "qcom,tcsr"; | ||
reg = <0x1953000 0x1000>; | ||
qcom,ess-interface-select = <TCSR_ESS_PSGMII>; | ||
}; | ||
|
||
tcsr@1957000 { | ||
compatible = "qcom,tcsr"; | ||
reg = <0x1957000 0x100>; | ||
qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>; | ||
}; | ||
|
||
usb2@60f8800 { | ||
status = "okay"; | ||
|
||
dwc3@6000000 { | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
|
||
port@1 { | ||
reg = <1>; | ||
#trigger-source-cells = <0>; | ||
}; | ||
}; | ||
}; | ||
|
||
usb3@8af8800 { | ||
status = "okay"; | ||
|
||
dwc3@8a00000 { | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
|
||
port@1 { | ||
reg = <1>; | ||
#trigger-source-cells = <0>; | ||
}; | ||
|
||
port@2 { | ||
reg = <2>; | ||
#trigger-source-cells = <0>; | ||
}; | ||
}; | ||
}; | ||
|
||
watchdog@b017000 { | ||
status = "okay"; | ||
}; | ||
|
||
ess-switch@c000000 { | ||
status = "okay"; | ||
}; | ||
|
||
edma@c080000 { | ||
status = "okay"; | ||
}; | ||
|
||
leds { | ||
compatible = "gpio-leds"; | ||
pinctrl-0 = <&led_pins>; | ||
pinctrl-names = "default"; | ||
|
||
led_status: status { | ||
label = "green:status"; | ||
gpios = <&tlmm 68 GPIO_ACTIVE_LOW>; | ||
}; | ||
}; | ||
|
||
keys { | ||
compatible = "gpio-keys"; | ||
|
||
reset { | ||
label = "reset"; | ||
gpios = <&tlmm 18 GPIO_ACTIVE_LOW>; | ||
linux,code = <KEY_RESTART>; | ||
}; | ||
}; | ||
}; | ||
}; | ||
|
||
&blsp_dma { | ||
status = "okay"; | ||
}; | ||
|
||
&blsp1_uart1 { | ||
pinctrl-0 = <&serial_0_pins>; | ||
pinctrl-names = "default"; | ||
status = "okay"; | ||
}; | ||
|
||
&blsp1_uart2 { | ||
pinctrl-0 = <&serial_1_pins>; | ||
pinctrl-names = "default"; | ||
status = "okay"; | ||
}; | ||
|
||
&qpic_bam { | ||
status = "okay"; | ||
}; | ||
|
||
&tlmm { | ||
mdio_pins: mdio_pinmux { | ||
mux_1 { | ||
pins = "gpio6"; | ||
function = "mdio"; | ||
bias-pull-up; | ||
}; | ||
mux_2 { | ||
pins = "gpio7"; | ||
function = "mdc"; | ||
bias-pull-up; | ||
}; | ||
}; | ||
|
||
serial_0_pins: serial0-pinmux { | ||
mux { | ||
pins = "gpio16", "gpio17"; | ||
function = "blsp_uart0"; | ||
bias-disable; | ||
}; | ||
}; | ||
serial_1_pins: serial1_pinmux { | ||
mux { | ||
pins = "gpio8", "gpio9"; | ||
function = "blsp_uart1"; | ||
bias-disable; | ||
}; | ||
}; | ||
|
||
spi_0_pins: spi_0_pinmux { | ||
pinmux { | ||
function = "blsp_spi0"; | ||
pins = "gpio13", "gpio14", "gpio15"; | ||
drive-strength = <12>; | ||
bias-disable; | ||
}; | ||
|
||
pinmux_cs { | ||
function = "gpio"; | ||
pins = "gpio12"; | ||
drive-strength = <2>; | ||
bias-disable; | ||
output-high; | ||
}; | ||
}; | ||
|
||
led_pins: led_pinmux { | ||
mux { | ||
function = "gpio"; | ||
pins = "gpio68"; | ||
bias-disabled; | ||
output-low; | ||
}; | ||
}; | ||
}; | ||
|
||
&usb3_ss_phy { | ||
status = "okay"; | ||
}; | ||
|
||
&usb3_hs_phy { | ||
status = "okay"; | ||
}; | ||
|
||
&usb2_hs_phy { | ||
status = "okay"; | ||
}; | ||
|
||
&wifi0 { | ||
status = "okay"; | ||
nvmem-cell-names = "pre-calibration"; | ||
nvmem-cells = <&precal_art_1000>; | ||
}; | ||
|
||
&wifi1 { | ||
status = "okay"; | ||
nvmem-cell-names = "pre-calibration"; | ||
nvmem-cells = <&precal_art_5000>; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters