mirror of
				https://github.com/Telecominfraproject/wlan-ap.git
				synced 2025-11-04 04:18:07 +00:00 
			
		
		
		
	Compare commits
	
		
			19 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					dab5ebd31f | ||
| 
						 | 
					f4d2d3d12a | ||
| 
						 | 
					adac3818a4 | ||
| 
						 | 
					a516b035ab | ||
| 
						 | 
					29b088ef21 | ||
| 
						 | 
					10b875d42c | ||
| 
						 | 
					1f0a24a941 | ||
| 
						 | 
					ea3afcda56 | ||
| 
						 | 
					b5987cc2a7 | ||
| 
						 | 
					fc700364d1 | ||
| 
						 | 
					f2fec9dd87 | ||
| 
						 | 
					2de57bf167 | ||
| 
						 | 
					7d31bebdb0 | ||
| 
						 | 
					fcb5a972cf | ||
| 
						 | 
					082d04025c | ||
| 
						 | 
					9ef7d2c227 | ||
| 
						 | 
					e0d61cb0fb | ||
| 
						 | 
					ed2795b30b | ||
| 
						 | 
					4c9b22f999 | 
							
								
								
									
										2
									
								
								.github/workflows/build-dev.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/build-dev.yml
									
									
									
									
										vendored
									
									
								
							@@ -21,7 +21,7 @@ jobs:
 | 
				
			|||||||
    strategy:
 | 
					    strategy:
 | 
				
			||||||
      fail-fast: false
 | 
					      fail-fast: false
 | 
				
			||||||
      matrix:
 | 
					      matrix:
 | 
				
			||||||
        target: [ 'cig_wf186h', 'cig_wf186w', 'cig_wf188n', 'cig_wf189', 'cig_wf196', 'cig_wf196', 'cybertan_eww631-a1', 'cybertan_eww631-b1', 'sonicfi_rap630w-312g', 'sonicfi_rap63xc-211g', 'sonicfi_rap630c-311g', 'sonicfi_rap630w-311g', 'sonicfi_rap630w-211g', 'sonicfi_rap7110c-341x', 'sonicfi_rap750w-311a', 'edgecore_eap101', 'edgecore_eap102', 'edgecore_eap104', 'edgecore_eap105', 'edgecore_eap111', 'edgecore_eap112', 'edgecore_oap101', 'edgecore_oap101-6e', 'edgecore_oap101e', 'edgecore_oap101e-6e', 'edgecore_oap103', 'hfcl_ion4xe', 'hfcl_ion4xi', 'hfcl_ion4x', 'hfcl_ion4x_2', 'hfcl_ion4x_3', 'hfcl_ion4xi_w', 'hfcl_ion4x_w', 'indio_um-305ax', 'senao_iap4300m', 'senao_iap2300m', 'senao_jeap6500', 'udaya_a6-id2', 'udaya_a6-od2', 'yuncore_ax820', 'yuncore_ax840', 'yuncore_fap640', 'yuncore_fap650', 'yuncore_fap655' ]
 | 
					        target: [ 'cig_wf186h', 'cig_wf186w', 'cig_wf188n', 'cig_wf189', 'cig_wf196', 'cig_wf196', 'cybertan_eww631-a1', 'cybertan_eww631-b1', 'sonicfi_rap630w-312g', 'sonicfi_rap63xc-211g', 'sonicfi_rap630c-311g', 'sonicfi_rap630w-311g', 'sonicfi_rap630w-211g', 'sonicfi_rap650c', 'sonicfi_rap7110c-341x', 'sonicfi_rap750w-311a', 'edgecore_eap101', 'edgecore_eap102', 'edgecore_eap104', 'edgecore_eap105', 'edgecore_eap111', 'edgecore_eap112', 'edgecore_oap101', 'edgecore_oap101-6e', 'edgecore_oap101e', 'edgecore_oap101e-6e', 'edgecore_oap103', 'hfcl_ion4xe', 'hfcl_ion4xi', 'hfcl_ion4x', 'hfcl_ion4x_2', 'hfcl_ion4x_3', 'hfcl_ion4xi_w', 'hfcl_ion4x_w', 'indio_um-305ax', 'senao_iap4300m', 'senao_iap2300m', 'senao_jeap6500', 'udaya_a6-id2', 'udaya_a6-od2', 'yuncore_ax820', 'yuncore_ax840', 'yuncore_fap640', 'yuncore_fap650', 'yuncore_fap655' ]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
    - uses: actions/checkout@v3
 | 
					    - uses: actions/checkout@v3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -53,6 +53,7 @@ ALLWIFIBOARDS:= \
 | 
				
			|||||||
	sonicfi-rap630c-311g \
 | 
						sonicfi-rap630c-311g \
 | 
				
			||||||
	sonicfi-rap630w-311g \
 | 
						sonicfi-rap630w-311g \
 | 
				
			||||||
	sonicfi-rap630w-312g \
 | 
						sonicfi-rap630w-312g \
 | 
				
			||||||
 | 
						sonicfi-rap650c \
 | 
				
			||||||
	tplink-ex227 \
 | 
						tplink-ex227 \
 | 
				
			||||||
	tplink-ex447 \
 | 
						tplink-ex447 \
 | 
				
			||||||
	yuncore-ax840 \
 | 
						yuncore-ax840 \
 | 
				
			||||||
@@ -410,6 +411,7 @@ $(eval $(call generate-ath11k-wifi-package,indio-um-510axm-v1,Indio UM-510AXM V1
 | 
				
			|||||||
$(eval $(call generate-ath11k-wifi-package,sonicfi-rap630c-311g,Sonicfi RAP630C 311G))
 | 
					$(eval $(call generate-ath11k-wifi-package,sonicfi-rap630c-311g,Sonicfi RAP630C 311G))
 | 
				
			||||||
$(eval $(call generate-ath11k-wifi-package,sonicfi-rap630w-311g,Sonicfi RAP630W 311G))
 | 
					$(eval $(call generate-ath11k-wifi-package,sonicfi-rap630w-311g,Sonicfi RAP630W 311G))
 | 
				
			||||||
$(eval $(call generate-ath11k-wifi-package,sonicfi-rap630w-312g,Sonicfi RAP630W 312G))
 | 
					$(eval $(call generate-ath11k-wifi-package,sonicfi-rap630w-312g,Sonicfi RAP630W 312G))
 | 
				
			||||||
 | 
					$(eval $(call generate-ath11k-wifi-package,sonicfi-rap650c,SonicFi RAP650C))
 | 
				
			||||||
$(eval $(call generate-ath11k-wifi-package,tplink-ex227,TP-Link EX227))
 | 
					$(eval $(call generate-ath11k-wifi-package,tplink-ex227,TP-Link EX227))
 | 
				
			||||||
$(eval $(call generate-ath11k-wifi-package,tplink-ex447,TP-Link EX447))
 | 
					$(eval $(call generate-ath11k-wifi-package,tplink-ex447,TP-Link EX447))
 | 
				
			||||||
$(eval $(call generate-ath11k-wifi-package,yuncore-ax840,YunCore AX840))
 | 
					$(eval $(call generate-ath11k-wifi-package,yuncore-ax840,YunCore AX840))
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										
											BIN
										
									
								
								feeds/ipq807x_v5.4/ath11k-wifi/board-sonicfi-rap650c.bin.IPQ8074
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/ipq807x_v5.4/ath11k-wifi/board-sonicfi-rap650c.bin.IPQ8074
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							@@ -21,6 +21,7 @@ edgecore,oap103)
 | 
				
			|||||||
        ucidef_set_led_wlan "power" "POWER" "green:power" "default-on"
 | 
					        ucidef_set_led_wlan "power" "POWER" "green:power" "default-on"
 | 
				
			||||||
	;;
 | 
						;;
 | 
				
			||||||
sonicfi,rap630w-311g|\
 | 
					sonicfi,rap630w-311g|\
 | 
				
			||||||
 | 
					sonicfi,rap650c|\
 | 
				
			||||||
cybertan,eww631-b1)
 | 
					cybertan,eww631-b1)
 | 
				
			||||||
	ucidef_set_led_default "power" "POWER" "sys:blue" "on"
 | 
						ucidef_set_led_default "power" "POWER" "sys:blue" "on"
 | 
				
			||||||
	;;
 | 
						;;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -24,6 +24,7 @@ qcom_setup_interfaces()
 | 
				
			|||||||
	edgecore,eap102|\
 | 
						edgecore,eap102|\
 | 
				
			||||||
	edgecore,oap102|\
 | 
						edgecore,oap102|\
 | 
				
			||||||
	edgecore,oap103|\
 | 
						edgecore,oap103|\
 | 
				
			||||||
 | 
						sonicfi,rap650c|\
 | 
				
			||||||
	cig,wf196)
 | 
						cig,wf196)
 | 
				
			||||||
		ucidef_set_interface_lan "eth1"
 | 
							ucidef_set_interface_lan "eth1"
 | 
				
			||||||
		ucidef_set_interface_wan "eth0"
 | 
							ucidef_set_interface_wan "eth0"
 | 
				
			||||||
@@ -50,6 +51,16 @@ qcom_setup_macs()
 | 
				
			|||||||
		ip link set eth1 address $lan_mac
 | 
							ip link set eth1 address $lan_mac
 | 
				
			||||||
		ucidef_set_label_macaddr $wan_mac
 | 
							ucidef_set_label_macaddr $wan_mac
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
 | 
						sonicfi,rap650c)
 | 
				
			||||||
 | 
							mac=$(fw_printenv -n BaseMacAddress)
 | 
				
			||||||
 | 
							[ -z "$mac" ] && return;
 | 
				
			||||||
 | 
							wan_mac=$(macaddr_canonicalize $mac)
 | 
				
			||||||
 | 
							lan_mac=$(macaddr_add "$wan_mac" 1)
 | 
				
			||||||
 | 
							ucidef_set_network_device_mac eth0 $wan_mac
 | 
				
			||||||
 | 
							ucidef_set_network_device_mac eth1 $lan_mac
 | 
				
			||||||
 | 
							ip link set eth0 address $wan_mac
 | 
				
			||||||
 | 
							ip link set eth1 address $lan_mac
 | 
				
			||||||
 | 
							;;
 | 
				
			||||||
	*)
 | 
						*)
 | 
				
			||||||
		wan_mac=$(cat /sys/class/net/eth0/address)
 | 
							wan_mac=$(cat /sys/class/net/eth0/address)
 | 
				
			||||||
		lan_mac=$(macaddr_add "$wan_mac" 1)
 | 
							lan_mac=$(macaddr_add "$wan_mac" 1)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,6 +16,20 @@ ath11k_generate_macs() {
 | 
				
			|||||||
	echo -ne \\x${mac3//:/\\x} >> /lib/firmware/ath11k-macs
 | 
						echo -ne \\x${mac3//:/\\x} >> /lib/firmware/ath11k-macs
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ath11k_generate_macs_sonicfi() {
 | 
				
			||||||
 | 
						mac=$(fw_printenv -n BaseMacAddress)
 | 
				
			||||||
 | 
						[ -z "$mac" ] && return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						touch /lib/firmware/ath11k-macs
 | 
				
			||||||
 | 
						eth=$(macaddr_canonicalize $mac)
 | 
				
			||||||
 | 
						mac1=$(macaddr_add $eth 2)
 | 
				
			||||||
 | 
						mac2=$(macaddr_add $eth 3)
 | 
				
			||||||
 | 
						mac3=$(macaddr_add $eth 4)
 | 
				
			||||||
 | 
						echo -ne \\x${mac1//:/\\x} >> /lib/firmware/ath11k-macs
 | 
				
			||||||
 | 
						echo -ne \\x${mac2//:/\\x} >> /lib/firmware/ath11k-macs
 | 
				
			||||||
 | 
						echo -ne \\x${mac3//:/\\x} >> /lib/firmware/ath11k-macs
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ath11k_generate_macs_wf196() {
 | 
					ath11k_generate_macs_wf196() {
 | 
				
			||||||
	touch /lib/firmware/ath11k-macs
 | 
						touch /lib/firmware/ath11k-macs
 | 
				
			||||||
	mac=$(grep BaseMacAddress= /dev/mtd18 | cut -dx -f2)
 | 
						mac=$(grep BaseMacAddress= /dev/mtd18 | cut -dx -f2)
 | 
				
			||||||
@@ -63,6 +77,7 @@ case "$FIRMWARE" in
 | 
				
			|||||||
	tplink,ex227|\
 | 
						tplink,ex227|\
 | 
				
			||||||
	tplink,ex447|\
 | 
						tplink,ex447|\
 | 
				
			||||||
	yuncore,ax840|\
 | 
						yuncore,ax840|\
 | 
				
			||||||
 | 
						sonicfi,rap650c|\
 | 
				
			||||||
	sercomm,wallaby)
 | 
						sercomm,wallaby)
 | 
				
			||||||
                caldata_extract "0:ART" 0x1000 0x20000
 | 
					                caldata_extract "0:ART" 0x1000 0x20000
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
@@ -97,6 +112,9 @@ ath11k-macs)
 | 
				
			|||||||
	cig,wf196)
 | 
						cig,wf196)
 | 
				
			||||||
		ath11k_generate_macs_wf196
 | 
							ath11k_generate_macs_wf196
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
 | 
						sonicfi*)
 | 
				
			||||||
 | 
							ath11k_generate_macs_sonicfi
 | 
				
			||||||
 | 
							;;
 | 
				
			||||||
	esac
 | 
						esac
 | 
				
			||||||
	;;
 | 
						;;
 | 
				
			||||||
ath11k/IPQ8074/hw2.0/board.bin)
 | 
					ath11k/IPQ8074/hw2.0/board.bin)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -10,7 +10,8 @@ case "$board" in
 | 
				
			|||||||
        ln -s /sys/kernel/debug/ath11k/ipq6018\ hw1.0/mac1/fw_stats/pdev_stats /tmp/pdev_stats_phy2g
 | 
					        ln -s /sys/kernel/debug/ath11k/ipq6018\ hw1.0/mac1/fw_stats/pdev_stats /tmp/pdev_stats_phy2g
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    "edgecore,eap102"|\
 | 
					    "edgecore,eap102"|\
 | 
				
			||||||
    "edgecore,oap103")
 | 
					    "edgecore,oap103"|\
 | 
				
			||||||
 | 
					    "sonicfi,rap650c")
 | 
				
			||||||
        ln -s /sys/kernel/debug/ath11k/ipq8074\ hw2.0/mac0/fw_stats/pdev_stats /tmp/pdev_stats_phy5g
 | 
					        ln -s /sys/kernel/debug/ath11k/ipq8074\ hw2.0/mac0/fw_stats/pdev_stats /tmp/pdev_stats_phy5g
 | 
				
			||||||
        ln -s /sys/kernel/debug/ath11k/ipq8074\ hw2.0/mac1/fw_stats/pdev_stats /tmp/pdev_stats_phy2g
 | 
					        ln -s /sys/kernel/debug/ath11k/ipq8074\ hw2.0/mac1/fw_stats/pdev_stats /tmp/pdev_stats_phy2g
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -29,6 +29,7 @@ platform_check_image() {
 | 
				
			|||||||
	edgecore,oap102|\
 | 
						edgecore,oap102|\
 | 
				
			||||||
	edgecore,oap103|\
 | 
						edgecore,oap103|\
 | 
				
			||||||
	edgecore,eap106|\
 | 
						edgecore,eap106|\
 | 
				
			||||||
 | 
						sonicfi,rap650c|\
 | 
				
			||||||
	tplink,ex227|\
 | 
						tplink,ex227|\
 | 
				
			||||||
	tplink,ex447)
 | 
						tplink,ex447)
 | 
				
			||||||
		[ "$magic_long" = "73797375" ] && return 0
 | 
							[ "$magic_long" = "73797375" ] && return 0
 | 
				
			||||||
