|
@@ -0,0 +1,461 @@
|
|
|
|
+// SPDX-License-Identifier: GPL-2.0-only
|
|
|
|
+
|
|
|
|
+/dts-v1/;
|
|
|
|
+
|
|
|
|
+#include "ipq5018.dtsi"
|
|
|
|
+#include "ipq5018-ess.dtsi"
|
|
|
|
+
|
|
|
|
+#include <dt-bindings/gpio/gpio.h>
|
|
|
|
+#include <dt-bindings/input/input.h>
|
|
|
|
+#include <dt-bindings/leds/common.h>
|
|
|
|
+
|
|
|
|
+/ {
|
|
|
|
+ #address-cells = <0x2>;
|
|
|
|
+ #size-cells = <0x2>;
|
|
|
|
+ model = "JDCloud RE-CS-03";
|
|
|
|
+ compatible = "jdcloud,re-cs-03", "qcom,ipq5018";
|
|
|
|
+ interrupt-parent = <&intc>;
|
|
|
|
+
|
|
|
|
+ aliases {
|
|
|
|
+ sdhc1 = &sdhc_1;
|
|
|
|
+ serial0 = &blsp1_uart1;
|
|
|
|
+ ethernet0 = "/soc/dp1";
|
|
|
|
+ ethernet1 = "/soc/dp2";
|
|
|
|
+
|
|
|
|
+ led-boot = &led_red;
|
|
|
|
+ led-failsafe = &led_red;
|
|
|
|
+ led-running = &led_blue;
|
|
|
|
+ led-upgrade = &led_green;
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ chosen {
|
|
|
|
+ stdout-path = "serial0";
|
|
|
|
+ bootargs-append = " swiotlb=1 coherent_pool=2M";
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ reserved-memory {
|
|
|
|
+ q6_mem_regions: q6_mem_regions@4B000000 {
|
|
|
|
+ no-map;
|
|
|
|
+ reg = <0x0 0x4B000000 0x0 0x3900000>;
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ q6_code_data: q6_code_data@4B000000 {
|
|
|
|
+ no-map;
|
|
|
|
+ reg = <0x0 0x4B000000 0x0 01000000>;
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ q6_ipq5018_data: q6_ipq5018_data@4C000000 {
|
|
|
|
+ no-map;
|
|
|
|
+ reg = <0x0 0x4C000000 0x0 0xE00000>;
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ m3_dump: m3_dump@4CE00000 {
|
|
|
|
+ no-map;
|
|
|
|
+ reg = <0x0 0x4CE00000 0x0 0x100000>;
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ q6_etr_region: q6_etr_dump@4CF00000 {
|
|
|
|
+ no-map;
|
|
|
|
+ reg = <0x0 0x4CF00000 0x0 0x100000>;
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ q6_caldb_region: q6_caldb_region@4D000000 {
|
|
|
|
+ no-map;
|
|
|
|
+ reg = <0x0 0x4D000000 0x0 0x200000>;
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ q6_qcn6122_data1: q6_qcn6122_data1@4D200000 {
|
|
|
|
+ no-map;
|
|
|
|
+ reg = <0x0 0x4D200000 0x0 0x1000000>;
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ m3_dump_qcn6122_1: m3_dump_qcn6122_1@4E200000 {
|
|
|
|
+ no-map;
|
|
|
|
+ reg = <0x0 0x4E200000 0x0 0x100000>;
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ q6_qcn6122_etr_1: q6_qcn6122_etr_1@4E300000 {
|
|
|
|
+ no-map;
|
|
|
|
+ reg = <0x0 0x4E300000 0x0 0x100000>;
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ q6_qcn6122_caldb_1: q6_qcn6122_caldb_1@4E400000 {
|
|
|
|
+ no-map;
|
|
|
|
+ reg = <0x0 0x4E400000 0x0 0x500000>;
|
|
|
|
+ };
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ soc {
|
|
|
|
+ ess-instance {
|
|
|
|
+ num_devices = <0x2>;
|
|
|
|
+
|
|
|
|
+ ess-switch@0x39c00000 {
|
|
|
|
+ compatible = "qcom,ess-switch-ipq50xx";
|
|
|
|
+ device_id = <0>;
|
|
|
|
+ switch_mac_mode = <0xf>; /* mac mode for uniphy instance*/
|
|
|
|
+ cmnblk_clk = "internal_96MHz"; /* cmnblk clk*/
|
|
|
|
+
|
|
|
|
+ qcom,port_phyinfo {
|
|
|
|
+ port@0 {
|
|
|
|
+ port_id = <1>;
|
|
|
|
+ phy_address = <7>;
|
|
|
|
+ };
|
|
|
|
+ port@1 {
|
|
|
|
+ port_id = <2>;
|
|
|
|
+ forced-speed = <1000>;
|
|
|
|
+ forced-duplex = <1>;
|
|
|
|
+ };
|
|
|
|
+ };
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ ess-switch1@1 {
|
|
|
|
+ compatible = "qcom,ess-switch-qca83xx";
|
|
|
|
+ device_id = <1>;
|
|
|
|
+ switch_access_mode = "mdio";
|
|
|
|
+ mdio-bus = <&mdio1>;
|
|
|
|
+ reset_gpio = <&tlmm 39 0>;
|
|
|
|
+ switch_cpu_bmp = <0x40>; /* cpu port bitmap */
|
|
|
|
+ switch_lan_bmp = <0x1e>; /* lan port bitmap */
|
|
|
|
+ switch_wan_bmp = <0x0>; /* wan port bitmap */
|
|
|
|
+
|
|
|
|
+ qca,ar8327-initvals = <
|
|
|
|
+ 0x00004 0x7600000 /* PAD0_MODE */
|
|
|
|
+ 0x00008 0x1000000 /* PAD5_MODE */
|
|
|
|
+ 0x0000c 0x80 /* PAD6_MODE */
|
|
|
|
+ 0x00010 0x2613a0 /* PORT6 FORCE MODE*/
|
|
|
|
+ 0x000e4 0xaa545 /* MAC_POWER_SEL */
|
|
|
|
+ 0x000e0 0xc74164de /* SGMII_CTRL */
|
|
|
|
+ 0x0007c 0x4e /* PORT0_STATUS */
|
|
|
|
+ 0x00094 0x4e /* PORT6_STATUS */
|
|
|
|
+ >;
|
|
|
|
+ qcom,port_phyinfo {
|
|
|
|
+ port@0 {
|
|
|
|
+ port_id = <1>;
|
|
|
|
+ phy_address = <0>;
|
|
|
|
+ };
|
|
|
|
+ port@1 {
|
|
|
|
+ port_id = <2>;
|
|
|
|
+ phy_address = <1>;
|
|
|
|
+ };
|
|
|
|
+ port@2 {
|
|
|
|
+ port_id = <3>;
|
|
|
|
+ phy_address = <2>;
|
|
|
|
+ };
|
|
|
|
+ port@3 {
|
|
|
|
+ port_id = <4>;
|
|
|
|
+ phy_address = <3>;
|
|
|
|
+ };
|
|
|
|
+ };
|
|
|
|
+ };
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ dp1 {
|
|
|
|
+ device_type = "network";
|
|
|
|
+ compatible = "qcom,nss-dp";
|
|
|
|
+ clocks = <&gcc GCC_SNOC_GMAC0_AXI_CLK>;
|
|
|
|
+ clock-names = "nss-snoc-gmac-axi-clk";
|
|
|
|
+ qcom,id = <1>;
|
|
|
|
+ reg = <0x39C00000 0x10000>;
|
|
|
|
+ interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
|
|
|
|
+ qcom,mactype = <2>;
|
|
|
|
+ qcom,link-poll = <1>;
|
|
|
|
+ qcom,phy-mdio-addr = <7>;
|
|
|
|
+ mdio-bus = <&mdio0>;
|
|
|
|
+ local-mac-address = [000000000000];
|
|
|
|
+ phy-mode = "sgmii";
|
|
|
|
+ qcom,rx-page-mode = <0>;
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ dp2 {
|
|
|
|
+ device_type = "network";
|
|
|
|
+ compatible = "qcom,nss-dp";
|
|
|
|
+ clocks = <&gcc GCC_SNOC_GMAC1_AXI_CLK>;
|
|
|
|
+ clock-names = "nss-snoc-gmac-axi-clk";
|
|
|
|
+ qcom,id = <2>;
|
|
|
|
+ reg = <0x39D00000 0x10000>;
|
|
|
|
+ interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
|
|
|
|
+ qcom,mactype = <2>;
|
|
|
|
+ local-mac-address = [000000000000];
|
|
|
|
+ phy-mode = "sgmii";
|
|
|
|
+ qcom,rx-page-mode = <0>;
|
|
|
|
+ };
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ keys {
|
|
|
|
+ compatible = "gpio-keys";
|
|
|
|
+ pinctrl-0 = <&button_pins>;
|
|
|
|
+ pinctrl-names = "default";
|
|
|
|
+
|
|
|
|
+ reset {
|
|
|
|
+ label = "reset";
|
|
|
|
+ linux,code = <KEY_RESTART>;
|
|
|
|
+ gpios = <&tlmm 25 GPIO_ACTIVE_LOW>;
|
|
|
|
+ linux,input-type = <1>;
|
|
|
|
+ debounce-interval = <60>;
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ wps {
|
|
|
|
+ label = "wps";
|
|
|
|
+ linux,code = <KEY_WPS_BUTTON>;
|
|
|
|
+ gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
|
|
|
|
+ linux,input-type = <1>;
|
|
|
|
+ debounce-interval = <60>;
|
|
|
|
+ };
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ leds {
|
|
|
|
+ compatible = "gpio-leds";
|
|
|
|
+ pinctrl-0 = <&leds_pins>;
|
|
|
|
+ pinctrl-names = "default";
|
|
|
|
+
|
|
|
|
+ led_blue: status_blue {
|
|
|
|
+ label = "blue:status";
|
|
|
|
+ gpio = <&tlmm 31 GPIO_ACTIVE_HIGH>;
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ led_green: status_green {
|
|
|
|
+ label = "green:status";
|
|
|
|
+ gpio = <&tlmm 32 GPIO_ACTIVE_HIGH>;
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ led_red: status_red {
|
|
|
|
+ label = "red:status";
|
|
|
|
+ gpio = <&tlmm 33 GPIO_ACTIVE_HIGH>;
|
|
|
|
+ };
|
|
|
|
+ };
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+&blsp1_uart1 {
|
|
|
|
+ status = "ok";
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+&mdio0 {
|
|
|
|
+ status = "ok";
|
|
|
|
+
|
|
|
|
+ ethernet-phy@0 {
|
|
|
|
+ reg = <7>;
|
|
|
|
+ };
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+&mdio1 {
|
|
|
|
+ pinctrl-0 = <&mdio1_pins>;
|
|
|
|
+ pinctrl-names = "default";
|
|
|
|
+ phy-reset-gpio = <&tlmm 39 0>;
|
|
|
|
+ status = "ok";
|
|
|
|
+
|
|
|
|
+ ethernet-phy@0 {
|
|
|
|
+ reg = <0>;
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ ethernet-phy@1 {
|
|
|
|
+ reg = <1>;
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ ethernet-phy@2 {
|
|
|
|
+ reg = <2>;
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ ethernet-phy@3 {
|
|
|
|
+ reg = <3>;
|
|
|
|
+ };
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+&q6v5_wcss {
|
|
|
|
+ compatible = "qcom,ipq5018-q6-mpd";
|
|
|
|
+ firmware = "IPQ5018/q6_fw.mdt";
|
|
|
|
+ #address-cells = <1>;
|
|
|
|
+ #size-cells = <1>;
|
|
|
|
+ ranges;
|
|
|
|
+
|
|
|
|
+ reg = <0x0cd00000 0x4040>,
|
|
|
|
+ <0x1938000 0x8>,
|
|
|
|
+ <0x193d204 0x4>;
|
|
|
|
+ reg-names = "qdsp6",
|
|
|
|
+ "tcsr-msip",
|
|
|
|
+ "tcsr-q6";
|
|
|
|
+ resets = <&gcc GCC_WCSSAON_RESET>,
|
|
|
|
+ <&gcc GCC_WCSS_Q6_BCR>;
|
|
|
|
+
|
|
|
|
+ reset-names = "wcss_aon_reset",
|
|
|
|
+ "wcss_q6_reset";
|
|
|
|
+
|
|
|
|
+ clocks = <&gcc GCC_Q6_AXIS_CLK>,
|
|
|
|
+ <&gcc GCC_WCSS_ECAHB_CLK>,
|
|
|
|
+ <&gcc GCC_Q6_AXIM_CLK>,
|
|
|
|
+ <&gcc GCC_Q6_AXIM2_CLK>,
|
|
|
|
+ <&gcc GCC_Q6_AHB_CLK>,
|
|
|
|
+ <&gcc GCC_Q6_AHB_S_CLK>,
|
|
|
|
+ <&gcc GCC_WCSS_AXI_S_CLK>;
|
|
|
|
+ clock-names = "gcc_q6_axis_clk",
|
|
|
|
+ "gcc_wcss_ecahb_clk",
|
|
|
|
+ "gcc_q6_axim_clk",
|
|
|
|
+ "gcc_q6_axim2_clk",
|
|
|
|
+ "gcc_q6_ahb_clk",
|
|
|
|
+ "gcc_q6_ahb_s_clk",
|
|
|
|
+ "gcc_wcss_axi_s_clk";
|
|
|
|
+
|
|
|
|
+ memory-region = <&q6_mem_regions>, <&q6_etr_region>,
|
|
|
|
+ <&q6_caldb_region>;
|
|
|
|
+
|
|
|
|
+ qcom,rproc = <&q6v5_wcss>;
|
|
|
|
+ qcom,bootargs_smem = <507>;
|
|
|
|
+ boot-args = <0x1 0x4 0x3 0x0F 0x0 0x0>,
|
|
|
|
+ <0x2 0x4 0x2 0x12 0x0 0x0>;
|
|
|
|
+
|
|
|
|
+ q6_wcss_pd1: remoteproc_pd1@4ab000 {
|
|
|
|
+ compatible = "qcom,ipq5018-wcss-ahb-mpd";
|
|
|
|
+ firmware = "IPQ5018/q6_fw.mdt";
|
|
|
|
+ m3_firmware = "IPQ5018/m3_fw.mdt";
|
|
|
|
+
|
|
|
|
+ reg = <0x4ab000 0x20>;
|
|
|
|
+ reg-names = "rmb";
|
|
|
|
+
|
|
|
|
+ interrupts-extended = <&wcss_smp2p_in 8 0>,
|
|
|
|
+ <&wcss_smp2p_in 9 0>,
|
|
|
|
+ <&wcss_smp2p_in 12 0>,
|
|
|
|
+ <&wcss_smp2p_in 11 0>;
|
|
|
|
+ interrupt-names = "fatal",
|
|
|
|
+ "ready",
|
|
|
|
+ "spawn-ack",
|
|
|
|
+ "stop-ack";
|
|
|
|
+
|
|
|
|
+ resets = <&gcc GCC_WCSSAON_RESET>,
|
|
|
|
+ <&gcc GCC_WCSS_BCR>,
|
|
|
|
+ <&gcc GCC_CE_BCR>;
|
|
|
|
+ reset-names = "wcss_aon_reset",
|
|
|
|
+ "wcss_reset",
|
|
|
|
+ "ce_reset";
|
|
|
|
+
|
|
|
|
+ clocks = <&gcc GCC_WCSS_AHB_S_CLK>,
|
|
|
|
+ <&gcc GCC_WCSS_ACMT_CLK>,
|
|
|
|
+ <&gcc GCC_WCSS_AXI_M_CLK>;
|
|
|
|
+ clock-names = "gcc_wcss_ahb_s_clk",
|
|
|
|
+ "gcc_wcss_acmt_clk",
|
|
|
|
+ "gcc_wcss_axi_m_clk";
|
|
|
|
+
|
|
|
|
+ // qcom,halt-regs = <&tcsr_q6_block 0xa000 0xd000 0x0>;
|
|
|
|
+
|
|
|
|
+ qcom,smem-states = <&wcss_smp2p_out 8>,
|
|
|
|
+ <&wcss_smp2p_out 9>,
|
|
|
|
+ <&wcss_smp2p_out 10>;
|
|
|
|
+ qcom,smem-state-names = "shutdown",
|
|
|
|
+ "stop",
|
|
|
|
+ "spawn";
|
|
|
|
+ memory-region = <&q6_ipq5018_data>, <&m3_dump>,
|
|
|
|
+ <&q6_etr_region>, <&q6_caldb_region>;
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ q6_wcss_pd2: remoteproc_pd2 {
|
|
|
|
+ compatible = "qcom,ipq5018-wcss-pcie-mpd";
|
|
|
|
+ firmware = "IPQ5018/q6_fw.mdt";
|
|
|
|
+ m3_firmware = "qcn6122/m3_fw.mdt";
|
|
|
|
+
|
|
|
|
+ interrupts-extended = <&wcss_smp2p_in 16 0>,
|
|
|
|
+ <&wcss_smp2p_in 17 0>,
|
|
|
|
+ <&wcss_smp2p_in 20 0>,
|
|
|
|
+ <&wcss_smp2p_in 19 0>;
|
|
|
|
+ interrupt-names = "fatal",
|
|
|
|
+ "ready",
|
|
|
|
+ "spawn-ack",
|
|
|
|
+ "stop-ack";
|
|
|
|
+
|
|
|
|
+ qcom,smem-states = <&wcss_smp2p_out 16>,
|
|
|
|
+ <&wcss_smp2p_out 17>,
|
|
|
|
+ <&wcss_smp2p_out 18>;
|
|
|
|
+ qcom,smem-state-names = "shutdown",
|
|
|
|
+ "stop",
|
|
|
|
+ "spawn";
|
|
|
|
+ memory-region = <&q6_qcn6122_data1>, <&m3_dump_qcn6122_1>,
|
|
|
|
+ <&q6_qcn6122_etr_1>, <&q6_qcn6122_caldb_1>;
|
|
|
|
+ };
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+&sdhc_1 {
|
|
|
|
+ pinctrl-0 = <&emmc_pins>;
|
|
|
|
+ pinctrl-names = "default";
|
|
|
|
+ status = "ok";
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+&tlmm {
|
|
|
|
+ button_pins: button_pins {
|
|
|
|
+ mux {
|
|
|
|
+ pins = "gpio25", "gpio38";
|
|
|
|
+ function = "gpio";
|
|
|
|
+ drive-strength = <8>;
|
|
|
|
+ bias-pull-up;
|
|
|
|
+ };
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ leds_pins: leds_pins {
|
|
|
|
+ mux {
|
|
|
|
+ pins = "gpio31", "gpio32", "gpio33";
|
|
|
|
+ function = "gpio";
|
|
|
|
+ drive-strength = <8>;
|
|
|
|
+ bias-pull-down;
|
|
|
|
+ output-low;
|
|
|
|
+ };
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ mdio1_pins: mdio_pinmux {
|
|
|
|
+ mux_0 {
|
|
|
|
+ pins = "gpio36";
|
|
|
|
+ function = "mdc";
|
|
|
|
+ drive-strength = <8>;
|
|
|
|
+ bias-pull-up;
|
|
|
|
+ };
|
|
|
|
+ mux_1 {
|
|
|
|
+ pins = "gpio37";
|
|
|
|
+ function = "mdio";
|
|
|
|
+ drive-strength = <8>;
|
|
|
|
+ bias-pull-up;
|
|
|
|
+ };
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ emmc_pins: emmc_pins {
|
|
|
|
+ emmc_clk {
|
|
|
|
+ pins = "gpio9";
|
|
|
|
+ function = "sdc1_clk";
|
|
|
|
+ drive-strength = <8>;
|
|
|
|
+ bias-disable;
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ emmc_cmd {
|
|
|
|
+ pins = "gpio8";
|
|
|
|
+ function = "sdc1_cmd";
|
|
|
|
+ drive-strength = <8>;
|
|
|
|
+ bias-pull-up;
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ emmc_data {
|
|
|
|
+ pins = "gpio4", "gpio5", "gpio6", "gpio7";
|
|
|
|
+ function = "sdc1_data";
|
|
|
|
+ drive-strength = <8>;
|
|
|
|
+ bias-disable;
|
|
|
|
+ };
|
|
|
|
+ };
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+&wifi0 {
|
|
|
|
+ qcom,multipd_arch;
|
|
|
|
+ qcom,userpd-subsys-name = "q6v5_wcss_userpd1";
|
|
|
|
+ qcom,rproc = <&q6_wcss_pd1>;
|
|
|
|
+ qcom,board_id = <0x24>;
|
|
|
|
+ qcom,bdf-addr = <0x0 0x4C000000 0x4C000000 0x0 0x0>;
|
|
|
|
+ qcom,caldb-addr = <0x0 0x4D000000 0 0 0>;
|
|
|
|
+ mem-region = <&q6_ipq5018_data>;
|
|
|
|
+ qcom,caldb-size = <0x200000>;
|
|
|
|
+ status = "ok";
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+&wifi1 {
|
|
|
|
+ qcom,multipd_arch;
|
|
|
|
+ qcom,userpd-subsys-name = "q6v5_wcss_userpd2";
|
|
|
|
+ qcom,rproc = <&q6_wcss_pd2>;
|
|
|
|
+ qcom,tgt-mem-mode = <1>;
|
|
|
|
+ qcom,board_id = <0x60>;
|
|
|
|
+ qcom,bdf-addr = <0x0 0x4D200000 0x4CF00000 0x0 0x0>;
|
|
|
|
+ qcom,caldb-addr = <0x0 0x4E400000 0 0 0>;
|
|
|
|
+ mem-region = <&q6_qcn6122_data1>;
|
|
|
|
+ qcom,caldb-size = <0x500000>;
|
|
|
|
+ status = "ok";
|
|
|
|
+};
|