|
@@ -1,1799 +0,0 @@
|
|
|
-From 222b0208ae8c9ccbae94ff22ba9370c2e72519e5 Mon Sep 17 00:00:00 2001
|
|
|
-From: JiaY-shi <[email protected]>
|
|
|
-Date: Thu, 21 Sep 2023 18:37:36 +0800
|
|
|
-Subject: [PATCH] QualcommAX: ipq60xx: add support for JD Cloud AX1800 Pro
|
|
|
-
|
|
|
----
|
|
|
- .../uboot-envtools/files/qualcommax | 5 +
|
|
|
- package/firmware/ipq-wifi/Makefile | 2 +
|
|
|
- .../ipq-wifi/src/board-jdc_ax1800-pro.ipq6018 | Bin 0 -> 65644 bytes
|
|
|
- .../boot/dts/qcom/ipq6018-jdc-ax1800-pro.dts | 424 ++++++
|
|
|
- target/linux/qualcommax/image/ipq60xx.mk | 24 +-
|
|
|
- .../ipq60xx/base-files/etc/board.d/01_leds | 4 +-
|
|
|
- .../ipq60xx/base-files/etc/board.d/02_network | 3 +
|
|
|
- .../etc/hotplug.d/firmware/11-ath11k-caldata | 3 +
|
|
|
- .../ipq60xx/base-files/lib/upgrade/mmc.sh | 83 ++
|
|
|
- .../base-files/lib/upgrade/platform.sh | 5 +
|
|
|
- ...ers-pinctrl-qcom-add-ipq6000-support.patch | 1133 +++++++++++++++++
|
|
|
- 11 files changed, 1684 insertions(+), 2 deletions(-)
|
|
|
- create mode 100644 package/firmware/ipq-wifi/src/board-jdc_ax1800-pro.ipq6018
|
|
|
- create mode 100644 target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6018-jdc-ax1800-pro.dts
|
|
|
- create mode 100644 target/linux/qualcommax/ipq60xx/base-files/lib/upgrade/mmc.sh
|
|
|
- create mode 100644 target/linux/qualcommax/patches-6.1/2000-drivers-pinctrl-qcom-add-ipq6000-support.patch
|
|
|
-
|
|
|
-diff --git a/package/boot/uboot-envtools/files/qualcommax b/package/boot/uboot-envtools/files/qualcommax
|
|
|
-index 783073696615c..186c56c152f75 100644
|
|
|
---- a/package/boot/uboot-envtools/files/qualcommax
|
|
|
-+++ b/package/boot/uboot-envtools/files/qualcommax
|
|
|
-@@ -20,6 +20,11 @@ glinet,gl-axt1800)
|
|
|
- [ -n "$idx" ] && \
|
|
|
- ubootenv_add_uci_config "/dev/mtd$idx" "0x0" "0x40000" "0x20000" "2"
|
|
|
- ;;
|
|
|
-+ jdc,ax1800-pro)
|
|
|
-+ mmcpart="$(find_mmc_part 0:APPSBLENV)"
|
|
|
-+ [ -n "$mmcpart" ] && \
|
|
|
-+ ubootenv_add_uci_config "$mmcpart" "0x0" "0x40000" "0x20000" "2"
|
|
|
-+ ;;
|
|
|
- esac
|
|
|
-
|
|
|
- config_load ubootenv
|
|
|
-diff --git a/package/firmware/ipq-wifi/Makefile b/package/firmware/ipq-wifi/Makefile
|
|
|
-index 4474977494e4d..4b88911c0e102 100644
|
|
|
---- a/package/firmware/ipq-wifi/Makefile
|
|
|
-+++ b/package/firmware/ipq-wifi/Makefile
|
|
|
-@@ -36,6 +36,7 @@ ALLWIFIBOARDS:= \
|
|
|
- edimax_cax1800 \
|
|
|
- glinet_gl-ax1800 \
|
|
|
- glinet_gl-axt1800 \
|
|
|
-+ jdc_ax1800-pro \
|
|
|
- linksys_mr7350 \
|
|
|
- linksys_mx4200 \
|
|
|
- netgear_rax120v2 \
|
|
|
-@@ -141,6 +142,7 @@ $(eval $(call generate-ipq-wifi-package,edgecore_eap102,Edgecore EAP102))
|
|
|
- $(eval $(call generate-ipq-wifi-package,edimax_cax1800,Edimax CAX1800))
|
|
|
- $(eval $(call generate-ipq-wifi-package,glinet_gl-ax1800,GL.iNet GL-AX1800))
|
|
|
- $(eval $(call generate-ipq-wifi-package,glinet_gl-axt1800,GL.iNet GL-AXT1800))
|
|
|
-+$(eval $(call generate-ipq-wifi-package,jdc_ax1800-pro,JD Cloud AX1800 Pro))
|
|
|
- $(eval $(call generate-ipq-wifi-package,linksys_mr7350,Linksys MR7350))
|
|
|
- $(eval $(call generate-ipq-wifi-package,linksys_mx4200,Linksys MX4200))
|
|
|
- $(eval $(call generate-ipq-wifi-package,netgear_rax120v2,Netgear RAX120v2))
|
|
|
-diff --git a/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6018-jdc-ax1800-pro.dts b/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6018-jdc-ax1800-pro.dts
|
|
|
-new file mode 100644
|
|
|
-index 0000000000000..85032240a7a83
|
|
|
---- /dev/null
|
|
|
-+++ b/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6018-jdc-ax1800-pro.dts
|
|
|
-@@ -0,0 +1,424 @@
|
|
|
-+/dts-v1/;
|
|
|
-+/*
|
|
|
-+ * Copyright (c) 2019, 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 "ipq6018.dtsi"
|
|
|
-+#include "ipq6018-512m.dtsi"
|
|
|
-+#include "ipq6018-ess.dtsi"
|
|
|
-+
|
|
|
-+
|
|
|
-+#include <dt-bindings/input/input.h>
|
|
|
-+#include <dt-bindings/gpio/gpio.h>
|
|
|
-+#include <dt-bindings/leds/common.h>
|
|
|
-+
|
|
|
-+/ {
|
|
|
-+ model = "JDCloud AX1800 Pro";
|
|
|
-+ compatible = "jdc,ax1800-pro", "qcom,ipq6018-cp03", "qcom,ipq6018";
|
|
|
-+
|
|
|
-+ aliases {
|
|
|
-+ sdhc1 = &sdhc;
|
|
|
-+ serial0 = &blsp1_uart3;
|
|
|
-+ led-boot = &led_red_1;
|
|
|
-+ led-failsafe = &led_red_1;
|
|
|
-+ led-running = &led_green_1;
|
|
|
-+ led-upgrade = &led_green_1;
|
|
|
-+ ethernet1 = &dp2;
|
|
|
-+ ethernet2 = &dp3;
|
|
|
-+ ethernet3 = &dp4;
|
|
|
-+ ethernet4 = &dp5;
|
|
|
-+ };
|
|
|
-+
|
|
|
-+ chosen {
|
|
|
-+ bootargs = "console=ttyMSM0,115200,n8";
|
|
|
-+ bootargs-append = " rootfstype=squashfs,ext4 swiotlb=1 coherent_pool=2M";
|
|
|
-+ };
|
|
|
-+
|
|
|
-+ gpio_keys {
|
|
|
-+ compatible = "gpio-keys";
|
|
|
-+ status = "okay";
|
|
|
-+
|
|
|
-+ joylink {
|
|
|
-+ label = "joylink";
|
|
|
-+ linux,code = <0x211>;
|
|
|
-+ gpios = <&tlmm 0x08 GPIO_ACTIVE_LOW>;
|
|
|
-+ linux,input-type = <0x01>;
|
|
|
-+ debounce-interval = <0x3c>;
|
|
|
-+ };
|
|
|
-+
|
|
|
-+ reset {
|
|
|
-+ label = "reset";
|
|
|
-+ linux,code = <0x198>;
|
|
|
-+ gpios = <&tlmm 0x09 GPIO_ACTIVE_LOW>;
|
|
|
-+ linux,input-type = <0x01>;
|
|
|
-+ debounce-interval = <0x3c>;
|
|
|
-+ };
|
|
|
-+ };
|
|
|
-+
|
|
|
-+ leds {
|
|
|
-+ compatible = "gpio-leds";
|
|
|
-+
|
|
|
-+ led_blue_1: led@35 {
|
|
|
-+ label = "led_b1";
|
|
|
-+ gpio = <&tlmm 0x23 GPIO_ACTIVE_HIGH>;
|
|
|
-+ };
|
|
|
-+
|
|
|
-+ led_red_1: led@37 {
|
|
|
-+ label = "led_r1";
|
|
|
-+ gpio = <&tlmm 0x25 GPIO_ACTIVE_HIGH>;
|
|
|
-+ };
|
|
|
-+
|
|
|
-+ led_green_1: led@50 {
|
|
|
-+ label = "led_g1";
|
|
|
-+ gpio = <&tlmm 0x32 GPIO_ACTIVE_HIGH>;
|
|
|
-+ };
|
|
|
-+
|
|
|
-+ led_blue_2: led@30 {
|
|
|
-+ label = "led_b2";
|
|
|
-+ gpio = <&tlmm 0x1e GPIO_ACTIVE_HIGH>;
|
|
|
-+ };
|
|
|
-+
|
|
|
-+ led_red_2: led@32 {
|
|
|
-+ label = "led_r2";
|
|
|
-+ gpio = <&tlmm 0x20 GPIO_ACTIVE_HIGH>;
|
|
|
-+ };
|
|
|
-+
|
|
|
-+ led_green_2: led@33 {
|
|
|
-+ label = "led_g2";
|
|
|
-+ gpio = <&tlmm 0x21 GPIO_ACTIVE_HIGH>;
|
|
|
-+ };
|
|
|
-+
|
|
|
-+ led_blue_3:led@31 {
|
|
|
-+ label = "led_b3";
|
|
|
-+ gpio = <&tlmm 0x1f GPIO_ACTIVE_HIGH>;
|
|
|
-+ };
|
|
|
-+
|
|
|
-+ led_red_3: led@29 {
|
|
|
-+ label = "led_r3";
|
|
|
-+ gpio = <&tlmm 0x1d GPIO_ACTIVE_HIGH>;
|
|
|
-+ };
|
|
|
-+
|
|
|
-+ led_green_3: led@34 {
|
|
|
-+ label = "led_g3";
|
|
|
-+ gpio = <&tlmm 0x22 GPIO_ACTIVE_HIGH>;
|
|
|
-+ };
|
|
|
-+ };
|
|
|
-+};
|
|
|
-+
|
|
|
-+&tlmm {
|
|
|
-+ compatible = "qcom,ipq6000-pinctrl";
|
|
|
-+
|
|
|
-+ spi_1_pins: spi_1_pins {
|
|
|
-+ mux {
|
|
|
-+ pins = "gpio38","gpio39","gpio40","gpio41";
|
|
|
-+ function = "blsp0_spi";
|
|
|
-+ drive-strength = <0x08>;
|
|
|
-+ bias-pull-down;
|
|
|
-+ };
|
|
|
-+ };
|
|
|
-+
|
|
|
-+ button_pins: button_pins {
|
|
|
-+ joylink_button {
|
|
|
-+ pins = "gpio8";
|
|
|
-+ function = "gpio";
|
|
|
-+ drive-strength = <0x08>;
|
|
|
-+ bias-pull-up;
|
|
|
-+ };
|
|
|
-+
|
|
|
-+ reset_button {
|
|
|
-+ pins = "gpio9";
|
|
|
-+ function = "gpio";
|
|
|
-+ drive-strength = <0x08>;
|
|
|
-+ bias-pull-up;
|
|
|
-+ };
|
|
|
-+ };
|
|
|
-+
|
|
|
-+ mdio_pinmux: mdio_pinmux {
|
|
|
-+ mux_0 {
|
|
|
-+ pins = "gpio64";
|
|
|
-+ function = "mdc";
|
|
|
-+ drive-strength = <0x08>;
|
|
|
-+ bias-pull-up;
|
|
|
-+ };
|
|
|
-+
|
|
|
-+ mux_1 {
|
|
|
-+ pins = "gpio65";
|
|
|
-+ function = "mdio";
|
|
|
-+ drive-strength = <0x08>;
|
|
|
-+ bias-pull-up;
|
|
|
-+ };
|
|
|
-+
|
|
|
-+ mux_2 {
|
|
|
-+ pins = "gpio75";
|
|
|
-+ function = "gpio";
|
|
|
-+ bias-pull-up;
|
|
|
-+ };
|
|
|
-+ };
|
|
|
-+
|
|
|
-+ leds_pins: leds_pins {
|
|
|
-+ led_b1 {
|
|
|
-+ pins = "gpio35";
|
|
|
-+ function = "gpio";
|
|
|
-+ drive-strength = <0x08>;
|
|
|
-+ bias-pull-down;
|
|
|
-+ };
|
|
|
-+
|
|
|
-+ led_r1 {
|
|
|
-+ pins = "gpio37";
|
|
|
-+ function = "gpio";
|
|
|
-+ drive-strength = <0x08>;
|
|
|
-+ bias-pull-down;
|
|
|
-+ };
|
|
|
-+
|
|
|
-+ led_g1 {
|
|
|
-+ pins = "gpio50";
|
|
|
-+ function = "gpio";
|
|
|
-+ drive-strength = <0x08>;
|
|
|
-+ bias-pull-down;
|
|
|
-+ };
|
|
|
-+
|
|
|
-+ led_b2 {
|
|
|
-+ pins = "gpio30";
|
|
|
-+ function = "gpio";
|
|
|
-+ drive-strength = <0x08>;
|
|
|
-+ bias-pull-down;
|
|
|
-+ };
|
|
|
-+
|
|
|
-+ led_r2 {
|
|
|
-+ pins = "gpio32";
|
|
|
-+ function = "gpio";
|
|
|
-+ drive-strength = <0x08>;
|
|
|
-+ bias-pull-down;
|
|
|
-+ };
|
|
|
-+
|
|
|
-+ led_g2 {
|
|
|
-+ pins = "gpio33";
|
|
|
-+ function = "gpio";
|
|
|
-+ drive-strength = <0x08>;
|
|
|
-+ bias-pull-down;
|
|
|
-+ };
|
|
|
-+
|
|
|
-+ led_b3 {
|
|
|
-+ pins = "gpio31";
|
|
|
-+ function = "gpio";
|
|
|
-+ drive-strength = <0x08>;
|
|
|
-+ bias-pull-down;
|
|
|
-+ };
|
|
|
-+
|
|
|
-+ led_r3 {
|
|
|
-+ pins = "gpio29";
|
|
|
-+ function = "gpio";
|
|
|
-+ drive-strength = <0x08>;
|
|
|
-+ bias-pull-down;
|
|
|
-+ };
|
|
|
-+
|
|
|
-+ led_g3 {
|
|
|
-+ pins = "gpio34";
|
|
|
-+ function = "gpio";
|
|
|
-+ drive-strength = <0x08>;
|
|
|
-+ bias-pull-down;
|
|
|
-+ };
|
|
|
-+ };
|
|
|
-+};
|
|
|
-+
|
|
|
-+
|
|
|
-+&blsp1_uart3 {
|
|
|
-+ pinctrl-0 = <&serial_3_pins>;
|
|
|
-+ pinctrl-names = "default";
|
|
|
-+ status = "okay";
|
|
|
-+};
|
|
|
-+
|
|
|
-+&blsp1_spi1 {
|
|
|
-+ pinctrl-0 = <&spi_1_pins>;
|
|
|
-+ pinctrl-names = "default";
|
|
|
-+ cs-select = <0>;
|
|
|
-+ status = "okay";
|
|
|
-+
|
|
|
-+ m25p80@0 {
|
|
|
-+ #address-cells = <1>;
|
|
|
-+ #size-cells = <1>;
|
|
|
-+ reg = <0>;
|
|
|
-+ compatible = "n25q128a11";
|
|
|
-+ linux,modalias = "m25p80", "n25q128a11";
|
|
|
-+ spi-max-frequency = <50000000>;
|
|
|
-+ use-default-sizes;
|
|
|
-+ };
|
|
|
-+};
|
|
|
-+
|
|
|
-+&prng {
|
|
|
-+ status = "okay";
|
|
|
-+};
|
|
|
-+
|
|
|
-+&cryptobam {
|
|
|
-+ status = "okay";
|
|
|
-+};
|
|
|
-+
|
|
|
-+&crypto {
|
|
|
-+ status = "okay";
|
|
|
-+};
|
|
|
-+
|
|
|
-+&qpic_bam {
|
|
|
-+ status = "okay";
|
|
|
-+};
|
|
|
-+
|
|
|
-+&qusb_phy_0 {
|
|
|
-+ status = "okay";
|
|
|
-+};
|
|
|
-+
|
|
|
-+&qusb_phy_1 {
|
|
|
-+ status = "okay";
|
|
|
-+};
|
|
|
-+
|
|
|
-+
|
|
|
-+&ssphy_0 {
|
|
|
-+ status = "okay";
|
|
|
-+};
|
|
|
-+
|
|
|
-+&usb3 {
|
|
|
-+ status = "okay";
|
|
|
-+};
|
|
|
-+
|
|
|
-+&usb2 {
|
|
|
-+ status = "okay";
|
|
|
-+};
|
|
|
-+
|
|
|
-+&edma {
|
|
|
-+ status = "okay";
|
|
|
-+};
|
|
|
-+
|
|
|
-+&rpm {
|
|
|
-+ status = "disabled";
|
|
|
-+};
|
|
|
-+
|
|
|
-+&mdio {
|
|
|
-+ status = "okay";
|
|
|
-+
|
|
|
-+ pinctrl-0 = <&mdio_pinmux>;
|
|
|
-+ pinctrl-names = "default";
|
|
|
-+ reset-gpios = <&tlmm 75 GPIO_ACTIVE_LOW>;
|
|
|
-+
|
|
|
-+ ethernet_0: ethernet-phy-package@0 {
|
|
|
-+ compatible = "qcom,qca8075-package";
|
|
|
-+ #address-cells = <1>;
|
|
|
-+ #size-cells = <0>;
|
|
|
-+ reg = <0>;
|
|
|
-+ qcom,package-mode = "psgmii";
|
|
|
-+
|
|
|
-+ qca8075_1: ethernet-phy@1 {
|
|
|
-+ compatible = "ethernet-phy-ieee802.3-c22";
|
|
|
-+ reg = <1>;
|
|
|
-+ };
|
|
|
-+
|
|
|
-+ qca8075_2: ethernet-phy@2 {
|
|
|
-+ compatible = "ethernet-phy-ieee802.3-c22";
|
|
|
-+ reg = <2>;
|
|
|
-+ };
|
|
|
-+
|
|
|
-+ qca8075_3: ethernet-phy@3 {
|
|
|
-+ compatible = "ethernet-phy-ieee802.3-c22";
|
|
|
-+ reg = <3>;
|
|
|
-+ };
|
|
|
-+
|
|
|
-+ qca8075_4: ethernet-phy@4 {
|
|
|
-+ compatible = "ethernet-phy-ieee802.3-c22";
|
|
|
-+ reg = <4>;
|
|
|
-+ };
|
|
|
-+ };
|
|
|
-+};
|
|
|
-+
|
|
|
-+&switch {
|
|
|
-+ status = "okay";
|
|
|
-+
|
|
|
-+ switch_lan_bmp = <(0x8 | 0x10 | 0x20)>; /* lan port bitmap */
|
|
|
-+ switch_wan_bmp = <0x4>; /* wan port bitmap */
|
|
|
-+
|
|
|
-+ qcom,port_phyinfo {
|
|
|
-+ port@1 {
|
|
|
-+ port_id = <2>;
|
|
|
-+ phy_address = <1>;
|
|
|
-+ };
|
|
|
-+
|
|
|
-+ port@2 {
|
|
|
-+ port_id = <3>;
|
|
|
-+ phy_address = <2>;
|
|
|
-+ };
|
|
|
-+
|
|
|
-+ port@3 {
|
|
|
-+ port_id = <4>;
|
|
|
-+ phy_address = <3>;
|
|
|
-+ };
|
|
|
-+
|
|
|
-+ port@4 {
|
|
|
-+ port_id = <5>;
|
|
|
-+ phy_address = <4>;
|
|
|
-+ };
|
|
|
-+ };
|
|
|
-+};
|
|
|
-+
|
|
|
-+&qpic_bam {
|
|
|
-+ status = "okay";
|
|
|
-+};
|
|
|
-+
|
|
|
-+&wifi {
|
|
|
-+ status = "okay";
|
|
|
-+ qcom,ath11k-calibration-variant = "JDC-AX1800-Pro";
|
|
|
-+ qcom,ath11k-fw-memory-mode = <1>;
|
|
|
-+};
|
|
|
-+
|
|
|
-+
|
|
|
-+&dp2 {
|
|
|
-+ phy-handle = <&qca8075_1>;
|
|
|
-+ status = "okay";
|
|
|
-+};
|
|
|
-+
|
|
|
-+&dp3 {
|
|
|
-+ phy-handle = <&qca8075_2>;
|
|
|
-+ status = "okay";
|
|
|
-+};
|
|
|
-+
|
|
|
-+&dp4 {
|
|
|
-+ phy-handle = <&qca8075_3>;
|
|
|
-+ status = "okay";
|
|
|
-+};
|
|
|
-+
|
|
|
-+&dp5 {
|
|
|
-+ phy-handle = <&qca8075_4>;
|
|
|
-+ phy-mode = "psgmii";
|
|
|
-+ status = "okay";
|
|
|
-+};
|
|
|
-+
|
|
|
-+&sdhc {
|
|
|
-+ status = "okay";
|
|
|
-+
|
|
|
-+ /delete-property/ mmc-hs400-1_8v;
|
|
|
-+ mmc-hs200-1_8v;
|
|
|
-+ mmc-ddr-1_8v;
|
|
|
-+};
|
|
|
-+
|
|
|
-+&CPU0 {
|
|
|
-+ /delete-property/ cpu-supply;
|
|
|
-+};
|
|
|
-+
|
|
|
-+&CPU1 {
|
|
|
-+ /delete-property/ cpu-supply;
|
|
|
-+};
|
|
|
-+
|
|
|
-+&CPU2 {
|
|
|
-+ /delete-property/ cpu-supply;
|
|
|
-+};
|
|
|
-+
|
|
|
-+&CPU3 {
|
|
|
-+ /delete-property/ cpu-supply;
|
|
|
-+};
|
|
|
-diff --git a/target/linux/qualcommax/image/ipq60xx.mk b/target/linux/qualcommax/image/ipq60xx.mk
|
|
|
-index 17fd54aa4017b..efc9c8802ad0a 100644
|
|
|
---- a/target/linux/qualcommax/image/ipq60xx.mk
|
|
|
-+++ b/target/linux/qualcommax/image/ipq60xx.mk
|
|
|
-@@ -49,6 +49,21 @@ define Device/glinet_gl-axt1800
|
|
|
- endef
|
|
|
- TARGET_DEVICES += glinet_gl-axt1800
|
|
|
-
|
|
|
-+define Device/jdc_ax1800-pro
|
|
|
-+ $(call Device/FitImage)
|
|
|
-+ DEVICE_VENDOR := JD Cloud
|
|
|
-+ DEVICE_MODEL := JDC AX1800 Pro
|
|
|
-+ DEVICE_DTS_CONFIG := config@cp03-c2
|
|
|
-+ DEVICE_DTS := ipq6018-jdc-ax1800-pro
|
|
|
-+ SOC := ipq6018
|
|
|
-+ DEVICE_PACKAGES := ipq-wifi-jdc_ax1800-pro kmod-fs-ext4 mkf2fs f2fsck kmod-fs-f2fs
|
|
|
-+ BLOCKSIZE := 64k
|
|
|
-+ KERNEL_SIZE := 6144k
|
|
|
-+ IMAGES += factory.bin
|
|
|
-+ IMAGE/factory.bin := append-kernel | pad-to 6144k | append-rootfs | append-metadata
|
|
|
-+endef
|
|
|
-+TARGET_DEVICES += jdc_ax1800-pro
|
|
|
-+
|
|
|
- define Device/linksys_mr7350
|
|
|
- $(call Device/FitImage)
|
|
|
- DEVICE_VENDOR := Linksys
|
|
|
-diff --git a/target/linux/qualcommax/ipq60xx/base-files/etc/board.d/01_leds b/target/linux/qualcommax/ipq60xx/base-files/etc/board.d/01_leds
|
|
|
-index a75a2f071308a..6976dbabb6411 100644
|
|
|
---- a/target/linux/qualcommax/ipq60xx/base-files/etc/board.d/01_leds
|
|
|
-+++ b/target/linux/qualcommax/ipq60xx/base-files/etc/board.d/01_leds
|
|
|
-@@ -11,6 +11,9 @@ cmiot,ax18)
|
|
|
- ucidef_set_led_netdev "wlan2g" "WLAN2G" "blue:wlan2g" "wlan1"
|
|
|
- ucidef_set_led_netdev "wlan5g" "WLAN5G" "blue:wlan5g" "wlan0"
|
|
|
- ;;
|
|
|
-+jdc,ax1800-pro)
|
|
|
-+ ucidef_set_led_netdev "wan" "WAN" "net_blue" "eth3"
|
|
|
-+ ;;
|
|
|
- redmi,ax5-*|\
|
|
|
- xiaomi,rm1800)
|
|
|
- ucidef_set_led_netdev "internet" "Internet" "blue:network" "wan"
|
|
|
-diff --git a/target/linux/qualcommax/ipq60xx/base-files/etc/board.d/02_network b/target/linux/qualcommax/ipq60xx/base-files/etc/board.d/02_network
|
|
|
-index ead1fb8f0fa57..cb743fa38c199 100644
|
|
|
---- a/target/linux/qualcommax/ipq60xx/base-files/etc/board.d/02_network
|
|
|
-+++ b/target/linux/qualcommax/ipq60xx/base-files/etc/board.d/02_network
|
|
|
-@@ -24,6 +24,9 @@ ipq60xx_setup_interfaces()
|
|
|
- glinet,gl-axt1800)
|
|
|
- ucidef_set_interfaces_lan_wan "lan1 lan2" "wan"
|
|
|
- ;;
|
|
|
-+ jdc,ax1800-pro)
|
|
|
-+ ucidef_set_interfaces_lan_wan "eth0 eth1 eth2" "eth3"
|
|
|
-+ ;;
|
|
|
- *)
|
|
|
- echo "Unsupported hardware. Network interfaces not initialized"
|
|
|
- ;;
|
|
|
-diff --git a/target/linux/qualcommax/ipq60xx/base-files/etc/hotplug.d/firmware/11-ath11k-caldata b/target/linux/qualcommax/ipq60xx/base-files/etc/hotplug.d/firmware/11-ath11k-caldata
|
|
|
-index f148438b3335d..bc30e8cc423db 100644
|
|
|
---- a/target/linux/qualcommax/ipq60xx/base-files/etc/hotplug.d/firmware/11-ath11k-caldata
|
|
|
-+++ b/target/linux/qualcommax/ipq60xx/base-files/etc/hotplug.d/firmware/11-ath11k-caldata
|
|
|
-@@ -15,6 +15,7 @@ case "$FIRMWARE" in
|
|
|
- zn,m2)
|
|
|
- caldata_extract "0:art" 0x1000 0x10000
|
|
|
- ;;
|
|
|
-+ jdc,ax1800-pro|\
|
|
|
- redmi,ax5-jdcloud)
|
|
|
- caldata_extract_mmc "0:ART" 0x1000 0x10000
|
|
|
- ;;
|
|
|
-diff --git a/target/linux/qualcommax/ipq60xx/base-files/lib/upgrade/mmc.sh b/target/linux/qualcommax/ipq60xx/base-files/lib/upgrade/mmc.sh
|
|
|
-new file mode 100644
|
|
|
-index 0000000000000..dac9ddd568654
|
|
|
---- /dev/null
|
|
|
-+++ b/target/linux/qualcommax/ipq60xx/base-files/lib/upgrade/mmc.sh
|
|
|
-@@ -0,0 +1,83 @@
|
|
|
-+#
|
|
|
-+# Copyright (C) 2016 lede-project.org
|
|
|
-+#
|
|
|
-+
|
|
|
-+# this can be used as a generic mmc upgrade script
|
|
|
-+# just add a device entry in platform.sh,
|
|
|
-+# define "kernelname" and "rootfsname" and call mmc_do_upgrade
|
|
|
-+# after the kernel and rootfs flash a loopdev (as overlay) is
|
|
|
-+# setup on top of the rootfs partition
|
|
|
-+# for the proper function a padded rootfs image is needed, basically
|
|
|
-+# append "pad-to 64k" to the image definition
|
|
|
-+# this is based on the ipq806x zyxel.sh mmc upgrade
|
|
|
-+
|
|
|
-+. /lib/functions.sh
|
|
|
-+
|
|
|
-+mmc_do_upgrade() {
|
|
|
-+ local tar_file="$1"
|
|
|
-+ local rootfs=
|
|
|
-+ local kernel=
|
|
|
-+
|
|
|
-+ [ -z "$kernel" ] && kernel=$(find_mmc_part ${kernelname})
|
|
|
-+ [ -z "$rootfs" ] && rootfs=$(find_mmc_part ${rootfsname})
|
|
|
-+
|
|
|
-+ [ -z "$kernel" ] && echo "Upgrade failed: kernel partition not found! Rebooting..." && reboot -f
|
|
|
-+ [ -z "$rootfs" ] && echo "Upgrade failed: rootfs partition not found! Rebooting..." && reboot -f
|
|
|
-+
|
|
|
-+ mmc_do_flash $tar_file $kernel $rootfs
|
|
|
-+
|
|
|
-+ return 0
|
|
|
-+}
|
|
|
-+
|
|
|
-+mmc_do_flash() {
|
|
|
-+ local tar_file=$1
|
|
|
-+ local kernel=$2
|
|
|
-+ local rootfs=$3
|
|
|
-+
|
|
|
-+ # keep sure its unbound
|
|
|
-+ losetup --detach-all || {
|
|
|
-+ echo Failed to detach all loop devices. Skip this try.
|
|
|
-+ reboot -f
|
|
|
-+ }
|
|
|
-+
|
|
|
-+ # use the first found directory in the tar archive
|
|
|
-+ local board_dir=$(tar tf $tar_file | grep -m 1 '^sysupgrade-.*/$')
|
|
|
-+ board_dir=${board_dir%/}
|
|
|
-+
|
|
|
-+ echo "flashing kernel to $kernel"
|
|
|
-+ tar xf $tar_file ${board_dir}/kernel -O >$kernel
|
|
|
-+
|
|
|
-+ echo "flashing rootfs to ${rootfs}"
|
|
|
-+ tar xf $tar_file ${board_dir}/root -O >"${rootfs}"
|
|
|
-+
|
|
|
-+ # a padded rootfs is needed for overlay fs creation
|
|
|
-+ local offset=$(tar xf $tar_file ${board_dir}/root -O | wc -c)
|
|
|
-+ [ $offset -lt 65536 ] && {
|
|
|
-+ echo Wrong size for rootfs: $offset
|
|
|
-+ sleep 10
|
|
|
-+ reboot -f
|
|
|
-+ }
|
|
|
-+
|
|
|
-+ # Mount loop for rootfs_data
|
|
|
-+ local loopdev="$(losetup -f)"
|
|
|
-+ losetup -o $offset $loopdev $rootfs || {
|
|
|
-+ echo "Failed to mount looped rootfs_data."
|
|
|
-+ sleep 10
|
|
|
-+ reboot -f
|
|
|
-+ }
|
|
|
-+
|
|
|
-+ echo "Format new rootfs_data at position ${offset}."
|
|
|
-+ mkfs.ext4 -F -L rootfs_data $loopdev
|
|
|
-+ mkdir /tmp/new_root
|
|
|
-+ mount -t ext4 $loopdev /tmp/new_root && {
|
|
|
-+ echo "Saving config to rootfs_data at position ${offset}."
|
|
|
-+ cp -v "$UPGRADE_BACKUP" "/tmp/new_root/$BACKUP_FILE"
|
|
|
-+ umount /tmp/new_root
|
|
|
-+ }
|
|
|
-+
|
|
|
-+ # Cleanup
|
|
|
-+ losetup -d $loopdev >/dev/null 2>&1
|
|
|
-+ sync
|
|
|
-+ umount -a
|
|
|
-+ reboot -f
|
|
|
-+}
|
|
|
-diff --git a/target/linux/qualcommax/ipq60xx/base-files/lib/upgrade/platform.sh b/target/linux/qualcommax/ipq60xx/base-files/lib/upgrade/platform.sh
|
|
|
-index 3c01d8dd967c4..d4c5072de7b13 100644
|
|
|
---- a/target/linux/qualcommax/ipq60xx/base-files/lib/upgrade/platform.sh
|
|
|
-+++ b/target/linux/qualcommax/ipq60xx/base-files/lib/upgrade/platform.sh
|
|
|
-@@ -14,6 +14,11 @@ platform_do_upgrade() {
|
|
|
- glinet,gl-ax1800)
|
|
|
- nand_do_upgrade "$1"
|
|
|
- ;;
|
|
|
-+ jdc,ax1800-pro)
|
|
|
-+ kernelname="0:HLOS"
|
|
|
-+ rootfsname="rootfs"
|
|
|
-+ mmc_do_upgrade "$1"
|
|
|
-+ ;;
|
|
|
- *)
|
|
|
- default_do_upgrade "$1"
|
|
|
- ;;
|
|
|
-diff --git a/target/linux/qualcommax/patches-6.1/2000-drivers-pinctrl-qcom-add-ipq6000-support.patch b/target/linux/qualcommax/patches-6.1/2000-drivers-pinctrl-qcom-add-ipq6000-support.patch
|
|
|
-new file mode 100644
|
|
|
-index 0000000000000..d856e56fbef64
|
|
|
---- /dev/null
|
|
|
-+++ b/target/linux/qualcommax/patches-6.1/2000-drivers-pinctrl-qcom-add-ipq6000-support.patch
|
|
|
-@@ -0,0 +1,1133 @@
|
|
|
-+From 192ce4f2a695c1d6ed72ac1a1b69f125ada9d4c3 Mon Sep 17 00:00:00 2001
|
|
|
-+From: JiaY-shi <[email protected]>
|
|
|
-+Date: Tue, 28 Nov 2023 23:31:57 +0800
|
|
|
-+Subject: [PATCH] drivers: pinctrl: qcom: add ipq6000 support
|
|
|
-+
|
|
|
-+---
|
|
|
-+ drivers/pinctrl/qcom/Makefile | 1 +
|
|
|
-+ drivers/pinctrl/qcom/pinctrl-ipq6000.c | 1101 ++++++++++++++++++++++++
|
|
|
-+ 2 files changed, 1102 insertions(+)
|
|
|
-+ create mode 100644 drivers/pinctrl/qcom/pinctrl-ipq6000.c
|
|
|
-+
|
|
|
-+diff --git a/drivers/pinctrl/qcom/Makefile b/drivers/pinctrl/qcom/Makefile
|
|
|
-+index 8269a1db8794..0db75e183ca0 100644
|
|
|
-+--- a/drivers/pinctrl/qcom/Makefile
|
|
|
-++++ b/drivers/pinctrl/qcom/Makefile
|
|
|
-+@@ -6,6 +6,7 @@ obj-$(CONFIG_PINCTRL_APQ8084) += pinctrl-apq8084.o
|
|
|
-+ obj-$(CONFIG_PINCTRL_IPQ4019) += pinctrl-ipq4019.o
|
|
|
-+ obj-$(CONFIG_PINCTRL_IPQ8064) += pinctrl-ipq8064.o
|
|
|
-+ obj-$(CONFIG_PINCTRL_IPQ8074) += pinctrl-ipq8074.o
|
|
|
-++obj-$(CONFIG_PINCTRL_IPQ6018) += pinctrl-ipq6000.o
|
|
|
-+ obj-$(CONFIG_PINCTRL_IPQ6018) += pinctrl-ipq6018.o
|
|
|
-+ obj-$(CONFIG_PINCTRL_MSM8226) += pinctrl-msm8226.o
|
|
|
-+ obj-$(CONFIG_PINCTRL_MSM8660) += pinctrl-msm8660.o
|
|
|
-+diff --git a/drivers/pinctrl/qcom/pinctrl-ipq6000.c b/drivers/pinctrl/qcom/pinctrl-ipq6000.c
|
|
|
-+new file mode 100644
|
|
|
-+index 000000000000..cd7b16ed695d
|
|
|
-+--- /dev/null
|
|
|
-++++ b/drivers/pinctrl/qcom/pinctrl-ipq6000.c
|
|
|
-+@@ -0,0 +1,1101 @@
|
|
|
-++// SPDX-License-Identifier: GPL-2.0
|
|
|
-++/*
|
|
|
-++ * Copyright (c) 2016-2018, The Linux Foundation. All rights reserved.
|
|
|
-++ */
|
|
|
-++
|
|
|
-++#include <linux/module.h>
|
|
|
-++#include <linux/of.h>
|
|
|
-++#include <linux/platform_device.h>
|
|
|
-++#include <linux/pinctrl/pinctrl.h>
|
|
|
-++
|
|
|
-++#include "pinctrl-msm.h"
|
|
|
-++
|
|
|
-++#define FUNCTION(fname) \
|
|
|
-++ [msm_mux_##fname] = { \
|
|
|
-++ .name = #fname, \
|
|
|
-++ .groups = fname##_groups, \
|
|
|
-++ .ngroups = ARRAY_SIZE(fname##_groups), \
|
|
|
-++ }
|
|
|
-++
|
|
|
-++#define REG_SIZE 0x1000
|
|
|
-++#define PINGROUP(id, f1, f2, f3, f4, f5, f6, f7, f8, f9) \
|
|
|
-++ { \
|
|
|
-++ .name = "gpio" #id, \
|
|
|
-++ .pins = gpio##id##_pins, \
|
|
|
-++ .npins = (unsigned int)ARRAY_SIZE(gpio##id##_pins), \
|
|
|
-++ .funcs = (int[]){ \
|
|
|
-++ msm_mux_gpio, /* gpio mode */ \
|
|
|
-++ msm_mux_##f1, \
|
|
|
-++ msm_mux_##f2, \
|
|
|
-++ msm_mux_##f3, \
|
|
|
-++ msm_mux_##f4, \
|
|
|
-++ msm_mux_##f5, \
|
|
|
-++ msm_mux_##f6, \
|
|
|
-++ msm_mux_##f7, \
|
|
|
-++ msm_mux_##f8, \
|
|
|
-++ msm_mux_##f9 \
|
|
|
-++ }, \
|
|
|
-++ .nfuncs = 10, \
|
|
|
-++ .ctl_reg = REG_SIZE * id, \
|
|
|
-++ .io_reg = 0x4 + REG_SIZE * id, \
|
|
|
-++ .intr_cfg_reg = 0x8 + REG_SIZE * id, \
|
|
|
-++ .intr_status_reg = 0xc + REG_SIZE * id, \
|
|
|
-++ .intr_target_reg = 0x8 + REG_SIZE * id, \
|
|
|
-++ .mux_bit = 2, \
|
|
|
-++ .pull_bit = 0, \
|
|
|
-++ .drv_bit = 6, \
|
|
|
-++ .oe_bit = 9, \
|
|
|
-++ .in_bit = 0, \
|
|
|
-++ .out_bit = 1, \
|
|
|
-++ .intr_enable_bit = 0, \
|
|
|
-++ .intr_status_bit = 0, \
|
|
|
-++ .intr_target_bit = 5, \
|
|
|
-++ .intr_target_kpss_val = 3, \
|
|
|
-++ .intr_raw_status_bit = 4, \
|
|
|
-++ .intr_polarity_bit = 1, \
|
|
|
-++ .intr_detection_bit = 2, \
|
|
|
-++ .intr_detection_width = 2, \
|
|
|
-++ }
|
|
|
-++
|
|
|
-++static const struct pinctrl_pin_desc ipq6018_pins[] = {
|
|
|
-++ PINCTRL_PIN(0, "GPIO_0"),
|
|
|
-++ PINCTRL_PIN(1, "GPIO_1"),
|
|
|
-++ PINCTRL_PIN(2, "GPIO_2"),
|
|
|
-++ PINCTRL_PIN(3, "GPIO_3"),
|
|
|
-++ PINCTRL_PIN(4, "GPIO_4"),
|
|
|
-++ PINCTRL_PIN(5, "GPIO_5"),
|
|
|
-++ PINCTRL_PIN(6, "GPIO_6"),
|
|
|
-++ PINCTRL_PIN(7, "GPIO_7"),
|
|
|
-++ PINCTRL_PIN(8, "GPIO_8"),
|
|
|
-++ PINCTRL_PIN(9, "GPIO_9"),
|
|
|
-++ PINCTRL_PIN(10, "GPIO_10"),
|
|
|
-++ PINCTRL_PIN(11, "GPIO_11"),
|
|
|
-++ PINCTRL_PIN(12, "GPIO_12"),
|
|
|
-++ PINCTRL_PIN(13, "GPIO_13"),
|
|
|
-++ PINCTRL_PIN(14, "GPIO_14"),
|
|
|
-++ PINCTRL_PIN(15, "GPIO_15"),
|
|
|
-++ PINCTRL_PIN(16, "GPIO_16"),
|
|
|
-++ PINCTRL_PIN(17, "GPIO_17"),
|
|
|
-++ PINCTRL_PIN(18, "GPIO_18"),
|
|
|
-++ PINCTRL_PIN(19, "GPIO_19"),
|
|
|
-++
|
|
|
-++ PINCTRL_PIN(21, "GPIO_21"),
|
|
|
-++ PINCTRL_PIN(22, "GPIO_22"),
|
|
|
-++ PINCTRL_PIN(23, "GPIO_23"),
|
|
|
-++ PINCTRL_PIN(24, "GPIO_24"),
|
|
|
-++ PINCTRL_PIN(25, "GPIO_25"),
|
|
|
-++ PINCTRL_PIN(26, "GPIO_26"),
|
|
|
-++ PINCTRL_PIN(27, "GPIO_27"),
|
|
|
-++ PINCTRL_PIN(28, "GPIO_28"),
|
|
|
-++ PINCTRL_PIN(29, "GPIO_29"),
|
|
|
-++ PINCTRL_PIN(30, "GPIO_30"),
|
|
|
-++ PINCTRL_PIN(31, "GPIO_31"),
|
|
|
-++ PINCTRL_PIN(32, "GPIO_32"),
|
|
|
-++ PINCTRL_PIN(33, "GPIO_33"),
|
|
|
-++ PINCTRL_PIN(34, "GPIO_34"),
|
|
|
-++ PINCTRL_PIN(35, "GPIO_35"),
|
|
|
-++ PINCTRL_PIN(36, "GPIO_36"),
|
|
|
-++ PINCTRL_PIN(37, "GPIO_37"),
|
|
|
-++ PINCTRL_PIN(38, "GPIO_38"),
|
|
|
-++ PINCTRL_PIN(39, "GPIO_39"),
|
|
|
-++ PINCTRL_PIN(40, "GPIO_40"),
|
|
|
-++ PINCTRL_PIN(41, "GPIO_41"),
|
|
|
-++ PINCTRL_PIN(42, "GPIO_42"),
|
|
|
-++ PINCTRL_PIN(43, "GPIO_43"),
|
|
|
-++ PINCTRL_PIN(44, "GPIO_44"),
|
|
|
-++ PINCTRL_PIN(45, "GPIO_45"),
|
|
|
-++ PINCTRL_PIN(46, "GPIO_46"),
|
|
|
-++ PINCTRL_PIN(47, "GPIO_47"),
|
|
|
-++ PINCTRL_PIN(48, "GPIO_48"),
|
|
|
-++ PINCTRL_PIN(49, "GPIO_49"),
|
|
|
-++ PINCTRL_PIN(50, "GPIO_50"),
|
|
|
-++ PINCTRL_PIN(51, "GPIO_51"),
|
|
|
-++ PINCTRL_PIN(52, "GPIO_52"),
|
|
|
-++ PINCTRL_PIN(53, "GPIO_53"),
|
|
|
-++ PINCTRL_PIN(54, "GPIO_54"),
|
|
|
-++ PINCTRL_PIN(55, "GPIO_55"),
|
|
|
-++ PINCTRL_PIN(56, "GPIO_56"),
|
|
|
-++ PINCTRL_PIN(57, "GPIO_57"),
|
|
|
-++ PINCTRL_PIN(58, "GPIO_58"),
|
|
|
-++ PINCTRL_PIN(59, "GPIO_59"),
|
|
|
-++ PINCTRL_PIN(60, "GPIO_60"),
|
|
|
-++ PINCTRL_PIN(61, "GPIO_61"),
|
|
|
-++ PINCTRL_PIN(62, "GPIO_62"),
|
|
|
-++ PINCTRL_PIN(63, "GPIO_63"),
|
|
|
-++ PINCTRL_PIN(64, "GPIO_64"),
|
|
|
-++ PINCTRL_PIN(65, "GPIO_65"),
|
|
|
-++ PINCTRL_PIN(66, "GPIO_66"),
|
|
|
-++ PINCTRL_PIN(67, "GPIO_67"),
|
|
|
-++ PINCTRL_PIN(68, "GPIO_68"),
|
|
|
-++ PINCTRL_PIN(69, "GPIO_69"),
|
|
|
-++ PINCTRL_PIN(70, "GPIO_70"),
|
|
|
-++ PINCTRL_PIN(71, "GPIO_71"),
|
|
|
-++ PINCTRL_PIN(72, "GPIO_72"),
|
|
|
-++ PINCTRL_PIN(73, "GPIO_73"),
|
|
|
-++ PINCTRL_PIN(74, "GPIO_74"),
|
|
|
-++ PINCTRL_PIN(75, "GPIO_75"),
|
|
|
-++ PINCTRL_PIN(76, "GPIO_76"),
|
|
|
-++ PINCTRL_PIN(77, "GPIO_77"),
|
|
|
-++ PINCTRL_PIN(78, "GPIO_78"),
|
|
|
-++ PINCTRL_PIN(79, "GPIO_79"),
|
|
|
-++};
|
|
|
-++
|
|
|
-++#define DECLARE_MSM_GPIO_PINS(pin) \
|
|
|
-++ static const unsigned int gpio##pin##_pins[] = { pin }
|
|
|
-++DECLARE_MSM_GPIO_PINS(0);
|
|
|
-++DECLARE_MSM_GPIO_PINS(1);
|
|
|
-++DECLARE_MSM_GPIO_PINS(2);
|
|
|
-++DECLARE_MSM_GPIO_PINS(3);
|
|
|
-++DECLARE_MSM_GPIO_PINS(4);
|
|
|
-++DECLARE_MSM_GPIO_PINS(5);
|
|
|
-++DECLARE_MSM_GPIO_PINS(6);
|
|
|
-++DECLARE_MSM_GPIO_PINS(7);
|
|
|
-++DECLARE_MSM_GPIO_PINS(8);
|
|
|
-++DECLARE_MSM_GPIO_PINS(9);
|
|
|
-++DECLARE_MSM_GPIO_PINS(10);
|
|
|
-++DECLARE_MSM_GPIO_PINS(11);
|
|
|
-++DECLARE_MSM_GPIO_PINS(12);
|
|
|
-++DECLARE_MSM_GPIO_PINS(13);
|
|
|
-++DECLARE_MSM_GPIO_PINS(14);
|
|
|
-++DECLARE_MSM_GPIO_PINS(15);
|
|
|
-++DECLARE_MSM_GPIO_PINS(16);
|
|
|
-++DECLARE_MSM_GPIO_PINS(17);
|
|
|
-++DECLARE_MSM_GPIO_PINS(18);
|
|
|
-++DECLARE_MSM_GPIO_PINS(19);
|
|
|
-++
|
|
|
-++DECLARE_MSM_GPIO_PINS(21);
|
|
|
-++DECLARE_MSM_GPIO_PINS(22);
|
|
|
-++DECLARE_MSM_GPIO_PINS(23);
|
|
|
-++DECLARE_MSM_GPIO_PINS(24);
|
|
|
-++DECLARE_MSM_GPIO_PINS(25);
|
|
|
-++DECLARE_MSM_GPIO_PINS(26);
|
|
|
-++DECLARE_MSM_GPIO_PINS(27);
|
|
|
-++DECLARE_MSM_GPIO_PINS(28);
|
|
|
-++DECLARE_MSM_GPIO_PINS(29);
|
|
|
-++DECLARE_MSM_GPIO_PINS(30);
|
|
|
-++DECLARE_MSM_GPIO_PINS(31);
|
|
|
-++DECLARE_MSM_GPIO_PINS(32);
|
|
|
-++DECLARE_MSM_GPIO_PINS(33);
|
|
|
-++DECLARE_MSM_GPIO_PINS(34);
|
|
|
-++DECLARE_MSM_GPIO_PINS(35);
|
|
|
-++DECLARE_MSM_GPIO_PINS(36);
|
|
|
-++DECLARE_MSM_GPIO_PINS(37);
|
|
|
-++DECLARE_MSM_GPIO_PINS(38);
|
|
|
-++DECLARE_MSM_GPIO_PINS(39);
|
|
|
-++DECLARE_MSM_GPIO_PINS(40);
|
|
|
-++DECLARE_MSM_GPIO_PINS(41);
|
|
|
-++DECLARE_MSM_GPIO_PINS(42);
|
|
|
-++DECLARE_MSM_GPIO_PINS(43);
|
|
|
-++DECLARE_MSM_GPIO_PINS(44);
|
|
|
-++DECLARE_MSM_GPIO_PINS(45);
|
|
|
-++DECLARE_MSM_GPIO_PINS(46);
|
|
|
-++DECLARE_MSM_GPIO_PINS(47);
|
|
|
-++DECLARE_MSM_GPIO_PINS(48);
|
|
|
-++DECLARE_MSM_GPIO_PINS(49);
|
|
|
-++DECLARE_MSM_GPIO_PINS(50);
|
|
|
-++DECLARE_MSM_GPIO_PINS(51);
|
|
|
-++DECLARE_MSM_GPIO_PINS(52);
|
|
|
-++DECLARE_MSM_GPIO_PINS(53);
|
|
|
-++DECLARE_MSM_GPIO_PINS(54);
|
|
|
-++DECLARE_MSM_GPIO_PINS(55);
|
|
|
-++DECLARE_MSM_GPIO_PINS(56);
|
|
|
-++DECLARE_MSM_GPIO_PINS(57);
|
|
|
-++DECLARE_MSM_GPIO_PINS(58);
|
|
|
-++DECLARE_MSM_GPIO_PINS(59);
|
|
|
-++DECLARE_MSM_GPIO_PINS(60);
|
|
|
-++DECLARE_MSM_GPIO_PINS(61);
|
|
|
-++DECLARE_MSM_GPIO_PINS(62);
|
|
|
-++DECLARE_MSM_GPIO_PINS(63);
|
|
|
-++DECLARE_MSM_GPIO_PINS(64);
|
|
|
-++DECLARE_MSM_GPIO_PINS(65);
|
|
|
-++DECLARE_MSM_GPIO_PINS(66);
|
|
|
-++DECLARE_MSM_GPIO_PINS(67);
|
|
|
-++DECLARE_MSM_GPIO_PINS(68);
|
|
|
-++DECLARE_MSM_GPIO_PINS(69);
|
|
|
-++DECLARE_MSM_GPIO_PINS(70);
|
|
|
-++DECLARE_MSM_GPIO_PINS(71);
|
|
|
-++DECLARE_MSM_GPIO_PINS(72);
|
|
|
-++DECLARE_MSM_GPIO_PINS(73);
|
|
|
-++DECLARE_MSM_GPIO_PINS(74);
|
|
|
-++DECLARE_MSM_GPIO_PINS(75);
|
|
|
-++DECLARE_MSM_GPIO_PINS(76);
|
|
|
-++DECLARE_MSM_GPIO_PINS(77);
|
|
|
-++DECLARE_MSM_GPIO_PINS(78);
|
|
|
-++DECLARE_MSM_GPIO_PINS(79);
|
|
|
-++
|
|
|
-++enum ipq6018_functions {
|
|
|
-++ msm_mux_atest_char,
|
|
|
-++ msm_mux_atest_char0,
|
|
|
-++ msm_mux_atest_char1,
|
|
|
-++
|
|
|
-++ msm_mux_atest_char3,
|
|
|
-++ msm_mux_audio0,
|
|
|
-++ msm_mux_audio1,
|
|
|
-++ msm_mux_audio2,
|
|
|
-++ msm_mux_audio3,
|
|
|
-++ msm_mux_audio_rxbclk,
|
|
|
-++ msm_mux_audio_rxfsync,
|
|
|
-++ msm_mux_audio_rxmclk,
|
|
|
-++ msm_mux_audio_rxmclkin,
|
|
|
-++ msm_mux_audio_txbclk,
|
|
|
-++ msm_mux_audio_txfsync,
|
|
|
-++ msm_mux_audio_txmclk,
|
|
|
-++ msm_mux_audio_txmclkin,
|
|
|
-++ msm_mux_blsp0_i2c,
|
|
|
-++ msm_mux_blsp0_spi,
|
|
|
-++ msm_mux_blsp0_uart,
|
|
|
-++ msm_mux_blsp1_i2c,
|
|
|
-++ msm_mux_blsp1_spi,
|
|
|
-++ msm_mux_blsp1_uart,
|
|
|
-++ msm_mux_blsp2_i2c,
|
|
|
-++ msm_mux_blsp2_spi,
|
|
|
-++ msm_mux_blsp2_uart,
|
|
|
-++ msm_mux_blsp3_i2c,
|
|
|
-++ msm_mux_blsp3_spi,
|
|
|
-++ msm_mux_blsp3_uart,
|
|
|
-++ msm_mux_blsp4_i2c,
|
|
|
-++ msm_mux_blsp4_spi,
|
|
|
-++ msm_mux_blsp4_uart,
|
|
|
-++ msm_mux_blsp5_i2c,
|
|
|
-++ msm_mux_blsp5_uart,
|
|
|
-++ msm_mux_burn0,
|
|
|
-++ msm_mux_burn1,
|
|
|
-++ msm_mux_cri_trng,
|
|
|
-++ msm_mux_cri_trng0,
|
|
|
-++ msm_mux_cri_trng1,
|
|
|
-++ msm_mux_cxc0,
|
|
|
-++ msm_mux_cxc1,
|
|
|
-++ msm_mux_dbg_out,
|
|
|
-++ msm_mux_gcc_plltest,
|
|
|
-++ msm_mux_gcc_tlmm,
|
|
|
-++ msm_mux_gpio,
|
|
|
-++ msm_mux_lpass_aud,
|
|
|
-++ msm_mux_lpass_aud0,
|
|
|
-++ msm_mux_lpass_aud1,
|
|
|
-++ msm_mux_lpass_aud2,
|
|
|
-++ msm_mux_lpass_pcm,
|
|
|
-++ msm_mux_lpass_pdm,
|
|
|
-++ msm_mux_mac00,
|
|
|
-++ msm_mux_mac01,
|
|
|
-++ msm_mux_mac10,
|
|
|
-++ msm_mux_mac11,
|
|
|
-++ msm_mux_mac12,
|
|
|
-++ msm_mux_mac13,
|
|
|
-++ msm_mux_mac20,
|
|
|
-++ msm_mux_mac21,
|
|
|
-++ msm_mux_mdc,
|
|
|
-++ msm_mux_mdio,
|
|
|
-++ msm_mux_pcie0_clk,
|
|
|
-++ msm_mux_pcie0_rst,
|
|
|
-++ msm_mux_pcie0_wake,
|
|
|
-++ msm_mux_prng_rosc,
|
|
|
-++ msm_mux_pta1_0,
|
|
|
-++ msm_mux_pta1_1,
|
|
|
-++ msm_mux_pta1_2,
|
|
|
-++ msm_mux_pta2_0,
|
|
|
-++ msm_mux_pta2_1,
|
|
|
-++ msm_mux_pta2_2,
|
|
|
-++ msm_mux_pwm00,
|
|
|
-++ msm_mux_pwm01,
|
|
|
-++ msm_mux_pwm02,
|
|
|
-++ msm_mux_pwm03,
|
|
|
-++ msm_mux_pwm04,
|
|
|
-++ msm_mux_pwm10,
|
|
|
-++ msm_mux_pwm11,
|
|
|
-++ msm_mux_pwm12,
|
|
|
-++ msm_mux_pwm13,
|
|
|
-++ msm_mux_pwm14,
|
|
|
-++
|
|
|
-++ msm_mux_pwm21,
|
|
|
-++ msm_mux_pwm22,
|
|
|
-++ msm_mux_pwm23,
|
|
|
-++ msm_mux_pwm24,
|
|
|
-++ msm_mux_pwm30,
|
|
|
-++ msm_mux_pwm31,
|
|
|
-++ msm_mux_pwm32,
|
|
|
-++ msm_mux_pwm33,
|
|
|
-++ msm_mux_qdss_cti_trig_in_a0,
|
|
|
-++ msm_mux_qdss_cti_trig_in_a1,
|
|
|
-++ msm_mux_qdss_cti_trig_out_a0,
|
|
|
-++ msm_mux_qdss_cti_trig_out_a1,
|
|
|
-++ msm_mux_qdss_cti_trig_in_b0,
|
|
|
-++ msm_mux_qdss_cti_trig_in_b1,
|
|
|
-++ msm_mux_qdss_cti_trig_out_b0,
|
|
|
-++ msm_mux_qdss_cti_trig_out_b1,
|
|
|
-++ msm_mux_qdss_traceclk_a,
|
|
|
-++ msm_mux_qdss_tracectl_a,
|
|
|
-++ msm_mux_qdss_tracedata_a,
|
|
|
-++ msm_mux_qdss_traceclk_b,
|
|
|
-++ msm_mux_qdss_tracectl_b,
|
|
|
-++ msm_mux_qdss_tracedata_b,
|
|
|
-++ msm_mux_qpic_pad,
|
|
|
-++ msm_mux_rx0,
|
|
|
-++ msm_mux_rx1,
|
|
|
-++ msm_mux_rx_swrm,
|
|
|
-++ msm_mux_rx_swrm0,
|
|
|
-++ msm_mux_rx_swrm1,
|
|
|
-++ msm_mux_sd_card,
|
|
|
-++ msm_mux_sd_write,
|
|
|
-++ msm_mux_tsens_max,
|
|
|
-++ msm_mux_tx_swrm,
|
|
|
-++ msm_mux_tx_swrm0,
|
|
|
-++ msm_mux_tx_swrm1,
|
|
|
-++ msm_mux_tx_swrm2,
|
|
|
-++ msm_mux_wci20,
|
|
|
-++ msm_mux_wci21,
|
|
|
-++ msm_mux_wci22,
|
|
|
-++ msm_mux_wci23,
|
|
|
-++ msm_mux_wsa_swrm,
|
|
|
-++ msm_mux__,
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const blsp3_uart_groups[] = {
|
|
|
-++ "gpio73", "gpio74", "gpio75", "gpio76",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const blsp3_i2c_groups[] = {
|
|
|
-++ "gpio73", "gpio74",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const blsp3_spi_groups[] = {
|
|
|
-++ "gpio73", "gpio74", "gpio75", "gpio76", "gpio77", "gpio78", "gpio79",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const wci20_groups[] = {
|
|
|
-++ "gpio0", "gpio2",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const qpic_pad_groups[] = {
|
|
|
-++ "gpio0", "gpio1", "gpio2", "gpio3", "gpio4", "gpio9", "gpio10",
|
|
|
-++ "gpio11", "gpio17", "gpio15", "gpio12", "gpio13", "gpio14", "gpio5",
|
|
|
-++ "gpio6", "gpio7", "gpio8",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const burn0_groups[] = {
|
|
|
-++ "gpio0",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const mac12_groups[] = {
|
|
|
-++ "gpio1", "gpio11",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const qdss_tracectl_b_groups[] = {
|
|
|
-++ "gpio1",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const burn1_groups[] = {
|
|
|
-++ "gpio1",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const qdss_traceclk_b_groups[] = {
|
|
|
-++ "gpio0",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const qdss_tracedata_b_groups[] = {
|
|
|
-++ "gpio2", "gpio3", "gpio4", "gpio5", "gpio6", "gpio7", "gpio8", "gpio9",
|
|
|
-++ "gpio10", "gpio11", "gpio12", "gpio13", "gpio14", "gpio15", "gpio16",
|
|
|
-++ "gpio17",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const mac01_groups[] = {
|
|
|
-++ "gpio3", "gpio4",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const mac21_groups[] = {
|
|
|
-++ "gpio5", "gpio6",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const atest_char_groups[] = {
|
|
|
-++ "gpio9",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const cxc0_groups[] = {
|
|
|
-++ "gpio9", "gpio16",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const mac13_groups[] = {
|
|
|
-++ "gpio9", "gpio16",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const dbg_out_groups[] = {
|
|
|
-++ "gpio9",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const wci22_groups[] = {
|
|
|
-++ "gpio11", "gpio17",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const pwm00_groups[] = {
|
|
|
-++ "gpio18",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const atest_char0_groups[] = {
|
|
|
-++ "gpio18",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const wci23_groups[] = {
|
|
|
-++ "gpio18", "gpio19",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const mac11_groups[] = {
|
|
|
-++ "gpio18", "gpio19",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const pwm10_groups[] = {
|
|
|
-++ "gpio19",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const atest_char1_groups[] = {
|
|
|
-++ "gpio19",
|
|
|
-++};
|
|
|
-++
|
|
|
-++
|
|
|
-++static const char * const pwm30_groups[] = {
|
|
|
-++ "gpio21",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const atest_char3_groups[] = {
|
|
|
-++ "gpio21",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const audio_txmclk_groups[] = {
|
|
|
-++ "gpio22",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const audio_txmclkin_groups[] = {
|
|
|
-++ "gpio22",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const pwm02_groups[] = {
|
|
|
-++ "gpio22",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const tx_swrm0_groups[] = {
|
|
|
-++ "gpio22",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const qdss_cti_trig_out_b0_groups[] = {
|
|
|
-++ "gpio22",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const audio_txbclk_groups[] = {
|
|
|
-++ "gpio23",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const pwm12_groups[] = {
|
|
|
-++ "gpio23",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const wsa_swrm_groups[] = {
|
|
|
-++ "gpio23", "gpio24",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const tx_swrm1_groups[] = {
|
|
|
-++ "gpio23",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const qdss_cti_trig_in_b0_groups[] = {
|
|
|
-++ "gpio23",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const audio_txfsync_groups[] = {
|
|
|
-++ "gpio24",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const pwm22_groups[] = {
|
|
|
-++ "gpio24",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const tx_swrm2_groups[] = {
|
|
|
-++ "gpio24",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const qdss_cti_trig_out_b1_groups[] = {
|
|
|
-++ "gpio24",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const audio0_groups[] = {
|
|
|
-++ "gpio25", "gpio32",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const pwm32_groups[] = {
|
|
|
-++ "gpio25",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const tx_swrm_groups[] = {
|
|
|
-++ "gpio25",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const qdss_cti_trig_in_b1_groups[] = {
|
|
|
-++ "gpio25",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const audio1_groups[] = {
|
|
|
-++ "gpio26", "gpio33",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const pwm04_groups[] = {
|
|
|
-++ "gpio26",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const audio2_groups[] = {
|
|
|
-++ "gpio27",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const pwm14_groups[] = {
|
|
|
-++ "gpio27",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const audio3_groups[] = {
|
|
|
-++ "gpio28",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const pwm24_groups[] = {
|
|
|
-++ "gpio28",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const audio_rxmclk_groups[] = {
|
|
|
-++ "gpio29",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const audio_rxmclkin_groups[] = {
|
|
|
-++ "gpio29",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const pwm03_groups[] = {
|
|
|
-++ "gpio29",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const lpass_pdm_groups[] = {
|
|
|
-++ "gpio29", "gpio30", "gpio31", "gpio32",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const lpass_aud_groups[] = {
|
|
|
-++ "gpio29",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const qdss_cti_trig_in_a1_groups[] = {
|
|
|
-++ "gpio29",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const audio_rxbclk_groups[] = {
|
|
|
-++ "gpio30",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const pwm13_groups[] = {
|
|
|
-++ "gpio30",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const lpass_aud0_groups[] = {
|
|
|
-++ "gpio30",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const rx_swrm_groups[] = {
|
|
|
-++ "gpio30",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const qdss_cti_trig_out_a1_groups[] = {
|
|
|
-++ "gpio30",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const audio_rxfsync_groups[] = {
|
|
|
-++ "gpio31",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const pwm23_groups[] = {
|
|
|
-++ "gpio31",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const lpass_aud1_groups[] = {
|
|
|
-++ "gpio31",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const rx_swrm0_groups[] = {
|
|
|
-++ "gpio31",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const qdss_cti_trig_in_a0_groups[] = {
|
|
|
-++ "gpio31",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const pwm33_groups[] = {
|
|
|
-++ "gpio32",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const lpass_aud2_groups[] = {
|
|
|
-++ "gpio32",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const rx_swrm1_groups[] = {
|
|
|
-++ "gpio32",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const qdss_cti_trig_out_a0_groups[] = {
|
|
|
-++ "gpio32",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const lpass_pcm_groups[] = {
|
|
|
-++ "gpio34", "gpio35", "gpio36", "gpio37",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const mac10_groups[] = {
|
|
|
-++ "gpio34", "gpio35",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const mac00_groups[] = {
|
|
|
-++ "gpio34", "gpio35",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const mac20_groups[] = {
|
|
|
-++ "gpio36", "gpio37",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const blsp0_uart_groups[] = {
|
|
|
-++ "gpio38", "gpio39", "gpio40", "gpio41",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const blsp0_i2c_groups[] = {
|
|
|
-++ "gpio38", "gpio39",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const blsp0_spi_groups[] = {
|
|
|
-++ "gpio38", "gpio39", "gpio40", "gpio41",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const blsp2_uart_groups[] = {
|
|
|
-++ "gpio42", "gpio43", "gpio44", "gpio45",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const blsp2_i2c_groups[] = {
|
|
|
-++ "gpio42", "gpio43",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const blsp2_spi_groups[] = {
|
|
|
-++ "gpio42", "gpio43", "gpio44", "gpio45",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const blsp5_i2c_groups[] = {
|
|
|
-++ "gpio46", "gpio47",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const blsp5_uart_groups[] = {
|
|
|
-++ "gpio48", "gpio49",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const qdss_traceclk_a_groups[] = {
|
|
|
-++ "gpio48",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const qdss_tracectl_a_groups[] = {
|
|
|
-++ "gpio49",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const pwm01_groups[] = {
|
|
|
-++ "gpio50",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const pta1_1_groups[] = {
|
|
|
-++ "gpio51",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const pwm11_groups[] = {
|
|
|
-++ "gpio51",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const rx1_groups[] = {
|
|
|
-++ "gpio51",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const pta1_2_groups[] = {
|
|
|
-++ "gpio52",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const pwm21_groups[] = {
|
|
|
-++ "gpio52",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const pta1_0_groups[] = {
|
|
|
-++ "gpio53",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const pwm31_groups[] = {
|
|
|
-++ "gpio53",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const prng_rosc_groups[] = {
|
|
|
-++ "gpio53",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const blsp4_uart_groups[] = {
|
|
|
-++ "gpio55", "gpio56", "gpio57", "gpio58",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const blsp4_i2c_groups[] = {
|
|
|
-++ "gpio55", "gpio56",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const blsp4_spi_groups[] = {
|
|
|
-++ "gpio55", "gpio56", "gpio57", "gpio58",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const pcie0_clk_groups[] = {
|
|
|
-++ "gpio59",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const cri_trng0_groups[] = {
|
|
|
-++ "gpio59",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const pcie0_rst_groups[] = {
|
|
|
-++ "gpio60",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const cri_trng1_groups[] = {
|
|
|
-++ "gpio60",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const pcie0_wake_groups[] = {
|
|
|
-++ "gpio61",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const cri_trng_groups[] = {
|
|
|
-++ "gpio61",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const sd_card_groups[] = {
|
|
|
-++ "gpio62",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const sd_write_groups[] = {
|
|
|
-++ "gpio63",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const rx0_groups[] = {
|
|
|
-++ "gpio63",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const tsens_max_groups[] = {
|
|
|
-++ "gpio63",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const mdc_groups[] = {
|
|
|
-++ "gpio64",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const qdss_tracedata_a_groups[] = {
|
|
|
-++ "gpio64", "gpio65", "gpio66", "gpio67", "gpio68", "gpio69", "gpio70",
|
|
|
-++ "gpio71", "gpio72", "gpio73", "gpio74", "gpio75", "gpio76", "gpio77",
|
|
|
-++ "gpio78", "gpio79",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const mdio_groups[] = {
|
|
|
-++ "gpio65",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const pta2_0_groups[] = {
|
|
|
-++ "gpio66",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const wci21_groups[] = {
|
|
|
-++ "gpio66", "gpio68",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const cxc1_groups[] = {
|
|
|
-++ "gpio66", "gpio68",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const pta2_1_groups[] = {
|
|
|
-++ "gpio67",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const pta2_2_groups[] = {
|
|
|
-++ "gpio68",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const blsp1_uart_groups[] = {
|
|
|
-++ "gpio69", "gpio70", "gpio71", "gpio72",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const blsp1_i2c_groups[] = {
|
|
|
-++ "gpio69", "gpio70",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const blsp1_spi_groups[] = {
|
|
|
-++ "gpio69", "gpio70", "gpio71", "gpio72",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const gcc_plltest_groups[] = {
|
|
|
-++ "gpio69", "gpio71",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const gcc_tlmm_groups[] = {
|
|
|
-++ "gpio70",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const char * const gpio_groups[] = {
|
|
|
-++ "gpio0", "gpio1", "gpio2", "gpio3", "gpio4", "gpio5", "gpio6", "gpio7",
|
|
|
-++ "gpio8", "gpio9", "gpio10", "gpio11", "gpio12", "gpio13", "gpio14",
|
|
|
-++ "gpio15", "gpio16", "gpio17", "gpio18", "gpio19", "gpio20", "gpio21",
|
|
|
-++ "gpio22", "gpio23", "gpio24", "gpio25", "gpio26", "gpio27", "gpio28",
|
|
|
-++ "gpio29", "gpio30", "gpio31", "gpio32", "gpio33", "gpio34", "gpio35",
|
|
|
-++ "gpio36", "gpio37", "gpio38", "gpio39", "gpio40", "gpio41", "gpio42",
|
|
|
-++ "gpio43", "gpio44", "gpio45", "gpio46", "gpio47", "gpio48", "gpio49",
|
|
|
-++ "gpio50", "gpio51", "gpio52", "gpio53", "gpio54", "gpio55", "gpio56",
|
|
|
-++ "gpio57", "gpio58", "gpio59", "gpio60", "gpio61", "gpio62", "gpio63",
|
|
|
-++ "gpio64", "gpio65", "gpio66", "gpio67", "gpio68", "gpio69", "gpio70",
|
|
|
-++ "gpio71", "gpio72", "gpio73", "gpio74", "gpio75", "gpio76", "gpio77",
|
|
|
-++ "gpio78", "gpio79",
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const struct msm_function ipq6018_functions[] = {
|
|
|
-++ FUNCTION(atest_char),
|
|
|
-++ FUNCTION(atest_char0),
|
|
|
-++ FUNCTION(atest_char1),
|
|
|
-++
|
|
|
-++ FUNCTION(atest_char3),
|
|
|
-++ FUNCTION(audio0),
|
|
|
-++ FUNCTION(audio1),
|
|
|
-++ FUNCTION(audio2),
|
|
|
-++ FUNCTION(audio3),
|
|
|
-++ FUNCTION(audio_rxbclk),
|
|
|
-++ FUNCTION(audio_rxfsync),
|
|
|
-++ FUNCTION(audio_rxmclk),
|
|
|
-++ FUNCTION(audio_rxmclkin),
|
|
|
-++ FUNCTION(audio_txbclk),
|
|
|
-++ FUNCTION(audio_txfsync),
|
|
|
-++ FUNCTION(audio_txmclk),
|
|
|
-++ FUNCTION(audio_txmclkin),
|
|
|
-++ FUNCTION(blsp0_i2c),
|
|
|
-++ FUNCTION(blsp0_spi),
|
|
|
-++ FUNCTION(blsp0_uart),
|
|
|
-++ FUNCTION(blsp1_i2c),
|
|
|
-++ FUNCTION(blsp1_spi),
|
|
|
-++ FUNCTION(blsp1_uart),
|
|
|
-++ FUNCTION(blsp2_i2c),
|
|
|
-++ FUNCTION(blsp2_spi),
|
|
|
-++ FUNCTION(blsp2_uart),
|
|
|
-++ FUNCTION(blsp3_i2c),
|
|
|
-++ FUNCTION(blsp3_spi),
|
|
|
-++ FUNCTION(blsp3_uart),
|
|
|
-++ FUNCTION(blsp4_i2c),
|
|
|
-++ FUNCTION(blsp4_spi),
|
|
|
-++ FUNCTION(blsp4_uart),
|
|
|
-++ FUNCTION(blsp5_i2c),
|
|
|
-++ FUNCTION(blsp5_uart),
|
|
|
-++ FUNCTION(burn0),
|
|
|
-++ FUNCTION(burn1),
|
|
|
-++ FUNCTION(cri_trng),
|
|
|
-++ FUNCTION(cri_trng0),
|
|
|
-++ FUNCTION(cri_trng1),
|
|
|
-++ FUNCTION(cxc0),
|
|
|
-++ FUNCTION(cxc1),
|
|
|
-++ FUNCTION(dbg_out),
|
|
|
-++ FUNCTION(gcc_plltest),
|
|
|
-++ FUNCTION(gcc_tlmm),
|
|
|
-++ FUNCTION(gpio),
|
|
|
-++ FUNCTION(lpass_aud),
|
|
|
-++ FUNCTION(lpass_aud0),
|
|
|
-++ FUNCTION(lpass_aud1),
|
|
|
-++ FUNCTION(lpass_aud2),
|
|
|
-++ FUNCTION(lpass_pcm),
|
|
|
-++ FUNCTION(lpass_pdm),
|
|
|
-++ FUNCTION(mac00),
|
|
|
-++ FUNCTION(mac01),
|
|
|
-++ FUNCTION(mac10),
|
|
|
-++ FUNCTION(mac11),
|
|
|
-++ FUNCTION(mac12),
|
|
|
-++ FUNCTION(mac13),
|
|
|
-++ FUNCTION(mac20),
|
|
|
-++ FUNCTION(mac21),
|
|
|
-++ FUNCTION(mdc),
|
|
|
-++ FUNCTION(mdio),
|
|
|
-++ FUNCTION(pcie0_clk),
|
|
|
-++ FUNCTION(pcie0_rst),
|
|
|
-++ FUNCTION(pcie0_wake),
|
|
|
-++ FUNCTION(prng_rosc),
|
|
|
-++ FUNCTION(pta1_0),
|
|
|
-++ FUNCTION(pta1_1),
|
|
|
-++ FUNCTION(pta1_2),
|
|
|
-++ FUNCTION(pta2_0),
|
|
|
-++ FUNCTION(pta2_1),
|
|
|
-++ FUNCTION(pta2_2),
|
|
|
-++ FUNCTION(pwm00),
|
|
|
-++ FUNCTION(pwm01),
|
|
|
-++ FUNCTION(pwm02),
|
|
|
-++ FUNCTION(pwm03),
|
|
|
-++ FUNCTION(pwm04),
|
|
|
-++ FUNCTION(pwm10),
|
|
|
-++ FUNCTION(pwm11),
|
|
|
-++ FUNCTION(pwm12),
|
|
|
-++ FUNCTION(pwm13),
|
|
|
-++ FUNCTION(pwm14),
|
|
|
-++
|
|
|
-++ FUNCTION(pwm21),
|
|
|
-++ FUNCTION(pwm22),
|
|
|
-++ FUNCTION(pwm23),
|
|
|
-++ FUNCTION(pwm24),
|
|
|
-++ FUNCTION(pwm30),
|
|
|
-++ FUNCTION(pwm31),
|
|
|
-++ FUNCTION(pwm32),
|
|
|
-++ FUNCTION(pwm33),
|
|
|
-++ FUNCTION(qdss_cti_trig_in_a0),
|
|
|
-++ FUNCTION(qdss_cti_trig_in_a1),
|
|
|
-++ FUNCTION(qdss_cti_trig_out_a0),
|
|
|
-++ FUNCTION(qdss_cti_trig_out_a1),
|
|
|
-++ FUNCTION(qdss_cti_trig_in_b0),
|
|
|
-++ FUNCTION(qdss_cti_trig_in_b1),
|
|
|
-++ FUNCTION(qdss_cti_trig_out_b0),
|
|
|
-++ FUNCTION(qdss_cti_trig_out_b1),
|
|
|
-++ FUNCTION(qdss_traceclk_a),
|
|
|
-++ FUNCTION(qdss_tracectl_a),
|
|
|
-++ FUNCTION(qdss_tracedata_a),
|
|
|
-++ FUNCTION(qdss_traceclk_b),
|
|
|
-++ FUNCTION(qdss_tracectl_b),
|
|
|
-++ FUNCTION(qdss_tracedata_b),
|
|
|
-++ FUNCTION(qpic_pad),
|
|
|
-++ FUNCTION(rx0),
|
|
|
-++ FUNCTION(rx1),
|
|
|
-++ FUNCTION(rx_swrm),
|
|
|
-++ FUNCTION(rx_swrm0),
|
|
|
-++ FUNCTION(rx_swrm1),
|
|
|
-++ FUNCTION(sd_card),
|
|
|
-++ FUNCTION(sd_write),
|
|
|
-++ FUNCTION(tsens_max),
|
|
|
-++ FUNCTION(tx_swrm),
|
|
|
-++ FUNCTION(tx_swrm0),
|
|
|
-++ FUNCTION(tx_swrm1),
|
|
|
-++ FUNCTION(tx_swrm2),
|
|
|
-++ FUNCTION(wci20),
|
|
|
-++ FUNCTION(wci21),
|
|
|
-++ FUNCTION(wci22),
|
|
|
-++ FUNCTION(wci23),
|
|
|
-++ FUNCTION(wsa_swrm),
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const struct msm_pingroup ipq6018_groups[] = {
|
|
|
-++ PINGROUP(0, qpic_pad, wci20, qdss_traceclk_b, _, burn0, _, _, _, _),
|
|
|
-++ PINGROUP(1, qpic_pad, mac12, qdss_tracectl_b, _, burn1, _, _, _, _),
|
|
|
-++ PINGROUP(2, qpic_pad, wci20, qdss_tracedata_b, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(3, qpic_pad, mac01, qdss_tracedata_b, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(4, qpic_pad, mac01, qdss_tracedata_b, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(5, qpic_pad, mac21, qdss_tracedata_b, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(6, qpic_pad, mac21, qdss_tracedata_b, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(7, qpic_pad, qdss_tracedata_b, _, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(8, qpic_pad, qdss_tracedata_b, _, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(9, qpic_pad, atest_char, cxc0, mac13, dbg_out, qdss_tracedata_b, _, _, _),
|
|
|
-++ PINGROUP(10, qpic_pad, qdss_tracedata_b, _, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(11, qpic_pad, wci22, mac12, qdss_tracedata_b, _, _, _, _, _),
|
|
|
-++ PINGROUP(12, qpic_pad, qdss_tracedata_b, _, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(13, qpic_pad, qdss_tracedata_b, _, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(14, qpic_pad, qdss_tracedata_b, _, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(15, qpic_pad, qdss_tracedata_b, _, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(16, qpic_pad, cxc0, mac13, qdss_tracedata_b, _, _, _, _, _),
|
|
|
-++ PINGROUP(17, qpic_pad, qdss_tracedata_b, wci22, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(18, pwm00, atest_char0, wci23, mac11, _, _, _, _, _),
|
|
|
-++ PINGROUP(19, pwm10, atest_char1, wci23, mac11, _, _, _, _, _),
|
|
|
-++
|
|
|
-++ PINGROUP(21, pwm30, atest_char3, _, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(22, audio_txmclk, audio_txmclkin, pwm02, tx_swrm0, _, qdss_cti_trig_out_b0, _, _, _),
|
|
|
-++ PINGROUP(23, audio_txbclk, pwm12, wsa_swrm, tx_swrm1, _, qdss_cti_trig_in_b0, _, _, _),
|
|
|
-++ PINGROUP(24, audio_txfsync, pwm22, wsa_swrm, tx_swrm2, _, qdss_cti_trig_out_b1, _, _, _),
|
|
|
-++ PINGROUP(25, audio0, pwm32, tx_swrm, _, qdss_cti_trig_in_b1, _, _, _, _),
|
|
|
-++ PINGROUP(26, audio1, pwm04, _, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(27, audio2, pwm14, _, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(28, audio3, pwm24, _, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(29, audio_rxmclk, audio_rxmclkin, pwm03, lpass_pdm, lpass_aud, qdss_cti_trig_in_a1, _, _, _),
|
|
|
-++ PINGROUP(30, audio_rxbclk, pwm13, lpass_pdm, lpass_aud0, rx_swrm, _, qdss_cti_trig_out_a1, _, _),
|
|
|
-++ PINGROUP(31, audio_rxfsync, pwm23, lpass_pdm, lpass_aud1, rx_swrm0, _, qdss_cti_trig_in_a0, _, _),
|
|
|
-++ PINGROUP(32, audio0, pwm33, lpass_pdm, lpass_aud2, rx_swrm1, _, qdss_cti_trig_out_a0, _, _),
|
|
|
-++ PINGROUP(33, audio1, _, _, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(34, lpass_pcm, mac10, mac00, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(35, lpass_pcm, mac10, mac00, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(36, lpass_pcm, mac20, _, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(37, lpass_pcm, mac20, _, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(38, blsp0_uart, blsp0_i2c, blsp0_spi, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(39, blsp0_uart, blsp0_i2c, blsp0_spi, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(40, blsp0_uart, blsp0_spi, _, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(41, blsp0_uart, blsp0_spi, _, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(42, blsp2_uart, blsp2_i2c, blsp2_spi, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(43, blsp2_uart, blsp2_i2c, blsp2_spi, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(44, blsp2_uart, blsp2_spi, _, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(45, blsp2_uart, blsp2_spi, _, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(46, blsp5_i2c, _, _, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(47, blsp5_i2c, _, _, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(48, blsp5_uart, _, qdss_traceclk_a, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(49, blsp5_uart, _, qdss_tracectl_a, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(50, pwm01, _, _, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(51, pta1_1, pwm11, _, rx1, _, _, _, _, _),
|
|
|
-++ PINGROUP(52, pta1_2, pwm21, _, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(53, pta1_0, pwm31, prng_rosc, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(54, _, _, _, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(55, blsp4_uart, blsp4_i2c, blsp4_spi, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(56, blsp4_uart, blsp4_i2c, blsp4_spi, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(57, blsp4_uart, blsp4_spi, _, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(58, blsp4_uart, blsp4_spi, _, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(59, pcie0_clk, _, _, cri_trng0, _, _, _, _, _),
|
|
|
-++ PINGROUP(60, pcie0_rst, _, _, cri_trng1, _, _, _, _, _),
|
|
|
-++ PINGROUP(61, pcie0_wake, _, _, cri_trng, _, _, _, _, _),
|
|
|
-++ PINGROUP(62, sd_card, _, _, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(63, sd_write, rx0, _, tsens_max, _, _, _, _, _),
|
|
|
-++ PINGROUP(64, mdc, _, qdss_tracedata_a, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(65, mdio, _, qdss_tracedata_a, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(66, pta2_0, wci21, cxc1, qdss_tracedata_a, _, _, _, _, _),
|
|
|
-++ PINGROUP(67, pta2_1, qdss_tracedata_a, _, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(68, pta2_2, wci21, cxc1, qdss_tracedata_a, _, _, _, _, _),
|
|
|
-++ PINGROUP(69, blsp1_uart, blsp1_i2c, blsp1_spi, gcc_plltest, qdss_tracedata_a, _, _, _, _),
|
|
|
-++ PINGROUP(70, blsp1_uart, blsp1_i2c, blsp1_spi, gcc_tlmm, qdss_tracedata_a, _, _, _, _),
|
|
|
-++ PINGROUP(71, blsp1_uart, blsp1_spi, gcc_plltest, qdss_tracedata_a, _, _, _, _, _),
|
|
|
-++ PINGROUP(72, blsp1_uart, blsp1_spi, qdss_tracedata_a, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(73, blsp3_uart, blsp3_i2c, blsp3_spi, _, qdss_tracedata_a, _, _, _, _),
|
|
|
-++ PINGROUP(74, blsp3_uart, blsp3_i2c, blsp3_spi, _, qdss_tracedata_a, _, _, _, _),
|
|
|
-++ PINGROUP(75, blsp3_uart, blsp3_spi, _, qdss_tracedata_a, _, _, _, _, _),
|
|
|
-++ PINGROUP(76, blsp3_uart, blsp3_spi, _, qdss_tracedata_a, _, _, _, _, _),
|
|
|
-++ PINGROUP(77, blsp3_spi, _, qdss_tracedata_a, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(78, blsp3_spi, _, qdss_tracedata_a, _, _, _, _, _, _),
|
|
|
-++ PINGROUP(79, blsp3_spi, _, qdss_tracedata_a, _, _, _, _, _, _),
|
|
|
-++};
|
|
|
-++
|
|
|
-++static const struct msm_pinctrl_soc_data ipq6018_pinctrl = {
|
|
|
-++ .pins = ipq6018_pins,
|
|
|
-++ .npins = ARRAY_SIZE(ipq6018_pins),
|
|
|
-++ .functions = ipq6018_functions,
|
|
|
-++ .nfunctions = ARRAY_SIZE(ipq6018_functions),
|
|
|
-++ .groups = ipq6018_groups,
|
|
|
-++ .ngroups = ARRAY_SIZE(ipq6018_groups),
|
|
|
-++ .ngpios = 79,
|
|
|
-++};
|
|
|
-++
|
|
|
-++static int ipq6018_pinctrl_probe(struct platform_device *pdev)
|
|
|
-++{
|
|
|
-++ return msm_pinctrl_probe(pdev, &ipq6018_pinctrl);
|
|
|
-++}
|
|
|
-++
|
|
|
-++static const struct of_device_id ipq6018_pinctrl_of_match[] = {
|
|
|
-++ { .compatible = "qcom,ipq6000-pinctrl", },
|
|
|
-++ { },
|
|
|
-++};
|
|
|
-++
|
|
|
-++static struct platform_driver ipq6018_pinctrl_driver = {
|
|
|
-++ .driver = {
|
|
|
-++ .name = "ipq6000-pinctrl",
|
|
|
-++ .of_match_table = ipq6018_pinctrl_of_match,
|
|
|
-++ },
|
|
|
-++ .probe = ipq6018_pinctrl_probe,
|
|
|
-++ .remove = msm_pinctrl_remove,
|
|
|
-++};
|
|
|
-++
|
|
|
-++static int __init ipq6018_pinctrl_init(void)
|
|
|
-++{
|
|
|
-++ return platform_driver_register(&ipq6018_pinctrl_driver);
|
|
|
-++}
|
|
|
-++arch_initcall(ipq6018_pinctrl_init);
|
|
|
-++
|
|
|
-++static void __exit ipq6018_pinctrl_exit(void)
|
|
|
-++{
|
|
|
-++ platform_driver_unregister(&ipq6018_pinctrl_driver);
|
|
|
-++}
|
|
|
-++module_exit(ipq6018_pinctrl_exit);
|
|
|
-++
|
|
|
-++MODULE_DESCRIPTION("QTI ipq6000 pinctrl driver");
|
|
|
-++MODULE_LICENSE("GPL v2");
|
|
|
-++MODULE_DEVICE_TABLE(of, ipq6018_pinctrl_of_match);
|
|
|
-+--
|
|
|
-+2.25.1
|
|
|
-+
|