mirror of
				https://github.com/Telecominfraproject/wlan-ap.git
				synced 2025-11-02 19:37:51 +00:00 
			
		
		
		
	Compare commits
	
		
			404 Commits
		
	
	
		
			v2.10.0-rc
			...
			release/v3
		
	
	| 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 | ||
| 
						 | 
					d9f237b450 | ||
| 
						 | 
					4f5a3b0c2b | ||
| 
						 | 
					007cfe9c16 | ||
| 
						 | 
					52884b2835 | ||
| 
						 | 
					6a6af16f48 | ||
| 
						 | 
					2818722b19 | ||
| 
						 | 
					194eba2d21 | ||
| 
						 | 
					3d41a22fba | ||
| 
						 | 
					acd4b79dd4 | ||
| 
						 | 
					befac1e065 | ||
| 
						 | 
					7e4e221ccb | ||
| 
						 | 
					1d9b69ee6f | ||
| 
						 | 
					018f20119d | ||
| 
						 | 
					9a6e41adb8 | ||
| 
						 | 
					970b22856f | ||
| 
						 | 
					95032994fe | ||
| 
						 | 
					48cda63dc5 | ||
| 
						 | 
					8e9f79964a | ||
| 
						 | 
					3c7df86373 | ||
| 
						 | 
					38e6aee074 | ||
| 
						 | 
					0a13684bb6 | ||
| 
						 | 
					e7ca6e8455 | ||
| 
						 | 
					f17e635d34 | ||
| 
						 | 
					90e78c6068 | ||
| 
						 | 
					550bb6fb7e | ||
| 
						 | 
					b3a0ebe534 | ||
| 
						 | 
					6d16e50bbe | ||
| 
						 | 
					513eec1c5f | ||
| 
						 | 
					6a797e8a64 | ||
| 
						 | 
					082134bc43 | ||
| 
						 | 
					03ec2de777 | ||
| 
						 | 
					989d39d1f2 | ||
| 
						 | 
					b6b298ad68 | ||
| 
						 | 
					be1cb862f1 | ||
| 
						 | 
					eb6e95f760 | ||
| 
						 | 
					f04eb1d604 | ||
| 
						 | 
					cc1512e42a | ||
| 
						 | 
					88d6633c85 | ||
| 
						 | 
					1773435a2c | ||
| 
						 | 
					cf12abc92e | ||
| 
						 | 
					d8c4b1f0e2 | ||
| 
						 | 
					45cbd5d93a | ||
| 
						 | 
					2646db0826 | ||
| 
						 | 
					0289ea7293 | ||
| 
						 | 
					c02c293651 | ||
| 
						 | 
					e6786115cc | ||
| 
						 | 
					89b9596e27 | ||
| 
						 | 
					23cd3b3e99 | ||
| 
						 | 
					5a8cf73137 | ||
| 
						 | 
					79dfb1e861 | ||
| 
						 | 
					4eb30ba080 | ||
| 
						 | 
					1829c9c96f | ||
| 
						 | 
					fa2424750b | ||
| 
						 | 
					441cb82d32 | ||
| 
						 | 
					c34d346b57 | ||
| 
						 | 
					f7a766be20 | ||
| 
						 | 
					54e8411980 | ||
| 
						 | 
					09ebd5f406 | ||
| 
						 | 
					44aef94d82 | ||
| 
						 | 
					aeac214236 | ||
| 
						 | 
					81f8a368d1 | ||
| 
						 | 
					cde9d148b8 | ||
| 
						 | 
					b1bf054d74 | ||
| 
						 | 
					18100e0b4e | ||
| 
						 | 
					42f0c520da | ||
| 
						 | 
					fbee159481 | ||
| 
						 | 
					ca4a4365d6 | ||
| 
						 | 
					54ffbadc2d | ||
| 
						 | 
					a4cd9cb03b | ||
| 
						 | 
					f3406891b2 | ||
| 
						 | 
					6f7c5995ad | ||
| 
						 | 
					8046c336c3 | ||
| 
						 | 
					c39f92eea7 | ||
| 
						 | 
					37d1da8b01 | ||
| 
						 | 
					6f65229d66 | ||
| 
						 | 
					7bf62b76bd | ||
| 
						 | 
					693e147cd9 | ||
| 
						 | 
					eab2445d14 | ||
| 
						 | 
					5c53054de9 | ||
| 
						 | 
					1866ffcccc | ||
| 
						 | 
					5c7fe1a0fa | ||
| 
						 | 
					672578af01 | ||
| 
						 | 
					9c27a4b878 | ||
| 
						 | 
					4cf4a5152e | ||
| 
						 | 
					7daf37be9e | ||
| 
						 | 
					7975de1101 | ||
| 
						 | 
					2d1bbeedd9 | ||
| 
						 | 
					e0fc96b950 | ||
| 
						 | 
					835909f3cc | ||
| 
						 | 
					e02d9261df | ||
| 
						 | 
					2f7a1e5952 | ||