@@ -83,5 +84,17 @@ platform_do_upgrade() {
 | 
				
			|||||||
		fi
 | 
							fi
 | 
				
			||||||
		nand_upgrade_tar "$1"
 | 
							nand_upgrade_tar "$1"
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
 | 
						sonicfi,rap650c)
 | 
				
			||||||
 | 
							boot_part=$(fw_printenv -n bootfrom)
 | 
				
			||||||
 | 
							[ ${#boot_part} -eq 0 ] && boot_part=0
 | 
				
			||||||
 | 
							echo "Current bootfrom is $boot_part"
 | 
				
			||||||
 | 
							if [[ $boot_part == 1 ]]; then
 | 
				
			||||||
 | 
								CI_UBIPART="rootfs"
 | 
				
			||||||
 | 
								CI_FWSETENV="bootfrom 0"
 | 
				
			||||||
 | 
							elif [[ $boot_part == 0 ]]; then
 | 
				
			||||||
 | 
								CI_UBIPART="rootfs_1"
 | 
				
			||||||
 | 
								CI_FWSETENV="bootfrom 1"
 | 
				
			||||||
 | 
							fi
 | 
				
			||||||
 | 
							nand_upgrade_tar "$1"
 | 
				
			||||||
	esac
 | 
						esac
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -0,0 +1,650 @@
 | 
				
			|||||||
 | 
					// SPDX-License-Identifier: GPL-2.0-only
 | 
				
			||||||
 | 
					/dts-v1/;
 | 
				
			||||||
 | 
					/* Copyright (c) 2020 The Linux Foundation. All rights reserved.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#include "ipq8074.dtsi"
 | 
				
			||||||
 | 
					#include "ipq8074-hk-cpu.dtsi"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/ {
 | 
				
			||||||
 | 
						#address-cells = <0x2>;
 | 
				
			||||||
 | 
						#size-cells = <0x2>;
 | 
				
			||||||
 | 
						model = "SonicFi RAP650C";
 | 
				
			||||||
 | 
						compatible = "sonicfi,rap650c", "qcom,ipq8074-ap-hk09", "qcom,ipq8074";
 | 
				
			||||||
 | 
						qcom,msm-id = <0x157 0x0>, <0x187 0x0>;
 | 
				
			||||||
 | 
						interrupt-parent = <&intc>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						aliases {
 | 
				
			||||||
 | 
							serial0 = &blsp1_uart5;
 | 
				
			||||||
 | 
							/* Aliases as required by u-boot to patch MAC addresses */
 | 
				
			||||||
 | 
							ethernet0 = "/soc/dp1";
 | 
				
			||||||
 | 
							ethernet1 = "/soc/dp2";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led-boot = &led_power;
 | 
				
			||||||
 | 
							led-failsafe = &led_power;
 | 
				
			||||||
 | 
							led-running = &led_power;
 | 
				
			||||||
 | 
							led-upgrade = &led_power;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						chosen {
 | 
				
			||||||
 | 
							stdout-path = "serial0";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						soc {
 | 
				
			||||||
 | 
							pinctrl@1000000 {
 | 
				
			||||||
 | 
								button_pins: button_pins {
 | 
				
			||||||
 | 
									reset_button {
 | 
				
			||||||
 | 
										pins = "gpio57";
 | 
				
			||||||
 | 
										function = "gpio";
 | 
				
			||||||
 | 
										drive-strength = <8>;
 | 
				
			||||||
 | 
										bias-pull-up;
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								usb_mux_sel_pins: usb_mux_pins {
 | 
				
			||||||
 | 
									mux {
 | 
				
			||||||
 | 
										pins = "gpio27";
 | 
				
			||||||
 | 
										function = "gpio";
 | 
				
			||||||
 | 
										drive-strength = <8>;
 | 
				
			||||||
 | 
										bias-pull-down;
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								pcie0_pins: pcie_pins {
 | 
				
			||||||
 | 
									pcie0_rst {
 | 
				
			||||||
 | 
										pins = "gpio58";
 | 
				
			||||||
 | 
										function = "pcie0_rst";
 | 
				
			||||||
 | 
										drive-strength = <8>;
 | 
				
			||||||
 | 
										bias-pull-down;
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
									pcie0_wake {
 | 
				
			||||||
 | 
										pins = "gpio59";
 | 
				
			||||||
 | 
										function = "pcie0_wake";
 | 
				
			||||||
 | 
										drive-strength = <8>;
 | 
				
			||||||
 | 
										bias-pull-down;
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								mdio_pins: mdio_pinmux {
 | 
				
			||||||
 | 
									mux_0 {
 | 
				
			||||||
 | 
										pins = "gpio68";
 | 
				
			||||||
 | 
										function = "mdc";
 | 
				
			||||||
 | 
										drive-strength = <8>;
 | 
				
			||||||
 | 
										bias-pull-up;
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
									mux_1 {
 | 
				
			||||||
 | 
										pins = "gpio69";
 | 
				
			||||||
 | 
										function = "mdio";
 | 
				
			||||||
 | 
										drive-strength = <8>;
 | 
				
			||||||
 | 
										bias-pull-up;
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
									mux_2 {
 | 
				
			||||||
 | 
										pins = "gpio25";
 | 
				
			||||||
 | 
										function = "gpio";
 | 
				
			||||||
 | 
										bias-pull-up;
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
									mux_3 {
 | 
				
			||||||
 | 
										pins = "gpio44";
 | 
				
			||||||
 | 
										function = "gpio";
 | 
				
			||||||
 | 
										bias-pull-up;
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								led_pins: led_pins {
 | 
				
			||||||
 | 
									red {
 | 
				
			||||||
 | 
										pins = "gpio0";
 | 
				
			||||||
 | 
										function = "gpio";
 | 
				
			||||||
 | 
										drive-strength = <8>;
 | 
				
			||||||
 | 
										bias-pull-down;
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									green {
 | 
				
			||||||
 | 
										pins = "gpio2";
 | 
				
			||||||
 | 
										function = "gpio";
 | 
				
			||||||
 | 
										drive-strength = <8>;
 | 
				
			||||||
 | 
										bias-pull-down;
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									blue {
 | 
				
			||||||
 | 
										pins = "gpio9";
 | 
				
			||||||
 | 
										function = "gpio";
 | 
				
			||||||
 | 
										drive-strength = <8>;
 | 
				
			||||||
 | 
										bias-pull-down;
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								spi_3_pins: spi_3_pins {
 | 
				
			||||||
 | 
									mux {
 | 
				
			||||||
 | 
										pins = "gpio50", "gpio52", "gpio53";
 | 
				
			||||||
 | 
										function = "blsp3_spi";
 | 
				
			||||||
 | 
										drive-strength = <8>;
 | 
				
			||||||
 | 
										bias-disable;
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
									spi_cs {
 | 
				
			||||||
 | 
										pins = "gpio22";
 | 
				
			||||||
 | 
										function = "blsp3_spi2";
 | 
				
			||||||
 | 
										drive-strength = <8>;
 | 
				
			||||||
 | 
										bias-disable;
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
									quartz_interrupt {
 | 
				
			||||||
 | 
										pins = "gpio47";
 | 
				
			||||||
 | 
										function = "gpio";
 | 
				
			||||||
 | 
										input;
 | 
				
			||||||
 | 
										bias-disable;
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
									quartz_reset {
 | 
				
			||||||
 | 
										pins = "gpio21";
 | 
				
			||||||
 | 
										function = "gpio";
 | 
				
			||||||
 | 
										output-low;
 | 
				
			||||||
 | 
										bias-disable;
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							serial@78b3000 {
 | 
				
			||||||
 | 
								status = "ok";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							dp1 {
 | 
				
			||||||
 | 
								device_type = "network";
 | 
				
			||||||
 | 
								compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
								qcom,id = <5>;
 | 
				
			||||||
 | 
								reg = <0x3a001800 0x200>;
 | 
				
			||||||
 | 
								qcom,mactype = <0>;
 | 
				
			||||||
 | 
								local-mac-address = [000000000000];
 | 
				
			||||||
 | 
								qcom,link-poll = <1>;
 | 
				
			||||||
 | 
								qcom,phy-mdio-addr = <24>;
 | 
				
			||||||
 | 
								phy-mode = "sgmii";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							dp2 {
 | 
				
			||||||
 | 
								device_type = "network";
 | 
				
			||||||
 | 
								compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
								qcom,id = <6>;
 | 
				
			||||||
 | 
								reg = <0x3a001a00 0x200>;
 | 
				
			||||||
 | 
								qcom,mactype = <0>;
 | 
				
			||||||
 | 
								local-mac-address = [000000000000];
 | 
				
			||||||
 | 
								qcom,link-poll = <1>;
 | 
				
			||||||
 | 
								qcom,phy-mdio-addr = <28>;
 | 
				
			||||||
 | 
								phy-mode = "sgmii";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							spi@78b5000 {
 | 
				
			||||||
 | 
								status = "ok";
 | 
				
			||||||
 | 
								pinctrl-0 = <&spi_0_pins>;
 | 
				
			||||||
 | 
								pinctrl-names = "default";
 | 
				
			||||||
 | 
								cs-select = <0>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								m25p80@0 {
 | 
				
			||||||
 | 
									  compatible = "n25q128a11";
 | 
				
			||||||
 | 
									  #address-cells = <1>;
 | 
				
			||||||
 | 
									  #size-cells = <1>;
 | 
				
			||||||
 | 
									  reg = <0>;
 | 
				
			||||||
 | 
									  spi-max-frequency = <50000000>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							spi@78b8000 {
 | 
				
			||||||
 | 
								status = "ok";
 | 
				
			||||||
 | 
								pinctrl-0 = <&spi_3_pins>;
 | 
				
			||||||
 | 
								pinctrl-names = "default";
 | 
				
			||||||
 | 
								cs-select = <2>;
 | 
				
			||||||
 | 
								quartz-reset-gpio = <&tlmm 21 1>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								spidev3: spi@3 {
 | 
				
			||||||
 | 
									  compatible = "qti,spidev";
 | 
				
			||||||
 | 
									  reg = <0>;
 | 
				
			||||||
 | 
									  spi-max-frequency = <24000000>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							dma@7984000 {
 | 
				
			||||||
 | 
								 status = "ok";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							nand@79b0000 {
 | 
				
			||||||
 | 
								status = "ok";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								nand@0 {
 | 
				
			||||||
 | 
									reg = <0>;
 | 
				
			||||||
 | 
									#address-cells = <1>;
 | 
				
			||||||
 | 
									#size-cells = <1>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									nand-ecc-strength = <4>;
 | 
				
			||||||
 | 
									nand-ecc-step-size = <512>;
 | 
				
			||||||
 | 
									nand-bus-width = <8>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							qusb@79000 {
 | 
				
			||||||
 | 
								status = "ok";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							ssphy@78000 {
 | 
				
			||||||
 | 
								status = "ok";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							usb3@8A00000 {
 | 
				
			||||||
 | 
								status = "ok";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							qusb@59000 {
 | 
				
			||||||
 | 
								status = "ok";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							ssphy@58000 {
 | 
				
			||||||
 | 
								status = "ok";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							usb3@8C00000 {
 | 
				
			||||||
 | 
								status = "ok";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							phy@84000 {
 | 
				
			||||||
 | 
								status = "ok";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							phy@86000 {
 | 
				
			||||||
 | 
								status = "ok";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							pci@20000000 {
 | 
				
			||||||
 | 
								perst-gpio = <&tlmm 58 1>;
 | 
				
			||||||
 | 
								status = "ok";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							gpio_keys {
 | 
				
			||||||
 | 
								compatible = "gpio-keys";
 | 
				
			||||||
 | 
								pinctrl-0 = <&button_pins>;
 | 
				
			||||||
 | 
								pinctrl-names = "default";
 | 
				
			||||||
 | 
								status = "ok";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								button@1 {
 | 
				
			||||||
 | 
									label = "reset";
 | 
				
			||||||
 | 
									linux,code = <KEY_RESTART>;
 | 
				
			||||||
 | 
									gpios = <&tlmm 57 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
 | 
									linux,input-type = <1>;
 | 
				
			||||||
 | 
									debounce-interval = <60>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							leds {
 | 
				
			||||||
 | 
								compatible = "gpio-leds";
 | 
				
			||||||
 | 
								pinctrl-0 = <&led_pins>;
 | 
				
			||||||
 | 
								pinctrl-names = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								red {
 | 
				
			||||||
 | 
									label = "sys:red";
 | 
				
			||||||
 | 
									gpio = <&tlmm 0 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
									default-state = "off";
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								green {
 | 
				
			||||||
 | 
									label = "sys:green";
 | 
				
			||||||
 | 
									gpio = <&tlmm 2 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
									default-state = "off";
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								led_power: blue {
 | 
				
			||||||
 | 
									label = "sys:blue";
 | 
				
			||||||
 | 
									gpio = <&tlmm 9 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
									default-state = "off";
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							mdio: mdio@90000 {
 | 
				
			||||||
 | 
								pinctrl-0 = <&mdio_pins>;
 | 
				
			||||||
 | 
								pinctrl-names = "default";
 | 
				
			||||||
 | 
								phy-reset-gpio = <&tlmm 37 0 &tlmm 25 0 &tlmm 44 0>;
 | 
				
			||||||
 | 
								phy0: ethernet-phy@0 {
 | 
				
			||||||
 | 
									reg = <0>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
								phy1: ethernet-phy@1 {
 | 
				
			||||||
 | 
									reg = <1>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
								phy2: ethernet-phy@2 {
 | 
				
			||||||
 | 
									reg = <2>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
								phy3: ethernet-phy@3 {
 | 
				
			||||||
 | 
									reg = <3>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
								phy4: ethernet-phy@4 {
 | 
				
			||||||
 | 
									reg = <24>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
								phy5: ethernet-phy@5 {
 | 
				
			||||||
 | 
									reg = <28>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							ess-switch@3a000000 {
 | 
				
			||||||
 | 
								switch_cpu_bmp = <0x1>;  /* cpu port bitmap */
 | 
				
			||||||
 | 
								switch_lan_bmp = <0x3e>; /* lan port bitmap */
 | 
				
			||||||
 | 
								switch_wan_bmp = <0x40>; /* wan port bitmap */
 | 
				
			||||||
 | 
								switch_mac_mode = <0x0>; /* mac mode for uniphy instance0*/
 | 
				
			||||||
 | 
								switch_mac_mode1 = <0xf>; /* mac mode for uniphy instance1*/
 | 
				
			||||||
 | 
								switch_mac_mode2 = <0xf>; /* mac mode for uniphy instance2*/
 | 
				
			||||||
 | 
								bm_tick_mode = <0>; /* bm tick mode */
 | 
				
			||||||
 | 
								tm_tick_mode = <0>; /* tm tick mode */
 | 
				
			||||||
 | 
								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>;
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
									port@4 {
 | 
				
			||||||
 | 
										port_id = <5>;
 | 
				
			||||||
 | 
										phy_address = <24>;
 | 
				
			||||||
 | 
										port_mac_sel = "QGMAC_PORT";
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
									port@5 {
 | 
				
			||||||
 | 
										port_id = <6>;
 | 
				
			||||||
 | 
										phy_address = <28>;
 | 
				
			||||||
 | 
										port_mac_sel = "QGMAC_PORT";
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
								port_scheduler_resource {
 | 
				
			||||||
 | 
									port@0 {
 | 
				
			||||||
 | 
										port_id = <0>;
 | 
				
			||||||
 | 
										ucast_queue = <0 143>;
 | 
				
			||||||
 | 
										mcast_queue = <256 271>;
 | 
				
			||||||
 | 
										l0sp = <0 35>;
 | 
				
			||||||
 | 
										l0cdrr = <0 47>;
 | 
				
			||||||
 | 
										l0edrr = <0 47>;
 | 
				
			||||||
 | 
										l1cdrr = <0 7>;
 | 
				
			||||||
 | 
										l1edrr = <0 7>;
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
									port@1 {
 | 
				
			||||||
 | 
										port_id = <1>;
 | 
				
			||||||
 | 
										ucast_queue = <144 159>;
 | 
				
			||||||
 | 
										mcast_queue = <272 275>;
 | 
				
			||||||
 | 
										l0sp = <36 39>;
 | 
				
			||||||
 | 
										l0cdrr = <48 63>;
 | 
				
			||||||
 | 
										l0edrr = <48 63>;
 | 
				
			||||||
 | 
										l1cdrr = <8 11>;
 | 
				
			||||||
 | 
										l1edrr = <8 11>;
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
									port@2 {
 | 
				
			||||||
 | 
										port_id = <2>;
 | 
				
			||||||
 | 
										ucast_queue = <160 175>;
 | 
				
			||||||
 | 
										mcast_queue = <276 279>;
 | 
				
			||||||
 | 
										l0sp = <40 43>;
 | 
				
			||||||
 | 
										l0cdrr = <64 79>;
 | 
				
			||||||
 | 
										l0edrr = <64 79>;
 | 
				
			||||||
 | 
										l1cdrr = <12 15>;
 | 
				
			||||||
 | 
										l1edrr = <12 15>;
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
									port@3 {
 | 
				
			||||||
 | 
										port_id = <3>;
 | 
				
			||||||
 | 
										ucast_queue = <176 191>;
 | 
				
			||||||
 | 
										mcast_queue = <280 283>;
 | 
				
			||||||
 | 
										l0sp = <44 47>;
 | 
				
			||||||
 | 
										l0cdrr = <80 95>;
 | 
				
			||||||
 | 
										l0edrr = <80 95>;
 | 
				
			||||||
 | 
										l1cdrr = <16 19>;
 | 
				
			||||||
 | 
										l1edrr = <16 19>;
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
									port@4 {
 | 
				
			||||||
 | 
										port_id = <4>;
 | 
				
			||||||
 | 
										ucast_queue = <192 207>;
 | 
				
			||||||
 | 
										mcast_queue = <284 287>;
 | 
				
			||||||
 | 
										l0sp = <48 51>;
 | 
				
			||||||
 | 
										l0cdrr = <96 111>;
 | 
				
			||||||
 | 
										l0edrr = <96 111>;
 | 
				
			||||||
 | 
										l1cdrr = <20 23>;
 | 
				
			||||||
 | 
										l1edrr = <20 23>;
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
									port@5 {
 | 
				
			||||||
 | 
										port_id = <5>;
 | 
				
			||||||
 | 
										ucast_queue = <208 223>;
 | 
				
			||||||
 | 
										mcast_queue = <288 291>;
 | 
				
			||||||
 | 
										l0sp = <52 55>;
 | 
				
			||||||
 | 
										l0cdrr = <112 127>;
 | 
				
			||||||
 | 
										l0edrr = <112 127>;
 | 
				
			||||||
 | 
										l1cdrr = <24 27>;
 | 
				
			||||||
 | 
										l1edrr = <24 27>;
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
									port@6 {
 | 
				
			||||||
 | 
										port_id = <6>;
 | 
				
			||||||
 | 
										ucast_queue = <224 239>;
 | 
				
			||||||
 | 
										mcast_queue = <292 295>;
 | 
				
			||||||
 | 
										l0sp = <56 59>;
 | 
				
			||||||
 | 
										l0cdrr = <128 143>;
 | 
				
			||||||
 | 
										l0edrr = <128 143>;
 | 
				
			||||||
 | 
										l1cdrr = <28 31>;
 | 
				
			||||||
 | 
										l1edrr = <28 31>;
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
									port@7 {
 | 
				
			||||||
 | 
										port_id = <7>;
 | 
				
			||||||
 | 
										ucast_queue = <240 255>;
 | 
				
			||||||
 | 
										mcast_queue = <296 299>;
 | 
				
			||||||
 | 
										l0sp = <60 63>;
 | 
				
			||||||
 | 
										l0cdrr = <144 159>;
 | 
				
			||||||
 | 
										l0edrr = <144 159>;
 | 
				
			||||||
 | 
										l1cdrr = <32 35>;
 | 
				
			||||||
 | 
										l1edrr = <32 35>;
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
								port_scheduler_config {
 | 
				
			||||||
 | 
									port@0 {
 | 
				
			||||||
 | 
										port_id = <0>;
 | 
				
			||||||
 | 
										l1scheduler {
 | 
				
			||||||
 | 
											group@0 {
 | 
				
			||||||
 | 
												sp = <0 1>; /*L0 SPs*/
 | 
				
			||||||
 | 
												/*cpri cdrr epri edrr*/
 | 
				
			||||||
 | 
												cfg = <0 0 0 0>;
 | 
				
			||||||
 | 
											};
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
										l0scheduler {
 | 
				
			||||||
 | 
											group@0 {
 | 
				
			||||||
 | 
												/*unicast queues*/
 | 
				
			||||||
 | 
												ucast_queue = <0 4 8>;
 | 
				
			||||||
 | 
												/*multicast queues*/
 | 
				
			||||||
 | 
												mcast_queue = <256 260>;
 | 
				
			||||||
 | 
												/*sp cpri cdrr epri edrr*/
 | 
				
			||||||
 | 
												cfg = <0 0 0 0 0>;
 | 
				
			||||||
 | 
											};
 | 
				
			||||||
 | 
											group@1 {
 | 
				
			||||||
 | 
												ucast_queue = <1 5 9>;
 | 
				
			||||||
 | 
												mcast_queue = <257 261>;
 | 
				
			||||||
 | 
												cfg = <0 1 1 1 1>;
 | 
				
			||||||
 | 
											};
 | 
				
			||||||
 | 
											group@2 {
 | 
				
			||||||
 | 
												ucast_queue = <2 6 10>;
 | 
				
			||||||
 | 
												mcast_queue = <258 262>;
 | 
				
			||||||
 | 
												cfg = <0 2 2 2 2>;
 | 
				
			||||||
 | 
											};
 | 
				
			||||||
 | 
											group@3 {
 | 
				
			||||||
 | 
												ucast_queue = <3 7 11>;
 | 
				
			||||||
 | 
												mcast_queue = <259 263>;
 | 
				
			||||||
 | 
												cfg = <0 3 3 3 3>;
 | 
				
			||||||
 | 
											};
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
									port@1 {
 | 
				
			||||||
 | 
										port_id = <1>;
 | 
				
			||||||
 | 
										l1scheduler {
 | 
				
			||||||
 | 
											group@0 {
 | 
				
			||||||
 | 
												sp = <36>;
 | 
				
			||||||
 | 
												cfg = <0 8 0 8>;
 | 
				
			||||||
 | 
											};
 | 
				
			||||||
 | 
											group@1 {
 | 
				
			||||||
 | 
												sp = <37>;
 | 
				
			||||||
 | 
												cfg = <1 9 1 9>;
 | 
				
			||||||
 | 
											};
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
										l0scheduler {
 | 
				
			||||||
 | 
											group@0 {
 | 
				
			||||||
 | 
												ucast_queue = <144>;
 | 
				
			||||||
 | 
												ucast_loop_pri = <16>;
 | 
				
			||||||
 | 
												mcast_queue = <272>;
 | 
				
			||||||
 | 
												mcast_loop_pri = <4>;
 | 
				
			||||||
 | 
												cfg = <36 0 48 0 48>;
 | 
				
			||||||
 | 
											};
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
									port@2 {
 | 
				
			||||||
 | 
										port_id = <2>;
 | 
				
			||||||
 | 
										l1scheduler {
 | 
				
			||||||
 | 
											group@0 {
 | 
				
			||||||
 | 
												sp = <40>;
 | 
				
			||||||
 | 
												cfg = <0 12 0 12>;
 | 
				
			||||||
 | 
											};
 | 
				
			||||||
 | 
											group@1 {
 | 
				
			||||||
 | 
												sp = <41>;
 | 
				
			||||||
 | 
												cfg = <1 13 1 13>;
 | 
				
			||||||
 | 
											};
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
										l0scheduler {
 | 
				
			||||||
 | 
											group@0 {
 | 
				
			||||||
 | 
												ucast_queue = <160>;
 | 
				
			||||||
 | 
												ucast_loop_pri = <16>;
 | 
				
			||||||
 | 
												mcast_queue = <276>;
 | 
				
			||||||
 | 
												mcast_loop_pri = <4>;
 | 
				
			||||||
 | 
												cfg = <40 0 64 0 64>;
 | 
				
			||||||
 | 
											};
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
									port@3 {
 | 
				
			||||||
 | 
										port_id = <3>;
 | 
				
			||||||
 | 
										l1scheduler {
 | 
				
			||||||
 | 
											group@0 {
 | 
				
			||||||
 | 
												sp = <44>;
 | 
				
			||||||
 | 
												cfg = <0 16 0 16>;
 | 
				
			||||||
 | 
											};
 | 
				
			||||||
 | 
											group@1 {
 | 
				
			||||||
 | 
												sp = <45>;
 | 
				
			||||||
 | 
												cfg = <1 17 1 17>;
 | 
				
			||||||
 | 
											};
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
										l0scheduler {
 | 
				
			||||||
 | 
											group@0 {
 | 
				
			||||||
 | 
												ucast_queue = <176>;
 | 
				
			||||||
 | 
												ucast_loop_pri = <16>;
 | 
				
			||||||
 | 
												mcast_queue = <280>;
 | 
				
			||||||
 | 
												mcast_loop_pri = <4>;
 | 
				
			||||||
 | 
												cfg = <44 0 80 0 80>;
 | 
				
			||||||
 | 
											};
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
									port@4 {
 | 
				
			||||||
 | 
										port_id = <4>;
 | 
				
			||||||
 | 
										l1scheduler {
 | 
				
			||||||
 | 
											group@0 {
 | 
				
			||||||
 | 
												sp = <48>;
 | 
				
			||||||
 | 
												cfg = <0 20 0 20>;
 | 
				
			||||||
 | 
											};
 | 
				
			||||||
 | 
											group@1 {
 | 
				
			||||||
 | 
												sp = <49>;
 | 
				
			||||||
 | 
												cfg = <1 21 1 21>;
 | 
				
			||||||
 | 
											};
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
										l0scheduler {
 | 
				
			||||||
 | 
											group@0 {
 | 
				
			||||||
 | 
												ucast_queue = <192>;
 | 
				
			||||||
 | 
												ucast_loop_pri = <16>;
 | 
				
			||||||
 | 
												mcast_queue = <284>;
 | 
				
			||||||
 | 
												mcast_loop_pri = <4>;
 | 
				
			||||||
 | 
												cfg = <48 0 96 0 96>;
 | 
				
			||||||
 | 
											};
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
									port@5 {
 | 
				
			||||||
 | 
										port_id = <5>;
 | 
				
			||||||
 | 
										l1scheduler {
 | 
				
			||||||
 | 
											group@0 {
 | 
				
			||||||
 | 
												sp = <52>;
 | 
				
			||||||
 | 
												cfg = <0 24 0 24>;
 | 
				
			||||||
 | 
											};
 | 
				
			||||||
 | 
											group@1 {
 | 
				
			||||||
 | 
												sp = <53>;
 | 
				
			||||||
 | 
												cfg = <1 25 1 25>;
 | 
				
			||||||
 | 
											};
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
										l0scheduler {
 | 
				
			||||||
 | 
											group@0 {
 | 
				
			||||||
 | 
												ucast_queue = <208>;
 | 
				
			||||||
 | 
												ucast_loop_pri = <16>;
 | 
				
			||||||
 | 
												mcast_queue = <288>;
 | 
				
			||||||
 | 
												mcast_loop_pri = <4>;
 | 
				
			||||||
 | 
												cfg = <52 0 112 0 112>;
 | 
				
			||||||
 | 
											};
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
									port@6 {
 | 
				
			||||||
 | 
										port_id = <6>;
 | 
				
			||||||
 | 
										l1scheduler {
 | 
				
			||||||
 | 
											group@0 {
 | 
				
			||||||
 | 
												sp = <56>;
 | 
				
			||||||
 | 
												cfg = <0 28 0 28>;
 | 
				
			||||||
 | 
											};
 | 
				
			||||||
 | 
											group@1 {
 | 
				
			||||||
 | 
												sp = <57>;
 | 
				
			||||||
 | 
												cfg = <1 29 1 29>;
 | 
				
			||||||
 | 
											};
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
										l0scheduler {
 | 
				
			||||||
 | 
											group@0 {
 | 
				
			||||||
 | 
												ucast_queue = <224>;
 | 
				
			||||||
 | 
												ucast_loop_pri = <16>;
 | 
				
			||||||
 | 
												mcast_queue = <292>;
 | 
				
			||||||
 | 
												mcast_loop_pri = <4>;
 | 
				
			||||||
 | 
												cfg = <56 0 128 0 128>;
 | 
				
			||||||
 | 
											};
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
									port@7 {
 | 
				
			||||||
 | 
										port_id = <7>;
 | 
				
			||||||
 | 
										l1scheduler {
 | 
				
			||||||
 | 
											group@0 {
 | 
				
			||||||
 | 
												sp = <60>;
 | 
				
			||||||
 | 
												cfg = <0 32 0 32>;
 | 
				
			||||||
 | 
											};
 | 
				
			||||||
 | 
											group@1 {
 | 
				
			||||||
 | 
												sp = <61>;
 | 
				
			||||||
 | 
												cfg = <1 33 1 33>;
 | 
				
			||||||
 | 
											};
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
										l0scheduler {
 | 
				
			||||||
 | 
											group@0 {
 | 
				
			||||||
 | 
												ucast_queue = <240>;
 | 
				
			||||||
 | 
												ucast_loop_pri = <16>;
 | 
				
			||||||
 | 
												mcast_queue = <296>;
 | 
				
			||||||
 | 
												cfg = <60 0 144 0 144>;
 | 
				
			||||||
 | 
											};
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							nss-macsec0 {
 | 
				
			||||||
 | 
								compatible = "qcom,nss-macsec";
 | 
				
			||||||
 | 
								phy_addr = <0x18>;
 | 
				
			||||||
 | 
								phy_access_mode = <0>;
 | 
				
			||||||
 | 
								mdiobus = <&mdio>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							nss-macsec1 {
 | 
				
			||||||
 | 
								compatible = "qcom,nss-macsec";
 | 
				
			||||||
 | 
								phy_addr = <0x1c>;
 | 
				
			||||||
 | 
								phy_access_mode = <0>;
 | 
				
			||||||
 | 
								mdiobus = <&mdio>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&wifi0 {
 | 
				
			||||||
 | 
						qcom,board_id = <0x90>;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&wifi1 {
 | 
				
			||||||
 | 
						qcom,board_id = <0x290>;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
@@ -57,6 +57,17 @@ define Device/edgecore_eap106
 | 
				
			|||||||
endef
 | 
					endef
 | 
				
			||||||
#TARGET_DEVICES += edgecore_eap106
 | 
					#TARGET_DEVICES += edgecore_eap106
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					define Device/sonicfi_rap650c
 | 
				
			||||||
 | 
					  DEVICE_TITLE := SonicFi RAP650C
 | 
				
			||||||
 | 
					  DEVICE_DTS := qcom-ipq807x-rap650c
 | 
				
			||||||
 | 
					  DEVICE_DTS_CONFIG=config@hk09
 | 
				
			||||||
 | 
					  SUPPORTED_DEVICES := sonicfi,rap650c
 | 
				
			||||||
 | 
					  DEVICE_PACKAGES := ath11k-wifi-sonicfi-rap650c uboot-envtools
 | 
				
			||||||
 | 
					  IMAGES := sysupgrade.tar nand-factory.bin nand-factory.ubi
 | 
				
			||||||
 | 
					  IMAGE/nand-factory.ubi := append-ubi
 | 
				
			||||||
 | 
					endef
 | 
				
			||||||
 | 
					TARGET_DEVICES += sonicfi_rap650c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
define Device/tplink_ex227
 | 
					define Device/tplink_ex227
 | 
				
			||||||
  DEVICE_TITLE := TP-Link EX227
 | 
					  DEVICE_TITLE := TP-Link EX227
 | 
				
			||||||
  DEVICE_DTS := qcom-ipq807x-ex227
 | 
					  DEVICE_DTS := qcom-ipq807x-ex227
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -53,11 +53,27 @@ $(call Package/ath12k-wifi-default)
 | 
				
			|||||||
    TITLE:=board-2.bin for RAP750W_311a
 | 
					    TITLE:=board-2.bin for RAP750W_311a
 | 
				
			||||||
endef
 | 
					endef
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					define Package/ath12k-wifi-cig-wf189h
 | 
				
			||||||
 | 
					$(call Package/ath12k-wifi-default)
 | 
				
			||||||
 | 
					    TITLE:=board-2.bin for WF189H
 | 
				
			||||||
 | 
					endef
 | 
				
			||||||
 | 
					
 | 
				
			||||||
define Package/ath12k-wifi-cig-wf189w
 | 
					define Package/ath12k-wifi-cig-wf189w
 | 
				
			||||||
$(call Package/ath12k-wifi-default)
 | 
					$(call Package/ath12k-wifi-default)
 | 
				
			||||||
    TITLE:=board-2.bin for WF189W
 | 
					    TITLE:=board-2.bin for WF189W
 | 
				
			||||||
endef
 | 
					endef
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					define Package/ath12k-wifi-sercomm-ap72tip
 | 
				
			||||||
 | 
					$(call Package/ath12k-wifi-default)
 | 
				
			||||||
 | 
					    TITLE:=board-2.bin for AP72TIP
 | 
				
			||||||
 | 
					endef
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					define Package/ath12k-wifi-sercomm-ap72tip-v4
 | 
				
			||||||
 | 
					$(call Package/ath12k-wifi-default)
 | 
				
			||||||
 | 
					    TITLE:=board-2.bin for AP72TIP-v4
 | 
				
			||||||
 | 
					endef
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
define Package/ath12k-wifi-cig-wf189/install
 | 
					define Package/ath12k-wifi-cig-wf189/install
 | 
				
			||||||
	$(INSTALL_DIR) $(1)/lib/firmware/ath12k/QCN92XX/hw1.0/
 | 
						$(INSTALL_DIR) $(1)/lib/firmware/ath12k/QCN92XX/hw1.0/
 | 
				
			||||||
	$(INSTALL_DIR) $(1)/lib/firmware/ath12k/IPQ5332/hw1.0/
 | 
						$(INSTALL_DIR) $(1)/lib/firmware/ath12k/IPQ5332/hw1.0/
 | 
				
			||||||
@@ -96,8 +112,34 @@ define Package/ath12k-wifi-cig-wf189w/install
 | 
				
			|||||||
	$(INSTALL_DATA) ./ipq5332_qcn6432.regdb $(1)/lib/firmware/ath12k/QCN6432/hw1.0/regdb.bin
 | 
						$(INSTALL_DATA) ./ipq5332_qcn6432.regdb $(1)/lib/firmware/ath12k/QCN6432/hw1.0/regdb.bin
 | 
				
			||||||
endef
 | 
					endef
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					define Package/ath12k-wifi-cig-wf189h/install
 | 
				
			||||||
 | 
						$(INSTALL_DIR) $(1)/lib/firmware/ath12k/IPQ5332/hw1.0/
 | 
				
			||||||
 | 
						$(INSTALL_DIR) $(1)/lib/firmware/ath12k/QCN6432/hw1.0/
 | 
				
			||||||
 | 
						$(INSTALL_DATA) ./board-2.bin.189h.IPQ5332 $(1)/lib/firmware/ath12k/IPQ5332/hw1.0/board-2.bin
 | 
				
			||||||
 | 
						$(INSTALL_DATA) ./board-2.bin.189h.QCN6432 $(1)/lib/firmware/ath12k/QCN6432/hw1.0/board-2.bin
 | 
				
			||||||
 | 
						$(INSTALL_DATA) ./ipq5332_qcn6432.regdb $(1)/lib/firmware/ath12k/QCN6432/hw1.0/regdb.bin
 | 
				
			||||||
 | 
					endef
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					define Package/ath12k-wifi-sercomm-ap72tip/install
 | 
				
			||||||
 | 
						$(INSTALL_DIR) $(1)/lib/firmware/ath12k/QCN92XX/hw1.0/
 | 
				
			||||||
 | 
						$(INSTALL_DIR) $(1)/lib/firmware/ath12k/IPQ5332/hw1.0/
 | 
				
			||||||
 | 
						$(INSTALL_DATA) ./board-2.bin.ap72tip.QCN92XX $(1)/lib/firmware/ath12k/QCN92XX/hw1.0/board-2.bin
 | 
				
			||||||
 | 
						$(INSTALL_DATA) ./board-2.bin.ap72tip.IPQ5332 $(1)/lib/firmware/ath12k/IPQ5332/hw1.0/board-2.bin
 | 
				
			||||||
 | 
					endef
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					define Package/ath12k-wifi-sercomm-ap72tip-v4/install
 | 
				
			||||||
 | 
						$(INSTALL_DIR) $(1)/lib/firmware/ath12k/QCN92XX/hw1.0/
 | 
				
			||||||
 | 
						$(INSTALL_DIR) $(1)/lib/firmware/ath12k/IPQ5332/hw1.0/
 | 
				
			||||||
 | 
						$(INSTALL_DATA) ./board-2.bin.ap72tip-v4.QCN92XX $(1)/lib/firmware/ath12k/QCN92XX/hw1.0/board-2.bin
 | 
				
			||||||
 | 
						$(INSTALL_DATA) ./board-2.bin.ap72tip-v4.IPQ5332 $(1)/lib/firmware/ath12k/IPQ5332/hw1.0/board-2.bin
 | 
				
			||||||
 | 
					endef
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$(eval $(call BuildPackage,ath12k-wifi-cig-wf189))
 | 
					$(eval $(call BuildPackage,ath12k-wifi-cig-wf189))
 | 
				
			||||||
$(eval $(call BuildPackage,ath12k-wifi-edgecore-eap105))
 | 
					$(eval $(call BuildPackage,ath12k-wifi-edgecore-eap105))
 | 
				
			||||||
$(eval $(call BuildPackage,ath12k-wifi-sonicfi-rap7110c-341x))
 | 
					$(eval $(call BuildPackage,ath12k-wifi-sonicfi-rap7110c-341x))
 | 
				
			||||||
$(eval $(call BuildPackage,ath12k-wifi-sonicfi-rap750w-311a))
 | 
					$(eval $(call BuildPackage,ath12k-wifi-sonicfi-rap750w-311a))
 | 
				
			||||||
$(eval $(call BuildPackage,ath12k-wifi-cig-wf189w))
 | 
					$(eval $(call BuildPackage,ath12k-wifi-cig-wf189w))
 | 
				
			||||||
 | 
					$(eval $(call BuildPackage,ath12k-wifi-cig-wf189h))
 | 
				
			||||||
 | 
					$(eval $(call BuildPackage,ath12k-wifi-sercomm-ap72tip))
 | 
				
			||||||
 | 
					$(eval $(call BuildPackage,ath12k-wifi-sercomm-ap72tip-v4))
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										
											BIN
										
									
								
								feeds/qca-wifi-7/ath12k-wifi/ap72tip-IPQ5332.bin
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/qca-wifi-7/ath12k-wifi/ap72tip-IPQ5332.bin
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/qca-wifi-7/ath12k-wifi/ap72tip-QCN92XX.bin
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/qca-wifi-7/ath12k-wifi/ap72tip-QCN92XX.bin
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/qca-wifi-7/ath12k-wifi/ap72tip-v4-IPQ5332.bin
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/qca-wifi-7/ath12k-wifi/ap72tip-v4-IPQ5332.bin
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/qca-wifi-7/ath12k-wifi/ap72tip-v4-QCN92XX.bin
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/qca-wifi-7/ath12k-wifi/ap72tip-v4-QCN92XX.bin
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										20
									
								
								feeds/qca-wifi-7/ath12k-wifi/board-2-ap72tip-IPQ5332.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								feeds/qca-wifi-7/ath12k-wifi/board-2-ap72tip-IPQ5332.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
				
			|||||||
 | 
					[
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        "board": [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "names": [
 | 
				
			||||||
 | 
					                    "bus=ahb,qmi-chip-id=0,qmi-board-id=255"
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					                "data": "ap72tip-IPQ5332.bin"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "regdb": [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "names": [
 | 
				
			||||||
 | 
					                    "bus=ahb,qmi-chip-id=0,qmi-board-id=255"
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					                "data": "ipq5332.regdb"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
							
								
								
									
										20
									
								
								feeds/qca-wifi-7/ath12k-wifi/board-2-ap72tip-QCN92XX.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								feeds/qca-wifi-7/ath12k-wifi/board-2-ap72tip-QCN92XX.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
				
			|||||||
 | 
					[
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        "board": [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "names": [
 | 
				
			||||||
 | 
					                    "bus=pci,qmi-chip-id=0,qmi-board-id=255"
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					                "data": "ap72tip-QCN92XX.bin"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "regdb": [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "names": [
 | 
				
			||||||
 | 
					                    "bus=pci,qmi-chip-id=0,qmi-board-id=255"
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					                "data": "qcn92xx.regdb"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
							
								
								
									
										20
									
								
								feeds/qca-wifi-7/ath12k-wifi/board-2-ap72tip-v4-IPQ5332.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								feeds/qca-wifi-7/ath12k-wifi/board-2-ap72tip-v4-IPQ5332.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
				
			|||||||
 | 
					[
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        "board": [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "names": [
 | 
				
			||||||
 | 
					                    "bus=ahb,qmi-chip-id=0,qmi-board-id=255"
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					                "data": "ap72tip-v4-IPQ5332.bin"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "regdb": [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "names": [
 | 
				
			||||||
 | 
					                    "bus=ahb,qmi-chip-id=0,qmi-board-id=255"
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					                "data": "ipq5332.regdb"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
							
								
								
									
										20
									
								
								feeds/qca-wifi-7/ath12k-wifi/board-2-ap72tip-v4-QCN92XX.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								feeds/qca-wifi-7/ath12k-wifi/board-2-ap72tip-v4-QCN92XX.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
				
			|||||||
 | 
					[
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        "board": [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "names": [
 | 
				
			||||||
 | 
					                    "bus=pci,qmi-chip-id=0,qmi-board-id=255"
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					                "data": "ap72tip-v4-QCN92XX.bin"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "regdb": [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "names": [
 | 
				
			||||||
 | 
					                    "bus=pci,qmi-chip-id=0,qmi-board-id=255"
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					                "data": "qcn92xx.regdb"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								feeds/qca-wifi-7/ath12k-wifi/board-2.bin.189h.IPQ5332
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/qca-wifi-7/ath12k-wifi/board-2.bin.189h.IPQ5332
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/qca-wifi-7/ath12k-wifi/board-2.bin.189h.QCN6432
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/qca-wifi-7/ath12k-wifi/board-2.bin.189h.QCN6432
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/qca-wifi-7/ath12k-wifi/board-2.bin.ap72tip-v4.IPQ5332
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/qca-wifi-7/ath12k-wifi/board-2.bin.ap72tip-v4.IPQ5332
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/qca-wifi-7/ath12k-wifi/board-2.bin.ap72tip-v4.QCN92XX
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/qca-wifi-7/ath12k-wifi/board-2.bin.ap72tip-v4.QCN92XX
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/qca-wifi-7/ath12k-wifi/board-2.bin.ap72tip.IPQ5332
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/qca-wifi-7/ath12k-wifi/board-2.bin.ap72tip.IPQ5332
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/qca-wifi-7/ath12k-wifi/board-2.bin.ap72tip.QCN92XX
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/qca-wifi-7/ath12k-wifi/board-2.bin.ap72tip.QCN92XX
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							@@ -9,3 +9,9 @@ $encoder -c board-2-eap105-QCN92XX.json -o board-2.bin.eap105.QCN92XX
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
$encoder -c board-2-rap7110c_341x-IPQ5332.json -o board-2.bin.rap7110c_341x.IPQ5332
 | 
					$encoder -c board-2-rap7110c_341x-IPQ5332.json -o board-2.bin.rap7110c_341x.IPQ5332
 | 
				
			||||||
$encoder -c board-2-rap7110c_341x-QCN92XX.json -o board-2.bin.rap7110c_341x.QCN92XX
 | 
					$encoder -c board-2-rap7110c_341x-QCN92XX.json -o board-2.bin.rap7110c_341x.QCN92XX
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$encoder -c board-2-ap72tip-IPQ5332.json -o board-2.bin.ap72tip.IPQ5332
 | 
				
			||||||
 | 
					$encoder -c board-2-ap72tip-QCN92XX.json -o board-2.bin.ap72tip.QCN92XX
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$encoder -c board-2-ap72tip-v4-IPQ5332.json -o board-2.bin.ap72tip-v4.IPQ5332
 | 
				
			||||||
 | 
					$encoder -c board-2-ap72tip-v4-QCN92XX.json -o board-2.bin.ap72tip-v4.QCN92XX
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -126,12 +126,15 @@ hostapd_common_add_device_config() {
 | 
				
			|||||||
	config_add_int maxassoc
 | 
						config_add_int maxassoc
 | 
				
			||||||
	config_add_int reg_power_type
 | 
						config_add_int reg_power_type
 | 
				
			||||||
	config_add_boolean stationary_ap
 | 
						config_add_boolean stationary_ap
 | 
				
			||||||
 | 
						config_add_boolean maxassoc_ignore_probe
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	config_add_string acs_chan_bias
 | 
						config_add_string acs_chan_bias
 | 
				
			||||||
 | 
						config_add_boolean acs_exclude_dfs
 | 
				
			||||||
	config_add_array hostapd_options
 | 
						config_add_array hostapd_options
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	config_add_int airtime_mode
 | 
						config_add_int airtime_mode
 | 
				
			||||||
	config_add_int mbssid
 | 
						config_add_int mbssid
 | 
				
			||||||
 | 
						config_add_boolean rnr_beacon ema
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	hostapd_add_log_config
 | 
						hostapd_add_log_config
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -142,10 +145,11 @@ hostapd_prepare_device_config() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	local base_cfg=
 | 
						local base_cfg=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	json_get_vars country country3 country_ie beacon_int:100 doth require_mode legacy_rates \
 | 
						json_get_vars country country3 country_ie beacon_int:100 dtim_period:2 doth require_mode legacy_rates \
 | 
				
			||||||
		acs_chan_bias local_pwr_constraint spectrum_mgmt_required airtime_mode cell_density \
 | 
							acs_chan_bias local_pwr_constraint spectrum_mgmt_required airtime_mode cell_density \
 | 
				
			||||||
		rts_threshold beacon_rate rssi_reject_assoc_rssi rssi_ignore_probe_request maxassoc \
 | 
							rts_threshold beacon_rate rssi_reject_assoc_rssi rssi_ignore_probe_request maxassoc \
 | 
				
			||||||
		mbssid:0 band reg_power_type stationary_ap
 | 
							rnr_beacon mbssid:0 band reg_power_type stationary_ap acs_exclude_dfs\
 | 
				
			||||||
 | 
							maxassoc_ignore_probe band
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	hostapd_set_log_options base_cfg
 | 
						hostapd_set_log_options base_cfg
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -155,6 +159,9 @@ hostapd_prepare_device_config() {
 | 
				
			|||||||
	set_default legacy_rates 0
 | 
						set_default legacy_rates 0
 | 
				
			||||||
	set_default airtime_mode 0
 | 
						set_default airtime_mode 0
 | 
				
			||||||
	set_default cell_density 0
 | 
						set_default cell_density 0
 | 
				
			||||||
 | 
						set_default rnr_beacon 0
 | 
				
			||||||
 | 
						set_default ema 0
 | 
				
			||||||
 | 
						set_default acs_exclude_dfs 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	[ -n "$country" ] && {
 | 
						[ -n "$country" ] && {
 | 
				
			||||||
		append base_cfg "country_code=$country" "$N"
 | 
							append base_cfg "country_code=$country" "$N"
 | 
				
			||||||
@@ -244,8 +251,14 @@ hostapd_prepare_device_config() {
 | 
				
			|||||||
	[ -n "$brlist" ] && append base_cfg "basic_rates=$brlist" "$N"
 | 
						[ -n "$brlist" ] && append base_cfg "basic_rates=$brlist" "$N"
 | 
				
			||||||
	append base_cfg "beacon_int=$beacon_int" "$N"
 | 
						append base_cfg "beacon_int=$beacon_int" "$N"
 | 
				
			||||||
	[ -n "$rts_threshold" ] && append base_cfg "rts_threshold=$rts_threshold" "$N"
 | 
						[ -n "$rts_threshold" ] && append base_cfg "rts_threshold=$rts_threshold" "$N"
 | 
				
			||||||
 | 
						append base_cfg "dtim_period=$dtim_period" "$N"
 | 
				
			||||||
	[ "$airtime_mode" -gt 0 ] && append base_cfg "airtime_mode=$airtime_mode" "$N"
 | 
						[ "$airtime_mode" -gt 0 ] && append base_cfg "airtime_mode=$airtime_mode" "$N"
 | 
				
			||||||
	[ -n "$maxassoc" ] && append base_cfg "iface_max_num_sta=$maxassoc" "$N"
 | 
						[ -n "$maxassoc" ] && append base_cfg "iface_max_num_sta=$maxassoc" "$N"
 | 
				
			||||||
 | 
						[ "$maxassoc_ignore_probe" -gt 0 ] && append base_cfg "no_probe_resp_if_max_sta=1" "$N"
 | 
				
			||||||
 | 
						[ "$rnr_beacon" -gt 0 ] && append base_cfg "rnr_beacon=$rnr_beacon" "$N"
 | 
				
			||||||
 | 
						[ "$ema" -gt 0 ] && append base_cfg "ema=$ema" "$N"
 | 
				
			||||||
 | 
						[ "$acs_exclude_dfs" -gt 0 ] && append base_cfg "acs_exclude_dfs=$acs_exclude_dfs" "$N"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	[ "$mbssid" -gt 0 ] && [ "$mbssid" -le 2 ] && append base_cfg "mbssid=$mbssid" "$N"
 | 
						[ "$mbssid" -gt 0 ] && [ "$mbssid" -le 2 ] && append base_cfg "mbssid=$mbssid" "$N"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	[ "$band" = "6g" ] && {
 | 
						[ "$band" = "6g" ] && {
 | 
				
			||||||
@@ -287,15 +300,24 @@ hostapd_common_add_bss_config() {
 | 
				
			|||||||
	config_add_int ieee80211w
 | 
						config_add_int ieee80211w
 | 
				
			||||||
	config_add_int eapol_version
 | 
						config_add_int eapol_version
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	config_add_array auth_server acct_server
 | 
						config_add_string 'auth_server:host' 'server:host'
 | 
				
			||||||
	config_add_string 'server:host'
 | 
					 | 
				
			||||||
	config_add_string auth_secret key
 | 
						config_add_string auth_secret key
 | 
				
			||||||
	config_add_int 'auth_port:port' 'port:port'
 | 
						config_add_int 'auth_port:port' 'port:port'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						config_add_string acct_server
 | 
				
			||||||
	config_add_string acct_secret
 | 
						config_add_string acct_secret
 | 
				
			||||||
	config_add_int acct_port
 | 
						config_add_int acct_port
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						config_add_string acct_server_secondary
 | 
				
			||||||
 | 
						config_add_string acct_secret_secondary
 | 
				
			||||||
 | 
						config_add_int acct_port_secondary
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	config_add_int acct_interval
 | 
						config_add_int acct_interval
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						config_add_string auth_server_secondary
 | 
				
			||||||
 | 
						config_add_string auth_secret_secondary
 | 
				
			||||||
 | 
						config_add_int auth_port_secondary
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	config_add_int bss_load_update_period chan_util_avg_period
 | 
						config_add_int bss_load_update_period chan_util_avg_period
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	config_add_string dae_client
 | 
						config_add_string dae_client
 | 
				
			||||||
@@ -339,8 +361,8 @@ hostapd_common_add_bss_config() {
 | 
				
			|||||||
	config_add_string lci civic
 | 
						config_add_string lci civic
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	config_add_boolean ieee80211r pmk_r1_push ft_psk_generate_local ft_over_ds
 | 
						config_add_boolean ieee80211r pmk_r1_push ft_psk_generate_local ft_over_ds
 | 
				
			||||||
	config_add_int r0_key_lifetime reassociation_deadline
 | 
						config_add_int r0_key_lifetime reassociation_deadline ft_l2_refresh
 | 
				
			||||||
	config_add_string mobility_domain r1_key_holder
 | 
						config_add_string mobility_domain r1_key_holder ft_key
 | 
				
			||||||
	config_add_array r0kh r1kh
 | 
						config_add_array r0kh r1kh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	config_add_int ieee80211w_max_timeout ieee80211w_retry_timeout
 | 
						config_add_int ieee80211w_max_timeout ieee80211w_retry_timeout
 | 
				
			||||||
@@ -391,14 +413,18 @@ hostapd_common_add_bss_config() {
 | 
				
			|||||||
	config_add_array radius_auth_req_attr
 | 
						config_add_array radius_auth_req_attr
 | 
				
			||||||
	config_add_array radius_acct_req_attr
 | 
						config_add_array radius_acct_req_attr
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	config_add_int eap_server radius_server_auth_port
 | 
						config_add_int eap_server
 | 
				
			||||||
	config_add_string eap_user_file ca_cert server_cert private_key private_key_passwd server_id radius_server_clients
 | 
						config_add_string eap_user_file ca_cert server_cert private_key private_key_passwd server_id
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	config_add_boolean fils
 | 
						config_add_boolean fils
 | 
				
			||||||
	config_add_string fils_dhcp
 | 
						config_add_string fils_dhcp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						config_add_boolean ratelimit
 | 
				
			||||||
	config_add_int ocv
 | 
						config_add_int ocv
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						config_add_string uci_section
 | 
				
			||||||
 | 
						config_add_boolean dynamic_probe_resp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	config_add_boolean apup
 | 
						config_add_boolean apup
 | 
				
			||||||
	config_add_string apup_peer_ifname_prefix
 | 
						config_add_string apup_peer_ifname_prefix
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -433,6 +459,7 @@ hostapd_set_psk() {
 | 
				
			|||||||
	local ifname="$1"
 | 
						local ifname="$1"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	rm -f /var/run/hostapd-${ifname}.psk
 | 
						rm -f /var/run/hostapd-${ifname}.psk
 | 
				
			||||||
 | 
						touch /var/run/hostapd-${ifname}.psk
 | 
				
			||||||
	for_each_station hostapd_set_psk_file ${ifname}
 | 
						for_each_station hostapd_set_psk_file ${ifname}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -549,187 +576,17 @@ append_airtime_sta_weight() {
 | 
				
			|||||||
	[ -n "$1" ] && append bss_conf "airtime_sta_weight=$1" "$N"
 | 
						[ -n "$1" ] && append bss_conf "airtime_sta_weight=$1" "$N"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
append_auth_server() {
 | 
					append_radius_server() {
 | 
				
			||||||
	[ -n "$1" ] || return
 | 
					 | 
				
			||||||
	append bss_conf "auth_server_addr=$1" "$N"
 | 
					 | 
				
			||||||
	append bss_conf "auth_server_port=$auth_port" "$N"
 | 
					 | 
				
			||||||
	[ -n "$auth_secret" ] && append bss_conf "auth_server_shared_secret=$auth_secret" "$N"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
append_acct_server() {
 | 
					 | 
				
			||||||
	[ -n "$1" ] || return
 | 
					 | 
				
			||||||
	append bss_conf "acct_server_addr=$1" "$N"
 | 
					 | 
				
			||||||
	append bss_conf "acct_server_port=$acct_port" "$N"
 | 
					 | 
				
			||||||
	[ -n "$acct_secret" ] && append bss_conf "acct_server_shared_secret=$acct_secret" "$N"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
hostapd_set_bss_options() {
 | 
					 | 
				
			||||||
	local var="$1"
 | 
					 | 
				
			||||||
	local phy="$2"
 | 
					 | 
				
			||||||
	local vif="$3"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	wireless_vif_parse_encryption
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	local bss_conf bss_md5sum ft_key
 | 
					 | 
				
			||||||
	local wep_rekey wpa_group_rekey wpa_pair_rekey wpa_master_rekey wpa_key_mgmt
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	json_get_vars \
 | 
					 | 
				
			||||||
		wep_rekey wpa_group_rekey wpa_pair_rekey wpa_master_rekey wpa_strict_rekey \
 | 
					 | 
				
			||||||
		wpa_disable_eapol_key_retries tdls_prohibit \
 | 
					 | 
				
			||||||
		maxassoc max_inactivity disassoc_low_ack isolate auth_cache \
 | 
					 | 
				
			||||||
		wps_pushbutton wps_label ext_registrar wps_pbc_in_m1 wps_ap_setup_locked \
 | 
					 | 
				
			||||||
		wps_independent wps_device_type wps_device_name wps_manufacturer wps_pin \
 | 
					 | 
				
			||||||
		macfilter ssid utf8_ssid wmm uapsd hidden short_preamble rsn_preauth \
 | 
					 | 
				
			||||||
		iapp_interface eapol_version dynamic_vlan ieee80211w nasid \
 | 
					 | 
				
			||||||
		acct_secret acct_port acct_interval \
 | 
					 | 
				
			||||||
		bss_load_update_period chan_util_avg_period sae_require_mfp sae_pwe \
 | 
					 | 
				
			||||||
		multi_ap multi_ap_backhaul_ssid multi_ap_backhaul_key skip_inactivity_poll \
 | 
					 | 
				
			||||||
		ppsk airtime_bss_weight airtime_bss_limit airtime_sta_weight \
 | 
					 | 
				
			||||||
		multicast_to_unicast_all proxy_arp per_sta_vif \
 | 
					 | 
				
			||||||
		eap_server eap_user_file ca_cert server_cert private_key private_key_passwd server_id radius_server_clients radius_server_auth_port \
 | 
					 | 
				
			||||||
		vendor_elements fils ocv apup multi_psk
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	set_default fils 0
 | 
					 | 
				
			||||||
	set_default isolate 0
 | 
					 | 
				
			||||||
	set_default maxassoc 0
 | 
					 | 
				
			||||||
	set_default max_inactivity 0
 | 
					 | 
				
			||||||
	set_default short_preamble 1
 | 
					 | 
				
			||||||
	set_default disassoc_low_ack 1
 | 
					 | 
				
			||||||
	set_default skip_inactivity_poll 0
 | 
					 | 
				
			||||||
	set_default hidden 0
 | 
					 | 
				
			||||||
	set_default wmm 1
 | 
					 | 
				
			||||||
	set_default uapsd 1
 | 
					 | 
				
			||||||
	set_default wpa_disable_eapol_key_retries 0
 | 
					 | 
				
			||||||
	set_default multi_psk $multi_psk
 | 
					 | 
				
			||||||
	set_default tdls_prohibit 0
 | 
					 | 
				
			||||||
	set_default eapol_version $((wpa & 1))
 | 
					 | 
				
			||||||
	set_default acct_port 1813
 | 
					 | 
				
			||||||
	set_default bss_load_update_period 60
 | 
					 | 
				
			||||||
	set_default chan_util_avg_period 600
 | 
					 | 
				
			||||||
	set_default utf8_ssid 1
 | 
					 | 
				
			||||||
	set_default multi_ap 0
 | 
					 | 
				
			||||||
	set_default ppsk 0
 | 
					 | 
				
			||||||
	set_default airtime_bss_weight 0
 | 
					 | 
				
			||||||
	set_default airtime_bss_limit 0
 | 
					 | 
				
			||||||
	set_default eap_server 0
 | 
					 | 
				
			||||||
	set_default apup 0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	/usr/sbin/hostapd -vfils || fils=0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	append bss_conf "ctrl_interface=/var/run/hostapd"
 | 
					 | 
				
			||||||
	if [ "$isolate" -gt 0 ]; then
 | 
					 | 
				
			||||||
		append bss_conf "ap_isolate=$isolate" "$N"
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
	if [ "$maxassoc" -gt 0 ]; then
 | 
					 | 
				
			||||||
		append bss_conf "max_num_sta=$maxassoc" "$N"
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
	if [ "$max_inactivity" -gt 0 ]; then
 | 
					 | 
				
			||||||
		append bss_conf "ap_max_inactivity=$max_inactivity" "$N"
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	[ "$airtime_bss_weight" -gt 0 ] && append bss_conf "airtime_bss_weight=$airtime_bss_weight" "$N"
 | 
					 | 
				
			||||||
	[ "$airtime_bss_limit" -gt 0 ] && append bss_conf "airtime_bss_limit=$airtime_bss_limit" "$N"
 | 
					 | 
				
			||||||
	json_for_each_item append_airtime_sta_weight airtime_sta_weight
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	append bss_conf "bss_load_update_period=$bss_load_update_period" "$N"
 | 
					 | 
				
			||||||
	append bss_conf "chan_util_avg_period=$chan_util_avg_period" "$N"
 | 
					 | 
				
			||||||
	append bss_conf "disassoc_low_ack=$disassoc_low_ack" "$N"
 | 
					 | 
				
			||||||
	append bss_conf "skip_inactivity_poll=$skip_inactivity_poll" "$N"
 | 
					 | 
				
			||||||
	append bss_conf "preamble=$short_preamble" "$N"
 | 
					 | 
				
			||||||
	append bss_conf "wmm_enabled=$wmm" "$N"
 | 
					 | 
				
			||||||
	append bss_conf "ignore_broadcast_ssid=$hidden" "$N"
 | 
					 | 
				
			||||||
	append bss_conf "uapsd_advertisement_enabled=$uapsd" "$N"
 | 
					 | 
				
			||||||
	append bss_conf "utf8_ssid=$utf8_ssid" "$N"
 | 
					 | 
				
			||||||
	append bss_conf "multi_ap=$multi_ap" "$N"
 | 
					 | 
				
			||||||
	[ -n "$vendor_elements" ] && append bss_conf "vendor_elements=$vendor_elements" "$N"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	[ "$tdls_prohibit" -gt 0 ] && append bss_conf "tdls_prohibit=$tdls_prohibit" "$N"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	[ "$wpa" -gt 0 ] && {
 | 
					 | 
				
			||||||
		[ -n "$wpa_group_rekey"  ] && append bss_conf "wpa_group_rekey=$wpa_group_rekey" "$N"
 | 
					 | 
				
			||||||
		[ -n "$wpa_pair_rekey"   ] && append bss_conf "wpa_ptk_rekey=$wpa_pair_rekey"    "$N"
 | 
					 | 
				
			||||||
		[ -n "$wpa_master_rekey" ] && append bss_conf "wpa_gmk_rekey=$wpa_master_rekey"  "$N"
 | 
					 | 
				
			||||||
		[ -n "$wpa_strict_rekey" ] && append bss_conf "wpa_strict_rekey=$wpa_strict_rekey" "$N"
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	[ -n "$nasid" ] && append bss_conf "nas_identifier=$nasid" "$N"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	[ -n "$acct_interval" ] && \
 | 
					 | 
				
			||||||
		append bss_conf "radius_acct_interim_interval=$acct_interval" "$N"
 | 
					 | 
				
			||||||
	json_for_each_item append_acct_server acct_server
 | 
					 | 
				
			||||||
	json_for_each_item append_radius_acct_req_attr radius_acct_req_attr
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	[ -n "$ocv" ] && append bss_conf "ocv=$ocv" "$N"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	case "$auth_type" in
 | 
					 | 
				
			||||||
		sae|owe|eap2|eap192)
 | 
					 | 
				
			||||||
			set_default ieee80211w 2
 | 
					 | 
				
			||||||
			set_default sae_require_mfp 1
 | 
					 | 
				
			||||||
			[ "$ppsk" -eq 0 ] && set_default sae_pwe 2
 | 
					 | 
				
			||||||
		;;
 | 
					 | 
				
			||||||
		psk-sae|psk2-radius|eap-eap2)
 | 
					 | 
				
			||||||
			set_default ieee80211w 1
 | 
					 | 
				
			||||||
			set_default sae_require_mfp 1
 | 
					 | 
				
			||||||
			[ "$ppsk" -eq 0 ] && set_default sae_pwe 2
 | 
					 | 
				
			||||||
		;;
 | 
					 | 
				
			||||||
	esac
 | 
					 | 
				
			||||||
	[ -n "$sae_require_mfp" ] && append bss_conf "sae_require_mfp=$sae_require_mfp" "$N"
 | 
					 | 
				
			||||||
	[ -n "$sae_pwe" ] && append bss_conf "sae_pwe=$sae_pwe" "$N"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	local vlan_possible=""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	case "$auth_type" in
 | 
					 | 
				
			||||||
		none|owe)
 | 
					 | 
				
			||||||
			json_get_vars owe_transition_bssid owe_transition_ssid owe_transition_ifname
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			[ -n "$owe_transition_ssid" ] && append bss_conf "owe_transition_ssid=\"$owe_transition_ssid\"" "$N"
 | 
					 | 
				
			||||||
			[ -n "$owe_transition_bssid" ] && append bss_conf "owe_transition_bssid=$owe_transition_bssid" "$N"
 | 
					 | 
				
			||||||
			[ -n "$owe_transition_ifname" ] && append bss_conf "owe_transition_ifname=$owe_transition_ifname" "$N"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			wps_possible=1
 | 
					 | 
				
			||||||
			# Here we make the assumption that if we're in open mode
 | 
					 | 
				
			||||||
			# with WPS enabled, we got to be in unconfigured state.
 | 
					 | 
				
			||||||
			wps_not_configured=1
 | 
					 | 
				
			||||||
		;;
 | 
					 | 
				
			||||||
		psk|sae|psk-sae)
 | 
					 | 
				
			||||||
			json_get_vars key wpa_psk_file
 | 
					 | 
				
			||||||
			if [ "$ppsk" -ne 0 ]; then
 | 
					 | 
				
			||||||
				json_get_vars auth_secret auth_port
 | 
					 | 
				
			||||||
				set_default auth_port 1812
 | 
					 | 
				
			||||||
				json_for_each_item append_auth_server auth_server
 | 
					 | 
				
			||||||
				append bss_conf "macaddr_acl=2" "$N"
 | 
					 | 
				
			||||||
				append bss_conf "wpa_psk_radius=2" "$N"
 | 
					 | 
				
			||||||
			elif [ ${#key} -eq 64 ]; then
 | 
					 | 
				
			||||||
				append bss_conf "wpa_psk=$key" "$N"
 | 
					 | 
				
			||||||
			elif [ ${#key} -ge 8 ] && [ ${#key} -le 63 ]; then
 | 
					 | 
				
			||||||
				append bss_conf "wpa_passphrase=$key" "$N"
 | 
					 | 
				
			||||||
			elif [ -n "$key" ] || [ -z "$wpa_psk_file" ]; then
 | 
					 | 
				
			||||||
				wireless_setup_vif_failed INVALID_WPA_PSK
 | 
					 | 
				
			||||||
				return 1
 | 
					 | 
				
			||||||
			fi
 | 
					 | 
				
			||||||
			[ -z "$wpa_psk_file" ] && set_default wpa_psk_file /var/run/hostapd-$ifname.psk
 | 
					 | 
				
			||||||
			[ -n "$wpa_psk_file" ] && {
 | 
					 | 
				
			||||||
				[ -e "$wpa_psk_file" ] || touch "$wpa_psk_file"
 | 
					 | 
				
			||||||
				append bss_conf "wpa_psk_file=$wpa_psk_file" "$N"
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			[ "$eapol_version" -ge "1" -a "$eapol_version" -le "2" ] && append bss_conf "eapol_version=$eapol_version" "$N"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			set_default dynamic_vlan 0
 | 
					 | 
				
			||||||
			vlan_possible=1
 | 
					 | 
				
			||||||
			wps_possible=1
 | 
					 | 
				
			||||||
		;;
 | 
					 | 
				
			||||||
		eap|eap2|eap-eap2|eap192)
 | 
					 | 
				
			||||||
	json_get_vars \
 | 
						json_get_vars \
 | 
				
			||||||
		auth_server auth_secret auth_port \
 | 
							auth_server auth_secret auth_port \
 | 
				
			||||||
 | 
							auth_server_secondary auth_secret_secondary auth_port_secondary \
 | 
				
			||||||
		dae_client dae_secret dae_port \
 | 
							dae_client dae_secret dae_port \
 | 
				
			||||||
		dynamic_ownip ownip radius_client_addr \
 | 
							dynamic_ownip ownip radius_client_addr \
 | 
				
			||||||
		eap_reauth_period request_cui \
 | 
							eap_reauth_period request_cui \
 | 
				
			||||||
		erp_domain mobility_domain \
 | 
							erp_domain mobility_domain \
 | 
				
			||||||
		fils_realm fils_dhcp
 | 
							fils_realm fils_dhcp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			# radius can provide VLAN ID for clients
 | 
					 | 
				
			||||||
			vlan_possible=1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	set_default dynamic_ownip 1
 | 
						set_default dynamic_ownip 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	# legacy compatibility
 | 
						# legacy compatibility
 | 
				
			||||||
@@ -762,10 +619,23 @@ hostapd_set_bss_options() {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	set_default auth_port 1812
 | 
						set_default auth_port 1812
 | 
				
			||||||
 | 
						set_default auth_port_secondary 1812
 | 
				
			||||||
	set_default dae_port 3799
 | 
						set_default dae_port 3799
 | 
				
			||||||
	set_default request_cui 0
 | 
						set_default request_cui 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			[ "$eap_server" -eq 0 ] && json_for_each_item append_auth_server auth_server
 | 
						[ "$eap_server" -eq 0  -a -n "$auth_server" ] && {
 | 
				
			||||||
 | 
							append bss_conf "auth_server_addr=$auth_server" "$N"
 | 
				
			||||||
 | 
							append bss_conf "auth_server_port=$auth_port" "$N"
 | 
				
			||||||
 | 
							append bss_conf "auth_server_shared_secret=$auth_secret" "$N"
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						[ -n "$auth_server_secondary" ] && {
 | 
				
			||||||
 | 
							append bss_conf "auth_server_addr=$auth_server_secondary" "$N"
 | 
				
			||||||
 | 
							append bss_conf "auth_server_port=$auth_port_secondary" "$N"
 | 
				
			||||||
 | 
							[ -n "$auth_secret_secondary" ] && \
 | 
				
			||||||
 | 
								append bss_conf "auth_server_shared_secret=$auth_secret_secondary" "$N"
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	[ "$request_cui" -gt 0 ] && append bss_conf "radius_request_cui=$request_cui" "$N"
 | 
						[ "$request_cui" -gt 0 ] && append bss_conf "radius_request_cui=$request_cui" "$N"
 | 
				
			||||||
	[ -n "$eap_reauth_period" ] && append bss_conf "eap_reauth_period=$eap_reauth_period" "$N"
 | 
						[ -n "$eap_reauth_period" ] && append bss_conf "eap_reauth_period=$eap_reauth_period" "$N"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -782,6 +652,187 @@ hostapd_set_bss_options() {
 | 
				
			|||||||
	fi
 | 
						fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	[ -n "$radius_client_addr" ] && append bss_conf "radius_client_addr=$radius_client_addr" "$N"
 | 
						[ -n "$radius_client_addr" ] && append bss_conf "radius_client_addr=$radius_client_addr" "$N"
 | 
				
			||||||
 | 
						[ "$macfilter" = radius ] && append bss_conf "macaddr_acl=2" "$N"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					hostapd_set_bss_options() {
 | 
				
			||||||
 | 
						local var="$1"
 | 
				
			||||||
 | 
						local phy="$2"
 | 
				
			||||||
 | 
						local vif="$3"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						wireless_vif_parse_encryption
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						local bss_conf bss_md5sum
 | 
				
			||||||
 | 
						local wep_rekey wpa_group_rekey wpa_pair_rekey wpa_master_rekey wpa_key_mgmt
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						json_get_vars \
 | 
				
			||||||
 | 
							wep_rekey wpa_group_rekey wpa_pair_rekey wpa_master_rekey wpa_strict_rekey \
 | 
				
			||||||
 | 
							wpa_disable_eapol_key_retries tdls_prohibit \
 | 
				
			||||||
 | 
							maxassoc max_inactivity disassoc_low_ack isolate auth_cache \
 | 
				
			||||||
 | 
							wps_pushbutton wps_label ext_registrar wps_pbc_in_m1 wps_ap_setup_locked \
 | 
				
			||||||
 | 
							wps_independent wps_device_type wps_device_name wps_manufacturer wps_pin \
 | 
				
			||||||
 | 
							macfilter ssid utf8_ssid wmm uapsd hidden short_preamble rsn_preauth \
 | 
				
			||||||
 | 
							iapp_interface eapol_version dynamic_vlan ieee80211w nasid \
 | 
				
			||||||
 | 
							acct_server acct_secret acct_port acct_interval \
 | 
				
			||||||
 | 
							acct_server_secondary acct_secret_secondary acct_port_secondary \
 | 
				
			||||||
 | 
							bss_load_update_period chan_util_avg_period sae_require_mfp sae_pwe \
 | 
				
			||||||
 | 
							multi_ap multi_ap_backhaul_ssid multi_ap_backhaul_key skip_inactivity_poll \
 | 
				
			||||||
 | 
							ppsk airtime_bss_weight airtime_bss_limit airtime_sta_weight \
 | 
				
			||||||
 | 
							multicast_to_unicast_all proxy_arp per_sta_vif \
 | 
				
			||||||
 | 
							eap_server eap_user_file ca_cert server_cert private_key private_key_passwd server_id radius_server_clients radius_server_auth_port \
 | 
				
			||||||
 | 
							vendor_elements fils ocv apup uci_section dynamic_probe_resp multi_psk
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						set_default fils 0
 | 
				
			||||||
 | 
						set_default isolate 0
 | 
				
			||||||
 | 
						set_default maxassoc 0
 | 
				
			||||||
 | 
						set_default max_inactivity 0
 | 
				
			||||||
 | 
						set_default short_preamble 1
 | 
				
			||||||
 | 
						set_default disassoc_low_ack 1
 | 
				
			||||||
 | 
						set_default skip_inactivity_poll 0
 | 
				
			||||||
 | 
						set_default hidden 0
 | 
				
			||||||
 | 
						set_default wmm 1
 | 
				
			||||||
 | 
						set_default uapsd 1
 | 
				
			||||||
 | 
						set_default wpa_disable_eapol_key_retries 0
 | 
				
			||||||
 | 
						set_default multi_psk $multi_psk
 | 
				
			||||||
 | 
						set_default tdls_prohibit 0
 | 
				
			||||||
 | 
						set_default eapol_version $((wpa & 1))
 | 
				
			||||||
 | 
						set_default acct_port 1813
 | 
				
			||||||
 | 
						set_default acct_port_secondary 1813
 | 
				
			||||||
 | 
						set_default bss_load_update_period 60
 | 
				
			||||||
 | 
						set_default chan_util_avg_period 600
 | 
				
			||||||
 | 
						set_default utf8_ssid 1
 | 
				
			||||||
 | 
						set_default multi_ap 0
 | 
				
			||||||
 | 
						set_default ppsk 0
 | 
				
			||||||
 | 
						set_default airtime_bss_weight 0
 | 
				
			||||||
 | 
						set_default airtime_bss_limit 0
 | 
				
			||||||
 | 
						set_default eap_server 0
 | 
				
			||||||
 | 
						set_default dynamic_probe_resp 0
 | 
				
			||||||
 | 
						set_default apup 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/usr/sbin/hostapd -vfils || fils=0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						append bss_conf "ctrl_interface=/var/run/hostapd"
 | 
				
			||||||
 | 
						if [ "$isolate" -gt 0 ]; then
 | 
				
			||||||
 | 
							append bss_conf "ap_isolate=$isolate" "$N"
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
						if [ "$maxassoc" -gt 0 ]; then
 | 
				
			||||||
 | 
							append bss_conf "max_num_sta=$maxassoc" "$N"
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
						if [ "$max_inactivity" -gt 0 ]; then
 | 
				
			||||||
 | 
							append bss_conf "ap_max_inactivity=$max_inactivity" "$N"
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						[ "$airtime_bss_weight" -gt 0 ] && append bss_conf "airtime_bss_weight=$airtime_bss_weight" "$N"
 | 
				
			||||||
 | 
						[ "$airtime_bss_limit" -gt 0 ] && append bss_conf "airtime_bss_limit=$airtime_bss_limit" "$N"
 | 
				
			||||||
 | 
						json_for_each_item append_airtime_sta_weight airtime_sta_weight
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						append bss_conf "bss_load_update_period=$bss_load_update_period" "$N"
 | 
				
			||||||
 | 
						append bss_conf "chan_util_avg_period=$chan_util_avg_period" "$N"
 | 
				
			||||||
 | 
						append bss_conf "disassoc_low_ack=$disassoc_low_ack" "$N"
 | 
				
			||||||
 | 
						append bss_conf "skip_inactivity_poll=$skip_inactivity_poll" "$N"
 | 
				
			||||||
 | 
						append bss_conf "preamble=$short_preamble" "$N"
 | 
				
			||||||
 | 
						append bss_conf "wmm_enabled=$wmm" "$N"
 | 
				
			||||||
 | 
						append bss_conf "ignore_broadcast_ssid=$hidden" "$N"
 | 
				
			||||||
 | 
						append bss_conf "dynamic_probe_resp=$dynamic_probe_resp" "$N"
 | 
				
			||||||
 | 
						append bss_conf "uapsd_advertisement_enabled=$uapsd" "$N"
 | 
				
			||||||
 | 
						append bss_conf "utf8_ssid=$utf8_ssid" "$N"
 | 
				
			||||||
 | 
						append bss_conf "multi_ap=$multi_ap" "$N"
 | 
				
			||||||
 | 
						[ -n "$vendor_elements" ] && append bss_conf "vendor_elements=$vendor_elements" "$N"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						[ "$tdls_prohibit" -gt 0 ] && append bss_conf "tdls_prohibit=$tdls_prohibit" "$N"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						[ "$wpa" -gt 0 ] && {
 | 
				
			||||||
 | 
							[ -n "$wpa_group_rekey"  ] && append bss_conf "wpa_group_rekey=$wpa_group_rekey" "$N"
 | 
				
			||||||
 | 
							[ -n "$wpa_pair_rekey"   ] && append bss_conf "wpa_ptk_rekey=$wpa_pair_rekey"    "$N"
 | 
				
			||||||
 | 
							[ -n "$wpa_master_rekey" ] && append bss_conf "wpa_gmk_rekey=$wpa_master_rekey"  "$N"
 | 
				
			||||||
 | 
							[ -n "$wpa_strict_rekey" ] && append bss_conf "wpa_strict_rekey=$wpa_strict_rekey" "$N"
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						[ -n "$nasid" ] && append bss_conf "nas_identifier=$nasid" "$N"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						[ -n "$acct_server" ] && {
 | 
				
			||||||
 | 
							append bss_conf "acct_server_addr=$acct_server" "$N"
 | 
				
			||||||
 | 
							append bss_conf "acct_server_port=$acct_port" "$N"
 | 
				
			||||||
 | 
							[ -n "$acct_secret" ] && \
 | 
				
			||||||
 | 
								append bss_conf "acct_server_shared_secret=$acct_secret" "$N"
 | 
				
			||||||
 | 
							[ -n "$acct_interval" ] && \
 | 
				
			||||||
 | 
								append bss_conf "radius_acct_interim_interval=$acct_interval" "$N"
 | 
				
			||||||
 | 
							json_for_each_item append_radius_acct_req_attr radius_acct_req_attr
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						[ -n "$acct_server_secondary" ] && {
 | 
				
			||||||
 | 
							append bss_conf "acct_server_addr=$acct_server_secondary" "$N"
 | 
				
			||||||
 | 
							append bss_conf "acct_server_port=$acct_port_secondary" "$N"
 | 
				
			||||||
 | 
							[ -n "$acct_secret_secondary" ] && \
 | 
				
			||||||
 | 
								append bss_conf "acct_server_shared_secret=$acct_secret_secondary" "$N"
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						[ -n "$ocv" ] && append bss_conf "ocv=$ocv" "$N"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						case "$auth_type" in
 | 
				
			||||||
 | 
							sae|owe|eap2|eap192)
 | 
				
			||||||
 | 
								set_default ieee80211w 2
 | 
				
			||||||
 | 
								set_default sae_require_mfp 1
 | 
				
			||||||
 | 
								[ "$ppsk" -eq 0 ] && set_default sae_pwe 2
 | 
				
			||||||
 | 
							;;
 | 
				
			||||||
 | 
							psk-sae|psk2-radius|eap-eap2)
 | 
				
			||||||
 | 
								set_default ieee80211w 1
 | 
				
			||||||
 | 
								set_default sae_require_mfp 1
 | 
				
			||||||
 | 
								[ "$ppsk" -eq 0 ] && set_default sae_pwe 2
 | 
				
			||||||
 | 
							;;
 | 
				
			||||||
 | 
						esac
 | 
				
			||||||
 | 
						[ -n "$sae_require_mfp" ] && append bss_conf "sae_require_mfp=$sae_require_mfp" "$N"
 | 
				
			||||||
 | 
						[ -n "$sae_pwe" ] && append bss_conf "sae_pwe=$sae_pwe" "$N"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						local vlan_possible=""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						case "$auth_type" in
 | 
				
			||||||
 | 
							none|owe)
 | 
				
			||||||
 | 
								json_get_vars owe_transition_bssid owe_transition_ssid owe_transition_ifname
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								[ -n "$owe_transition_ssid" ] && append bss_conf "owe_transition_ssid=\"$owe_transition_ssid\"" "$N"
 | 
				
			||||||
 | 
								[ -n "$owe_transition_bssid" ] && append bss_conf "owe_transition_bssid=$owe_transition_bssid" "$N"
 | 
				
			||||||
 | 
								[ -n "$owe_transition_ifname" ] && append bss_conf "owe_transition_ifname=$owe_transition_ifname" "$N"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								wps_possible=1
 | 
				
			||||||
 | 
								# Here we make the assumption that if we're in open mode
 | 
				
			||||||
 | 
								# with WPS enabled, we got to be in unconfigured state.
 | 
				
			||||||
 | 
								wps_not_configured=1
 | 
				
			||||||
 | 
								vlan_possible=1
 | 
				
			||||||
 | 
								append_radius_server
 | 
				
			||||||
 | 
							;;
 | 
				
			||||||
 | 
							psk|sae|psk-sae)
 | 
				
			||||||
 | 
								json_get_vars key wpa_psk_file
 | 
				
			||||||
 | 
								if [ "$ppsk" -ne 0 ]; then
 | 
				
			||||||
 | 
									json_get_vars auth_secret auth_port
 | 
				
			||||||
 | 
									set_default auth_port 1812
 | 
				
			||||||
 | 
									json_for_each_item append_auth_server auth_server
 | 
				
			||||||
 | 
									append bss_conf "macaddr_acl=2" "$N"
 | 
				
			||||||
 | 
									append bss_conf "wpa_psk_radius=2" "$N"
 | 
				
			||||||
 | 
								elif [ ${#key} -eq 64 ]; then
 | 
				
			||||||
 | 
									append bss_conf "wpa_psk=$key" "$N"
 | 
				
			||||||
 | 
								elif [ ${#key} -ge 8 ] && [ ${#key} -le 63 ]; then
 | 
				
			||||||
 | 
									append bss_conf "wpa_passphrase=$key" "$N"
 | 
				
			||||||
 | 
								elif [ -n "$key" ] || [ -z "$wpa_psk_file" ]; then
 | 
				
			||||||
 | 
									wireless_setup_vif_failed INVALID_WPA_PSK
 | 
				
			||||||
 | 
									return 1
 | 
				
			||||||
 | 
								fi
 | 
				
			||||||
 | 
								[ -z "$wpa_psk_file" ] && set_default wpa_psk_file /var/run/hostapd-$ifname.psk
 | 
				
			||||||
 | 
								[ -n "$wpa_psk_file" ] && {
 | 
				
			||||||
 | 
									[ -e "$wpa_psk_file" ] || touch "$wpa_psk_file"
 | 
				
			||||||
 | 
									append bss_conf "wpa_psk_file=$wpa_psk_file" "$N"
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								[ "$eapol_version" -ge "1" -a "$eapol_version" -le "2" ] && append bss_conf "eapol_version=$eapol_version" "$N"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								append_radius_server
 | 
				
			||||||
 | 
								set_default dynamic_vlan 0
 | 
				
			||||||
 | 
								vlan_possible=1
 | 
				
			||||||
 | 
								wps_possible=1
 | 
				
			||||||
 | 
							;;
 | 
				
			||||||
 | 
							eap|eap192|eap-eap2|eap2)
 | 
				
			||||||
 | 
								append_radius_server
 | 
				
			||||||
 | 
								# radius can provide VLAN ID for clients
 | 
				
			||||||
 | 
								vlan_possible=1
 | 
				
			||||||
			append bss_conf "eapol_key_index_workaround=1" "$N"
 | 
								append bss_conf "eapol_key_index_workaround=1" "$N"
 | 
				
			||||||
			append bss_conf "ieee8021x=1" "$N"
 | 
								append bss_conf "ieee8021x=1" "$N"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -798,6 +849,7 @@ hostapd_set_bss_options() {
 | 
				
			|||||||
			append bss_conf "wpa_psk_radius=3" "$N"
 | 
								append bss_conf "wpa_psk_radius=3" "$N"
 | 
				
			||||||
			append_radius_server
 | 
								append_radius_server
 | 
				
			||||||
			vlan_possible=1
 | 
								vlan_possible=1
 | 
				
			||||||
 | 
							;;
 | 
				
			||||||
	esac
 | 
						esac
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	case "$auth_type" in
 | 
						case "$auth_type" in
 | 
				
			||||||
@@ -921,45 +973,42 @@ hostapd_set_bss_options() {
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
	fi
 | 
						fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if [ "$wpa" -ge "1" ]; then
 | 
				
			||||||
		json_get_vars ieee80211r
 | 
							json_get_vars ieee80211r
 | 
				
			||||||
		set_default ieee80211r 0
 | 
							set_default ieee80211r 0
 | 
				
			||||||
	if [ "$wpa" -ge "1" ]; then
 | 
					 | 
				
			||||||
		if [ "$fils" -gt 0 ]; then
 | 
					 | 
				
			||||||
			json_get_vars fils_realm
 | 
					 | 
				
			||||||
			set_default fils_realm "$(echo "$ssid" | md5sum | head -c 8)"
 | 
					 | 
				
			||||||
		fi
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		append bss_conf "wpa_disable_eapol_key_retries=$wpa_disable_eapol_key_retries" "$N"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		hostapd_append_wpa_key_mgmt
 | 
					 | 
				
			||||||
		[ -n "$wpa_key_mgmt" ] && append bss_conf "wpa_key_mgmt=$wpa_key_mgmt" "$N"
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if [ "$wpa" -ge "2" ]; then
 | 
					 | 
				
			||||||
		if [ "$ieee80211r" -gt "0" ]; then
 | 
							if [ "$ieee80211r" -gt "0" ]; then
 | 
				
			||||||
			json_get_vars mobility_domain ft_psk_generate_local ft_over_ds reassociation_deadline
 | 
								json_get_vars mobility_domain ft_psk_generate_local ft_over_ds reassociation_deadline ft_l2_refresh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			set_default mobility_domain "$(echo "$ssid" | md5sum | head -c 4)"
 | 
								set_default mobility_domain "$(echo "$ssid" | md5sum | head -c 4)"
 | 
				
			||||||
			set_default ft_over_ds 0
 | 
								set_default ft_over_ds 1
 | 
				
			||||||
 | 
								set_default ft_l2_refresh 30
 | 
				
			||||||
			set_default reassociation_deadline 1000
 | 
								set_default reassociation_deadline 1000
 | 
				
			||||||
 | 
								skip_kh_setup=0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			case "$auth_type" in
 | 
								case "$auth_type" in
 | 
				
			||||||
				psk)
 | 
									psk|psk-sae)
 | 
				
			||||||
					set_default ft_psk_generate_local 1
 | 
										set_default ft_psk_generate_local 1
 | 
				
			||||||
 | 
										skip_kh_setup="$ft_psk_generate_local"
 | 
				
			||||||
				;;
 | 
									;;
 | 
				
			||||||
				*)
 | 
									*)
 | 
				
			||||||
					set_default ft_psk_generate_local 0
 | 
										set_default ft_psk_generate_local 0
 | 
				
			||||||
				;;
 | 
									;;
 | 
				
			||||||
			esac
 | 
								esac
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								case "$auth_type" in
 | 
				
			||||||
 | 
									*sae*) skip_kh_setup=0;;
 | 
				
			||||||
 | 
								esac
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			[ -n "$network_ifname" ] && append bss_conf "ft_iface=$network_ifname" "$N"
 | 
								[ -n "$network_ifname" ] && append bss_conf "ft_iface=$network_ifname" "$N"
 | 
				
			||||||
			append bss_conf "mobility_domain=$mobility_domain" "$N"
 | 
								append bss_conf "mobility_domain=$mobility_domain" "$N"
 | 
				
			||||||
			append bss_conf "ft_psk_generate_local=$ft_psk_generate_local" "$N"
 | 
								append bss_conf "ft_psk_generate_local=$ft_psk_generate_local" "$N"
 | 
				
			||||||
			append bss_conf "ft_over_ds=$ft_over_ds" "$N"
 | 
								append bss_conf "ft_over_ds=$ft_over_ds" "$N"
 | 
				
			||||||
			append bss_conf "reassociation_deadline=$reassociation_deadline" "$N"
 | 
								append bss_conf "reassociation_deadline=$reassociation_deadline" "$N"
 | 
				
			||||||
 | 
								[ -n "$ft_l2_refresh" ] && append bss_conf "ft_l2_refresh=$ft_l2_refresh" "$N"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if [ "$ft_psk_generate_local" -eq "0" ]; then
 | 
								if [ "$skip_kh_setup" -eq "0" ]; then
 | 
				
			||||||
				json_get_vars r0_key_lifetime r1_key_holder pmk_r1_push
 | 
									json_get_vars r0_key_lifetime r1_key_holder pmk_r1_push ft_key
 | 
				
			||||||
				json_get_values r0kh r0kh
 | 
									json_get_values r0kh r0kh
 | 
				
			||||||
				json_get_values r1kh r1kh
 | 
									json_get_values r1kh r1kh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -971,12 +1020,15 @@ hostapd_set_bss_options() {
 | 
				
			|||||||
						wireless_setup_vif_failed FT_KEY_CANT_BE_DERIVED
 | 
											wireless_setup_vif_failed FT_KEY_CANT_BE_DERIVED
 | 
				
			||||||
						return 1
 | 
											return 1
 | 
				
			||||||
					fi
 | 
										fi
 | 
				
			||||||
					ft_key=`echo -n "$mobility_domain/${auth_secret:-${key}}" | md5sum | awk '{print $1}'`
 | 
										[ -z "$ft_key" ] && {
 | 
				
			||||||
 | 
											key=`echo -n "$mobility_domain/$auth_secret" | md5sum | awk '{print $1}'`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
					set_default r0kh "ff:ff:ff:ff:ff:ff,*,$ft_key"
 | 
											set_default r0kh "ff:ff:ff:ff:ff:ff,*,$key"
 | 
				
			||||||
					set_default r1kh "00:00:00:00:00:00,00:00:00:00:00:00,$ft_key"
 | 
											set_default r1kh "00:00:00:00:00:00,00:00:00:00:00:00,$key"
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									[ -n "$ft_key" ] && append bss_conf "ft_key=$ft_key" "$N"
 | 
				
			||||||
				[ -n "$r1_key_holder" ] && append bss_conf "r1_key_holder=$r1_key_holder" "$N"
 | 
									[ -n "$r1_key_holder" ] && append bss_conf "r1_key_holder=$r1_key_holder" "$N"
 | 
				
			||||||
				append bss_conf "r0_key_lifetime=$r0_key_lifetime" "$N"
 | 
									append bss_conf "r0_key_lifetime=$r0_key_lifetime" "$N"
 | 
				
			||||||
				append bss_conf "pmk_r1_push=$pmk_r1_push" "$N"
 | 
									append bss_conf "pmk_r1_push=$pmk_r1_push" "$N"
 | 
				
			||||||
@@ -989,7 +1041,18 @@ hostapd_set_bss_options() {
 | 
				
			|||||||
				done
 | 
									done
 | 
				
			||||||
			fi
 | 
								fi
 | 
				
			||||||
		fi
 | 
							fi
 | 
				
			||||||
 | 
							if [ "$fils" -gt 0 ]; then
 | 
				
			||||||
 | 
								json_get_vars fils_realm
 | 
				
			||||||
 | 
								set_default fils_realm "$(echo "$ssid" | md5sum | head -c 8)"
 | 
				
			||||||
 | 
							fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							append bss_conf "wpa_disable_eapol_key_retries=$wpa_disable_eapol_key_retries" "$N"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							hostapd_append_wpa_key_mgmt
 | 
				
			||||||
 | 
							[ -n "$wpa_key_mgmt" ] && append bss_conf "wpa_key_mgmt=$wpa_key_mgmt" "$N"
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if [ "$wpa" -ge "2" ]; then
 | 
				
			||||||
		if [ -n "$network_bridge" -a "$rsn_preauth" = 1 ]; then
 | 
							if [ -n "$network_bridge" -a "$rsn_preauth" = 1 ]; then
 | 
				
			||||||
			set_default auth_cache 1
 | 
								set_default auth_cache 1
 | 
				
			||||||
			append bss_conf "rsn_preauth=1" "$N"
 | 
								append bss_conf "rsn_preauth=1" "$N"
 | 
				
			||||||
@@ -1189,6 +1252,8 @@ hostapd_set_bss_options() {
 | 
				
			|||||||
		append bss_conf "per_sta_vif=$per_sta_vif" "$N"
 | 
							append bss_conf "per_sta_vif=$per_sta_vif" "$N"
 | 
				
			||||||
	fi
 | 
						fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						[ -n "$uci_section" ] && append bss_conf "uci_section=$uci_section" "$N"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if [ "$apup" -gt 0 ]; then
 | 
						if [ "$apup" -gt 0 ]; then
 | 
				
			||||||
		append bss_conf "apup=$apup" "$N"
 | 
							append bss_conf "apup=$apup" "$N"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,14 +7,14 @@ board_config_update
 | 
				
			|||||||
board=$(board_name)
 | 
					board=$(board_name)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
case "$board" in
 | 
					case "$board" in
 | 
				
			||||||
 | 
					sercomm,ap72tip-v4|\
 | 
				
			||||||
sercomm,ap72tip)
 | 
					sercomm,ap72tip)
 | 
				
			||||||
 | 
						ucidef_set_led_default "power" "POWER" "blue:status" "on"
 | 
				
			||||||
	ucidef_set_led_netdev "wan_link" "wan_link" "green:phy" "eth0" "link"
 | 
						ucidef_set_led_netdev "wan_link" "wan_link" "green:phy" "eth0" "link"
 | 
				
			||||||
	ucidef_set_led_netdev "wan_act" "wan_act" "yellow:phy" "eth0" "rx tx"
 | 
						ucidef_set_led_netdev "wan_act" "wan_act" "yellow:phy" "eth0" "rx tx"
 | 
				
			||||||
	;;
 | 
						;;
 | 
				
			||||||
sonicfi,rap7110c-341x)
 | 
					sonicfi,rap7110c-341x|\
 | 
				
			||||||
	ucidef_set_led_default "power" "POWER" "pwm:blue" "on"
 | 
					sonicfi,rap750w-311a)
 | 
				
			||||||
	;;
 | 
					 | 
				
			||||||
cig,wf189w)
 | 
					 | 
				
			||||||
	ucidef_set_led_default "power" "POWER" "pwm:blue" "on"
 | 
						ucidef_set_led_default "power" "POWER" "pwm:blue" "on"
 | 
				
			||||||
	;;
 | 
						;;
 | 
				
			||||||
esac
 | 
					esac
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,7 +22,15 @@ ipq53xx_setup_interfaces()
 | 
				
			|||||||
		ucidef_set_interfaces_lan_wan "" "eth0"
 | 
							ucidef_set_interfaces_lan_wan "" "eth0"
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
	cig,wf189w)
 | 
						cig,wf189w)
 | 
				
			||||||
		ucidef_add_switch "switch1" "5u@eth0" "3:lan" "2:lan" "1:lan" "0u@eth1" "4:wan"
 | 
							ucidef_set_interfaces_lan_wan "eth1" "eth0"
 | 
				
			||||||
 | 
							ucidef_add_switch "switch1" "0u@eth1" "3:lan" "2:lan" "1:lan"
 | 
				
			||||||
 | 
							;;
 | 
				
			||||||
 | 
						cig,wf189h)
 | 
				
			||||||
 | 
							ucidef_set_interfaces_lan_wan "eth1" "eth0"
 | 
				
			||||||
 | 
							ucidef_add_switch "switch1" "0u@eth1" "3:lan" "2:lan"
 | 
				
			||||||
 | 
							;;
 | 
				
			||||||
 | 
						sercomm,ap72tip-v4)
 | 
				
			||||||
 | 
							ucidef_set_interface_wan "eth0"
 | 
				
			||||||
		;;	
 | 
							;;	
 | 
				
			||||||
	esac
 | 
						esac
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -32,6 +40,7 @@ qcom_setup_macs()
 | 
				
			|||||||
        local board="$1"
 | 
					        local board="$1"
 | 
				
			||||||
        case $board in
 | 
					        case $board in
 | 
				
			||||||
	cig,wf189w|\
 | 
						cig,wf189w|\
 | 
				
			||||||
 | 
						cig,wf189h|\
 | 
				
			||||||
        cig,wf189)
 | 
					        cig,wf189)
 | 
				
			||||||
		mtd=$(find_mtd_chardev "0:APPSBLENV")
 | 
							mtd=$(find_mtd_chardev "0:APPSBLENV")
 | 
				
			||||||
		[ -z "$mtd" ] && return;
 | 
							[ -z "$mtd" ] && return;
 | 
				
			||||||
@@ -46,12 +55,30 @@ qcom_setup_macs()
 | 
				
			|||||||
		ucidef_set_wireless_macaddr_base 5g $(macaddr_add "$wan_mac" 3)
 | 
							ucidef_set_wireless_macaddr_base 5g $(macaddr_add "$wan_mac" 3)
 | 
				
			||||||
		ucidef_set_wireless_macaddr_base 6g $(macaddr_add "$wan_mac" 4)
 | 
							ucidef_set_wireless_macaddr_base 6g $(macaddr_add "$wan_mac" 4)
 | 
				
			||||||
                ;;
 | 
					                ;;
 | 
				
			||||||
 | 
					        sercomm,ap72tip)
 | 
				
			||||||
 | 
					                wan_mac=$(cat /sys/class/net/eth0/address)
 | 
				
			||||||
 | 
					                lan_mac=$(cat /sys/class/net/eth1/address)
 | 
				
			||||||
 | 
					                ucidef_set_wireless_macaddr_base 2g $(macaddr_add "$wan_mac" 2)
 | 
				
			||||||
 | 
					                ucidef_set_wireless_macaddr_base 5g $(macaddr_add "$wan_mac" 3)
 | 
				
			||||||
 | 
					                ucidef_set_wireless_macaddr_base 6g $(macaddr_add "$wan_mac" 4)
 | 
				
			||||||
 | 
					                ;;
 | 
				
			||||||
        edgecore,eap105)
 | 
					        edgecore,eap105)
 | 
				
			||||||
                wan_mac=$(cat /sys/class/net/eth0/address)
 | 
					                wan_mac=$(cat /sys/class/net/eth0/address)
 | 
				
			||||||
                lan_mac=$(macaddr_add "$wan_mac" 1)
 | 
					                lan_mac=$(macaddr_add "$wan_mac" 1)
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
        sonicfi,rap7110c-341x|\
 | 
					        sonicfi,rap7110c-341x)
 | 
				
			||||||
 | 
					                wan_mac=$(cat /sys/class/net/eth0/address)
 | 
				
			||||||
 | 
					                ucidef_set_wireless_macaddr_base 2g $(macaddr_add "$wan_mac" 1)
 | 
				
			||||||
 | 
					                ucidef_set_wireless_macaddr_base 5g $(macaddr_add "$wan_mac" 2)
 | 
				
			||||||
 | 
					                ucidef_set_wireless_macaddr_base 6g $(macaddr_add "$wan_mac" 3)
 | 
				
			||||||
 | 
					                ;;
 | 
				
			||||||
        sonicfi,rap750w-311a)
 | 
					        sonicfi,rap750w-311a)
 | 
				
			||||||
 | 
					                wan_mac=$(cat /sys/class/net/eth0/address)
 | 
				
			||||||
 | 
					                lan_mac=$(macaddr_add "$wan_mac" 1)
 | 
				
			||||||
 | 
					                ucidef_set_wireless_macaddr_base 2g $(macaddr_add "$wan_mac" 2)
 | 
				
			||||||
 | 
					                ucidef_set_wireless_macaddr_base 5g $(macaddr_add "$wan_mac" 3)
 | 
				
			||||||
 | 
					                ;;
 | 
				
			||||||
 | 
					        sercomm,ap72tip-v4)
 | 
				
			||||||
                wan_mac=$(cat /sys/class/net/eth0/address)
 | 
					                wan_mac=$(cat /sys/class/net/eth0/address)
 | 
				
			||||||
                ucidef_set_wireless_macaddr_base 2g $(macaddr_add "$wan_mac" 1)
 | 
					                ucidef_set_wireless_macaddr_base 2g $(macaddr_add "$wan_mac" 1)
 | 
				
			||||||
                ucidef_set_wireless_macaddr_base 5g $(macaddr_add "$wan_mac" 2)
 | 
					                ucidef_set_wireless_macaddr_base 5g $(macaddr_add "$wan_mac" 2)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,8 +28,10 @@ case "$FIRMWARE" in
 | 
				
			|||||||
ath12k/IPQ5332/hw1.0/caldata.bin)
 | 
					ath12k/IPQ5332/hw1.0/caldata.bin)
 | 
				
			||||||
	case "$board" in
 | 
						case "$board" in
 | 
				
			||||||
	cig,wf189w|\
 | 
						cig,wf189w|\
 | 
				
			||||||
 | 
						cig,wf189h|\
 | 
				
			||||||
	cig,wf189|\
 | 
						cig,wf189|\
 | 
				
			||||||
	edgecore,eap105|\
 | 
						edgecore,eap105|\
 | 
				
			||||||
 | 
						sercomm,ap72tip-v4|\
 | 
				
			||||||
	sercomm,ap72tip)
 | 
						sercomm,ap72tip)
 | 
				
			||||||
		caldata_extract "0:ART" 0x1000 0x20000 
 | 
							caldata_extract "0:ART" 0x1000 0x20000 
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
@@ -45,6 +47,7 @@ ath12k/QCN92XX/hw1.0/cal-pci-0001:01:00.0.bin)
 | 
				
			|||||||
	case "$board" in
 | 
						case "$board" in
 | 
				
			||||||
	cig,wf189|\
 | 
						cig,wf189|\
 | 
				
			||||||
	edgecore,eap105|\
 | 
						edgecore,eap105|\
 | 
				
			||||||
 | 
						sercomm,ap72tip-v4|\
 | 
				
			||||||
	sercomm,ap72tip)
 | 
						sercomm,ap72tip)
 | 
				
			||||||
		caldata_extract "0:ART" 0x58800 0x2d000
 | 
							caldata_extract "0:ART" 0x58800 0x2d000
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
@@ -56,12 +59,13 @@ ath12k/QCN92XX/hw1.0/cal-pci-0001:01:00.0.bin)
 | 
				
			|||||||
ath12k/QCN6432/hw1.0/caldata_1.bin)
 | 
					ath12k/QCN6432/hw1.0/caldata_1.bin)
 | 
				
			||||||
	case "$board" in
 | 
						case "$board" in
 | 
				
			||||||
	sonicfi,rap750w-311a)
 | 
						sonicfi,rap750w-311a)
 | 
				
			||||||
		caldata_extract "0:ART" 0x26800 0x18800
 | 
							caldata_extract "0:ART" 0x12800 0x18800
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
	esac
 | 
						esac
 | 
				
			||||||
	;;
 | 
						;;
 | 
				
			||||||
ath12k/QCN6432/hw1.0/cal-ahb-soc@0:wifi1@c0000000.bin)
 | 
					ath12k/QCN6432/hw1.0/cal-ahb-soc@0:wifi1@c0000000.bin)
 | 
				
			||||||
	case "$board" in
 | 
						case "$board" in
 | 
				
			||||||
 | 
						cig,wf189h|\
 | 
				
			||||||
	cig,wf189w)
 | 
						cig,wf189w)
 | 
				
			||||||
		caldata_extract "0:ART" 0x26800 0x20000
 | 
							caldata_extract "0:ART" 0x26800 0x20000
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
@@ -69,6 +73,7 @@ ath12k/QCN6432/hw1.0/cal-ahb-soc@0:wifi1@c0000000.bin)
 | 
				
			|||||||
	;;
 | 
						;;
 | 
				
			||||||
ath12k/QCN6432/hw1.0/cal-ahb-soc@0:wifi2@c0000000.bin)
 | 
					ath12k/QCN6432/hw1.0/cal-ahb-soc@0:wifi2@c0000000.bin)
 | 
				
			||||||
	case "$board" in
 | 
						case "$board" in
 | 
				
			||||||
 | 
						cig,wf189h|\
 | 
				
			||||||
	cig,wf189w)
 | 
						cig,wf189w)
 | 
				
			||||||
		caldata_extract "0:ART" 0x58800 0x20000
 | 
							caldata_extract "0:ART" 0x58800 0x20000
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										77
									
								
								feeds/qca-wifi-7/ipq53xx/base-files/etc/init.d/smp-affinity
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										77
									
								
								feeds/qca-wifi-7/ipq53xx/base-files/etc/init.d/smp-affinity
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,77 @@
 | 
				
			|||||||
 | 
					#!/bin/sh /etc/rc.common
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					START=99
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					boot() {
 | 
				
			||||||
 | 
						# For CE(assigned 2 core to copy engine)
 | 
				
			||||||
 | 
						# using 3 core will cause firmware crash due to bss channel survey timed out
 | 
				
			||||||
 | 
						i=0
 | 
				
			||||||
 | 
						cpu_mul=2
 | 
				
			||||||
 | 
						ce="ce"
 | 
				
			||||||
 | 
						ce1="ce_"
 | 
				
			||||||
 | 
						ce_name="$ce$i"
 | 
				
			||||||
 | 
						ce_name1="$ce1$i"
 | 
				
			||||||
 | 
						while [ $i -lt 15 ]
 | 
				
			||||||
 | 
						do
 | 
				
			||||||
 | 
							cpu=1
 | 
				
			||||||
 | 
							for irq_num in `grep -e "$ce_name" -e "$ce_name1" /proc/interrupts | cut -d ':' -f 1`
 | 
				
			||||||
 | 
							do
 | 
				
			||||||
 | 
								[ -n "$irq_num" ] && echo $cpu > /proc/irq/$irq_num/smp_affinity
 | 
				
			||||||
 | 
								cpu=$((cpu * cpu_mul))
 | 
				
			||||||
 | 
								if [ $cpu -gt 4 ] ; then cpu=1; fi
 | 
				
			||||||
 | 
							done
 | 
				
			||||||
 | 
						i=$((i+1))
 | 
				
			||||||
 | 
						ce_name="$ce$i"
 | 
				
			||||||
 | 
						ce_name1="$ce1$i"
 | 
				
			||||||
 | 
						done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						#For IPQ5332 2G radio
 | 
				
			||||||
 | 
						irq_affinity_num=`grep -E -m1 'reo2host-destination-ring4' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '`
 | 
				
			||||||
 | 
						[ -n "$irq_affinity_num" ] && echo 8 > /proc/irq/$irq_affinity_num/smp_affinity
 | 
				
			||||||
 | 
						irq_affinity_num=`grep -E -m1 'reo2host-destination-ring3' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '`
 | 
				
			||||||
 | 
						[ -n "$irq_affinity_num" ] && echo 4 > /proc/irq/$irq_affinity_num/smp_affinity
 | 
				
			||||||
 | 
						irq_affinity_num=`grep -E -m1 'reo2host-destination-ring2' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '`
 | 
				
			||||||
 | 
						[ -n "$irq_affinity_num" ] && echo 2 > /proc/irq/$irq_affinity_num/smp_affinity
 | 
				
			||||||
 | 
						irq_affinity_num=`grep -E -m1 'reo2host-destination-ring1' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '`
 | 
				
			||||||
 | 
						[ -n "$irq_affinity_num" ] && echo 1 > /proc/irq/$irq_affinity_num/smp_affinity
 | 
				
			||||||
 | 
						irq_affinity_num=`grep -E -m1 'wbm2host-tx-completions-ring4' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '`
 | 
				
			||||||
 | 
						[ -n "$irq_affinity_num" ] && echo 8 > /proc/irq/$irq_affinity_num/smp_affinity
 | 
				
			||||||
 | 
						irq_affinity_num=`grep -E -m1 'wbm2host-tx-completions-ring3' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '`
 | 
				
			||||||
 | 
						[ -n "$irq_affinity_num" ] && echo 4 > /proc/irq/$irq_affinity_num/smp_affinity
 | 
				
			||||||
 | 
						irq_affinity_num=`grep -E -m1 'wbm2host-tx-completions-ring2' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '`
 | 
				
			||||||
 | 
						[ -n "$irq_affinity_num" ] && echo 2 > /proc/irq/$irq_affinity_num/smp_affinity
 | 
				
			||||||
 | 
						irq_affinity_num=`grep -E -m1 'wbm2host-tx-completions-ring1' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '`
 | 
				
			||||||
 | 
						[ -n "$irq_affinity_num" ] && echo 1 > /proc/irq/$irq_affinity_num/smp_affinity
 | 
				
			||||||
 | 
						irq_affinity_num=`grep -E -m1 'reo2ost-exception' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '`
 | 
				
			||||||
 | 
						[ -n "$irq_affinity_num" ] && echo 8 > /proc/irq/$irq_affinity_num/smp_affinity
 | 
				
			||||||
 | 
						irq_affinity_num=`grep -E -m1 'wbm2host-rx-release' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '`
 | 
				
			||||||
 | 
						[ -n "$irq_affinity_num" ] && echo 8 > /proc/irq/$irq_affinity_num/smp_affinity
 | 
				
			||||||
 | 
						irq_affinity_num=`grep -E -m1 'reo2host-status' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '`
 | 
				
			||||||
 | 
						[ -n "$irq_affinity_num" ] && echo 8 > /proc/irq/$irq_affinity_num/smp_affinity
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# 5G and 6G radio
 | 
				
			||||||
 | 
						# pci0 and pci1 for Wkiki (two radio and one radio split mode)
 | 
				
			||||||
 | 
						# pcic1 and pcic2 are for Pebble
 | 
				
			||||||
 | 
						for j in pci0 pci1 pcic1 pcic2; do
 | 
				
			||||||
 | 
							irq_affinity_num=`grep -E -m1 "$j"_wlan_dp_4 /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '`
 | 
				
			||||||
 | 
							[ -n "$irq_affinity_num" ] && echo 1 > /proc/irq/$irq_affinity_num/smp_affinity
 | 
				
			||||||
 | 
							irq_affinity_num=`grep -E -m1 "$j"_wlan_dp_5 /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '`
 | 
				
			||||||
 | 
							[ -n "$irq_affinity_num" ] && echo 2 > /proc/irq/$irq_affinity_num/smp_affinity
 | 
				
			||||||
 | 
							irq_affinity_num=`grep -E -m1 "$j"_wlan_dp_6 /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '`
 | 
				
			||||||
 | 
							[ -n "$irq_affinity_num" ] && echo 4 > /proc/irq/$irq_affinity_num/smp_affinity
 | 
				
			||||||
 | 
							irq_affinity_num=`grep -E -m1 "$j"_wlan_dp_7 /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '`
 | 
				
			||||||
 | 
							[ -n "$irq_affinity_num" ] && echo 8 > /proc/irq/$irq_affinity_num/smp_affinity
 | 
				
			||||||
 | 
							irq_affinity_num=`grep -E -m1 "$j"_wlan_dp_0 /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '`
 | 
				
			||||||
 | 
							[ -n "$irq_affinity_num" ] && echo 1 > /proc/irq/$irq_affinity_num/smp_affinity
 | 
				
			||||||
 | 
							irq_affinity_num=`grep -E -m1 "$j"_wlan_dp_1 /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '`
 | 
				
			||||||
 | 
							[ -n "$irq_affinity_num" ] && echo 2 > /proc/irq/$irq_affinity_num/smp_affinity
 | 
				
			||||||
 | 
							irq_affinity_num=`grep -E -m1 "$j"_wlan_dp_2 /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '`
 | 
				
			||||||
 | 
							[ -n "$irq_affinity_num" ] && echo 4 > /proc/irq/$irq_affinity_num/smp_affinity
 | 
				
			||||||
 | 
							irq_affinity_num=`grep -E -m1 "$j"_wlan_dp_11 /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '`
 | 
				
			||||||
 | 
							[ -n "$irq_affinity_num" ] && echo 8 > /proc/irq/$irq_affinity_num/smp_affinity
 | 
				
			||||||
 | 
							irq_affinity_num=`grep -E -m1 "$j"_wlan_dp_3 /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '`
 | 
				
			||||||
 | 
							[ -n "$irq_affinity_num" ] && echo 8 > /proc/irq/$irq_affinity_num/smp_affinity
 | 
				
			||||||
 | 
							irq_affinity_num=`grep -E -m1 "$j"_wlan_dp_8 /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '`
 | 
				
			||||||
 | 
							[ -n "$irq_affinity_num" ] && echo 2 > /proc/irq/$irq_affinity_num/smp_affinity
 | 
				
			||||||
 | 
					        done
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -87,6 +87,7 @@ platform_do_upgrade() {
 | 
				
			|||||||
	board=$(board_name)
 | 
						board=$(board_name)
 | 
				
			||||||
	case $board in
 | 
						case $board in
 | 
				
			||||||
	cig,wf189w|\
 | 
						cig,wf189w|\
 | 
				
			||||||
 | 
						cig,wf189h|\
 | 
				
			||||||
	cig,wf189)
 | 
						cig,wf189)
 | 
				
			||||||
		if [ -f /proc/boot_info/bootconfig0/rootfs/upgradepartition ]; then
 | 
							if [ -f /proc/boot_info/bootconfig0/rootfs/upgradepartition ]; then
 | 
				
			||||||
			CI_UBIPART="$(cat /proc/boot_info/bootconfig0/rootfs/upgradepartition)"
 | 
								CI_UBIPART="$(cat /proc/boot_info/bootconfig0/rootfs/upgradepartition)"
 | 
				
			||||||
@@ -119,5 +120,9 @@ platform_do_upgrade() {
 | 
				
			|||||||
		sonicfi_dualimage_check
 | 
							sonicfi_dualimage_check
 | 
				
			||||||
		nand_upgrade_tar "$1"
 | 
							nand_upgrade_tar "$1"
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
 | 
						sercomm,ap72tip-v4|\
 | 
				
			||||||
 | 
						sercomm,ap72tip)
 | 
				
			||||||
 | 
							nand_upgrade_tar "$1"
 | 
				
			||||||
 | 
							;;
 | 
				
			||||||
	esac
 | 
						esac
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -23,6 +23,10 @@
 | 
				
			|||||||
		serial1 = &blsp1_uart1;
 | 
							serial1 = &blsp1_uart1;
 | 
				
			||||||
		ethernet0 = "/soc/dp1";
 | 
							ethernet0 = "/soc/dp1";
 | 
				
			||||||
		ethernet1 = "/soc/dp2";
 | 
							ethernet1 = "/soc/dp2";
 | 
				
			||||||
 | 
							led-boot = &led_power_green;
 | 
				
			||||||
 | 
							led-failsafe = &led_power_red;
 | 
				
			||||||
 | 
							led-running = &led_power_green;
 | 
				
			||||||
 | 
							led-upgrade = &led_power_green;
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	chosen {
 | 
						chosen {
 | 
				
			||||||
@@ -40,9 +44,11 @@
 | 
				
			|||||||
			uniphyaddr_fixup = <0xC90F014>;
 | 
								uniphyaddr_fixup = <0xC90F014>;
 | 
				
			||||||
			mdio_clk_fixup; /* MDIO clock sequence fix up flag */
 | 
								mdio_clk_fixup; /* MDIO clock sequence fix up flag */
 | 
				
			||||||
			tip,clk_div = <0xff>; /* MDIO Frequency reduction*/
 | 
								tip,clk_div = <0xff>; /* MDIO Frequency reduction*/
 | 
				
			||||||
 | 
								limit_rtlphy_10g_ablity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			phy0: ethernet-phy@0 {
 | 
								phy0: ethernet-phy@0 {
 | 
				
			||||||
				reg = <8>;
 | 
									reg = <8>;
 | 
				
			||||||
 | 
									compatible ="ethernet-phy-ieee802.3-c45";
 | 
				
			||||||
			};
 | 
								};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			phy1: ethernet-phy@1 {
 | 
								phy1: ethernet-phy@1 {
 | 
				
			||||||
@@ -178,12 +184,25 @@
 | 
				
			|||||||
			pinctrl-0 = <&gpio_leds_default>;
 | 
								pinctrl-0 = <&gpio_leds_default>;
 | 
				
			||||||
			pinctrl-names = "default";
 | 
								pinctrl-names = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			led-0 {
 | 
							led_power_blue: led@26 {
 | 
				
			||||||
				color = <LED_COLOR_ID_GREEN>;
 | 
					                        label = "status:blue";
 | 
				
			||||||
				function = LED_FUNCTION_WLAN;
 | 
					                        gpios = <&tlmm 45 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
				gpios = <&tlmm 36 GPIO_ACTIVE_HIGH>;
 | 
								max-brightness = <160>;
 | 
				
			||||||
				linux,default-trigger = "phy0tx";
 | 
								linux,default-trigger = "none";
 | 
				
			||||||
				default-state = "off";
 | 
					                	};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                led_power_green:led@30 {
 | 
				
			||||||
 | 
					                        label = "status:green";
 | 
				
			||||||
 | 
					                        gpios = <&tlmm 26 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
								max-brightness = <160>;
 | 
				
			||||||
 | 
								linux,default-trigger = "none";
 | 
				
			||||||
 | 
					                };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                led_power_red:led@45 {
 | 
				
			||||||
 | 
					                        label = "status:red";
 | 
				
			||||||
 | 
					                        gpios = <&tlmm 30 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
								max-brightness = <160>;
 | 
				
			||||||
 | 
								linux,default-trigger = "none";
 | 
				
			||||||
                };
 | 
					                };
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -194,9 +213,9 @@
 | 
				
			|||||||
			status = "okay";
 | 
								status = "okay";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			button@1 {
 | 
								button@1 {
 | 
				
			||||||
				label = "wps";
 | 
									label = "rst";
 | 
				
			||||||
				linux,code = <KEY_WPS_BUTTON>;
 | 
									linux,code = <KEY_RESTART>;
 | 
				
			||||||
				gpios = <&tlmm 35 GPIO_ACTIVE_LOW>;
 | 
									gpios = <&tlmm 17 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
				linux,input-type = <1>;
 | 
									linux,input-type = <1>;
 | 
				
			||||||
				debounce-interval = <60>;
 | 
									debounce-interval = <60>;
 | 
				
			||||||
			};
 | 
								};
 | 
				
			||||||
@@ -462,7 +481,7 @@
 | 
				
			|||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	button_pins: button-state {
 | 
						button_pins: button-state {
 | 
				
			||||||
		pins = "gpio35";
 | 
							pins = "gpio17";
 | 
				
			||||||
		function = "gpio";
 | 
							function = "gpio";
 | 
				
			||||||
		drive-strength = <8>;
 | 
							drive-strength = <8>;
 | 
				
			||||||
		bias-pull-up;
 | 
							bias-pull-up;
 | 
				
			||||||
@@ -481,6 +500,24 @@
 | 
				
			|||||||
		bias-pull-up;
 | 
							bias-pull-up;
 | 
				
			||||||
		output-low;
 | 
							output-low;
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						led_pins: led_pins {
 | 
				
			||||||
 | 
					                mux_1 {
 | 
				
			||||||
 | 
					                        pins = "gpio26";
 | 
				
			||||||
 | 
					                        function = "gpio";
 | 
				
			||||||
 | 
					                        drive-strength = <8>;
 | 
				
			||||||
 | 
					                };
 | 
				
			||||||
 | 
					                mux_2 {
 | 
				
			||||||
 | 
					                        pins = "gpio30";
 | 
				
			||||||
 | 
					                        function = "gpio";
 | 
				
			||||||
 | 
					                        drive-strength = <8>;
 | 
				
			||||||
 | 
					                };
 | 
				
			||||||
 | 
					                mux_3 {
 | 
				
			||||||
 | 
					                        pins = "gpio45";
 | 
				
			||||||
 | 
					                        function = "gpio";
 | 
				
			||||||
 | 
					                        drive-strength = <8>;
 | 
				
			||||||
 | 
					                };
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&license_manager {
 | 
					&license_manager {
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										777
									
								
								feeds/qca-wifi-7/ipq53xx/dts/ipq5332-cig-wf189h.dts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										777
									
								
								feeds/qca-wifi-7/ipq53xx/dts/ipq5332-cig-wf189h.dts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,777 @@
 | 
				
			|||||||
 | 
					// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * IPQ5332 RDP446 board device tree source
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Copyright (c) 2020-2021 The Linux Foundation. All rights reserved.
 | 
				
			||||||
 | 
					 * Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights reserved.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/dts-v1/;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "ipq5332.dtsi"
 | 
				
			||||||
 | 
					#include <dt-bindings/gpio/gpio.h>
 | 
				
			||||||
 | 
					#include <dt-bindings/input/input.h>
 | 
				
			||||||
 | 
					#include <dt-bindings/leds/common.h>
 | 
				
			||||||
 | 
					#include "ipq5332-default-memory.dtsi"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/ {
 | 
				
			||||||
 | 
						model = "CIG WF189H";
 | 
				
			||||||
 | 
						compatible = "cig,wf189h", "qcom,ipq5332-ap-mi04.1", "qcom,ipq5332-rdp446", "qcom,ipq5332";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/*     1G  Layout for IPQ5332 + QCN6432 + QCN6432
 | 
				
			||||||
 | 
						 * +==========+==============+========================+
 | 
				
			||||||
 | 
						 * |         |              |                         |
 | 
				
			||||||
 | 
						 * |  Region | Start Offset |          Size           |
 | 
				
			||||||
 | 
						 * |         |              |                         |
 | 
				
			||||||
 | 
						 * +---------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |   Q6    |              |                         |
 | 
				
			||||||
 | 
						 * |  code/  |  0x4A900000  |          25MB           |
 | 
				
			||||||
 | 
						 * |  data   |              |                         |
 | 
				
			||||||
 | 
						 * +---------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | IPQ5332 |              |                         |
 | 
				
			||||||
 | 
						 * |  data   |  0x4C200000  |          21MB           |
 | 
				
			||||||
 | 
						 * +---------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | IPQ5332 |              |                         |
 | 
				
			||||||
 | 
						 * | M3 Dump |  0x4D700000  |           1MB           |
 | 
				
			||||||
 | 
						 * +---------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | IPQ5332 |              |                         |
 | 
				
			||||||
 | 
						 * |  QDSS   |  0x4D800000  |           1MB           |
 | 
				
			||||||
 | 
						 * +---------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | IPQ5332 |              |                         |
 | 
				
			||||||
 | 
						 * |  CALDB  |  0x4D900000  |           5MB           |
 | 
				
			||||||
 | 
						 * +---------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |QCN6432_1|              |                         |
 | 
				
			||||||
 | 
						 * |  data   |  0x4DE00000  |          21MB           |
 | 
				
			||||||
 | 
						 * +---------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |QCN6432_1|              |                         |
 | 
				
			||||||
 | 
						 * | M3 Dump |  0x4F300000  |           1MB           |
 | 
				
			||||||
 | 
						 * +---------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |QCN6432_1|              |                         |
 | 
				
			||||||
 | 
						 * |  QDSS   |  0x4E400000  |           1MB           |
 | 
				
			||||||
 | 
						 * +---------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |QCN6432_1|              |                         |
 | 
				
			||||||
 | 
						 * |  CALDB  |  0x4F500000  |           5MB           |
 | 
				
			||||||
 | 
						 * +---------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |QCN6432_2|              |                         |
 | 
				
			||||||
 | 
						 * |  data   |  0x4FA00000  |          21MB           |
 | 
				
			||||||
 | 
						 * +---------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |QCN6432_2|              |                         |
 | 
				
			||||||
 | 
						 * | M3 Dump |  0x50F00000  |           1MB           |
 | 
				
			||||||
 | 
						 * +---------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |QCN6432_2|              |                         |
 | 
				
			||||||
 | 
						 * |  QDSS   |  0x51000000  |           1MB           |
 | 
				
			||||||
 | 
						 * +---------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |QCN6432_2|              |                         |
 | 
				
			||||||
 | 
						 * |  CALDB  |  0x51100000  |           5MB           |
 | 
				
			||||||
 | 
						 * +---------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |         |              |                         |
 | 
				
			||||||
 | 
						 * |   MLO   |  0x51600000  |          12MB           |
 | 
				
			||||||
 | 
						 * +==================================================+
 | 
				
			||||||
 | 
						 * |                                                  |
 | 
				
			||||||
 | 
						 * |                                                  |
 | 
				
			||||||
 | 
						 * |                                                  |
 | 
				
			||||||
 | 
						 * |             Rest of memory for Linux             |
 | 
				
			||||||
 | 
						 * |                                                  |
 | 
				
			||||||
 | 
						 * |                                                  |
 | 
				
			||||||
 | 
						 * |                                                  |
 | 
				
			||||||
 | 
						 * +==================================================+
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						reserved-memory {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							/delete-node/ m3_dump@4cc00000;
 | 
				
			||||||
 | 
							/delete-node/ q6_etr_dump@1;
 | 
				
			||||||
 | 
							/delete-node/ mlo_global_mem_0@0x4db00000;
 | 
				
			||||||
 | 
							/delete-node/ wcnss@4a900000;
 | 
				
			||||||
 | 
							/delete-node/ q6_caldb_region@4ce00000;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_mem_regions: q6_mem_regions@4A900000  {
 | 
				
			||||||
 | 
								reg = <0x0 0x4a900000 0x0 0x6D00000>;
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_code_data: q6_code_data@4A900000 {
 | 
				
			||||||
 | 
								reg = <0x0 0x4a900000 0x0 0x1900000>;
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_ipq5332_data: q6_ipq5332_data@4C200000 {
 | 
				
			||||||
 | 
								reg = <0x0 0x4C200000 0x0 0x1500000>;
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							m3_dump: m3_dump@4D700000 {
 | 
				
			||||||
 | 
								reg = <0x0 0x4D700000 0x0 0x100000>;
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_etr_region: q6_etr_dump@4D800000 {
 | 
				
			||||||
 | 
								reg = <0x0 0x4D800000 0x0 0x100000>;
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_ipq5332_caldb: q6_ipq5332_caldb@4D900000 {
 | 
				
			||||||
 | 
								reg = <0x0 0x4D900000 0x0 0x500000>;
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_qcn6432_data_1: q6_qcn6432_data_1@4DE00000 {
 | 
				
			||||||
 | 
								reg = <0x0 0x4DE00000 0x0 0x1500000>;
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							m3_dump_qcn6432_1: m3_dump_qcn6432_1@4F300000 {
 | 
				
			||||||
 | 
								reg = <0x0 0x4F300000 0x0 0x100000>;
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
					                };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_qcn6432_etr_1: q6_qcn6432_etr_1@4F400000 {
 | 
				
			||||||
 | 
								reg = <0x0 0x4F400000 0x0 0x100000>;
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_qcn6432_caldb_1: q6_qcn6432_caldb_1@4F500000 {
 | 
				
			||||||
 | 
								reg = <0x0 0x4F500000 0x0 0x500000>;
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_qcn6432_data_2: q6_qcn6432_data_2@4FA00000 {
 | 
				
			||||||
 | 
								reg = <0x0 0x4FA00000 0x0 0x1500000>;
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							m3_dump_qcn6432_2: m3_dump_qcn6432_2@50F00000 {
 | 
				
			||||||
 | 
								reg = <0x0 0x50F00000 0x0 0x100000>;
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
					                };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_qcn6432_etr_2: q6_qcn6432_etr_2@51000000 {
 | 
				
			||||||
 | 
								reg = <0x0 0x51000000 0x0 0x100000>;
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_qcn6432_caldb_2: q6_qcn6432_caldb_2@51100000 {
 | 
				
			||||||
 | 
								reg = <0x0 0x51100000 0x0 0x500000>;
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							mlo_global_mem0: mlo_global_mem_0@51600000 {
 | 
				
			||||||
 | 
								reg = <0x0 0x51600000 0x0 0xC00000>;
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						aliases {
 | 
				
			||||||
 | 
							serial0 = &blsp1_uart0;
 | 
				
			||||||
 | 
							serial1 = &blsp1_uart1;
 | 
				
			||||||
 | 
							ethernet0 = "/soc/dp1";
 | 
				
			||||||
 | 
							ethernet1 = "/soc/dp2";
 | 
				
			||||||
 | 
							led-boot = &led_power_green;
 | 
				
			||||||
 | 
							led-failsafe = &led_power_red;
 | 
				
			||||||
 | 
							led-running = &led_power_green;
 | 
				
			||||||
 | 
							led-upgrade = &led_power_green;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						chosen {
 | 
				
			||||||
 | 
							stdout-path = "serial0";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						soc@0 {
 | 
				
			||||||
 | 
							mdio:mdio@90000 {
 | 
				
			||||||
 | 
								pinctrl-0 = <&mdio1_pins &mdio0_pins>;
 | 
				
			||||||
 | 
								pinctrl-names = "default";
 | 
				
			||||||
 | 
								/*gpio51 for manhattan reset*/
 | 
				
			||||||
 | 
					      phy-reset-gpio = <&tlmm 22 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
 | 
								phyaddr_fixup = <0xC90F018>;
 | 
				
			||||||
 | 
								uniphyaddr_fixup = <0xC90F014>;
 | 
				
			||||||
 | 
								mdio_clk_fixup; /* MDIO clock sequence fix up flag */
 | 
				
			||||||
 | 
								status = "okay";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								phy0: ethernet-phy@0 {
 | 
				
			||||||
 | 
									reg = <1>;
 | 
				
			||||||
 | 
									fixup;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
								phy1: ethernet-phy@1 {
 | 
				
			||||||
 | 
									reg = <2>;
 | 
				
			||||||
 | 
									fixup;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
								phy2: ethernet-phy@2 {
 | 
				
			||||||
 | 
									reg = <3>;
 | 
				
			||||||
 | 
									fixup;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
								phy3: ethernet-phy@3 {
 | 
				
			||||||
 | 
									reg = <4>;
 | 
				
			||||||
 | 
									fixup;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								switch0@10 {
 | 
				
			||||||
 | 
									compatible = "qca,qca8386";
 | 
				
			||||||
 | 
									#address-cells = <1>;
 | 
				
			||||||
 | 
									#size-cells = <0>;
 | 
				
			||||||
 | 
									reg = <0x10>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									ports {
 | 
				
			||||||
 | 
										#address-cells = <1>;
 | 
				
			||||||
 | 
										#size-cells = <0>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										port@0 {
 | 
				
			||||||
 | 
											reg = <0>;
 | 
				
			||||||
 | 
											label = "cpu";
 | 
				
			||||||
 | 
											ethernet = <&gmac2>;
 | 
				
			||||||
 | 
											dsa-tag-protocol = "qca_4b";
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										port@1 {
 | 
				
			||||||
 | 
											reg = <1>;
 | 
				
			||||||
 | 
											label = "lan1";
 | 
				
			||||||
 | 
											phy-handle = <&phy0>;
 | 
				
			||||||
 | 
											phy-mode = "usxgmii";
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										port@2 {
 | 
				
			||||||
 | 
											reg = <2>;
 | 
				
			||||||
 | 
											label = "lan2";
 | 
				
			||||||
 | 
											phy-handle = <&phy1>;
 | 
				
			||||||
 | 
											phy-mode = "usxgmii";
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										port@3 {
 | 
				
			||||||
 | 
											reg = <3>;
 | 
				
			||||||
 | 
											label = "lan3";
 | 
				
			||||||
 | 
											phy-handle = <&phy2>;
 | 
				
			||||||
 | 
											phy-mode = "usxgmii";
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										port@4 {
 | 
				
			||||||
 | 
											reg = <4>;
 | 
				
			||||||
 | 
											label = "lan4";
 | 
				
			||||||
 | 
											phy-handle = <&phy3>;
 | 
				
			||||||
 | 
											phy-mode = "usxgmii";
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										port@5 {
 | 
				
			||||||
 | 
											reg = <5>;
 | 
				
			||||||
 | 
											forced-speed = <2500>;
 | 
				
			||||||
 | 
											forced-duplex = <1>;
 | 
				
			||||||
 | 
										}; 
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							pwmleds {
 | 
				
			||||||
 | 
								compatible = "pwm-leds";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								led_power_red: red {
 | 
				
			||||||
 | 
									label = "pwm:red";
 | 
				
			||||||
 | 
									pwms = <&pwm 3 1250000>;
 | 
				
			||||||
 | 
									max-brightness = <160>;
 | 
				
			||||||
 | 
									linux,default-trigger = "none";
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								led_power_green: green {
 | 
				
			||||||
 | 
									label = "pwm:green";
 | 
				
			||||||
 | 
									pwms = <&pwm 2 1250000>;
 | 
				
			||||||
 | 
									max-brightness = <160>;
 | 
				
			||||||
 | 
									linux,default-trigger = "none";
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								led_power_blue: blue {
 | 
				
			||||||
 | 
									label = "pwm:blue";
 | 
				
			||||||
 | 
									pwms = <&pwm 1 1250000>;
 | 
				
			||||||
 | 
									max-brightness = <160>;
 | 
				
			||||||
 | 
									linux,default-trigger = "none";
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							gpio_keys {
 | 
				
			||||||
 | 
								compatible = "gpio-keys";
 | 
				
			||||||
 | 
								pinctrl-0 = <&button_pins>;
 | 
				
			||||||
 | 
								pinctrl-names = "default";
 | 
				
			||||||
 | 
								status = "okay";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								button@1 {
 | 
				
			||||||
 | 
									label = "rst";
 | 
				
			||||||
 | 
									linux,code = <KEY_RESTART>;
 | 
				
			||||||
 | 
									gpios = <&tlmm 21 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
 | 
									linux,input-type = <1>;
 | 
				
			||||||
 | 
									debounce-interval = <60>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							ess-instance {
 | 
				
			||||||
 | 
								num_devices = <0x2>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								ess-switch@3a000000 {
 | 
				
			||||||
 | 
									pinctrl-names = "default";
 | 
				
			||||||
 | 
									switch_cpu_bmp = <0x1>;  /* cpu port bitmap */
 | 
				
			||||||
 | 
									switch_lan_bmp = <0x2>; /* lan port bitmap */
 | 
				
			||||||
 | 
									switch_wan_bmp = <0x4>; /* wan port bitmap */
 | 
				
			||||||
 | 
									switch_mac_mode = <0xc>; /* mac mode for uniphy instance0*/
 | 
				
			||||||
 | 
									switch_mac_mode1 = <0xf>; /* mac mode for uniphy instance1*/
 | 
				
			||||||
 | 
									switch_mac_mode2 = <0xff>; /* mac mode for uniphy instance2*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									qcom,port_phyinfo {
 | 
				
			||||||
 | 
										port@0 {
 | 
				
			||||||
 | 
											port_id = <1>;
 | 
				
			||||||
 | 
											forced-speed = <2500>;
 | 
				
			||||||
 | 
											forced-duplex = <1>;
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
										port@1 {
 | 
				
			||||||
 | 
											port_id = <2>;
 | 
				
			||||||
 | 
											phy_address = <4>;
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								ess-switch1@1 {
 | 
				
			||||||
 | 
									compatible = "qcom,ess-switch-qca8386";
 | 
				
			||||||
 | 
									device_id = <1>;
 | 
				
			||||||
 | 
									switch_access_mode = "mdio";
 | 
				
			||||||
 | 
									mdio-bus = <&mdio>;
 | 
				
			||||||
 | 
									switch_mac_mode = <0xc>; /* mac mode for uniphy instance0 */
 | 
				
			||||||
 | 
									switch_mac_mode1 = <0xc>; /* mac mode1 for uniphy instance1 */
 | 
				
			||||||
 | 
									switch_cpu_bmp = <0x1>;  /* cpu port bitmap */
 | 
				
			||||||
 | 
									switch_lan_bmp = <0x0e>; /* lan port bitmap */
 | 
				
			||||||
 | 
									switch_wan_bmp = <0x0>;  /* wan port bitmap */
 | 
				
			||||||
 | 
					//				link-polling-required = <0>;
 | 
				
			||||||
 | 
									fdb_sync = "interrupt";
 | 
				
			||||||
 | 
									link-intr-gpio = <&tlmm 24 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									qcom,port_phyinfo {
 | 
				
			||||||
 | 
										port@0 {
 | 
				
			||||||
 | 
											port_id = <0>;
 | 
				
			||||||
 | 
											forced-speed = <2500>;
 | 
				
			||||||
 | 
											forced-duplex = <1>;
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
										port@1 {
 | 
				
			||||||
 | 
											port_id = <1>;
 | 
				
			||||||
 | 
											phy_address = <1>;
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
										port@2 {
 | 
				
			||||||
 | 
											port_id = <2>;
 | 
				
			||||||
 | 
											phy_address = <2>;
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
										port@3 {
 | 
				
			||||||
 | 
											port_id = <3>;
 | 
				
			||||||
 | 
											phy_address = <3>;
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									led_source@2 {
 | 
				
			||||||
 | 
										source = <2>;
 | 
				
			||||||
 | 
										mode = "normal";
 | 
				
			||||||
 | 
										speed = "all";
 | 
				
			||||||
 | 
										blink_en = "enable";
 | 
				
			||||||
 | 
										active = "high";
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
									led_source@5 {
 | 
				
			||||||
 | 
										source = <5>;
 | 
				
			||||||
 | 
										mode = "normal";
 | 
				
			||||||
 | 
										speed = "all";
 | 
				
			||||||
 | 
										blink_en = "enable";
 | 
				
			||||||
 | 
										active = "high";
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
									led_source@8 {
 | 
				
			||||||
 | 
										source = <8>;
 | 
				
			||||||
 | 
										mode = "normal";
 | 
				
			||||||
 | 
										speed = "all";
 | 
				
			||||||
 | 
										blink_en = "enable";
 | 
				
			||||||
 | 
										active = "high";
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
									led_source@11 {
 | 
				
			||||||
 | 
										source = <11>;
 | 
				
			||||||
 | 
										mode = "normal";
 | 
				
			||||||
 | 
										speed = "all";
 | 
				
			||||||
 | 
										blink_en = "enable";
 | 
				
			||||||
 | 
										active = "high";
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							dp1 {
 | 
				
			||||||
 | 
								device_type = "network";
 | 
				
			||||||
 | 
								compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
								qcom,id = <2>;
 | 
				
			||||||
 | 
								reg = <0x3a504000 0x4000>;
 | 
				
			||||||
 | 
								qcom,mactype = <1>;
 | 
				
			||||||
 | 
								local-mac-address = [000000000000];
 | 
				
			||||||
 | 
								qcom,mht-dev = <1>;
 | 
				
			||||||
 | 
								qcom,is_switch_connected = <1>;
 | 
				
			||||||
 | 
								qcom,ppe-offload-disabled = <1>;
 | 
				
			||||||
 | 
								phy-mode = "sgmii";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							gmac2:dp2 {
 | 
				
			||||||
 | 
								device_type = "network";
 | 
				
			||||||
 | 
								compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
								qcom,id = <1>;
 | 
				
			||||||
 | 
								reg = <0x3a500000 0x4000>;
 | 
				
			||||||
 | 
								qcom,mactype = <1>;
 | 
				
			||||||
 | 
								local-mac-address = [000000000000];
 | 
				
			||||||
 | 
								phy-mode = "sgmii";
 | 
				
			||||||
 | 
								qcom,mht-dev = <1>;
 | 
				
			||||||
 | 
								qcom,is_switch_connected = <1>;
 | 
				
			||||||
 | 
								qcom,ppe-offload-disabled = <1>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							/* EDMA host driver configuration for the board */
 | 
				
			||||||
 | 
							edma@3ab00000 {
 | 
				
			||||||
 | 
								qcom,txdesc-ring-start = <4>;		/* Tx desc ring start ID */
 | 
				
			||||||
 | 
								qcom,txdesc-rings = <12>;		/* Total number of Tx desc rings to be provisioned */
 | 
				
			||||||
 | 
								qcom,mht-txdesc-rings = <8>;            /* Extra Tx desc rings to be provisioned for MHT SW ports */
 | 
				
			||||||
 | 
								qcom,txcmpl-ring-start = <4>;		/* Tx complete ring start ID */
 | 
				
			||||||
 | 
								qcom,txcmpl-rings = <12>;		/* Total number of Tx complete rings to be provisioned */
 | 
				
			||||||
 | 
								qcom,mht-txcmpl-rings = <8>;            /* Extra Tx complete rings to be provisioned for mht sw ports. */
 | 
				
			||||||
 | 
								qcom,rxfill-ring-start = <4>;		/* Rx fill ring start ID */
 | 
				
			||||||
 | 
								qcom,rxfill-rings = <4>;		/* Total number of Rx fill rings to be provisioned */
 | 
				
			||||||
 | 
								qcom,rxdesc-ring-start = <12>;		/* Rx desc ring start ID */
 | 
				
			||||||
 | 
								qcom,rxdesc-rings = <4>;		/* Total number of Rx desc rings to be provisioned */
 | 
				
			||||||
 | 
								qcom,rx-page-mode = <0>;		/* Rx fill ring page mode */
 | 
				
			||||||
 | 
								qcom,tx-map-priority-level = <1>;	/* Tx priority level per port */
 | 
				
			||||||
 | 
								qcom,rx-map-priority-level = <1>;	/* Rx priority level per core */
 | 
				
			||||||
 | 
								qcom,ppeds-num = <2>;			/* Number of PPEDS nodes */
 | 
				
			||||||
 | 
								/* PPE-DS node format: <Rx-fill Tx-cmpl Rx Tx Queue-base Queue-count> */
 | 
				
			||||||
 | 
								qcom,ppeds-map = <1 1 1 1 32 8>,	/* PPEDS Node#0 ring and queue map */
 | 
				
			||||||
 | 
										<2 2 2 2 40 8>;		/* PPEDS Node#1 ring and queue map */
 | 
				
			||||||
 | 
								qcom,txdesc-map = <8 9 10 11>,		/* Port0 per-core Tx ring map */
 | 
				
			||||||
 | 
										<12 13 14 15>,        /* MHT-Port1 per-core Tx ring map */
 | 
				
			||||||
 | 
										<4 5 6 7>,            /* MHT-Port2 per-core Tx ring map/packets from  vp*/
 | 
				
			||||||
 | 
										<16 17 18 19>,        /* MHT-Port3 per-core Tx ring map */
 | 
				
			||||||
 | 
										<20 21 22 23>;        /* MHT-Port4 per-core Tx ring map */
 | 
				
			||||||
 | 
								qcom,txdesc-fc-grp-map = <1 2 3 4 5>;   /* Per GMAC flow control group map */
 | 
				
			||||||
 | 
								qcom,rxfill-map = <4 5 6 7>;		/* Per-core Rx fill ring map */
 | 
				
			||||||
 | 
								qcom,rxdesc-map = <12 13 14 15>;	/* Per-core Rx desc ring map */
 | 
				
			||||||
 | 
								qcom,rx-queue-start = <0>;		/* Rx queue start */
 | 
				
			||||||
 | 
								qcom,rx-ring-queue-map = <0 8 16 24>,	/* Priority 0 queues per-core Rx ring map */
 | 
				
			||||||
 | 
											<1 9 17 25>,	/* Priority 1 queues per-core Rx ring map */
 | 
				
			||||||
 | 
											<2 10 18 26>,	/* Priority 2 queues per-core Rx ring map */
 | 
				
			||||||
 | 
											<3 11 19 27>,	/* Priority 3 queues per-core Rx ring map */
 | 
				
			||||||
 | 
											<4 12 20 28>,	/* Priority 4 queues per-core Rx ring map */
 | 
				
			||||||
 | 
											<5 13 21 29>,	/* Priority 5 queues per-core Rx ring map */
 | 
				
			||||||
 | 
											<6 14 22 30>,	/* Priority 6 queues per-core Rx ring map */
 | 
				
			||||||
 | 
											<7 15 23 31>;	/* Priority 7 queues per-core Rx ring map */
 | 
				
			||||||
 | 
								interrupts = <0 163 4>,			/* Tx complete ring id #4 IRQ info */
 | 
				
			||||||
 | 
									   <0 164 4>,			/* Tx complete ring id #5 IRQ info */
 | 
				
			||||||
 | 
									   <0 165 4>,			/* Tx complete ring id #6 IRQ info */
 | 
				
			||||||
 | 
									   <0 166 4>,			/* Tx complete ring id #7 IRQ info */
 | 
				
			||||||
 | 
									   <0 167 4>,			/* Tx complete ring id #8 IRQ info */
 | 
				
			||||||
 | 
									   <0 168 4>,			/* Tx complete ring id #9 IRQ info */
 | 
				
			||||||
 | 
									   <0 169 4>,			/* Tx complete ring id #10 IRQ info */
 | 
				
			||||||
 | 
									   <0 170 4>,			/* Tx complete ring id #11 IRQ info */
 | 
				
			||||||
 | 
									   <0 171 4>,			/* Tx complete ring id #12 IRQ info */
 | 
				
			||||||
 | 
									   <0 172 4>,			/* Tx complete ring id #13 IRQ info */
 | 
				
			||||||
 | 
									   <0 173 4>,			/* Tx complete ring id #14 IRQ info */
 | 
				
			||||||
 | 
									   <0 174 4>,			/* Tx complete ring id #15 IRQ info */
 | 
				
			||||||
 | 
									   <0 139 4>,			/* Rx desc ring id #12 IRQ info */
 | 
				
			||||||
 | 
									   <0 140 4>,			/* Rx desc ring id #13 IRQ info */
 | 
				
			||||||
 | 
									   <0 141 4>,			/* Rx desc ring id #14 IRQ info */
 | 
				
			||||||
 | 
									   <0 142 4>,			/* Rx desc ring id #15 IRQ info */
 | 
				
			||||||
 | 
									   <0 191 4>,			/* Misc error IRQ info */
 | 
				
			||||||
 | 
									<0 160 4>,			/* PPEDS Node #1(TxComp ring id #1) TxComplete IRQ info */
 | 
				
			||||||
 | 
									<0 128 4>,			/* PPEDS Node #1(Rx Desc ring id #1) Rx Desc IRQ info */
 | 
				
			||||||
 | 
									<0 152 4>,			/* PPEDS Node #1(RxFill Desc ring id #1) Rx Fill IRQ info */
 | 
				
			||||||
 | 
									<0 161 4>,			/* PPEDS Node #2(TxComp ring id #2) TxComplete IRQ info */
 | 
				
			||||||
 | 
									<0 129 4>,			/* PPEDS Node #2(Rx Desc ring id #2) Rx Desc IRQ info */
 | 
				
			||||||
 | 
									<0 153 4>,                      /* PPEDS Node #2(RxFill Desc ring id #2) Rx Fill IRQ info */
 | 
				
			||||||
 | 
									<0 175 4>,                   /* MHT port Tx complete ring id #16 IRQ info */
 | 
				
			||||||
 | 
									<0 176 4>,                   /* MHT port Tx complete ring id #17 IRQ info */
 | 
				
			||||||
 | 
									<0 177 4>,                   /* MHT port Tx complete ring id #18 IRQ info */
 | 
				
			||||||
 | 
									<0 178 4>,                   /* MHT port Tx complete ring id #19 IRQ info */
 | 
				
			||||||
 | 
									<0 179 4>,                   /* MHT port Tx complete ring id #20 IRQ info */
 | 
				
			||||||
 | 
									<0 180 4>,                   /* MHT port Tx complete ring id #21 IRQ info */
 | 
				
			||||||
 | 
									<0 181 4>,                   /* MHT port Tx complete ring id #22 IRQ info */
 | 
				
			||||||
 | 
									<0 182 4>;                   /* MHT port Tx complete ring id #23 IRQ info */
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							wsi: wsi {
 | 
				
			||||||
 | 
								id = <0>;
 | 
				
			||||||
 | 
								num_chip = <3>;
 | 
				
			||||||
 | 
								status = "okay";
 | 
				
			||||||
 | 
								chip_info = <0 2 1 2>,
 | 
				
			||||||
 | 
									    <1 2 2 0>,
 | 
				
			||||||
 | 
									    <2 2 0 1>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6v5_wcss: remoteproc@d100000 {
 | 
				
			||||||
 | 
								boot-args = <0x1 0x4 0x3 0x1 0x2f 0x2>,
 | 
				
			||||||
 | 
										<0x1 0x4 0x4 0x2 0x2c 0x2>;
 | 
				
			||||||
 | 
								memory-region = <&q6_mem_regions>,
 | 
				
			||||||
 | 
										<&mlo_global_mem0>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								/delete-node/ remoteproc_pd1;
 | 
				
			||||||
 | 
								/delete-node/ remoteproc_pd2;
 | 
				
			||||||
 | 
								/delete-node/ remoteproc_pd3;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								q6_wcss_pd4: remoteproc_pd4 {
 | 
				
			||||||
 | 
									compatible = "qcom,ipq5332-mpd-upd-text";
 | 
				
			||||||
 | 
									firmware = "IPQ5332/q6_fw4.mdt";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									q6_wcss_pd1: remoteproc_pd1 {
 | 
				
			||||||
 | 
										compatible = "qcom,ipq5332-wcss-ahb-mpd";
 | 
				
			||||||
 | 
										firmware = "IPQ5332/q6_fw1.mdt";
 | 
				
			||||||
 | 
										m3_firmware = "IPQ5332/iu_fw.mdt";
 | 
				
			||||||
 | 
										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";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										qcom,smem-states = <&wcss_smp2p_out 8>,
 | 
				
			||||||
 | 
												<&wcss_smp2p_out 9>,
 | 
				
			||||||
 | 
												<&wcss_smp2p_out 10>;
 | 
				
			||||||
 | 
										qcom,smem-state-names = "shutdown",
 | 
				
			||||||
 | 
													"stop",
 | 
				
			||||||
 | 
													"spawn";
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									q6_wcss_pd2: remoteproc_pd2 {
 | 
				
			||||||
 | 
										compatible = "qcom,ipq5332-wcss-pcie-mpd";
 | 
				
			||||||
 | 
										firmware = "IPQ5332/q6_fw2.mdt";
 | 
				
			||||||
 | 
										m3_firmware = "qcn6432/iu_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";
 | 
				
			||||||
 | 
										status = "ok";
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									q6_wcss_pd3: remoteproc_pd3 {
 | 
				
			||||||
 | 
										compatible = "qcom,ipq5332-wcss-pcie-mpd";
 | 
				
			||||||
 | 
										firmware = "IPQ5332/q6_fw3.mdt";
 | 
				
			||||||
 | 
										interrupts-extended = <&wcss_smp2p_in 24 0>,
 | 
				
			||||||
 | 
												<&wcss_smp2p_in 25 0>,
 | 
				
			||||||
 | 
												<&wcss_smp2p_in 28 0>,
 | 
				
			||||||
 | 
												<&wcss_smp2p_in 27 0>;
 | 
				
			||||||
 | 
										interrupt-names = "fatal",
 | 
				
			||||||
 | 
												"ready",
 | 
				
			||||||
 | 
												"spawn-ack",
 | 
				
			||||||
 | 
												"stop-ack";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										qcom,smem-states = <&wcss_smp2p_out 24>,
 | 
				
			||||||
 | 
												<&wcss_smp2p_out 25>,
 | 
				
			||||||
 | 
												<&wcss_smp2p_out 26>;
 | 
				
			||||||
 | 
										qcom,smem-state-names = "shutdown",
 | 
				
			||||||
 | 
													"stop",
 | 
				
			||||||
 | 
													"spawn";
 | 
				
			||||||
 | 
										status = "ok";
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&blsp1_uart0 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&serial_0_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&blsp1_uart1 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&serial_1_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&sleep_clk {
 | 
				
			||||||
 | 
						clock-frequency = <32000>;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&xo {
 | 
				
			||||||
 | 
						clock-frequency = <24000000>;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qpic_bam {
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qpic_nand {
 | 
				
			||||||
 | 
						pinctrl-0 = <&qspi_default_state>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						nandcs@0 {
 | 
				
			||||||
 | 
							reg = <0>;
 | 
				
			||||||
 | 
							#address-cells = <1>;
 | 
				
			||||||
 | 
							#size-cells = <1>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							nand-ecc-strength = <8>;
 | 
				
			||||||
 | 
							nand-ecc-step-size = <512>;
 | 
				
			||||||
 | 
							nand-bus-width = <8>;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&tlmm {
 | 
				
			||||||
 | 
						qspi_default_state: qspi-default-state {
 | 
				
			||||||
 | 
							qspi_clock {
 | 
				
			||||||
 | 
								pins = "gpio13";
 | 
				
			||||||
 | 
								function = "qspi_clk";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							qspi_cs {
 | 
				
			||||||
 | 
								pins = "gpio12";
 | 
				
			||||||
 | 
								function = "qspi_cs";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							qspi_data {
 | 
				
			||||||
 | 
								pins = "gpio8", "gpio9", "gpio10", "gpio11";
 | 
				
			||||||
 | 
								function = "qspi_data";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						pwm_pins: pwm_pinmux {
 | 
				
			||||||
 | 
							/* PWM LED GREEN */
 | 
				
			||||||
 | 
							mux_1 {
 | 
				
			||||||
 | 
								pins = "gpio30";
 | 
				
			||||||
 | 
								function = "pwm1";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							/* PWM LED BLUE */
 | 
				
			||||||
 | 
							mux_2 {
 | 
				
			||||||
 | 
								pins = "gpio31";
 | 
				
			||||||
 | 
								function = "pwm1";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							/* PWM LED RED */
 | 
				
			||||||
 | 
							mux_3 {
 | 
				
			||||||
 | 
								pins = "gpio29";
 | 
				
			||||||
 | 
								function = "pwm1";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						serial_1_pins: serial1-pinmux {
 | 
				
			||||||
 | 
							pins = "gpio33", "gpio34", "gpio35", "gpio36";
 | 
				
			||||||
 | 
							function = "blsp1_uart2";
 | 
				
			||||||
 | 
							drive-strength = <8>;
 | 
				
			||||||
 | 
							bias-pull-up;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						button_pins: button-state {
 | 
				
			||||||
 | 
							pins = "gpio21";
 | 
				
			||||||
 | 
							function = "gpio";
 | 
				
			||||||
 | 
							drive-strength = <8>;
 | 
				
			||||||
 | 
							bias-pull-up;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						spi_0_data_clk_pins: spi-0-data-clk-state {
 | 
				
			||||||
 | 
							pins = "gpio14", "gpio15", "gpio16";
 | 
				
			||||||
 | 
							function = "blsp0_spi";
 | 
				
			||||||
 | 
							drive-strength = <2>;
 | 
				
			||||||
 | 
							bias-pull-down;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						spi_0_cs_pins: spi-0-cs-state {
 | 
				
			||||||
 | 
							pins = "gpio17";
 | 
				
			||||||
 | 
							function = "blsp0_spi";
 | 
				
			||||||
 | 
							drive-strength = <2>;
 | 
				
			||||||
 | 
							bias-pull-up;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						mdio1_pins: mdio1-state {
 | 
				
			||||||
 | 
							mux_0 {
 | 
				
			||||||
 | 
								pins = "gpio27";
 | 
				
			||||||
 | 
								function = "mdc1";
 | 
				
			||||||
 | 
								drive-strength = <2>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							mux_1 {
 | 
				
			||||||
 | 
								pins = "gpio28";
 | 
				
			||||||
 | 
								function = "mdio1";
 | 
				
			||||||
 | 
								drive-strength = <2>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&license_manager {
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pwm {
 | 
				
			||||||
 | 
					        pinctrl-0 = <&pwm_pins>;
 | 
				
			||||||
 | 
					        used-pwm-indices = <1>, <1>, <0>, <1>;
 | 
				
			||||||
 | 
					        pinctrl-names = "default";
 | 
				
			||||||
 | 
					        status = "okay";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&hs_m31phy_0 {
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&wifi0 {
 | 
				
			||||||
 | 
						qcom,multipd_arch;
 | 
				
			||||||
 | 
						qcom,rproc = <&q6_wcss_pd1>;
 | 
				
			||||||
 | 
						qcom,rproc_rpd = <&q6v5_wcss>;
 | 
				
			||||||
 | 
						qcom,userpd-subsys-name = "q6v5_wcss_userpd1";
 | 
				
			||||||
 | 
						qcom,tgt-mem-mode = <0>;
 | 
				
			||||||
 | 
						qcom,bdf-addr = <0x4C200000 0x4C200000 0x4C200000 0x0 0x0 0x0>;
 | 
				
			||||||
 | 
						qcom,caldb-addr = <0x4D900000 0x4D900000 0x4D900000 0x0 0x0 0x0>;
 | 
				
			||||||
 | 
						qcom,caldb-size = <0x500000>;
 | 
				
			||||||
 | 
						qcom,board_id = <0x41>;
 | 
				
			||||||
 | 
						mem-region = <&q6_ipq5332_data>;
 | 
				
			||||||
 | 
						memory-region = <&q6_ipq5332_data>;
 | 
				
			||||||
 | 
						qcom,wsi = <&wsi>;
 | 
				
			||||||
 | 
						qcom,wsi_index = <0>;
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&wifi1 {
 | 
				
			||||||
 | 
						qcom,multipd_arch;
 | 
				
			||||||
 | 
						qcom,rproc = <&q6_wcss_pd2>;
 | 
				
			||||||
 | 
						qcom,rproc_rpd = <&q6v5_wcss>;
 | 
				
			||||||
 | 
						qcom,userpd-subsys-name = "q6v5_wcss_userpd2";
 | 
				
			||||||
 | 
						qcom,tgt-mem-mode = <0>;
 | 
				
			||||||
 | 
						qcom,bdf-addr = <0x4DE00000 0x4DE00000 0x4DE00000 0x0 0x0 0x0>;
 | 
				
			||||||
 | 
						qcom,caldb-addr = <0x4F500000 0x4F500000 0x4F500000 0x0 0x0 0x0>;
 | 
				
			||||||
 | 
						qcom,umac-irq-reset-addr = <0x20000884>;
 | 
				
			||||||
 | 
						qcom,caldb-size = <0x500000>;
 | 
				
			||||||
 | 
						qcom,board_id = <0x061>;
 | 
				
			||||||
 | 
						mem-region = <&q6_qcn6432_data_1>;
 | 
				
			||||||
 | 
						memory-region = <&q6_qcn6432_data_1>;
 | 
				
			||||||
 | 
						qcom,wsi = <&wsi>;
 | 
				
			||||||
 | 
						qcom,wsi_index = <1>;
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
						interrupts = <GIC_SPI 33 IRQ_TYPE_EDGE_RISING>;
 | 
				
			||||||
 | 
						interrupt-names = "umac_reset";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&wifi2 {
 | 
				
			||||||
 | 
						qcom,multipd_arch;
 | 
				
			||||||
 | 
						qcom,rproc = <&q6_wcss_pd3>;
 | 
				
			||||||
 | 
						qcom,rproc_rpd = <&q6v5_wcss>;
 | 
				
			||||||
 | 
						qcom,userpd-subsys-name = "q6v5_wcss_userpd3";
 | 
				
			||||||
 | 
						qcom,tgt-mem-mode = <0>;
 | 
				
			||||||
 | 
						qcom,bdf-addr = <0x4FA00000 0x4FA00000 0x4FA00000 0x0 0x0 0x0>;
 | 
				
			||||||
 | 
						qcom,caldb-addr = <0x51100000 0x51100000 0x51100000 0x0 0x0 0x0>;
 | 
				
			||||||
 | 
						qcom,umac-irq-reset-addr = <0x18000884>;
 | 
				
			||||||
 | 
						qcom,caldb-size = <0x500000>;
 | 
				
			||||||
 | 
						qcom,board_id = <0x0b1>;
 | 
				
			||||||
 | 
						mem-region = <&q6_qcn6432_data_2>;
 | 
				
			||||||
 | 
						memory-region = <&q6_qcn6432_data_2>;
 | 
				
			||||||
 | 
						qcom,wsi = <&wsi>;
 | 
				
			||||||
 | 
						qcom,wsi_index = <2>;
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
						interrupts = <GIC_SPI 410 IRQ_TYPE_EDGE_RISING>;
 | 
				
			||||||
 | 
						interrupt-names = "umac_reset";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
@@ -166,10 +166,10 @@
 | 
				
			|||||||
		serial1 = &blsp1_uart1;
 | 
							serial1 = &blsp1_uart1;
 | 
				
			||||||
		ethernet0 = "/soc/dp1";
 | 
							ethernet0 = "/soc/dp1";
 | 
				
			||||||
		ethernet1 = "/soc/dp2";
 | 
							ethernet1 = "/soc/dp2";
 | 
				
			||||||
		led-boot = &led_power;
 | 
							led-boot = &led_power_green;
 | 
				
			||||||
		led-failsafe = &led_power;
 | 
							led-failsafe = &led_power_red;
 | 
				
			||||||
		led-running = &led_power;
 | 
							led-running = &led_power_green;
 | 
				
			||||||
		led-upgrade = &led_power;
 | 
							led-upgrade = &led_power_green;
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	chosen {
 | 
						chosen {
 | 
				
			||||||
@@ -261,21 +261,21 @@
 | 
				
			|||||||
		pwmleds {
 | 
							pwmleds {
 | 
				
			||||||
			compatible = "pwm-leds";
 | 
								compatible = "pwm-leds";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			red {
 | 
								led_power_red: red {
 | 
				
			||||||
				label = "pwm:red";
 | 
									label = "pwm:red";
 | 
				
			||||||
				pwms = <&pwm 3 1250000>;
 | 
									pwms = <&pwm 3 1250000>;
 | 
				
			||||||
				max-brightness = <160>;
 | 
									max-brightness = <160>;
 | 
				
			||||||
				linux,default-trigger = "none";
 | 
									linux,default-trigger = "none";
 | 
				
			||||||
			};
 | 
								};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			green {
 | 
								led_power_green: green {
 | 
				
			||||||
				label = "pwm:green";
 | 
									label = "pwm:green";
 | 
				
			||||||
				pwms = <&pwm 2 1250000>;
 | 
									pwms = <&pwm 2 1250000>;
 | 
				
			||||||
				max-brightness = <160>;
 | 
									max-brightness = <160>;
 | 
				
			||||||
				linux,default-trigger = "none";
 | 
									linux,default-trigger = "none";
 | 
				
			||||||
			};
 | 
								};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			led_power: blue {
 | 
								led_power_blue: blue {
 | 
				
			||||||
				label = "pwm:blue";
 | 
									label = "pwm:blue";
 | 
				
			||||||
				pwms = <&pwm 1 1250000>;
 | 
									pwms = <&pwm 1 1250000>;
 | 
				
			||||||
				max-brightness = <160>;
 | 
									max-brightness = <160>;
 | 
				
			||||||
@@ -307,7 +307,7 @@
 | 
				
			|||||||
				switch_lan_bmp = <0x2>; /* lan port bitmap */
 | 
									switch_lan_bmp = <0x2>; /* lan port bitmap */
 | 
				
			||||||
				switch_wan_bmp = <0x4>; /* wan port bitmap */
 | 
									switch_wan_bmp = <0x4>; /* wan port bitmap */
 | 
				
			||||||
				switch_mac_mode = <0xc>; /* mac mode for uniphy instance0*/
 | 
									switch_mac_mode = <0xc>; /* mac mode for uniphy instance0*/
 | 
				
			||||||
				switch_mac_mode1 = <0xc>; /* mac mode for uniphy instance1*/
 | 
									switch_mac_mode1 = <0xf>; /* mac mode for uniphy instance1*/
 | 
				
			||||||
				switch_mac_mode2 = <0xff>; /* mac mode for uniphy instance2*/
 | 
									switch_mac_mode2 = <0xff>; /* mac mode for uniphy instance2*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				qcom,port_phyinfo {
 | 
									qcom,port_phyinfo {
 | 
				
			||||||
@@ -318,8 +318,7 @@
 | 
				
			|||||||
					};
 | 
										};
 | 
				
			||||||
					port@1 {
 | 
										port@1 {
 | 
				
			||||||
						port_id = <2>;
 | 
											port_id = <2>;
 | 
				
			||||||
						forced-speed = <2500>;
 | 
											phy_address = <4>;
 | 
				
			||||||
						forced-duplex = <1>;
 | 
					 | 
				
			||||||
					};
 | 
										};
 | 
				
			||||||
				};
 | 
									};
 | 
				
			||||||
			};
 | 
								};
 | 
				
			||||||
@@ -331,9 +330,9 @@
 | 
				
			|||||||
				mdio-bus = <&mdio>;
 | 
									mdio-bus = <&mdio>;
 | 
				
			||||||
				switch_mac_mode = <0xc>; /* mac mode for uniphy instance0 */
 | 
									switch_mac_mode = <0xc>; /* mac mode for uniphy instance0 */
 | 
				
			||||||
				switch_mac_mode1 = <0xc>; /* mac mode1 for uniphy instance1 */
 | 
									switch_mac_mode1 = <0xc>; /* mac mode1 for uniphy instance1 */
 | 
				
			||||||
				switch_cpu_bmp = <0x21>;  /* cpu port bitmap */
 | 
									switch_cpu_bmp = <0x1>;  /* cpu port bitmap */
 | 
				
			||||||
				switch_lan_bmp = <0x0e>; /* lan port bitmap */
 | 
									switch_lan_bmp = <0x0e>; /* lan port bitmap */
 | 
				
			||||||
				switch_wan_bmp = <0x10>;  /* wan port bitmap */
 | 
									switch_wan_bmp = <0x0>;  /* wan port bitmap */
 | 
				
			||||||
//				link-polling-required = <0>;
 | 
					//				link-polling-required = <0>;
 | 
				
			||||||
				fdb_sync = "interrupt";
 | 
									fdb_sync = "interrupt";
 | 
				
			||||||
				link-intr-gpio = <&tlmm 24 GPIO_ACTIVE_HIGH>;
 | 
									link-intr-gpio = <&tlmm 24 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
@@ -356,15 +355,6 @@
 | 
				
			|||||||
						port_id = <3>;
 | 
											port_id = <3>;
 | 
				
			||||||
						phy_address = <3>;
 | 
											phy_address = <3>;
 | 
				
			||||||
					};
 | 
										};
 | 
				
			||||||
					port@4 {
 | 
					 | 
				
			||||||
						port_id = <4>;
 | 
					 | 
				
			||||||
						phy_address = <4>;
 | 
					 | 
				
			||||||
					};
 | 
					 | 
				
			||||||
					port@5 {
 | 
					 | 
				
			||||||
						port_id = <5>;
 | 
					 | 
				
			||||||
						forced-speed = <2500>;
 | 
					 | 
				
			||||||
						forced-duplex = <1>; 
 | 
					 | 
				
			||||||
					};
 | 
					 | 
				
			||||||
				};
 | 
									};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				led_source@2 {
 | 
									led_source@2 {
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										591
									
								
								feeds/qca-wifi-7/ipq53xx/dts/ipq5332-sercomm-ap72tip-v4.dts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										591
									
								
								feeds/qca-wifi-7/ipq53xx/dts/ipq5332-sercomm-ap72tip-v4.dts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,591 @@
 | 
				
			|||||||
 | 
					// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * IPQ5332 RDP468 board device tree source
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Copyright (c) 2020-2021 The Linux Foundation. All rights reserved.
 | 
				
			||||||
 | 
					 * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/dts-v1/;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <dt-bindings/gpio/gpio.h>
 | 
				
			||||||
 | 
					#include <dt-bindings/input/input.h>
 | 
				
			||||||
 | 
					#include <dt-bindings/leds/common.h>
 | 
				
			||||||
 | 
					#include "ipq5332.dtsi"
 | 
				
			||||||
 | 
					#include "ipq5332-default-memory.dtsi"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/ {
 | 
				
			||||||
 | 
						model = "Sercomm WiFi-7";
 | 
				
			||||||
 | 
						compatible = "sercomm,ap72tip-v4", "qcom,ipq5332-ap-mi01.6", "qcom,ipq5332";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						aliases {
 | 
				
			||||||
 | 
							serial0 = &blsp1_uart0; /*console*/
 | 
				
			||||||
 | 
							serial1 = &blsp1_uart1; /*ble*/
 | 
				
			||||||
 | 
							ethernet0 = "/soc/dp1";
 | 
				
			||||||
 | 
							ethernet1 = "/soc/dp2";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						chosen {
 | 
				
			||||||
 | 
							stdout-path = "serial0";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						soc@0 {
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					#if 0   //AQR114C
 | 
				
			||||||
 | 
							mdio:mdio@90000 {
 | 
				
			||||||
 | 
								pinctrl-0 = <&mdio1_pins>;
 | 
				
			||||||
 | 
								pinctrl-names = "default";
 | 
				
			||||||
 | 
								phy-reset-gpio = <&tlmm 0 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
 | 
								phyaddr_fixup = <0xC90F018>;
 | 
				
			||||||
 | 
								uniphyaddr_fixup = <0xC90F014>;
 | 
				
			||||||
 | 
								mdio_clk_fixup; /* MDIO clock sequence fix up flag */
 | 
				
			||||||
 | 
								status = "okay";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								phy0: ethernet-phy@0 {
 | 
				
			||||||
 | 
									reg = <24>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								phy1: ethernet-phy@1 {   //aqr114c
 | 
				
			||||||
 | 
									reg = <0>;
 | 
				
			||||||
 | 
									compatible ="ethernet-phy-ieee802.3-c45";
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							ess-instance {
 | 
				
			||||||
 | 
								ess-switch@3a000000 {
 | 
				
			||||||
 | 
									switch_cpu_bmp = <0x1>;  /* cpu port bitmap */
 | 
				
			||||||
 | 
									switch_lan_bmp = <0x0>; /* lan port bitmap */
 | 
				
			||||||
 | 
									switch_wan_bmp = <0x6>; /* wan port bitmap */
 | 
				
			||||||
 | 
									switch_mac_mode = <0xc>; /* mac mode for uniphy instance0*/
 | 
				
			||||||
 | 
									switch_mac_mode1 = <0xf>; /* mac mode for uniphy instance1*/
 | 
				
			||||||
 | 
									switch_mac_mode2 = <0xff>; /* mac mode for uniphy instance2*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									qcom,port_phyinfo {
 | 
				
			||||||
 | 
										port@0 {
 | 
				
			||||||
 | 
											port_id = <1>;
 | 
				
			||||||
 | 
											phy_address = <24>;
 | 
				
			||||||
 | 
											mdiobus = <&mdio>;
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
										port@1 { //aqr114c
 | 
				
			||||||
 | 
											port_id = <2>;
 | 
				
			||||||
 | 
											phy_address = <0>;
 | 
				
			||||||
 | 
											mdiobus = <&mdio>;
 | 
				
			||||||
 | 
											ethernet-phy-ieee802.3-c45;
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							dp1 {
 | 
				
			||||||
 | 
								device_type = "network";
 | 
				
			||||||
 | 
								compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
								qcom,id = <1>;
 | 
				
			||||||
 | 
								reg = <0x3a500000 0x4000>;
 | 
				
			||||||
 | 
								qcom,mactype = <1>;
 | 
				
			||||||
 | 
								local-mac-address = [000000000000];
 | 
				
			||||||
 | 
								mdio-bus = <&mdio>;
 | 
				
			||||||
 | 
								qcom,phy-mdio-addr = <24>;
 | 
				
			||||||
 | 
								qcom,link-poll = <1>;
 | 
				
			||||||
 | 
								phy-mode = "sgmii";
 | 
				
			||||||
 | 
							};	
 | 
				
			||||||
 | 
							dp2 {
 | 
				
			||||||
 | 
								device_type = "network";
 | 
				
			||||||
 | 
								compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
								qcom,id = <2>;
 | 
				
			||||||
 | 
								reg = <0x3a504000 0x4000>;
 | 
				
			||||||
 | 
								qcom,mactype = <1>;
 | 
				
			||||||
 | 
								local-mac-address = [000000000000];
 | 
				
			||||||
 | 
								qcom,phy-mdio-addr = <0>;
 | 
				
			||||||
 | 
								qcom,link-poll = <1>;
 | 
				
			||||||
 | 
								phy-mode = "sgmii";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					#else //SFP	
 | 
				
			||||||
 | 
							mdio:mdio@90000 { 
 | 
				
			||||||
 | 
								pinctrl-0 = <&mdio1_pins>;
 | 
				
			||||||
 | 
								pinctrl-names = "default";
 | 
				
			||||||
 | 
								/*gpio0 for napa*/
 | 
				
			||||||
 | 
								phy-reset-gpio = <&tlmm 0 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
 | 
								status = "okay";
 | 
				
			||||||
 | 
								phy0: ethernet-phy@0 {
 | 
				
			||||||
 | 
									reg = <24>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							ess-instance {
 | 
				
			||||||
 | 
								ess-switch@3a000000 {
 | 
				
			||||||
 | 
									switch_cpu_bmp = <0x1>;  /* cpu port bitmap */
 | 
				
			||||||
 | 
									switch_lan_bmp = <0x0>; /* lan port bitmap */
 | 
				
			||||||
 | 
									switch_wan_bmp = <0x6>; /* wan port bitmap */
 | 
				
			||||||
 | 
									switch_mac_mode = <0xc>; /* mac mode for uniphy instance0*/
 | 
				
			||||||
 | 
									switch_mac_mode1 = <0xe>; /* mac mode for uniphy instance1  sfp PORT_WRAPPER_10GBASE_R*/
 | 
				
			||||||
 | 
									switch_mac_mode2 = <0xff>; /* mac mode for uniphy instance2*/
 | 
				
			||||||
 | 
									qcom,port_phyinfo {
 | 
				
			||||||
 | 
										port@0 {
 | 
				
			||||||
 | 
											port_id = <1>;
 | 
				
			||||||
 | 
											phy_address = <24>;
 | 
				
			||||||
 | 
											mdiobus = <&mdio>;
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
										port@1 {
 | 
				
			||||||
 | 
											port_id = <2>;
 | 
				
			||||||
 | 
											phy_address = <30>;
 | 
				
			||||||
 | 
											media-type = "sfp"; 
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							dp1 {
 | 
				
			||||||
 | 
								device_type = "network";
 | 
				
			||||||
 | 
								compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
								qcom,id = <1>;
 | 
				
			||||||
 | 
								reg = <0x3a500000 0x4000>;
 | 
				
			||||||
 | 
								qcom,mactype = <1>;
 | 
				
			||||||
 | 
								local-mac-address = [000000000000];
 | 
				
			||||||
 | 
								mdio-bus = <&mdio>;
 | 
				
			||||||
 | 
								qcom,phy-mdio-addr = <24>;
 | 
				
			||||||
 | 
								qcom,link-poll = <1>;
 | 
				
			||||||
 | 
								phy-mode = "sgmii";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							dp2 {
 | 
				
			||||||
 | 
								device_type = "network";
 | 
				
			||||||
 | 
								compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
								qcom,id = <2>;
 | 
				
			||||||
 | 
								reg = <0x3a504000 0x4000>;
 | 
				
			||||||
 | 
								qcom,mactype = <1>;
 | 
				
			||||||
 | 
								local-mac-address = [000000000000];
 | 
				
			||||||
 | 
								mdio-bus = <&mdio>;
 | 
				
			||||||
 | 
								qcom,phy-mdio-addr = <30>;
 | 
				
			||||||
 | 
								qcom,link-poll = <1>;
 | 
				
			||||||
 | 
								phy-mode = "sgmii";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							/* EDMA host driver configuration for the board */
 | 
				
			||||||
 | 
							edma@3ab00000 {
 | 
				
			||||||
 | 
								qcom,txdesc-ring-start = <4>;		/* Tx desc ring start ID */
 | 
				
			||||||
 | 
								qcom,txdesc-rings = <12>;		/* Total number of Tx desc rings to be provisioned */
 | 
				
			||||||
 | 
								qcom,mht-txdesc-rings = <8>;            /* Extra Tx desc rings to be provisioned for MHT SW ports */
 | 
				
			||||||
 | 
								qcom,txcmpl-ring-start = <4>;		/* Tx complete ring start ID */
 | 
				
			||||||
 | 
								qcom,txcmpl-rings = <12>;		/* Total number of Tx complete rings to be provisioned */
 | 
				
			||||||
 | 
								qcom,mht-txcmpl-rings = <8>;            /* Extra Tx complete rings to be provisioned for mht sw ports. */
 | 
				
			||||||
 | 
								qcom,rxfill-ring-start = <4>;		/* Rx fill ring start ID */
 | 
				
			||||||
 | 
								qcom,rxfill-rings = <4>;		/* Total number of Rx fill rings to be provisioned */
 | 
				
			||||||
 | 
								qcom,rxdesc-ring-start = <12>;		/* Rx desc ring start ID */
 | 
				
			||||||
 | 
								qcom,rxdesc-rings = <4>;		/* Total number of Rx desc rings to be provisioned */
 | 
				
			||||||
 | 
								qcom,rx-page-mode = <0>;		/* Rx fill ring page mode */
 | 
				
			||||||
 | 
								qcom,tx-map-priority-level = <1>;	/* Tx priority level per port */
 | 
				
			||||||
 | 
								qcom,rx-map-priority-level = <1>;	/* Rx priority level per core */
 | 
				
			||||||
 | 
								qcom,ppeds-num = <2>;			/* Number of PPEDS nodes */
 | 
				
			||||||
 | 
								/* PPE-DS node format: <Rx-fill Tx-cmpl Rx Tx Queue-base Queue-count> */
 | 
				
			||||||
 | 
								qcom,ppeds-map = <1 1 1 1 32 8>,	/* PPEDS Node#0 ring and queue map */
 | 
				
			||||||
 | 
										<2 2 2 2 40 8>;		/* PPEDS Node#1 ring and queue map */
 | 
				
			||||||
 | 
								qcom,txdesc-map = <8 9 10 11>,		/* Port0 per-core Tx ring map */
 | 
				
			||||||
 | 
										<12 13 14 15>,        /* MHT-Port1 per-core Tx ring map */
 | 
				
			||||||
 | 
										<4 5 6 7>,            /* MHT-Port2 per-core Tx ring map/packets from  vp*/
 | 
				
			||||||
 | 
										<16 17 18 19>,        /* MHT-Port3 per-core Tx ring map */
 | 
				
			||||||
 | 
										<20 21 22 23>;        /* MHT-Port4 per-core Tx ring map */
 | 
				
			||||||
 | 
								qcom,txdesc-fc-grp-map = <1 2 3 4 5>;   /* Per GMAC flow control group map */
 | 
				
			||||||
 | 
								qcom,rxfill-map = <4 5 6 7>;		/* Per-core Rx fill ring map */
 | 
				
			||||||
 | 
								qcom,rxdesc-map = <12 13 14 15>;	/* Per-core Rx desc ring map */
 | 
				
			||||||
 | 
								qcom,rx-queue-start = <0>;		/* Rx queue start */
 | 
				
			||||||
 | 
								qcom,rx-ring-queue-map = <0 8 16 24>,	/* Priority 0 queues per-core Rx ring map */
 | 
				
			||||||
 | 
											<1 9 17 25>,	/* Priority 1 queues per-core Rx ring map */
 | 
				
			||||||
 | 
											<2 10 18 26>,	/* Priority 2 queues per-core Rx ring map */
 | 
				
			||||||
 | 
											<3 11 19 27>,	/* Priority 3 queues per-core Rx ring map */
 | 
				
			||||||
 | 
											<4 12 20 28>,	/* Priority 4 queues per-core Rx ring map */
 | 
				
			||||||
 | 
											<5 13 21 29>,	/* Priority 5 queues per-core Rx ring map */
 | 
				
			||||||
 | 
											<6 14 22 30>,	/* Priority 6 queues per-core Rx ring map */
 | 
				
			||||||
 | 
											<7 15 23 31>;	/* Priority 7 queues per-core Rx ring map */
 | 
				
			||||||
 | 
								interrupts = <0 163 4>,			/* Tx complete ring id #4 IRQ info */
 | 
				
			||||||
 | 
									   <0 164 4>,			/* Tx complete ring id #5 IRQ info */
 | 
				
			||||||
 | 
									   <0 165 4>,			/* Tx complete ring id #6 IRQ info */
 | 
				
			||||||
 | 
									   <0 166 4>,			/* Tx complete ring id #7 IRQ info */
 | 
				
			||||||
 | 
									   <0 167 4>,			/* Tx complete ring id #8 IRQ info */
 | 
				
			||||||
 | 
									   <0 168 4>,			/* Tx complete ring id #9 IRQ info */
 | 
				
			||||||
 | 
									   <0 169 4>,			/* Tx complete ring id #10 IRQ info */
 | 
				
			||||||
 | 
									   <0 170 4>,			/* Tx complete ring id #11 IRQ info */
 | 
				
			||||||
 | 
									   <0 171 4>,			/* Tx complete ring id #12 IRQ info */
 | 
				
			||||||
 | 
									   <0 172 4>,			/* Tx complete ring id #13 IRQ info */
 | 
				
			||||||
 | 
									   <0 173 4>,			/* Tx complete ring id #14 IRQ info */
 | 
				
			||||||
 | 
									   <0 174 4>,			/* Tx complete ring id #15 IRQ info */
 | 
				
			||||||
 | 
									   <0 139 4>,			/* Rx desc ring id #12 IRQ info */
 | 
				
			||||||
 | 
									   <0 140 4>,			/* Rx desc ring id #13 IRQ info */
 | 
				
			||||||
 | 
									   <0 141 4>,			/* Rx desc ring id #14 IRQ info */
 | 
				
			||||||
 | 
									   <0 142 4>,			/* Rx desc ring id #15 IRQ info */
 | 
				
			||||||
 | 
									   <0 191 4>,			/* Misc error IRQ info */
 | 
				
			||||||
 | 
									<0 160 4>,			/* PPEDS Node #1(TxComp ring id #1) TxComplete IRQ info */
 | 
				
			||||||
 | 
									<0 128 4>,			/* PPEDS Node #1(Rx Desc ring id #1) Rx Desc IRQ info */
 | 
				
			||||||
 | 
									<0 152 4>,			/* PPEDS Node #1(RxFill Desc ring id #1) Rx Fill IRQ info */
 | 
				
			||||||
 | 
									<0 161 4>,			/* PPEDS Node #2(TxComp ring id #2) TxComplete IRQ info */
 | 
				
			||||||
 | 
									<0 129 4>,			/* PPEDS Node #2(Rx Desc ring id #2) Rx Desc IRQ info */
 | 
				
			||||||
 | 
									<0 153 4>,                      /* PPEDS Node #2(RxFill Desc ring id #2) Rx Fill IRQ info */
 | 
				
			||||||
 | 
									<0 175 4>,                   /* MHT port Tx complete ring id #16 IRQ info */
 | 
				
			||||||
 | 
									<0 176 4>,                   /* MHT port Tx complete ring id #17 IRQ info */
 | 
				
			||||||
 | 
									<0 177 4>,                   /* MHT port Tx complete ring id #18 IRQ info */
 | 
				
			||||||
 | 
									<0 178 4>,                   /* MHT port Tx complete ring id #19 IRQ info */
 | 
				
			||||||
 | 
									<0 179 4>,                   /* MHT port Tx complete ring id #20 IRQ info */
 | 
				
			||||||
 | 
									<0 180 4>,                   /* MHT port Tx complete ring id #21 IRQ info */
 | 
				
			||||||
 | 
									<0 181 4>,                   /* MHT port Tx complete ring id #22 IRQ info */
 | 
				
			||||||
 | 
									<0 182 4>;                   /* MHT port Tx complete ring id #23 IRQ info */
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							leds {
 | 
				
			||||||
 | 
					                compatible = "gpio-leds";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									led@25 {
 | 
				
			||||||
 | 
										label = "blue:status";
 | 
				
			||||||
 | 
										gpios = <&tca6416 9 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
					                    default-state = "off";
 | 
				
			||||||
 | 
					                };
 | 
				
			||||||
 | 
									led@61 {
 | 
				
			||||||
 | 
										label = "green:phy";
 | 
				
			||||||
 | 
										gpios = <&tca6416 15 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
									led@62 {
 | 
				
			||||||
 | 
										label = "yellow:phy";
 | 
				
			||||||
 | 
										gpios = <&tca6416 14 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							gpio_keys {
 | 
				
			||||||
 | 
								compatible = "gpio-keys";
 | 
				
			||||||
 | 
								pinctrl-0 = <&button_pins>;
 | 
				
			||||||
 | 
								pinctrl-names = "default";
 | 
				
			||||||
 | 
								button@1 {
 | 
				
			||||||
 | 
									label = "rst";
 | 
				
			||||||
 | 
									linux,code = <KEY_RESTART>;
 | 
				
			||||||
 | 
									gpios = <&tlmm 1 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
 | 
									linux,input-type = <1>;
 | 
				
			||||||
 | 
									debounce-interval = <60>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							wsi: wsi {
 | 
				
			||||||
 | 
								id = <0>;
 | 
				
			||||||
 | 
								num_chip = <2>;
 | 
				
			||||||
 | 
								status = "okay";
 | 
				
			||||||
 | 
								chip_info = <0 1 1>,
 | 
				
			||||||
 | 
									    <1 1 0>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&wifi0 {
 | 
				
			||||||
 | 
					//	led-gpio = <&tlmm 36 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
						qcom,rproc = <&q6_wcss_pd1>;
 | 
				
			||||||
 | 
						qcom,rproc_rpd = <&q6v5_wcss>;
 | 
				
			||||||
 | 
						qcom,multipd_arch;
 | 
				
			||||||
 | 
						qcom,userpd-subsys-name = "q6v5_wcss_userpd1";
 | 
				
			||||||
 | 
						memory-region = <&q6_region>;
 | 
				
			||||||
 | 
						qcom,wsi = <&wsi>;
 | 
				
			||||||
 | 
						qcom,wsi_index = <0>;
 | 
				
			||||||
 | 
						qcom,board_id = <0x16>;
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qcn9224_pcie1 {
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&blsp1_uart0 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&serial_0_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&blsp1_uart1 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&serial_1_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&blsp1_i2c2 {
 | 
				
			||||||
 | 
						clock-frequency  = <400000>;
 | 
				
			||||||
 | 
						pinctrl-0 = <&i2c_0_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						tca6416: gpio@20 {
 | 
				
			||||||
 | 
							compatible = "ti,tca6416";
 | 
				
			||||||
 | 
							reg = <0x20>;
 | 
				
			||||||
 | 
							gpio-controller;
 | 
				
			||||||
 | 
							#gpio-cells = <2>;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&blsp1_spi0 {   //nor flash
 | 
				
			||||||
 | 
						pinctrl-0 = <&spi_0_data_clk_pins &spi_0_cs_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						flash@0 {
 | 
				
			||||||
 | 
							compatible = "n25q128a11"; 
 | 
				
			||||||
 | 
							//, "jedec,spi-nor";
 | 
				
			||||||
 | 
							reg = <0>;
 | 
				
			||||||
 | 
							#address-cells = <1>;
 | 
				
			||||||
 | 
							#size-cells = <1>;
 | 
				
			||||||
 | 
							spi-max-frequency = <50000000>;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&blsp1_spi1 {   /*tpm*/
 | 
				
			||||||
 | 
						pinctrl-0 = <&spi_1_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						cs-select = <0>;
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						tpm: spi-tpm@0 {
 | 
				
			||||||
 | 
							#address-cells = <1>;
 | 
				
			||||||
 | 
							#size-cells = <1>;
 | 
				
			||||||
 | 
							compatible = "st,st33htpm-spi";
 | 
				
			||||||
 | 
							reg = <0>;
 | 
				
			||||||
 | 
							spi-max-frequency = <20000000>;
 | 
				
			||||||
 | 
							status = "okay";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcm {
 | 
				
			||||||
 | 
						pinctrl-0 = <&audio_pins_pri>;
 | 
				
			||||||
 | 
						pinctrl-names = "primary";
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&sdhc {
 | 
				
			||||||
 | 
						bus-width = <4>;
 | 
				
			||||||
 | 
						max-frequency = <192000000>;
 | 
				
			||||||
 | 
						mmc-ddr-1_8v;
 | 
				
			||||||
 | 
						mmc-hs200-1_8v;
 | 
				
			||||||
 | 
						non-removable;
 | 
				
			||||||
 | 
						pinctrl-0 = <&sdc_default_state>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&sleep_clk {
 | 
				
			||||||
 | 
						clock-frequency = <32000>;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&xo {
 | 
				
			||||||
 | 
						clock-frequency = <24000000>;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qpic_bam {
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qpic_nand {
 | 
				
			||||||
 | 
						pinctrl-0 = <&qspi_default_state>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						nandcs@0 {
 | 
				
			||||||
 | 
							reg = <0>;
 | 
				
			||||||
 | 
							#address-cells = <1>;
 | 
				
			||||||
 | 
							#size-cells = <1>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							nand-ecc-strength = <8>;
 | 
				
			||||||
 | 
							nand-ecc-step-size = <512>;
 | 
				
			||||||
 | 
							nand-bus-width = <8>;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie1_phy_x2 {
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie1 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&pcie1_default_state>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						perst-gpios = <&tlmm 47 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						pcie1_rp {
 | 
				
			||||||
 | 
							reg = <0 0 0 0 0>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							qcom,mhi@1 {
 | 
				
			||||||
 | 
								reg = <0 0 0 0 0>;
 | 
				
			||||||
 | 
								boot-args = <0x2 0x4 0x34 0x3 0x0 0x0     /* MX Rail, GPIO52, Drive strength 0x3 */
 | 
				
			||||||
 | 
										0x4 0x4 0x18 0x3 0x0 0x0  /* RFA1p2 Rail, GPIO24, Drive strength 0x3 */
 | 
				
			||||||
 | 
										0x0 0x4 0x0 0x0 0x0 0x0>; /* End of arguments */
 | 
				
			||||||
 | 
								memory-region = <&qcn9224_pcie1>;
 | 
				
			||||||
 | 
								qcom,wsi = <&wsi>;
 | 
				
			||||||
 | 
								qcom,wsi_index = <1>;
 | 
				
			||||||
 | 
								qcom,board_id = <0x100f>;  //0x1019->0x100f
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* PINCTRL */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&tlmm {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						audio_pins_pri: audio_pinmux_pri {
 | 
				
			||||||
 | 
							mux_1 {
 | 
				
			||||||
 | 
								pins = "gpio29";
 | 
				
			||||||
 | 
								function = "audio_pri";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							mux_2 {
 | 
				
			||||||
 | 
								pins = "gpio30";
 | 
				
			||||||
 | 
								function = "audio_pri";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							mux_3 {
 | 
				
			||||||
 | 
								pins = "gpio31";
 | 
				
			||||||
 | 
								function = "audio_pri";
 | 
				
			||||||
 | 
								drive-strength = <4>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							mux_4 {
 | 
				
			||||||
 | 
								pins = "gpio32";
 | 
				
			||||||
 | 
								function = "audio_pri";
 | 
				
			||||||
 | 
								drive-strength = <4>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						i2c_0_pins: i2c-0-state {
 | 
				
			||||||
 | 
							pins = "gpio43", "gpio45";
 | 
				
			||||||
 | 
							function = "blsp2_i2c0";
 | 
				
			||||||
 | 
							drive-strength = <8>;
 | 
				
			||||||
 | 
							bias-pull-up;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						spi_1_pins: spi-1-pins {  /* tpm */
 | 
				
			||||||
 | 
							pins = "gpio29", "gpio30", "gpio31", "gpio32";
 | 
				
			||||||
 | 
							function = "blsp1_spi0";
 | 
				
			||||||
 | 
							drive-strength = <8>;
 | 
				
			||||||
 | 
							bias-pull-down;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						sdc_default_state: sdc-default-state {
 | 
				
			||||||
 | 
							clk-pins {
 | 
				
			||||||
 | 
								pins = "gpio13";
 | 
				
			||||||
 | 
								function = "sdc_clk";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							cmd-pins {
 | 
				
			||||||
 | 
								pins = "gpio12";
 | 
				
			||||||
 | 
								function = "sdc_cmd";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							data-pins {
 | 
				
			||||||
 | 
								pins = "gpio8", "gpio9", "gpio10", "gpio11";
 | 
				
			||||||
 | 
								function = "sdc_data";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						spi_0_data_clk_pins: spi-0-data-clk-state {
 | 
				
			||||||
 | 
							pins = "gpio14", "gpio15", "gpio16";
 | 
				
			||||||
 | 
							function = "blsp0_spi";
 | 
				
			||||||
 | 
							drive-strength = <2>;
 | 
				
			||||||
 | 
							bias-pull-down;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						spi_0_cs_pins: spi-0-cs-state {
 | 
				
			||||||
 | 
							pins = "gpio17";
 | 
				
			||||||
 | 
							function = "blsp0_spi";
 | 
				
			||||||
 | 
							drive-strength = <2>;
 | 
				
			||||||
 | 
							bias-pull-up;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						qspi_default_state: qspi-default-state {
 | 
				
			||||||
 | 
							qspi_clock {
 | 
				
			||||||
 | 
								pins = "gpio13";
 | 
				
			||||||
 | 
								function = "qspi_clk";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							qspi_cs {
 | 
				
			||||||
 | 
								pins = "gpio12";
 | 
				
			||||||
 | 
								function = "qspi_cs";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							qspi_data {
 | 
				
			||||||
 | 
								pins = "gpio8", "gpio9", "gpio10", "gpio11";
 | 
				
			||||||
 | 
								function = "qspi_data";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						serial_1_pins: serial1-pinmux { /*ble*/
 | 
				
			||||||
 | 
					//		pins = "gpio33", "gpio34", "gpio35", "gpio36";
 | 
				
			||||||
 | 
							pins = "gpio33", "gpio35";
 | 
				
			||||||
 | 
							function = "blsp1_uart2";
 | 
				
			||||||
 | 
							drive-strength = <8>;
 | 
				
			||||||
 | 
							bias-pull-up;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*	gpio_leds_default: gpio-leds-default-state {
 | 
				
			||||||
 | 
							pins = "gpio36";
 | 
				
			||||||
 | 
							function = "gpio";
 | 
				
			||||||
 | 
							drive-strength = <8>;
 | 
				
			||||||
 | 
							bias-pull-down;
 | 
				
			||||||
 | 
						};*/
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						button_pins: button-state {
 | 
				
			||||||
 | 
							pins = "gpio1";
 | 
				
			||||||
 | 
							function = "gpio";
 | 
				
			||||||
 | 
							drive-strength = <8>;
 | 
				
			||||||
 | 
							bias-pull-up;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						pwm_pins: pwm-state {
 | 
				
			||||||
 | 
							pins = "gpio46";
 | 
				
			||||||
 | 
							function = "pwm0";
 | 
				
			||||||
 | 
							drive-strength = <8>;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						pcie1_default_state: pcie1-default-state {
 | 
				
			||||||
 | 
							pins = "gpio47";
 | 
				
			||||||
 | 
							function = "gpio";
 | 
				
			||||||
 | 
							drive-strength = <8>;
 | 
				
			||||||
 | 
							bias-pull-up;
 | 
				
			||||||
 | 
							output-low;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&license_manager {
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&usb3 {
 | 
				
			||||||
 | 
						qcom,multiplexed-phy;
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pwm {
 | 
				
			||||||
 | 
						pinctrl-0 = <&pwm_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&hs_m31phy_0 {
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&ssuniphy_0 {
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//sercomm add
 | 
				
			||||||
 | 
					&wifi3 {
 | 
				
			||||||
 | 
						/* QCN9224 5G+6G */
 | 
				
			||||||
 | 
						hremote_node = <&qcn9224_pcie1>;
 | 
				
			||||||
 | 
						qcom,board_id = <0x100f>; 
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
							
								
								
									
										601
									
								
								feeds/qca-wifi-7/ipq53xx/dts/ipq5332-sercomm-ap72tip.dts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										601
									
								
								feeds/qca-wifi-7/ipq53xx/dts/ipq5332-sercomm-ap72tip.dts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,601 @@
 | 
				
			|||||||
 | 
					// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * IPQ5332 RDP468 board device tree source
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Copyright (c) 2020-2021 The Linux Foundation. All rights reserved.
 | 
				
			||||||
 | 
					 * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/dts-v1/;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <dt-bindings/gpio/gpio.h>
 | 
				
			||||||
 | 
					#include <dt-bindings/input/input.h>
 | 
				
			||||||
 | 
					#include <dt-bindings/leds/common.h>
 | 
				
			||||||
 | 
					#include "ipq5332.dtsi"
 | 
				
			||||||
 | 
					#include "ipq5332-default-memory.dtsi"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/ {
 | 
				
			||||||
 | 
						model = "Sercomm WiFi-7";
 | 
				
			||||||
 | 
						compatible = "sercomm,ap72tip", "qcom,ipq5332-ap-mi01.6", "qcom,ipq5332";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						aliases {
 | 
				
			||||||
 | 
							serial0 = &blsp1_uart0; /*console*/
 | 
				
			||||||
 | 
							serial1 = &blsp1_uart1; /*ble*/
 | 
				
			||||||
 | 
							ethernet0 = "/soc/dp1";
 | 
				
			||||||
 | 
							ethernet1 = "/soc/dp2";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						chosen {
 | 
				
			||||||
 | 
							stdout-path = "serial0";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						soc@0 {
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					#if 1   //AQR114C
 | 
				
			||||||
 | 
							mdio:mdio@90000 {
 | 
				
			||||||
 | 
								pinctrl-0 = <&mdio1_pins>;
 | 
				
			||||||
 | 
								pinctrl-names = "default";
 | 
				
			||||||
 | 
								phy-reset-gpio = <&tlmm 0 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
 | 
								phyaddr_fixup = <0xC90F018>;
 | 
				
			||||||
 | 
								uniphyaddr_fixup = <0xC90F014>;
 | 
				
			||||||
 | 
								mdio_clk_fixup; /* MDIO clock sequence fix up flag */
 | 
				
			||||||
 | 
								status = "okay";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								phy0: ethernet-phy@0 {
 | 
				
			||||||
 | 
									reg = <24>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								phy1: ethernet-phy@1 {   //aqr114c
 | 
				
			||||||
 | 
									reg = <0>;
 | 
				
			||||||
 | 
									compatible ="ethernet-phy-ieee802.3-c45";
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							ess-instance {
 | 
				
			||||||
 | 
								ess-switch@3a000000 {
 | 
				
			||||||
 | 
									switch_cpu_bmp = <0x1>;  /* cpu port bitmap */
 | 
				
			||||||
 | 
									switch_lan_bmp = <0x0>; /* lan port bitmap */
 | 
				
			||||||
 | 
									switch_wan_bmp = <0x6>; /* wan port bitmap */
 | 
				
			||||||
 | 
									switch_mac_mode = <0xc>; /* mac mode for uniphy instance0*/
 | 
				
			||||||
 | 
									switch_mac_mode1 = <0xf>; /* mac mode for uniphy instance1*/
 | 
				
			||||||
 | 
									switch_mac_mode2 = <0xff>; /* mac mode for uniphy instance2*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									qcom,port_phyinfo {
 | 
				
			||||||
 | 
										port@0 {
 | 
				
			||||||
 | 
											port_id = <1>;
 | 
				
			||||||
 | 
											phy_address = <24>;
 | 
				
			||||||
 | 
											mdiobus = <&mdio>;
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
										port@1 { //aqr114c
 | 
				
			||||||
 | 
											port_id = <2>;
 | 
				
			||||||
 | 
											phy_address = <0>;
 | 
				
			||||||
 | 
											mdiobus = <&mdio>;
 | 
				
			||||||
 | 
											ethernet-phy-ieee802.3-c45;
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							dp1 {
 | 
				
			||||||
 | 
								device_type = "network";
 | 
				
			||||||
 | 
								compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
								qcom,id = <1>;
 | 
				
			||||||
 | 
								reg = <0x3a500000 0x4000>;
 | 
				
			||||||
 | 
								qcom,mactype = <1>;
 | 
				
			||||||
 | 
								local-mac-address = [000000000000];
 | 
				
			||||||
 | 
								mdio-bus = <&mdio>;
 | 
				
			||||||
 | 
								qcom,phy-mdio-addr = <24>;
 | 
				
			||||||
 | 
								qcom,link-poll = <1>;
 | 
				
			||||||
 | 
								phy-mode = "sgmii";
 | 
				
			||||||
 | 
							};	
 | 
				
			||||||
 | 
							dp2 {
 | 
				
			||||||
 | 
								device_type = "network";
 | 
				
			||||||
 | 
								compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
								qcom,id = <2>;
 | 
				
			||||||
 | 
								reg = <0x3a504000 0x4000>;
 | 
				
			||||||
 | 
								qcom,mactype = <1>;
 | 
				
			||||||
 | 
								local-mac-address = [000000000000];
 | 
				
			||||||
 | 
								qcom,phy-mdio-addr = <0>;
 | 
				
			||||||
 | 
								qcom,link-poll = <1>;
 | 
				
			||||||
 | 
								phy-mode = "sgmii";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					#else //SFP	
 | 
				
			||||||
 | 
							dp1 {
 | 
				
			||||||
 | 
								device_type = "network";
 | 
				
			||||||
 | 
								compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
								qcom,id = <1>;
 | 
				
			||||||
 | 
								reg = <0x3a500000 0x4000>;
 | 
				
			||||||
 | 
								qcom,mactype = <1>;
 | 
				
			||||||
 | 
								local-mac-address = [000000000000];
 | 
				
			||||||
 | 
								mdio-bus = <&mdio>;
 | 
				
			||||||
 | 
								qcom,phy-mdio-addr = <24>;
 | 
				
			||||||
 | 
								qcom,link-poll = <1>;
 | 
				
			||||||
 | 
								phy-mode = "sgmii";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							dp2 {
 | 
				
			||||||
 | 
								device_type = "network";
 | 
				
			||||||
 | 
								compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
								qcom,id = <2>;
 | 
				
			||||||
 | 
								reg = <0x3a504000 0x4000>;
 | 
				
			||||||
 | 
								qcom,mactype = <1>;
 | 
				
			||||||
 | 
								local-mac-address = [000000000000];
 | 
				
			||||||
 | 
								mdio-bus = <&mdio>;
 | 
				
			||||||
 | 
								qcom,phy-mdio-addr = <30>;
 | 
				
			||||||
 | 
								qcom,link-poll = <1>;
 | 
				
			||||||
 | 
								phy-mode = "sgmii";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							mdio:mdio@90000 { 
 | 
				
			||||||
 | 
								status = "okay";
 | 
				
			||||||
 | 
								pinctrl-0 = <&mdio1_pins>;
 | 
				
			||||||
 | 
								pinctrl-names = "default";
 | 
				
			||||||
 | 
								/*gpio0 for napa*/
 | 
				
			||||||
 | 
								phy-reset-gpio = <&tlmm 0 0>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								phy0: ethernet-phy@0 {
 | 
				
			||||||
 | 
									reg = <24>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							ess-instance {
 | 
				
			||||||
 | 
								ess-switch@3a000000 {
 | 
				
			||||||
 | 
									switch_cpu_bmp = <0x1>;  /* cpu port bitmap */
 | 
				
			||||||
 | 
									switch_lan_bmp = <0x0>; /* lan port bitmap */
 | 
				
			||||||
 | 
									switch_wan_bmp = <0x6>; /* wan port bitmap */
 | 
				
			||||||
 | 
									switch_mac_mode = <0xc>; /* mac mode for uniphy instance0*/
 | 
				
			||||||
 | 
									switch_mac_mode1 = <0xe>; /* mac mode for uniphy instance1  sfp PORT_WRAPPER_10GBASE_R*/
 | 
				
			||||||
 | 
									switch_mac_mode2 = <0xff>; /* mac mode for uniphy instance2*/
 | 
				
			||||||
 | 
									qcom,port_phyinfo {
 | 
				
			||||||
 | 
										port@0 {
 | 
				
			||||||
 | 
											port_id = <1>;
 | 
				
			||||||
 | 
											phy_address = <24>;
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
										port@1 {
 | 
				
			||||||
 | 
											port_id = <2>;
 | 
				
			||||||
 | 
											phy_address = <30>;
 | 
				
			||||||
 | 
											media-type = "sfp"; 
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							/* EDMA host driver configuration for the board */
 | 
				
			||||||
 | 
							edma@3ab00000 {
 | 
				
			||||||
 | 
								qcom,txdesc-ring-start = <4>;		/* Tx desc ring start ID */
 | 
				
			||||||
 | 
								qcom,txdesc-rings = <12>;		/* Total number of Tx desc rings to be provisioned */
 | 
				
			||||||
 | 
								qcom,mht-txdesc-rings = <8>;            /* Extra Tx desc rings to be provisioned for MHT SW ports */
 | 
				
			||||||
 | 
								qcom,txcmpl-ring-start = <4>;		/* Tx complete ring start ID */
 | 
				
			||||||
 | 
								qcom,txcmpl-rings = <12>;		/* Total number of Tx complete rings to be provisioned */
 | 
				
			||||||
 | 
								qcom,mht-txcmpl-rings = <8>;            /* Extra Tx complete rings to be provisioned for mht sw ports. */
 | 
				
			||||||
 | 
								qcom,rxfill-ring-start = <4>;		/* Rx fill ring start ID */
 | 
				
			||||||
 | 
								qcom,rxfill-rings = <4>;		/* Total number of Rx fill rings to be provisioned */
 | 
				
			||||||
 | 
								qcom,rxdesc-ring-start = <12>;		/* Rx desc ring start ID */
 | 
				
			||||||
 | 
								qcom,rxdesc-rings = <4>;		/* Total number of Rx desc rings to be provisioned */
 | 
				
			||||||
 | 
								qcom,rx-page-mode = <0>;		/* Rx fill ring page mode */
 | 
				
			||||||
 | 
								qcom,tx-map-priority-level = <1>;	/* Tx priority level per port */
 | 
				
			||||||
 | 
								qcom,rx-map-priority-level = <1>;	/* Rx priority level per core */
 | 
				
			||||||
 | 
								qcom,ppeds-num = <2>;			/* Number of PPEDS nodes */
 | 
				
			||||||
 | 
								/* PPE-DS node format: <Rx-fill Tx-cmpl Rx Tx Queue-base Queue-count> */
 | 
				
			||||||
 | 
								qcom,ppeds-map = <1 1 1 1 32 8>,	/* PPEDS Node#0 ring and queue map */
 | 
				
			||||||
 | 
										<2 2 2 2 40 8>;		/* PPEDS Node#1 ring and queue map */
 | 
				
			||||||
 | 
								qcom,txdesc-map = <8 9 10 11>,		/* Port0 per-core Tx ring map */
 | 
				
			||||||
 | 
										<12 13 14 15>,        /* MHT-Port1 per-core Tx ring map */
 | 
				
			||||||
 | 
										<4 5 6 7>,            /* MHT-Port2 per-core Tx ring map/packets from  vp*/
 | 
				
			||||||
 | 
										<16 17 18 19>,        /* MHT-Port3 per-core Tx ring map */
 | 
				
			||||||
 | 
										<20 21 22 23>;        /* MHT-Port4 per-core Tx ring map */
 | 
				
			||||||
 | 
								qcom,txdesc-fc-grp-map = <1 2 3 4 5>;   /* Per GMAC flow control group map */
 | 
				
			||||||
 | 
								qcom,rxfill-map = <4 5 6 7>;		/* Per-core Rx fill ring map */
 | 
				
			||||||
 | 
								qcom,rxdesc-map = <12 13 14 15>;	/* Per-core Rx desc ring map */
 | 
				
			||||||
 | 
								qcom,rx-queue-start = <0>;		/* Rx queue start */
 | 
				
			||||||
 | 
								qcom,rx-ring-queue-map = <0 8 16 24>,	/* Priority 0 queues per-core Rx ring map */
 | 
				
			||||||
 | 
											<1 9 17 25>,	/* Priority 1 queues per-core Rx ring map */
 | 
				
			||||||
 | 
											<2 10 18 26>,	/* Priority 2 queues per-core Rx ring map */
 | 
				
			||||||
 | 
											<3 11 19 27>,	/* Priority 3 queues per-core Rx ring map */
 | 
				
			||||||
 | 
											<4 12 20 28>,	/* Priority 4 queues per-core Rx ring map */
 | 
				
			||||||
 | 
											<5 13 21 29>,	/* Priority 5 queues per-core Rx ring map */
 | 
				
			||||||
 | 
											<6 14 22 30>,	/* Priority 6 queues per-core Rx ring map */
 | 
				
			||||||
 | 
											<7 15 23 31>;	/* Priority 7 queues per-core Rx ring map */
 | 
				
			||||||
 | 
								interrupts = <0 163 4>,			/* Tx complete ring id #4 IRQ info */
 | 
				
			||||||
 | 
									   <0 164 4>,			/* Tx complete ring id #5 IRQ info */
 | 
				
			||||||
 | 
									   <0 165 4>,			/* Tx complete ring id #6 IRQ info */
 | 
				
			||||||
 | 
									   <0 166 4>,			/* Tx complete ring id #7 IRQ info */
 | 
				
			||||||
 | 
									   <0 167 4>,			/* Tx complete ring id #8 IRQ info */
 | 
				
			||||||
 | 
									   <0 168 4>,			/* Tx complete ring id #9 IRQ info */
 | 
				
			||||||
 | 
									   <0 169 4>,			/* Tx complete ring id #10 IRQ info */
 | 
				
			||||||
 | 
									   <0 170 4>,			/* Tx complete ring id #11 IRQ info */
 | 
				
			||||||
 | 
									   <0 171 4>,			/* Tx complete ring id #12 IRQ info */
 | 
				
			||||||
 | 
									   <0 172 4>,			/* Tx complete ring id #13 IRQ info */
 | 
				
			||||||
 | 
									   <0 173 4>,			/* Tx complete ring id #14 IRQ info */
 | 
				
			||||||
 | 
									   <0 174 4>,			/* Tx complete ring id #15 IRQ info */
 | 
				
			||||||
 | 
									   <0 139 4>,			/* Rx desc ring id #12 IRQ info */
 | 
				
			||||||
 | 
									   <0 140 4>,			/* Rx desc ring id #13 IRQ info */
 | 
				
			||||||
 | 
									   <0 141 4>,			/* Rx desc ring id #14 IRQ info */
 | 
				
			||||||
 | 
									   <0 142 4>,			/* Rx desc ring id #15 IRQ info */
 | 
				
			||||||
 | 
									   <0 191 4>,			/* Misc error IRQ info */
 | 
				
			||||||
 | 
									<0 160 4>,			/* PPEDS Node #1(TxComp ring id #1) TxComplete IRQ info */
 | 
				
			||||||
 | 
									<0 128 4>,			/* PPEDS Node #1(Rx Desc ring id #1) Rx Desc IRQ info */
 | 
				
			||||||
 | 
									<0 152 4>,			/* PPEDS Node #1(RxFill Desc ring id #1) Rx Fill IRQ info */
 | 
				
			||||||
 | 
									<0 161 4>,			/* PPEDS Node #2(TxComp ring id #2) TxComplete IRQ info */
 | 
				
			||||||
 | 
									<0 129 4>,			/* PPEDS Node #2(Rx Desc ring id #2) Rx Desc IRQ info */
 | 
				
			||||||
 | 
									<0 153 4>,                      /* PPEDS Node #2(RxFill Desc ring id #2) Rx Fill IRQ info */
 | 
				
			||||||
 | 
									<0 175 4>,                   /* MHT port Tx complete ring id #16 IRQ info */
 | 
				
			||||||
 | 
									<0 176 4>,                   /* MHT port Tx complete ring id #17 IRQ info */
 | 
				
			||||||
 | 
									<0 177 4>,                   /* MHT port Tx complete ring id #18 IRQ info */
 | 
				
			||||||
 | 
									<0 178 4>,                   /* MHT port Tx complete ring id #19 IRQ info */
 | 
				
			||||||
 | 
									<0 179 4>,                   /* MHT port Tx complete ring id #20 IRQ info */
 | 
				
			||||||
 | 
									<0 180 4>,                   /* MHT port Tx complete ring id #21 IRQ info */
 | 
				
			||||||
 | 
									<0 181 4>,                   /* MHT port Tx complete ring id #22 IRQ info */
 | 
				
			||||||
 | 
									<0 182 4>;                   /* MHT port Tx complete ring id #23 IRQ info */
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							leds {
 | 
				
			||||||
 | 
					                compatible = "gpio-leds";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									led@25 {
 | 
				
			||||||
 | 
										label = "blue:status";
 | 
				
			||||||
 | 
										gpios = <&tca6416 9 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
					                    default-state = "off";
 | 
				
			||||||
 | 
					                };
 | 
				
			||||||
 | 
									led@24 {
 | 
				
			||||||
 | 
										label = "red:status";
 | 
				
			||||||
 | 
										gpios = <&tca6416 10 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
									led_power: led@16 {
 | 
				
			||||||
 | 
					                                label = "green:status";
 | 
				
			||||||
 | 
										gpios = <&tca6416 11 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
									led@61 {
 | 
				
			||||||
 | 
										label = "green:phy";
 | 
				
			||||||
 | 
										gpios = <&tca6416 15 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
									led@62 {
 | 
				
			||||||
 | 
										label = "yellow:phy";
 | 
				
			||||||
 | 
										gpios = <&tca6416 14 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
							gpio_keys {
 | 
				
			||||||
 | 
								compatible = "gpio-keys";
 | 
				
			||||||
 | 
								pinctrl-0 = <&button_pins>;
 | 
				
			||||||
 | 
								pinctrl-names = "default";
 | 
				
			||||||
 | 
								button@1 {
 | 
				
			||||||
 | 
									label = "rst";
 | 
				
			||||||
 | 
									linux,code = <KEY_RESTART>;
 | 
				
			||||||
 | 
									gpios = <&tlmm 25 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
 | 
									linux,input-type = <1>;
 | 
				
			||||||
 | 
									debounce-interval = <60>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							wsi: wsi {
 | 
				
			||||||
 | 
								id = <0>;
 | 
				
			||||||
 | 
								num_chip = <2>;
 | 
				
			||||||
 | 
								status = "okay";
 | 
				
			||||||
 | 
								chip_info = <0 1 1>,
 | 
				
			||||||
 | 
									    <1 1 0>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&wifi0 {
 | 
				
			||||||
 | 
					//	led-gpio = <&tlmm 36 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
						qcom,rproc = <&q6_wcss_pd1>;
 | 
				
			||||||
 | 
						qcom,rproc_rpd = <&q6v5_wcss>;
 | 
				
			||||||
 | 
						qcom,multipd_arch;
 | 
				
			||||||
 | 
						qcom,userpd-subsys-name = "q6v5_wcss_userpd1";
 | 
				
			||||||
 | 
						memory-region = <&q6_region>;
 | 
				
			||||||
 | 
						qcom,wsi = <&wsi>;
 | 
				
			||||||
 | 
						qcom,wsi_index = <0>;
 | 
				
			||||||
 | 
						qcom,board_id = <0x16>;
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qcn9224_pcie1 {
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&blsp1_uart0 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&serial_0_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&blsp1_uart1 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&serial_1_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&blsp1_i2c2 {
 | 
				
			||||||
 | 
						clock-frequency  = <400000>;
 | 
				
			||||||
 | 
						pinctrl-0 = <&i2c_0_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						tca6416: gpio@20 {
 | 
				
			||||||
 | 
							compatible = "ti,tca6416";
 | 
				
			||||||
 | 
							reg = <0x20>;
 | 
				
			||||||
 | 
							gpio-controller;
 | 
				
			||||||
 | 
							#gpio-cells = <2>;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&blsp1_spi0 {   //nor flash
 | 
				
			||||||
 | 
						pinctrl-0 = <&spi_0_data_clk_pins &spi_0_cs_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						flash@0 {
 | 
				
			||||||
 | 
							compatible = "n25q128a11"; 
 | 
				
			||||||
 | 
							//, "jedec,spi-nor";
 | 
				
			||||||
 | 
							reg = <0>;
 | 
				
			||||||
 | 
							#address-cells = <1>;
 | 
				
			||||||
 | 
							#size-cells = <1>;
 | 
				
			||||||
 | 
							spi-max-frequency = <50000000>;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&blsp1_spi1 {   /*tpm*/
 | 
				
			||||||
 | 
						pinctrl-0 = <&spi_1_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						cs-select = <0>;
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						tpm: spi-tpm@0 {
 | 
				
			||||||
 | 
							#address-cells = <1>;
 | 
				
			||||||
 | 
							#size-cells = <1>;
 | 
				
			||||||
 | 
							compatible = "st,st33htpm-spi";
 | 
				
			||||||
 | 
							reg = <0>;
 | 
				
			||||||
 | 
							spi-max-frequency = <20000000>;
 | 
				
			||||||
 | 
							status = "okay";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcm {
 | 
				
			||||||
 | 
						pinctrl-0 = <&audio_pins_pri>;
 | 
				
			||||||
 | 
						pinctrl-names = "primary";
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&sdhc {
 | 
				
			||||||
 | 
						bus-width = <4>;
 | 
				
			||||||
 | 
						max-frequency = <192000000>;
 | 
				
			||||||
 | 
						mmc-ddr-1_8v;
 | 
				
			||||||
 | 
						mmc-hs200-1_8v;
 | 
				
			||||||
 | 
						non-removable;
 | 
				
			||||||
 | 
						pinctrl-0 = <&sdc_default_state>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&sleep_clk {
 | 
				
			||||||
 | 
						clock-frequency = <32000>;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&xo {
 | 
				
			||||||
 | 
						clock-frequency = <24000000>;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qpic_bam {
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qpic_nand {
 | 
				
			||||||
 | 
						pinctrl-0 = <&qspi_default_state>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						nandcs@0 {
 | 
				
			||||||
 | 
							reg = <0>;
 | 
				
			||||||
 | 
							#address-cells = <1>;
 | 
				
			||||||
 | 
							#size-cells = <1>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							nand-ecc-strength = <8>;
 | 
				
			||||||
 | 
							nand-ecc-step-size = <512>;
 | 
				
			||||||
 | 
							nand-bus-width = <8>;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie1_phy_x2 {
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie1 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&pcie1_default_state>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						perst-gpios = <&tlmm 47 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						pcie1_rp {
 | 
				
			||||||
 | 
							reg = <0 0 0 0 0>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							qcom,mhi@1 {
 | 
				
			||||||
 | 
								reg = <0 0 0 0 0>;
 | 
				
			||||||
 | 
								boot-args = <0x2 0x4 0x34 0x3 0x0 0x0     /* MX Rail, GPIO52, Drive strength 0x3 */
 | 
				
			||||||
 | 
										0x4 0x4 0x18 0x3 0x0 0x0  /* RFA1p2 Rail, GPIO24, Drive strength 0x3 */
 | 
				
			||||||
 | 
										0x0 0x4 0x0 0x0 0x0 0x0>; /* End of arguments */
 | 
				
			||||||
 | 
								memory-region = <&qcn9224_pcie1>;
 | 
				
			||||||
 | 
								qcom,wsi = <&wsi>;
 | 
				
			||||||
 | 
								qcom,wsi_index = <1>;
 | 
				
			||||||
 | 
								qcom,board_id = <0x100f>;  //0x1019->0x100f
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* PINCTRL */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&tlmm {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						audio_pins_pri: audio_pinmux_pri {
 | 
				
			||||||
 | 
							mux_1 {
 | 
				
			||||||
 | 
								pins = "gpio29";
 | 
				
			||||||
 | 
								function = "audio_pri";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							mux_2 {
 | 
				
			||||||
 | 
								pins = "gpio30";
 | 
				
			||||||
 | 
								function = "audio_pri";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							mux_3 {
 | 
				
			||||||
 | 
								pins = "gpio31";
 | 
				
			||||||
 | 
								function = "audio_pri";
 | 
				
			||||||
 | 
								drive-strength = <4>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							mux_4 {
 | 
				
			||||||
 | 
								pins = "gpio32";
 | 
				
			||||||
 | 
								function = "audio_pri";
 | 
				
			||||||
 | 
								drive-strength = <4>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						i2c_0_pins: i2c-0-state {
 | 
				
			||||||
 | 
							pins = "gpio43", "gpio45";
 | 
				
			||||||
 | 
							function = "blsp2_i2c0";
 | 
				
			||||||
 | 
							drive-strength = <8>;
 | 
				
			||||||
 | 
							bias-pull-up;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						spi_1_pins: spi-1-pins {  /* tpm */
 | 
				
			||||||
 | 
							pins = "gpio29", "gpio30", "gpio31", "gpio32";
 | 
				
			||||||
 | 
							function = "blsp1_spi0";
 | 
				
			||||||
 | 
							drive-strength = <8>;
 | 
				
			||||||
 | 
							bias-pull-down;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						sdc_default_state: sdc-default-state {
 | 
				
			||||||
 | 
							clk-pins {
 | 
				
			||||||
 | 
								pins = "gpio13";
 | 
				
			||||||
 | 
								function = "sdc_clk";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							cmd-pins {
 | 
				
			||||||
 | 
								pins = "gpio12";
 | 
				
			||||||
 | 
								function = "sdc_cmd";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							data-pins {
 | 
				
			||||||
 | 
								pins = "gpio8", "gpio9", "gpio10", "gpio11";
 | 
				
			||||||
 | 
								function = "sdc_data";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						spi_0_data_clk_pins: spi-0-data-clk-state {
 | 
				
			||||||
 | 
							pins = "gpio14", "gpio15", "gpio16";
 | 
				
			||||||
 | 
							function = "blsp0_spi";
 | 
				
			||||||
 | 
							drive-strength = <2>;
 | 
				
			||||||
 | 
							bias-pull-down;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						spi_0_cs_pins: spi-0-cs-state {
 | 
				
			||||||
 | 
							pins = "gpio17";
 | 
				
			||||||
 | 
							function = "blsp0_spi";
 | 
				
			||||||
 | 
							drive-strength = <2>;
 | 
				
			||||||
 | 
							bias-pull-up;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						qspi_default_state: qspi-default-state {
 | 
				
			||||||
 | 
							qspi_clock {
 | 
				
			||||||
 | 
								pins = "gpio13";
 | 
				
			||||||
 | 
								function = "qspi_clk";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							qspi_cs {
 | 
				
			||||||
 | 
								pins = "gpio12";
 | 
				
			||||||
 | 
								function = "qspi_cs";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							qspi_data {
 | 
				
			||||||
 | 
								pins = "gpio8", "gpio9", "gpio10", "gpio11";
 | 
				
			||||||
 | 
								function = "qspi_data";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						serial_1_pins: serial1-pinmux { /*ble*/
 | 
				
			||||||
 | 
					//		pins = "gpio33", "gpio34", "gpio35", "gpio36";
 | 
				
			||||||
 | 
							pins = "gpio33", "gpio35";
 | 
				
			||||||
 | 
							function = "blsp1_uart2";
 | 
				
			||||||
 | 
							drive-strength = <8>;
 | 
				
			||||||
 | 
							bias-pull-up;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*	gpio_leds_default: gpio-leds-default-state {
 | 
				
			||||||
 | 
							pins = "gpio36";
 | 
				
			||||||
 | 
							function = "gpio";
 | 
				
			||||||
 | 
							drive-strength = <8>;
 | 
				
			||||||
 | 
							bias-pull-down;
 | 
				
			||||||
 | 
						};*/
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
						button_pins: button-state {
 | 
				
			||||||
 | 
							pins = "gpio25";
 | 
				
			||||||
 | 
							function = "gpio";
 | 
				
			||||||
 | 
							drive-strength = <8>;
 | 
				
			||||||
 | 
							bias-pull-up;
 | 
				
			||||||
 | 
						};*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						pwm_pins: pwm-state {
 | 
				
			||||||
 | 
							pins = "gpio46";
 | 
				
			||||||
 | 
							function = "pwm0";
 | 
				
			||||||
 | 
							drive-strength = <8>;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						pcie1_default_state: pcie1-default-state {
 | 
				
			||||||
 | 
							pins = "gpio47";
 | 
				
			||||||
 | 
							function = "gpio";
 | 
				
			||||||
 | 
							drive-strength = <8>;
 | 
				
			||||||
 | 
							bias-pull-up;
 | 
				
			||||||
 | 
							output-low;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&license_manager {
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&usb3 {
 | 
				
			||||||
 | 
						qcom,multiplexed-phy;
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pwm {
 | 
				
			||||||
 | 
						pinctrl-0 = <&pwm_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&hs_m31phy_0 {
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&ssuniphy_0 {
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//sercomm add
 | 
				
			||||||
 | 
					&wifi3 {
 | 
				
			||||||
 | 
						/* QCN9224 5G+6G */
 | 
				
			||||||
 | 
						hremote_node = <&qcn9224_pcie1>;
 | 
				
			||||||
 | 
						qcom,board_id = <0x100f>; 
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
@@ -242,6 +242,10 @@
 | 
				
			|||||||
		serial1 = &blsp1_uart1;
 | 
							serial1 = &blsp1_uart1;
 | 
				
			||||||
		ethernet0 = "/soc/dp1";
 | 
							ethernet0 = "/soc/dp1";
 | 
				
			||||||
		ethernet1 = "/soc/dp2";
 | 
							ethernet1 = "/soc/dp2";
 | 
				
			||||||
 | 
							led-boot = &led_power;
 | 
				
			||||||
 | 
							led-failsafe = &led_power;
 | 
				
			||||||
 | 
							led-running = &led_power;
 | 
				
			||||||
 | 
							led-upgrade = &led_power;
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	chosen {
 | 
						chosen {
 | 
				
			||||||
@@ -324,19 +328,6 @@
 | 
				
			|||||||
			};
 | 
								};
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		leds {
 | 
					 | 
				
			||||||
			compatible = "gpio-leds";
 | 
					 | 
				
			||||||
			pinctrl-0 = <&gpio_leds_default>;
 | 
					 | 
				
			||||||
			pinctrl-names = "default";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			led-0 {
 | 
					 | 
				
			||||||
				color = <LED_COLOR_ID_GREEN>;
 | 
					 | 
				
			||||||
				function = LED_FUNCTION_WLAN;
 | 
					 | 
				
			||||||
				gpios = <&tlmm 36 GPIO_ACTIVE_HIGH>;
 | 
					 | 
				
			||||||
				linux,default-trigger = "phy0tx";
 | 
					 | 
				
			||||||
				default-state = "off";
 | 
					 | 
				
			||||||
			};
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		gpio_keys {
 | 
							gpio_keys {
 | 
				
			||||||
			compatible = "gpio-keys";
 | 
								compatible = "gpio-keys";
 | 
				
			||||||
@@ -345,14 +336,39 @@
 | 
				
			|||||||
			status = "okay";
 | 
								status = "okay";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			button@1 {
 | 
								button@1 {
 | 
				
			||||||
				label = "wps";
 | 
									label = "reset";
 | 
				
			||||||
				linux,code = <KEY_WPS_BUTTON>;
 | 
									linux,code = <KEY_RESTART>;
 | 
				
			||||||
				gpios = <&tlmm 35 GPIO_ACTIVE_LOW>;
 | 
									gpios = <&tlmm 24 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
				linux,input-type = <1>;
 | 
									linux,input-type = <1>;
 | 
				
			||||||
				debounce-interval = <60>;
 | 
									debounce-interval = <60>;
 | 
				
			||||||
			};
 | 
								};
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							pwmleds {
 | 
				
			||||||
 | 
								compatible = "pwm-leds";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								red {
 | 
				
			||||||
 | 
									label = "pwm:red";
 | 
				
			||||||
 | 
									pwms = <&pwm 2 1250000>;
 | 
				
			||||||
 | 
									max-brightness = <1>;
 | 
				
			||||||
 | 
									linux,default-trigger = "none";
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
								green {
 | 
				
			||||||
 | 
									label = "pwm:green";
 | 
				
			||||||
 | 
									pwms = <&pwm 3 1250000>;
 | 
				
			||||||
 | 
									max-brightness = <1>;
 | 
				
			||||||
 | 
									linux,default-trigger = "none";
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
								led_power: blue {
 | 
				
			||||||
 | 
									label = "pwm:blue";
 | 
				
			||||||
 | 
									pwms = <&pwm 1 1250000>;
 | 
				
			||||||
 | 
									max-brightness = <1>;
 | 
				
			||||||
 | 
									linux,default-trigger = "none";
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		ess-instance {
 | 
							ess-instance {
 | 
				
			||||||
			num_devices = <0x2>;
 | 
								num_devices = <0x2>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -411,34 +427,6 @@
 | 
				
			|||||||
					};
 | 
										};
 | 
				
			||||||
				};
 | 
									};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				led_source@2 {
 | 
					 | 
				
			||||||
					source = <2>;
 | 
					 | 
				
			||||||
					mode = "normal";
 | 
					 | 
				
			||||||
					speed = "all";
 | 
					 | 
				
			||||||
					blink_en = "enable";
 | 
					 | 
				
			||||||
					active = "high";
 | 
					 | 
				
			||||||
				};
 | 
					 | 
				
			||||||
				led_source@5 {
 | 
					 | 
				
			||||||
					source = <5>;
 | 
					 | 
				
			||||||
					mode = "normal";
 | 
					 | 
				
			||||||
					speed = "all";
 | 
					 | 
				
			||||||
					blink_en = "enable";
 | 
					 | 
				
			||||||
					active = "high";
 | 
					 | 
				
			||||||
				};
 | 
					 | 
				
			||||||
				led_source@8 {
 | 
					 | 
				
			||||||
					source = <8>;
 | 
					 | 
				
			||||||
					mode = "normal";
 | 
					 | 
				
			||||||
					speed = "all";
 | 
					 | 
				
			||||||
					blink_en = "enable";
 | 
					 | 
				
			||||||
					active = "high";
 | 
					 | 
				
			||||||
				};
 | 
					 | 
				
			||||||
				led_source@11 {
 | 
					 | 
				
			||||||
					source = <11>;
 | 
					 | 
				
			||||||
					mode = "normal";
 | 
					 | 
				
			||||||
					speed = "all";
 | 
					 | 
				
			||||||
					blink_en = "enable";
 | 
					 | 
				
			||||||
					active = "high";
 | 
					 | 
				
			||||||
				};
 | 
					 | 
				
			||||||
			};
 | 
								};
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -549,7 +537,7 @@
 | 
				
			|||||||
			memory-region = <&q6_mem_regions>;
 | 
								memory-region = <&q6_mem_regions>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			q6_wcss_pd1: remoteproc_pd1 {
 | 
								q6_wcss_pd1: remoteproc_pd1 {
 | 
				
			||||||
				status = "ok";
 | 
									status = "okay";
 | 
				
			||||||
			};
 | 
								};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			q6_wcss_pd2: remoteproc_pd2 {
 | 
								q6_wcss_pd2: remoteproc_pd2 {
 | 
				
			||||||
@@ -570,7 +558,7 @@
 | 
				
			|||||||
				qcom,smem-state-names = "shutdown",
 | 
									qcom,smem-state-names = "shutdown",
 | 
				
			||||||
							"stop",
 | 
												"stop",
 | 
				
			||||||
							"spawn";
 | 
												"spawn";
 | 
				
			||||||
				status = "ok";
 | 
									status = "okay";
 | 
				
			||||||
			};
 | 
								};
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
@@ -581,13 +569,13 @@
 | 
				
			|||||||
	pinctrl-names = "default";
 | 
						pinctrl-names = "default";
 | 
				
			||||||
	status = "okay";
 | 
						status = "okay";
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
&blsp1_uart1 {
 | 
					&blsp1_uart1 {
 | 
				
			||||||
        pinctrl-0 = <&serial_1_pins>;
 | 
					        pinctrl-0 = <&serial_1_pins>;
 | 
				
			||||||
        pinctrl-names = "default";
 | 
					        pinctrl-names = "default";
 | 
				
			||||||
        status = "disabled";
 | 
					        status = "disabled";
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
&blsp1_i2c1 {
 | 
					&blsp1_i2c1 {
 | 
				
			||||||
	clock-frequency  = <400000>;
 | 
						clock-frequency  = <400000>;
 | 
				
			||||||
	pinctrl-0 = <&i2c_1_pins>;
 | 
						pinctrl-0 = <&i2c_1_pins>;
 | 
				
			||||||
@@ -664,29 +652,50 @@
 | 
				
			|||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						pwm_pins: pwm_pinmux {
 | 
				
			||||||
 | 
								/* PWM LED GREEN */
 | 
				
			||||||
 | 
								mux_1 {
 | 
				
			||||||
 | 
									pins = "gpio43";
 | 
				
			||||||
 | 
									function = "pwm0";
 | 
				
			||||||
 | 
									drive-strength = <8>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
								/* PWM LED BLUE */
 | 
				
			||||||
 | 
								mux_2 {
 | 
				
			||||||
 | 
									pins = "gpio45";
 | 
				
			||||||
 | 
									function = "pwm0";
 | 
				
			||||||
 | 
									drive-strength = <8>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
								/* PWM LED RED */
 | 
				
			||||||
 | 
								mux_3 {
 | 
				
			||||||
 | 
									pins = "gpio44";
 | 
				
			||||||
 | 
									function = "pwm0";
 | 
				
			||||||
 | 
									drive-strength = <8>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
	serial_1_pins: serial1-pinmux {
 | 
						serial_1_pins: serial1-pinmux {
 | 
				
			||||||
		pins = "gpio33", "gpio34", "gpio35", "gpio36";
 | 
							pins = "gpio33", "gpio34", "gpio35", "gpio36";
 | 
				
			||||||
		function = "blsp1_uart2";
 | 
							function = "blsp1_uart2";
 | 
				
			||||||
		drive-strength = <8>;
 | 
							drive-strength = <8>;
 | 
				
			||||||
		bias-pull-up;
 | 
							bias-pull-up;
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
	i2c_1_pins: i2c-1-state {
 | 
						i2c_1_pins: i2c-1-state {
 | 
				
			||||||
		pins = "gpio29", "gpio30";
 | 
							pins = "gpio29", "gpio30";
 | 
				
			||||||
		function = "blsp1_i2c0";
 | 
							function = "blsp1_i2c0";
 | 
				
			||||||
		drive-strength = <8>;
 | 
							drive-strength = <8>;
 | 
				
			||||||
		bias-pull-up;
 | 
							bias-pull-up;
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
	gpio_leds_default: gpio-leds-default-state {
 | 
						gpio_leds_default: gpio-leds-default-state {
 | 
				
			||||||
		pins = "gpio36";
 | 
							pins = "gpio36";
 | 
				
			||||||
		function = "gpio";
 | 
							function = "gpio";
 | 
				
			||||||
		drive-strength = <8>;
 | 
							drive-strength = <8>;
 | 
				
			||||||
		bias-pull-down;
 | 
							bias-pull-down;
 | 
				
			||||||
	}; 
 | 
						}; 
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
	button_pins: button-state {
 | 
						button_pins: button-state {
 | 
				
			||||||
		pins = "gpio35";
 | 
							pins = "gpio24";
 | 
				
			||||||
		function = "gpio";
 | 
							function = "gpio";
 | 
				
			||||||
		drive-strength = <8>;
 | 
							drive-strength = <8>;
 | 
				
			||||||
		bias-pull-up;
 | 
							bias-pull-up;
 | 
				
			||||||
@@ -725,6 +734,13 @@
 | 
				
			|||||||
	status = "disabled";
 | 
						status = "disabled";
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pwm {
 | 
				
			||||||
 | 
						pinctrl-0 = <&pwm_pins>;
 | 
				
			||||||
 | 
						used-pwm-indices = <0>, <1>, <1>, <1>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&hs_m31phy_0 {
 | 
					&hs_m31phy_0 {
 | 
				
			||||||
	status = "okay";
 | 
						status = "okay";
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
@@ -747,7 +763,7 @@
 | 
				
			|||||||
	memory-region = <&q6_ipq5332_data>;
 | 
						memory-region = <&q6_ipq5332_data>;
 | 
				
			||||||
	qcom,wsi = <&wsi>;
 | 
						qcom,wsi = <&wsi>;
 | 
				
			||||||
	qcom,wsi_index = <0>;
 | 
						qcom,wsi_index = <0>;
 | 
				
			||||||
	status = "ok";
 | 
						status = "okay";
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&wifi1 {
 | 
					&wifi1 {
 | 
				
			||||||
@@ -768,7 +784,7 @@
 | 
				
			|||||||
	memory-region = <&q6_qcn6432_data_1>;
 | 
						memory-region = <&q6_qcn6432_data_1>;
 | 
				
			||||||
	qcom,wsi = <&wsi>;
 | 
						qcom,wsi = <&wsi>;
 | 
				
			||||||
	qcom,wsi_index = <1>;
 | 
						qcom,wsi_index = <1>;
 | 
				
			||||||
	status = "ok";
 | 
						status = "okay";
 | 
				
			||||||
	interrupts = <GIC_SPI 33 IRQ_TYPE_EDGE_RISING>;
 | 
						interrupts = <GIC_SPI 33 IRQ_TYPE_EDGE_RISING>;
 | 
				
			||||||
	interrupt-names = "umac_reset";
 | 
						interrupt-names = "umac_reset";
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -736,6 +736,36 @@
 | 
				
			|||||||
			status = "disabled";
 | 
								status = "disabled";
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							blsp1_spi1: spi@78b6000 {
 | 
				
			||||||
 | 
								compatible = "qcom,spi-qup-v2.2.1";
 | 
				
			||||||
 | 
								#address-cells = <1>;
 | 
				
			||||||
 | 
								#size-cells = <0>;
 | 
				
			||||||
 | 
								reg = <0x078b6000 0x600>;
 | 
				
			||||||
 | 
								interrupts = <GIC_SPI 293 IRQ_TYPE_LEVEL_HIGH>;
 | 
				
			||||||
 | 
								spi-max-frequency = <50000000>;
 | 
				
			||||||
 | 
								clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>,
 | 
				
			||||||
 | 
									<&gcc GCC_BLSP1_AHB_CLK>;
 | 
				
			||||||
 | 
								clock-names = "core", "iface";
 | 
				
			||||||
 | 
								dmas = <&blsp_dma 6>, <&blsp_dma 7>;
 | 
				
			||||||
 | 
								dma-names = "tx", "rx";
 | 
				
			||||||
 | 
								status = "disabled";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							blsp1_i2c2: i2c@78b7000 {
 | 
				
			||||||
 | 
								compatible = "qcom,i2c-qup-v2.2.1";
 | 
				
			||||||
 | 
								#address-cells = <1>;
 | 
				
			||||||
 | 
								#size-cells = <0>;
 | 
				
			||||||
 | 
								reg = <0x78b7000 0x600>;
 | 
				
			||||||
 | 
								interrupts = <GIC_SPI 294 IRQ_TYPE_LEVEL_HIGH>;
 | 
				
			||||||
 | 
								clocks = <&gcc GCC_BLSP1_AHB_CLK>,
 | 
				
			||||||
 | 
									<&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>;
 | 
				
			||||||
 | 
								clock-names = "iface", "core";
 | 
				
			||||||
 | 
								clock-frequency  = <400000>;
 | 
				
			||||||
 | 
								dmas = <&blsp_dma 8>, <&blsp_dma 9>;
 | 
				
			||||||
 | 
								dma-names = "rx", "tx";
 | 
				
			||||||
 | 
								status = "disabled";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		blsp1_i2c1: i2c@78b6000 {
 | 
							blsp1_i2c1: i2c@78b6000 {
 | 
				
			||||||
			compatible = "qcom,i2c-qup-v2.2.1";
 | 
								compatible = "qcom,i2c-qup-v2.2.1";
 | 
				
			||||||
			reg = <0x078b6000 0x600>;
 | 
								reg = <0x078b6000 0x600>;
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										20
									
								
								feeds/qca-wifi-7/ipq53xx/files-6.1/drivers/net/phy/rtk/rtk_phy.c
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										20
									
								
								feeds/qca-wifi-7/ipq53xx/files-6.1/drivers/net/phy/rtk/rtk_phy.c
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							@@ -7,6 +7,7 @@
 | 
				
			|||||||
#include <linux/module.h>
 | 
					#include <linux/module.h>
 | 
				
			||||||
#include <linux/phy.h>
 | 
					#include <linux/phy.h>
 | 
				
			||||||
#include <linux/delay.h>
 | 
					#include <linux/delay.h>
 | 
				
			||||||
 | 
					#include <linux/of.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "phy_rtl826xb_patch.h"
 | 
					#include "phy_rtl826xb_patch.h"
 | 
				
			||||||
#include "phy_rtl8251b_patch.h"
 | 
					#include "phy_rtl8251b_patch.h"
 | 
				
			||||||
@@ -30,6 +31,7 @@ static int rtl8251_match_phy_device(struct phy_device *phydev)
 | 
				
			|||||||
static int rtl826xb_get_features(struct phy_device *phydev)
 | 
					static int rtl826xb_get_features(struct phy_device *phydev)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    int ret;
 | 
					    int ret;
 | 
				
			||||||
 | 
					    struct device_node *np;
 | 
				
			||||||
    ret = genphy_c45_pma_read_abilities(phydev);
 | 
					    ret = genphy_c45_pma_read_abilities(phydev);
 | 
				
			||||||
    if (ret)
 | 
					    if (ret)
 | 
				
			||||||
        return ret;
 | 
					        return ret;
 | 
				
			||||||
@@ -48,6 +50,14 @@ static int rtl826xb_get_features(struct phy_device *phydev)
 | 
				
			|||||||
    linkmode_clear_bit(ETHTOOL_LINK_MODE_10baseT_Full_BIT,
 | 
					    linkmode_clear_bit(ETHTOOL_LINK_MODE_10baseT_Full_BIT,
 | 
				
			||||||
                       phydev->supported);
 | 
					                       phydev->supported);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    np = of_find_node_by_name(NULL, "mdio");
 | 
				
			||||||
 | 
					    if (np)
 | 
				
			||||||
 | 
						if (of_property_read_bool(np, "limit_rtlphy_10g_ablity"))
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							linkmode_clear_bit(ETHTOOL_LINK_MODE_10000baseT_Full_BIT, phydev->supported);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return 0;
 | 
					    return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -80,7 +90,6 @@ static int rtkphy_config_init(struct phy_device *phydev)
 | 
				
			|||||||
        case REALTEK_PHY_ID_RTL8261N:
 | 
					        case REALTEK_PHY_ID_RTL8261N:
 | 
				
			||||||
        case REALTEK_PHY_ID_RTL8264B:
 | 
					        case REALTEK_PHY_ID_RTL8264B:
 | 
				
			||||||
            phydev_info(phydev, "%s:%u [RTL8261N/RTL826XB] phy_id: 0x%X PHYAD:%d\n", __FUNCTION__, __LINE__, phydev->drv->phy_id, phydev->mdio.addr);
 | 
					            phydev_info(phydev, "%s:%u [RTL8261N/RTL826XB] phy_id: 0x%X PHYAD:%d\n", __FUNCTION__, __LINE__, phydev->drv->phy_id, phydev->mdio.addr);
 | 
				
			||||||
	    phy_modify_mmd_changed(phydev, 7, 0x20, BIT(12), 0);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
          #if 1 /* toggle reset */
 | 
					          #if 1 /* toggle reset */
 | 
				
			||||||
            phy_modify_mmd_changed(phydev, 30, 0x145, BIT(0)  , 1);
 | 
					            phy_modify_mmd_changed(phydev, 30, 0x145, BIT(0)  , 1);
 | 
				
			||||||
@@ -213,7 +222,6 @@ static int rtkphy_c45_aneg_done(struct phy_device *phydev)
 | 
				
			|||||||
static int rtkphy_c45_read_status(struct phy_device *phydev)
 | 
					static int rtkphy_c45_read_status(struct phy_device *phydev)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    int ret = 0, status = 0;
 | 
					    int ret = 0, status = 0;
 | 
				
			||||||
    uint16_t local;
 | 
					 | 
				
			||||||
    phydev->speed = SPEED_UNKNOWN;
 | 
					    phydev->speed = SPEED_UNKNOWN;
 | 
				
			||||||
    phydev->duplex = DUPLEX_UNKNOWN;
 | 
					    phydev->duplex = DUPLEX_UNKNOWN;
 | 
				
			||||||
    phydev->pause = 0;
 | 
					    phydev->pause = 0;
 | 
				
			||||||
@@ -232,9 +240,6 @@ static int rtkphy_c45_read_status(struct phy_device *phydev)
 | 
				
			|||||||
        if (ret)
 | 
					        if (ret)
 | 
				
			||||||
            return ret;
 | 
					            return ret;
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	phy_write_mmd(phydev, 7, 0x20, 0x181);
 | 
					 | 
				
			||||||
	local = phy_read_mmd(phydev, 7, 0x20);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        status =  phy_read_mmd(phydev, 31, 0xA414);
 | 
					        status =  phy_read_mmd(phydev, 31, 0xA414);
 | 
				
			||||||
        if (status < 0)
 | 
					        if (status < 0)
 | 
				
			||||||
            return status;
 | 
					            return status;
 | 
				
			||||||
@@ -242,11 +247,6 @@ static int rtkphy_c45_read_status(struct phy_device *phydev)
 | 
				
			|||||||
            phydev->lp_advertising, status & BIT(11));
 | 
					            phydev->lp_advertising, status & BIT(11));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        phy_resolve_aneg_linkmode(phydev);
 | 
					        phy_resolve_aneg_linkmode(phydev);
 | 
				
			||||||
	if((phydev->speed == 10000) && (local == 0x181))
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
                phydev->speed = 5000;
 | 
					 | 
				
			||||||
                phydev->duplex = DUPLEX_FULL;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2288,7 +2288,7 @@ CONFIG_GPIOLIB_FASTPATH_LIMIT=512
 | 
				
			|||||||
# CONFIG_GPIO_ML_IOH is not set
 | 
					# CONFIG_GPIO_ML_IOH is not set
 | 
				
			||||||
# CONFIG_GPIO_MOCKUP is not set
 | 
					# CONFIG_GPIO_MOCKUP is not set
 | 
				
			||||||
# CONFIG_GPIO_MPC8XXX is not set
 | 
					# CONFIG_GPIO_MPC8XXX is not set
 | 
				
			||||||
# CONFIG_GPIO_PCA953X is not set
 | 
					CONFIG_GPIO_PCA953X=y
 | 
				
			||||||
# CONFIG_GPIO_PCA953X_IRQ is not set
 | 
					# CONFIG_GPIO_PCA953X_IRQ is not set
 | 
				
			||||||
# CONFIG_GPIO_PCA9570 is not set
 | 
					# CONFIG_GPIO_PCA9570 is not set
 | 
				
			||||||
# CONFIG_GPIO_PCF857X is not set
 | 
					# CONFIG_GPIO_PCF857X is not set
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -14,16 +14,30 @@ endef
 | 
				
			|||||||
TARGET_DEVICES += cig_wf189
 | 
					TARGET_DEVICES += cig_wf189
 | 
				
			||||||
 | 
					
 | 
				
			||||||
define Device/sercomm_ap72tip
 | 
					define Device/sercomm_ap72tip
 | 
				
			||||||
  DEVICE_TITLE := Sercomm AP72 TIP
 | 
					  DEVICE_TITLE := Sercomm AP72TIP
 | 
				
			||||||
  DEVICE_DTS := ipq5332-sercomm-ap72tip
 | 
					  DEVICE_DTS := ipq5332-sercomm-ap72tip
 | 
				
			||||||
  DEVICE_DTS_CONFIG := config@mi01.2-qcn9160-c1
 | 
					  DEVICE_DTS_DIR := ../dts
 | 
				
			||||||
 | 
					  DEVICE_DTS_CONFIG := config@mi01.6
 | 
				
			||||||
  IMAGES := sysupgrade.tar nand-factory.bin nand-factory.ubi
 | 
					  IMAGES := sysupgrade.tar nand-factory.bin nand-factory.ubi
 | 
				
			||||||
  IMAGE/sysupgrade.tar := sysupgrade-tar | append-metadata
 | 
					  IMAGE/sysupgrade.tar := sysupgrade-tar | append-metadata
 | 
				
			||||||
  IMAGE/nand-factory.bin := append-ubi | qsdk-ipq-factory-nand
 | 
					  IMAGE/nand-factory.bin := append-ubi | qsdk-ipq-factory-nand
 | 
				
			||||||
  IMAGE/nand-factory.ubi := append-ubi
 | 
					  IMAGE/nand-factory.ubi := append-ubi
 | 
				
			||||||
  DEVICE_PACKAGES := ath12k-wifi-sercomm-ap72tip ath12k-firmware-qcn92xx ath12k-firmware-ipq5332
 | 
					  DEVICE_PACKAGES := ath12k-wifi-sercomm-ap72tip ath12k-firmware-qcn92xx ath12k-firmware-ipq5332
 | 
				
			||||||
endef
 | 
					endef
 | 
				
			||||||
#TARGET_DEVICES += sercomm_ap72tip
 | 
					TARGET_DEVICES += sercomm_ap72tip
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					define Device/sercomm_ap72tip-v4
 | 
				
			||||||
 | 
					  DEVICE_TITLE := Sercomm AP72TIP-v4
 | 
				
			||||||
 | 
					  DEVICE_DTS := ipq5332-sercomm-ap72tip-v4
 | 
				
			||||||
 | 
					  DEVICE_DTS_DIR := ../dts
 | 
				
			||||||
 | 
					  DEVICE_DTS_CONFIG := config@mi01.6
 | 
				
			||||||
 | 
					  IMAGES := sysupgrade.tar nand-factory.bin nand-factory.ubi
 | 
				
			||||||
 | 
					  IMAGE/sysupgrade.tar := sysupgrade-tar | append-metadata
 | 
				
			||||||
 | 
					  IMAGE/nand-factory.bin := append-ubi | qsdk-ipq-factory-nand
 | 
				
			||||||
 | 
					  IMAGE/nand-factory.ubi := append-ubi
 | 
				
			||||||
 | 
					  DEVICE_PACKAGES := ath12k-wifi-sercomm-ap72tip-v4 ath12k-firmware-qcn92xx ath12k-firmware-ipq5332
 | 
				
			||||||
 | 
					endef
 | 
				
			||||||
 | 
					TARGET_DEVICES += sercomm_ap72tip-v4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
define Device/edgecore_eap105
 | 
					define Device/edgecore_eap105
 | 
				
			||||||
  DEVICE_TITLE := Edgecore EAP105
 | 
					  DEVICE_TITLE := Edgecore EAP105
 | 
				
			||||||
@@ -61,7 +75,7 @@ define Device/sonicfi_rap750w_311a
 | 
				
			|||||||
  IMAGE/sysupgrade.tar := sysupgrade-tar | append-metadata
 | 
					  IMAGE/sysupgrade.tar := sysupgrade-tar | append-metadata
 | 
				
			||||||
  IMAGE/nand-factory.bin := append-ubi | qsdk-ipq-factory-nand
 | 
					  IMAGE/nand-factory.bin := append-ubi | qsdk-ipq-factory-nand
 | 
				
			||||||
  IMAGE/nand-factory.ubi := append-ubi
 | 
					  IMAGE/nand-factory.ubi := append-ubi
 | 
				
			||||||
  DEVICE_PACKAGES := ath12k-wifi-sonicfi-rap750w-311a ath12k-firmware-ipq5332-peb
 | 
					  DEVICE_PACKAGES := ath12k-wifi-sonicfi-rap750w-311a ath12k-firmware-ipq5332-peb -ath12k-firmware-qcn92xx
 | 
				
			||||||
endef
 | 
					endef
 | 
				
			||||||
TARGET_DEVICES += sonicfi_rap750w_311a
 | 
					TARGET_DEVICES += sonicfi_rap750w_311a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -77,3 +91,17 @@ define Device/cig_wf189w
 | 
				
			|||||||
  DEVICE_PACKAGES := ath12k-wifi-cig-wf189w ath12k-firmware-ipq5332-peb-peb
 | 
					  DEVICE_PACKAGES := ath12k-wifi-cig-wf189w ath12k-firmware-ipq5332-peb-peb
 | 
				
			||||||
endef
 | 
					endef
 | 
				
			||||||
TARGET_DEVICES += cig_wf189w
 | 
					TARGET_DEVICES += cig_wf189w
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					define Device/cig_wf189h
 | 
				
			||||||
 | 
					  DEVICE_TITLE := CIG WF189H
 | 
				
			||||||
 | 
					  DEVICE_DTS := ipq5332-cig-wf189h
 | 
				
			||||||
 | 
					  DEVICE_DTS_DIR := ../dts
 | 
				
			||||||
 | 
					  DEVICE_DTS_CONFIG := config@mi04.1
 | 
				
			||||||
 | 
					  IMAGES := sysupgrade.tar nand-factory.bin nand-factory.ubi
 | 
				
			||||||
 | 
					  IMAGE/sysupgrade.tar := sysupgrade-tar | append-metadata
 | 
				
			||||||
 | 
					  IMAGE/nand-factory.bin := append-ubi | qsdk-ipq-factory-nand
 | 
				
			||||||
 | 
					  IMAGE/nand-factory.ubi := append-ubi
 | 
				
			||||||
 | 
					  DEVICE_PACKAGES := ath12k-wifi-cig-wf189h ath12k-firmware-ipq5332-peb-peb
 | 
				
			||||||
 | 
					endef
 | 
				
			||||||
 | 
					TARGET_DEVICES += cig_wf189h
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -0,0 +1,116 @@
 | 
				
			|||||||
 | 
					From 85a7c62d4e3385de1a379959dd45148cfdc95b3b Mon Sep 17 00:00:00 2001
 | 
				
			||||||
 | 
					From: huangyunxiang <huangyunxiang@cigtech.com>
 | 
				
			||||||
 | 
					Date: Tue, 29 Apr 2025 09:56:28 +0800
 | 
				
			||||||
 | 
					Subject: [PATCH] qca-ssdk modify rtl826x phy mdio read/write as c45 mode and
 | 
				
			||||||
 | 
					 clear 10G ablity
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					 src/hsl/phy/rtl826xb_phy.c                | 55 ++++++-------------
 | 
				
			||||||
 | 
					 1 file changed, 17 insertions(+), 38 deletions(-)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					diff --git a/src/hsl/phy/rtl826xb_phy.c b/src/hsl/phy/rtl826xb_phy.c
 | 
				
			||||||
 | 
					index a336348aa9..9a67b45948 100644
 | 
				
			||||||
 | 
					--- a/src/hsl/phy/rtl826xb_phy.c
 | 
				
			||||||
 | 
					+++ b/src/hsl/phy/rtl826xb_phy.c
 | 
				
			||||||
 | 
					@@ -48,46 +48,39 @@ void rtl826xb_phy_lock_init(void)
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 static a_uint16_t rtl826x_phy_mmd_read(a_uint32_t dev_id, a_uint32_t phy_id, a_uint16_t reg_mmd, a_uint16_t reg_id)
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					-	a_uint32_t reg_id_c45 = RTL826XB_REG_ADDRESS(reg_mmd, reg_id);
 | 
				
			||||||
 | 
					-
 | 
				
			||||||
 | 
					-	return __hsl_phy_mii_reg_read(dev_id, phy_id, reg_id_c45);
 | 
				
			||||||
 | 
					+	return hsl_phy_mmd_reg_read(dev_id, phy_id, A_TRUE, reg_mmd, reg_id);
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 static sw_error_t rtl826x_phy_mmd_write(a_uint32_t dev_id, a_uint32_t phy_id, a_uint16_t reg_mmd, a_uint16_t reg_id, a_uint16_t reg_val)
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					-	a_uint32_t reg_id_c45 = RTL826XB_REG_ADDRESS(reg_mmd, reg_id);
 | 
				
			||||||
 | 
					-
 | 
				
			||||||
 | 
					-	return __hsl_phy_mii_reg_write(dev_id, phy_id, reg_id_c45, reg_val);
 | 
				
			||||||
 | 
					+	return hsl_phy_mmd_reg_write(dev_id, phy_id, A_TRUE, reg_mmd, reg_id, reg_val);
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 static a_uint16_t rtl826x_phy_reg_read(a_uint32_t dev_id, a_uint32_t phy_id, a_uint32_t reg)
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					-	return __hsl_phy_mii_reg_read(dev_id, phy_id, reg);
 | 
				
			||||||
 | 
					+	return hsl_phy_mii_reg_read(dev_id, phy_id, reg);
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 static sw_error_t rtl826x_phy_reg_write(a_uint32_t dev_id, a_uint32_t phy_id, a_uint32_t reg, a_uint16_t reg_val)
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					-	return __hsl_phy_mii_reg_write(dev_id, phy_id, reg, reg_val);
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					+	return hsl_phy_mii_reg_write(dev_id, phy_id, reg, reg_val);
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 static a_int16_t hal_miim_mmd_read(a_uint32_t dev_id, a_uint32_t phy_id, a_uint16_t mmdAddr, a_uint16_t mmdReg)
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					-	a_uint32_t reg_id_c45 = RTL826XB_REG_ADDRESS(mmdAddr, mmdReg);
 | 
				
			||||||
 | 
					-
 | 
				
			||||||
 | 
					-	return __hsl_phy_mii_reg_read(dev_id, phy_id, reg_id_c45);
 | 
				
			||||||
 | 
					+	return hsl_phy_mmd_reg_read(dev_id, phy_id, A_TRUE, mmdAddr, mmdReg);
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 static a_int32_t hal_miim_mmd_write(a_uint32_t dev_id, a_uint32_t phy_id, a_uint16_t mmdAddr, a_uint16_t mmdReg, a_uint16_t phy_data)
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					-	a_uint32_t reg_id_c45 = RTL826XB_REG_ADDRESS(mmdAddr, mmdReg);
 | 
				
			||||||
 | 
					-
 | 
				
			||||||
 | 
					-	return __hsl_phy_mii_reg_write(dev_id, phy_id, reg_id_c45, phy_data);
 | 
				
			||||||
 | 
					+	return hsl_phy_mmd_reg_write(dev_id, phy_id, A_TRUE, mmdAddr, mmdReg, phy_data);
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					@@ -1281,34 +1274,20 @@ phy_826xb_autoNegoAbility_set(a_uint32_t dev_id, a_uint32_t phy_id, a_uint32_t a
 | 
				
			||||||
 | 
					 	hsl_phy_phydev_autoneg_update(dev_id, phy_id, A_TRUE, autoneg);
 | 
				
			||||||
 | 
					 	
 | 
				
			||||||
 | 
					 	phyData = phy_common_general_reg_mmd_get(dev_id, phy_id, PHY_MMD_AN, 16);
 | 
				
			||||||
 | 
					+	phyData &= (~(0x0020 | 0x0040 | FAL_PHY_ADV_100TX_HD | FAL_PHY_ADV_100TX_FD | FAL_PHY_ADV_PAUSE | FAL_PHY_ADV_ASY_PAUSE));
 | 
				
			||||||
 | 
					+	phyData |= (autoneg & FAL_PHY_ADV_100TX_HD) ? (FAL_PHY_ADV_100TX_HD) : (0);
 | 
				
			||||||
 | 
					+	phyData |= ((autoneg & FAL_PHY_ADV_100TX_FD)) ? (FAL_PHY_ADV_100TX_FD) : (0);
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					-    phyData &= (~(0x0020 | 0x0040 | 0x0080 | 0x0100 | 0x0400 | 0x0800));
 | 
				
			||||||
 | 
					-	phyData |= ((autoneg & 1 << 1)) ? (0x0040) : (0);
 | 
				
			||||||
 | 
					-    phyData |= ((autoneg & 1 << 2)) ? (0x0080) : (0);
 | 
				
			||||||
 | 
					-    phyData |= ((autoneg & 1 << 3)) ? (0x0100) : (0);
 | 
				
			||||||
 | 
					-	phyData |= ((autoneg & 1 << 4)) ? (0x0400) : (0);
 | 
				
			||||||
 | 
					-	phyData |= ((autoneg & 1 << 5)) ? (0x0800) : (0);
 | 
				
			||||||
 | 
					-//    phyData |= ((autoneg & 1 << 9)) ? (0x0400) : (0);
 | 
				
			||||||
 | 
					-//    phyData |= ((autoneg & 1 << 10)) ? (0x0800) : (0);
 | 
				
			||||||
 | 
					-
 | 
				
			||||||
 | 
					-    phy_common_general_reg_mmd_set(dev_id, phy_id, PHY_MMD_AN, 16, phyData);
 | 
				
			||||||
 | 
					-	
 | 
				
			||||||
 | 
					+	phy_common_general_reg_mmd_set(dev_id, phy_id, PHY_MMD_AN, 16, phyData);
 | 
				
			||||||
 | 
					 	phyData = phy_common_general_reg_mmd_get(dev_id, phy_id, PHY_MMD_AN, 32);
 | 
				
			||||||
 | 
					+	phyData &= (~(FAL_PHY_ADV_2500T_FD | FAL_PHY_ADV_5000T_FD | FAL_PHY_ADV_10000T_FD));
 | 
				
			||||||
 | 
					+	phyData |= (autoneg & FAL_PHY_ADV_2500T_FD) ? (FAL_PHY_ADV_2500T_FD) : (0);
 | 
				
			||||||
 | 
					+	phyData |= (autoneg & FAL_PHY_ADV_5000T_FD) ? (FAL_PHY_ADV_5000T_FD) : (0);
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					-    phyData &= (~(0x4000 | 0x2000 | 0x1000));
 | 
				
			||||||
 | 
					-    phyData |= (autoneg & 1 << 12) ? (0x0080) : (0);
 | 
				
			||||||
 | 
					-    phyData |= (autoneg & 1 << 13) ? (0x0100) : (0);
 | 
				
			||||||
 | 
					-    phyData |= (autoneg & 1 << 14) ? (0x1000) : (0);
 | 
				
			||||||
 | 
					-
 | 
				
			||||||
 | 
					-    phy_common_general_reg_mmd_set(dev_id, phy_id, PHY_MMD_AN, 32, phyData);
 | 
				
			||||||
 | 
					-     
 | 
				
			||||||
 | 
					-	
 | 
				
			||||||
 | 
					+	phy_common_general_reg_mmd_set(dev_id, phy_id, PHY_MMD_AN, 32, phyData);
 | 
				
			||||||
 | 
					 	phyData = phy_common_general_reg_mmd_get(dev_id, phy_id, PHY_MMD_VEND2, 0xA412);
 | 
				
			||||||
 | 
					-
 | 
				
			||||||
 | 
					-
 | 
				
			||||||
 | 
					-    phyData &= (~(0x0100 | 0x0200));
 | 
				
			||||||
 | 
					-    phyData |= (autoneg & 1 << 9) ? (0x0200) : (0);
 | 
				
			||||||
 | 
					-//    phyData |= (autoneg & 1 << 5) ? (0x0200) : (0);
 | 
				
			||||||
 | 
					+	phyData &= (~(0x0100 | FAL_PHY_ADV_1000T_FD));
 | 
				
			||||||
 | 
					+	phyData |= (autoneg & FAL_PHY_ADV_1000T_FD) ? (FAL_PHY_ADV_1000T_FD) : (0);
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					     phy_common_general_reg_mmd_set(dev_id, phy_id, PHY_MMD_VEND2, 0xA412, phyData);
 | 
				
			||||||
 | 
					         
 | 
				
			||||||
 | 
					-- 
 | 
				
			||||||
 | 
					2.34.1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -79,6 +79,8 @@ hfcl,ion4xe)
 | 
				
			|||||||
	;;
 | 
						;;
 | 
				
			||||||
cig,wf186w|\
 | 
					cig,wf186w|\
 | 
				
			||||||
cig,wf189|\
 | 
					cig,wf189|\
 | 
				
			||||||
 | 
					cig,wf189w|\
 | 
				
			||||||
 | 
					cig,wf189h|\
 | 
				
			||||||
cig,wf186h|\
 | 
					cig,wf186h|\
 | 
				
			||||||
yuncore,ax840|\
 | 
					yuncore,ax840|\
 | 
				
			||||||
yuncore,fap655)
 | 
					yuncore,fap655)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,8 +6,8 @@ STOP=01
 | 
				
			|||||||
USE_PROCD=1
 | 
					USE_PROCD=1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
start_service() {
 | 
					start_service() {
 | 
				
			||||||
	rm -rf /tmp/threshold_breach_count_phy*
 | 
						rm -rf /tmp/threshold_breach_count*
 | 
				
			||||||
	rm -rf /tmp/fixed_channel_phy*
 | 
						rm -rf /tmp/fixed_channel*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	procd_open_instance
 | 
						procd_open_instance
 | 
				
			||||||
	procd_set_param command /usr/bin/rrmd.uc
 | 
						procd_set_param command /usr/bin/rrmd.uc
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -265,7 +265,7 @@ function dfs_chan_check(iface_num, rcs_channel) {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function fixed_channel_config(iface, iface_num, fixed_channel_f, auto_channel_f, fixed_chan_bkp, channel_config) {
 | 
					function fixed_channel_config(iface, iface_num, fixed_channel_f, auto_channel_f, fixed_chan_bkp, channel_config) {
 | 
				
			||||||
    // if fixed channel config is stored in the /tmp/fixed_channel_phyX file
 | 
					    // if fixed channel config is stored in the /tmp/fixed_channel_<radio_iface> file
 | 
				
			||||||
    if (fixed_channel_f == 1) {
 | 
					    if (fixed_channel_f == 1) {
 | 
				
			||||||
        if (auto_channel_f == 1) {
 | 
					        if (auto_channel_f == 1) {
 | 
				
			||||||
            // if current channel is auto => change to fixed
 | 
					            // if current channel is auto => change to fixed
 | 
				
			||||||
@@ -290,6 +290,7 @@ function fixed_channel_config(iface, iface_num, fixed_channel_f, auto_channel_f,
 | 
				
			|||||||
function get_chan_util(radio_band, sleep_time) {
 | 
					function get_chan_util(radio_band, sleep_time) {
 | 
				
			||||||
	let pdev_stats = {};
 | 
						let pdev_stats = {};
 | 
				
			||||||
	let chan_util = 0;
 | 
						let chan_util = 0;
 | 
				
			||||||
 | 
					    let total_usage = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    let prev_values = {
 | 
					    let prev_values = {
 | 
				
			||||||
		txFrameCount: null,
 | 
							txFrameCount: null,
 | 
				
			||||||
@@ -348,7 +349,8 @@ function get_chan_util(radio_band, sleep_time) {
 | 
				
			|||||||
            if (ignore != 1) {
 | 
					            if (ignore != 1) {
 | 
				
			||||||
                let cycle_count_delta = curr_values.cycleCount - prev_values.cycleCount;
 | 
					                let cycle_count_delta = curr_values.cycleCount - prev_values.cycleCount;
 | 
				
			||||||
                let rx_clear_delta = curr_values.rxClearCount - prev_values.rxClearCount;
 | 
					                let rx_clear_delta = curr_values.rxClearCount - prev_values.rxClearCount;
 | 
				
			||||||
                let total_usage = (rx_clear_delta * 100) / cycle_count_delta;
 | 
					                if (cycle_count_delta && cycle_count_delta > 0)
 | 
				
			||||||
 | 
					                    total_usage = (rx_clear_delta * 100) / cycle_count_delta;
 | 
				
			||||||
                chan_util = total_usage;
 | 
					                chan_util = total_usage;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -673,7 +675,7 @@ function channel_optimize() {
 | 
				
			|||||||
                ulog_info(`[%s] Allowed consecutive Channel Utilization threshold breach count = %d \n`, radio_iface[j], config.consecutive_threshold_breach);
 | 
					                ulog_info(`[%s] Allowed consecutive Channel Utilization threshold breach count = %d \n`, radio_iface[j], config.consecutive_threshold_breach);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (!current_threshold_breach_count || current_threshold_breach_count == null || current_threshold_breach_count == 'NaN') {
 | 
					                if (!current_threshold_breach_count || current_threshold_breach_count == null || current_threshold_breach_count == 'NaN') {
 | 
				
			||||||
                    // /tmp/phyX_breachcount file doesn't exist yet or has invalid value
 | 
					                    // /tmp/threshold_breach_count_<radio_iface> file doesn't exist yet or has invalid value
 | 
				
			||||||
                    current_threshold_breach_count = 0;
 | 
					                    current_threshold_breach_count = 0;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                ulog_info(`[%s] Previous consecutive Channel Utilization threshold breach count = %d \n`, radio_iface[j], current_threshold_breach_count);
 | 
					                ulog_info(`[%s] Previous consecutive Channel Utilization threshold breach count = %d \n`, radio_iface[j], current_threshold_breach_count);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,10 +4,10 @@ PKG_NAME:=ucentral-schema
 | 
				
			|||||||
PKG_RELEASE:=1
 | 
					PKG_RELEASE:=1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PKG_SOURCE_URL=https://github.com/Telecominfraproject/wlan-ucentral-schema.git
 | 
					PKG_SOURCE_URL=https://github.com/Telecominfraproject/wlan-ucentral-schema.git
 | 
				
			||||||
PKG_MIRROR_HASH:=fe33f072d7bcbbb14c7c3415e0750699bb5dae8a9af06c59c90c020f8b192a15
 | 
					PKG_MIRROR_HASH:=280d87658fa36c1d5d6852dcb8203042eba6bbc9101ac317a2088e2dd68249da
 | 
				
			||||||
PKG_SOURCE_PROTO:=git
 | 
					PKG_SOURCE_PROTO:=git
 | 
				
			||||||
PKG_SOURCE_DATE:=2025-01-27
 | 
					PKG_SOURCE_DATE:=2025-01-27
 | 
				
			||||||
PKG_SOURCE_VERSION:=5a6d23b76bc51289ae99d22fdf406516b0c630e6
 | 
					PKG_SOURCE_VERSION:=52afdf8f1d1cb8445b6b56eba3768d0edffa63e1
 | 
				
			||||||
PKG_MAINTAINER:=John Crispin <john@phrozen.org>
 | 
					PKG_MAINTAINER:=John Crispin <john@phrozen.org>
 | 
				
			||||||
PKG_LICENSE:=BSD-3-Clause
 | 
					PKG_LICENSE:=BSD-3-Clause
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,3 +5,6 @@
 | 
				
			|||||||
#   list ssid 'EAP101-ERICHI'
 | 
					#   list ssid 'EAP101-ERICHI'
 | 
				
			||||||
#   list ssid 'EAP101-AKIHO'
 | 
					#   list ssid 'EAP101-AKIHO'
 | 
				
			||||||
#   list ssid 'EAP101-DAMAYU'
 | 
					#   list ssid 'EAP101-DAMAYU'
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# config dhcpinject 'dhcpinject'
 | 
				
			||||||
 | 
					#   option iface_count '6'
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,9 +9,9 @@ SERVICE_NAME="dhcpinject"
 | 
				
			|||||||
PROG=/usr/bin/udhcpinject
 | 
					PROG=/usr/bin/udhcpinject
 | 
				
			||||||
 | 
					
 | 
				
			||||||
start_service() {
 | 
					start_service() {
 | 
				
			||||||
    local ssid_list=""
 | 
					 | 
				
			||||||
    local ssids=""
 | 
					    local ssids=""
 | 
				
			||||||
    local ports=""
 | 
					    local ports=""
 | 
				
			||||||
 | 
					    local ifaces=""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Function to process each ssid
 | 
					    # Function to process each ssid
 | 
				
			||||||
    append_ssid() {
 | 
					    append_ssid() {
 | 
				
			||||||
@@ -41,17 +41,20 @@ start_service() {
 | 
				
			|||||||
    # Get the list of ports
 | 
					    # Get the list of ports
 | 
				
			||||||
    config_list_foreach uplink port append_port
 | 
					    config_list_foreach uplink port append_port
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Get the iface_count
 | 
				
			||||||
 | 
					    config_get ifaces dhcpinject iface_count
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
    # Fallback to eth0 if no ports are specified
 | 
					    # Fallback to eth0 if no ports are specified
 | 
				
			||||||
    if [ -z "$ports" ]; then
 | 
					    if [ -z "$ports" ]; then
 | 
				
			||||||
        ports="eth0"
 | 
					        ports="eth0"
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Optional: Log or echo for debugging
 | 
					    # Optional: Log or echo for debugging
 | 
				
			||||||
    logger -t dhcp_inject "Generated SSIDs=$ssids, Uplink=$ports"
 | 
					    logger -t dhcp_inject "Generated SSIDs=$ssids, Uplink=$ports, IFACEs=$ifaces"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    procd_open_instance "$SERVICE_NAME"
 | 
					    procd_open_instance "$SERVICE_NAME"
 | 
				
			||||||
    procd_set_param command $PROG
 | 
					    procd_set_param command $PROG
 | 
				
			||||||
    procd_set_param env SSIDs="$ssids" PORTs="$ports"
 | 
					    procd_set_param env SSIDs="$ssids" PORTs="$ports" IFACEs="$ifaces"
 | 
				
			||||||
    procd_set_param respawn 3600 10 10
 | 
					    procd_set_param respawn 3600 10 10
 | 
				
			||||||
    procd_set_param file /etc/config/dhcpinject
 | 
					    procd_set_param file /etc/config/dhcpinject
 | 
				
			||||||
    procd_set_param reload_signal SIGHUP
 | 
					    procd_set_param reload_signal SIGHUP
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -26,6 +26,7 @@ struct iface_info *iface_map = NULL;
 | 
				
			|||||||
static struct port_info *ports = NULL;
 | 
					static struct port_info *ports = NULL;
 | 
				
			||||||
int iface_count = 0;
 | 
					int iface_count = 0;
 | 
				
			||||||
int port_count = 0;
 | 
					int port_count = 0;
 | 
				
			||||||
 | 
					int total_iface = 0;
 | 
				
			||||||
static pcap_t *handle = NULL;
 | 
					static pcap_t *handle = NULL;
 | 
				
			||||||
static char *provided_ssids = NULL;
 | 
					static char *provided_ssids = NULL;
 | 
				
			||||||
static char *provided_ports = NULL;
 | 
					static char *provided_ports = NULL;
 | 
				
			||||||
@@ -192,6 +193,11 @@ int parse_ssids(const char *ssids) {
 | 
				
			|||||||
        return -1;
 | 
					        return -1;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (iface_count != total_iface) {
 | 
				
			||||||
 | 
					        syslog(LOG_ERR, "Expect %d but only %d interfaces were found.\n", total_iface, iface_count);
 | 
				
			||||||
 | 
					        return -1;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    syslog(LOG_INFO, "Found %d matching interfaces\n", iface_count);
 | 
					    syslog(LOG_INFO, "Found %d matching interfaces\n", iface_count);
 | 
				
			||||||
    return 0;
 | 
					    return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -310,7 +316,6 @@ void signal_handler(int sig) {
 | 
				
			|||||||
        exit(0);
 | 
					        exit(0);
 | 
				
			||||||
    } else if (sig == SIGHUP) {
 | 
					    } else if (sig == SIGHUP) {
 | 
				
			||||||
        syslog(LOG_INFO, "Received reload signal, reconfiguring...\n");
 | 
					        syslog(LOG_INFO, "Received reload signal, reconfiguring...\n");
 | 
				
			||||||
        sleep(5);
 | 
					 | 
				
			||||||
        // Clean up existing resources
 | 
					        // Clean up existing resources
 | 
				
			||||||
        cleanup_tc();
 | 
					        cleanup_tc();
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
@@ -561,7 +566,19 @@ int main(int argc, char *argv[]) {
 | 
				
			|||||||
    signal(SIGTERM, signal_handler);
 | 
					    signal(SIGTERM, signal_handler);
 | 
				
			||||||
    signal(SIGHUP, signal_handler);
 | 
					    signal(SIGHUP, signal_handler);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    sleep(5);
 | 
					    // Read IFACEs from environment variable
 | 
				
			||||||
 | 
					    char *iface_env = getenv("IFACEs");
 | 
				
			||||||
 | 
					    if (!iface_env) {
 | 
				
			||||||
 | 
					        syslog(LOG_ERR, "No IFACEs provided. Exiting...\n");
 | 
				
			||||||
 | 
					        cleanup();
 | 
				
			||||||
 | 
					        return 1;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    total_iface = atoi(iface_env);
 | 
				
			||||||
 | 
					    if (total_iface <= 0) {
 | 
				
			||||||
 | 
					        syslog(LOG_ERR, "Invalid IFACEs value: %s. Exiting...\n", iface_env);
 | 
				
			||||||
 | 
					        cleanup();
 | 
				
			||||||
 | 
					        return 1;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    provided_ssids = getenv("SSIDs");
 | 
					    provided_ssids = getenv("SSIDs");
 | 
				
			||||||
    syslog(LOG_INFO, "Provided SSIDs: %s\n", provided_ssids);
 | 
					    syslog(LOG_INFO, "Provided SSIDs: %s\n", provided_ssids);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -12,3 +12,4 @@ include:
 | 
				
			|||||||
packages:
 | 
					packages:
 | 
				
			||||||
  - ipq53xx
 | 
					  - ipq53xx
 | 
				
			||||||
  - ftm
 | 
					  - ftm
 | 
				
			||||||
 | 
					  - qca-ssdk-shell
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										14
									
								
								profiles/cig_wf189h.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								profiles/cig_wf189h.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					profile: cig_wf189h
 | 
				
			||||||
 | 
					target: ipq53xx
 | 
				
			||||||
 | 
					subtarget: generic
 | 
				
			||||||
 | 
					description: Build image for the CIG WF189h
 | 
				
			||||||
 | 
					image: bin/targets/ipq53xx/generic/openwrt-ipq53xx-cig_wf189h-squashfs-sysupgrade.tar
 | 
				
			||||||
 | 
					feeds:
 | 
				
			||||||
 | 
					  - name: qca
 | 
				
			||||||
 | 
					    path: ../../feeds/qca-wifi-7
 | 
				
			||||||
 | 
					include:
 | 
				
			||||||
 | 
					  - ucentral-ap
 | 
				
			||||||
 | 
					packages:
 | 
				
			||||||
 | 
					  - ipq53xx
 | 
				
			||||||
 | 
					  - qca-ssdk-shell
 | 
				
			||||||
							
								
								
									
										16
									
								
								profiles/sercomm_ap72tip-v4.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								profiles/sercomm_ap72tip-v4.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					profile: sercomm_ap72tip-v4
 | 
				
			||||||
 | 
					target: ipq53xx
 | 
				
			||||||
 | 
					subtarget: generic
 | 
				
			||||||
 | 
					description: Build image for the Sercomm AP72TIP-v4
 | 
				
			||||||
 | 
					image: bin/targets/ipq53xx/generic/openwrt-ipq53xx-sercomm_ap72tip-v4-squashfs-sysupgrade.tar
 | 
				
			||||||
 | 
					feeds:
 | 
				
			||||||
 | 
					  - name: qca
 | 
				
			||||||
 | 
					    path: ../../feeds/qca-wifi-7
 | 
				
			||||||
 | 
					include:
 | 
				
			||||||
 | 
					  - ucentral-ap
 | 
				
			||||||
 | 
					packages:
 | 
				
			||||||
 | 
					  - ipq53xx
 | 
				
			||||||
 | 
					  - qca-ssdk-shell
 | 
				
			||||||
 | 
					diffconfig: |
 | 
				
			||||||
 | 
					  CONFIG_KERNEL_IPQ_MEM_PROFILE=0
 | 
				
			||||||
@@ -2,14 +2,14 @@
 | 
				
			|||||||
profile: sercomm_ap72tip
 | 
					profile: sercomm_ap72tip
 | 
				
			||||||
target: ipq53xx
 | 
					target: ipq53xx
 | 
				
			||||||
subtarget: generic
 | 
					subtarget: generic
 | 
				
			||||||
description: Build image for the Sercomm AP72 TIP
 | 
					description: Build image for the Sercomm AP72TIP
 | 
				
			||||||
image: bin/targets/ipq53xx/generic/openwrt-ipq53xx-sercomm_ap72tip-squashfs-sysupgrade.tar
 | 
					image: bin/targets/ipq53xx/generic/openwrt-ipq53xx-sercomm_ap72tip-squashfs-sysupgrade.tar
 | 
				
			||||||
feeds:
 | 
					feeds:
 | 
				
			||||||
  - name: ipq95xx
 | 
					  - name: qca
 | 
				
			||||||
    path: ../../feeds/ipq95xx
 | 
					    path: ../../feeds/qca-wifi-7
 | 
				
			||||||
packages:
 | 
					 | 
				
			||||||
  - ipq53xx
 | 
					 | 
				
			||||||
include:
 | 
					include:
 | 
				
			||||||
  - ucentral-ap
 | 
					  - ucentral-ap
 | 
				
			||||||
 | 
					packages:
 | 
				
			||||||
 | 
					  - ipq53xx
 | 
				
			||||||
diffconfig: |
 | 
					diffconfig: |
 | 
				
			||||||
  CONFIG_KERNEL_IPQ_MEM_PROFILE=0
 | 
					  CONFIG_KERNEL_IPQ_MEM_PROFILE=0
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										15
									
								
								profiles/sonicfi_rap650c.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								profiles/sonicfi_rap650c.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					profile: sonicfi_rap650c
 | 
				
			||||||
 | 
					target: ipq807x
 | 
				
			||||||
 | 
					subtarget: generic
 | 
				
			||||||
 | 
					description: Build image for the SonicFi RAP650C
 | 
				
			||||||
 | 
					image: bin/targets/ipq807x/generic/openwrt-ipq807x-sonicfi_rap650c-squashfs-sysupgrade.tar
 | 
				
			||||||
 | 
					feeds:
 | 
				
			||||||
 | 
					  - name: ipq807x
 | 
				
			||||||
 | 
					    path: ../../feeds/ipq807x_v5.4
 | 
				
			||||||
 | 
					include:
 | 
				
			||||||
 | 
					  - ucentral-ap
 | 
				
			||||||
 | 
					packages:
 | 
				
			||||||
 | 
					  - ipq807x
 | 
				
			||||||
 | 
					diffconfig: |
 | 
				
			||||||
 | 
					  CONFIG_KERNEL_IPQ_MEM_PROFILE=0
 | 
				
			||||||
@@ -45,6 +45,7 @@ packages:
 | 
				
			|||||||
  - ucentral-schema
 | 
					  - ucentral-schema
 | 
				
			||||||
  - ucentral-state
 | 
					  - ucentral-state
 | 
				
			||||||
  - ucentral-tools
 | 
					  - ucentral-tools
 | 
				
			||||||
 | 
					  - udhcpinject
 | 
				
			||||||
  - udhcprelay
 | 
					  - udhcprelay
 | 
				
			||||||
  - ufp
 | 
					  - ufp
 | 
				
			||||||
  - ugps
 | 
					  - ugps
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user