diff --git a/6.1/target/linux/ipq40xx/dts/platform_name.dtsi b/6.1/target/linux/ipq40xx/dts/platform_name.dtsi new file mode 100644 index 00000000..b5ef40ed --- /dev/null +++ b/6.1/target/linux/ipq40xx/dts/platform_name.dtsi @@ -0,0 +1 @@ +/ { platform = "RUTX"; }; \ No newline at end of file diff --git a/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-08.dts b/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-08.dts new file mode 100644 index 00000000..6cae960f --- /dev/null +++ b/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-08.dts @@ -0,0 +1,24 @@ +#include "qcom-ipq4018-rutx-shiftreg.dtsi" + +/ { + model = "RUTX08"; + + soc { + gpio-export { + compatible = "gpio-export"; + #size-cells = <0>; + + 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>; + }; + }; + }; +}; diff --git a/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-08_STM32.dts b/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-08_STM32.dts new file mode 100644 index 00000000..b529095f --- /dev/null +++ b/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-08_STM32.dts @@ -0,0 +1,26 @@ +#include "qcom-ipq4018-rutx-STM32.dtsi" + +/ { + model = "RUTX08 STM32"; + + soc { + gpio-export { + compatible = "gpio-export"; + #size-cells = <0>; + + 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>; + }; + }; + }; +}; diff --git a/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-09.dts b/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-09.dts new file mode 100644 index 00000000..c13901d7 --- /dev/null +++ b/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-09.dts @@ -0,0 +1,106 @@ +#include "qcom-ipq4018-rutx-shiftreg.dtsi" + +/ { + model = "RUTX09"; + + 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_eth_3"; + 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"; + }; + }; + }; +}; diff --git a/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-09_STM32.dts b/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-09_STM32.dts new file mode 100644 index 00000000..a4e31621 --- /dev/null +++ b/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-09_STM32.dts @@ -0,0 +1,108 @@ +#include "qcom-ipq4018-rutx-STM32.dtsi" + +/ { + model = "RUTX09 STM32"; + + soc { + 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_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_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>; + }; + + 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"; + }; + }; + }; +}; diff --git a/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-10.dts b/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-10.dts new file mode 100644 index 00000000..3b0d5f20 --- /dev/null +++ b/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-10.dts @@ -0,0 +1,38 @@ +#include "qcom-ipq4018-rutx-shiftreg.dtsi" + +/ { + model = "RUTX10"; + + soc { + gpio-export { + compatible = "gpio-export"; + #size-cells = <0>; + + 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>; + }; + }; + }; +}; diff --git a/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-10_STM32.dts b/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-10_STM32.dts new file mode 100644 index 00000000..3e2f81c0 --- /dev/null +++ b/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-10_STM32.dts @@ -0,0 +1,40 @@ +#include "qcom-ipq4018-rutx-STM32.dtsi" + +/ { + model = "RUTX10 STM32"; + + soc { + gpio-export { + compatible = "gpio-export"; + #size-cells = <0>; + + 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_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>; + }; + }; + }; +}; diff --git a/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-11.dts b/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-11.dts new file mode 100644 index 00000000..3800edf8 --- /dev/null +++ b/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-11.dts @@ -0,0 +1,121 @@ +#include "qcom-ipq4018-rutx-shiftreg.dtsi" + +/ { + model = "RUTX11"; + + 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_eth_3"; + gpios = <&shift_io 13 GPIO_ACTIVE_HIGH>; + }; + + led_wan_wifi { + label = "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>; + }; + }; + }; +}; diff --git a/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-11_STM32.dts b/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-11_STM32.dts new file mode 100644 index 00000000..4fb4eb20 --- /dev/null +++ b/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-11_STM32.dts @@ -0,0 +1,123 @@ +#include "qcom-ipq4018-rutx-STM32.dtsi" + +/ { + model = "RUTX11 STM32"; + + soc { + 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_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 3 GPIO_ACTIVE_HIGH>; + }; + + led_wan_wifi { + label = "wan_wifi_4"; + gpios = <&stm32_io 2 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>; + }; + + 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"; + }; + + 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>; + }; + }; + }; +}; diff --git a/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-12.dts b/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-12.dts new file mode 100644 index 00000000..cb42c269 --- /dev/null +++ b/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-12.dts @@ -0,0 +1,148 @@ +#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_eth_3"; + gpios = <&shift_io 6 GPIO_ACTIVE_HIGH>; + }; + + led_wan_wifi { + label = "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>; + }; + }; + }; +}; diff --git a/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-12_STM32.dts b/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-12_STM32.dts new file mode 100644 index 00000000..ffc927ca --- /dev/null +++ b/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-12_STM32.dts @@ -0,0 +1,150 @@ +#include "qcom-ipq4018-rutx-STM32.dtsi" + +/ { + model = "RUTX12 STM32"; + + soc { + 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_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 3 GPIO_ACTIVE_HIGH>; + }; + + led_wan_wifi { + label = "wan_wifi_4"; + gpios = <&stm32_io 2 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_3 { + label = "mob_ssid_3"; + gpios = <&stm32_io 9 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>; + }; + }; + }; +}; diff --git a/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-14.dts b/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-14.dts new file mode 100644 index 00000000..138a0b17 --- /dev/null +++ b/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-14.dts @@ -0,0 +1,98 @@ +#include "qcom-ipq4018-rutx-shiftreg.dtsi" + +/ { + model = "RUTX14"; + + 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 = "gpio23"; + gpio-export,output = <0>; + gpios = <&shift_io 10 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_eth_3"; + gpios = <&shift_io 7 GPIO_ACTIVE_HIGH>; + }; + + led_wan_wifi { + label = "wan_wifi_4"; + gpios = <&shift_io 6 GPIO_ACTIVE_HIGH>; + }; + + led_gen_3 { + label = "mob_gen_3"; + gpios = <&shift_io 5 GPIO_ACTIVE_HIGH>; + }; + + led_gen_4 { + label = "mob_gen_4"; + gpios = <&shift_io 4 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"; + }; + + led_wifi_24 { + label = "wifi_gen_2"; + gpios = <&shift_io 12 GPIO_ACTIVE_HIGH>; + }; + + led_wifi_50 { + label = "wifi_gen_5"; + gpios = <&shift_io 13 GPIO_ACTIVE_HIGH>; + }; + }; + }; +}; diff --git a/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-14_STM32.dts b/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-14_STM32.dts new file mode 100644 index 00000000..c0ff63c2 --- /dev/null +++ b/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-14_STM32.dts @@ -0,0 +1,100 @@ +#include "qcom-ipq4018-rutx-STM32.dtsi" + +/ { + model = "RUTX14 STM32"; + + soc { + 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_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 3 GPIO_ACTIVE_HIGH>; + }; + + led_wan_wifi { + label = "wan_wifi_4"; + gpios = <&stm32_io 2 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>; + }; + + led_ssid_1 { + label = "mob_ssid_1"; + gpios = <&stm32_io 7 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_5 { + label = "mob_ssid_5"; + gpios = <&stm32_io 11 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>; + }; + }; + }; +}; diff --git a/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-50.dts b/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-50.dts new file mode 100644 index 00000000..6bd70979 --- /dev/null +++ b/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-50.dts @@ -0,0 +1,110 @@ +#include "qcom-ipq4018-rutx-shiftreg.dtsi" + +/ { + model = "RUTX50"; + + soc { + + ext_io { + shift_io: shift_io@0 { + registers-number = <2>; + }; + }; + + 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 = "gpio23"; + gpio-export,output = <0>; + gpios = <&shift_io 10 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_eth_3"; + gpios = <&shift_io 6 GPIO_ACTIVE_HIGH>; + }; + + led_wan_wifi { + label = "wan_wifi_4"; + gpios = <&shift_io 7 GPIO_ACTIVE_HIGH>; + }; + + led_gen_3 { + label = "mob_gen_3"; + gpios = <&shift_io 5 GPIO_ACTIVE_HIGH>; + }; + + led_gen_4 { + label = "mob_gen_4"; + gpios = <&shift_io 4 GPIO_ACTIVE_HIGH>; + }; + + led_gen_5 { + label = "mob_gen_5"; + gpios = <&shift_io 3 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"; + }; + + led_wifi_24 { + label = "wifi_gen_2"; + gpios = <&shift_io 12 GPIO_ACTIVE_HIGH>; + }; + + led_wifi_50 { + label = "wifi_gen_5"; + gpios = <&shift_io 13 GPIO_ACTIVE_HIGH>; + }; + }; + }; +}; diff --git a/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-R1.dts b/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-R1.dts new file mode 100644 index 00000000..d023fa6f --- /dev/null +++ b/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-R1.dts @@ -0,0 +1,83 @@ +#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_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"; + }; + }; + }; +}; diff --git a/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-R1_STM32.dts b/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-R1_STM32.dts new file mode 100644 index 00000000..bccadda2 --- /dev/null +++ b/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-R1_STM32.dts @@ -0,0 +1,82 @@ +#include "qcom-ipq4018-rutx-STM32.dtsi" + +/ { + model = "RUTXR1 STM32"; + + soc { + 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_sim_select { + gpio-export,name = "sim_sel"; + gpio-export,output = <1>; + gpios = <&stm32_io 22 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 3 GPIO_ACTIVE_HIGH>; + }; + + led_wan_mob { + label = "wan_mob_5"; + gpios = <&stm32_io 16 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>; + }; + + led_ssid_1 { + label = "mob_ssid_1"; + gpios = <&stm32_io 7 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_5 { + label = "mob_ssid_5"; + gpios = <&stm32_io 11 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "timer"; + }; + }; + }; +}; diff --git a/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-STM32.dtsi b/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-STM32.dtsi new file mode 100644 index 00000000..14c3f3f7 --- /dev/null +++ b/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-STM32.dtsi @@ -0,0 +1,21 @@ +#include "qcom-ipq4018-rutx-common.dtsi" +#include "qcom-ipq4018-rutx-i2c.dtsi" + +/ { + 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>; + }; + }; + }; +}; diff --git a/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-common.dtsi b/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-common.dtsi new file mode 100644 index 00000000..4c233739 --- /dev/null +++ b/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-common.dtsi @@ -0,0 +1,84 @@ +#include "qcom-ipq4019-ap.dk01.1.dtsi" +#include +#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; + }; + }; + }; +}; diff --git a/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-i2c.dtsi b/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-i2c.dtsi new file mode 100644 index 00000000..eab95a62 --- /dev/null +++ b/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-i2c.dtsi @@ -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"; + }; + }; +}; diff --git a/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-shiftreg.dtsi b/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-shiftreg.dtsi new file mode 100644 index 00000000..1bf375e0 --- /dev/null +++ b/6.1/target/linux/ipq40xx/dts/qcom-ipq4018-rutx-shiftreg.dtsi @@ -0,0 +1,27 @@ +#include "qcom-ipq4018-rutx-common.dtsi" + +/ { + 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>; + }; + }; + }; +}; diff --git a/6.1/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-rutx.dtsi b/6.1/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-rutx.dtsi deleted file mode 100644 index 201ca909..00000000 --- a/6.1/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-rutx.dtsi +++ /dev/null @@ -1,287 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later OR MIT - -#include "qcom-ipq4019-ap.dk01.1.dtsi" - -#include -#include - -/ { - memory { - device_type = "memory"; - reg = <0x80000000 0x10000000>; - }; - - soc { - pinctrl@1000000 { - mdio_pins: mdio_pinmux { - mux_1 { - pins = "gpio53"; - function = "mdio"; - bias-pull-up; - }; - mux_2 { - pins = "gpio52"; - function = "mdc"; - bias-pull-up; - }; - }; - - i2c_0_pins: i2c_0_pinmux { - mux { - pins = "gpio58", "gpio59"; - function = "blsp_i2c0"; - bias-disable; - }; - }; - }; - - keys { - compatible = "gpio-keys"; - - reset { - label = "reset"; - gpios = <&tlmm 4 1>; - linux,code = ; - }; - }; - - gpio_export { - compatible = "gpio-export"; - #size-cells = <0>; - - gpio_out { - gpio-export,name = "gpio_out"; - gpio-export,output = <0>; - gpio-export,direction_may_change = <0>; - gpios = <&stm32_io 23 GPIO_ACTIVE_HIGH>; - }; - - gpio_in { - gpio-export,name = "gpio_in"; - gpio-export,input = <0>; - gpio-export,direction_may_change = <0>; - gpios = <&stm32_io 24 GPIO_ACTIVE_LOW>; - }; - }; - }; -}; - -&blsp1_i2c3 { - status = "okay"; - pinctrl-0 = <&i2c_0_pins>; - pinctrl-names = "default"; - clock-frequency = <400000>; - - stm32_io: stm32@74 { - compatible = "tlt,stm32v1"; - #gpio-cells = <2>; - #interrupt-cells = <2>; - gpio-controller; - interrupt-controller; - interrupt-parent = <&tlmm>; - interrupts = <5 2>; - reg = <0x74>; - }; -}; - -&blsp1_spi1 { - cs-gpios = <&tlmm 54 0>, <&tlmm 63 0>; - num-cs = <2>; - - xt25f128b@0 { - /* - * Factory U-boot looks in 0:BOOTCONFIG partition for active - * partitions settings and mangles the partition config so - * 0:QSEE/0:QSEE_1, 0:CDT/0:CDT_1 and 0:APPSBL/0:APPSBL_1 pairs - * can be swaped. It isn't a problem but we never can be sure where - * OFW put factory images. "n25q128a11" is required for proper nor - * recognition in u-boot. - */ - compatible = "jedec,spi-nor", "n25q128a11"; - #address-cells = <1>; - #size-cells = <1>; - reg = <0>; - spi-max-frequency = <24000000>; - - 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:BOOTCONFIG"; - reg = <0x60000 0x20000>; - read-only; - }; - - partition@80000 { - label = "0:BOOTCONFIG1"; - reg = <0x80000 0x20000>; - read-only; - }; - - partition@a0000 { - label = "0:QSEE"; - reg = <0xa0000 0x60000>; - read-only; - }; - - partition@100000 { - label = "0:QSEE_1"; - reg = <0x100000 0x60000>; - read-only; - }; - - partition@160000 { - label = "0:CDT"; - reg = <0x160000 0x10000>; - read-only; - }; - - partition@170000 { - label = "0:CDT_1"; - reg = <0x170000 0x10000>; - read-only; - }; - - partition@180000 { - label = "0:DDRPARAMS"; - reg = <0x180000 0x10000>; - read-only; - }; - - partition@190000 { - label = "0:APPSBLENV"; - reg = <0x190000 0x10000>; - read-only; - }; - - partition@1a0000 { - label = "0:APPSBL"; - reg = <0x1a0000 0xa0000>; - read-only; - }; - - partition@240000 { - label = "0:APPSBL_1"; - reg = <0x240000 0xa0000>; - read-only; - }; - - partition@2e0000 { - label = "0:ART"; - reg = <0x2e0000 0x10000>; - read-only; - }; - - config: partition@2f0000 { - label = "0:CONFIG"; - reg = <0x2f0000 0x10000>; - read-only; - }; - - partition@300000 { - label = "0:CONFIG_RW"; - reg = <0x300000 0x10000>; - read-only; - }; - - partition@310000 { - label = "0:EVENTSLOG"; - reg = <0x310000 0x90000>; - read-only; - }; - }; - }; - - xt26g02a@1 { - /* - * Factory U-boot looks in 0:BOOTCONFIG partition for active - * partitions settings and mangles the partition config so - * rootfs/rootfs_1 pairs can be swaped. - * It isn't a problem but we never can be sure where OFW put - * factory images. "spinand,mt29f" value is required for proper - * nand recognition in u-boot. - */ - compatible = "spi-nand", "spinand,mt29f"; - #address-cells = <1>; - #size-cells = <1>; - reg = <1>; - spi-max-frequency = <24000000>; - - partitions { - compatible = "fixed-partitions"; - #address-cells = <1>; - #size-cells = <1>; - - partition@0 { - label = "rootfs_1"; - reg = <0x00000000 0x08000000>; - }; - - partition@8000000 { - label = "rootfs"; - reg = <0x08000000 0x08000000>; - }; - }; - }; -}; - -&mdio { - status = "okay"; - pinctrl-0 = <&mdio_pins>; - pinctrl-names = "default"; - phy-reset-gpio = <&tlmm 62 0>; -}; - -&wifi0 { - nvmem-cell-names = "pre-calibration", "mac-address"; - nvmem-cells = <&precal_art_1000>, <&macaddr_config_0>; - mac-address-increment = <2>; -}; - -&wifi1 { - nvmem-cell-names = "pre-calibration", "mac-address"; - nvmem-cells = <&precal_art_5000>, <&macaddr_config_0>; - mac-address-increment = <3>; -}; - -&gmac { - status = "okay"; -}; - -&switch { - status = "okay"; -}; - -&swport2 { - status = "okay"; - label = "lan1"; -}; - -&swport3 { - status = "okay"; - label = "lan2"; -}; - -&swport4 { - status = "okay"; - label = "lan3"; -}; - -&swport5 { - status = "okay"; - label = "wan"; -}; diff --git a/6.1/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-rutx12.dts b/6.1/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-rutx12.dts deleted file mode 100644 index 5796298c..00000000 --- a/6.1/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-rutx12.dts +++ /dev/null @@ -1,36 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later OR MIT - -#include "qcom-ipq4018-rutx.dtsi" - -/ { - model = "Teltonika RUTX12"; - compatible = "teltonika,rutx12"; - - soc { - leds { - compatible = "gpio-leds"; - - wifi2g { - label = "green:wifi2g"; - gpios = <&stm32_io 19 GPIO_ACTIVE_HIGH>; - linux,default-trigger = "phy0tpt"; - }; - - wifi5g { - label = "green:wifi5g"; - gpios = <&stm32_io 18 GPIO_ACTIVE_HIGH>; - linux,default-trigger = "phy1tpt"; - }; - }; - }; -}; - -&wifi0 { - status = "okay"; - qcom,ath10k-calibration-variant = "Teltonika-RUTX12"; -}; - -&wifi1 { - status = "okay"; - qcom,ath10k-calibration-variant = "Teltonika-RUTX12"; -}; diff --git a/6.1/target/linux/ipq40xx/image/generic.mk b/6.1/target/linux/ipq40xx/image/generic.mk index 45ada9d0..9349d0f8 100644 --- a/6.1/target/linux/ipq40xx/image/generic.mk +++ b/6.1/target/linux/ipq40xx/image/generic.mk @@ -58,6 +58,19 @@ define Build/append-rutx-metadata }' | fwtool -I - $@ endef +define Build/fit-rutx + $(TOPDIR)/scripts/mkits-rutx.sh \ + -D $(DEVICE_NAME) -o $@.its -k $@ \ + $(if $(word 2,$(1)),-d $(word 2,$(1))) -C $(word 1,$(1)) \ + -a $(KERNEL_LOADADDR) -e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \ + $(if $(DEVICE_FDT_NUM),-n $(DEVICE_FDT_NUM)) \ + -c $(if $(DEVICE_DTS_CONFIG),$(DEVICE_DTS_CONFIG),"config@1") \ + -A $(LINUX_KARCH) -v $(LINUX_VERSION) + PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $@.its $@.new + @mv $@.new $@ +endef + + define Build/copy-file cat "$(1)" > "$@" endef @@ -1089,7 +1102,31 @@ define Device/teltonika_rutx12 DEVICE_PACKAGES := kmod-bluetooth endef # Missing DSA Setup -TARGET_DEVICES += teltonika_rutx12 +#TARGET_DEVICES += teltonika_rutx12 + +define Device/teltonika_rutx + $(call Device/FitImage) + $(call Device/UbiFit) + DEVICE_VENDOR := Teltonika + DEVICE_MODEL := RUTX + BOARD_NAME := rutx + SOC := qcom-ipq4018 + DEVICE_DTS_DIR := ../dts + DEVICE_DTS := $(foreach dts,$(notdir $(wildcard $(PLATFORM_DIR)/dts/*.dts)),$(patsubst %.dts,%,$(dts))) + DEVICE_DTS_CONFIG := config@5 + KERNEL = kernel-bin | gzip | fit-rutx gzip "$$(KDIR)/{$$(subst $$(space),$$(comma),$$(addprefix image-,$$(addsuffix .dtb,$$(DEVICE_DTS))))}" + KERNEL_INSTALL := 1 + BLOCKSIZE := 128k + PAGESIZE := 2048 + FILESYSTEMS := squashfs + KERNEL_IN_UBI := 1 + IMAGES := sysupgrade.bin + IMAGE/sysupgrade.bin := append-ubi | qsdk-ipq-factory-nand | append-rutx-metadata + #DEVICE_PACKAGES := ipq-wifi-teltonika_rutx kmod-bluetooth kmod-r2ec sysupgrade-helper + DEVICE_PACKAGES := ipq-wifi-teltonika_rutx kmod-bluetooth sysupgrade-helper + HW_SUPPORT := io_expander%stm32:shiftreg_1 +endef +TARGET_DEVICES += teltonika_rutx define Device/tel_x1pro $(call Device/FitImage) diff --git a/6.1/target/linux/ipq40xx/patches-6.1/709-arm-dts-ipq4019-QCA807x-properties.patch b/6.1/target/linux/ipq40xx/patches-6.1/708-arm-dts-ipq4019-QCA807x-properties.patch similarity index 97% rename from 6.1/target/linux/ipq40xx/patches-6.1/709-arm-dts-ipq4019-QCA807x-properties.patch rename to 6.1/target/linux/ipq40xx/patches-6.1/708-arm-dts-ipq4019-QCA807x-properties.patch index cc4b44b3..c08f3a83 100644 --- a/6.1/target/linux/ipq40xx/patches-6.1/709-arm-dts-ipq4019-QCA807x-properties.patch +++ b/6.1/target/linux/ipq40xx/patches-6.1/708-arm-dts-ipq4019-QCA807x-properties.patch @@ -20,7 +20,7 @@ Signed-off-by: Robert Marko / { #address-cells = <1>; -@@ -726,22 +727,38 @@ +@@ -598,22 +599,39 @@ ethphy0: ethernet-phy@0 { reg = <0>; @@ -56,6 +56,7 @@ Signed-off-by: Robert Marko + reg = <5>; + + qcom,tx-driver-strength = ; ++ qcom,psgmii-az; }; }; diff --git a/6.1/target/linux/ipq40xx/patches-6.1/900-dts-ipq4019-ap-dk01.1.patch b/6.1/target/linux/ipq40xx/patches-6.1/900-dts-ipq4019-ap-dk01.1.patch new file mode 100644 index 00000000..ceeb7908 --- /dev/null +++ b/6.1/target/linux/ipq40xx/patches-6.1/900-dts-ipq4019-ap-dk01.1.patch @@ -0,0 +1,158 @@ +--- a/arch/arm/boot/dts/qcom-ipq4019-ap.dk01.1.dtsi ++++ b/arch/arm/boot/dts/qcom-ipq4019-ap.dk01.1.dtsi +@@ -15,6 +15,7 @@ + */ + + #include "qcom-ipq4019.dtsi" ++#include + + / { + model = "Qualcomm Technologies, Inc. IPQ4019/AP-DK01.1"; +@@ -29,6 +30,32 @@ + }; + + soc { ++ tcsr@194b000 { ++ /* select hostmode */ ++ compatible = "qcom,tcsr"; ++ reg = <0x194b000 0x100>; ++ qcom,usb-hsphy-mode-select = ; ++ status = "okay"; ++ }; ++ ++ ess_tcsr@1953000 { ++ compatible = "qcom,tcsr"; ++ reg = <0x1953000 0x1000>; ++ qcom,ess-interface-select = ; ++ }; ++ ++ tcsr@1949000 { ++ compatible = "qcom,tcsr"; ++ reg = <0x1949000 0x100>; ++ qcom,wifi_glb_cfg = ; ++ }; ++ ++ tcsr@1957000 { ++ compatible = "qcom,tcsr"; ++ reg = <0x1957000 0x100>; ++ qcom,wifi_noc_memtype_m0_m2 = ; ++ }; ++ + rng@22000 { + status = "ok"; + }; +@@ -74,14 +101,6 @@ + pinctrl-names = "default"; + status = "okay"; + cs-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>; +- +- mx25l25635e@0 { +- #address-cells = <1>; +- #size-cells = <1>; +- reg = <0>; +- compatible = "mx25l25635e"; +- spi-max-frequency = <24000000>; +- }; + }; + + serial@78af000 { +@@ -109,5 +128,22 @@ + wifi@a800000 { + status = "ok"; + }; ++ ++ mdio@90000 { ++ status = "okay"; ++ }; ++ ++ ess-switch@c000000 { ++ status = "okay"; ++ }; ++ ++ ess-psgmii@98000 { ++ status = "okay"; ++ }; ++ ++ edma@c080000 { ++ status = "okay"; ++ }; ++ + }; + }; +--- a/arch/arm/boot/dts/qcom-ipq4019-ap.dk01.1-c1.dts ++++ b/arch/arm/boot/dts/qcom-ipq4019-ap.dk01.1-c1.dts +@@ -18,5 +18,73 @@ + + / { + model = "Qualcomm Technologies, Inc. IPQ40xx/AP-DK01.1-C1"; +- compatible = "qcom,ipq4019-ap-dk01.1-c1", "qcom,ipq4019"; ++ compatible = "qcom,ipq4019-ap-dk01.1-c1", "qcom,ipq4019", "qcom,ap-dk01.1-c1", "qcom,ap-dk01.2-c1"; ++ ++ memory { ++ device_type = "memory"; ++ reg = <0x80000000 0x10000000>; ++ }; ++}; ++ ++&blsp1_spi1 { ++ mx25l25635f@0 { ++ compatible = "mx25l25635f", "jedec,spi-nor"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ reg = <0>; ++ spi-max-frequency = <24000000>; ++ ++ SBL1@0 { ++ label = "SBL1"; ++ reg = <0x0 0x40000>; ++ read-only; ++ }; ++ MIBIB@40000 { ++ label = "MIBIB"; ++ reg = <0x40000 0x20000>; ++ read-only; ++ }; ++ QSEE@60000 { ++ label = "QSEE"; ++ reg = <0x60000 0x60000>; ++ read-only; ++ }; ++ CDT@c0000 { ++ label = "CDT"; ++ reg = <0xc0000 0x10000>; ++ read-only; ++ }; ++ DDRPARAMS@d0000 { ++ label = "DDRPARAMS"; ++ reg = <0xd0000 0x10000>; ++ read-only; ++ }; ++ APPSBLENV@e0000 { ++ label = "APPSBLENV"; ++ reg = <0xe0000 0x10000>; ++ read-only; ++ }; ++ APPSBL@f0000 { ++ label = "APPSBL"; ++ reg = <0xf0000 0x80000>; ++ read-only; ++ }; ++ ART@170000 { ++ label = "ART"; ++ reg = <0x170000 0x10000>; ++ read-only; ++ }; ++ kernel@180000 { ++ label = "kernel"; ++ reg = <0x180000 0x400000>; ++ }; ++ rootfs@580000 { ++ label = "rootfs"; ++ reg = <0x580000 0x1600000>; ++ }; ++ firmware@180000 { ++ label = "firmware"; ++ reg = <0x180000 0x1a00000>; ++ }; ++ }; + }; diff --git a/6.1/target/linux/ipq40xx/patches-6.1/902-dts-ipq4019-ap-dk04.1.patch b/6.1/target/linux/ipq40xx/patches-6.1/902-dts-ipq4019-ap-dk04.1.patch new file mode 100644 index 00000000..ebcd6214 --- /dev/null +++ b/6.1/target/linux/ipq40xx/patches-6.1/902-dts-ipq4019-ap-dk04.1.patch @@ -0,0 +1,129 @@ +--- a/arch/arm/boot/dts/qcom-ipq4019-ap.dk04.1.dtsi ++++ b/arch/arm/boot/dts/qcom-ipq4019-ap.dk04.1.dtsi +@@ -17,53 +17,79 @@ + stdout-path = "serial0:115200n8"; + }; + +- memory { +- device_type = "memory"; +- reg = <0x80000000 0x10000000>; /* 256MB */ +- }; +- + soc { ++ rng@22000 { ++ status = "okay"; ++ }; ++ + pinctrl@1000000 { + serial_0_pins: serial0-pinmux { +- pins = "gpio16", "gpio17"; +- function = "blsp_uart0"; +- bias-disable; ++ mux { ++ pins = "gpio16", "gpio17"; ++ function = "blsp_uart0"; ++ bias-disable; ++ }; + }; + + serial_1_pins: serial1-pinmux { +- pins = "gpio8", "gpio9", +- "gpio10", "gpio11"; +- function = "blsp_uart1"; +- bias-disable; ++ mux { ++ pins = "gpio8", "gpio9"; ++ function = "blsp_uart1"; ++ bias-disable; ++ }; + }; + + spi_0_pins: spi-0-pinmux { + pinmux { + function = "blsp_spi0"; + pins = "gpio13", "gpio14", "gpio15"; +- bias-disable; + }; + pinmux_cs { + function = "gpio"; + pins = "gpio12"; ++ }; ++ pinconf { ++ pins = "gpio13", "gpio14", "gpio15"; ++ drive-strength = <12>; ++ bias-disable; ++ }; ++ pinconf_cs { ++ pins = "gpio12"; ++ drive-strength = <2>; + bias-disable; + output-high; + }; + }; + + i2c_0_pins: i2c-0-pinmux { +- pins = "gpio20", "gpio21"; +- function = "blsp_i2c0"; +- bias-disable; ++ pinmux { ++ function = "blsp_i2c0"; ++ pins = "gpio10", "gpio11"; ++ }; ++ pinconf { ++ pins = "gpio10", "gpio11"; ++ drive-strength = <16>; ++ bias-disable; ++ }; + }; + + nand_pins: nand-pins { +- pins = "gpio53", "gpio55", "gpio56", +- "gpio57", "gpio58", "gpio59", +- "gpio60", "gpio62", "gpio63", +- "gpio64", "gpio65", "gpio66", +- "gpio67", "gpio68", "gpio69"; +- function = "qpic"; ++ pullups { ++ pins = "gpio52", "gpio53", "gpio58", ++ "gpio59"; ++ function = "qpic"; ++ bias-pull-up; ++ }; ++ ++ pulldowns { ++ pins = "gpio54", "gpio55", "gpio56", ++ "gpio57", "gpio60", "gpio61", ++ "gpio62", "gpio63", "gpio64", ++ "gpio65", "gpio66", "gpio67", ++ "gpio68", "gpio69"; ++ function = "qpic"; ++ bias-pull-down; ++ }; + }; + }; + +@@ -103,9 +129,24 @@ + perst-gpio = <&tlmm 38 0x1>; + }; + ++ i2c0: i2c@78b7000 { /* BLSP1 QUP2 */ ++ pinctrl-0 = <&i2c_0_pins>; ++ pinctrl-names = "default"; ++ ++ status = "okay"; ++ }; ++ + qpic-nand@79b0000 { + pinctrl-0 = <&nand_pins>; + pinctrl-names = "default"; + }; ++ ++ crypto@8e3a000 { ++ status = "okay"; ++ }; ++ ++ watchdog@b017000 { ++ status = "okay"; ++ }; + }; + };