| 
						 | 
					0ad0aa8255 | ||
| 
						 | 
					4db35c127b | ||
| 
						 | 
					f6ae95da15 | ||
| 
						 | 
					daec2bef52 | ||
| 
						 | 
					4e5e483743 | ||
| 
						 | 
					ea1cb7a4a6 | ||
| 
						 | 
					ce33b86c6f | ||
| 
						 | 
					8e0e4d81d8 | ||
| 
						 | 
					74616bda9a | ||
| 
						 | 
					47afa20ff1 | ||
| 
						 | 
					b4c68157c8 | ||
| 
						 | 
					5dd721b206 | ||
| 
						 | 
					9ef59ba079 | ||
| 
						 | 
					fafb5cbffd | ||
| 
						 | 
					dca6ea517f | ||
| 
						 | 
					43436e4726 | ||
| 
						 | 
					18c6087d56 | ||
| 
						 | 
					a5eaccb29a | ||
| 
						 | 
					ee090f6230 | ||
| 
						 | 
					5b397d54ce | ||
| 
						 | 
					323dc65770 | ||
| 
						 | 
					bccdb175b0 | ||
| 
						 | 
					92f59a3f22 | ||
| 
						 | 
					ccdca73cd6 | ||
| 
						 | 
					3fde7d88fb | ||
| 
						 | 
					79dcd8a900 | ||
| 
						 | 
					3d851f6343 | ||
| 
						 | 
					ed3142aa10 | ||
| 
						 | 
					5d0a5e377e | ||
| 
						 | 
					439c386506 | ||
| 
						 | 
					1371a9d3d8 | ||
| 
						 | 
					52f6189c10 | ||
| 
						 | 
					cf63cb94aa | ||
| 
						 | 
					94a442abcf | ||
| 
						 | 
					6cf990f142 | ||
| 
						 | 
					8422d572e7 | ||
| 
						 | 
					659e7c52ba | ||
| 
						 | 
					2536cfdc9e | ||
| 
						 | 
					e9b64b0dfd | ||
| 
						 | 
					b4ed6a8367 | ||
| 
						 | 
					5362455444 | ||
| 
						 | 
					eff55cc055 | ||
| 
						 | 
					295a81450b | ||
| 
						 | 
					ad48758229 | ||
| 
						 | 
					0f5302044d | ||
| 
						 | 
					398e17a583 | ||
| 
						 | 
					b303909c83 | ||
| 
						 | 
					d7c88de1a7 | ||
| 
						 | 
					c144aeed12 | ||
| 
						 | 
					b3d791b34e | ||
| 
						 | 
					9b77f6ed22 | ||
| 
						 | 
					7eb5d45bb8 | ||
| 
						 | 
					8b64db3c7a | 
							
								
								
									
										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: ['actiontec_web7200', 'cig_wf186w', 'cig_wf188n', 'cig_wf194c4', 'cig_wf196-us', 'cig_wf196-ca', 'cig_wf196-ca-ath12', 'cig_wf610d', 'cig_wf660a', 'cig_wf660a', 'cig_wf808', 'cybertan_eww622-a1', 'cybertan_eww631-a1', 'cybertan_eww631-b1', 'edgecore_eap101', 'edgecore_eap101-ath12', 'edgecore_eap102', 'edgecore_eap104', 'edgecore_eap104-ath12', 'liteon_wpx8324', 'edgecore_ecs4100-12ph', 'edgecore_ecw5211', 'edgecore_ecw5410', 'edgecore_oap100', 'edgecore_oap101_6e', 'edgecore_oap101e', 'edgecore_ssw2ac2600', 'edgecore_spw2ac1200', 'edgecore_spw2ac1200-lan-poe', 'hfcl_ion4','hfcl_ion4xi_wp', 'hfcl_ion4xe', 'hfcl_ion4xi', 'hfcl_ion4x', 'hfcl_ion4x_2', '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', 'linksys_ea6350-v4', 'linksys_e8450-ubi', 'linksys_ea8300', 'meshpp_s618_cp03', 'meshpp_s618_cp01', '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: |
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								.github/workflows/x64_vm-build-test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/x64_vm-build-test.yml
									
									
									
									
										vendored
									
									
								
							@@ -29,7 +29,7 @@ jobs:
 | 
				
			|||||||
      run: |
 | 
					      run: |
 | 
				
			||||||
        git config --global user.email "you@example.com"
 | 
					        git config --global user.email "you@example.com"
 | 
				
			||||||
        git config --global user.name "Your Name"
 | 
					        git config --global user.name "Your Name"
 | 
				
			||||||
        make -j TARGET=${{ matrix.target }}
 | 
					        make -j TARGET=${{ matrix.target }}        make -j TARGET=${{ matrix.target }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    - name: Package and upload image for ${{ matrix.target }}
 | 
					    - name: Package and upload image for ${{ matrix.target }}
 | 
				
			||||||
      id: package_and_upload_image
 | 
					      id: package_and_upload_image
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										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";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user