pmaports/device/testing/linux-linksys-jamaica/add-linksys-jamaica-support.patch

1006 lines
29 KiB
Diff
Raw Normal View History

From 7713dc2a9a5228907955cee7bd15c81152266bb2 Mon Sep 17 00:00:00 2001
From: Karl Chan <exkcmailist@inbox.lv>
Date: Sun, 3 Dec 2023 03:04:15 +0800
Subject: [PATCH] Add Linksys EA9350 V3 support
---
arch/arm/boot/dts/Makefile | 1 +
.../boot/dts/ipq5018-linksys-jamaica.dts | 18 +
arch/arm64/boot/dts/qcom/Makefile | 1 +
.../dts/qcom/ipq5018-linksys-jamaica.dts | 934 ++++++++++++++++++
4 files changed, 954 insertions(+)
create mode 100644 arch/arm/boot/dts/ipq5018-linksys-jamaica.dts
create mode 100755 arch/arm64/boot/dts/qcom/ipq5018-linksys-jamaica.dts
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 7712df1ab..d51ab06de 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -848,6 +848,7 @@ dtb-$(CONFIG_ARCH_QCOM) += \
qcom-ipq4019-ap.dk07.1-c1.dtb \
qcom-ipq4019-ap.dk07.1-c2.dtb \
qcom-ipq8064-ap148.dtb \
+ ipq5018-linksys-jamaica.dtb \
ipq5018-mp02.1.dtb \
ipq5018-mp03.1.dtb \
ipq5018-mp03.1-c2.dtb \
diff --git a/arch/arm/boot/dts/ipq5018-linksys-jamaica.dts b/arch/arm/boot/dts/ipq5018-linksys-jamaica.dts
new file mode 100644
index 000000000..35c20aace
--- /dev/null
+++ b/arch/arm/boot/dts/ipq5018-linksys-jamaica.dts
@@ -0,0 +1,18 @@
+/*
+ * Copyright (c) 2018-2021, The Linux Foundation. All rights reserved.
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#include <arm64/qcom/ipq5018-linksys-jamaica.dts>
+#include "ipq5018.dtsi"
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 4de2b3199..47dc287f0 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -61,6 +61,7 @@ dtb-$(CONFIG_ARCH_QCOM) += ipq5018-mp03.5-c2.dtb
dtb-$(CONFIG_ARCH_QCOM) += ipq5018-mp03.6-c1.dtb
dtb-$(CONFIG_ARCH_QCOM) += ipq5018-mp03.6-c2.dtb
dtb-$(CONFIG_ARCH_QCOM) += ipq5018-mp05.1.dtb
+dtb-$(CONFIG_ARCH_QCOM) += ipq5018-linksys-jamaica.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8916-mtp.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8916-longcheer-l8150.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8916-samsung-a3u-eur.dtb
diff --git a/arch/arm64/boot/dts/qcom/ipq5018-linksys-jamaica.dts b/arch/arm64/boot/dts/qcom/ipq5018-linksys-jamaica.dts
new file mode 100755
index 000000000..4c50f16a6
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/ipq5018-linksys-jamaica.dts
@@ -0,0 +1,934 @@
+/dts-v1/;
+/* Copyright (c) 2018-2021, The Linux Foundation. All rights reserved.
+ *
+ * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#include "ipq5018.dtsi"
+
+/ {
+ #address-cells = <0x2>;
+ #size-cells = <0x2>;
+ model = "Linksys EA9350 V3";
+ compatible = "linksys-jamaica", "qcom,ipq5018";
+ interrupt-parent = <&intc>;
+
+ aliases {
+ serial0 = &blsp1_uart1;
+ serial1 = &blsp1_uart2;
+ ethernet0 = "/soc/dp1";
+ ethernet1 = "/soc/dp2";
+ };
+
+ chosen {
+ bootargs = "console=ttyMSM0,115200,n8 rw init=/init";
+ bootargs-append = " swiotlb=1 coherent_pool=2M";
+ stdout-path = "serial0";
+ };
+
+ reserved-memory {
+ #ifdef __IPQ_MEM_PROFILE_256_MB__
+ /* 256 MB Profile
+ * +=========+==============+========================+
+ * | | | |
+ * | Region | Start Offset | Size |
+ * | | | |
+ * +--------+--------------+-------------------------+
+ * | | | |
+ * | | | |
+ * | NSS | 0x40000000 | 8MB |
+ * | | | |
+ * | | | |
+ * +--------+--------------+-------------------------+
+ * | | | |
+ * | | | |
+ * | | | |
+ * | | | |
+ * | Linux | 0x40800000 | Depends on total memory |
+ * | | | |
+ * | | | |
+ * | | | |
+ * + | | |
+ * +--------+--------------+-------------------------+
+ * | | | |
+ * | uboot | 0x4A600000 | 4MB |
+ * | | | |
+ * +--------+--------------+-------------------------+
+ * | SBL | 0x4AA00000 | 1MB |
+ * +--------+--------------+-------------------------+
+ * | smem | 0x4AB00000 | 1MB |
+ * +--------+--------------+-------------------------+
+ * | | | |
+ * | TZ | 0x4AC00000 | 4MB |
+ * | | | |
+ * +--------+--------------+-------------------------+
+ * | | | |
+ * | | | |
+ * | | | |
+ * | Q6 | 0x4B000000 | 23MB |
+ * | | | |
+ * | | | |
+ * | | | |
+ * +--------+--------------+-------------------------+
+ * | M3 Dump| 0x4C700000 | 1MB |
+ * +--------+--------------+-------------------------+
+ * | QDSS | 0x4C800000 | 1MB |
+ * +--------+--------------+-------------------------+
+ * | | | |
+ * |QCN9000 | 0x4C900000 | 17MB |
+ * | | | |
+ * +--------+--------------+-------------------------+
+ * | | | |
+ * | MHI1 | 0x4DA00000 | 9MB |
+ * | | | |
+ * +--------+--------------+-------------------------+
+ * | |
+ * | Rest of the memory for Linux |
+ * | |
+ * +=================================================+
+ */
+ q6_region: memory@4b000000 {
+ no-map;
+ reg = <0x0 0x4b000000 0x0 0x01700000>;
+ };
+
+ m3_dump@4c700000 {
+ no-map;
+ reg = <0x0 0x4C700000 0x0 0x100000>;
+ };
+
+ q6_etr_region:q6_etr_dump@4c800000 {
+ no-map;
+ reg = <0x0 0x4c800000 0x0 0x100000>;
+ };
+
+ qcn9000_pcie0: qcn9000_pcie0@4c900000 {
+ no-map;
+ reg = <0x0 0x4C900000 0x0 0x01100000>;
+ };
+
+ #if defined(__CNSS2__)
+ mhi_region1: dma_pool1@4da00000 {
+ compatible = "shared-dma-pool";
+ no-map;
+ reg = <0x0 0x4DA00000 0x0 0x00900000>;
+ };
+ #endif
+ #elif __IPQ_MEM_PROFILE_512_MB__
+ /* 512 MB Profile
+ * +=========+==============+========================+
+ * | | | |
+ * | Region | Start Offset | Size |
+ * | | | |
+ * +--------+--------------+-------------------------+
+ * | | | |
+ * | | | |
+ * | NSS | 0x40000000 | 16MB |
+ * | | | |
+ * | | | |
+ * +--------+--------------+-------------------------+
+ * | | | |
+ * | | | |
+ * | | | |
+ * | | | |
+ * | Linux | 0x41000000 | Depends on total memory |
+ * | | | |
+ * | | | |
+ * | | | |
+ * | | | |
+ * +--------+--------------+-------------------------+
+ * | | | |
+ * | uboot | 0x4A600000 | 4MB |
+ * | | | |
+ * +--------+--------------+-------------------------+
+ * | SBL | 0x4AA00000 | 1MB |
+ * +--------+--------------+-------------------------+
+ * | smem | 0x4AB00000 | 1MB |
+ * +--------+--------------+-------------------------+
+ * | | | |
+ * | TZ | 0x4AC00000 | 4MB |
+ * | | | |
+ * +--------+--------------+-------------------------+
+ * | | | |
+ * | | | |
+ * | | | |
+ * | Q6 | 0x4B000000 | 24MB |
+ * | | | |
+ * | | | |
+ * +--------+--------------+-------------------------+
+ * | M3 Dump| 0x4C800000 | 1MB |
+ * +--------+--------------+-------------------------+
+ * | QDSS | 0x4C900000 | 1MB |
+ * +--------+--------------+-------------------------+
+ * | caldb | 0x4CA00000 | 2MB |
+ * +--------+--------------+-------------------------+
+ * | | | |
+ * |QCN9000 | 0x4CC00000 | 38MB |
+ * | | | |
+ * +--------+--------------+-------------------------+
+ * | | | |
+ * | MHI1 | 0x4F200000 | 9MB |
+ * | | | |
+ * +--------+--------------+-------------------------+
+ * | |
+ * | Rest of the memory for Linux |
+ * | |
+ * +=================================================+
+ */
+ q6_region: memory@4b000000 {
+ no-map;
+ reg = <0x0 0x4b000000 0x0 0x01800000>;
+ };
+
+ m3_dump@4c800000 {
+ no-map;
+ reg = <0x0 0x4c800000 0x0 0x100000>;
+ };
+
+ q6_etr_region:q6_etr_dump@4c900000 {
+ no-map;
+ reg = <0x0 0x4c900000 0x0 0x100000>;
+ };
+
+ q6_caldb_region:q6_caldb_region@4ca00000 {
+ no-map;
+ reg = <0x0 0x4ca00000 0x0 0x200000>;
+ };
+
+ qcn9000_pcie0: qcn9000_pcie0@4cc00000 {
+ no-map;
+ reg = <0x0 0x4CC00000 0x0 0x02600000>;
+ };
+
+ #if defined(__CNSS2__)
+ mhi_region1: dma_pool1@4f200000 {
+ compatible = "shared-dma-pool";
+ no-map;
+ reg = <0x0 0x4f200000 0x0 0x00900000>;
+ };
+ #endif
+ #else
+ /* 1G Profile
+ * +=========+==============+========================+
+ * | | | |
+ * | Region | Start Offset | Size |
+ * | | | |
+ * +--------+--------------+-------------------------+
+ * | | | |
+ * | | | |
+ * | NSS | 0x40000000 | 16MB |
+ * | | | |
+ * | | | |
+ * +--------+--------------+-------------------------+
+ * | | | |
+ * | | | |
+ * | | | |
+ * | | | |
+ * | Linux | 0x41000000 | Depends on total memory |
+ * | | | |
+ * | | | |
+ * | | | |
+ * | | | |
+ * +--------+--------------+-------------------------+
+ * | | | |
+ * | uboot | 0x4A600000 | 4MB |
+ * | | | |
+ * +--------+--------------+-------------------------+
+ * | SBL | 0x4AA00000 | 1MB |
+ * +--------+--------------+-------------------------+
+ * | smem | 0x4AB00000 | 1MB |
+ * +--------+--------------+-------------------------+
+ * | | | |
+ * | TZ | 0x4AC00000 | 4MB |
+ * | | | |
+ * +--------+--------------+-------------------------+
+ * | | | |
+ * | | | |
+ * | | | |
+ * | Q6 | 0x4B000000 | 24MB |
+ * | | | |
+ * | | | |
+ * +--------+--------------+-------------------------+
+ * | M3 Dump| 0x4C800000 | 1MB |
+ * +--------+--------------+-------------------------+
+ * | QDSS | 0x4C900000 | 1MB |
+ * +--------+--------------+-------------------------+
+ * | caldb | 0x4CA00000 | 2MB |
+ * +--------+--------------+-------------------------+
+ * | | | |
+ * |QCN9000 | 0x4CC00000 | 53MB |
+ * | | | |
+ * +--------+--------------+-------------------------+
+ * | | | |
+ * | MHI1 | 0x50100000 | 9MB |
+ * | | | |
+ * +--------+--------------+-------------------------+
+ * | |
+ * | Rest of the memory for Linux |
+ * | |
+ * +=================================================+
+ */
+ q6_region: memory@4b000000 {
+ no-map;
+ reg = <0x0 0x4b000000 0x0 0x01800000>;
+ };
+
+ m3_dump@4c800000 {
+ no-map;
+ reg = <0x0 0x4c800000 0x0 0x100000>;
+ };
+
+ q6_etr_region:q6_etr_dump@4c900000 {
+ no-map;
+ reg = <0x0 0x4c900000 0x0 0x100000>;
+ };
+
+ q6_caldb_region:q6_caldb_region@4ca00000 {
+ no-map;
+ reg = <0x0 0x4ca00000 0x0 0x200000>;
+ };
+
+ qcn9000_pcie0: qcn9000_pcie0@4cc00000 {
+ no-map;
+ reg = <0x0 0x4CC00000 0x0 0x03500000>;
+ };
+
+ #if defined(__CNSS2__)
+ mhi_region1: dma_pool1@50100000 {
+ compatible = "shared-dma-pool";
+ no-map;
+ reg = <0x0 0x50100000 0x0 0x00900000>;
+ };
+ #endif
+ #endif
+ };
+
+ soc {
+ serial@78af000 {
+ status = "ok";
+ };
+
+ blsp1_uart2: serial@78b0000 {
+ pinctrl-0 = <&blsp1_uart_pins>;
+ pinctrl-names = "default";
+ };
+
+ qpic_bam: dma@7984000{
+ status = "ok";
+ };
+
+ nand: qpic-nand@79b0000 {
+ pinctrl-0 = <&qspi_nand_pins>;
+ pinctrl-names = "default";
+ status = "ok";
+ };
+
+ spi_0: spi@78b5000 { /* BLSP1 QUP0 */
+ pinctrl-0 = <&blsp0_spi_pins>;
+ pinctrl-names = "default";
+ cs-select = <0>;
+ status = "ok";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ reg = <0>;
+ compatible = "n25q128a11";
+ linux,modalias = "m25p80", "n25q128a11";
+ spi-max-frequency = <50000000>;
+ use-default-sizes;
+ };
+ };
+
+ mdio0: mdio@88000 {
+ status = "ok";
+
+ ethernet-phy@0 {
+ reg = <7>;
+ };
+ };
+
+ mdio1: mdio@90000 {
+ status = "ok";
+ pinctrl-0 = <&mdio1_pins>;
+ pinctrl-names = "default";
+ phy-reset-gpio = <&tlmm 39 0>;
+ ethernet-phy@0 {
+ reg = <0>;
+ };
+
+ ethernet-phy@1 {
+ reg = <1>;
+ };
+
+ ethernet-phy@2 {
+ reg = <2>;
+ };
+
+ ethernet-phy@3 {
+ reg = <3>;
+ };
+ ethernet-phy@4 {
+ reg = <4>;
+ };
+ };
+
+ 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>;
+ };
+ };
+ led_source@0 {
+ source = <0>;
+ mode = "normal";
+ speed = "all";
+ blink_en = "enable";
+ active = "high";
+ };
+ };
+ ess-switch1@1 {
+ compatible = "qcom,ess-switch-qca83xx";
+ device_id = <1>;
+ switch_access_mode = "mdio";
+ mdio-bus = <&mdio1>;
+ reset_gpio = <&tlmm 0x27 0>;
+ switch_cpu_bmp = <0x40>; /* cpu port bitmap */
+ switch_lan_bmp = <0x1e>; /* lan port bitmap */
+ switch_wan_bmp = <0x20>; /* 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>;
+ };
+ };
+ };
+ };
+
+ ess-uniphy@98000 {
+ status = "disabled";
+ };
+
+ qcom,sps {
+ status = "ok";
+ };
+
+ qcom,diag@0 {
+ status = "ok";
+ };
+
+ 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>;
+ };
+
+ rpm_etm0 {
+ status = "disabled";
+ };
+
+ pcm: pcm@0xA3C0000{
+ pinctrl-0 = <&audio_pins>;
+ pinctrl-names = "default";
+ status = "disabled";
+ };
+ };
+
+ qcom,test@0 {
+ status = "ok";
+ };
+
+ thermal-zones {
+ status = "ok";
+ };
+};
+
+&tlmm {
+ pinctrl-0 = <&blsp0_uart_pins>;
+ pinctrl-names = "default";
+
+ blsp0_uart_pins: blsp0_uart_pins {
+ blsp0_uart_rx_tx {
+ pins = "gpio20", "gpio21";
+ function = "blsp0_uart0";
+ bias-disable;
+ };
+ };
+
+ blsp1_uart_pins: blsp1_uart_pins {
+ blsp1_uart_rx_tx {
+ pins = "gpio23", "gpio25", "gpio24", "gpio26";
+ function = "blsp1_uart2";
+ bias-disable;
+ };
+ };
+
+ blsp0_spi_pins: blsp0_spi_pins {
+ mux {
+ pins = "gpio10", "gpio11", "gpio12", "gpio13";
+ function = "blsp0_spi";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ };
+
+ qspi_nand_pins: qspi_nand_pins {
+ qspi_clock {
+ pins = "gpio9";
+ function = "qspi_clk";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ qspi_cs {
+ pins = "gpio8";
+ function = "qspi_cs";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ qspi_data {
+ pins = "gpio4", "gpio5", "gpio6", "gpio7";
+ function = "qspi_data";
+ drive-strength = <8>;
+ bias-disable;
+ };
+ };
+
+ 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;
+ };
+ };
+
+ i2c_pins: i2c_pins {
+ i2c_scl {
+ pins = "gpio25";
+ function = "blsp2_i2c1";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ i2c_sda {
+ pins = "gpio26";
+ function = "blsp2_i2c1";
+ drive-strength = <8>;
+ bias-disable;
+ };
+ };
+
+ button_pins: button_pins {
+ wps_button {
+ pins = "gpio27";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-pull-up;
+ };
+ reset_button {
+ pins = "gpio28";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-pull-up;
+ };
+ };
+
+ pwm_pins: pwm_pinmux {
+ mux_1 {
+ pins = "gpio1";
+ function = "NA"; //"pwm1";
+ drive-strength = <8>;
+ };
+
+ mux_2 {
+ pins = "gpio30";
+ function = "pwm3";
+ drive-strength = <8>;
+ };
+
+ mux_3 {
+ pins = "gpio46";
+ function = "pwm0";
+ drive-strength = <8>;
+ };
+ };
+
+ audio_pins: audio_pinmux {
+ mux_1 {
+ pins = "gpio24";
+ function = "audio_rxbclk";
+ drive-strength = <8>;
+ bias-pull-down;
+ };
+
+ mux_2 {
+ pins = "gpio25";
+ function = "audio_rxfsync";
+ drive-strength = <8>;
+ bias-pull-down;
+ };
+
+ mux_3 {
+ pins = "gpio26";
+ function = "audio_rxd";
+ drive-strength = <8>;
+ bias-pull-down;
+ };
+
+ mux_4 {
+ pins = "gpio27";
+ function = "audio_txmclk";
+ drive-strength = <8>;
+ bias-pull-down;
+ };
+
+ mux_5 {
+ pins = "gpio28";
+ function = "audio_txbclk";
+ drive-strength = <8>;
+ bias-pull-down;
+ };
+
+ mux_6 {
+ pins = "gpio29";
+ function = "audio_txfsync";
+ drive-strength = <8>;
+ bias-pull-down;
+ };
+
+ mux_7 {
+ pins = "gpio30";
+ function = "audio_txd";
+ drive-strength = <8>;
+ bias-pull-down;
+ };
+ };
+};
+
+&soc {
+ gpio_keys {
+ compatible = "gpio-keys";
+ pinctrl-0 = <&button_pins>;
+ pinctrl-names = "default";
+
+ button@1 {
+ label = "wps";
+ linux,code = <KEY_WPS_BUTTON>;
+ gpios = <&tlmm 27 GPIO_ACTIVE_LOW>;
+ linux,input-type = <1>;
+ debounce-interval = <60>;
+ };
+ button@2 {
+ label = "reset";
+ linux,code = <KEY_RESTART>;
+ gpios = <&tlmm 28 GPIO_ACTIVE_LOW>;
+ linux,input-type = <1>;
+ debounce-interval = <60>;
+ };
+ };
+
+ pwm_ctrl:pwm {
+ pinctrl-0 = <&pwm_pins>;
+ pinctrl-names = "default";
+ used-pwm-indices = <1>, <1>, <0>, <1>;
+ #pwm-cells = <2>;
+ status = "ok";
+ };
+
+ pwmleds {
+ compatible = "pwm-leds";
+
+ red {
+ label = "pwm:red";
+ pwms = <&pwm_ctrl 3 1250000>;
+ max-brightness = <255>;
+ };
+
+ green {
+ label = "pwm:green";
+ pwms = <&pwm_ctrl 0 1250000>;
+ max-brightness = <255>;
+ };
+
+ blue {
+ label = "pwm:blue";
+ pwms = <&pwm_ctrl 1 1250000>;
+ max-brightness = <255>;
+ linux,default-trigger = "default-on";
+ };
+ };
+};
+
+&usb3 {
+ qcom,multiplexed-phy;
+ qcom,phy-mux-regs = <&tcsr_q6_block 0x2540>;
+ device-power-gpio = <&tlmm 24 1>;
+ status = "ok";
+};
+
+&eud {
+ status = "ok";
+};
+
+&pcie_x1 {
+ status = "disabled";
+ perst-gpio = <&tlmm 18 GPIO_ACTIVE_LOW>;
+};
+
+&pcie_x2 {
+ status = "ok";
+ perst-gpio = <&tlmm 15 GPIO_ACTIVE_LOW>;
+};
+
+&wcss {
+ status = "ok";
+};
+
+&tcsr_mutex {
+ status = "ok";
+};
+
+&apcs_glb {
+ status = "ok";
+};
+
+&tcsr_q6_block {
+ status = "ok";
+};
+
+&q6v5_wcss {
+ #ifdef __IPQ_MEM_PROFILE_256_MB__
+ memory-region = <&q6_region>, <&q6_etr_region>;
+ #else
+ memory-region = <&q6_region>, <&q6_etr_region>,
+ <&q6_caldb_region>;
+ #endif
+};
+
+&i2c_0 {
+ pinctrl-0 = <&i2c_pins>;
+ pinctrl-names = "default";
+ status = "disabled";
+};
+
+&blsp1_uart1 {
+ status = "ok";
+};
+
+&ssuniphy_0 {
+ status = "ok";
+};
+
+&hs_m31phy_0 {
+ status = "ok";
+};
+
+&pcie_x1phy {
+ status = "disabled";
+};
+
+&pcie_x2phy {
+ status = "ok";
+};
+
+&pcie_x1_rp {
+ status = "disabled";
+
+ mhi_0: qcom,mhi@0 {
+ reg = <0 0 0 0 0 >;
+ };
+};
+
+&pcie_x2_rp {
+ status = "ok";
+
+ mhi_1: qcom,mhi@1 {
+ reg = <0 0 0 0 0 >;
+ qrtr_instance_id = <0x20>;
+ #address-cells = <0x2>;
+ #size-cells = <0x2>;
+#if defined(__CNSS2__)
+ memory-region = <&mhi_region1>;
+#else
+ base-addr = <0x4CC00000>;
+ m3-dump-addr = <0x4E000000>;
+ etr-addr = <0x4E100000>;
+ qcom,caldb-addr = <0x4E200000>;
+ pageable-addr = <0x4EA00000>;
+ qcom,tgt-mem-mode = <0x1>;
+#endif
+ };
+};
+
+&wifi0 {
+ /* IPQ5018 */
+ mem-region = <&q6_region>;
+ qcom,board_id = <0x24>;
+
+ qcom,bdf-addr = <0x4BA00000 0x4BA00000 0x4BA00000
+ 0x0 0x0>;
+ qcom,caldb-addr = <0x4CA00000 0x4CA00000 0x0 0x0 0x0>;
+ qcom,caldb-size = <0x200000>;
+ status = "ok";
+};
+
+&wifi3 {
+ /* QCN9000 5G */
+ board_id = <0xa0>;
+ hremote_node = <&qcn9000_pcie0>;
+#ifdef __IPQ_MEM_PROFILE_256_MB__
+ /* QCN9000 tgt-mem-mode=2 layout - 17MB
+ * +=========+==============+=========+
+ * | Region | Start Offset | Size |
+ * +---------+--------------+---------+
+ * | HREMOTE | 0x4C900000 | 11MB |
+ * +---------+--------------+---------+
+ * | M3 Dump | 0x4D400000 | 1MB |
+ * +---------+--------------+---------+
+ * | ETR | 0x4D500000 | 1MB |
+ * +---------+--------------+---------+
+ * | Pageable| 0x4D600000 | 4MB |
+ * +==================================+
+ */
+ base-addr = <0x4C900000>;
+ m3-dump-addr = <0x4D400000>;
+ etr-addr = <0x4D500000>;
+ caldb-addr = <0>;
+ pageable-addr = <0x4D600000>;
+ caldb-size = <0>;
+ hremote-size = <0xB00000>;
+ tgt-mem-mode = <0x2>;
+ pageable-size = <0x400000>;
+#elif __IPQ_MEM_PROFILE_512_MB__
+ /* QCN9000 tgt-mem-mode=1 layout - 38MB
+ * +=========+==============+=========+
+ * | Region | Start Offset | Size |
+ * +---------+--------------+---------+
+ * | HREMOTE | 0x4CC00000 | 20MB |
+ * +---------+--------------+---------+
+ * | M3 Dump | 0x4E000000 | 1MB |
+ * +---------+--------------+---------+
+ * | ETR | 0x4E100000 | 1MB |
+ * +---------+--------------+---------+
+ * | Caldb | 0x4E200000 | 8MB |
+ * +---------+--------------+---------+
+ * | Pageable| 0x4EA00000 | 8MB |
+ * +==================================+
+ */
+ base-addr = <0x4CC00000>;
+ m3-dump-addr = <0x4E000000>;
+ etr-addr = <0x4E100000>;
+ caldb-addr = <0x4E200000>;
+ pageable-addr = <0x4EA00000>;
+ caldb-size = <0x800000>;
+ hremote-size = <0x1400000>;
+ tgt-mem-mode = <0x1>;
+ pageable-size = <0x800000>;
+#else
+ /* QCN9000 tgt-mem-mode=0 layout - 53MB
+ * +=========+==============+=========+
+ * | Region | Start Offset | Size |
+ * +---------+--------------+---------+
+ * | HREMOTE | 0x4CC00000 | 35MB |
+ * +---------+--------------+---------+
+ * | M3 Dump | 0x4EF00000 | 1MB |
+ * +---------+--------------+---------+
+ * | ETR | 0x4F000000 | 1MB |
+ * +---------+--------------+---------+
+ * | Caldb | 0x4F100000 | 8MB |
+ * +---------+--------------+---------+
+ * | Pageable| 0x4F900000 | 8MB |
+ * +==================================+
+ */
+ base-addr = <0x4CC00000>;
+ m3-dump-addr = <0x4EF00000>;
+ etr-addr = <0x4F000000>;
+ caldb-addr = <0x4F100000>;
+ pageable-addr = <0x4F900000>;
+ hremote-size = <0x2300000>;
+ caldb-size = <0x800000>;
+ tgt-mem-mode = <0x0>;
+ pageable-size = <0x800000>;
+#endif
+ status = "ok";
+};
--
2.43.0