mirror of
				https://github.com/Telecominfraproject/wlan-ap.git
				synced 2025-10-31 18:38:10 +00:00 
			
		
		
		
	Compare commits
	
		
			260 Commits
		
	
	
		
			release/v2
			...
			v3.0.2-rc3
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 192261318c | ||
|   | ffb843b486 | ||
|   | 741f7a299a | ||
|   | dcff5c6932 | ||
|   | 5c37272cd6 | ||
|   | 4b5eeb48cc | ||
|   | 1ca8f18b9d | ||
|   | 856ac16e86 | ||
|   | cc3906e550 | ||
|   | 6b3eb3ef99 | ||
|   | bc6da62f1b | ||
|   | 0eeb14d4d1 | ||
|   | 8a43d39572 | ||
|   | 9a80d8b1de | ||
|   | ca1eabfbd5 | ||
|   | c22767540e | ||
|   | dff6a6e3d8 | ||
|   | a7c9a5f780 | ||
|   | f8eca25f7e | ||
|   | be59b10acc | ||
|   | 1ec29f6705 | ||
|   | 3ae0a1f1d5 | ||
|   | f362b7139e | ||
|   | bdd2074d78 | ||
|   | 98ef44fc34 | ||
|   | 9bb982460a | ||
|   | 22126a3410 | ||
|   | f0035a9908 | ||
|   | 0412bf03eb | ||
|   | afcffbc418 | ||
|   | c29c179b9e | ||
|   | 36c4008c68 | ||
|   | 07f5deefce | ||
|   | 0d21a66d0a | ||
|   | 206b4348fc | ||
|   | f0c34c39da | ||
|   | b85b388eb5 | ||
|   | 556f8880bc | ||
|   | bf2ca9a9e4 | ||
|   | b24846cce3 | ||
|   | 4bcc60934e | ||
|   | 2b4fd7911a | ||
|   | 7b0f05d11b | ||
|   | af4c7e4ce5 | ||
|   | bfeea74870 | ||
|   | 3b5f90b339 | ||
|   | 8870e802a7 | ||
|   | 775af3700f | ||
|   | c95b91c399 | ||
|   | 460050a114 | ||
|   | 01adebbd6f | ||
|   | dcdbb4f091 | ||
|   | 144c5d00f4 | ||
|   | 2826c6d487 | ||
|   | 367415663f | ||
|   | 3ce4088499 | ||
|   | 37f1ef534e | ||
|   | 1142deb3d0 | ||
|   | 922067a652 | ||
|   | 62b9c6e257 | ||
|   | 63dd51cbc4 | ||
|   | 80c55c2d82 | ||
|   | 4e2b42e95a | ||
|   | 1949f602bf | ||
|   | 84f86bfc98 | ||
|   | ed9d29fb03 | ||
|   | c587a12ee5 | ||
|   | 2197badcde | ||
|   | 84c8eb5ccf | ||
|   | 16ebb7cec3 | ||
|   | 75a51e3cd9 | ||
|   | 832fbb8898 | ||
|   | 4d2603b4ce | ||
|   | 6fc396682c | ||
|   | 14aa04ad10 | ||
|   | 589cdf6795 | ||
|   | d5ffdffd8c | ||
|   | a14df28bd6 | ||
|   | 25bec55d4a | ||
|   | 575686449a | ||
|   | a849ad6e39 | ||
|   | de834a7d07 | ||
|   | d8fd2b8f39 | ||
|   | e1745cae9b | ||
|   | bfa3b829ee | ||
|   | 91dacf0e93 | ||
|   | c0dcc4aea2 | ||
|   | c97ac2da72 | ||
|   | f21fa9ab80 | ||
|   | 9305bc609b | ||
|   | 6d81e1e587 | ||
|   | 0c55b1f97a | ||
|   | bf06374839 | ||
|   | d2ff492853 | ||
|   | d3a4a73c15 | ||
|   | 73cb19e2be | ||
|   | 18ba90f5b4 | ||
|   | 9e5d1ae848 | ||
|   | 01240ada80 | ||
|   | 7fae3ebb90 | ||
|   | 00efc6f224 | ||
|   | 5bf9d31001 | ||
|   | 118dd7d224 | ||
|   | 559e67036d | ||
|   | c66a1f1fa6 | ||
|   | 9b77fb297c | ||
|   | 95dae95031 | ||
|   | a29aadbc90 | ||
|   | 753967bf6b | ||
|   | 9a9f9e1cb9 | ||
|   | 4db54ce3d9 | ||
|   | f7f913ab14 | ||
|   | 6d4788c26f | ||
|   | 6872bd6964 | ||
|   | a4a9a7692c | ||
|   | c22ad0089c | ||
|   | 14c6a1a482 | ||
|   | 984faeae9a | ||
|   | c98c7edc6a | ||
|   | e8b3a76fd9 | ||
|   | 140d8ba1e6 | ||
|   | c4bdf03787 | ||
|   | 371b287db4 | ||
|   | 3ed959bf25 | ||
|   | 0e077cf39a | ||
|   | ef0d3c6fdd | ||
|   | 5ca04b5fb8 | ||
|   | 98453fce9b | ||
|   | f6d6341ba0 | ||
|   | 8301bfbf89 | ||
|   | 1e844e2668 | ||
|   | 7fa9861cfc | ||
|   | 6500b62920 | ||
|   | 9423f9d6ab | ||
|   | 75374d2765 | ||
|   | c8c5f14071 | ||
|   | f12bbe2cac | ||
|   | 2ed8df9b10 | ||
|   | 85374fbbe6 | ||
|   | 4348221b62 | ||
|   | 0036dba689 | ||
|   | c1a1c21643 | ||
|   | 4c495e7be2 | ||
|   | 42239fb1ba | ||
|   | 89766b187d | ||
|   | eaa9e8585d | ||
|   | 89b3f9c6a9 | ||
|   | ecfaf9a263 | ||
|   | 5d43925874 | ||
|   | d2af552c5a | ||
|   | b60c18ea3d | ||
|   | 2e3de0eb66 | ||
|   | 49dcafdbff | ||
|   | 3beecaa683 | ||
|   | 5240ac395f | ||
|   | 56e0b3b50c | ||
|   | daf67c582f | ||
|   | dfbbb01ea9 | ||
|   | b4faeefc29 | ||
|   | 2416019d87 | ||
|   | d3c0df1a4f | ||
|   | 009c003b48 | ||
|   | 8f7369a71c | ||
|   | 78eb88ed26 | ||
|   | a48e7ce72e | ||
|   | d804a61cd6 | ||
|   | 04f10325a1 | ||
|   | 2f5b612837 | ||
|   | b0ef1b3221 | ||
|   | 6d3cc970da | ||
|   | 2e5c9fbeb8 | ||
|   | 546a7df54d | ||
|   | b1c9f75fc8 | ||
|   | 14ba074b95 | ||
|   | 4612fcfa00 | ||
|   | e32a9de55f | ||
|   | 0c4f7e9e9d | ||
|   | af9a47ad72 | ||
|   | d6f0a1a2cf | ||
|   | 2b8e68551e | ||
|   | b2ad71e97d | ||
|   | f1363f70e9 | ||
|   | 10c765076c | ||
|   | 35c36a9bff | ||
|   | bd1ff8c649 | ||
|   | e976d56575 | ||
|   | 99f6881a36 | ||
|   | de2fb200a2 | ||
|   | c8835ec6ba | ||
|   | 7e52502793 | ||
|   | e2f0258407 | ||
|   | 64cfe870ec | ||
|   | 265c289235 | ||
|   | f822dce124 | ||
|   | 7d090a8363 | ||
|   | 1a889b1ebe | ||
|   | 0df37f97d8 | ||
|   | fa1c620df3 | ||
|   | ad6f4241c4 | ||
|   | dba8d27d19 | ||
|   | f7c79205e9 | ||
|   | 1205d0e5b6 | ||
|   | b4f73f165d | ||
|   | ebdce386e4 | ||
|   | fcc7b8dfac | ||
|   | 9a04d5cb66 | ||
|   | e185a49c5b | ||
|   | 11bc8c143e | ||
|   | 05bab57b1d | ||
|   | 773040e099 | ||
|   | 47fe3e420e | ||
|   | 2e0301cacb | ||
|   | 3c868746a0 | ||
|   | 4cdb20fea4 | ||
|   | 08ded0c3f9 | ||
|   | 0080a5fb15 | ||
|   | bd67a6646a | ||
|   | 8706a596e1 | ||
|   | aa245da361 | ||
|   | 171607a03d | ||
|   | 9ec40d6baa | ||
|   | d824ff4cf5 | ||
|   | 81862f70db | ||
|   | 0f0a861a6d | ||
|   | c4b49e5190 | ||
|   | 5f787d92bb | ||
|   | ee30e1c9c1 | ||
|   | 1841c74d16 | ||
|   | 1c2e5c91d9 | ||
|   | 203f5ca2e6 | ||
|   | 75be792560 | ||
|   | d321c9c3a9 | ||
|   | 98d0f7b285 | ||
|   | 0cbe985599 | ||
|   | e61b923048 | ||
|   | 39ca4eedaa | ||
|   | ce20001751 | ||
|   | 3b68f33298 | ||
|   | aea4c20bfa | ||
|   | 79d5972643 | ||
|   | 539e288247 | ||
|   | 5ff383df91 | ||
|   | eef130b2fe | ||
|   | 6517fff793 | ||
|   | 2c6cc0d1d7 | ||
|   | ba5fd5f252 | ||
|   | eb1003f215 | ||
|   | ec613bb6f7 | ||
|   | ce1448b770 | ||
|   | 8801e89090 | ||
|   | 2947136db9 | ||
|   | 554e4fd90f | ||
|   | 771fc7f369 | ||
|   | 0a2cc59f49 | ||
|   | 1617b399c1 | ||
|   | 4dae21fbdb | ||
|   | 0dd9f0e042 | ||
|   | 49959b644b | ||
|   | 5236542275 | ||
|   | 73d949cf3f | 
							
								
								
									
										7
									
								
								.github/workflows/build-dev.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								.github/workflows/build-dev.yml
									
									
									
									
										vendored
									
									
								
							| @@ -21,11 +21,16 @@ jobs: | |||||||
|     strategy: |     strategy: | ||||||
|       fail-fast: false |       fail-fast: false | ||||||
|       matrix: |       matrix: | ||||||
|         target: [ 'cig_wf186w', 'cig_wf188n-ca', 'cig_wf188n-ca-ath12', 'cig_wf188n-us', 'cig_wf196-us', 'cig_wf196-ca', 'cig_wf196-ca-ath12', 'cig_wf610d', 'cig_wf660a', 'cig_wf808', 'cybertan_eww622-a1', 'cybertan_eww631-a1', 'cybertan_eww631-b1', 'edgecore_eap101', 'edgecore_eap101-ath12', 'edgecore_eap102', 'edgecore_eap102-ath12', 'edgecore_eap104', 'edgecore_eap104-ath12', 'liteon_wpx8324', 'edgecore_ecs4100-12ph', 'edgecore_ecw5211', 'edgecore_ecw5410', 'edgecore_oap100', 'edgecore_oap101-6e', 'edgecore_oap101e', 'hfcl_ion4','hfcl_ion4xi_wp', 'hfcl_ion4xe', 'hfcl_ion4xi', 'hfcl_ion4x', 'hfcl_ion4x_2', 'hfcl_ion4xi_w', 'hfcl_ion4xi_HMR', 'hfcl_ion4x_w', 'indio_um-305ac', 'indio_um-305ax', 'indio_um-325ac', 'indio_um-510ac-v3', 'indio_um-550ac', 'indio_um-310ax-v1', 'indio_um-510axp-v1', 'indio_um-510axm-v1', 'udaya_a5-id2', 'wallys_dr40x9', 'wallys_dr6018', 'wallys_dr6018_v4', 'x64_vm', 'yuncore_ax840', 'yuncore_fap640', 'yuncore_fap650', 'yuncore_fap655' ] |         target: [ 'cig_wf186h', 'cig_wf186w', 'cig_wf188n', 'cig_wf196', 'cig_wf189', 'cig_wf660a', 'cybertan_eww622-a1', 'cybertan_eww631-a1', 'cybertan_eww631-b1', 'edgecore_eap101', 'edgecore_eap102', 'edgecore_eap104', 'edgecore_eap111', 'edgecore_ecw5211', 'edgecore_oap101', 'edgecore_oap101-6e', 'edgecore_oap101e', 'edgecore_oap101e-6e', 'edgecore_oap102', 'hfcl_ion4','hfcl_ion4xi_wp', 'hfcl_ion4xe', 'hfcl_ion4xi', 'hfcl_ion4x', 'hfcl_ion4x_2', 'hfcl_ion4xi_w', 'hfcl_ion4xi_HMR', 'hfcl_ion4x_w', 'indio_um-305ax', 'indio_um-325ac', 'indio_um-510ac-v3', 'indio_um-550ac', 'indio_um-310ax-v1', 'indio_um-510axp-v1', 'indio_um-510axm-v1', 'sercomm_ap72tip', 'udaya_a5-id2', 'wallys_dr40x9', 'wallys_dr6018', 'wallys_dr6018-v4', 'yuncore_ax820', 'yuncore_ax840', 'yuncore_fap640', 'yuncore_fap650', 'yuncore_fap655' ] | ||||||
|  |  | ||||||
|     steps: |     steps: | ||||||
|     - uses: actions/checkout@v3 |     - uses: actions/checkout@v3 | ||||||
|  |  | ||||||
|  |     # Clean unnecessary files to save disk space | ||||||
|  |     - name: clean unncessary files to save space | ||||||
|  |       run: | | ||||||
|  |         docker rmi `docker images -q` | ||||||
|  |  | ||||||
|     - name: Build image for ${{ matrix.target }} |     - name: Build image for ${{ matrix.target }} | ||||||
|       id: build |       id: build | ||||||
|       run: | |       run: | | ||||||
|   | |||||||
							
								
								
									
										28
									
								
								LICENSE
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								LICENSE
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,28 @@ | |||||||
|  | BSD 3-Clause License | ||||||
|  |  | ||||||
|  | Copyright (c) 2024, Telecom Infra Project | ||||||
|  |  | ||||||
|  | Redistribution and use in source and binary forms, with or without | ||||||
|  | modification, are permitted provided that the following conditions are met: | ||||||
|  |  | ||||||
|  | 1. Redistributions of source code must retain the above copyright notice, this | ||||||
|  |    list of conditions and the following disclaimer. | ||||||
|  |  | ||||||
|  | 2. Redistributions in binary form must reproduce the above copyright notice, | ||||||
|  |    this list of conditions and the following disclaimer in the documentation | ||||||
|  |    and/or other materials provided with the distribution. | ||||||
|  |  | ||||||
|  | 3. Neither the name of the copyright holder nor the names of its | ||||||
|  |    contributors may be used to endorse or promote products derived from | ||||||
|  |    this software without specific prior written permission. | ||||||
|  |  | ||||||
|  | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | ||||||
|  | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||||||
|  | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||||||
|  | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE | ||||||
|  | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||||||
|  | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | ||||||
|  | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | ||||||
|  | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | ||||||
|  | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | ||||||
|  | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||||
							
								
								
									
										15
									
								
								config.yml
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								config.yml
									
									
									
									
									
								
							| @@ -1,16 +1,7 @@ | |||||||
| repo:  https://github.com/openwrt/openwrt.git | repo:  https://github.com/openwrt/openwrt.git | ||||||
| branch: openwrt-21.02 | branch: openwrt-23.05 | ||||||
| revision: c67509efd7d0c43eb3f622f06c8a31aa28d22f6e | revision: e92cf0c46ffe3ac7fca936c18577bfb19eb4ce9e | ||||||
| output_dir: ./output | output_dir: ./output | ||||||
|  |  | ||||||
| patch_folders: | patch_folders: | ||||||
|   - patches/backports/ |   - patches | ||||||
|   - patches/base |  | ||||||
|   - patches/wifi |  | ||||||
|   - patches/ath79 |  | ||||||
|   - patches/ramips |  | ||||||
|   - patches/ipq40xx |  | ||||||
|   - patches/ipq806x |  | ||||||
|   - patches/ipq807x |  | ||||||
|   - patches/rest |  | ||||||
|   - patches/x86 |  | ||||||
|   | |||||||
| @@ -5,7 +5,8 @@ START=80 | |||||||
| boot() { | boot() { | ||||||
| 	. /lib/functions/system.sh | 	. /lib/functions/system.sh | ||||||
| 	case $(board_name) in | 	case $(board_name) in | ||||||
| 	edgecore,eap102) | 	edgecore,eap102|\ | ||||||
|  | 	edgecore,oap102) | ||||||
| 		echo 54 > /sys/class/gpio/export | 		echo 54 > /sys/class/gpio/export | ||||||
| 		echo out > /sys/class/gpio/gpio54/direction | 		echo out > /sys/class/gpio/gpio54/direction | ||||||
| 		echo 0 > /sys/class/gpio/gpio54/value | 		echo 0 > /sys/class/gpio/gpio54/value | ||||||
|   | |||||||
							
								
								
									
										701
									
								
								feeds/ipq40xx/ath10k-ct-firmware/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										701
									
								
								feeds/ipq40xx/ath10k-ct-firmware/Makefile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,701 @@ | |||||||
|  | include $(TOPDIR)/rules.mk | ||||||
|  |  | ||||||
|  | PKG_NAME:=ath10k-ct-firmware | ||||||
|  | PKG_VERSION:=2020-10-07 | ||||||
|  | PKG_RELEASE:=2 | ||||||
|  | CTVER1=021 | ||||||
|  | CTVER2=021 | ||||||
|  |  | ||||||
|  | # From fw_lede.bash, or can do it manually as well. | ||||||
|  | H988XFC=a4c3d1e2fb80f6b8b9738c7189795ab9505e6c09efc12ba5f08ee7f49e934239 | ||||||
|  | H988XFCH=93108bd0870652860cdb57749f5a12205ecb15bb1f129d916ad73b6f06406c82 | ||||||
|  | H9887FC=459692deb186a63ab8eeddb7ad5d54779266e68ca686e7c46062554db6dca12b | ||||||
|  | H9887FCH=fd126a457d0927d0c8ea10d66ef5b67d5e1e0741f8692bb3016bb602d0af3098 | ||||||
|  | H9980FC=52300e9d128c3d506e0b133d7a7964df3115f9511f1b574ef2a0767972c063bd | ||||||
|  | H9980FCH=9c20c3a44b701f8fef0fe02f156e382b36b717fb56c76d540f6eac2077ec189b | ||||||
|  | H9980CH=55f27045e7cf87a6a5656a050771d6d7a6197153a0737288a702c0836d5c6572 | ||||||
|  | H9980FHQ=add509b2a15ba90869f403c2e4440dbb91bd7037188d8468249cf1263adfd44e | ||||||
|  | H9984FC=e6354a1547a308b4b0fe4cbc29693848c234acedd9e7a483a1b4fb5f9bbf0dc0 | ||||||
|  | H9984FCH=6e19ecd0b001ffb594a8b033deb2007595b8c0402402789b7de55b208639ebec | ||||||
|  | H9984CH=7b6fdf3d970f3eff7c34df476c934a9bebb4f289b7968067950d31b82c71bb07 | ||||||
|  | H9984FHQ=f6a5d5a3a7b2c9267dc31673a19ee3b5312a2f84f26123cb5e8c000428ed76d2 | ||||||
|  | H4019FC=cde992cb328680e81cf85e195554699bcceef065c0c696ce4ef90c3311ab11fb | ||||||
|  | H4019FCH=818afeb1226389357dfde754d641f936fb82ebe78607f10e15efd5c952a54f48 | ||||||
|  | H4019CH=30ba10f0d82116c6617cb58c3df5cc81e5ed8f29dbc8f95c0ca9c5013ce4f702 | ||||||
|  | H4019FHQ=8e4161f7bed5bd56513ca5caab582a6eee64e9e14a69f4de67587563b7b4d735 | ||||||
|  | H9888FC=d24e66bdb2f1098a2e06ff20fe037e31937e1a483e87c68827830513b4233b5d | ||||||
|  | H9888FCH=5891e1c184da433ecc12ca0176ca89a77f7bc2b675576698b69bc93d46b77042 | ||||||
|  | H9888CH=b94f46cdda6171e5f566b1cdd6aafd68ff1a4f7e8a27762b90eb5d4f03839d99 | ||||||
|  | H9888FHQ=3cc81f8707bf5ba63bc9ffc14578c77637cae0e15766ae146af02eefb9ab7bfd | ||||||
|  |  | ||||||
|  | include $(INCLUDE_DIR)/package.mk | ||||||
|  |  | ||||||
|  | ATH10K_FIRMWARE_REV:=d622d160e9f552ead68d9ae81b715422892dc2ef | ||||||
|  | ATH10K_FIRMWARE_URL:=@GITHUB/kvalo/ath10k-firmware/$(ATH10K_FIRMWARE_REV) | ||||||
|  |  | ||||||
|  | QCA9887_BOARD_FILE:=ath10k-firmware-$(ATH10K_FIRMWARE_REV)-qca9887-board.bin | ||||||
|  | define Download/qca9887-board | ||||||
|  |   FILE:=$(QCA9887_BOARD_FILE) | ||||||
|  |   URL:=$(ATH10K_FIRMWARE_URL)/QCA9887/hw1.0 | ||||||
|  |   URL_FILE:=board.bin | ||||||
|  |   HASH:=cf4df099f6ee05c181f55ce17297a1d32c61d725eb96246fd315ad5587c42426 | ||||||
|  | endef | ||||||
|  | $(eval $(call Download,qca9887-board)) | ||||||
|  |  | ||||||
|  | QCA988X_BOARD_FILE:=ath10k-firmware-$(ATH10K_FIRMWARE_REV)-qca988x-board.bin | ||||||
|  | define Download/qca988x-board | ||||||
|  |   FILE:=$(QCA988X_BOARD_FILE) | ||||||
|  |   URL:=$(ATH10K_FIRMWARE_URL)/QCA988X/hw2.0 | ||||||
|  |   URL_FILE:=board.bin | ||||||
|  |   HASH:=5b5b380333c2dd3b6ce67f30e2f7008f4020bf594970d3b464fd8d4a80fcd880 | ||||||
|  | endef | ||||||
|  | $(eval $(call Download,qca988x-board)) | ||||||
|  |  | ||||||
|  | QCA99X0_BOARD_FILE:=ath10k-firmware-$(ATH10K_FIRMWARE_REV)-qca99x0-board.bin | ||||||
|  | define Download/qca99x0-board | ||||||
|  |   FILE:=$(QCA99X0_BOARD_FILE) | ||||||
|  |   URL:=$(ATH10K_FIRMWARE_URL)/QCA99X0/hw2.0 | ||||||
|  |   URL_FILE:=boardData_AR900B_CUS239_5G_v2_001.bin | ||||||
|  |   HASH:=3bf7561ee373b369025dcd366d276d038a97d3397ccae41ce841d98a58b30aff | ||||||
|  | endef | ||||||
|  | $(eval $(call Download,qca99x0-board)) | ||||||
|  |  | ||||||
|  | QCA99X0_BOARD2_REV:=ddcec9efd245da9365c474f513a855a55f3ac7fe | ||||||
|  | QCA99X0_BOARD2_FILE:=ath10k-firmware-$(QCA99X0_BOARD2_REV)-qca99x0-board-2.bin | ||||||
|  | define Download/qca99x0-board2 | ||||||
|  |   FILE:=$(QCA99X0_BOARD2_FILE) | ||||||
|  |   URL:=https://source.codeaurora.org/quic/qsdk/oss/firmware/ath10k-firmware/plain/ath10k/QCA99X0/hw2.0 | ||||||
|  |   URL_FILE:=board-2.bin?id=$(QCA99X0_BOARD2_REV) | ||||||
|  |   HASH:=03711ac21e60ef59d3815e235eb721c0c22851b5410299411085aa6f2af45401 | ||||||
|  | endef | ||||||
|  | $(eval $(call Download,qca99x0-board2)) | ||||||
|  |  | ||||||
|  | QCA9984_BOARD2_FILE:=ath10k-firmware-$(ATH10K_FIRMWARE_REV)-qca9984-board-2.bin | ||||||
|  | define Download/qca9984-board2 | ||||||
|  |   FILE:=$(QCA9984_BOARD2_FILE) | ||||||
|  |   URL:=$(ATH10K_FIRMWARE_URL)/QCA9984/hw1.0 | ||||||
|  |   URL_FILE:=board-2.bin | ||||||
|  |   HASH:=0d6d46cf0467185e3959ce3cb69e2415be6e48ab8a4bee3eb400edbe48cb9c25 | ||||||
|  | endef | ||||||
|  | $(eval $(call Download,qca9984-board2)) | ||||||
|  |  | ||||||
|  | QCA4019_BOARD2_FILE:=ath10k-firmware-$(ATH10K_FIRMWARE_REV)-qca4019-board-2.bin | ||||||
|  | define Download/qca4019-board2 | ||||||
|  |   FILE:=$(QCA4019_BOARD2_FILE) | ||||||
|  |   URL:=$(ATH10K_FIRMWARE_URL)/QCA4019/hw1.0 | ||||||
|  |   URL_FILE:=board-2.bin | ||||||
|  |   HASH:=94b66aa4ddbed5110a96364d3c7b4ebcb320e3ac4e8697660b277e76077bc338 | ||||||
|  | endef | ||||||
|  | $(eval $(call Download,qca4019-board2)) | ||||||
|  |  | ||||||
|  | QCA9888_BOARD2_FILE:=ath10k-firmware-$(ATH10K_FIRMWARE_REV)-qca9888-board-2.bin | ||||||
|  | define Download/qca9888-board2 | ||||||
|  |   FILE:=$(QCA9888_BOARD2_FILE) | ||||||
|  |   URL:=$(ATH10K_FIRMWARE_URL)/QCA9888/hw2.0 | ||||||
|  |   URL_FILE:=board-2.bin | ||||||
|  |   HASH:=5b871bb567f64525ca45adb88063211de472015d09e0f9aa3fa61ab71c8fdfd3 | ||||||
|  | endef | ||||||
|  | $(eval $(call Download,qca9888-board2)) | ||||||
|  |  | ||||||
|  | CT_FIRMWARE_FILE = $(1)-$($(1)_FIRMWARE_FILE_CT) | ||||||
|  | CT_FIRMWARE_FILE_FULL_HTT = $(1)-$($(1)_FIRMWARE_FILE_CT_FULL_HTT) | ||||||
|  | CT_FIRMWARE_FILE_HTT = $(1)-$($(1)_FIRMWARE_FILE_CT_HTT) | ||||||
|  |  | ||||||
|  | define Download/ct-firmware | ||||||
|  |   URL:=https://www.candelatech.com/downloads/$(2) | ||||||
|  |   FILE:=$(call CT_FIRMWARE_FILE,$(1)) | ||||||
|  |   URL_FILE:=$($(1)_FIRMWARE_FILE_CT) | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Download/ct-firmware-full-htt | ||||||
|  |   URL:=https://www.candelatech.com/downloads/$(2) | ||||||
|  |   FILE:=$(call CT_FIRMWARE_FILE_FULL_HTT,$(1)) | ||||||
|  |   URL_FILE:=$($(1)_FIRMWARE_FILE_CT_FULL_HTT) | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Download/ct-firmware-htt | ||||||
|  |   URL:=https://www.candelatech.com/downloads/$(2) | ||||||
|  |   FILE:=$(call CT_FIRMWARE_FILE_HTT,$(1)) | ||||||
|  |   URL_FILE:=$($(1)_FIRMWARE_FILE_CT_HTT) | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | QCA988X_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-22.bin.lede.$(CTVER1) | ||||||
|  | define Download/ath10k-firmware-qca988x-ct | ||||||
|  |   $(call Download/ct-firmware,QCA988X,) | ||||||
|  |   HASH:=$(H988XFC) | ||||||
|  | endef | ||||||
|  | $(eval $(call Download,ath10k-firmware-qca988x-ct)) | ||||||
|  |  | ||||||
|  | QCA988X_FIRMWARE_FILE_CT_FULL_HTT:=firmware-2-ct-full-htt-mgt-community-22.bin.lede.$(CTVER1) | ||||||
|  | define Download/ath10k-firmware-qca988x-ct-full-htt | ||||||
|  |   $(call Download/ct-firmware-full-htt,QCA988X,) | ||||||
|  |   HASH:=$(H988XFCH) | ||||||
|  | endef | ||||||
|  | $(eval $(call Download,ath10k-firmware-qca988x-ct-full-htt)) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | QCA9887_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-22.bin.lede.$(CTVER1) | ||||||
|  | define Download/ath10k-firmware-qca9887-ct | ||||||
|  |   $(call Download/ct-firmware,QCA9887,ath10k-9887) | ||||||
|  |   HASH:=$(H9887FC) | ||||||
|  | endef | ||||||
|  | $(eval $(call Download,ath10k-firmware-qca9887-ct)) | ||||||
|  |  | ||||||
|  | QCA9887_FIRMWARE_FILE_CT_FULL_HTT:=firmware-2-ct-full-htt-mgt-community-22.bin.lede.$(CTVER1) | ||||||
|  | define Download/ath10k-firmware-qca9887-ct-full-htt | ||||||
|  |   $(call Download/ct-firmware-full-htt,QCA9887,ath10k-9887) | ||||||
|  |   HASH:=$(H9887FCH) | ||||||
|  | endef | ||||||
|  | $(eval $(call Download,ath10k-firmware-qca9887-ct-full-htt)) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | QCA99X0_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.$(CTVER2) | ||||||
|  | define Download/ath10k-firmware-qca99x0-ct | ||||||
|  |   $(call Download/ct-firmware,QCA99X0,ath10k-10-4b) | ||||||
|  |   HASH:=$(H9980FC) | ||||||
|  | endef | ||||||
|  | $(eval $(call Download,ath10k-firmware-qca99x0-ct)) | ||||||
|  |  | ||||||
|  | QCA99X0_FIRMWARE_FILE_CT_FULL_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.$(CTVER2) | ||||||
|  | define Download/ath10k-firmware-qca99x0-ct-full-htt | ||||||
|  |   $(call Download/ct-firmware-full-htt,QCA99X0,ath10k-10-4b) | ||||||
|  |   HASH:=$(H9980FCH) | ||||||
|  | endef | ||||||
|  | $(eval $(call Download,ath10k-firmware-qca99x0-ct-full-htt)) | ||||||
|  |  | ||||||
|  | QCA99X0_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-community-12.bin-lede.$(CTVER2) | ||||||
|  | define Download/ath10k-firmware-qca99x0-ct-htt | ||||||
|  |   $(call Download/ct-firmware-htt,QCA99X0,ath10k-10-4b) | ||||||
|  |   HASH:=$(H9980CH) | ||||||
|  | endef | ||||||
|  | $(eval $(call Download,ath10k-firmware-qca99x0-ct-htt)) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | QCA9984_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.$(CTVER2) | ||||||
|  | define Download/ath10k-firmware-qca9984-ct | ||||||
|  |   $(call Download/ct-firmware,QCA9984,ath10k-9984-10-4b) | ||||||
|  |   HASH:=$(H9984FC) | ||||||
|  | endef | ||||||
|  | $(eval $(call Download,ath10k-firmware-qca9984-ct)) | ||||||
|  |  | ||||||
|  | QCA9984_FIRMWARE_FILE_CT_FULL_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.$(CTVER2) | ||||||
|  | define Download/ath10k-firmware-qca9984-ct-full-htt | ||||||
|  |   $(call Download/ct-firmware-full-htt,QCA9984,ath10k-9984-10-4b) | ||||||
|  |   HASH:=$(H9984FCH) | ||||||
|  | endef | ||||||
|  | $(eval $(call Download,ath10k-firmware-qca9984-ct-full-htt)) | ||||||
|  |  | ||||||
|  | QCA9984_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-community-12.bin-lede.$(CTVER2) | ||||||
|  | define Download/ath10k-firmware-qca9984-ct-htt | ||||||
|  |   $(call Download/ct-firmware-htt,QCA9984,ath10k-9984-10-4b) | ||||||
|  |   HASH:=$(H9984CH) | ||||||
|  | endef | ||||||
|  | $(eval $(call Download,ath10k-firmware-qca9984-ct-htt)) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | QCA4019_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.$(CTVER2) | ||||||
|  | define Download/ath10k-firmware-qca4019-ct | ||||||
|  |   $(call Download/ct-firmware,QCA4019,ath10k-4019-10-4b) | ||||||
|  |   HASH:=$(H4019FC) | ||||||
|  | endef | ||||||
|  | $(eval $(call Download,ath10k-firmware-qca4019-ct)) | ||||||
|  |  | ||||||
|  | QCA4019_FIRMWARE_FILE_CT_FULL_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.$(CTVER2) | ||||||
|  | define Download/ath10k-firmware-qca4019-ct-full-htt | ||||||
|  |   $(call Download/ct-firmware-full-htt,QCA4019,ath10k-4019-10-4b) | ||||||
|  |   HASH:=$(H4019FCH) | ||||||
|  | endef | ||||||
|  | $(eval $(call Download,ath10k-firmware-qca4019-ct-full-htt)) | ||||||
|  |  | ||||||
|  | QCA4019_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-community-12.bin-lede.$(CTVER2) | ||||||
|  | define Download/ath10k-firmware-qca4019-ct-htt | ||||||
|  |   $(call Download/ct-firmware-htt,QCA4019,ath10k-4019-10-4b) | ||||||
|  |   HASH:=$(H4019CH) | ||||||
|  | endef | ||||||
|  | $(eval $(call Download,ath10k-firmware-qca4019-ct-htt)) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | QCA9888_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.$(CTVER2) | ||||||
|  | define Download/ath10k-firmware-qca9888-ct | ||||||
|  |   $(call Download/ct-firmware,QCA9888,ath10k-9888-10-4b) | ||||||
|  |   HASH:=$(H9888FC) | ||||||
|  | endef | ||||||
|  | $(eval $(call Download,ath10k-firmware-qca9888-ct)) | ||||||
|  |  | ||||||
|  | QCA9888_FIRMWARE_FILE_CT_FULL_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.$(CTVER2) | ||||||
|  | define Download/ath10k-firmware-qca9888-ct-full-htt | ||||||
|  |   $(call Download/ct-firmware-full-htt,QCA9888,ath10k-9888-10-4b) | ||||||
|  |   HASH:=$(H9888FCH) | ||||||
|  | endef | ||||||
|  | $(eval $(call Download,ath10k-firmware-qca9888-ct-full-htt)) | ||||||
|  |  | ||||||
|  | QCA9888_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-community-12.bin-lede.$(CTVER2) | ||||||
|  | define Download/ath10k-firmware-qca9888-ct-htt | ||||||
|  |   $(call Download/ct-firmware-htt,QCA9888,ath10k-9888-10-4b) | ||||||
|  |   HASH:=$(H9888CH) | ||||||
|  | endef | ||||||
|  | $(eval $(call Download,ath10k-firmware-qca9888-ct-htt)) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | define Package/ath10k-ct-firmware-default | ||||||
|  |   SECTION:=firmware | ||||||
|  |   CATEGORY:=Firmware | ||||||
|  |   URL:=https://www.candelatech.com/ath10k.php | ||||||
|  |   DEPENDS:= | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/ath10k-firmware-qca988x-ct | ||||||
|  | $(Package/ath10k-ct-firmware-default) | ||||||
|  |   TITLE:=ath10k CT 10.1 firmware for QCA988x devices | ||||||
|  |   SECTION:=firmware | ||||||
|  |   CATEGORY:=Firmware | ||||||
|  |   PROVIDES:=ath10k-firmware-qca988x | ||||||
|  | endef | ||||||
|  | define Package/ath10k-firmware-qca988x-ct-full-htt | ||||||
|  | $(Package/ath10k-ct-firmware-default) | ||||||
|  |   TITLE:=ath10k CT 10.1 full-htt-mgt fw for QCA988x | ||||||
|  |   SECTION:=firmware | ||||||
|  |   CATEGORY:=Firmware | ||||||
|  |   PROVIDES:=ath10k-firmware-qca988x | ||||||
|  |   DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/ath10k-firmware-qca9887-ct | ||||||
|  | $(Package/ath10k-ct-firmware-default) | ||||||
|  |   TITLE:=ath10k CT 10.1 firmware for QCA9887 devices | ||||||
|  |   SECTION:=firmware | ||||||
|  |   CATEGORY:=Firmware | ||||||
|  |   PROVIDES:=ath10k-firmware-qca9887 | ||||||
|  | endef | ||||||
|  | define Package/ath10k-firmware-qca9887-ct-full-htt | ||||||
|  | $(Package/ath10k-ct-firmware-default) | ||||||
|  |   TITLE:=ath10k CT 10.1 full-htt-mgt fw for QCA9887 | ||||||
|  |   SECTION:=firmware | ||||||
|  |   CATEGORY:=Firmware | ||||||
|  |   PROVIDES:=ath10k-firmware-qca9887 | ||||||
|  |   DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/ath10k-firmware-qca99x0-ct | ||||||
|  | $(Package/ath10k-ct-firmware-default) | ||||||
|  |   TITLE:=ath10k CT 10.4 firmware for QCA99x0 devices | ||||||
|  |   SECTION:=firmware | ||||||
|  |   CATEGORY:=Firmware | ||||||
|  |   PROVIDES:=ath10k-firmware-qca99x0 | ||||||
|  | endef | ||||||
|  | define Package/ath10k-firmware-qca99x0-ct-full-htt | ||||||
|  | $(Package/ath10k-ct-firmware-default) | ||||||
|  |   TITLE:=ath10k CT 10.4 full-htt-mgt fw for QCA99x0 | ||||||
|  |   SECTION:=firmware | ||||||
|  |   CATEGORY:=Firmware | ||||||
|  |   PROVIDES:=ath10k-firmware-qca99x0 | ||||||
|  |   DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct | ||||||
|  | endef | ||||||
|  | define Package/ath10k-firmware-qca99x0-ct-htt | ||||||
|  | $(Package/ath10k-firmware-default) | ||||||
|  |   TITLE:=ath10k CT 10.4 htt-mgt fw for QCA99x0 | ||||||
|  |   SECTION:=firmware | ||||||
|  |   CATEGORY:=Firmware | ||||||
|  |   PROVIDES:=ath10k-firmware-qca99x0 | ||||||
|  |   DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/ath10k-firmware-qca9984-ct | ||||||
|  | $(Package/ath10k-ct-firmware-default) | ||||||
|  |   TITLE:=ath10k CT 10.4 firmware for QCA9984 devices | ||||||
|  |   SECTION:=firmware | ||||||
|  |   CATEGORY:=Firmware | ||||||
|  |   PROVIDES:=ath10k-firmware-qca9984 | ||||||
|  | endef | ||||||
|  | define Package/ath10k-firmware-qca9984-ct-full-htt | ||||||
|  | $(Package/ath10k-ct-firmware-default) | ||||||
|  |   TITLE:=ath10k CT 10.4 full-htt-mgt fw for QCA9984 | ||||||
|  |   SECTION:=firmware | ||||||
|  |   CATEGORY:=Firmware | ||||||
|  |   PROVIDES:=ath10k-firmware-qca9984 | ||||||
|  |   DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct | ||||||
|  | endef | ||||||
|  | define Package/ath10k-firmware-qca9984-ct-htt | ||||||
|  | $(Package/ath10k-firmware-default) | ||||||
|  |   TITLE:=ath10k CT 10.4 htt-mgt fw for QCA9984 | ||||||
|  |   SECTION:=firmware | ||||||
|  |   CATEGORY:=Firmware | ||||||
|  |   PROVIDES:=ath10k-firmware-qca9984 | ||||||
|  |   DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/ath10k-firmware-qca4019-ct | ||||||
|  | $(Package/ath10k-ct-firmware-default) | ||||||
|  |   TITLE:=ath10k CT 10.4 firmware for QCA4018/9 | ||||||
|  |   SECTION:=firmware | ||||||
|  |   CATEGORY:=Firmware | ||||||
|  |   PROVIDES:=ath10k-firmware-qca4019 | ||||||
|  | endef | ||||||
|  | define Package/ath10k-firmware-qca4019-ct-full-htt | ||||||
|  | $(Package/ath10k-ct-firmware-default) | ||||||
|  |   TITLE:=ath10k CT 10.4 full-htt-mgt for QCA4018/9 | ||||||
|  |   SECTION:=firmware | ||||||
|  |   CATEGORY:=Firmware | ||||||
|  |   PROVIDES:=ath10k-firmware-qca4019 | ||||||
|  |   DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct | ||||||
|  | endef | ||||||
|  | define Package/ath10k-firmware-qca4019-ct-htt | ||||||
|  | $(Package/ath10k-firmware-default) | ||||||
|  |   TITLE:=ath10k CT 10.4 htt-mgt for QCA4018/9 | ||||||
|  |   SECTION:=firmware | ||||||
|  |   CATEGORY:=Firmware | ||||||
|  |   PROVIDES:=ath10k-firmware-qca4019 | ||||||
|  |   DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/ath10k-firmware-qca9888-ct | ||||||
|  | $(Package/ath10k-ct-firmware-default) | ||||||
|  |   TITLE:=ath10k CT 10.4 fw for QCA9886/8 devices | ||||||
|  |   SECTION:=firmware | ||||||
|  |   CATEGORY:=Firmware | ||||||
|  |   PROVIDES:=ath10k-firmware-qca9888 | ||||||
|  | endef | ||||||
|  | define Package/ath10k-firmware-qca9888-ct-full-htt | ||||||
|  | $(Package/ath10k-ct-firmware-default) | ||||||
|  |   TITLE:=ath10k CT 10.4 full-htt-mgt fw for QCA9886/8 | ||||||
|  |   SECTION:=firmware | ||||||
|  |   CATEGORY:=Firmware | ||||||
|  |   PROVIDES:=ath10k-firmware-qca9888 | ||||||
|  |   DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct | ||||||
|  | endef | ||||||
|  | define Package/ath10k-firmware-qca9888-ct-htt | ||||||
|  | $(Package/ath10k-firmware-default) | ||||||
|  |   TITLE:=ath10k CT 10.4 htt-mgt fw for QCA9886/8 | ||||||
|  |   SECTION:=firmware | ||||||
|  |   CATEGORY:=Firmware | ||||||
|  |   PROVIDES:=ath10k-firmware-qca9888 | ||||||
|  |   DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct | ||||||
|  | endef | ||||||
|  |  | ||||||
|  |  | ||||||
|  | define Package/ath10k-firmware-qca9887-ct/description | ||||||
|  | Alternative ath10k firmware for QCA9887 from Candela Technologies. | ||||||
|  | Enables IBSS and other features.  See: | ||||||
|  | http://www.candelatech.com/ath10k-10.1.php | ||||||
|  | This firmware conflicts with the standard 9887 firmware, so select only | ||||||
|  | one. | ||||||
|  | endef | ||||||
|  | define Package/ath10k-firmware-qca9887-ct-full-htt/description | ||||||
|  | Alternative ath10k firmware for QCA9887 from Candela Technologies. | ||||||
|  | Uses normal HTT TX data path for management frames, which improves | ||||||
|  | stability in busy networks and fixes .11r authentication. | ||||||
|  | Enables IBSS and other features.  See: | ||||||
|  | http://www.candelatech.com/ath10k-10.1.php | ||||||
|  | This firmware selects and requires the ath10k-ct driver. | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/ath10k-firmware-qca988x-ct/description | ||||||
|  | Alternative ath10k firmware for QCA988X from Candela Technologies. | ||||||
|  | Enables IBSS and other features.  See: | ||||||
|  | http://www.candelatech.com/ath10k-10.1.php | ||||||
|  | This firmware will NOT be used unless the standard ath10k-firmware-qca988x | ||||||
|  | is un-selected since the driver will try to load firmware-5.bin before | ||||||
|  | firmware-2.bin | ||||||
|  | endef | ||||||
|  | define Package/ath10k-firmware-qca988x-ct-full-htt/description | ||||||
|  | Alternative ath10k firmware for QCA988X from Candela Technologies. | ||||||
|  | Uses normal HTT TX data path for management frames, which improves | ||||||
|  | stability in busy networks and fixes .11r authentication. | ||||||
|  | Enables IBSS and other features.  See: | ||||||
|  | http://www.candelatech.com/ath10k-10.1.php | ||||||
|  | This firmware selects and requires the ath10k-ct driver. | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/ath10k-firmware-qca99x0-ct/description | ||||||
|  | Alternative ath10k firmware for QCA99x0 from Candela Technologies. | ||||||
|  | Enables IBSS and other features.  See: | ||||||
|  | http://www.candelatech.com/ath10k-10.4.php | ||||||
|  | This firmware conflicts with the standard 99x0 firmware, so select only | ||||||
|  | one. | ||||||
|  | endef | ||||||
|  | define Package/ath10k-firmware-qca99x0-ct-full-htt/description | ||||||
|  | Alternative ath10k firmware for QCA99x0 from Candela Technologies. | ||||||
|  | Uses normal HTT TX data path for management frames, which improves | ||||||
|  | stability in busy networks and may be required for .11r authentication. | ||||||
|  | Enables IBSS and other features.  See: | ||||||
|  | http://www.candelatech.com/ath10k-10.4.php | ||||||
|  | This firmware selects and requires the ath10k-ct driver. | ||||||
|  | endef | ||||||
|  | define Package/ath10k-firmware-qca99x0-ct-htt/description | ||||||
|  | Alternative ath10k firmware for QCA99x0 from Candela Technologies. | ||||||
|  | Uses normal HTT TX data path for management frames, which improves | ||||||
|  | stability in busy networks and may be required for .11r authentication. | ||||||
|  | This firmware lacks a lot of features that ath10k does not use, saving | ||||||
|  | a lot of resources. | ||||||
|  | Enables IBSS and other features.  See: | ||||||
|  | http://www.candelatech.com/ath10k-10.4.php | ||||||
|  | This firmware selects and requires the ath10k-ct driver. | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/ath10k-firmware-qca9984-ct/description | ||||||
|  | Alternative ath10k firmware for QCA9984 from Candela Technologies. | ||||||
|  | Enables IBSS and other features.  See: | ||||||
|  | http://www.candelatech.com/ath10k-10.4.php | ||||||
|  | This firmware conflicts with the standard 9984 firmware, so select only | ||||||
|  | one. | ||||||
|  | endef | ||||||
|  | define Package/ath10k-firmware-qca9984-ct-full-htt/description | ||||||
|  | Alternative ath10k firmware for QCA9984 from Candela Technologies. | ||||||
|  | Uses normal HTT TX data path for management frames, which improves | ||||||
|  | stability in busy networks and may be required for .11r authentication. | ||||||
|  | Enables IBSS and other features.  See: | ||||||
|  | http://www.candelatech.com/ath10k-10.4.php | ||||||
|  | This firmware selects and requires the ath10k-ct driver. | ||||||
|  | endef | ||||||
|  | define Package/ath10k-firmware-qca9984-ct-htt/description | ||||||
|  | Alternative ath10k firmware for QCA9984 from Candela Technologies. | ||||||
|  | Uses normal HTT TX data path for management frames, which improves | ||||||
|  | stability in busy networks and may be required for .11r authentication. | ||||||
|  | This firmware lacks a lot of features that ath10k does not use, saving | ||||||
|  | a lot of resources. | ||||||
|  | Enables IBSS and other features.  See: | ||||||
|  | http://www.candelatech.com/ath10k-10.4.php | ||||||
|  | This firmware selects and requires the ath10k-ct driver. | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/ath10k-firmware-qca4019-ct/description | ||||||
|  | Alternative ath10k firmware for IPQ4019 radio from Candela Technologies. | ||||||
|  | Enables IBSS and other features.  Works with standard or ath10k-ct driver. | ||||||
|  | See:  http://www.candelatech.com/ath10k-10.4.php | ||||||
|  | endef | ||||||
|  | define Package/ath10k-firmware-qca4019-ct-full-htt/description | ||||||
|  | Alternative ath10k firmware for IPQ4019 radio from Candela Technologies. | ||||||
|  | Uses normal HTT TX data path for management frames, which improves | ||||||
|  | stability in busy networks and may be required for .11r authentication. | ||||||
|  | Enables IBSS and other features. | ||||||
|  | See:  http://www.candelatech.com/ath10k-10.4.php | ||||||
|  | This firmware selects and requires the ath10k-ct driver. | ||||||
|  | endef | ||||||
|  | define Package/ath10k-firmware-qca4019-ct-htt/description | ||||||
|  | Alternative ath10k firmware for IPQ4019 radio from Candela Technologies. | ||||||
|  | Uses normal HTT TX data path for management frames, which improves | ||||||
|  | stability in busy networks and may be required for .11r authentication. | ||||||
|  | This firmware lacks a lot of features that ath10k does not use, saving | ||||||
|  | a lot of resources. | ||||||
|  | Enables IBSS and other features. | ||||||
|  | See:  http://www.candelatech.com/ath10k-10.4.php | ||||||
|  | This firmware selects and requires the ath10k-ct driver. | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/ath10k-firmware-qca9888-ct/description | ||||||
|  | Alternative ath10k firmware for QCA9886 and QCA9888 from Candela Technologies. | ||||||
|  | Enables IBSS and other features.  See: | ||||||
|  | http://www.candelatech.com/ath10k-10.4.php | ||||||
|  | This firmware conflicts with the standard 9886 and 9888 firmware, so select only | ||||||
|  | one. | ||||||
|  | endef | ||||||
|  | define Package/ath10k-firmware-qca9888-ct-full-htt/description | ||||||
|  | Alternative ath10k firmware for QCA9886 and QCA9888 from Candela Technologies. | ||||||
|  | Uses normal HTT TX data path for management frames, which improves | ||||||
|  | stability in busy networks and may be required for .11r authentication. | ||||||
|  | Enables IBSS and other features.  See: | ||||||
|  | http://www.candelatech.com/ath10k-10.4.php | ||||||
|  | This firmware selects and requires the ath10k-ct driver. | ||||||
|  | endef | ||||||
|  | define Package/ath10k-firmware-qca9888-ct-htt/description | ||||||
|  | Alternative ath10k firmware for QCA9886 and QCA9888 from Candela Technologies. | ||||||
|  | Uses normal HTT TX data path for management frames, which improves | ||||||
|  | stability in busy networks and may be required for .11r authentication. | ||||||
|  | This firmware lacks a lot of features that ath10k does not use, saving | ||||||
|  | a lot of resources. | ||||||
|  | Enables IBSS and other features.  See: | ||||||
|  | http://www.candelatech.com/ath10k-10.4.php | ||||||
|  | This firmware selects and requires the ath10k-ct driver. | ||||||
|  | endef | ||||||
|  |  | ||||||
|  |  | ||||||
|  | define Build/Compile | ||||||
|  |  | ||||||
|  | endef | ||||||
|  |  | ||||||
|  |  | ||||||
|  | define Package/ath10k-firmware-qca9887-ct/install | ||||||
|  | 	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9887/hw1.0 | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA9887) \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA9887/hw1.0/firmware-2.bin | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(DL_DIR)/$(QCA9887_BOARD_FILE) \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA9887/hw1.0/board.bin | ||||||
|  | endef | ||||||
|  | define Package/ath10k-firmware-qca9887-ct-full-htt/install | ||||||
|  | 	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9887/hw1.0 | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(DL_DIR)/$(call CT_FIRMWARE_FILE_FULL_HTT,QCA9887) \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA9887/hw1.0/ct-firmware-2.bin | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(DL_DIR)/$(QCA9887_BOARD_FILE) \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA9887/hw1.0/board.bin | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/ath10k-firmware-qca988x-ct/install | ||||||
|  | 	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA988X/hw2.0 | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(DL_DIR)/$(QCA988X_BOARD_FILE) \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA988X/hw2.0/board.bin | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA988X) \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA988X/hw2.0/firmware-2.bin | ||||||
|  | endef | ||||||
|  | define Package/ath10k-firmware-qca988x-ct-full-htt/install | ||||||
|  | 	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA988X/hw2.0 | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(DL_DIR)/$(QCA988X_BOARD_FILE) \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA988X/hw2.0/board.bin | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(DL_DIR)/$(call CT_FIRMWARE_FILE_FULL_HTT,QCA988X) \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA988X/hw2.0/ct-firmware-2.bin | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/ath10k-firmware-qca99x0-ct/install | ||||||
|  | 	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA99X0/hw2.0 | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(DL_DIR)/$(QCA99X0_BOARD2_FILE) \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board-2.bin | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(DL_DIR)/$(QCA99X0_BOARD_FILE) \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board.bin | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA99X0) \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/firmware-5.bin | ||||||
|  | endef | ||||||
|  | define Package/ath10k-firmware-qca99x0-ct-full-htt/install | ||||||
|  | 	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA99X0/hw2.0 | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(DL_DIR)/$(QCA99X0_BOARD2_FILE) \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board-2.bin | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(DL_DIR)/$(QCA99X0_BOARD_FILE) \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board.bin | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(DL_DIR)/$(call CT_FIRMWARE_FILE_FULL_HTT,QCA99X0) \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/ct-firmware-5.bin | ||||||
|  | endef | ||||||
|  | define Package/ath10k-firmware-qca99x0-ct-htt/install | ||||||
|  | 	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA99X0/hw2.0 | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(DL_DIR)/$(QCA99X0_BOARD2_FILE) \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board-2.bin | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(DL_DIR)/$(QCA99X0_BOARD_FILE) \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board.bin | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA99X0) \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/ct-firmware-5.bin | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/ath10k-firmware-qca9984-ct/install | ||||||
|  | 	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9984/hw1.0 | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(DL_DIR)/$(QCA9984_BOARD2_FILE) \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA9984/hw1.0/board-2.bin | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA9984) \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA9984/hw1.0/firmware-5.bin | ||||||
|  | endef | ||||||
|  | define Package/ath10k-firmware-qca9984-ct-full-htt/install | ||||||
|  | 	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9984/hw1.0 | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(DL_DIR)/$(QCA9984_BOARD2_FILE) \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA9984/hw1.0/board-2.bin | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(DL_DIR)/$(call CT_FIRMWARE_FILE_FULL_HTT,QCA9984) \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA9984/hw1.0/ct-firmware-5.bin | ||||||
|  | endef | ||||||
|  | define Package/ath10k-firmware-qca9984-ct-htt/install | ||||||
|  | 	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9984/hw1.0 | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(DL_DIR)/$(QCA9984_BOARD2_FILE) \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA9984/hw1.0/board-2.bin | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA9984) \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA9984/hw1.0/ct-firmware-5.bin | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/ath10k-firmware-qca4019-ct/install | ||||||
|  | 	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA4019/hw1.0 | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(DL_DIR)/$(QCA4019_BOARD2_FILE) \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA4019/hw1.0/board-2.bin | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA4019) \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA4019/hw1.0/firmware-5.bin | ||||||
|  | endef | ||||||
|  | define Package/ath10k-firmware-qca4019-ct-full-htt/install | ||||||
|  | 	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA4019/hw1.0 | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(DL_DIR)/$(QCA4019_BOARD2_FILE) \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA4019/hw1.0/board-2.bin | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(DL_DIR)/$(call CT_FIRMWARE_FILE_FULL_HTT,QCA4019) \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA4019/hw1.0/ct-firmware-5.bin | ||||||
|  | endef | ||||||
|  | define Package/ath10k-firmware-qca4019-ct-htt/install | ||||||
|  | 	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA4019/hw1.0 | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(DL_DIR)/$(QCA4019_BOARD2_FILE) \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA4019/hw1.0/board-2.bin | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA4019) \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA4019/hw1.0/ct-firmware-5.bin | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/ath10k-firmware-qca9888-ct/install | ||||||
|  | 	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9888/hw2.0 | ||||||
|  | 	ln -s \ | ||||||
|  | 		../../cal-pci-0000:01:00.0.bin \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA9888/hw2.0/board.bin | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(DL_DIR)/$(QCA9888_BOARD2_FILE) \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA9888/hw2.0/board-2.bin | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA9888) \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA9888/hw2.0/firmware-5.bin | ||||||
|  | endef | ||||||
|  | define Package/ath10k-firmware-qca9888-ct-full-htt/install | ||||||
|  | 	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9888/hw2.0 | ||||||
|  | 	ln -s \ | ||||||
|  | 		../../cal-pci-0000:01:00.0.bin \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA9888/hw2.0/board.bin | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(DL_DIR)/$(QCA9888_BOARD2_FILE) \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA9888/hw2.0/board-2.bin | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(DL_DIR)/$(call CT_FIRMWARE_FILE_FULL_HTT,QCA9888) \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA9888/hw2.0/ct-firmware-5.bin | ||||||
|  | endef | ||||||
|  | define Package/ath10k-firmware-qca9888-ct-htt/install | ||||||
|  | 	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9888/hw2.0 | ||||||
|  | 	ln -s \ | ||||||
|  | 		../../cal-pci-0000:01:00.0.bin \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA9888/hw2.0/board.bin | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(DL_DIR)/$(QCA9888_BOARD2_FILE) \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA9888/hw2.0/board-2.bin | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA9888) \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA9888/hw2.0/ct-firmware-5.bin | ||||||
|  | endef | ||||||
|  |  | ||||||
|  |  | ||||||
|  | $(eval $(call BuildPackage,ath10k-firmware-qca9887-ct)) | ||||||
|  | $(eval $(call BuildPackage,ath10k-firmware-qca9887-ct-full-htt)) | ||||||
|  | $(eval $(call BuildPackage,ath10k-firmware-qca988x-ct)) | ||||||
|  | $(eval $(call BuildPackage,ath10k-firmware-qca988x-ct-full-htt)) | ||||||
|  | $(eval $(call BuildPackage,ath10k-firmware-qca99x0-ct)) | ||||||
|  | $(eval $(call BuildPackage,ath10k-firmware-qca99x0-ct-full-htt)) | ||||||
|  | $(eval $(call BuildPackage,ath10k-firmware-qca99x0-ct-htt)) | ||||||
|  | $(eval $(call BuildPackage,ath10k-firmware-qca9984-ct)) | ||||||
|  | $(eval $(call BuildPackage,ath10k-firmware-qca9984-ct-full-htt)) | ||||||
|  | $(eval $(call BuildPackage,ath10k-firmware-qca9984-ct-htt)) | ||||||
|  | $(eval $(call BuildPackage,ath10k-firmware-qca4019-ct)) | ||||||
|  | $(eval $(call BuildPackage,ath10k-firmware-qca4019-ct-full-htt)) | ||||||
|  | $(eval $(call BuildPackage,ath10k-firmware-qca4019-ct-htt)) | ||||||
|  | $(eval $(call BuildPackage,ath10k-firmware-qca9888-ct)) | ||||||
|  | $(eval $(call BuildPackage,ath10k-firmware-qca9888-ct-full-htt)) | ||||||
|  | $(eval $(call BuildPackage,ath10k-firmware-qca9888-ct-htt)) | ||||||
							
								
								
									
										122
									
								
								feeds/ipq40xx/ath10k-ct/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										122
									
								
								feeds/ipq40xx/ath10k-ct/Makefile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,122 @@ | |||||||
|  | include $(TOPDIR)/rules.mk | ||||||
|  |  | ||||||
|  | PKG_NAME:=ath10k-ct | ||||||
|  | PKG_RELEASE=1 | ||||||
|  |  | ||||||
|  | PKG_LICENSE:=GPLv2 | ||||||
|  | PKG_LICENSE_FILES:= | ||||||
|  |  | ||||||
|  | PKG_SOURCE_URL:=https://github.com/greearb/ath10k-ct.git | ||||||
|  | PKG_MIRROR_HASH:=37b4f00231cb0ae00f63da1c94ae53c940c76d047ce0fb081c08a35fffbfd2c0 | ||||||
|  | PKG_SOURCE_PROTO:=git | ||||||
|  | PKG_SOURCE_DATE:=2021-05-22b | ||||||
|  | PKG_SOURCE_VERSION:=54a9ac02f1139596ea4361ebbc3e444955d86cfd | ||||||
|  | #PKG_MIRROR_HASH:=97cf22a4a57381c7eb7a9b8a8b1e347e9711ce51c89db971b4ab9a35af476ece | ||||||
|  |  | ||||||
|  | # Build the 5.4 ath10k-ct driver version.  Other option is "-4.19". | ||||||
|  | # Probably this should match as closely as | ||||||
|  | # possible to whatever mac80211 backports version is being used. | ||||||
|  | CT_KVER="-5.7" | ||||||
|  |  | ||||||
|  | PKG_MAINTAINER:=Ben Greear <greearb@candelatech.com> | ||||||
|  | PKG_BUILD_PARALLEL:=1 | ||||||
|  | PKG_EXTMOD_SUBDIRS:=ath10k$(CT_KVER) | ||||||
|  |  | ||||||
|  | STAMP_CONFIGURED_DEPENDS := $(STAGING_DIR)/usr/include/mac80211-backport/backport/autoconf.h | ||||||
|  |  | ||||||
|  | include $(INCLUDE_DIR)/kernel.mk | ||||||
|  | include $(INCLUDE_DIR)/package.mk | ||||||
|  |  | ||||||
|  | define KernelPackage/ath10k-ct | ||||||
|  |   SUBMENU:=Wireless Drivers | ||||||
|  |   TITLE:=ath10k-ct driver optimized for CT ath10k firmware | ||||||
|  |   DEPENDS:=+kmod-mac80211 +kmod-ath +@DRIVER_11N_SUPPORT +@DRIVER_11AC_SUPPORT +@DRIVER_11W_SUPPORT @PCI_SUPPORT +kmod-hwmon-core | ||||||
|  |   FILES:=\ | ||||||
|  | 	$(PKG_BUILD_DIR)/ath10k$(CT_KVER)/ath10k_pci.ko \ | ||||||
|  | 	$(PKG_BUILD_DIR)/ath10k$(CT_KVER)/ath10k_core.ko | ||||||
|  |   AUTOLOAD:=$(call AutoProbe,ath10k_pci) | ||||||
|  |   PROVIDES:=kmod-ath10k | ||||||
|  |   VARIANT:=regular | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define KernelPackage/ath10k-ct/config | ||||||
|  |  | ||||||
|  |        config ATH10K-CT_LEDS | ||||||
|  |                bool "Enable LED support" | ||||||
|  |                default y | ||||||
|  |                depends on PACKAGE_kmod-ath10k-ct || PACKAGE_kmod-ath10k-ct-smallbuffers | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define KernelPackage/ath10k-ct-smallbuffers | ||||||
|  | $(call KernelPackage/ath10k-ct) | ||||||
|  |   TITLE+= (small buffers for low-RAM devices) | ||||||
|  |   VARIANT:=smallbuffers | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | NOSTDINC_FLAGS = \ | ||||||
|  | 	-I$(PKG_BUILD_DIR) \ | ||||||
|  | 	-I$(STAGING_DIR)/usr/include/mac80211-backport/uapi \ | ||||||
|  | 	-I$(STAGING_DIR)/usr/include/mac80211-backport \ | ||||||
|  | 	-I$(STAGING_DIR)/usr/include/mac80211/uapi \ | ||||||
|  | 	-I$(STAGING_DIR)/usr/include/mac80211 \ | ||||||
|  | 	-include backport/autoconf.h \ | ||||||
|  | 	-include backport/backport.h | ||||||
|  |  | ||||||
|  | ifdef CONFIG_PACKAGE_MAC80211_MESH | ||||||
|  |   NOSTDINC_FLAGS += -DCONFIG_MAC80211_MESH | ||||||
|  | endif | ||||||
|  |  | ||||||
|  | CT_MAKEDEFS += CONFIG_ATH10K=m CONFIG_ATH10K_PCI=m CONFIG_ATH10K_CE=y | ||||||
|  |  | ||||||
|  | # This AHB logic is needed for IPQ4019 radios | ||||||
|  | CT_MAKEDEFS += CONFIG_ATH10K_AHB=m | ||||||
|  | NOSTDINC_FLAGS += -DCONFIG_ATH10K_AHB | ||||||
|  |  | ||||||
|  | NOSTDINC_FLAGS += -DSTANDALONE_CT | ||||||
|  |  | ||||||
|  | ifdef CONFIG_PACKAGE_MAC80211_DEBUGFS | ||||||
|  |   CT_MAKEDEFS += CONFIG_ATH10K_DEBUGFS=y CONFIG_MAC80211_DEBUGFS=y | ||||||
|  |   NOSTDINC_FLAGS += -DCONFIG_MAC80211_DEBUGFS | ||||||
|  |   NOSTDINC_FLAGS += -DCONFIG_ATH10K_DEBUGFS | ||||||
|  | endif | ||||||
|  |  | ||||||
|  | ifdef CONFIG_PACKAGE_ATH_DEBUG | ||||||
|  |   NOSTDINC_FLAGS += -DCONFIG_ATH10K_DEBUG | ||||||
|  | endif | ||||||
|  |  | ||||||
|  | ifdef CONFIG_PACKAGE_ATH_DFS | ||||||
|  |   NOSTDINC_FLAGS += -DCONFIG_ATH10K_DFS_CERTIFIED | ||||||
|  | endif | ||||||
|  |  | ||||||
|  | ifdef CONFIG_PACKAGE_ATH_SPECTRAL | ||||||
|  |   CT_MAKEDEFS += CONFIG_ATH10K_SPECTRAL=y | ||||||
|  |   NOSTDINC_FLAGS += -DCONFIG_ATH10K_SPECTRAL | ||||||
|  | endif | ||||||
|  |  | ||||||
|  | ifeq ($(CONFIG_ATH10K-CT_LEDS),y) | ||||||
|  |   CT_MAKEDEFS += CONFIG_ATH10K_LEDS=y | ||||||
|  |   NOSTDINC_FLAGS += -DCONFIG_ATH10K_LEDS | ||||||
|  | endif | ||||||
|  |  | ||||||
|  | ifeq ($(BUILD_VARIANT),smallbuffers) | ||||||
|  |   NOSTDINC_FLAGS += -DCONFIG_ATH10K_SMALLBUFFERS | ||||||
|  | endif | ||||||
|  |  | ||||||
|  | define Build/Configure | ||||||
|  | 	cp $(STAGING_DIR)/usr/include/mac80211/ath/*.h $(PKG_BUILD_DIR) | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | ifneq ($(findstring c,$(OPENWRT_VERBOSE)),) | ||||||
|  |   CT_MAKEDEFS += V=1 | ||||||
|  | endif | ||||||
|  |  | ||||||
|  | define Build/Compile | ||||||
|  | 	+$(MAKE) $(CT_MAKEDEFS) $(PKG_JOBS) -C "$(LINUX_DIR)" \ | ||||||
|  | 		$(KERNEL_MAKE_FLAGS) \ | ||||||
|  | 		M="$(PKG_BUILD_DIR)/ath10k$(CT_KVER)" \ | ||||||
|  | 		NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)" \ | ||||||
|  | 		modules | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | $(eval $(call KernelPackage,ath10k-ct)) | ||||||
|  | $(eval $(call KernelPackage,ath10k-ct-smallbuffers)) | ||||||
| @@ -0,0 +1,37 @@ | |||||||
|  | From: Sven Eckelmann <sven@narfation.org> | ||||||
|  | Date: Tue, 26 Feb 2019 08:06:35 +0100 | ||||||
|  | Subject: ath10k-ct: apply mac80211 rates to ath10k-ct rate state | ||||||
|  |  | ||||||
|  | The rates from mac80211 have to be copied to the state of ath10k-ct or | ||||||
|  | otherwise the ath10k_check_apply_special_rates function overwrites | ||||||
|  | them again with some default values. This breaks for example the | ||||||
|  | mcast_rate set for a wifi-iface. | ||||||
|  |  | ||||||
|  | Signed-off-by: Sven Eckelmann <sven@narfation.org> | ||||||
|  |  | ||||||
|  | --- a/ath10k-5.4/mac.c | ||||||
|  | +++ b/ath10k-5.4/mac.c | ||||||
|  | @@ -6793,6 +6793,7 @@ static void ath10k_bss_info_changed(stru | ||||||
|  |  			   "mac vdev %d mcast_rate %x\n", | ||||||
|  |  			   arvif->vdev_id, rate); | ||||||
|  |   | ||||||
|  | +		arvif->mcast_rate[band] = rate; | ||||||
|  |  		vdev_param = ar->wmi.vdev_param->mcast_data_rate; | ||||||
|  |  		ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, | ||||||
|  |  						vdev_param, rate); | ||||||
|  | @@ -6801,6 +6802,7 @@ static void ath10k_bss_info_changed(stru | ||||||
|  |  				    "failed to set mcast rate on vdev %i: %d\n", | ||||||
|  |  				    arvif->vdev_id,  ret); | ||||||
|  |   | ||||||
|  | +		arvif->bcast_rate[band] = rate; | ||||||
|  |  		vdev_param = ar->wmi.vdev_param->bcast_data_rate; | ||||||
|  |  		ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, | ||||||
|  |  						vdev_param, rate); | ||||||
|  | @@ -6827,6 +6829,7 @@ static void ath10k_bss_info_changed(stru | ||||||
|  |  			return; | ||||||
|  |  		} | ||||||
|  |   | ||||||
|  | +		arvif->mgt_rate[def.chan->band] = hw_rate_code; | ||||||
|  |  		vdev_param = ar->wmi.vdev_param->mgmt_rate; | ||||||
|  |  		ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, vdev_param, | ||||||
|  |  						hw_rate_code); | ||||||
| @@ -0,0 +1,598 @@ | |||||||
|  | From: Sebastian Gottschall <s.gottschall@newmedia-net.de> | ||||||
|  |  | ||||||
|  | Adds LED and GPIO Control support for 988x, 9887, 9888, 99x0, 9984 based | ||||||
|  | chipsets with on chipset connected led's using WMI Firmware API.  The LED | ||||||
|  | device will get available named as "ath10k-phyX" at sysfs and can be controlled | ||||||
|  | with various triggers.  adds also debugfs interface for gpio control. | ||||||
|  |  | ||||||
|  | This patch is specific for OpenWRt base, as is use old backported package | ||||||
|  | with old wireless source. Support for QCA9984 is removed. | ||||||
|  | Reworked to use ath10k-ct custom source | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Signed-off-by: Sebastian Gottschall <s.gottschall@dd-wrt.com> | ||||||
|  | Reviewed-by: Steve deRosier <derosier@cal-sierra.com> | ||||||
|  | [kvalo: major reorg and cleanup] | ||||||
|  | Signed-off-by: Kalle Valo <kvalo@codeaurora.org> | ||||||
|  | Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com> | ||||||
|  | --- | ||||||
|  |  | ||||||
|  | v13: | ||||||
|  |  | ||||||
|  | * only compile tested! | ||||||
|  |  | ||||||
|  | * fix all checkpatch warnings | ||||||
|  |  | ||||||
|  | * fix commit log | ||||||
|  |  | ||||||
|  | * sizeof(struct ath10k_gpiocontrol) -> sizeof(*gpio) | ||||||
|  |  | ||||||
|  | * unsigned -> unsigned int | ||||||
|  |  | ||||||
|  | * remove GPIOLIB code, that should be added in a separate patch | ||||||
|  |  | ||||||
|  | * rename gpio.c to leds.c | ||||||
|  |  | ||||||
|  | * add leds.h | ||||||
|  |  | ||||||
|  | * rename some functions: | ||||||
|  |  | ||||||
|  |   ath10k_attach_led() -> ath10k_leds_register() | ||||||
|  |   ath10k_unregister_led() -> ath10k_leds_unregister() | ||||||
|  |   ath10k_reset_led_pin() -> ath10k_leds_start() | ||||||
|  |  | ||||||
|  | * call ath10k_leds_unregister() before ath10k_thermal_unregister() to preserve ordering | ||||||
|  |  | ||||||
|  | * call ath10k_leds_start() only from ath10k_core_start() and not from mac.c | ||||||
|  |  | ||||||
|  | * rename struct ath10k_gpiocontrol as anonymous function under struct | ||||||
|  |   ath10k::leds, no need for memory allocation | ||||||
|  |  | ||||||
|  | * merge ath10k_add_led() to ath10k_attach_led(), which is it's only caller | ||||||
|  |  | ||||||
|  | * remove #if IS_ENABLED() checks from most of places, memory savings from those were not worth it | ||||||
|  |  | ||||||
|  | * Kconfig help text improvement and move it lower in the menu, also don't enable it by default | ||||||
|  |  | ||||||
|  | * switch to set_brightness_blocking() so that the callback can sleep, | ||||||
|  |   then no need to use ath10k_wmi_cmd_send_nowait() and can take mutex | ||||||
|  |   to access ar->state | ||||||
|  |  | ||||||
|  | * don't touch ath10k_wmi_pdev_get_temperature() | ||||||
|  |  | ||||||
|  | * as QCA6174/QCA9377 are not (yet) supported don't add the command to WMI-TLV interface | ||||||
|  |  | ||||||
|  | * remove debugfs interface, that should be added in another patch | ||||||
|  |  | ||||||
|  | * cleanup includes | ||||||
|  |  | ||||||
|  |  ath10k-5.4/Kconfig   |  10 +++ | ||||||
|  |  ath10k-5.4/Makefile  |   1 + | ||||||
|  |  ath10k-5.4/core.c    |  22 +++++++ | ||||||
|  |  ath10k-5.4/core.h    |   9 ++- | ||||||
|  |  ath10k-5.4/hw.h      |   1 + | ||||||
|  |  ath10k-5.4/leds.c    | 103 ++++++++++++++++++++++++++++++ | ||||||
|  |  ath10k-5.4/leds.h    |  45 +++++++++++++ | ||||||
|  |  ath10k-5.4/mac.c     |   1 + | ||||||
|  |  ath10k-5.4/wmi-ops.h |  32 ++++++++++ | ||||||
|  |  ath10k-5.4/wmi-tlv.c |   2 + | ||||||
|  |  ath10k-5.4/wmi.c     |  54 ++++++++++++++++ | ||||||
|  |  ath10k-5.4/wmi.h     |  35 ++++++++++ | ||||||
|  |  12 files changed, 314 insertions(+), 1 deletion(-) | ||||||
|  |  create mode 100644 ath10k-5.4/leds.c | ||||||
|  |  create mode 100644 ath10k-5.4/leds.h | ||||||
|  |  | ||||||
|  | --- a/ath10k-5.4/Kconfig | ||||||
|  | +++ b/ath10k-5.4/Kconfig | ||||||
|  | @@ -66,6 +66,16 @@ config ATH10K_DEBUGFS | ||||||
|  |   | ||||||
|  |  	  If unsure, say Y to make it easier to debug problems. | ||||||
|  |   | ||||||
|  | +config ATH10K_LEDS | ||||||
|  | +	bool "Atheros ath10k LED support" | ||||||
|  | +	depends on ATH10K | ||||||
|  | +	select MAC80211_LEDS | ||||||
|  | +	select LEDS_CLASS | ||||||
|  | +	select NEW_LEDS | ||||||
|  | +	default y | ||||||
|  | +	---help--- | ||||||
|  | +	  This option is necessary, if you want LED support for chipset connected led pins. If unsure, say N. | ||||||
|  | + | ||||||
|  |  config ATH10K_SPECTRAL | ||||||
|  |  	bool "Atheros ath10k spectral scan support" | ||||||
|  |  	depends on ATH10K_DEBUGFS | ||||||
|  | --- a/ath10k-5.4/Makefile | ||||||
|  | +++ b/ath10k-5.4/Makefile | ||||||
|  | @@ -19,6 +19,7 @@ ath10k_core-$(CONFIG_ATH10K_SPECTRAL) += | ||||||
|  |  ath10k_core-$(CONFIG_NL80211_TESTMODE) += testmode.o | ||||||
|  |  ath10k_core-$(CONFIG_ATH10K_TRACING) += trace.o | ||||||
|  |  ath10k_core-$(CONFIG_THERMAL) += thermal.o | ||||||
|  | +ath10k_core-$(CONFIG_ATH10K_LEDS) += leds.o | ||||||
|  |  ath10k_core-$(CONFIG_MAC80211_DEBUGFS) += debugfs_sta.o | ||||||
|  |  ath10k_core-$(CONFIG_PM) += wow.o | ||||||
|  |  ath10k_core-$(CONFIG_DEV_COREDUMP) += coredump.o | ||||||
|  | --- a/ath10k-5.4/core.c | ||||||
|  | +++ b/ath10k-5.4/core.c | ||||||
|  | @@ -25,6 +25,7 @@ | ||||||
|  |  #include "testmode.h" | ||||||
|  |  #include "wmi-ops.h" | ||||||
|  |  #include "coredump.h" | ||||||
|  | +#include "leds.h" | ||||||
|  |   | ||||||
|  |  /* Disable ath10k-ct DBGLOG output by default */ | ||||||
|  |  unsigned int ath10k_debug_mask = ATH10K_DBG_NO_DBGLOG; | ||||||
|  | @@ -67,6 +68,7 @@ static const struct ath10k_hw_params ath | ||||||
|  |  		.dev_id = QCA988X_2_0_DEVICE_ID, | ||||||
|  |  		.bus = ATH10K_BUS_PCI, | ||||||
|  |  		.name = "qca988x hw2.0", | ||||||
|  | +		.led_pin = 1, | ||||||
|  |  		.patch_load_addr = QCA988X_HW_2_0_PATCH_LOAD_ADDR, | ||||||
|  |  		.uart_pin = 7, | ||||||
|  |  		.cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_ALL, | ||||||
|  | @@ -137,6 +139,7 @@ static const struct ath10k_hw_params ath | ||||||
|  |  		.dev_id = QCA9887_1_0_DEVICE_ID, | ||||||
|  |  		.bus = ATH10K_BUS_PCI, | ||||||
|  |  		.name = "qca9887 hw1.0", | ||||||
|  | +		.led_pin = 1, | ||||||
|  |  		.patch_load_addr = QCA9887_HW_1_0_PATCH_LOAD_ADDR, | ||||||
|  |  		.uart_pin = 7, | ||||||
|  |  		.cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_ALL, | ||||||
|  | @@ -344,6 +347,7 @@ static const struct ath10k_hw_params ath | ||||||
|  |  		.dev_id = QCA99X0_2_0_DEVICE_ID, | ||||||
|  |  		.bus = ATH10K_BUS_PCI, | ||||||
|  |  		.name = "qca99x0 hw2.0", | ||||||
|  | +		.led_pin = 17, | ||||||
|  |  		.patch_load_addr = QCA99X0_HW_2_0_PATCH_LOAD_ADDR, | ||||||
|  |  		.uart_pin = 7, | ||||||
|  |  		.otp_exe_param = 0x00000700, | ||||||
|  | @@ -385,6 +389,7 @@ static const struct ath10k_hw_params ath | ||||||
|  |  		.dev_id = QCA9984_1_0_DEVICE_ID, | ||||||
|  |  		.bus = ATH10K_BUS_PCI, | ||||||
|  |  		.name = "qca9984/qca9994 hw1.0", | ||||||
|  | +		.led_pin = 17, | ||||||
|  |  		.patch_load_addr = QCA9984_HW_1_0_PATCH_LOAD_ADDR, | ||||||
|  |  		.uart_pin = 7, | ||||||
|  |  		.cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_EACH, | ||||||
|  | @@ -433,6 +438,7 @@ static const struct ath10k_hw_params ath | ||||||
|  |  		.dev_id = QCA9888_2_0_DEVICE_ID, | ||||||
|  |  		.bus = ATH10K_BUS_PCI, | ||||||
|  |  		.name = "qca9888 hw2.0", | ||||||
|  | +		.led_pin = 17, | ||||||
|  |  		.patch_load_addr = QCA9888_HW_2_0_PATCH_LOAD_ADDR, | ||||||
|  |  		.uart_pin = 7, | ||||||
|  |  		.cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_EACH, | ||||||
|  | @@ -3573,6 +3579,10 @@ int ath10k_core_start(struct ath10k *ar, | ||||||
|  |  			ath10k_wmi_check_apply_board_power_ctl_table(ar); | ||||||
|  |  	} | ||||||
|  |   | ||||||
|  | +	status = ath10k_leds_start(ar); | ||||||
|  | +	if (status) | ||||||
|  | +		goto err_hif_stop; | ||||||
|  | + | ||||||
|  |  	return 0; | ||||||
|  |   | ||||||
|  |  err_hif_stop: | ||||||
|  | @@ -3829,9 +3839,18 @@ static void ath10k_core_register_work(st | ||||||
|  |  		goto err_spectral_destroy; | ||||||
|  |  	} | ||||||
|  |   | ||||||
|  | +	status = ath10k_leds_register(ar); | ||||||
|  | +	if (status) { | ||||||
|  | +		ath10k_err(ar, "could not register leds: %d\n", | ||||||
|  | +			   status); | ||||||
|  | +		goto err_thermal_unregister; | ||||||
|  | +	} | ||||||
|  | + | ||||||
|  |  	set_bit(ATH10K_FLAG_CORE_REGISTERED, &ar->dev_flags); | ||||||
|  |  	return; | ||||||
|  |   | ||||||
|  | +err_thermal_unregister: | ||||||
|  | +	ath10k_thermal_unregister(ar); | ||||||
|  |  err_spectral_destroy: | ||||||
|  |  	ath10k_spectral_destroy(ar); | ||||||
|  |  err_debug_destroy: | ||||||
|  | @@ -3891,6 +3910,8 @@ void ath10k_core_unregister(struct ath10 | ||||||
|  |  	if (!test_bit(ATH10K_FLAG_CORE_REGISTERED, &ar->dev_flags)) | ||||||
|  |  		return; | ||||||
|  |   | ||||||
|  | +	ath10k_leds_unregister(ar); | ||||||
|  | + | ||||||
|  |  	ath10k_thermal_unregister(ar); | ||||||
|  |  	/* Stop spectral before unregistering from mac80211 to remove the | ||||||
|  |  	 * relayfs debugfs file cleanly. Otherwise the parent debugfs tree | ||||||
|  | --- a/ath10k-5.4/core.h | ||||||
|  | +++ b/ath10k-5.4/core.h | ||||||
|  | @@ -14,6 +14,7 @@ | ||||||
|  |  #include <linux/pci.h> | ||||||
|  |  #include <linux/uuid.h> | ||||||
|  |  #include <linux/time.h> | ||||||
|  | +#include <linux/leds.h> | ||||||
|  |   | ||||||
|  |  #include "htt.h" | ||||||
|  |  #include "htc.h" | ||||||
|  | @@ -1469,6 +1470,13 @@ struct ath10k { | ||||||
|  |  	} testmode; | ||||||
|  |   | ||||||
|  |  	struct { | ||||||
|  | +		struct gpio_led wifi_led; | ||||||
|  | +		struct led_classdev cdev; | ||||||
|  | +		char label[48]; | ||||||
|  | +		u32 gpio_state_pin; | ||||||
|  | +	} leds; | ||||||
|  | + | ||||||
|  | +	struct { | ||||||
|  |  		/* protected by data_lock */ | ||||||
|  |  		u32 fw_crash_counter; | ||||||
|  |  		u32 fw_warm_reset_counter; | ||||||
|  | --- a/ath10k-5.4/hw.h | ||||||
|  | +++ b/ath10k-5.4/hw.h | ||||||
|  | @@ -518,6 +518,7 @@ struct ath10k_hw_params { | ||||||
|  |  	const char *name; | ||||||
|  |  	u32 patch_load_addr; | ||||||
|  |  	int uart_pin; | ||||||
|  | +	int led_pin; | ||||||
|  |  	u32 otp_exe_param; | ||||||
|  |   | ||||||
|  |  	/* Type of hw cycle counter wraparound logic, for more info | ||||||
|  | --- /dev/null | ||||||
|  | +++ b/ath10k-5.4/leds.c | ||||||
|  | @@ -0,0 +1,103 @@ | ||||||
|  | +/* | ||||||
|  | + * Copyright (c) 2005-2011 Atheros Communications Inc. | ||||||
|  | + * Copyright (c) 2011-2017 Qualcomm Atheros, Inc. | ||||||
|  | + * Copyright (c) 2018 Sebastian Gottschall <s.gottschall@dd-wrt.com> | ||||||
|  | + * Copyright (c) 2018, The Linux Foundation. All rights reserved. | ||||||
|  | + * | ||||||
|  | + * Permission to use, copy, modify, and/or distribute this software for any | ||||||
|  | + * purpose with or without fee is hereby granted, provided that the above | ||||||
|  | + * copyright notice and this permission notice appear in all copies. | ||||||
|  | + * | ||||||
|  | + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||||||
|  | + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||||||
|  | + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||||||
|  | + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||||||
|  | + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||||||
|  | + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||||||
|  | + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||||||
|  | + */ | ||||||
|  | + | ||||||
|  | +#include <linux/leds.h> | ||||||
|  | + | ||||||
|  | +#include "core.h" | ||||||
|  | +#include "wmi.h" | ||||||
|  | +#include "wmi-ops.h" | ||||||
|  | + | ||||||
|  | +#include "leds.h" | ||||||
|  | + | ||||||
|  | +static int ath10k_leds_set_brightness_blocking(struct led_classdev *led_cdev, | ||||||
|  | +					       enum led_brightness brightness) | ||||||
|  | +{ | ||||||
|  | +	struct ath10k *ar = container_of(led_cdev, struct ath10k, | ||||||
|  | +					 leds.cdev); | ||||||
|  | +	struct gpio_led *led = &ar->leds.wifi_led; | ||||||
|  | + | ||||||
|  | +	mutex_lock(&ar->conf_mutex); | ||||||
|  | + | ||||||
|  | +	if (ar->state != ATH10K_STATE_ON) | ||||||
|  | +		goto out; | ||||||
|  | + | ||||||
|  | +	ar->leds.gpio_state_pin = (brightness != LED_OFF) ^ led->active_low; | ||||||
|  | +	ath10k_wmi_gpio_output(ar, led->gpio, ar->leds.gpio_state_pin); | ||||||
|  | + | ||||||
|  | +out: | ||||||
|  | +	mutex_unlock(&ar->conf_mutex); | ||||||
|  | + | ||||||
|  | +	return 0; | ||||||
|  | +} | ||||||
|  | + | ||||||
|  | +int ath10k_leds_start(struct ath10k *ar) | ||||||
|  | +{ | ||||||
|  | +	if (ar->hw_params.led_pin == 0) | ||||||
|  | +		/* leds not supported */ | ||||||
|  | +		return 0; | ||||||
|  | + | ||||||
|  | +	/* under some circumstances, the gpio pin gets reconfigured | ||||||
|  | +	 * to default state by the firmware, so we need to | ||||||
|  | +	 * reconfigure it this behaviour has only ben seen on | ||||||
|  | +	 * QCA9984 and QCA99XX devices so far | ||||||
|  | +	 */ | ||||||
|  | +	ath10k_wmi_gpio_config(ar, ar->hw_params.led_pin, 0, | ||||||
|  | +			       WMI_GPIO_PULL_NONE, WMI_GPIO_INTTYPE_DISABLE); | ||||||
|  | +	ath10k_wmi_gpio_output(ar, ar->hw_params.led_pin, 1); | ||||||
|  | + | ||||||
|  | +	return 0; | ||||||
|  | +} | ||||||
|  | + | ||||||
|  | +int ath10k_leds_register(struct ath10k *ar) | ||||||
|  | +{ | ||||||
|  | +	int ret; | ||||||
|  | + | ||||||
|  | +	if (ar->hw_params.led_pin == 0) | ||||||
|  | +		/* leds not supported */ | ||||||
|  | +		return 0; | ||||||
|  | + | ||||||
|  | +	snprintf(ar->leds.label, sizeof(ar->leds.label), "ath10k-%s", | ||||||
|  | +		 wiphy_name(ar->hw->wiphy)); | ||||||
|  | +	ar->leds.wifi_led.active_low = 1; | ||||||
|  | +	ar->leds.wifi_led.gpio = ar->hw_params.led_pin; | ||||||
|  | +	ar->leds.wifi_led.name = ar->leds.label; | ||||||
|  | +	ar->leds.wifi_led.default_state = LEDS_GPIO_DEFSTATE_KEEP; | ||||||
|  | + | ||||||
|  | +	ar->leds.cdev.name = ar->leds.label; | ||||||
|  | +	ar->leds.cdev.brightness_set_blocking = ath10k_leds_set_brightness_blocking; | ||||||
|  | + | ||||||
|  | +	/* FIXME: this assignment doesn't make sense as it's NULL, remove it? */ | ||||||
|  | +	ar->leds.cdev.default_trigger = ar->leds.wifi_led.default_trigger; | ||||||
|  | + | ||||||
|  | +	ret = led_classdev_register(wiphy_dev(ar->hw->wiphy), &ar->leds.cdev); | ||||||
|  | +	if (ret) | ||||||
|  | +		return ret; | ||||||
|  | + | ||||||
|  | +	return 0; | ||||||
|  | +} | ||||||
|  | + | ||||||
|  | +void ath10k_leds_unregister(struct ath10k *ar) | ||||||
|  | +{ | ||||||
|  | +	if (ar->hw_params.led_pin == 0) | ||||||
|  | +		/* leds not supported */ | ||||||
|  | +		return; | ||||||
|  | + | ||||||
|  | +	led_classdev_unregister(&ar->leds.cdev); | ||||||
|  | +} | ||||||
|  | + | ||||||
|  | --- /dev/null | ||||||
|  | +++ b/ath10k-5.4/leds.h | ||||||
|  | @@ -0,0 +1,41 @@ | ||||||
|  | +/* | ||||||
|  | + * Copyright (c) 2018, The Linux Foundation. All rights reserved. | ||||||
|  | + * | ||||||
|  | + * Permission to use, copy, modify, and/or distribute this software for any | ||||||
|  | + * purpose with or without fee is hereby granted, provided that the above | ||||||
|  | + * copyright notice and this permission notice appear in all copies. | ||||||
|  | + * | ||||||
|  | + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||||||
|  | + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||||||
|  | + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||||||
|  | + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||||||
|  | + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||||||
|  | + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||||||
|  | + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||||||
|  | + */ | ||||||
|  | +#ifndef _LEDS_H_ | ||||||
|  | +#define _LEDS_H_ | ||||||
|  | + | ||||||
|  | +#include "core.h" | ||||||
|  | + | ||||||
|  | +#ifdef CONFIG_ATH10K_LEDS | ||||||
|  | +void ath10k_leds_unregister(struct ath10k *ar); | ||||||
|  | +int ath10k_leds_start(struct ath10k *ar); | ||||||
|  | +int ath10k_leds_register(struct ath10k *ar); | ||||||
|  | +#else | ||||||
|  | +static inline void ath10k_leds_unregister(struct ath10k *ar) | ||||||
|  | +{ | ||||||
|  | +} | ||||||
|  | + | ||||||
|  | +static inline int ath10k_leds_start(struct ath10k *ar) | ||||||
|  | +{ | ||||||
|  | +	return 0; | ||||||
|  | +} | ||||||
|  | + | ||||||
|  | +static inline int ath10k_leds_register(struct ath10k *ar) | ||||||
|  | +{ | ||||||
|  | +	return 0; | ||||||
|  | +} | ||||||
|  | + | ||||||
|  | +#endif | ||||||
|  | +#endif /* _LEDS_H_ */ | ||||||
|  | --- a/ath10k-5.4/mac.c | ||||||
|  | +++ b/ath10k-5.4/mac.c | ||||||
|  | @@ -24,6 +24,7 @@ | ||||||
|  |  #include "wmi-tlv.h" | ||||||
|  |  #include "wmi-ops.h" | ||||||
|  |  #include "wow.h" | ||||||
|  | +#include "leds.h" | ||||||
|  |   | ||||||
|  |  /*********/ | ||||||
|  |  /* Rates */ | ||||||
|  | --- a/ath10k-5.4/wmi-ops.h | ||||||
|  | +++ b/ath10k-5.4/wmi-ops.h | ||||||
|  | @@ -218,7 +218,10 @@ struct wmi_ops { | ||||||
|  |  	struct sk_buff *(*gen_bb_timing) | ||||||
|  |  			(struct ath10k *ar, | ||||||
|  |  			 const struct wmi_bb_timing_cfg_arg *arg); | ||||||
|  | +	struct sk_buff *(*gen_gpio_config)(struct ath10k *ar, u32 gpio_num, | ||||||
|  | +					   u32 input, u32 pull_type, u32 intr_mode); | ||||||
|  |   | ||||||
|  | +	struct sk_buff *(*gen_gpio_output)(struct ath10k *ar, u32 gpio_num, u32 set); | ||||||
|  |  }; | ||||||
|  |   | ||||||
|  |  int ath10k_wmi_cmd_send(struct ath10k *ar, struct sk_buff *skb, u32 cmd_id); | ||||||
|  | @@ -1105,6 +1108,35 @@ ath10k_wmi_force_fw_hang(struct ath10k * | ||||||
|  |  	return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->force_fw_hang_cmdid); | ||||||
|  |  } | ||||||
|  |   | ||||||
|  | +static inline int ath10k_wmi_gpio_config(struct ath10k *ar, u32 gpio_num, | ||||||
|  | +					 u32 input, u32 pull_type, u32 intr_mode) | ||||||
|  | +{ | ||||||
|  | +	struct sk_buff *skb; | ||||||
|  | + | ||||||
|  | +	if (!ar->wmi.ops->gen_gpio_config) | ||||||
|  | +		return -EOPNOTSUPP; | ||||||
|  | + | ||||||
|  | +	skb = ar->wmi.ops->gen_gpio_config(ar, gpio_num, input, pull_type, intr_mode); | ||||||
|  | +	if (IS_ERR(skb)) | ||||||
|  | +		return PTR_ERR(skb); | ||||||
|  | + | ||||||
|  | +	return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->gpio_config_cmdid); | ||||||
|  | +} | ||||||
|  | + | ||||||
|  | +static inline int ath10k_wmi_gpio_output(struct ath10k *ar, u32 gpio_num, u32 set) | ||||||
|  | +{ | ||||||
|  | +	struct sk_buff *skb; | ||||||
|  | + | ||||||
|  | +	if (!ar->wmi.ops->gen_gpio_config) | ||||||
|  | +		return -EOPNOTSUPP; | ||||||
|  | + | ||||||
|  | +	skb = ar->wmi.ops->gen_gpio_output(ar, gpio_num, set); | ||||||
|  | +	if (IS_ERR(skb)) | ||||||
|  | +		return PTR_ERR(skb); | ||||||
|  | + | ||||||
|  | +	return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->gpio_output_cmdid); | ||||||
|  | +} | ||||||
|  | + | ||||||
|  |  static inline int | ||||||
|  |  ath10k_wmi_dbglog_cfg(struct ath10k *ar, u64 module_enable, u32 log_level) | ||||||
|  |  { | ||||||
|  | --- a/ath10k-5.4/wmi-tlv.c | ||||||
|  | +++ b/ath10k-5.4/wmi-tlv.c | ||||||
|  | @@ -4364,6 +4364,8 @@ static const struct wmi_ops wmi_tlv_ops | ||||||
|  |  	.gen_echo = ath10k_wmi_tlv_op_gen_echo, | ||||||
|  |  	.gen_vdev_spectral_conf = ath10k_wmi_tlv_op_gen_vdev_spectral_conf, | ||||||
|  |  	.gen_vdev_spectral_enable = ath10k_wmi_tlv_op_gen_vdev_spectral_enable, | ||||||
|  | +	/* .gen_gpio_config not implemented */ | ||||||
|  | +	/* .gen_gpio_output not implemented */ | ||||||
|  |  }; | ||||||
|  |   | ||||||
|  |  static const struct wmi_peer_flags_map wmi_tlv_peer_flags_map = { | ||||||
|  | --- a/ath10k-5.4/wmi.c | ||||||
|  | +++ b/ath10k-5.4/wmi.c | ||||||
|  | @@ -8295,6 +8295,49 @@ ath10k_wmi_op_gen_peer_set_param(struct | ||||||
|  |  	return skb; | ||||||
|  |  } | ||||||
|  |   | ||||||
|  | +static struct sk_buff *ath10k_wmi_op_gen_gpio_config(struct ath10k *ar, | ||||||
|  | +						     u32 gpio_num, u32 input, | ||||||
|  | +						     u32 pull_type, u32 intr_mode) | ||||||
|  | +{ | ||||||
|  | +	struct wmi_gpio_config_cmd *cmd; | ||||||
|  | +	struct sk_buff *skb; | ||||||
|  | + | ||||||
|  | +	skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); | ||||||
|  | +	if (!skb) | ||||||
|  | +		return ERR_PTR(-ENOMEM); | ||||||
|  | + | ||||||
|  | +	cmd = (struct wmi_gpio_config_cmd *)skb->data; | ||||||
|  | +	cmd->pull_type = __cpu_to_le32(pull_type); | ||||||
|  | +	cmd->gpio_num = __cpu_to_le32(gpio_num); | ||||||
|  | +	cmd->input = __cpu_to_le32(input); | ||||||
|  | +	cmd->intr_mode = __cpu_to_le32(intr_mode); | ||||||
|  | + | ||||||
|  | +	ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi gpio_config gpio_num 0x%08x input 0x%08x pull_type 0x%08x intr_mode 0x%08x\n", | ||||||
|  | +		   gpio_num, input, pull_type, intr_mode); | ||||||
|  | + | ||||||
|  | +	return skb; | ||||||
|  | +} | ||||||
|  | + | ||||||
|  | +static struct sk_buff *ath10k_wmi_op_gen_gpio_output(struct ath10k *ar, | ||||||
|  | +						     u32 gpio_num, u32 set) | ||||||
|  | +{ | ||||||
|  | +	struct wmi_gpio_output_cmd *cmd; | ||||||
|  | +	struct sk_buff *skb; | ||||||
|  | + | ||||||
|  | +	skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); | ||||||
|  | +	if (!skb) | ||||||
|  | +		return ERR_PTR(-ENOMEM); | ||||||
|  | + | ||||||
|  | +	cmd = (struct wmi_gpio_output_cmd *)skb->data; | ||||||
|  | +	cmd->gpio_num = __cpu_to_le32(gpio_num); | ||||||
|  | +	cmd->set = __cpu_to_le32(set); | ||||||
|  | + | ||||||
|  | +	ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi gpio_output gpio_num 0x%08x set 0x%08x\n", | ||||||
|  | +		   gpio_num, set); | ||||||
|  | + | ||||||
|  | +	return skb; | ||||||
|  | +} | ||||||
|  | + | ||||||
|  |  static struct sk_buff * | ||||||
|  |  ath10k_wmi_op_gen_set_psmode(struct ath10k *ar, u32 vdev_id, | ||||||
|  |  			     enum wmi_sta_ps_mode psmode) | ||||||
|  | @@ -10094,6 +10137,9 @@ static const struct wmi_ops wmi_ops = { | ||||||
|  |  	.fw_stats_fill = ath10k_wmi_main_op_fw_stats_fill, | ||||||
|  |  	.get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype, | ||||||
|  |  	.gen_echo = ath10k_wmi_op_gen_echo, | ||||||
|  | +	.gen_gpio_config = ath10k_wmi_op_gen_gpio_config, | ||||||
|  | +	.gen_gpio_output = ath10k_wmi_op_gen_gpio_output, | ||||||
|  | + | ||||||
|  |  	/* .gen_bcn_tmpl not implemented */ | ||||||
|  |  	/* .gen_prb_tmpl not implemented */ | ||||||
|  |  	/* .gen_p2p_go_bcn_ie not implemented */ | ||||||
|  | @@ -10164,6 +10210,8 @@ static const struct wmi_ops wmi_10_1_ops | ||||||
|  |  	.fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill, | ||||||
|  |  	.get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype, | ||||||
|  |  	.gen_echo = ath10k_wmi_op_gen_echo, | ||||||
|  | +	.gen_gpio_config = ath10k_wmi_op_gen_gpio_config, | ||||||
|  | +	.gen_gpio_output = ath10k_wmi_op_gen_gpio_output, | ||||||
|  |  	/* .gen_bcn_tmpl not implemented */ | ||||||
|  |  	/* .gen_prb_tmpl not implemented */ | ||||||
|  |  	/* .gen_p2p_go_bcn_ie not implemented */ | ||||||
|  | @@ -10243,6 +10291,8 @@ static const struct wmi_ops wmi_10_2_ops | ||||||
|  |  	.gen_delba_send = ath10k_wmi_op_gen_delba_send, | ||||||
|  |  	.fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill, | ||||||
|  |  	.get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype, | ||||||
|  | +	.gen_gpio_config = ath10k_wmi_op_gen_gpio_config, | ||||||
|  | +	.gen_gpio_output = ath10k_wmi_op_gen_gpio_output, | ||||||
|  |  	/* .gen_pdev_enable_adaptive_cca not implemented */ | ||||||
|  |  }; | ||||||
|  |   | ||||||
|  | @@ -10314,6 +10364,8 @@ static const struct wmi_ops wmi_10_2_4_o | ||||||
|  |  		ath10k_wmi_op_gen_pdev_enable_adaptive_cca, | ||||||
|  |  	.get_vdev_subtype = ath10k_wmi_10_2_4_op_get_vdev_subtype, | ||||||
|  |  	.gen_bb_timing = ath10k_wmi_10_2_4_op_gen_bb_timing, | ||||||
|  | +	.gen_gpio_config = ath10k_wmi_op_gen_gpio_config, | ||||||
|  | +	.gen_gpio_output = ath10k_wmi_op_gen_gpio_output, | ||||||
|  |  	/* .gen_bcn_tmpl not implemented */ | ||||||
|  |  	/* .gen_prb_tmpl not implemented */ | ||||||
|  |  	/* .gen_p2p_go_bcn_ie not implemented */ | ||||||
|  | @@ -10395,6 +10447,8 @@ static const struct wmi_ops wmi_10_4_ops | ||||||
|  |  	.gen_pdev_bss_chan_info_req = ath10k_wmi_10_2_op_gen_pdev_bss_chan_info, | ||||||
|  |  	.gen_echo = ath10k_wmi_op_gen_echo, | ||||||
|  |  	.gen_pdev_get_tpc_config = ath10k_wmi_10_2_4_op_gen_pdev_get_tpc_config, | ||||||
|  | +	.gen_gpio_config = ath10k_wmi_op_gen_gpio_config, | ||||||
|  | +	.gen_gpio_output = ath10k_wmi_op_gen_gpio_output, | ||||||
|  |  }; | ||||||
|  |   | ||||||
|  |  int ath10k_wmi_attach(struct ath10k *ar) | ||||||
|  | --- a/ath10k-5.4/wmi.h | ||||||
|  | +++ b/ath10k-5.4/wmi.h | ||||||
|  | @@ -3110,6 +3110,41 @@ enum wmi_10_4_feature_mask { | ||||||
|  |   | ||||||
|  |  }; | ||||||
|  |   | ||||||
|  | +/* WMI_GPIO_CONFIG_CMDID */ | ||||||
|  | +enum { | ||||||
|  | +	WMI_GPIO_PULL_NONE, | ||||||
|  | +	WMI_GPIO_PULL_UP, | ||||||
|  | +	WMI_GPIO_PULL_DOWN, | ||||||
|  | +}; | ||||||
|  | + | ||||||
|  | +enum { | ||||||
|  | +	WMI_GPIO_INTTYPE_DISABLE, | ||||||
|  | +	WMI_GPIO_INTTYPE_RISING_EDGE, | ||||||
|  | +	WMI_GPIO_INTTYPE_FALLING_EDGE, | ||||||
|  | +	WMI_GPIO_INTTYPE_BOTH_EDGE, | ||||||
|  | +	WMI_GPIO_INTTYPE_LEVEL_LOW, | ||||||
|  | +	WMI_GPIO_INTTYPE_LEVEL_HIGH | ||||||
|  | +}; | ||||||
|  | + | ||||||
|  | +/* WMI_GPIO_CONFIG_CMDID */ | ||||||
|  | +struct wmi_gpio_config_cmd { | ||||||
|  | +	__le32 gpio_num;             /* GPIO number to be setup */ | ||||||
|  | +	__le32 input;                /* 0 - Output/ 1 - Input */ | ||||||
|  | +	__le32 pull_type;            /* Pull type defined above */ | ||||||
|  | +	__le32 intr_mode;            /* Interrupt mode defined above (Input) */ | ||||||
|  | +} __packed; | ||||||
|  | + | ||||||
|  | +/* WMI_GPIO_OUTPUT_CMDID */ | ||||||
|  | +struct wmi_gpio_output_cmd { | ||||||
|  | +	__le32 gpio_num;    /* GPIO number to be setup */ | ||||||
|  | +	__le32 set;         /* Set the GPIO pin*/ | ||||||
|  | +} __packed; | ||||||
|  | + | ||||||
|  | +/* WMI_GPIO_INPUT_EVENTID */ | ||||||
|  | +struct wmi_gpio_input_event { | ||||||
|  | +	__le32 gpio_num;    /* GPIO number which changed state */ | ||||||
|  | +} __packed; | ||||||
|  | + | ||||||
|  |  struct wmi_ext_resource_config_10_4_cmd { | ||||||
|  |  	/* contains enum wmi_host_platform_type */ | ||||||
|  |  	__le32 host_platform_config; | ||||||
| @@ -0,0 +1,53 @@ | |||||||
|  | From 79c9d7aabae1d1da9eea97d83b61e1517a8a2221 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Mathias Kresin <dev@kresin.me> | ||||||
|  | Date: Fri, 22 Jun 2018 18:59:44 +0200 | ||||||
|  | Subject: [PATCH] ath10k: use tpt LED trigger by default | ||||||
|  |  | ||||||
|  | Use the tpt LED trigger for each created phy led. Ths way LEDs attached | ||||||
|  | to the ath10k GPIO pins are indicating the phy status and blink on | ||||||
|  | traffic. | ||||||
|  |  | ||||||
|  | Signed-off-by: Mathias Kresin <dev@kresin.me> | ||||||
|  | --- | ||||||
|  |  ath10k-5.4/core.h | 4 ++++ | ||||||
|  |  ath10k-5.4/leds.c | 4 +--- | ||||||
|  |  ath10k-5.4/mac.c  | 2 +- | ||||||
|  |  3 files changed, 6 insertions(+), 4 deletions(-) | ||||||
|  |  | ||||||
|  | --- a/ath10k-5.4/core.h | ||||||
|  | +++ b/ath10k-5.4/core.h | ||||||
|  | @@ -1573,6 +1573,10 @@ struct ath10k { | ||||||
|  |  	u8 csi_data[4096]; | ||||||
|  |  	u16 csi_data_len; | ||||||
|  |   | ||||||
|  | +#ifdef CPTCFG_MAC80211_LEDS | ||||||
|  | +	const char *led_default_trigger; | ||||||
|  | +#endif | ||||||
|  | + | ||||||
|  |  	/* must be last */ | ||||||
|  |  	u8 drv_priv[0] __aligned(sizeof(void *)); | ||||||
|  |  }; | ||||||
|  | --- a/ath10k-5.4/leds.c | ||||||
|  | +++ b/ath10k-5.4/leds.c | ||||||
|  | @@ -81,9 +81,7 @@ int ath10k_leds_register(struct ath10k * | ||||||
|  |   | ||||||
|  |  	ar->leds.cdev.name = ar->leds.label; | ||||||
|  |  	ar->leds.cdev.brightness_set_blocking = ath10k_leds_set_brightness_blocking; | ||||||
|  | - | ||||||
|  | -	/* FIXME: this assignment doesn't make sense as it's NULL, remove it? */ | ||||||
|  | -	ar->leds.cdev.default_trigger = ar->leds.wifi_led.default_trigger; | ||||||
|  | +	ar->leds.cdev.default_trigger = ar->led_default_trigger; | ||||||
|  |   | ||||||
|  |  	ret = led_classdev_register(wiphy_dev(ar->hw->wiphy), &ar->leds.cdev); | ||||||
|  |  	if (ret) | ||||||
|  | --- a/ath10k-5.4/mac.c | ||||||
|  | +++ b/ath10k-5.4/mac.c | ||||||
|  | @@ -10367,7 +10367,7 @@ int ath10k_mac_register(struct ath10k *a | ||||||
|  |  	ar->hw->weight_multiplier = ATH10K_AIRTIME_WEIGHT_MULTIPLIER; | ||||||
|  |   | ||||||
|  |  #ifdef CPTCFG_MAC80211_LEDS | ||||||
|  | -	ieee80211_create_tpt_led_trigger(ar->hw, | ||||||
|  | +	ar->led_default_trigger = ieee80211_create_tpt_led_trigger(ar->hw, | ||||||
|  |  		IEEE80211_TPT_LEDTRIG_FL_RADIO, ath10k_tpt_blink, | ||||||
|  |  		ARRAY_SIZE(ath10k_tpt_blink)); | ||||||
|  |  #endif | ||||||
| @@ -0,0 +1,10 @@ | |||||||
|  | --- a/ath10k-5.4/mac.c | ||||||
|  | +++ b/ath10k-5.4/mac.c | ||||||
|  | @@ -10180,6 +10180,7 @@ int ath10k_mac_register(struct ath10k *a | ||||||
|  |  	wiphy_ext_feature_set(ar->hw->wiphy, NL80211_EXT_FEATURE_VHT_IBSS); | ||||||
|  |  	wiphy_ext_feature_set(ar->hw->wiphy, | ||||||
|  |  			      NL80211_EXT_FEATURE_SET_SCAN_DWELL); | ||||||
|  | +	wiphy_ext_feature_set(ar->hw->wiphy, NL80211_EXT_FEATURE_AQL); | ||||||
|  |   | ||||||
|  |  	if (test_bit(WMI_SERVICE_TX_DATA_ACK_RSSI, ar->wmi.svc_map) || | ||||||
|  |  	    test_bit(WMI_SERVICE_HTT_MGMT_TX_COMP_VALID_FLAGS, ar->wmi.svc_map)) | ||||||
| @@ -0,0 +1,14 @@ | |||||||
|  | --- a/ath10k-5.4/htt.h | ||||||
|  | +++ b/ath10k-5.4/htt.h | ||||||
|  | @@ -225,7 +225,11 @@ enum htt_rx_ring_flags { | ||||||
|  |  }; | ||||||
|  |   | ||||||
|  |  #define HTT_RX_RING_SIZE_MIN 128 | ||||||
|  | +#ifndef CONFIG_ATH10K_SMALLBUFFERS | ||||||
|  |  #define HTT_RX_RING_SIZE_MAX 2048 | ||||||
|  | +#else | ||||||
|  | +#define HTT_RX_RING_SIZE_MAX 512 | ||||||
|  | +#endif | ||||||
|  |  #define HTT_RX_RING_SIZE HTT_RX_RING_SIZE_MAX | ||||||
|  |  #define HTT_RX_RING_FILL_LEVEL (((HTT_RX_RING_SIZE) / 2) - 1) | ||||||
|  |  #define HTT_RX_RING_FILL_LEVEL_DUAL_MAC (HTT_RX_RING_SIZE - 1) | ||||||
| @@ -0,0 +1,50 @@ | |||||||
|  | --- a/ath10k-5.4/pci.c | ||||||
|  | +++ b/ath10k-5.4/pci.c | ||||||
|  | @@ -131,7 +131,11 @@ static struct ce_attr host_ce_config_wla | ||||||
|  |  		.flags = CE_ATTR_FLAGS, | ||||||
|  |  		.src_nentries = 0, | ||||||
|  |  		.src_sz_max = 2048, | ||||||
|  | +#ifndef CONFIG_ATH10K_SMALLBUFFERS | ||||||
|  |  		.dest_nentries = 512, | ||||||
|  | +#else | ||||||
|  | +		.dest_nentries = 128, | ||||||
|  | +#endif | ||||||
|  |  		.recv_cb = ath10k_pci_htt_htc_rx_cb, | ||||||
|  |  	}, | ||||||
|  |   | ||||||
|  | @@ -140,7 +144,11 @@ static struct ce_attr host_ce_config_wla | ||||||
|  |  		.flags = CE_ATTR_FLAGS, | ||||||
|  |  		.src_nentries = 0, | ||||||
|  |  		.src_sz_max = 2048, | ||||||
|  | +#ifndef CONFIG_ATH10K_SMALLBUFFERS | ||||||
|  |  		.dest_nentries = 128, | ||||||
|  | +#else | ||||||
|  | +		.dest_nentries = 64, | ||||||
|  | +#endif | ||||||
|  |  		.recv_cb = ath10k_pci_htc_rx_cb, | ||||||
|  |  	}, | ||||||
|  |   | ||||||
|  | @@ -167,7 +175,11 @@ static struct ce_attr host_ce_config_wla | ||||||
|  |  		.flags = CE_ATTR_FLAGS, | ||||||
|  |  		.src_nentries = 0, | ||||||
|  |  		.src_sz_max = 512, | ||||||
|  | +#ifndef CONFIG_ATH10K_SMALLBUFFERS | ||||||
|  |  		.dest_nentries = 512, | ||||||
|  | +#else | ||||||
|  | +		.dest_nentries = 128, | ||||||
|  | +#endif | ||||||
|  |  		.recv_cb = ath10k_pci_htt_rx_cb, | ||||||
|  |  	}, | ||||||
|  |   | ||||||
|  | @@ -192,7 +204,11 @@ static struct ce_attr host_ce_config_wla | ||||||
|  |  		.flags = CE_ATTR_FLAGS, | ||||||
|  |  		.src_nentries = 0, | ||||||
|  |  		.src_sz_max = 2048, | ||||||
|  | +#ifndef CONFIG_ATH10K_SMALLBUFFERS | ||||||
|  |  		.dest_nentries = 128, | ||||||
|  | +#else | ||||||
|  | +		.dest_nentries = 96, | ||||||
|  | +#endif | ||||||
|  |  		.recv_cb = ath10k_pci_pktlog_rx_cb, | ||||||
|  |  	}, | ||||||
|  |   | ||||||
| @@ -0,0 +1,22 @@ | |||||||
|  | diff -Naur a/ath10k-5.7/mac.c b/ath10k-5.7/mac.c | ||||||
|  | --- a/ath10k-5.7/mac.c	2021-06-09 16:30:17.793556032 -0400 | ||||||
|  | +++ b/ath10k-5.7/mac.c	2021-06-09 17:38:08.587733979 -0400 | ||||||
|  | @@ -7103,13 +7103,15 @@ | ||||||
|  |  		scan_timeout = min_t(u32, arg.max_rest_time * | ||||||
|  |  				(arg.n_channels - 1) + (req->duration + | ||||||
|  |  				ATH10K_SCAN_CHANNEL_SWITCH_WMI_EVT_OVERHEAD) * | ||||||
|  | -				arg.n_channels, arg.max_scan_time + 200); | ||||||
|  | +				arg.n_channels, arg.max_scan_time); | ||||||
|  |   | ||||||
|  |  	} else { | ||||||
|  | -		/* Add a 200ms margin to account for event/command processing */ | ||||||
|  | -		scan_timeout = arg.max_scan_time + 200; | ||||||
|  | +		scan_timeout = arg.max_scan_time; | ||||||
|  |  	} | ||||||
|  |   | ||||||
|  | +	/* Add a 200ms margin to account for event/command processing */ | ||||||
|  | +	scan_timeout += 200; | ||||||
|  | + | ||||||
|  |  	ret = ath10k_start_scan(ar, &arg); | ||||||
|  |  	if (ret) { | ||||||
|  |  		ath10k_warn(ar, "failed to start hw scan: %d\n", ret); | ||||||
| @@ -0,0 +1,11 @@ | |||||||
|  | --- a/ath10k-5.7/mac.c	2021-07-06 11:12:56.022146449 -0700 | ||||||
|  | +++ b/ath10k-5.7/mac.c	2021-07-06 19:37:52.352753693 -0700 | ||||||
|  | @@ -8286,7 +8286,7 @@ | ||||||
|  |  				  struct ieee80211_channel *channel) | ||||||
|  |  { | ||||||
|  |  	int ret; | ||||||
|  | -	enum wmi_bss_survey_req_type type = WMI_BSS_SURVEY_REQ_TYPE_READ_CLEAR; | ||||||
|  | +	enum wmi_bss_survey_req_type type = WMI_BSS_SURVEY_REQ_TYPE_READ; | ||||||
|  |   | ||||||
|  |  	lockdep_assert_held(&ar->conf_mutex); | ||||||
|  |   | ||||||
| @@ -0,0 +1,31 @@ | |||||||
|  | --- a/ath10k-5.7/wmi.c | ||||||
|  | +++ b/ath10k-5.7/wmi.c | ||||||
|  | @@ -6347,16 +6347,18 @@ | ||||||
|  |   | ||||||
|  |  	survey = &ar->survey[idx]; | ||||||
|  |   | ||||||
|  | -	survey->noise     = noise_floor; | ||||||
|  | -	survey->time      = div_u64(total, cc_freq_hz); | ||||||
|  | -	survey->time_busy = div_u64(busy, cc_freq_hz); | ||||||
|  | -	survey->time_rx   = div_u64(rx_bss, cc_freq_hz); | ||||||
|  | -	survey->time_tx   = div_u64(tx, cc_freq_hz); | ||||||
|  | -	survey->filled   |= (SURVEY_INFO_NOISE_DBM | | ||||||
|  | -			     SURVEY_INFO_TIME | | ||||||
|  | -			     SURVEY_INFO_TIME_BUSY | | ||||||
|  | -			     SURVEY_INFO_TIME_RX | | ||||||
|  | -			     SURVEY_INFO_TIME_TX); | ||||||
|  | +	survey->noise       = noise_floor; | ||||||
|  | +	survey->time        = div_u64(total, cc_freq_hz); | ||||||
|  | +	survey->time_busy   = div_u64(busy, cc_freq_hz); | ||||||
|  | +	survey->time_rx     = div_u64(rx, cc_freq_hz); | ||||||
|  | +	survey->time_bss_rx = div_u64(rx_bss, cc_freq_hz); | ||||||
|  | +	survey->time_tx     = div_u64(tx, cc_freq_hz); | ||||||
|  | +	survey->filled     |= (SURVEY_INFO_NOISE_DBM | | ||||||
|  | +			       SURVEY_INFO_TIME | | ||||||
|  | +			       SURVEY_INFO_TIME_BUSY | | ||||||
|  | +			       SURVEY_INFO_TIME_RX | | ||||||
|  | +			       SURVEY_INFO_TIME_TX | | ||||||
|  | +			       SURVEY_INFO_TIME_BSS_RX); | ||||||
|  |  exit: | ||||||
|  |  	spin_unlock_bh(&ar->data_lock); | ||||||
|  |  	complete(&ar->bss_survey_done); | ||||||
							
								
								
									
										14
									
								
								feeds/ipq40xx/ath10k-ct/patches/999-ath10k-threading.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								feeds/ipq40xx/ath10k-ct/patches/999-ath10k-threading.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | |||||||
|  | Index: ath10k-ct-2021-05-22b-54a9ac02/ath10k-5.7/core.c | ||||||
|  | =================================================================== | ||||||
|  | --- ath10k-ct-2021-05-22b-54a9ac02.orig/ath10k-5.7/core.c | ||||||
|  | +++ ath10k-ct-2021-05-22b-54a9ac02/ath10k-5.7/core.c | ||||||
|  | @@ -4146,6 +4146,9 @@ struct ath10k *ath10k_core_create(size_t | ||||||
|  |  	INIT_WORK(&ar->stop_scan_work, ath10k_wmi_stop_scan_work); | ||||||
|  |   | ||||||
|  |  	init_dummy_netdev(&ar->napi_dev); | ||||||
|  | +	snprintf(ar->napi_dev.name, sizeof(ar->napi_dev.name), "%s", | ||||||
|  | +		 wiphy_name(ar->hw->wiphy)); | ||||||
|  | +	ar->napi_dev.threaded = 1; | ||||||
|  |   | ||||||
|  |  	ret = ath10k_coredump_create(ar); | ||||||
|  |  	if (ret) | ||||||
							
								
								
									
										182
									
								
								feeds/ipq40xx/ath10k-firmware/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										182
									
								
								feeds/ipq40xx/ath10k-firmware/Makefile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,182 @@ | |||||||
|  | # | ||||||
|  | # Copyright (C) 2015 OpenWrt.org | ||||||
|  | # | ||||||
|  | # This is free software, licensed under the GNU General Public License v2. | ||||||
|  | # See /LICENSE for more information. | ||||||
|  | # | ||||||
|  |  | ||||||
|  | include $(TOPDIR)/rules.mk | ||||||
|  |  | ||||||
|  | PKG_NAME:=ath10k-firmware | ||||||
|  | PKG_SOURCE_DATE:=2019-10-03 | ||||||
|  | PKG_SOURCE_VERSION:=d622d160e9f552ead68d9ae81b715422892dc2ef | ||||||
|  | PKG_MIRROR_HASH:=2e504e071c3f896d629c4cfffe7ff4b5f1acdb4fecd3f01e8ff8c73e87a67cc7 | ||||||
|  | PKG_RELEASE:=1 | ||||||
|  |  | ||||||
|  | PKG_SOURCE_PROTO:=git | ||||||
|  | PKG_SOURCE_URL:=https://github.com/kvalo/ath10k-firmware.git | ||||||
|  |  | ||||||
|  | PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name> | ||||||
|  |  | ||||||
|  | include $(INCLUDE_DIR)/package.mk | ||||||
|  |  | ||||||
|  | define Package/ath10k-firmware-default | ||||||
|  |   SECTION:=firmware | ||||||
|  |   CATEGORY:=Firmware | ||||||
|  |   URL:=$(PKG_SOURCE_URL) | ||||||
|  |   DEPENDS:= | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/ath10k-firmware-qca9887 | ||||||
|  | $(Package/ath10k-firmware-default) | ||||||
|  |   TITLE:=ath10k firmware for QCA9887 devices | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/ath10k-firmware-qca9888 | ||||||
|  | $(Package/ath10k-firmware-default) | ||||||
|  |   TITLE:=ath10k firmware for QCA9888 devices | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/ath10k-firmware-qca988x | ||||||
|  | $(Package/ath10k-firmware-default) | ||||||
|  |   TITLE:=ath10k firmware for QCA988x devices | ||||||
|  |   SECTION:=firmware | ||||||
|  |   CATEGORY:=Firmware | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/ath10k-firmware-qca99x0 | ||||||
|  | $(Package/ath10k-firmware-default) | ||||||
|  |   TITLE:=ath10k firmware for QCA99x0 devices | ||||||
|  |   SECTION:=firmware | ||||||
|  |   CATEGORY:=Firmware | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/ath10k-firmware-qca99x0/description | ||||||
|  | Standard ath10k firmware for QCA99x0 from QCA | ||||||
|  | This firmware conflicts with the CT 99x0 firmware, so select only | ||||||
|  | one. | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/ath10k-firmware-qca9984 | ||||||
|  | $(Package/ath10k-firmware-default) | ||||||
|  |   TITLE:=ath10k firmware for QCA9984 devices | ||||||
|  |   SECTION:=firmware | ||||||
|  |   CATEGORY:=Firmware | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/ath10k-firmware-qca4019 | ||||||
|  | $(Package/ath10k-firmware-default) | ||||||
|  |   TITLE:=ath10k firmware for IPQ/QCA4019 devices | ||||||
|  |   SECTION:=firmware | ||||||
|  |   CATEGORY:=Firmware | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/ath10k-firmware-qca6174 | ||||||
|  | $(Package/ath10k-firmware-default) | ||||||
|  |   TITLE:=ath10k firmware for QCA6174 devices | ||||||
|  |   SECTION:=firmware | ||||||
|  |   CATEGORY:=Firmware | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | QCA99X0_BOARD_REV:=ddcec9efd245da9365c474f513a855a55f3ac7fe | ||||||
|  | QCA99X0_BOARD_FILE:=board-2.bin.$(QCA99X0_BOARD_REV) | ||||||
|  |  | ||||||
|  | define Download/qca99x0-board | ||||||
|  |   URL:=https://source.codeaurora.org/quic/qsdk/oss/firmware/ath10k-firmware/plain/ath10k/QCA99X0/hw2.0 | ||||||
|  |   URL_FILE:=board-2.bin?id=$(QCA99X0_BOARD_REV) | ||||||
|  |   FILE:=$(QCA99X0_BOARD_FILE) | ||||||
|  |   HASH:=03711ac21e60ef59d3815e235eb721c0c22851b5410299411085aa6f2af45401 | ||||||
|  | endef | ||||||
|  | $(eval $(call Download,qca99x0-board)) | ||||||
|  |  | ||||||
|  | define Build/Compile | ||||||
|  |  | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/ath10k-firmware-qca4019/install | ||||||
|  | 	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA4019/hw1.0 | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(PKG_BUILD_DIR)/QCA4019/hw1.0/board-2.bin \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA4019/hw1.0/ | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(PKG_BUILD_DIR)/QCA4019/hw1.0/3.5.3/firmware-5.bin_10.4-3.5.3-00057 \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA4019/hw1.0/firmware-5.bin | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/ath10k-firmware-qca9887/install | ||||||
|  | 	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9887/hw1.0 | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(PKG_BUILD_DIR)/QCA9887/hw1.0/10.2.4-1.0/firmware-5.bin_10.2.4-1.0-00047 \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA9887/hw1.0/firmware-5.bin | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(PKG_BUILD_DIR)/QCA9887/hw1.0/board.bin \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA9887/hw1.0/board.bin | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/ath10k-firmware-qca9888/install | ||||||
|  | 	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9888/hw2.0 | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(PKG_BUILD_DIR)/QCA9888/hw2.0/board-2.bin \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA9888/hw2.0/board-2.bin | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(PKG_BUILD_DIR)/QCA9888/hw2.0/3.5.3/firmware-5.bin_10.4-3.5.3-00053 \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA9888/hw2.0/firmware-5.bin | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/ath10k-firmware-qca988x/install | ||||||
|  | 	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA988X/hw2.0 | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(PKG_BUILD_DIR)/QCA988X/hw2.0/board.bin \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA988X/hw2.0/ | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(PKG_BUILD_DIR)/QCA988X/hw2.0/10.2.4-1.0/firmware-5.bin_10.2.4-1.0-00047 \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA988X/hw2.0/firmware-5.bin | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/ath10k-firmware-qca6174/install | ||||||
|  | 	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA6174/hw2.1 | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(PKG_BUILD_DIR)/QCA6174/hw2.1/board-2.bin \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA6174/hw2.1/ | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(PKG_BUILD_DIR)/QCA6174/hw2.1/firmware-5.bin_SW_RM.1.1.1-00157-QCARMSWPZ-1 \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA6174/hw2.1/firmware-5.bin | ||||||
|  | 	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA6174/hw3.0 | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(PKG_BUILD_DIR)/QCA6174/hw3.0/board-2.bin \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA6174/hw3.0/ | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(PKG_BUILD_DIR)/QCA6174/hw3.0/4.4.1.c1/firmware-6.bin_RM.4.4.1.c1-00042-QCARMSWP-1 \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA6174/hw3.0/firmware-6.bin | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/ath10k-firmware-qca99x0/install | ||||||
|  | 	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA99X0/hw2.0 | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(DL_DIR)/$(QCA99X0_BOARD_FILE) \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board-2.bin | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(PKG_BUILD_DIR)/QCA99X0/hw2.0/boardData_AR900B_CUS239_5G_v2_001.bin \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board.bin | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(PKG_BUILD_DIR)/QCA99X0/hw2.0/firmware-5.bin_10.4.1.00030-1 \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/firmware-5.bin | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/ath10k-firmware-qca9984/install | ||||||
|  | 	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9984/hw1.0 | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(PKG_BUILD_DIR)/QCA9984/hw1.0/board-2.bin \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA9984/hw1.0/board-2.bin | ||||||
|  | 	$(INSTALL_DATA) \ | ||||||
|  | 		$(PKG_BUILD_DIR)/QCA9984/hw1.0/3.5.3/firmware-5.bin_10.4-3.5.3-00053 \ | ||||||
|  | 		$(1)/lib/firmware/ath10k/QCA9984/hw1.0/firmware-5.bin | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | $(eval $(call BuildPackage,ath10k-firmware-qca9887)) | ||||||
|  | #$(eval $(call BuildPackage,ath10k-firmware-qca9888)) | ||||||
|  | $(eval $(call BuildPackage,ath10k-firmware-qca988x)) | ||||||
|  | #$(eval $(call BuildPackage,ath10k-firmware-qca99x0)) | ||||||
|  | #$(eval $(call BuildPackage,ath10k-firmware-qca6174)) | ||||||
|  | #$(eval $(call BuildPackage,ath10k-firmware-qca9984)) | ||||||
|  | #$(eval $(call BuildPackage,ath10k-firmware-qca4019)) | ||||||
							
								
								
									
										231
									
								
								feeds/ipq40xx/batctl/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										231
									
								
								feeds/ipq40xx/batctl/Makefile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,231 @@ | |||||||
|  | # SPDX-License-Identifier: GPL-2.0-only | ||||||
|  |  | ||||||
|  | include $(TOPDIR)/rules.mk | ||||||
|  |  | ||||||
|  | PKG_NAME:=batctl | ||||||
|  | PKG_VERSION:=2020.2 | ||||||
|  | PKG_RELEASE:=1 | ||||||
|  |  | ||||||
|  | PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz | ||||||
|  | PKG_SOURCE_URL:=https://downloads.open-mesh.org/batman/releases/batman-adv-$(PKG_VERSION) | ||||||
|  | PKG_HASH:=d29cdb53ee68abd5027eae07d9fd645b3f154e0d577efa2666c1334bb6d60efd | ||||||
|  | PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION) | ||||||
|  |  | ||||||
|  | PKG_MAINTAINER:=Simon Wunderlich <sw@simonwunderlich.de> | ||||||
|  | PKG_LICENSE:=GPL-2.0-only ISC MIT | ||||||
|  | PKG_LICENSE_FILES:=LICENSES/preferred/GPL-2.0 LICENSES/preferred/MIT LICENSES/deprecated/ISC | ||||||
|  |  | ||||||
|  | include $(INCLUDE_DIR)/package.mk | ||||||
|  |  | ||||||
|  | define Package/batctl/Default | ||||||
|  |   SECTION:=net | ||||||
|  |   CATEGORY:=Network | ||||||
|  |   URL:=https://www.open-mesh.org/ | ||||||
|  |   DEPENDS:=+libnl-tiny +libc +librt | ||||||
|  |   PROVIDES:=batctl | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/batctl/description | ||||||
|  |   batctl is a more intuitive managment utility for B.A.T.M.A.N.-Advanced. | ||||||
|  |   It is an easier method for configuring batman-adv and provides some | ||||||
|  |   additional tools for debugging as well. This package builds | ||||||
|  |   version $(PKG_VERSION) of the user space utility. | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/batctl-tiny | ||||||
|  | $(call Package/batctl/Default) | ||||||
|  |   TITLE:=B.A.T.M.A.N. Advanced user space configuration tool (Minimal) | ||||||
|  |   VARIANT:=tiny | ||||||
|  |   ALTERNATIVES:=100:/usr/sbin/batctl:/usr/libexec/batctl-tiny | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/batctl-tiny/description | ||||||
|  | $(Package/batctl/description) | ||||||
|  |   Only configuration relevant subcommands are enabled. | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/batctl-default | ||||||
|  | $(call Package/batctl/Default) | ||||||
|  |   TITLE:=B.A.T.M.A.N. Advanced user space configuration tool (Default) | ||||||
|  |   VARIANT:=default | ||||||
|  |   ALTERNATIVES:=200:/usr/sbin/batctl:/usr/libexec/batctl-default | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/batctl-default/description | ||||||
|  | $(Package/batctl/description) | ||||||
|  |   Standard subcommands for configuration and online debugging are enabled. | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/batctl-full | ||||||
|  | $(call Package/batctl/Default) | ||||||
|  |   TITLE:=B.A.T.M.A.N. Advanced user space configuration tool (Full) | ||||||
|  |   VARIANT:=full | ||||||
|  |   ALTERNATIVES:=300:/usr/sbin/batctl:/usr/libexec/batctl-full | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/batctl-full/description | ||||||
|  | $(Package/batctl/description) | ||||||
|  |   Subcommands for configuration, online and offline debugging are enabled. | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | # The linker can identify unused sections of a binary when each symbol is stored | ||||||
|  | # in a separate section. This mostly removes unused linker sections and reduces | ||||||
|  | # the size by ~3% on mipsel. | ||||||
|  |  | ||||||
|  | TARGET_CFLAGS  += -ffunction-sections -fdata-sections | ||||||
|  | TARGET_LDFLAGS += -Wl,--gc-sections | ||||||
|  |  | ||||||
|  | # Link-time optimization allows to move parts of the optimization from the single | ||||||
|  | # source file to the global source view. This is done by emitting the GIMPLE | ||||||
|  | # representation in each object file and analyzing it again during the link step. | ||||||
|  |  | ||||||
|  | TARGET_CFLAGS  += -flto | ||||||
|  | TARGET_LDFLAGS += -fuse-linker-plugin | ||||||
|  |  | ||||||
|  | MAKE_VARS += \ | ||||||
|  |         LIBNL_NAME="libnl-tiny" \ | ||||||
|  |         LIBNL_GENL_NAME="libnl-tiny" | ||||||
|  |  | ||||||
|  | MAKE_FLAGS += \ | ||||||
|  |         REVISION="$(PKG_VERSION)-openwrt-$(PKG_RELEASE)" | ||||||
|  |  | ||||||
|  | config-n := \ | ||||||
|  | 	aggregation \ | ||||||
|  | 	ap_isolation \ | ||||||
|  | 	backbonetable \ | ||||||
|  | 	bisect_iv \ | ||||||
|  | 	bonding \ | ||||||
|  | 	bridge_loop_avoidance \ | ||||||
|  | 	claimtable \ | ||||||
|  | 	dat_cache \ | ||||||
|  | 	distributed_arp_table \ | ||||||
|  | 	elp_interval \ | ||||||
|  | 	event \ | ||||||
|  | 	fragmentation \ | ||||||
|  | 	gateways \ | ||||||
|  | 	gw_mode \ | ||||||
|  | 	hop_penalty \ | ||||||
|  | 	interface \ | ||||||
|  | 	isolation_mark \ | ||||||
|  | 	loglevel \ | ||||||
|  | 	mcast_flags \ | ||||||
|  | 	multicast_fanout \ | ||||||
|  | 	multicast_forceflood \ | ||||||
|  | 	multicast_mode \ | ||||||
|  | 	nc_nodes \ | ||||||
|  | 	neighbors \ | ||||||
|  | 	network_coding \ | ||||||
|  | 	orig_interval \ | ||||||
|  | 	originators \ | ||||||
|  | 	ping \ | ||||||
|  | 	routing_algo \ | ||||||
|  | 	statistics \ | ||||||
|  | 	tcpdump \ | ||||||
|  | 	throughput_override \ | ||||||
|  | 	throughputmeter \ | ||||||
|  | 	traceroute \ | ||||||
|  | 	transglobal \ | ||||||
|  | 	translate \ | ||||||
|  | 	translocal \ | ||||||
|  |  | ||||||
|  | config-settings := \ | ||||||
|  | 	aggregation \ | ||||||
|  | 	ap_isolation \ | ||||||
|  | 	bonding \ | ||||||
|  | 	bridge_loop_avoidance \ | ||||||
|  | 	distributed_arp_table \ | ||||||
|  | 	elp_interval \ | ||||||
|  | 	fragmentation \ | ||||||
|  | 	gw_mode \ | ||||||
|  | 	hop_penalty \ | ||||||
|  | 	interface \ | ||||||
|  | 	isolation_mark \ | ||||||
|  | 	loglevel \ | ||||||
|  | 	multicast_fanout \ | ||||||
|  | 	multicast_forceflood \ | ||||||
|  | 	multicast_mode \ | ||||||
|  | 	network_coding \ | ||||||
|  | 	orig_interval \ | ||||||
|  | 	routing_algo \ | ||||||
|  | 	throughput_override \ | ||||||
|  |  | ||||||
|  | config-tables := \ | ||||||
|  | 	backbonetable \ | ||||||
|  | 	claimtable \ | ||||||
|  | 	dat_cache \ | ||||||
|  | 	gateways \ | ||||||
|  | 	loglevel \ | ||||||
|  | 	nc_nodes \ | ||||||
|  | 	neighbors \ | ||||||
|  | 	originators \ | ||||||
|  | 	statistics \ | ||||||
|  | 	transglobal \ | ||||||
|  | 	translocal \ | ||||||
|  |  | ||||||
|  | config-tools := \ | ||||||
|  | 	event \ | ||||||
|  | 	ping \ | ||||||
|  | 	tcpdump \ | ||||||
|  | 	throughputmeter \ | ||||||
|  | 	traceroute \ | ||||||
|  | 	translate \ | ||||||
|  |  | ||||||
|  | config-extratools := \ | ||||||
|  | 	bisect_iv \ | ||||||
|  |  | ||||||
|  | ifeq ($(BUILD_VARIANT),tiny) | ||||||
|  |  | ||||||
|  | config-y := \ | ||||||
|  | 	$(config-settings) \ | ||||||
|  |  | ||||||
|  | endif | ||||||
|  |  | ||||||
|  | ifeq ($(BUILD_VARIANT),default) | ||||||
|  |  | ||||||
|  | config-y := \ | ||||||
|  | 	$(config-settings) \ | ||||||
|  | 	$(config-tables) \ | ||||||
|  | 	$(config-tools) \ | ||||||
|  |  | ||||||
|  | endif | ||||||
|  |  | ||||||
|  | ifeq ($(BUILD_VARIANT),full) | ||||||
|  |  | ||||||
|  | config-y := \ | ||||||
|  | 	$(config-settings) \ | ||||||
|  | 	$(config-tables) \ | ||||||
|  | 	$(config-tools) \ | ||||||
|  | 	$(config-extratools) \ | ||||||
|  |  | ||||||
|  | endif | ||||||
|  |  | ||||||
|  | define ConfigVars | ||||||
|  | $(subst $(space),,$(foreach opt,$(config-$(1)),CONFIG_$(opt)=$(1) | ||||||
|  | )) | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define batctl_config | ||||||
|  | $(call ConfigVars,n)$(call ConfigVars,y) | ||||||
|  | endef | ||||||
|  | $(eval $(call shexport,batctl_config)) | ||||||
|  |  | ||||||
|  | MAKE_FLAGS += $$$$$(call shvar,batctl_config) | ||||||
|  |  | ||||||
|  | define Package/batctl-tiny/install | ||||||
|  | 	$(INSTALL_DIR) $(1)/usr/libexec | ||||||
|  | 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/batctl $(1)/usr/libexec/batctl-tiny | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/batctl-default/install | ||||||
|  | 	$(INSTALL_DIR) $(1)/usr/libexec | ||||||
|  | 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/batctl $(1)/usr/libexec/batctl-default | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/batctl-full/install | ||||||
|  | 	$(INSTALL_DIR) $(1)/usr/libexec | ||||||
|  | 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/batctl $(1)/usr/libexec/batctl-full | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | $(eval $(call BuildPackage,batctl-default)) | ||||||
|  | $(eval $(call BuildPackage,batctl-tiny)) | ||||||
|  | $(eval $(call BuildPackage,batctl-full)) | ||||||
							
								
								
									
										110
									
								
								feeds/ipq40xx/batman-adv/Config.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										110
									
								
								feeds/ipq40xx/batman-adv/Config.in
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,110 @@ | |||||||
|  | # SPDX-License-Identifier: GPL-2.0 | ||||||
|  | # Copyright (C) 2007-2019  B.A.T.M.A.N. contributors: | ||||||
|  | # | ||||||
|  | # Marek Lindner, Simon Wunderlich | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # B.A.T.M.A.N meshing protocol | ||||||
|  | # | ||||||
|  |  | ||||||
|  | config BATMAN_ADV_BATMAN_V | ||||||
|  | 	bool "B.A.T.M.A.N. V protocol" | ||||||
|  | 	depends on PACKAGE_kmod-batman-adv | ||||||
|  | 	default y | ||||||
|  | 	help | ||||||
|  | 	  This option enables the B.A.T.M.A.N. V protocol, the successor | ||||||
|  | 	  of the currently used B.A.T.M.A.N. IV protocol. The main | ||||||
|  | 	  changes include splitting of the OGM protocol into a neighbor | ||||||
|  | 	  discovery protocol (Echo Location Protocol, ELP) and a new OGM | ||||||
|  | 	  Protocol OGMv2 for flooding protocol information through the | ||||||
|  | 	  network, as well as a throughput based metric. | ||||||
|  | 	  B.A.T.M.A.N. V is currently considered experimental and not | ||||||
|  | 	  compatible to B.A.T.M.A.N. IV networks. | ||||||
|  |  | ||||||
|  | config BATMAN_ADV_BLA | ||||||
|  | 	bool "Bridge Loop Avoidance" | ||||||
|  | 	depends on PACKAGE_kmod-batman-adv | ||||||
|  | 	select PACKAGE_kmod-lib-crc16 | ||||||
|  | 	default y | ||||||
|  | 	help | ||||||
|  | 	  This option enables BLA (Bridge Loop Avoidance), a mechanism | ||||||
|  | 	  to avoid Ethernet frames looping when mesh nodes are connected | ||||||
|  | 	  to both the same LAN and the same mesh. If you will never use | ||||||
|  | 	  more than one mesh node in the same LAN, you can safely remove | ||||||
|  | 	  this feature and save some space. | ||||||
|  |  | ||||||
|  | config BATMAN_ADV_DAT | ||||||
|  | 	bool "Distributed ARP Table" | ||||||
|  | 	depends on PACKAGE_kmod-batman-adv | ||||||
|  | 	default y | ||||||
|  | 	help | ||||||
|  | 	  This option enables DAT (Distributed ARP Table), a DHT based | ||||||
|  | 	  mechanism that increases ARP reliability on sparse wireless | ||||||
|  | 	  mesh networks. If you think that your network does not need | ||||||
|  | 	  this option you can safely remove it and save some space. | ||||||
|  |  | ||||||
|  | config BATMAN_ADV_NC | ||||||
|  | 	bool "Network Coding" | ||||||
|  | 	depends on PACKAGE_kmod-batman-adv | ||||||
|  | 	help | ||||||
|  | 	  This option enables network coding, a mechanism that aims to | ||||||
|  | 	  increase the overall network throughput by fusing multiple | ||||||
|  | 	  packets in one transmission. | ||||||
|  | 	  Note that interfaces controlled by batman-adv must be manually | ||||||
|  | 	  configured to have promiscuous mode enabled in order to make | ||||||
|  | 	  network coding work. | ||||||
|  | 	  If you think that your network does not need this feature you | ||||||
|  | 	  can safely disable it and save some space. | ||||||
|  |  | ||||||
|  | config BATMAN_ADV_MCAST | ||||||
|  | 	bool "Multicast optimisation" | ||||||
|  | 	depends on PACKAGE_kmod-batman-adv | ||||||
|  | 	default y | ||||||
|  | 	help | ||||||
|  | 	  This option enables the multicast optimisation which aims to | ||||||
|  | 	  reduce the air overhead while improving the reliability of | ||||||
|  | 	  multicast messages. | ||||||
|  |  | ||||||
|  | config BATMAN_ADV_DEBUGFS | ||||||
|  | 	bool "batman-adv debugfs entries" | ||||||
|  | 	depends on PACKAGE_kmod-batman-adv | ||||||
|  | 	select KERNEL_DEBUG_FS | ||||||
|  | 	help | ||||||
|  | 	  Enable this to export routing related debug tables via debugfs. | ||||||
|  | 	  The information for each soft-interface and used hard-interface can be | ||||||
|  | 	  found under batman_adv/ | ||||||
|  |  | ||||||
|  | 	  If unsure, say N. | ||||||
|  |  | ||||||
|  | config BATMAN_ADV_DEBUG | ||||||
|  | 	bool "B.A.T.M.A.N. debugging" | ||||||
|  | 	depends on PACKAGE_kmod-batman-adv | ||||||
|  | 	help | ||||||
|  | 	  This is an option for use by developers; most people should | ||||||
|  | 	  say N here. This enables compilation of support for | ||||||
|  | 	  outputting debugging information to the debugfs log or tracing | ||||||
|  | 	  buffer. The output is controlled via the batadv netdev specific | ||||||
|  | 	  log_level setting. | ||||||
|  |  | ||||||
|  | config BATMAN_ADV_SYSFS | ||||||
|  | 	bool "batman-adv sysfs entries" | ||||||
|  | 	depends on PACKAGE_kmod-batman-adv | ||||||
|  | 	help | ||||||
|  | 	  Say Y here if you want to enable batman-adv device configuration and | ||||||
|  | 	  status interface through sysfs attributes. It is replaced by the | ||||||
|  | 	  batadv generic netlink family but still used by various userspace | ||||||
|  | 	  tools and scripts. | ||||||
|  |  | ||||||
|  | 	  If unsure, say Y. | ||||||
|  |  | ||||||
|  | config BATMAN_ADV_TRACING | ||||||
|  | 	bool "B.A.T.M.A.N. tracing support" | ||||||
|  | 	depends on PACKAGE_kmod-batman-adv | ||||||
|  | 	select KERNEL_FTRACE | ||||||
|  | 	select KERNEL_ENABLE_DEFAULT_TRACERS | ||||||
|  | 	help | ||||||
|  | 	  This is an option for use by developers; most people should | ||||||
|  | 	  say N here. Select this option to gather traces like the debug | ||||||
|  | 	  messages using the generic tracing infrastructure of the kernel. | ||||||
|  | 	  BATMAN_ADV_DEBUG must also be selected to get trace events for | ||||||
|  | 	  batadv_dbg. | ||||||
							
								
								
									
										91
									
								
								feeds/ipq40xx/batman-adv/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										91
									
								
								feeds/ipq40xx/batman-adv/Makefile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,91 @@ | |||||||
|  | # SPDX-License-Identifier: GPL-2.0-only | ||||||
|  |  | ||||||
|  | include $(TOPDIR)/rules.mk | ||||||
|  |  | ||||||
|  | PKG_NAME:=batman-adv | ||||||
|  | PKG_VERSION:=2020.2 | ||||||
|  | PKG_RELEASE:=1 | ||||||
|  |  | ||||||
|  | PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz | ||||||
|  | PKG_SOURCE_URL:=https://downloads.open-mesh.org/batman/releases/batman-adv-$(PKG_VERSION) | ||||||
|  | PKG_HASH:=a73f5ce72c6efa9dd7bd7cc8daa667d0982e12e40811c978bb652607bb5666a3 | ||||||
|  | PKG_EXTMOD_SUBDIRS:=net/batman-adv | ||||||
|  |  | ||||||
|  | PKG_MAINTAINER:=Simon Wunderlich <sw@simonwunderlich.de> | ||||||
|  | PKG_LICENSE:=GPL-2.0-only MIT | ||||||
|  | PKG_LICENSE_FILES:=LICENSES/preferred/GPL-2.0 LICENSES/preferred/MIT | ||||||
|  |  | ||||||
|  | STAMP_CONFIGURED_DEPENDS := $(STAGING_DIR)/usr/include/mac80211-backport/backport/autoconf.h | ||||||
|  |  | ||||||
|  | include $(INCLUDE_DIR)/kernel.mk | ||||||
|  | include $(INCLUDE_DIR)/package.mk | ||||||
|  |  | ||||||
|  | define KernelPackage/batman-adv | ||||||
|  |   SUBMENU:=Network Support | ||||||
|  |   TITLE:=B.A.T.M.A.N. Adv | ||||||
|  |   URL:=https://www.open-mesh.org/ | ||||||
|  |   DEPENDS:=+BATMAN_ADV_BLA:kmod-lib-crc16 +kmod-lib-crc32c +kmod-cfg80211 +batctl | ||||||
|  |   FILES:=$(PKG_BUILD_DIR)/net/batman-adv/batman-adv.$(LINUX_KMOD_SUFFIX) | ||||||
|  |   AUTOLOAD:=$(call AutoProbe,batman-adv) | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define KernelPackage/batman-adv/description | ||||||
|  |   B.A.T.M.A.N. (better approach to mobile ad-hoc networking) is | ||||||
|  |   a routing protocol for multi-hop ad-hoc mesh networks. The | ||||||
|  |   networks may be wired or wireless. See | ||||||
|  |   https://www.open-mesh.org/ for more information and user space | ||||||
|  |   tools. This package builds version $(PKG_VERSION) of the kernel | ||||||
|  |   module. | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define KernelPackage/batman-adv/config | ||||||
|  | 	source "$(SOURCE)/Config.in" | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/kmod-batman-adv/conffiles | ||||||
|  | /etc/config/batman-adv | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | PKG_EXTRA_KCONFIG:= \ | ||||||
|  | 	CONFIG_BATMAN_ADV=m \ | ||||||
|  | 	CONFIG_BATMAN_ADV_DEBUG=$(if $(CONFIG_BATMAN_ADV_DEBUG),y,n) \ | ||||||
|  | 	CONFIG_BATMAN_ADV_DEBUGFS=$(if $(CONFIG_BATMAN_ADV_DEBUGFS),y,n) \ | ||||||
|  | 	CONFIG_BATMAN_ADV_BLA=$(if $(CONFIG_BATMAN_ADV_BLA),y,n) \ | ||||||
|  | 	CONFIG_BATMAN_ADV_DAT=$(if $(CONFIG_BATMAN_ADV_DAT),y,n) \ | ||||||
|  | 	CONFIG_BATMAN_ADV_MCAST=$(if $(CONFIG_BATMAN_ADV_MCAST),y,n) \ | ||||||
|  | 	CONFIG_BATMAN_ADV_NC=$(if $(CONFIG_BATMAN_ADV_NC),y,n) \ | ||||||
|  | 	CONFIG_BATMAN_ADV_BATMAN_V=$(if $(CONFIG_BATMAN_ADV_BATMAN_V),y,n) \ | ||||||
|  | 	CONFIG_BATMAN_ADV_SYSFS=$(if $(CONFIG_BATMAN_ADV_SYSFS),y,n) \ | ||||||
|  | 	CONFIG_BATMAN_ADV_TRACING=$(if $(CONFIG_BATMAN_ADV_TRACING),y,n) \ | ||||||
|  |  | ||||||
|  | PKG_EXTRA_CFLAGS:= \ | ||||||
|  | 	$(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=m,%,$(filter %=m,$(PKG_EXTRA_KCONFIG)))) \ | ||||||
|  | 	$(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=y,%,$(filter %=y,$(PKG_EXTRA_KCONFIG)))) \ | ||||||
|  |  | ||||||
|  | NOSTDINC_FLAGS = \ | ||||||
|  | 	-I$(PKG_BUILD_DIR)/net/batman-adv \ | ||||||
|  | 	-I$(STAGING_DIR)/usr/include/mac80211-backport \ | ||||||
|  | 	-I$(STAGING_DIR)/usr/include/mac80211-backport/uapi \ | ||||||
|  | 	-I$(STAGING_DIR)/usr/include/mac80211 \ | ||||||
|  | 	-I$(STAGING_DIR)/usr/include/mac80211/uapi \ | ||||||
|  | 	-I$(PKG_BUILD_DIR)/include/ \ | ||||||
|  | 	-include backport/autoconf.h \ | ||||||
|  | 	-include backport/backport.h \ | ||||||
|  | 	-include $(PKG_BUILD_DIR)/compat-hacks.h \ | ||||||
|  | 	-DBATADV_SOURCE_VERSION=\\\"$(PKG_VERSION)-openwrt-$(PKG_RELEASE)\\\" | ||||||
|  |  | ||||||
|  | define Build/Compile | ||||||
|  | 	$(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" \ | ||||||
|  | 		$(KERNEL_MAKE_FLAGS) \ | ||||||
|  | 		M="$(PKG_BUILD_DIR)/net/batman-adv" \ | ||||||
|  | 		$(PKG_EXTRA_KCONFIG) \ | ||||||
|  | 		EXTRA_CFLAGS="$(PKG_EXTRA_CFLAGS)" \ | ||||||
|  | 		NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)" \ | ||||||
|  | 		modules | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define KernelPackage/batman-adv/install | ||||||
|  | 	$(CP) ./files/. $(1)/ | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | $(eval $(call KernelPackage,batman-adv)) | ||||||
							
								
								
									
										97
									
								
								feeds/ipq40xx/batman-adv/files/etc/uci-defaults/99-migrate-batadv_hardif
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										97
									
								
								feeds/ipq40xx/batman-adv/files/etc/uci-defaults/99-migrate-batadv_hardif
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,97 @@ | |||||||
|  | #!/bin/sh | ||||||
|  |  | ||||||
|  | # This UCI-Defaults script will split the batadv proto network interfaces | ||||||
|  | # in batadv_hardif and batadv proto. The configuration options from | ||||||
|  | # /etc/config/batman-adv will be moved to the latter. | ||||||
|  |  | ||||||
|  | . /lib/functions.sh | ||||||
|  |  | ||||||
|  | proto_batadv_to_batadv_hardif() { | ||||||
|  |     local section="$1" | ||||||
|  |     local proto | ||||||
|  |     local mesh | ||||||
|  |     local routing_algo | ||||||
|  |  | ||||||
|  |     config_get proto "${section}" proto | ||||||
|  |     config_get mesh "${section}" mesh | ||||||
|  |     config_get routing_algo "${section}" routing_algo | ||||||
|  |  | ||||||
|  |     if [ -z "$mesh" -o "${proto}" != "batadv" ]; then | ||||||
|  |         continue | ||||||
|  |     fi | ||||||
|  |  | ||||||
|  |     uci set network."${section}".proto="batadv_hardif" | ||||||
|  |     uci rename network."${section}".mesh="master" | ||||||
|  |     uci delete network."${section}".routing_algo | ||||||
|  |  | ||||||
|  |     # create new section or adjust existing one | ||||||
|  |     uci set network."${mesh}"=interface | ||||||
|  |     uci set network."${mesh}".proto=batadv | ||||||
|  |     [ -n "${routing_algo}" ]  && uci set network."${mesh}".routing_algo="${routing_algo}" | ||||||
|  | } | ||||||
|  |  | ||||||
|  | mv_batadv_config_section() { | ||||||
|  |     local section="$1" | ||||||
|  |     local aggregated_ogms | ||||||
|  |     local ap_isolation | ||||||
|  |     local bonding | ||||||
|  |     local bridge_loop_avoidance | ||||||
|  |     local distributed_arp_table | ||||||
|  |     local fragmentation | ||||||
|  |     local gw_bandwidth | ||||||
|  |     local gw_mode | ||||||
|  |     local gw_sel_class | ||||||
|  |     local hop_penalty | ||||||
|  |     local isolation_mark | ||||||
|  |     local log_level | ||||||
|  |     local multicast_mode | ||||||
|  |     local network_coding | ||||||
|  |     local orig_interval | ||||||
|  |  | ||||||
|  |     config_get aggregated_ogms "${section}" aggregated_ogms | ||||||
|  |     config_get ap_isolation "${section}" ap_isolation | ||||||
|  |     config_get bonding "${section}" bonding | ||||||
|  |     config_get bridge_loop_avoidance "${section}" bridge_loop_avoidance | ||||||
|  |     config_get distributed_arp_table "${section}" distributed_arp_table | ||||||
|  |     config_get fragmentation "${section}" fragmentation | ||||||
|  |     config_get gw_bandwidth "${section}" gw_bandwidth | ||||||
|  |     config_get gw_mode "${section}" gw_mode | ||||||
|  |     config_get gw_sel_class "${section}" gw_sel_class | ||||||
|  |     config_get hop_penalty "${section}" hop_penalty | ||||||
|  |     config_get isolation_mark "${section}" isolation_mark | ||||||
|  |     config_get log_level "${section}" log_level | ||||||
|  |     config_get multicast_mode "${section}" multicast_mode | ||||||
|  |     config_get network_coding "${section}" network_coding | ||||||
|  |     config_get orig_interval "${section}" orig_interval | ||||||
|  |  | ||||||
|  |     # update section in case it exists | ||||||
|  |     [ -n "${aggregated_ogms}" ]  && uci set network."${section}".aggregated_ogms="${aggregated_ogms}" | ||||||
|  |     [ -n "${ap_isolation}" ]  && uci set network."${section}".ap_isolation="${ap_isolation}" | ||||||
|  |     [ -n "${bonding}" ]  && uci set network."${section}".bonding="${bonding}" | ||||||
|  |     [ -n "${bridge_loop_avoidance}" ]  && uci set network."${section}".bridge_loop_avoidance="${bridge_loop_avoidance}" | ||||||
|  |     [ -n "${distributed_arp_table}" ]  && uci set network."${section}".distributed_arp_table="${distributed_arp_table}" | ||||||
|  |     [ -n "${fragmentation}" ]  && uci set network."${section}".fragmentation="${fragmentation}" | ||||||
|  |     [ -n "${gw_bandwidth}" ]  && uci set network."${section}".gw_bandwidth="${gw_bandwidth}" | ||||||
|  |     [ -n "${gw_mode}" ]  && uci set network."${section}".gw_mode="${gw_mode}" | ||||||
|  |     [ -n "${gw_sel_class}" ]  && uci set network."${section}".gw_sel_class="${gw_sel_class}" | ||||||
|  |     [ -n "${hop_penalty}" ]  && uci set network."${section}".hop_penalty="${hop_penalty}" | ||||||
|  |     [ -n "${isolation_mark}" ]  && uci set network."${section}".isolation_mark="${isolation_mark}" | ||||||
|  |     [ -n "${log_level}" ]  && uci set network."${section}".log_level="${log_level}" | ||||||
|  |     [ -n "${multicast_mode}" ]  && uci set network."${section}".multicast_mode="${multicast_mode}" | ||||||
|  |     [ -n "${network_coding}" ]  && uci set network."${section}".network_coding="${network_coding}" | ||||||
|  |     [ -n "${orig_interval}" ]  && uci set network."${section}".orig_interval="${orig_interval}" | ||||||
|  | } | ||||||
|  |  | ||||||
|  | if [ -f /etc/config/batman-adv ]; then | ||||||
|  |     config_load network | ||||||
|  |     config_foreach proto_batadv_to_batadv_hardif 'interface' | ||||||
|  |     uci commit network | ||||||
|  |  | ||||||
|  |     config_load batman-adv | ||||||
|  |     config_foreach mv_batadv_config_section 'mesh' | ||||||
|  |     uci commit network | ||||||
|  |  | ||||||
|  |     rm -f /etc/config/batman-adv | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | exit 0 | ||||||
							
								
								
									
										123
									
								
								feeds/ipq40xx/batman-adv/files/lib/netifd/proto/batadv.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										123
									
								
								feeds/ipq40xx/batman-adv/files/lib/netifd/proto/batadv.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,123 @@ | |||||||
|  | #!/bin/sh | ||||||
|  |  | ||||||
|  | [ -n "$INCLUDE_ONLY" ] || { | ||||||
|  | 	. /lib/functions.sh | ||||||
|  | 	. ../netifd-proto.sh | ||||||
|  | 	init_proto "$@" | ||||||
|  | } | ||||||
|  |  | ||||||
|  | proto_batadv_init_config() { | ||||||
|  | 	no_device=1 | ||||||
|  | 	available=1 | ||||||
|  |  | ||||||
|  | 	proto_config_add_boolean 'aggregated_ogms:bool' | ||||||
|  | 	proto_config_add_boolean 'ap_isolation:bool' | ||||||
|  | 	proto_config_add_boolean 'bonding:bool' | ||||||
|  | 	proto_config_add_boolean 'bridge_loop_avoidance:bool' | ||||||
|  | 	proto_config_add_boolean 'distributed_arp_table:bool' | ||||||
|  | 	proto_config_add_boolean 'fragmentation:bool' | ||||||
|  | 	proto_config_add_string 'gw_bandwidth' | ||||||
|  | 	proto_config_add_string 'gw_mode' | ||||||
|  | 	proto_config_add_int 'gw_sel_class' | ||||||
|  | 	proto_config_add_int 'hop_penalty' | ||||||
|  | 	proto_config_add_string 'isolation_mark' | ||||||
|  | 	proto_config_add_string 'log_level' | ||||||
|  | 	proto_config_add_int 'multicast_fanout' | ||||||
|  | 	proto_config_add_boolean 'multicast_mode:bool' | ||||||
|  | 	proto_config_add_boolean 'network_coding:bool' | ||||||
|  | 	proto_config_add_int 'orig_interval' | ||||||
|  | 	proto_config_add_string 'routing_algo' | ||||||
|  | } | ||||||
|  |  | ||||||
|  | proto_batadv_setup() { | ||||||
|  | 	local config="$1" | ||||||
|  | 	local iface="$config" | ||||||
|  |  | ||||||
|  | 	local aggregated_ogms | ||||||
|  | 	local ap_isolation | ||||||
|  | 	local bonding | ||||||
|  | 	local bridge_loop_avoidance | ||||||
|  | 	local distributed_arp_table | ||||||
|  | 	local fragmentation | ||||||
|  | 	local gw_bandwidth | ||||||
|  | 	local gw_mode | ||||||
|  | 	local gw_sel_class | ||||||
|  | 	local hop_penalty | ||||||
|  | 	local isolation_mark | ||||||
|  | 	local log_level | ||||||
|  | 	local multicast_fanout | ||||||
|  | 	local multicast_mode | ||||||
|  | 	local network_coding | ||||||
|  | 	local orig_interval | ||||||
|  | 	local routing_algo | ||||||
|  |  | ||||||
|  | 	json_get_vars aggregated_ogms | ||||||
|  | 	json_get_vars ap_isolation | ||||||
|  | 	json_get_vars bonding | ||||||
|  | 	json_get_vars bridge_loop_avoidance | ||||||
|  | 	json_get_vars distributed_arp_table | ||||||
|  | 	json_get_vars fragmentation | ||||||
|  | 	json_get_vars gw_bandwidth | ||||||
|  | 	json_get_vars gw_mode | ||||||
|  | 	json_get_vars gw_sel_class | ||||||
|  | 	json_get_vars hop_penalty | ||||||
|  | 	json_get_vars isolation_mark | ||||||
|  | 	json_get_vars log_level | ||||||
|  | 	json_get_vars multicast_fanout | ||||||
|  | 	json_get_vars multicast_mode | ||||||
|  | 	json_get_vars network_coding | ||||||
|  | 	json_get_vars orig_interval | ||||||
|  | 	json_get_vars routing_algo | ||||||
|  |  | ||||||
|  | 	set_default routing_algo 'BATMAN_IV' | ||||||
|  |  | ||||||
|  | 	batctl routing_algo "$routing_algo" | ||||||
|  | 	batctl meshif "$iface" interface create | ||||||
|  |  | ||||||
|  | 	[ -n "$aggregated_ogms" ] && batctl meshif "$iface" aggregation "$aggregated_ogms" | ||||||
|  | 	[ -n "$ap_isolation" ] && batctl meshif "$iface" ap_isolation "$ap_isolation" | ||||||
|  | 	[ -n "$bonding" ] && batctl meshif "$iface" bonding "$bonding" | ||||||
|  | 	[ -n "$bridge_loop_avoidance" ] &&  batctl meshif "$iface" bridge_loop_avoidance "$bridge_loop_avoidance" 2>&- | ||||||
|  | 	[ -n "$distributed_arp_table" ] && batctl meshif "$iface" distributed_arp_table "$distributed_arp_table" 2>&- | ||||||
|  | 	[ -n "$fragmentation" ] && batctl meshif "$iface" fragmentation "$fragmentation" | ||||||
|  |  | ||||||
|  | 	case "$gw_mode" in | ||||||
|  | 	server) | ||||||
|  | 		if [ -n "$gw_bandwidth" ]; then | ||||||
|  | 			batctl meshif "$iface" gw_mode "server" "$gw_bandwidth" | ||||||
|  | 		else | ||||||
|  | 			batctl meshif "$iface" gw_mode "server" | ||||||
|  | 		fi | ||||||
|  | 		;; | ||||||
|  | 	client) | ||||||
|  | 		if [ -n "$gw_sel_class" ]; then | ||||||
|  | 			batctl meshif "$iface" gw_mode "client" "$gw_sel_class" | ||||||
|  | 		else | ||||||
|  | 			batctl meshif "$iface" gw_mode "client" | ||||||
|  | 		fi | ||||||
|  | 		;; | ||||||
|  | 	*) | ||||||
|  | 		batctl meshif "$iface" gw_mode "off" | ||||||
|  | 		;; | ||||||
|  | 	esac | ||||||
|  |  | ||||||
|  | 	[ -n "$hop_penalty" ] && batctl meshif "$iface" hop_penalty "$hop_penalty" | ||||||
|  | 	[ -n "$isolation_mark" ] && batctl meshif "$iface" isolation_mark "$isolation_mark" | ||||||
|  | 	[ -n "$multicast_fanout" ] && batctl meshif "$iface" multicast_fanout "$multicast_fanout" | ||||||
|  | 	[ -n "$multicast_mode" ] && batctl meshif "$iface" multicast_mode "$multicast_mode" 2>&- | ||||||
|  | 	[ -n "$network_coding" ] && batctl meshif "$iface" network_coding "$network_coding" 2>&- | ||||||
|  | 	[ -n "$log_level" ] && batctl meshif "$iface" loglevel "$log_level" 2>&- | ||||||
|  | 	[ -n "$orig_interval" ] && batctl meshif "$iface" orig_interval "$orig_interval" | ||||||
|  |  | ||||||
|  | 	proto_init_update "$iface" 1 | ||||||
|  | 	proto_send_update "$config" | ||||||
|  | } | ||||||
|  |  | ||||||
|  | proto_batadv_teardown() { | ||||||
|  | 	local config="$1" | ||||||
|  | 	local iface="$config" | ||||||
|  |  | ||||||
|  | 	batctl meshif "$iface" interface destroy | ||||||
|  | } | ||||||
|  |  | ||||||
|  | add_protocol batadv | ||||||
							
								
								
									
										49
									
								
								feeds/ipq40xx/batman-adv/files/lib/netifd/proto/batadv_hardif.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										49
									
								
								feeds/ipq40xx/batman-adv/files/lib/netifd/proto/batadv_hardif.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,49 @@ | |||||||
|  | #!/bin/sh | ||||||
|  |  | ||||||
|  | [ -n "$INCLUDE_ONLY" ] || { | ||||||
|  | 	. /lib/functions.sh | ||||||
|  | 	. ../netifd-proto.sh | ||||||
|  | 	init_proto "$@" | ||||||
|  | } | ||||||
|  |  | ||||||
|  | proto_batadv_hardif_init_config() { | ||||||
|  | 	proto_config_add_int 'elp_interval' | ||||||
|  | 	proto_config_add_string "master" | ||||||
|  | 	proto_config_add_string 'throughput_override' | ||||||
|  | } | ||||||
|  |  | ||||||
|  | proto_batadv_hardif_setup() { | ||||||
|  | 	local config="$1" | ||||||
|  | 	local iface="$2" | ||||||
|  |  | ||||||
|  | 	local elp_interval | ||||||
|  | 	local master | ||||||
|  | 	local throughput_override | ||||||
|  |  | ||||||
|  | 	json_get_vars elp_interval | ||||||
|  | 	json_get_vars master | ||||||
|  | 	json_get_vars throughput_override | ||||||
|  |  | ||||||
|  | 	( proto_add_host_dependency "$config" '' "$master" ) | ||||||
|  |  | ||||||
|  | 	batctl meshif "$master" interface -M add "$iface" | ||||||
|  |  | ||||||
|  | 	[ -n "$elp_interval" ] && batctl hardif "$iface" elp_interval "$elp_interval" | ||||||
|  | 	[ -n "$throughput_override" ] && batctl hardif "$iface" throughput_override "$throughput_override" | ||||||
|  |  | ||||||
|  | 	proto_init_update "$iface" 1 | ||||||
|  | 	proto_send_update "$config" | ||||||
|  | } | ||||||
|  |  | ||||||
|  | proto_batadv_hardif_teardown() { | ||||||
|  | 	local config="$1" | ||||||
|  | 	local iface="$2" | ||||||
|  |  | ||||||
|  | 	local master | ||||||
|  |  | ||||||
|  | 	json_get_vars master | ||||||
|  |  | ||||||
|  | 	batctl meshif "$master" interface -M del "$iface" || true | ||||||
|  | } | ||||||
|  |  | ||||||
|  | add_protocol batadv_hardif | ||||||
							
								
								
									
										25
									
								
								feeds/ipq40xx/batman-adv/files/lib/netifd/proto/batadv_vlan.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										25
									
								
								feeds/ipq40xx/batman-adv/files/lib/netifd/proto/batadv_vlan.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,25 @@ | |||||||
|  | #!/bin/sh | ||||||
|  |  | ||||||
|  | . /lib/functions.sh | ||||||
|  | . ../netifd-proto.sh | ||||||
|  | init_proto "$@" | ||||||
|  |  | ||||||
|  | proto_batadv_vlan_init_config() { | ||||||
|  | 	proto_config_add_boolean 'ap_isolation:bool' | ||||||
|  | } | ||||||
|  |  | ||||||
|  | proto_batadv_vlan_setup() { | ||||||
|  | 	local config="$1" | ||||||
|  | 	local iface="$2" | ||||||
|  |  | ||||||
|  | 	# batadv_vlan options | ||||||
|  | 	local ap_isolation | ||||||
|  |  | ||||||
|  | 	json_get_vars ap_isolation | ||||||
|  |  | ||||||
|  | 	[ -n "$ap_isolation" ] && batctl vlan "$iface" ap_isolation "$ap_isolation" | ||||||
|  | 	proto_init_update "$iface" 1 | ||||||
|  | 	proto_send_update "$config" | ||||||
|  | } | ||||||
|  |  | ||||||
|  | add_protocol batadv_vlan | ||||||
							
								
								
									
										181
									
								
								feeds/ipq40xx/batman-adv/src/compat-hacks.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										181
									
								
								feeds/ipq40xx/batman-adv/src/compat-hacks.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,181 @@ | |||||||
|  | /* Please avoid adding hacks here - instead add it to mac80211/backports.git */ | ||||||
|  |  | ||||||
|  | #undef CONFIG_MODULE_STRIPPED | ||||||
|  |  | ||||||
|  | #include <linux/version.h>	/* LINUX_VERSION_CODE */ | ||||||
|  | #include <linux/types.h> | ||||||
|  |  | ||||||
|  | #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0) | ||||||
|  |  | ||||||
|  | #include <linux/netdevice.h> | ||||||
|  |  | ||||||
|  | #define netdev_master_upper_dev_link(dev, upper_dev, upper_priv, upper_info, extack) ({\ | ||||||
|  | 	BUILD_BUG_ON(extack != NULL); \ | ||||||
|  | 	netdev_master_upper_dev_link(dev, upper_dev, upper_priv, upper_info); \ | ||||||
|  | }) | ||||||
|  |  | ||||||
|  | #endif /* < KERNEL_VERSION(4, 15, 0) */ | ||||||
|  |  | ||||||
|  |  | ||||||
|  | #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 16, 0) | ||||||
|  |  | ||||||
|  | #ifndef sizeof_field | ||||||
|  | #define sizeof_field(TYPE, MEMBER) sizeof((((TYPE *)0)->MEMBER)) | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | #endif /* < KERNEL_VERSION(4, 16, 0) */ | ||||||
|  |  | ||||||
|  |  | ||||||
|  | #if LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0) | ||||||
|  |  | ||||||
|  | #include_next <linux/igmp.h> | ||||||
|  | #include_next <net/addrconf.h> | ||||||
|  |  | ||||||
|  | static inline int batadv_ipv6_mc_check_mld1(struct sk_buff *skb) | ||||||
|  | { | ||||||
|  | 	return ipv6_mc_check_mld(skb, NULL); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | static inline int batadv_ipv6_mc_check_mld2(struct sk_buff *skb, | ||||||
|  | 					    struct sk_buff **skb_trimmed) | ||||||
|  | { | ||||||
|  | 	return ipv6_mc_check_mld(skb, skb_trimmed); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #define ipv6_mc_check_mld_get(_1, _2, ipv6_mc_check_mld_name, ...) ipv6_mc_check_mld_name | ||||||
|  | #define ipv6_mc_check_mld(...) \ | ||||||
|  | 	ipv6_mc_check_mld_get(__VA_ARGS__, batadv_ipv6_mc_check_mld2, batadv_ipv6_mc_check_mld1)(__VA_ARGS__) | ||||||
|  |  | ||||||
|  | static inline int batadv_ip_mc_check_igmp1(struct sk_buff *skb) | ||||||
|  | { | ||||||
|  | 	return ip_mc_check_igmp(skb, NULL); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | static inline int batadv_ip_mc_check_igmp2(struct sk_buff *skb, | ||||||
|  | 					   struct sk_buff **skb_trimmed) | ||||||
|  | { | ||||||
|  | 	return ip_mc_check_igmp(skb, skb_trimmed); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #define ip_mc_check_igmp_get(_1, _2, ip_mc_check_igmp_name, ...) ip_mc_check_igmp_name | ||||||
|  | #define ip_mc_check_igmp(...) \ | ||||||
|  | 	ip_mc_check_igmp_get(__VA_ARGS__, batadv_ip_mc_check_igmp2, batadv_ip_mc_check_igmp1)(__VA_ARGS__) | ||||||
|  |  | ||||||
|  | #endif /* < KERNEL_VERSION(5, 1, 0) */ | ||||||
|  |  | ||||||
|  |  | ||||||
|  | #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0) | ||||||
|  |  | ||||||
|  | #define batadv_softif_slave_add(__dev, __slave_dev, __extack) \ | ||||||
|  | 	batadv_softif_slave_add(__dev, __slave_dev) | ||||||
|  |  | ||||||
|  | #endif /* < KERNEL_VERSION(4, 15, 0) */ | ||||||
|  |  | ||||||
|  |  | ||||||
|  | #if LINUX_VERSION_CODE < KERNEL_VERSION(5, 0, 0) | ||||||
|  |  | ||||||
|  | static inline int batadv_access_ok(int type, const void __user *p, | ||||||
|  | 				   unsigned long size) | ||||||
|  | { | ||||||
|  | 	return access_ok(type, p, size); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #ifdef access_ok | ||||||
|  | #undef access_ok | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | #define access_ok_get(_1, _2, _3 , access_ok_name, ...) access_ok_name | ||||||
|  | #define access_ok(...) \ | ||||||
|  | 	access_ok_get(__VA_ARGS__, access_ok3, access_ok2)(__VA_ARGS__) | ||||||
|  |  | ||||||
|  | #define access_ok2(addr, size)	batadv_access_ok(VERIFY_WRITE, (addr), (size)) | ||||||
|  | #define access_ok3(type, addr, size)	batadv_access_ok((type), (addr), (size)) | ||||||
|  |  | ||||||
|  | #endif /* < KERNEL_VERSION(5, 0, 0) */ | ||||||
|  |  | ||||||
|  | #if LINUX_VERSION_CODE < KERNEL_VERSION(5, 4, 0) | ||||||
|  |  | ||||||
|  | #ifndef fallthrough | ||||||
|  | #if __GNUC__ > 7 && !defined(__CHECKER__) | ||||||
|  | # define fallthrough                    __attribute__((__fallthrough__)) | ||||||
|  | #else | ||||||
|  | # define fallthrough                    do {} while (0)  /* fallthrough */ | ||||||
|  | #endif | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | #endif /* < KERNEL_VERSION(5, 4, 0) */ | ||||||
|  |  | ||||||
|  | /* <DECLARE_EWMA> */ | ||||||
|  |  | ||||||
|  | #include <linux/version.h> | ||||||
|  | #include_next <linux/average.h> | ||||||
|  |  | ||||||
|  | #include <linux/bug.h> | ||||||
|  |  | ||||||
|  | #ifdef DECLARE_EWMA | ||||||
|  | #undef DECLARE_EWMA | ||||||
|  | #endif /* DECLARE_EWMA */ | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |  * Exponentially weighted moving average (EWMA) | ||||||
|  |  * | ||||||
|  |  * This implements a fixed-precision EWMA algorithm, with both the | ||||||
|  |  * precision and fall-off coefficient determined at compile-time | ||||||
|  |  * and built into the generated helper funtions. | ||||||
|  |  * | ||||||
|  |  * The first argument to the macro is the name that will be used | ||||||
|  |  * for the struct and helper functions. | ||||||
|  |  * | ||||||
|  |  * The second argument, the precision, expresses how many bits are | ||||||
|  |  * used for the fractional part of the fixed-precision values. | ||||||
|  |  * | ||||||
|  |  * The third argument, the weight reciprocal, determines how the | ||||||
|  |  * new values will be weighed vs. the old state, new values will | ||||||
|  |  * get weight 1/weight_rcp and old values 1-1/weight_rcp. Note | ||||||
|  |  * that this parameter must be a power of two for efficiency. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #define DECLARE_EWMA(name, _precision, _weight_rcp)			\ | ||||||
|  | 	struct ewma_##name {						\ | ||||||
|  | 		unsigned long internal;					\ | ||||||
|  | 	};								\ | ||||||
|  | 	static inline void ewma_##name##_init(struct ewma_##name *e)	\ | ||||||
|  | 	{								\ | ||||||
|  | 		BUILD_BUG_ON(!__builtin_constant_p(_precision));	\ | ||||||
|  | 		BUILD_BUG_ON(!__builtin_constant_p(_weight_rcp));	\ | ||||||
|  | 		/*							\ | ||||||
|  | 		 * Even if you want to feed it just 0/1 you should have	\ | ||||||
|  | 		 * some bits for the non-fractional part...		\ | ||||||
|  | 		 */							\ | ||||||
|  | 		BUILD_BUG_ON((_precision) > 30);			\ | ||||||
|  | 		BUILD_BUG_ON_NOT_POWER_OF_2(_weight_rcp);		\ | ||||||
|  | 		e->internal = 0;					\ | ||||||
|  | 	}								\ | ||||||
|  | 	static inline unsigned long					\ | ||||||
|  | 	ewma_##name##_read(struct ewma_##name *e)			\ | ||||||
|  | 	{								\ | ||||||
|  | 		BUILD_BUG_ON(!__builtin_constant_p(_precision));	\ | ||||||
|  | 		BUILD_BUG_ON(!__builtin_constant_p(_weight_rcp));	\ | ||||||
|  | 		BUILD_BUG_ON((_precision) > 30);			\ | ||||||
|  | 		BUILD_BUG_ON_NOT_POWER_OF_2(_weight_rcp);		\ | ||||||
|  | 		return e->internal >> (_precision);			\ | ||||||
|  | 	}								\ | ||||||
|  | 	static inline void ewma_##name##_add(struct ewma_##name *e,	\ | ||||||
|  | 					     unsigned long val)		\ | ||||||
|  | 	{								\ | ||||||
|  | 		unsigned long internal = READ_ONCE(e->internal);	\ | ||||||
|  | 		unsigned long weight_rcp = ilog2(_weight_rcp);		\ | ||||||
|  | 		unsigned long precision = _precision;			\ | ||||||
|  | 									\ | ||||||
|  | 		BUILD_BUG_ON(!__builtin_constant_p(_precision));	\ | ||||||
|  | 		BUILD_BUG_ON(!__builtin_constant_p(_weight_rcp));	\ | ||||||
|  | 		BUILD_BUG_ON((_precision) > 30);			\ | ||||||
|  | 		BUILD_BUG_ON_NOT_POWER_OF_2(_weight_rcp);		\ | ||||||
|  | 									\ | ||||||
|  | 		WRITE_ONCE(e->internal, internal ?			\ | ||||||
|  | 			(((internal << weight_rcp) - internal) +	\ | ||||||
|  | 				(val << precision)) >> weight_rcp :	\ | ||||||
|  | 			(val << precision));				\ | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | /* </DECLARE_EWMA> */ | ||||||
							
								
								
									
										151
									
								
								feeds/ipq40xx/ipq-wifi/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										151
									
								
								feeds/ipq40xx/ipq-wifi/Makefile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,151 @@ | |||||||
|  | include $(TOPDIR)/rules.mk | ||||||
|  | include $(INCLUDE_DIR)/version.mk | ||||||
|  |  | ||||||
|  | PKG_NAME:=ipq-wifi | ||||||
|  | PKG_RELEASE:=1 | ||||||
|  | PKG_FLAGS:=nonshared | ||||||
|  |  | ||||||
|  | include $(INCLUDE_DIR)/package.mk | ||||||
|  |  | ||||||
|  | define Build/Prepare | ||||||
|  | 	mkdir -p $(PKG_BUILD_DIR) | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Build/Compile | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | # Use ath10k-bdencoder from https://github.com/qca/qca-swiss-army-knife.git | ||||||
|  | # to generate the board-* files here. | ||||||
|  | # | ||||||
|  | # This is intended to be used on an interim basis until device-specific | ||||||
|  | # board data for new devices is available through the upstream compilation | ||||||
|  | # | ||||||
|  | # Please send a mail with your device-specific board files upstream. | ||||||
|  | # You can find instructions and examples on the linux-wireless wiki: | ||||||
|  | # <https://wireless.wiki.kernel.org/en/users/drivers/ath10k/boardfiles> | ||||||
|  |  | ||||||
|  | ALLWIFIBOARDS:= \ | ||||||
|  | 	8dev_habanero-dvk \ | ||||||
|  | 	aruba_ap-303 \ | ||||||
|  | 	avm_fritzrepeater-1200 \ | ||||||
|  | 	buffalo_wtr-m2133hp \ | ||||||
|  | 	cellc_rtl30vw \ | ||||||
|  | 	devolo_magic-2-wifi-next \ | ||||||
|  | 	dlink_dap2610 \ | ||||||
|  | 	edgecore_ecw5410 \ | ||||||
|  | 	edgecore_ssw2ac2600 \ | ||||||
|  | 	edgecore_oap100 \ | ||||||
|  | 	engenius_eap2200 \ | ||||||
|  | 	engenius_emd1 \ | ||||||
|  | 	engenius_emr3500 \ | ||||||
|  | 	ezviz_cs-w3-wd1200g-eup \ | ||||||
|  | 	glinet_gl-ap1300 \ | ||||||
|  | 	glinet_gl-s1300 \ | ||||||
|  | 	linksys_ea8300 \ | ||||||
|  | 	linksys_mr8300-v0 \ | ||||||
|  | 	luma_wrtq-329acn \ | ||||||
|  | 	mikrotik_hap-ac2 \ | ||||||
|  | 	mikrotik_sxtsq-5-ac \ | ||||||
|  | 	mobipromo_cm520-79f \ | ||||||
|  | 	nec_wg2600hp3 \ | ||||||
|  | 	plasmacloud_pa1200 \ | ||||||
|  | 	plasmacloud_pa2200 \ | ||||||
|  | 	qxwlan_e2600ac \ | ||||||
|  | 	cig_wf610d \ | ||||||
|  | 	wallys_dr40x9 \ | ||||||
|  | 	tp-link_ec420-g1 \ | ||||||
|  | 	udaya-a5-id2 \ | ||||||
|  | 	hfcl_ion4 | ||||||
|  |  | ||||||
|  | ALLWIFIPACKAGES:=$(foreach BOARD,$(ALLWIFIBOARDS),ipq-wifi-$(BOARD)) | ||||||
|  |  | ||||||
|  | define Package/ipq-wifi-default | ||||||
|  |   SUBMENU:=ath10k Board-Specific Overrides | ||||||
|  |   SECTION:=firmware | ||||||
|  |   CATEGORY:=Firmware | ||||||
|  |   DEPENDS:=@(TARGET_ipq40xx||TARGET_ipq806x) | ||||||
|  |   TITLE:=Custom Board | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define ipq-wifi-install-one-to | ||||||
|  |   $(INSTALL_DIR)  $(2)/lib/firmware/ath10k/$(3)/ | ||||||
|  |   $(INSTALL_DATA) $(1) $(2)/lib/firmware/ath10k/$(3)/board-2.bin | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define ipq-wifi-install-one | ||||||
|  |   $(if $(filter $(suffix $(1)),.QCA4019 .qca4019),\ | ||||||
|  |     $(call ipq-wifi-install-one-to,$(1),$(2),QCA4019/hw1.0),\ | ||||||
|  |   $(if $(filter $(suffix $(1)),.QCA9888 .qca9888),\ | ||||||
|  |     $(call ipq-wifi-install-one-to,$(1),$(2),QCA9888/hw2.0),\ | ||||||
|  |   $(if $(filter $(suffix $(1)),.QCA9984 .qca9984),\ | ||||||
|  |     $(call ipq-wifi-install-one-to,$(1),$(2),QCA9984/hw1.0),\ | ||||||
|  |     $(error Unrecognized board-file suffix '$(suffix $(1))' for '$(1)')\ | ||||||
|  |   ))) | ||||||
|  |  | ||||||
|  | endef | ||||||
|  | # Blank line required at end of above define due to foreach context | ||||||
|  |  | ||||||
|  | define generate-ipq-wifi-package | ||||||
|  |   define Package/ipq-wifi-$(1) | ||||||
|  |     $(call Package/ipq-wifi-default) | ||||||
|  |     TITLE:=board-2.bin Overrides for $(2) | ||||||
|  |     CONFLICTS:=$(PREV_BOARD) | ||||||
|  |   endef | ||||||
|  |  | ||||||
|  |   define Package/ipq-wifi-$(1)/description | ||||||
|  | The $(2) requires board-specific, reference ("cal") data | ||||||
|  | that is not yet present in the upstream wireless firmware distribution. | ||||||
|  |  | ||||||
|  | This package supplies board-2.bin file(s) that, in the interim, | ||||||
|  | overwrite those supplied by the ath10k-firmware-* packages. | ||||||
|  |  | ||||||
|  | This is package is only necessary for the $(2). | ||||||
|  |  | ||||||
|  | Do not install it for any other device! | ||||||
|  |   endef | ||||||
|  |  | ||||||
|  |   define Package/ipq-wifi-$(1)/install-overlay | ||||||
|  |     $$$$(foreach IPQ_WIFI_BOARD_FILE,$$$$(wildcard board-$(1).*),\ | ||||||
|  |       $$$$(call ipq-wifi-install-one,$$$$(IPQ_WIFI_BOARD_FILE),$$(1))) | ||||||
|  |   endef | ||||||
|  |  | ||||||
|  |   PREV_BOARD+=ipq-wifi-$(1) | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | # Add board name to ALLWIFIBOARDS | ||||||
|  | # Place files in this directory as board-<devicename>.<qca4019|qca9888|qca9984> | ||||||
|  | # Add $(eval $(call generate-ipq-wifi-package,<devicename>,<display name>)) | ||||||
|  |  | ||||||
|  | $(eval $(call generate-ipq-wifi-package,8dev_habanero-dvk,8devices Habanero DVK)) | ||||||
|  | $(eval $(call generate-ipq-wifi-package,aruba_ap-303,Aruba AP-303)) | ||||||
|  | $(eval $(call generate-ipq-wifi-package,avm_fritzrepeater-1200,AVM FRITZRepeater 1200)) | ||||||
|  | $(eval $(call generate-ipq-wifi-package,buffalo_wtr-m2133hp,Buffalo WTR-M2133HP)) | ||||||
|  | $(eval $(call generate-ipq-wifi-package,cellc_rtl30vw, Cell C RTL30VW)) | ||||||
|  | $(eval $(call generate-ipq-wifi-package,devolo_magic-2-wifi-next,devolo Magic 2 WiFi next)) | ||||||
|  | $(eval $(call generate-ipq-wifi-package,dlink_dap2610,D-Link DAP-2610)) | ||||||
|  | $(eval $(call generate-ipq-wifi-package,edgecore_ecw5410,Edgecore ECW5410)) | ||||||
|  | $(eval $(call generate-ipq-wifi-package,edgecore_ssw2ac2600,Edgecore SSW2AC2600)) | ||||||
|  | $(eval $(call generate-ipq-wifi-package,edgecore_oap100,Edgecore OAP100)) | ||||||
|  | $(eval $(call generate-ipq-wifi-package,engenius_eap2200,EnGenius EAP2200)) | ||||||
|  | $(eval $(call generate-ipq-wifi-package,engenius_emd1,EnGenius EMD1)) | ||||||
|  | $(eval $(call generate-ipq-wifi-package,engenius_emr3500,EnGenius EMR3500)) | ||||||
|  | $(eval $(call generate-ipq-wifi-package,ezviz_cs-w3-wd1200g-eup,EZVIZ CS-W3-WD1200G EUP)) | ||||||
|  | $(eval $(call generate-ipq-wifi-package,glinet_gl-ap1300,GL.iNet GL-AP1300)) | ||||||
|  | $(eval $(call generate-ipq-wifi-package,glinet_gl-s1300,GL.iNet GL-S1300)) | ||||||
|  | $(eval $(call generate-ipq-wifi-package,linksys_ea8300,Linksys EA8300)) | ||||||
|  | $(eval $(call generate-ipq-wifi-package,linksys_mr8300-v0,Linksys MR8300)) | ||||||
|  | $(eval $(call generate-ipq-wifi-package,luma_wrtq-329acn,Luma WRTQ-329ACN)) | ||||||
|  | $(eval $(call generate-ipq-wifi-package,mikrotik_hap-ac2,Mikrotik hAP ac2)) | ||||||
|  | $(eval $(call generate-ipq-wifi-package,mikrotik_sxtsq-5-ac,MikroTik SXTsq 5 ac)) | ||||||
|  | $(eval $(call generate-ipq-wifi-package,mobipromo_cm520-79f,MobiPromo CM520-79F)) | ||||||
|  | $(eval $(call generate-ipq-wifi-package,nec_wg2600hp3,NEC Platforms WG2600HP3)) | ||||||
|  | $(eval $(call generate-ipq-wifi-package,plasmacloud_pa1200,Plasma Cloud PA1200)) | ||||||
|  | $(eval $(call generate-ipq-wifi-package,plasmacloud_pa2200,Plasma Cloud PA2200)) | ||||||
|  | $(eval $(call generate-ipq-wifi-package,qxwlan_e2600ac,Qxwlan E2600AC)) | ||||||
|  | $(eval $(call generate-ipq-wifi-package,cig_wf610d,CIG WF_610D)) | ||||||
|  | $(eval $(call generate-ipq-wifi-package,tp-link_ec420-g1,tp-link EC420-G1)) | ||||||
|  | $(eval $(call generate-ipq-wifi-package,wallys_dr40x9,Wallys DR40X9)) | ||||||
|  | $(eval $(call generate-ipq-wifi-package,hfcl_ion4,HFCL ION4)) | ||||||
|  | $(eval $(call generate-ipq-wifi-package,udaya-a5-id2,udaya A5 ID2)) | ||||||
|  |  | ||||||
|  | $(foreach PACKAGE,$(ALLWIFIPACKAGES),$(eval $(call BuildPackage,$(PACKAGE)))) | ||||||
							
								
								
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-8dev_habanero-dvk.qca4019
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-8dev_habanero-dvk.qca4019
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-aruba_ap-303.qca4019
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-aruba_ap-303.qca4019
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-avm_fritzrepeater-1200.qca4019
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-avm_fritzrepeater-1200.qca4019
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-buffalo_wtr-m2133hp.qca4019
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-buffalo_wtr-m2133hp.qca4019
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-buffalo_wtr-m2133hp.qca9984
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-buffalo_wtr-m2133hp.qca9984
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-cellc_rtl30vw.qca4019
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-cellc_rtl30vw.qca4019
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-cig_wf610d.qca4019
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-cig_wf610d.qca4019
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-devolo_magic-2-wifi-next.qca4019
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-devolo_magic-2-wifi-next.qca4019
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-dlink_dap2610.qca4019
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-dlink_dap2610.qca4019
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-edgecore_ecw5410.qca9984
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-edgecore_ecw5410.qca9984
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-edgecore_oap100.qca4019
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-edgecore_oap100.qca4019
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-edgecore_ssw2ac2600.qca9984
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-edgecore_ssw2ac2600.qca9984
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-engenius_eap2200.qca4019
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-engenius_eap2200.qca4019
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-engenius_eap2200.qca9888
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-engenius_eap2200.qca9888
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-engenius_emd1.qca4019
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-engenius_emd1.qca4019
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-engenius_emr3500.qca4019
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-engenius_emr3500.qca4019
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-ezviz_cs-w3-wd1200g-eup.qca4019
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-ezviz_cs-w3-wd1200g-eup.qca4019
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-glinet_gl-ap1300.qca4019
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-glinet_gl-ap1300.qca4019
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-glinet_gl-s1300.qca4019
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-glinet_gl-s1300.qca4019
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-linksys_ea8300.qca4019
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-linksys_ea8300.qca4019
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-linksys_ea8300.qca9888
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-linksys_ea8300.qca9888
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-linksys_mr8300-v0.qca4019
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-linksys_mr8300-v0.qca4019
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-linksys_mr8300-v0.qca9888
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-linksys_mr8300-v0.qca9888
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-luma_wrtq-329acn.qca4019
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-luma_wrtq-329acn.qca4019
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-mikrotik_hap-ac2.qca4019
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-mikrotik_hap-ac2.qca4019
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-mikrotik_sxtsq-5-ac.qca4019
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-mikrotik_sxtsq-5-ac.qca4019
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-mobipromo_cm520-79f.qca4019
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-mobipromo_cm520-79f.qca4019
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-nec_wg2600hp3.qca9984
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-nec_wg2600hp3.qca9984
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-plasmacloud_pa1200.qca4019
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-plasmacloud_pa1200.qca4019
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-plasmacloud_pa2200.qca4019
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-plasmacloud_pa2200.qca4019
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-plasmacloud_pa2200.qca9888
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-plasmacloud_pa2200.qca9888
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-qxwlan_e2600ac.qca4019
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-qxwlan_e2600ac.qca4019
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-tp-link_ec420-g1.qca4019
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-tp-link_ec420-g1.qca4019
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-tp-link_ec420-g1.qca9984
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-tp-link_ec420-g1.qca9984
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-udaya-a5-id2.qca4019
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-udaya-a5-id2.qca4019
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-wallys_dr40x9.qca4019
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								feeds/ipq40xx/ipq-wifi/board-wallys_dr40x9.qca4019
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										25
									
								
								feeds/ipq40xx/ipq40xx/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								feeds/ipq40xx/ipq40xx/Makefile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,25 @@ | |||||||
|  | include $(TOPDIR)/rules.mk | ||||||
|  |  | ||||||
|  | ARCH:=arm | ||||||
|  | BOARD:=ipq40xx | ||||||
|  | BOARDNAME:=Qualcomm Atheros IPQ40XX | ||||||
|  | FEATURES:=squashfs fpu ramdisk nand | ||||||
|  | CPU_TYPE:=cortex-a7 | ||||||
|  | CPU_SUBTYPE:=neon-vfpv4 | ||||||
|  | SUBTARGETS:=generic mikrotik | ||||||
|  |  | ||||||
|  | KERNEL_PATCHVER:=5.4 | ||||||
|  | KERNEL_TESTING_PATCHVER:=5.4 | ||||||
|  | DEVICE_TYPE:=qsdk | ||||||
|  |  | ||||||
|  | KERNELNAME:=zImage Image dtbs | ||||||
|  |  | ||||||
|  | include $(INCLUDE_DIR)/target.mk | ||||||
|  | DEFAULT_PACKAGES += \ | ||||||
|  | 	kmod-usb-dwc3-qcom \ | ||||||
|  | 	kmod-leds-gpio kmod-gpio-button-hotplug swconfig \ | ||||||
|  | 	kmod-ath10k-ct wpad-basic-wolfssl \ | ||||||
|  | 	kmod-usb3 kmod-usb-dwc3 ath10k-firmware-qca4019-ct \ | ||||||
|  | 	uboot-envtools | ||||||
|  |  | ||||||
|  | $(eval $(call BuildTarget)) | ||||||
							
								
								
									
										91
									
								
								feeds/ipq40xx/ipq40xx/base-files/etc/board.d/01_leds
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										91
									
								
								feeds/ipq40xx/ipq40xx/base-files/etc/board.d/01_leds
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,91 @@ | |||||||
|  | #!/bin/sh | ||||||
|  | # | ||||||
|  | # Copyright (C) 2015 OpenWrt.org | ||||||
|  | # | ||||||
|  |  | ||||||
|  | . /lib/functions/uci-defaults.sh | ||||||
|  |  | ||||||
|  | board_config_update | ||||||
|  |  | ||||||
|  | board=$(board_name) | ||||||
|  |  | ||||||
|  | case "$board" in | ||||||
|  | alfa-network,ap120c-ac) | ||||||
|  | 	ucidef_set_led_netdev "wan" "WAN" "amber:wan" "eth1" | ||||||
|  | 	;; | ||||||
|  | asus,rt-ac58u) | ||||||
|  | 	ucidef_set_led_netdev "wan" "WAN" "blue:wan" "eth1" | ||||||
|  | 	ucidef_set_led_switch "lan" "LAN" "blue:lan" "switch0" "0x1e" | ||||||
|  | 	;; | ||||||
|  | avm,fritzbox-4040) | ||||||
|  | 	ucidef_set_led_wlan "wlan" "WLAN" "green:wlan" "phy0tpt" "phy1tpt" | ||||||
|  | 	ucidef_set_led_netdev "wan" "WAN" "green:wan" "eth1" | ||||||
|  | 	ucidef_set_led_switch "lan" "LAN" "green:lan" "switch0" "0x1e" | ||||||
|  | 	;; | ||||||
|  | avm,fritzbox-7530 |\ | ||||||
|  | glinet,gl-b1300) | ||||||
|  | 	ucidef_set_led_wlan "wlan" "WLAN" "green:wlan" "phy0tpt" | ||||||
|  | 	;; | ||||||
|  | edgecore,oap100 |\ | ||||||
|  | edgecore,oap100e) | ||||||
|  | 	ucidef_set_led_wlan "wlan2g" "WLAN2G" "blue:wlan2g" "phy0tpt" | ||||||
|  | 	ucidef_set_led_wlan "wlan5g" "WLAN5G" "blue:wlan5g" "phy1tpt" | ||||||
|  | 	;; | ||||||
|  |  | ||||||
|  | engenius,eap1300) | ||||||
|  | 	ucidef_set_led_netdev "lan" "LAN" "blue:lan" "eth0" | ||||||
|  | 	ucidef_set_led_wlan "wlan2g" "WLAN2G" "blue:wlan2g" "phy0tpt" | ||||||
|  | 	ucidef_set_led_wlan "wlan5g" "WLAN5G" "yellow:wlan5g" "phy1tpt" | ||||||
|  | 	ucidef_set_led_default "mesh" "MESH" "blue:mesh" "0" | ||||||
|  | 	;; | ||||||
|  | engenius,eap2200) | ||||||
|  | 	ucidef_set_led_netdev "lan1" "LAN1" "blue:lan1" "eth0" | ||||||
|  | 	ucidef_set_led_netdev "lan2" "LAN2" "blue:lan2" "eth1" | ||||||
|  | 	;; | ||||||
|  | engenius,ens620ext) | ||||||
|  | 	ucidef_set_led_wlan "wlan2g" "WLAN2G" "green:wlan2g" "phy0tpt" | ||||||
|  | 	ucidef_set_led_wlan "wlan5g" "WLAN5G" "green:wlan5g" "phy1tpt" | ||||||
|  | 	ucidef_set_led_netdev "lan1" "LAN1" "green:lan1" "eth0" | ||||||
|  | 	ucidef_set_led_netdev "lan2" "LAN2" "green:lan2" "eth1" | ||||||
|  | 	;; | ||||||
|  | mikrotik,sxtsq-5-ac) | ||||||
|  | 	ucidef_set_rssimon "wlan0" "200000" "1" | ||||||
|  | 	ucidef_set_led_rssi "rssilow" "rssilow" "green:rssilow" "wlan0" "1" "100" | ||||||
|  | 	ucidef_set_led_rssi "rssimediumlow" "rssimediumlow" "green:rssimediumlow" "wlan0" "21" "100" | ||||||
|  | 	ucidef_set_led_rssi "rssimedium" "rssimedium" "green:rssimedium" "wlan0" "41" "100" | ||||||
|  | 	ucidef_set_led_rssi "rssimediumhigh" "rssimediumhigh" "green:rssimediumhigh" "wlan0" "61" "100" | ||||||
|  | 	ucidef_set_led_rssi "rssihigh" "rssihigh" "green:rssihigh" "wlan0" "81" "100" | ||||||
|  | 	;; | ||||||
|  | mobipromo,cm520-79f) | ||||||
|  | 	ucidef_set_led_netdev "wan" "WAN" "blue:wan" "eth1" | ||||||
|  | 	ucidef_set_led_switch "lan1" "LAN1" "blue:lan1" "switch0" "0x10" | ||||||
|  | 	ucidef_set_led_switch "lan2" "LAN2" "blue:lan2" "switch0" "0x08" | ||||||
|  | 	;; | ||||||
|  | netgear,ex6100v2 |\ | ||||||
|  | netgear,ex6150v2) | ||||||
|  | 	ucidef_set_led_wlan "wlan2g" "WLAN2G" "green:router" "phy0tpt" | ||||||
|  | 	ucidef_set_led_wlan "wlan5g" "WLAN5G" "green:client" "phy1tpt" | ||||||
|  | 	;; | ||||||
|  | qxwlan,e2600ac-c1 |\ | ||||||
|  | qxwlan,e2600ac-c2) | ||||||
|  | 	ucidef_set_led_wlan "wlan2g" "WLAN0" "green:wlan0" "phy0tpt" | ||||||
|  | 	ucidef_set_led_wlan "wlan5g" "WLAN1" "green:wlan1" "phy1tpt" | ||||||
|  | 	;; | ||||||
|  | edgecore,ecw5211 |\ | ||||||
|  | edgecore,spw2ac1200 |\ | ||||||
|  | edgecore,spw2ac1200-lan-poe |\ | ||||||
|  | cig,wf610d |\ | ||||||
|  | zyxel,nbg6617 |\ | ||||||
|  | zyxel,wre6606) | ||||||
|  | 	ucidef_set_led_wlan "wlan2g" "WLAN2G" "green:wlan2g" "phy0tpt" | ||||||
|  | 	ucidef_set_led_wlan "wlan5g" "WLAN5G" "green:wlan5g" "phy1tpt" | ||||||
|  | 	;; | ||||||
|  | hfcl,ion4) | ||||||
|  | 	ucidef_set_led_wlan "wlan2g" "WLAN2G" "yellow:wlan2g" "phy0tpt" | ||||||
|  | 	ucidef_set_led_wlan "wlan5g" "WLAN5G" "red:wlan5g" "phy1tpt" | ||||||
|  | 	;; | ||||||
|  | esac | ||||||
|  |  | ||||||
|  | board_config_flush | ||||||
|  |  | ||||||
|  | exit 0 | ||||||
							
								
								
									
										211
									
								
								feeds/ipq40xx/ipq40xx/base-files/etc/board.d/02_network
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										211
									
								
								feeds/ipq40xx/ipq40xx/base-files/etc/board.d/02_network
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,211 @@ | |||||||
|  | #!/bin/sh | ||||||
|  | # | ||||||
|  | # Copyright (c) 2015 The Linux Foundation. All rights reserved. | ||||||
|  | # Copyright (c) 2011-2015 OpenWrt.org | ||||||
|  | # | ||||||
|  |  | ||||||
|  | . /lib/functions/uci-defaults.sh | ||||||
|  | . /lib/functions/system.sh | ||||||
|  |  | ||||||
|  | ipq40xx_setup_interfaces() | ||||||
|  | { | ||||||
|  | 	local board="$1" | ||||||
|  |  | ||||||
|  | 	case "$board" in | ||||||
|  | 	8dev,habanero-dvk|\ | ||||||
|  | 	8dev,jalapeno|\ | ||||||
|  | 	alfa-network,ap120c-ac|\ | ||||||
|  | 	edgecore,spw2ac1200-lan-poe |\ | ||||||
|  | 	engenius,emr3500|\ | ||||||
|  | 	engenius,ens620ext|\ | ||||||
|  | 	luma,wrtq-329acn|\ | ||||||
|  | 	plasmacloud,pa1200|\ | ||||||
|  | 	plasmacloud,pa2200|\ | ||||||
|  | 	wallys,dr40x9) | ||||||
|  | 		ucidef_set_interfaces_lan_wan "eth0" "eth1" | ||||||
|  | 		;; | ||||||
|  | 	aruba,ap-303|\ | ||||||
|  | 	aruba,ap-365|\ | ||||||
|  | 	avm,fritzrepeater-1200|\ | ||||||
|  | 	dlink,dap-2610 |\ | ||||||
|  | 	engenius,eap1300|\ | ||||||
|  | 	engenius,emd1|\ | ||||||
|  | 	meraki,mr33|\ | ||||||
|  | 	mikrotik,sxtsq-5-ac|\ | ||||||
|  | 	netgear,ex6100v2|\ | ||||||
|  | 	netgear,ex6150v2|\ | ||||||
|  | 	tp-link,ec420-g1|\ | ||||||
|  | 	hfcl,ion4|\ | ||||||
|  | 	zyxel,wre6606) | ||||||
|  | 		ucidef_set_interface_wan "eth0" | ||||||
|  | 		;; | ||||||
|  | 	aruba,ap-303h) | ||||||
|  | 		ucidef_set_interfaces_lan_wan "eth0" "eth1" | ||||||
|  | 		ucidef_add_switch "switch0" \ | ||||||
|  | 			"0u@eth0" "2:lan:1" "3:lan:2" "4:lan:3" "0u@eth1" "5:wan" | ||||||
|  | 		;; | ||||||
|  | 	asus,map-ac2200|\ | ||||||
|  | 	cilab,meshpoint-one|\ | ||||||
|  | 	cig,wf610d|\ | ||||||
|  | 	edgecore,ecw5211|\ | ||||||
|  | 	edgecore,spw2ac1200 |\ | ||||||
|  | 	edgecore,oap100|\ | ||||||
|  | 	edgecore,oap100e|\ | ||||||
|  | 	udaya,a5-id2|\ | ||||||
|  | 	openmesh,a42|\ | ||||||
|  | 	openmesh,a62) | ||||||
|  | 		ucidef_set_interfaces_lan_wan "eth1" "eth0" | ||||||
|  | 		;; | ||||||
|  | 	asus,rt-ac58u|\ | ||||||
|  | 	mikrotik,hap-ac2|\ | ||||||
|  | 	zyxel,nbg6617) | ||||||
|  | 		ucidef_set_interfaces_lan_wan "eth0" "eth1" | ||||||
|  | 		ucidef_add_switch "switch0" \ | ||||||
|  | 			"0u@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" | ||||||
|  | 		;; | ||||||
|  | 	avm,fritzbox-4040|\ | ||||||
|  | 	linksys,ea6350v3|\ | ||||||
|  | 	linksys,ea8300|\ | ||||||
|  | 	linksys,mr8300) | ||||||
|  | 		ucidef_set_interfaces_lan_wan "eth0" "eth1" | ||||||
|  | 		ucidef_add_switch "switch0" \ | ||||||
|  | 			"0u@eth0" "1:lan" "2:lan" "3:lan" "4:lan" | ||||||
|  | 		;; | ||||||
|  | 	avm,fritzbox-7530) | ||||||
|  | 		ucidef_add_switch "switch0" \ | ||||||
|  | 			"0u@eth0" "1:lan" "2:lan" "3:lan" "4:lan" | ||||||
|  | 		;; | ||||||
|  | 	avm,fritzrepeater-3000) | ||||||
|  | 		ucidef_add_switch "switch0" \ | ||||||
|  | 			"0u@eth0" "4:lan:1" "5:lan:2" | ||||||
|  | 		;; | ||||||
|  | 	compex,wpj419|\ | ||||||
|  | 	compex,wpj428|\ | ||||||
|  | 	engenius,eap2200) | ||||||
|  | 		ucidef_set_interface_lan "eth0 eth1" | ||||||
|  | 		;; | ||||||
|  | 	buffalo,wtr-m2133hp) | ||||||
|  | 		ucidef_set_interfaces_lan_wan "eth0" "eth1" | ||||||
|  | 		ucidef_add_switch "switch0" \ | ||||||
|  | 			"0u@eth0" "2:lan:3" "3:lan:2" "4:lan:1" | ||||||
|  | 		;; | ||||||
|  | 	cellc,rtl30vw) | ||||||
|  | 		ucidef_set_interface_lan "eth0" | ||||||
|  | 		ucidef_add_switch "switch0" \ | ||||||
|  | 			"0u@eth0" "3:lan" "4:lan" | ||||||
|  | 		;; | ||||||
|  | 	devolo,magic-2-wifi-next) | ||||||
|  | 		ucidef_set_interface_lan "eth0 eth1 eth2" | ||||||
|  | 		;; | ||||||
|  | 	ezviz,cs-w3-wd1200g-eup) | ||||||
|  | 		ucidef_set_interfaces_lan_wan "eth0" "eth1" | ||||||
|  | 		ucidef_add_switch "switch0" \ | ||||||
|  | 			"0u@eth0" "2:lan:3" "3:lan:2" "4:lan:1" "0u@eth1" "5:wan" | ||||||
|  | 		;; | ||||||
|  | 	glinet,gl-ap1300 |\ | ||||||
|  | 	glinet,gl-b1300 |\ | ||||||
|  | 	glinet,gl-s1300) | ||||||
|  | 		ucidef_set_interfaces_lan_wan "eth0" "eth1" | ||||||
|  | 		ucidef_add_switch "switch0" \ | ||||||
|  | 			"0u@eth0" "3:lan" "4:lan" | ||||||
|  | 		;; | ||||||
|  | 	mobipromo,cm520-79f) | ||||||
|  | 		ucidef_add_switch "switch0" \ | ||||||
|  | 			"0u@eth0" "3:lan:2" "4:lan:1" | ||||||
|  | 		ucidef_set_interface_wan "eth1" | ||||||
|  | 		;; | ||||||
|  | 	qxwlan,e2600ac-c1 |\ | ||||||
|  | 	qxwlan,e2600ac-c2) | ||||||
|  | 		ucidef_set_interfaces_lan_wan "eth0" "eth1" | ||||||
|  | 		ucidef_add_switch "switch0" \ | ||||||
|  | 			"0u@eth0" "3:lan" "4:lan" "0u@eth1" "5:wan" | ||||||
|  | 		;; | ||||||
|  | 	unielec,u4019-32m) | ||||||
|  | 		ucidef_set_interfaces_lan_wan "eth0" "eth1" | ||||||
|  | 		ucidef_add_switch "switch0" \ | ||||||
|  | 			"0u@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "0u@eth1" "5:wan" | ||||||
|  | 		;; | ||||||
|  | 	um-325ac |\ | ||||||
|  | 	um-510ac-v3 |\ | ||||||
|  | 	um-550ac)  | ||||||
|  | 		ucidef_set_interface_wan "eth0" | ||||||
|  | 		ucidef_set_interface_lan "eth1" | ||||||
|  | 		;; | ||||||
|  | 	*) | ||||||
|  | 		echo "Unsupported hardware. Network interfaces not initialized" | ||||||
|  | 		;; | ||||||
|  | 	esac | ||||||
|  | } | ||||||
|  |  | ||||||
|  | ipq40xx_setup_macs() | ||||||
|  | { | ||||||
|  | 	local board="$1" | ||||||
|  | 	local lan_mac="" | ||||||
|  | 	local wan_mac="" | ||||||
|  | 	local label_mac="" | ||||||
|  |  | ||||||
|  | 	case "$board" in | ||||||
|  | 	8dev,habanero-dvk) | ||||||
|  | 		label_mac=$(mtd_get_mac_binary "ART" 0x1006) | ||||||
|  | 		;; | ||||||
|  | 	asus,rt-ac58u) | ||||||
|  | 		CI_UBIPART=UBI_DEV | ||||||
|  | 		wan_mac=$(mtd_get_mac_binary_ubi Factory 0x1006) | ||||||
|  | 		lan_mac=$(mtd_get_mac_binary_ubi Factory 0x5006) | ||||||
|  | 		label_mac=$wan_mac | ||||||
|  | 		;; | ||||||
|  | 	cilab,meshpoint-one) | ||||||
|  | 		label_mac=$(mtd_get_mac_binary "ART" 0x1006) | ||||||
|  | 		;; | ||||||
|  | 	devolo,magic-2-wifi-next) | ||||||
|  | 		lan_mac=$(mtd_get_mac_ascii APPSBLENV MacAddress0) | ||||||
|  | 		label_mac=$lan_mac | ||||||
|  | 		;; | ||||||
|  | 	dlink,dap-2610) | ||||||
|  | 		lan_mac=$(mtd_get_mac_ascii bdcfg lanmac) | ||||||
|  | 		label_mac=$lan_mac | ||||||
|  | 		;; | ||||||
|  | 	engenius,eap2200|\ | ||||||
|  | 	engenius,emd1) | ||||||
|  | 		lan_mac=$(mtd_get_mac_ascii 0:APPSBLENV ethaddr) | ||||||
|  | 		label_mac=$lan_mac | ||||||
|  | 		;; | ||||||
|  | 	engenius,emr3500) | ||||||
|  | 		wan_mac=$(mtd_get_mac_ascii 0:APPSBLENV wanaddr) | ||||||
|  | 		lan_mac=$(mtd_get_mac_ascii 0:APPSBLENV ethaddr) | ||||||
|  | 		label_mac=$wan_mac | ||||||
|  | 		;; | ||||||
|  | 	engenius,ens620ext) | ||||||
|  | 		wan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr) | ||||||
|  | 		lan_mac=$(macaddr_add "$wan_mac" 1) | ||||||
|  | 		;; | ||||||
|  | 	ezviz,cs-w3-wd1200g-eup) | ||||||
|  | 		label_mac=$(mtd_get_mac_binary "ART" 0x6) | ||||||
|  | 		;; | ||||||
|  | 	linksys,ea6350v3) | ||||||
|  | 		wan_mac=$(mtd_get_mac_ascii devinfo hw_mac_addr) | ||||||
|  | 		lan_mac=$(macaddr_add "$wan_mac" 1) | ||||||
|  | 		;; | ||||||
|  | 	mikrotik,hap-ac2) | ||||||
|  | 		wan_mac=$(cat /sys/firmware/mikrotik/hard_config/mac_base) | ||||||
|  | 		lan_mac=$(macaddr_add $wan_mac 1) | ||||||
|  | 		label_mac="$wan_mac" | ||||||
|  | 		;; | ||||||
|  | 	mikrotik,sxtsq-5-ac) | ||||||
|  | 		lan_mac=$(cat /sys/firmware/mikrotik/hard_config/mac_base) | ||||||
|  | 		label_mac="$lan_mac" | ||||||
|  | 		;; | ||||||
|  | 	esac | ||||||
|  |  | ||||||
|  | 	[ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac | ||||||
|  | 	[ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" $wan_mac | ||||||
|  | 	[ -n "$label_mac" ] && ucidef_set_label_macaddr $label_mac | ||||||
|  | } | ||||||
|  |  | ||||||
|  | board_config_update | ||||||
|  | board=$(board_name) | ||||||
|  | ipq40xx_setup_interfaces $board | ||||||
|  | ipq40xx_setup_macs $board | ||||||
|  | board_config_flush | ||||||
|  |  | ||||||
|  | exit 0 | ||||||
							
								
								
									
										29
									
								
								feeds/ipq40xx/ipq40xx/base-files/etc/board.d/03_gpio_switches
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										29
									
								
								feeds/ipq40xx/ipq40xx/base-files/etc/board.d/03_gpio_switches
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,29 @@ | |||||||
|  | #!/bin/sh | ||||||
|  |  | ||||||
|  | . /lib/functions/uci-defaults.sh | ||||||
|  |  | ||||||
|  | board_config_update | ||||||
|  |  | ||||||
|  | board=$(board_name) | ||||||
|  |  | ||||||
|  | case "$board" in | ||||||
|  | cellc,rtl30vw) | ||||||
|  | 	ucidef_add_gpio_switch "w_disable" "W_DISABLE mPCIE pin" "398" "1" | ||||||
|  | 	ucidef_add_gpio_switch "pmd_resin_n" "PMD_RESIN_N pin" "399" "1" | ||||||
|  | 	ucidef_add_gpio_switch "mcpie_vcc" "LTE power" "400" "0" | ||||||
|  | 	ucidef_add_gpio_switch "usb_vcc" "USB power" "401" "0" | ||||||
|  | 	;; | ||||||
|  | cilab,meshpoint-one) | ||||||
|  | 	ucidef_add_gpio_switch "poe_passtrough" "POE passtrough enable" "413" "1" | ||||||
|  | 	;; | ||||||
|  | compex,wpj428) | ||||||
|  | 	ucidef_add_gpio_switch "sim_card_select" "SIM card select" "3" "0" | ||||||
|  | 	;; | ||||||
|  | wallys,dr40x9) | ||||||
|  | 	ucidef_add_gpio_switch "sim_card_select" "SIM card select" "423" "0" | ||||||
|  | 	;; | ||||||
|  | esac | ||||||
|  |  | ||||||
|  | board_config_flush | ||||||
|  |  | ||||||
|  | exit 0 | ||||||
| @@ -0,0 +1,315 @@ | |||||||
|  | #!/bin/sh | ||||||
|  |  | ||||||
|  | [ -e /lib/firmware/$FIRMWARE ] && exit 0 | ||||||
|  |  | ||||||
|  | . /lib/functions/caldata.sh | ||||||
|  |  | ||||||
|  | board=$(board_name) | ||||||
|  |  | ||||||
|  | case "$FIRMWARE" in | ||||||
|  | "ath10k/cal-pci-0000:01:00.0.bin") | ||||||
|  | 	case "$board" in | ||||||
|  | 	meraki,mr33) | ||||||
|  | 		caldata_extract_ubi "ART" 0x9000 0x844 | ||||||
|  | 		caldata_valid "4408" || caldata_extract "ART" 0x9000 0x844 | ||||||
|  | 		ath10k_patch_mac $(macaddr_add $(get_mac_binary "/sys/bus/i2c/devices/0-0050/eeprom" 0x66) +1) | ||||||
|  | 		;; | ||||||
|  | 	esac | ||||||
|  | 	;; | ||||||
|  | "ath10k/pre-cal-pci-0000:01:00.0.bin") | ||||||
|  | 	case "$board" in | ||||||
|  | 	asus,map-ac2200) | ||||||
|  | 		caldata_extract_ubi "Factory" 0x9000 0x2f20 | ||||||
|  | 		ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \ | ||||||
|  | 			/lib/firmware/ath10k/QCA9888/hw2.0/board.bin | ||||||
|  | 		;; | ||||||
|  | 	avm,fritzrepeater-3000) | ||||||
|  | 		/usr/bin/fritz_cal_extract -i 1 -s 0x3D000 -e 0x212 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \ | ||||||
|  | 		/usr/bin/fritz_cal_extract -i 1 -s 0x3C800 -e 0x212 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \ | ||||||
|  | 		/usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x212 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \ | ||||||
|  | 		/usr/bin/fritz_cal_extract -i 1 -s 0x3D000 -e 0x212 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") || \ | ||||||
|  | 		/usr/bin/fritz_cal_extract -i 1 -s 0x3C800 -e 0x212 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") || \ | ||||||
|  | 		/usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x212 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") | ||||||
|  | 		;; | ||||||
|  | 	buffalo,wtr-m2133hp) | ||||||
|  | 		caldata_extract "ART" 0x9000 0x2f20 | ||||||
|  | 		ath10k_patch_mac $(mtd_get_mac_binary ORGDATA 0x32) | ||||||
|  | 		;; | ||||||
|  | 	engenius,eap2200 |\ | ||||||
|  | 	openmesh,a62 |\ | ||||||
|  | 	plasmacloud,pa2200) | ||||||
|  | 		caldata_extract "0:ART" 0x9000 0x2f20 | ||||||
|  | 		;; | ||||||
|  | 	linksys,ea8300 |\ | ||||||
|  | 	linksys,mr8300) | ||||||
|  | 		caldata_extract "ART" 0x9000 0x2f20 | ||||||
|  | 		# OEM assigns 4 sequential MACs | ||||||
|  | 		ath10k_patch_mac $(macaddr_setbit_la $(macaddr_add "$(cat /sys/class/net/eth0/address)" 4)) | ||||||
|  | 		;; | ||||||
|  | 	tp-link,ec420-g1) | ||||||
|  | 		caldata_extract "0:ART" 0x9000 0x2f20 | ||||||
|  | 		;; | ||||||
|  | 	esac | ||||||
|  | 	;; | ||||||
|  | "ath10k/pre-cal-ahb-a000000.wifi.bin") | ||||||
|  | 	case "$board" in | ||||||
|  | 	8dev,habanero-dvk |\ | ||||||
|  | 	8dev,jalapeno |\ | ||||||
|  | 	alfa-network,ap120c-ac |\ | ||||||
|  | 	cilab,meshpoint-one |\ | ||||||
|  | 	ezviz,cs-w3-wd1200g-eup |\ | ||||||
|  | 	glinet,gl-ap1300 |\ | ||||||
|  | 	glinet,gl-b1300 |\ | ||||||
|  | 	glinet,gl-s1300 |\ | ||||||
|  | 	linksys,ea6350v3 |\ | ||||||
|  | 	mobipromo,cm520-79f |\ | ||||||
|  | 	udaya,a5-id2 |\ | ||||||
|  | 	qcom,ap-dk01.1-c1) | ||||||
|  | 		caldata_extract "ART" 0x1000 0x2f20 | ||||||
|  | 		;; | ||||||
|  | 	aruba,ap-303 |\ | ||||||
|  | 	aruba,ap-303h |\ | ||||||
|  | 	aruba,ap-365) | ||||||
|  | 		caldata_extract "ART" 0x1000 0x2f20 | ||||||
|  | 		ath10k_patch_mac $(mtd_get_mac_binary mfginfo 0x1D) | ||||||
|  | 		;; | ||||||
|  | 	asus,map-ac2200) | ||||||
|  | 		caldata_extract_ubi "Factory" 0x1000 0x2f20 | ||||||
|  | 		;; | ||||||
|  | 	asus,rt-ac58u) | ||||||
|  | 		CI_UBIPART=UBI_DEV | ||||||
|  | 		caldata_extract_ubi "Factory" 0x1000 0x2f20 | ||||||
|  | 		;; | ||||||
|  | 	avm,fritzbox-4040) | ||||||
|  | 		/usr/bin/fritz_cal_extract -i 1 -s 0x400 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader_config") | ||||||
|  | 		;; | ||||||
|  | 	avm,fritzbox-7530 |\ | ||||||
|  | 	avm,fritzrepeater-1200 |\ | ||||||
|  | 	avm,fritzrepeater-3000) | ||||||
|  | 		/usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \ | ||||||
|  | 		/usr/bin/fritz_cal_extract -i 1 -s 0x3C800 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \ | ||||||
|  | 		/usr/bin/fritz_cal_extract -i 1 -s 0x3D000 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \ | ||||||
|  | 		/usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") || \ | ||||||
|  | 		/usr/bin/fritz_cal_extract -i 1 -s 0x3C800 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") || \ | ||||||
|  | 		/usr/bin/fritz_cal_extract -i 1 -s 0x3D000 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") | ||||||
|  | 		;; | ||||||
|  | 	buffalo,wtr-m2133hp) | ||||||
|  | 		caldata_extract "ART" 0x1000 0x2f20 | ||||||
|  | 		ath10k_patch_mac $(mtd_get_mac_binary ORGDATA 0x26) | ||||||
|  | 		;; | ||||||
|  | 	cig,wf610d) | ||||||
|  | 		caldata_extract "0:ART" 0x1000 0x2f20 | ||||||
|  | 		ath10kcal_patch_mac_crc $(macaddr_add $(mtd_get_mac_ascii 0:APPSBLENV ethaddr) +2) | ||||||
|  | 		;; | ||||||
|  | 	cellc,rtl30vw |\ | ||||||
|  | 	compex,wpj419 |\ | ||||||
|  | 	compex,wpj428 |\ | ||||||
|  | 	edgecore,ecw5211 |\ | ||||||
|  | 	edgecore,spw2ac1200 |\ | ||||||
|  | 	edgecore,spw2ac1200-lan-poe |\ | ||||||
|  | 	edgecore,oap100 |\ | ||||||
|  | 	edgecore,oap100e |\ | ||||||
|  | 	engenius,eap1300 |\ | ||||||
|  | 	engenius,eap2200 |\ | ||||||
|  | 	luma,wrtq-329acn|\ | ||||||
|  | 	openmesh,a42 |\ | ||||||
|  | 	openmesh,a62 |\ | ||||||
|  | 	plasmacloud,pa1200 |\ | ||||||
|  | 	plasmacloud,pa2200 |\ | ||||||
|  | 	qxwlan,e2600ac-c1 |\ | ||||||
|  | 	qxwlan,e2600ac-c2 |\ | ||||||
|  | 	unielec,u4019-32m |\ | ||||||
|  | 	wallys,dr40x9) | ||||||
|  | 		caldata_extract "0:ART" 0x1000 0x2f20 | ||||||
|  | 		;; | ||||||
|  | 	devolo,magic-2-wifi-next) | ||||||
|  | 		caldata_extract "ART" 0x1000 0x2f20 | ||||||
|  | 		ath10k_patch_mac $(mtd_get_mac_ascii APPSBLENV WiFiMacAddress0) | ||||||
|  | 		;; | ||||||
|  | 	dlink,dap-2610) | ||||||
|  | 		caldata_extract "ART" 0x1000 0x2f20 | ||||||
|  | 		ath10k_patch_mac $(mtd_get_mac_ascii bdcfg wlanmac) | ||||||
|  | 		;; | ||||||
|  | 	engenius,emd1) | ||||||
|  | 		caldata_extract "0:ART" 0x1000 0x2f20 | ||||||
|  | 		ath10k_patch_mac $(mtd_get_mac_ascii 0:APPSBLENV wlanaddr) | ||||||
|  | 		;; | ||||||
|  | 	engenius,emr3500) | ||||||
|  | 		caldata_extract "0:ART" 0x1000 0x2f20 | ||||||
|  | 		ath10k_patch_mac $(mtd_get_mac_ascii 0:APPSBLENV ethaddr) | ||||||
|  | 		;; | ||||||
|  | 	engenius,ens620ext) | ||||||
|  | 		caldata_extract "ART" 0x1000 0x2f20 | ||||||
|  | 		ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii u-boot-env ethaddr) +2) | ||||||
|  | 		;; | ||||||
|  | 	linksys,ea8300 |\ | ||||||
|  | 	linksys,mr8300) | ||||||
|  | 		caldata_extract "ART" 0x1000 0x2f20 | ||||||
|  | 		ath10k_patch_mac $(macaddr_add "$(cat /sys/class/net/eth0/address)" 2) | ||||||
|  | 		;; | ||||||
|  | 	meraki,mr33) | ||||||
|  | 		caldata_extract_ubi "ART" 0x1000 0x2f20 | ||||||
|  | 		caldata_valid "202f" || caldata_extract "ART" 0x1000 0x2f20 | ||||||
|  | 		ath10k_patch_mac $(macaddr_add $(get_mac_binary "/sys/bus/i2c/devices/0-0050/eeprom" 0x66) +2) | ||||||
|  | 		;; | ||||||
|  | 	mikrotik,hap-ac2) | ||||||
|  | 		wlan_data="/sys/firmware/mikrotik/hard_config/wlan_data" | ||||||
|  | 		( [ -f "$wlan_data" ] && caldata_sysfsload_from_file "$wlan_data" 0x0 0x2f20 ) || \ | ||||||
|  | 		( [ -d "$wlan_data" ] && caldata_sysfsload_from_file "$wlan_data/data_0" 0x0 0x2f20 ) | ||||||
|  | 		;; | ||||||
|  | 	netgear,ex6100v2 |\ | ||||||
|  | 	netgear,ex6150v2) | ||||||
|  | 		caldata_extract "ART" 0x1000 0x2f20 | ||||||
|  | 		ath10k_patch_mac $(mtd_get_mac_binary dnidata 0x0) | ||||||
|  | 		;; | ||||||
|  | 	zyxel,nbg6617 |\ | ||||||
|  | 	zyxel,wre6606) | ||||||
|  | 		caldata_extract "ART" 0x1000 0x2f20 | ||||||
|  | 		ath10k_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) -2) | ||||||
|  | 		;; | ||||||
|  | 	tp-link,ec420-g1) | ||||||
|  | 		caldata_extract "0:ART" 0x1000 0x2f20 | ||||||
|  | 		;; | ||||||
|  | 	hfcl,ion4) | ||||||
|  | 		caldata_extract "0:ART" 4096 12064 | ||||||
|  | 		ath10k_patch_mac $(mtd_get_mac_ascii 0:ART WLAN0_BASEMAC) | ||||||
|  | 		;; | ||||||
|  | 	um-325ac |\ | ||||||
|  | 	um-510ac-v3 |\ | ||||||
|  | 	um-550ac)  | ||||||
|  | 		caldata_extract "ART" 0x1000 0x2f20 | ||||||
|  | 		;; | ||||||
|  | 	esac | ||||||
|  | 	;; | ||||||
|  | "ath10k/pre-cal-ahb-a800000.wifi.bin") | ||||||
|  | 	case "$board" in | ||||||
|  | 	8dev,habanero-dvk |\ | ||||||
|  | 	8dev,jalapeno |\ | ||||||
|  | 	alfa-network,ap120c-ac |\ | ||||||
|  | 	cilab,meshpoint-one |\ | ||||||
|  | 	ezviz,cs-w3-wd1200g-eup |\ | ||||||
|  | 	glinet,gl-ap1300 |\ | ||||||
|  | 	glinet,gl-b1300 |\ | ||||||
|  | 	glinet,gl-s1300 |\ | ||||||
|  | 	linksys,ea6350v3 |\ | ||||||
|  | 	mobipromo,cm520-79f |\ | ||||||
|  | 	udaya,a5-id2 |\ | ||||||
|  | 	qcom,ap-dk01.1-c1) | ||||||
|  | 		caldata_extract "ART" 0x5000 0x2f20 | ||||||
|  | 		;; | ||||||
|  | 	aruba,ap-303 |\ | ||||||
|  | 	aruba,ap-303h |\ | ||||||
|  | 	aruba,ap-365) | ||||||
|  | 		caldata_extract "ART" 0x5000 0x2f20 | ||||||
|  | 		ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary mfginfo 0x1D) +1) | ||||||
|  | 		;; | ||||||
|  | 	asus,map-ac2200) | ||||||
|  | 		caldata_extract_ubi "Factory" 0x5000 0x2f20 | ||||||
|  | 		;; | ||||||
|  | 	asus,rt-ac58u) | ||||||
|  | 		CI_UBIPART=UBI_DEV | ||||||
|  | 		caldata_extract_ubi "Factory" 0x5000 0x2f20 | ||||||
|  | 		;; | ||||||
|  | 	avm,fritzbox-4040) | ||||||
|  | 		/usr/bin/fritz_cal_extract -i 1 -s 0x400 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader_config") | ||||||
|  | 		;; | ||||||
|  | 	avm,fritzbox-7530 |\ | ||||||
|  | 	avm,fritzrepeater-1200 |\ | ||||||
|  | 	avm,fritzrepeater-3000) | ||||||
|  | 		/usr/bin/fritz_cal_extract -i 1 -s 0x3C800 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \ | ||||||
|  | 		/usr/bin/fritz_cal_extract -i 1 -s 0x3D000 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \ | ||||||
|  | 		/usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \ | ||||||
|  | 		/usr/bin/fritz_cal_extract -i 1 -s 0x3C800 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") || \ | ||||||
|  | 		/usr/bin/fritz_cal_extract -i 1 -s 0x3D000 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") || \ | ||||||
|  | 		/usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") | ||||||
|  | 		;; | ||||||
|  | 	buffalo,wtr-m2133hp) | ||||||
|  | 		caldata_extract "ART" 0x5000 0x2f20 | ||||||
|  | 		ath10k_patch_mac $(mtd_get_mac_binary ORGDATA 0x2c) | ||||||
|  | 		;; | ||||||
|  | 	cig,wf610d) | ||||||
|  | 		caldata_extract "0:ART" 0x5000 0x2f20 | ||||||
|  | 		ath10kcal_patch_mac_crc $(macaddr_add $(mtd_get_mac_ascii 0:APPSBLENV ethaddr) +3) | ||||||
|  | 		;; | ||||||
|  | 	cellc,rtl30vw |\ | ||||||
|  | 	compex,wpj419 |\ | ||||||
|  | 	compex,wpj428 |\ | ||||||
|  | 	edgecore,ecw5211 |\ | ||||||
|  | 	edgecore,spw2ac1200 |\ | ||||||
|  | 	edgecore,spw2ac1200-lan-poe |\ | ||||||
|  | 	edgecore,oap100 |\ | ||||||
|  | 	edgecore,oap100e |\ | ||||||
|  | 	engenius,eap1300 |\ | ||||||
|  | 	engenius,eap2200 |\ | ||||||
|  | 	luma,wrtq-329acn|\ | ||||||
|  | 	openmesh,a42 |\ | ||||||
|  | 	openmesh,a62 |\ | ||||||
|  | 	plasmacloud,pa1200 |\ | ||||||
|  | 	plasmacloud,pa2200 |\ | ||||||
|  | 	qxwlan,e2600ac-c1 |\ | ||||||
|  | 	qxwlan,e2600ac-c2 |\ | ||||||
|  | 	unielec,u4019-32m |\ | ||||||
|  | 	wallys,dr40x9) | ||||||
|  | 		caldata_extract "0:ART" 0x5000 0x2f20 | ||||||
|  | 		;; | ||||||
|  | 	devolo,magic-2-wifi-next) | ||||||
|  | 		caldata_extract "ART" 0x5000 0x2f20 | ||||||
|  | 		ath10k_patch_mac $(mtd_get_mac_ascii APPSBLENV WiFiMacAddress1) | ||||||
|  | 		;; | ||||||
|  | 	dlink,dap-2610) | ||||||
|  | 		caldata_extract "ART" 0x5000 0x2f20 | ||||||
|  | 		ath10k_patch_mac $(mtd_get_mac_ascii bdcfg wlanmac_a) | ||||||
|  | 		;; | ||||||
|  | 	engenius,emd1) | ||||||
|  | 		caldata_extract "0:ART" 0x5000 0x2f20 | ||||||
|  | 		ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii 0:APPSBLENV wlanaddr) +1) | ||||||
|  | 		;; | ||||||
|  | 	engenius,emr3500) | ||||||
|  | 		caldata_extract "0:ART" 0x5000 0x2f20 | ||||||
|  | 		ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii 0:APPSBLENV ethaddr) +1) | ||||||
|  | 		;; | ||||||
|  | 	engenius,ens620ext) | ||||||
|  | 		caldata_extract "ART" 0x5000 0x2f20 | ||||||
|  | 		ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii u-boot-env ethaddr) +3) | ||||||
|  | 		;; | ||||||
|  | 	linksys,ea8300 |\ | ||||||
|  | 	linksys,mr8300) | ||||||
|  | 		caldata_extract "ART" 0x5000 0x2f20 | ||||||
|  | 		ath10k_patch_mac $(macaddr_add "$(cat /sys/class/net/eth0/address)" 3) | ||||||
|  | 		;; | ||||||
|  | 	meraki,mr33) | ||||||
|  | 		caldata_extract_ubi "ART" 0x5000 0x2f20 | ||||||
|  | 		caldata_valid "202f" || caldata_extract "ART" 0x5000 0x2f20 | ||||||
|  | 		ath10k_patch_mac $(macaddr_add $(get_mac_binary "/sys/bus/i2c/devices/0-0050/eeprom" 0x66) +3) | ||||||
|  | 		;; | ||||||
|  | 	mikrotik,hap-ac2|\ | ||||||
|  | 	mikrotik,sxtsq-5-ac) | ||||||
|  | 		wlan_data="/sys/firmware/mikrotik/hard_config/wlan_data" | ||||||
|  | 		( [ -f "$wlan_data" ] && caldata_sysfsload_from_file "$wlan_data" 0x8000 0x2f20 ) || \ | ||||||
|  | 		( [ -d "$wlan_data" ] && caldata_sysfsload_from_file "$wlan_data/data_2" 0x0 0x2f20 ) | ||||||
|  | 		;; | ||||||
|  | 	netgear,ex6100v2 |\ | ||||||
|  | 	netgear,ex6150v2) | ||||||
|  | 		caldata_extract "ART" 0x5000 0x2f20 | ||||||
|  | 		ath10k_patch_mac $(mtd_get_mac_binary dnidata 0xc) | ||||||
|  | 		;; | ||||||
|  | 	zyxel,nbg6617 |\ | ||||||
|  | 	zyxel,wre6606) | ||||||
|  | 		caldata_extract "ART" 0x5000 0x2f20 | ||||||
|  | 		ath10k_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) -1) | ||||||
|  | 		;; | ||||||
|  | 	hfcl,ion4) | ||||||
|  | 		caldata_extract "0:ART" 20480 12064 | ||||||
|  | 		ath10k_patch_mac $(mtd_get_mac_ascii 0:ART WLAN1_BASEMAC) | ||||||
|  | 		;; | ||||||
|  | 	um-325ac |\ | ||||||
|  | 	um-510ac-v3 |\ | ||||||
|  | 	um-550ac)  | ||||||
|  | 		caldata_extract "ART" 0x5000 0x2f20 | ||||||
|  | 		;; | ||||||
|  | 	esac | ||||||
|  | 	;; | ||||||
|  | *) | ||||||
|  | 	exit 1 | ||||||
|  | 	;; | ||||||
|  | esac | ||||||
| @@ -0,0 +1,32 @@ | |||||||
|  | #!/bin/sh | ||||||
|  |  | ||||||
|  | [ -e /lib/firmware/$FIRMWARE ] && exit 0 | ||||||
|  |  | ||||||
|  |  | ||||||
|  | fwcfg_symlink() { | ||||||
|  | 	local chip=$1 | ||||||
|  | 	local path=$2 | ||||||
|  |  | ||||||
|  | 	ln -s /lib/firmware/ath10k/fwcfg-${chip}.txt /lib/firmware/${FIRMWARE} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | case "$FIRMWARE" in                                                          | ||||||
|  | ath10k/fwcfg-ahb-a000000.wifi.txt|\ | ||||||
|  | ath10k/fwcfg-ahb-a800000.wifi.txt) | ||||||
|  | 	fwcfg_symlink ipq4019 | ||||||
|  | 	 | ||||||
|  | 	;; | ||||||
|  | ath10k/fwcfg-pci-0000:01:00.0.txt) | ||||||
|  |         case "$(board_name)" in | ||||||
|  |         linksys,ea8300) | ||||||
|  |                 fwcfg_symlink qca9888 | ||||||
|  |                 ;; | ||||||
|  | 	tp-link,ap2220|\ | ||||||
|  | 	tp-link,ec420-g1) | ||||||
|  | 		fwcfg_symlink qca9984 | ||||||
|  | 		;; | ||||||
|  | 	esac | ||||||
|  | 	;; | ||||||
|  | esac | ||||||
|  |  | ||||||
|  | exit 0 | ||||||
| @@ -0,0 +1,67 @@ | |||||||
|  | #!/bin/sh | ||||||
|  | [ "$ACTION" = add ] || exit | ||||||
|  |  | ||||||
|  | NPROCS="$(grep -c "^processor.*:" /proc/cpuinfo)" | ||||||
|  | [ "$NPROCS" -gt 1 ] || exit | ||||||
|  |  | ||||||
|  | PROC_MASK="$(( (1 << $NPROCS) - 1 ))" | ||||||
|  |  | ||||||
|  | find_irq_cpu() { | ||||||
|  | 	local dev="$1" | ||||||
|  | 	local match="$(grep -m 1 "$dev\$" /proc/interrupts)" | ||||||
|  | 	local cpu=0 | ||||||
|  |  | ||||||
|  | 	[ -n "$match" ] && { | ||||||
|  | 		set -- $match | ||||||
|  | 		shift | ||||||
|  | 		for cur in `seq 1 $NPROCS`; do | ||||||
|  | 			[ "$1" -gt 0 ] && { | ||||||
|  | 				cpu=$(($cur - 1)) | ||||||
|  | 				break | ||||||
|  | 			} | ||||||
|  | 			shift | ||||||
|  | 		done | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	echo "$cpu" | ||||||
|  | } | ||||||
|  |  | ||||||
|  | set_hex_val() { | ||||||
|  | 	local file="$1" | ||||||
|  | 	local val="$2" | ||||||
|  | 	val="$(printf %x "$val")" | ||||||
|  | 	[ -n "$DEBUG" ] && echo "$file = $val" | ||||||
|  | 	echo "$val" > "$file" | ||||||
|  | } | ||||||
|  |  | ||||||
|  | default_ps="$(uci get "network.@globals[0].default_ps")" | ||||||
|  | [ -n "$default_ps" -a "$default_ps" != 1 ] && exit 0 | ||||||
|  |  | ||||||
|  | exec 512>/var/lock/smp_tune.lock | ||||||
|  | flock 512 || exit 1 | ||||||
|  |  | ||||||
|  | for dev in /sys/class/net/*; do | ||||||
|  | 	[ -d "$dev" ] || continue | ||||||
|  |  | ||||||
|  | 	# ignore virtual interfaces | ||||||
|  | 	[ -n "$(ls "${dev}/" | grep '^lower_')" ] && continue | ||||||
|  | 	[ -d "${dev}/device" ] || continue | ||||||
|  |  | ||||||
|  | 	device="$(readlink "${dev}/device")" | ||||||
|  | 	device="$(basename "$device")" | ||||||
|  | 	irq_cpu="$(find_irq_cpu "$device")" | ||||||
|  | 	irq_cpu_mask="$((1 << $irq_cpu))" | ||||||
|  |  | ||||||
|  | 	for q in ${dev}/queues/rx-*; do | ||||||
|  | 		set_hex_val "$q/rps_cpus" "$(($PROC_MASK & ~$irq_cpu_mask))" | ||||||
|  | 	done | ||||||
|  |  | ||||||
|  | 	ntxq="$(ls -d ${dev}/queues/tx-* | wc -l)" | ||||||
|  |  | ||||||
|  | 	idx=$(($irq_cpu + 1)) | ||||||
|  | 	for q in ${dev}/queues/tx-*; do | ||||||
|  | 		set_hex_val "$q/xps_cpus" "$((1 << $idx))" | ||||||
|  | 		let "idx = idx + 1" | ||||||
|  | 		[ "$idx" -ge "$NPROCS" ] && idx=0 | ||||||
|  | 	done | ||||||
|  | done | ||||||
							
								
								
									
										36
									
								
								feeds/ipq40xx/ipq40xx/base-files/etc/init.d/bootcount
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										36
									
								
								feeds/ipq40xx/ipq40xx/base-files/etc/init.d/bootcount
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,36 @@ | |||||||
|  | #!/bin/sh /etc/rc.common | ||||||
|  |  | ||||||
|  | START=99 | ||||||
|  |  | ||||||
|  | boot() { | ||||||
|  | 	case $(board_name) in | ||||||
|  | 	alfa-network,ap120c-ac) | ||||||
|  | 		[ -n "$(fw_printenv bootcount changed 2>/dev/null)" ] &&\ | ||||||
|  | 			echo -e "bootcount\nchanged\n" | /usr/sbin/fw_setenv -s - | ||||||
|  | 		;; | ||||||
|  | 	linksys,ea6350v3|\ | ||||||
|  | 	linksys,ea8300|\ | ||||||
|  | 	linksys,mr8300) | ||||||
|  | 		mtd resetbc s_env || true | ||||||
|  | 		;; | ||||||
|  | 	edgecore,ecw5211) | ||||||
|  | 		part="$(awk -F 'ubi.mtd=' '{printf $2}' /proc/cmdline | cut -d " " -f1)" | ||||||
|  | 		case "$part" in | ||||||
|  | 		rootfs1|\ | ||||||
|  | 		rootfs2) | ||||||
|  | 			avail=$(fw_printenv -n upgrade_available) | ||||||
|  | 			[ ${avail} -ne 1 ] && fw_setenv upgrade_available 1 | ||||||
|  | 			fw_setenv bootcount 0 | ||||||
|  | 			;; | ||||||
|  | 		esac | ||||||
|  | 		;; | ||||||
|  | 	edgecore,spw2ac1200|\ | ||||||
|  | 	edgecore,spw2ac1200-lan-poe) | ||||||
|  | 		avail=$(fw_printenv -n upgrade_available) | ||||||
|  | 		[ ${avail} -eq 0 ] || { | ||||||
|  | 			fw_setenv upgrade_available 0 | ||||||
|  | 			fw_setenv bootcount 0 | ||||||
|  | 		} | ||||||
|  | 		;; | ||||||
|  | 	esac | ||||||
|  | } | ||||||
							
								
								
									
										5
									
								
								feeds/ipq40xx/ipq40xx/base-files/etc/inittab
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								feeds/ipq40xx/ipq40xx/base-files/etc/inittab
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | # Copyright (c) 2013 The Linux Foundation. All rights reserved. | ||||||
|  | ::sysinit:/etc/init.d/rcS S boot | ||||||
|  | ::shutdown:/etc/init.d/rcS K shutdown | ||||||
|  | ttyMSM0::askfirst:/usr/libexec/login.sh | ||||||
|  | ttyMSM1::askfirst:/usr/libexec/login.sh | ||||||
| @@ -0,0 +1,19 @@ | |||||||
|  | . /lib/functions/migrations.sh | ||||||
|  |  | ||||||
|  | board=$(board_name) | ||||||
|  |  | ||||||
|  | case "$board" in | ||||||
|  | engenius,emr3500) | ||||||
|  | 	migrate_leds "emr3500:=" | ||||||
|  | 	;; | ||||||
|  | engenius,ens620ext|\ | ||||||
|  | zyxel,nbg6617) | ||||||
|  | 	migrate_leds ":wlan2G=:wlan2g" ":wlan5G=:wlan5g" | ||||||
|  | 	;; | ||||||
|  | esac | ||||||
|  |  | ||||||
|  | remove_devicename_leds | ||||||
|  |  | ||||||
|  | migrations_apply system | ||||||
|  |  | ||||||
|  | exit 0 | ||||||
| @@ -0,0 +1,15 @@ | |||||||
|  | vdevs = 8 | ||||||
|  | peers = 147 | ||||||
|  | active_peers = 147 | ||||||
|  | stations = 147 | ||||||
|  | rate_ctrl_objs = 7 | ||||||
|  | #regdom = 840 | ||||||
|  | #fwname = firmware-5-htt-mgt-b.bin | ||||||
|  | #fwver = 5 | ||||||
|  | nohwcrypt = 0 | ||||||
|  | ct_sta_mode = 0 | ||||||
|  | tx_desc = 2000 | ||||||
|  | #max_nss = 3 | ||||||
|  | tids = 450 | ||||||
|  | skid_limit = 360 | ||||||
|  | max_amsdus = 3  | ||||||
| @@ -0,0 +1,16 @@ | |||||||
|  | # 9888 chip | ||||||
|  | vdevs = 8 | ||||||
|  | peers = 202 | ||||||
|  | active_peers = 202 | ||||||
|  | stations = 202 | ||||||
|  | rate_ctrl_objs = 7 | ||||||
|  | #regdom = 840 | ||||||
|  | #fwname = firmware-5-htt-mgt-b.bin | ||||||
|  | #fwver = 5 | ||||||
|  | nohwcrypt = 0 | ||||||
|  | ct_sta_mode = 0 | ||||||
|  | tx_desc = 2200 | ||||||
|  | #max_nss = 3 | ||||||
|  | tids = 450 | ||||||
|  | skid_limit = 360 | ||||||
|  | max_amsdus = 3  | ||||||
| @@ -0,0 +1,16 @@ | |||||||
|  | # 9984 | ||||||
|  | vdevs = 8 | ||||||
|  | peers = 180 | ||||||
|  | active_peers = 180 | ||||||
|  | stations = 180 | ||||||
|  | rate_ctrl_objs = 7 | ||||||
|  | #regdom = 840 | ||||||
|  | #fwname = firmware-5-htt-mgt-b.bin | ||||||
|  | #fwver = 5 | ||||||
|  | nohwcrypt = 0 | ||||||
|  | ct_sta_mode = 0 | ||||||
|  | tx_desc = 2400 | ||||||
|  | #max_nss = 3 | ||||||
|  | tids = 450 | ||||||
|  | skid_limit = 360 | ||||||
|  | max_amsdus = 3  | ||||||
| @@ -0,0 +1,39 @@ | |||||||
|  | . /lib/functions.sh | ||||||
|  |  | ||||||
|  | preinit_set_mac_address() { | ||||||
|  | 	case $(board_name) in | ||||||
|  | 	asus,map-ac2200) | ||||||
|  | 		base_mac=$(mtd_get_mac_binary_ubi Factory 0x1006) | ||||||
|  | 		ip link set dev eth0 address $(macaddr_add "$base_mac" +1) | ||||||
|  | 		ip link set dev eth1 address $(macaddr_add "$base_mac" +3) | ||||||
|  | 		;; | ||||||
|  | 	cig,wf610d) | ||||||
|  | 		base_mac=$(mtd_get_mac_ascii 0:APPSBLENV ethaddr) | ||||||
|  | 		ip link set eth0 address "${base_mac}" | ||||||
|  | 		;; | ||||||
|  | 	ezviz,cs-w3-wd1200g-eup) | ||||||
|  | 		ip link set dev eth0 address $(mtd_get_mac_binary "ART" 0x6) | ||||||
|  | 		ip link set dev eth1 address $(mtd_get_mac_binary "ART" 0x0) | ||||||
|  | 		;; | ||||||
|  | 	engenius,eap2200) | ||||||
|  | 		base_mac=$(cat /sys/class/net/eth0/address) | ||||||
|  | 		ip link set dev eth1 address $(macaddr_add "${base_mac}" +1) | ||||||
|  | 		;; | ||||||
|  | 	linksys,ea8300|\ | ||||||
|  | 	linksys,mr8300) | ||||||
|  | 		base_mac=$(mtd_get_mac_ascii devinfo hw_mac_addr) | ||||||
|  | 		ip link set dev eth0 address "${base_mac}" | ||||||
|  | 		ip link set dev eth1 address $(macaddr_add "${base_mac}" 1) | ||||||
|  | 		;; | ||||||
|  | 	meraki,mr33) | ||||||
|  | 		mac_lan=$(get_mac_binary "/sys/bus/i2c/devices/0-0050/eeprom" 0x66) | ||||||
|  | 		[ -n "$mac_lan" ] && ip link set dev eth0 address "$mac_lan" | ||||||
|  | 		;; | ||||||
|  | 	zyxel,nbg6617) | ||||||
|  | 		base_mac=$(cat /sys/class/net/eth0/address) | ||||||
|  | 		ip link set dev eth0 address $(macaddr_add "$base_mac" +2) | ||||||
|  | 		ip link set dev eth1 address $(macaddr_add "$base_mac" +3) | ||||||
|  | 	esac | ||||||
|  | } | ||||||
|  |  | ||||||
|  | boot_hook_add preinit_main preinit_set_mac_address | ||||||
| @@ -0,0 +1,7 @@ | |||||||
|  | . /lib/functions.sh | ||||||
|  |  | ||||||
|  | preinit_set_threading() { | ||||||
|  | 	echo 1 > /sys/class/net/eth0/threaded | ||||||
|  | } | ||||||
|  |  | ||||||
|  | boot_hook_add preinit_main preinit_set_threading | ||||||
| @@ -0,0 +1,22 @@ | |||||||
|  | set_preinit_iface() { | ||||||
|  | 	. /lib/functions.sh | ||||||
|  |  | ||||||
|  | 	case $(board_name) in | ||||||
|  | 	aruba,ap-303| \ | ||||||
|  | 	asus,rt-ac58u| \ | ||||||
|  | 	avm,fritzbox-4040| \ | ||||||
|  | 	ezviz,cs-w3-wd1200g-eup| \ | ||||||
|  | 	glinet,gl-b1300| \ | ||||||
|  | 	linksys,ea8300| \ | ||||||
|  | 	linksys,mr8300| \ | ||||||
|  | 	meraki,mr33| \ | ||||||
|  | 	zyxel,nbg6617) | ||||||
|  | 		ifname=eth0 | ||||||
|  | 		;; | ||||||
|  | 	devolo,magic-2-wifi-next) | ||||||
|  | 		ifname=eth1 | ||||||
|  | 		;; | ||||||
|  | 	esac | ||||||
|  | } | ||||||
|  |  | ||||||
|  | boot_hook_add preinit_main set_preinit_iface | ||||||
							
								
								
									
										108
									
								
								feeds/ipq40xx/ipq40xx/base-files/lib/upgrade/dualboot_datachk.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										108
									
								
								feeds/ipq40xx/ipq40xx/base-files/lib/upgrade/dualboot_datachk.sh
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,108 @@ | |||||||
|  | # The U-Boot loader with the datachk patchset for dualbooting requires image | ||||||
|  | # sizes and checksums to be provided in the U-Boot environment. | ||||||
|  | # The devices come with 2 main partitions - while one is active | ||||||
|  | # sysupgrade will flash the other. The boot order is changed to boot the | ||||||
|  | # newly flashed partition. If the new partition can't be booted due to | ||||||
|  | # upgrade failures the previously used partition is loaded. | ||||||
|  |  | ||||||
|  | platform_do_upgrade_dualboot_datachk() { | ||||||
|  | 	local tar_file="$1" | ||||||
|  | 	local restore_backup | ||||||
|  | 	local primary_kernel_mtd | ||||||
|  |  | ||||||
|  | 	local setenv_script="/tmp/fw_env_upgrade" | ||||||
|  |  | ||||||
|  | 	local kernel_mtd="$(find_mtd_index $PART_NAME)" | ||||||
|  | 	local kernel_offset="$(cat /sys/class/mtd/mtd${kernel_mtd}/offset)" | ||||||
|  | 	local total_size="$(cat /sys/class/mtd/mtd${kernel_mtd}/size)" | ||||||
|  |  | ||||||
|  | 	# detect to which flash region the new image is written to. | ||||||
|  | 	# | ||||||
|  | 	# 1. check what is the mtd index for the first flash region on this | ||||||
|  | 	#    device | ||||||
|  | 	# 2. check if the target partition ("inactive") has the mtd index of | ||||||
|  | 	#    the first flash region | ||||||
|  | 	# | ||||||
|  | 	#    - when it is: the new bootseq will be 1,2 and the first region is | ||||||
|  | 	#      modified | ||||||
|  | 	#    - when it isnt: bootseq will be 2,1 and the second region is | ||||||
|  | 	#      modified | ||||||
|  | 	# | ||||||
|  | 	# The detection has to be done via the hardcoded mtd partition because | ||||||
|  | 	# the current boot might be done with the fallback region. Let us | ||||||
|  | 	# assume that the current bootseq is 1,2. The bootloader detected that | ||||||
|  | 	# the image in flash region 1 is corrupt and thus switches to flash | ||||||
|  | 	# region 2. The bootseq in the u-boot-env is now still the same and | ||||||
|  | 	# the sysupgrade code can now only rely on the actual mtd indexes and | ||||||
|  | 	# not the bootseq variable to detect the currently booted flash | ||||||
|  | 	# region/image. | ||||||
|  | 	# | ||||||
|  | 	# In the above example, an implementation which uses bootseq ("1,2") to | ||||||
|  | 	# detect the currently booted image would assume that region 1 is booted | ||||||
|  | 	# and then overwrite the variables for the wrong flash region (aka the | ||||||
|  | 	# one which isn't modified). This could result in a device which doesn't | ||||||
|  | 	# boot anymore to Linux until it was reflashed with ap51-flash. | ||||||
|  | 	local next_boot_part="1" | ||||||
|  | 	case "$(board_name)" in | ||||||
|  | 	plasmacloud,pa1200|\ | ||||||
|  | 	openmesh,a42) | ||||||
|  | 		primary_kernel_mtd=8 | ||||||
|  | 		;; | ||||||
|  | 	plasmacloud,pa2200|\ | ||||||
|  | 	openmesh,a62) | ||||||
|  | 		primary_kernel_mtd=10 | ||||||
|  | 		;; | ||||||
|  | 	*) | ||||||
|  | 		echo "failed to detect primary kernel mtd partition for board" | ||||||
|  | 		return 1 | ||||||
|  | 		;; | ||||||
|  | 	esac | ||||||
|  | 	[ "$kernel_mtd" = "$primary_kernel_mtd" ] || next_boot_part="2" | ||||||
|  |  | ||||||
|  | 	local board_dir=$(tar tf $tar_file | grep -m 1 '^sysupgrade-.*/$') | ||||||
|  | 	board_dir=${board_dir%/} | ||||||
|  |  | ||||||
|  | 	local kernel_length=$(tar xf $tar_file ${board_dir}/kernel -O | wc -c) | ||||||
|  | 	local rootfs_length=$(tar xf $tar_file ${board_dir}/root -O | wc -c) | ||||||
|  | 	# rootfs without EOF marker | ||||||
|  | 	rootfs_length=$((rootfs_length-4)) | ||||||
|  |  | ||||||
|  | 	local kernel_md5=$(tar xf $tar_file ${board_dir}/kernel -O | md5sum); kernel_md5="${kernel_md5%% *}" | ||||||
|  | 	# md5 checksum of rootfs with EOF marker | ||||||
|  | 	local rootfs_md5=$(tar xf $tar_file ${board_dir}/root -O | dd bs=1 count=$rootfs_length | md5sum); rootfs_md5="${rootfs_md5%% *}" | ||||||
|  |  | ||||||
|  | 	# | ||||||
|  | 	# add tar support to get_image() to use default_do_upgrade() instead? | ||||||
|  | 	# | ||||||
|  |  | ||||||
|  | 	# take care of restoring a saved config | ||||||
|  | 	[ -n "$UPGRADE_BACKUP" ] && restore_backup="${MTD_CONFIG_ARGS} -j ${UPGRADE_BACKUP}" | ||||||
|  |  | ||||||
|  | 	mtd -q erase inactive | ||||||
|  | 	tar xf $tar_file ${board_dir}/root -O | mtd -n -p $kernel_length $restore_backup write - $PART_NAME | ||||||
|  | 	tar xf $tar_file ${board_dir}/kernel -O | mtd -n write - $PART_NAME | ||||||
|  |  | ||||||
|  | 	# prepare new u-boot env | ||||||
|  | 	if [ "$next_boot_part" = "1" ]; then | ||||||
|  | 		echo "bootseq 1,2" > $setenv_script | ||||||
|  | 	else | ||||||
|  | 		echo "bootseq 2,1" > $setenv_script | ||||||
|  | 	fi | ||||||
|  |  | ||||||
|  | 	printf "kernel_size_%i 0x%08x\n" $next_boot_part $kernel_length >> $setenv_script | ||||||
|  | 	printf "vmlinux_start_addr 0x%08x\n" ${kernel_offset} >> $setenv_script | ||||||
|  | 	printf "vmlinux_size 0x%08x\n" ${kernel_length} >> $setenv_script | ||||||
|  | 	printf "vmlinux_checksum %s\n" ${kernel_md5} >> $setenv_script | ||||||
|  |  | ||||||
|  | 	printf "rootfs_size_%i 0x%08x\n" $next_boot_part $((total_size-kernel_length)) >> $setenv_script | ||||||
|  | 	printf "rootfs_start_addr 0x%08x\n" $((kernel_offset+kernel_length)) >> $setenv_script | ||||||
|  | 	printf "rootfs_size 0x%08x\n" ${rootfs_length} >> $setenv_script | ||||||
|  | 	printf "rootfs_checksum %s\n" ${rootfs_md5} >> $setenv_script | ||||||
|  |  | ||||||
|  | 	# store u-boot env changes | ||||||
|  | 	mkdir -p /var/lock | ||||||
|  | 	fw_setenv -s $setenv_script || { | ||||||
|  | 		echo "failed to update U-Boot environment" | ||||||
|  | 		return 1 | ||||||
|  | 	} | ||||||
|  | } | ||||||
							
								
								
									
										122
									
								
								feeds/ipq40xx/ipq40xx/base-files/lib/upgrade/linksys.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										122
									
								
								feeds/ipq40xx/ipq40xx/base-files/lib/upgrade/linksys.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,122 @@ | |||||||
|  | linksys_get_target_firmware() { | ||||||
|  | 	local cur_boot_part mtd_ubi0 | ||||||
|  |  | ||||||
|  | 	cur_boot_part="$(/usr/sbin/fw_printenv -n boot_part)" | ||||||
|  | 	if [ -z "${cur_boot_part}" ]; then | ||||||
|  | 		mtd_ubi0=$(cat /sys/devices/virtual/ubi/ubi0/mtd_num) | ||||||
|  | 		case "$(grep -E "^mtd${mtd_ubi0}:" /proc/mtd | cut -d '"' -f 2)" in | ||||||
|  | 		kernel|rootfs) | ||||||
|  | 			cur_boot_part=1 | ||||||
|  | 			;; | ||||||
|  | 		alt_kernel|alt_rootfs) | ||||||
|  | 			cur_boot_part=2 | ||||||
|  | 			;; | ||||||
|  | 		esac | ||||||
|  | 		>&2 printf "Current boot_part='%s' selected from ubi0/mtd_num='%s'" \ | ||||||
|  | 			"${cur_boot_part}" "${mtd_ubi0}" | ||||||
|  | 	fi | ||||||
|  |  | ||||||
|  | 	# OEM U-Boot for EA6350v3, EA8300 and MR8300; bootcmd= | ||||||
|  | 	#  if test $auto_recovery = no; | ||||||
|  | 	#      then bootipq; | ||||||
|  | 	#  elif test $boot_part = 1; | ||||||
|  | 	#      then run bootpart1; | ||||||
|  | 	#      else run bootpart2; | ||||||
|  | 	#  fi | ||||||
|  |  | ||||||
|  | 	case "$cur_boot_part" in | ||||||
|  | 	1) | ||||||
|  | 		fw_setenv -s - <<-EOF | ||||||
|  | 			boot_part 2 | ||||||
|  | 			auto_recovery yes | ||||||
|  | 		EOF | ||||||
|  | 		printf "alt_kernel" | ||||||
|  | 		return | ||||||
|  | 		;; | ||||||
|  | 	2) | ||||||
|  | 		fw_setenv -s - <<-EOF | ||||||
|  | 			boot_part 1 | ||||||
|  | 			auto_recovery yes | ||||||
|  | 		EOF | ||||||
|  | 		printf "kernel" | ||||||
|  | 		return | ||||||
|  | 		;; | ||||||
|  | 	*) | ||||||
|  | 		return | ||||||
|  | 		;; | ||||||
|  | 	esac | ||||||
|  | } | ||||||
|  |  | ||||||
|  | linksys_get_root_magic() { | ||||||
|  | 	(get_image "$@" | dd skip=786432 bs=4 count=1 | hexdump -v -n 4 -e '1/1 "%02x"') 2>/dev/null | ||||||
|  | } | ||||||
|  |  | ||||||
|  | platform_do_upgrade_linksys() { | ||||||
|  | 	local magic_long="$(get_magic_long "$1")" | ||||||
|  |  | ||||||
|  | 	local rm_oem_fw_vols="squashfs ubifs"	# from OEM [alt_]rootfs UBI | ||||||
|  | 	local vol | ||||||
|  |  | ||||||
|  | 	mkdir -p /var/lock | ||||||
|  | 	local part_label="$(linksys_get_target_firmware)" | ||||||
|  | 	touch /var/lock/fw_printenv.lock | ||||||
|  |  | ||||||
|  | 	if [ -z "$part_label" ]; then | ||||||
|  | 		echo "cannot find target partition" | ||||||
|  | 		exit 1 | ||||||
|  | 	fi | ||||||
|  |  | ||||||
|  | 	local target_mtd=$(find_mtd_part "$part_label") | ||||||
|  |  | ||||||
|  | 	[ "$magic_long" = "73797375" ] && { | ||||||
|  | 		CI_KERNPART="$part_label" | ||||||
|  | 		if [ "$part_label" = "kernel" ]; then | ||||||
|  | 			CI_UBIPART="rootfs" | ||||||
|  | 		else | ||||||
|  | 			CI_UBIPART="alt_rootfs" | ||||||
|  | 		fi | ||||||
|  |  | ||||||
|  | 		local mtdnum="$(find_mtd_index "$CI_UBIPART")" | ||||||
|  | 		if [ ! "$mtdnum" ]; then | ||||||
|  | 			echo "cannot find ubi mtd partition $CI_UBIPART" | ||||||
|  | 			return 1 | ||||||
|  | 		fi | ||||||
|  |  | ||||||
|  | 		local ubidev="$(nand_find_ubi "$CI_UBIPART")" | ||||||
|  | 		if [ ! "$ubidev" ]; then | ||||||
|  | 			ubiattach -m "$mtdnum" | ||||||
|  | 			sync | ||||||
|  | 			ubidev="$(nand_find_ubi "$CI_UBIPART")" | ||||||
|  | 		fi | ||||||
|  |  | ||||||
|  | 		if [ "$ubidev" ]; then | ||||||
|  | 			for vol in $rm_oem_fw_vols; do | ||||||
|  | 				ubirmvol "/dev/$ubidev" -N "$vol" 2>/dev/null | ||||||
|  | 			done | ||||||
|  | 		fi | ||||||
|  |  | ||||||
|  | 		# complete std upgrade | ||||||
|  | 		nand_upgrade_tar "$1" | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	[ "$magic_long" = "27051956" ] && { | ||||||
|  | 		# This magic is for a uImage (which is a sysupgrade image) | ||||||
|  | 		# check firmwares' rootfs types | ||||||
|  | 		local oldroot="$(linksys_get_root_magic "$target_mtd")" | ||||||
|  | 		local newroot="$(linksys_get_root_magic "$1")" | ||||||
|  |  | ||||||
|  | 		if [ "$newroot" = "55424923" ] && [ "$oldroot" = "55424923" ]; then | ||||||
|  | 			# we're upgrading from a firmware with UBI to one with UBI | ||||||
|  | 			# erase everything to be safe | ||||||
|  | 			# - Is that really needed? Won't remove (or comment) the if, | ||||||
|  | 			#   because it may be needed in a future device. | ||||||
|  | 			#mtd erase $part_label | ||||||
|  | 			#get_image "$1" | mtd -n write - $part_label | ||||||
|  | 			echo "writing \"$1\" UBI image to \"$part_label\" (UBI)..." | ||||||
|  | 			get_image "$1" | mtd write - "$part_label" | ||||||
|  | 		else | ||||||
|  | 			echo "writing \"$1\" image to \"$part_label\"" | ||||||
|  | 			get_image "$1" | mtd write - "$part_label" | ||||||
|  | 		fi | ||||||
|  | 	} | ||||||
|  | } | ||||||
							
								
								
									
										160
									
								
								feeds/ipq40xx/ipq40xx/base-files/lib/upgrade/platform.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										160
									
								
								feeds/ipq40xx/ipq40xx/base-files/lib/upgrade/platform.sh
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,160 @@ | |||||||
|  | PART_NAME=firmware | ||||||
|  | REQUIRE_IMAGE_METADATA=1 | ||||||
|  |  | ||||||
|  | RAMFS_COPY_BIN='fw_printenv fw_setenv' | ||||||
|  | RAMFS_COPY_DATA='/etc/fw_env.config /var/lock/fw_printenv.lock' | ||||||
|  |  | ||||||
|  | platform_check_image() { | ||||||
|  | 	case "$(board_name)" in | ||||||
|  | 	asus,rt-ac58u) | ||||||
|  | 		CI_UBIPART="UBI_DEV" | ||||||
|  | 		local ubidev=$(nand_find_ubi $CI_UBIPART) | ||||||
|  | 		local asus_root=$(nand_find_volume $ubidev jffs2) | ||||||
|  |  | ||||||
|  | 		[ -n "$asus_root" ] || return 0 | ||||||
|  |  | ||||||
|  | 		cat << EOF | ||||||
|  | jffs2 partition is still present. | ||||||
|  | There's probably no space left | ||||||
|  | to install the filesystem. | ||||||
|  |  | ||||||
|  | You need to delete the jffs2 partition first: | ||||||
|  | # ubirmvol /dev/ubi0 --name=jffs2 | ||||||
|  |  | ||||||
|  | Once this is done. Retry. | ||||||
|  | EOF | ||||||
|  | 		return 1 | ||||||
|  | 		;; | ||||||
|  | 	esac | ||||||
|  | 	return 0; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | askey_do_upgrade() { | ||||||
|  | 	local tar_file="$1" | ||||||
|  |  | ||||||
|  | 	local board_dir=$(tar tf $tar_file | grep -m 1 '^sysupgrade-.*/$') | ||||||
|  | 	board_dir=${board_dir%/} | ||||||
|  |  | ||||||
|  | 	tar Oxf $tar_file ${board_dir}/root | mtd write - rootfs | ||||||
|  |  | ||||||
|  | 	nand_do_upgrade "$1" | ||||||
|  | } | ||||||
|  |  | ||||||
|  | zyxel_do_upgrade() { | ||||||
|  | 	local tar_file="$1" | ||||||
|  |  | ||||||
|  | 	local board_dir=$(tar tf $tar_file | grep -m 1 '^sysupgrade-.*/$') | ||||||
|  | 	board_dir=${board_dir%/} | ||||||
|  |  | ||||||
|  | 	tar Oxf $tar_file ${board_dir}/kernel | mtd write - kernel | ||||||
|  |  | ||||||
|  | 	if [ -n "$UPGRADE_BACKUP" ]; then | ||||||
|  | 		tar Oxf $tar_file ${board_dir}/root | mtd -j "$UPGRADE_BACKUP" write - rootfs | ||||||
|  | 	else | ||||||
|  | 		tar Oxf $tar_file ${board_dir}/root | mtd write - rootfs | ||||||
|  | 	fi | ||||||
|  | } | ||||||
|  |  | ||||||
|  | platform_do_upgrade() { | ||||||
|  | 	case "$(board_name)" in | ||||||
|  | 	8dev,jalapeno |\ | ||||||
|  | 	aruba,ap-303 |\ | ||||||
|  | 	aruba,ap-303h |\ | ||||||
|  | 	aruba,ap-365 |\ | ||||||
|  | 	avm,fritzbox-7530 |\ | ||||||
|  | 	avm,fritzrepeater-1200 |\ | ||||||
|  | 	avm,fritzrepeater-3000 |\ | ||||||
|  | 	buffalo,wtr-m2133hp |\ | ||||||
|  | 	cilab,meshpoint-one |\ | ||||||
|  | 	edgecore,oap100 |\ | ||||||
|  | 	edgecore,oap100e |\ | ||||||
|  | 	engenius,eap2200 |\ | ||||||
|  | 	glinet,gl-ap1300 |\ | ||||||
|  | 	luma,wrtq-329acn |\ | ||||||
|  | 	mobipromo,cm520-79f |\ | ||||||
|  | 	qxwlan,e2600ac-c2 |\ | ||||||
|  | 	wallys,dr40x9 |\ | ||||||
|  | 	hfcl,ion4 |\ | ||||||
|  | 	tp-link,ec420-g1) | ||||||
|  | 		nand_do_upgrade "$1" | ||||||
|  | 		;; | ||||||
|  | 	edgecore,ecw5211) | ||||||
|  | 		mkdir -p /var/lock/ | ||||||
|  | 		part="$(awk -F 'ubi.mtd=' '{printf $2}' /proc/cmdline | cut -d " " -f 1)" | ||||||
|  | 		case "$part" in | ||||||
|  | 		rootfs1) | ||||||
|  | 			CI_UBIPART="rootfs2" | ||||||
|  | 			CI_FWSETENV="active 2" | ||||||
|  | 			;; | ||||||
|  | 		rootfs2) | ||||||
|  | 			CI_UBIPART="rootfs1" | ||||||
|  | 			CI_FWSETENV="active 1" | ||||||
|  | 			;; | ||||||
|  | 		*) | ||||||
|  | 			# legacy bootloader | ||||||
|  | 			;; | ||||||
|  | 		esac | ||||||
|  | 		nand_do_upgrade "$1" | ||||||
|  | 		;; | ||||||
|  | 	alfa-network,ap120c-ac) | ||||||
|  | 		mkdir -p /var/lock/ | ||||||
|  | 		part="$(awk -F 'ubi.mtd=' '{printf $2}' /proc/cmdline | sed -e 's/ .*$//')" | ||||||
|  | 		if [ "$part" = "rootfs1" ]; then | ||||||
|  | 			fw_setenv active 2 || exit 1 | ||||||
|  | 			CI_UBIPART="rootfs2" | ||||||
|  | 		else | ||||||
|  | 			fw_setenv active 1 || exit 1 | ||||||
|  | 			CI_UBIPART="rootfs1" | ||||||
|  | 		fi | ||||||
|  | 		nand_do_upgrade "$1" | ||||||
|  | 		;; | ||||||
|  | 	edgecore,spw2ac1200|\ | ||||||
|  | 	edgecore,spw2ac1200-lan-poe) | ||||||
|  | 		CI_UBIPART="$(awk -F 'ubi.mtd=' '{printf $2}' /proc/cmdline | sed -e 's/ .*$//')" | ||||||
|  | 		nand_do_upgrade "$1" | ||||||
|  | 		;; | ||||||
|  | 	asus,map-ac2200) | ||||||
|  | 		CI_KERNPART="linux" | ||||||
|  | 		nand_do_upgrade "$1" | ||||||
|  | 		;; | ||||||
|  | 	asus,rt-ac58u) | ||||||
|  | 		CI_UBIPART="UBI_DEV" | ||||||
|  | 		CI_KERNPART="linux" | ||||||
|  | 		nand_do_upgrade "$1" | ||||||
|  | 		;; | ||||||
|  | 	cellc,rtl30vw) | ||||||
|  | 		CI_UBIPART="ubifs" | ||||||
|  | 		askey_do_upgrade "$1" | ||||||
|  | 		;; | ||||||
|  | 	compex,wpj419) | ||||||
|  | 		nand_do_upgrade "$1" | ||||||
|  | 		;; | ||||||
|  | 	linksys,ea6350v3 |\ | ||||||
|  | 	linksys,ea8300 |\ | ||||||
|  | 	linksys,mr8300) | ||||||
|  | 		platform_do_upgrade_linksys "$1" | ||||||
|  | 		;; | ||||||
|  | 	meraki,mr33) | ||||||
|  | 		CI_KERNPART="part.safe" | ||||||
|  | 		nand_do_upgrade "$1" | ||||||
|  | 		;; | ||||||
|  | 	mikrotik,hap-ac2|\ | ||||||
|  | 	mikrotik,sxtsq-5-ac) | ||||||
|  | 		[ "$(rootfs_type)" = "tmpfs" ] && mtd erase firmware | ||||||
|  | 		default_do_upgrade "$1" | ||||||
|  | 		;; | ||||||
|  | 	openmesh,a42 |\ | ||||||
|  | 	openmesh,a62 |\ | ||||||
|  | 	plasmacloud,pa1200 |\ | ||||||
|  | 	plasmacloud,pa2200) | ||||||
|  | 		PART_NAME="inactive" | ||||||
|  | 		platform_do_upgrade_dualboot_datachk "$1" | ||||||
|  | 		;; | ||||||
|  | 	zyxel,nbg6617) | ||||||
|  | 		zyxel_do_upgrade "$1" | ||||||
|  | 		;; | ||||||
|  | 	*) | ||||||
|  | 		default_do_upgrade "$1" | ||||||
|  | 		;; | ||||||
|  | 	esac | ||||||
|  | } | ||||||
							
								
								
									
										470
									
								
								feeds/ipq40xx/ipq40xx/config-5.4
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										470
									
								
								feeds/ipq40xx/ipq40xx/config-5.4
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,470 @@ | |||||||
|  | CONFIG_ALIGNMENT_TRAP=y | ||||||
|  | # CONFIG_APQ_GCC_8084 is not set | ||||||
|  | # CONFIG_APQ_MMCC_8084 is not set | ||||||
|  | CONFIG_AR40XX_PHY=y | ||||||
|  | CONFIG_ARCH_32BIT_OFF_T=y | ||||||
|  | CONFIG_ARCH_CLOCKSOURCE_DATA=y | ||||||
|  | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||||||
|  | CONFIG_ARCH_IPQ40XX=y | ||||||
|  | CONFIG_ARCH_KEEP_MEMBLOCK=y | ||||||
|  | # CONFIG_ARCH_MDM9615 is not set | ||||||
|  | CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y | ||||||
|  | # CONFIG_ARCH_MSM8960 is not set | ||||||
|  | # CONFIG_ARCH_MSM8974 is not set | ||||||
|  | # CONFIG_ARCH_MSM8X60 is not set | ||||||
|  | CONFIG_ARCH_MULTIPLATFORM=y | ||||||
|  | CONFIG_ARCH_MULTI_V6_V7=y | ||||||
|  | CONFIG_ARCH_MULTI_V7=y | ||||||
|  | CONFIG_ARCH_NR_GPIO=0 | ||||||
|  | CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y | ||||||
|  | CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y | ||||||
|  | CONFIG_ARCH_QCOM=y | ||||||
|  | CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||||||
|  | CONFIG_ARM=y | ||||||
|  | CONFIG_ARM_AMBA=y | ||||||
|  | CONFIG_ARM_APPENDED_DTB=y | ||||||
|  | CONFIG_ARM_ARCH_TIMER=y | ||||||
|  | CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y | ||||||
|  | # CONFIG_ARM_ATAG_DTB_COMPAT is not set | ||||||
|  | CONFIG_ARM_CPUIDLE=y | ||||||
|  | CONFIG_ARM_CPU_SUSPEND=y | ||||||
|  | # CONFIG_ARM_CPU_TOPOLOGY is not set | ||||||
|  | CONFIG_ARM_CRYPTO=y | ||||||
|  | CONFIG_ARM_GIC=y | ||||||
|  | CONFIG_ARM_HAS_SG_CHAIN=y | ||||||
|  | CONFIG_ARM_L1_CACHE_SHIFT=6 | ||||||
|  | CONFIG_ARM_L1_CACHE_SHIFT_6=y | ||||||
|  | CONFIG_ARM_PATCH_IDIV=y | ||||||
|  | CONFIG_ARM_PATCH_PHYS_VIRT=y | ||||||
|  | # CONFIG_ARM_QCOM_CPUFREQ_HW is not set | ||||||
|  | # CONFIG_ARM_SMMU is not set | ||||||
|  | CONFIG_ARM_THUMB=y | ||||||
|  | CONFIG_ARM_UNWIND=y | ||||||
|  | CONFIG_ARM_VIRT_EXT=y | ||||||
|  | CONFIG_AT803X_PHY=y | ||||||
|  | CONFIG_AUTO_ZRELADDR=y | ||||||
|  | CONFIG_BCH=y | ||||||
|  | CONFIG_BINFMT_FLAT_ARGVP_ENVP_ON_STACK=y | ||||||
|  | CONFIG_BLK_DEV_LOOP=y | ||||||
|  | CONFIG_BLK_MQ_PCI=y | ||||||
|  | CONFIG_BOUNCE=y | ||||||
|  | # CONFIG_CACHE_L2X0 is not set | ||||||
|  | CONFIG_CLKDEV_LOOKUP=y | ||||||
|  | CONFIG_CLKSRC_QCOM=y | ||||||
|  | CONFIG_CLONE_BACKWARDS=y | ||||||
|  | CONFIG_COMMON_CLK=y | ||||||
|  | CONFIG_COMMON_CLK_QCOM=y | ||||||
|  | CONFIG_COMPAT_32BIT_TIME=y | ||||||
|  | CONFIG_CPUFREQ_DT=y | ||||||
|  | CONFIG_CPUFREQ_DT_PLATDEV=y | ||||||
|  | CONFIG_CPU_32v6K=y | ||||||
|  | CONFIG_CPU_32v7=y | ||||||
|  | CONFIG_CPU_ABRT_EV7=y | ||||||
|  | CONFIG_CPU_CACHE_V7=y | ||||||
|  | CONFIG_CPU_CACHE_VIPT=y | ||||||
|  | CONFIG_CPU_COPY_V6=y | ||||||
|  | CONFIG_CPU_CP15=y | ||||||
|  | CONFIG_CPU_CP15_MMU=y | ||||||
|  | CONFIG_CPU_FREQ=y | ||||||
|  | CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y | ||||||
|  | # CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set | ||||||
|  | CONFIG_CPU_FREQ_GOV_ATTR_SET=y | ||||||
|  | CONFIG_CPU_FREQ_GOV_COMMON=y | ||||||
|  | # CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set | ||||||
|  | CONFIG_CPU_FREQ_GOV_ONDEMAND=y | ||||||
|  | CONFIG_CPU_FREQ_GOV_PERFORMANCE=y | ||||||
|  | # CONFIG_CPU_FREQ_GOV_POWERSAVE is not set | ||||||
|  | # CONFIG_CPU_FREQ_GOV_USERSPACE is not set | ||||||
|  | CONFIG_CPU_FREQ_STAT=y | ||||||
|  | CONFIG_CPU_HAS_ASID=y | ||||||
|  | CONFIG_CPU_IDLE=y | ||||||
|  | CONFIG_CPU_IDLE_GOV_LADDER=y | ||||||
|  | CONFIG_CPU_IDLE_GOV_MENU=y | ||||||
|  | CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y | ||||||
|  | CONFIG_CPU_PABRT_V7=y | ||||||
|  | CONFIG_CPU_PM=y | ||||||
|  | CONFIG_CPU_RMAP=y | ||||||
|  | CONFIG_CPU_SPECTRE=y | ||||||
|  | CONFIG_CPU_THERMAL=y | ||||||
|  | CONFIG_CPU_THUMB_CAPABLE=y | ||||||
|  | CONFIG_CPU_TLB_V7=y | ||||||
|  | CONFIG_CPU_V7=y | ||||||
|  | CONFIG_CRC16=y | ||||||
|  | # CONFIG_CRC32_SARWATE is not set | ||||||
|  | CONFIG_CRC32_SLICEBY8=y | ||||||
|  | CONFIG_CRYPTO_ACOMP2=y | ||||||
|  | CONFIG_CRYPTO_AEAD=y | ||||||
|  | CONFIG_CRYPTO_AEAD2=y | ||||||
|  | CONFIG_CRYPTO_AES_ARM=y | ||||||
|  | CONFIG_CRYPTO_AES_ARM_BS=y | ||||||
|  | CONFIG_CRYPTO_CBC=y | ||||||
|  | CONFIG_CRYPTO_CRYPTD=y | ||||||
|  | CONFIG_CRYPTO_CTR=y | ||||||
|  | CONFIG_CRYPTO_DEFLATE=y | ||||||
|  | CONFIG_CRYPTO_DES=y | ||||||
|  | CONFIG_CRYPTO_DEV_QCE=y | ||||||
|  | # CONFIG_CRYPTO_DEV_QCE_ENABLE_ALL is not set | ||||||
|  | # CONFIG_CRYPTO_DEV_QCE_ENABLE_SHA is not set | ||||||
|  | CONFIG_CRYPTO_DEV_QCE_ENABLE_SKCIPHER=y | ||||||
|  | CONFIG_CRYPTO_DEV_QCE_SKCIPHER=y | ||||||
|  | CONFIG_CRYPTO_DEV_QCE_SW_MAX_LEN=512 | ||||||
|  | CONFIG_CRYPTO_DEV_QCOM_RNG=y | ||||||
|  | CONFIG_CRYPTO_DRBG=y | ||||||
|  | CONFIG_CRYPTO_DRBG_HMAC=y | ||||||
|  | CONFIG_CRYPTO_DRBG_MENU=y | ||||||
|  | CONFIG_CRYPTO_ECB=y | ||||||
|  | CONFIG_CRYPTO_HASH=y | ||||||
|  | CONFIG_CRYPTO_HASH2=y | ||||||
|  | CONFIG_CRYPTO_HASH_INFO=y | ||||||
|  | CONFIG_CRYPTO_HMAC=y | ||||||
|  | CONFIG_CRYPTO_HW=y | ||||||
|  | CONFIG_CRYPTO_JITTERENTROPY=y | ||||||
|  | CONFIG_CRYPTO_LIB_DES=y | ||||||
|  | CONFIG_CRYPTO_LIB_SHA256=y | ||||||
|  | CONFIG_CRYPTO_LZO=y | ||||||
|  | CONFIG_CRYPTO_MANAGER=y | ||||||
|  | CONFIG_CRYPTO_MANAGER2=y | ||||||
|  | CONFIG_CRYPTO_NULL=y | ||||||
|  | CONFIG_CRYPTO_NULL2=y | ||||||
|  | CONFIG_CRYPTO_RNG=y | ||||||
|  | CONFIG_CRYPTO_RNG2=y | ||||||
|  | CONFIG_CRYPTO_RNG_DEFAULT=y | ||||||
|  | CONFIG_CRYPTO_SEQIV=y | ||||||
|  | CONFIG_CRYPTO_SHA256=y | ||||||
|  | CONFIG_CRYPTO_SHA256_ARM=y | ||||||
|  | CONFIG_CRYPTO_SIMD=y | ||||||
|  | CONFIG_CRYPTO_XTS=y | ||||||
|  | CONFIG_CRYPTO_ZSTD=y | ||||||
|  | CONFIG_DCACHE_WORD_ACCESS=y | ||||||
|  | CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S" | ||||||
|  | CONFIG_DEBUG_MISC=y | ||||||
|  | CONFIG_DMADEVICES=y | ||||||
|  | CONFIG_DMA_ENGINE=y | ||||||
|  | CONFIG_DMA_OF=y | ||||||
|  | CONFIG_DMA_REMAP=y | ||||||
|  | CONFIG_DMA_SHARED_BUFFER=y | ||||||
|  | CONFIG_DMA_VIRTUAL_CHANNELS=y | ||||||
|  | CONFIG_DTC=y | ||||||
|  | CONFIG_DT_IDLE_STATES=y | ||||||
|  | CONFIG_DYNAMIC_DEBUG=y | ||||||
|  | CONFIG_EDAC_ATOMIC_SCRUB=y | ||||||
|  | CONFIG_EDAC_SUPPORT=y | ||||||
|  | CONFIG_EEPROM_AT24=y | ||||||
|  | CONFIG_ESSEDMA=y | ||||||
|  | CONFIG_EXTCON=y | ||||||
|  | CONFIG_FIXED_PHY=y | ||||||
|  | CONFIG_FIX_EARLYCON_MEM=y | ||||||
|  | CONFIG_FW_LOADER_PAGED_BUF=y | ||||||
|  | CONFIG_GENERIC_ALLOCATOR=y | ||||||
|  | CONFIG_GENERIC_BUG=y | ||||||
|  | CONFIG_GENERIC_CLOCKEVENTS=y | ||||||
|  | CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y | ||||||
|  | CONFIG_GENERIC_CPU_AUTOPROBE=y | ||||||
|  | CONFIG_GENERIC_EARLY_IOREMAP=y | ||||||
|  | CONFIG_GENERIC_IDLE_POLL_SETUP=y | ||||||
|  | CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y | ||||||
|  | CONFIG_GENERIC_IRQ_MULTI_HANDLER=y | ||||||
|  | CONFIG_GENERIC_IRQ_SHOW=y | ||||||
|  | CONFIG_GENERIC_IRQ_SHOW_LEVEL=y | ||||||
|  | CONFIG_GENERIC_MSI_IRQ=y | ||||||
|  | CONFIG_GENERIC_MSI_IRQ_DOMAIN=y | ||||||
|  | CONFIG_GENERIC_PCI_IOMAP=y | ||||||
|  | CONFIG_GENERIC_PHY=y | ||||||
|  | CONFIG_GENERIC_PINCONF=y | ||||||
|  | CONFIG_GENERIC_PINCTRL_GROUPS=y | ||||||
|  | CONFIG_GENERIC_PINMUX_FUNCTIONS=y | ||||||
|  | CONFIG_GENERIC_SCHED_CLOCK=y | ||||||
|  | CONFIG_GENERIC_SMP_IDLE_THREAD=y | ||||||
|  | CONFIG_GENERIC_STRNCPY_FROM_USER=y | ||||||
|  | CONFIG_GENERIC_STRNLEN_USER=y | ||||||
|  | CONFIG_GENERIC_TIME_VSYSCALL=y | ||||||
|  | CONFIG_GPIOLIB=y | ||||||
|  | CONFIG_GPIOLIB_IRQCHIP=y | ||||||
|  | CONFIG_GPIO_74X164=y | ||||||
|  | CONFIG_GPIO_WATCHDOG=y | ||||||
|  | CONFIG_GPIO_WATCHDOG_ARCH_INITCALL=y | ||||||
|  | CONFIG_HANDLE_DOMAIN_IRQ=y | ||||||
|  | CONFIG_HARDEN_BRANCH_PREDICTOR=y | ||||||
|  | CONFIG_HARDIRQS_SW_RESEND=y | ||||||
|  | CONFIG_HAS_DMA=y | ||||||
|  | CONFIG_HAS_IOMEM=y | ||||||
|  | CONFIG_HAS_IOPORT_MAP=y | ||||||
|  | CONFIG_HAVE_SMP=y | ||||||
|  | CONFIG_HIGHMEM=y | ||||||
|  | # CONFIG_HIGHPTE is not set | ||||||
|  | CONFIG_HWSPINLOCK=y | ||||||
|  | CONFIG_HWSPINLOCK_QCOM=y | ||||||
|  | CONFIG_HW_RANDOM=y | ||||||
|  | CONFIG_HW_RANDOM_OPTEE=y | ||||||
|  | CONFIG_HZ=100 | ||||||
|  | CONFIG_HZ_100=y | ||||||
|  | CONFIG_HZ_FIXED=0 | ||||||
|  | CONFIG_I2C=y | ||||||
|  | CONFIG_I2C_BOARDINFO=y | ||||||
|  | CONFIG_I2C_CHARDEV=y | ||||||
|  | CONFIG_I2C_HELPER_AUTO=y | ||||||
|  | CONFIG_I2C_QUP=y | ||||||
|  | CONFIG_INITRAMFS_SOURCE="" | ||||||
|  | # CONFIG_IOMMU_DEBUGFS is not set | ||||||
|  | # CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set | ||||||
|  | # CONFIG_IOMMU_IO_PGTABLE_LPAE is not set | ||||||
|  | CONFIG_IOMMU_SUPPORT=y | ||||||
|  | CONFIG_IO_URING=y | ||||||
|  | CONFIG_IPQ_GCC_4019=y | ||||||
|  | # CONFIG_IPQ_GCC_806X is not set | ||||||
|  | # CONFIG_IPQ_GCC_8074 is not set | ||||||
|  | # CONFIG_IPQ_LCC_806X is not set | ||||||
|  | CONFIG_IRQCHIP=y | ||||||
|  | CONFIG_IRQ_DOMAIN=y | ||||||
|  | CONFIG_IRQ_DOMAIN_HIERARCHY=y | ||||||
|  | CONFIG_IRQ_FORCED_THREADING=y | ||||||
|  | CONFIG_IRQ_WORK=y | ||||||
|  | # CONFIG_KPSS_XCC is not set | ||||||
|  | # CONFIG_KRAITCC is not set | ||||||
|  | CONFIG_LEDS_LP5523=y | ||||||
|  | CONFIG_LEDS_LP5562=y | ||||||
|  | CONFIG_LEDS_LP55XX_COMMON=y | ||||||
|  | CONFIG_LIBFDT=y | ||||||
|  | CONFIG_LOCK_DEBUGGING_SUPPORT=y | ||||||
|  | CONFIG_LOCK_SPIN_ON_OWNER=y | ||||||
|  | CONFIG_LZO_COMPRESS=y | ||||||
|  | CONFIG_LZO_DECOMPRESS=y | ||||||
|  | CONFIG_MDIO_BITBANG=y | ||||||
|  | CONFIG_MDIO_BUS=y | ||||||
|  | CONFIG_MDIO_DEVICE=y | ||||||
|  | CONFIG_MDIO_GPIO=y | ||||||
|  | CONFIG_MDIO_IPQ4019=y | ||||||
|  | # CONFIG_MDM_GCC_9615 is not set | ||||||
|  | # CONFIG_MDM_LCC_9615 is not set | ||||||
|  | CONFIG_MEMFD_CREATE=y | ||||||
|  | # CONFIG_MFD_QCOM_RPM is not set | ||||||
|  | # CONFIG_MFD_SPMI_PMIC is not set | ||||||
|  | CONFIG_MFD_SYSCON=y | ||||||
|  | CONFIG_MIGHT_HAVE_CACHE_L2X0=y | ||||||
|  | CONFIG_MIGRATION=y | ||||||
|  | CONFIG_MMC=y | ||||||
|  | CONFIG_MMC_BLOCK=y | ||||||
|  | CONFIG_MMC_SDHCI=y | ||||||
|  | CONFIG_MMC_SDHCI_IO_ACCESSORS=y | ||||||
|  | CONFIG_MMC_SDHCI_MSM=y | ||||||
|  | # CONFIG_MMC_SDHCI_PCI is not set | ||||||
|  | CONFIG_MMC_SDHCI_PLTFM=y | ||||||
|  | CONFIG_MODULES_USE_ELF_REL=y | ||||||
|  | # CONFIG_MSM_GCC_8660 is not set | ||||||
|  | # CONFIG_MSM_GCC_8916 is not set | ||||||
|  | # CONFIG_MSM_GCC_8960 is not set | ||||||
|  | # CONFIG_MSM_GCC_8974 is not set | ||||||
|  | # CONFIG_MSM_GCC_8994 is not set | ||||||
|  | # CONFIG_MSM_GCC_8996 is not set | ||||||
|  | # CONFIG_MSM_GCC_8998 is not set | ||||||
|  | # CONFIG_MSM_LCC_8960 is not set | ||||||
|  | # CONFIG_MSM_MMCC_8960 is not set | ||||||
|  | # CONFIG_MSM_MMCC_8974 is not set | ||||||
|  | # CONFIG_MSM_MMCC_8996 is not set | ||||||
|  | CONFIG_MTD_CMDLINE_PARTS=y | ||||||
|  | CONFIG_MTD_NAND_CORE=y | ||||||
|  | CONFIG_MTD_NAND_ECC_SW_BCH=y | ||||||
|  | CONFIG_MTD_NAND_ECC_SW_HAMMING=y | ||||||
|  | CONFIG_MTD_NAND_QCOM=y | ||||||
|  | CONFIG_MTD_RAW_NAND=y | ||||||
|  | CONFIG_MTD_SPI_NAND=y | ||||||
|  | CONFIG_MTD_SPI_NOR=y | ||||||
|  | CONFIG_MTD_SPLIT_FIRMWARE=y | ||||||
|  | CONFIG_MTD_SPLIT_FIT_FW=y | ||||||
|  | CONFIG_MTD_SPLIT_WRGG_FW=y | ||||||
|  | CONFIG_MTD_UBI=y | ||||||
|  | CONFIG_MTD_UBI_BEB_LIMIT=20 | ||||||
|  | CONFIG_MTD_UBI_BLOCK=y | ||||||
|  | CONFIG_MTD_UBI_WL_THRESHOLD=4096 | ||||||
|  | CONFIG_MUTEX_SPIN_ON_OWNER=y | ||||||
|  | CONFIG_NEED_DMA_MAP_STATE=y | ||||||
|  | CONFIG_NEON=y | ||||||
|  | CONFIG_NET_FLOW_LIMIT=y | ||||||
|  | CONFIG_NET_PTP_CLASSIFY=y | ||||||
|  | CONFIG_NLS=y | ||||||
|  | CONFIG_NO_HZ=y | ||||||
|  | CONFIG_NO_HZ_COMMON=y | ||||||
|  | CONFIG_NO_HZ_IDLE=y | ||||||
|  | CONFIG_NR_CPUS=4 | ||||||
|  | CONFIG_NVMEM=y | ||||||
|  | CONFIG_NVMEM_SYSFS=y | ||||||
|  | CONFIG_OF=y | ||||||
|  | CONFIG_OF_ADDRESS=y | ||||||
|  | CONFIG_OF_EARLY_FLATTREE=y | ||||||
|  | CONFIG_OF_FLATTREE=y | ||||||
|  | CONFIG_OF_GPIO=y | ||||||
|  | CONFIG_OF_IRQ=y | ||||||
|  | CONFIG_OF_KOBJ=y | ||||||
|  | CONFIG_OF_MDIO=y | ||||||
|  | CONFIG_OF_NET=y | ||||||
|  | CONFIG_OLD_SIGACTION=y | ||||||
|  | CONFIG_OLD_SIGSUSPEND3=y | ||||||
|  | CONFIG_OPTEE=y | ||||||
|  | CONFIG_OPTEE_SHM_NUM_PRIV_PAGES=1 | ||||||
|  | CONFIG_PADATA=y | ||||||
|  | CONFIG_PAGE_OFFSET=0xC0000000 | ||||||
|  | CONFIG_PCI=y | ||||||
|  | CONFIG_PCIEAER=y | ||||||
|  | CONFIG_PCIEPORTBUS=y | ||||||
|  | CONFIG_PCIE_DW=y | ||||||
|  | CONFIG_PCIE_DW_HOST=y | ||||||
|  | CONFIG_PCIE_QCOM=y | ||||||
|  | CONFIG_PCI_DISABLE_COMMON_QUIRKS=y | ||||||
|  | CONFIG_PCI_DOMAINS=y | ||||||
|  | CONFIG_PCI_DOMAINS_GENERIC=y | ||||||
|  | CONFIG_PCI_MSI=y | ||||||
|  | CONFIG_PCI_MSI_IRQ_DOMAIN=y | ||||||
|  | CONFIG_PERF_USE_VMALLOC=y | ||||||
|  | CONFIG_PGTABLE_LEVELS=2 | ||||||
|  | CONFIG_PHYLIB=y | ||||||
|  | # CONFIG_PHY_QCOM_APQ8064_SATA is not set | ||||||
|  | CONFIG_PHY_QCOM_IPQ4019_USB=y | ||||||
|  | # CONFIG_PHY_QCOM_IPQ806X_SATA is not set | ||||||
|  | # CONFIG_PHY_QCOM_PCIE2 is not set | ||||||
|  | # CONFIG_PHY_QCOM_QMP is not set | ||||||
|  | # CONFIG_PHY_QCOM_QUSB2 is not set | ||||||
|  | # CONFIG_PHY_QCOM_UFS is not set | ||||||
|  | CONFIG_PINCTRL=y | ||||||
|  | # CONFIG_PINCTRL_APQ8064 is not set | ||||||
|  | # CONFIG_PINCTRL_APQ8084 is not set | ||||||
|  | CONFIG_PINCTRL_IPQ4019=y | ||||||
|  | # CONFIG_PINCTRL_IPQ8064 is not set | ||||||
|  | # CONFIG_PINCTRL_IPQ8074 is not set | ||||||
|  | # CONFIG_PINCTRL_MDM9615 is not set | ||||||
|  | CONFIG_PINCTRL_MSM=y | ||||||
|  | # CONFIG_PINCTRL_MSM8660 is not set | ||||||
|  | # CONFIG_PINCTRL_MSM8916 is not set | ||||||
|  | # CONFIG_PINCTRL_MSM8960 is not set | ||||||
|  | # CONFIG_PINCTRL_MSM8994 is not set | ||||||
|  | # CONFIG_PINCTRL_MSM8996 is not set | ||||||
|  | # CONFIG_PINCTRL_MSM8998 is not set | ||||||
|  | # CONFIG_PINCTRL_QCOM_SPMI_PMIC is not set | ||||||
|  | # CONFIG_PINCTRL_QCOM_SSBI_PMIC is not set | ||||||
|  | # CONFIG_PINCTRL_QCS404 is not set | ||||||
|  | # CONFIG_PINCTRL_SC7180 is not set | ||||||
|  | # CONFIG_PINCTRL_SDM660 is not set | ||||||
|  | # CONFIG_PINCTRL_SDM845 is not set | ||||||
|  | # CONFIG_PINCTRL_SM8150 is not set | ||||||
|  | CONFIG_PM_OPP=y | ||||||
|  | CONFIG_POWER_RESET=y | ||||||
|  | CONFIG_POWER_RESET_MSM=y | ||||||
|  | CONFIG_POWER_SUPPLY=y | ||||||
|  | CONFIG_PPS=y | ||||||
|  | CONFIG_PRINTK_TIME=y | ||||||
|  | CONFIG_PTP_1588_CLOCK=y | ||||||
|  | CONFIG_QCA807X_PHY=y | ||||||
|  | CONFIG_QCOM_A53PLL=y | ||||||
|  | CONFIG_QCOM_BAM_DMA=y | ||||||
|  | # CONFIG_QCOM_COMMAND_DB is not set | ||||||
|  | # CONFIG_QCOM_EBI2 is not set | ||||||
|  | # CONFIG_QCOM_GENI_SE is not set | ||||||
|  | # CONFIG_QCOM_GSBI is not set | ||||||
|  | # CONFIG_QCOM_HFPLL is not set | ||||||
|  | # CONFIG_QCOM_IOMMU is not set | ||||||
|  | # CONFIG_QCOM_LLCC is not set | ||||||
|  | # CONFIG_QCOM_PDC is not set | ||||||
|  | CONFIG_QCOM_PM=y | ||||||
|  | CONFIG_QCOM_QFPROM=y | ||||||
|  | # CONFIG_QCOM_RMTFS_MEM is not set | ||||||
|  | CONFIG_QCOM_SCM=y | ||||||
|  | CONFIG_QCOM_SCM_32=y | ||||||
|  | # CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT is not set | ||||||
|  | CONFIG_QCOM_SMEM=y | ||||||
|  | # CONFIG_QCOM_SMSM is not set | ||||||
|  | # CONFIG_QCOM_SOCINFO is not set | ||||||
|  | CONFIG_QCOM_TCSR=y | ||||||
|  | # CONFIG_QCOM_TSENS is not set | ||||||
|  | CONFIG_QCOM_WDT=y | ||||||
|  | # CONFIG_QCS_GCC_404 is not set | ||||||
|  | # CONFIG_QCS_TURING_404 is not set | ||||||
|  | # CONFIG_QRTR is not set | ||||||
|  | CONFIG_RAS=y | ||||||
|  | CONFIG_RATIONAL=y | ||||||
|  | CONFIG_RCU_CPU_STALL_TIMEOUT=21 | ||||||
|  | CONFIG_RCU_NEED_SEGCBLIST=y | ||||||
|  | CONFIG_RCU_STALL_COMMON=y | ||||||
|  | CONFIG_REFCOUNT_FULL=y | ||||||
|  | CONFIG_REGMAP=y | ||||||
|  | CONFIG_REGMAP_I2C=y | ||||||
|  | CONFIG_REGMAP_MMIO=y | ||||||
|  | CONFIG_REGULATOR=y | ||||||
|  | CONFIG_REGULATOR_FIXED_VOLTAGE=y | ||||||
|  | # CONFIG_REGULATOR_QCOM_SPMI is not set | ||||||
|  | CONFIG_REGULATOR_VCTRL=y | ||||||
|  | CONFIG_REGULATOR_VQMMC_IPQ4019=y | ||||||
|  | CONFIG_RESET_CONTROLLER=y | ||||||
|  | # CONFIG_RESET_QCOM_AOSS is not set | ||||||
|  | # CONFIG_RESET_QCOM_PDC is not set | ||||||
|  | CONFIG_RFS_ACCEL=y | ||||||
|  | CONFIG_RPS=y | ||||||
|  | CONFIG_RTC_CLASS=y | ||||||
|  | CONFIG_RTC_I2C_AND_SPI=y | ||||||
|  | CONFIG_RTC_MC146818_LIB=y | ||||||
|  | CONFIG_RWSEM_SPIN_ON_OWNER=y | ||||||
|  | # CONFIG_SDM_CAMCC_845 is not set | ||||||
|  | # CONFIG_SDM_DISPCC_845 is not set | ||||||
|  | # CONFIG_SDM_GCC_660 is not set | ||||||
|  | # CONFIG_SDM_GCC_845 is not set | ||||||
|  | # CONFIG_SDM_GPUCC_845 is not set | ||||||
|  | # CONFIG_SDM_LPASSCC_845 is not set | ||||||
|  | # CONFIG_SDM_VIDEOCC_845 is not set | ||||||
|  | CONFIG_SERIAL_8250_FSL=y | ||||||
|  | CONFIG_SERIAL_MCTRL_GPIO=y | ||||||
|  | CONFIG_SERIAL_MSM=y | ||||||
|  | CONFIG_SERIAL_MSM_CONSOLE=y | ||||||
|  | CONFIG_SGL_ALLOC=y | ||||||
|  | CONFIG_SMP=y | ||||||
|  | CONFIG_SMP_ON_UP=y | ||||||
|  | # CONFIG_SM_GCC_8150 is not set | ||||||
|  | CONFIG_SPARSE_IRQ=y | ||||||
|  | CONFIG_SPI=y | ||||||
|  | CONFIG_SPI_BITBANG=y | ||||||
|  | CONFIG_SPI_GPIO=y | ||||||
|  | CONFIG_SPI_MASTER=y | ||||||
|  | CONFIG_SPI_MEM=y | ||||||
|  | CONFIG_SPI_QUP=y | ||||||
|  | CONFIG_SPMI=y | ||||||
|  | CONFIG_SPMI_MSM_PMIC_ARB=y | ||||||
|  | # CONFIG_SPMI_PMIC_CLKDIV is not set | ||||||
|  | CONFIG_SRCU=y | ||||||
|  | CONFIG_SWCONFIG=y | ||||||
|  | CONFIG_SWCONFIG_LEDS=y | ||||||
|  | CONFIG_SWPHY=y | ||||||
|  | CONFIG_SWP_EMULATE=y | ||||||
|  | CONFIG_SYS_SUPPORTS_APM_EMULATION=y | ||||||
|  | CONFIG_TEE=y | ||||||
|  | CONFIG_THERMAL=y | ||||||
|  | CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y | ||||||
|  | CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 | ||||||
|  | CONFIG_THERMAL_GOV_STEP_WISE=y | ||||||
|  | CONFIG_THERMAL_OF=y | ||||||
|  | CONFIG_TICK_CPU_ACCOUNTING=y | ||||||
|  | CONFIG_TIMER_OF=y | ||||||
|  | CONFIG_TIMER_PROBE=y | ||||||
|  | CONFIG_TREE_RCU=y | ||||||
|  | CONFIG_TREE_SRCU=y | ||||||
|  | CONFIG_UBIFS_FS=y | ||||||
|  | CONFIG_UBIFS_FS_ADVANCED_COMPR=y | ||||||
|  | CONFIG_UBIFS_FS_LZO=y | ||||||
|  | CONFIG_UBIFS_FS_ZLIB=y | ||||||
|  | CONFIG_UBIFS_FS_ZSTD=y | ||||||
|  | CONFIG_UEVENT_HELPER_PATH="" | ||||||
|  | CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h" | ||||||
|  | CONFIG_UNWINDER_ARM=y | ||||||
|  | CONFIG_USB=y | ||||||
|  | CONFIG_USB_COMMON=y | ||||||
|  | CONFIG_USB_SUPPORT=y | ||||||
|  | CONFIG_USE_OF=y | ||||||
|  | CONFIG_VFP=y | ||||||
|  | CONFIG_VFPv3=y | ||||||
|  | CONFIG_WATCHDOG_CORE=y | ||||||
|  | CONFIG_XPS=y | ||||||
|  | CONFIG_XXHASH=y | ||||||
|  | CONFIG_XZ_DEC_ARM=y | ||||||
|  | CONFIG_XZ_DEC_BCJ=y | ||||||
|  | CONFIG_ZBOOT_ROM_BSS=0 | ||||||
|  | CONFIG_ZBOOT_ROM_TEXT=0 | ||||||
|  | CONFIG_ZLIB_DEFLATE=y | ||||||
|  | CONFIG_ZLIB_INFLATE=y | ||||||
|  | CONFIG_ZSTD_COMPRESS=y | ||||||
|  | CONFIG_ZSTD_DECOMPRESS=y | ||||||
| @@ -0,0 +1,205 @@ | |||||||
|  | // SPDX-License-Identifier: ISC | ||||||
|  | /* Copyright (c) 2015, The Linux Foundation. All rights reserved. | ||||||
|  |  * Copyright (c) 2017, Sven Eckelmann <sven.eckelmann@openmesh.com> | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #include "qcom-ipq4019.dtsi" | ||||||
|  | #include <dt-bindings/gpio/gpio.h> | ||||||
|  | #include <dt-bindings/input/input.h> | ||||||
|  | #include <dt-bindings/soc/qcom,tcsr.h> | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	model = "OpenMesh A42"; | ||||||
|  | 	compatible = "openmesh,a42"; | ||||||
|  |  | ||||||
|  | 	soc { | ||||||
|  | 		rng@22000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		mdio@90000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess-psgmii@98000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@194b000 { | ||||||
|  | 			/* select hostmode */ | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x194b000 0x100>; | ||||||
|  | 			qcom,usb-hsphy-mode-select = <TCSR_USB_HSPHY_HOST_MODE>; | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@1949000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1949000 0x100>; | ||||||
|  | 			qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess_tcsr@1953000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1953000 0x1000>; | ||||||
|  | 			qcom,ess-interface-select = <TCSR_ESS_PSGMII>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@1957000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1957000 0x100>; | ||||||
|  | 			qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		usb2: usb2@60f8800 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		crypto@8e3a000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		watchdog@b017000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess-switch@c000000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		edma@c080000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	keys { | ||||||
|  | 		compatible = "gpio-keys"; | ||||||
|  |  | ||||||
|  | 		reset { | ||||||
|  | 			label = "reset"; | ||||||
|  | 			gpios = <&tlmm 59 GPIO_ACTIVE_LOW>; | ||||||
|  | 			linux,code = <KEY_RESTART>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	aliases { | ||||||
|  | 		led-boot = &led_status_green; | ||||||
|  | 		led-failsafe = &led_status_green; | ||||||
|  | 		led-running = &led_status_green; | ||||||
|  | 		led-upgrade = &led_status_green; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	leds { | ||||||
|  | 		compatible = "gpio-leds"; | ||||||
|  |  | ||||||
|  | 		status_red { | ||||||
|  | 			label = "red:status"; | ||||||
|  | 			gpios = <&tlmm 0 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		led_status_green: status_green { | ||||||
|  | 			label = "green:status"; | ||||||
|  | 			gpios = <&tlmm 1 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		status_blue { | ||||||
|  | 			label = "blue:status"; | ||||||
|  | 			gpios = <&tlmm 2 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	watchdog { | ||||||
|  | 		compatible = "linux,wdt-gpio"; | ||||||
|  | 		gpios = <&tlmm 5 GPIO_ACTIVE_LOW>; | ||||||
|  | 		hw_algo = "toggle"; | ||||||
|  | 		/* hw_margin_ms is actually 300s but driver limits it to 60s */ | ||||||
|  | 		hw_margin_ms = <60000>; | ||||||
|  | 		always-running; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &tlmm { | ||||||
|  | 	serial_pins: serial_pinmux { | ||||||
|  | 		mux { | ||||||
|  | 			pins = "gpio60", "gpio61"; | ||||||
|  | 			function = "blsp_uart0"; | ||||||
|  | 			bias-disable; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	spi_0_pins: spi_0_pinmux { | ||||||
|  | 		pin { | ||||||
|  | 			function = "blsp_spi0"; | ||||||
|  | 			pins = "gpio55", "gpio56", "gpio57"; | ||||||
|  | 			drive-strength = <12>; | ||||||
|  | 			bias-disable; | ||||||
|  | 		}; | ||||||
|  | 		pin_cs { | ||||||
|  | 			function = "gpio"; | ||||||
|  | 			pins = "gpio54"; | ||||||
|  | 			drive-strength = <2>; | ||||||
|  | 			bias-disable; | ||||||
|  | 			output-high; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp_dma { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp1_spi1 { | ||||||
|  | 	pinctrl-0 = <&spi_0_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	status = "okay"; | ||||||
|  | 	cs-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>; | ||||||
|  |  | ||||||
|  | 	flash@0 { | ||||||
|  | 		#address-cells = <1>; | ||||||
|  | 		#size-cells = <1>; | ||||||
|  | 		compatible = "jedec,spi-nor"; | ||||||
|  | 		reg = <0>; | ||||||
|  | 		spi-max-frequency = <24000000>; | ||||||
|  | 		/* partitions are passed via bootloader */ | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp1_uart1 { | ||||||
|  | 	pinctrl-0 = <&serial_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &cryptobam { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &gmac0 { | ||||||
|  | 	qcom,phy_mdio_addr = <4>; | ||||||
|  | 	qcom,poll_required = <1>; | ||||||
|  | 	qcom,forced_speed = <1000>; | ||||||
|  | 	qcom,forced_duplex = <1>; | ||||||
|  | 	vlan_tag = <2 0x20>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &gmac1 { | ||||||
|  | 	qcom,phy_mdio_addr = <3>; | ||||||
|  | 	qcom,poll_required = <1>; | ||||||
|  | 	qcom,forced_speed = <1000>; | ||||||
|  | 	qcom,forced_duplex = <1>; | ||||||
|  | 	vlan_tag = <1 0x10>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usb2_hs_phy { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi0 { | ||||||
|  | 	status = "okay"; | ||||||
|  | 	qcom,ath10k-calibration-variant = "OM-A42"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi1 { | ||||||
|  | 	status = "okay"; | ||||||
|  | 	qcom,ath10k-calibration-variant = "OM-A42"; | ||||||
|  | }; | ||||||
| @@ -0,0 +1,350 @@ | |||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later OR MIT | ||||||
|  |  | ||||||
|  | #include "qcom-ipq4019.dtsi" | ||||||
|  | #include <dt-bindings/gpio/gpio.h> | ||||||
|  | #include <dt-bindings/input/input.h> | ||||||
|  | #include <dt-bindings/soc/qcom,tcsr.h> | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	model = "ALFA Network AP120C-AC"; | ||||||
|  | 	compatible = "alfa-network,ap120c-ac"; | ||||||
|  |  | ||||||
|  | 	aliases { | ||||||
|  | 		led-boot = &status; | ||||||
|  | 		led-failsafe = &status; | ||||||
|  | 		led-running = &status; | ||||||
|  | 		led-upgrade = &status; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	keys { | ||||||
|  | 		compatible = "gpio-keys"; | ||||||
|  |  | ||||||
|  | 		reset { | ||||||
|  | 			label = "reset"; | ||||||
|  | 			gpios = <&tlmm 63 GPIO_ACTIVE_LOW>; | ||||||
|  | 			linux,code = <KEY_RESTART>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	leds { | ||||||
|  | 		compatible = "gpio-leds"; | ||||||
|  |  | ||||||
|  | 		status: status { | ||||||
|  | 			label = "blue:status"; | ||||||
|  | 			gpios = <&tlmm 5 GPIO_ACTIVE_LOW>; | ||||||
|  | 			default-state = "keep"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		wan { | ||||||
|  | 			label = "amber:wan"; | ||||||
|  | 			gpios = <ðphy4 1 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		wlan2g { | ||||||
|  | 			label = "green:wlan2g"; | ||||||
|  | 			gpios = <&tlmm 3 GPIO_ACTIVE_HIGH>; | ||||||
|  | 			linux,default-trigger = "phy0tpt"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		wlan5g { | ||||||
|  | 			label = "red:wlan5g"; | ||||||
|  | 			gpios = <&tlmm 2 GPIO_ACTIVE_HIGH>; | ||||||
|  | 			linux,default-trigger = "phy1tpt"; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	soc { | ||||||
|  | 		rng@22000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		mdio@90000 { | ||||||
|  | 			status = "okay"; | ||||||
|  |  | ||||||
|  | 			pinctrl-0 = <&mdio_pins>; | ||||||
|  | 			pinctrl-names = "default"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess-psgmii@98000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		counter@4a1000 { | ||||||
|  | 			compatible = "qcom,qca-gcnt"; | ||||||
|  | 			reg = <0x4a1000 0x4>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@1949000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1949000 0x100>; | ||||||
|  | 			qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@194b000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x194b000 0x100>; | ||||||
|  | 			qcom,usb-hsphy-mode-select = <TCSR_USB_HSPHY_HOST_MODE>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess_tcsr@1953000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1953000 0x1000>; | ||||||
|  | 			qcom,ess-interface-select = <TCSR_ESS_PSGMII>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@1957000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1957000 0x100>; | ||||||
|  | 			qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		usb2@60f8800 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		usb3@8af8800 { | ||||||
|  | 			status = "okay"; | ||||||
|  |  | ||||||
|  | 			dwc3@8a00000 { | ||||||
|  | 				phys = <&usb3_hs_phy>; | ||||||
|  | 				phy-names = "usb2-phy"; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		crypto@8e3a000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		watchdog@b017000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess-switch@c000000 { | ||||||
|  | 			status = "okay"; | ||||||
|  |  | ||||||
|  | 			switch_lan_bmp = <0x10>; | ||||||
|  | 			switch_wan_bmp = <0x20>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		edma@c080000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp_dma { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp1_i2c3 { | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	pinctrl-0 = <&i2c0_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  |  | ||||||
|  | 	tpm@29 { | ||||||
|  | 		compatible = "atmel,at97sc3204t"; | ||||||
|  | 		reg = <0x29>; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp1_spi1 { | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	pinctrl-0 = <&spi0_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	cs-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>, | ||||||
|  | 		   <&tlmm  4 GPIO_ACTIVE_HIGH>; | ||||||
|  |  | ||||||
|  | 	flash@0 { | ||||||
|  | 		compatible = "jedec,spi-nor"; | ||||||
|  | 		reg = <0>; | ||||||
|  | 		spi-max-frequency = <24000000>; | ||||||
|  |  | ||||||
|  | 		partitions { | ||||||
|  | 			compatible = "fixed-partitions"; | ||||||
|  | 			#address-cells = <1>; | ||||||
|  | 			#size-cells = <1>; | ||||||
|  |  | ||||||
|  | 			partition@0 { | ||||||
|  | 				label = "SBL1"; | ||||||
|  | 				reg = <0x00000000 0x00040000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@40000 { | ||||||
|  | 				label = "MIBIB"; | ||||||
|  | 				reg = <0x00040000 0x00020000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@60000 { | ||||||
|  | 				label = "QSEE"; | ||||||
|  | 				reg = <0x00060000 0x00060000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@c0000 { | ||||||
|  | 				label = "CDT"; | ||||||
|  | 				reg = <0x000c0000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@d0000 { | ||||||
|  | 				label = "DDRPARAMS"; | ||||||
|  | 				reg = <0x000d0000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@e0000 { | ||||||
|  | 				label = "APPSBLENV"; | ||||||
|  | 				reg = <0x000e0000 0x00010000>; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@f0000 { | ||||||
|  | 				label = "APPSBL"; | ||||||
|  | 				reg = <0x000f0000 0x00080000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@170000 { | ||||||
|  | 				label = "ART"; | ||||||
|  | 				reg = <0x00170000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@180000 { | ||||||
|  | 				label = "priv_data1"; | ||||||
|  | 				reg = <0x00180000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@190000 { | ||||||
|  | 				label = "priv_data2"; | ||||||
|  | 				reg = <0x00190000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	nand@1 { | ||||||
|  | 		compatible = "spi-nand"; | ||||||
|  | 		reg = <1>; | ||||||
|  | 		spi-max-frequency = <24000000>; | ||||||
|  |  | ||||||
|  | 		partitions { | ||||||
|  | 			compatible = "fixed-partitions"; | ||||||
|  | 			#address-cells = <1>; | ||||||
|  | 			#size-cells = <1>; | ||||||
|  |  | ||||||
|  | 			partition@0 { | ||||||
|  | 				label = "rootfs1"; | ||||||
|  | 				reg = <0x00000000 0x04000000>; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@4000000 { | ||||||
|  | 				label = "rootfs2"; | ||||||
|  | 				reg = <0x04000000 0x04000000>; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp1_uart1 { | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	pinctrl-0 = <&serial0_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &cryptobam { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | ðphy4 { | ||||||
|  | 	gpio-controller; | ||||||
|  | 	#gpio-cells = <2>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &gmac0 { | ||||||
|  | 	qcom,forced_duplex = <1>; | ||||||
|  | 	qcom,forced_speed = <1000>; | ||||||
|  | 	qcom,phy_mdio_addr = <3>; | ||||||
|  | 	qcom,poll_required = <1>; | ||||||
|  | 	vlan_tag = <1 0x10>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &gmac1 { | ||||||
|  | 	qcom,forced_duplex = <1>; | ||||||
|  | 	qcom,forced_speed = <1000>; | ||||||
|  | 	qcom,phy_mdio_addr = <4>; | ||||||
|  | 	qcom,poll_required = <1>; | ||||||
|  | 	vlan_tag = <2 0x20>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &tlmm { | ||||||
|  | 	i2c0_pins: i2c0_pinmux { | ||||||
|  | 		mux_i2c { | ||||||
|  | 			function = "blsp_i2c0"; | ||||||
|  | 			pins = "gpio58", "gpio59"; | ||||||
|  | 			drive-strength = <16>; | ||||||
|  | 			bias-disable; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	mdio_pins: mdio_pinmux { | ||||||
|  | 		mux_mdio { | ||||||
|  | 			pins = "gpio53"; | ||||||
|  | 			function = "mdio"; | ||||||
|  | 			bias-pull-up; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		mux_mdc { | ||||||
|  | 			pins = "gpio52"; | ||||||
|  | 			function = "mdc"; | ||||||
|  | 			bias-pull-up; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	serial0_pins: serial0_pinmux { | ||||||
|  | 		mux_uart { | ||||||
|  | 			pins = "gpio60", "gpio61"; | ||||||
|  | 			function = "blsp_uart0"; | ||||||
|  | 			bias-disable; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	spi0_pins: spi0_pinmux { | ||||||
|  | 		mux_spi { | ||||||
|  | 			function = "blsp_spi0"; | ||||||
|  | 			pins = "gpio55", "gpio56", "gpio57"; | ||||||
|  | 			drive-strength = <12>; | ||||||
|  | 			bias-disable; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		mux_cs { | ||||||
|  | 			function = "gpio"; | ||||||
|  | 			pins = "gpio54", "gpio4"; | ||||||
|  | 			drive-strength = <2>; | ||||||
|  | 			bias-disable; | ||||||
|  | 			output-high; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usb2_hs_phy { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usb3_hs_phy { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi0 { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi1 { | ||||||
|  | 	status = "okay"; | ||||||
|  | 	qcom,ath10k-calibration-variant = "ALFA-Network-AP120C-AC"; | ||||||
|  | }; | ||||||
| @@ -0,0 +1,242 @@ | |||||||
|  | // SPDX-License-Identifier: GPL-2.0-only OR MIT | ||||||
|  |  | ||||||
|  | #include "qcom-ipq4019.dtsi" | ||||||
|  | #include <dt-bindings/gpio/gpio.h> | ||||||
|  | #include <dt-bindings/input/input.h> | ||||||
|  | #include <dt-bindings/soc/qcom,tcsr.h> | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	model = "EZVIZ CS-W3-WD1200G EUP"; | ||||||
|  | 	compatible = "ezviz,cs-w3-wd1200g-eup"; | ||||||
|  |  | ||||||
|  | 	aliases { | ||||||
|  | 		led-boot = &led_status_green; | ||||||
|  | 		led-failsafe = &led_status_red; | ||||||
|  | 		led-running = &led_status_blue; | ||||||
|  | 		led-upgrade = &led_status_green; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	soc { | ||||||
|  | 		rng@22000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		mdio@90000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 			pinctrl-0 = <&mdio_pins>; | ||||||
|  | 			pinctrl-names = "default"; | ||||||
|  | 			reset-gpios = <&tlmm 59 GPIO_ACTIVE_LOW>; | ||||||
|  | 			reset-delay-us = <5000>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess-psgmii@98000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@1949000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1949000 0x100>; | ||||||
|  | 			qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@194b000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x194b000 0x100>; | ||||||
|  | 			qcom,usb-hsphy-mode-select = <TCSR_USB_HSPHY_HOST_MODE>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess_tcsr@1953000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1953000 0x1000>; | ||||||
|  | 			qcom,ess-interface-select = <TCSR_ESS_PSGMII>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@1957000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1957000 0x100>; | ||||||
|  | 			qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		crypto@8e3a000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		watchdog@b017000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess-switch@c000000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		edma@c080000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	leds { | ||||||
|  | 		compatible = "gpio-leds"; | ||||||
|  |  | ||||||
|  | 		led_status_red: status_red { | ||||||
|  | 			label = "red:status"; | ||||||
|  | 			gpios = <&tlmm 0 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		led_status_green: status_green { | ||||||
|  | 			label = "green:status"; | ||||||
|  | 			gpios = <&tlmm 3 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		led_status_blue: status_blue { | ||||||
|  | 			label = "blue:status"; | ||||||
|  | 			gpios = <&tlmm 58 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	keys { | ||||||
|  | 		compatible = "gpio-keys"; | ||||||
|  |  | ||||||
|  | 		reset { | ||||||
|  | 			label = "reset"; | ||||||
|  | 			gpios = <&tlmm 63 GPIO_ACTIVE_LOW>; | ||||||
|  | 			linux,code = <KEY_RESTART>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &tlmm { | ||||||
|  | 	serial_pins: serial_pinmux { | ||||||
|  | 		mux { | ||||||
|  | 			pins = "gpio60", "gpio61"; | ||||||
|  | 			function = "blsp_uart0"; | ||||||
|  | 			bias-disable; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	mdio_pins: mdio_pinmux { | ||||||
|  | 		mux_1 { | ||||||
|  | 			pins = "gpio53"; | ||||||
|  | 			function = "mdio"; | ||||||
|  | 			bias-pull-up; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		mux_2 { | ||||||
|  | 			pins = "gpio52"; | ||||||
|  | 			function = "mdc"; | ||||||
|  | 			bias-pull-up; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	spi_0_pins: spi_0_pinmux { | ||||||
|  | 		pin { | ||||||
|  | 			function = "blsp_spi0"; | ||||||
|  | 			pins = "gpio55", "gpio56", "gpio57"; | ||||||
|  | 			drive-strength = <12>; | ||||||
|  | 			bias-disable; | ||||||
|  | 		}; | ||||||
|  | 		pin_cs { | ||||||
|  | 			function = "gpio"; | ||||||
|  | 			pins = "gpio54"; | ||||||
|  | 			drive-strength = <2>; | ||||||
|  | 			bias-disable; | ||||||
|  | 			output-high; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp_dma { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp1_spi1 { | ||||||
|  | 	pinctrl-0 = <&spi_0_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	status = "okay"; | ||||||
|  | 	cs-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>; | ||||||
|  |  | ||||||
|  | 	flash@0 { | ||||||
|  | 		compatible = "jedec,spi-nor"; | ||||||
|  | 		reg = <0>; | ||||||
|  | 		spi-max-frequency = <24000000>; | ||||||
|  |  | ||||||
|  | 		partitions { | ||||||
|  | 			compatible = "fixed-partitions"; | ||||||
|  | 			#address-cells = <1>; | ||||||
|  | 			#size-cells = <1>; | ||||||
|  |  | ||||||
|  | 			partition0@0 { | ||||||
|  | 				label = "SBL1"; | ||||||
|  | 				reg = <0x00000000 0x00040000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition1@40000 { | ||||||
|  | 				label = "MIBIB"; | ||||||
|  | 				reg = <0x00040000 0x00020000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition2@60000 { | ||||||
|  | 				label = "QSEE"; | ||||||
|  | 				reg = <0x00060000 0x00060000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition3@c0000 { | ||||||
|  | 				label = "CDT"; | ||||||
|  | 				reg = <0x000c0000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition4@d0000 { | ||||||
|  | 				label = "DDRPARAMS"; | ||||||
|  | 				reg = <0x000d0000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition5@E0000 { | ||||||
|  | 				label = "APPSBLENV"; | ||||||
|  | 				reg = <0x000e0000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition6@F0000 { | ||||||
|  | 				label = "APPSBL"; | ||||||
|  | 				reg = <0x000f0000 0x00080000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition7@170000 { | ||||||
|  | 				label = "ART"; | ||||||
|  | 				reg = <0x00170000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition9@580000 { | ||||||
|  | 				compatible = "denx,fit"; | ||||||
|  | 				label = "firmware"; | ||||||
|  | 				reg = <0x00180000 0x00e80000>; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp1_uart1 { | ||||||
|  | 	pinctrl-0 = <&serial_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &cryptobam { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi0 { | ||||||
|  | 	status = "okay"; | ||||||
|  | 	qcom,ath10k-calibration-variant = "ezviz-cs-w3-wd1200g-eup"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi1 { | ||||||
|  | 	status = "okay"; | ||||||
|  | 	qcom,ath10k-calibration-variant = "ezviz-cs-w3-wd1200g-eup"; | ||||||
|  | }; | ||||||
| @@ -0,0 +1,241 @@ | |||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later OR MIT | ||||||
|  |  | ||||||
|  | #include "qcom-ipq4019.dtsi" | ||||||
|  | #include <dt-bindings/gpio/gpio.h> | ||||||
|  | #include <dt-bindings/input/input.h> | ||||||
|  | #include <dt-bindings/soc/qcom,tcsr.h> | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	model = "D-Link DAP 2610"; | ||||||
|  | 	compatible = "dlink,dap-2610"; | ||||||
|  |  | ||||||
|  | 	aliases { | ||||||
|  | 		led-boot = &led_red; | ||||||
|  | 		led-failsafe = &led_red; | ||||||
|  | 		led-running = &led_green; | ||||||
|  | 		led-upgrade = &led_red; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	soc { | ||||||
|  | 		edma@c080000 { | ||||||
|  | 			qcom,num_gmac = <1>; | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@1949000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1949000 0x100>; | ||||||
|  | 			qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess_tcsr@1953000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1953000 0x1000>; | ||||||
|  | 			qcom,ess-interface-select = <TCSR_ESS_PSGMII>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@1957000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1957000 0x100>; | ||||||
|  | 			qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		rng@22000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		crypto@8e3a000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		watchdog@b017000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess-switch@c000000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 			switch_lan_bmp = <0x20>; | ||||||
|  | 			switch_wan_bmp = <0x00>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess-psgmii@98000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	leds { | ||||||
|  | 		compatible = "gpio-leds"; | ||||||
|  |  | ||||||
|  | 		led_red: red { | ||||||
|  | 			label = "red:power"; | ||||||
|  | 			gpios = <&tlmm 4 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		led_green: green { | ||||||
|  | 			label = "green:power"; | ||||||
|  | 			gpios = <&tlmm 5 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	keys { | ||||||
|  | 		compatible = "gpio-keys"; | ||||||
|  |  | ||||||
|  | 		reset { | ||||||
|  | 			label = "reset"; | ||||||
|  | 			gpios = <&tlmm 63 GPIO_ACTIVE_LOW>; | ||||||
|  | 			linux,code = <KEY_RESTART>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp1_spi1 { | ||||||
|  | 	pinctrl-0 = <&spi_0_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	status = "okay"; | ||||||
|  | 	cs-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>; | ||||||
|  |  | ||||||
|  | 	flash@0 { | ||||||
|  | 		compatible = "jedec,spi-nor"; | ||||||
|  | 		reg = <0>; | ||||||
|  | 		spi-max-frequency = <24000000>; | ||||||
|  |  | ||||||
|  | 		partitions { | ||||||
|  | 			#address-cells = <1>; | ||||||
|  | 			#size-cells = <1>; | ||||||
|  | 			compatible = "fixed-partitions"; | ||||||
|  |  | ||||||
|  | 			partition@0 { | ||||||
|  | 				label = "SBL1"; | ||||||
|  | 				reg = <0x0 0x40000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition@40000 { | ||||||
|  | 				label = "MIBIB"; | ||||||
|  | 				reg = <0x40000 0x20000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition@60000 { | ||||||
|  | 				label = "QSEE"; | ||||||
|  | 				reg = <0x60000 0x60000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition@c0000 { | ||||||
|  | 				label = "CDT"; | ||||||
|  | 				reg = <0xc0000 0x10000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition@d0000 { | ||||||
|  | 				label = "DDRPARAMS"; | ||||||
|  | 				reg = <0xd0000 0x10000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition@e0000 { | ||||||
|  | 				label = "APPSBLENV"; | ||||||
|  | 				reg = <0xe0000 0x10000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition@f0000 { | ||||||
|  | 				label = "APPSBL"; | ||||||
|  | 				reg = <0xf0000 0x80000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition@170000 { | ||||||
|  | 				label = "ART"; | ||||||
|  | 				reg = <0x170000 0x10000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition@180000 { | ||||||
|  | 				compatible = "wrg"; | ||||||
|  | 				label = "firmware"; | ||||||
|  | 				reg = <0x180000 0xdc0000>; | ||||||
|  | 			}; | ||||||
|  | 			partition@fb0000 { | ||||||
|  | 				label = "rgbd"; | ||||||
|  | 				reg = <0xfb0000 0x10000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition@fc0000 { | ||||||
|  | 				label = "bdcfg"; | ||||||
|  | 				reg = <0xfc0000 0x10000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition@fd0000 { | ||||||
|  | 				label = "langpack"; | ||||||
|  | 				reg = <0xfd0000 0x20000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition@ff0000 { | ||||||
|  | 				label = "certificate"; | ||||||
|  | 				reg = <0xff0000 0x10000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition@f40000 { | ||||||
|  | 				label = "captival"; | ||||||
|  | 				reg = <0xf40000 0x70000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp_dma { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp1_uart1 { | ||||||
|  | 	pinctrl-0 = <&serial_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &cryptobam { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &gmac0 { | ||||||
|  | 	qcom,phy_mdio_addr = <4>; | ||||||
|  | 	qcom,poll_required = <1>; | ||||||
|  | 	qcom,forced_speed = <1000>; | ||||||
|  | 	qcom,forced_duplex = <1>; | ||||||
|  | 	vlan_tag = <1 0x20>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &mdio { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &tlmm { | ||||||
|  | 	serial_pins: serial_pinmux { | ||||||
|  | 		mux { | ||||||
|  | 			pins = "gpio60", "gpio61"; | ||||||
|  | 			function = "blsp_uart0"; | ||||||
|  | 			bias-disable; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	spi_0_pins: spi_0_pinmux { | ||||||
|  | 		mux { | ||||||
|  | 			function = "blsp_spi0"; | ||||||
|  | 			pins = "gpio55", "gpio56", "gpio57"; | ||||||
|  | 			drive-strength = <12>; | ||||||
|  | 			bias-disable; | ||||||
|  | 		}; | ||||||
|  | 		mux_cs { | ||||||
|  | 			function = "gpio"; | ||||||
|  | 			pins = "gpio54"; | ||||||
|  | 			drive-strength = <2>; | ||||||
|  | 			bias-disable; | ||||||
|  | 			output-high; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi0 { | ||||||
|  | 	status = "okay"; | ||||||
|  | 	qcom,ath10k-calibration-variant = "dlink,dap-2610"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi1 { | ||||||
|  | 	status = "okay"; | ||||||
|  | 	qcom,ath10k-calibration-variant = "dlink,dap-2610"; | ||||||
|  | }; | ||||||
| @@ -0,0 +1,277 @@ | |||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later OR MIT | ||||||
|  |  | ||||||
|  | #include "qcom-ipq4019.dtsi" | ||||||
|  | #include <dt-bindings/gpio/gpio.h> | ||||||
|  | #include <dt-bindings/input/input.h> | ||||||
|  | #include <dt-bindings/soc/qcom,tcsr.h> | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	model = "Linksys EA6350v3"; | ||||||
|  | 	compatible = "linksys,ea6350v3"; | ||||||
|  |  | ||||||
|  | 	aliases { | ||||||
|  | 		led-boot = &power; | ||||||
|  | 		led-failsafe = &power; | ||||||
|  | 		led-running = &power; | ||||||
|  | 		led-upgrade = &power; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	soc { | ||||||
|  | 		rng@22000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		mdio@90000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess-psgmii@98000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@1949000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1949000 0x100>; | ||||||
|  | 			qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@194b000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x194b000 0x100>; | ||||||
|  | 			qcom,usb-hsphy-mode-select = <TCSR_USB_HSPHY_HOST_MODE>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess_tcsr@1953000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1953000 0x1000>; | ||||||
|  | 			qcom,ess-interface-select = <TCSR_ESS_PSGMII>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@1957000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1957000 0x100>; | ||||||
|  | 			qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		usb2@60f8800 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		usb3@8af8800 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		crypto@8e3a000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		watchdog@b017000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess-switch@c000000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		edma@c080000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	keys { | ||||||
|  | 		compatible = "gpio-keys"; | ||||||
|  |  | ||||||
|  | 		reset { | ||||||
|  | 			label = "reset"; | ||||||
|  | 			gpios = <&tlmm 63 GPIO_ACTIVE_LOW>; | ||||||
|  | 			linux,code = <KEY_RESTART>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		wps { | ||||||
|  | 			label = "wps"; | ||||||
|  | 			gpios = <&tlmm 0 GPIO_ACTIVE_LOW>; | ||||||
|  | 			linux,code = <KEY_WPS_BUTTON>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	leds { | ||||||
|  | 		compatible = "gpio-leds"; | ||||||
|  |  | ||||||
|  | 		power: status { | ||||||
|  | 			label = "green:status"; | ||||||
|  | 			gpios = <&tlmm 2 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp1_uart1 { | ||||||
|  | 	pinctrl-0 = <&serial_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &cryptobam { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi0 { | ||||||
|  | 	status = "okay"; | ||||||
|  | 	qcom,ath10k-calibration-variant = "linksys-ea6350v3"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi1 { | ||||||
|  | 	status = "okay"; | ||||||
|  | 	qcom,ath10k-calibration-variant = "linksys-ea6350v3"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  |  | ||||||
|  | &blsp_dma { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &tlmm { | ||||||
|  | 	serial_pins: serial_pinmux { | ||||||
|  | 		mux { | ||||||
|  | 			pins = "gpio60", "gpio61"; | ||||||
|  | 			function = "blsp_uart0"; | ||||||
|  | 			bias-disable; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	spi_0_pins: spi_0_pinmux { | ||||||
|  | 		mux { | ||||||
|  | 			function = "blsp_spi0"; | ||||||
|  | 			pins = "gpio55", "gpio56", "gpio57"; | ||||||
|  | 			drive-strength = <12>; | ||||||
|  | 			bias-disable; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		mux_cs { | ||||||
|  | 			function = "gpio"; | ||||||
|  | 			pins = "gpio54", "gpio59"; | ||||||
|  | 			drive-strength = <2>; | ||||||
|  | 			bias-disable; | ||||||
|  | 			output-high; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp1_spi1 { /* BLSP1 QUP1 */ | ||||||
|  | 	pinctrl-0 = <&spi_0_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	status = "okay"; | ||||||
|  | 	cs-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>, | ||||||
|  | 		   <&tlmm 59 GPIO_ACTIVE_HIGH>; | ||||||
|  |  | ||||||
|  | 	flash@0 { | ||||||
|  | 		compatible = "jedec,spi-nor"; | ||||||
|  | 		reg = <0>; | ||||||
|  | 		spi-max-frequency = <24000000>; | ||||||
|  |  | ||||||
|  | 		partitions { | ||||||
|  | 			compatible = "fixed-partitions"; | ||||||
|  | 			#address-cells = <1>; | ||||||
|  | 			#size-cells = <1>; | ||||||
|  |  | ||||||
|  | 			SBL1@0 { | ||||||
|  | 				label = "SBL1"; | ||||||
|  | 				reg = <0x00000000 0x00040000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			MBIB@40000 { | ||||||
|  | 				label = "MIBIB"; | ||||||
|  | 				reg = <0x00040000 0x00020000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			QSEE@60000 { | ||||||
|  | 				label = "QSEE"; | ||||||
|  | 				reg = <0x00060000 0x00060000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			CDT@c0000 { | ||||||
|  | 				label = "CDT"; | ||||||
|  | 				reg = <0x000c0000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			APPSBLENV@d0000 { | ||||||
|  | 				label = "APPSBLENV"; | ||||||
|  | 				reg = <0x000d0000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			APPSBL@e0000 { | ||||||
|  | 				label = "APPSBL"; /* uboot */ | ||||||
|  | 				reg = <0x000e0000 0x00080000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			ART@160000 { | ||||||
|  | 				label = "ART"; | ||||||
|  | 				reg = <0x00160000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			u_env@170000 { | ||||||
|  | 				label = "u_env"; | ||||||
|  | 				reg = <0x00170000 0x00020000>; | ||||||
|  | 			}; | ||||||
|  | 			s_env@190000 { | ||||||
|  | 				label = "s_env"; | ||||||
|  | 				reg = <0x00190000 0x00020000>; | ||||||
|  | 			}; | ||||||
|  | 			devinfo@1b0000 { | ||||||
|  | 				label = "devinfo"; | ||||||
|  | 				reg = <0x001b0000 0x00010000>; | ||||||
|  | 			}; | ||||||
|  | 			/* 0x001c0000 - 0x00200000 unused */ | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	flash@1 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		compatible = "spi-nand"; | ||||||
|  | 		reg = <1>; | ||||||
|  | 		spi-max-frequency = <24000000>; | ||||||
|  |  | ||||||
|  | 		partitions { | ||||||
|  | 			compatible = "fixed-partitions"; | ||||||
|  | 			#address-cells = <1>; | ||||||
|  | 			#size-cells = <1>; | ||||||
|  |  | ||||||
|  | 			kernel@0 { | ||||||
|  | 				label = "kernel"; | ||||||
|  | 				reg = <0x00000000 0x02800000>; | ||||||
|  | 			}; | ||||||
|  | 			rootfs@300000 { | ||||||
|  | 				label = "rootfs"; | ||||||
|  | 				reg = <0x00300000 0x02500000>; | ||||||
|  | 			}; | ||||||
|  | 			alt_kernel@2800000 { | ||||||
|  | 				label = "alt_kernel"; | ||||||
|  | 				reg = <0x02800000 0x02800000>; | ||||||
|  | 			}; | ||||||
|  | 			alt_rootfs@2b00000 { | ||||||
|  | 				label = "alt_rootfs"; | ||||||
|  | 				reg = <0x02b00000 0x02500000>; | ||||||
|  | 			}; | ||||||
|  | 			sysdiag@5000000 { | ||||||
|  | 				label = "sysdiag"; | ||||||
|  | 				reg = <0x05000000 0x00100000>; | ||||||
|  | 			}; | ||||||
|  | 			syscfg@5100000 { | ||||||
|  | 				label = "syscfg"; | ||||||
|  | 				reg = <0x05100000 0x02F00000>; | ||||||
|  | 			}; | ||||||
|  | 			/* 0x00000000 - 0x08000000: 128 MiB */ | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usb3_ss_phy { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usb3_hs_phy { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usb2_hs_phy { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
| @@ -0,0 +1,235 @@ | |||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later | ||||||
|  |  | ||||||
|  | #include "qcom-ipq4019.dtsi" | ||||||
|  | #include <dt-bindings/gpio/gpio.h> | ||||||
|  | #include <dt-bindings/input/input.h> | ||||||
|  | #include <dt-bindings/soc/qcom,tcsr.h> | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	model = "EnGenius EAP1300"; | ||||||
|  | 	compatible = "engenius,eap1300"; | ||||||
|  |  | ||||||
|  | 	soc { | ||||||
|  | 		rng@22000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		mdio@90000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess-psgmii@98000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@1949000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1949000 0x100>; | ||||||
|  | 			qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess_tcsr@1953000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1953000 0x1000>; | ||||||
|  | 			qcom,ess-interface-select = <TCSR_ESS_PSGMII>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@1957000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1957000 0x100>; | ||||||
|  | 			qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		crypto@8e3a000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		watchdog@b017000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess-switch@c000000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		edma@c080000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	keys { | ||||||
|  | 		compatible = "gpio-keys"; | ||||||
|  |  | ||||||
|  | 		reset { | ||||||
|  | 			label = "reset"; | ||||||
|  | 			gpios = <&tlmm 18 GPIO_ACTIVE_HIGH>; | ||||||
|  | 			linux,code = <KEY_RESTART>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	aliases { | ||||||
|  | 		led-boot = &power; | ||||||
|  | 		led-failsafe = &power; | ||||||
|  | 		led-running = &power; | ||||||
|  | 		led-upgrade = &power; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	leds { | ||||||
|  | 		compatible = "gpio-leds"; | ||||||
|  |  | ||||||
|  | 		power: orange { | ||||||
|  | 			label = "orange:power"; | ||||||
|  | 			gpios = <&tlmm 58 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		lan { | ||||||
|  | 			label = "blue:lan"; | ||||||
|  | 			gpios = <&tlmm 2 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		mesh { | ||||||
|  | 			label = "blue:mesh"; | ||||||
|  | 			gpios = <&tlmm 1 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		wlan2g { | ||||||
|  | 			label = "blue:wlan2g"; | ||||||
|  | 			gpios = <&tlmm 3 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		wlan5g { | ||||||
|  | 			label = "yellow:wlan5g"; | ||||||
|  | 			gpios = <&tlmm 0 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &tlmm { | ||||||
|  | 	serial_pins: serial_pinmux { | ||||||
|  | 		mux { | ||||||
|  | 			pins = "gpio60", "gpio61"; | ||||||
|  | 			function = "blsp_uart0"; | ||||||
|  | 			bias-disable; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	spi_0_pins: spi_0_pinmux { | ||||||
|  | 		pin { | ||||||
|  | 			function = "blsp_spi0"; | ||||||
|  | 			pins = "gpio54", "gpio55", "gpio56", "gpio57"; | ||||||
|  | 			drive-strength = <12>; | ||||||
|  | 			bias-disable; | ||||||
|  | 		}; | ||||||
|  | 		pin_cs { | ||||||
|  | 			function = "gpio"; | ||||||
|  | 			pins = "gpio54"; | ||||||
|  | 			drive-strength = <2>; | ||||||
|  | 			bias-disable; | ||||||
|  | 			output-high; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp_dma { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp1_spi1 { | ||||||
|  | 	pinctrl-0 = <&spi_0_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	status = "okay"; | ||||||
|  | 	cs-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>; | ||||||
|  |  | ||||||
|  | 	m25p80@0 { | ||||||
|  | 		compatible = "jedec,spi-nor"; | ||||||
|  | 		reg = <0>; | ||||||
|  | 		spi-max-frequency = <24000000>; | ||||||
|  | 		partitions { | ||||||
|  | 			compatible = "fixed-partitions"; | ||||||
|  | 			#address-cells = <1>; | ||||||
|  | 			#size-cells = <1>; | ||||||
|  |  | ||||||
|  | 			partition@0 { | ||||||
|  | 				label = "0:SBL1"; | ||||||
|  | 				reg = <0x00000000 0x00040000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition1@40000 { | ||||||
|  | 				label = "0:MIBIB"; | ||||||
|  | 				reg = <0x00040000 0x00020000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition2@60000 { | ||||||
|  | 				label = "0:QSEE"; | ||||||
|  | 				reg = <0x00060000 0x00060000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition3@c0000 { | ||||||
|  | 				label = "0:CDT"; | ||||||
|  | 				reg = <0x000c0000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition4@d0000 { | ||||||
|  | 				label = "0:DDRPARAMS"; | ||||||
|  | 				reg = <0x000d0000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition5@e0000 { | ||||||
|  | 				label = "0:APPSBLENV"; | ||||||
|  | 				reg = <0x000e0000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition6@f0000 { | ||||||
|  | 				label = "0:APPSBL"; | ||||||
|  | 				reg = <0x000f0000 0x00090000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition7@180000 { | ||||||
|  | 				label = "0:ART"; | ||||||
|  | 				reg = <0x00180000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition8@190000 { | ||||||
|  | 				compatible = "denx,fit"; | ||||||
|  | 				label = "firmware"; | ||||||
|  | 				reg = <0x190000 0x1dc0000>; | ||||||
|  | 			}; | ||||||
|  | 			partition9@1f50000 { | ||||||
|  | 				label = "u-boot-env"; | ||||||
|  | 				reg = <0x01f50000 0x00010000>; | ||||||
|  | 			}; | ||||||
|  | 			partition10@1f60000 { | ||||||
|  | 				label = "userconfig"; | ||||||
|  | 				reg = <0x01f60000 0x000a0000>; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp1_uart1 { | ||||||
|  | 	pinctrl-0 = <&serial_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &cryptobam { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &gmac0 { | ||||||
|  | 	vlan_tag = <2 0x20>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &gmac1 { | ||||||
|  | 	vlan_tag = <1 0x10>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi0 { | ||||||
|  | 	status = "okay"; | ||||||
|  | 	qcom,ath10k-calibration-variant = "EnGenius-EAP1300"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi1 { | ||||||
|  | 	status = "okay"; | ||||||
|  | 	qcom,ath10k-calibration-variant = "EnGenius-EAP1300"; | ||||||
|  | }; | ||||||
| @@ -0,0 +1,333 @@ | |||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later OR MIT | ||||||
|  |  | ||||||
|  | #include "qcom-ipq4019.dtsi" | ||||||
|  | #include <dt-bindings/gpio/gpio.h> | ||||||
|  | #include <dt-bindings/input/input.h> | ||||||
|  | #include <dt-bindings/soc/qcom,tcsr.h> | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	model = "Edgecore ECW5211"; | ||||||
|  | 	compatible = "edgecore,ecw5211"; | ||||||
|  |  | ||||||
|  | 	aliases { | ||||||
|  | 		led-boot = &led_power; | ||||||
|  | 		led-failsafe = &led_power; | ||||||
|  | 		led-running = &led_power; | ||||||
|  | 		led-upgrade = &led_power; | ||||||
|  | 		label-mac-device = &gmac0; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	chosen { | ||||||
|  | 		bootargs-append = " root=/dev/ubiblock0_1"; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	keys { | ||||||
|  | 		compatible = "gpio-keys"; | ||||||
|  |  | ||||||
|  | 		reset { | ||||||
|  | 			label = "reset"; | ||||||
|  | 			gpios = <&tlmm 63 GPIO_ACTIVE_LOW>; | ||||||
|  | 			linux,code = <KEY_RESTART>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	leds { | ||||||
|  | 		compatible = "gpio-leds"; | ||||||
|  |  | ||||||
|  | 		led_power: power { | ||||||
|  | 			label = "yellow:power"; | ||||||
|  | 			gpios = <&tlmm 5 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		wlan2g { | ||||||
|  | 			label = "green:wlan2g"; | ||||||
|  | 			gpios = <&tlmm 3 GPIO_ACTIVE_HIGH>; | ||||||
|  | 			linux,default-trigger = "phy0tpt"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		wlan5g { | ||||||
|  | 			label = "green:wlan5g"; | ||||||
|  | 			gpios = <&tlmm 2 GPIO_ACTIVE_HIGH>; | ||||||
|  | 			linux,default-trigger = "phy1tpt"; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	soc { | ||||||
|  | 		rng@22000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess-psgmii@98000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		counter@4a1000 { | ||||||
|  | 			compatible = "qcom,qca-gcnt"; | ||||||
|  | 			reg = <0x4a1000 0x4>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@1949000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1949000 0x100>; | ||||||
|  | 			qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@194b000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x194b000 0x100>; | ||||||
|  | 			qcom,usb-hsphy-mode-select = <TCSR_USB_HSPHY_HOST_MODE>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess_tcsr@1953000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1953000 0x1000>; | ||||||
|  | 			qcom,ess-interface-select = <TCSR_ESS_PSGMII>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@1957000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1957000 0x100>; | ||||||
|  | 			qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		usb2@60f8800 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		usb3@8af8800 { | ||||||
|  | 			status = "okay"; | ||||||
|  |  | ||||||
|  | 			dwc3@8a00000 { | ||||||
|  | 				phys = <&usb3_hs_phy>; | ||||||
|  | 				phy-names = "usb2-phy"; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		crypto@8e3a000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		watchdog@b017000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess-switch@c000000 { | ||||||
|  | 			status = "okay"; | ||||||
|  |  | ||||||
|  | 			switch_lan_bmp = <0x10>; | ||||||
|  | 			switch_wan_bmp = <0x20>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		edma@c080000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &tlmm { | ||||||
|  | 	mdio_pins: mdio_pinmux { | ||||||
|  | 		mux_mdio { | ||||||
|  | 			pins = "gpio53"; | ||||||
|  | 			function = "mdio"; | ||||||
|  | 			bias-pull-up; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		mux_mdc { | ||||||
|  | 			pins = "gpio52"; | ||||||
|  | 			function = "mdc"; | ||||||
|  | 			bias-pull-up; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	serial_pins: serial_pinmux { | ||||||
|  | 		mux { | ||||||
|  | 			pins = "gpio60", "gpio61"; | ||||||
|  | 			function = "blsp_uart0"; | ||||||
|  | 			bias-disable; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	spi0_pins: spi0_pinmux { | ||||||
|  | 		pin { | ||||||
|  | 			function = "blsp_spi0"; | ||||||
|  | 			pins = "gpio55", "gpio56", "gpio57"; | ||||||
|  | 			drive-strength = <2>; | ||||||
|  | 			bias-disable; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		pin_cs { | ||||||
|  | 			function = "gpio"; | ||||||
|  | 			pins = "gpio54", "gpio4"; | ||||||
|  | 			drive-strength = <2>; | ||||||
|  | 			bias-disable; | ||||||
|  | 			output-high; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	i2c0_pins: i2c0_pinmux { | ||||||
|  | 		mux_i2c { | ||||||
|  | 			function = "blsp_i2c0"; | ||||||
|  | 			pins = "gpio58", "gpio59"; | ||||||
|  | 			drive-strength = <16>; | ||||||
|  | 			bias-disable; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp_dma { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp1_spi1 { | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	pinctrl-0 = <&spi0_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	cs-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>, <&tlmm 4 GPIO_ACTIVE_HIGH>; | ||||||
|  |  | ||||||
|  | 	flash@0 { | ||||||
|  | 		compatible = "jedec,spi-nor"; | ||||||
|  | 		reg = <0>; | ||||||
|  | 		spi-max-frequency = <24000000>; | ||||||
|  |  | ||||||
|  | 		partitions { | ||||||
|  | 			compatible = "fixed-partitions"; | ||||||
|  | 			#address-cells = <1>; | ||||||
|  | 			#size-cells = <1>; | ||||||
|  |  | ||||||
|  | 			partition@0 { | ||||||
|  | 				label = "0:SBL1"; | ||||||
|  | 				reg = <0x00000000 0x00040000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@40000 { | ||||||
|  | 				label = "0:MIBIB"; | ||||||
|  | 				reg = <0x00040000 0x00020000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@60000 { | ||||||
|  | 				label = "0:QSEE"; | ||||||
|  | 				reg = <0x00060000 0x00060000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@c0000 { | ||||||
|  | 				label = "0:CDT"; | ||||||
|  | 				reg = <0x000c0000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@d0000 { | ||||||
|  | 				label = "0:DDRPARAMS"; | ||||||
|  | 				reg = <0x000d0000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@e0000 { | ||||||
|  | 				label = "0:APPSBLENV"; /* uboot env */ | ||||||
|  | 				reg = <0x000e0000 0x00010000>; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@f0000 { | ||||||
|  | 				label = "0:APPSBL"; /* uboot */ | ||||||
|  | 				reg = <0x000f0000 0x00080000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@170000 { | ||||||
|  | 				label = "0:ART"; | ||||||
|  | 				reg = <0x00170000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	flash@1 { | ||||||
|  | 		compatible = "spi-nand"; | ||||||
|  | 		reg = <1>; | ||||||
|  | 		spi-max-frequency = <24000000>; | ||||||
|  |  | ||||||
|  | 		partitions { | ||||||
|  | 			compatible = "fixed-partitions"; | ||||||
|  | 			#address-cells = <1>; | ||||||
|  | 			#size-cells = <1>; | ||||||
|  |  | ||||||
|  | 			partition@0 { | ||||||
|  | 				label = "rootfs"; | ||||||
|  | 				reg = <0x00000000 0x04000000>; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@1 { | ||||||
|  | 				label = "rootfs1"; | ||||||
|  | 				reg = <0x00000000 0x04000000>; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@4000000 { | ||||||
|  | 				label = "rootfs2"; | ||||||
|  | 				reg = <0x04000000 0x04000000>; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp1_i2c3 { | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	pinctrl-0 = <&i2c0_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  |  | ||||||
|  | 	tpm@29 { | ||||||
|  | 		compatible = "atmel,at97sc3204t"; | ||||||
|  | 		reg = <0x29>; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp1_uart1 { | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	pinctrl-0 = <&serial_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &cryptobam { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &mdio { | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	pinctrl-0 = <&mdio_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &gmac0 { | ||||||
|  | 	qcom,poll_required = <1>; | ||||||
|  | 	qcom,phy_mdio_addr = <4>; | ||||||
|  | 	vlan_tag = <2 0x20>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &gmac1 { | ||||||
|  | 	qcom,poll_required = <1>; | ||||||
|  | 	qcom,phy_mdio_addr = <3>; | ||||||
|  | 	vlan_tag = <1 0x10>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi0 { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi1 { | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	qcom,ath10k-calibration-variant = "ALFA-Network-AP120C-AC"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usb3_hs_phy { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usb2_hs_phy { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
| @@ -0,0 +1,233 @@ | |||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later | ||||||
|  |  | ||||||
|  | #include "qcom-ipq4019.dtsi" | ||||||
|  | #include <dt-bindings/gpio/gpio.h> | ||||||
|  | #include <dt-bindings/input/input.h> | ||||||
|  | #include <dt-bindings/soc/qcom,tcsr.h> | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	model = "EnGenius EMD1"; | ||||||
|  | 	compatible = "engenius,emd1"; | ||||||
|  |  | ||||||
|  | 	aliases { | ||||||
|  | 		led-boot = &led_power; | ||||||
|  | 		led-failsafe = &led_power; | ||||||
|  | 		led-running = &led_power; | ||||||
|  | 		led-upgrade = &led_power; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	soc { | ||||||
|  | 		rng@22000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		mdio@90000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess-psgmii@98000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@1949000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1949000 0x100>; | ||||||
|  | 			qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess_tcsr@1953000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1953000 0x1000>; | ||||||
|  | 			qcom,ess-interface-select = <TCSR_ESS_PSGMII>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@1957000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1957000 0x100>; | ||||||
|  | 			qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		crypto@8e3a000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		watchdog@b017000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess-switch@c000000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 			switch_lan_bmp = <0x20>; | ||||||
|  | 			switch_wan_bmp = <0x00>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		edma@c080000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 			qcom,num_gmac = <1>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	keys { | ||||||
|  | 		compatible = "gpio-keys"; | ||||||
|  |  | ||||||
|  | 		reset { | ||||||
|  | 			label = "reset"; | ||||||
|  | 			gpios = <&tlmm 63 GPIO_ACTIVE_LOW>; | ||||||
|  | 			linux,code = <KEY_RESTART>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	leds { | ||||||
|  | 		compatible = "gpio-leds"; | ||||||
|  |  | ||||||
|  | 		led_power: power { | ||||||
|  | 			label = "white:power"; | ||||||
|  | 			gpios = <&tlmm 58 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		wlan2g { | ||||||
|  | 			label = "red:wlan2g"; | ||||||
|  | 			gpios = <&tlmm 2 GPIO_ACTIVE_HIGH>; | ||||||
|  | 			linux,default-trigger = "phy0tpt"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		wlan5g { | ||||||
|  | 			label = "blue:wlan5g"; | ||||||
|  | 			gpios = <&tlmm 3 GPIO_ACTIVE_HIGH>; | ||||||
|  | 			linux,default-trigger = "phy1tpt"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		mesh { | ||||||
|  | 			label = "orange:mesh"; | ||||||
|  | 			gpios = <&tlmm 0 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &tlmm { | ||||||
|  | 	serial_pins: serial_pinmux { | ||||||
|  | 		mux { | ||||||
|  | 			pins = "gpio60", "gpio61"; | ||||||
|  | 			function = "blsp_uart0"; | ||||||
|  | 			bias-disable; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	spi_0_pins: spi_0_pinmux { | ||||||
|  | 		pin { | ||||||
|  | 			function = "blsp_spi0"; | ||||||
|  | 			pins = "gpio54", "gpio55", "gpio56", "gpio57"; | ||||||
|  | 			drive-strength = <12>; | ||||||
|  | 			bias-disable; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		pin_cs { | ||||||
|  | 			function = "gpio"; | ||||||
|  | 			pins = "gpio54"; | ||||||
|  | 			drive-strength = <2>; | ||||||
|  | 			bias-disable; | ||||||
|  | 			output-high; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp_dma { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp1_spi1 { | ||||||
|  | 	pinctrl-0 = <&spi_0_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	status = "okay"; | ||||||
|  | 	cs-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>; | ||||||
|  |  | ||||||
|  | 	flash@0 { | ||||||
|  | 		compatible = "jedec,spi-nor"; | ||||||
|  | 		reg = <0>; | ||||||
|  | 		spi-max-frequency = <24000000>; | ||||||
|  | 		partitions { | ||||||
|  | 			compatible = "fixed-partitions"; | ||||||
|  | 			#address-cells = <1>; | ||||||
|  | 			#size-cells = <1>; | ||||||
|  |  | ||||||
|  | 			partition0@0 { | ||||||
|  | 				label = "0:SBL1"; | ||||||
|  | 				reg = <0x00000000 0x00040000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition1@40000 { | ||||||
|  | 				label = "0:MIBIB"; | ||||||
|  | 				reg = <0x00040000 0x00020000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition2@60000 { | ||||||
|  | 				label = "0:QSEE"; | ||||||
|  | 				reg = <0x00060000 0x00060000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition3@c0000 { | ||||||
|  | 				label = "0:CDT"; | ||||||
|  | 				reg = <0x000c0000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition4@d0000 { | ||||||
|  | 				label = "0:DDRPARAMS"; | ||||||
|  | 				reg = <0x000d0000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition5@e0000 { | ||||||
|  | 				label = "0:APPSBLENV"; | ||||||
|  | 				reg = <0x000e0000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition6@f0000 { | ||||||
|  | 				label = "0:APPSBL"; | ||||||
|  | 				reg = <0x000f0000 0x00080000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition7@170000 { | ||||||
|  | 				label = "0:ART"; | ||||||
|  | 				reg = <0x00170000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition8@180000 { | ||||||
|  | 				label = "userconfig"; | ||||||
|  | 				reg = <0x00180000 0x00080000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition9@200000 { | ||||||
|  | 				compatible = "denx,fit"; | ||||||
|  | 				label = "firmware"; | ||||||
|  | 				reg = <0x200000 0x01e00000>; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp1_uart1 { | ||||||
|  | 	pinctrl-0 = <&serial_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &gmac0 { | ||||||
|  | 	qcom,phy_mdio_addr = <4>; | ||||||
|  | 	qcom,poll_required = <1>; | ||||||
|  | 	qcom,forced_speed = <1000>; | ||||||
|  | 	qcom,forced_duplex = <1>; | ||||||
|  | 	vlan_tag = <1 0x20>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &cryptobam { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi0 { | ||||||
|  | 	status = "okay"; | ||||||
|  | 	qcom,ath10k-calibration-variant = "EnGenius-EMD1"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi1 { | ||||||
|  | 	status = "okay"; | ||||||
|  | 	qcom,ath10k-calibration-variant = "EnGenius-EMD1"; | ||||||
|  | }; | ||||||
| @@ -0,0 +1,235 @@ | |||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later | ||||||
|  |  | ||||||
|  | #include "qcom-ipq4019.dtsi" | ||||||
|  | #include <dt-bindings/gpio/gpio.h> | ||||||
|  | #include <dt-bindings/input/input.h> | ||||||
|  | #include <dt-bindings/soc/qcom,tcsr.h> | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	model = "EnGenius EMR3500"; | ||||||
|  | 	compatible = "engenius,emr3500"; | ||||||
|  |  | ||||||
|  | 	soc { | ||||||
|  | 		rng@22000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		mdio@90000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess-psgmii@98000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@1949000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1949000 0x100>; | ||||||
|  | 			qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess_tcsr@1953000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1953000 0x1000>; | ||||||
|  | 			qcom,ess-interface-select = <TCSR_ESS_PSGMII>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@1957000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1957000 0x100>; | ||||||
|  | 			qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		usb2_hs_phy: hsphy@a8000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		crypto@8e3a000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		watchdog@b017000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess-switch@c000000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		edma@c080000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	keys { | ||||||
|  | 		compatible = "gpio-keys"; | ||||||
|  |  | ||||||
|  | 		reset { | ||||||
|  | 			label = "reset"; | ||||||
|  | 			gpios = <&tlmm 59 GPIO_ACTIVE_LOW>; | ||||||
|  | 			linux,code = <KEY_RESTART>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	aliases { | ||||||
|  | 		led-boot = &power; | ||||||
|  | 		led-failsafe = &power; | ||||||
|  | 		led-running = &power; | ||||||
|  | 		led-upgrade = &power; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	leds { | ||||||
|  | 		compatible = "gpio-leds"; | ||||||
|  |  | ||||||
|  | 		power: white { | ||||||
|  | 			label = "white:power"; | ||||||
|  | 			gpios = <&tlmm 4 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		blue { | ||||||
|  | 			label = "blue"; | ||||||
|  | 			gpios = <&tlmm 2 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		red { | ||||||
|  | 			label = "red"; | ||||||
|  | 			gpios = <&tlmm 0 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		orange { | ||||||
|  | 			label = "orange"; | ||||||
|  | 			gpios = <&tlmm 1 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &tlmm { | ||||||
|  | 	serial_pins: serial_pinmux { | ||||||
|  | 		mux { | ||||||
|  | 			pins = "gpio60", "gpio61"; | ||||||
|  | 			function = "blsp_uart0"; | ||||||
|  | 			bias-disable; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	spi_0_pins: spi_0_pinmux { | ||||||
|  | 		pin { | ||||||
|  | 			function = "blsp_spi0"; | ||||||
|  | 			pins = "gpio54", "gpio55", "gpio56", "gpio57"; | ||||||
|  | 			drive-strength = <12>; | ||||||
|  | 			bias-disable; | ||||||
|  | 		}; | ||||||
|  | 		pin_cs { | ||||||
|  | 			function = "gpio"; | ||||||
|  | 			pins = "gpio54"; | ||||||
|  | 			drive-strength = <2>; | ||||||
|  | 			bias-disable; | ||||||
|  | 			output-high; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp_dma { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp1_spi1 { | ||||||
|  | 	pinctrl-0 = <&spi_0_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	status = "okay"; | ||||||
|  | 	cs-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>; | ||||||
|  |  | ||||||
|  | 	m25p80@0 { | ||||||
|  | 		compatible = "jedec,spi-nor"; | ||||||
|  | 		reg = <0>; | ||||||
|  | 		spi-max-frequency = <24000000>; | ||||||
|  | 		partitions { | ||||||
|  | 			compatible = "fixed-partitions"; | ||||||
|  | 			#address-cells = <1>; | ||||||
|  | 			#size-cells = <1>; | ||||||
|  |  | ||||||
|  | 			partition@0 { | ||||||
|  | 				label = "0:SBL1"; | ||||||
|  | 				reg = <0x00000000 0x00040000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition@40000 { | ||||||
|  | 				label = "0:MIBIB"; | ||||||
|  | 				reg = <0x00040000 0x00020000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition@60000 { | ||||||
|  | 				label = "0:QSEE"; | ||||||
|  | 				reg = <0x00060000 0x00060000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition@c0000 { | ||||||
|  | 				label = "0:CDT"; | ||||||
|  | 				reg = <0x000c0000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition@d0000 { | ||||||
|  | 				label = "0:DDRPARAMS"; | ||||||
|  | 				reg = <0x000d0000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition@e0000 { | ||||||
|  | 				label = "0:APPSBLENV"; | ||||||
|  | 				reg = <0x000e0000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition@f0000 { | ||||||
|  | 				label = "0:APPSBL"; | ||||||
|  | 				reg = <0x000f0000 0x00080000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition@170000 { | ||||||
|  | 				label = "0:ART"; | ||||||
|  | 				reg = <0x00170000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition@180000 { | ||||||
|  | 				label = "userconfig"; | ||||||
|  | 				reg = <0x00180000 0x00080000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition@200000 { | ||||||
|  | 				compatible = "denx,fit"; | ||||||
|  | 				label = "firmware"; | ||||||
|  | 				reg = <0x200000 0x1e00000>; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp1_uart1 { | ||||||
|  | 	pinctrl-0 = <&serial_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &cryptobam { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &gmac0 { | ||||||
|  | 	vlan_tag = <1 0x10>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &gmac1 { | ||||||
|  | 	vlan_tag = <2 0x20>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usb2_hs_phy { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi0 { | ||||||
|  | 	status = "okay"; | ||||||
|  | 	qcom,ath10k-calibration-variant = "EnGenius-EMR3500"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi1 { | ||||||
|  | 	status = "okay"; | ||||||
|  | 	qcom,ath10k-calibration-variant = "EnGenius-EMR3500"; | ||||||
|  | }; | ||||||
| @@ -0,0 +1,265 @@ | |||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later OR MIT | ||||||
|  |  | ||||||
|  | #include "qcom-ipq4019.dtsi" | ||||||
|  | #include <dt-bindings/gpio/gpio.h> | ||||||
|  | #include <dt-bindings/input/input.h> | ||||||
|  | #include <dt-bindings/soc/qcom,tcsr.h> | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	model = "EnGenius ENS620EXT"; | ||||||
|  | 	compatible = "engenius,ens620ext"; | ||||||
|  |  | ||||||
|  | 	memory { | ||||||
|  | 		device_type = "memory"; | ||||||
|  | 		reg = <0x80000000 0x10000000>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	aliases { | ||||||
|  | 		led-boot = &power; | ||||||
|  | 		led-failsafe = &power; | ||||||
|  | 		led-running = &power; | ||||||
|  | 		led-upgrade = &power; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	soc { | ||||||
|  | 		rng@22000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		mdio@90000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess-psgmii@98000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@1949000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1949000 0x100>; | ||||||
|  | 			qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess_tcsr@1953000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1953000 0x1000>; | ||||||
|  | 			qcom,ess-interface-select = <TCSR_ESS_PSGMII>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@1957000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1957000 0x100>; | ||||||
|  | 			qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		crypto@8e3a000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		watchdog@b017000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess-switch@c000000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		edma@c080000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		/* | ||||||
|  | 		 * Disable the broken restart as a workaround for the buggy | ||||||
|  | 		 * 3.0.0/3.0.1 U-boots that ship with the device. | ||||||
|  | 		 * Note: The watchdog is now used to restart this device. | ||||||
|  | 		 */ | ||||||
|  | 		restart@4ab000 { | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	buttons { | ||||||
|  | 		compatible = "gpio-keys"; | ||||||
|  |  | ||||||
|  | 		wps { | ||||||
|  | 			label = "wps"; | ||||||
|  | 			gpios = <&tlmm 63 GPIO_ACTIVE_LOW>; | ||||||
|  | 			linux,code = <KEY_WPS_BUTTON>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	leds { | ||||||
|  | 		compatible = "gpio-leds"; | ||||||
|  |  | ||||||
|  | 		power: power { | ||||||
|  | 			label = "amber:power"; | ||||||
|  | 			gpios = <&tlmm 58 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		lan1 { | ||||||
|  | 			label = "green:lan1"; | ||||||
|  | 			gpios = <&tlmm 1 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		lan2 { | ||||||
|  | 			label = "green:lan2"; | ||||||
|  | 			gpios = <&tlmm 2 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		wlan2g { | ||||||
|  | 			label = "green:wlan2g"; | ||||||
|  | 			gpios = <&tlmm 3 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		wlan5g { | ||||||
|  | 			label = "green:wlan5g"; | ||||||
|  | 			gpios = <&tlmm 0 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &cryptobam { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp_dma { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &tlmm { | ||||||
|  | 	serial_pins: serial_pinmux { | ||||||
|  | 		mux { | ||||||
|  | 			pins = "gpio60", "gpio61"; | ||||||
|  | 			function = "blsp_uart0"; | ||||||
|  | 			bias-disable; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	spi_0_pins: spi_0_pinmux { | ||||||
|  | 		mux { | ||||||
|  | 			function = "blsp_spi0"; | ||||||
|  | 			pins = "gpio55", "gpio56", "gpio57"; | ||||||
|  | 			drive-strength = <12>; | ||||||
|  | 			bias-disable; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		mux_cs { | ||||||
|  | 			function = "gpio"; | ||||||
|  | 			pins = "gpio54"; | ||||||
|  | 			drive-strength = <2>; | ||||||
|  | 			bias-disable; | ||||||
|  | 			output-high; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp1_spi1 { /* BLSP1 QUP1 */ | ||||||
|  | 	pinctrl-0 = <&spi_0_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	status = "okay"; | ||||||
|  | 	cs-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>; | ||||||
|  |  | ||||||
|  | 	flash@0 { | ||||||
|  | 		#address-cells = <1>; | ||||||
|  | 		#size-cells = <0>; | ||||||
|  | 		compatible = "jedec,spi-nor"; | ||||||
|  | 		reg = <0>; | ||||||
|  | 		spi-max-frequency = <50000000>; | ||||||
|  | 		m25p,fast-read; | ||||||
|  |  | ||||||
|  | 		partitions { | ||||||
|  | 			compatible = "fixed-partitions"; | ||||||
|  | 			#address-cells = <1>; | ||||||
|  | 			#size-cells = <1>; | ||||||
|  |  | ||||||
|  | 			partition@0 { | ||||||
|  | 				label = "SBL1"; | ||||||
|  | 				reg = <0x00000000 0x00040000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition@40000 { | ||||||
|  | 				label = "MIBIB"; | ||||||
|  | 				reg = <0x00040000 0x00020000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition@60000 { | ||||||
|  | 				label = "QSEE"; | ||||||
|  | 				reg = <0x00060000 0x00060000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition@c0000 { | ||||||
|  | 				label = "CDT"; | ||||||
|  | 				reg = <0x000c0000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition@d0000 { | ||||||
|  | 				label = "DDRPARAMS"; | ||||||
|  | 				reg = <0x000d0000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition@e0000 { | ||||||
|  | 				label = "APPSBLENV"; /* uboot env*/ | ||||||
|  | 				reg = <0x000e0000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition@f0000 { | ||||||
|  | 				label = "APPSBL"; /* uboot */ | ||||||
|  | 				reg = <0x000f0000 0x00090000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition@180000 { | ||||||
|  | 				label = "ART"; | ||||||
|  | 				reg = <0x00180000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition@190000 { | ||||||
|  | 				compatible = "denx,fit"; | ||||||
|  | 				label = "firmware"; | ||||||
|  | 				reg = <0x00190000 0x14d0000>; | ||||||
|  | 			}; | ||||||
|  | 			partition@1660000 { | ||||||
|  | 				label = "failsafe"; | ||||||
|  | 				reg = <0x01660000 0x008F0000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition@1f50000 { | ||||||
|  | 				label = "u-boot-env"; | ||||||
|  | 				reg = <0x01f50000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition@1f60000 { | ||||||
|  | 				label = "userconfig"; | ||||||
|  | 				reg = <0x01f60000 0x000a0000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp1_uart1 { | ||||||
|  | 	pinctrl-0 = <&serial_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usb3_ss_phy { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usb3_hs_phy { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usb2_hs_phy { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi0 { | ||||||
|  | 	status = "okay"; | ||||||
|  | 	qcom,ath10k-calibration-variant = "EnGenius-ENS620EXT"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi1 { | ||||||
|  | 	status = "okay"; | ||||||
|  | 	qcom,ath10k-calibration-variant = "EnGenius-ENS620EXT"; | ||||||
|  | }; | ||||||
| @@ -0,0 +1,31 @@ | |||||||
|  | /* Copyright (c) 2015, The Linux Foundation. All rights reserved. | ||||||
|  |  * Copyright (c) 2018, David Bauer <mail@david-bauer.net> | ||||||
|  |  * | ||||||
|  |  * Permission to use, copy, modify, and/or distribute this software for any | ||||||
|  |  * purpose with or without fee is hereby granted, provided that the above | ||||||
|  |  * copyright notice and this permission notice appear in all copies. | ||||||
|  |  * | ||||||
|  |  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||||||
|  |  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||||||
|  |  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||||||
|  |  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||||||
|  |  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||||||
|  |  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||||||
|  |  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||||||
|  |  * | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #include "qcom-ipq4018-ex61x0v2.dtsi" | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	model = "Netgear EX6100v2"; | ||||||
|  | 	compatible = "netgear,ex6100v2"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi0 { | ||||||
|  | 	qcom,ath10k-calibration-variant = "Netgear-EX6100v2"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi1 { | ||||||
|  | 	qcom,ath10k-calibration-variant = "Netgear-EX6100v2"; | ||||||
|  | }; | ||||||
| @@ -0,0 +1,31 @@ | |||||||
|  | /* Copyright (c) 2015, The Linux Foundation. All rights reserved. | ||||||
|  |  * Copyright (c) 2018, David Bauer <mail@david-bauer.net> | ||||||
|  |  * | ||||||
|  |  * Permission to use, copy, modify, and/or distribute this software for any | ||||||
|  |  * purpose with or without fee is hereby granted, provided that the above | ||||||
|  |  * copyright notice and this permission notice appear in all copies. | ||||||
|  |  * | ||||||
|  |  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||||||
|  |  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||||||
|  |  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||||||
|  |  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||||||
|  |  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||||||
|  |  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||||||
|  |  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||||||
|  |  * | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #include "qcom-ipq4018-ex61x0v2.dtsi" | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	model = "Netgear EX6150v2"; | ||||||
|  | 	compatible = "netgear,ex6150v2"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi0 { | ||||||
|  | 	qcom,ath10k-calibration-variant = "Netgear-EX6150v2"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi1 { | ||||||
|  | 	qcom,ath10k-calibration-variant = "Netgear-EX6150v2"; | ||||||
|  | }; | ||||||
| @@ -0,0 +1,312 @@ | |||||||
|  | /* Copyright (c) 2015, The Linux Foundation. All rights reserved. | ||||||
|  |  * Copyright (c) 2018, David Bauer <mail@david-bauer.net> | ||||||
|  |  * | ||||||
|  |  * Permission to use, copy, modify, and/or distribute this software for any | ||||||
|  |  * purpose with or without fee is hereby granted, provided that the above | ||||||
|  |  * copyright notice and this permission notice appear in all copies. | ||||||
|  |  * | ||||||
|  |  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||||||
|  |  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||||||
|  |  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||||||
|  |  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||||||
|  |  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||||||
|  |  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||||||
|  |  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||||||
|  |  * | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #include "qcom-ipq4019.dtsi" | ||||||
|  | #include <dt-bindings/gpio/gpio.h> | ||||||
|  | #include <dt-bindings/input/input.h> | ||||||
|  | #include <dt-bindings/soc/qcom,tcsr.h> | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	model = "Netgear EX61X0v2"; | ||||||
|  | 	compatible = "netgear,ex61x0v2"; | ||||||
|  |  | ||||||
|  | 	soc { | ||||||
|  | 		rng@22000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		mdio@90000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess-psgmii@98000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@1949000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1949000 0x100>; | ||||||
|  | 			qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess_tcsr@1953000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1953000 0x1000>; | ||||||
|  | 			qcom,ess-interface-select = <TCSR_ESS_PSGMII>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@1957000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1957000 0x100>; | ||||||
|  | 			qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		crypto@8e3a000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		watchdog@b017000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess-switch@c000000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		edma@c080000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 			qcom,num_gmac = <1>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	aliases { | ||||||
|  | 		led-boot = &power_amber; | ||||||
|  | 		led-failsafe = &power_amber; | ||||||
|  | 		led-running = &power_green; | ||||||
|  | 		led-upgrade = &power_amber; | ||||||
|  | 		label-mac-device = &gmac0; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	keys { | ||||||
|  | 		compatible = "gpio-keys"; | ||||||
|  |  | ||||||
|  | 		wps { | ||||||
|  | 			label = "wps"; | ||||||
|  | 			gpios = <&tlmm 0 GPIO_ACTIVE_LOW>; | ||||||
|  | 			linux,code = <KEY_WPS_BUTTON>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		reset { | ||||||
|  | 			label = "reset"; | ||||||
|  | 			gpios = <&tlmm 63 GPIO_ACTIVE_LOW>; | ||||||
|  | 			linux,code = <KEY_RESTART>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	led_spi { | ||||||
|  | 		compatible = "spi-gpio"; | ||||||
|  | 		#address-cells = <1>; | ||||||
|  | 		#size-cells = <0>; | ||||||
|  |  | ||||||
|  | 		sck-gpios = <&tlmm 5 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		mosi-gpios = <&tlmm 4 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		num-chipselects = <0>; | ||||||
|  |  | ||||||
|  | 		led_gpio: led_gpio@0 { | ||||||
|  | 			compatible = "fairchild,74hc595"; | ||||||
|  | 			reg = <0>; | ||||||
|  | 			gpio-controller; | ||||||
|  | 			#gpio-cells = <2>; | ||||||
|  | 			registers-number = <1>; | ||||||
|  | 			spi-max-frequency = <1000000>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	leds { | ||||||
|  | 		compatible = "gpio-leds"; | ||||||
|  |  | ||||||
|  | 		power_amber: power_amber { | ||||||
|  | 			label = "amber:power"; | ||||||
|  | 			gpios = <&led_gpio 7 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		power_green: power_green { | ||||||
|  | 			label = "green:power"; | ||||||
|  | 			gpios = <&led_gpio 6 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		right { | ||||||
|  | 			label = "blue:right"; | ||||||
|  | 			gpios = <&led_gpio 5 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		left { | ||||||
|  | 			label = "blue:left"; | ||||||
|  | 			gpios = <&led_gpio 4 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		client_green { | ||||||
|  | 			label = "green:client"; | ||||||
|  | 			gpios = <&led_gpio 3 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		client_red { | ||||||
|  | 			label = "red:client"; | ||||||
|  | 			gpios = <&led_gpio 2 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		router_green { | ||||||
|  | 			label = "green:router"; | ||||||
|  | 			gpios = <&led_gpio 1 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		router_red { | ||||||
|  | 			label = "red:router"; | ||||||
|  | 			gpios = <&led_gpio 0 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		wps { | ||||||
|  | 			label = "green:wps"; | ||||||
|  | 			gpios = <&tlmm 1 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &tlmm { | ||||||
|  | 	serial_pins: serial_pinmux { | ||||||
|  | 		mux { | ||||||
|  | 			pins = "gpio60", "gpio61"; | ||||||
|  | 			function = "blsp_uart0"; | ||||||
|  | 			bias-disable; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	spi_0_pins: spi_0_pinmux { | ||||||
|  | 		pin { | ||||||
|  | 			function = "blsp_spi0"; | ||||||
|  | 			pins = "gpio55", "gpio56", "gpio57"; | ||||||
|  | 			drive-strength = <12>; | ||||||
|  | 			bias-disable; | ||||||
|  | 		}; | ||||||
|  | 		pin_cs { | ||||||
|  | 			function = "gpio"; | ||||||
|  | 			pins = "gpio54"; | ||||||
|  | 			drive-strength = <2>; | ||||||
|  | 			bias-disable; | ||||||
|  | 			output-high; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp1_spi1 { | ||||||
|  | 	pinctrl-0 = <&spi_0_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	status = "okay"; | ||||||
|  | 	cs-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>; | ||||||
|  |  | ||||||
|  | 	mx25l12805d@0 { | ||||||
|  | 		compatible = "jedec,spi-nor"; | ||||||
|  | 		reg = <0>; | ||||||
|  | 		spi-max-frequency = <24000000>; | ||||||
|  |  | ||||||
|  | 		partitions { | ||||||
|  | 			compatible = "fixed-partitions"; | ||||||
|  | 			#address-cells = <1>; | ||||||
|  | 			#size-cells = <1>; | ||||||
|  |  | ||||||
|  | 			partition0@0 { | ||||||
|  | 				label = "SBL1"; | ||||||
|  | 				reg = <0x00000000 0x00040000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition1@40000 { | ||||||
|  | 				label = "MIBIB"; | ||||||
|  | 				reg = <0x00040000 0x00020000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition2@60000 { | ||||||
|  | 				label = "QSEE"; | ||||||
|  | 				reg = <0x00060000 0x00060000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition3@c0000 { | ||||||
|  | 				label = "CDT"; | ||||||
|  | 				reg = <0x000c0000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition4@d0000 { | ||||||
|  | 				label = "DDRPARAMS"; | ||||||
|  | 				reg = <0x000d0000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition5@E0000 { | ||||||
|  | 				label = "APPSBLENV"; | ||||||
|  | 				reg = <0x000e0000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition6@F0000 { | ||||||
|  | 				label = "APPSBL"; | ||||||
|  | 				reg = <0x000f0000 0x00080000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition7@170000 { | ||||||
|  | 				label = "ART"; | ||||||
|  | 				reg = <0x00170000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition8@180000 { | ||||||
|  | 				label = "config"; | ||||||
|  | 				reg = <0x00180000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition9@190000 { | ||||||
|  | 				label = "pot"; | ||||||
|  | 				reg = <0x00190000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition10@1a0000 { | ||||||
|  | 				label = "dnidata"; | ||||||
|  | 				reg = <0x001a0000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition11@1b0000 { | ||||||
|  | 				compatible = "denx,fit"; | ||||||
|  | 				label = "firmware"; | ||||||
|  | 				reg = <0x001b0000 0x00e10000>; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition12@fc0000 { | ||||||
|  | 				label = "language"; | ||||||
|  | 				reg = <0x00fc0000 0x00040000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp1_uart1 { | ||||||
|  | 	pinctrl-0 = <&serial_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp_dma { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &cryptobam { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi0 { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi1 { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
| @@ -0,0 +1,309 @@ | |||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later OR MIT | ||||||
|  |  | ||||||
|  | #include "qcom-ipq4019.dtsi" | ||||||
|  | #include <dt-bindings/gpio/gpio.h> | ||||||
|  | #include <dt-bindings/input/input.h> | ||||||
|  | #include <dt-bindings/soc/qcom,tcsr.h> | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	model = "AVM FRITZ!Box 4040"; | ||||||
|  | 	compatible = "avm,fritzbox-4040"; | ||||||
|  |  | ||||||
|  | 	aliases { | ||||||
|  | 		led-boot = &power; | ||||||
|  | 		led-failsafe = &flash; | ||||||
|  | 		led-running = &power; | ||||||
|  | 		led-upgrade = &flash; | ||||||
|  | 		label-mac-device = &gmac0; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	soc { | ||||||
|  | 		rng@22000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		mdio@90000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess-psgmii@98000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@1949000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1949000 0x100>; | ||||||
|  | 			qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@194b000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x194b000 0x100>; | ||||||
|  | 			qcom,usb-hsphy-mode-select = <TCSR_USB_HSPHY_HOST_MODE>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess_tcsr@1953000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1953000 0x1000>; | ||||||
|  | 			qcom,ess-interface-select = <TCSR_ESS_PSGMII>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@1957000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1957000 0x100>; | ||||||
|  | 			qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		usb2@60f8800 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		usb3@8af8800 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		crypto@8e3a000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		watchdog@b017000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess-switch@c000000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		edma@c080000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	keys { | ||||||
|  | 		compatible = "gpio-keys"; | ||||||
|  |  | ||||||
|  | 		wlan { | ||||||
|  | 			label = "wlan"; | ||||||
|  | 			gpios = <&tlmm 58 GPIO_ACTIVE_LOW>; | ||||||
|  | 			linux,code = <KEY_RFKILL>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		wps { | ||||||
|  | 			label = "wps"; | ||||||
|  | 			gpios = <&tlmm 63 GPIO_ACTIVE_LOW>; | ||||||
|  | 			linux,code = <KEY_WPS_BUTTON>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	switch-leds { | ||||||
|  | 		compatible = "gpio-leds"; | ||||||
|  |  | ||||||
|  | 		wlan { | ||||||
|  | 			label = "green:wlan"; | ||||||
|  | 			gpios = <ðphy0 0 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		panic: info_red { | ||||||
|  | 			label = "red:info"; | ||||||
|  | 			gpios = <ðphy0 1 GPIO_ACTIVE_HIGH>; | ||||||
|  | 			panic-indicator; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		wan { | ||||||
|  | 			label = "green:wan"; | ||||||
|  | 			gpios = <ðphy1 0 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		power: power { | ||||||
|  | 			label = "green:power"; | ||||||
|  | 			gpios = <ðphy2 1 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		lan { | ||||||
|  | 			label = "green:lan"; | ||||||
|  | 			gpios = <ðphy3 0 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		flash: info_amber { | ||||||
|  | 			label = "amber:info"; | ||||||
|  | 			gpios = <ðphy3 1 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &tlmm { | ||||||
|  | 	serial_pins: serial_pinmux { | ||||||
|  | 		mux { | ||||||
|  | 			pins = "gpio60", "gpio61"; | ||||||
|  | 			function = "blsp_uart0"; | ||||||
|  | 			bias-disable; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	spi_0_pins: spi_0_pinmux { | ||||||
|  | 		mux { | ||||||
|  | 			function = "blsp_spi0"; | ||||||
|  | 			pins = "gpio55", "gpio56", "gpio57"; | ||||||
|  | 			drive-strength = <12>; | ||||||
|  | 			bias-disable; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		mux_cs { | ||||||
|  | 			function = "gpio"; | ||||||
|  | 			pins = "gpio54"; | ||||||
|  | 			drive-strength = <2>; | ||||||
|  | 			bias-disable; | ||||||
|  | 			output-high; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &cryptobam { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp_dma { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp1_spi1 { /* BLSP1 QUP1 */ | ||||||
|  | 	pinctrl-0 = <&spi_0_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	status = "okay"; | ||||||
|  | 	cs-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>; | ||||||
|  |  | ||||||
|  | 	flash@0 { | ||||||
|  | 		compatible = "jedec,spi-nor"; | ||||||
|  | 		reg = <0>; | ||||||
|  | 		spi-max-frequency = <24000000>; | ||||||
|  | 		status = "okay"; | ||||||
|  | 		m25p,fast-read; | ||||||
|  |  | ||||||
|  | 		partitions { | ||||||
|  | 			compatible = "fixed-partitions"; | ||||||
|  | 			#address-cells = <1>; | ||||||
|  | 			#size-cells = <1>; | ||||||
|  |  | ||||||
|  | 			partition0@0 { | ||||||
|  | 				label = "SBL1"; | ||||||
|  | 				reg = <0x00000000 0x00040000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition1@40000 { | ||||||
|  | 				label = "MIBIB"; | ||||||
|  | 				reg = <0x00040000 0x00020000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition2@60000 { | ||||||
|  | 				label = "QSEE"; | ||||||
|  | 				reg = <0x00060000 0x00060000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition3@c0000 { | ||||||
|  | 				label = "CDT"; | ||||||
|  | 				reg = <0x000c0000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition4@d0000 { | ||||||
|  | 				label = "DDRPARAMS"; | ||||||
|  | 				reg = <0x000d0000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition5@e0000 { | ||||||
|  | 				label = "APPSBLENV"; /* uboot env - empty */ | ||||||
|  | 				reg = <0x000e0000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition6@f0000 { | ||||||
|  | 				label = "urlader"; /* APPSBL */ | ||||||
|  | 				reg = <0x000f0000 0x0002dc000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition7@11dc00 { | ||||||
|  | 				/* make a backup of this partition! */ | ||||||
|  | 				label = "urlader_config"; | ||||||
|  | 				reg = <0x0011dc00 0x00002400>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition8@120000 { | ||||||
|  | 				label = "tffs1"; | ||||||
|  | 				reg = <0x00120000 0x00080000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition9@1a0000 { | ||||||
|  | 				label = "tffs2"; | ||||||
|  | 				reg = <0x001a0000 0x00080000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition10@220000 { | ||||||
|  | 				label = "uboot"; | ||||||
|  | 				reg = <0x00220000 0x00080000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 			partition11@2A0000 { | ||||||
|  | 				compatible = "denx,fit"; | ||||||
|  | 				label = "firmware"; | ||||||
|  | 				reg = <0x002a0000 0x01c60000>; | ||||||
|  | 			}; | ||||||
|  | 			partition12@1f00000 { | ||||||
|  | 				label = "jffs2"; | ||||||
|  | 				reg = <0x01f00000 0x00100000>; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp1_uart1 { | ||||||
|  | 	pinctrl-0 = <&serial_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | ðphy0 { | ||||||
|  | 	gpio-controller; | ||||||
|  | 	#gpio-cells = <2>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | ðphy1 { | ||||||
|  | 	gpio-controller; | ||||||
|  | 	#gpio-cells = <2>; | ||||||
|  |  | ||||||
|  | 	enable-usb-power { | ||||||
|  | 		gpio-hog; | ||||||
|  | 		line-name = "enable USB3 power"; | ||||||
|  | 		gpios = <1 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		output-high; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | ðphy2 { | ||||||
|  | 	gpio-controller; | ||||||
|  | 	#gpio-cells = <2>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | ðphy3 { | ||||||
|  | 	gpio-controller; | ||||||
|  | 	#gpio-cells = <2>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usb3_ss_phy { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usb3_hs_phy { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usb2_hs_phy { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi0 { | ||||||
|  | 	status = "okay"; | ||||||
|  | 	qcom,ath10k-calibration-variant = "AVM-FRITZBox-4040"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi1 { | ||||||
|  | 	status = "okay"; | ||||||
|  | 	qcom,ath10k-calibration-variant = "AVM-FRITZBox-4040"; | ||||||
|  | }; | ||||||
| @@ -0,0 +1,269 @@ | |||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later OR MIT | ||||||
|  |  | ||||||
|  | #include "qcom-ipq4019.dtsi" | ||||||
|  | #include <dt-bindings/gpio/gpio.h> | ||||||
|  | #include <dt-bindings/input/input.h> | ||||||
|  | #include <dt-bindings/soc/qcom,tcsr.h> | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	model = "GL.iNet GL-AP1300"; | ||||||
|  | 	compatible = "glinet,gl-ap1300"; | ||||||
|  |  | ||||||
|  | 	aliases { | ||||||
|  | 		led-boot = &led_power; | ||||||
|  | 		led-failsafe = &led_power; | ||||||
|  | 		led-running = &led_power; | ||||||
|  | 		led-upgrade = &led_power; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	memory { | ||||||
|  | 		device_type = "memory"; | ||||||
|  | 		reg = <0x80000000 0x10000000>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	chosen { | ||||||
|  | 		bootargs-append = " ubi.mtd=ubi root=/dev/ubiblock0_1 clk_ignore_unused"; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	soc { | ||||||
|  | 		rng@22000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		mdio@90000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess-psgmii@98000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@1949000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1949000 0x100>; | ||||||
|  | 			qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@194b000 { | ||||||
|  | 			/* select hostmode */ | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x194b000 0x100>; | ||||||
|  | 			qcom,usb-hsphy-mode-select = <TCSR_USB_HSPHY_HOST_MODE>; | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess_tcsr@1953000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1953000 0x1000>; | ||||||
|  | 			qcom,ess-interface-select = <TCSR_ESS_PSGMII>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@1957000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1957000 0x100>; | ||||||
|  | 			qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		usb2@60f8800 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		usb3@8af8800 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		crypto@8e3a000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		watchdog@b017000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess-switch@c000000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 			switch_lan_bmp = <0x18>; | ||||||
|  | 			switch_wan_bmp = <0x20>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		edma@c080000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	keys { | ||||||
|  | 		compatible = "gpio-keys"; | ||||||
|  |  | ||||||
|  | 		reset { | ||||||
|  | 			label = "reset"; | ||||||
|  | 			gpios = <&tlmm 63 GPIO_ACTIVE_LOW>; | ||||||
|  | 			linux,code = <KEY_RESTART>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	leds { | ||||||
|  | 		compatible = "gpio-leds"; | ||||||
|  |  | ||||||
|  | 		led_power: power { | ||||||
|  | 			label = "green:power"; | ||||||
|  | 			gpios = <&tlmm 2 GPIO_ACTIVE_HIGH>; | ||||||
|  | 			default-state = "on"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		wan { | ||||||
|  | 			label = "green:wan"; | ||||||
|  | 			gpios = <&tlmm 3 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp_dma { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &cryptobam { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp1_spi1 { | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	pinctrl-0 = <&spi0_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	cs-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>, <&tlmm 5 GPIO_ACTIVE_HIGH>; | ||||||
|  |  | ||||||
|  | 	flash@0 { | ||||||
|  | 		status = "okay"; | ||||||
|  |  | ||||||
|  | 		compatible = "jedec,spi-nor"; | ||||||
|  | 		reg = <0>; | ||||||
|  | 		spi-max-frequency = <24000000>; | ||||||
|  |  | ||||||
|  | 		partitions { | ||||||
|  | 			compatible = "fixed-partitions"; | ||||||
|  | 			#address-cells = <1>; | ||||||
|  | 			#size-cells = <1>; | ||||||
|  |  | ||||||
|  | 			partition@0 { | ||||||
|  | 				label = "SBL1"; | ||||||
|  | 				reg = <0x00000000 0x00040000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@40000 { | ||||||
|  | 				label = "MIBIB"; | ||||||
|  | 				reg = <0x00040000 0x00020000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@60000 { | ||||||
|  | 				label = "QSEE"; | ||||||
|  | 				reg = <0x00060000 0x00060000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@c0000 { | ||||||
|  | 				label = "CDT"; | ||||||
|  | 				reg = <0x000c0000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@d0000 { | ||||||
|  | 				label = "DDRPARAMS"; | ||||||
|  | 				reg = <0x000d0000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@e0000 { | ||||||
|  | 				label = "APPSBLENV"; /* uboot env*/ | ||||||
|  | 				reg = <0x000e0000 0x00010000>; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@f0000 { | ||||||
|  | 				label = "APPSBL"; /* uboot */ | ||||||
|  | 				reg = <0x000f0000 0x00080000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@170000 { | ||||||
|  | 				label = "ART"; | ||||||
|  | 				reg = <0x00170000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	spi-nand@1 { | ||||||
|  | 		status = "okay"; | ||||||
|  |  | ||||||
|  | 		compatible = "spi-nand"; | ||||||
|  | 		reg = <1>; | ||||||
|  | 		spi-max-frequency = <24000000>; | ||||||
|  |  | ||||||
|  | 		partitions { | ||||||
|  | 			compatible = "fixed-partitions"; | ||||||
|  | 			#address-cells = <1>; | ||||||
|  | 			#size-cells = <1>; | ||||||
|  |  | ||||||
|  | 			partition@0 { | ||||||
|  | 				label = "ubi"; | ||||||
|  | 				reg = <0x00000000 0x08000000>; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp1_uart1 { | ||||||
|  | 	pinctrl-0 = <&serial_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &tlmm { | ||||||
|  | 	serial_pins: serial_pinmux { | ||||||
|  | 		mux { | ||||||
|  | 			pins = "gpio60", "gpio61"; | ||||||
|  | 			function = "blsp_uart0"; | ||||||
|  | 			bias-disable; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	spi0_pins: spi0_pinmux { | ||||||
|  | 		mux_spi { | ||||||
|  | 			function = "blsp_spi0"; | ||||||
|  | 			pins = "gpio55", "gpio56", "gpio57"; | ||||||
|  | 			drive-strength = <12>; | ||||||
|  | 			bias-disable; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		mux_cs { | ||||||
|  | 			function = "gpio"; | ||||||
|  | 			pins = "gpio54", "gpio5"; | ||||||
|  | 			drive-strength = <2>; | ||||||
|  | 			bias-disable; | ||||||
|  | 			output-high; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usb2_hs_phy { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usb3_hs_phy { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usb3_ss_phy { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi0 { | ||||||
|  | 	status = "okay"; | ||||||
|  | 	qcom,ath10k-calibration-variant = "GL-AP1300"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi1 { | ||||||
|  | 	status = "okay"; | ||||||
|  | 	qcom,ath10k-calibration-variant = "GL-AP1300"; | ||||||
|  | }; | ||||||
| @@ -0,0 +1,273 @@ | |||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later OR MIT | ||||||
|  | /* Copyright (c) 2020, Robert Marko <robimarko@gmail.com> */ | ||||||
|  |  | ||||||
|  | #include "qcom-ipq4019.dtsi" | ||||||
|  | #include <dt-bindings/gpio/gpio.h> | ||||||
|  | #include <dt-bindings/input/input.h> | ||||||
|  | #include <dt-bindings/soc/qcom,tcsr.h> | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	model = "MikroTik hAP ac2"; | ||||||
|  | 	compatible = "mikrotik,hap-ac2"; | ||||||
|  |  | ||||||
|  | 	memory { | ||||||
|  | 		device_type = "memory"; | ||||||
|  | 		reg = <0x80000000 0x08000000>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	chosen { | ||||||
|  | 		stdout-path = "serial0:115200n8"; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	aliases { | ||||||
|  | 		led-boot = &led_user; | ||||||
|  | 		led-failsafe = &led_user; | ||||||
|  | 		led-running = &led_user; | ||||||
|  | 		led-upgrade = &led_user; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	soc { | ||||||
|  | 		rng@22000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		counter@4a1000 { | ||||||
|  | 			compatible = "qcom,qca-gcnt"; | ||||||
|  | 			reg = <0x4a1000 0x4>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@1949000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1949000 0x100>; | ||||||
|  | 			qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@194b000 { | ||||||
|  | 			/* select hostmode */ | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x194b000 0x100>; | ||||||
|  | 			qcom,usb-hsphy-mode-select = <TCSR_USB_HSPHY_HOST_MODE>; | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess_tcsr@1953000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1953000 0x1000>; | ||||||
|  | 			qcom,ess-interface-select = <TCSR_ESS_PSGMII>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@1957000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1957000 0x100>; | ||||||
|  | 			qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		usb3@8af8800 { | ||||||
|  | 			status = "okay"; | ||||||
|  |  | ||||||
|  | 			dwc3@8a00000 { | ||||||
|  | 				phys = <&usb3_hs_phy>; | ||||||
|  | 				phy-names = "usb2-phy"; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		crypto@8e3a000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		watchdog@b017000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess-switch@c000000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		edma@c080000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	keys { | ||||||
|  | 		compatible = "gpio-keys"; | ||||||
|  |  | ||||||
|  | 		reset { | ||||||
|  | 			label = "reset"; | ||||||
|  | 			gpios = <&tlmm 63 GPIO_ACTIVE_LOW>; | ||||||
|  | 			linux,code = <KEY_RESTART>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		mode { | ||||||
|  | 			label = "mode"; | ||||||
|  | 			gpios = <&tlmm 5 GPIO_ACTIVE_LOW>; | ||||||
|  | 			linux,code = <KEY_RFKILL>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	leds { | ||||||
|  | 		compatible = "gpio-leds"; | ||||||
|  |  | ||||||
|  | 		power { | ||||||
|  | 			label = "green:power"; | ||||||
|  | 			gpios = <&tlmm 0 GPIO_ACTIVE_HIGH>; | ||||||
|  | 			default-state = "keep"; | ||||||
|  | 			panic-indicator; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		led_user: user { | ||||||
|  | 			label = "green:user"; | ||||||
|  | 			gpios = <&tlmm 3 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &tlmm { | ||||||
|  | 	serial_pins: serial_pinmux { | ||||||
|  | 		mux { | ||||||
|  | 			pins = "gpio60", "gpio61"; | ||||||
|  | 			function = "blsp_uart0"; | ||||||
|  | 			bias-disable; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	spi_0_pins: spi_0_pinmux { | ||||||
|  | 		pin { | ||||||
|  | 			function = "blsp_spi0"; | ||||||
|  | 			pins = "gpio55", "gpio56", "gpio57"; | ||||||
|  | 			drive-strength = <2>; | ||||||
|  | 			bias-disable; | ||||||
|  | 		}; | ||||||
|  | 		pin_cs { | ||||||
|  | 			function = "gpio"; | ||||||
|  | 			pins = "gpio54"; | ||||||
|  | 			drive-strength = <2>; | ||||||
|  | 			bias-disable; | ||||||
|  | 			output-high; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	enable-usb-power { | ||||||
|  | 		gpio-hog; | ||||||
|  | 		gpios = <2 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		output-high; | ||||||
|  | 		line-name = "enable USB power"; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp_dma { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp1_spi1 { | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	pinctrl-0 = <&spi_0_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	cs-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>; | ||||||
|  |  | ||||||
|  | 	flash@0 { | ||||||
|  | 		reg = <0>; | ||||||
|  | 		compatible = "jedec,spi-nor"; | ||||||
|  | 		spi-max-frequency = <40000000>; | ||||||
|  |  | ||||||
|  | 		partitions { | ||||||
|  | 			compatible = "fixed-partitions"; | ||||||
|  | 			#address-cells = <1>; | ||||||
|  | 			#size-cells = <1>; | ||||||
|  |  | ||||||
|  | 			partition@0 { | ||||||
|  | 				label = "Qualcomm"; | ||||||
|  | 				reg = <0x0 0x80000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@80000 { | ||||||
|  | 				compatible = "mikrotik,routerboot-partitions"; | ||||||
|  | 				#address-cells = <1>; | ||||||
|  | 				#size-cells = <1>; | ||||||
|  | 				label = "RouterBoot"; | ||||||
|  | 				reg = <0x80000 0x80000>; | ||||||
|  | 				read-only; | ||||||
|  |  | ||||||
|  | 				hard_config { | ||||||
|  | 					read-only; | ||||||
|  | 					size = <0x2000>; | ||||||
|  | 				}; | ||||||
|  |  | ||||||
|  | 				dtb_config { | ||||||
|  | 					read-only; | ||||||
|  | 				}; | ||||||
|  |  | ||||||
|  | 				soft_config { | ||||||
|  | 				}; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@100000 { | ||||||
|  | 				compatible = "mikrotik,minor"; | ||||||
|  | 				label = "firmware"; | ||||||
|  | 				reg = <0x100000 0xf00000>; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp1_uart1 { | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	pinctrl-0 = <&serial_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &cryptobam { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usb3_hs_phy { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &mdio { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | ðphy0 { | ||||||
|  | 	qcom,single-led-1000; | ||||||
|  | 	qcom,single-led-100; | ||||||
|  | 	qcom,single-led-10; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | ðphy1 { | ||||||
|  | 	qcom,single-led-1000; | ||||||
|  | 	qcom,single-led-100; | ||||||
|  | 	qcom,single-led-10; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | ðphy2 { | ||||||
|  | 	qcom,single-led-1000; | ||||||
|  | 	qcom,single-led-100; | ||||||
|  | 	qcom,single-led-10; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | ðphy3 { | ||||||
|  | 	qcom,single-led-1000; | ||||||
|  | 	qcom,single-led-100; | ||||||
|  | 	qcom,single-led-10; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | ðphy4 { | ||||||
|  | 	qcom,single-led-1000; | ||||||
|  | 	qcom,single-led-100; | ||||||
|  | 	qcom,single-led-10; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi0 { | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	qcom,ath10k-calibration-variant = "MikroTik-hAP-ac2"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi1 { | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	qcom,ath10k-calibration-variant = "MikroTik-hAP-ac2"; | ||||||
|  | }; | ||||||
| @@ -0,0 +1,9 @@ | |||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later OR MIT | ||||||
|  | // Copyright (c) 2018, Robert Marko <robimarko@gmail.com> | ||||||
|  |  | ||||||
|  | #include "qcom-ipq4018-jalapeno.dtsi" | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	model = "8devices Jalapeno"; | ||||||
|  | 	compatible = "8dev,jalapeno"; | ||||||
|  | }; | ||||||
| @@ -0,0 +1,269 @@ | |||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later OR MIT | ||||||
|  | // Copyright (c) 2018, Robert Marko <robimarko@gmail.com> | ||||||
|  |  | ||||||
|  | #include "qcom-ipq4019.dtsi" | ||||||
|  | #include <dt-bindings/gpio/gpio.h> | ||||||
|  | #include <dt-bindings/input/input.h> | ||||||
|  | #include <dt-bindings/soc/qcom,tcsr.h> | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	soc { | ||||||
|  | 		rng@22000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		mdio@90000 { | ||||||
|  | 			status = "okay"; | ||||||
|  |  | ||||||
|  | 			pinctrl-0 = <&mdio_pins>; | ||||||
|  | 			pinctrl-names = "default"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess-psgmii@98000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		counter@4a1000 { | ||||||
|  | 			compatible = "qcom,qca-gcnt"; | ||||||
|  | 			reg = <0x4a1000 0x4>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@1949000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1949000 0x100>; | ||||||
|  | 			qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@194b000 { | ||||||
|  | 			status = "okay"; | ||||||
|  |  | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x194b000 0x100>; | ||||||
|  | 			qcom,usb-hsphy-mode-select = <TCSR_USB_HSPHY_HOST_MODE>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess_tcsr@1953000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1953000 0x1000>; | ||||||
|  | 			qcom,ess-interface-select = <TCSR_ESS_PSGMII>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@1957000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1957000 0x100>; | ||||||
|  | 			qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		usb2: usb2@60f8800 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		usb3: usb3@8af8800 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		crypto@8e3a000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		watchdog@b017000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess-switch@c000000 { | ||||||
|  | 			status = "okay"; | ||||||
|  |  | ||||||
|  | 			switch_lan_bmp = <0x10>; /* lan port bitmap */ | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		edma@c080000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &tlmm { | ||||||
|  | 	mdio_pins: mdio_pinmux { | ||||||
|  | 		pinmux_1 { | ||||||
|  | 			pins = "gpio53"; | ||||||
|  | 			function = "mdio"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		pinmux_2 { | ||||||
|  | 			pins = "gpio52"; | ||||||
|  | 			function = "mdc"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		pinconf { | ||||||
|  | 			pins = "gpio52", "gpio53"; | ||||||
|  | 			bias-pull-up; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	serial_pins: serial_pinmux { | ||||||
|  | 		mux { | ||||||
|  | 			pins = "gpio60", "gpio61"; | ||||||
|  | 			function = "blsp_uart0"; | ||||||
|  | 			bias-disable; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	spi_0_pins: spi_0_pinmux { | ||||||
|  | 		pin { | ||||||
|  | 			function = "blsp_spi0"; | ||||||
|  | 			pins = "gpio55", "gpio56", "gpio57"; | ||||||
|  | 			drive-strength = <2>; | ||||||
|  | 			bias-disable; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		pin_cs { | ||||||
|  | 			function = "gpio"; | ||||||
|  | 			pins = "gpio54", "gpio59"; | ||||||
|  | 			drive-strength = <2>; | ||||||
|  | 			bias-disable; | ||||||
|  | 			output-high; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp_dma { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp1_spi1 { | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	pinctrl-0 = <&spi_0_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	cs-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>, <&tlmm 59 GPIO_ACTIVE_HIGH>; | ||||||
|  |  | ||||||
|  | 	flash@0 { | ||||||
|  | 		status = "okay"; | ||||||
|  |  | ||||||
|  | 		compatible = "jedec,spi-nor"; | ||||||
|  | 		reg = <0>; | ||||||
|  | 		spi-max-frequency = <24000000>; | ||||||
|  |  | ||||||
|  | 		partitions { | ||||||
|  | 			compatible = "fixed-partitions"; | ||||||
|  | 			#address-cells = <1>; | ||||||
|  | 			#size-cells = <1>; | ||||||
|  |  | ||||||
|  | 			partition@0 { | ||||||
|  | 				label = "SBL1"; | ||||||
|  | 				reg = <0x00000000 0x00040000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@40000 { | ||||||
|  | 				label = "MIBIB"; | ||||||
|  | 				reg = <0x00040000 0x00020000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@60000 { | ||||||
|  | 				label = "QSEE"; | ||||||
|  | 				reg = <0x00060000 0x00060000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@c0000 { | ||||||
|  | 				label = "CDT"; | ||||||
|  | 				reg = <0x000c0000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@d0000 { | ||||||
|  | 				label = "DDRPARAMS"; | ||||||
|  | 				reg = <0x000d0000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@e0000 { | ||||||
|  | 				label = "APPSBLENV"; /* uboot env*/ | ||||||
|  | 				reg = <0x000e0000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@f0000 { | ||||||
|  | 				label = "APPSBL"; /* uboot */ | ||||||
|  | 				reg = <0x000f0000 0x00080000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@170000 { | ||||||
|  | 				label = "ART"; | ||||||
|  | 				reg = <0x00170000 0x00010000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	spi-nand@1 { | ||||||
|  | 		status = "okay"; | ||||||
|  |  | ||||||
|  | 		compatible = "spi-nand"; | ||||||
|  | 		reg = <1>; | ||||||
|  | 		spi-max-frequency = <24000000>; | ||||||
|  |  | ||||||
|  | 		partitions { | ||||||
|  | 			compatible = "fixed-partitions"; | ||||||
|  | 			#address-cells = <1>; | ||||||
|  | 			#size-cells = <1>; | ||||||
|  |  | ||||||
|  | 			partition@0 { | ||||||
|  | 				label = "ubi"; | ||||||
|  | 				reg = <0x00000000 0x08000000>; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp1_uart1 { | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	pinctrl-0 = <&serial_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &cryptobam { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &gmac0 { | ||||||
|  | 	qcom,poll_required = <1>; | ||||||
|  | 	qcom,poll_required_dynamic = <1>; | ||||||
|  | 	qcom,phy_mdio_addr = <3>; | ||||||
|  | 	vlan_tag = <1 0x10>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &gmac1 { | ||||||
|  | 	qcom,poll_required = <1>; | ||||||
|  | 	qcom,poll_required_dynamic = <1>; | ||||||
|  | 	qcom,phy_mdio_addr = <4>; | ||||||
|  | 	vlan_tag = <2 0x20>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi0 { | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	qcom,ath10k-calibration-variant = "8devices-Jalapeno"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi1 { | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	qcom,ath10k-calibration-variant = "8devices-Jalapeno"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usb3_ss_phy { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usb3_hs_phy { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usb2_hs_phy { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user