mirror of
				https://github.com/Telecominfraproject/wlan-ap.git
				synced 2025-11-04 04:18:07 +00:00 
			
		
		
		
	Compare commits
	
		
			259 Commits
		
	
	
		
			v2.6.0-rc1
			...
			v2.8.0-rc5
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					7997df122a | ||
| 
						 | 
					0c03b63c0f | ||
| 
						 | 
					5ed2f1d964 | ||
| 
						 | 
					515793450e | ||
| 
						 | 
					541e9b0b4f | ||
| 
						 | 
					24611df4c6 | ||
| 
						 | 
					083010d43c | ||
| 
						 | 
					f9b46fd6b0 | ||
| 
						 | 
					74eb6f96ab | ||
| 
						 | 
					4967fcd2be | ||
| 
						 | 
					e973110de7 | ||
| 
						 | 
					a62503328b | ||
| 
						 | 
					e42051d3a9 | ||
| 
						 | 
					e5336b7351 | ||
| 
						 | 
					5469af35f1 | ||
| 
						 | 
					8c9cd8f9d2 | ||
| 
						 | 
					8b3ac5ea36 | ||
| 
						 | 
					c230825486 | ||
| 
						 | 
					e8b0f5da60 | ||
| 
						 | 
					bc45e11824 | ||
| 
						 | 
					d6b3e97c34 | ||
| 
						 | 
					d35a12b4f4 | ||
| 
						 | 
					a42f103500 | ||
| 
						 | 
					dc2a48c515 | ||
| 
						 | 
					db617e23f0 | ||
| 
						 | 
					71189b1b74 | ||
| 
						 | 
					5567de89e6 | ||
| 
						 | 
					5430d79f53 | ||
| 
						 | 
					9d82d88a0c | ||
| 
						 | 
					0e264203de | ||
| 
						 | 
					469443da2a | ||
| 
						 | 
					692958d2fd | ||
| 
						 | 
					e65fa74071 | ||
| 
						 | 
					fb64d45c39 | ||
| 
						 | 
					71e5c8f441 | ||
| 
						 | 
					8e34f6653c | ||
| 
						 | 
					bee060b9bb | ||
| 
						 | 
					e3e94fe520 | ||
| 
						 | 
					237c090cb4 | ||
| 
						 | 
					74ea7a7a1e | ||
| 
						 | 
					330dbd49e6 | ||
| 
						 | 
					a84b047061 | ||
| 
						 | 
					3795060bf2 | ||
| 
						 | 
					e61ab97815 | ||
| 
						 | 
					0162828df8 | ||
| 
						 | 
					73cfef1203 | ||
| 
						 | 
					3eb6360054 | ||
| 
						 | 
					47e4bc585a | ||
| 
						 | 
					3746722a4d | ||
| 
						 | 
					5828971cfe | ||
| 
						 | 
					dd911cbf21 | ||
| 
						 | 
					f167553348 | ||
| 
						 | 
					d483c55c14 | ||
| 
						 | 
					d9815c0f62 | ||
| 
						 | 
					daadf043d8 | ||
| 
						 | 
					1a56d5820d | ||
| 
						 | 
					8e2f2fcce3 | ||
| 
						 | 
					fc5a841563 | ||
| 
						 | 
					d511a338df | ||
| 
						 | 
					a3d348b664 | ||
| 
						 | 
					b48506b156 | ||
| 
						 | 
					17bb88b67a | ||
| 
						 | 
					578a616b00 | ||
| 
						 | 
					93f603e27c | ||
| 
						 | 
					09b513550c | ||
| 
						 | 
					5e451461cf | ||
| 
						 | 
					fd33396acb | ||
| 
						 | 
					3bdfa68ff5 | ||
| 
						 | 
					3dbc070f2c | ||
| 
						 | 
					b48e5eb057 | ||
| 
						 | 
					3501bd9c11 | ||
| 
						 | 
					70635ac911 | ||
| 
						 | 
					f9a00b7ebd | ||
| 
						 | 
					5bec28b7e5 | ||
| 
						 | 
					e41818470f | ||
| 
						 | 
					a31422d3d7 | ||
| 
						 | 
					bea3d2c4f8 | ||
| 
						 | 
					4c4cb58027 | ||
| 
						 | 
					4312a42b62 | ||
| 
						 | 
					011e5b6e1a | ||
| 
						 | 
					8233c10569 | ||
| 
						 | 
					fb73d889ed | ||
| 
						 | 
					80bfb8671d | ||
| 
						 | 
					521df1a142 | ||
| 
						 | 
					72a75b72ac | ||
| 
						 | 
					c22dce10d3 | ||
| 
						 | 
					8eb801a0cc | ||
| 
						 | 
					6eaef7adad | ||
| 
						 | 
					0272d4bcad | ||
| 
						 | 
					41c64e9978 | ||
| 
						 | 
					9c2f0a098d | ||
| 
						 | 
					0bb8d0dcc0 | ||
| 
						 | 
					a542660072 | ||
| 
						 | 
					8ee15d0053 | ||
| 
						 | 
					311515867c | ||
| 
						 | 
					16bbcddd40 | ||
| 
						 | 
					a4b663b824 | ||
| 
						 | 
					736ab2b803 | ||
| 
						 | 
					cd2fbd11f2 | ||
| 
						 | 
					708fe70e75 | ||
| 
						 | 
					0c9499c085 | ||
| 
						 | 
					d52d4ff627 | ||
| 
						 | 
					324df56861 | ||
| 
						 | 
					a21a08e8bf | ||
| 
						 | 
					393db0ec2a | ||
| 
						 | 
					ca26d347eb | ||
| 
						 | 
					c56b7adea8 | ||
| 
						 | 
					84d31765db | ||
| 
						 | 
					fb617ea136 | ||
| 
						 | 
					47468145c6 | ||
| 
						 | 
					854c8a44d4 | ||
| 
						 | 
					86948e1052 | ||
| 
						 | 
					39053d366d | ||
| 
						 | 
					daaed910da | ||
| 
						 | 
					bf6abd80dd | ||
| 
						 | 
					e74e22e184 | ||
| 
						 | 
					b8f5e17e38 | ||
| 
						 | 
					956a31db8f | ||
| 
						 | 
					9eeefa2fbf | ||
| 
						 | 
					c33705ca60 | ||
| 
						 | 
					ba41e6773b | ||
| 
						 | 
					8ebf884436 | ||
| 
						 | 
					7d4353caf0 | ||
| 
						 | 
					fa6220a615 | ||
| 
						 | 
					26517bb6ae | ||
| 
						 | 
					ea4c4b3fe5 | ||
| 
						 | 
					00f273000e | ||
| 
						 | 
					6014d3a04d | ||
| 
						 | 
					08f082acfe | ||
| 
						 | 
					12e5efcda4 | ||
| 
						 | 
					26be5ba20e | ||
| 
						 | 
					dc2feb3cc7 | ||
| 
						 | 
					ed397f5ce4 | ||
| 
						 | 
					19f0260c0a | ||
| 
						 | 
					49c55bdec5 | ||
| 
						 | 
					2ab86ee29d | ||
| 
						 | 
					888aa40057 | ||
| 
						 | 
					2291ccf198 | ||
| 
						 | 
					1d031a0535 | ||
| 
						 | 
					cb7ed7a37b | ||
| 
						 | 
					e692aea19e | ||
| 
						 | 
					a8bb06fb1c | ||
| 
						 | 
					63b5803086 | ||
| 
						 | 
					68689674b7 | ||
| 
						 | 
					fccdccdba3 | ||
| 
						 | 
					21176badf7 | ||
| 
						 | 
					87adc56e60 | ||
| 
						 | 
					0f8be3bbde | ||
| 
						 | 
					a3fc407f25 | ||
| 
						 | 
					30c2c68579 | ||
| 
						 | 
					736e3e58cf | ||
| 
						 | 
					b38cd9bb9f | ||
| 
						 | 
					d69a8f159d | ||
| 
						 | 
					baaa31f445 | ||
| 
						 | 
					cf18242ee5 | ||
| 
						 | 
					fdcfffd81d | ||
| 
						 | 
					c9a76b8d76 | ||
| 
						 | 
					9bd53e7d91 | ||
| 
						 | 
					812fb18160 | ||
| 
						 | 
					0571cc73da | ||
| 
						 | 
					6bdd93ce0f | ||
| 
						 | 
					0603953d9f | ||
| 
						 | 
					098c81376f | ||
| 
						 | 
					7ef10fcfb4 | ||
| 
						 | 
					823ac590ff | ||
| 
						 | 
					9b68205dc0 | ||
| 
						 | 
					d8216dc583 | ||
| 
						 | 
					2e3c52160c | ||
| 
						 | 
					8686846a09 | ||
| 
						 | 
					8de22ca44b | ||
| 
						 | 
					3e692ed95a | ||
| 
						 | 
					128bd3a17e | ||
| 
						 | 
					cc54c8654f | ||
| 
						 | 
					200f627a9c | ||
| 
						 | 
					0134c1cb64 | ||
| 
						 | 
					5519ab913b | ||
| 
						 | 
					530332fb51 | ||
| 
						 | 
					8bb8c16b34 | ||
| 
						 | 
					a6a7d82607 | ||
| 
						 | 
					f78dc0cd77 | ||
| 
						 | 
					aaf830ae27 | ||
| 
						 | 
					555e1a2b1b | ||
| 
						 | 
					0fbe2e9089 | ||
| 
						 | 
					e87c1ca2dd | ||
| 
						 | 
					c0b3e38215 | ||
| 
						 | 
					0bf5ea74b3 | ||
| 
						 | 
					1c4c82a9df | ||
| 
						 | 
					4d1022f29b | ||
| 
						 | 
					a652e6c8d2 | ||
| 
						 | 
					7b91863cba | ||
| 
						 | 
					c7ad6eaf2c | ||
| 
						 | 
					c06923a022 | ||
| 
						 | 
					d9a8e771ae | ||
| 
						 | 
					7e2cec9d91 | ||
| 
						 | 
					84add765fe | ||
| 
						 | 
					f050d53ed4 | ||
| 
						 | 
					26be8ab162 | ||
| 
						 | 
					3f93f7c972 | ||
| 
						 | 
					7bab50dd3c | ||
| 
						 | 
					cf657dbd94 | ||
| 
						 | 
					33c9876760 | ||
| 
						 | 
					4d6d7405d6 | ||
| 
						 | 
					e249701c34 | ||
| 
						 | 
					0d50975152 | ||
| 
						 | 
					6d87847d15 | ||
| 
						 | 
					eebe021780 | ||
| 
						 | 
					c6e0384f21 | ||
| 
						 | 
					23ae850f72 | ||
| 
						 | 
					708cf2dec6 | ||
| 
						 | 
					a95745d95b | ||
| 
						 | 
					83ccea0abf | ||
| 
						 | 
					bfeaf89238 | ||
| 
						 | 
					7439217b3c | ||
| 
						 | 
					ae2377f4d2 | ||
| 
						 | 
					b81d0aaf0e | ||
| 
						 | 
					1546bef93f | ||
| 
						 | 
					32b1aade42 | ||
| 
						 | 
					2a92b75fe1 | ||
| 
						 | 
					cb30d9e20a | ||
| 
						 | 
					588206b93b | ||
| 
						 | 
					6399649038 | ||
| 
						 | 
					aa3cb95233 | ||
| 
						 | 
					3ea06dac40 | ||
| 
						 | 
					a70dda4a8e | ||
| 
						 | 
					a01f1add81 | ||
| 
						 | 
					57849591d7 | ||
| 
						 | 
					b4a09e7167 | ||
| 
						 | 
					96bb8b1372 | ||
| 
						 | 
					99ea9da785 | ||
| 
						 | 
					bfe7fadfc5 | ||
| 
						 | 
					ad1dcc4f45 | ||
| 
						 | 
					f371c789d0 | ||
| 
						 | 
					386eca1f65 | ||
| 
						 | 
					8b9047952d | ||
| 
						 | 
					5a105ef06e | ||
| 
						 | 
					c60dc1e045 | ||
| 
						 | 
					1e1bd19429 | ||
| 
						 | 
					cfe07f6e15 | ||
| 
						 | 
					a64039db20 | ||
| 
						 | 
					7f81ddb8cc | ||
| 
						 | 
					3c0d495334 | ||
| 
						 | 
					38a7c54cce | ||
| 
						 | 
					1aead07444 | ||
| 
						 | 
					d2f44cbb12 | ||
| 
						 | 
					43d7ca31d6 | ||
| 
						 | 
					0985c573b0 | ||
| 
						 | 
					d9ed861c1d | ||
| 
						 | 
					8ef9989147 | ||
| 
						 | 
					7d5eab4bf3 | ||
| 
						 | 
					5e03e04bbd | ||
| 
						 | 
					6fabaeca53 | ||
| 
						 | 
					be4ca445f5 | ||
| 
						 | 
					e99c8b27e1 | ||
| 
						 | 
					e9055b4f08 | ||
| 
						 | 
					cfcafb676b | ||
| 
						 | 
					899b4d6bfd | ||
| 
						 | 
					2003632ddb | ||
| 
						 | 
					d4a14106b7 | ||
| 
						 | 
					85af9d7e0b | 
@@ -15,7 +15,7 @@ runs:
 | 
				
			|||||||
      id: import_snapshot
 | 
					      id: import_snapshot
 | 
				
			||||||
      shell: bash
 | 
					      shell: bash
 | 
				
			||||||
      run: |
 | 
					      run: |
 | 
				
			||||||
        echo ::set-output name=import_task_id::$(aws ec2 import-snapshot --description '${{ inputs.firmware_image_name }}' --disk-container 'Format=raw,UserBucket={S3Bucket=${{ inputs.firmware_image_s3_bucket }},S3Key=${{ inputs.firmware_image_name }}}' | jq -r '.ImportTaskId')
 | 
					        echo "import_task_id=$(aws ec2 import-snapshot --description '${{ inputs.firmware_image_name }}' --disk-container 'Format=raw,UserBucket={S3Bucket=${{ inputs.firmware_image_s3_bucket }},S3Key=${{ inputs.firmware_image_name }}}' | jq -r '.ImportTaskId')" >> $GITHUB_OUTPUT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    - name: Wait for import task to complete and get snapshot ID
 | 
					    - name: Wait for import task to complete and get snapshot ID
 | 
				
			||||||
      id: get_snapshot_id
 | 
					      id: get_snapshot_id
 | 
				
			||||||
@@ -26,7 +26,7 @@ runs:
 | 
				
			|||||||
          IMPORT_TASK_STATUS=$(aws ec2 describe-import-snapshot-tasks --import-task-ids ${{ steps.import_snapshot.outputs.import_task_id }} | jq -r '.ImportSnapshotTasks[].SnapshotTaskDetail.Status')
 | 
					          IMPORT_TASK_STATUS=$(aws ec2 describe-import-snapshot-tasks --import-task-ids ${{ steps.import_snapshot.outputs.import_task_id }} | jq -r '.ImportSnapshotTasks[].SnapshotTaskDetail.Status')
 | 
				
			||||||
          echo "Import task status is $IMPORT_TASK_STATUS, waiting for completion."
 | 
					          echo "Import task status is $IMPORT_TASK_STATUS, waiting for completion."
 | 
				
			||||||
        done
 | 
					        done
 | 
				
			||||||
        echo ::set-output name=id::$(aws ec2 describe-import-snapshot-tasks --import-task-ids ${{ steps.import_snapshot.outputs.import_task_id }} | jq -r '.ImportSnapshotTasks[].SnapshotTaskDetail.SnapshotId')
 | 
					        echo "id=$(aws ec2 describe-import-snapshot-tasks --import-task-ids ${{ steps.import_snapshot.outputs.import_task_id }} | jq -r '.ImportSnapshotTasks[].SnapshotTaskDetail.SnapshotId')" >> $GITHUB_OUTPUT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    - name: Tag snapshot with image name
 | 
					    - name: Tag snapshot with image name
 | 
				
			||||||
      shell: bash
 | 
					      shell: bash
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										8
									
								
								.github/workflows/build-dev.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.github/workflows/build-dev.yml
									
									
									
									
										vendored
									
									
								
							@@ -21,10 +21,10 @@ jobs:
 | 
				
			|||||||
    strategy:
 | 
					    strategy:
 | 
				
			||||||
      fail-fast: false
 | 
					      fail-fast: false
 | 
				
			||||||
      matrix:
 | 
					      matrix:
 | 
				
			||||||
        target: ['actiontec_web7200', 'cig_wf188n', 'cig_wf194c', 'cig_wf194c4', 'cig_wf196', 'cig_wf610d', 'cig_wf808', 'cybertan_eww622-a1', 'edgecore_eap101', 'edgecore_eap102', 'edgecore_eap104', 'edgecore_ecs4100-12ph', 'edgecore_ecw5211', 'edgecore_ecw5410', 'edgecore_oap100', 'edgecore_ssw2ac2600', 'edgecore_spw2ac1200', 'edgecore_spw2ac1200-lan-poe', 'hfcl_ion4', 'hfcl_ion4xe', 'hfcl_ion4xi', 'indio_um-305ac', 'indio_um-305ax', 'indio_um-325ac', 'indio_um-510ac-v3', 'indio_um-550ac', 'linksys_ea6350-v4', 'linksys_e8450-ubi', 'linksys_ea8300', 'tp-link_ec420-g1', 'tplink_ex227', 'tplink_ex228', 'tplink_ex447', 'udaya_a5-id2', 'wallys_dr40x9', 'x64_vm' ]
 | 
					        target: ['actiontec_web7200', 'cig_wf188n', 'cig_wf194c4', 'cig_wf196', 'cig_wf610d', 'cig_wf808', 'cybertan_eww622-a1', 'edgecore_eap101', 'edgecore_eap102', 'edgecore_eap104', 'liteon_wpx8324', 'edgecore_ecs4100-12ph', 'edgecore_ecw5211', 'edgecore_ecw5410', 'edgecore_oap100', 'edgecore_ssw2ac2600', 'edgecore_spw2ac1200', 'edgecore_spw2ac1200-lan-poe', 'hfcl_ion4', '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' ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
    - uses: actions/checkout@v2
 | 
					    - uses: actions/checkout@v3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    - name: Build image for ${{ matrix.target }}
 | 
					    - name: Build image for ${{ matrix.target }}
 | 
				
			||||||
      id: build
 | 
					      id: build
 | 
				
			||||||
@@ -72,7 +72,7 @@ jobs:
 | 
				
			|||||||
        [ -f openwrt/tmp/image-file ] && aws s3api put-object-tagging --bucket "$AWS_S3_BUCKET_NAME" --key "$JSON_NAME" --tagging "{\"TagSet\":[{\"Key\":\"release\",\"Value\":\"$IS_RELEASE\"}]}"
 | 
					        [ -f openwrt/tmp/image-file ] && aws s3api put-object-tagging --bucket "$AWS_S3_BUCKET_NAME" --key "$JSON_NAME" --tagging "{\"TagSet\":[{\"Key\":\"release\",\"Value\":\"$IS_RELEASE\"}]}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if [ ${{ matrix.target }} == 'x64_vm' ]; then
 | 
					        if [ ${{ matrix.target }} == 'x64_vm' ]; then
 | 
				
			||||||
          echo ::set-output name=x64_vm_image_name::"$(echo $IMG_NAME)"
 | 
					          echo "x64_vm_image_name=$(echo $IMG_NAME)" >> $GITHUB_OUTPUT
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  trigger-testing:
 | 
					  trigger-testing:
 | 
				
			||||||
@@ -93,7 +93,7 @@ jobs:
 | 
				
			|||||||
    needs: build
 | 
					    needs: build
 | 
				
			||||||
    if: startsWith(github.ref, 'refs/tags/v')
 | 
					    if: startsWith(github.ref, 'refs/tags/v')
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
    - uses: actions/checkout@v2
 | 
					    - uses: actions/checkout@v3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    - name: Use create-ami-from-image composite action
 | 
					    - name: Use create-ami-from-image composite action
 | 
				
			||||||
      uses: ./.github/actions/create-ami-from-image
 | 
					      uses: ./.github/actions/create-ami-from-image
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										6
									
								
								.github/workflows/x64_vm-build-test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.github/workflows/x64_vm-build-test.yml
									
									
									
									
										vendored
									
									
								
							@@ -22,7 +22,7 @@ jobs:
 | 
				
			|||||||
        target: ['x64_vm']
 | 
					        target: ['x64_vm']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
    - uses: actions/checkout@v2
 | 
					    - uses: actions/checkout@v3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    - name: Build image for ${{ matrix.target }}
 | 
					    - name: Build image for ${{ matrix.target }}
 | 
				
			||||||
      id: build
 | 
					      id: build
 | 
				
			||||||
@@ -70,14 +70,14 @@ jobs:
 | 
				
			|||||||
        [ -f openwrt/tmp/image-file ] && aws s3api put-object-tagging --bucket "$AWS_S3_BUCKET_NAME" --key "$JSON_NAME" --tagging "{\"TagSet\":[{\"Key\":\"release\",\"Value\":\"$IS_RELEASE\"}]}"
 | 
					        [ -f openwrt/tmp/image-file ] && aws s3api put-object-tagging --bucket "$AWS_S3_BUCKET_NAME" --key "$JSON_NAME" --tagging "{\"TagSet\":[{\"Key\":\"release\",\"Value\":\"$IS_RELEASE\"}]}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if [[ ${{ matrix.target }} == 'x64_vm' ]]; then
 | 
					        if [[ ${{ matrix.target }} == 'x64_vm' ]]; then
 | 
				
			||||||
          echo ::set-output name=x64_vm_image_name::"$(echo $IMG_NAME)"
 | 
					            echo "x64_vm_image_name=$(echo $IMG_NAME)" >> $GITHUB_OUTPUT
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  create-x64_vm-ami:
 | 
					  create-x64_vm-ami:
 | 
				
			||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    needs: build
 | 
					    needs: build
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
    - uses: actions/checkout@v2
 | 
					    - uses: actions/checkout@v3
 | 
				
			||||||
      with:
 | 
					      with:
 | 
				
			||||||
        ref: WIFI-7206-add-workflow-to-build-virtual-ap-image
 | 
					        ref: WIFI-7206-add-workflow-to-build-virtual-ap-image
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										83
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										83
									
								
								README.md
									
									
									
									
									
								
							@@ -1,20 +1,83 @@
 | 
				
			|||||||
# Setting up your build machine
 | 
					# OpenWiFi AP NOS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Requires a recent linux installation. Older systems without python 3.7 will have trouble.  See this link for details: https://openwrt.org/docs/guide-developer/quickstart-build-images
 | 
					OpenWrt-based access point network operating system (AP NOS) for TIP OpenWiFi.
 | 
				
			||||||
 | 
					Read more at [openwifi.tip.build](https://openwifi.tip.build/).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Install build packages:  sudo apt install build-essential libncurses5-dev gawk git libssl-dev gettext zlib1g-dev swig unzip time rsync python3 python3-setuptools python3-yaml.
 | 
					## Building
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Doing a native build on Linux
 | 
					### Setting up your build machine
 | 
				
			||||||
First we need to clone and setup our tree. This will result in an openwrt/.
 | 
					
 | 
				
			||||||
 | 
					Building requires a recent Linux installation. Older systems without Python 3.7
 | 
				
			||||||
 | 
					will have trouble. See this guide for details:
 | 
				
			||||||
 | 
					https://openwrt.org/docs/guide-developer/toolchain/beginners-build-guide
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Install build packages on Debian/Ubuntu (or see above guide for other systems):
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
./setup.py --setup
 | 
					sudo apt install build-essential libncurses5-dev gawk git libssl-dev gettext zlib1g-dev swig unzip time rsync python3 python3-setuptools python3-yaml
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
Next we need to select the profile and base package selection. This setup will install the feeds, packages and generate the .config file.
 | 
					
 | 
				
			||||||
 | 
					### Doing a native build on Linux
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Use `./build.sh <target>`, or follow the manual steps below:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1. Clone and set up the tree. This will create an `openwrt/` directory.
 | 
				
			||||||
 | 
					```shell
 | 
				
			||||||
 | 
					./setup.py --setup    # for subsequent builds, use --rebase instead
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					2. Select the profile and base package selection. This setup will install the
 | 
				
			||||||
 | 
					   feeds and packages and generate the `.config` file.
 | 
				
			||||||
 | 
					```shell
 | 
				
			||||||
cd openwrt
 | 
					cd openwrt
 | 
				
			||||||
./scripts/gen_config.py linksys_ea8300
 | 
					./scripts/gen_config.py linksys_ea8300
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
Finally we can build the tree.
 | 
					
 | 
				
			||||||
```
 | 
					3. Build the tree (replace `-j 8` with the number of cores to use).
 | 
				
			||||||
make -j X V=s
 | 
					```shell
 | 
				
			||||||
 | 
					make -j 8 V=s
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Build output
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The build results are located in the `openwrt/bin/` directory:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					| Type             | Path                                                 |
 | 
				
			||||||
 | 
					| ---------------- | ---------------------------------------------------- |
 | 
				
			||||||
 | 
					| Firmware images  | `openwrt/bin/targets/<target>/<subtarget>/`          |
 | 
				
			||||||
 | 
					| Kernel modules   | `openwrt/bin/targets/<target>/<subtarget>/packages/` |
 | 
				
			||||||
 | 
					| Package binaries | `openwrt/bin/packages/<platform>/<feed>/`            |
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Developer Notes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Branching model
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `main` - Stable dev branch
 | 
				
			||||||
 | 
					- `next` - Integration branch
 | 
				
			||||||
 | 
					- `staging-*` - Feature/bug branches
 | 
				
			||||||
 | 
					- `release/v#.#.#` - Release branches (*major.minor.patch*)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Repository structure
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Build files:
 | 
				
			||||||
 | 
					- `Makefile` - Calls Docker environment per target
 | 
				
			||||||
 | 
					- `dock-run.sh` - Dockerized build environment
 | 
				
			||||||
 | 
					- `docker/Dockerfile` - Dockerfile for build image
 | 
				
			||||||
 | 
					- `build.sh` - Build script
 | 
				
			||||||
 | 
					- `setup.py` - Clone and set up the tree
 | 
				
			||||||
 | 
					- `config.yml` - Specifies OpenWrt version and patches to apply
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Directories:
 | 
				
			||||||
 | 
					- `feeds/` - OpenWiFi feeds
 | 
				
			||||||
 | 
					- `patches/` - OpenWiFi patches applied during builds
 | 
				
			||||||
 | 
					- `profiles/` - Per-target kernel configs, packages, and feeds
 | 
				
			||||||
 | 
					    - [wifi-ax](profiles/wifi-ax.yml): Wi-Fi AX packages
 | 
				
			||||||
 | 
					    - [ucentral-ap](profiles/ucentral-ap.yml): uCentral packages
 | 
				
			||||||
 | 
					    - [x64_vm](profiles/x64_vm.yml): x86-64 VM image
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### uCentral packages
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AP-NOS packages implementing the uCentral protocol include the following
 | 
				
			||||||
 | 
					repositories (refer to the [ucentral](feeds/ucentral/) feed for a full list):
 | 
				
			||||||
 | 
					- ucentral-client: https://github.com/Telecominfraproject/wlan-ucentral-client
 | 
				
			||||||
 | 
					- ucentral-schema: https://github.com/Telecominfraproject/wlan-ucentral-schema
 | 
				
			||||||
 | 
					- ucentral-wifi: https://github.com/blogic/ucentral-wifi
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,77 +0,0 @@
 | 
				
			|||||||
# Copyright (c) Facebook, Inc. and its affiliates.
 | 
					 | 
				
			||||||
# All rights reserved.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# This source code is licensed under the license found in the
 | 
					 | 
				
			||||||
# LICENSE file in the root directory of this source tree.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
include $(TOPDIR)/rules.mk
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
PKG_NAME:=fbwifi
 | 
					 | 
				
			||||||
PKG_VERSION:=2
 | 
					 | 
				
			||||||
PKG_RELEASE:=0
 | 
					 | 
				
			||||||
PKG_LICENSE:=GPL-2.0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
PKG_MAINTAINER:=Simon Kinane <skinane@fb.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
include $(INCLUDE_DIR)/package.mk
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
define Package/fbwifi
 | 
					 | 
				
			||||||
  SUBMENU:=Captive Portals
 | 
					 | 
				
			||||||
  SECTION:=net
 | 
					 | 
				
			||||||
  CATEGORY:=Network
 | 
					 | 
				
			||||||
  DEPENDS:=+iptables +luasec +luasocket \
 | 
					 | 
				
			||||||
	+libuci-lua +luaposix \
 | 
					 | 
				
			||||||
	+lua-cjson +uhttpd
 | 
					 | 
				
			||||||
  TITLE:=Facebook Wi-Fi
 | 
					 | 
				
			||||||
  PKGARCH:=all
 | 
					 | 
				
			||||||
endef
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
define Package/fbwifi/description
 | 
					 | 
				
			||||||
  Facebook Wi-Fi, an AP authorisation solution
 | 
					 | 
				
			||||||
endef
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
define Package/luci-app-fbwifi
 | 
					 | 
				
			||||||
  SUBMENU:=3. Applications
 | 
					 | 
				
			||||||
  SECTION:=luci
 | 
					 | 
				
			||||||
  CATEGORY:=LuCI
 | 
					 | 
				
			||||||
  TITLE:=LuCI support for Facebook Wi-Fi
 | 
					 | 
				
			||||||
  DEPENDS:= \
 | 
					 | 
				
			||||||
	+fbwifi \
 | 
					 | 
				
			||||||
	+luci-base +luci-mod-network +luci-mod-status +luci-theme-bootstrap
 | 
					 | 
				
			||||||
endef
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
define Package/luci-app-fbwifi/description
 | 
					 | 
				
			||||||
  LuCI support for Facebook Wi-Fi
 | 
					 | 
				
			||||||
endef
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
define Package/fbwifi/conffiles
 | 
					 | 
				
			||||||
/etc/config/fbwifi
 | 
					 | 
				
			||||||
endef
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
define Build/Prepare
 | 
					 | 
				
			||||||
endef
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
define Build/Configure
 | 
					 | 
				
			||||||
endef
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
define Build/Compile
 | 
					 | 
				
			||||||
endef
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
define Package/fbwifi/install
 | 
					 | 
				
			||||||
	$(INSTALL_DIR) $(1)
 | 
					 | 
				
			||||||
	$(CP) ./files/fbwifi/* $(1)/
 | 
					 | 
				
			||||||
endef
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
define Package/luci-app-fbwifi/install
 | 
					 | 
				
			||||||
	$(INSTALL_DIR) $(1)
 | 
					 | 
				
			||||||
	$(CP) ./files/luci-app-fbwifi/* $(1)
 | 
					 | 
				
			||||||
endef
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
$(eval $(call BuildPackage,fbwifi))
 | 
					 | 
				
			||||||
$(eval $(call BuildPackage,luci-app-fbwifi))
 | 
					 | 
				
			||||||
@@ -1,22 +0,0 @@
 | 
				
			|||||||
# Facebook Wi-Fi v2.0 Reference Implementation for OpenWrt 
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## Getting started
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Case studies for OEM customers are available at the official page of [Facebook Wi-Fi](https://www.facebook.com/facebook-wifi).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
For OEM engineers, start by reading the init script in [files/etc/init.d/fbwifi](https://github.com/facebookincubator/fbc_owrt_feed/blob/master/fbwifi/files/etc/init.d/fbwifi)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
To enable Facebook Wi-Fi, configure the gateway_token in `/etc/config/fbwifi`, and run `fbwifi enable`.
 | 
					 | 
				
			||||||
To disable Facebook Wi-Fi, run `fbwifi disable`.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## Contents
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The 'files' subdirectory contains two subdirectories, one for the fbwifi
 | 
					 | 
				
			||||||
package that implements the Facebook Wi-Fi v2.0 standard for OpenWrt, and
 | 
					 | 
				
			||||||
another one containing a LuCI application to configure Facebook Wi-Fi.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The folder structures follow *nix conventions:
 | 
					 | 
				
			||||||
- 'etc' is the boot time scripts and configuration
 | 
					 | 
				
			||||||
- 'usr' contains procedural scripts, lua common code module and GUI prototype for luci
 | 
					 | 
				
			||||||
- 'www' contains the HTTP endpoints as CGI handlers 
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@@ -1,6 +0,0 @@
 | 
				
			|||||||
config fbwifi 'main'
 | 
					 | 
				
			||||||
	option enabled '0'
 | 
					 | 
				
			||||||
	option gateway_token 'FBWIFI:GATEWAY|123456789|0123456789|abcdeABCDE123456789'
 | 
					 | 
				
			||||||
	option http_port '2060'
 | 
					 | 
				
			||||||
	option https_port '2061'
 | 
					 | 
				
			||||||
	option zone 'lan'
 | 
					 | 
				
			||||||
@@ -1,10 +0,0 @@
 | 
				
			|||||||
#!/bin/sh
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[ "$ACTION" = ifup ] || exit 0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/etc/init.d/fbwifi enabled || exit 0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ip route get fibmatch 1.1.1.1 | grep -q "$DEVICE" || exit 0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
logger -t fbwifi "Reloading fbwifi due to $ACTION of $INTERFACE ($DEVICE)"
 | 
					 | 
				
			||||||
/etc/init.d/fbwifi restart
 | 
					 | 
				
			||||||
@@ -1,43 +0,0 @@
 | 
				
			|||||||
#!/bin/sh /etc/rc.common
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
START=90
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
USE_PROCD=1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
reload_service() {
 | 
					 | 
				
			||||||
	restart
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
service_triggers() {
 | 
					 | 
				
			||||||
	procd_add_reload_trigger fbwifi
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
start_service() {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	config_load fbwifi
 | 
					 | 
				
			||||||
	config_get_bool enabled 'main' 'enabled' '0'
 | 
					 | 
				
			||||||
	[ "$enabled" -eq 0 ] && return
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	config_get http_port main http_port
 | 
					 | 
				
			||||||
	[ -z "$http_port" ] && {
 | 
					 | 
				
			||||||
		logger -t fbwifi "required option http_port not set"
 | 
					 | 
				
			||||||
		exit 1
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	config_get https_port main https_port
 | 
					 | 
				
			||||||
	[ -z "$https_port" ] && {
 | 
					 | 
				
			||||||
		logger -t fbwifi "required option https_port not set"
 | 
					 | 
				
			||||||
		exit 1
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	logger "[fbwifi] Enabled; starting"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	mkdir -p /tmp/fbwifi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	/usr/sbin/fbwifi reload
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	procd_open_instance
 | 
					 | 
				
			||||||
	procd_set_param command /usr/sbin/fbwifi_validate_token_db
 | 
					 | 
				
			||||||
	procd_set_param respawn 1 300 0
 | 
					 | 
				
			||||||
	procd_close_instance
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,156 +0,0 @@
 | 
				
			|||||||
-- SPDX-License-Identifier: GPL-2.0-only
 | 
					 | 
				
			||||||
-- Copyright (c) Facebook, Inc. and its affiliates.
 | 
					 | 
				
			||||||
--
 | 
					 | 
				
			||||||
-- FBWIFI Lua library
 | 
					 | 
				
			||||||
-- function table
 | 
					 | 
				
			||||||
local fbwifi = {}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
local http = require("ssl.https")
 | 
					 | 
				
			||||||
local json = require("cjson")
 | 
					 | 
				
			||||||
local log = require("posix.syslog")
 | 
					 | 
				
			||||||
local uci = require("uci")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function fbwifi.gateway_token()
 | 
					 | 
				
			||||||
	token = uci.get("fbwifi.main.gateway_token")
 | 
					 | 
				
			||||||
	if token and string.len(token) > 0 then
 | 
					 | 
				
			||||||
		return token
 | 
					 | 
				
			||||||
	else
 | 
					 | 
				
			||||||
		log.syslog( log.LOG_WARNING, "[fbwifi] UCI option fbwifi.main.gateway_token is missing" )
 | 
					 | 
				
			||||||
		return nil
 | 
					 | 
				
			||||||
	end 
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function fbwifi.validate_token( token )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	local valid = false
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if string.len(token or '' ) > 0 then
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	        GATEWAY_TOKEN = fbwifi.gateway_token()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	        URL="https://api.fbwifi.com/v2.0/token"
 | 
					 | 
				
			||||||
	        BODY="token="..token
 | 
					 | 
				
			||||||
	        body, code, headers = http.request(URL.."?access_token="..GATEWAY_TOKEN, BODY)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	        if code==200 then
 | 
					 | 
				
			||||||
	                valid = true
 | 
					 | 
				
			||||||
	        else
 | 
					 | 
				
			||||||
	                log.syslog(log.LOG_WARNING, "[fbwifi] validate_token:"..body)
 | 
					 | 
				
			||||||
	        end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	return valid
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
local mac_to_purge=''
 | 
					 | 
				
			||||||
function remove_client_by_mac(client)
 | 
					 | 
				
			||||||
	state = uci.cursor("/var/state", "/tmp/fbwifi")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	for key, value in pairs(client) do
 | 
					 | 
				
			||||||
		if
 | 
					 | 
				
			||||||
			key == 'mac' and
 | 
					 | 
				
			||||||
			value == mac_to_purge
 | 
					 | 
				
			||||||
		then
 | 
					 | 
				
			||||||
			log.syslog(log.LOG_INFO, string.format("[fbwifi] Purging DB entry %s for MAC %s", client['.name'] or 'unknown', mac_to_purge) )
 | 
					 | 
				
			||||||
			state:delete("fbwifi", client['.name'])
 | 
					 | 
				
			||||||
			return
 | 
					 | 
				
			||||||
		end
 | 
					 | 
				
			||||||
	end
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function fbwifi.instate_client_rule( token, client_mac )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	log.syslog(log.LOG_INFO, "[fbwifi] Validating client "..client_mac)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	state = uci.cursor("/var/state", "/tmp/fbwifi")
 | 
					 | 
				
			||||||
	state_name = "token_" .. token
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	RULE_COND="iptables -w -L FBWIFI_CLIENT_TO_INTERNET -t mangle | grep -i -q \"%s\""
 | 
					 | 
				
			||||||
	RULE_FMT="iptables -w -t mangle -%s FBWIFI_CLIENT_TO_INTERNET -m mac --mac-source \"%s\" -j MARK --set-mark 0xfb"
 | 
					 | 
				
			||||||
	local RULE
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	log.syslog(log.LOG_INFO, string.format("[fbwifi] Cleaning DB for MAC %s", client_mac) )
 | 
					 | 
				
			||||||
	mac_to_purge = client_mac
 | 
					 | 
				
			||||||
	state:foreach("fbwifi", "client", remove_client_by_mac)
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
	log.syslog(log.LOG_INFO, string.format("[fbwifi] Adding DB entry %s for MAC %s", state_name, client_mac) )
 | 
					 | 
				
			||||||
	state:set("fbwifi", state_name, "client")
 | 
					 | 
				
			||||||
	state:set("fbwifi", state_name, "token", token)
 | 
					 | 
				
			||||||
	state:set("fbwifi", state_name, "mac", client_mac)
 | 
					 | 
				
			||||||
	state:set("fbwifi", state_name, "authenticated", "true")
 | 
					 | 
				
			||||||
				
 | 
					 | 
				
			||||||
	-- verify a rule exists for the given client MAC, 
 | 
					 | 
				
			||||||
	--   OR install it
 | 
					 | 
				
			||||||
	RULE=string.format(RULE_COND.." || "..RULE_FMT, client_mac, "A", client_mac)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	log.syslog(log.LOG_INFO, string.format( "[fbwifi] Opening iptables for %s", client_mac ) )
 | 
					 | 
				
			||||||
	res = os.execute(RULE)
 | 
					 | 
				
			||||||
	if res ~= 0 then 
 | 
					 | 
				
			||||||
		log.syslog(log.LOG_WARNING, string.format( "[fbwifi] Failed to update iptables (%s)", res ) )
 | 
					 | 
				
			||||||
	end
 | 
					 | 
				
			||||||
	log.syslog(log.LOG_INFO, "[fbwifi] "..RULE)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	state:save('fbwifi')
 | 
					 | 
				
			||||||
	state:commit('fbwifi')
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function fbwifi.revoke_client_rule( token )
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        if (token == nil) then
 | 
					 | 
				
			||||||
                log.syslog(log.LOG_INFO, "[fbwifi] Invalidating token, but token is Nil")
 | 
					 | 
				
			||||||
                return
 | 
					 | 
				
			||||||
        end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	log.syslog(log.LOG_INFO, string.format( "[fbwifi] Invalidating token (%s)", token) )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	state = uci.cursor("/var/state", "/tmp/fbwifi")
 | 
					 | 
				
			||||||
	state_name = "token_" .. token
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	client_mac = state:get("fbwifi", state_name, "mac")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if client_mac then
 | 
					 | 
				
			||||||
		RULE_COND="iptables -w -L FBWIFI_CLIENT_TO_INTERNET -t mangle | grep -i -q \"%s\""
 | 
					 | 
				
			||||||
		RULE_FMT="iptables -w -t mangle -%s FBWIFI_CLIENT_TO_INTERNET -m mac --mac-source \"%s\" -j MARK --set-mark 0xfb"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		-- verify a rule exists for the given client MAC, 
 | 
					 | 
				
			||||||
		--  AND delete it
 | 
					 | 
				
			||||||
		RULE=string.format(RULE_COND.." && "..RULE_FMT, client_mac, "D", client_mac)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		res = os.execute(RULE)
 | 
					 | 
				
			||||||
		if res ~= 0 then 
 | 
					 | 
				
			||||||
			log.syslog(log.LOG_WARNING, string.format( "[fbwifi] Failed to update iptables (%s)", res ) )
 | 
					 | 
				
			||||||
		end
 | 
					 | 
				
			||||||
		log.syslog(log.LOG_INFO, "[fbwifi] "..RULE)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		state:delete("fbwifi", state_name)
 | 
					 | 
				
			||||||
		state:save('fbwifi')
 | 
					 | 
				
			||||||
		state:commit('fbwifi')
 | 
					 | 
				
			||||||
	else
 | 
					 | 
				
			||||||
		log.syslog(log.LOG_WARNING, string.format( "[fbwifi] Client MAC not found in DB (%s)", state_name ) )
 | 
					 | 
				
			||||||
	end
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function fbwifi.reset()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	local success = false
 | 
					 | 
				
			||||||
        GATEWAY_TOKEN = fbwifi.gateway_token()
 | 
					 | 
				
			||||||
        URL="https://api.fbwifi.com/v2.0/gateway/reset"
 | 
					 | 
				
			||||||
	BODY="{}"
 | 
					 | 
				
			||||||
        body, code, headers = http.request(URL.."?access_token="..GATEWAY_TOKEN, BODY)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if code==200 then
 | 
					 | 
				
			||||||
                log.syslog(log.LOG_INFO, "[fbwifi] Reset committed")
 | 
					 | 
				
			||||||
                success = true
 | 
					 | 
				
			||||||
        else
 | 
					 | 
				
			||||||
                log.syslog(log.LOG_WARNING, "[fbwifi] Reset failed : "..body)
 | 
					 | 
				
			||||||
        end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	return success
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
--
 | 
					 | 
				
			||||||
-- Return the function table to the host script
 | 
					 | 
				
			||||||
--
 | 
					 | 
				
			||||||
return fbwifi
 | 
					 | 
				
			||||||
@@ -1,58 +0,0 @@
 | 
				
			|||||||
#!/bin/sh
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
case "$1" in
 | 
					 | 
				
			||||||
disable)
 | 
					 | 
				
			||||||
	uci set fbwifi.main.enabled=0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	uci delete firewall.fbwifi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	uci delete uhttpd.fbwifi_redirect
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	uci delete uhttpd.main.json_script
 | 
					 | 
				
			||||||
	uci set uhttpd.main.cert='/etc/uhttpd.crt'
 | 
					 | 
				
			||||||
	uci set uhttpd.main.key='/etc/uhttpd.key'
 | 
					 | 
				
			||||||
	uci set uhttpd.main.rfc1918_filter=1
 | 
					 | 
				
			||||||
	;;
 | 
					 | 
				
			||||||
enable)
 | 
					 | 
				
			||||||
	uci set fbwifi.main.enabled=1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	uci set firewall.fbwifi=include
 | 
					 | 
				
			||||||
	uci set firewall.fbwifi.enabled=1
 | 
					 | 
				
			||||||
	uci set firewall.fbwifi.family=ipv4
 | 
					 | 
				
			||||||
	uci set firewall.fbwifi.path=/usr/share/fbwifi/firewall.include
 | 
					 | 
				
			||||||
	uci set firewall.fbwifi.reload=1
 | 
					 | 
				
			||||||
	uci set firewall.fbwifi.type=script
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	uci set uhttpd.fbwifi_redirect=uhttpd
 | 
					 | 
				
			||||||
	uci set uhttpd.fbwifi_redirect.enabled=1
 | 
					 | 
				
			||||||
	uci set uhttpd.fbwifi_redirect.cert='/tmp/fbwifi/https_server_cert'
 | 
					 | 
				
			||||||
	uci set uhttpd.fbwifi_redirect.home='/dev/null'
 | 
					 | 
				
			||||||
	uci set uhttpd.fbwifi_redirect.json_script='/tmp/fbwifi/uhttpd-redirect.json'
 | 
					 | 
				
			||||||
	uci set uhttpd.fbwifi_redirect.key='/tmp/fbwifi/https_server_key'
 | 
					 | 
				
			||||||
	uci set uhttpd.fbwifi_redirect.listen_http='0.0.0.0:2060'
 | 
					 | 
				
			||||||
	uci set uhttpd.fbwifi_redirect.listen_https='0.0.0.0:2061'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	uci set uhttpd.main.cert='/tmp/fbwifi/https_server_cert'
 | 
					 | 
				
			||||||
	uci set uhttpd.main.json_script='/usr/share/fbwifi/uhttpd.json'
 | 
					 | 
				
			||||||
	uci set uhttpd.main.key='/tmp/fbwifi/https_server_key'
 | 
					 | 
				
			||||||
	uci set uhttpd.main.rfc1918_filter=0
 | 
					 | 
				
			||||||
	;;
 | 
					 | 
				
			||||||
reload)
 | 
					 | 
				
			||||||
	/usr/sbin/fbwifi_get_config
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	login_url=$(uci -c /var/state get fbwifi.main.captive_portal_url)
 | 
					 | 
				
			||||||
	[ -z "$login_url" ] && {
 | 
					 | 
				
			||||||
		logger -t fbwifi "captive_portal_url not available yet"
 | 
					 | 
				
			||||||
		exit 1
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	printf '{ "request": [ ["redirect", "%s", 302] ] }' "$login_url" > /tmp/fbwifi/uhttpd-redirect.json
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	/etc/init.d/uhttpd restart
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	exit 0
 | 
					 | 
				
			||||||
	;;
 | 
					 | 
				
			||||||
esac
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
uci commit
 | 
					 | 
				
			||||||
/etc/init.d/uhttpd restart
 | 
					 | 
				
			||||||
reload_config
 | 
					 | 
				
			||||||
@@ -1,8 +0,0 @@
 | 
				
			|||||||
echo -e "Runtime configuration and token DB\n"
 | 
					 | 
				
			||||||
uci -c /var/state export fbwifi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
echo -e "\nDynamic firewall flow rules\n"
 | 
					 | 
				
			||||||
iptables -t mangle -L FBWIFI_CLIENT_TO_INTERNET
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
echo -e "\nDHCP leases\n"
 | 
					 | 
				
			||||||
cat /tmp/dhcp.leases
 | 
					 | 
				
			||||||
@@ -1,39 +0,0 @@
 | 
				
			|||||||
#!/usr/bin/lua
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
http = require("ssl.https")
 | 
					 | 
				
			||||||
json = require("cjson")
 | 
					 | 
				
			||||||
log = require("posix.syslog")
 | 
					 | 
				
			||||||
socket = require("socket")
 | 
					 | 
				
			||||||
require("uci")
 | 
					 | 
				
			||||||
fbwifi = require("fbwifi")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GATEWAY_TOKEN = fbwifi.gateway_token()
 | 
					 | 
				
			||||||
state = uci.cursor("/var/state", "/tmp/fbwifi")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
payload="name="..socket.dns.gethostname()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function queue_ssid_update(iface)
 | 
					 | 
				
			||||||
	bssid_file="/sys/class/net/br-"..iface["network"].."/address"
 | 
					 | 
				
			||||||
	local file = io.open(bssid_file)
 | 
					 | 
				
			||||||
        if file then
 | 
					 | 
				
			||||||
            for line in file:lines() do
 | 
					 | 
				
			||||||
		payload=payload.."&bssid[]="..line
 | 
					 | 
				
			||||||
            end
 | 
					 | 
				
			||||||
	    file:close()
 | 
					 | 
				
			||||||
	    payload=payload.."ssid[]="..iface["ssid"]
 | 
					 | 
				
			||||||
        else
 | 
					 | 
				
			||||||
	    log.syslog(log.LOG_WARNING, "[fbwifi] Failed to find BSSID for interface br-"..iface["network"])
 | 
					 | 
				
			||||||
        end
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
state:foreach("wireless", "wifi-iface", queue_ssid_update)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
URL="https://api.fbwifi.com/v2.0/gateway"
 | 
					 | 
				
			||||||
body, code, headers = http.request(URL.."?access_token="..GATEWAY_TOKEN, payload)
 | 
					 | 
				
			||||||
if code == 200 then 
 | 
					 | 
				
			||||||
	log.syslog(log.LOG_INFO, "[fbwifi] gateway information updated "..body)
 | 
					 | 
				
			||||||
	os.exit(0)
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
	log.syslog(log.LOG_WARNING, "[fbwifi] gateway API failed "..body)
 | 
					 | 
				
			||||||
	os.exit(code)
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
@@ -1,111 +0,0 @@
 | 
				
			|||||||
#!/usr/bin/lua
 | 
					 | 
				
			||||||
http = require("ssl.https")
 | 
					 | 
				
			||||||
json = require("cjson")
 | 
					 | 
				
			||||||
require("uci")
 | 
					 | 
				
			||||||
log = require("posix.syslog")
 | 
					 | 
				
			||||||
fbwifi = require("fbwifi")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GATEWAY_TOKEN = fbwifi.gateway_token()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
http_port = uci.get("fbwifi.main.http_port")
 | 
					 | 
				
			||||||
https_port = uci.get("fbwifi.main.https_port")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
statefile = assert(io.open("/var/state/fbwifi", "a"), "could not create state file")
 | 
					 | 
				
			||||||
statefile:close()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
state = uci.cursor("/var/state", "/tmp/fbwifi")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
URL="https://api.fbwifi.com/v2.0/gateway"
 | 
					 | 
				
			||||||
body, code, headers = http.request(URL.."?access_token="..GATEWAY_TOKEN.."&fields=config,config_version")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if code == 200 then
 | 
					 | 
				
			||||||
	log.syslog(log.LOG_INFO, "[fbwifi] Got gateway config ("..code..")")
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
	log.syslog(log.LOG_CRIT, "[fbwifi] Failed to get gateway config ("..code..")")
 | 
					 | 
				
			||||||
	os.exit(1)
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
obj = json.decode(body)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function save_cert(name, value)
 | 
					 | 
				
			||||||
	log.syslog(log.LOG_INFO, "[fbwifi] Saving cert "..name)
 | 
					 | 
				
			||||||
	local f = assert(io.open("/tmp/fbwifi/"..name, "w"))
 | 
					 | 
				
			||||||
	f:write(value)
 | 
					 | 
				
			||||||
	f:close()
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function process_redirect(ix, host)
 | 
					 | 
				
			||||||
	IP_SET = "ip addr replace dev lo "..host
 | 
					 | 
				
			||||||
	local result = os.execute(IP_SET)
 | 
					 | 
				
			||||||
	if result == 0 then
 | 
					 | 
				
			||||||
		log.syslog(log.LOG_INFO, "[fbwifi] Redirect address applied "..host)
 | 
					 | 
				
			||||||
	else
 | 
					 | 
				
			||||||
		log.syslog(log.LOG_WARNING, "[fbwifi] Failed to apply redirect address "..host)
 | 
					 | 
				
			||||||
	end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	ip = string.match(host, '([0-9\.]*)/([0-9]*)')
 | 
					 | 
				
			||||||
	RULE_FMT="grep -q \"%s\" /etc/hosts || echo \"%s\tstar.fbwifigateway.net\" >> /etc/hosts"
 | 
					 | 
				
			||||||
	HOSTS_RULE = string.format(RULE_FMT, ip, ip)
 | 
					 | 
				
			||||||
	result = os.execute(HOSTS_RULE)
 | 
					 | 
				
			||||||
	if result == 0 then
 | 
					 | 
				
			||||||
		log.syslog(log.LOG_INFO, "[fbwifi] Cached redirect host for DNS")
 | 
					 | 
				
			||||||
	else
 | 
					 | 
				
			||||||
		log.syslog(log.LOG_WARNING, "[fbwifi] Failed to amend /etc/hosts")
 | 
					 | 
				
			||||||
		log.syslog(log.LOG_INFO, "[fbwifi] "..HOSTS_RULE)
 | 
					 | 
				
			||||||
	end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	result = os.execute("iptables -t nat -A FBWIFI_HOST_REDIRLIST -p tcp --dport 80 -d "..ip.." -j ACCEPT # REDIRECT --to-ports "..http_port)
 | 
					 | 
				
			||||||
	--print(result)
 | 
					 | 
				
			||||||
	result = os.execute("iptables -t nat -A FBWIFI_HOST_REDIRLIST -p tcp --dport 443 -d "..ip.."  -j ACCEPT # REDIRECT --to-ports "..https_port)
 | 
					 | 
				
			||||||
	--print(result)
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
save_cert("https_server_cert", obj['config']['https_server_cert'])
 | 
					 | 
				
			||||||
save_cert("https_server_key", obj['config']['https_server_key'])
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
result = os.execute("iptables -t nat -F FBWIFI_HOST_REDIRLIST")
 | 
					 | 
				
			||||||
--print(result)
 | 
					 | 
				
			||||||
table.foreach(obj['config']['host_redirect_ips'], process_redirect)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RULE_FORMAT = "iptables -t mangle -A FBWIFI_TRAFFIC_ALLOWLIST -d %s -p %s --dport %s -j MARK --set-mark 0xfb"
 | 
					 | 
				
			||||||
function process_traffic_rule(ix, rule)
 | 
					 | 
				
			||||||
	log.syslog(log.LOG_INFO, "[fbwifi] Traffic rule "..ix)
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	if rule["protocol"] == 6 then
 | 
					 | 
				
			||||||
		PROTO = "tcp"
 | 
					 | 
				
			||||||
	elseif rule["protocol"] == 17 then
 | 
					 | 
				
			||||||
		PROTO = "udp"
 | 
					 | 
				
			||||||
	end
 | 
					 | 
				
			||||||
	RULE = string.format(RULE_FORMAT, rule["ip"], PROTO, rule["port"])
 | 
					 | 
				
			||||||
	local result = os.execute(RULE)
 | 
					 | 
				
			||||||
	if result == 0 then
 | 
					 | 
				
			||||||
		log.syslog(log.LOG_INFO, "[fbwifi] Traffic rule "..ix)
 | 
					 | 
				
			||||||
	else
 | 
					 | 
				
			||||||
		log.syslog(log.LOG_WARNING, "[fbwifi] Failed to install traffic rule ; "..RULE)
 | 
					 | 
				
			||||||
	end
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
local cross_origin_list = {}
 | 
					 | 
				
			||||||
function process_cross_origin_rule(ix, url)
 | 
					 | 
				
			||||||
	log.syslog(log.LOG_INFO, "[fbwifi] Cross origin rule "..url)
 | 
					 | 
				
			||||||
	table.insert(cross_origin_list, url)
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function process_url(url_purpose, fqdn)
 | 
					 | 
				
			||||||
	log.syslog(log.LOG_INFO, "[fbwifi] Caching "..url_purpose)
 | 
					 | 
				
			||||||
	state:set("fbwifi", "main", url_purpose, fqdn)	
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
state:set("fbwifi", "main", "config")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
result = os.execute("iptables -t mangle -F FBWIFI_TRAFFIC_ALLOWLIST ")
 | 
					 | 
				
			||||||
--print(result)
 | 
					 | 
				
			||||||
table.foreach(obj['config']['traffic_allowlist'], process_traffic_rule)
 | 
					 | 
				
			||||||
table.foreach(obj['config']['cross_origin_allowlist'], process_cross_origin_rule)
 | 
					 | 
				
			||||||
table.foreach(obj['config']['urls'], process_url)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
state:set("fbwifi", "main", "cross_origin_allow_rules", cross_origin_list)
 | 
					 | 
				
			||||||
state:set("fbwifi", "main", "config_version", obj['config_version'])
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
state:save('fbwifi')
 | 
					 | 
				
			||||||
state:commit('fbwifi')
 | 
					 | 
				
			||||||
@@ -1,75 +0,0 @@
 | 
				
			|||||||
#!/usr/bin/lua
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
https = require("ssl.https")
 | 
					 | 
				
			||||||
json = require("cjson")
 | 
					 | 
				
			||||||
log = require("posix.syslog")
 | 
					 | 
				
			||||||
fbwifi = require("fbwifi")
 | 
					 | 
				
			||||||
require("uci")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
state = uci.cursor("/var/state", "/tmp/fbwifi")
 | 
					 | 
				
			||||||
GATEWAY_TOKEN = fbwifi.gateway_token()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
request = { 
 | 
					 | 
				
			||||||
	tokens = {}, 
 | 
					 | 
				
			||||||
	traffic_type = "total",
 | 
					 | 
				
			||||||
	config_version = state:get("fbwifi", "main", "config_version")
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function queue_token(client)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	request.tokens[client.token]={
 | 
					 | 
				
			||||||
		incoming = json.null,
 | 
					 | 
				
			||||||
		outgoing = json.null,
 | 
					 | 
				
			||||||
		connected_time_sec = json.null,
 | 
					 | 
				
			||||||
		inactive_time_sec = json.null,
 | 
					 | 
				
			||||||
		signal_rssi_dbm = json.null,
 | 
					 | 
				
			||||||
		--expected_tpus_mbps = json.null,
 | 
					 | 
				
			||||||
		is_connected = true
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
state:foreach("fbwifi", "client", queue_token)
 | 
					 | 
				
			||||||
print( "\nRequest:\n"..json.encode(request) )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
URL="https://api.fbwifi.com/v2.0/tokens"
 | 
					 | 
				
			||||||
BODY=string.format(
 | 
					 | 
				
			||||||
	"tokens=%s&traffic_type=%s&config_version=%s",
 | 
					 | 
				
			||||||
	json.encode(request.tokens),
 | 
					 | 
				
			||||||
	"total",
 | 
					 | 
				
			||||||
	state:get("fbwifi", "main", "config_version")
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
body, code, headers = https.request(URL.."?access_token="..GATEWAY_TOKEN, BODY)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if code then
 | 
					 | 
				
			||||||
	print( "\nResponse:\n"..body )
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
response = json.decode(body)
 | 
					 | 
				
			||||||
--print(response)
 | 
					 | 
				
			||||||
--table.foreach(response,print)
 | 
					 | 
				
			||||||
--table.foreach(response.tokens,print)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if response.config_valid then
 | 
					 | 
				
			||||||
	log.syslog(log.LOG_INFO, "[fbwifi] Config validated")
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
	log.syslog(log.LOG_WARNING, "[fbwifi] config is stale, refreshing config")
 | 
					 | 
				
			||||||
        local result = os.execute("/usr/sbin/fbwifi reload")
 | 
					 | 
				
			||||||
        if result == 0 then
 | 
					 | 
				
			||||||
                log.syslog(log.LOG_INFO, "[fbwifi] successfully fetched and loaded new config ")
 | 
					 | 
				
			||||||
        else
 | 
					 | 
				
			||||||
                log.syslog(log.LOG_WARNING, "[fbwifi] failed to fetch and load new config, possible stale config")
 | 
					 | 
				
			||||||
        end
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function process_token(token, metadata)
 | 
					 | 
				
			||||||
	table.foreach(metadata,print)
 | 
					 | 
				
			||||||
	if metadata.valid then
 | 
					 | 
				
			||||||
		print("OK: "..token)	
 | 
					 | 
				
			||||||
	else
 | 
					 | 
				
			||||||
		print("Nok: "..token)	
 | 
					 | 
				
			||||||
		fbwifi.revoke_client_rule( token )
 | 
					 | 
				
			||||||
	end
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
table.foreach(response.tokens,process_token)
 | 
					 | 
				
			||||||
@@ -1,75 +0,0 @@
 | 
				
			|||||||
#!/bin/sh
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# SPDX-License-Identifier: GPL-2.0-only
 | 
					 | 
				
			||||||
# Copyright (c) Facebook, Inc. and its affiliates.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
IPT4="/usr/sbin/iptables"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
set -- --wait 1 --wait-interval 100
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
fbwifi_http_port="$(uci get fbwifi.main.http_port)"
 | 
					 | 
				
			||||||
[ -n "$fbwifi_http_port" ] || {
 | 
					 | 
				
			||||||
	logger -t fbwifi "required option http_port not set"
 | 
					 | 
				
			||||||
	exit 1
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
fbwifi_https_port="$(uci get fbwifi.main.https_port)"
 | 
					 | 
				
			||||||
[ -n "$fbwifi_https_port" ] || {
 | 
					 | 
				
			||||||
	logger -t fbwifi "required option https_port not set"
 | 
					 | 
				
			||||||
	exit 1
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
fbwifi_zone="$(uci get fbwifi.main.zone)"
 | 
					 | 
				
			||||||
[ -n "$fbwifi_zone" ] || {
 | 
					 | 
				
			||||||
	logger -t fbwifi "required option zone  not set"
 | 
					 | 
				
			||||||
	exit 1
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
fbwifi_ifaces="$(fw3 -q zone "$fbwifi_zone")"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## Create custom chains
 | 
					 | 
				
			||||||
"$IPT4" "$@" -t filter -N FBWIFI_FORWARD 2>/dev/null
 | 
					 | 
				
			||||||
"$IPT4" "$@" -t filter -N FBWIFI_INPUT 2>/dev/null
 | 
					 | 
				
			||||||
"$IPT4" "$@" -t mangle -N FBWIFI_CLIENT_TO_INTERNET 2>/dev/null
 | 
					 | 
				
			||||||
"$IPT4" "$@" -t mangle -N FBWIFI_PREROUTING 2>/dev/null
 | 
					 | 
				
			||||||
"$IPT4" "$@" -t mangle -N FBWIFI_TRAFFIC_ALLOWLIST 2>/dev/null
 | 
					 | 
				
			||||||
"$IPT4" "$@" -t nat -N FBWIFI_CLIENT_TO_INTERNET 2>/dev/null
 | 
					 | 
				
			||||||
"$IPT4" "$@" -t nat -N FBWIFI_PREROUTING 2>/dev/null
 | 
					 | 
				
			||||||
"$IPT4" "$@" -t nat -N FBWIFI_HOST_REDIRLIST 2>/dev/null
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## Flush custom chains
 | 
					 | 
				
			||||||
"$IPT4" "$@" -t filter -F FBWIFI_FORWARD
 | 
					 | 
				
			||||||
"$IPT4" "$@" -t filter -F FBWIFI_INPUT
 | 
					 | 
				
			||||||
"$IPT4" "$@" -t mangle -F FBWIFI_CLIENT_TO_INTERNET
 | 
					 | 
				
			||||||
"$IPT4" "$@" -t mangle -F FBWIFI_PREROUTING
 | 
					 | 
				
			||||||
"$IPT4" "$@" -t mangle -F FBWIFI_TRAFFIC_ALLOWLIST
 | 
					 | 
				
			||||||
"$IPT4" "$@" -t nat -F FBWIFI_CLIENT_TO_INTERNET
 | 
					 | 
				
			||||||
"$IPT4" "$@" -t nat -F FBWIFI_PREROUTING
 | 
					 | 
				
			||||||
"$IPT4" "$@" -t nat -F FBWIFI_HOST_REDIRLIST
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## Populate custom chains
 | 
					 | 
				
			||||||
"$IPT4" "$@" -t filter -A FBWIFI_FORWARD -p udp --dport 53 -m conntrack --ctstate NEW -j ACCEPT
 | 
					 | 
				
			||||||
"$IPT4" "$@" -t filter -A FBWIFI_FORWARD -m conntrack --ctstate NEW -m mark --mark 0xfb -j ACCEPT
 | 
					 | 
				
			||||||
"$IPT4" "$@" -t filter -A FBWIFI_FORWARD -j REJECT
 | 
					 | 
				
			||||||
"$IPT4" "$@" -t filter -A FBWIFI_INPUT -p tcp --dport "$fbwifi_http_port" -m conntrack --ctstate NEW -j ACCEPT
 | 
					 | 
				
			||||||
"$IPT4" "$@" -t filter -A FBWIFI_INPUT -p tcp --dport "$fbwifi_https_port"  -m conntrack --ctstate NEW -j ACCEPT
 | 
					 | 
				
			||||||
"$IPT4" "$@" -t filter -A FBWIFI_INPUT -p tcp --dport 443 -m conntrack --ctstate NEW -j ACCEPT
 | 
					 | 
				
			||||||
"$IPT4" "$@" -t mangle -A FBWIFI_PREROUTING -j FBWIFI_CLIENT_TO_INTERNET
 | 
					 | 
				
			||||||
"$IPT4" "$@" -t mangle -A FBWIFI_PREROUTING -j FBWIFI_TRAFFIC_ALLOWLIST
 | 
					 | 
				
			||||||
"$IPT4" "$@" -t nat -A FBWIFI_PREROUTING -j FBWIFI_CLIENT_TO_INTERNET
 | 
					 | 
				
			||||||
"$IPT4" "$@" -t nat -A FBWIFI_CLIENT_TO_INTERNET -p tcp --dport 80 -m conntrack --ctstate NEW -j FBWIFI_HOST_REDIRLIST
 | 
					 | 
				
			||||||
"$IPT4" "$@" -t nat -A FBWIFI_CLIENT_TO_INTERNET -p tcp --dport 443 -m conntrack --ctstate NEW -j FBWIFI_HOST_REDIRLIST
 | 
					 | 
				
			||||||
"$IPT4" "$@" -t nat -A FBWIFI_CLIENT_TO_INTERNET -p udp --dport 443 -m conntrack --ctstate NEW -j FBWIFI_HOST_REDIRLIST
 | 
					 | 
				
			||||||
"$IPT4" "$@" -t nat -A FBWIFI_CLIENT_TO_INTERNET -p tcp --dport 80 -m conntrack --ctstate NEW -m mark --mark 0xfb -j ACCEPT
 | 
					 | 
				
			||||||
"$IPT4" "$@" -t nat -A FBWIFI_CLIENT_TO_INTERNET -p tcp --dport 443 -m conntrack --ctstate NEW -m mark --mark 0xfb -j ACCEPT
 | 
					 | 
				
			||||||
"$IPT4" "$@" -t nat -A FBWIFI_CLIENT_TO_INTERNET -p udp --dport 443 -m conntrack --ctstate NEW -m mark --mark 0xfb -j ACCEPT
 | 
					 | 
				
			||||||
"$IPT4" "$@" -t nat -A FBWIFI_CLIENT_TO_INTERNET -p tcp --dport 80 -m conntrack --ctstate NEW -j REDIRECT --to-ports "$fbwifi_http_port"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## Hook custom chains in firewall3 chains
 | 
					 | 
				
			||||||
"$IPT4" "$@" -t filter -I "zone_${fbwifi_zone}_input" 2 -j FBWIFI_INPUT
 | 
					 | 
				
			||||||
"$IPT4" "$@" -t filter -I "zone_${fbwifi_zone}_forward" 2 -j FBWIFI_FORWARD
 | 
					 | 
				
			||||||
"$IPT4" "$@" -t nat -I "zone_${fbwifi_zone}_prerouting" 2 -j FBWIFI_PREROUTING
 | 
					 | 
				
			||||||
# There are no firewall3 zone chains in the mangle table so we need to do this for all interfaces in the zone
 | 
					 | 
				
			||||||
for iface in $fbwifi_ifaces; do
 | 
					 | 
				
			||||||
	"$IPT4" "$@" -t mangle -I PREROUTING -i "$iface" -j FBWIFI_PREROUTING
 | 
					 | 
				
			||||||
done
 | 
					 | 
				
			||||||
@@ -1,8 +0,0 @@
 | 
				
			|||||||
{
 | 
					 | 
				
			||||||
  "request": [
 | 
					 | 
				
			||||||
    [ "if",
 | 
					 | 
				
			||||||
      [ "regex", "REQUEST_URI", "^/fbwifi" ],
 | 
					 | 
				
			||||||
      [ "rewrite", "/cgi-bin%REQUEST_URI%" ]
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
  ]
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,70 +0,0 @@
 | 
				
			|||||||
#!/usr/bin/lua
 | 
					 | 
				
			||||||
require("uci")
 | 
					 | 
				
			||||||
log = require("posix.syslog")
 | 
					 | 
				
			||||||
fbwifi = require("fbwifi")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
state = uci.cursor("/var/state", "/tmp/fbwifi")
 | 
					 | 
				
			||||||
function process_cors()
 | 
					 | 
				
			||||||
	origin = os.getenv("HTTP_ORIGIN")
 | 
					 | 
				
			||||||
	log.syslog(log.LOG_INFO, string.format("[fbwifi] [auth] process_cors origin %s", origin or 'not found') )
 | 
					 | 
				
			||||||
	if string.len(origin or '') > 0 then
 | 
					 | 
				
			||||||
		allow_list = state:get("fbwifi", "main", "cross_origin_allow_rules")
 | 
					 | 
				
			||||||
		for _, value in pairs(allow_list) do
 | 
					 | 
				
			||||||
    			if value == origin then
 | 
					 | 
				
			||||||
				log.syslog(log.LOG_INFO, "[fbwifi] [auth] process_cors Appending CORS Headers to HTTP")
 | 
					 | 
				
			||||||
				print("Access-Control-Allow-Origin: "..origin)
 | 
					 | 
				
			||||||
				print("Vary: Origin")
 | 
					 | 
				
			||||||
				break
 | 
					 | 
				
			||||||
			end
 | 
					 | 
				
			||||||
		end
 | 
					 | 
				
			||||||
	else	
 | 
					 | 
				
			||||||
		log.syslog(log.LOG_INFO, "[fbwifi] [auth] process_cors No CORS Headers added to Response")
 | 
					 | 
				
			||||||
	end
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
method = os.getenv("REQUEST_METHOD")
 | 
					 | 
				
			||||||
if method == 'GET' then
 | 
					 | 
				
			||||||
	log.syslog(log.LOG_INFO, "[fbwifi] [auth] GET handler")
 | 
					 | 
				
			||||||
	print("Status: 302 Found")
 | 
					 | 
				
			||||||
	print("Location: "..state:get("fbwifi", "main", "landing_page_url"))
 | 
					 | 
				
			||||||
	process_cors()
 | 
					 | 
				
			||||||
	print ('\n')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
elseif method == 'POST' then
 | 
					 | 
				
			||||||
	local token
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	log.syslog(log.LOG_INFO, "[fbwifi] [auth] POST handler")
 | 
					 | 
				
			||||||
	process_cors()
 | 
					 | 
				
			||||||
	print("Status: 200 OK")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	form_data=io.read()
 | 
					 | 
				
			||||||
	while form_data do
 | 
					 | 
				
			||||||
		token = string.match(form_data, '[%d]+')
 | 
					 | 
				
			||||||
		if string.len(token or '') > 14 then
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			client = os.getenv("REMOTE_ADDR")
 | 
					 | 
				
			||||||
			f = io.popen("awk '/"..client..".*0x2/ { printf(\"%s\", $4) }' /proc/net/arp", 'r')
 | 
					 | 
				
			||||||
			client_mac = assert(f:read('*a'))
 | 
					 | 
				
			||||||
			f:close()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			if fbwifi.validate_token(token) then
 | 
					 | 
				
			||||||
                                log.syslog(log.LOG_INFO, string.format( "[fbwifi] [auth] POST handler : Validating Token (%s) for MAC (%s)", token or 'nil', client_mac or 'nil') )
 | 
					 | 
				
			||||||
				fbwifi.instate_client_rule(token, client_mac)
 | 
					 | 
				
			||||||
				print("\n{\"valid\":true}\n")
 | 
					 | 
				
			||||||
			else
 | 
					 | 
				
			||||||
                                log.syslog(log.LOG_WARNING, string.format( "[fbwifi] [auth] POST handler : ! Invalid token (%s) for mac (%s) !", token or 'nil', client_mac or 'nil') )
 | 
					 | 
				
			||||||
				fbwifi.revoke_client_rule(token)
 | 
					 | 
				
			||||||
				print("\n{\"valid\":false}\n")
 | 
					 | 
				
			||||||
			end
 | 
					 | 
				
			||||||
			log.syslog(log.LOG_INFO, "[fbwifi] [auth] POST handler completed")
 | 
					 | 
				
			||||||
			return
 | 
					 | 
				
			||||||
		end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		form_data=io.read()
 | 
					 | 
				
			||||||
	end
 | 
					 | 
				
			||||||
	print ('\n')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	log.syslog(log.LOG_WARNING, string.format("[fbwifi] [auth] POST handler : token not found" ))
 | 
					 | 
				
			||||||
	fbwifi.revoke_client_rule(token)
 | 
					 | 
				
			||||||
	print("\n{\"valid\":false}\n")
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
@@ -1,42 +0,0 @@
 | 
				
			|||||||
#!/usr/bin/lua
 | 
					 | 
				
			||||||
json = require("cjson")
 | 
					 | 
				
			||||||
require("uci")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
state = uci.cursor("/var/state", "/tmp/fbwifi")
 | 
					 | 
				
			||||||
client_mac = ""
 | 
					 | 
				
			||||||
token = ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
response = {}
 | 
					 | 
				
			||||||
response['venue-info-url'] = state:get("fbwifi", "main", "capport_venue_info_url")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function map_remote_mac_to_token(client)
 | 
					 | 
				
			||||||
        for key, value in pairs(client) do
 | 
					 | 
				
			||||||
                if
 | 
					 | 
				
			||||||
                        key == 'mac' and
 | 
					 | 
				
			||||||
                        value == client_mac
 | 
					 | 
				
			||||||
                then
 | 
					 | 
				
			||||||
			token = client.token
 | 
					 | 
				
			||||||
                        return false
 | 
					 | 
				
			||||||
                end
 | 
					 | 
				
			||||||
        end
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function hasValidToken(client_ip)
 | 
					 | 
				
			||||||
	f = io.popen("awk '/"..client_ip..".*0x2/ { printf(\"%s\", $4) }' /proc/net/arp", 'r')
 | 
					 | 
				
			||||||
	client_mac = assert(f:read('*a'))
 | 
					 | 
				
			||||||
	f:close()
 | 
					 | 
				
			||||||
	state:foreach("fbwifi", "client", map_remote_mac_to_token)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	return 0 < string.len(token)
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
print("Content-type: application/captive+json; charset=utf-8\n")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
client = os.getenv("REMOTE_ADDR")
 | 
					 | 
				
			||||||
response['captive'] = not hasValidToken(client)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if response['captive'] then
 | 
					 | 
				
			||||||
	response['user-portal-url'] = state:get("fbwifi", "main", "captive_portal_url")
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
print( json.encode(response) )
 | 
					 | 
				
			||||||
@@ -1,57 +0,0 @@
 | 
				
			|||||||
#!/usr/bin/lua
 | 
					 | 
				
			||||||
json = require("cjson")
 | 
					 | 
				
			||||||
fbwifi = require("fbwifi")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
state = uci.cursor("/var/state", "/tmp/fbwifi")
 | 
					 | 
				
			||||||
GATEWAY_TOKEN = fbwifi.gateway_token()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
response = { api_version = "2.0", token = json.null }
 | 
					 | 
				
			||||||
client_mac = ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function process_cors()
 | 
					 | 
				
			||||||
        origin = os.getenv("HTTP_ORIGIN")
 | 
					 | 
				
			||||||
        if string.len(origin or '') > 0 then
 | 
					 | 
				
			||||||
                allow_list = state:get("fbwifi", "main", "cross_origin_allow_rules")
 | 
					 | 
				
			||||||
                for _, value in pairs(allow_list) do
 | 
					 | 
				
			||||||
                        if value == origin then
 | 
					 | 
				
			||||||
                                print("Access-Control-Allow-Origin: "..origin)
 | 
					 | 
				
			||||||
                                print("Vary: Origin")
 | 
					 | 
				
			||||||
                                break
 | 
					 | 
				
			||||||
                        end
 | 
					 | 
				
			||||||
                end
 | 
					 | 
				
			||||||
        end
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function map_remote_mac_to_token(client)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	for key, value in pairs(client) do
 | 
					 | 
				
			||||||
		if
 | 
					 | 
				
			||||||
			key == 'mac' and
 | 
					 | 
				
			||||||
			value == client_mac
 | 
					 | 
				
			||||||
		then
 | 
					 | 
				
			||||||
			response.token = client.token
 | 
					 | 
				
			||||||
			return false -- escape outer loop
 | 
					 | 
				
			||||||
		end
 | 
					 | 
				
			||||||
	end
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function getClientToken(client_ip)
 | 
					 | 
				
			||||||
	f = io.popen("awk '/"..client_ip..".*0x2/ { printf(\"%s\", $4) }' /proc/net/arp", 'r')
 | 
					 | 
				
			||||||
	client_mac = assert(f:read('*a'))
 | 
					 | 
				
			||||||
	f:close()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	state:foreach("fbwifi", "client", map_remote_mac_to_token)
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function getGatewayId()
 | 
					 | 
				
			||||||
	id = string.match(GATEWAY_TOKEN, 'FBWIFI:GATEWAY|[0-9]*|([0-9]*)')
 | 
					 | 
				
			||||||
	return id
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
process_cors()
 | 
					 | 
				
			||||||
print("Content-type: application/json; charset=utf-8\n")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
getClientToken(os.getenv("REMOTE_ADDR"))
 | 
					 | 
				
			||||||
response.gateway_id = getGatewayId()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
print( json.encode(response) )
 | 
					 | 
				
			||||||
@@ -1,12 +0,0 @@
 | 
				
			|||||||
-- SPDX-License-Identifier: GPL-2.0-only
 | 
					 | 
				
			||||||
-- Copyright (c) Facebook, Inc. and its affiliates.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
module("luci.controller.fbwifi", package.seeall)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
sys = require "luci.sys"
 | 
					 | 
				
			||||||
ut = require "luci.util"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function index()
 | 
					 | 
				
			||||||
    entry({"admin", "network", "fbwifi"}, template("fbwifi"), "Facebook Wi-Fi", 90).dependent=false
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@@ -1,16 +0,0 @@
 | 
				
			|||||||
<%#
 | 
					 | 
				
			||||||
 Copyright
 | 
					 | 
				
			||||||
 Licensed to the public under the GNU General Public License v2.
 | 
					 | 
				
			||||||
-%>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<%+header%>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h1>Facebook Wi-Fi</h1>
 | 
					 | 
				
			||||||
<%
 | 
					 | 
				
			||||||
	require("uci")
 | 
					 | 
				
			||||||
	state = uci.cursor("/var/state", "/tmp/fbwifi")
 | 
					 | 
				
			||||||
	url = state:get("fbwifi", "main", "captive_portal_config_url")
 | 
					 | 
				
			||||||
%>
 | 
					 | 
				
			||||||
<a href="<% print(url) %>">Configure FB business page</a>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<%+footer%>
 | 
					 | 
				
			||||||
@@ -4,17 +4,17 @@ ARCH:=arm
 | 
				
			|||||||
BOARD:=ipq807x
 | 
					BOARD:=ipq807x
 | 
				
			||||||
BOARDNAME:=Qualcomm Atheros AX
 | 
					BOARDNAME:=Qualcomm Atheros AX
 | 
				
			||||||
SUBTARGETS:=ipq807x ipq60xx ipq50xx
 | 
					SUBTARGETS:=ipq807x ipq60xx ipq50xx
 | 
				
			||||||
FEATURES:=squashfs ramdisk nand pcie usb usbgadget
 | 
					FEATURES:=squashfs ramdisk nand pcie usb
 | 
				
			||||||
KERNELNAME:=Image dtbs
 | 
					KERNELNAME:=Image dtbs
 | 
				
			||||||
CPU_TYPE:=cortex-a7
 | 
					CPU_TYPE:=cortex-a7
 | 
				
			||||||
 | 
					
 | 
				
			||||||
KERNEL_PATCHVER:=5.4
 | 
					KERNEL_PATCHVER:=4.4
 | 
				
			||||||
KERNEL_NAME_SUFFIX=-qsdk-d5fcb18e5420670c8734c6a659873e73adab6dac
 | 
					KERNEL_NAME_SUFFIX=-qsdk-11f09717303ecd83c3a64e9efe23f25921dc1016
 | 
				
			||||||
 | 
					
 | 
				
			||||||
include $(INCLUDE_DIR)/target.mk
 | 
					include $(INCLUDE_DIR)/target.mk
 | 
				
			||||||
DEFAULT_PACKAGES += kmod-qca-nss-dp kmod-qca-ssdk swconfig \
 | 
					DEFAULT_PACKAGES += kmod-qca-nss-dp kmod-qca-ssdk swconfig \
 | 
				
			||||||
	kmod-qca-nss-drv \
 | 
						kmod-qca-nss-drv \
 | 
				
			||||||
	kmod-usb-phy-ipq807x kmod-usb-dwc3-qcom-internal \
 | 
						kmod-usb-phy-ipq807x kmod-usb-dwc3-of-simple \
 | 
				
			||||||
	kmod-ath11k-ahb kmod-qrtr_mproc wpad \
 | 
						kmod-ath11k-ahb kmod-qrtr_mproc wpad \
 | 
				
			||||||
	kmod-gpio-button-hotplug \
 | 
						kmod-gpio-button-hotplug \
 | 
				
			||||||
	qca-thermald-10.4 qca-ssdk-shell kmod-qca-nss-drv-bridge-mgr \
 | 
						qca-thermald-10.4 qca-ssdk-shell kmod-qca-nss-drv-bridge-mgr \
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -34,7 +34,14 @@ edgecore,eap104)
 | 
				
			|||||||
        ucidef_set_led_wlan "wlan5g" "WLAN5G" "green:wifi5" "phy1tpt"
 | 
					        ucidef_set_led_wlan "wlan5g" "WLAN5G" "green:wifi5" "phy1tpt"
 | 
				
			||||||
	ucidef_set_led_netdev "wan" "wan" "yellow:uplink" "eth0"
 | 
						ucidef_set_led_netdev "wan" "wan" "yellow:uplink" "eth0"
 | 
				
			||||||
	;;
 | 
						;;
 | 
				
			||||||
 | 
					liteon,wpx8324)
 | 
				
			||||||
 | 
						ucidef_set_led_wlan "wlan2g" "WLAN2G" "orange:wifi2" "phy0tpt"
 | 
				
			||||||
 | 
						ucidef_set_led_wlan "wlan5g" "WLAN5G" "green:wifi5" "phy1tpt"
 | 
				
			||||||
 | 
						ucidef_set_led_netdev "wan" "wan" "blue:uplink" "eth0"
 | 
				
			||||||
 | 
						;;
 | 
				
			||||||
hfcl,ion4xi|\
 | 
					hfcl,ion4xi|\
 | 
				
			||||||
 | 
					hfcl,ion4x|\
 | 
				
			||||||
 | 
					hfcl,ion4x_2|\
 | 
				
			||||||
hfcl,ion4xe)
 | 
					hfcl,ion4xe)
 | 
				
			||||||
        ucidef_set_led_wlan "wlan5g" "WLAN5G" "blue:wifi5" "phy0tpt"
 | 
					        ucidef_set_led_wlan "wlan5g" "WLAN5G" "blue:wifi5" "phy0tpt"
 | 
				
			||||||
        ucidef_set_led_wlan "wlan2g" "WLAN2G" "blue:wifi2" "phy1tpt"
 | 
					        ucidef_set_led_wlan "wlan2g" "WLAN2G" "blue:wifi2" "phy1tpt"
 | 
				
			||||||
@@ -43,6 +50,11 @@ glinet,ax1800|\
 | 
				
			|||||||
glinet,axt1800)
 | 
					glinet,axt1800)
 | 
				
			||||||
	ucidef_set_led_netdev "wan" "WAN" "blue:wan" "eth0" "tx rx link"
 | 
						ucidef_set_led_netdev "wan" "WAN" "blue:wan" "eth0" "tx rx link"
 | 
				
			||||||
	;;
 | 
						;;
 | 
				
			||||||
 | 
					yuncore,fap650|\
 | 
				
			||||||
 | 
					muxi,ap3220l)
 | 
				
			||||||
 | 
					        ucidef_set_led_wlan "wlan2g" "WLAN2G" "green:wifi2" "phy0tpt"
 | 
				
			||||||
 | 
					        ucidef_set_led_wlan "wlan5g" "WLAN5G" "green:wifi5" "phy1tpt"
 | 
				
			||||||
 | 
						;;
 | 
				
			||||||
esac
 | 
					esac
 | 
				
			||||||
 | 
					
 | 
				
			||||||
board_config_flush
 | 
					board_config_flush
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,6 +13,8 @@ qcom_setup_interfaces()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	case $board in
 | 
						case $board in
 | 
				
			||||||
	hfcl,ion4xi|\
 | 
						hfcl,ion4xi|\
 | 
				
			||||||
 | 
						hfcl,ion4x|\
 | 
				
			||||||
 | 
						hfcl,ion4x_2|\
 | 
				
			||||||
	hfcl,ion4xe)
 | 
						hfcl,ion4xe)
 | 
				
			||||||
		ucidef_set_interface_wan "eth0 eth1"
 | 
							ucidef_set_interface_wan "eth0 eth1"
 | 
				
			||||||
		ucidef_set_interface_lan ""
 | 
							ucidef_set_interface_lan ""
 | 
				
			||||||
@@ -31,9 +33,15 @@ qcom_setup_interfaces()
 | 
				
			|||||||
	cig,wf194c|\
 | 
						cig,wf194c|\
 | 
				
			||||||
	cig,wf194c4|\
 | 
						cig,wf194c4|\
 | 
				
			||||||
	edgecore,eap106|\
 | 
						edgecore,eap106|\
 | 
				
			||||||
 | 
						indio,um-310ax-v1|\
 | 
				
			||||||
 | 
						indio,um-510axp-v1|\
 | 
				
			||||||
 | 
						indio,um-510axm-v1|\
 | 
				
			||||||
	qcom,ipq5018-mp03.3|\
 | 
						qcom,ipq5018-mp03.3|\
 | 
				
			||||||
	yuncore,ax840|\
 | 
						yuncore,ax840|\
 | 
				
			||||||
	sercomm,wallaby)
 | 
						motorola,q14|\
 | 
				
			||||||
 | 
						sercomm,wallaby|\
 | 
				
			||||||
 | 
						plasmacloud,pax1800-v1|\
 | 
				
			||||||
 | 
						plasmacloud,pax1800-v2)
 | 
				
			||||||
		ucidef_set_interface_lan "eth0"
 | 
							ucidef_set_interface_lan "eth0"
 | 
				
			||||||
		ucidef_set_interface_wan "eth1"
 | 
							ucidef_set_interface_wan "eth1"
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
@@ -43,19 +51,26 @@ qcom_setup_interfaces()
 | 
				
			|||||||
		ucidef_set_interface_wan "eth0"
 | 
							ucidef_set_interface_wan "eth0"
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
	edgecore,eap102|\
 | 
						edgecore,eap102|\
 | 
				
			||||||
	edgecore,eap104|\
 | 
						liteon,wpx8324|\
 | 
				
			||||||
	wallys,dr6018|\
 | 
						wallys,dr6018|\
 | 
				
			||||||
	cig,wf188n|\
 | 
						cig,wf188n|\
 | 
				
			||||||
	cig,wf196)
 | 
						cig,wf196|\
 | 
				
			||||||
 | 
						muxi,ap3220l)
 | 
				
			||||||
		ucidef_set_interface_lan "eth1"
 | 
							ucidef_set_interface_lan "eth1"
 | 
				
			||||||
		ucidef_set_interface_wan "eth0"
 | 
							ucidef_set_interface_wan "eth0"
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
 | 
						yuncore,fap650)
 | 
				
			||||||
 | 
							ucidef_set_interface_lan "eth3 eth2 eth1 eth0"
 | 
				
			||||||
 | 
							ucidef_set_interface_wan "eth4"
 | 
				
			||||||
 | 
							;;
 | 
				
			||||||
	qcom,ipq807x-hk14)
 | 
						qcom,ipq807x-hk14)
 | 
				
			||||||
		ucidef_set_interface_lan "eth0 eth1 eth2 eth3"
 | 
							ucidef_set_interface_lan "eth0 eth1 eth2 eth3"
 | 
				
			||||||
		ucidef_set_interface_wan "eth4"
 | 
							ucidef_set_interface_wan "eth4"
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
	wallys,dr6018-v4|\
 | 
						wallys,dr6018-v4|\
 | 
				
			||||||
	glinet,ax1800)
 | 
						glinet,ax1800|\
 | 
				
			||||||
 | 
						meshpp,s618-cp03|\
 | 
				
			||||||
 | 
						meshpp,s618-cp01)
 | 
				
			||||||
		ucidef_set_interface_lan "eth1 eth2 eth3 eth4"
 | 
							ucidef_set_interface_lan "eth1 eth2 eth3 eth4"
 | 
				
			||||||
		ucidef_set_interface_wan "eth0"
 | 
							ucidef_set_interface_wan "eth0"
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
@@ -67,6 +82,12 @@ qcom_setup_interfaces()
 | 
				
			|||||||
		ucidef_add_switch_attr "switch1" "enable" "false"
 | 
							ucidef_add_switch_attr "switch1" "enable" "false"
 | 
				
			||||||
		ucidef_add_switch_attr "switch1" "reset" "true"
 | 
							ucidef_add_switch_attr "switch1" "reset" "true"
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
 | 
						edgecore,eap104)
 | 
				
			||||||
 | 
							ucidef_set_interface_lan "lan1 lan2 lan3 lan4"
 | 
				
			||||||
 | 
							ucidef_set_interface_wan "eth0"
 | 
				
			||||||
 | 
							ucidef_add_switch "switch1" \
 | 
				
			||||||
 | 
								"6@eth1" "1:lan1" "2:lan2" "3:lan3" "4:lan4"
 | 
				
			||||||
 | 
							;;
 | 
				
			||||||
	esac
 | 
						esac
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -76,13 +97,24 @@ qcom_setup_macs()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	case $board in
 | 
						case $board in
 | 
				
			||||||
	cig,wf194c|\
 | 
						cig,wf194c|\
 | 
				
			||||||
	cig,wf194c4|\
 | 
						cig,wf194c4)
 | 
				
			||||||
	cig,wf196)
 | 
					 | 
				
			||||||
		mac=$(grep BaseMacAddress= /dev/mtd14 | cut -dx -f2)
 | 
							mac=$(grep BaseMacAddress= /dev/mtd14 | cut -dx -f2)
 | 
				
			||||||
		wan_mac=$(macaddr_canonicalize $mac)
 | 
							wan_mac=$(macaddr_canonicalize $mac)
 | 
				
			||||||
		lan_mac=$(macaddr_add "$wan_mac" 1)
 | 
							lan_mac=$(macaddr_add "$wan_mac" 1)
 | 
				
			||||||
		ucidef_set_network_device_mac eth0 $lan_mac
 | 
							ucidef_set_network_device_mac eth0 $lan_mac
 | 
				
			||||||
		ucidef_set_network_device_mac eth1 $wan_mac
 | 
							ucidef_set_network_device_mac eth1 $wan_mac
 | 
				
			||||||
 | 
							ip link set eth0 address $lan_mac
 | 
				
			||||||
 | 
							ip link set eth1 address $wan_mac
 | 
				
			||||||
 | 
							ucidef_set_label_macaddr $wan_mac
 | 
				
			||||||
 | 
							;;
 | 
				
			||||||
 | 
						cig,wf196)
 | 
				
			||||||
 | 
							mac=$(grep BaseMacAddress= /dev/mtd14 | cut -dx -f2)
 | 
				
			||||||
 | 
							wan_mac=$(macaddr_canonicalize $mac)
 | 
				
			||||||
 | 
							lan_mac=$(macaddr_add "$wan_mac" 1)
 | 
				
			||||||
 | 
							ucidef_set_network_device_mac eth1 $lan_mac
 | 
				
			||||||
 | 
							ucidef_set_network_device_mac eth0 $wan_mac
 | 
				
			||||||
 | 
							ip link set eth0 address $wan_mac
 | 
				
			||||||
 | 
							ip link set eth1 address $lan_mac
 | 
				
			||||||
		ucidef_set_label_macaddr $wan_mac
 | 
							ucidef_set_label_macaddr $wan_mac
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
	cybertan,eww622-a1)
 | 
						cybertan,eww622-a1)
 | 
				
			||||||
@@ -94,6 +126,21 @@ qcom_setup_macs()
 | 
				
			|||||||
		ucidef_set_network_device_mac eth1 $lan_mac
 | 
							ucidef_set_network_device_mac eth1 $lan_mac
 | 
				
			||||||
		ucidef_set_label_macaddr $wan_mac
 | 
							ucidef_set_label_macaddr $wan_mac
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
 | 
						indio,um-310ax-v1|\
 | 
				
			||||||
 | 
						indio,um-510axp-v1|\
 | 
				
			||||||
 | 
						indio,um-510axm-v1|\
 | 
				
			||||||
 | 
						yuncore,ax840)
 | 
				
			||||||
 | 
							wan_mac=$(cat /sys/class/net/eth1/address)
 | 
				
			||||||
 | 
							lan_mac=$(macaddr_add "$wan_mac" 1)
 | 
				
			||||||
 | 
							;;
 | 
				
			||||||
 | 
						muxi,ap3220l)
 | 
				
			||||||
 | 
							wan_mac=$(mtd_get_mac_binary 0:Product_Info 0x5b)
 | 
				
			||||||
 | 
							lan_mac=$(macaddr_add "$wan_mac" 1)
 | 
				
			||||||
 | 
							ucidef_set_network_device_mac eth0 $wan_mac
 | 
				
			||||||
 | 
							ucidef_set_network_device_mac eth1 $lan_mac
 | 
				
			||||||
 | 
							ip link set eth0 address $wan_mac
 | 
				
			||||||
 | 
							ip link set eth1 address $lan_mac
 | 
				
			||||||
 | 
							;;
 | 
				
			||||||
	*)
 | 
						*)
 | 
				
			||||||
		wan_mac=$(cat /sys/class/net/eth0/address)
 | 
							wan_mac=$(cat /sys/class/net/eth0/address)
 | 
				
			||||||
		lan_mac=$(macaddr_add "$wan_mac" 1)
 | 
							lan_mac=$(macaddr_add "$wan_mac" 1)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -49,6 +49,15 @@ ath11k_generate_macs_ion4x() {
 | 
				
			|||||||
	echo -ne \\x${wifimac2//:/\\x} >> /lib/firmware/ath11k-macs
 | 
						echo -ne \\x${wifimac2//:/\\x} >> /lib/firmware/ath11k-macs
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ath11k_generate_macs_pax1800() {
 | 
				
			||||||
 | 
						touch /lib/firmware/ath11k-macs
 | 
				
			||||||
 | 
						eth=$(cat /sys/class/net/eth0/address)
 | 
				
			||||||
 | 
						mac1=$(macaddr_add $eth 10)
 | 
				
			||||||
 | 
						mac2=$(macaddr_add $eth 2)
 | 
				
			||||||
 | 
						echo -ne \\x${mac1//:/\\x} >> /lib/firmware/ath11k-macs
 | 
				
			||||||
 | 
						echo -ne \\x${mac2//:/\\x} >> /lib/firmware/ath11k-macs
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
caldata_die() {
 | 
					caldata_die() {
 | 
				
			||||||
        echo "caldata: " "$*"
 | 
					        echo "caldata: " "$*"
 | 
				
			||||||
        exit 1
 | 
					        exit 1
 | 
				
			||||||
@@ -77,11 +86,13 @@ case "$FIRMWARE" in
 | 
				
			|||||||
	cig,wf196|\
 | 
						cig,wf196|\
 | 
				
			||||||
	edgecore,eap102 |\
 | 
						edgecore,eap102 |\
 | 
				
			||||||
	edgecore,eap106 |\
 | 
						edgecore,eap106 |\
 | 
				
			||||||
 | 
						indio,um-310ax-v1|\
 | 
				
			||||||
 | 
						indio,um-510axp-v1|\
 | 
				
			||||||
 | 
						indio,um-510axm-v1|\
 | 
				
			||||||
	qcom,ipq807x-hk01|\
 | 
						qcom,ipq807x-hk01|\
 | 
				
			||||||
	qcom,ipq807x-hk14|\
 | 
						qcom,ipq807x-hk14|\
 | 
				
			||||||
	tplink,ex227|\
 | 
						tplink,ex227|\
 | 
				
			||||||
	tplink,ex447|\
 | 
						tplink,ex447|\
 | 
				
			||||||
	yuncore,ax840|\
 | 
					 | 
				
			||||||
	sercomm,wallaby)
 | 
						sercomm,wallaby)
 | 
				
			||||||
                caldata_extract "0:ART" 0x1000 0x20000
 | 
					                caldata_extract "0:ART" 0x1000 0x20000
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
@@ -93,12 +104,21 @@ case "$FIRMWARE" in
 | 
				
			|||||||
	cig,wf188n|\
 | 
						cig,wf188n|\
 | 
				
			||||||
	edgecore,eap101|\
 | 
						edgecore,eap101|\
 | 
				
			||||||
	hfcl,ion4xi|\
 | 
						hfcl,ion4xi|\
 | 
				
			||||||
 | 
						hfcl,ion4x_2|\
 | 
				
			||||||
 | 
						hfcl,ion4x|\
 | 
				
			||||||
	hfcl,ion4xe|\
 | 
						hfcl,ion4xe|\
 | 
				
			||||||
	wallys,dr6018|\
 | 
						wallys,dr6018|\
 | 
				
			||||||
	wallys,dr6018-v4|\
 | 
						wallys,dr6018-v4|\
 | 
				
			||||||
 | 
						meshpp,ipq6018-cp01|\
 | 
				
			||||||
 | 
						meshpp,ipq6018-cp03|\
 | 
				
			||||||
 | 
						qcom,ipq6018-cp03|\
 | 
				
			||||||
	qcom,ipq6018-cp01|\
 | 
						qcom,ipq6018-cp01|\
 | 
				
			||||||
	xiaomi,ax1800|\
 | 
						xiaomi,ax1800|\
 | 
				
			||||||
	glinet,ax1800)
 | 
						glinet,ax1800|\
 | 
				
			||||||
 | 
						yuncore,ax840|\
 | 
				
			||||||
 | 
						yuncore,fap650|\
 | 
				
			||||||
 | 
						plasmacloud,pax1800-v1|\
 | 
				
			||||||
 | 
						plasmacloud,pax1800-v2)
 | 
				
			||||||
                caldata_extract "0:ART" 0x1000 0x20000  
 | 
					                caldata_extract "0:ART" 0x1000 0x20000  
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
	esac
 | 
						esac
 | 
				
			||||||
@@ -107,21 +127,37 @@ ath11k/IPQ5018/hw1.0/caldata.bin)
 | 
				
			|||||||
	case "$board" in
 | 
						case "$board" in
 | 
				
			||||||
	cybertan,eww622-a1|\
 | 
						cybertan,eww622-a1|\
 | 
				
			||||||
	edgecore,eap104|\
 | 
						edgecore,eap104|\
 | 
				
			||||||
 | 
						liteon,wpx8324|\
 | 
				
			||||||
 | 
						motorola,q14|\
 | 
				
			||||||
 | 
						muxi,ap3220l|\
 | 
				
			||||||
	qcom,ipq5018-mp03.1)
 | 
						qcom,ipq5018-mp03.1)
 | 
				
			||||||
                caldata_extract "0:ART" 0x1000 0x20000  
 | 
					                caldata_extract "0:ART" 0x1000 0x20000  
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
	esac
 | 
						esac
 | 
				
			||||||
	;;
 | 
						;;
 | 
				
			||||||
 | 
					ath11k/qcn6122/hw1.0/caldata_1.bin)
 | 
				
			||||||
 | 
						case "$board" in
 | 
				
			||||||
 | 
						motorola,q14)
 | 
				
			||||||
 | 
					                caldata_extract "0:ART" 0x26800 0x20000  
 | 
				
			||||||
 | 
							;;
 | 
				
			||||||
 | 
						esac
 | 
				
			||||||
 | 
						;;
 | 
				
			||||||
ath11k/qcn6122/hw1.0/caldata_2.bin)
 | 
					ath11k/qcn6122/hw1.0/caldata_2.bin)
 | 
				
			||||||
	case "$board" in
 | 
						case "$board" in
 | 
				
			||||||
	edgecore,eap104)
 | 
						motorola,q14|\
 | 
				
			||||||
 | 
						edgecore,eap104|\
 | 
				
			||||||
 | 
						liteon,wpx8324)
 | 
				
			||||||
                caldata_extract "0:ART" 0x4c000 0x20000  
 | 
					                caldata_extract "0:ART" 0x4c000 0x20000  
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
 | 
						muxi,ap3220l)
 | 
				
			||||||
 | 
							caldata_extract "0:ART" 0x26800 0x20000
 | 
				
			||||||
 | 
							;;
 | 
				
			||||||
	esac
 | 
						esac
 | 
				
			||||||
	;;
 | 
						;;
 | 
				
			||||||
ath11k/QCN9074/hw1.0/caldata_1.bin)
 | 
					ath11k/QCN9074/hw1.0/caldata_1.bin)
 | 
				
			||||||
	case "$board" in
 | 
						case "$board" in
 | 
				
			||||||
	cig,wf196|\
 | 
						cig,wf196|\
 | 
				
			||||||
 | 
						wallys,dr6018-v4|\
 | 
				
			||||||
	cybertan,eww622-a1|\
 | 
						cybertan,eww622-a1|\
 | 
				
			||||||
	qcom,ipq5018-mp03.1|\
 | 
						qcom,ipq5018-mp03.1|\
 | 
				
			||||||
	qcom,ipq807x-hk14)
 | 
						qcom,ipq807x-hk14)
 | 
				
			||||||
@@ -140,21 +176,32 @@ ath11k/QCN9074/hw1.0/caldata_2.bin)
 | 
				
			|||||||
ath11k-macs)
 | 
					ath11k-macs)
 | 
				
			||||||
	case "$board" in
 | 
						case "$board" in
 | 
				
			||||||
	hfcl,ion4xi|\
 | 
						hfcl,ion4xi|\
 | 
				
			||||||
 | 
						hfcl,ion4x|\
 | 
				
			||||||
 | 
						hfcl,ion4x_2|\
 | 
				
			||||||
	hfcl,ion4xe)                                               
 | 
						hfcl,ion4xe)                                               
 | 
				
			||||||
		ath11k_generate_macs_ion4x
 | 
							ath11k_generate_macs_ion4x
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
	edgecore,eap101)
 | 
						edgecore,eap101)
 | 
				
			||||||
		ath11k_generate_macs_eap101
 | 
							ath11k_generate_macs_eap101
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
 | 
						yuncore,ax840|\
 | 
				
			||||||
	edgecore,eap102|\
 | 
						edgecore,eap102|\
 | 
				
			||||||
	edgecore,eap106|\
 | 
						edgecore,eap106|\
 | 
				
			||||||
 | 
						indio,um-310ax-v1|\
 | 
				
			||||||
 | 
						indio,um-510axp-v1|\
 | 
				
			||||||
 | 
						indio,um-510axm-v1|\
 | 
				
			||||||
	cig,wf188n)
 | 
						cig,wf188n)
 | 
				
			||||||
		ath11k_generate_macs
 | 
							ath11k_generate_macs
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
	cig,wf194c|\
 | 
						cig,wf194c|\
 | 
				
			||||||
	cig,wf194c)
 | 
						cig,wf194c4|\
 | 
				
			||||||
 | 
						cig,wf196)
 | 
				
			||||||
		ath11k_generate_macs_wf194
 | 
							ath11k_generate_macs_wf194
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
 | 
						plasmacloud,pax1800-v1|\
 | 
				
			||||||
 | 
						plasmacloud,pax1800-v2)
 | 
				
			||||||
 | 
							ath11k_generate_macs_pax1800
 | 
				
			||||||
 | 
							;;
 | 
				
			||||||
	esac
 | 
						esac
 | 
				
			||||||
	;;
 | 
						;;
 | 
				
			||||||
*)
 | 
					*)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,7 +11,7 @@ boot() {
 | 
				
			|||||||
	edgecore,eap101|\
 | 
						edgecore,eap101|\
 | 
				
			||||||
	edgecore,eap102)
 | 
						edgecore,eap102)
 | 
				
			||||||
		avail=$(fw_printenv -n upgrade_available)
 | 
							avail=$(fw_printenv -n upgrade_available)
 | 
				
			||||||
		[ ${avail} -eq 0 ] && fw_setenv upgrade_available 1
 | 
							[ "${avail}" -eq 1 ] || fw_setenv upgrade_available 1
 | 
				
			||||||
		fw_setenv bootcount 0
 | 
							fw_setenv bootcount 0
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
	esac
 | 
						esac
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										126
									
								
								feeds/ipq807x/ipq807x/base-files/lib/upgrade/dualboot_datachk.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										126
									
								
								feeds/ipq807x/ipq807x/base-files/lib/upgrade/dualboot_datachk.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,126 @@
 | 
				
			|||||||
 | 
					# 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_post_upgrade_sanity_check()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						local part_name=$1
 | 
				
			||||||
 | 
						local inactive_mtd=$2
 | 
				
			||||||
 | 
						local cfg_md5=$3
 | 
				
			||||||
 | 
						local part_offset=$4
 | 
				
			||||||
 | 
						local part_size=$5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						md5_part_disk=$(dd if=/dev/${inactive_mtd} bs=$((64*1024)) skip=$((part_offset / (64*1024))) count=$((part_size / (64*1024))) 2>&- | md5sum | awk '{print $1}')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if [ "${cfg_md5}" != "${md5_part_disk}" ]; then
 | 
				
			||||||
 | 
						      echo "post-flashing checksum mismatch: ${part_name}" >&2
 | 
				
			||||||
 | 
						      echo "${cfg_md5} != ${md5_part_disk}"
 | 
				
			||||||
 | 
						      return 1
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return 0
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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,pax1800-v1|\
 | 
				
			||||||
 | 
						plasmacloud,pax1800-v2)
 | 
				
			||||||
 | 
							primary_kernel_mtd=9
 | 
				
			||||||
 | 
							;;
 | 
				
			||||||
 | 
						*)
 | 
				
			||||||
 | 
							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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						platform_post_upgrade_sanity_check "kernel" "mtd${kernel_mtd}" $kernel_md5 0 $kernel_length || return 1
 | 
				
			||||||
 | 
						platform_post_upgrade_sanity_check "rootfs" "mtd${kernel_mtd}" $rootfs_md5 $kernel_length $rootfs_length || return 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# 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
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -1,7 +1,8 @@
 | 
				
			|||||||
. /lib/functions/system.sh
 | 
					. /lib/functions/system.sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RAMFS_COPY_BIN='fw_printenv fw_setenv'
 | 
					
 | 
				
			||||||
RAMFS_COPY_DATA='/etc/fw_env.config /var/lock/fw_printenv.lock'
 | 
					RAMFS_COPY_BIN='fw_setenv'
 | 
				
			||||||
 | 
					RAMFS_COPY_DATA='/etc/fw_env.config /var/lock/fw_printenv.lock /tmp/downgrade'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
qca_do_upgrade() {
 | 
					qca_do_upgrade() {
 | 
				
			||||||
        local tar_file="$1"
 | 
					        local tar_file="$1"
 | 
				
			||||||
@@ -19,6 +20,50 @@ qca_do_upgrade() {
 | 
				
			|||||||
        fi
 | 
					        fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					find_mmc_part() {
 | 
				
			||||||
 | 
						local DEVNAME PARTNAME
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if grep -q "$1" /proc/mtd; then
 | 
				
			||||||
 | 
							echo "" && return 0
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						for DEVNAME in /sys/block/mmcblk*/mmcblk*p*; do
 | 
				
			||||||
 | 
							PARTNAME=$(grep PARTNAME ${DEVNAME}/uevent | cut -f2 -d'=')
 | 
				
			||||||
 | 
							[ "$PARTNAME" = "$1" ] && echo "/dev/$(basename $DEVNAME)" && return 0
 | 
				
			||||||
 | 
						done
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					do_flash_emmc() {
 | 
				
			||||||
 | 
						local tar_file=$1
 | 
				
			||||||
 | 
						local emmcblock=$(find_mmc_part $2)
 | 
				
			||||||
 | 
						local board_dir=$3
 | 
				
			||||||
 | 
						local part=$4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						[ -z "$emmcblock" ] && {
 | 
				
			||||||
 | 
							echo failed to find $2
 | 
				
			||||||
 | 
							return
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						echo erase $4
 | 
				
			||||||
 | 
						dd if=/dev/zero of=${emmcblock} 2> /dev/null
 | 
				
			||||||
 | 
						echo flash $4
 | 
				
			||||||
 | 
						tar Oxf $tar_file ${board_dir}/$part | dd of=${emmcblock}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					emmc_do_upgrade() {
 | 
				
			||||||
 | 
						local tar_file="$1"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						local board_dir=$(tar tf $tar_file | grep -m 1 '^sysupgrade-.*/$')
 | 
				
			||||||
 | 
						board_dir=${board_dir%/}
 | 
				
			||||||
 | 
						do_flash_emmc $tar_file '0:HLOS' $board_dir kernel
 | 
				
			||||||
 | 
						do_flash_emmc $tar_file 'rootfs' $board_dir root
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						local emmcblock="$(find_mmc_part "rootfs_data")"
 | 
				
			||||||
 | 
					        if [ -e "$emmcblock" ]; then
 | 
				
			||||||
 | 
					                mkfs.ext4 -F "$emmcblock"
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
platform_check_image() {
 | 
					platform_check_image() {
 | 
				
			||||||
	local magic_long="$(get_magic_long "$1")"
 | 
						local magic_long="$(get_magic_long "$1")"
 | 
				
			||||||
	board=$(board_name)
 | 
						board=$(board_name)
 | 
				
			||||||
@@ -31,17 +76,28 @@ platform_check_image() {
 | 
				
			|||||||
	cybertan,eww622-a1|\
 | 
						cybertan,eww622-a1|\
 | 
				
			||||||
	glinet,ax1800|\
 | 
						glinet,ax1800|\
 | 
				
			||||||
	glinet,axt1800|\
 | 
						glinet,axt1800|\
 | 
				
			||||||
 | 
						indio,um-310ax-v1|\
 | 
				
			||||||
 | 
						indio,um-510axp-v1|\
 | 
				
			||||||
 | 
						indio,um-510axm-v1|\
 | 
				
			||||||
	wallys,dr6018|\
 | 
						wallys,dr6018|\
 | 
				
			||||||
	wallys,dr6018-v4|\
 | 
						wallys,dr6018-v4|\
 | 
				
			||||||
	edgecore,eap101|\
 | 
						edgecore,eap101|\
 | 
				
			||||||
	edgecore,eap102|\
 | 
						edgecore,eap102|\
 | 
				
			||||||
	edgecore,eap104|\
 | 
						edgecore,eap104|\
 | 
				
			||||||
 | 
						liteon,wpx8324|\
 | 
				
			||||||
	edgecore,eap106|\
 | 
						edgecore,eap106|\
 | 
				
			||||||
	hfcl,ion4xi|\
 | 
						hfcl,ion4xi|\
 | 
				
			||||||
 | 
						hfcl,ion4x|\
 | 
				
			||||||
 | 
						hfcl,ion4x_2|\
 | 
				
			||||||
	hfcl,ion4xe|\
 | 
						hfcl,ion4xe|\
 | 
				
			||||||
 | 
						muxi,ap3220l|\
 | 
				
			||||||
 | 
						plasmacloud,pax1800-v1|\
 | 
				
			||||||
 | 
						plasmacloud,pax1800-v2|\
 | 
				
			||||||
	tplink,ex227|\
 | 
						tplink,ex227|\
 | 
				
			||||||
	tplink,ex447|\
 | 
						tplink,ex447|\
 | 
				
			||||||
	yuncore,ax840|\
 | 
						yuncore,ax840|\
 | 
				
			||||||
 | 
						motorola,q14|\
 | 
				
			||||||
 | 
						muxi,ap3220l|\
 | 
				
			||||||
	qcom,ipq6018-cp01|\
 | 
						qcom,ipq6018-cp01|\
 | 
				
			||||||
	qcom,ipq807x-hk01|\
 | 
						qcom,ipq807x-hk01|\
 | 
				
			||||||
	qcom,ipq807x-hk14|\
 | 
						qcom,ipq807x-hk14|\
 | 
				
			||||||
@@ -62,14 +118,19 @@ platform_do_upgrade() {
 | 
				
			|||||||
	cig,wf188)
 | 
						cig,wf188)
 | 
				
			||||||
		qca_do_upgrade $1
 | 
							qca_do_upgrade $1
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
 | 
						motorola,q14)
 | 
				
			||||||
 | 
							emmc_do_upgrade $1
 | 
				
			||||||
 | 
							;;
 | 
				
			||||||
	cig,wf188n|\
 | 
						cig,wf188n|\
 | 
				
			||||||
	cig,wf194c|\
 | 
						cig,wf194c|\
 | 
				
			||||||
	cig,wf194c4|\
 | 
						cig,wf194c4|\
 | 
				
			||||||
	cig,wf196|\
 | 
						cig,wf196|\
 | 
				
			||||||
	cybertan,eww622-a1|\
 | 
						cybertan,eww622-a1|\
 | 
				
			||||||
	edgecore,eap104|\
 | 
					 | 
				
			||||||
	glinet,ax1800|\
 | 
						glinet,ax1800|\
 | 
				
			||||||
	glinet,axt1800|\
 | 
						glinet,axt1800|\
 | 
				
			||||||
 | 
						indio,um-310ax-v1|\
 | 
				
			||||||
 | 
						indio,um-510axp-v1|\
 | 
				
			||||||
 | 
						indio,um-510axm-v1|\
 | 
				
			||||||
	qcom,ipq6018-cp01|\
 | 
						qcom,ipq6018-cp01|\
 | 
				
			||||||
	qcom,ipq807x-hk01|\
 | 
						qcom,ipq807x-hk01|\
 | 
				
			||||||
	qcom,ipq807x-hk14|\
 | 
						qcom,ipq807x-hk14|\
 | 
				
			||||||
@@ -78,10 +139,14 @@ platform_do_upgrade() {
 | 
				
			|||||||
	wallys,dr6018-v4|\
 | 
						wallys,dr6018-v4|\
 | 
				
			||||||
	yuncore,ax840|\
 | 
						yuncore,ax840|\
 | 
				
			||||||
	tplink,ex447|\
 | 
						tplink,ex447|\
 | 
				
			||||||
	tplink,ex227)	
 | 
						tplink,ex227|\
 | 
				
			||||||
 | 
						meshpp,s618-cp03|\
 | 
				
			||||||
 | 
						meshpp,s618-cp01)
 | 
				
			||||||
		nand_upgrade_tar "$1"
 | 
							nand_upgrade_tar "$1"
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
	hfcl,ion4xi|\
 | 
						hfcl,ion4xi|\
 | 
				
			||||||
 | 
						hfcl,ion4x|\
 | 
				
			||||||
 | 
						hfcl,ion4x_2|\
 | 
				
			||||||
	hfcl,ion4xe)
 | 
						hfcl,ion4xe)
 | 
				
			||||||
		if grep -q rootfs_1 /proc/cmdline; then
 | 
							if grep -q rootfs_1 /proc/cmdline; then
 | 
				
			||||||
			CI_UBIPART="rootfs"
 | 
								CI_UBIPART="rootfs"
 | 
				
			||||||
@@ -92,6 +157,8 @@ platform_do_upgrade() {
 | 
				
			|||||||
		fi
 | 
							fi
 | 
				
			||||||
		nand_upgrade_tar "$1"
 | 
							nand_upgrade_tar "$1"
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
 | 
						edgecore,eap104|\
 | 
				
			||||||
 | 
						liteon,wpx8324|\
 | 
				
			||||||
	edgecore,eap106)
 | 
						edgecore,eap106)
 | 
				
			||||||
		CI_UBIPART="rootfs1"
 | 
							CI_UBIPART="rootfs1"
 | 
				
			||||||
		[ "$(find_mtd_chardev rootfs)" ] && CI_UBIPART="rootfs"
 | 
							[ "$(find_mtd_chardev rootfs)" ] && CI_UBIPART="rootfs"
 | 
				
			||||||
@@ -102,7 +169,11 @@ platform_do_upgrade() {
 | 
				
			|||||||
		if [ "$(find_mtd_chardev rootfs)" ]; then
 | 
							if [ "$(find_mtd_chardev rootfs)" ]; then
 | 
				
			||||||
			CI_UBIPART="rootfs"
 | 
								CI_UBIPART="rootfs"
 | 
				
			||||||
		else
 | 
							else
 | 
				
			||||||
			if grep -q rootfs1 /proc/cmdline; then
 | 
								if [ -e /tmp/downgrade ]; then
 | 
				
			||||||
 | 
									CI_UBIPART="rootfs1"
 | 
				
			||||||
 | 
									fw_setenv active 1 || exit 1
 | 
				
			||||||
 | 
									fw_setenv upgrade_available 0 || exit 1
 | 
				
			||||||
 | 
								elif grep -q rootfs1 /proc/cmdline; then
 | 
				
			||||||
				CI_UBIPART="rootfs2"
 | 
									CI_UBIPART="rootfs2"
 | 
				
			||||||
				fw_setenv active 2 || exit 1
 | 
									fw_setenv active 2 || exit 1
 | 
				
			||||||
			else
 | 
								else
 | 
				
			||||||
@@ -112,5 +183,10 @@ platform_do_upgrade() {
 | 
				
			|||||||
		fi
 | 
							fi
 | 
				
			||||||
		nand_upgrade_tar "$1"
 | 
							nand_upgrade_tar "$1"
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
 | 
						plasmacloud,pax1800-v1|\
 | 
				
			||||||
 | 
						plasmacloud,pax1800-v2)
 | 
				
			||||||
 | 
							PART_NAME="inactive"
 | 
				
			||||||
 | 
							platform_do_upgrade_dualboot_datachk "$1"
 | 
				
			||||||
 | 
							;;
 | 
				
			||||||
	esac
 | 
						esac
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										829
									
								
								feeds/ipq807x/ipq807x/config-4.4
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										829
									
								
								feeds/ipq807x/ipq807x/config-4.4
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,829 @@
 | 
				
			|||||||
 | 
					# CONFIG_AHCI_IPQ is not set
 | 
				
			||||||
 | 
					CONFIG_ALIGNMENT_TRAP=y
 | 
				
			||||||
 | 
					# CONFIG_ALLOW_DEV_COREDUMP is not set
 | 
				
			||||||
 | 
					# CONFIG_AMBA_PL08X is not set
 | 
				
			||||||
 | 
					# CONFIG_APM_EMULATION is not set
 | 
				
			||||||
 | 
					# CONFIG_APQ_GCC_8084 is not set
 | 
				
			||||||
 | 
					# CONFIG_APQ_MMCC_8084 is not set
 | 
				
			||||||
 | 
					# CONFIG_AR8216_PHY is not set
 | 
				
			||||||
 | 
					CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
 | 
				
			||||||
 | 
					CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
 | 
				
			||||||
 | 
					CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
 | 
				
			||||||
 | 
					CONFIG_ARCH_HAS_SG_CHAIN=y
 | 
				
			||||||
 | 
					CONFIG_ARCH_HAS_TICK_BROADCAST=y
 | 
				
			||||||
 | 
					CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
 | 
				
			||||||
 | 
					# CONFIG_ARCH_IPQ40XX is not set
 | 
				
			||||||
 | 
					# CONFIG_ARCH_IPQ806x is not set
 | 
				
			||||||
 | 
					# CONFIG_ARCH_IPQ807x is not set
 | 
				
			||||||
 | 
					# CONFIG_ARCH_IPQ6018 is not set
 | 
				
			||||||
 | 
					# CONFIG_ARCH_IPQ5018 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=y
 | 
				
			||||||
 | 
					CONFIG_ARCH_MULTIPLATFORM=y
 | 
				
			||||||
 | 
					# CONFIG_ARCH_MULTI_CPU_AUTO is not set
 | 
				
			||||||
 | 
					CONFIG_ARCH_MULTI_V6_V7=y
 | 
				
			||||||
 | 
					CONFIG_ARCH_MULTI_V7=y
 | 
				
			||||||
 | 
					CONFIG_ARCH_NR_GPIO=0
 | 
				
			||||||
 | 
					CONFIG_ARCH_QCOM=y
 | 
				
			||||||
 | 
					CONFIG_QSEECOM=m
 | 
				
			||||||
 | 
					# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
 | 
				
			||||||
 | 
					# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
 | 
				
			||||||
 | 
					CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
 | 
				
			||||||
 | 
					CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y
 | 
				
			||||||
 | 
					CONFIG_ARCH_SUPPORTS_UPROBES=y
 | 
				
			||||||
 | 
					CONFIG_ARCH_SUSPEND_POSSIBLE=y
 | 
				
			||||||
 | 
					CONFIG_ARCH_USE_BUILTIN_BSWAP=y
 | 
				
			||||||
 | 
					CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
 | 
				
			||||||
 | 
					CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
 | 
				
			||||||
 | 
					CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
 | 
				
			||||||
 | 
					CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
 | 
				
			||||||
 | 
					CONFIG_ARM=y
 | 
				
			||||||
 | 
					CONFIG_ARM_AMBA=y
 | 
				
			||||||
 | 
					CONFIG_ARM_ARCH_TIMER=y
 | 
				
			||||||
 | 
					CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
 | 
				
			||||||
 | 
					# CONFIG_ARM_ATAG_DTB_COMPAT is not set
 | 
				
			||||||
 | 
					CONFIG_ARM_CCI=y
 | 
				
			||||||
 | 
					CONFIG_ARM_CCI400_COMMON=y
 | 
				
			||||||
 | 
					CONFIG_ARM_CCI400_PMU=y
 | 
				
			||||||
 | 
					CONFIG_ARM_CCI_PMU=y
 | 
				
			||||||
 | 
					CONFIG_ARM_CPU_SUSPEND=y
 | 
				
			||||||
 | 
					CONFIG_ARM_GIC=y
 | 
				
			||||||
 | 
					CONFIG_ARM_HAS_SG_CHAIN=y
 | 
				
			||||||
 | 
					# CONFIG_ARM_HIGHBANK_CPUIDLE is not set
 | 
				
			||||||
 | 
					CONFIG_ARM_CPUIDLE=y
 | 
				
			||||||
 | 
					CONFIG_ARM_L1_CACHE_SHIFT=6
 | 
				
			||||||
 | 
					CONFIG_ARM_L1_CACHE_SHIFT_6=y
 | 
				
			||||||
 | 
					# CONFIG_ARM_LPAE is not set
 | 
				
			||||||
 | 
					CONFIG_ARM_MODULE_PLTS=y
 | 
				
			||||||
 | 
					CONFIG_ARM_PATCH_PHYS_VIRT=y
 | 
				
			||||||
 | 
					CONFIG_ARM_PMU=y
 | 
				
			||||||
 | 
					CONFIG_ARM_PSCI=y
 | 
				
			||||||
 | 
					CONFIG_ARM_PSCI_FW=y
 | 
				
			||||||
 | 
					CONFIG_ARM_QCOM_CPUFREQ=y
 | 
				
			||||||
 | 
					# CONFIG_ARM_SMMU is not set
 | 
				
			||||||
 | 
					# CONFIG_ARM_SP805_WATCHDOG is not set
 | 
				
			||||||
 | 
					CONFIG_ARM_THUMB=y
 | 
				
			||||||
 | 
					# CONFIG_ARM_THUMBEE is not set
 | 
				
			||||||
 | 
					CONFIG_ARM_UNWIND=y
 | 
				
			||||||
 | 
					CONFIG_ARM_VIRT_EXT=y
 | 
				
			||||||
 | 
					CONFIG_AT803X_PHY=y
 | 
				
			||||||
 | 
					# CONFIG_ATA is not set
 | 
				
			||||||
 | 
					CONFIG_BLK_DEV_LOOP=y
 | 
				
			||||||
 | 
					CONFIG_BLK_DEV_NVME=y
 | 
				
			||||||
 | 
					CONFIG_BLK_DEV_RAM=y
 | 
				
			||||||
 | 
					CONFIG_BLK_DEV_RAM_COUNT=16
 | 
				
			||||||
 | 
					CONFIG_BLK_DEV_RAM_SIZE=4096
 | 
				
			||||||
 | 
					# CONFIG_VIRTIO_BLK is not set
 | 
				
			||||||
 | 
					# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
 | 
				
			||||||
 | 
					CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
 | 
				
			||||||
 | 
					CONFIG_BOUNCE=y
 | 
				
			||||||
 | 
					CONFIG_BUILD_BIN2C=y
 | 
				
			||||||
 | 
					# CONFIG_CNSS_QCN9000 is not set
 | 
				
			||||||
 | 
					# CONFIG_CNSS2 is not set
 | 
				
			||||||
 | 
					# CONFIG_CNSS2_GENL is not set
 | 
				
			||||||
 | 
					# CONFIG_CNSS2_DEBUG is not set
 | 
				
			||||||
 | 
					# CONFIG_CNSS2_PM is not set
 | 
				
			||||||
 | 
					# CONFIG_CNSS2_PCI_DRIVER is not set
 | 
				
			||||||
 | 
					# CONFIG_CNSS2_CALIBRATION_SUPPORT is not set
 | 
				
			||||||
 | 
					# CONFIG_CNSS2_SMMU is not set
 | 
				
			||||||
 | 
					# CONFIG_CNSS2_RAMDUMP is not set
 | 
				
			||||||
 | 
					# CONFIG_CACHE_L2X0 is not set
 | 
				
			||||||
 | 
					CONFIG_CC_OPTIMIZE_FOR_SIZE=y
 | 
				
			||||||
 | 
					CONFIG_CC_STACKPROTECTOR=y
 | 
				
			||||||
 | 
					# CONFIG_CC_STACKPROTECTOR_NONE is not set
 | 
				
			||||||
 | 
					CONFIG_CC_STACKPROTECTOR_REGULAR=y
 | 
				
			||||||
 | 
					# CONFIG_CHARGER_QCOM_SMBB is not set
 | 
				
			||||||
 | 
					CONFIG_CLEANCACHE=y
 | 
				
			||||||
 | 
					CONFIG_CLKDEV_LOOKUP=y
 | 
				
			||||||
 | 
					CONFIG_CLKSRC_OF=y
 | 
				
			||||||
 | 
					CONFIG_CLKSRC_PROBE=y
 | 
				
			||||||
 | 
					CONFIG_CLKSRC_QCOM=y
 | 
				
			||||||
 | 
					CONFIG_CLONE_BACKWARDS=y
 | 
				
			||||||
 | 
					CONFIG_COMMON_CLK=y
 | 
				
			||||||
 | 
					CONFIG_COMMON_CLK_QCOM=y
 | 
				
			||||||
 | 
					CONFIG_CONFIGFS_FS=y
 | 
				
			||||||
 | 
					CONFIG_COREDUMP=y
 | 
				
			||||||
 | 
					# CONFIG_CORESIGHT is not set
 | 
				
			||||||
 | 
					# CONFIG_CORESIGHT_CSR is not set
 | 
				
			||||||
 | 
					# CONFIG_CORESIGHT_CTI is not set
 | 
				
			||||||
 | 
					# NFIG_CORESIGHT_EVENT is not set
 | 
				
			||||||
 | 
					# CONFIG_CORESIGHT_HWEVENT is not set
 | 
				
			||||||
 | 
					# CONFIG_CORESIGHT_LINKS_AND_SINKS is not set
 | 
				
			||||||
 | 
					# CONFIG_CORESIGHT_LINK_AND_SINK_TMC is not set
 | 
				
			||||||
 | 
					# CONFIG_CORESIGHT_QCOM_REPLICATOR is not set
 | 
				
			||||||
 | 
					# CONFIG_CORESIGHT_QPDI is not set
 | 
				
			||||||
 | 
					# CONFIG_CORESIGHT_SINK_ETBV10 is not set
 | 
				
			||||||
 | 
					# CONFIG_CORESIGHT_SINK_TPIU is not set
 | 
				
			||||||
 | 
					# CONFIG_CORESIGHT_SOURCE_DUMMY is not set
 | 
				
			||||||
 | 
					# CONFIG_CORESIGHT_SOURCE_ETM3X is not set
 | 
				
			||||||
 | 
					# CONFIG_CORESIGHT_SOURCE_ETM4X is not set
 | 
				
			||||||
 | 
					# CONFIG_CORESIGHT_REMOTE_ETM is not set
 | 
				
			||||||
 | 
					# CONFIG_CORESIGHT_STM is not set
 | 
				
			||||||
 | 
					# CONFIG_CORESIGHT_TPDA is not set
 | 
				
			||||||
 | 
					# CONFIG_CORESIGHT_TPDM is not set
 | 
				
			||||||
 | 
					# CONFIG_CORESIGHT_TPDM_DEFAULT_ENABLE is not set
 | 
				
			||||||
 | 
					# CONFIG_CORESIGHT_STREAM is not set
 | 
				
			||||||
 | 
					CONFIG_CPUFREQ_DT=y
 | 
				
			||||||
 | 
					CONFIG_CPUFREQ_DT_PLATDEV=y
 | 
				
			||||||
 | 
					CONFIG_CPU_32v6K=y
 | 
				
			||||||
 | 
					CONFIG_CPU_32v7=y
 | 
				
			||||||
 | 
					CONFIG_CPU_ABRT_EV7=y
 | 
				
			||||||
 | 
					# CONFIG_CPU_BIG_ENDIAN is not set
 | 
				
			||||||
 | 
					# CONFIG_CPU_BPREDICT_DISABLE is not set
 | 
				
			||||||
 | 
					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_SW_DOMAIN_PAN is not set
 | 
				
			||||||
 | 
					CONFIG_CPU_FREQ=y
 | 
				
			||||||
 | 
					CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
 | 
				
			||||||
 | 
					CONFIG_CPU_FREQ_GOV_COMMON=y
 | 
				
			||||||
 | 
					CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
 | 
				
			||||||
 | 
					CONFIG_CPU_FREQ_GOV_ONDEMAND=y
 | 
				
			||||||
 | 
					CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
 | 
				
			||||||
 | 
					CONFIG_CPU_FREQ_GOV_POWERSAVE=y
 | 
				
			||||||
 | 
					CONFIG_CPU_FREQ_GOV_USERSPACE=y
 | 
				
			||||||
 | 
					CONFIG_CPU_FREQ_STAT=y
 | 
				
			||||||
 | 
					CONFIG_CPU_HAS_ASID=y
 | 
				
			||||||
 | 
					# CONFIG_CPU_ICACHE_DISABLE is not set
 | 
				
			||||||
 | 
					CONFIG_CPU_IDLE=y
 | 
				
			||||||
 | 
					CONFIG_CPU_IDLE_GOV_LADDER=y
 | 
				
			||||||
 | 
					CONFIG_CPU_IDLE_GOV_MENU=y
 | 
				
			||||||
 | 
					CONFIG_CPU_PABRT_V7=y
 | 
				
			||||||
 | 
					CONFIG_CPU_PM=y
 | 
				
			||||||
 | 
					CONFIG_CPU_RMAP=y
 | 
				
			||||||
 | 
					# CONFIG_CPU_THERMAL is not set
 | 
				
			||||||
 | 
					CONFIG_CPU_TLB_V7=y
 | 
				
			||||||
 | 
					CONFIG_CPU_V7=y
 | 
				
			||||||
 | 
					CONFIG_CRC16=y
 | 
				
			||||||
 | 
					# CONFIG_CRC32_SARWATE is not set
 | 
				
			||||||
 | 
					CONFIG_CRC32_SLICEBY8=y
 | 
				
			||||||
 | 
					CONFIG_CROSS_MEMORY_ATTACH=y
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_DEV_QCOM_MSM_QCE is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_DEV_OTA_CRYPTO is not set
 | 
				
			||||||
 | 
					# CONFIG_FIPS_ENABLE is not set
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_AEAD=y
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_AEAD2=y
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_BLKCIPHER=y
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_BLKCIPHER2=y
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_CBC=y
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_CCM=y
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_CRC32C=y
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_CTR=y
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_DEFLATE=y
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_CMAC=y
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_DEV_QCOM_ICE is not set
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_ECHAINIV=y
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_ECB=y
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_HASH2=y
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_HASH_INFO=y
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_HW=y
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_LZO=y
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_MANAGER=y
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_MANAGER2=y
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_NULL=y
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_RNG=y
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_RNG2=y
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_SEQIV=y
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_SHA256=y
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_WORKQUEUE=y
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_XZ=y
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_ARC4=y
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_GCM=y
 | 
				
			||||||
 | 
					CONFIG_DCACHE_WORD_ACCESS=y
 | 
				
			||||||
 | 
					CONFIG_DEBUG_BUGVERBOSE=y
 | 
				
			||||||
 | 
					CONFIG_DEBUG_GPIO=y
 | 
				
			||||||
 | 
					# CONFIG_DEBUG_INFO_REDUCED is not set
 | 
				
			||||||
 | 
					CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S"
 | 
				
			||||||
 | 
					# CONFIG_DEBUG_MEM_USAGE is not set
 | 
				
			||||||
 | 
					# CONFIG_DEBUG_UART_8250 is not set
 | 
				
			||||||
 | 
					# CONFIG_DEBUG_USER is not set
 | 
				
			||||||
 | 
					CONFIG_DECOMPRESS_GZIP=y
 | 
				
			||||||
 | 
					CONFIG_DEVMEM=y
 | 
				
			||||||
 | 
					# CONFIG_DIAG_OVER_USB is not set
 | 
				
			||||||
 | 
					CONFIG_DMADEVICES=y
 | 
				
			||||||
 | 
					CONFIG_DMA_ENGINE=y
 | 
				
			||||||
 | 
					CONFIG_DMA_OF=y
 | 
				
			||||||
 | 
					CONFIG_DMA_VIRTUAL_CHANNELS=y
 | 
				
			||||||
 | 
					CONFIG_DTC=y
 | 
				
			||||||
 | 
					# CONFIG_DWMAC_GENERIC is not set
 | 
				
			||||||
 | 
					# CONFIG_DWMAC_IPQ806X is not set
 | 
				
			||||||
 | 
					# CONFIG_DWMAC_SUNXI is not set
 | 
				
			||||||
 | 
					# CONFIG_DW_DMAC_PCI is not set
 | 
				
			||||||
 | 
					# CONFIG_VHOST_NET is not set
 | 
				
			||||||
 | 
					# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
 | 
				
			||||||
 | 
					CONFIG_DYNAMIC_DEBUG=y
 | 
				
			||||||
 | 
					CONFIG_ETHERNET_PACKET_MANGLE=y
 | 
				
			||||||
 | 
					CONFIG_EXT4_FS=y
 | 
				
			||||||
 | 
					# CONFIG_EXT4_USE_FOR_EXT2 is not set
 | 
				
			||||||
 | 
					CONFIG_FB=y
 | 
				
			||||||
 | 
					CONFIG_FB_CFB_COPYAREA=y
 | 
				
			||||||
 | 
					CONFIG_FB_CFB_FILLRECT=y
 | 
				
			||||||
 | 
					CONFIG_FB_CFB_IMAGEBLIT=y
 | 
				
			||||||
 | 
					CONFIG_FB_CMDLINE=y
 | 
				
			||||||
 | 
					CONFIG_FB_QCOM_QPIC=y
 | 
				
			||||||
 | 
					CONFIG_FB_QCOM_QPIC_ER_SSD1963_PANEL=y
 | 
				
			||||||
 | 
					CONFIG_FB_SYS_FOPS=y
 | 
				
			||||||
 | 
					CONFIG_FIXED_PHY=y
 | 
				
			||||||
 | 
					CONFIG_FIX_EARLYCON_MEM=y
 | 
				
			||||||
 | 
					CONFIG_FS_MBCACHE=y
 | 
				
			||||||
 | 
					CONFIG_GENERIC_ALLOCATOR=y
 | 
				
			||||||
 | 
					CONFIG_GENERIC_BUG=y
 | 
				
			||||||
 | 
					CONFIG_GENERIC_CLOCKEVENTS=y
 | 
				
			||||||
 | 
					CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
 | 
				
			||||||
 | 
					# CONFIG_GENERIC_CPUFREQ_KRAIT is not set
 | 
				
			||||||
 | 
					CONFIG_GENERIC_IDLE_POLL_SETUP=y
 | 
				
			||||||
 | 
					CONFIG_GENERIC_IO=y
 | 
				
			||||||
 | 
					CONFIG_GENERIC_IRQ_SHOW=y
 | 
				
			||||||
 | 
					CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
 | 
				
			||||||
 | 
					CONFIG_GENERIC_MSI_IRQ=y
 | 
				
			||||||
 | 
					CONFIG_GENERIC_PCI_IOMAP=y
 | 
				
			||||||
 | 
					CONFIG_GENERIC_PHY=y
 | 
				
			||||||
 | 
					CONFIG_GENERIC_PINCONF=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_DEVRES=y
 | 
				
			||||||
 | 
					# CONFIG_GPIO_LATCH is not set
 | 
				
			||||||
 | 
					# CONFIG_GPIO_NXP_74HC153 is not set
 | 
				
			||||||
 | 
					CONFIG_GPIO_SYSFS=y
 | 
				
			||||||
 | 
					CONFIG_HANDLE_DOMAIN_IRQ=y
 | 
				
			||||||
 | 
					CONFIG_HARDIRQS_SW_RESEND=y
 | 
				
			||||||
 | 
					CONFIG_HAS_DMA=y
 | 
				
			||||||
 | 
					CONFIG_HAS_IOMEM=y
 | 
				
			||||||
 | 
					CONFIG_HAS_IOPORT_MAP=y
 | 
				
			||||||
 | 
					# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
 | 
				
			||||||
 | 
					CONFIG_HAVE_ARCH_AUDITSYSCALL=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_ARCH_BITREVERSE=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_ARCH_JUMP_LABEL=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_ARCH_KGDB=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_ARCH_PFN_VALID=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_ARCH_TRACEHOOK=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_ARM_ARCH_TIMER=y
 | 
				
			||||||
 | 
					# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set
 | 
				
			||||||
 | 
					CONFIG_HAVE_BPF_JIT=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_CC_STACKPROTECTOR=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_CLK=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_CLK_PREPARE=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_CONTEXT_TRACKING=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_C_RECORDMCOUNT=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_DEBUG_KMEMLEAK=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_DMA_API_DEBUG=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_DMA_ATTRS=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_DMA_CONTIGUOUS=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_DYNAMIC_FTRACE=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_FUNCTION_TRACER=y
 | 
				
			||||||
 | 
					# CONFIG_SRD_TRACE is not set
 | 
				
			||||||
 | 
					CONFIG_HAVE_GENERIC_DMA_COHERENT=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_HW_BREAKPOINT=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_IDE=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_KERNEL_GZIP=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_KERNEL_LZ4=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_KERNEL_LZMA=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_KERNEL_LZO=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_KERNEL_XZ=y
 | 
				
			||||||
 | 
					# CONFIG_HAVE_KPROBES is not set
 | 
				
			||||||
 | 
					# CONFIG_HAVE_KRETPROBES is not set
 | 
				
			||||||
 | 
					CONFIG_HAVE_MEMBLOCK=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_NET_DSA=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_OPROFILE=y
 | 
				
			||||||
 | 
					# CONFIG_HAVE_OPTPROBES is not set
 | 
				
			||||||
 | 
					CONFIG_HAVE_PERF_EVENTS=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_PERF_REGS=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_PERF_USER_STACK_DUMP=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_PROC_CPU=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_SMP=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_UID16=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
 | 
				
			||||||
 | 
					CONFIG_HIGHMEM=y
 | 
				
			||||||
 | 
					CONFIG_HIGHPTE=y
 | 
				
			||||||
 | 
					CONFIG_HOTPLUG_CPU=y
 | 
				
			||||||
 | 
					CONFIG_HWMON=y
 | 
				
			||||||
 | 
					CONFIG_HWSPINLOCK=y
 | 
				
			||||||
 | 
					CONFIG_HWSPINLOCK_QCOM=y
 | 
				
			||||||
 | 
					CONFIG_HW_RANDOM=y
 | 
				
			||||||
 | 
					CONFIG_HW_RANDOM_MSM=y
 | 
				
			||||||
 | 
					CONFIG_HZ_FIXED=0
 | 
				
			||||||
 | 
					CONFIG_I2C=y
 | 
				
			||||||
 | 
					CONFIG_I2C_BOARDINFO=y
 | 
				
			||||||
 | 
					CONFIG_I2C_CHARDEV=y
 | 
				
			||||||
 | 
					CONFIG_I2C_COMPAT=y
 | 
				
			||||||
 | 
					CONFIG_I2C_HELPER_AUTO=y
 | 
				
			||||||
 | 
					CONFIG_I2C_QUP=y
 | 
				
			||||||
 | 
					# CONFIG_IIO is not set
 | 
				
			||||||
 | 
					# CONFIG_IIO_BUFFER is not set
 | 
				
			||||||
 | 
					# CONFIG_IIO_TRIGGER is not set
 | 
				
			||||||
 | 
					CONFIG_IKCONFIG=y
 | 
				
			||||||
 | 
					CONFIG_IKCONFIG_PROC=y
 | 
				
			||||||
 | 
					CONFIG_INITRAMFS_SOURCE=""
 | 
				
			||||||
 | 
					# CONFIG_INPUT_PM8941_PWRKEY is not set
 | 
				
			||||||
 | 
					CONFIG_IOMMU_HELPER=y
 | 
				
			||||||
 | 
					# CONFIG_IOMMU_IO_PGTABLE_LPAE is not set
 | 
				
			||||||
 | 
					# CONFIG_IPQ_DWC3_QTI_EXTCON is not set
 | 
				
			||||||
 | 
					# CONFIG_IPQ_GCC_4019 is not set
 | 
				
			||||||
 | 
					# CONFIG_IPQ_GCC_5018 is not set
 | 
				
			||||||
 | 
					# CONFIG_IPQ_APSS_5018 is not set
 | 
				
			||||||
 | 
					# CONFIG_IPQ_GCC_6018 is not set
 | 
				
			||||||
 | 
					# CONFIG_IPQ_APSS_6018 is not set
 | 
				
			||||||
 | 
					# CONFIG_IPQ_GCC_806X is not set
 | 
				
			||||||
 | 
					# CONFIG_IPQ_ADSS_807x is not set
 | 
				
			||||||
 | 
					# CONFIG_IPQ_APSS_807x is not set
 | 
				
			||||||
 | 
					# CONFIG_IPQ_GCC_807x is not set
 | 
				
			||||||
 | 
					# CONFIG_IPQ_ADCC_4019 is not set
 | 
				
			||||||
 | 
					# CONFIG_IPQ_LCC_806X is not set
 | 
				
			||||||
 | 
					# CONFIG_IPQ_REMOTEPROC_ADSP is not set
 | 
				
			||||||
 | 
					# CONFIG_IPQ_SUBSYSTEM_RESTART is not set
 | 
				
			||||||
 | 
					# CONFIG_IPQ_SUBSYSTEM_RESTART_TEST 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_JBD2=y
 | 
				
			||||||
 | 
					# CONFIG_IPC_ROUTER is not set
 | 
				
			||||||
 | 
					# CONFIG_IPC_ROUTER_SECURITY is not set
 | 
				
			||||||
 | 
					# CONFIG_IPC_LOGGING is not set
 | 
				
			||||||
 | 
					CONFIG_KPSS_XCC=y
 | 
				
			||||||
 | 
					# CONFIG_KRAITCC is not set
 | 
				
			||||||
 | 
					# CONFIG_KRAIT_CLOCKS is not set
 | 
				
			||||||
 | 
					# CONFIG_KRAIT_L2_ACCESSORS is not set
 | 
				
			||||||
 | 
					CONFIG_LEDS_IPQ=y
 | 
				
			||||||
 | 
					CONFIG_LEDS_PWM=y
 | 
				
			||||||
 | 
					CONFIG_LEDS_TLC591XX=y
 | 
				
			||||||
 | 
					# CONFIG_LEDS_PCA9956B is not set
 | 
				
			||||||
 | 
					CONFIG_LIBFDT=y
 | 
				
			||||||
 | 
					CONFIG_LOCKUP_DETECTOR=y
 | 
				
			||||||
 | 
					CONFIG_LOCK_SPIN_ON_OWNER=y
 | 
				
			||||||
 | 
					CONFIG_LZO_COMPRESS=y
 | 
				
			||||||
 | 
					CONFIG_LZO_DECOMPRESS=y
 | 
				
			||||||
 | 
					CONFIG_MDIO=y
 | 
				
			||||||
 | 
					CONFIG_MDIO_BITBANG=y
 | 
				
			||||||
 | 
					CONFIG_MDIO_BOARDINFO=y
 | 
				
			||||||
 | 
					CONFIG_MDIO_GPIO=y
 | 
				
			||||||
 | 
					# CONFIG_MDIO_QCA is not set
 | 
				
			||||||
 | 
					CONFIG_MFD_QCOM_RPM=y
 | 
				
			||||||
 | 
					CONFIG_MFD_SPMI_PMIC=y
 | 
				
			||||||
 | 
					# CONFIG_SLIMBUS is not set
 | 
				
			||||||
 | 
					# CONFIG_SLIMBUS_MSM_CTRL is not set
 | 
				
			||||||
 | 
					# CONFIG_SLIMBUS_MSM_NGD is not set
 | 
				
			||||||
 | 
					# CONFIG_OF_SLIMBUS is not set
 | 
				
			||||||
 | 
					CONFIG_MFD_SYSCON=y
 | 
				
			||||||
 | 
					CONFIG_MIGHT_HAVE_CACHE_L2X0=y
 | 
				
			||||||
 | 
					CONFIG_MIGHT_HAVE_PCI=y
 | 
				
			||||||
 | 
					CONFIG_MMC=y
 | 
				
			||||||
 | 
					CONFIG_MMC_ARMMMCI=y
 | 
				
			||||||
 | 
					CONFIG_MMC_BLOCK=y
 | 
				
			||||||
 | 
					CONFIG_MMC_BLOCK_MINORS=32
 | 
				
			||||||
 | 
					CONFIG_MMC_QCOM_DML=y
 | 
				
			||||||
 | 
					CONFIG_MMC_QCOM_TUNING=y
 | 
				
			||||||
 | 
					CONFIG_MMC_SDHCI=y
 | 
				
			||||||
 | 
					CONFIG_MMC_SDHCI_MSM=y
 | 
				
			||||||
 | 
					# CONFIG_MMC_SDHCI_OF_ARASAN is not set
 | 
				
			||||||
 | 
					# CONFIG_MMC_SDHCI_PCI is not set
 | 
				
			||||||
 | 
					CONFIG_MMC_SDHCI_PLTFM=y
 | 
				
			||||||
 | 
					# CONFIG_MMC_TIFM_SD is not set
 | 
				
			||||||
 | 
					CONFIG_MODULES_TREE_LOOKUP=y
 | 
				
			||||||
 | 
					CONFIG_MODULES_USE_ELF_REL=y
 | 
				
			||||||
 | 
					# CONFIG_MPLS_ROUTING is not set
 | 
				
			||||||
 | 
					# 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_LCC_8960 is not set
 | 
				
			||||||
 | 
					# CONFIG_MSM_MMCC_8960 is not set
 | 
				
			||||||
 | 
					# CONFIG_MSM_MMCC_8974 is not set
 | 
				
			||||||
 | 
					# CONFIG_MSM_MHI is not set
 | 
				
			||||||
 | 
					# CONFIG_MSM_IPC_ROUTER_MHI_XPRT is not set
 | 
				
			||||||
 | 
					# CONFIG_MSM_MHI_DEBUG is not set
 | 
				
			||||||
 | 
					# CONFIG_MSM_MHI_DEV is not set
 | 
				
			||||||
 | 
					# CONFIG_MSM_MHI_UCI is not set
 | 
				
			||||||
 | 
					# CONFIG_DIAGFWD_BRIDGE_CODE is not set
 | 
				
			||||||
 | 
					# CONFIG_MSM_BUS_SCALING is not set
 | 
				
			||||||
 | 
					# CONFIG_BUS_TOPOLOGY_ADHOC is not set
 | 
				
			||||||
 | 
					# CONFIG_QPNP_REVID is not set
 | 
				
			||||||
 | 
					# CONFIG_SPS is not set
 | 
				
			||||||
 | 
					# CONFIG_SPS_SUPPORT_NDP_BAM is not set
 | 
				
			||||||
 | 
					# CONFIG_USB_BAM is not set
 | 
				
			||||||
 | 
					# CONFIG_SPS_SUPPORT_BAMDMA is not set
 | 
				
			||||||
 | 
					# CONFIG_IPA is not set
 | 
				
			||||||
 | 
					# CONFIG_IPA3 is not set
 | 
				
			||||||
 | 
					# CONFIG_EP_PCIE is not set
 | 
				
			||||||
 | 
					# CONFIG_GSI is not set
 | 
				
			||||||
 | 
					# CONFIG_PFT is not set
 | 
				
			||||||
 | 
					# CONFIG_SEEMP_CORE is not set
 | 
				
			||||||
 | 
					# CONFIG_GPIO_USB_DETECT is not set
 | 
				
			||||||
 | 
					# CONFIG_MSM_GLINK is not set
 | 
				
			||||||
 | 
					# CONFIG_MSM_GLINK_LOOPBACK_SERVER is not set
 | 
				
			||||||
 | 
					# CONFIG_MSM_GLINK_SMEM_NATIVE_XPRT is not set
 | 
				
			||||||
 | 
					# CONFIG_MSM_GLINK_PKT is not set
 | 
				
			||||||
 | 
					# CONFIG_MSM_IPC_ROUTER_GLINK_XPRT is not set
 | 
				
			||||||
 | 
					# CONFIG_MSM_QMI_INTERFACE is not set
 | 
				
			||||||
 | 
					# CONFIG_MSM_TEST_QMI_CLIENT is not set
 | 
				
			||||||
 | 
					# CONFIG_GLINK_DEBUG_FS is not set
 | 
				
			||||||
 | 
					# CONFIG_MSM_RPM_SMD is not set
 | 
				
			||||||
 | 
					# CONFIG_MSM_RPM_GLINK is not set
 | 
				
			||||||
 | 
					CONFIG_MSM_RPM_LOG=y
 | 
				
			||||||
 | 
					# CONFIG_MSM_SMEM is not set
 | 
				
			||||||
 | 
					CONFIG_MTD_CMDLINE_PARTS=y
 | 
				
			||||||
 | 
					CONFIG_MTD_M25P80=y
 | 
				
			||||||
 | 
					CONFIG_MTD_NAND=y
 | 
				
			||||||
 | 
					CONFIG_MTD_NAND_ECC=y
 | 
				
			||||||
 | 
					CONFIG_MTD_NAND_QCOM=y
 | 
				
			||||||
 | 
					CONFIG_MTD_QCOM_SMEM_PARTS=y
 | 
				
			||||||
 | 
					CONFIG_MTD_SPINAND_GIGADEVICE=y
 | 
				
			||||||
 | 
					CONFIG_MTD_SPINAND_MT29F=y
 | 
				
			||||||
 | 
					CONFIG_MTD_SPINAND_ONDIEECC=y
 | 
				
			||||||
 | 
					CONFIG_MTD_SPI_NOR=y
 | 
				
			||||||
 | 
					CONFIG_MTD_SPLIT_FIRMWARE=y
 | 
				
			||||||
 | 
					CONFIG_MTD_SPLIT_FIT_FW=y
 | 
				
			||||||
 | 
					CONFIG_MTD_UBI=y
 | 
				
			||||||
 | 
					CONFIG_MTD_UBI_BEB_LIMIT=20
 | 
				
			||||||
 | 
					CONFIG_MTD_UBI_BLOCK=y
 | 
				
			||||||
 | 
					# CONFIG_MTD_UBI_FASTMAP is not set
 | 
				
			||||||
 | 
					CONFIG_MTD_UBI_GLUEBI=y
 | 
				
			||||||
 | 
					CONFIG_MTD_UBI_WL_THRESHOLD=4096
 | 
				
			||||||
 | 
					CONFIG_MULTI_IRQ_HANDLER=y
 | 
				
			||||||
 | 
					CONFIG_MUTEX_SPIN_ON_OWNER=y
 | 
				
			||||||
 | 
					CONFIG_NEED_DMA_MAP_STATE=y
 | 
				
			||||||
 | 
					CONFIG_NEON=y
 | 
				
			||||||
 | 
					CONFIG_NET=y
 | 
				
			||||||
 | 
					# CONFIG_NET_DSA_MV88E6063 is not set
 | 
				
			||||||
 | 
					CONFIG_NET_FLOW_LIMIT=y
 | 
				
			||||||
 | 
					CONFIG_NET_PTP_CLASSIFY=y
 | 
				
			||||||
 | 
					CONFIG_NO_BOOTMEM=y
 | 
				
			||||||
 | 
					CONFIG_NO_HZ=y
 | 
				
			||||||
 | 
					CONFIG_NO_HZ_COMMON=y
 | 
				
			||||||
 | 
					CONFIG_NO_HZ_IDLE=y
 | 
				
			||||||
 | 
					CONFIG_NR_CPUS=4
 | 
				
			||||||
 | 
					CONFIG_NUM_ALT_PARTITION=8
 | 
				
			||||||
 | 
					CONFIG_NVMEM=y
 | 
				
			||||||
 | 
					CONFIG_OF=y
 | 
				
			||||||
 | 
					CONFIG_OF_ADDRESS=y
 | 
				
			||||||
 | 
					CONFIG_OF_ADDRESS_PCI=y
 | 
				
			||||||
 | 
					CONFIG_OF_EARLY_FLATTREE=y
 | 
				
			||||||
 | 
					CONFIG_OF_FLATTREE=y
 | 
				
			||||||
 | 
					CONFIG_OF_GPIO=y
 | 
				
			||||||
 | 
					CONFIG_OF_IRQ=y
 | 
				
			||||||
 | 
					CONFIG_OF_MDIO=y
 | 
				
			||||||
 | 
					CONFIG_OF_MTD=y
 | 
				
			||||||
 | 
					CONFIG_OF_NET=y
 | 
				
			||||||
 | 
					CONFIG_OF_PCI=y
 | 
				
			||||||
 | 
					CONFIG_OF_PCI_IRQ=y
 | 
				
			||||||
 | 
					CONFIG_OF_RESERVED_MEM=y
 | 
				
			||||||
 | 
					CONFIG_OLD_SIGACTION=y
 | 
				
			||||||
 | 
					CONFIG_OLD_SIGSUSPEND3=y
 | 
				
			||||||
 | 
					CONFIG_PAGE_OFFSET=0xC0000000
 | 
				
			||||||
 | 
					CONFIG_PANIC_ON_OOPS=y
 | 
				
			||||||
 | 
					CONFIG_PANIC_ON_OOPS_VALUE=1
 | 
				
			||||||
 | 
					CONFIG_PANIC_TIMEOUT=5
 | 
				
			||||||
 | 
					CONFIG_PCI=y
 | 
				
			||||||
 | 
					# CONFIG_PCIEAER is not set
 | 
				
			||||||
 | 
					CONFIG_PCIE_DW=y
 | 
				
			||||||
 | 
					# CONFIG_PCIE_DW_PLAT is not set
 | 
				
			||||||
 | 
					CONFIG_PCIE_PME=y
 | 
				
			||||||
 | 
					CONFIG_PCIE_QCOM=y
 | 
				
			||||||
 | 
					CONFIG_PCI_DOMAINS=y
 | 
				
			||||||
 | 
					CONFIG_PCI_DOMAINS_GENERIC=y
 | 
				
			||||||
 | 
					CONFIG_PCI_MSI=y
 | 
				
			||||||
 | 
					CONFIG_PERF_EVENTS=y
 | 
				
			||||||
 | 
					CONFIG_PERF_USE_VMALLOC=y
 | 
				
			||||||
 | 
					CONFIG_PGTABLE_LEVELS=2
 | 
				
			||||||
 | 
					CONFIG_PHYLIB=y
 | 
				
			||||||
 | 
					# CONFIG_PHY_IPQ_BALDUR_USB is not set
 | 
				
			||||||
 | 
					# CONFIG_PHY_IPQ_UNIPHY_USB is not set
 | 
				
			||||||
 | 
					# CONFIG_PHY_QCOM_APQ8064_SATA is not set
 | 
				
			||||||
 | 
					# CONFIG_PHY_QCOM_IPQ806X_SATA is not set
 | 
				
			||||||
 | 
					CONFIG_PHY_QCA_PCIE_QMP=y
 | 
				
			||||||
 | 
					# CONFIG_PHY_QCOM_UFS is not set
 | 
				
			||||||
 | 
					# CONFIG_PHY_IPQ_UNIPHY_PCIE is not set
 | 
				
			||||||
 | 
					CONFIG_PINCTRL=y
 | 
				
			||||||
 | 
					# CONFIG_PINCTRL_APQ8064 is not set
 | 
				
			||||||
 | 
					# CONFIG_PINCTRL_APQ8084 is not set
 | 
				
			||||||
 | 
					# CONFIG_PINCTRL_IPQ4019 is not set
 | 
				
			||||||
 | 
					# CONFIG_PINCTRL_IPQ6018 is not set
 | 
				
			||||||
 | 
					# CONFIG_PINCTRL_IPQ8064 is not set
 | 
				
			||||||
 | 
					# CONFIG_PINCTRL_IPQ807x is not set
 | 
				
			||||||
 | 
					# CONFIG_PINCTRL_IPQ5018 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_QCOM_SPMI_PMIC=y
 | 
				
			||||||
 | 
					# CONFIG_PINCTRL_QCOM_SSBI_PMIC is not set
 | 
				
			||||||
 | 
					# CONFIG_PL330_DMA is not set
 | 
				
			||||||
 | 
					CONFIG_PM=y
 | 
				
			||||||
 | 
					CONFIG_PM_CLK=y
 | 
				
			||||||
 | 
					# CONFIG_PM_DEBUG is not set
 | 
				
			||||||
 | 
					CONFIG_PM_GENERIC_DOMAINS=y
 | 
				
			||||||
 | 
					CONFIG_PM_GENERIC_DOMAINS_OF=y
 | 
				
			||||||
 | 
					CONFIG_PM_GENERIC_DOMAINS_SLEEP=y
 | 
				
			||||||
 | 
					CONFIG_PM_OPP=y
 | 
				
			||||||
 | 
					CONFIG_PM_SLEEP=y
 | 
				
			||||||
 | 
					CONFIG_PM_SLEEP_SMP=y
 | 
				
			||||||
 | 
					CONFIG_POWER_RESET=y
 | 
				
			||||||
 | 
					CONFIG_POWER_RESET_MSM=y
 | 
				
			||||||
 | 
					CONFIG_POWER_SUPPLY=y
 | 
				
			||||||
 | 
					CONFIG_PREEMPT=y
 | 
				
			||||||
 | 
					CONFIG_PREEMPT_COUNT=y
 | 
				
			||||||
 | 
					# CONFIG_PREEMPT_NONE is not set
 | 
				
			||||||
 | 
					CONFIG_PREEMPT_RCU=y
 | 
				
			||||||
 | 
					CONFIG_PRINTK_TIME=y
 | 
				
			||||||
 | 
					CONFIG_PROC_PAGE_MONITOR=y
 | 
				
			||||||
 | 
					# CONFIG_PROC_STRIPPED is not set
 | 
				
			||||||
 | 
					CONFIG_PSTORE=y
 | 
				
			||||||
 | 
					CONFIG_PSTORE_RAM=y
 | 
				
			||||||
 | 
					# CONFIG_PSTORE_CONSOLE is not set
 | 
				
			||||||
 | 
					# CONFIG_PSTORE_PMSG is not set
 | 
				
			||||||
 | 
					CONFIG_PWM=y
 | 
				
			||||||
 | 
					CONFIG_PWM_IPQ4019=y
 | 
				
			||||||
 | 
					# CONFIG_PWM_PCA9685 is not set
 | 
				
			||||||
 | 
					CONFIG_PWM_SYSFS=y
 | 
				
			||||||
 | 
					CONFIG_QCOM_ADM=y
 | 
				
			||||||
 | 
					# CONFIG_QCOM_APM is not set
 | 
				
			||||||
 | 
					CONFIG_QCOM_BAM_DMA=y
 | 
				
			||||||
 | 
					# CONFIG_QTI_BT_TTY is not set
 | 
				
			||||||
 | 
					# CONFIG_QCOM_COINCELL is not set
 | 
				
			||||||
 | 
					# CONFIG_QCOM_DCC is not set
 | 
				
			||||||
 | 
					CONFIG_QCOM_GDSC=y
 | 
				
			||||||
 | 
					CONFIG_QCOM_GSBI=y
 | 
				
			||||||
 | 
					# CONFIG_QCOM_HFPLL is not set
 | 
				
			||||||
 | 
					# CONFIG_QCOM_MEMORY_DUMP_V2 is not set
 | 
				
			||||||
 | 
					# CONFIG_QCOM_MDT_LOADER is not set
 | 
				
			||||||
 | 
					CONFIG_QCOM_QFPROM=y
 | 
				
			||||||
 | 
					# CONFIG_QCOM_SPMI_TEMP_ALARM is not set
 | 
				
			||||||
 | 
					CONFIG_QCOM_RPM_CLK=y
 | 
				
			||||||
 | 
					# CONFIG_QCOM_RTB is not set
 | 
				
			||||||
 | 
					# CONFIG_QCOM_PM is not set
 | 
				
			||||||
 | 
					CONFIG_QCOM_SCM=y
 | 
				
			||||||
 | 
					CONFIG_QCOM_SCM_32=y
 | 
				
			||||||
 | 
					# CONFIG_HAVE_ARM_SMCCC is not set
 | 
				
			||||||
 | 
					CONFIG_QCA_SCM_RESTART_REASON=y
 | 
				
			||||||
 | 
					CONFIG_IPQ_TCSR=y
 | 
				
			||||||
 | 
					CONFIG_QCOM_QFPROM=y
 | 
				
			||||||
 | 
					# CONFIG_QCOM_SMD is not set
 | 
				
			||||||
 | 
					CONFIG_QCOM_SMEM=y
 | 
				
			||||||
 | 
					CONFIG_QCOM_SMEM_STATE=y
 | 
				
			||||||
 | 
					# CONFIG_QCOM_SMD is not set
 | 
				
			||||||
 | 
					CONFIG_QCOM_SMP2P=y
 | 
				
			||||||
 | 
					# CONFIG_QCOM_SPMI_VADC is not set
 | 
				
			||||||
 | 
					CONFIG_QCOM_TSENS=y
 | 
				
			||||||
 | 
					CONFIG_QCOM_TZ_LOG=y
 | 
				
			||||||
 | 
					CONFIG_QCOM_WDT=y
 | 
				
			||||||
 | 
					CONFIG_QMI_ENCDEC=y
 | 
				
			||||||
 | 
					CONFIG_RATIONAL=y
 | 
				
			||||||
 | 
					# CONFIG_RCU_BOOST is not set
 | 
				
			||||||
 | 
					CONFIG_RCU_CPU_STALL_TIMEOUT=21
 | 
				
			||||||
 | 
					# CONFIG_RCU_EXPERT is not set
 | 
				
			||||||
 | 
					CONFIG_RCU_STALL_COMMON=y
 | 
				
			||||||
 | 
					CONFIG_RD_GZIP=y
 | 
				
			||||||
 | 
					CONFIG_REGMAP=y
 | 
				
			||||||
 | 
					# CONFIG_REGMAP_ALLOW_WRITE_DEBUGFS is not set
 | 
				
			||||||
 | 
					CONFIG_REGMAP_MMIO=y
 | 
				
			||||||
 | 
					CONFIG_REGULATOR=y
 | 
				
			||||||
 | 
					# CONFIG_REGULATOR_CPR3 is not set
 | 
				
			||||||
 | 
					CONFIG_REGULATOR_GPIO=y
 | 
				
			||||||
 | 
					CONFIG_REGULATOR_FIXED_VOLTAGE=y
 | 
				
			||||||
 | 
					CONFIG_REGULATOR_QCOM_RPM=y
 | 
				
			||||||
 | 
					CONFIG_REGULATOR_QCOM_SPMI=y
 | 
				
			||||||
 | 
					# CONFIG_REGULATOR_IPQ40XX is not set
 | 
				
			||||||
 | 
					# CONFIG_REGULATOR_RPM_SMD is not set
 | 
				
			||||||
 | 
					# CONFIG_REGULATOR_RPM_GLINK is not set
 | 
				
			||||||
 | 
					CONFIG_RELAY=y
 | 
				
			||||||
 | 
					CONFIG_REMOTEPROC=y
 | 
				
			||||||
 | 
					# CONFIG_IPQ807X_REMOTEPROC is not set
 | 
				
			||||||
 | 
					CONFIG_RESET_CONTROLLER=y
 | 
				
			||||||
 | 
					CONFIG_RFS_ACCEL=y
 | 
				
			||||||
 | 
					CONFIG_RPS=y
 | 
				
			||||||
 | 
					CONFIG_RTC_CLASS=y
 | 
				
			||||||
 | 
					CONFIG_NET_L3_MASTER_DEV=y
 | 
				
			||||||
 | 
					# CONFIG_RTC_DRV_CMOS is not set
 | 
				
			||||||
 | 
					# CONFIG_RTC_DRV_PM8XXX is not set
 | 
				
			||||||
 | 
					CONFIG_RWSEM_SPIN_ON_OWNER=y
 | 
				
			||||||
 | 
					CONFIG_RWSEM_XCHGADD_ALGORITHM=y
 | 
				
			||||||
 | 
					# CONFIG_SATA_AHCI is not set
 | 
				
			||||||
 | 
					CONFIG_SCHED_HRTICK=y
 | 
				
			||||||
 | 
					# CONFIG_SCSI is not set
 | 
				
			||||||
 | 
					# CONFIG_SCHED_INFO is not set
 | 
				
			||||||
 | 
					# CONFIG_SCSI_DMA is not set
 | 
				
			||||||
 | 
					# CONFIG_SERIAL_8250 is not set
 | 
				
			||||||
 | 
					# CONFIG_SERIAL_8250_CONSOLE is not set
 | 
				
			||||||
 | 
					# CONFIG_SERIAL_8250_DMA is not set
 | 
				
			||||||
 | 
					# CONFIG_SERIAL_AMBA_PL010 is not set
 | 
				
			||||||
 | 
					# CONFIG_SERIAL_AMBA_PL011 is not set
 | 
				
			||||||
 | 
					CONFIG_SERIAL_MSM=y
 | 
				
			||||||
 | 
					CONFIG_SERIAL_MSM_CONSOLE=y
 | 
				
			||||||
 | 
					# CONFIG_VIRTIO_CONSOLE is not set
 | 
				
			||||||
 | 
					CONFIG_SMP=y
 | 
				
			||||||
 | 
					CONFIG_SMP_ON_UP=y
 | 
				
			||||||
 | 
					# CONFIG_SND is not set
 | 
				
			||||||
 | 
					CONFIG_SND_DYNAMIC_MINORS=y
 | 
				
			||||||
 | 
					CONFIG_SND_MAX_CARDS=32
 | 
				
			||||||
 | 
					CONFIG_SND_PROC_FS=y
 | 
				
			||||||
 | 
					# CONFIG_SND_COMPRESS_OFFLOAD is not set
 | 
				
			||||||
 | 
					CONFIG_SND_PCM=y
 | 
				
			||||||
 | 
					CONFIG_SND_SOC=y
 | 
				
			||||||
 | 
					# CONFIG_SND_SOC_APQ8016_SBC is not set
 | 
				
			||||||
 | 
					CONFIG_SND_SOC_I2C_AND_SPI=y
 | 
				
			||||||
 | 
					# CONFIG_SND_SOC_IPQ is not set
 | 
				
			||||||
 | 
					# CONFIG_SND_SOC_IPQ806X_LPAIF is not set
 | 
				
			||||||
 | 
					# CONFIG_SND_SOC_IPQ806X_PCM_RAW is not set
 | 
				
			||||||
 | 
					CONFIG_SND_SOC_IPQ_ADSS=y
 | 
				
			||||||
 | 
					CONFIG_SND_SOC_IPQ_CODEC=y
 | 
				
			||||||
 | 
					CONFIG_SND_SOC_IPQ_CPU_DAI=y
 | 
				
			||||||
 | 
					CONFIG_SND_SOC_IPQ_MBOX=y
 | 
				
			||||||
 | 
					CONFIG_SND_SOC_IPQ_PCM_I2S=y
 | 
				
			||||||
 | 
					CONFIG_SND_SOC_IPQ_PCM_RAW=y
 | 
				
			||||||
 | 
					CONFIG_SND_SOC_IPQ_PCM_SPDIF=y
 | 
				
			||||||
 | 
					CONFIG_SND_SOC_IPQ_PCM_TDM=y
 | 
				
			||||||
 | 
					CONFIG_SND_SOC_IPQ_STEREO=y
 | 
				
			||||||
 | 
					CONFIG_SND_SOC_QCOM=y
 | 
				
			||||||
 | 
					# CONFIG_SND_SOC_STORM is not set
 | 
				
			||||||
 | 
					CONFIG_SOUND=y
 | 
				
			||||||
 | 
					CONFIG_SPARSE_IRQ=y
 | 
				
			||||||
 | 
					CONFIG_SPI=y
 | 
				
			||||||
 | 
					CONFIG_SPI_MASTER=y
 | 
				
			||||||
 | 
					CONFIG_SPI_QUP=y
 | 
				
			||||||
 | 
					CONFIG_SPI_SPIDEV=y
 | 
				
			||||||
 | 
					# CONFIG_SPI_VSC7385 is not set
 | 
				
			||||||
 | 
					CONFIG_SPMI=y
 | 
				
			||||||
 | 
					CONFIG_SPMI_MSM_PMIC_ARB=y
 | 
				
			||||||
 | 
					CONFIG_SRCU=y
 | 
				
			||||||
 | 
					# CONFIG_STRIP_ASM_SYMS is not set
 | 
				
			||||||
 | 
					# CONFIG_STOPWATCH is not set
 | 
				
			||||||
 | 
					CONFIG_SUSPEND=y
 | 
				
			||||||
 | 
					CONFIG_SWCONFIG=y
 | 
				
			||||||
 | 
					CONFIG_SWIOTLB=y
 | 
				
			||||||
 | 
					# CONFIG_SWAP is not set
 | 
				
			||||||
 | 
					CONFIG_SWP_EMULATE=y
 | 
				
			||||||
 | 
					CONFIG_SYS_SUPPORTS_APM_EMULATION=y
 | 
				
			||||||
 | 
					CONFIG_THERMAL=y
 | 
				
			||||||
 | 
					CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
 | 
				
			||||||
 | 
					CONFIG_THERMAL_GOV_STEP_WISE=y
 | 
				
			||||||
 | 
					CONFIG_THERMAL_GOV_USER_SPACE=y
 | 
				
			||||||
 | 
					CONFIG_THERMAL_HWMON=y
 | 
				
			||||||
 | 
					CONFIG_THERMAL_OF=y
 | 
				
			||||||
 | 
					CONFIG_THERMAL_WRITABLE_TRIPS=y
 | 
				
			||||||
 | 
					# CONFIG_THUMB2_KERNEL is not set
 | 
				
			||||||
 | 
					# CONFIG_TICK_CPU_ACCOUNTING is not set
 | 
				
			||||||
 | 
					CONFIG_IRQ_TIME_ACCOUNTING=y
 | 
				
			||||||
 | 
					CONFIG_TRACING_EVENTS_GPIO=y
 | 
				
			||||||
 | 
					CONFIG_UBIFS_FS=y
 | 
				
			||||||
 | 
					CONFIG_UBIFS_FS_ADVANCED_COMPR=y
 | 
				
			||||||
 | 
					CONFIG_UBIFS_FS_LZO=y
 | 
				
			||||||
 | 
					CONFIG_UBIFS_FS_XZ=y
 | 
				
			||||||
 | 
					CONFIG_UBIFS_FS_ZLIB=y
 | 
				
			||||||
 | 
					CONFIG_UEVENT_HELPER_PATH=""
 | 
				
			||||||
 | 
					CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h"
 | 
				
			||||||
 | 
					CONFIG_UNINLINE_SPIN_UNLOCK=y
 | 
				
			||||||
 | 
					CONFIG_USB_GADGET=n
 | 
				
			||||||
 | 
					CONFIG_USB_SUPPORT=y
 | 
				
			||||||
 | 
					# CONFIG_USB_DWC3_OF_SIMPLE is not set
 | 
				
			||||||
 | 
					# CONFIG_USB_QCOM_8X16_PHY is not set
 | 
				
			||||||
 | 
					# CONFIG_USB_QCOM_KS_BRIDGE is not set
 | 
				
			||||||
 | 
					# CONFIG_USB_QCOM_QUSB_PHY is not set
 | 
				
			||||||
 | 
					# CONFIG_USB_QCOM_QMP_PHY is not set
 | 
				
			||||||
 | 
					# CONFIG_USB_QCA_M31_PHY is not set
 | 
				
			||||||
 | 
					# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
 | 
				
			||||||
 | 
					# CONFIG_USB_EHCI_TT_NEWSCHED is not set
 | 
				
			||||||
 | 
					# CONFIG_USB_OHCI_LITTLE_ENDIAN is not set
 | 
				
			||||||
 | 
					CONFIG_USE_OF=y
 | 
				
			||||||
 | 
					CONFIG_VDSO=y
 | 
				
			||||||
 | 
					CONFIG_VECTORS_BASE=0xffff0000
 | 
				
			||||||
 | 
					CONFIG_VFP=y
 | 
				
			||||||
 | 
					CONFIG_VFPv3=y
 | 
				
			||||||
 | 
					CONFIG_VM_EVENT_COUNTERS=y
 | 
				
			||||||
 | 
					CONFIG_WATCHDOG_CORE=y
 | 
				
			||||||
 | 
					# CONFIG_WL_TI is not set
 | 
				
			||||||
 | 
					# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
 | 
				
			||||||
 | 
					CONFIG_XPS=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_ZONE_DMA_FLAG=0
 | 
				
			||||||
 | 
					CONFIG_QCOM_CACHE_DUMP=y
 | 
				
			||||||
 | 
					CONFIG_QCOM_CACHE_DUMP_ON_PANIC=y
 | 
				
			||||||
 | 
					# CONFIG_QCOM_RESTART_REASON is not set
 | 
				
			||||||
 | 
					# CONFIG_QCOM_DLOAD_MODE is not set
 | 
				
			||||||
 | 
					CONFIG_FW_AUTH=y
 | 
				
			||||||
 | 
					CONFIG_FW_AUTH_TEST=m
 | 
				
			||||||
 | 
					CONFIG_ASYMMETRIC_KEY_TYPE=y
 | 
				
			||||||
 | 
					CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
 | 
				
			||||||
 | 
					CONFIG_PUBLIC_KEY_ALGO_RSA=y
 | 
				
			||||||
 | 
					CONFIG_X509_CERTIFICATE_PARSER=y
 | 
				
			||||||
 | 
					CONFIG_PKCS7_MESSAGE_PARSER=n
 | 
				
			||||||
 | 
					CONFIG_KEYS=y
 | 
				
			||||||
 | 
					# CONFIG_SKB_RECYCLER is not set
 | 
				
			||||||
 | 
					CONFIG_SKB_RECYCLER_MULTI_CPU=y
 | 
				
			||||||
 | 
					# CONFIG_SKB_RECYCLER_PREALLOC is not set
 | 
				
			||||||
 | 
					# CONFIG_U_SERIAL_CONSOLE is not set
 | 
				
			||||||
 | 
					CONFIG_SCSI_SCAN_ASYNC=y
 | 
				
			||||||
 | 
					# CONFIG_NF_IPV6_DUMMY_HEADER is not set
 | 
				
			||||||
 | 
					# CONFIG_RMNET is not set
 | 
				
			||||||
 | 
					# CONFIG_RMNET_DATA is not set
 | 
				
			||||||
 | 
					# CONFIG_RMNET_CTL is not set
 | 
				
			||||||
 | 
					# CONFIG_MSM_SECURE_BUFFER is not set
 | 
				
			||||||
 | 
					# CONFIG_STAGING is not set
 | 
				
			||||||
 | 
					# CONFIG_ANDROID is not set
 | 
				
			||||||
 | 
					# CONFIG_ION is not set
 | 
				
			||||||
 | 
					# CONFIG_ION_DUMMY is not set
 | 
				
			||||||
 | 
					# CONFIG_ION_MSM is not set
 | 
				
			||||||
 | 
					# CONFIG_ION_TEST is not set
 | 
				
			||||||
 | 
					# CONFIG_CMA is not set
 | 
				
			||||||
 | 
					# CONFIG_CMA_DEBUG is not set
 | 
				
			||||||
 | 
					# CONFIG_CMA_DEBUGFS is not set
 | 
				
			||||||
 | 
					# CONFIG_DMA_CMA is not set
 | 
				
			||||||
 | 
					# CONFIG_CMA_AREAS is not set
 | 
				
			||||||
 | 
					# CONFIG_CMA_SIZE_MBYTES is not set
 | 
				
			||||||
 | 
					# CONFIG_CMA_SIZE_SEL_MBYTES is not set
 | 
				
			||||||
 | 
					# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
 | 
				
			||||||
 | 
					# CONFIG_CMA_SIZE_SEL_MIN is not set
 | 
				
			||||||
 | 
					# CONFIG_CMA_SIZE_SEL_MAX is not set
 | 
				
			||||||
 | 
					# CONFIG_CMA_ALIGNMENT is not set
 | 
				
			||||||
 | 
					# CONFIG_ASHMEM is not set
 | 
				
			||||||
 | 
					# CONFIG_ANDROID_TIMED_OUTPUT is not set
 | 
				
			||||||
 | 
					# CONFIG_ANDROID_LOW_MEMORY_KILLER is not set
 | 
				
			||||||
 | 
					# CONFIG_SYNC is not set
 | 
				
			||||||
 | 
					# CONFIG_SW_SYNC is not set
 | 
				
			||||||
 | 
					# CONFIG_FSL_MC_BUS is not set
 | 
				
			||||||
 | 
					# CONFIG_ALLOC_BUFFERS_IN_4K_CHUNKS is not set
 | 
				
			||||||
 | 
					CONFIG_ALLOC_SKB_PAGE_FRAG_DISABLE=y
 | 
				
			||||||
 | 
					# CONFIG_MMAP_ALLOW_UNINITIALIZED is not set
 | 
				
			||||||
 | 
					# CONFIG_MAILBOX is not set
 | 
				
			||||||
 | 
					# CONFIG_MAILBOX_TEST is not set
 | 
				
			||||||
 | 
					# CONFIG_QCOM_APCS_IPC is not set
 | 
				
			||||||
 | 
					# CONFIG_QCOM_GLINK_SSR is not set
 | 
				
			||||||
 | 
					# CONFIG_QCOM_Q6V5_WCSS is not set
 | 
				
			||||||
 | 
					# CONFIG_QCOM_SYSMON is not set
 | 
				
			||||||
 | 
					# CONFIG_QRTR is not set
 | 
				
			||||||
 | 
					# CONFIG_QRTR_SMD is not set
 | 
				
			||||||
 | 
					# CONFIG_QRTR_TUN is not set
 | 
				
			||||||
 | 
					# CONFIG_RPMSG is not set
 | 
				
			||||||
 | 
					# CONFIG_RPMSG_QCOM_GLINK_RPM is not set
 | 
				
			||||||
 | 
					# CONFIG_RPMSG_VIRTIO is not set
 | 
				
			||||||
 | 
					# CONFIG_RPMSG_CHAR is not set
 | 
				
			||||||
 | 
					# CONFIG_RPMSG_QCOM_GLINK_SMEM is not set
 | 
				
			||||||
 | 
					# CONFIG_RPMSG_QCOM_SMD is not set
 | 
				
			||||||
 | 
					CONFIG_QCA_MINIDUMP=y
 | 
				
			||||||
 | 
					# CONFIG_QCA_MINIDUMP_DEBUG is not set
 | 
				
			||||||
 | 
					# CONFIG_QRTR_USB is not set
 | 
				
			||||||
 | 
					# CONFIG_QRTR_FIFO is not set
 | 
				
			||||||
 | 
					CONFIG_QRTR_MHI=y
 | 
				
			||||||
 | 
					CONFIG_MHI_BUS=y
 | 
				
			||||||
 | 
					# CONFIG_MHI_QTI is not set
 | 
				
			||||||
 | 
					# CONFIG_MHI_NETDEV is not set
 | 
				
			||||||
 | 
					# CONFIG_MHI_DEBUG is not set
 | 
				
			||||||
 | 
					# CONFIG_MHI_UCI is not set
 | 
				
			||||||
 | 
					# CONFIG_MHI_SATELLITE is not set
 | 
				
			||||||
 | 
					# CONFIG_DIAG_OVER_QRTR is not set
 | 
				
			||||||
 | 
					# CONFIG_MSM_ADSPRPC is not set
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_MICHAEL_MIC=y
 | 
				
			||||||
 | 
					# CONFIG_ARCH_HAS_KCOV is not set
 | 
				
			||||||
 | 
					# CONFIG_KCOV is not set
 | 
				
			||||||
 | 
					# CONFIG_GCC_PLUGINS is not set
 | 
				
			||||||
 | 
					# CONFIG_QTI_Q6V5_ADSP is not set
 | 
				
			||||||
 | 
					# CONFIG_MSM_RPM_RPMSG is not set
 | 
				
			||||||
 | 
					# CONFIG_RPMSG_QCOM_GLINK_RPM is not set
 | 
				
			||||||
 | 
					# CONFIG_REGULATOR_RPM_GLINK is not set
 | 
				
			||||||
 | 
					# CONFIG_MTD_NAND_SERIAL is not set
 | 
				
			||||||
 | 
					# CONFIG_ARM_QTI_IPQ60XX_CPUFREQ is not set
 | 
				
			||||||
 | 
					# CONFIG_PAGE_SCOPE_MULTI_PAGE_READ is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_NO_ZERO_LEN_HASH is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_DISABLE_AES192_TEST is not set
 | 
				
			||||||
 | 
					# CONFIG_QTI_EUD is not set
 | 
				
			||||||
 | 
					# CONFIG_EUD_EXTCON_SUPPORT is not set
 | 
				
			||||||
 | 
					# CONFIG_CLK_TEST_5018 is not set
 | 
				
			||||||
 | 
					CONFIG_MAP_E_SUPPORT=y
 | 
				
			||||||
 | 
					# CONFIG_IPQ_FLASH_16M_PROFILE is not set
 | 
				
			||||||
 | 
					# CONFIG_QGIC2_MSI is not set
 | 
				
			||||||
 | 
					CONFIG_BRIDGE_VLAN_FILTERING=y
 | 
				
			||||||
 | 
					CONFIG_LEDS_GPIO=y
 | 
				
			||||||
 | 
					# CONFIG_ARCH_IPQ256M is not set
 | 
				
			||||||
 | 
					CONFIG_SKB_FIXED_SIZE_2K=y
 | 
				
			||||||
 | 
					# CONFIG_IPQ_MEM_PROFILE is not set
 | 
				
			||||||
 | 
					# CONFIG_VIRTIO_NET is not set
 | 
				
			||||||
 | 
					# CONFIG_QCA_85XX_SWITCH is not set
 | 
				
			||||||
 | 
					CONFIG_AQ_PHY=y
 | 
				
			||||||
 | 
					CONFIG_DIAG_CHAR=y
 | 
				
			||||||
 | 
					# CONFIG_HW_RANDOM_VIRTIO is not set
 | 
				
			||||||
 | 
					# CONFIG_BOOTCONFIG_PARTITION is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_DEV_QCEDEV is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_DEV_QCRYPTO is not set
 | 
				
			||||||
 | 
					# CONFIG_MHI_BUS_TEST is not set
 | 
				
			||||||
@@ -1,5 +0,0 @@
 | 
				
			|||||||
// SPDX-License-Identifier: GPL-2.0-only
 | 
					 | 
				
			||||||
// Copyright (c) 2020 The Linux Foundation. All rights reserved.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include "../../../arm64/boot/dts/qcom/ipq8074-hk14.dts"
 | 
					 | 
				
			||||||
#include "ipq8074.dtsi"
 | 
					 | 
				
			||||||
@@ -15,4 +15,9 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "../../../arm64/boot/dts/qcom/qcom-ipq5018-eap104.dts"
 | 
					#include "../../../arm64/boot/dts/qcom/qcom-ipq5018-eap104.dts"
 | 
				
			||||||
#include "ipq5018.dtsi"
 | 
					
 | 
				
			||||||
 | 
					/ {
 | 
				
			||||||
 | 
						pmuv8: pmu {
 | 
				
			||||||
 | 
							compatible = "arm,cortex-a7-pmu";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Permission to use, copy, modify, and/or distribute this software for any
 | 
				
			||||||
 | 
					 * purpose with or without fee is hereby granted, provided that the above
 | 
				
			||||||
 | 
					 * copyright notice and this permission notice appear in all copies.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 | 
				
			||||||
 | 
					 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 | 
				
			||||||
 | 
					 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 | 
				
			||||||
 | 
					 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 | 
				
			||||||
 | 
					 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 | 
				
			||||||
 | 
					 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 | 
				
			||||||
 | 
					 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "../../../arm64/boot/dts/qcom/qcom-ipq5018-liteon-wpx8324.dts"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/ {
 | 
				
			||||||
 | 
						pmuv8: pmu {
 | 
				
			||||||
 | 
							compatible = "arm,cortex-a7-pmu";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
@@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Permission to use, copy, modify, and/or distribute this software for any
 | 
				
			||||||
 | 
					 * purpose with or without fee is hereby granted, provided that the above
 | 
				
			||||||
 | 
					 * copyright notice and this permission notice appear in all copies.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 | 
				
			||||||
 | 
					 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 | 
				
			||||||
 | 
					 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 | 
				
			||||||
 | 
					 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 | 
				
			||||||
 | 
					 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 | 
				
			||||||
 | 
					 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 | 
				
			||||||
 | 
					 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "../../../arm64/boot/dts/qcom/qcom-ipq5018-muxi-ap3220l.dts"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/ {
 | 
				
			||||||
 | 
						pmuv8: pmu {
 | 
				
			||||||
 | 
							compatible = "arm,cortex-a7-pmu";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
@@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Permission to use, copy, modify, and/or distribute this software for any
 | 
				
			||||||
 | 
					 * purpose with or without fee is hereby granted, provided that the above
 | 
				
			||||||
 | 
					 * copyright notice and this permission notice appear in all copies.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 | 
				
			||||||
 | 
					 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 | 
				
			||||||
 | 
					 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 | 
				
			||||||
 | 
					 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 | 
				
			||||||
 | 
					 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 | 
				
			||||||
 | 
					 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 | 
				
			||||||
 | 
					 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "../../../arm64/boot/dts/qcom/qcom-ipq5018-q14.dts"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/ {
 | 
				
			||||||
 | 
						pmuv8: pmu {
 | 
				
			||||||
 | 
							compatible = "arm,cortex-a7-pmu";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
@@ -15,4 +15,4 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "../../../arm64/boot/dts/qcom/qcom-ipq6018-cig-wf188n.dts"
 | 
					#include "../../../arm64/boot/dts/qcom/qcom-ipq6018-cig-wf188n.dts"
 | 
				
			||||||
#include "ipq6018.dtsi"
 | 
					#include "qcom-ipq6018.dtsi"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,4 +15,4 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "../../../arm64/boot/dts/qcom/qcom-ipq6018-edgecore-eap101.dts"
 | 
					#include "../../../arm64/boot/dts/qcom/qcom-ipq6018-edgecore-eap101.dts"
 | 
				
			||||||
#include "ipq6018.dtsi"
 | 
					#include "qcom-ipq6018.dtsi"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,4 +15,4 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "../../../arm64/boot/dts/qcom/qcom-ipq6018-gl-ax1800.dts"
 | 
					#include "../../../arm64/boot/dts/qcom/qcom-ipq6018-gl-ax1800.dts"
 | 
				
			||||||
#include "ipq6018.dtsi"
 | 
					#include "qcom-ipq6018.dtsi"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,4 +15,4 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "../../../arm64/boot/dts/qcom/qcom-ipq6018-gl-axt1800.dts"
 | 
					#include "../../../arm64/boot/dts/qcom/qcom-ipq6018-gl-axt1800.dts"
 | 
				
			||||||
#include "ipq6018.dtsi"
 | 
					#include "qcom-ipq6018.dtsi"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 2019, The Linux Foundation. All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Permission to use, copy, modify, and/or distribute this software for any
 | 
				
			||||||
 | 
					 * purpose with or without fee is hereby granted, provided that the above
 | 
				
			||||||
 | 
					 * copyright notice and this permission notice appear in all copies.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 | 
				
			||||||
 | 
					 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 | 
				
			||||||
 | 
					 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 | 
				
			||||||
 | 
					 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 | 
				
			||||||
 | 
					 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 | 
				
			||||||
 | 
					 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 | 
				
			||||||
 | 
					 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "../../../arm64/boot/dts/qcom/qcom-ipq6018-hfcl-ion4x.dts"
 | 
				
			||||||
 | 
					#include "qcom-ipq6018.dtsi"
 | 
				
			||||||
@@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 2019, The Linux Foundation. All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Permission to use, copy, modify, and/or distribute this software for any
 | 
				
			||||||
 | 
					 * purpose with or without fee is hereby granted, provided that the above
 | 
				
			||||||
 | 
					 * copyright notice and this permission notice appear in all copies.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 | 
				
			||||||
 | 
					 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 | 
				
			||||||
 | 
					 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 | 
				
			||||||
 | 
					 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 | 
				
			||||||
 | 
					 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 | 
				
			||||||
 | 
					 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 | 
				
			||||||
 | 
					 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "../../../arm64/boot/dts/qcom/qcom-ipq6018-hfcl-ion4x_2.dts"
 | 
				
			||||||
 | 
					#include "qcom-ipq6018.dtsi"
 | 
				
			||||||
@@ -14,10 +14,5 @@
 | 
				
			|||||||
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
					 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "../../../arm64/boot/dts/qcom/qcom-ipq6018-hfcl-ion4x.dts"
 | 
					#include "../../../arm64/boot/dts/qcom/qcom-ipq6018-hfcl-ion4xe.dts"
 | 
				
			||||||
#include "ipq6018.dtsi"
 | 
					#include "qcom-ipq6018.dtsi"
 | 
				
			||||||
 | 
					 | 
				
			||||||
/ {
 | 
					 | 
				
			||||||
	model = "HFCL ION4Xe";
 | 
					 | 
				
			||||||
	compatible = "hfcl,ion4xe", "qcom,ipq6018-cp01", "qcom,ipq6018";
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -14,10 +14,5 @@
 | 
				
			|||||||
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
					 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "../../../arm64/boot/dts/qcom/qcom-ipq6018-hfcl-ion4x.dts"
 | 
					#include "../../../arm64/boot/dts/qcom/qcom-ipq6018-hfcl-ion4xi.dts"
 | 
				
			||||||
#include "ipq6018.dtsi"
 | 
					#include "qcom-ipq6018.dtsi"
 | 
				
			||||||
 | 
					 | 
				
			||||||
/ {
 | 
					 | 
				
			||||||
	model = "HFCL ION4Xi";
 | 
					 | 
				
			||||||
	compatible = "hfcl,ion4xi", "qcom,ipq6018-cp01", "qcom,ipq6018";
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 2019, The Linux Foundation. All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Permission to use, copy, modify, and/or distribute this software for any
 | 
				
			||||||
 | 
					 * purpose with or without fee is hereby granted, provided that the above
 | 
				
			||||||
 | 
					 * copyright notice and this permission notice appear in all copies.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 | 
				
			||||||
 | 
					 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 | 
				
			||||||
 | 
					 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 | 
				
			||||||
 | 
					 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 | 
				
			||||||
 | 
					 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 | 
				
			||||||
 | 
					 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 | 
				
			||||||
 | 
					 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "../../../arm64/boot/dts/qcom/qcom-ipq6018-indio-um-310ax-v1.dts"
 | 
				
			||||||
 | 
					#include "qcom-ipq6018.dtsi"
 | 
				
			||||||
@@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 2019, The Linux Foundation. All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Permission to use, copy, modify, and/or distribute this software for any
 | 
				
			||||||
 | 
					 * purpose with or without fee is hereby granted, provided that the above
 | 
				
			||||||
 | 
					 * copyright notice and this permission notice appear in all copies.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 | 
				
			||||||
 | 
					 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 | 
				
			||||||
 | 
					 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 | 
				
			||||||
 | 
					 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 | 
				
			||||||
 | 
					 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 | 
				
			||||||
 | 
					 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 | 
				
			||||||
 | 
					 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "../../../arm64/boot/dts/qcom/qcom-ipq6018-indio-um-510axm-v1.dts"
 | 
				
			||||||
 | 
					#include "qcom-ipq6018.dtsi"
 | 
				
			||||||
@@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 2019, The Linux Foundation. All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Permission to use, copy, modify, and/or distribute this software for any
 | 
				
			||||||
 | 
					 * purpose with or without fee is hereby granted, provided that the above
 | 
				
			||||||
 | 
					 * copyright notice and this permission notice appear in all copies.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 | 
				
			||||||
 | 
					 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 | 
				
			||||||
 | 
					 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 | 
				
			||||||
 | 
					 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 | 
				
			||||||
 | 
					 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 | 
				
			||||||
 | 
					 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 | 
				
			||||||
 | 
					 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "../../../arm64/boot/dts/qcom/qcom-ipq6018-indio-um-510axp-v1.dts"
 | 
				
			||||||
 | 
					#include "qcom-ipq6018.dtsi"
 | 
				
			||||||
@@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					#include "../../../arm64/boot/dts/qcom/qcom-ipq6018-meshpp-s618-cp01.dts"
 | 
				
			||||||
 | 
					#include "qcom-ipq6018.dtsi"
 | 
				
			||||||
@@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					#include "../../../arm64/boot/dts/qcom/qcom-ipq6018-meshpp-s618-cp03.dts"
 | 
				
			||||||
 | 
					#include "qcom-ipq6018.dtsi"
 | 
				
			||||||
@@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 2019, The Linux Foundation. All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Permission to use, copy, modify, and/or distribute this software for any
 | 
				
			||||||
 | 
					 * purpose with or without fee is hereby granted, provided that the above
 | 
				
			||||||
 | 
					 * copyright notice and this permission notice appear in all copies.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 | 
				
			||||||
 | 
					 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 | 
				
			||||||
 | 
					 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 | 
				
			||||||
 | 
					 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 | 
				
			||||||
 | 
					 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 | 
				
			||||||
 | 
					 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 | 
				
			||||||
 | 
					 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "../../../arm64/boot/dts/qcom/qcom-ipq6018-pax1800-v1.dts"
 | 
				
			||||||
 | 
					#include "qcom-ipq6018.dtsi"
 | 
				
			||||||
@@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 2019, The Linux Foundation. All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Permission to use, copy, modify, and/or distribute this software for any
 | 
				
			||||||
 | 
					 * purpose with or without fee is hereby granted, provided that the above
 | 
				
			||||||
 | 
					 * copyright notice and this permission notice appear in all copies.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 | 
				
			||||||
 | 
					 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 | 
				
			||||||
 | 
					 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 | 
				
			||||||
 | 
					 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 | 
				
			||||||
 | 
					 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 | 
				
			||||||
 | 
					 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 | 
				
			||||||
 | 
					 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "../../../arm64/boot/dts/qcom/qcom-ipq6018-pax1800-v2.dts"
 | 
				
			||||||
 | 
					#include "qcom-ipq6018.dtsi"
 | 
				
			||||||
@@ -15,4 +15,4 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "../../../arm64/boot/dts/qcom/qcom-ipq6018-yuncore-ax840.dts"
 | 
					#include "../../../arm64/boot/dts/qcom/qcom-ipq6018-yuncore-ax840.dts"
 | 
				
			||||||
#include "ipq6018.dtsi"
 | 
					#include "qcom-ipq6018.dtsi"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 2019, The Linux Foundation. All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Permission to use, copy, modify, and/or distribute this software for any
 | 
				
			||||||
 | 
					 * purpose with or without fee is hereby granted, provided that the above
 | 
				
			||||||
 | 
					 * copyright notice and this permission notice appear in all copies.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 | 
				
			||||||
 | 
					 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 | 
				
			||||||
 | 
					 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 | 
				
			||||||
 | 
					 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 | 
				
			||||||
 | 
					 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 | 
				
			||||||
 | 
					 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 | 
				
			||||||
 | 
					 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "../../../arm64/boot/dts/qcom/qcom-ipq6018-yuncore-fap650.dts"
 | 
				
			||||||
 | 
					#include "qcom-ipq6018.dtsi"
 | 
				
			||||||
@@ -14,4 +14,13 @@
 | 
				
			|||||||
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
					 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
#include "../../../arm64/boot/dts/qcom/qcom-ipq807x-eap102.dts"
 | 
					#include "../../../arm64/boot/dts/qcom/qcom-ipq807x-eap102.dts"
 | 
				
			||||||
#include "ipq8074.dtsi"
 | 
					
 | 
				
			||||||
 | 
					/ {
 | 
				
			||||||
 | 
						soc {
 | 
				
			||||||
 | 
							pmu {
 | 
				
			||||||
 | 
								compatible = "arm,cortex-a7-pmu";
 | 
				
			||||||
 | 
								interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) |
 | 
				
			||||||
 | 
										IRQ_TYPE_LEVEL_HIGH)>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -14,4 +14,13 @@
 | 
				
			|||||||
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
					 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
#include "../../../arm64/boot/dts/qcom/qcom-ipq807x-eap106.dts"
 | 
					#include "../../../arm64/boot/dts/qcom/qcom-ipq807x-eap106.dts"
 | 
				
			||||||
#include "ipq8074.dtsi"
 | 
					
 | 
				
			||||||
 | 
					/ {
 | 
				
			||||||
 | 
						soc {
 | 
				
			||||||
 | 
							pmu {
 | 
				
			||||||
 | 
								compatible = "arm,cortex-a7-pmu";
 | 
				
			||||||
 | 
								interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) |
 | 
				
			||||||
 | 
										IRQ_TYPE_LEVEL_HIGH)>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -14,4 +14,13 @@
 | 
				
			|||||||
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
					 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
#include "../../../arm64/boot/dts/qcom/qcom-ipq807x-ex227.dts"
 | 
					#include "../../../arm64/boot/dts/qcom/qcom-ipq807x-ex227.dts"
 | 
				
			||||||
#include "ipq8074.dtsi"
 | 
					
 | 
				
			||||||
 | 
					/ {
 | 
				
			||||||
 | 
						soc {
 | 
				
			||||||
 | 
							pmu {
 | 
				
			||||||
 | 
								compatible = "arm,cortex-a7-pmu";
 | 
				
			||||||
 | 
								interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) |
 | 
				
			||||||
 | 
										IRQ_TYPE_LEVEL_HIGH)>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -14,4 +14,13 @@
 | 
				
			|||||||
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
					 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
#include "../../../arm64/boot/dts/qcom/qcom-ipq807x-ex447.dts"
 | 
					#include "../../../arm64/boot/dts/qcom/qcom-ipq807x-ex447.dts"
 | 
				
			||||||
#include "ipq8074.dtsi"
 | 
					
 | 
				
			||||||
 | 
					/ {
 | 
				
			||||||
 | 
						soc {
 | 
				
			||||||
 | 
							pmu {
 | 
				
			||||||
 | 
								compatible = "arm,cortex-a7-pmu";
 | 
				
			||||||
 | 
								interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) |
 | 
				
			||||||
 | 
										IRQ_TYPE_LEVEL_HIGH)>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -14,4 +14,13 @@
 | 
				
			|||||||
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
					 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
#include "../../../arm64/boot/dts/qcom/qcom-ipq807x-wf194c.dts"
 | 
					#include "../../../arm64/boot/dts/qcom/qcom-ipq807x-wf194c.dts"
 | 
				
			||||||
#include "ipq8074.dtsi"
 | 
					
 | 
				
			||||||
 | 
					/ {
 | 
				
			||||||
 | 
						soc {
 | 
				
			||||||
 | 
							pmu {
 | 
				
			||||||
 | 
								compatible = "arm,cortex-a7-pmu";
 | 
				
			||||||
 | 
								interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) |
 | 
				
			||||||
 | 
										IRQ_TYPE_LEVEL_HIGH)>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -14,4 +14,13 @@
 | 
				
			|||||||
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
					 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
#include "../../../arm64/boot/dts/qcom/qcom-ipq807x-wf194c4.dts"
 | 
					#include "../../../arm64/boot/dts/qcom/qcom-ipq807x-wf194c4.dts"
 | 
				
			||||||
#include "ipq8074.dtsi"
 | 
					
 | 
				
			||||||
 | 
					/ {
 | 
				
			||||||
 | 
						soc {
 | 
				
			||||||
 | 
							pmu {
 | 
				
			||||||
 | 
								compatible = "arm,cortex-a7-pmu";
 | 
				
			||||||
 | 
								interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) |
 | 
				
			||||||
 | 
										IRQ_TYPE_LEVEL_HIGH)>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -14,4 +14,13 @@
 | 
				
			|||||||
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
					 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
#include "../../../arm64/boot/dts/qcom/qcom-ipq807x-wf196.dts"
 | 
					#include "../../../arm64/boot/dts/qcom/qcom-ipq807x-wf196.dts"
 | 
				
			||||||
#include "ipq8074.dtsi"
 | 
					
 | 
				
			||||||
 | 
					/ {
 | 
				
			||||||
 | 
						soc {
 | 
				
			||||||
 | 
							pmu {
 | 
				
			||||||
 | 
								compatible = "arm,cortex-a7-pmu";
 | 
				
			||||||
 | 
								interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) |
 | 
				
			||||||
 | 
										IRQ_TYPE_LEVEL_HIGH)>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,5 @@
 | 
				
			|||||||
/dts-v1/;
 | 
					/dts-v1/;
 | 
				
			||||||
/* Copyright (c) 2018-2021, The Linux Foundation. All rights reserved.
 | 
					/* Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
 | 
					 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Permission to use, copy, modify, and/or distribute this software for any
 | 
					 * Permission to use, copy, modify, and/or distribute this software for any
 | 
				
			||||||
 * purpose with or without fee is hereby granted, provided that the above
 | 
					 * purpose with or without fee is hereby granted, provided that the above
 | 
				
			||||||
@@ -16,7 +14,7 @@
 | 
				
			|||||||
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
					 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "ipq5018.dtsi"
 | 
					#include "qcom-ipq5018.dtsi"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/ {
 | 
					/ {
 | 
				
			||||||
	#address-cells = <0x2>;
 | 
						#address-cells = <0x2>;
 | 
				
			||||||
@@ -40,7 +38,11 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	chosen {
 | 
						chosen {
 | 
				
			||||||
		bootargs = "console=ttyMSM0,115200,n8 rw init=/init";
 | 
							bootargs = "console=ttyMSM0,115200,n8 rw init=/init";
 | 
				
			||||||
 | 
						#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
 | 
							bootargs-append = " swiotlb=1";
 | 
				
			||||||
 | 
						#else
 | 
				
			||||||
		bootargs-append = " swiotlb=1 coherent_pool=2M";
 | 
							bootargs-append = " swiotlb=1 coherent_pool=2M";
 | 
				
			||||||
 | 
						#endif
 | 
				
			||||||
		stdout-path = "serial0";
 | 
							stdout-path = "serial0";
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -78,22 +80,22 @@
 | 
				
			|||||||
	 * |   QDSS   |  0x4D200000  |           1MB           |
 | 
						 * |   QDSS   |  0x4D200000  |           1MB           |
 | 
				
			||||||
	 * +----------+--------------+-------------------------+
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
	 * | QCN6122_1|              |                         |
 | 
						 * | QCN6122_1|              |                         |
 | 
				
			||||||
	 * |   data   |  0x4D300000  |          13MB           |
 | 
						 * |   data   |  0x4D300000  |          15MB           |
 | 
				
			||||||
	 * +----------+--------------+-------------------------+
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
	 * | QCN6122_1|              |                         |
 | 
						 * | QCN6122_1|              |                         |
 | 
				
			||||||
	 * |  M3 Dump |  0x4E000000  |           1MB           |
 | 
						 * |  M3 Dump |  0x4E200000  |           1MB           |
 | 
				
			||||||
	 * +----------+--------------+-------------------------+
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
	 * | QCN6122_1|              |                         |
 | 
						 * | QCN6122_1|              |                         |
 | 
				
			||||||
	 * |   QDSS   |  0x4E100000  |           1MB           |
 | 
						 * |   QDSS   |  0x4E300000  |           1MB           |
 | 
				
			||||||
	 * +----------+--------------+-------------------------+
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
	 * | QCN6122_2|              |                         |
 | 
						 * | QCN6122_2|              |                         |
 | 
				
			||||||
	 * |   data   |  0x4E200000  |          13MB           |
 | 
						 * |   data   |  0x4E400000  |          15MB           |
 | 
				
			||||||
	 * +----------+--------------+-------------------------+
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
	 * | QCN6122_2|              |                         |
 | 
						 * | QCN6122_2|              |                         |
 | 
				
			||||||
	 * |  M3 Dump |  0x4EF00000  |           1MB           |
 | 
						 * |  M3 Dump |  0x4F300000  |           1MB           |
 | 
				
			||||||
	 * +----------+--------------+-------------------------+
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
	 * | QCN6122_2|              |                         |
 | 
						 * | QCN6122_2|              |                         |
 | 
				
			||||||
	 * |   QDSS   |  0x4F000000  |           1MB           |
 | 
						 * |   QDSS   |  0x4F400000  |           1MB           |
 | 
				
			||||||
	 * +----------+--------------+-------------------------+
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
	 * |                                                   |
 | 
						 * |                                                   |
 | 
				
			||||||
	 * |            Rest of the memory for Linux           |
 | 
						 * |            Rest of the memory for Linux           |
 | 
				
			||||||
@@ -102,7 +104,7 @@
 | 
				
			|||||||
	 */
 | 
						 */
 | 
				
			||||||
		q6_mem_regions: q6_mem_regions@4B000000 {
 | 
							q6_mem_regions: q6_mem_regions@4B000000 {
 | 
				
			||||||
			no-map;
 | 
								no-map;
 | 
				
			||||||
			reg = <0x0 0x4B000000 0x0 0x4100000>;
 | 
								reg = <0x0 0x4B000000 0x0 0x4500000>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		q6_code_data: q6_code_data@4B000000 {
 | 
							q6_code_data: q6_code_data@4B000000 {
 | 
				
			||||||
@@ -127,32 +129,32 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
		q6_qcn6122_data1: q6_qcn6122_data1@4D300000 {
 | 
							q6_qcn6122_data1: q6_qcn6122_data1@4D300000 {
 | 
				
			||||||
			no-map;
 | 
								no-map;
 | 
				
			||||||
			reg = <0x0 0x4D300000 0x0 0xD00000>;
 | 
								reg = <0x0 0x4D300000 0x0 0xF00000>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		m3_dump_qcn6122_1: m3_dump_qcn6122_1@4E000000 {
 | 
							m3_dump_qcn6122_1: m3_dump_qcn6122_1@4E200000 {
 | 
				
			||||||
			no-map;
 | 
								no-map;
 | 
				
			||||||
			reg = <0x0 0x4E000000 0x0 0x100000>;
 | 
								reg = <0x0 0x4E200000 0x0 0x100000>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		q6_qcn6122_etr_1: q6_qcn6122_etr_1@4E100000 {
 | 
							q6_qcn6122_etr_1: q6_qcn6122_etr_1@4E300000 {
 | 
				
			||||||
			no-map;
 | 
								no-map;
 | 
				
			||||||
			reg = <0x0 0x4E100000 0x0 0x100000>;
 | 
								reg = <0x0 0x4E300000 0x0 0x100000>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		q6_qcn6122_data2: q6_qcn6122_data2@4E200000 {
 | 
							q6_qcn6122_data2: q6_qcn6122_data2@4E400000 {
 | 
				
			||||||
			no-map;
 | 
								no-map;
 | 
				
			||||||
			reg = <0x0 0x4E200000 0x0 0xD00000>;
 | 
								reg = <0x0 0x4E400000 0x0 0xF00000>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		m3_dump_qcn6122_2: m3_dump_qcn6122_2@4EF00000 {
 | 
							m3_dump_qcn6122_2: m3_dump_qcn6122_2@4F300000 {
 | 
				
			||||||
			no-map;
 | 
								no-map;
 | 
				
			||||||
			reg = <0x0 0x4EF00000 0x0 0x100000>;
 | 
								reg = <0x0 0x4F300000 0x0 0x100000>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		q6_qcn6122_etr_2: q6_qcn6122_etr_2@4F000000 {
 | 
							q6_qcn6122_etr_2: q6_qcn6122_etr_2@4F400000 {
 | 
				
			||||||
			no-map;
 | 
								no-map;
 | 
				
			||||||
			reg = <0x0 0x4F000000 0x0 0x100000>;
 | 
								reg = <0x0 0x4F400000 0x0 0x100000>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	#else
 | 
						#else
 | 
				
			||||||
	/*                 512MB/1GB Profiles
 | 
						/*                 512MB/1GB Profiles
 | 
				
			||||||
@@ -299,6 +301,7 @@
 | 
				
			|||||||
		blsp1_uart2: serial@78b0000 {
 | 
							blsp1_uart2: serial@78b0000 {
 | 
				
			||||||
			pinctrl-0 = <&blsp1_uart_pins>;
 | 
								pinctrl-0 = <&blsp1_uart_pins>;
 | 
				
			||||||
			pinctrl-names = "default";
 | 
								pinctrl-names = "default";
 | 
				
			||||||
 | 
								status = "ok";
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		qpic_bam: dma@7984000{
 | 
							qpic_bam: dma@7984000{
 | 
				
			||||||
@@ -341,6 +344,7 @@
 | 
				
			|||||||
			pinctrl-0 = <&mdio1_pins>;
 | 
								pinctrl-0 = <&mdio1_pins>;
 | 
				
			||||||
			pinctrl-names = "default";
 | 
								pinctrl-names = "default";
 | 
				
			||||||
			phy-reset-gpio = <&tlmm 39 0>;
 | 
								phy-reset-gpio = <&tlmm 39 0>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			ethernet-phy@0 {
 | 
								ethernet-phy@0 {
 | 
				
			||||||
				reg = <0>;
 | 
									reg = <0>;
 | 
				
			||||||
			};
 | 
								};
 | 
				
			||||||
@@ -376,6 +380,8 @@
 | 
				
			|||||||
						forced-duplex = <1>;
 | 
											forced-duplex = <1>;
 | 
				
			||||||
					};
 | 
										};
 | 
				
			||||||
				};
 | 
									};
 | 
				
			||||||
 | 
									
 | 
				
			||||||
 | 
									/*
 | 
				
			||||||
				led_source@0 {
 | 
									led_source@0 {
 | 
				
			||||||
					source = <0>;
 | 
										source = <0>;
 | 
				
			||||||
					mode = "normal";
 | 
										mode = "normal";
 | 
				
			||||||
@@ -383,13 +389,15 @@
 | 
				
			|||||||
					blink_en = "enable";
 | 
										blink_en = "enable";
 | 
				
			||||||
					active = "high";
 | 
										active = "high";
 | 
				
			||||||
				};
 | 
									};
 | 
				
			||||||
 | 
									*/
 | 
				
			||||||
 | 
									
 | 
				
			||||||
			};
 | 
								};
 | 
				
			||||||
			ess-switch1@1 {
 | 
								ess-switch1@1 {
 | 
				
			||||||
				compatible = "qcom,ess-switch-qca83xx";
 | 
									compatible = "qcom,ess-switch-qca83xx";
 | 
				
			||||||
				device_id = <1>;
 | 
									device_id = <1>;
 | 
				
			||||||
				switch_access_mode = "mdio";
 | 
									switch_access_mode = "mdio";
 | 
				
			||||||
				mdio-bus = <&mdio1>;
 | 
									mdio-bus = <&mdio1>;
 | 
				
			||||||
				reset_gpio = <&tlmm 0x27 0>;
 | 
									reset_gpio = <0x27>;
 | 
				
			||||||
				switch_cpu_bmp = <0x40>;  /* cpu port bitmap */
 | 
									switch_cpu_bmp = <0x40>;  /* cpu port bitmap */
 | 
				
			||||||
				switch_lan_bmp = <0x1e>; /* lan port bitmap */
 | 
									switch_lan_bmp = <0x1e>; /* lan port bitmap */
 | 
				
			||||||
				switch_wan_bmp = <0x0>;  /* wan port bitmap */
 | 
									switch_wan_bmp = <0x0>;  /* wan port bitmap */
 | 
				
			||||||
@@ -424,8 +432,8 @@
 | 
				
			|||||||
			};
 | 
								};
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		ess-uniphy@98000 {
 | 
							wifi0: wifi@c000000 {
 | 
				
			||||||
			status = "disabled";
 | 
								status = "ok";
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		dp1 {
 | 
							dp1 {
 | 
				
			||||||
@@ -442,7 +450,6 @@
 | 
				
			|||||||
			mdio-bus = <&mdio0>;
 | 
								mdio-bus = <&mdio0>;
 | 
				
			||||||
			local-mac-address = [000000000000];
 | 
								local-mac-address = [000000000000];
 | 
				
			||||||
			phy-mode = "sgmii";
 | 
								phy-mode = "sgmii";
 | 
				
			||||||
			qcom,rx-page-mode = <0>;
 | 
					 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		dp2 {
 | 
							dp2 {
 | 
				
			||||||
@@ -456,13 +463,14 @@
 | 
				
			|||||||
			qcom,mactype = <2>;
 | 
								qcom,mactype = <2>;
 | 
				
			||||||
			local-mac-address = [000000000000];
 | 
								local-mac-address = [000000000000];
 | 
				
			||||||
			phy-mode = "sgmii";
 | 
								phy-mode = "sgmii";
 | 
				
			||||||
			qcom,rx-page-mode = <0>;
 | 
					 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		nss-macsec1 {
 | 
							qcom,test@0 {
 | 
				
			||||||
			compatible = "qcom,nss-macsec";
 | 
								status = "ok";
 | 
				
			||||||
			phy_addr = <0x1c>;
 | 
							};
 | 
				
			||||||
			mdiobus = <&mdio1>;
 | 
					
 | 
				
			||||||
 | 
							lpass: lpass@0xA000000{
 | 
				
			||||||
 | 
								status = "disabled";
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		pcm: pcm@0xA3C0000{
 | 
							pcm: pcm@0xA3C0000{
 | 
				
			||||||
@@ -471,6 +479,29 @@
 | 
				
			|||||||
			status = "disabled";
 | 
								status = "disabled";
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							pcm_lb: pcm_lb@0 {
 | 
				
			||||||
 | 
								status = "disabled";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						thermal-zones {
 | 
				
			||||||
 | 
							status = "ok";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						gpio_keys {
 | 
				
			||||||
 | 
							compatible = "gpio-keys";
 | 
				
			||||||
 | 
							pinctrl-0 = <&button_pins>;
 | 
				
			||||||
 | 
							pinctrl-names = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							wps {
 | 
				
			||||||
 | 
								label = "reset";
 | 
				
			||||||
 | 
								linux,code = <KEY_RESTART>;
 | 
				
			||||||
 | 
								gpios = <&tlmm 32 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
 | 
								linux,input-type = <1>;
 | 
				
			||||||
 | 
								debounce-interval = <60>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	leds {
 | 
						leds {
 | 
				
			||||||
		compatible = "gpio-leds";
 | 
							compatible = "gpio-leds";
 | 
				
			||||||
		pinctrl-0 = <&leds_pins>;
 | 
							pinctrl-0 = <&leds_pins>;
 | 
				
			||||||
@@ -481,141 +512,39 @@
 | 
				
			|||||||
			gpios = <&tlmm 2 GPIO_ACTIVE_HIGH>;
 | 
								gpios = <&tlmm 2 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
			default-state = "off";
 | 
								default-state = "off";
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					 | 
				
			||||||
		led@3 {
 | 
							led@3 {
 | 
				
			||||||
			label = "green:wifi2";
 | 
								label = "green:wifi2";
 | 
				
			||||||
			gpios = <&tlmm 3 GPIO_ACTIVE_HIGH>;
 | 
								gpios = <&tlmm 3 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
			default-state = "off";
 | 
								default-state = "off";
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					 | 
				
			||||||
		led_power: led@30 {
 | 
							led_power: led@30 {
 | 
				
			||||||
			label = "green:power";
 | 
								label = "green:power";
 | 
				
			||||||
			gpios = <&tlmm 30 GPIO_ACTIVE_HIGH>;
 | 
								gpios = <&tlmm 30 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
			default-state = "on";
 | 
								default-state = "on";
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					 | 
				
			||||||
		led@42 {
 | 
							led@42 {
 | 
				
			||||||
			label = "orange:uplink";
 | 
								label = "orange:uplink";
 | 
				
			||||||
			gpios = <&tlmm 42 GPIO_ACTIVE_HIGH>;
 | 
								gpios = <&tlmm 42 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
			default-state = "off";
 | 
								default-state = "off";
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					 | 
				
			||||||
		led@43 {
 | 
							led@43 {
 | 
				
			||||||
			label = "yellow:uplink";
 | 
								label = "yellow:uplink";
 | 
				
			||||||
			gpios = <&tlmm 43 GPIO_ACTIVE_HIGH>;
 | 
								gpios = <&tlmm 43 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
			default-state = "off";
 | 
								default-state = "off";
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					 | 
				
			||||||
		led@46 {
 | 
							led@46 {
 | 
				
			||||||
			label = "green:cloud";
 | 
								label = "green:cloud";
 | 
				
			||||||
			gpios = <&tlmm 46 GPIO_ACTIVE_HIGH>;
 | 
								gpios = <&tlmm 46 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
			default-state = "off";
 | 
								default-state = "off";
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	qcom,test@0 {
 | 
					 | 
				
			||||||
		status = "ok";
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	thermal-zones {
 | 
					 | 
				
			||||||
		status = "ok";
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&tlmm {
 | 
					&tlmm {
 | 
				
			||||||
	pinctrl-0 = <&blsp0_uart_pins>;
 | 
						/* pinctrl-0 = <&blsp0_uart_pins &phy_led_pins>; */
 | 
				
			||||||
 | 
						pinctrl-0 = <&blsp0_uart_pins &phy_led_pins &ble_pins>;
 | 
				
			||||||
	pinctrl-names = "default";
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	blsp0_uart_pins: uart_pins {
 | 
					 | 
				
			||||||
		blsp0_uart_rx_tx {
 | 
					 | 
				
			||||||
			pins = "gpio20", "gpio21";
 | 
					 | 
				
			||||||
			function = "blsp0_uart0";
 | 
					 | 
				
			||||||
			bias-disable;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	blsp1_uart_pins: blsp1_uart_pins {
 | 
					 | 
				
			||||||
		blsp1_uart_rx_tx {
 | 
					 | 
				
			||||||
			pins = "gpio23", "gpio25", "gpio24", "gpio26";
 | 
					 | 
				
			||||||
			function = "blsp1_uart2";
 | 
					 | 
				
			||||||
			bias-disable;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	blsp0_spi_pins: blsp0_spi_pins {
 | 
					 | 
				
			||||||
		mux {
 | 
					 | 
				
			||||||
			pins = "gpio10", "gpio11", "gpio12", "gpio13";
 | 
					 | 
				
			||||||
			function = "blsp0_spi";
 | 
					 | 
				
			||||||
			drive-strength = <2>;
 | 
					 | 
				
			||||||
			bias-disable;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	qspi_nand_pins: qspi_nand_pins {
 | 
					 | 
				
			||||||
		qspi_clock {
 | 
					 | 
				
			||||||
			pins = "gpio9";
 | 
					 | 
				
			||||||
			function = "qspi_clk";
 | 
					 | 
				
			||||||
			drive-strength = <8>;
 | 
					 | 
				
			||||||
			bias-disable;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		qspi_cs {
 | 
					 | 
				
			||||||
			pins = "gpio8";
 | 
					 | 
				
			||||||
			function = "qspi_cs";
 | 
					 | 
				
			||||||
			drive-strength = <8>;
 | 
					 | 
				
			||||||
			bias-disable;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		qspi_data {
 | 
					 | 
				
			||||||
			pins = "gpio4", "gpio5", "gpio6", "gpio7";
 | 
					 | 
				
			||||||
			function = "qspi_data";
 | 
					 | 
				
			||||||
			drive-strength = <8>;
 | 
					 | 
				
			||||||
			bias-disable;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	mdio1_pins: mdio_pinmux {
 | 
					 | 
				
			||||||
		mux_0 {
 | 
					 | 
				
			||||||
			pins = "gpio36";
 | 
					 | 
				
			||||||
			function = "mdc";
 | 
					 | 
				
			||||||
			drive-strength = <8>;
 | 
					 | 
				
			||||||
			bias-pull-up;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		mux_1 {
 | 
					 | 
				
			||||||
			pins = "gpio37";
 | 
					 | 
				
			||||||
			function = "mdio";
 | 
					 | 
				
			||||||
			drive-strength = <8>;
 | 
					 | 
				
			||||||
			bias-pull-up;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	i2c_pins: i2c_pins {
 | 
					 | 
				
			||||||
		i2c_scl {
 | 
					 | 
				
			||||||
			pins = "gpio25";
 | 
					 | 
				
			||||||
			function = "blsp2_i2c1";
 | 
					 | 
				
			||||||
			drive-strength = <8>;
 | 
					 | 
				
			||||||
			bias-disable;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		i2c_sda {
 | 
					 | 
				
			||||||
			pins = "gpio26";
 | 
					 | 
				
			||||||
			function = "blsp2_i2c1";
 | 
					 | 
				
			||||||
			drive-strength = <8>;
 | 
					 | 
				
			||||||
			bias-disable;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	button_pins: button_pins {
 | 
					 | 
				
			||||||
		wps_button {
 | 
					 | 
				
			||||||
			pins = "gpio38";
 | 
					 | 
				
			||||||
			function = "gpio";
 | 
					 | 
				
			||||||
			drive-strength = <8>;
 | 
					 | 
				
			||||||
			bias-pull-up;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	leds_pins: leds_pins {
 | 
						leds_pins: leds_pins {
 | 
				
			||||||
		led_5g {
 | 
							led_5g {
 | 
				
			||||||
			pins = "gpio2";
 | 
								pins = "gpio2";
 | 
				
			||||||
@@ -654,6 +583,131 @@
 | 
				
			|||||||
			bias-pull-down;
 | 
								bias-pull-down;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
						blsp0_uart_pins: uart_pins {
 | 
				
			||||||
 | 
							blsp0_uart_rx_tx {
 | 
				
			||||||
 | 
								pins = "gpio20", "gpio21";
 | 
				
			||||||
 | 
								function = "blsp0_uart0";
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						blsp1_uart_pins: blsp1_uart_pins {
 | 
				
			||||||
 | 
							blsp1_uart_rx_tx {
 | 
				
			||||||
 | 
								pins = "gpio23", "gpio25", "gpio24", "gpio26";
 | 
				
			||||||
 | 
								function = "blsp1_uart2";
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						blsp0_spi_pins: blsp0_spi_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio10", "gpio11", "gpio12", "gpio13";
 | 
				
			||||||
 | 
								function = "blsp0_spi";
 | 
				
			||||||
 | 
								drive-strength = <2>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						qspi_nand_pins: qspi_nand_pins {
 | 
				
			||||||
 | 
							qspi_clock {
 | 
				
			||||||
 | 
								pins = "gpio9";
 | 
				
			||||||
 | 
								function = "qspi_clk";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							qspi_cs {
 | 
				
			||||||
 | 
								pins = "gpio8";
 | 
				
			||||||
 | 
								function = "qspi_cs";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							qspi_data_0 {
 | 
				
			||||||
 | 
								pins = "gpio7";
 | 
				
			||||||
 | 
								function = "qspi0";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							qspi_data_1 {
 | 
				
			||||||
 | 
								pins = "gpio6";
 | 
				
			||||||
 | 
								function = "qspi1";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							qspi_data_2 {
 | 
				
			||||||
 | 
								pins = "gpio5";
 | 
				
			||||||
 | 
								function = "qspi2";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							qspi_data_3 {
 | 
				
			||||||
 | 
								pins = "gpio4";
 | 
				
			||||||
 | 
								function = "qspi3";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						mdio1_pins: mdio_pinmux {
 | 
				
			||||||
 | 
							mux_0 {
 | 
				
			||||||
 | 
								pins = "gpio36";
 | 
				
			||||||
 | 
								function = "mdc";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							mux_1 {
 | 
				
			||||||
 | 
								pins = "gpio37";
 | 
				
			||||||
 | 
								function = "mdio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						phy_led_pins: phy_led_pins {
 | 
				
			||||||
 | 
							gephy_led_pin {
 | 
				
			||||||
 | 
								pins = "gpio46";
 | 
				
			||||||
 | 
								/* function = "led0"; */
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						ble_pins: ble_pins {
 | 
				
			||||||
 | 
							ble_coex_grant {
 | 
				
			||||||
 | 
								pins = "gpio19";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						i2c_pins: i2c_pins {
 | 
				
			||||||
 | 
							i2c_scl {
 | 
				
			||||||
 | 
								pins = "gpio33";
 | 
				
			||||||
 | 
								function = "blsp2_i2c0";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								/* bias-disable; */
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							i2c_sda {
 | 
				
			||||||
 | 
								pins = "gpio34";
 | 
				
			||||||
 | 
								function = "blsp2_i2c0";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								/* bias-disable; */
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						button_pins: button_pins {
 | 
				
			||||||
 | 
							wps_button {
 | 
				
			||||||
 | 
								pins = "gpio38";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	audio_pins: audio_pinmux {
 | 
						audio_pins: audio_pinmux {
 | 
				
			||||||
		mux_1 {
 | 
							mux_1 {
 | 
				
			||||||
@@ -705,8 +759,10 @@
 | 
				
			|||||||
			bias-pull-down;
 | 
								bias-pull-down;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Disable gpio 38 and 24 
 | 
				
			||||||
&soc {
 | 
					&soc {
 | 
				
			||||||
	gpio_keys {
 | 
						gpio_keys {
 | 
				
			||||||
		compatible = "gpio-keys";
 | 
							compatible = "gpio-keys";
 | 
				
			||||||
@@ -714,244 +770,36 @@
 | 
				
			|||||||
		pinctrl-names = "default";
 | 
							pinctrl-names = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		button@1 {
 | 
							button@1 {
 | 
				
			||||||
			label = "reset";
 | 
								label = "wps";
 | 
				
			||||||
			linux,code = <KEY_RESTART>;
 | 
								linux,code = <KEY_WPS_BUTTON>;
 | 
				
			||||||
			gpios = <&tlmm 32 GPIO_ACTIVE_LOW>;
 | 
								gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
			linux,input-type = <1>;
 | 
								linux,input-type = <1>;
 | 
				
			||||||
			debounce-interval = <60>;
 | 
								debounce-interval = <60>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&q6v5_wcss {
 | 
					 | 
				
			||||||
	compatible = "qcom,ipq5018-q6-mpd";
 | 
					 | 
				
			||||||
	#address-cells = <1>;
 | 
					 | 
				
			||||||
	#size-cells = <1>;
 | 
					 | 
				
			||||||
	ranges;
 | 
					 | 
				
			||||||
	firmware = "IPQ5018/q6_fw.mdt";
 | 
					 | 
				
			||||||
	reg = <0x0cd00000 0x4040>,
 | 
					 | 
				
			||||||
		<0x1938000 0x8>,
 | 
					 | 
				
			||||||
		<0x193d204 0x4>;
 | 
					 | 
				
			||||||
	reg-names = "qdsp6",
 | 
					 | 
				
			||||||
			"tcsr-msip",
 | 
					 | 
				
			||||||
			"tcsr-q6";
 | 
					 | 
				
			||||||
	resets = <&gcc GCC_WCSSAON_RESET>,
 | 
					 | 
				
			||||||
			<&gcc GCC_WCSS_Q6_BCR>;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	reset-names = "wcss_aon_reset",
 | 
					 | 
				
			||||||
			"wcss_q6_reset";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	clocks = <&gcc GCC_Q6_AXIS_CLK>,
 | 
					 | 
				
			||||||
		<&gcc GCC_WCSS_ECAHB_CLK>,
 | 
					 | 
				
			||||||
		<&gcc GCC_Q6_AXIM_CLK>,
 | 
					 | 
				
			||||||
		<&gcc GCC_Q6_AXIM2_CLK>,
 | 
					 | 
				
			||||||
		<&gcc GCC_Q6_AHB_CLK>,
 | 
					 | 
				
			||||||
		<&gcc GCC_Q6_AHB_S_CLK>,
 | 
					 | 
				
			||||||
		<&gcc GCC_WCSS_AXI_S_CLK>;
 | 
					 | 
				
			||||||
	clock-names = "gcc_q6_axis_clk",
 | 
					 | 
				
			||||||
		"gcc_wcss_ecahb_clk",
 | 
					 | 
				
			||||||
		"gcc_q6_axim_clk",
 | 
					 | 
				
			||||||
		"gcc_q6_axim2_clk",
 | 
					 | 
				
			||||||
		"gcc_q6_ahb_clk",
 | 
					 | 
				
			||||||
		"gcc_q6_ahb_s_clk",
 | 
					 | 
				
			||||||
		"gcc_wcss_axi_s_clk";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
					 | 
				
			||||||
		memory-region = <&q6_mem_regions>, <&q6_etr_region>;
 | 
					 | 
				
			||||||
	#else
 | 
					 | 
				
			||||||
		memory-region = <&q6_mem_regions>, <&q6_etr_region>,
 | 
					 | 
				
			||||||
				<&q6_caldb_region>;
 | 
					 | 
				
			||||||
	#endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	qcom,rproc = <&q6v5_wcss>;
 | 
					 | 
				
			||||||
	qcom,bootargs_smem = <507>;
 | 
					 | 
				
			||||||
	boot-args = <0x1 0x4 0x3 0x0F 0x0 0x0>,
 | 
					 | 
				
			||||||
			<0x2 0x4 0x2 0x12 0x0 0x0>;
 | 
					 | 
				
			||||||
	status = "ok";
 | 
					 | 
				
			||||||
	q6_wcss_pd1: remoteproc_pd1@4ab000 {
 | 
					 | 
				
			||||||
		compatible = "qcom,ipq5018-wcss-ahb-mpd";
 | 
					 | 
				
			||||||
		reg = <0x4ab000 0x20>;
 | 
					 | 
				
			||||||
		reg-names = "rmb";
 | 
					 | 
				
			||||||
		firmware = "IPQ5018/q6_fw.mdt";
 | 
					 | 
				
			||||||
		m3_firmware = "IPQ5018/m3_fw.mdt";
 | 
					 | 
				
			||||||
		interrupts-extended = <&wcss_smp2p_in 8 0>,
 | 
					 | 
				
			||||||
					<&wcss_smp2p_in 9 0>,
 | 
					 | 
				
			||||||
					<&wcss_smp2p_in 12 0>,
 | 
					 | 
				
			||||||
					<&wcss_smp2p_in 11 0>;
 | 
					 | 
				
			||||||
		interrupt-names = "fatal",
 | 
					 | 
				
			||||||
					"ready",
 | 
					 | 
				
			||||||
					"spawn-ack",
 | 
					 | 
				
			||||||
					"stop-ack";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		resets = <&gcc GCC_WCSSAON_RESET>,
 | 
					 | 
				
			||||||
				<&gcc GCC_WCSS_BCR>,
 | 
					 | 
				
			||||||
				<&gcc GCC_CE_BCR>;
 | 
					 | 
				
			||||||
		reset-names = "wcss_aon_reset",
 | 
					 | 
				
			||||||
				"wcss_reset",
 | 
					 | 
				
			||||||
				"ce_reset";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		clocks = <&gcc GCC_WCSS_AHB_S_CLK>,
 | 
					 | 
				
			||||||
				<&gcc GCC_WCSS_ACMT_CLK>,
 | 
					 | 
				
			||||||
				<&gcc GCC_WCSS_AXI_M_CLK>;
 | 
					 | 
				
			||||||
		clock-names = "gcc_wcss_ahb_s_clk",
 | 
					 | 
				
			||||||
					"gcc_wcss_acmt_clk",
 | 
					 | 
				
			||||||
					"gcc_wcss_axi_m_clk";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		qcom,halt-regs = <&tcsr_q6_block 0xa000 0xd000 0x0>;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		qcom,smem-states = <&wcss_smp2p_out 8>,
 | 
					 | 
				
			||||||
					<&wcss_smp2p_out 9>,
 | 
					 | 
				
			||||||
					<&wcss_smp2p_out 10>;
 | 
					 | 
				
			||||||
		qcom,smem-state-names = "shutdown",
 | 
					 | 
				
			||||||
					"stop",
 | 
					 | 
				
			||||||
					"spawn";
 | 
					 | 
				
			||||||
	#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
					 | 
				
			||||||
		memory-region = <&q6_ipq5018_data>, <&m3_dump>,
 | 
					 | 
				
			||||||
				<&q6_etr_region>;
 | 
					 | 
				
			||||||
	#else
 | 
					 | 
				
			||||||
		memory-region = <&q6_ipq5018_data>, <&m3_dump>,
 | 
					 | 
				
			||||||
				<&q6_etr_region>, <&q6_caldb_region>;
 | 
					 | 
				
			||||||
	#endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	q6_wcss_pd2: remoteproc_pd2 {
 | 
					 | 
				
			||||||
		compatible = "qcom,ipq5018-wcss-pcie-mpd";
 | 
					 | 
				
			||||||
		firmware = "IPQ5018/q6_fw.mdt";
 | 
					 | 
				
			||||||
		m3_firmware = "qcn6122/m3_fw.mdt";
 | 
					 | 
				
			||||||
		interrupts-extended = <&wcss_smp2p_in 16 0>,
 | 
					 | 
				
			||||||
					<&wcss_smp2p_in 17 0>,
 | 
					 | 
				
			||||||
					<&wcss_smp2p_in 20 0>,
 | 
					 | 
				
			||||||
					<&wcss_smp2p_in 19 0>;
 | 
					 | 
				
			||||||
		interrupt-names = "fatal",
 | 
					 | 
				
			||||||
					"ready",
 | 
					 | 
				
			||||||
					"spawn-ack",
 | 
					 | 
				
			||||||
					"stop-ack";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		qcom,smem-states = <&wcss_smp2p_out 16>,
 | 
					 | 
				
			||||||
					<&wcss_smp2p_out 17>,
 | 
					 | 
				
			||||||
					<&wcss_smp2p_out 18>;
 | 
					 | 
				
			||||||
		qcom,smem-state-names = "shutdown",
 | 
					 | 
				
			||||||
					"stop",
 | 
					 | 
				
			||||||
					"spawn";
 | 
					 | 
				
			||||||
	#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
					 | 
				
			||||||
		memory-region = <&q6_qcn6122_data1>, <&m3_dump_qcn6122_1>,
 | 
					 | 
				
			||||||
				<&q6_qcn6122_etr_1>;
 | 
					 | 
				
			||||||
	#else
 | 
					 | 
				
			||||||
		memory-region = <&q6_qcn6122_data1>, <&m3_dump_qcn6122_1>,
 | 
					 | 
				
			||||||
				<&q6_qcn6122_etr_1>, <&q6_qcn6122_caldb_1>;
 | 
					 | 
				
			||||||
	#endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	q6_wcss_pd3: remoteproc_pd3 {
 | 
					 | 
				
			||||||
		compatible = "qcom,ipq5018-wcss-pcie-mpd";
 | 
					 | 
				
			||||||
		firmware = "IPQ5018/q6_fw.mdt";
 | 
					 | 
				
			||||||
		interrupts-extended = <&wcss_smp2p_in 24 0>,
 | 
					 | 
				
			||||||
					<&wcss_smp2p_in 25 0>,
 | 
					 | 
				
			||||||
					<&wcss_smp2p_in 28 0>,
 | 
					 | 
				
			||||||
					<&wcss_smp2p_in 27 0>;
 | 
					 | 
				
			||||||
		interrupt-names = "fatal",
 | 
					 | 
				
			||||||
					"ready",
 | 
					 | 
				
			||||||
					"spawn-ack",
 | 
					 | 
				
			||||||
					"stop-ack";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		qcom,smem-states = <&wcss_smp2p_out 24>,
 | 
					 | 
				
			||||||
					<&wcss_smp2p_out 25>,
 | 
					 | 
				
			||||||
					<&wcss_smp2p_out 26>;
 | 
					 | 
				
			||||||
		qcom,smem-state-names = "shutdown",
 | 
					 | 
				
			||||||
					"stop",
 | 
					 | 
				
			||||||
					"spawn";
 | 
					 | 
				
			||||||
	#ifdef	__IPQ_MEM_PROFILE_256_MB__
 | 
					 | 
				
			||||||
		memory-region = <&q6_qcn6122_data2>, <&m3_dump_qcn6122_2>,
 | 
					 | 
				
			||||||
				<&q6_qcn6122_etr_2>;
 | 
					 | 
				
			||||||
	#else
 | 
					 | 
				
			||||||
		memory-region = <&q6_qcn6122_data2>, <&m3_dump_qcn6122_2>,
 | 
					 | 
				
			||||||
				<&q6_qcn6122_etr_2>, <&q6_qcn6122_caldb_2>;
 | 
					 | 
				
			||||||
	#endif
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
&i2c_0 {
 | 
					 | 
				
			||||||
	pinctrl-0 = <&i2c_pins>;
 | 
					 | 
				
			||||||
	pinctrl-names = "default";
 | 
					 | 
				
			||||||
	status = "disabled";
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
&wifi0 {
 | 
					 | 
				
			||||||
	/* IPQ5018 */
 | 
					 | 
				
			||||||
	qcom,multipd_arch;
 | 
					 | 
				
			||||||
	qcom,rproc = <&q6_wcss_pd1>;
 | 
					 | 
				
			||||||
	qcom,userpd-subsys-name = "q6v5_wcss_userpd1";
 | 
					 | 
				
			||||||
#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
					 | 
				
			||||||
	qcom,tgt-mem-mode = <2>;
 | 
					 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
	qcom,tgt-mem-mode = <1>;
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
	qcom,board_id = <0x23>;
 | 
					 | 
				
			||||||
	qcom,bdf-addr = <0x4C400000 0x4C400000 0x4C400000 0x0 0x0>;
 | 
					 | 
				
			||||||
#ifdef __CNSS2__
 | 
					 | 
				
			||||||
	qcom,caldb-addr = <0x4D400000 0x4D400000 0 0 0>;
 | 
					 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
	qcom,caldb-addr = <0x4D400000>;
 | 
					 | 
				
			||||||
	m3-dump-addr = <0x4D200000>;
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
	qcom,caldb-size = <0x200000>;
 | 
					 | 
				
			||||||
	mem-region = <&q6_ipq5018_data>;
 | 
					 | 
				
			||||||
	status = "ok";
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
&wifi1 {
 | 
					 | 
				
			||||||
	/* QCN6122 5G */
 | 
					 | 
				
			||||||
	qcom,multipd_arch;
 | 
					 | 
				
			||||||
	qcom,userpd-subsys-name = "q6v5_wcss_userpd2";
 | 
					 | 
				
			||||||
	qcom,rproc = <&q6_wcss_pd2>;
 | 
					 | 
				
			||||||
#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
					 | 
				
			||||||
	qcom,tgt-mem-mode = <2>;
 | 
					 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
	qcom,tgt-mem-mode = <1>;
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
	qcom,board_id = <0x60>;
 | 
					 | 
				
			||||||
	qcom,bdf-addr = <0x4D600000 0x4D600000 0x4D300000 0x0 0x0>;
 | 
					 | 
				
			||||||
#ifdef __CNSS2__
 | 
					 | 
				
			||||||
	qcom,caldb-addr = <0x4E800000 0x4E800000 0 0 0>;
 | 
					 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
	qcom,caldb-addr = <0x4E800000>;
 | 
					 | 
				
			||||||
	m3-dump-addr = <0x4E600000>;
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
	qcom,caldb-size = <0x500000>;
 | 
					 | 
				
			||||||
	mem-region = <&q6_qcn6122_data1>;
 | 
					 | 
				
			||||||
	status = "disabled";
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
&wifi2 {
 | 
					 | 
				
			||||||
	/* QCN6122 6G */
 | 
					 | 
				
			||||||
	qcom,multipd_arch;
 | 
					 | 
				
			||||||
	qcom,userpd-subsys-name = "q6v5_wcss_userpd3";
 | 
					 | 
				
			||||||
	qcom,rproc = <&q6_wcss_pd3>;
 | 
					 | 
				
			||||||
#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
					 | 
				
			||||||
	qcom,tgt-mem-mode = <2>;
 | 
					 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
	qcom,tgt-mem-mode = <1>;
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
	qcom,board_id = <0xb0>;
 | 
					 | 
				
			||||||
	qcom,bdf-addr = <0x4ED00000 0x4ED00000 0x4E200000 0x0 0x0>;
 | 
					 | 
				
			||||||
#ifdef __CNSS2__
 | 
					 | 
				
			||||||
	qcom,caldb-addr = <0x4FF00000 0x4FF00000 0 0 0>;
 | 
					 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
	qcom,caldb-addr = <0x4FF00000>;
 | 
					 | 
				
			||||||
	m3-dump-addr = <0x4FD00000>;
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
	qcom,caldb-size = <0x500000>;
 | 
					 | 
				
			||||||
	mem-region = <&q6_qcn6122_data2>;
 | 
					 | 
				
			||||||
	status = "disabled";
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
&usb3 {
 | 
					&usb3 {
 | 
				
			||||||
	status = "ok";
 | 
						status = "ok";
 | 
				
			||||||
	device-power-gpio = <&tlmm 24 1>;
 | 
						device-power-gpio = <&tlmm 24 1>;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&eud {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie_x1 {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
						perst-gpio = <&tlmm 18 1>;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie_x2 {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
						perst-gpio = <&tlmm 15 1>;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&dwc_0 {
 | 
					&dwc_0 {
 | 
				
			||||||
	/delete-property/ #phy-cells;
 | 
						/delete-property/ #phy-cells;
 | 
				
			||||||
	/delete-property/ phys;
 | 
						/delete-property/ phys;
 | 
				
			||||||
@@ -962,20 +810,6 @@
 | 
				
			|||||||
	status = "ok";
 | 
						status = "ok";
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&eud {
 | 
					 | 
				
			||||||
	status = "ok";
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
&pcie_x1 {
 | 
					 | 
				
			||||||
	status = "disabled";
 | 
					 | 
				
			||||||
	perst-gpio = <&tlmm 18 GPIO_ACTIVE_LOW>;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
&pcie_x2 {
 | 
					 | 
				
			||||||
	status = "disabled";
 | 
					 | 
				
			||||||
	perst-gpio = <&tlmm 15 GPIO_ACTIVE_LOW>;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
&pcie_x1phy {
 | 
					&pcie_x1phy {
 | 
				
			||||||
	status = "disabled";
 | 
						status = "disabled";
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
@@ -1000,3 +834,182 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qfprom {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&tsens {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qcom_q6v5_wcss {
 | 
				
			||||||
 | 
						qcom,multipd_arch;
 | 
				
			||||||
 | 
						memory-region = <&q6_mem_regions>;
 | 
				
			||||||
 | 
						qcom,share_bootargs;
 | 
				
			||||||
 | 
						qcom,bootargs_smem = <507>;
 | 
				
			||||||
 | 
						boot-args = <0x1 0x4 0x3 0x0F 0x0 0x0>,
 | 
				
			||||||
 | 
								<0x2 0x4 0x2 0x12 0x0 0x0>;
 | 
				
			||||||
 | 
						/* IPQ5018 */
 | 
				
			||||||
 | 
						q6v5_wcss_userpd1 {
 | 
				
			||||||
 | 
							m3_firmware = "IPQ5018/m3_fw.mdt";
 | 
				
			||||||
 | 
							interrupts-extended = <&wcss_smp2p_in 8 0>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_in 9 0>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_in 12 0>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_in 11 0>;
 | 
				
			||||||
 | 
							interrupt-names ="fatal",
 | 
				
			||||||
 | 
								"ready",
 | 
				
			||||||
 | 
								"spawn_ack",
 | 
				
			||||||
 | 
								"stop-ack";
 | 
				
			||||||
 | 
							qcom,smem-states = <&wcss_smp2p_out 8>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_out 9>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_out 10>;
 | 
				
			||||||
 | 
							qcom,smem-state-names = "shutdown",
 | 
				
			||||||
 | 
								"stop",
 | 
				
			||||||
 | 
								"spawn";
 | 
				
			||||||
 | 
							qca,asid = <1>;
 | 
				
			||||||
 | 
							qca,auto-restart;
 | 
				
			||||||
 | 
							qca,int_radio;
 | 
				
			||||||
 | 
							#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
 | 
							memory-region = <&q6_ipq5018_data>, <&m3_dump>,
 | 
				
			||||||
 | 
									<&q6_etr_region>;
 | 
				
			||||||
 | 
							#else
 | 
				
			||||||
 | 
							memory-region = <&q6_ipq5018_data>, <&m3_dump>,
 | 
				
			||||||
 | 
									<&q6_etr_region>, <&q6_caldb_region>;
 | 
				
			||||||
 | 
							#endif
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* QCN6122 6G */
 | 
				
			||||||
 | 
						q6v5_wcss_userpd2 {
 | 
				
			||||||
 | 
							m3_firmware = "qcn6122/m3_fw.mdt";
 | 
				
			||||||
 | 
							interrupts-extended = <&wcss_smp2p_in 16 0>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_in 17 0>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_in 20 0>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_in 19 0>;
 | 
				
			||||||
 | 
							interrupt-names ="fatal",
 | 
				
			||||||
 | 
								"ready",
 | 
				
			||||||
 | 
								"spawn_ack",
 | 
				
			||||||
 | 
								"stop-ack";
 | 
				
			||||||
 | 
							qcom,smem-states = <&wcss_smp2p_out 16>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_out 17>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_out 18>;
 | 
				
			||||||
 | 
							qcom,smem-state-names = "shutdown",
 | 
				
			||||||
 | 
								"stop",
 | 
				
			||||||
 | 
								"spawn";
 | 
				
			||||||
 | 
							qca,asid = <2>;
 | 
				
			||||||
 | 
							qca,auto-restart;
 | 
				
			||||||
 | 
							#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
 | 
							memory-region = <&q6_qcn6122_data1>, <&m3_dump_qcn6122_1>,
 | 
				
			||||||
 | 
									<&q6_qcn6122_etr_1>;
 | 
				
			||||||
 | 
							#else
 | 
				
			||||||
 | 
							memory-region = <&q6_qcn6122_data1>, <&m3_dump_qcn6122_1>,
 | 
				
			||||||
 | 
									<&q6_qcn6122_etr_1>, <&q6_qcn6122_caldb_1>;
 | 
				
			||||||
 | 
							#endif
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* QCN6122 5G */
 | 
				
			||||||
 | 
						q6v5_wcss_userpd3 {
 | 
				
			||||||
 | 
							m3_firmware = "qcn6122/m3_fw.mdt";
 | 
				
			||||||
 | 
							interrupts-extended = <&wcss_smp2p_in 24 0>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_in 25 0>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_in 28 0>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_in 27 0>;
 | 
				
			||||||
 | 
							interrupt-names ="fatal",
 | 
				
			||||||
 | 
								"ready",
 | 
				
			||||||
 | 
								"spawn_ack",
 | 
				
			||||||
 | 
								"stop-ack";
 | 
				
			||||||
 | 
							qcom,smem-states = <&wcss_smp2p_out 24>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_out 25>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_out 26>;
 | 
				
			||||||
 | 
							qcom,smem-state-names = "shutdown",
 | 
				
			||||||
 | 
								"stop",
 | 
				
			||||||
 | 
								"spawn";
 | 
				
			||||||
 | 
							qca,asid = <3>;
 | 
				
			||||||
 | 
							qca,auto-restart;
 | 
				
			||||||
 | 
							#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
 | 
							memory-region = <&q6_qcn6122_data2>, <&m3_dump_qcn6122_2>,
 | 
				
			||||||
 | 
									<&q6_qcn6122_etr_2>;
 | 
				
			||||||
 | 
							#else
 | 
				
			||||||
 | 
							memory-region = <&q6_qcn6122_data2>, <&m3_dump_qcn6122_2>,
 | 
				
			||||||
 | 
									<&q6_qcn6122_etr_2>, <&q6_qcn6122_caldb_2>;
 | 
				
			||||||
 | 
							#endif
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&i2c_0 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&i2c_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						/* status = "disabled"; */
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qgic_msi_0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qgic_msi_1 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&wifi0 {
 | 
				
			||||||
 | 
						/* IPQ5018 */
 | 
				
			||||||
 | 
						qcom,multipd_arch;
 | 
				
			||||||
 | 
						qcom,userpd-subsys-name = "q6v5_wcss_userpd1";
 | 
				
			||||||
 | 
					#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
 | 
						qcom,tgt-mem-mode = <2>;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
						qcom,tgt-mem-mode = <1>;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
						qcom,board_id = <0x23>;
 | 
				
			||||||
 | 
						qcom,bdf-addr = <0x4C400000 0x4C400000 0x4C400000 0x0 0x0>;
 | 
				
			||||||
 | 
					#ifdef __CNSS2__
 | 
				
			||||||
 | 
						qcom,caldb-addr = <0x4D400000 0x4D400000 0 0 0>;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
						qcom,caldb-addr = <0x4D400000>;
 | 
				
			||||||
 | 
						m3-dump-addr = <0x4D200000>;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
						qcom,caldb-size = <0x200000>;
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&wifi1 {
 | 
				
			||||||
 | 
						/* QCN6122 5G */
 | 
				
			||||||
 | 
						qcom,multipd_arch;
 | 
				
			||||||
 | 
						qcom,userpd-subsys-name = "q6v5_wcss_userpd2";
 | 
				
			||||||
 | 
					#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
 | 
						qcom,tgt-mem-mode = <2>;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
						qcom,tgt-mem-mode = <1>;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
						qcom,board_id = <0x50>;
 | 
				
			||||||
 | 
						qcom,bdf-addr = <0x4D600000 0x4D600000 0x4D300000 0x0 0x0>;
 | 
				
			||||||
 | 
					#ifdef __CNSS2__
 | 
				
			||||||
 | 
						qcom,caldb-addr = <0x4E800000 0x4E800000 0 0 0>;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
						qcom,caldb-addr = <0x4E800000>;
 | 
				
			||||||
 | 
						m3-dump-addr = <0x4E600000>;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
						qcom,caldb-size = <0x500000>;
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&wifi2 {
 | 
				
			||||||
 | 
						/* QCN6122 6G */
 | 
				
			||||||
 | 
						qcom,multipd_arch;
 | 
				
			||||||
 | 
						qcom,userpd-subsys-name = "q6v5_wcss_userpd3";
 | 
				
			||||||
 | 
					#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
 | 
						qcom,tgt-mem-mode = <2>;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
						qcom,tgt-mem-mode = <1>;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
						qcom,board_id = <0xb0>;
 | 
				
			||||||
 | 
						qcom,bdf-addr = <0x4ED00000 0x4ED00000 0x4E400000 0x0 0x0>;
 | 
				
			||||||
 | 
					#ifdef __CNSS2__
 | 
				
			||||||
 | 
						qcom,caldb-addr = <0x4FF00000 0x4FF00000 0 0 0>;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
						qcom,caldb-addr = <0x4FF00000>;
 | 
				
			||||||
 | 
						m3-dump-addr = <0x4FD00000>;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
						qcom,caldb-size = <0x500000>;
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,5 @@
 | 
				
			|||||||
/dts-v1/;
 | 
					/dts-v1/;
 | 
				
			||||||
/* Copyright (c) 2018-2021, The Linux Foundation. All rights reserved.
 | 
					/* Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
 | 
					 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Permission to use, copy, modify, and/or distribute this software for any
 | 
					 * Permission to use, copy, modify, and/or distribute this software for any
 | 
				
			||||||
 * purpose with or without fee is hereby granted, provided that the above
 | 
					 * purpose with or without fee is hereby granted, provided that the above
 | 
				
			||||||
@@ -16,14 +14,17 @@
 | 
				
			|||||||
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
					 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "ipq5018.dtsi"
 | 
					#include "qcom-ipq5018.dtsi"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/ {
 | 
					/ {
 | 
				
			||||||
	#address-cells = <0x2>;
 | 
						#address-cells = <0x2>;
 | 
				
			||||||
	#size-cells = <0x2>;
 | 
						#size-cells = <0x2>;
 | 
				
			||||||
	model = "Qualcomm Technologies, Inc. IPQ5018/AP-MP03.1";
 | 
						model = "Qualcomm Technologies, Inc. IPQ5018/AP-MP03.1";
 | 
				
			||||||
	compatible = "qcom,ipq5018-ap-mp03.1", "qcom,ipq5018-mp03.1", "qcom,ipq5018";
 | 
						compatible = "qcom,ipq5018-mp03.1", "qcom,ipq5018";
 | 
				
			||||||
	interrupt-parent = <&intc>;
 | 
						interrupt-parent = <&intc>;
 | 
				
			||||||
 | 
						#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
 | 
						AUTO_MOUNT;
 | 
				
			||||||
 | 
						#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	aliases {
 | 
						aliases {
 | 
				
			||||||
		sdhc1 = &sdhc_1; /* SDC1 eMMC slot */
 | 
							sdhc1 = &sdhc_1; /* SDC1 eMMC slot */
 | 
				
			||||||
@@ -31,11 +32,19 @@
 | 
				
			|||||||
		serial1 = &blsp1_uart2;
 | 
							serial1 = &blsp1_uart2;
 | 
				
			||||||
		ethernet0 = "/soc/dp1";
 | 
							ethernet0 = "/soc/dp1";
 | 
				
			||||||
		ethernet1 = "/soc/dp2";
 | 
							ethernet1 = "/soc/dp2";
 | 
				
			||||||
 | 
						        led-boot = &led_sys;
 | 
				
			||||||
 | 
							led-failsafe = &led_sys;
 | 
				
			||||||
 | 
							led-running = &led_sys;
 | 
				
			||||||
 | 
							led-upgrade = &led_sys;
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	chosen {
 | 
						chosen {
 | 
				
			||||||
		bootargs = "console=ttyMSM0,115200,n8 rw init=/init";
 | 
							bootargs = "console=ttyMSM0,115200,n8 rw init=/init";
 | 
				
			||||||
 | 
						#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
 | 
							bootargs-append = " swiotlb=1";
 | 
				
			||||||
 | 
						#else
 | 
				
			||||||
		bootargs-append = " swiotlb=1 coherent_pool=2M";
 | 
							bootargs-append = " swiotlb=1 coherent_pool=2M";
 | 
				
			||||||
 | 
						#endif
 | 
				
			||||||
		stdout-path = "serial0";
 | 
							stdout-path = "serial0";
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -92,7 +101,7 @@
 | 
				
			|||||||
	 * |        |              |                         |
 | 
						 * |        |              |                         |
 | 
				
			||||||
	 * +--------+--------------+-------------------------+
 | 
						 * +--------+--------------+-------------------------+
 | 
				
			||||||
	 * |        |              |                         |
 | 
						 * |        |              |                         |
 | 
				
			||||||
	 * |  MHI1  |  0x4DA00000  |           9MB           |
 | 
						 * |  MHI1  |  0x4DA00000  |          16MB           |
 | 
				
			||||||
	 * |        |              |                         |
 | 
						 * |        |              |                         |
 | 
				
			||||||
	 * +--------+--------------+-------------------------+
 | 
						 * +--------+--------------+-------------------------+
 | 
				
			||||||
	 * |                                                 |
 | 
						 * |                                                 |
 | 
				
			||||||
@@ -100,7 +109,7 @@
 | 
				
			|||||||
	 * |                                                 |
 | 
						 * |                                                 |
 | 
				
			||||||
	 * +=================================================+
 | 
						 * +=================================================+
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
		q6_region: memory@4b000000 {
 | 
							q6_region: wcnss@4b000000 {
 | 
				
			||||||
			no-map;
 | 
								no-map;
 | 
				
			||||||
			reg = <0x0 0x4b000000 0x0 0x01700000>;
 | 
								reg = <0x0 0x4b000000 0x0 0x01700000>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
@@ -115,18 +124,16 @@
 | 
				
			|||||||
			reg = <0x0 0x4c800000 0x0 0x100000>;
 | 
								reg = <0x0 0x4c800000 0x0 0x100000>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		qcn9000_pcie0: qcn9000_pcie0@4c900000 {
 | 
							qcn9000_pcie0@4c900000 {
 | 
				
			||||||
			no-map;
 | 
								no-map;
 | 
				
			||||||
			reg = <0x0 0x4C900000 0x0 0x01100000>;
 | 
								reg = <0x0 0x4C900000 0x0 0x01100000>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	#if defined(__CNSS2__)
 | 
					 | 
				
			||||||
		mhi_region1: dma_pool1@4da00000 {
 | 
							mhi_region1: dma_pool1@4da00000 {
 | 
				
			||||||
			compatible = "shared-dma-pool";
 | 
								compatible = "shared-dma-pool";
 | 
				
			||||||
			no-map;
 | 
								no-map;
 | 
				
			||||||
			reg = <0x0 0x4DA00000 0x0 0x00900000>;
 | 
								reg = <0x0 0x4da00000 0x0 0x01000000>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	#endif
 | 
					 | 
				
			||||||
	#elif __IPQ_MEM_PROFILE_512_MB__
 | 
						#elif __IPQ_MEM_PROFILE_512_MB__
 | 
				
			||||||
	/*                      512 MB Profile
 | 
						/*                      512 MB Profile
 | 
				
			||||||
	 * +=========+==============+========================+
 | 
						 * +=========+==============+========================+
 | 
				
			||||||
@@ -176,11 +183,11 @@
 | 
				
			|||||||
	 * | caldb  |  0x4CA00000  |           2MB           |
 | 
						 * | caldb  |  0x4CA00000  |           2MB           |
 | 
				
			||||||
	 * +--------+--------------+-------------------------+
 | 
						 * +--------+--------------+-------------------------+
 | 
				
			||||||
	 * |        |              |                         |
 | 
						 * |        |              |                         |
 | 
				
			||||||
	 * |QCN9000 |  0x4CC00000  |          38MB           |
 | 
						 * |QCN9000 |  0x4CC00000  |          30MB           |
 | 
				
			||||||
	 * |        |              |                         |
 | 
						 * |        |              |                         |
 | 
				
			||||||
	 * +--------+--------------+-------------------------+
 | 
						 * +--------+--------------+-------------------------+
 | 
				
			||||||
	 * |        |              |                         |
 | 
						 * |        |              |                         |
 | 
				
			||||||
	 * |  MHI1  |  0x4F200000  |           9MB           |
 | 
						 * |  MHI1  |  0x4EA00000  |          16MB           |
 | 
				
			||||||
	 * |        |              |                         |
 | 
						 * |        |              |                         |
 | 
				
			||||||
	 * +--------+--------------+-------------------------+
 | 
						 * +--------+--------------+-------------------------+
 | 
				
			||||||
	 * |                                                 |
 | 
						 * |                                                 |
 | 
				
			||||||
@@ -188,7 +195,7 @@
 | 
				
			|||||||
	 * |                                                 |
 | 
						 * |                                                 |
 | 
				
			||||||
	 * +=================================================+
 | 
						 * +=================================================+
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
		q6_region: memory@4b000000 {
 | 
							q6_region: wcnss@4b000000 {
 | 
				
			||||||
			no-map;
 | 
								no-map;
 | 
				
			||||||
			reg = <0x0 0x4b000000 0x0 0x01800000>;
 | 
								reg = <0x0 0x4b000000 0x0 0x01800000>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
@@ -208,18 +215,16 @@
 | 
				
			|||||||
			reg = <0x0 0x4ca00000 0x0 0x200000>;
 | 
								reg = <0x0 0x4ca00000 0x0 0x200000>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		qcn9000_pcie0: qcn9000_pcie0@4cc00000 {
 | 
							qcn9000_pcie0@4cc00000 {
 | 
				
			||||||
			no-map;
 | 
								no-map;
 | 
				
			||||||
			reg = <0x0 0x4CC00000 0x0 0x02600000>;
 | 
								reg = <0x0 0x4CC00000 0x0 0x01E00000>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	#if defined(__CNSS2__)
 | 
							mhi_region1: dma_pool1@4ea00000 {
 | 
				
			||||||
		mhi_region1: dma_pool1@4f200000 {
 | 
					 | 
				
			||||||
			compatible = "shared-dma-pool";
 | 
								compatible = "shared-dma-pool";
 | 
				
			||||||
			no-map;
 | 
								no-map;
 | 
				
			||||||
			reg = <0x0 0x4f200000 0x0 0x00900000>;
 | 
								reg = <0x0 0x4ea00000 0x0 0x01000000>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	#endif
 | 
					 | 
				
			||||||
	#else
 | 
						#else
 | 
				
			||||||
	/*                      1G Profile
 | 
						/*                      1G Profile
 | 
				
			||||||
	 * +=========+==============+========================+
 | 
						 * +=========+==============+========================+
 | 
				
			||||||
@@ -269,11 +274,11 @@
 | 
				
			|||||||
	 * | caldb  |  0x4CA00000  |           2MB           |
 | 
						 * | caldb  |  0x4CA00000  |           2MB           |
 | 
				
			||||||
	 * +--------+--------------+-------------------------+
 | 
						 * +--------+--------------+-------------------------+
 | 
				
			||||||
	 * |        |              |                         |
 | 
						 * |        |              |                         |
 | 
				
			||||||
	 * |QCN9000 |  0x4CC00000  |          53MB           |
 | 
						 * |QCN9000 |  0x4CC00000  |          45MB           |
 | 
				
			||||||
	 * |        |              |                         |
 | 
						 * |        |              |                         |
 | 
				
			||||||
	 * +--------+--------------+-------------------------+
 | 
						 * +--------+--------------+-------------------------+
 | 
				
			||||||
	 * |        |              |                         |
 | 
						 * |        |              |                         |
 | 
				
			||||||
	 * |  MHI1  |  0x50100000  |           9MB           |
 | 
						 * |  MHI1  |  0x4F900000  |          24MB           |
 | 
				
			||||||
	 * |        |              |                         |
 | 
						 * |        |              |                         |
 | 
				
			||||||
	 * +--------+--------------+-------------------------+
 | 
						 * +--------+--------------+-------------------------+
 | 
				
			||||||
	 * |                                                 |
 | 
						 * |                                                 |
 | 
				
			||||||
@@ -281,7 +286,7 @@
 | 
				
			|||||||
	 * |                                                 |
 | 
						 * |                                                 |
 | 
				
			||||||
	 * +=================================================+
 | 
						 * +=================================================+
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
		q6_region: memory@4b000000 {
 | 
							q6_region: wcnss@4b000000 {
 | 
				
			||||||
			no-map;
 | 
								no-map;
 | 
				
			||||||
			reg = <0x0 0x4b000000 0x0 0x01800000>;
 | 
								reg = <0x0 0x4b000000 0x0 0x01800000>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
@@ -301,19 +306,17 @@
 | 
				
			|||||||
			reg = <0x0 0x4ca00000 0x0 0x200000>;
 | 
								reg = <0x0 0x4ca00000 0x0 0x200000>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		qcn9000_pcie0: qcn9000_pcie0@4cc00000 {
 | 
							qcn9000_pcie0@4cc00000 {
 | 
				
			||||||
			no-map;
 | 
								no-map;
 | 
				
			||||||
			reg = <0x0 0x4CC00000 0x0 0x03500000>;
 | 
								reg = <0x0 0x4CC00000 0x0 0x02D00000>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	#if defined(__CNSS2__)
 | 
							mhi_region1: dma_pool1@4F900000 {
 | 
				
			||||||
		mhi_region1: dma_pool1@50100000 {
 | 
					 | 
				
			||||||
			compatible = "shared-dma-pool";
 | 
								compatible = "shared-dma-pool";
 | 
				
			||||||
			no-map;
 | 
								no-map;
 | 
				
			||||||
			reg = <0x0 0x50100000 0x0 0x00900000>;
 | 
								reg = <0x0 0x4F900000 0x0 0x01800000>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	#endif
 | 
						#endif
 | 
				
			||||||
	#endif
 | 
					 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	soc {
 | 
						soc {
 | 
				
			||||||
@@ -425,7 +428,7 @@
 | 
				
			|||||||
				device_id = <1>;
 | 
									device_id = <1>;
 | 
				
			||||||
				switch_access_mode = "mdio";
 | 
									switch_access_mode = "mdio";
 | 
				
			||||||
				mdio-bus = <&mdio1>;
 | 
									mdio-bus = <&mdio1>;
 | 
				
			||||||
				reset_gpio = <&tlmm 0x27 0>;
 | 
									reset_gpio = <0x27>;
 | 
				
			||||||
				switch_cpu_bmp = <0x40>;  /* cpu port bitmap */
 | 
									switch_cpu_bmp = <0x40>;  /* cpu port bitmap */
 | 
				
			||||||
				switch_lan_bmp = <0x3c>; /* lan port bitmap */
 | 
									switch_lan_bmp = <0x3c>; /* lan port bitmap */
 | 
				
			||||||
				switch_wan_bmp = <0x0>;  /* wan port bitmap */
 | 
									switch_wan_bmp = <0x0>;  /* wan port bitmap */
 | 
				
			||||||
@@ -464,6 +467,15 @@
 | 
				
			|||||||
			};
 | 
								};
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							wifi0: wifi@c000000 {
 | 
				
			||||||
 | 
								qcom,bdf-addr = <0x4BA00000 0x4BA00000 0x4BA00000
 | 
				
			||||||
 | 
											0x0 0x0>;
 | 
				
			||||||
 | 
								qcom,caldb-addr = <0x4CA00000 0x4CA00000 0x4CA00000
 | 
				
			||||||
 | 
											0x0 0x0>;
 | 
				
			||||||
 | 
								qcom,caldb-size = <0x200000>;
 | 
				
			||||||
 | 
								status = "ok";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		ess-uniphy@98000 {
 | 
							ess-uniphy@98000 {
 | 
				
			||||||
			status = "disabled";
 | 
								status = "disabled";
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
@@ -472,6 +484,10 @@
 | 
				
			|||||||
			status = "ok";
 | 
								status = "ok";
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							qcom,usbbam@8B04000 {
 | 
				
			||||||
 | 
								status = "ok";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		qcom,diag@0 {
 | 
							qcom,diag@0 {
 | 
				
			||||||
			status = "ok";
 | 
								status = "ok";
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
@@ -490,7 +506,6 @@
 | 
				
			|||||||
			mdio-bus = <&mdio0>;
 | 
								mdio-bus = <&mdio0>;
 | 
				
			||||||
			local-mac-address = [000000000000];
 | 
								local-mac-address = [000000000000];
 | 
				
			||||||
			phy-mode = "sgmii";
 | 
								phy-mode = "sgmii";
 | 
				
			||||||
			qcom,rx-page-mode = <0>;
 | 
					 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		dp2 {
 | 
							dp2 {
 | 
				
			||||||
@@ -504,74 +519,16 @@
 | 
				
			|||||||
			qcom,mactype = <2>;
 | 
								qcom,mactype = <2>;
 | 
				
			||||||
			local-mac-address = [000000000000];
 | 
								local-mac-address = [000000000000];
 | 
				
			||||||
			phy-mode = "sgmii";
 | 
								phy-mode = "sgmii";
 | 
				
			||||||
			qcom,rx-page-mode = <0>;
 | 
					 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		rpm_etm0 {
 | 
							rpm_etm0 {
 | 
				
			||||||
			status = "disabled";
 | 
								status = "disabled";
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					 | 
				
			||||||
		pcm: pcm@0xA3C0000{
 | 
					 | 
				
			||||||
			pinctrl-0 = <&audio_pins>;
 | 
					 | 
				
			||||||
			pinctrl-names = "default";
 | 
					 | 
				
			||||||
			status = "disabled";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		gpio_keys {
 | 
					 | 
				
			||||||
			compatible = "gpio-keys";
 | 
					 | 
				
			||||||
			pinctrl-0 = <&button_pins>;
 | 
					 | 
				
			||||||
			pinctrl-names = "default";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			button@1 {
 | 
					 | 
				
			||||||
				label = "wps";
 | 
					 | 
				
			||||||
				linux,code = <KEY_WPS_BUTTON>;
 | 
					 | 
				
			||||||
				gpios = <&tlmm 27 GPIO_ACTIVE_LOW>;
 | 
					 | 
				
			||||||
				linux,input-type = <1>;
 | 
					 | 
				
			||||||
				debounce-interval = <60>;
 | 
					 | 
				
			||||||
			};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			button@2 {
 | 
					 | 
				
			||||||
				label = "reset";
 | 
					 | 
				
			||||||
				linux,code = <KEY_RESTART>;
 | 
					 | 
				
			||||||
				gpios = <&tlmm 28 GPIO_ACTIVE_LOW>;
 | 
					 | 
				
			||||||
				linux,input-type = <1>;
 | 
					 | 
				
			||||||
				debounce-interval = <60>;
 | 
					 | 
				
			||||||
			};
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		gpio_leds {
 | 
					 | 
				
			||||||
			compatible = "gpio-leds";
 | 
					 | 
				
			||||||
			pinctrl-0 = <&leds_pins>;
 | 
					 | 
				
			||||||
			pinctrl-names = "default";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			led_sys: led@1 {
 | 
					 | 
				
			||||||
				label = "sys:blue";
 | 
					 | 
				
			||||||
				gpios = <&tlmm 1 GPIO_ACTIVE_HIGH>;  /* GPIO_1 */
 | 
					 | 
				
			||||||
				default-state="on";
 | 
					 | 
				
			||||||
			};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			led@35 {
 | 
					 | 
				
			||||||
				label = "sys:green";
 | 
					 | 
				
			||||||
				gpios = <&tlmm 35 GPIO_ACTIVE_HIGH>;  /* GPIO_35 */
 | 
					 | 
				
			||||||
				default-state="off";
 | 
					 | 
				
			||||||
			};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			led@31 {
 | 
					 | 
				
			||||||
				label = "sys:red";
 | 
					 | 
				
			||||||
				gpios = <&tlmm 31 GPIO_ACTIVE_HIGH>;  /* GPIO_31 */
 | 
					 | 
				
			||||||
				default-state="off";
 | 
					 | 
				
			||||||
			};
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	qcom,test@0 {
 | 
					 | 
				
			||||||
		status = "ok";
 | 
					 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	thermal-zones {
 | 
						thermal-zones {
 | 
				
			||||||
		status = "ok";
 | 
							status = "ok";
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&tlmm {
 | 
					&tlmm {
 | 
				
			||||||
@@ -610,17 +567,33 @@
 | 
				
			|||||||
				drive-strength = <8>;
 | 
									drive-strength = <8>;
 | 
				
			||||||
				bias-disable;
 | 
									bias-disable;
 | 
				
			||||||
			};
 | 
								};
 | 
				
			||||||
 | 
					 | 
				
			||||||
		qspi_cs {
 | 
							qspi_cs {
 | 
				
			||||||
				pins = "gpio8";
 | 
									pins = "gpio8";
 | 
				
			||||||
				function = "qspi_cs";
 | 
									function = "qspi_cs";
 | 
				
			||||||
				drive-strength = <8>;
 | 
									drive-strength = <8>;
 | 
				
			||||||
				bias-disable;
 | 
									bias-disable;
 | 
				
			||||||
			};
 | 
								};
 | 
				
			||||||
 | 
							qspi_data_0 {
 | 
				
			||||||
		qspi_data {
 | 
									pins = "gpio7";
 | 
				
			||||||
				pins = "gpio4", "gpio5", "gpio6", "gpio7";
 | 
									function = "qspi0";
 | 
				
			||||||
				function = "qspi_data";
 | 
									drive-strength = <8>;
 | 
				
			||||||
 | 
									bias-disable;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							qspi_data_1 {
 | 
				
			||||||
 | 
									pins = "gpio6";
 | 
				
			||||||
 | 
									function = "qspi1";
 | 
				
			||||||
 | 
									drive-strength = <8>;
 | 
				
			||||||
 | 
									bias-disable;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							qspi_data_2 {
 | 
				
			||||||
 | 
									pins = "gpio5";
 | 
				
			||||||
 | 
									function = "qspi2";
 | 
				
			||||||
 | 
									drive-strength = <8>;
 | 
				
			||||||
 | 
									bias-disable;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							qspi_data_3 {
 | 
				
			||||||
 | 
									pins = "gpio4";
 | 
				
			||||||
 | 
									function = "qspi3";
 | 
				
			||||||
				drive-strength = <8>;
 | 
									drive-strength = <8>;
 | 
				
			||||||
				bias-disable;
 | 
									bias-disable;
 | 
				
			||||||
			};
 | 
								};
 | 
				
			||||||
@@ -643,7 +616,13 @@
 | 
				
			|||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	phy_led_pins: phy_led_pins {
 | 
						phy_led_pins: phy_led_pins {
 | 
				
			||||||
		gephy_led_pin {
 | 
					                gephy_led_pin_1g {
 | 
				
			||||||
 | 
					                        pins = "gpio30";
 | 
				
			||||||
 | 
					                        function = "led2";
 | 
				
			||||||
 | 
					                        drive-strength = <8>;
 | 
				
			||||||
 | 
					                        bias-pull-down;
 | 
				
			||||||
 | 
					                };
 | 
				
			||||||
 | 
					                gephy_led_pin_100 {
 | 
				
			||||||
                        pins = "gpio46";
 | 
					                        pins = "gpio46";
 | 
				
			||||||
                        function = "led0";
 | 
					                        function = "led0";
 | 
				
			||||||
                        drive-strength = <8>;
 | 
					                        drive-strength = <8>;
 | 
				
			||||||
@@ -704,59 +683,51 @@
 | 
				
			|||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	audio_pins: audio_pinmux {
 | 
					 | 
				
			||||||
		mux_1 {
 | 
					 | 
				
			||||||
			pins = "gpio24";
 | 
					 | 
				
			||||||
			function = "audio_rxbclk";
 | 
					 | 
				
			||||||
			drive-strength = <8>;
 | 
					 | 
				
			||||||
			bias-pull-down;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		mux_2 {
 | 
					 | 
				
			||||||
			pins = "gpio25";
 | 
					 | 
				
			||||||
			function = "audio_rxfsync";
 | 
					 | 
				
			||||||
			drive-strength = <8>;
 | 
					 | 
				
			||||||
			bias-pull-down;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		mux_3 {
 | 
					 | 
				
			||||||
			pins = "gpio26";
 | 
					 | 
				
			||||||
			function = "audio_rxd";
 | 
					 | 
				
			||||||
			drive-strength = <8>;
 | 
					 | 
				
			||||||
			bias-pull-down;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		mux_4 {
 | 
					 | 
				
			||||||
			pins = "gpio27";
 | 
					 | 
				
			||||||
			function = "audio_txmclk";
 | 
					 | 
				
			||||||
			drive-strength = <8>;
 | 
					 | 
				
			||||||
			bias-pull-down;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		mux_5 {
 | 
					 | 
				
			||||||
			pins = "gpio28";
 | 
					 | 
				
			||||||
			function = "audio_txbclk";
 | 
					 | 
				
			||||||
			drive-strength = <8>;
 | 
					 | 
				
			||||||
			bias-pull-down;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		mux_6 {
 | 
					 | 
				
			||||||
			pins = "gpio29";
 | 
					 | 
				
			||||||
			function = "audio_txfsync";
 | 
					 | 
				
			||||||
			drive-strength = <8>;
 | 
					 | 
				
			||||||
			bias-pull-down;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		mux_7 {
 | 
					 | 
				
			||||||
			pins = "gpio30";
 | 
					 | 
				
			||||||
			function = "audio_txd";
 | 
					 | 
				
			||||||
			drive-strength = <8>;
 | 
					 | 
				
			||||||
			bias-pull-down;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&soc {
 | 
					&soc {
 | 
				
			||||||
 | 
						gpio_keys {
 | 
				
			||||||
 | 
							compatible = "gpio-keys";
 | 
				
			||||||
 | 
							pinctrl-0 = <&button_pins>;
 | 
				
			||||||
 | 
							pinctrl-names = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							button@1 {
 | 
				
			||||||
 | 
								label = "wps";
 | 
				
			||||||
 | 
								linux,code = <KEY_WPS_BUTTON>;
 | 
				
			||||||
 | 
								gpios = <&tlmm 27 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
 | 
								linux,input-type = <1>;
 | 
				
			||||||
 | 
								debounce-interval = <60>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
							button@2 {
 | 
				
			||||||
 | 
								label = "reset";
 | 
				
			||||||
 | 
								linux,code = <KEY_RESTART>;
 | 
				
			||||||
 | 
								gpios = <&tlmm 28 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
 | 
								linux,input-type = <1>;
 | 
				
			||||||
 | 
								debounce-interval = <60>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
						gpio_leds {
 | 
				
			||||||
 | 
							compatible = "gpio-leds";
 | 
				
			||||||
 | 
							pinctrl-0 = <&leds_pins>;
 | 
				
			||||||
 | 
							pinctrl-names = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led_sys: led@1 {
 | 
				
			||||||
 | 
								label = "sys:blue";
 | 
				
			||||||
 | 
								gpios = <&tlmm 1 GPIO_ACTIVE_HIGH>;  /* GPIO_1 */
 | 
				
			||||||
 | 
								default-state="on";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							led@35 {
 | 
				
			||||||
 | 
								label = "sys:green";
 | 
				
			||||||
 | 
								gpios = <&tlmm 35 GPIO_ACTIVE_HIGH>;  /* GPIO_35 */
 | 
				
			||||||
 | 
								default-state="off";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							led@31 {
 | 
				
			||||||
 | 
								label = "sys:red";
 | 
				
			||||||
 | 
								gpios = <&tlmm 31 GPIO_ACTIVE_HIGH>;  /* GPIO_31 */
 | 
				
			||||||
 | 
								default-state="off";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&usb3 {
 | 
					&usb3 {
 | 
				
			||||||
@@ -772,22 +743,42 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
&pcie_x1 {
 | 
					&pcie_x1 {
 | 
				
			||||||
	status = "disabled";
 | 
						status = "disabled";
 | 
				
			||||||
	perst-gpio = <&tlmm 18 GPIO_ACTIVE_LOW>;
 | 
						perst-gpio = <&tlmm 18 1>;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&pcie_x2 {
 | 
					&pcie_x2 {
 | 
				
			||||||
	status = "ok";
 | 
						status = "ok";
 | 
				
			||||||
	perst-gpio = <&tlmm 15 GPIO_ACTIVE_LOW>;
 | 
						perst-gpio = <&tlmm 15 1>;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&bt {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&wcss {
 | 
					&wcss {
 | 
				
			||||||
	status = "ok";
 | 
						status = "ok";
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&q6v5_wcss {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&q6v5_m3 {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&tcsr_mutex_block {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&tcsr_mutex {
 | 
					&tcsr_mutex {
 | 
				
			||||||
	status = "ok";
 | 
						status = "ok";
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&smem {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&apcs_glb {
 | 
					&apcs_glb {
 | 
				
			||||||
	status = "ok";
 | 
						status = "ok";
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
@@ -796,13 +787,34 @@
 | 
				
			|||||||
	status = "ok";
 | 
						status = "ok";
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&q6v5_wcss {
 | 
					&qcom_q6v5_wcss {
 | 
				
			||||||
	#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
						#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
		memory-region = <&q6_region>, <&q6_etr_region>;
 | 
							memory-region = <&q6_region>, <&q6_etr_region>;
 | 
				
			||||||
	#else
 | 
						#else
 | 
				
			||||||
		memory-region = <&q6_region>, <&q6_etr_region>,
 | 
							memory-region = <&q6_region>, <&q6_etr_region>,
 | 
				
			||||||
				<&q6_caldb_region>;
 | 
									<&q6_caldb_region>;
 | 
				
			||||||
	#endif
 | 
						#endif
 | 
				
			||||||
 | 
						/* IPQ5018 */
 | 
				
			||||||
 | 
						q6v5_wcss_userpd1 {
 | 
				
			||||||
 | 
							m3_firmware = "IPQ5018/m3_fw.mdt";
 | 
				
			||||||
 | 
							interrupts-extended = <&wcss_smp2p_in 8 0>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_in 9 0>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_in 12 0>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_in 11 0>;
 | 
				
			||||||
 | 
							interrupt-names ="fatal",
 | 
				
			||||||
 | 
								"ready",
 | 
				
			||||||
 | 
								"spawn_ack",
 | 
				
			||||||
 | 
								"stop-ack";
 | 
				
			||||||
 | 
							qcom,smem-states = <&wcss_smp2p_out 8>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_out 9>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_out 10>;
 | 
				
			||||||
 | 
							qcom,smem-state-names = "shutdown",
 | 
				
			||||||
 | 
								"stop",
 | 
				
			||||||
 | 
								"spawn";
 | 
				
			||||||
 | 
							qca,asid = <1>;
 | 
				
			||||||
 | 
							qca,auto-restart;
 | 
				
			||||||
 | 
							qca,int_radio;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&i2c_0 {
 | 
					&i2c_0 {
 | 
				
			||||||
@@ -811,6 +823,14 @@
 | 
				
			|||||||
	status = "disabled";
 | 
						status = "disabled";
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&dbm_1p5 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&msm_imem {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&blsp1_uart1 {
 | 
					&blsp1_uart1 {
 | 
				
			||||||
	status = "ok";
 | 
						status = "ok";
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
@@ -847,108 +867,35 @@
 | 
				
			|||||||
		qrtr_instance_id = <0x20>;
 | 
							qrtr_instance_id = <0x20>;
 | 
				
			||||||
		#address-cells = <0x2>;
 | 
							#address-cells = <0x2>;
 | 
				
			||||||
		#size-cells = <0x2>;
 | 
							#size-cells = <0x2>;
 | 
				
			||||||
#if defined(__CNSS2__)
 | 
					 | 
				
			||||||
		memory-region = <&mhi_region1>;
 | 
							memory-region = <&mhi_region1>;
 | 
				
			||||||
#else
 | 
					#if !defined(__CNSS2__)
 | 
				
			||||||
		base-addr = <0x4CC00000>;
 | 
							base-addr = <0x4CC00000>;
 | 
				
			||||||
		m3-dump-addr = <0x4E000000>;
 | 
							m3-dump-addr = <0x4E000000>;
 | 
				
			||||||
		etr-addr = <0x4E100000>;
 | 
							etr-addr = <0x4E100000>;
 | 
				
			||||||
		qcom,caldb-addr = <0x4E200000>;
 | 
							qcom,caldb-addr = <0x4E200000>;
 | 
				
			||||||
		pageable-addr = <0x4EA00000>;
 | 
					 | 
				
			||||||
		qcom,tgt-mem-mode = <0x1>;
 | 
							qcom,tgt-mem-mode = <0x1>;
 | 
				
			||||||
 | 
							mhi,max-channels = <30>;
 | 
				
			||||||
 | 
							mhi,timeout = <10000>;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&wifi0 {
 | 
					&wifi0 {
 | 
				
			||||||
	/* IPQ5018 */
 | 
						/* IPQ5018 */
 | 
				
			||||||
	mem-region = <&q6_region>;
 | 
					 | 
				
			||||||
	qcom,board_id = <0x24>;
 | 
						qcom,board_id = <0x24>;
 | 
				
			||||||
 | 
					 | 
				
			||||||
	qcom,bdf-addr = <0x4BA00000 0x4BA00000 0x4BA00000
 | 
					 | 
				
			||||||
		0x0 0x0>;
 | 
					 | 
				
			||||||
	qcom,caldb-addr = <0x4CA00000 0x4CA00000 0x0 0x0 0x0>;
 | 
					 | 
				
			||||||
	qcom,caldb-size = <0x200000>;
 | 
					 | 
				
			||||||
	status = "ok";
 | 
						status = "ok";
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&wifi3 {
 | 
					&wifi3 {
 | 
				
			||||||
	/* QCN9000 5G */
 | 
						/* QCN9000 5G */
 | 
				
			||||||
	board_id = <0xa0>;
 | 
						board_id = <0xa0>;
 | 
				
			||||||
	hremote_node = <&qcn9000_pcie0>;
 | 
						status = "ok";
 | 
				
			||||||
#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
					};
 | 
				
			||||||
	/* QCN9000 tgt-mem-mode=2 layout - 17MB
 | 
					
 | 
				
			||||||
	 * +=========+==============+=========+
 | 
					&qfprom {
 | 
				
			||||||
	 * |  Region | Start Offset |   Size  |
 | 
						status = "ok";
 | 
				
			||||||
	 * +---------+--------------+---------+
 | 
					};
 | 
				
			||||||
	 * | HREMOTE |  0x4C900000  |   11MB  |
 | 
					
 | 
				
			||||||
	 * +---------+--------------+---------+
 | 
					&tsens {
 | 
				
			||||||
	 * | M3 Dump |  0x4D400000  |   1MB   |
 | 
					 | 
				
			||||||
	 * +---------+--------------+---------+
 | 
					 | 
				
			||||||
	 * |   ETR   |  0x4D500000  |   1MB   |
 | 
					 | 
				
			||||||
	 * +---------+--------------+---------+
 | 
					 | 
				
			||||||
	 * | Pageable|  0x4D600000  |   4MB   |
 | 
					 | 
				
			||||||
	 * +==================================+
 | 
					 | 
				
			||||||
	 */
 | 
					 | 
				
			||||||
	base-addr = <0x4C900000>;
 | 
					 | 
				
			||||||
	m3-dump-addr = <0x4D400000>;
 | 
					 | 
				
			||||||
	etr-addr = <0x4D500000>;
 | 
					 | 
				
			||||||
	caldb-addr = <0>;
 | 
					 | 
				
			||||||
	pageable-addr = <0x4D600000>;
 | 
					 | 
				
			||||||
	caldb-size = <0>;
 | 
					 | 
				
			||||||
	hremote-size = <0xB00000>;
 | 
					 | 
				
			||||||
	tgt-mem-mode = <0x2>;
 | 
					 | 
				
			||||||
	pageable-size = <0x400000>;
 | 
					 | 
				
			||||||
#elif __IPQ_MEM_PROFILE_512_MB__
 | 
					 | 
				
			||||||
	/* QCN9000 tgt-mem-mode=1 layout - 38MB
 | 
					 | 
				
			||||||
	 * +=========+==============+=========+
 | 
					 | 
				
			||||||
	 * |  Region | Start Offset |   Size  |
 | 
					 | 
				
			||||||
	 * +---------+--------------+---------+
 | 
					 | 
				
			||||||
	 * | HREMOTE |  0x4CC00000  |   20MB  |
 | 
					 | 
				
			||||||
	 * +---------+--------------+---------+
 | 
					 | 
				
			||||||
	 * | M3 Dump |  0x4E000000  |   1MB   |
 | 
					 | 
				
			||||||
	 * +---------+--------------+---------+
 | 
					 | 
				
			||||||
	 * |   ETR   |  0x4E100000  |   1MB   |
 | 
					 | 
				
			||||||
	 * +---------+--------------+---------+
 | 
					 | 
				
			||||||
	 * |  Caldb  |  0x4E200000  |   8MB   |
 | 
					 | 
				
			||||||
	 * +---------+--------------+---------+
 | 
					 | 
				
			||||||
	 * | Pageable|  0x4EA00000  |   8MB   |
 | 
					 | 
				
			||||||
	 * +==================================+
 | 
					 | 
				
			||||||
	 */
 | 
					 | 
				
			||||||
	base-addr = <0x4CC00000>;
 | 
					 | 
				
			||||||
	m3-dump-addr = <0x4E000000>;
 | 
					 | 
				
			||||||
	etr-addr = <0x4E100000>;
 | 
					 | 
				
			||||||
	caldb-addr = <0x4E200000>;
 | 
					 | 
				
			||||||
	pageable-addr = <0x4EA00000>;
 | 
					 | 
				
			||||||
	caldb-size = <0x800000>;
 | 
					 | 
				
			||||||
	hremote-size = <0x1400000>;
 | 
					 | 
				
			||||||
	tgt-mem-mode = <0x1>;
 | 
					 | 
				
			||||||
	pageable-size = <0x800000>;
 | 
					 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
	/* QCN9000 tgt-mem-mode=0 layout - 53MB
 | 
					 | 
				
			||||||
	 * +=========+==============+=========+
 | 
					 | 
				
			||||||
	 * |  Region | Start Offset |   Size  |
 | 
					 | 
				
			||||||
	 * +---------+--------------+---------+
 | 
					 | 
				
			||||||
	 * | HREMOTE |  0x4CC00000  |   35MB  |
 | 
					 | 
				
			||||||
	 * +---------+--------------+---------+
 | 
					 | 
				
			||||||
	 * | M3 Dump |  0x4EF00000  |   1MB   |
 | 
					 | 
				
			||||||
	 * +---------+--------------+---------+
 | 
					 | 
				
			||||||
	 * |   ETR   |  0x4F000000  |   1MB   |
 | 
					 | 
				
			||||||
	 * +---------+--------------+---------+
 | 
					 | 
				
			||||||
	 * |  Caldb  |  0x4F100000  |   8MB   |
 | 
					 | 
				
			||||||
	 * +---------+--------------+---------+
 | 
					 | 
				
			||||||
	 * | Pageable|  0x4F900000  |   8MB   |
 | 
					 | 
				
			||||||
	 * +==================================+
 | 
					 | 
				
			||||||
	 */
 | 
					 | 
				
			||||||
	base-addr = <0x4CC00000>;
 | 
					 | 
				
			||||||
	m3-dump-addr = <0x4EF00000>;
 | 
					 | 
				
			||||||
	etr-addr = <0x4F000000>;
 | 
					 | 
				
			||||||
	caldb-addr = <0x4F100000>;
 | 
					 | 
				
			||||||
	pageable-addr = <0x4F900000>;
 | 
					 | 
				
			||||||
	hremote-size = <0x2300000>;
 | 
					 | 
				
			||||||
	caldb-size = <0x800000>;
 | 
					 | 
				
			||||||
	tgt-mem-mode = <0x0>;
 | 
					 | 
				
			||||||
	pageable-size = <0x800000>;
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
	status = "ok";
 | 
						status = "ok";
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -0,0 +1,812 @@
 | 
				
			|||||||
 | 
					/dts-v1/;
 | 
				
			||||||
 | 
					/* Copyright (c) 2018-2020, 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 "qcom-ipq5018.dtsi"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/ {
 | 
				
			||||||
 | 
						#address-cells = <0x2>;
 | 
				
			||||||
 | 
						#size-cells = <0x2>;
 | 
				
			||||||
 | 
						model = "Liteon WPX8324";
 | 
				
			||||||
 | 
						compatible = "liteon,wpx8324", "qcom,ipq5018-mp03.5-c1", "qcom,ipq5018";
 | 
				
			||||||
 | 
						interrupt-parent = <&intc>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						aliases {
 | 
				
			||||||
 | 
							sdhc1 = &sdhc_1; /* SDC1 eMMC slot */
 | 
				
			||||||
 | 
							serial0 = &blsp1_uart1;
 | 
				
			||||||
 | 
							/*serial1 = &blsp1_uart2;*/
 | 
				
			||||||
 | 
							ethernet0 = "/soc/dp1";
 | 
				
			||||||
 | 
							ethernet1 = "/soc/dp2";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						chosen {
 | 
				
			||||||
 | 
							bootargs = "console=ttyMSM0,115200,n8 rw init=/init";
 | 
				
			||||||
 | 
						#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
 | 
							bootargs-append = " swiotlb=1";
 | 
				
			||||||
 | 
						#else
 | 
				
			||||||
 | 
							bootargs-append = " swiotlb=1 coherent_pool=2M";
 | 
				
			||||||
 | 
						#endif
 | 
				
			||||||
 | 
							stdout-path = "serial0";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						reserved-memory {
 | 
				
			||||||
 | 
						#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
 | 
						/*                   256 MB Profile
 | 
				
			||||||
 | 
						 * +==========+==============+=========================+
 | 
				
			||||||
 | 
						 * |          |              |                         |
 | 
				
			||||||
 | 
						 * |  Region  | Start Offset |          Size           |
 | 
				
			||||||
 | 
						 * |          |              |                         |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |    NSS   |  0x40000000  |           8MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |   Linux  |  0x40800000  | Depends on total memory |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |   uboot  |  0x4A600000  |           4MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |    SBL   |  0x4AA00000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |   smem   |  0x4AB00000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |    TZ    |  0x4AC00000  |           4MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |    Q6    |              |                         |
 | 
				
			||||||
 | 
						 * |   code/  |  0x4B000000  |          20MB           |
 | 
				
			||||||
 | 
						 * |   data   |              |                         |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |  IPQ5018 |              |                         |
 | 
				
			||||||
 | 
						 * |   data   |  0x4C400000  |          13MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |  IPQ5018 |              |                         |
 | 
				
			||||||
 | 
						 * |  M3 Dump |  0x4D100000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |  IPQ5018 |              |                         |
 | 
				
			||||||
 | 
						 * |   QDSS   |  0x4D200000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_1|              |                         |
 | 
				
			||||||
 | 
						 * |   data   |  0x4D300000  |          15MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_1|              |                         |
 | 
				
			||||||
 | 
						 * |  M3 Dump |  0x4E200000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_1|              |                         |
 | 
				
			||||||
 | 
						 * |   QDSS   |  0x4E300000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_2|              |                         |
 | 
				
			||||||
 | 
						 * |   data   |  0x4E400000  |          15MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_2|              |                         |
 | 
				
			||||||
 | 
						 * |  M3 Dump |  0x4F300000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_2|              |                         |
 | 
				
			||||||
 | 
						 * |   QDSS   |  0x4F400000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |                                                   |
 | 
				
			||||||
 | 
						 * |            Rest of the memory for Linux           |
 | 
				
			||||||
 | 
						 * |                                                   |
 | 
				
			||||||
 | 
						 * +===================================================+
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
							q6_mem_regions: q6_mem_regions@4B000000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4B000000 0x0 0x4500000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_code_data: q6_code_data@4B000000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4B000000 0x0 0x1400000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_ipq5018_data: q6_ipq5018_data@4C400000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4C400000 0x0 0xD00000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							m3_dump: m3_dump@4D100000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4D100000 0x0 0x100000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_etr_region: q6_etr_dump@4D200000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4D200000 0x0 0x100000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_qcn6122_data1: q6_qcn6122_data1@4D300000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4D300000 0x0 0xF00000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							m3_dump_qcn6122_1: m3_dump_qcn6122_1@4E200000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4E200000 0x0 0x100000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_qcn6122_etr_1: q6_qcn6122_etr_1@4E300000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4E300000 0x0 0x100000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_qcn6122_data2: q6_qcn6122_data2@4E400000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4E400000 0x0 0xF00000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							m3_dump_qcn6122_2: m3_dump_qcn6122_2@4F300000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4F300000 0x0 0x100000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_qcn6122_etr_2: q6_qcn6122_etr_2@4F400000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4F400000 0x0 0x100000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						#else
 | 
				
			||||||
 | 
						/*                 512MB/1GB Profiles
 | 
				
			||||||
 | 
						 * +==========+==============+=========================+
 | 
				
			||||||
 | 
						 * |          |              |                         |
 | 
				
			||||||
 | 
						 * |  Region  | Start Offset |          Size           |
 | 
				
			||||||
 | 
						 * |          |              |                         |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |    NSS   |  0x40000000  |          16MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |   Linux  |  0x41000000  | Depends on total memory |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |   uboot  |  0x4A600000  |           4MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |    SBL   |  0x4AA00000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |   smem   |  0x4AB00000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |    TZ    |  0x4AC00000  |           4MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |    Q6    |              |                         |
 | 
				
			||||||
 | 
						 * |   code/  |  0x4B000000  |          20MB           |
 | 
				
			||||||
 | 
						 * |   data   |              |                         |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |  IPQ5018 |              |                         |
 | 
				
			||||||
 | 
						 * |   data   |  0x4C400000  |          14MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |  IPQ5018 |              |                         |
 | 
				
			||||||
 | 
						 * |  M3 Dump |  0x4D200000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |  IPQ5018 |              |                         |
 | 
				
			||||||
 | 
						 * |   QDSS   |  0x4D300000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |  IPQ5018 |              |                         |
 | 
				
			||||||
 | 
						 * |  Caldb   |  0x4D400000  |           2MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_1|              |                         |
 | 
				
			||||||
 | 
						 * |   data   |  0x4D600000  |          16MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_1|              |                         |
 | 
				
			||||||
 | 
						 * |  M3 Dump |  0x4E600000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_1|              |                         |
 | 
				
			||||||
 | 
						 * |   QDSS   |  0x4E700000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_1|              |                         |
 | 
				
			||||||
 | 
						 * |  Caldb   |  0x4E800000  |           5MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_2|              |                         |
 | 
				
			||||||
 | 
						 * |   data   |  0x4ED00000  |          16MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_2|              |                         |
 | 
				
			||||||
 | 
						 * |  M3 Dump |  0x4FD00000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_2|              |                         |
 | 
				
			||||||
 | 
						 * |   QDSS   |  0x4FE00000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_2|              |                         |
 | 
				
			||||||
 | 
						 * |  Caldb   |  0x4FF00000  |           5MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |                                                   |
 | 
				
			||||||
 | 
						 * |            Rest of the memory for Linux           |
 | 
				
			||||||
 | 
						 * |                                                   |
 | 
				
			||||||
 | 
						 * +===================================================+
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
							q6_mem_regions: q6_mem_regions@4B000000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4B000000 0x0 0x5400000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_code_data: q6_code_data@4B000000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4B000000 0x0 01400000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_ipq5018_data: q6_ipq5018_data@4C400000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4C400000 0x0 0xE00000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							m3_dump: m3_dump@4D200000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4D200000 0x0 0x100000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_etr_region: q6_etr_dump@4D300000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4D300000 0x0 0x100000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_caldb_region: q6_caldb_region@4D400000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4D400000 0x0 0x200000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_qcn6122_data1: q6_qcn6122_data1@4D600000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4D600000 0x0 0x1000000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							m3_dump_qcn6122_1: m3_dump_qcn6122_1@4E600000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4E600000 0x0 0x100000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_qcn6122_etr_1: q6_qcn6122_etr_1@4E700000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4E700000 0x0 0x100000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_qcn6122_caldb_1: q6_qcn6122_caldb_1@4E800000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4E800000 0x0 0x500000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_qcn6122_data2: q6_qcn6122_data2@4E900000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4ED00000 0x0 0x1000000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							m3_dump_qcn6122_2: m3_dump_qcn6122_2@4FD00000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4FD00000 0x0 0x100000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_qcn6122_etr_2: q6_qcn6122_etr_2@4FE00000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4FE00000 0x0 0x100000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_qcn6122_caldb_2: q6_qcn6122_caldb_2@4FF00000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4FF00000 0x0 0x500000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						#endif
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						soc {
 | 
				
			||||||
 | 
							serial@78af000 {
 | 
				
			||||||
 | 
								status = "ok";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							qpic_bam: dma@7984000{
 | 
				
			||||||
 | 
								status = "ok";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							nand: qpic-nand@79b0000 {
 | 
				
			||||||
 | 
								pinctrl-0 = <&qspi_nand_pins>;
 | 
				
			||||||
 | 
								pinctrl-names = "default";
 | 
				
			||||||
 | 
								status = "ok";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							spi_0: spi@78b5000 { /* BLSP1 QUP0 */
 | 
				
			||||||
 | 
								pinctrl-0 = <&blsp0_spi_pins>;
 | 
				
			||||||
 | 
								pinctrl-names = "default";
 | 
				
			||||||
 | 
								cs-select = <0>;
 | 
				
			||||||
 | 
								status = "ok";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								m25p80@0 {
 | 
				
			||||||
 | 
									#address-cells = <1>;
 | 
				
			||||||
 | 
									#size-cells = <1>;
 | 
				
			||||||
 | 
									reg = <0>;
 | 
				
			||||||
 | 
									compatible = "n25q128a11";
 | 
				
			||||||
 | 
									linux,modalias = "m25p80", "n25q128a11";
 | 
				
			||||||
 | 
									spi-max-frequency = <50000000>;
 | 
				
			||||||
 | 
									use-default-sizes;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							spi_2: spi@78b7000 { /* BLSP1 QUP2 */
 | 
				
			||||||
 | 
								pinctrl-0 = <&blsp2_spi0_pins>;
 | 
				
			||||||
 | 
								pinctrl-names = "default";
 | 
				
			||||||
 | 
								cs-select = <0>;
 | 
				
			||||||
 | 
								status = "ok";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								tpm0: slb9670@0 {
 | 
				
			||||||
 | 
									#address-cells = <1>;
 | 
				
			||||||
 | 
									#size-cells = <1>;
 | 
				
			||||||
 | 
									reg = <1>;	/* CE1 */
 | 
				
			||||||
 | 
									compatible = "infineon,slb9670";
 | 
				
			||||||
 | 
									linux,modalias = "slb9670", "slb9670a11";
 | 
				
			||||||
 | 
									spi-max-frequency = <50000000>;
 | 
				
			||||||
 | 
									use-default-sizes;
 | 
				
			||||||
 | 
					 			};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							mdio0: mdio@88000 {
 | 
				
			||||||
 | 
								status = "ok";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								ethernet-phy@0 {
 | 
				
			||||||
 | 
									reg = <7>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							mdio1: mdio@90000 {
 | 
				
			||||||
 | 
								status = "ok";
 | 
				
			||||||
 | 
								pinctrl-0 = <&mdio1_pins>;
 | 
				
			||||||
 | 
								pinctrl-names = "default";
 | 
				
			||||||
 | 
								phy-reset-gpio = <&tlmm 26 0>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								ethernet-phy@0 {
 | 
				
			||||||
 | 
									reg = <28>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							ess-instance {
 | 
				
			||||||
 | 
								num_devices = <0x1>;
 | 
				
			||||||
 | 
								ess-switch@0x39c00000 {
 | 
				
			||||||
 | 
									switch_mac_mode = <0xf>; /* mac mode for uniphy instance*/
 | 
				
			||||||
 | 
									cmnblk_clk = "internal_96MHz"; /* cmnblk clk*/
 | 
				
			||||||
 | 
									qcom,port_phyinfo {
 | 
				
			||||||
 | 
										port@0 {
 | 
				
			||||||
 | 
											port_id = <1>;
 | 
				
			||||||
 | 
											phy_address = <7>;
 | 
				
			||||||
 | 
											mdiobus = <&mdio0>;
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
										port@1 {
 | 
				
			||||||
 | 
											port_id = <2>;
 | 
				
			||||||
 | 
											phy_address = <0x1c>;
 | 
				
			||||||
 | 
											mdiobus = <&mdio1>;
 | 
				
			||||||
 | 
											port_mac_sel = "QGMAC_PORT";
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
									led_source@0 {
 | 
				
			||||||
 | 
										source = <0>;
 | 
				
			||||||
 | 
										mode = "normal";
 | 
				
			||||||
 | 
										speed = "all";
 | 
				
			||||||
 | 
										blink_en = "enable";
 | 
				
			||||||
 | 
										active = "high";
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							wifi0: wifi@c000000 {
 | 
				
			||||||
 | 
								status = "ok";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							dp1 {
 | 
				
			||||||
 | 
								device_type = "network";
 | 
				
			||||||
 | 
								compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
								clocks = <&gcc GCC_SNOC_GMAC0_AXI_CLK>;
 | 
				
			||||||
 | 
								clock-names = "nss-snoc-gmac-axi-clk";
 | 
				
			||||||
 | 
								qcom,id = <1>;
 | 
				
			||||||
 | 
								reg = <0x39C00000 0x10000>;
 | 
				
			||||||
 | 
								interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
 | 
				
			||||||
 | 
								qcom,mactype = <2>;
 | 
				
			||||||
 | 
								qcom,link-poll = <1>;
 | 
				
			||||||
 | 
								qcom,phy-mdio-addr = <7>;
 | 
				
			||||||
 | 
								mdio-bus = <&mdio0>;
 | 
				
			||||||
 | 
								local-mac-address = [000000000000];
 | 
				
			||||||
 | 
								phy-mode = "sgmii";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							dp2 {
 | 
				
			||||||
 | 
								device_type = "network";
 | 
				
			||||||
 | 
								compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
								clocks = <&gcc GCC_SNOC_GMAC1_AXI_CLK>;
 | 
				
			||||||
 | 
								clock-names = "nss-snoc-gmac-axi-clk";
 | 
				
			||||||
 | 
								qcom,id = <2>;
 | 
				
			||||||
 | 
								reg = <0x39D00000 0x10000>;
 | 
				
			||||||
 | 
								interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
 | 
				
			||||||
 | 
								qcom,mactype = <2>;
 | 
				
			||||||
 | 
								qcom,link-poll = <1>;
 | 
				
			||||||
 | 
								qcom,phy-mdio-addr = <28>;
 | 
				
			||||||
 | 
								mdio-bus = <&mdio1>;
 | 
				
			||||||
 | 
								local-mac-address = [000000000000];
 | 
				
			||||||
 | 
								phy-mode = "sgmii";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							qcom,test@0 {
 | 
				
			||||||
 | 
								status = "ok";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						thermal-zones {
 | 
				
			||||||
 | 
							status = "ok";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
						leds {
 | 
				
			||||||
 | 
							compatible = "gpio-leds";
 | 
				
			||||||
 | 
							pinctrl-0 = <&leds_pins>;
 | 
				
			||||||
 | 
							pinctrl-names = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led_blue: led@19 {
 | 
				
			||||||
 | 
								label = "blue:uplink";
 | 
				
			||||||
 | 
								gpios = <&tlmm 19 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
								default-state = "on";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							led_orange: led@18 {
 | 
				
			||||||
 | 
								label = "orange:wifi2";
 | 
				
			||||||
 | 
								gpios = <&tlmm 18 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
								default-state = "on";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							led_green: led@39 {
 | 
				
			||||||
 | 
								label = "green:wifi5";
 | 
				
			||||||
 | 
								gpios = <&tlmm 39 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
								default-state = "on";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&tlmm {
 | 
				
			||||||
 | 
						pinctrl-0 = <&blsp0_uart_pins &phy_led_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						leds_pins: leds_pins {
 | 
				
			||||||
 | 
							led_blue {
 | 
				
			||||||
 | 
								pins = "gpio19";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							led_orange {
 | 
				
			||||||
 | 
								pins = "gpio18";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							led_green {
 | 
				
			||||||
 | 
								pins = "gpio39";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
						blsp0_uart_pins: uart_pins {
 | 
				
			||||||
 | 
							blsp0_uart_rx_tx {
 | 
				
			||||||
 | 
								pins = "gpio20", "gpio21";
 | 
				
			||||||
 | 
								function = "blsp0_uart0";
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						blsp0_spi_pins: blsp0_spi_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio10", "gpio11", "gpio12", "gpio13";
 | 
				
			||||||
 | 
								function = "blsp0_spi";
 | 
				
			||||||
 | 
								drive-strength = <2>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						blsp2_spi0_pins: blsp2_spi0_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio31", "gpio32", "gpio33", "gpio34";
 | 
				
			||||||
 | 
								function = "blsp2_spi0";
 | 
				
			||||||
 | 
								drive-strength = <2>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						qspi_nand_pins: qspi_nand_pins {
 | 
				
			||||||
 | 
							qspi_clock {
 | 
				
			||||||
 | 
								pins = "gpio9";
 | 
				
			||||||
 | 
								function = "qspi_clk";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							qspi_cs {
 | 
				
			||||||
 | 
								pins = "gpio8";
 | 
				
			||||||
 | 
								function = "qspi_cs";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							qspi_data_0 {
 | 
				
			||||||
 | 
								pins = "gpio7";
 | 
				
			||||||
 | 
								function = "qspi0";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							qspi_data_1 {
 | 
				
			||||||
 | 
								pins = "gpio6";
 | 
				
			||||||
 | 
								function = "qspi1";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							qspi_data_2 {
 | 
				
			||||||
 | 
								pins = "gpio5";
 | 
				
			||||||
 | 
								function = "qspi2";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							qspi_data_3 {
 | 
				
			||||||
 | 
								pins = "gpio4";
 | 
				
			||||||
 | 
								function = "qspi3";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						mdio1_pins: mdio_pinmux {
 | 
				
			||||||
 | 
							mux_0 {
 | 
				
			||||||
 | 
								pins = "gpio36";
 | 
				
			||||||
 | 
								function = "mdc";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							mux_1 {
 | 
				
			||||||
 | 
								pins = "gpio37";
 | 
				
			||||||
 | 
								function = "mdio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						phy_led_pins: phy_led_pins {
 | 
				
			||||||
 | 
							gephy_led_pin {
 | 
				
			||||||
 | 
								pins = "gpio18", "gpio19", "gpio39";
 | 
				
			||||||
 | 
								/* function = "led0"; */
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						i2c_pins: i2c_pins {
 | 
				
			||||||
 | 
							i2c_scl {
 | 
				
			||||||
 | 
								pins = "gpio25";
 | 
				
			||||||
 | 
								function = "blsp2_i2c1";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							i2c_sda {
 | 
				
			||||||
 | 
								pins = "gpio26";
 | 
				
			||||||
 | 
								function = "blsp2_i2c1";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						button_pins: button_pins {
 | 
				
			||||||
 | 
							wps_button {
 | 
				
			||||||
 | 
								pins = "gpio29";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&soc {
 | 
				
			||||||
 | 
						gpio_keys {
 | 
				
			||||||
 | 
							compatible = "gpio-keys";
 | 
				
			||||||
 | 
							pinctrl-0 = <&button_pins>;
 | 
				
			||||||
 | 
							pinctrl-names = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							button@1 {
 | 
				
			||||||
 | 
								label = "wps";
 | 
				
			||||||
 | 
								linux,code = <KEY_WPS_BUTTON>;
 | 
				
			||||||
 | 
								gpios = <&tlmm 29 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
 | 
								linux,input-type = <1>;
 | 
				
			||||||
 | 
								debounce-interval = <60>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&usb3 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
						device-power-gpio = <&tlmm 28 0>;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&eud {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie_x1 {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
						perst-gpio = <&tlmm 18 1>;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie_x2 {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
						perst-gpio = <&tlmm 15 1>;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&dwc_0 {
 | 
				
			||||||
 | 
						/delete-property/ #phy-cells;
 | 
				
			||||||
 | 
						/delete-property/ phys;
 | 
				
			||||||
 | 
						/delete-property/ phy-names;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&hs_m31phy_0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie_x1phy {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie_x2phy {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie_x1_rp {
 | 
				
			||||||
 | 
					        status = "disabled";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						mhi_0: qcom,mhi@0 {
 | 
				
			||||||
 | 
							reg = <0 0 0 0 0 >;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie_x2_rp {
 | 
				
			||||||
 | 
					        status = "disabled";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						mhi_1: qcom,mhi@1 {
 | 
				
			||||||
 | 
							reg = <0 0 0 0 0 >;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qfprom {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&tsens {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qcom_q6v5_wcss {
 | 
				
			||||||
 | 
						qcom,multipd_arch;
 | 
				
			||||||
 | 
						memory-region = <&q6_mem_regions>;
 | 
				
			||||||
 | 
						qcom,share_bootargs;
 | 
				
			||||||
 | 
						qcom,bootargs_smem = <507>;
 | 
				
			||||||
 | 
						boot-args = <0x1 0x4 0x3 0x0F 0x0 0x0>,
 | 
				
			||||||
 | 
								<0x2 0x4 0x2 0x12 0x0 0x0>;
 | 
				
			||||||
 | 
						/* IPQ5018 */
 | 
				
			||||||
 | 
						q6v5_wcss_userpd1 {
 | 
				
			||||||
 | 
							m3_firmware = "IPQ5018/m3_fw.mdt";
 | 
				
			||||||
 | 
							interrupts-extended = <&wcss_smp2p_in 8 0>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_in 9 0>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_in 12 0>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_in 11 0>;
 | 
				
			||||||
 | 
							interrupt-names ="fatal",
 | 
				
			||||||
 | 
								"ready",
 | 
				
			||||||
 | 
								"spawn_ack",
 | 
				
			||||||
 | 
								"stop-ack";
 | 
				
			||||||
 | 
							qcom,smem-states = <&wcss_smp2p_out 8>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_out 9>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_out 10>;
 | 
				
			||||||
 | 
							qcom,smem-state-names = "shutdown",
 | 
				
			||||||
 | 
								"stop",
 | 
				
			||||||
 | 
								"spawn";
 | 
				
			||||||
 | 
							qca,asid = <1>;
 | 
				
			||||||
 | 
							qca,auto-restart;
 | 
				
			||||||
 | 
							qca,int_radio;
 | 
				
			||||||
 | 
							#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
 | 
							memory-region = <&q6_ipq5018_data>, <&m3_dump>,
 | 
				
			||||||
 | 
									<&q6_etr_region>;
 | 
				
			||||||
 | 
							#else
 | 
				
			||||||
 | 
							memory-region = <&q6_ipq5018_data>, <&m3_dump>,
 | 
				
			||||||
 | 
									<&q6_etr_region>, <&q6_caldb_region>;
 | 
				
			||||||
 | 
							#endif
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* QCN6122 6G */
 | 
				
			||||||
 | 
						q6v5_wcss_userpd2 {
 | 
				
			||||||
 | 
							m3_firmware = "qcn6122/m3_fw.mdt";
 | 
				
			||||||
 | 
							interrupts-extended = <&wcss_smp2p_in 16 0>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_in 17 0>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_in 20 0>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_in 19 0>;
 | 
				
			||||||
 | 
							interrupt-names ="fatal",
 | 
				
			||||||
 | 
								"ready",
 | 
				
			||||||
 | 
								"spawn_ack",
 | 
				
			||||||
 | 
								"stop-ack";
 | 
				
			||||||
 | 
							qcom,smem-states = <&wcss_smp2p_out 16>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_out 17>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_out 18>;
 | 
				
			||||||
 | 
							qcom,smem-state-names = "shutdown",
 | 
				
			||||||
 | 
								"stop",
 | 
				
			||||||
 | 
								"spawn";
 | 
				
			||||||
 | 
							qca,asid = <2>;
 | 
				
			||||||
 | 
							qca,auto-restart;
 | 
				
			||||||
 | 
							#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
 | 
							memory-region = <&q6_qcn6122_data1>, <&m3_dump_qcn6122_1>,
 | 
				
			||||||
 | 
									<&q6_qcn6122_etr_1>;
 | 
				
			||||||
 | 
							#else
 | 
				
			||||||
 | 
							memory-region = <&q6_qcn6122_data1>, <&m3_dump_qcn6122_1>,
 | 
				
			||||||
 | 
									<&q6_qcn6122_etr_1>, <&q6_qcn6122_caldb_1>;
 | 
				
			||||||
 | 
							#endif
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* QCN6122 5G */
 | 
				
			||||||
 | 
						q6v5_wcss_userpd3 {
 | 
				
			||||||
 | 
							m3_firmware = "qcn6122/m3_fw.mdt";
 | 
				
			||||||
 | 
							interrupts-extended = <&wcss_smp2p_in 24 0>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_in 25 0>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_in 28 0>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_in 27 0>;
 | 
				
			||||||
 | 
							interrupt-names ="fatal",
 | 
				
			||||||
 | 
								"ready",
 | 
				
			||||||
 | 
								"spawn_ack",
 | 
				
			||||||
 | 
								"stop-ack";
 | 
				
			||||||
 | 
							qcom,smem-states = <&wcss_smp2p_out 24>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_out 25>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_out 26>;
 | 
				
			||||||
 | 
							qcom,smem-state-names = "shutdown",
 | 
				
			||||||
 | 
								"stop",
 | 
				
			||||||
 | 
								"spawn";
 | 
				
			||||||
 | 
							qca,asid = <3>;
 | 
				
			||||||
 | 
							qca,auto-restart;
 | 
				
			||||||
 | 
							#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
 | 
							memory-region = <&q6_qcn6122_data2>, <&m3_dump_qcn6122_2>,
 | 
				
			||||||
 | 
									<&q6_qcn6122_etr_2>;
 | 
				
			||||||
 | 
							#else
 | 
				
			||||||
 | 
							memory-region = <&q6_qcn6122_data2>, <&m3_dump_qcn6122_2>,
 | 
				
			||||||
 | 
									<&q6_qcn6122_etr_2>, <&q6_qcn6122_caldb_2>;
 | 
				
			||||||
 | 
							#endif
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qgic_msi_0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qgic_msi_1 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&wifi0 {
 | 
				
			||||||
 | 
						/* IPQ5018 */
 | 
				
			||||||
 | 
						qcom,multipd_arch;
 | 
				
			||||||
 | 
						qcom,userpd-subsys-name = "q6v5_wcss_userpd1";
 | 
				
			||||||
 | 
					#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
 | 
						qcom,tgt-mem-mode = <2>;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
						qcom,tgt-mem-mode = <1>;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
						qcom,board_id = <0x24>;
 | 
				
			||||||
 | 
						qcom,bdf-addr = <0x4C400000 0x4C400000 0x4C400000 0x0 0x0>;
 | 
				
			||||||
 | 
					#ifdef __CNSS2__
 | 
				
			||||||
 | 
						qcom,caldb-addr = <0x4D400000 0x4D400000 0 0 0>;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
						qcom,caldb-addr = <0x4D400000>;
 | 
				
			||||||
 | 
						m3-dump-addr = <0x4D200000>;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
						qcom,caldb-size = <0x200000>;
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&wifi1 {
 | 
				
			||||||
 | 
						/* QCN6122 5G */
 | 
				
			||||||
 | 
						qcom,multipd_arch;
 | 
				
			||||||
 | 
						qcom,userpd-subsys-name = "q6v5_wcss_userpd3";
 | 
				
			||||||
 | 
					#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
 | 
						qcom,tgt-mem-mode = <2>;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
						qcom,tgt-mem-mode = <1>;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
						qcom,board_id = <0x60>;
 | 
				
			||||||
 | 
						qcom,bdf-addr = <0x4ED00000 0x4ED00000 0x4E400000 0x0 0x0>;
 | 
				
			||||||
 | 
					#ifdef __CNSS2__
 | 
				
			||||||
 | 
						qcom,caldb-addr = <0x4FF00000 0x4FF00000 0 0 0>;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
						qcom,caldb-addr = <0x4FF00000>;
 | 
				
			||||||
 | 
						m3-dump-addr = <0x4FD00000>;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
						qcom,caldb-size = <0x500000>;
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
@@ -0,0 +1,891 @@
 | 
				
			|||||||
 | 
					/dts-v1/;
 | 
				
			||||||
 | 
					/* Copyright (c) 2018-2020, 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 "qcom-ipq5018.dtsi"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/ {
 | 
				
			||||||
 | 
						#address-cells = <0x2>;
 | 
				
			||||||
 | 
						#size-cells = <0x2>;
 | 
				
			||||||
 | 
						model = "MUXI AP3220L";
 | 
				
			||||||
 | 
						compatible = "muxi,ap3220l", "qcom,ipq5018-mp03.5-c1", "qcom,ipq5018";
 | 
				
			||||||
 | 
						interrupt-parent = <&intc>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						aliases {
 | 
				
			||||||
 | 
							serial0 = &blsp1_uart1;
 | 
				
			||||||
 | 
							serial1 = &blsp1_uart2;
 | 
				
			||||||
 | 
							ethernet0 = "/soc/dp1";
 | 
				
			||||||
 | 
							ethernet1 = "/soc/dp2";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led-boot = &led_power;
 | 
				
			||||||
 | 
							led-failsafe = &led_power;
 | 
				
			||||||
 | 
							led-running = &led_power;
 | 
				
			||||||
 | 
							led-upgrade = &led_power;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						chosen {
 | 
				
			||||||
 | 
							bootargs = "console=ttyMSM0,115200,n8 rw init=/init";
 | 
				
			||||||
 | 
						#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
 | 
							bootargs-append = " swiotlb=1";
 | 
				
			||||||
 | 
						#else
 | 
				
			||||||
 | 
							bootargs-append = " swiotlb=1 coherent_pool=2M";
 | 
				
			||||||
 | 
						#endif
 | 
				
			||||||
 | 
							stdout-path = "serial0";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						reserved-memory {
 | 
				
			||||||
 | 
						#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
 | 
						/*                   256 MB Profile
 | 
				
			||||||
 | 
						 * +==========+==============+=========================+
 | 
				
			||||||
 | 
						 * |          |              |                         |
 | 
				
			||||||
 | 
						 * |  Region  | Start Offset |          Size           |
 | 
				
			||||||
 | 
						 * |          |              |                         |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |    NSS   |  0x40000000  |           8MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |   Linux  |  0x40800000  | Depends on total memory |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |   uboot  |  0x4A600000  |           4MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |    SBL   |  0x4AA00000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |   smem   |  0x4AB00000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |    TZ    |  0x4AC00000  |           4MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |    Q6    |              |                         |
 | 
				
			||||||
 | 
						 * |   code/  |  0x4B000000  |          20MB           |
 | 
				
			||||||
 | 
						 * |   data   |              |                         |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |  IPQ5018 |              |                         |
 | 
				
			||||||
 | 
						 * |   data   |  0x4C400000  |          13MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |  IPQ5018 |              |                         |
 | 
				
			||||||
 | 
						 * |  M3 Dump |  0x4D100000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |  IPQ5018 |              |                         |
 | 
				
			||||||
 | 
						 * |   QDSS   |  0x4D200000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_1|              |                         |
 | 
				
			||||||
 | 
						 * |   data   |  0x4D300000  |          15MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_1|              |                         |
 | 
				
			||||||
 | 
						 * |  M3 Dump |  0x4E200000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_1|              |                         |
 | 
				
			||||||
 | 
						 * |   QDSS   |  0x4E300000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_2|              |                         |
 | 
				
			||||||
 | 
						 * |   data   |  0x4E400000  |          15MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_2|              |                         |
 | 
				
			||||||
 | 
						 * |  M3 Dump |  0x4F300000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_2|              |                         |
 | 
				
			||||||
 | 
						 * |   QDSS   |  0x4F400000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |                                                   |
 | 
				
			||||||
 | 
						 * |            Rest of the memory for Linux           |
 | 
				
			||||||
 | 
						 * |                                                   |
 | 
				
			||||||
 | 
						 * +===================================================+
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
							q6_mem_regions: q6_mem_regions@4B000000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4B000000 0x0 0x4500000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_code_data: q6_code_data@4B000000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4B000000 0x0 0x1400000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_ipq5018_data: q6_ipq5018_data@4C400000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4C400000 0x0 0xD00000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							m3_dump: m3_dump@4D100000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4D100000 0x0 0x100000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_etr_region: q6_etr_dump@4D200000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4D200000 0x0 0x100000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_qcn6122_data1: q6_qcn6122_data1@4D300000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4D300000 0x0 0xF00000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							m3_dump_qcn6122_1: m3_dump_qcn6122_1@4E200000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4E200000 0x0 0x100000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_qcn6122_etr_1: q6_qcn6122_etr_1@4E300000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4E300000 0x0 0x100000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_qcn6122_data2: q6_qcn6122_data2@4E400000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4E400000 0x0 0xF00000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							m3_dump_qcn6122_2: m3_dump_qcn6122_2@4F300000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4F300000 0x0 0x100000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_qcn6122_etr_2: q6_qcn6122_etr_2@4F400000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4F400000 0x0 0x100000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						#else
 | 
				
			||||||
 | 
						/*                 512MB/1GB Profiles
 | 
				
			||||||
 | 
						 * +==========+==============+=========================+
 | 
				
			||||||
 | 
						 * |          |              |                         |
 | 
				
			||||||
 | 
						 * |  Region  | Start Offset |          Size           |
 | 
				
			||||||
 | 
						 * |          |              |                         |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |    NSS   |  0x40000000  |          16MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |   Linux  |  0x41000000  | Depends on total memory |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |   uboot  |  0x4A600000  |           4MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |    SBL   |  0x4AA00000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |   smem   |  0x4AB00000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |    TZ    |  0x4AC00000  |           4MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |    Q6    |              |                         |
 | 
				
			||||||
 | 
						 * |   code/  |  0x4B000000  |          20MB           |
 | 
				
			||||||
 | 
						 * |   data   |              |                         |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |  IPQ5018 |              |                         |
 | 
				
			||||||
 | 
						 * |   data   |  0x4C400000  |          14MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |  IPQ5018 |              |                         |
 | 
				
			||||||
 | 
						 * |  M3 Dump |  0x4D200000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |  IPQ5018 |              |                         |
 | 
				
			||||||
 | 
						 * |   QDSS   |  0x4D300000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |  IPQ5018 |              |                         |
 | 
				
			||||||
 | 
						 * |  Caldb   |  0x4D400000  |           2MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_1|              |                         |
 | 
				
			||||||
 | 
						 * |   data   |  0x4D600000  |          16MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_1|              |                         |
 | 
				
			||||||
 | 
						 * |  M3 Dump |  0x4E600000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_1|              |                         |
 | 
				
			||||||
 | 
						 * |   QDSS   |  0x4E700000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_1|              |                         |
 | 
				
			||||||
 | 
						 * |  Caldb   |  0x4E800000  |           5MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_2|              |                         |
 | 
				
			||||||
 | 
						 * |   data   |  0x4ED00000  |          16MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_2|              |                         |
 | 
				
			||||||
 | 
						 * |  M3 Dump |  0x4FD00000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_2|              |                         |
 | 
				
			||||||
 | 
						 * |   QDSS   |  0x4FE00000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_2|              |                         |
 | 
				
			||||||
 | 
						 * |  Caldb   |  0x4FF00000  |           5MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |                                                   |
 | 
				
			||||||
 | 
						 * |            Rest of the memory for Linux           |
 | 
				
			||||||
 | 
						 * |                                                   |
 | 
				
			||||||
 | 
						 * +===================================================+
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
							q6_mem_regions: q6_mem_regions@4B000000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4B000000 0x0 0x5400000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_code_data: q6_code_data@4B000000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4B000000 0x0 01400000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_ipq5018_data: q6_ipq5018_data@4C400000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4C400000 0x0 0xE00000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							m3_dump: m3_dump@4D200000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4D200000 0x0 0x100000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_etr_region: q6_etr_dump@4D300000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4D300000 0x0 0x100000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_caldb_region: q6_caldb_region@4D400000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4D400000 0x0 0x200000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_qcn6122_data1: q6_qcn6122_data1@4D600000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4D600000 0x0 0x1000000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							m3_dump_qcn6122_1: m3_dump_qcn6122_1@4E600000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4E600000 0x0 0x100000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_qcn6122_etr_1: q6_qcn6122_etr_1@4E700000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4E700000 0x0 0x100000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_qcn6122_caldb_1: q6_qcn6122_caldb_1@4E800000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4E800000 0x0 0x500000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_qcn6122_data2: q6_qcn6122_data2@4E900000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4ED00000 0x0 0x1000000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							m3_dump_qcn6122_2: m3_dump_qcn6122_2@4FD00000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4FD00000 0x0 0x100000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_qcn6122_etr_2: q6_qcn6122_etr_2@4FE00000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4FE00000 0x0 0x100000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_qcn6122_caldb_2: q6_qcn6122_caldb_2@4FF00000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4FF00000 0x0 0x500000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						#endif
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						soc {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							blsp1_uart1: serial@78af000 {
 | 
				
			||||||
 | 
								pinctrl-0 = <&blsp0_uart_pins>;
 | 
				
			||||||
 | 
								pinctrl-names = "default";
 | 
				
			||||||
 | 
								status = "okay";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							blsp1_uart2: serial@78b0000 {
 | 
				
			||||||
 | 
								pinctrl-0 = <&blsp1_uart_pins>;
 | 
				
			||||||
 | 
								pinctrl-names = "default";
 | 
				
			||||||
 | 
								status = "disabled";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							qpic_bam: dma@7984000{
 | 
				
			||||||
 | 
								status = "ok";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							nand: qpic-nand@79b0000 {
 | 
				
			||||||
 | 
								pinctrl-0 = <&qspi_nand_pins>;
 | 
				
			||||||
 | 
								pinctrl-names = "default";
 | 
				
			||||||
 | 
								status = "ok";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							spi_0: spi@78b5000 { /* BLSP1 QUP0 */
 | 
				
			||||||
 | 
								pinctrl-0 = <&blsp0_spi_pins>;
 | 
				
			||||||
 | 
								pinctrl-names = "default";
 | 
				
			||||||
 | 
								cs-select = <0>;
 | 
				
			||||||
 | 
								status = "ok";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								m25p80@0 {
 | 
				
			||||||
 | 
									#address-cells = <1>;
 | 
				
			||||||
 | 
									#size-cells = <1>;
 | 
				
			||||||
 | 
									reg = <0>;
 | 
				
			||||||
 | 
									compatible = "n25q128a11";
 | 
				
			||||||
 | 
									linux,modalias = "m25p80", "n25q128a11";
 | 
				
			||||||
 | 
									spi-max-frequency = <50000000>;
 | 
				
			||||||
 | 
									use-default-sizes;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							mdio0: mdio@88000 {
 | 
				
			||||||
 | 
								status = "ok";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								ethernet-phy@0 {
 | 
				
			||||||
 | 
									reg = <7>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							mdio1: mdio@90000 {
 | 
				
			||||||
 | 
								status = "ok";
 | 
				
			||||||
 | 
								pinctrl-0 = <&mdio1_pins &phy_pins>;
 | 
				
			||||||
 | 
								pinctrl-names = "default";
 | 
				
			||||||
 | 
								phy-reset-gpio = <&tlmm 39 0>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								ethernet-phy@0 {
 | 
				
			||||||
 | 
									reg = <0>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								ethernet-phy@1 {
 | 
				
			||||||
 | 
									reg = <1>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								ethernet-phy@2 {
 | 
				
			||||||
 | 
									reg = <2>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								ethernet-phy@3 {
 | 
				
			||||||
 | 
									reg = <3>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							ess-instance {
 | 
				
			||||||
 | 
								num_devices = <0x2>;
 | 
				
			||||||
 | 
								ess-switch@0x39c00000 {
 | 
				
			||||||
 | 
									compatible = "qcom,ess-switch-ipq50xx";
 | 
				
			||||||
 | 
									device_id = <0>;
 | 
				
			||||||
 | 
									switch_mac_mode = <0xf>; /* mac mode for uniphy instance*/
 | 
				
			||||||
 | 
									cmnblk_clk = "internal_96MHz"; /* cmnblk clk*/
 | 
				
			||||||
 | 
									qcom,port_phyinfo {
 | 
				
			||||||
 | 
										port@0 {
 | 
				
			||||||
 | 
											port_id = <1>;
 | 
				
			||||||
 | 
											phy_address = <7>;
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
										port@1 {
 | 
				
			||||||
 | 
											port_id = <2>;
 | 
				
			||||||
 | 
											forced-speed = <1000>;
 | 
				
			||||||
 | 
											forced-duplex = <1>;
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
									/*
 | 
				
			||||||
 | 
									led_source@0 {
 | 
				
			||||||
 | 
										source = <0>;
 | 
				
			||||||
 | 
										mode = "normal";
 | 
				
			||||||
 | 
										speed = "all";
 | 
				
			||||||
 | 
										blink_en = "enable";
 | 
				
			||||||
 | 
										active = "high";
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
									*/
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
								ess-switch1@1 {
 | 
				
			||||||
 | 
									compatible = "qcom,ess-switch-qca83xx";
 | 
				
			||||||
 | 
									device_id = <1>;
 | 
				
			||||||
 | 
									switch_access_mode = "mdio";
 | 
				
			||||||
 | 
									mdio-bus = <&mdio1>;
 | 
				
			||||||
 | 
									reset_gpio = <0x27>;
 | 
				
			||||||
 | 
									switch_cpu_bmp = <0x40>;  /* cpu port bitmap */
 | 
				
			||||||
 | 
									switch_lan_bmp = <0x1e>; /* lan port bitmap */
 | 
				
			||||||
 | 
									switch_wan_bmp = <0x0>;  /* wan port bitmap */
 | 
				
			||||||
 | 
									qca,ar8327-initvals = <
 | 
				
			||||||
 | 
											0x00004 0x7600000   /* PAD0_MODE */
 | 
				
			||||||
 | 
											0x00008 0x1000000   /* PAD5_MODE */
 | 
				
			||||||
 | 
											0x0000c 0x80        /* PAD6_MODE */
 | 
				
			||||||
 | 
											0x00010 0x2613a0    /* PORT6 FORCE MODE*/
 | 
				
			||||||
 | 
											0x000e4 0xaa545     /* MAC_POWER_SEL */
 | 
				
			||||||
 | 
											0x000e0 0xc74164de  /* SGMII_CTRL */
 | 
				
			||||||
 | 
											0x0007c 0x4e        /* PORT0_STATUS */
 | 
				
			||||||
 | 
											0x00094 0x4e        /* PORT6_STATUS */
 | 
				
			||||||
 | 
									>;
 | 
				
			||||||
 | 
									qcom,port_phyinfo {
 | 
				
			||||||
 | 
										port@0 {
 | 
				
			||||||
 | 
											port_id = <1>;
 | 
				
			||||||
 | 
											phy_address = <0>;
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
										port@1 {
 | 
				
			||||||
 | 
											port_id = <2>;
 | 
				
			||||||
 | 
											phy_address = <1>;
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
										port@2 {
 | 
				
			||||||
 | 
											port_id = <3>;
 | 
				
			||||||
 | 
											phy_address = <2>;
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
										port@3 {
 | 
				
			||||||
 | 
											port_id = <4>;
 | 
				
			||||||
 | 
											phy_address = <3>;
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							ess-uniphy@98000 {
 | 
				
			||||||
 | 
								status = "disabled";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							dp1 {
 | 
				
			||||||
 | 
								device_type = "network";
 | 
				
			||||||
 | 
								compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
								clocks = <&gcc GCC_SNOC_GMAC0_AXI_CLK>;
 | 
				
			||||||
 | 
								clock-names = "nss-snoc-gmac-axi-clk";
 | 
				
			||||||
 | 
								qcom,id = <1>;
 | 
				
			||||||
 | 
								reg = <0x39C00000 0x10000>;
 | 
				
			||||||
 | 
								interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
 | 
				
			||||||
 | 
								qcom,mactype = <2>;
 | 
				
			||||||
 | 
								qcom,link-poll = <1>;
 | 
				
			||||||
 | 
								qcom,phy-mdio-addr = <7>;
 | 
				
			||||||
 | 
								mdio-bus = <&mdio0>;
 | 
				
			||||||
 | 
								local-mac-address = [000000000000];
 | 
				
			||||||
 | 
								phy-mode = "sgmii";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							dp2 {
 | 
				
			||||||
 | 
								device_type = "network";
 | 
				
			||||||
 | 
								compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
								clocks = <&gcc GCC_SNOC_GMAC1_AXI_CLK>;
 | 
				
			||||||
 | 
								clock-names = "nss-snoc-gmac-axi-clk";
 | 
				
			||||||
 | 
								qcom,id = <2>;
 | 
				
			||||||
 | 
								reg = <0x39D00000 0x10000>;
 | 
				
			||||||
 | 
								interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
 | 
				
			||||||
 | 
								qcom,mactype = <2>;
 | 
				
			||||||
 | 
								qcom,link-poll = <1>;
 | 
				
			||||||
 | 
								qcom,phy-mdio-addr = <3>;
 | 
				
			||||||
 | 
								mdio-bus = <&mdio1>;
 | 
				
			||||||
 | 
								local-mac-address = [000000000000];
 | 
				
			||||||
 | 
								phy-mode = "sgmii";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							qcom,test@0 {
 | 
				
			||||||
 | 
								status = "ok";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						thermal-zones {
 | 
				
			||||||
 | 
							status = "ok";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&tlmm {
 | 
				
			||||||
 | 
						//pinctrl-0 = <&phy_led_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						blsp0_uart_pins: uart_pins {
 | 
				
			||||||
 | 
							blsp0_uart_rx_tx {
 | 
				
			||||||
 | 
								pins = "gpio20", "gpio21";
 | 
				
			||||||
 | 
								function = "blsp0_uart0";
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						blsp1_uart_pins: blsp1_uart_pins {
 | 
				
			||||||
 | 
							blsp1_uart_rx_tx {
 | 
				
			||||||
 | 
								pins = "gpio23", "gpio25";
 | 
				
			||||||
 | 
								function = "blsp1_uart2";
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						blsp0_spi_pins: blsp0_spi_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio10", "gpio11", "gpio12", "gpio13";
 | 
				
			||||||
 | 
								function = "blsp0_spi";
 | 
				
			||||||
 | 
								drive-strength = <2>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						qspi_nand_pins: qspi_nand_pins {
 | 
				
			||||||
 | 
							qspi_clock {
 | 
				
			||||||
 | 
									pins = "gpio9";
 | 
				
			||||||
 | 
									function = "qspi_clk";
 | 
				
			||||||
 | 
									drive-strength = <8>;
 | 
				
			||||||
 | 
									bias-disable;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							qspi_cs {
 | 
				
			||||||
 | 
									pins = "gpio8";
 | 
				
			||||||
 | 
									function = "qspi_cs";
 | 
				
			||||||
 | 
									drive-strength = <8>;
 | 
				
			||||||
 | 
									bias-disable;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							qspi_data_0 {
 | 
				
			||||||
 | 
									pins = "gpio7";
 | 
				
			||||||
 | 
									function = "qspi0";
 | 
				
			||||||
 | 
									drive-strength = <8>;
 | 
				
			||||||
 | 
									bias-disable;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							qspi_data_1 {
 | 
				
			||||||
 | 
									pins = "gpio6";
 | 
				
			||||||
 | 
									function = "qspi1";
 | 
				
			||||||
 | 
									drive-strength = <8>;
 | 
				
			||||||
 | 
									bias-disable;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							qspi_data_2 {
 | 
				
			||||||
 | 
									pins = "gpio5";
 | 
				
			||||||
 | 
									function = "qspi2";
 | 
				
			||||||
 | 
									drive-strength = <8>;
 | 
				
			||||||
 | 
									bias-disable;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							qspi_data_3 {
 | 
				
			||||||
 | 
									pins = "gpio4";
 | 
				
			||||||
 | 
									function = "qspi3";
 | 
				
			||||||
 | 
									drive-strength = <8>;
 | 
				
			||||||
 | 
									bias-disable;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						phy_pins: phy_pins {
 | 
				
			||||||
 | 
							phy_intr {
 | 
				
			||||||
 | 
								pins = "gpio29";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							phy_reset {
 | 
				
			||||||
 | 
								pins = "gpio39";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
								output-low;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						mdio1_pins: mdio_pinmux {
 | 
				
			||||||
 | 
							mux_0 {
 | 
				
			||||||
 | 
								pins = "gpio36";
 | 
				
			||||||
 | 
								function = "mdc";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							mux_1 {
 | 
				
			||||||
 | 
								pins = "gpio37";
 | 
				
			||||||
 | 
								function = "mdio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						phy_led_pins: phy_led_pins {
 | 
				
			||||||
 | 
							gephy_led_pin {
 | 
				
			||||||
 | 
								//pins = "gpio46";
 | 
				
			||||||
 | 
								function = "led0";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						button_pins: button_pins {
 | 
				
			||||||
 | 
							reset_button {
 | 
				
			||||||
 | 
								pins = "gpio32";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						led_pins: led_pins {
 | 
				
			||||||
 | 
							led_pwr {
 | 
				
			||||||
 | 
								pins = "gpio26";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led_2g {
 | 
				
			||||||
 | 
								pins = "gpio31";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led_5g {
 | 
				
			||||||
 | 
								pins = "gpio33";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&soc {
 | 
				
			||||||
 | 
						gpio_keys {
 | 
				
			||||||
 | 
							compatible = "gpio-keys";
 | 
				
			||||||
 | 
							pinctrl-0 = <&button_pins>;
 | 
				
			||||||
 | 
							pinctrl-names = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							button@1 {
 | 
				
			||||||
 | 
								label = "reset_button";
 | 
				
			||||||
 | 
								linux,code = <KEY_RESTART>;
 | 
				
			||||||
 | 
								gpios = <&tlmm 32 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
 | 
								linux,input-type = <1>;
 | 
				
			||||||
 | 
								debounce-interval = <60>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						leds {
 | 
				
			||||||
 | 
							compatible = "gpio-leds";
 | 
				
			||||||
 | 
							pinctrl-0 = <&led_pins>;
 | 
				
			||||||
 | 
							pinctrl-names = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								led_power: led_pwr {
 | 
				
			||||||
 | 
									label = "green:led_pwr";
 | 
				
			||||||
 | 
									gpios = <&tlmm 26 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
									default-state = "on";
 | 
				
			||||||
 | 
									linux,default-trigger = "led_pwr";
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								led_2g {
 | 
				
			||||||
 | 
									label = "green:wifi2";
 | 
				
			||||||
 | 
									gpio = <&tlmm 33 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
									default-state = "off";
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								led_5g {
 | 
				
			||||||
 | 
									label = "green:wifi5";
 | 
				
			||||||
 | 
									gpio = <&tlmm 31 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
									default-state = "off";
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&usb3 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
						device-power-gpio = <&tlmm 30 1>;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&eud {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie_x1 {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
						perst-gpio = <&tlmm 18 1>;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie_x2 {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
						perst-gpio = <&tlmm 15 1>;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&dwc_0 {
 | 
				
			||||||
 | 
						/delete-property/ #phy-cells;
 | 
				
			||||||
 | 
						/delete-property/ phys;
 | 
				
			||||||
 | 
						/delete-property/ phy-names;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&hs_m31phy_0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie_x1phy {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie_x2phy {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie_x1_rp {
 | 
				
			||||||
 | 
					        status = "disabled";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						mhi_0: qcom,mhi@0 {
 | 
				
			||||||
 | 
							reg = <0 0 0 0 0 >;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie_x2_rp {
 | 
				
			||||||
 | 
					        status = "disabled";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						mhi_1: qcom,mhi@1 {
 | 
				
			||||||
 | 
							reg = <0 0 0 0 0 >;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qfprom {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&tsens {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qcom_q6v5_wcss {
 | 
				
			||||||
 | 
						qcom,multipd_arch;
 | 
				
			||||||
 | 
						memory-region = <&q6_mem_regions>;
 | 
				
			||||||
 | 
						qcom,share_bootargs;
 | 
				
			||||||
 | 
						qcom,bootargs_smem = <507>;
 | 
				
			||||||
 | 
						boot-args = <0x2 0x4 0x2 0xF 0x0 0x0>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* IPQ5018 */
 | 
				
			||||||
 | 
						q6v5_wcss_userpd1 {
 | 
				
			||||||
 | 
							m3_firmware = "IPQ5018/m3_fw.mdt";
 | 
				
			||||||
 | 
							interrupts-extended = <&wcss_smp2p_in 8 0>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_in 9 0>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_in 12 0>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_in 11 0>;
 | 
				
			||||||
 | 
							interrupt-names ="fatal",
 | 
				
			||||||
 | 
								"ready",
 | 
				
			||||||
 | 
								"spawn_ack",
 | 
				
			||||||
 | 
								"stop-ack";
 | 
				
			||||||
 | 
							qcom,smem-states = <&wcss_smp2p_out 8>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_out 9>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_out 10>;
 | 
				
			||||||
 | 
							qcom,smem-state-names = "shutdown",
 | 
				
			||||||
 | 
								"stop",
 | 
				
			||||||
 | 
								"spawn";
 | 
				
			||||||
 | 
							qca,asid = <1>;
 | 
				
			||||||
 | 
							qca,auto-restart;
 | 
				
			||||||
 | 
							qca,int_radio;
 | 
				
			||||||
 | 
							#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
 | 
							memory-region = <&q6_ipq5018_data>, <&m3_dump>,
 | 
				
			||||||
 | 
									<&q6_etr_region>;
 | 
				
			||||||
 | 
							#else
 | 
				
			||||||
 | 
							memory-region = <&q6_ipq5018_data>, <&m3_dump>,
 | 
				
			||||||
 | 
									<&q6_etr_region>, <&q6_caldb_region>;
 | 
				
			||||||
 | 
							#endif
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* QCN6122 6G */
 | 
				
			||||||
 | 
						q6v5_wcss_userpd2 {
 | 
				
			||||||
 | 
							m3_firmware = "qcn6122/m3_fw.mdt";
 | 
				
			||||||
 | 
							interrupts-extended = <&wcss_smp2p_in 16 0>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_in 17 0>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_in 20 0>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_in 19 0>;
 | 
				
			||||||
 | 
							interrupt-names ="fatal",
 | 
				
			||||||
 | 
								"ready",
 | 
				
			||||||
 | 
								"spawn_ack",
 | 
				
			||||||
 | 
								"stop-ack";
 | 
				
			||||||
 | 
							qcom,smem-states = <&wcss_smp2p_out 16>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_out 17>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_out 18>;
 | 
				
			||||||
 | 
							qcom,smem-state-names = "shutdown",
 | 
				
			||||||
 | 
								"stop",
 | 
				
			||||||
 | 
								"spawn";
 | 
				
			||||||
 | 
							qca,asid = <2>;
 | 
				
			||||||
 | 
							qca,auto-restart;
 | 
				
			||||||
 | 
							#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
 | 
							memory-region = <&q6_qcn6122_data1>, <&m3_dump_qcn6122_1>,
 | 
				
			||||||
 | 
									<&q6_qcn6122_etr_1>;
 | 
				
			||||||
 | 
							#else
 | 
				
			||||||
 | 
							memory-region = <&q6_qcn6122_data1>, <&m3_dump_qcn6122_1>,
 | 
				
			||||||
 | 
									<&q6_qcn6122_etr_1>, <&q6_qcn6122_caldb_1>;
 | 
				
			||||||
 | 
							#endif
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* QCN6122 5G */
 | 
				
			||||||
 | 
						q6v5_wcss_userpd3 {
 | 
				
			||||||
 | 
							m3_firmware = "qcn6122/m3_fw.mdt";
 | 
				
			||||||
 | 
							interrupts-extended = <&wcss_smp2p_in 24 0>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_in 25 0>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_in 28 0>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_in 27 0>;
 | 
				
			||||||
 | 
							interrupt-names ="fatal",
 | 
				
			||||||
 | 
								"ready",
 | 
				
			||||||
 | 
								"spawn_ack",
 | 
				
			||||||
 | 
								"stop-ack";
 | 
				
			||||||
 | 
							qcom,smem-states = <&wcss_smp2p_out 24>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_out 25>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_out 26>;
 | 
				
			||||||
 | 
							qcom,smem-state-names = "shutdown",
 | 
				
			||||||
 | 
								"stop",
 | 
				
			||||||
 | 
								"spawn";
 | 
				
			||||||
 | 
							qca,asid = <3>;
 | 
				
			||||||
 | 
							qca,auto-restart;
 | 
				
			||||||
 | 
							#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
 | 
							memory-region = <&q6_qcn6122_data2>, <&m3_dump_qcn6122_2>,
 | 
				
			||||||
 | 
									<&q6_qcn6122_etr_2>;
 | 
				
			||||||
 | 
							#else
 | 
				
			||||||
 | 
							memory-region = <&q6_qcn6122_data2>, <&m3_dump_qcn6122_2>,
 | 
				
			||||||
 | 
									<&q6_qcn6122_etr_2>, <&q6_qcn6122_caldb_2>;
 | 
				
			||||||
 | 
							#endif
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qgic_msi_0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qgic_msi_1 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&wifi0 {
 | 
				
			||||||
 | 
						/* IPQ5018 */
 | 
				
			||||||
 | 
						qcom,multipd_arch;
 | 
				
			||||||
 | 
						qcom,userpd-subsys-name = "q6v5_wcss_userpd1";
 | 
				
			||||||
 | 
					#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
 | 
						qcom,tgt-mem-mode = <2>;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
						qcom,tgt-mem-mode = <1>;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
						qcom,board_id = <0x24>;
 | 
				
			||||||
 | 
						qcom,bdf-addr = <0x4C400000 0x4C400000 0x4C400000 0x0 0x0>;
 | 
				
			||||||
 | 
					#ifdef __CNSS2__
 | 
				
			||||||
 | 
						qcom,caldb-addr = <0x4D400000 0x4D400000 0 0 0>;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
						qcom,caldb-addr = <0x4D400000>;
 | 
				
			||||||
 | 
						m3-dump-addr = <0x4D200000>;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
						qcom,caldb-size = <0x200000>;
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&wifi1 {
 | 
				
			||||||
 | 
						/* QCN6122 6G */
 | 
				
			||||||
 | 
						qcom,multipd_arch;
 | 
				
			||||||
 | 
						qcom,userpd-subsys-name = "q6v5_wcss_userpd2";
 | 
				
			||||||
 | 
					#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
 | 
						qcom,tgt-mem-mode = <2>;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
						qcom,tgt-mem-mode = <1>;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
						qcom,board_id = <0x60>;
 | 
				
			||||||
 | 
						qcom,bdf-addr = <0x4D600000 0x4D600000 0x4D300000 0x0 0x0>;
 | 
				
			||||||
 | 
					#ifdef __CNSS2__
 | 
				
			||||||
 | 
						qcom,caldb-addr = <0x4E800000 0x4E800000 0 0 0>;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
						qcom,caldb-addr = <0x4E800000>;
 | 
				
			||||||
 | 
						m3-dump-addr = <0x4E600000>;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
						qcom,caldb-size = <0x500000>;
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&wifi2 {
 | 
				
			||||||
 | 
						/* QCN6122 5G */
 | 
				
			||||||
 | 
						qcom,multipd_arch;
 | 
				
			||||||
 | 
						qcom,userpd-subsys-name = "q6v5_wcss_userpd3";
 | 
				
			||||||
 | 
					#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
 | 
						qcom,tgt-mem-mode = <2>;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
						qcom,tgt-mem-mode = <1>;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
						qcom,board_id = <0x60>;
 | 
				
			||||||
 | 
						qcom,bdf-addr = <0x4ED00000 0x4ED00000 0x4E400000 0x0 0x0>;
 | 
				
			||||||
 | 
					#ifdef __CNSS2__
 | 
				
			||||||
 | 
						qcom,caldb-addr = <0x4FF00000 0x4FF00000 0 0 0>;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
						qcom,caldb-addr = <0x4FF00000>;
 | 
				
			||||||
 | 
						m3-dump-addr = <0x4FD00000>;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
						qcom,caldb-size = <0x500000>;
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
							
								
								
									
										886
									
								
								feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-q14.dts
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										886
									
								
								feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-q14.dts
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,886 @@
 | 
				
			|||||||
 | 
					/dts-v1/;
 | 
				
			||||||
 | 
					/* Copyright (c) 2018-2020, 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 "qcom-ipq5018.dtsi"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/ {
 | 
				
			||||||
 | 
						#address-cells = <0x2>;
 | 
				
			||||||
 | 
						#size-cells = <0x2>;
 | 
				
			||||||
 | 
						model = "Motorola Q14";
 | 
				
			||||||
 | 
						compatible = "motorola,q14", "qcom,ipq5018-mp03.5-c1", "qcom,ipq5018";
 | 
				
			||||||
 | 
						interrupt-parent = <&intc>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						aliases {
 | 
				
			||||||
 | 
							sdhc1 = &sdhc_1; /* SDC1 eMMC slot */
 | 
				
			||||||
 | 
							serial0 = &blsp1_uart1;
 | 
				
			||||||
 | 
							serial1 = &blsp1_uart2;
 | 
				
			||||||
 | 
							ethernet0 = "/soc/dp1";
 | 
				
			||||||
 | 
							ethernet1 = "/soc/dp2";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						chosen {
 | 
				
			||||||
 | 
							bootargs = "console=ttyMSM0,115200,n8 rw init=/init";
 | 
				
			||||||
 | 
						#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
 | 
							bootargs-append = " swiotlb=1";
 | 
				
			||||||
 | 
						#else
 | 
				
			||||||
 | 
							bootargs-append = " swiotlb=1 coherent_pool=2M";
 | 
				
			||||||
 | 
						#endif
 | 
				
			||||||
 | 
							stdout-path = "serial0";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						reserved-memory {
 | 
				
			||||||
 | 
						#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
 | 
						/*                   256 MB Profile
 | 
				
			||||||
 | 
						 * +==========+==============+=========================+
 | 
				
			||||||
 | 
						 * |          |              |                         |
 | 
				
			||||||
 | 
						 * |  Region  | Start Offset |          Size           |
 | 
				
			||||||
 | 
						 * |          |              |                         |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |    NSS   |  0x40000000  |           8MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |   Linux  |  0x40800000  | Depends on total memory |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |   uboot  |  0x4A600000  |           4MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |    SBL   |  0x4AA00000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |   smem   |  0x4AB00000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |    TZ    |  0x4AC00000  |           4MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |    Q6    |              |                         |
 | 
				
			||||||
 | 
						 * |   code/  |  0x4B000000  |          20MB           |
 | 
				
			||||||
 | 
						 * |   data   |              |                         |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |  IPQ5018 |              |                         |
 | 
				
			||||||
 | 
						 * |   data   |  0x4C400000  |          13MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |  IPQ5018 |              |                         |
 | 
				
			||||||
 | 
						 * |  M3 Dump |  0x4D100000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |  IPQ5018 |              |                         |
 | 
				
			||||||
 | 
						 * |   QDSS   |  0x4D200000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_1|              |                         |
 | 
				
			||||||
 | 
						 * |   data   |  0x4D300000  |          15MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_1|              |                         |
 | 
				
			||||||
 | 
						 * |  M3 Dump |  0x4E200000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_1|              |                         |
 | 
				
			||||||
 | 
						 * |   QDSS   |  0x4E300000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_2|              |                         |
 | 
				
			||||||
 | 
						 * |   data   |  0x4E400000  |          15MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_2|              |                         |
 | 
				
			||||||
 | 
						 * |  M3 Dump |  0x4F300000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_2|              |                         |
 | 
				
			||||||
 | 
						 * |   QDSS   |  0x4F400000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |                                                   |
 | 
				
			||||||
 | 
						 * |            Rest of the memory for Linux           |
 | 
				
			||||||
 | 
						 * |                                                   |
 | 
				
			||||||
 | 
						 * +===================================================+
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
							q6_mem_regions: q6_mem_regions@4B000000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4B000000 0x0 0x4500000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_code_data: q6_code_data@4B000000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4B000000 0x0 0x1400000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_ipq5018_data: q6_ipq5018_data@4C400000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4C400000 0x0 0xD00000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							m3_dump: m3_dump@4D100000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4D100000 0x0 0x100000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_etr_region: q6_etr_dump@4D200000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4D200000 0x0 0x100000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_qcn6122_data1: q6_qcn6122_data1@4D300000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4D300000 0x0 0xF00000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							m3_dump_qcn6122_1: m3_dump_qcn6122_1@4E200000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4E200000 0x0 0x100000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_qcn6122_etr_1: q6_qcn6122_etr_1@4E300000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4E300000 0x0 0x100000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_qcn6122_data2: q6_qcn6122_data2@4E400000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4E400000 0x0 0xF00000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							m3_dump_qcn6122_2: m3_dump_qcn6122_2@4F300000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4F300000 0x0 0x100000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_qcn6122_etr_2: q6_qcn6122_etr_2@4F400000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4F400000 0x0 0x100000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						#else
 | 
				
			||||||
 | 
						/*                 512MB/1GB Profiles
 | 
				
			||||||
 | 
						 * +==========+==============+=========================+
 | 
				
			||||||
 | 
						 * |          |              |                         |
 | 
				
			||||||
 | 
						 * |  Region  | Start Offset |          Size           |
 | 
				
			||||||
 | 
						 * |          |              |                         |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |    NSS   |  0x40000000  |          16MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |   Linux  |  0x41000000  | Depends on total memory |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |   uboot  |  0x4A600000  |           4MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |    SBL   |  0x4AA00000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |   smem   |  0x4AB00000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |    TZ    |  0x4AC00000  |           4MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |    Q6    |              |                         |
 | 
				
			||||||
 | 
						 * |   code/  |  0x4B000000  |          20MB           |
 | 
				
			||||||
 | 
						 * |   data   |              |                         |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |  IPQ5018 |              |                         |
 | 
				
			||||||
 | 
						 * |   data   |  0x4C400000  |          14MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |  IPQ5018 |              |                         |
 | 
				
			||||||
 | 
						 * |  M3 Dump |  0x4D200000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |  IPQ5018 |              |                         |
 | 
				
			||||||
 | 
						 * |   QDSS   |  0x4D300000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |  IPQ5018 |              |                         |
 | 
				
			||||||
 | 
						 * |  Caldb   |  0x4D400000  |           2MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_1|              |                         |
 | 
				
			||||||
 | 
						 * |   data   |  0x4D600000  |          16MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_1|              |                         |
 | 
				
			||||||
 | 
						 * |  M3 Dump |  0x4E600000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_1|              |                         |
 | 
				
			||||||
 | 
						 * |   QDSS   |  0x4E700000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_1|              |                         |
 | 
				
			||||||
 | 
						 * |  Caldb   |  0x4E800000  |           5MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_2|              |                         |
 | 
				
			||||||
 | 
						 * |   data   |  0x4ED00000  |          16MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_2|              |                         |
 | 
				
			||||||
 | 
						 * |  M3 Dump |  0x4FD00000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_2|              |                         |
 | 
				
			||||||
 | 
						 * |   QDSS   |  0x4FE00000  |           1MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | QCN6122_2|              |                         |
 | 
				
			||||||
 | 
						 * |  Caldb   |  0x4FF00000  |           5MB           |
 | 
				
			||||||
 | 
						 * +----------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |                                                   |
 | 
				
			||||||
 | 
						 * |            Rest of the memory for Linux           |
 | 
				
			||||||
 | 
						 * |                                                   |
 | 
				
			||||||
 | 
						 * +===================================================+
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
							q6_mem_regions: q6_mem_regions@4B000000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4B000000 0x0 0x5400000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_code_data: q6_code_data@4B000000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4B000000 0x0 01400000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_ipq5018_data: q6_ipq5018_data@4C400000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4C400000 0x0 0xE00000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							m3_dump: m3_dump@4D200000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4D200000 0x0 0x100000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_etr_region: q6_etr_dump@4D300000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4D300000 0x0 0x100000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_caldb_region: q6_caldb_region@4D400000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4D400000 0x0 0x200000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_qcn6122_data1: q6_qcn6122_data1@4D600000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4D600000 0x0 0x1000000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							m3_dump_qcn6122_1: m3_dump_qcn6122_1@4E600000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4E600000 0x0 0x100000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_qcn6122_etr_1: q6_qcn6122_etr_1@4E700000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4E700000 0x0 0x100000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_qcn6122_caldb_1: q6_qcn6122_caldb_1@4E800000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4E800000 0x0 0x500000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_qcn6122_data2: q6_qcn6122_data2@4E900000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4ED00000 0x0 0x1000000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							m3_dump_qcn6122_2: m3_dump_qcn6122_2@4FD00000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4FD00000 0x0 0x100000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_qcn6122_etr_2: q6_qcn6122_etr_2@4FE00000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4FE00000 0x0 0x100000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							q6_qcn6122_caldb_2: q6_qcn6122_caldb_2@4FF00000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x4FF00000 0x0 0x500000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						#endif
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						soc {
 | 
				
			||||||
 | 
							serial@78af000 {
 | 
				
			||||||
 | 
								status = "ok";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							blsp1_uart2: serial@78b0000 {
 | 
				
			||||||
 | 
								pinctrl-0 = <&blsp1_uart_pins>;
 | 
				
			||||||
 | 
								pinctrl-names = "default";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							qpic_bam: dma@7984000{
 | 
				
			||||||
 | 
								status = "ok";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							nand: qpic-nand@79b0000 {
 | 
				
			||||||
 | 
								status = "disabled";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							spi_0: spi@78b5000 { /* BLSP1 QUP0 */
 | 
				
			||||||
 | 
								pinctrl-0 = <&blsp0_spi_pins>;
 | 
				
			||||||
 | 
								pinctrl-names = "default";
 | 
				
			||||||
 | 
								cs-select = <0>;
 | 
				
			||||||
 | 
								status = "ok";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								m25p80@0 {
 | 
				
			||||||
 | 
									#address-cells = <1>;
 | 
				
			||||||
 | 
									#size-cells = <1>;
 | 
				
			||||||
 | 
									reg = <0>;
 | 
				
			||||||
 | 
									compatible = "n25q128a11";
 | 
				
			||||||
 | 
									linux,modalias = "m25p80", "n25q128a11";
 | 
				
			||||||
 | 
									spi-max-frequency = <50000000>;
 | 
				
			||||||
 | 
									use-default-sizes;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							mdio0: mdio@88000 {
 | 
				
			||||||
 | 
								status = "ok";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								ethernet-phy@0 {
 | 
				
			||||||
 | 
									reg = <7>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							mdio1: mdio@90000 {
 | 
				
			||||||
 | 
								status = "ok";
 | 
				
			||||||
 | 
								pinctrl-0 = <&mdio1_pins>;
 | 
				
			||||||
 | 
								pinctrl-names = "default";
 | 
				
			||||||
 | 
								phy-reset-gpio = <&tlmm 39 0>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								ethernet-phy@0 {
 | 
				
			||||||
 | 
									reg = <28>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							ess-instance {
 | 
				
			||||||
 | 
								num_devices = <0x1>;
 | 
				
			||||||
 | 
								ess-switch@0x39c00000 {
 | 
				
			||||||
 | 
									switch_mac_mode = <0xf>; /* mac mode for uniphy instance*/
 | 
				
			||||||
 | 
									cmnblk_clk = "internal_96MHz"; /* cmnblk clk*/
 | 
				
			||||||
 | 
									qcom,port_phyinfo {
 | 
				
			||||||
 | 
										port@0 {
 | 
				
			||||||
 | 
											port_id = <1>;
 | 
				
			||||||
 | 
											phy_address = <7>;
 | 
				
			||||||
 | 
											mdiobus = <&mdio0>;
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
										port@1 {
 | 
				
			||||||
 | 
											port_id = <2>;
 | 
				
			||||||
 | 
											phy_address = <0x1c>;
 | 
				
			||||||
 | 
											mdiobus = <&mdio1>;
 | 
				
			||||||
 | 
											port_mac_sel = "QGMAC_PORT";
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
									led_source@0 {
 | 
				
			||||||
 | 
										source = <0>;
 | 
				
			||||||
 | 
										mode = "normal";
 | 
				
			||||||
 | 
										speed = "all";
 | 
				
			||||||
 | 
										blink_en = "enable";
 | 
				
			||||||
 | 
										active = "high";
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							dp1 {
 | 
				
			||||||
 | 
								device_type = "network";
 | 
				
			||||||
 | 
								compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
								clocks = <&gcc GCC_SNOC_GMAC0_AXI_CLK>;
 | 
				
			||||||
 | 
								clock-names = "nss-snoc-gmac-axi-clk";
 | 
				
			||||||
 | 
								qcom,id = <1>;
 | 
				
			||||||
 | 
								reg = <0x39C00000 0x10000>;
 | 
				
			||||||
 | 
								interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
 | 
				
			||||||
 | 
								qcom,mactype = <2>;
 | 
				
			||||||
 | 
								qcom,link-poll = <1>;
 | 
				
			||||||
 | 
								qcom,phy-mdio-addr = <7>;
 | 
				
			||||||
 | 
								mdio-bus = <&mdio0>;
 | 
				
			||||||
 | 
								local-mac-address = [000000000000];
 | 
				
			||||||
 | 
								phy-mode = "sgmii";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							dp2 {
 | 
				
			||||||
 | 
								device_type = "network";
 | 
				
			||||||
 | 
								compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
								clocks = <&gcc GCC_SNOC_GMAC1_AXI_CLK>;
 | 
				
			||||||
 | 
								clock-names = "nss-snoc-gmac-axi-clk";
 | 
				
			||||||
 | 
								qcom,id = <2>;
 | 
				
			||||||
 | 
								reg = <0x39D00000 0x10000>;
 | 
				
			||||||
 | 
								interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
 | 
				
			||||||
 | 
								qcom,mactype = <2>;
 | 
				
			||||||
 | 
								qcom,link-poll = <1>;
 | 
				
			||||||
 | 
								qcom,phy-mdio-addr = <28>;
 | 
				
			||||||
 | 
								mdio-bus = <&mdio1>;
 | 
				
			||||||
 | 
								local-mac-address = [000000000000];
 | 
				
			||||||
 | 
								phy-mode = "sgmii";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							qcom,test@0 {
 | 
				
			||||||
 | 
								status = "ok";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							nss-macsec1 {
 | 
				
			||||||
 | 
								compatible = "qcom,nss-macsec";
 | 
				
			||||||
 | 
								phy_addr = <0x1c>;
 | 
				
			||||||
 | 
								mdiobus = <&mdio1>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							lpass: lpass@0xA000000{
 | 
				
			||||||
 | 
								status = "disabled";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							pcm: pcm@0xA3C0000{
 | 
				
			||||||
 | 
								pinctrl-0 = <&audio_pins>;
 | 
				
			||||||
 | 
								pinctrl-names = "default";
 | 
				
			||||||
 | 
								status = "disabled";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							pcm_lb: pcm_lb@0 {
 | 
				
			||||||
 | 
								status = "disabled";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						thermal-zones {
 | 
				
			||||||
 | 
							status = "ok";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&sdhc_1 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&emmc_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						qcom,clk-rates = <400000 25000000 50000000 100000000 \
 | 
				
			||||||
 | 
								 192000000 384000000>;
 | 
				
			||||||
 | 
						qcom,bus-speed-mode = "HS200_1p8v", "DDR_1p8v";
 | 
				
			||||||
 | 
						qcom,nonremovable;
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&tlmm {
 | 
				
			||||||
 | 
						pinctrl-0 = <&blsp0_uart_pins &phy_led_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						blsp0_uart_pins: uart_pins {
 | 
				
			||||||
 | 
							blsp0_uart_rx_tx {
 | 
				
			||||||
 | 
								pins = "gpio20", "gpio21";
 | 
				
			||||||
 | 
								function = "blsp0_uart0";
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						blsp1_uart_pins: blsp1_uart_pins {
 | 
				
			||||||
 | 
							blsp1_uart_rx_tx {
 | 
				
			||||||
 | 
								pins = "gpio23", "gpio25", "gpio24", "gpio26";
 | 
				
			||||||
 | 
								function = "blsp1_uart2";
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						blsp0_spi_pins: blsp0_spi_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio10", "gpio11", "gpio12", "gpio13";
 | 
				
			||||||
 | 
								function = "blsp0_spi";
 | 
				
			||||||
 | 
								drive-strength = <2>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						emmc_pins: emmc_pins {
 | 
				
			||||||
 | 
							emmc_clk {
 | 
				
			||||||
 | 
									pins = "gpio9";
 | 
				
			||||||
 | 
									function = "sdc1_clk";
 | 
				
			||||||
 | 
									drive-strength = <8>;
 | 
				
			||||||
 | 
									bias-disable;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							emmc_cmd {
 | 
				
			||||||
 | 
									pins = "gpio8";
 | 
				
			||||||
 | 
									function = "sdc1_cmd";
 | 
				
			||||||
 | 
									drive-strength = <8>;
 | 
				
			||||||
 | 
									bias-pull-up;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							emmc_data_0 {
 | 
				
			||||||
 | 
									pins = "gpio7";
 | 
				
			||||||
 | 
									function = "sdc10";
 | 
				
			||||||
 | 
									drive-strength = <8>;
 | 
				
			||||||
 | 
									bias-disable;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							emmc_data_1 {
 | 
				
			||||||
 | 
									pins = "gpio6";
 | 
				
			||||||
 | 
									function = "sdc11";
 | 
				
			||||||
 | 
									drive-strength = <8>;
 | 
				
			||||||
 | 
									bias-disable;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							emmc_data_2 {
 | 
				
			||||||
 | 
									pins = "gpio5";
 | 
				
			||||||
 | 
									function = "sdc12";
 | 
				
			||||||
 | 
									drive-strength = <8>;
 | 
				
			||||||
 | 
									bias-disable;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							emmc_data_3 {
 | 
				
			||||||
 | 
									pins = "gpio4";
 | 
				
			||||||
 | 
									function = "sdc13";
 | 
				
			||||||
 | 
									drive-strength = <8>;
 | 
				
			||||||
 | 
									bias-disable;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						mdio1_pins: mdio_pinmux {
 | 
				
			||||||
 | 
							mux_0 {
 | 
				
			||||||
 | 
								pins = "gpio36";
 | 
				
			||||||
 | 
								function = "mdc";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							mux_1 {
 | 
				
			||||||
 | 
								pins = "gpio37";
 | 
				
			||||||
 | 
								function = "mdio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						phy_led_pins: phy_led_pins {
 | 
				
			||||||
 | 
							gephy_led_pin {
 | 
				
			||||||
 | 
								pins = "gpio46";
 | 
				
			||||||
 | 
								function = "led0";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						i2c_pins: i2c_pins {
 | 
				
			||||||
 | 
							i2c_scl {
 | 
				
			||||||
 | 
								pins = "gpio25";
 | 
				
			||||||
 | 
								function = "blsp2_i2c1";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							i2c_sda {
 | 
				
			||||||
 | 
								pins = "gpio26";
 | 
				
			||||||
 | 
								function = "blsp2_i2c1";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						button_pins: button_pins {
 | 
				
			||||||
 | 
							wps_button {
 | 
				
			||||||
 | 
								pins = "gpio38";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							reset_button {
 | 
				
			||||||
 | 
								pins = "gpio31";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};		
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						audio_pins: audio_pinmux {
 | 
				
			||||||
 | 
							mux_1 {
 | 
				
			||||||
 | 
								pins = "gpio24";
 | 
				
			||||||
 | 
								function = "audio_rxbclk";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							mux_2 {
 | 
				
			||||||
 | 
								pins = "gpio25";
 | 
				
			||||||
 | 
								function = "audio_rxfsync";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							mux_3 {
 | 
				
			||||||
 | 
								pins = "gpio26";
 | 
				
			||||||
 | 
								function = "audio_rxd";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							mux_4 {
 | 
				
			||||||
 | 
								pins = "gpio27";
 | 
				
			||||||
 | 
								function = "audio_txmclk";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							mux_5 {
 | 
				
			||||||
 | 
								pins = "gpio28";
 | 
				
			||||||
 | 
								function = "audio_txbclk";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							mux_6 {
 | 
				
			||||||
 | 
								pins = "gpio29";
 | 
				
			||||||
 | 
								function = "audio_txfsync";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							mux_7 {
 | 
				
			||||||
 | 
								pins = "gpio30";
 | 
				
			||||||
 | 
								function = "audio_txd";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&soc {
 | 
				
			||||||
 | 
						gpio_keys {
 | 
				
			||||||
 | 
							compatible = "gpio-keys";
 | 
				
			||||||
 | 
							pinctrl-0 = <&button_pins>;
 | 
				
			||||||
 | 
							pinctrl-names = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							button@1 {
 | 
				
			||||||
 | 
								label = "wps";
 | 
				
			||||||
 | 
								linux,code = <KEY_WPS_BUTTON>;
 | 
				
			||||||
 | 
								gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
 | 
								linux,input-type = <1>;
 | 
				
			||||||
 | 
								debounce-interval = <60>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							button@2 {
 | 
				
			||||||
 | 
								label = "reset";
 | 
				
			||||||
 | 
								linux,code = <KEY_RESTART>;
 | 
				
			||||||
 | 
								gpios = <&tlmm 31 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
 | 
								linux,input-type = <1>;
 | 
				
			||||||
 | 
								debounce-interval = <60>;
 | 
				
			||||||
 | 
							};			
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&usb3 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
						device-power-gpio = <&tlmm 24 1>;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&eud {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie_x1 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
						perst-gpio = <&tlmm 18 1>;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie_x2 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
						perst-gpio = <&tlmm 15 1>;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&dwc_0 {
 | 
				
			||||||
 | 
						/delete-property/ #phy-cells;
 | 
				
			||||||
 | 
						/delete-property/ phys;
 | 
				
			||||||
 | 
						/delete-property/ phy-names;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&hs_m31phy_0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie_x1phy {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie_x2phy {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie_x1_rp {
 | 
				
			||||||
 | 
					        status = "ok";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						mhi_0: qcom,mhi@0 {
 | 
				
			||||||
 | 
							reg = <0 0 0 0 0 >;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie_x2_rp {
 | 
				
			||||||
 | 
					        status = "ok";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						mhi_1: qcom,mhi@1 {
 | 
				
			||||||
 | 
							reg = <0 0 0 0 0 >;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qfprom {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&tsens {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qcom_q6v5_wcss {
 | 
				
			||||||
 | 
						qcom,multipd_arch;
 | 
				
			||||||
 | 
						memory-region = <&q6_mem_regions>;
 | 
				
			||||||
 | 
						qcom,share_bootargs;
 | 
				
			||||||
 | 
						qcom,bootargs_smem = <507>;
 | 
				
			||||||
 | 
					boot-args = <0x1 0x4 0x3 0x0F 0x0 0x0>,
 | 
				
			||||||
 | 
								<0x2 0x4 0x2 0x12 0x0 0x0>;	
 | 
				
			||||||
 | 
								
 | 
				
			||||||
 | 
						/* IPQ5018 */
 | 
				
			||||||
 | 
						q6v5_wcss_userpd1 {
 | 
				
			||||||
 | 
							m3_firmware = "IPQ5018/m3_fw.mdt";
 | 
				
			||||||
 | 
							interrupts-extended = <&wcss_smp2p_in 8 0>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_in 9 0>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_in 12 0>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_in 11 0>;
 | 
				
			||||||
 | 
							interrupt-names ="fatal",
 | 
				
			||||||
 | 
								"ready",
 | 
				
			||||||
 | 
								"spawn_ack",
 | 
				
			||||||
 | 
								"stop-ack";
 | 
				
			||||||
 | 
							qcom,smem-states = <&wcss_smp2p_out 8>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_out 9>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_out 10>;
 | 
				
			||||||
 | 
							qcom,smem-state-names = "shutdown",
 | 
				
			||||||
 | 
								"stop",
 | 
				
			||||||
 | 
								"spawn";
 | 
				
			||||||
 | 
							qca,asid = <1>;
 | 
				
			||||||
 | 
							qca,auto-restart;
 | 
				
			||||||
 | 
							qca,int_radio;
 | 
				
			||||||
 | 
							#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
 | 
							memory-region = <&q6_ipq5018_data>, <&m3_dump>,
 | 
				
			||||||
 | 
									<&q6_etr_region>;
 | 
				
			||||||
 | 
							#else
 | 
				
			||||||
 | 
							memory-region = <&q6_ipq5018_data>, <&m3_dump>,
 | 
				
			||||||
 | 
									<&q6_etr_region>, <&q6_caldb_region>;
 | 
				
			||||||
 | 
							#endif
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* QCN6122 6G */
 | 
				
			||||||
 | 
						q6v5_wcss_userpd2 {
 | 
				
			||||||
 | 
							m3_firmware = "qcn6122/m3_fw.mdt";
 | 
				
			||||||
 | 
							interrupts-extended = <&wcss_smp2p_in 16 0>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_in 17 0>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_in 20 0>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_in 19 0>;
 | 
				
			||||||
 | 
							interrupt-names ="fatal",
 | 
				
			||||||
 | 
								"ready",
 | 
				
			||||||
 | 
								"spawn_ack",
 | 
				
			||||||
 | 
								"stop-ack";
 | 
				
			||||||
 | 
							qcom,smem-states = <&wcss_smp2p_out 16>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_out 17>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_out 18>;
 | 
				
			||||||
 | 
							qcom,smem-state-names = "shutdown",
 | 
				
			||||||
 | 
								"stop",
 | 
				
			||||||
 | 
								"spawn";
 | 
				
			||||||
 | 
							qca,asid = <2>;
 | 
				
			||||||
 | 
							qca,auto-restart;
 | 
				
			||||||
 | 
							#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
 | 
							memory-region = <&q6_qcn6122_data1>, <&m3_dump_qcn6122_1>,
 | 
				
			||||||
 | 
									<&q6_qcn6122_etr_1>;
 | 
				
			||||||
 | 
							#else
 | 
				
			||||||
 | 
							memory-region = <&q6_qcn6122_data1>, <&m3_dump_qcn6122_1>,
 | 
				
			||||||
 | 
									<&q6_qcn6122_etr_1>, <&q6_qcn6122_caldb_1>;
 | 
				
			||||||
 | 
							#endif
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* QCN6122 5G */
 | 
				
			||||||
 | 
						q6v5_wcss_userpd3 {
 | 
				
			||||||
 | 
							m3_firmware = "qcn6122/m3_fw.mdt";
 | 
				
			||||||
 | 
							interrupts-extended = <&wcss_smp2p_in 24 0>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_in 25 0>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_in 28 0>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_in 27 0>;
 | 
				
			||||||
 | 
							interrupt-names ="fatal",
 | 
				
			||||||
 | 
								"ready",
 | 
				
			||||||
 | 
								"spawn_ack",
 | 
				
			||||||
 | 
								"stop-ack";
 | 
				
			||||||
 | 
							qcom,smem-states = <&wcss_smp2p_out 24>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_out 25>,
 | 
				
			||||||
 | 
								<&wcss_smp2p_out 26>;
 | 
				
			||||||
 | 
							qcom,smem-state-names = "shutdown",
 | 
				
			||||||
 | 
								"stop",
 | 
				
			||||||
 | 
								"spawn";
 | 
				
			||||||
 | 
							qca,asid = <3>;
 | 
				
			||||||
 | 
							qca,auto-restart;
 | 
				
			||||||
 | 
							#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
 | 
							memory-region = <&q6_qcn6122_data2>, <&m3_dump_qcn6122_2>,
 | 
				
			||||||
 | 
									<&q6_qcn6122_etr_2>;
 | 
				
			||||||
 | 
							#else
 | 
				
			||||||
 | 
							memory-region = <&q6_qcn6122_data2>, <&m3_dump_qcn6122_2>,
 | 
				
			||||||
 | 
									<&q6_qcn6122_etr_2>, <&q6_qcn6122_caldb_2>;
 | 
				
			||||||
 | 
							#endif
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&i2c_0 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&i2c_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qgic_msi_0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qgic_msi_1 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&wifi0 {
 | 
				
			||||||
 | 
						/* IPQ5018 */
 | 
				
			||||||
 | 
						qcom,multipd_arch;
 | 
				
			||||||
 | 
						qcom,userpd-subsys-name = "q6v5_wcss_userpd1";
 | 
				
			||||||
 | 
					#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
 | 
						qcom,tgt-mem-mode = <2>;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
						qcom,tgt-mem-mode = <1>;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
						qcom,board_id = <0x24>;
 | 
				
			||||||
 | 
						qcom,bdf-addr = <0x4C400000 0x4C400000 0x4C400000 0x0 0x0>;
 | 
				
			||||||
 | 
					#ifdef __CNSS2__
 | 
				
			||||||
 | 
						qcom,caldb-addr = <0x4D400000 0x4D400000 0 0 0>;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
						qcom,caldb-addr = <0x4D400000>;
 | 
				
			||||||
 | 
						m3-dump-addr = <0x4D200000>;
 | 
				
			||||||
 | 
						nss-radio-priority = <0>;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
						mem-region = <&q6_ipq5018_data>;
 | 
				
			||||||
 | 
						qcom,caldb-size = <0x200000>;
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&wifi1 {
 | 
				
			||||||
 | 
						/* QCN6122 5G */
 | 
				
			||||||
 | 
						qcom,multipd_arch;
 | 
				
			||||||
 | 
						qcom,userpd-subsys-name = "q6v5_wcss_userpd2";
 | 
				
			||||||
 | 
					#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
 | 
						qcom,tgt-mem-mode = <2>;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
						qcom,tgt-mem-mode = <1>;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
						qcom,board_id = <0x60>;
 | 
				
			||||||
 | 
						qcom,bdf-addr = <0x4D600000 0x4D600000 0x4D300000 0x0 0x0>;
 | 
				
			||||||
 | 
					#ifdef __CNSS2__
 | 
				
			||||||
 | 
						qcom,caldb-addr = <0x4E800000 0x4E800000 0 0 0>;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
						qcom,caldb-addr = <0x4E800000>;
 | 
				
			||||||
 | 
						m3-dump-addr = <0x4E600000>;
 | 
				
			||||||
 | 
						nss-radio-priority = <1>;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
						mem-region = <&q6_qcn6122_data1>;
 | 
				
			||||||
 | 
						qcom,caldb-size = <0x500000>;
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&wifi2 {
 | 
				
			||||||
 | 
						/* QCN6122 6G */
 | 
				
			||||||
 | 
						qcom,multipd_arch;
 | 
				
			||||||
 | 
						qcom,userpd-subsys-name = "q6v5_wcss_userpd3";
 | 
				
			||||||
 | 
					#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
 | 
						qcom,tgt-mem-mode = <2>;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
						qcom,tgt-mem-mode = <1>;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
						qcom,board_id = <0xb0>;
 | 
				
			||||||
 | 
						qcom,bdf-addr = <0x4ED00000 0x4ED00000 0x4E400000 0x0 0x0>;
 | 
				
			||||||
 | 
					#ifdef __CNSS2__
 | 
				
			||||||
 | 
						qcom,caldb-addr = <0x4FF00000 0x4FF00000 0 0 0>;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
						qcom,caldb-addr = <0x4FF00000>;
 | 
				
			||||||
 | 
						m3-dump-addr = <0x4FD00000>;
 | 
				
			||||||
 | 
						nss-radio-priority = <1>;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
						mem-region = <&q6_qcn6122_data2>;
 | 
				
			||||||
 | 
						qcom,caldb-size = <0x500000>;
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
/dts-v1/;
 | 
					/dts-v1/;
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * Copyright (c) 2019-2021, The Linux Foundation. All rights reserved.
 | 
					 * Copyright (c) 2019, The Linux Foundation. All rights reserved.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Permission to use, copy, modify, and/or distribute this software for any
 | 
					 * Permission to use, copy, modify, and/or distribute this software for any
 | 
				
			||||||
 * purpose with or without fee is hereby granted, provided that the above
 | 
					 * purpose with or without fee is hereby granted, provided that the above
 | 
				
			||||||
@@ -15,9 +15,12 @@
 | 
				
			|||||||
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
					 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "ipq6018.dtsi"
 | 
					#include "qcom-ipq6018.dtsi"
 | 
				
			||||||
#include "ipq6018-cpr-regulator.dtsi"
 | 
					#include "qcom-ipq6018-rpm-regulator.dtsi"
 | 
				
			||||||
 | 
					#include "qcom-ipq6018-cpr-regulator.dtsi"
 | 
				
			||||||
 | 
					#include "qcom-ipq6018-cp-cpu.dtsi"
 | 
				
			||||||
#include <dt-bindings/input/input.h>
 | 
					#include <dt-bindings/input/input.h>
 | 
				
			||||||
 | 
					#include <dt-bindings/gpio/gpio.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/ {
 | 
					/ {
 | 
				
			||||||
	#address-cells = <0x2>;
 | 
						#address-cells = <0x2>;
 | 
				
			||||||
@@ -25,9 +28,11 @@
 | 
				
			|||||||
	model = "Cigtech WF-188n";
 | 
						model = "Cigtech WF-188n";
 | 
				
			||||||
	compatible = "cig,wf188n", "qcom,ipq6018-cp03", "qcom,ipq6018";
 | 
						compatible = "cig,wf188n", "qcom,ipq6018-cp03", "qcom,ipq6018";
 | 
				
			||||||
	interrupt-parent = <&intc>;
 | 
						interrupt-parent = <&intc>;
 | 
				
			||||||
	qcom,msm-id = <0x1A5 0x0>;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	aliases {
 | 
						aliases {
 | 
				
			||||||
 | 
							serial0 = &blsp1_uart3;
 | 
				
			||||||
 | 
							serial1 = &blsp1_uart2;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		/*
 | 
							/*
 | 
				
			||||||
		 * Aliases as required by u-boot
 | 
							 * Aliases as required by u-boot
 | 
				
			||||||
		 * to patch MAC addresses
 | 
							 * to patch MAC addresses
 | 
				
			||||||
@@ -43,11 +48,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	chosen {
 | 
						chosen {
 | 
				
			||||||
		bootargs = "console=ttyMSM0,115200,n8 rw init=/init";
 | 
							bootargs = "console=ttyMSM0,115200,n8 rw init=/init";
 | 
				
			||||||
#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
					 | 
				
			||||||
		bootargs-append = " swiotlb=1";
 | 
					 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
		bootargs-append = " swiotlb=1 coherent_pool=2M";
 | 
							bootargs-append = " swiotlb=1 coherent_pool=2M";
 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/*
 | 
						/*
 | 
				
			||||||
@@ -105,13 +106,71 @@
 | 
				
			|||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	button_pins: button_pins {
 | 
						qpic_pins: qpic_pins {
 | 
				
			||||||
		wps_button {
 | 
							data_0 {
 | 
				
			||||||
			pins = "gpio9";
 | 
								pins = "gpio15";
 | 
				
			||||||
			function = "gpio";
 | 
								function = "qpic_pad0";
 | 
				
			||||||
			drive-strength = <8>;
 | 
								drive-strength = <8>;
 | 
				
			||||||
			bias-pull-down;
 | 
								bias-pull-down;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
							data_1 {
 | 
				
			||||||
 | 
								pins = "gpio12";
 | 
				
			||||||
 | 
								function = "qpic_pad1";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_2 {
 | 
				
			||||||
 | 
								pins = "gpio13";
 | 
				
			||||||
 | 
								function = "qpic_pad2";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_3 {
 | 
				
			||||||
 | 
								pins = "gpio14";
 | 
				
			||||||
 | 
								function = "qpic_pad3";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_4 {
 | 
				
			||||||
 | 
								pins = "gpio5";
 | 
				
			||||||
 | 
								function = "qpic_pad4";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_5 {
 | 
				
			||||||
 | 
								pins = "gpio6";
 | 
				
			||||||
 | 
								function = "qpic_pad5";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_6 {
 | 
				
			||||||
 | 
								pins = "gpio7";
 | 
				
			||||||
 | 
								function = "qpic_pad6";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_7 {
 | 
				
			||||||
 | 
								pins = "gpio8";
 | 
				
			||||||
 | 
								function = "qpic_pad7";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							qpic_pad {
 | 
				
			||||||
 | 
								pins = "gpio1", "gpio3", "gpio4",
 | 
				
			||||||
 | 
								       "gpio10", "gpio11", "gpio17";
 | 
				
			||||||
 | 
								function = "qpic_pad";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						button_pins: button_pins {
 | 
				
			||||||
 | 
							wps_button {
 | 
				
			||||||
 | 
								pins = "gpio22";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	mdio_pins: mdio_pinmux {
 | 
						mdio_pins: mdio_pinmux {
 | 
				
			||||||
@@ -136,17 +195,37 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	leds_pins: leds_pins {
 | 
						leds_pins: leds_pins {
 | 
				
			||||||
		led_5g {
 | 
							led_5g {
 | 
				
			||||||
			pins = "gpio35";
 | 
								pins = "gpio25";
 | 
				
			||||||
			function = "gpio";
 | 
								function = "gpio";
 | 
				
			||||||
			drive-strength = <8>;
 | 
								drive-strength = <8>;
 | 
				
			||||||
			bias-pull-down;
 | 
								bias-pull-down;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
		led_2g {
 | 
							led_2g {
 | 
				
			||||||
			pins = "gpio37";
 | 
								pins = "gpio24";
 | 
				
			||||||
			function = "gpio";
 | 
								function = "gpio";
 | 
				
			||||||
			drive-strength = <8>;
 | 
								drive-strength = <8>;
 | 
				
			||||||
			bias-pull-down;
 | 
								bias-pull-down;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
							led_eth {
 | 
				
			||||||
 | 
								pins = "gpio18";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					                led_pwr {
 | 
				
			||||||
 | 
					                        pins = "gpio16";
 | 
				
			||||||
 | 
					                        function = "gpio";
 | 
				
			||||||
 | 
					                        drive-strength = <8>;
 | 
				
			||||||
 | 
					                        bias-pull-down;
 | 
				
			||||||
 | 
					                };
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
						uart2_pins: uart2_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio57", "gpio58";
 | 
				
			||||||
 | 
								function = "blsp4_uart";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -164,6 +243,7 @@
 | 
				
			|||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						
 | 
				
			||||||
	ess-switch@3a000000 {
 | 
						ess-switch@3a000000 {
 | 
				
			||||||
		switch_cpu_bmp = <0x1>;  /* cpu port bitmap */
 | 
							switch_cpu_bmp = <0x1>;  /* cpu port bitmap */
 | 
				
			||||||
		switch_lan_bmp = <0x08>; /* lan port bitmap */
 | 
							switch_lan_bmp = <0x08>; /* lan port bitmap */
 | 
				
			||||||
@@ -206,6 +286,7 @@
 | 
				
			|||||||
		qcom,link-poll = <1>;
 | 
							qcom,link-poll = <1>;
 | 
				
			||||||
		qcom,phy-mdio-addr = <3>;
 | 
							qcom,phy-mdio-addr = <3>;
 | 
				
			||||||
		phy-mode = "sgmii";
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
 | 
						
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	gpio_keys {
 | 
						gpio_keys {
 | 
				
			||||||
@@ -285,22 +366,22 @@
 | 
				
			|||||||
	};
 | 
						};
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&blsp1_uart2 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&uart2_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						dmas = <&blsp_dma 2>,
 | 
				
			||||||
 | 
							<&blsp_dma 3>;
 | 
				
			||||||
 | 
						dma-names = "tx", "rx";
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
&qpic_bam {
 | 
					&qpic_bam {
 | 
				
			||||||
	status = "ok";
 | 
						status = "ok";
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&qpic_nand {
 | 
					&nand {
 | 
				
			||||||
 | 
						pinctrl-0 = <&qpic_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
	status = "ok";
 | 
						status = "ok";
 | 
				
			||||||
 | 
					 | 
				
			||||||
	nand@0 {
 | 
					 | 
				
			||||||
		reg = <0>;
 | 
					 | 
				
			||||||
		#address-cells = <1>;
 | 
					 | 
				
			||||||
		#size-cells = <1>;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		nand-ecc-strength = <4>;
 | 
					 | 
				
			||||||
		nand-ecc-step-size = <512>;
 | 
					 | 
				
			||||||
		nand-bus-width = <8>;
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&ssphy_0 {
 | 
					&ssphy_0 {
 | 
				
			||||||
@@ -318,3 +399,25 @@
 | 
				
			|||||||
&nss_crypto {
 | 
					&nss_crypto {
 | 
				
			||||||
	status = "ok";
 | 
						status = "ok";
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&cpu0_opp_table {
 | 
				
			||||||
 | 
						compatible = "operating-points-v2";
 | 
				
			||||||
 | 
						opp-shared;
 | 
				
			||||||
 | 
						opp03 {
 | 
				
			||||||
 | 
							opp-hz = /bits/ 64 <1200000000>;
 | 
				
			||||||
 | 
							opp-microvolt = <3>;
 | 
				
			||||||
 | 
							clock-latency-ns = <200000>;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
						/delete-node/ opp04;
 | 
				
			||||||
 | 
						/delete-node/ opp05;
 | 
				
			||||||
 | 
						/delete-node/ opp06;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* TZAPP is enabled in default memory profile only */
 | 
				
			||||||
 | 
					#if !defined(__IPQ_MEM_PROFILE_256_MB__) && !defined(__IPQ_MEM_PROFILE_512_MB__)
 | 
				
			||||||
 | 
					&qseecom {
 | 
				
			||||||
 | 
						mem-start = <0x49B00000>;
 | 
				
			||||||
 | 
						mem-size = <0x600000>;
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,23 +1,38 @@
 | 
				
			|||||||
// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
 | 
					/dts-v1/;
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * IPQ6018 CP01 board device tree source
 | 
					 * Copyright (c) 2019, The Linux Foundation. All rights reserved.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Copyright (c) 2019-2021 The Linux Foundation. All rights reserved.
 | 
					 * Permission to use, copy, modify, and/or distribute this software for any
 | 
				
			||||||
 | 
					 * purpose with or without fee is hereby granted, provided that the above
 | 
				
			||||||
 | 
					 * copyright notice and this permission notice appear in all copies.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 | 
				
			||||||
 | 
					 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 | 
				
			||||||
 | 
					 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 | 
				
			||||||
 | 
					 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 | 
				
			||||||
 | 
					 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 | 
				
			||||||
 | 
					 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 | 
				
			||||||
 | 
					 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/dts-v1/;
 | 
					#include "qcom-ipq6018.dtsi"
 | 
				
			||||||
 | 
					#include "qcom-ipq6018-rpm-regulator.dtsi"
 | 
				
			||||||
#include "ipq6018.dtsi"
 | 
					#include "qcom-ipq6018-cpr-regulator.dtsi"
 | 
				
			||||||
#include "ipq6018-cpr-regulator.dtsi"
 | 
					#include "qcom-ipq6018-cp-cpu.dtsi"
 | 
				
			||||||
#include <dt-bindings/input/input.h>
 | 
					#include <dt-bindings/input/input.h>
 | 
				
			||||||
 | 
					#include <dt-bindings/gpio/gpio.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/ {
 | 
					/ {
 | 
				
			||||||
 | 
						#address-cells = <0x2>;
 | 
				
			||||||
 | 
						#size-cells = <0x2>;
 | 
				
			||||||
	model = "EdgeCore EAP101";
 | 
						model = "EdgeCore EAP101";
 | 
				
			||||||
	compatible = "edgecore,eap101", "qcom,ipq6018-cp01", "qcom,ipq6018";
 | 
						compatible = "edgecore,eap101", "qcom,ipq6018-cp01", "qcom,ipq6018";
 | 
				
			||||||
 | 
						interrupt-parent = <&intc>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	aliases {
 | 
						aliases {
 | 
				
			||||||
		serial0 = &blsp1_uart3;
 | 
							serial0 = &blsp1_uart3;
 | 
				
			||||||
		serial1 = &blsp1_uart2;
 | 
							serial1 = &blsp1_uart2;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		/*
 | 
							/*
 | 
				
			||||||
		 * Aliases as required by u-boot
 | 
							 * Aliases as required by u-boot
 | 
				
			||||||
		 * to patch MAC addresses
 | 
							 * to patch MAC addresses
 | 
				
			||||||
@@ -33,84 +48,130 @@
 | 
				
			|||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	chosen {
 | 
						chosen {
 | 
				
			||||||
		stdout-path = "serial0:115200n8";
 | 
							bootargs = "console=ttyMSM0,115200,n8 rw init=/init";
 | 
				
			||||||
		bootargs-append = " swiotlb=1";
 | 
							bootargs-append = " console=ttyMSM0,115200,n8 swiotlb=1 coherent_pool=2M";
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
&blsp1_uart3 {
 | 
						/*
 | 
				
			||||||
	pinctrl-0 = <&serial_3_pins>;
 | 
						 * +=========+==============+========================+
 | 
				
			||||||
	pinctrl-names = "default";
 | 
						 * |        |              |                         |
 | 
				
			||||||
	status = "ok";
 | 
						 * | Region | Start Offset |          Size           |
 | 
				
			||||||
};
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * +--------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * | Linux  |  0x41000000  |         139MB           |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * +--------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | TZ App |  0x49B00000  |           6MB           |
 | 
				
			||||||
 | 
						 * +--------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * From the available 145 MB for Linux in the first 256 MB,
 | 
				
			||||||
 | 
						 * we are reserving 6 MB for TZAPP.
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * Refer arch/arm64/boot/dts/qcom/qcom-ipq6018-memory.dtsi
 | 
				
			||||||
 | 
						 * for memory layout.
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&spi_0 {
 | 
					/* TZAPP is enabled only in default memory profile */
 | 
				
			||||||
	pinctrl-0 = <&spi_0_pins>;
 | 
					#if !defined(__IPQ_MEM_PROFILE_256_MB__) && !defined(__IPQ_MEM_PROFILE_512_MB__)
 | 
				
			||||||
	pinctrl-names = "default";
 | 
						reserved-memory {
 | 
				
			||||||
	cs-select = <0>;
 | 
							tzapp:tzapp@49B00000 {	/* TZAPPS */
 | 
				
			||||||
	status = "ok";
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x49B00000 0x0 0x00600000>;
 | 
				
			||||||
	m25p80@0 {
 | 
					 | 
				
			||||||
		#address-cells = <1>;
 | 
					 | 
				
			||||||
		#size-cells = <1>;
 | 
					 | 
				
			||||||
		reg = <0>;
 | 
					 | 
				
			||||||
		compatible = "n25q128a11";
 | 
					 | 
				
			||||||
		linux,modalias = "m25p80", "n25q128a11";
 | 
					 | 
				
			||||||
		spi-max-frequency = <50000000>;
 | 
					 | 
				
			||||||
		use-default-sizes;
 | 
					 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
};
 | 
						};
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
&blsp1_uart2 {
 | 
					 | 
				
			||||||
	pinctrl-0 = <&hsuart_pins &btcoex_pins>;
 | 
					 | 
				
			||||||
	pinctrl-names = "default";
 | 
					 | 
				
			||||||
	dmas = <&blsp_dma 2>,
 | 
					 | 
				
			||||||
		<&blsp_dma 3>;
 | 
					 | 
				
			||||||
	dma-names = "tx", "rx";
 | 
					 | 
				
			||||||
	status = "ok";
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&tlmm {
 | 
					&tlmm {
 | 
				
			||||||
	spi_0_pins: spi-0-pins {
 | 
						uart_pins: uart_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio44", "gpio45";
 | 
				
			||||||
 | 
								function = "blsp2_uart";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						spi_0_pins: spi_0_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
			pins = "gpio38", "gpio39", "gpio40", "gpio41";
 | 
								pins = "gpio38", "gpio39", "gpio40", "gpio41";
 | 
				
			||||||
			function = "blsp0_spi";
 | 
								function = "blsp0_spi";
 | 
				
			||||||
			drive-strength = <8>;
 | 
								drive-strength = <8>;
 | 
				
			||||||
			bias-pull-down;
 | 
								bias-pull-down;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	spi_1_pins: spi_1_pins {
 | 
						qpic_pins: qpic_pins {
 | 
				
			||||||
		mux {
 | 
							data_0 {
 | 
				
			||||||
			pins = "gpio69", "gpio71", "gpio72";
 | 
								pins = "gpio15";
 | 
				
			||||||
			function = "blsp1_spi";
 | 
								function = "qpic_pad0";
 | 
				
			||||||
			drive-strength = <8>;
 | 
								drive-strength = <8>;
 | 
				
			||||||
			bias-pull-down;
 | 
								bias-pull-down;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
		spi_cs {
 | 
							data_1 {
 | 
				
			||||||
			pins = "gpio70";
 | 
								pins = "gpio12";
 | 
				
			||||||
			function = "blsp1_spi";
 | 
								function = "qpic_pad1";
 | 
				
			||||||
			drive-strength = <8>;
 | 
								drive-strength = <8>;
 | 
				
			||||||
			bias-disable;
 | 
								bias-pull-down;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
		quartz_interrupt {
 | 
							data_2 {
 | 
				
			||||||
			pins = "gpio78";
 | 
								pins = "gpio13";
 | 
				
			||||||
			function = "gpio";
 | 
								function = "qpic_pad2";
 | 
				
			||||||
			input;
 | 
								drive-strength = <8>;
 | 
				
			||||||
			bias-disable;
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_3 {
 | 
				
			||||||
 | 
								pins = "gpio14";
 | 
				
			||||||
 | 
								function = "qpic_pad3";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_4 {
 | 
				
			||||||
 | 
								pins = "gpio5";
 | 
				
			||||||
 | 
								function = "qpic_pad4";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_5 {
 | 
				
			||||||
 | 
								pins = "gpio6";
 | 
				
			||||||
 | 
								function = "qpic_pad5";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_6 {
 | 
				
			||||||
 | 
								pins = "gpio7";
 | 
				
			||||||
 | 
								function = "qpic_pad6";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_7 {
 | 
				
			||||||
 | 
								pins = "gpio8";
 | 
				
			||||||
 | 
								function = "qpic_pad7";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							qpic_pad {
 | 
				
			||||||
 | 
								pins = "gpio1", "gpio3", "gpio4",
 | 
				
			||||||
 | 
								       "gpio10", "gpio11", "gpio17";
 | 
				
			||||||
 | 
								function = "qpic_pad";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
		quartz_reset {
 | 
					 | 
				
			||||||
			pins = "gpio79";
 | 
					 | 
				
			||||||
			function = "gpio";
 | 
					 | 
				
			||||||
			output-low;
 | 
					 | 
				
			||||||
			bias-disable;
 | 
					 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						extcon_usb_pins: extcon_usb_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio26";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <2>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					 | 
				
			||||||
	sd_pins: sd-pinmux {
 | 
					 | 
				
			||||||
		pins = "gpio62";
 | 
					 | 
				
			||||||
		function = "sd_card";
 | 
					 | 
				
			||||||
		drive-strength = <8>;
 | 
					 | 
				
			||||||
		bias-pull-up;
 | 
					 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	button_pins: button_pins {
 | 
						button_pins: button_pins {
 | 
				
			||||||
@@ -140,26 +201,6 @@
 | 
				
			|||||||
			function = "gpio";
 | 
								function = "gpio";
 | 
				
			||||||
			bias-pull-up;
 | 
								bias-pull-up;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
		mux_3 {
 | 
					 | 
				
			||||||
			pins = "gpio77";
 | 
					 | 
				
			||||||
			function = "gpio";
 | 
					 | 
				
			||||||
			bias-pull-up;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	pwm_pins: pwm_pinmux {
 | 
					 | 
				
			||||||
		pins = "gpio18";
 | 
					 | 
				
			||||||
		function = "pwm00";
 | 
					 | 
				
			||||||
		drive-strength = <8>;
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	hsuart_pins: hsuart_pins {
 | 
					 | 
				
			||||||
		mux {
 | 
					 | 
				
			||||||
			pins = "gpio71", "gpio72", "gpio69", "gpio70";
 | 
					 | 
				
			||||||
			function = "blsp1_uart";
 | 
					 | 
				
			||||||
			drive-strength = <8>;
 | 
					 | 
				
			||||||
			bias-disable;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	leds_pins: leds_pins {
 | 
						leds_pins: leds_pins {
 | 
				
			||||||
@@ -182,42 +223,22 @@
 | 
				
			|||||||
			bias-pull-down;
 | 
								bias-pull-down;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
						uart2_pins: uart2_pins {
 | 
				
			||||||
	btcoex_pins: btcoex_pins {
 | 
							mux {
 | 
				
			||||||
		mux_0 {
 | 
								pins = "gpio57", "gpio58";
 | 
				
			||||||
			pins = "gpio51";
 | 
								function = "blsp4_uart";
 | 
				
			||||||
			function = "pta1_1";
 | 
								drive-strength = <8>;
 | 
				
			||||||
			drive-strength = <6>;
 | 
					 | 
				
			||||||
			bias-pull-down;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
		mux_1 {
 | 
					 | 
				
			||||||
			pins = "gpio53";
 | 
					 | 
				
			||||||
			function = "pta1_0";
 | 
					 | 
				
			||||||
			drive-strength = <6>;
 | 
					 | 
				
			||||||
			bias-pull-down;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
		mux_2 {
 | 
					 | 
				
			||||||
			pins = "gpio52";
 | 
					 | 
				
			||||||
			function = "pta1_2";
 | 
					 | 
				
			||||||
			drive-strength = <6>;
 | 
					 | 
				
			||||||
			bias-pull-down;
 | 
								bias-pull-down;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&soc {
 | 
					&soc {
 | 
				
			||||||
	gpio_keys {
 | 
						extcon_usb: extcon_usb {
 | 
				
			||||||
		compatible = "gpio-keys";
 | 
							pinctrl-0 = <&extcon_usb_pins>;
 | 
				
			||||||
		pinctrl-0 = <&button_pins>;
 | 
					 | 
				
			||||||
		pinctrl-names = "default";
 | 
							pinctrl-names = "default";
 | 
				
			||||||
 | 
							id-gpio = <&tlmm 26 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
		wps {
 | 
							status = "ok";
 | 
				
			||||||
			label = "reset";
 | 
					 | 
				
			||||||
			linux,code = <KEY_RESTART>;
 | 
					 | 
				
			||||||
			gpios = <&tlmm 19 GPIO_ACTIVE_LOW>;
 | 
					 | 
				
			||||||
			linux,input-type = <1>;
 | 
					 | 
				
			||||||
			debounce-interval = <60>;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	mdio: mdio@90000 {
 | 
						mdio: mdio@90000 {
 | 
				
			||||||
@@ -297,11 +318,18 @@
 | 
				
			|||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	nss-macsec0 {
 | 
						gpio_keys {
 | 
				
			||||||
		compatible = "qcom,nss-macsec";
 | 
							compatible = "gpio-keys";
 | 
				
			||||||
		phy_addr = <0x18>;
 | 
							pinctrl-0 = <&button_pins>;
 | 
				
			||||||
		phy_access_mode = <0>;
 | 
							pinctrl-names = "default";
 | 
				
			||||||
		mdiobus = <&mdio>;
 | 
					
 | 
				
			||||||
 | 
							wps {
 | 
				
			||||||
 | 
								label = "reset";
 | 
				
			||||||
 | 
								linux,code = <KEY_RESTART>;
 | 
				
			||||||
 | 
								gpios = <&tlmm 19 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
 | 
								linux,input-type = <1>;
 | 
				
			||||||
 | 
								debounce-interval = <60>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	leds {
 | 
						leds {
 | 
				
			||||||
@@ -348,29 +376,52 @@
 | 
				
			|||||||
	};
 | 
						};
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&blsp1_uart3 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&uart_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&spi_0 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&spi_0_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						cs-select = <0>;
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						m25p80@0 {
 | 
				
			||||||
 | 
							#address-cells = <1>;
 | 
				
			||||||
 | 
							#size-cells = <1>;
 | 
				
			||||||
 | 
							reg = <0>;
 | 
				
			||||||
 | 
							compatible = "n25q128a11";
 | 
				
			||||||
 | 
							linux,modalias = "m25p80", "n25q128a11";
 | 
				
			||||||
 | 
							spi-max-frequency = <50000000>;
 | 
				
			||||||
 | 
							use-default-sizes;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&blsp1_uart2 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&uart2_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						dmas = <&blsp_dma 2>,
 | 
				
			||||||
 | 
							<&blsp_dma 3>;
 | 
				
			||||||
 | 
						dma-names = "tx", "rx";
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
&qpic_bam {
 | 
					&qpic_bam {
 | 
				
			||||||
	status = "ok";
 | 
						status = "ok";
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&qpic_nand {
 | 
					&nand {
 | 
				
			||||||
	status = "ok";
 | 
						pinctrl-0 = <&qpic_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
	nand@0 {
 | 
					 | 
				
			||||||
		reg = <0>;
 | 
					 | 
				
			||||||
		#address-cells = <1>;
 | 
					 | 
				
			||||||
		#size-cells = <1>;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		nand-ecc-strength = <4>;
 | 
					 | 
				
			||||||
		nand-ecc-step-size = <512>;
 | 
					 | 
				
			||||||
		nand-bus-width = <8>;
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
&pcie_phy {
 | 
					 | 
				
			||||||
	status = "ok";
 | 
						status = "ok";
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&pcie0 {
 | 
					&ssphy_0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qusb_phy_0 {
 | 
				
			||||||
	status = "ok";
 | 
						status = "ok";
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -382,14 +433,6 @@
 | 
				
			|||||||
	status = "ok";
 | 
						status = "ok";
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&qusb_phy_0 {
 | 
					 | 
				
			||||||
	status = "ok";
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
&ssphy_0 {
 | 
					 | 
				
			||||||
	status = "ok";
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
&usb3 {
 | 
					&usb3 {
 | 
				
			||||||
	status = "ok";
 | 
						status = "ok";
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,5 @@
 | 
				
			|||||||
/dts-v1/;
 | 
					 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * Copyright (c) 2019-2021, The Linux Foundation. All rights reserved.
 | 
					 * Copyright (c) 2019, The Linux Foundation. All rights reserved.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Permission to use, copy, modify, and/or distribute this software for any
 | 
					 * Permission to use, copy, modify, and/or distribute this software for any
 | 
				
			||||||
 * purpose with or without fee is hereby granted, provided that the above
 | 
					 * purpose with or without fee is hereby granted, provided that the above
 | 
				
			||||||
@@ -15,7 +14,7 @@
 | 
				
			|||||||
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
					 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "ipq6018.dtsi"
 | 
					#include "qcom-ipq6018.dtsi"
 | 
				
			||||||
#include <dt-bindings/input/input.h>
 | 
					#include <dt-bindings/input/input.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/ {
 | 
					/ {
 | 
				
			||||||
@@ -37,47 +36,8 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	chosen {
 | 
						chosen {
 | 
				
			||||||
		bootargs = "console=ttyMSM0,115200,n8 rw init=/init";
 | 
							bootargs = "console=ttyMSM0,115200,n8 rw init=/init";
 | 
				
			||||||
#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
					 | 
				
			||||||
		bootargs-append = " swiotlb=1";
 | 
					 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
		bootargs-append = " swiotlb=1 coherent_pool=2M";
 | 
							bootargs-append = " swiotlb=1 coherent_pool=2M";
 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					 | 
				
			||||||
	/*
 | 
					 | 
				
			||||||
	 * +=========+==============+========================+
 | 
					 | 
				
			||||||
	 * |        |              |                         |
 | 
					 | 
				
			||||||
	 * | Region | Start Offset |          Size           |
 | 
					 | 
				
			||||||
	 * |        |              |                         |
 | 
					 | 
				
			||||||
	 * +--------+--------------+-------------------------+
 | 
					 | 
				
			||||||
	 * |        |              |                         |
 | 
					 | 
				
			||||||
	 * |        |              |                         |
 | 
					 | 
				
			||||||
	 * |        |              |                         |
 | 
					 | 
				
			||||||
	 * |        |              |                         |
 | 
					 | 
				
			||||||
	 * | Linux  |  0x41000000  |         139MB           |
 | 
					 | 
				
			||||||
	 * |        |              |                         |
 | 
					 | 
				
			||||||
	 * |        |              |                         |
 | 
					 | 
				
			||||||
	 * |        |              |                         |
 | 
					 | 
				
			||||||
	 * +--------+--------------+-------------------------+
 | 
					 | 
				
			||||||
	 * | TZ App |  0x49B00000  |           6MB           |
 | 
					 | 
				
			||||||
	 * +--------+--------------+-------------------------+
 | 
					 | 
				
			||||||
	 *
 | 
					 | 
				
			||||||
	 * From the available 145 MB for Linux in the first 256 MB,
 | 
					 | 
				
			||||||
	 * we are reserving 6 MB for TZAPP.
 | 
					 | 
				
			||||||
	 *
 | 
					 | 
				
			||||||
	 * Refer arch/arm64/boot/dts/qcom/qcom-ipq6018-memory.dtsi
 | 
					 | 
				
			||||||
	 * for memory layout.
 | 
					 | 
				
			||||||
	 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* TZAPP is enabled only in default memory profile */
 | 
					 | 
				
			||||||
#if !defined(__IPQ_MEM_PROFILE_256_MB__) && !defined(__IPQ_MEM_PROFILE_512_MB__)
 | 
					 | 
				
			||||||
	reserved-memory {
 | 
					 | 
				
			||||||
		tzapp:tzapp@49B00000 {	/* TZAPPS */
 | 
					 | 
				
			||||||
			no-map;
 | 
					 | 
				
			||||||
			reg = <0x0 0x49B00000 0x0 0x00600000>;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&tlmm {
 | 
					&tlmm {
 | 
				
			||||||
@@ -90,10 +50,59 @@
 | 
				
			|||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	spi_0_pins: spi_0_pins {
 | 
						qpic_pins: qpic_pins {
 | 
				
			||||||
		mux {
 | 
							data_0 {
 | 
				
			||||||
			pins = "gpio38", "gpio39", "gpio40", "gpio41";
 | 
								pins = "gpio15";
 | 
				
			||||||
			function = "blsp0_spi";
 | 
								function = "qpic_pad0";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_1 {
 | 
				
			||||||
 | 
								pins = "gpio12";
 | 
				
			||||||
 | 
								function = "qpic_pad1";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_2 {
 | 
				
			||||||
 | 
								pins = "gpio13";
 | 
				
			||||||
 | 
								function = "qpic_pad2";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_3 {
 | 
				
			||||||
 | 
								pins = "gpio14";
 | 
				
			||||||
 | 
								function = "qpic_pad3";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_4 {
 | 
				
			||||||
 | 
								pins = "gpio5";
 | 
				
			||||||
 | 
								function = "qpic_pad4";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_5 {
 | 
				
			||||||
 | 
								pins = "gpio6";
 | 
				
			||||||
 | 
								function = "qpic_pad5";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_6 {
 | 
				
			||||||
 | 
								pins = "gpio7";
 | 
				
			||||||
 | 
								function = "qpic_pad6";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_7 {
 | 
				
			||||||
 | 
								pins = "gpio8";
 | 
				
			||||||
 | 
								function = "qpic_pad7";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							qpic_pad {
 | 
				
			||||||
 | 
								pins = "gpio1", "gpio3", "gpio4",
 | 
				
			||||||
 | 
								       "gpio10", "gpio11", "gpio17";
 | 
				
			||||||
 | 
								function = "qpic_pad";
 | 
				
			||||||
			drive-strength = <8>;
 | 
								drive-strength = <8>;
 | 
				
			||||||
			bias-pull-down;
 | 
								bias-pull-down;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
@@ -286,18 +295,10 @@
 | 
				
			|||||||
	status = "ok";
 | 
						status = "ok";
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&qpic_nand {
 | 
					&nand {
 | 
				
			||||||
 | 
						pinctrl-0 = <&qpic_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
	status = "ok";
 | 
						status = "ok";
 | 
				
			||||||
 | 
					 | 
				
			||||||
	nand@0 {
 | 
					 | 
				
			||||||
		reg = <0>;
 | 
					 | 
				
			||||||
		#address-cells = <1>;
 | 
					 | 
				
			||||||
		#size-cells = <1>;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		nand-ecc-strength = <4>;
 | 
					 | 
				
			||||||
		nand-ecc-step-size = <512>;
 | 
					 | 
				
			||||||
		nand-bus-width = <8>;
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&ssphy_0 {
 | 
					&ssphy_0 {
 | 
				
			||||||
@@ -318,13 +319,16 @@
 | 
				
			|||||||
	status = "ok";
 | 
						status = "ok";
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&q6_region {
 | 
				
			||||||
 | 
						reg = <0x0 0x4ab00000 0x0 0x05500000>;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&CPU0 {
 | 
					&CPU0 {
 | 
				
			||||||
	operating-points = <
 | 
						operating-points = <
 | 
				
			||||||
		/* kHz   uV (fixed) */
 | 
							/* kHz   uV (fixed) */
 | 
				
			||||||
		864000   1100000
 | 
							864000   1100000
 | 
				
			||||||
		1056000  1100000
 | 
							1056000  1100000
 | 
				
			||||||
		1200000  1100000
 | 
							1200000  1100000
 | 
				
			||||||
		1608000  1100000
 | 
					 | 
				
			||||||
	>;
 | 
						>;
 | 
				
			||||||
	clock-latency = <200000>;
 | 
						clock-latency = <200000>;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
@@ -335,7 +339,6 @@
 | 
				
			|||||||
		864000   1100000
 | 
							864000   1100000
 | 
				
			||||||
		1056000  1100000
 | 
							1056000  1100000
 | 
				
			||||||
		1200000  1100000
 | 
							1200000  1100000
 | 
				
			||||||
		1608000  1100000
 | 
					 | 
				
			||||||
	>;
 | 
						>;
 | 
				
			||||||
	clock-latency = <200000>;
 | 
						clock-latency = <200000>;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
@@ -346,7 +349,6 @@
 | 
				
			|||||||
		864000   1100000
 | 
							864000   1100000
 | 
				
			||||||
		1056000  1100000
 | 
							1056000  1100000
 | 
				
			||||||
		1200000  1100000
 | 
							1200000  1100000
 | 
				
			||||||
		1608000  1100000
 | 
					 | 
				
			||||||
	>;
 | 
						>;
 | 
				
			||||||
	clock-latency = <200000>;
 | 
						clock-latency = <200000>;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
@@ -357,7 +359,6 @@
 | 
				
			|||||||
		864000   1100000
 | 
							864000   1100000
 | 
				
			||||||
		1056000  1100000
 | 
							1056000  1100000
 | 
				
			||||||
		1200000  1100000
 | 
							1200000  1100000
 | 
				
			||||||
		1608000  1100000
 | 
					 | 
				
			||||||
	>;
 | 
						>;
 | 
				
			||||||
	clock-latency = <200000>;
 | 
						clock-latency = <200000>;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										344
									
								
								feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-hfcl-ion4x.dts
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										344
									
								
								feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-hfcl-ion4x.dts
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							@@ -1,259 +1,113 @@
 | 
				
			|||||||
// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
 | 
					/dts-v1/;
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * IPQ6018 CP01 board device tree source
 | 
					 * Copyright (c) 2019, The Linux Foundation. All rights reserved.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Copyright (c) 2019-2021 The Linux Foundation. All rights reserved.
 | 
					 * Permission to use, copy, modify, and/or distribute this software for any
 | 
				
			||||||
 | 
					 * purpose with or without fee is hereby granted, provided that the above
 | 
				
			||||||
 | 
					 * copyright notice and this permission notice appear in all copies.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 | 
				
			||||||
 | 
					 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 | 
				
			||||||
 | 
					 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 | 
				
			||||||
 | 
					 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 | 
				
			||||||
 | 
					 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 | 
				
			||||||
 | 
					 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 | 
				
			||||||
 | 
					 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/dts-v1/;
 | 
					#include "qcom-ipq6018-cp01-hfcl.dtsi"
 | 
				
			||||||
 | 
					#include "qcom-ipq6018-rpm-regulator.dtsi"
 | 
				
			||||||
#include "ipq6018.dtsi"
 | 
					#include "qcom-ipq6018-cpr-regulator.dtsi"
 | 
				
			||||||
#include "ipq6018-cpr-regulator.dtsi"
 | 
					#include "qcom-ipq6018-cp-cpu.dtsi"
 | 
				
			||||||
#include <dt-bindings/input/input.h>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
/ {
 | 
					/ {
 | 
				
			||||||
	aliases {
 | 
						model = "HFCL ION4X";
 | 
				
			||||||
		serial0 = &blsp1_uart3;
 | 
						compatible = "hfcl,ion4x", "qcom,ipq6018-cp01", "qcom,ipq6018";
 | 
				
			||||||
		serial1 = &blsp1_uart2;
 | 
					
 | 
				
			||||||
	/*
 | 
						/*
 | 
				
			||||||
		 * Aliases as required by u-boot
 | 
						 * +=========+==============+========================+
 | 
				
			||||||
		 * to patch MAC addresses
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * | Region | Start Offset |          Size           |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * +--------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * | Linux  |  0x41000000  |         139MB           |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * +--------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | TZ App |  0x49B00000  |           6MB           |
 | 
				
			||||||
 | 
						 * +--------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * From the available 145 MB for Linux in the first 256 MB,
 | 
				
			||||||
 | 
						 * we are reserving 6 MB for TZAPP.
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * Refer arch/arm64/boot/dts/qcom/qcom-ipq6018-memory.dtsi
 | 
				
			||||||
 | 
						 * for memory layout.
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
		ethernet0 = "/soc/dp1";
 | 
					
 | 
				
			||||||
		ethernet1 = "/soc/dp2";
 | 
					/* TZAPP is enabled in default memory profile only */
 | 
				
			||||||
 | 
					#if !defined(__IPQ_MEM_PROFILE_256_MB__) && !defined(__IPQ_MEM_PROFILE_512_MB__)
 | 
				
			||||||
 | 
						reserved-memory {
 | 
				
			||||||
 | 
							tzapp:tzapp@49B00000 {	/* TZAPPS */
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x49B00000 0x0 0x00600000>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					 | 
				
			||||||
	chosen {
 | 
					 | 
				
			||||||
		stdout-path = "serial0:115200n8";
 | 
					 | 
				
			||||||
		bootargs-append = " swiotlb=1";
 | 
					 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
};
 | 
					#endif
 | 
				
			||||||
 | 
					 | 
				
			||||||
&blsp1_uart3 {
 | 
					 | 
				
			||||||
	pinctrl-0 = <&serial_3_pins>;
 | 
					 | 
				
			||||||
	pinctrl-names = "default";
 | 
					 | 
				
			||||||
	status = "ok";
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
&spi_0 {
 | 
					 | 
				
			||||||
	pinctrl-0 = <&spi_0_pins>;
 | 
					 | 
				
			||||||
	pinctrl-names = "default";
 | 
					 | 
				
			||||||
	cs-select = <0>;
 | 
					 | 
				
			||||||
	status = "ok";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	m25p80@0 {
 | 
					 | 
				
			||||||
		#address-cells = <1>;
 | 
					 | 
				
			||||||
		#size-cells = <1>;
 | 
					 | 
				
			||||||
		reg = <0>;
 | 
					 | 
				
			||||||
		compatible = "n25q128a11";
 | 
					 | 
				
			||||||
		linux,modalias = "m25p80", "n25q128a11";
 | 
					 | 
				
			||||||
		spi-max-frequency = <50000000>;
 | 
					 | 
				
			||||||
		use-default-sizes;
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
&blsp1_uart2 {
 | 
					 | 
				
			||||||
	pinctrl-0 = <&hsuart_pins &btcoex_pins>;
 | 
					 | 
				
			||||||
	pinctrl-names = "default";
 | 
					 | 
				
			||||||
	dmas = <&blsp_dma 2>,
 | 
					 | 
				
			||||||
		<&blsp_dma 3>;
 | 
					 | 
				
			||||||
	dma-names = "tx", "rx";
 | 
					 | 
				
			||||||
	status = "ok";
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&tlmm {
 | 
					&tlmm {
 | 
				
			||||||
	spi_0_pins: spi-0-pins {
 | 
						i2c_1_pins: i2c_1_pins {
 | 
				
			||||||
		pins = "gpio38", "gpio39", "gpio40", "gpio41";
 | 
					 | 
				
			||||||
		function = "blsp0_spi";
 | 
					 | 
				
			||||||
		drive-strength = <8>;
 | 
					 | 
				
			||||||
		bias-pull-down;
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	mdio_pins: mdio_pinmux {
 | 
					 | 
				
			||||||
		mux_0 {
 | 
					 | 
				
			||||||
			pins = "gpio64";
 | 
					 | 
				
			||||||
			function = "mdc";
 | 
					 | 
				
			||||||
			drive-strength = <8>;
 | 
					 | 
				
			||||||
			bias-pull-up;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
		mux_1 {
 | 
					 | 
				
			||||||
			pins = "gpio65";
 | 
					 | 
				
			||||||
			function = "mdio";
 | 
					 | 
				
			||||||
			drive-strength = <8>;
 | 
					 | 
				
			||||||
			bias-pull-up;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
		mux_2 {
 | 
					 | 
				
			||||||
			pins = "gpio75";
 | 
					 | 
				
			||||||
			function = "gpio";
 | 
					 | 
				
			||||||
			bias-pull-up;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
		mux_3 {
 | 
					 | 
				
			||||||
			pins = "gpio77";
 | 
					 | 
				
			||||||
			function = "gpio";
 | 
					 | 
				
			||||||
			bias-pull-up;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	hsuart_pins: hsuart_pins {
 | 
					 | 
				
			||||||
		mux {
 | 
							mux {
 | 
				
			||||||
			pins = "gpio71", "gpio72", "gpio69", "gpio70";
 | 
								pins = "gpio42", "gpio43";
 | 
				
			||||||
			function = "blsp1_uart";
 | 
								function = "blsp2_i2c";
 | 
				
			||||||
			drive-strength = <8>;
 | 
					 | 
				
			||||||
			bias-disable;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	button_pins: button_pins {
 | 
					 | 
				
			||||||
		reset_button {
 | 
					 | 
				
			||||||
			pins = "gpio53";
 | 
					 | 
				
			||||||
			function = "gpio";
 | 
					 | 
				
			||||||
			drive-strength = <8>;
 | 
					 | 
				
			||||||
			bias-pull-up;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	leds_pins: leds_pins {
 | 
					 | 
				
			||||||
		led_5g {
 | 
					 | 
				
			||||||
			pins = "gpio60";
 | 
					 | 
				
			||||||
			function = "gpio";
 | 
					 | 
				
			||||||
			drive-strength = <8>;
 | 
					 | 
				
			||||||
			bias-pull-down;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
		led_2g {
 | 
					 | 
				
			||||||
			pins = "gpio61";
 | 
					 | 
				
			||||||
			function = "gpio";
 | 
					 | 
				
			||||||
			drive-strength = <8>;
 | 
								drive-strength = <8>;
 | 
				
			||||||
			bias-pull-down;
 | 
								bias-pull-down;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	mdio_pins: mdio_pinmux {
 | 
						i2c_2_pins: i2c_2_pins {
 | 
				
			||||||
		mux_0 {
 | 
					                mux {
 | 
				
			||||||
			pins = "gpio64";
 | 
					                        pins = "gpio55", "gpio56";
 | 
				
			||||||
			function = "mdc";
 | 
					                        function = "blsp4_i2c";
 | 
				
			||||||
                        drive-strength = <8>;
 | 
					                        drive-strength = <8>;
 | 
				
			||||||
			bias-pull-up;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
		mux_1 {
 | 
					 | 
				
			||||||
			pins = "gpio65";
 | 
					 | 
				
			||||||
			function = "mdio";
 | 
					 | 
				
			||||||
			drive-strength = <8>;
 | 
					 | 
				
			||||||
			bias-pull-up;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
		mux_2 {
 | 
					 | 
				
			||||||
			pins = "gpio75";
 | 
					 | 
				
			||||||
			function = "gpio";
 | 
					 | 
				
			||||||
			bias-pull-up;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
		mux_3 {
 | 
					 | 
				
			||||||
			pins = "gpio77";
 | 
					 | 
				
			||||||
			function = "gpio";
 | 
					 | 
				
			||||||
			bias-pull-up;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	btcoex_pins: btcoex_pins {
 | 
					 | 
				
			||||||
		mux_0 {
 | 
					 | 
				
			||||||
			pins = "gpio51";
 | 
					 | 
				
			||||||
			function = "pta1_1";
 | 
					 | 
				
			||||||
			drive-strength = <6>;
 | 
					 | 
				
			||||||
			bias-pull-down;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
		mux_1 {
 | 
					 | 
				
			||||||
			pins = "gpio53";
 | 
					 | 
				
			||||||
			function = "pta1_0";
 | 
					 | 
				
			||||||
			drive-strength = <6>;
 | 
					 | 
				
			||||||
			bias-pull-down;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
		mux_2 {
 | 
					 | 
				
			||||||
			pins = "gpio52";
 | 
					 | 
				
			||||||
			function = "pta1_2";
 | 
					 | 
				
			||||||
			drive-strength = <6>;
 | 
					 | 
				
			||||||
                        bias-pull-down;
 | 
					                        bias-pull-down;
 | 
				
			||||||
                };
 | 
					                };
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&soc {
 | 
					&i2c_1 {
 | 
				
			||||||
	mdio: mdio@90000 {
 | 
						pinctrl-0 = <&i2c_1_pins>;
 | 
				
			||||||
		pinctrl-0 = <&mdio_pins>;
 | 
					 | 
				
			||||||
	pinctrl-names = "default";
 | 
						pinctrl-names = "default";
 | 
				
			||||||
		phy-reset-gpio = <&tlmm 77 0>;
 | 
					 | 
				
			||||||
	status = "ok";
 | 
						status = "ok";
 | 
				
			||||||
		phy0: ethernet-phy@0 {
 | 
					 | 
				
			||||||
			reg = <4>;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
		phy1: ethernet-phy@1 {
 | 
					 | 
				
			||||||
			reg = <30>;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	dp1 {
 | 
						lm75@48 {
 | 
				
			||||||
		device_type = "network";
 | 
							compatible = "lm75";
 | 
				
			||||||
		compatible = "qcom,nss-dp";
 | 
							reg = <0x48>;
 | 
				
			||||||
		qcom,id = <4>;
 | 
							status = "okay";
 | 
				
			||||||
		reg = <0x3a001600 0x200>;
 | 
					 | 
				
			||||||
		qcom,mactype = <0>;
 | 
					 | 
				
			||||||
		local-mac-address = [000000000000];
 | 
					 | 
				
			||||||
		qcom,link-poll = <1>;
 | 
					 | 
				
			||||||
		qcom,phy-mdio-addr = <4>;
 | 
					 | 
				
			||||||
		phy-mode = "sgmii";
 | 
					 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	dp2 {
 | 
					&i2c_2 {
 | 
				
			||||||
		device_type = "network";
 | 
					        pinctrl-0 = <&i2c_2_pins>;
 | 
				
			||||||
		compatible = "qcom,nss-dp";
 | 
					 | 
				
			||||||
		qcom,id = <5>;
 | 
					 | 
				
			||||||
		reg = <0x3a003000 0x3fff>;
 | 
					 | 
				
			||||||
		qcom,mactype = <1>;
 | 
					 | 
				
			||||||
		local-mac-address = [000000000000];
 | 
					 | 
				
			||||||
		qcom,link-poll = <1>;
 | 
					 | 
				
			||||||
		qcom,phy-mdio-addr = <30>;
 | 
					 | 
				
			||||||
		phy-mode = "sgmii";
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	ess-switch@3a000000 {
 | 
					 | 
				
			||||||
		switch_cpu_bmp = <0x1>;  /* cpu port bitmap */
 | 
					 | 
				
			||||||
		switch_lan_bmp = <0x10>; /* lan port bitmap */
 | 
					 | 
				
			||||||
		switch_wan_bmp = <0x20>; /* wan port bitmap */
 | 
					 | 
				
			||||||
		switch_inner_bmp = <0xc0>; /*inner port bitmap*/
 | 
					 | 
				
			||||||
		switch_mac_mode = <0xf>; /* mac mode for uniphy instance0*/
 | 
					 | 
				
			||||||
		switch_mac_mode1 = <0x14>; /* mac mode for uniphy instance1*/
 | 
					 | 
				
			||||||
		switch_mac_mode2 = <0xff>; /* mac mode for uniphy instance2*/
 | 
					 | 
				
			||||||
		qcom,port_phyinfo {
 | 
					 | 
				
			||||||
			port@4 {
 | 
					 | 
				
			||||||
				port_id = <4>;
 | 
					 | 
				
			||||||
				phy_address = <4>;
 | 
					 | 
				
			||||||
			};
 | 
					 | 
				
			||||||
			port@5 {
 | 
					 | 
				
			||||||
				port_id = <5>;
 | 
					 | 
				
			||||||
				phy_address = <30>;
 | 
					 | 
				
			||||||
				port_mac_sel = "QGMAC_PORT";
 | 
					 | 
				
			||||||
			};
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	nss-macsec0 {
 | 
					 | 
				
			||||||
		compatible = "qcom,nss-macsec";
 | 
					 | 
				
			||||||
		phy_addr = <30>;
 | 
					 | 
				
			||||||
		phy_access_mode = <0>;
 | 
					 | 
				
			||||||
		mdiobus = <&mdio>;
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	gpio_keys {
 | 
					 | 
				
			||||||
		compatible = "gpio-keys";
 | 
					 | 
				
			||||||
		pinctrl-0 = <&button_pins>;
 | 
					 | 
				
			||||||
        pinctrl-names = "default";
 | 
					        pinctrl-names = "default";
 | 
				
			||||||
 | 
					        status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		reset {
 | 
					&sdhc_2 {
 | 
				
			||||||
			label = "reset";
 | 
						pinctrl-0 = <&sd_pins>;
 | 
				
			||||||
			linux,code = <KEY_RESTART>;
 | 
						pinctrl-names = "default";
 | 
				
			||||||
			gpios = <&tlmm 53 GPIO_ACTIVE_LOW>;
 | 
						cd-gpios = <&tlmm 62 1>;
 | 
				
			||||||
			linux,input-type = <1>;
 | 
						sd-ldo-gpios = <&tlmm 66 0>;
 | 
				
			||||||
			debounce-interval = <60>;
 | 
						vqmmc-supply = <&ipq6018_l2_corner>;
 | 
				
			||||||
		};
 | 
						status = "ok";
 | 
				
			||||||
	};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&soc {
 | 
				
			||||||
        leds {
 | 
					        leds {
 | 
				
			||||||
                compatible = "gpio-leds";
 | 
					                compatible = "gpio-leds";
 | 
				
			||||||
                pinctrl-0 = <&leds_pins>;
 | 
					                pinctrl-0 = <&leds_pins>;
 | 
				
			||||||
@@ -274,32 +128,28 @@
 | 
				
			|||||||
        };
 | 
					        };
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&qpic_bam {
 | 
					&tlmm {
 | 
				
			||||||
	status = "ok";
 | 
						leds_pins: leds_pins {
 | 
				
			||||||
};
 | 
							led_5g {
 | 
				
			||||||
 | 
								pins = "gpio60";
 | 
				
			||||||
&qpic_nand {
 | 
								function = "gpio";
 | 
				
			||||||
	status = "ok";
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
	nand@0 {
 | 
							};
 | 
				
			||||||
		reg = <0>;
 | 
							led_2g {
 | 
				
			||||||
		#address-cells = <1>;
 | 
								pins = "gpio61";
 | 
				
			||||||
		#size-cells = <1>;
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
		nand-ecc-strength = <4>;
 | 
								bias-pull-down;
 | 
				
			||||||
		nand-ecc-step-size = <512>;
 | 
							};
 | 
				
			||||||
		nand-bus-width = <8>;
 | 
					 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&pcie_phy {
 | 
					/* TZAPP is enabled in default memory profile only */
 | 
				
			||||||
	status = "ok";
 | 
					#if !defined(__IPQ_MEM_PROFILE_256_MB__) && !defined(__IPQ_MEM_PROFILE_512_MB__)
 | 
				
			||||||
};
 | 
					&qseecom {
 | 
				
			||||||
 | 
						mem-start = <0x49B00000>;
 | 
				
			||||||
&pcie0 {
 | 
						mem-size = <0x600000>;
 | 
				
			||||||
	status = "ok";
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
&nss_crypto {
 | 
					 | 
				
			||||||
	status = "ok";
 | 
						status = "ok";
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -0,0 +1,155 @@
 | 
				
			|||||||
 | 
					/dts-v1/;
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 2019, The Linux Foundation. All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Permission to use, copy, modify, and/or distribute this software for any
 | 
				
			||||||
 | 
					 * purpose with or without fee is hereby granted, provided that the above
 | 
				
			||||||
 | 
					 * copyright notice and this permission notice appear in all copies.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 | 
				
			||||||
 | 
					 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 | 
				
			||||||
 | 
					 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 | 
				
			||||||
 | 
					 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 | 
				
			||||||
 | 
					 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 | 
				
			||||||
 | 
					 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 | 
				
			||||||
 | 
					 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "qcom-ipq6018-cp01-hfcl.dtsi"
 | 
				
			||||||
 | 
					#include "qcom-ipq6018-rpm-regulator.dtsi"
 | 
				
			||||||
 | 
					#include "qcom-ipq6018-cpr-regulator.dtsi"
 | 
				
			||||||
 | 
					#include "qcom-ipq6018-cp-cpu.dtsi"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/ {
 | 
				
			||||||
 | 
						model = "HFCL ION4X_2";
 | 
				
			||||||
 | 
						compatible = "hfcl,ion4x_2", "qcom,ipq6018-cp01", "qcom,ipq6018";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/*
 | 
				
			||||||
 | 
						 * +=========+==============+========================+
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * | Region | Start Offset |          Size           |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * +--------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * | Linux  |  0x41000000  |         139MB           |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * +--------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | TZ App |  0x49B00000  |           6MB           |
 | 
				
			||||||
 | 
						 * +--------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * From the available 145 MB for Linux in the first 256 MB,
 | 
				
			||||||
 | 
						 * we are reserving 6 MB for TZAPP.
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * Refer arch/arm64/boot/dts/qcom/qcom-ipq6018-memory.dtsi
 | 
				
			||||||
 | 
						 * for memory layout.
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* TZAPP is enabled in default memory profile only */
 | 
				
			||||||
 | 
					#if !defined(__IPQ_MEM_PROFILE_256_MB__) && !defined(__IPQ_MEM_PROFILE_512_MB__)
 | 
				
			||||||
 | 
						reserved-memory {
 | 
				
			||||||
 | 
							tzapp:tzapp@49B00000 {	/* TZAPPS */
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x49B00000 0x0 0x00600000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&tlmm {
 | 
				
			||||||
 | 
						i2c_1_pins: i2c_1_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio42", "gpio43";
 | 
				
			||||||
 | 
								function = "blsp2_i2c";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						i2c_2_pins: i2c_2_pins {
 | 
				
			||||||
 | 
					                mux {
 | 
				
			||||||
 | 
					                        pins = "gpio55", "gpio56";
 | 
				
			||||||
 | 
					                        function = "blsp4_i2c";
 | 
				
			||||||
 | 
					                        drive-strength = <8>;
 | 
				
			||||||
 | 
					                        bias-pull-down;
 | 
				
			||||||
 | 
					                };
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&i2c_1 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&i2c_1_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						lm75@48 {
 | 
				
			||||||
 | 
							compatible = "lm75";
 | 
				
			||||||
 | 
							reg = <0x48>;
 | 
				
			||||||
 | 
							status = "okay";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&i2c_2 {
 | 
				
			||||||
 | 
					        pinctrl-0 = <&i2c_2_pins>;
 | 
				
			||||||
 | 
					        pinctrl-names = "default";
 | 
				
			||||||
 | 
					        status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&sdhc_2 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&sd_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						cd-gpios = <&tlmm 62 1>;
 | 
				
			||||||
 | 
						sd-ldo-gpios = <&tlmm 66 0>;
 | 
				
			||||||
 | 
						vqmmc-supply = <&ipq6018_l2_corner>;
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&soc {
 | 
				
			||||||
 | 
					        leds {
 | 
				
			||||||
 | 
					                compatible = "gpio-leds";
 | 
				
			||||||
 | 
					                pinctrl-0 = <&leds_pins>;
 | 
				
			||||||
 | 
					                pinctrl-names = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                led@60 {
 | 
				
			||||||
 | 
					                        label = "blue:wifi5";
 | 
				
			||||||
 | 
					                        gpios = <&tlmm 60 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
 | 
					                        linux,default-trigger = "led_5g";
 | 
				
			||||||
 | 
					                        default-state = "off";
 | 
				
			||||||
 | 
					                };
 | 
				
			||||||
 | 
					                led@61 {
 | 
				
			||||||
 | 
					                        label = "blue:wifi2";
 | 
				
			||||||
 | 
					                        gpios = <&tlmm 61 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
 | 
					                        linux,default-trigger = "led_2g";
 | 
				
			||||||
 | 
					                        default-state = "off";
 | 
				
			||||||
 | 
					                };
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&tlmm {
 | 
				
			||||||
 | 
						leds_pins: leds_pins {
 | 
				
			||||||
 | 
							led_5g {
 | 
				
			||||||
 | 
								pins = "gpio60";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							led_2g {
 | 
				
			||||||
 | 
								pins = "gpio61";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* TZAPP is enabled in default memory profile only */
 | 
				
			||||||
 | 
					#if !defined(__IPQ_MEM_PROFILE_256_MB__) && !defined(__IPQ_MEM_PROFILE_512_MB__)
 | 
				
			||||||
 | 
					&qseecom {
 | 
				
			||||||
 | 
						mem-start = <0x49B00000>;
 | 
				
			||||||
 | 
						mem-size = <0x600000>;
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
@@ -0,0 +1,379 @@
 | 
				
			|||||||
 | 
					// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
 | 
				
			||||||
 | 
					/dts-v1/;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "qcom-ipq6018.dtsi"
 | 
				
			||||||
 | 
					#include "qcom-ipq6018-rpm-regulator.dtsi"
 | 
				
			||||||
 | 
					#include "qcom-ipq6018-cpr-regulator.dtsi"
 | 
				
			||||||
 | 
					#include "qcom-ipq6018-cp-cpu.dtsi"
 | 
				
			||||||
 | 
					#include <dt-bindings/input/input.h>
 | 
				
			||||||
 | 
					#include <dt-bindings/gpio/gpio.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/ {
 | 
				
			||||||
 | 
						model = "Indio UM-310AX V1";
 | 
				
			||||||
 | 
						compatible = "indio,um-310ax-v1", "qcom,ipq6018-cp03", "qcom,ipq6018";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						#address-cells = <0x2>;
 | 
				
			||||||
 | 
						#size-cells = <0x2>;
 | 
				
			||||||
 | 
						interrupt-parent = <&intc>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						aliases {
 | 
				
			||||||
 | 
							/* Aliases as required by u-boot to patch MAC addresses */
 | 
				
			||||||
 | 
							ethernet0 = "/soc/dp2";
 | 
				
			||||||
 | 
							ethernet1 = "/soc/dp1";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							serial0 = &blsp1_uart3;
 | 
				
			||||||
 | 
							serial1 = &blsp1_uart2;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led-boot = &led_system;
 | 
				
			||||||
 | 
							led-failsafe = &led_system;
 | 
				
			||||||
 | 
							led-running = &led_system;
 | 
				
			||||||
 | 
							led-upgrade = &led_system;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						chosen {
 | 
				
			||||||
 | 
							bootargs = "console=ttyMSM0,115200,n8 rw init=/init";
 | 
				
			||||||
 | 
							bootargs-append = " swiotlb=1 coherent_pool=2M";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* TZAPP is enabled only in default memory profile */
 | 
				
			||||||
 | 
					#if !defined(__IPQ_MEM_PROFILE_256_MB__) && !defined(__IPQ_MEM_PROFILE_512_MB__)
 | 
				
			||||||
 | 
						reserved-memory {
 | 
				
			||||||
 | 
							tzapp:tzapp@49B00000 {	/* TZAPPS */
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x49B00000 0x0 0x00600000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&tlmm {
 | 
				
			||||||
 | 
						uart_pins: uart_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio44", "gpio45";
 | 
				
			||||||
 | 
								function = "blsp2_uart";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						spi_0_pins: spi_0_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio38", "gpio39", "gpio40", "gpio41";
 | 
				
			||||||
 | 
								function = "blsp0_spi";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						qpic_pins: qpic_pins {
 | 
				
			||||||
 | 
							data_0 {
 | 
				
			||||||
 | 
								pins = "gpio15";
 | 
				
			||||||
 | 
								function = "qpic_pad0";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							data_1 {
 | 
				
			||||||
 | 
								pins = "gpio12";
 | 
				
			||||||
 | 
								function = "qpic_pad1";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							data_2 {
 | 
				
			||||||
 | 
								pins = "gpio13";
 | 
				
			||||||
 | 
								function = "qpic_pad2";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							data_3 {
 | 
				
			||||||
 | 
								pins = "gpio14";
 | 
				
			||||||
 | 
								function = "qpic_pad3";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							data_4 {
 | 
				
			||||||
 | 
								pins = "gpio5";
 | 
				
			||||||
 | 
								function = "qpic_pad4";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							data_5 {
 | 
				
			||||||
 | 
								pins = "gpio6";
 | 
				
			||||||
 | 
								function = "qpic_pad5";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							data_6 {
 | 
				
			||||||
 | 
								pins = "gpio7";
 | 
				
			||||||
 | 
								function = "qpic_pad6";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							data_7 {
 | 
				
			||||||
 | 
								pins = "gpio8";
 | 
				
			||||||
 | 
								function = "qpic_pad7";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							qpic_pad {
 | 
				
			||||||
 | 
								pins = "gpio1",  "gpio3",  "gpio4",
 | 
				
			||||||
 | 
								       "gpio10", "gpio11", "gpio17";
 | 
				
			||||||
 | 
								function = "qpic_pad";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						button_pins: button_pins {
 | 
				
			||||||
 | 
							rst_button {
 | 
				
			||||||
 | 
								pins = "gpio19";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						mdio_pins: mdio_pinmux {
 | 
				
			||||||
 | 
							mux_0 {
 | 
				
			||||||
 | 
								pins = "gpio64";
 | 
				
			||||||
 | 
								function = "mdc";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							mux_1 {
 | 
				
			||||||
 | 
								pins = "gpio65";
 | 
				
			||||||
 | 
								function = "mdio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							mux_2 {
 | 
				
			||||||
 | 
								pins = "gpio75";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						modem_power_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio27";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
								output-high;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						leds_pins: leds_pins {
 | 
				
			||||||
 | 
							led_blue {
 | 
				
			||||||
 | 
								pins = "gpio35";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <2>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led_green {
 | 
				
			||||||
 | 
								pins = "gpio37";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <2>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led_red {
 | 
				
			||||||
 | 
								pins = "gpio32";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <2>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&soc {
 | 
				
			||||||
 | 
						mdio: mdio@90000 {
 | 
				
			||||||
 | 
							status = "ok";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							pinctrl-0 = <&mdio_pins>;
 | 
				
			||||||
 | 
							pinctrl-names = "default";
 | 
				
			||||||
 | 
							phy-reset-gpio = <&tlmm 75 0>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							ethernet-phy@0 {
 | 
				
			||||||
 | 
								reg = <0x03>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							ethernet-phy@1 {
 | 
				
			||||||
 | 
								reg = <0x04>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						ess-switch@3a000000 {
 | 
				
			||||||
 | 
							switch_cpu_bmp =   <0x01>; /* cpu port bitmap */
 | 
				
			||||||
 | 
							switch_lan_bmp =   <0x10>; /* lan port bitmap */
 | 
				
			||||||
 | 
							switch_wan_bmp =   <0x20>; /* wan port bitmap */
 | 
				
			||||||
 | 
							switch_inner_bmp = <0x80>; /*inner port bitmap*/
 | 
				
			||||||
 | 
							switch_mac_mode =  <0x00>; /* mac mode for uniphy instance0*/
 | 
				
			||||||
 | 
							switch_mac_mode1 = <0xff>; /* mac mode for uniphy instance1*/
 | 
				
			||||||
 | 
							switch_mac_mode2 = <0xff>; /* mac mode for uniphy instance2*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							qcom,port_phyinfo {
 | 
				
			||||||
 | 
								port@3 {
 | 
				
			||||||
 | 
									port_id = <0x04>;
 | 
				
			||||||
 | 
									phy_address = <0x03>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								port@4 {
 | 
				
			||||||
 | 
									port_id = <0x05>;
 | 
				
			||||||
 | 
									phy_address = <0x04>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						dp1 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
							qcom,id = <0x04>;
 | 
				
			||||||
 | 
							reg = <0x3a001600 0x200>;
 | 
				
			||||||
 | 
							qcom,mactype = <0x00>;
 | 
				
			||||||
 | 
							local-mac-address = [00 00 00 00 00 00];
 | 
				
			||||||
 | 
							qcom,link-poll = <0x01>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <0x03>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						dp2 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
							qcom,id = <0x05>;
 | 
				
			||||||
 | 
							reg = <0x3a001800 0x200>;
 | 
				
			||||||
 | 
							qcom,mactype = <0x00>;
 | 
				
			||||||
 | 
							local-mac-address = [00 00 00 00 00 00];
 | 
				
			||||||
 | 
							qcom,link-poll = <0x01>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <0x04>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						gpio_keys {
 | 
				
			||||||
 | 
							compatible = "gpio-keys";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							pinctrl-0 = <&button_pins>;
 | 
				
			||||||
 | 
							pinctrl-names = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							reset {
 | 
				
			||||||
 | 
								label = "reset";
 | 
				
			||||||
 | 
								linux,code = <KEY_RESTART>;
 | 
				
			||||||
 | 
								gpios = <&tlmm 19 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
 | 
								linux,input-type = <1>;
 | 
				
			||||||
 | 
								debounce-interval = <60>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						leds {
 | 
				
			||||||
 | 
							compatible = "gpio-leds";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							pinctrl-0 = <&leds_pins>;
 | 
				
			||||||
 | 
							pinctrl-names = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led_system: system {
 | 
				
			||||||
 | 
								label = "green:system";
 | 
				
			||||||
 | 
								gpio = <&tlmm 37 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							wlan2g {
 | 
				
			||||||
 | 
								label = "blue:wlan2g";
 | 
				
			||||||
 | 
								gpio = <&tlmm 35 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							wlan5g {
 | 
				
			||||||
 | 
								label = "red:wlan5g";
 | 
				
			||||||
 | 
								gpio = <&tlmm 32 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&blsp1_uart3 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&uart_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&spi_0 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&spi_0_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						cs-select = <0>;
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						m25p80@0 {
 | 
				
			||||||
 | 
							#address-cells = <1>;
 | 
				
			||||||
 | 
							#size-cells = <1>;
 | 
				
			||||||
 | 
							reg = <0>;
 | 
				
			||||||
 | 
							compatible = "n25q128a11";
 | 
				
			||||||
 | 
							linux,modalias = "m25p80", "n25q128a11";
 | 
				
			||||||
 | 
							spi-max-frequency = <50000000>;
 | 
				
			||||||
 | 
							use-default-sizes;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qpic_bam {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&nand {
 | 
				
			||||||
 | 
						pinctrl-0 = <&qpic_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&nss_crypto {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&cpu0_opp_table {
 | 
				
			||||||
 | 
						compatible = "operating-points-v2";
 | 
				
			||||||
 | 
						opp-shared;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						opp03 {
 | 
				
			||||||
 | 
							opp-hz = /bits/ 64 <1200000000>;
 | 
				
			||||||
 | 
							opp-microvolt = <3>;
 | 
				
			||||||
 | 
							clock-latency-ns = <200000>;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/delete-node/ opp04;
 | 
				
			||||||
 | 
						/delete-node/ opp05;
 | 
				
			||||||
 | 
						/delete-node/ opp06;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* TZAPP is enabled in default memory profile only */
 | 
				
			||||||
 | 
					#if !defined(__IPQ_MEM_PROFILE_256_MB__) && !defined(__IPQ_MEM_PROFILE_512_MB__)
 | 
				
			||||||
 | 
					&qseecom {
 | 
				
			||||||
 | 
						mem-start = <0x49B00000>;
 | 
				
			||||||
 | 
						mem-size = <0x600000>;
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&ssphy_0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qusb_phy_0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qusb_phy_1 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&usb2 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&usb3 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
@@ -0,0 +1,379 @@
 | 
				
			|||||||
 | 
					// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
 | 
				
			||||||
 | 
					/dts-v1/;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "qcom-ipq6018.dtsi"
 | 
				
			||||||
 | 
					#include "qcom-ipq6018-rpm-regulator.dtsi"
 | 
				
			||||||
 | 
					#include "qcom-ipq6018-cpr-regulator.dtsi"
 | 
				
			||||||
 | 
					#include "qcom-ipq6018-cp-cpu.dtsi"
 | 
				
			||||||
 | 
					#include <dt-bindings/input/input.h>
 | 
				
			||||||
 | 
					#include <dt-bindings/gpio/gpio.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/ {
 | 
				
			||||||
 | 
						model = "Indio UM-510AXM V1";
 | 
				
			||||||
 | 
						compatible = "indio,um-510axm-v1", "qcom,ipq6018-cp03", "qcom,ipq6018";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						#address-cells = <0x2>;
 | 
				
			||||||
 | 
						#size-cells = <0x2>;
 | 
				
			||||||
 | 
						interrupt-parent = <&intc>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						aliases {
 | 
				
			||||||
 | 
							/* Aliases as required by u-boot to patch MAC addresses */
 | 
				
			||||||
 | 
							ethernet0 = "/soc/dp2";
 | 
				
			||||||
 | 
							ethernet1 = "/soc/dp1";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							serial0 = &blsp1_uart3;
 | 
				
			||||||
 | 
							serial1 = &blsp1_uart2;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led-boot = &led_system;
 | 
				
			||||||
 | 
							led-failsafe = &led_system;
 | 
				
			||||||
 | 
							led-running = &led_system;
 | 
				
			||||||
 | 
							led-upgrade = &led_system;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						chosen {
 | 
				
			||||||
 | 
							bootargs = "console=ttyMSM0,115200,n8 rw init=/init";
 | 
				
			||||||
 | 
							bootargs-append = " swiotlb=1 coherent_pool=2M";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* TZAPP is enabled only in default memory profile */
 | 
				
			||||||
 | 
					#if !defined(__IPQ_MEM_PROFILE_256_MB__) && !defined(__IPQ_MEM_PROFILE_512_MB__)
 | 
				
			||||||
 | 
						reserved-memory {
 | 
				
			||||||
 | 
							tzapp:tzapp@49B00000 {	/* TZAPPS */
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x49B00000 0x0 0x00600000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&tlmm {
 | 
				
			||||||
 | 
						uart_pins: uart_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio44", "gpio45";
 | 
				
			||||||
 | 
								function = "blsp2_uart";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						spi_0_pins: spi_0_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio38", "gpio39", "gpio40", "gpio41";
 | 
				
			||||||
 | 
								function = "blsp0_spi";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						qpic_pins: qpic_pins {
 | 
				
			||||||
 | 
							data_0 {
 | 
				
			||||||
 | 
								pins = "gpio15";
 | 
				
			||||||
 | 
								function = "qpic_pad0";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							data_1 {
 | 
				
			||||||
 | 
								pins = "gpio12";
 | 
				
			||||||
 | 
								function = "qpic_pad1";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							data_2 {
 | 
				
			||||||
 | 
								pins = "gpio13";
 | 
				
			||||||
 | 
								function = "qpic_pad2";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							data_3 {
 | 
				
			||||||
 | 
								pins = "gpio14";
 | 
				
			||||||
 | 
								function = "qpic_pad3";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							data_4 {
 | 
				
			||||||
 | 
								pins = "gpio5";
 | 
				
			||||||
 | 
								function = "qpic_pad4";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							data_5 {
 | 
				
			||||||
 | 
								pins = "gpio6";
 | 
				
			||||||
 | 
								function = "qpic_pad5";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							data_6 {
 | 
				
			||||||
 | 
								pins = "gpio7";
 | 
				
			||||||
 | 
								function = "qpic_pad6";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							data_7 {
 | 
				
			||||||
 | 
								pins = "gpio8";
 | 
				
			||||||
 | 
								function = "qpic_pad7";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							qpic_pad {
 | 
				
			||||||
 | 
								pins = "gpio1",  "gpio3",  "gpio4",
 | 
				
			||||||
 | 
								       "gpio10", "gpio11", "gpio17";
 | 
				
			||||||
 | 
								function = "qpic_pad";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						button_pins: button_pins {
 | 
				
			||||||
 | 
							rst_button {
 | 
				
			||||||
 | 
								pins = "gpio19";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						mdio_pins: mdio_pinmux {
 | 
				
			||||||
 | 
							mux_0 {
 | 
				
			||||||
 | 
								pins = "gpio64";
 | 
				
			||||||
 | 
								function = "mdc";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							mux_1 {
 | 
				
			||||||
 | 
								pins = "gpio65";
 | 
				
			||||||
 | 
								function = "mdio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							mux_2 {
 | 
				
			||||||
 | 
								pins = "gpio75";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						modem_power_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio27";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
								output-high;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						leds_pins: leds_pins {
 | 
				
			||||||
 | 
							led_blue {
 | 
				
			||||||
 | 
								pins = "gpio35";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <2>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led_green {
 | 
				
			||||||
 | 
								pins = "gpio37";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <2>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led_red {
 | 
				
			||||||
 | 
								pins = "gpio32";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <2>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&soc {
 | 
				
			||||||
 | 
						mdio: mdio@90000 {
 | 
				
			||||||
 | 
							status = "ok";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							pinctrl-0 = <&mdio_pins>;
 | 
				
			||||||
 | 
							pinctrl-names = "default";
 | 
				
			||||||
 | 
							phy-reset-gpio = <&tlmm 75 0>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							ethernet-phy@0 {
 | 
				
			||||||
 | 
								reg = <0x03>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							ethernet-phy@1 {
 | 
				
			||||||
 | 
								reg = <0x04>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						ess-switch@3a000000 {
 | 
				
			||||||
 | 
							switch_cpu_bmp =   <0x01>; /* cpu port bitmap */
 | 
				
			||||||
 | 
							switch_lan_bmp =   <0x10>; /* lan port bitmap */
 | 
				
			||||||
 | 
							switch_wan_bmp =   <0x20>; /* wan port bitmap */
 | 
				
			||||||
 | 
							switch_inner_bmp = <0x80>; /*inner port bitmap*/
 | 
				
			||||||
 | 
							switch_mac_mode =  <0x00>; /* mac mode for uniphy instance0*/
 | 
				
			||||||
 | 
							switch_mac_mode1 = <0xff>; /* mac mode for uniphy instance1*/
 | 
				
			||||||
 | 
							switch_mac_mode2 = <0xff>; /* mac mode for uniphy instance2*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							qcom,port_phyinfo {
 | 
				
			||||||
 | 
								port@3 {
 | 
				
			||||||
 | 
									port_id = <0x04>;
 | 
				
			||||||
 | 
									phy_address = <0x03>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								port@4 {
 | 
				
			||||||
 | 
									port_id = <0x05>;
 | 
				
			||||||
 | 
									phy_address = <0x04>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						dp1 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
							qcom,id = <0x04>;
 | 
				
			||||||
 | 
							reg = <0x3a001600 0x200>;
 | 
				
			||||||
 | 
							qcom,mactype = <0x00>;
 | 
				
			||||||
 | 
							local-mac-address = [00 00 00 00 00 00];
 | 
				
			||||||
 | 
							qcom,link-poll = <0x01>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <0x03>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						dp2 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
							qcom,id = <0x05>;
 | 
				
			||||||
 | 
							reg = <0x3a001800 0x200>;
 | 
				
			||||||
 | 
							qcom,mactype = <0x00>;
 | 
				
			||||||
 | 
							local-mac-address = [00 00 00 00 00 00];
 | 
				
			||||||
 | 
							qcom,link-poll = <0x01>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <0x04>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						gpio_keys {
 | 
				
			||||||
 | 
							compatible = "gpio-keys";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							pinctrl-0 = <&button_pins>;
 | 
				
			||||||
 | 
							pinctrl-names = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							reset {
 | 
				
			||||||
 | 
								label = "reset";
 | 
				
			||||||
 | 
								linux,code = <KEY_RESTART>;
 | 
				
			||||||
 | 
								gpios = <&tlmm 19 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
 | 
								linux,input-type = <1>;
 | 
				
			||||||
 | 
								debounce-interval = <60>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						leds {
 | 
				
			||||||
 | 
							compatible = "gpio-leds";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							pinctrl-0 = <&leds_pins>;
 | 
				
			||||||
 | 
							pinctrl-names = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led_system: system {
 | 
				
			||||||
 | 
								label = "green:system";
 | 
				
			||||||
 | 
								gpio = <&tlmm 37 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							wlan2g {
 | 
				
			||||||
 | 
								label = "blue:wlan2g";
 | 
				
			||||||
 | 
								gpio = <&tlmm 35 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							wlan5g {
 | 
				
			||||||
 | 
								label = "red:wlan5g";
 | 
				
			||||||
 | 
								gpio = <&tlmm 32 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&blsp1_uart3 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&uart_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&spi_0 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&spi_0_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						cs-select = <0>;
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						m25p80@0 {
 | 
				
			||||||
 | 
							#address-cells = <1>;
 | 
				
			||||||
 | 
							#size-cells = <1>;
 | 
				
			||||||
 | 
							reg = <0>;
 | 
				
			||||||
 | 
							compatible = "n25q128a11";
 | 
				
			||||||
 | 
							linux,modalias = "m25p80", "n25q128a11";
 | 
				
			||||||
 | 
							spi-max-frequency = <50000000>;
 | 
				
			||||||
 | 
							use-default-sizes;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qpic_bam {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&nand {
 | 
				
			||||||
 | 
						pinctrl-0 = <&qpic_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&nss_crypto {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&cpu0_opp_table {
 | 
				
			||||||
 | 
						compatible = "operating-points-v2";
 | 
				
			||||||
 | 
						opp-shared;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						opp03 {
 | 
				
			||||||
 | 
							opp-hz = /bits/ 64 <1200000000>;
 | 
				
			||||||
 | 
							opp-microvolt = <3>;
 | 
				
			||||||
 | 
							clock-latency-ns = <200000>;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/delete-node/ opp04;
 | 
				
			||||||
 | 
						/delete-node/ opp05;
 | 
				
			||||||
 | 
						/delete-node/ opp06;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* TZAPP is enabled in default memory profile only */
 | 
				
			||||||
 | 
					#if !defined(__IPQ_MEM_PROFILE_256_MB__) && !defined(__IPQ_MEM_PROFILE_512_MB__)
 | 
				
			||||||
 | 
					&qseecom {
 | 
				
			||||||
 | 
						mem-start = <0x49B00000>;
 | 
				
			||||||
 | 
						mem-size = <0x600000>;
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&ssphy_0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qusb_phy_0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qusb_phy_1 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&usb2 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&usb3 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
@@ -0,0 +1,379 @@
 | 
				
			|||||||
 | 
					// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
 | 
				
			||||||
 | 
					/dts-v1/;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "qcom-ipq6018.dtsi"
 | 
				
			||||||
 | 
					#include "qcom-ipq6018-rpm-regulator.dtsi"
 | 
				
			||||||
 | 
					#include "qcom-ipq6018-cpr-regulator.dtsi"
 | 
				
			||||||
 | 
					#include "qcom-ipq6018-cp-cpu.dtsi"
 | 
				
			||||||
 | 
					#include <dt-bindings/input/input.h>
 | 
				
			||||||
 | 
					#include <dt-bindings/gpio/gpio.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/ {
 | 
				
			||||||
 | 
						model = "Indio UM-510AXP V1";
 | 
				
			||||||
 | 
						compatible = "indio,um-510axp-v1", "qcom,ipq6018-cp03", "qcom,ipq6018";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						#address-cells = <0x2>;
 | 
				
			||||||
 | 
						#size-cells = <0x2>;
 | 
				
			||||||
 | 
						interrupt-parent = <&intc>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						aliases {
 | 
				
			||||||
 | 
							/* Aliases as required by u-boot to patch MAC addresses */
 | 
				
			||||||
 | 
							ethernet0 = "/soc/dp2";
 | 
				
			||||||
 | 
							ethernet1 = "/soc/dp1";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							serial0 = &blsp1_uart3;
 | 
				
			||||||
 | 
							serial1 = &blsp1_uart2;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led-boot = &led_system;
 | 
				
			||||||
 | 
							led-failsafe = &led_system;
 | 
				
			||||||
 | 
							led-running = &led_system;
 | 
				
			||||||
 | 
							led-upgrade = &led_system;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						chosen {
 | 
				
			||||||
 | 
							bootargs = "console=ttyMSM0,115200,n8 rw init=/init";
 | 
				
			||||||
 | 
							bootargs-append = " swiotlb=1 coherent_pool=2M";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* TZAPP is enabled only in default memory profile */
 | 
				
			||||||
 | 
					#if !defined(__IPQ_MEM_PROFILE_256_MB__) && !defined(__IPQ_MEM_PROFILE_512_MB__)
 | 
				
			||||||
 | 
						reserved-memory {
 | 
				
			||||||
 | 
							tzapp:tzapp@49B00000 {	/* TZAPPS */
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x49B00000 0x0 0x00600000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&tlmm {
 | 
				
			||||||
 | 
						uart_pins: uart_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio44", "gpio45";
 | 
				
			||||||
 | 
								function = "blsp2_uart";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						spi_0_pins: spi_0_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio38", "gpio39", "gpio40", "gpio41";
 | 
				
			||||||
 | 
								function = "blsp0_spi";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						qpic_pins: qpic_pins {
 | 
				
			||||||
 | 
							data_0 {
 | 
				
			||||||
 | 
								pins = "gpio15";
 | 
				
			||||||
 | 
								function = "qpic_pad0";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							data_1 {
 | 
				
			||||||
 | 
								pins = "gpio12";
 | 
				
			||||||
 | 
								function = "qpic_pad1";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							data_2 {
 | 
				
			||||||
 | 
								pins = "gpio13";
 | 
				
			||||||
 | 
								function = "qpic_pad2";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							data_3 {
 | 
				
			||||||
 | 
								pins = "gpio14";
 | 
				
			||||||
 | 
								function = "qpic_pad3";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							data_4 {
 | 
				
			||||||
 | 
								pins = "gpio5";
 | 
				
			||||||
 | 
								function = "qpic_pad4";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							data_5 {
 | 
				
			||||||
 | 
								pins = "gpio6";
 | 
				
			||||||
 | 
								function = "qpic_pad5";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							data_6 {
 | 
				
			||||||
 | 
								pins = "gpio7";
 | 
				
			||||||
 | 
								function = "qpic_pad6";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							data_7 {
 | 
				
			||||||
 | 
								pins = "gpio8";
 | 
				
			||||||
 | 
								function = "qpic_pad7";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							qpic_pad {
 | 
				
			||||||
 | 
								pins = "gpio1",  "gpio3",  "gpio4",
 | 
				
			||||||
 | 
								       "gpio10", "gpio11", "gpio17";
 | 
				
			||||||
 | 
								function = "qpic_pad";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						button_pins: button_pins {
 | 
				
			||||||
 | 
							rst_button {
 | 
				
			||||||
 | 
								pins = "gpio19";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						mdio_pins: mdio_pinmux {
 | 
				
			||||||
 | 
							mux_0 {
 | 
				
			||||||
 | 
								pins = "gpio64";
 | 
				
			||||||
 | 
								function = "mdc";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							mux_1 {
 | 
				
			||||||
 | 
								pins = "gpio65";
 | 
				
			||||||
 | 
								function = "mdio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							mux_2 {
 | 
				
			||||||
 | 
								pins = "gpio75";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						modem_power_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio27";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
								output-high;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						leds_pins: leds_pins {
 | 
				
			||||||
 | 
							led_blue {
 | 
				
			||||||
 | 
								pins = "gpio35";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <2>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led_green {
 | 
				
			||||||
 | 
								pins = "gpio37";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <2>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led_red {
 | 
				
			||||||
 | 
								pins = "gpio32";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <2>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&soc {
 | 
				
			||||||
 | 
						mdio: mdio@90000 {
 | 
				
			||||||
 | 
							status = "ok";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							pinctrl-0 = <&mdio_pins>;
 | 
				
			||||||
 | 
							pinctrl-names = "default";
 | 
				
			||||||
 | 
							phy-reset-gpio = <&tlmm 75 0>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							ethernet-phy@0 {
 | 
				
			||||||
 | 
								reg = <0x03>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							ethernet-phy@1 {
 | 
				
			||||||
 | 
								reg = <0x04>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						ess-switch@3a000000 {
 | 
				
			||||||
 | 
							switch_cpu_bmp =   <0x01>; /* cpu port bitmap */
 | 
				
			||||||
 | 
							switch_lan_bmp =   <0x10>; /* lan port bitmap */
 | 
				
			||||||
 | 
							switch_wan_bmp =   <0x20>; /* wan port bitmap */
 | 
				
			||||||
 | 
							switch_inner_bmp = <0x80>; /*inner port bitmap*/
 | 
				
			||||||
 | 
							switch_mac_mode =  <0x00>; /* mac mode for uniphy instance0*/
 | 
				
			||||||
 | 
							switch_mac_mode1 = <0xff>; /* mac mode for uniphy instance1*/
 | 
				
			||||||
 | 
							switch_mac_mode2 = <0xff>; /* mac mode for uniphy instance2*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							qcom,port_phyinfo {
 | 
				
			||||||
 | 
								port@3 {
 | 
				
			||||||
 | 
									port_id = <0x04>;
 | 
				
			||||||
 | 
									phy_address = <0x03>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								port@4 {
 | 
				
			||||||
 | 
									port_id = <0x05>;
 | 
				
			||||||
 | 
									phy_address = <0x04>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						dp1 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
							qcom,id = <0x04>;
 | 
				
			||||||
 | 
							reg = <0x3a001600 0x200>;
 | 
				
			||||||
 | 
							qcom,mactype = <0x00>;
 | 
				
			||||||
 | 
							local-mac-address = [00 00 00 00 00 00];
 | 
				
			||||||
 | 
							qcom,link-poll = <0x01>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <0x03>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						dp2 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
							qcom,id = <0x05>;
 | 
				
			||||||
 | 
							reg = <0x3a001800 0x200>;
 | 
				
			||||||
 | 
							qcom,mactype = <0x00>;
 | 
				
			||||||
 | 
							local-mac-address = [00 00 00 00 00 00];
 | 
				
			||||||
 | 
							qcom,link-poll = <0x01>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <0x04>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						gpio_keys {
 | 
				
			||||||
 | 
							compatible = "gpio-keys";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							pinctrl-0 = <&button_pins>;
 | 
				
			||||||
 | 
							pinctrl-names = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							reset {
 | 
				
			||||||
 | 
								label = "reset";
 | 
				
			||||||
 | 
								linux,code = <KEY_RESTART>;
 | 
				
			||||||
 | 
								gpios = <&tlmm 19 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
 | 
								linux,input-type = <1>;
 | 
				
			||||||
 | 
								debounce-interval = <60>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						leds {
 | 
				
			||||||
 | 
							compatible = "gpio-leds";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							pinctrl-0 = <&leds_pins>;
 | 
				
			||||||
 | 
							pinctrl-names = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led_system: system {
 | 
				
			||||||
 | 
								label = "green:system";
 | 
				
			||||||
 | 
								gpio = <&tlmm 37 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							wlan2g {
 | 
				
			||||||
 | 
								label = "blue:wlan2g";
 | 
				
			||||||
 | 
								gpio = <&tlmm 35 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							wlan5g {
 | 
				
			||||||
 | 
								label = "red:wlan5g";
 | 
				
			||||||
 | 
								gpio = <&tlmm 32 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&blsp1_uart3 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&uart_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&spi_0 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&spi_0_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						cs-select = <0>;
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						m25p80@0 {
 | 
				
			||||||
 | 
							#address-cells = <1>;
 | 
				
			||||||
 | 
							#size-cells = <1>;
 | 
				
			||||||
 | 
							reg = <0>;
 | 
				
			||||||
 | 
							compatible = "n25q128a11";
 | 
				
			||||||
 | 
							linux,modalias = "m25p80", "n25q128a11";
 | 
				
			||||||
 | 
							spi-max-frequency = <50000000>;
 | 
				
			||||||
 | 
							use-default-sizes;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qpic_bam {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&nand {
 | 
				
			||||||
 | 
						pinctrl-0 = <&qpic_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&nss_crypto {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&cpu0_opp_table {
 | 
				
			||||||
 | 
						compatible = "operating-points-v2";
 | 
				
			||||||
 | 
						opp-shared;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						opp03 {
 | 
				
			||||||
 | 
							opp-hz = /bits/ 64 <1200000000>;
 | 
				
			||||||
 | 
							opp-microvolt = <3>;
 | 
				
			||||||
 | 
							clock-latency-ns = <200000>;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/delete-node/ opp04;
 | 
				
			||||||
 | 
						/delete-node/ opp05;
 | 
				
			||||||
 | 
						/delete-node/ opp06;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* TZAPP is enabled in default memory profile only */
 | 
				
			||||||
 | 
					#if !defined(__IPQ_MEM_PROFILE_256_MB__) && !defined(__IPQ_MEM_PROFILE_512_MB__)
 | 
				
			||||||
 | 
					&qseecom {
 | 
				
			||||||
 | 
						mem-start = <0x49B00000>;
 | 
				
			||||||
 | 
						mem-size = <0x600000>;
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&ssphy_0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qusb_phy_0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qusb_phy_1 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&usb2 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&usb3 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
@@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					/dts-v1/;
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 2022, 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 "qcom-ipq6018-meshpp-s618.dtsi"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/ {
 | 
				
			||||||
 | 
						model = "MeshPlusPlus, Inc. S618 CP01";
 | 
				
			||||||
 | 
						compatible = "meshpp,s618-cp01", "qcom,ipq6018-cp01", "qcom,ipq6018";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
@@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					/dts-v1/;
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 2022, 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 "qcom-ipq6018-meshpp-s618.dtsi"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/ {
 | 
				
			||||||
 | 
						model = "MeshPlusPlus, Inc. S618 CP01";
 | 
				
			||||||
 | 
						compatible = "meshpp,s618-cp03", "qcom,ipq6018-cp03", "qcom,ipq6018";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
@@ -0,0 +1,789 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 2022, 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 "qcom-ipq6018.dtsi"
 | 
				
			||||||
 | 
					#include <dt-bindings/input/input.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/ {
 | 
				
			||||||
 | 
						#address-cells = <0x2>;
 | 
				
			||||||
 | 
						#size-cells = <0x2>;
 | 
				
			||||||
 | 
						interrupt-parent = <&intc>;
 | 
				
			||||||
 | 
						qcom,msm-id = <0x1A5 0x0>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						aliases {
 | 
				
			||||||
 | 
							ethernet0 = "/soc/dp1";
 | 
				
			||||||
 | 
							ethernet1 = "/soc/dp2";
 | 
				
			||||||
 | 
							ethernet2 = "/soc/dp3";
 | 
				
			||||||
 | 
							ethernet3 = "/soc/dp4";
 | 
				
			||||||
 | 
							ethernet4 = "/soc/dp5";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led-boot = &led_green;
 | 
				
			||||||
 | 
							led-running = &led_blue;
 | 
				
			||||||
 | 
							led-upgrade = &led_red;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						chosen {
 | 
				
			||||||
 | 
							bootargs = "console=ttyMSM0,115200,n8 rw init=/init";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
 | 
					                bootargs-append = " console=ttyMSM0,115200n8 panic=10 ubi.mtd=nand root=mtd:ubi_rootfs rootfstype=squashfs swiotlb=1 rootwait";
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					                bootargs-append = " console=ttyMSM0,115200n8 panic=10 ubi.mtd=nand root=mtd:ubi_rootfs rootfstype=squashfs swiotlb=1 coherent_pool=2M rootwait";
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/*
 | 
				
			||||||
 | 
						 * +=========+==============+========================+
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * | Region | Start Offset |          Size           |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * +--------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * | Linux  |  0x41000000  |         139MB           |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * +--------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | TZ App |  0x49B00000  |           6MB           |
 | 
				
			||||||
 | 
						 * +--------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * From the available 145 MB for Linux in the first 256 MB,
 | 
				
			||||||
 | 
						 * we are reserving 6 MB for TZAPP.
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * Refer arch/arm64/boot/dts/qcom/qcom-ipq6018-memory.dtsi
 | 
				
			||||||
 | 
						 * for memory layout.
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* TZAPP is enabled only in default memory profile */
 | 
				
			||||||
 | 
						reserved-memory {
 | 
				
			||||||
 | 
					#if !defined(__IPQ_MEM_PROFILE_256_MB__) && !defined(__IPQ_MEM_PROFILE_512_MB__)
 | 
				
			||||||
 | 
							tzapp:tzapp@49B00000 {	/* TZAPPS */
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x49B00000 0x0 0x00600000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
							qcn9000_pcie0@50200000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x50200000 0x0 0x03700000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							mhi_region0: dma_pool0@53900000 {
 | 
				
			||||||
 | 
								compatible = "shared-dma-pool";
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x53900000 0x0 0x01800000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&tlmm {
 | 
				
			||||||
 | 
						pinctrl-0 = <&sd_ldo_pins &generic_gpios &pcie_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						uart_pins: uart_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio44", "gpio45";
 | 
				
			||||||
 | 
								function = "blsp2_uart";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						sd_ldo_pins: sd_ldo_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio66";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <2>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
								output-low;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						spi_0_pins: spi_0_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio38", "gpio39", "gpio40", "gpio41";
 | 
				
			||||||
 | 
								function = "blsp0_spi";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						spi_1_pins: spi_1_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio69", "gpio71", "gpio72";
 | 
				
			||||||
 | 
								function = "blsp1_spi";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							spi_cs {
 | 
				
			||||||
 | 
								pins = "gpio70";
 | 
				
			||||||
 | 
								function = "blsp1_spi";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							quartz_interrupt {
 | 
				
			||||||
 | 
								pins = "gpio78";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								input;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							quartz_reset {
 | 
				
			||||||
 | 
								pins = "gpio79";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								output-low;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						button_pins: button_pins {
 | 
				
			||||||
 | 
							switch_button {
 | 
				
			||||||
 | 
								pins = "gpio9";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							reset_button {
 | 
				
			||||||
 | 
								pins = "gpio19";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						mdio_pins: mdio_pinmux {
 | 
				
			||||||
 | 
							mux_0 {
 | 
				
			||||||
 | 
								pins = "gpio64";
 | 
				
			||||||
 | 
								function = "mdc";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							mux_1 {
 | 
				
			||||||
 | 
								pins = "gpio65";
 | 
				
			||||||
 | 
								function = "mdio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							mux_2 {
 | 
				
			||||||
 | 
								pins = "gpio75";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							mux_3 {
 | 
				
			||||||
 | 
								pins = "gpio77";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						leds_pins: leds_pins {
 | 
				
			||||||
 | 
							led_5g {
 | 
				
			||||||
 | 
								pins = "gpio35";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							led_2g {
 | 
				
			||||||
 | 
								pins = "gpio37";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							m2_1_regulator {
 | 
				
			||||||
 | 
								pins = "gpio29";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							m2_1_pwr_en {
 | 
				
			||||||
 | 
								pins = "gpio49";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							m2_1_reset_n {
 | 
				
			||||||
 | 
								pins = "gpio32";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led_red: red {
 | 
				
			||||||
 | 
								pins = "gpio50";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led_green: green {
 | 
				
			||||||
 | 
								pins = "gpio54";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led_blue: blue {
 | 
				
			||||||
 | 
								pins = "gpio57";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						sd_pins: sd_pins {
 | 
				
			||||||
 | 
							mux_1 {
 | 
				
			||||||
 | 
								pins = "gpio62";
 | 
				
			||||||
 | 
								function = "sd_card";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							mux_2 {
 | 
				
			||||||
 | 
								pins = "gpio23";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive_strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
								output-high;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						extcon_usb_pins: extcon_usb_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio26";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <2>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						generic_gpios: generic_gpios {
 | 
				
			||||||
 | 
							gpio42 {
 | 
				
			||||||
 | 
								pins = "gpio42";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
								output-high;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						pcie_pins: pcie_pins {
 | 
				
			||||||
 | 
							pcie0_enable {
 | 
				
			||||||
 | 
								pins = "gpio34";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
								output-high;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        i2c_2_pins: i2c_2_pins {
 | 
				
			||||||
 | 
					                mux {
 | 
				
			||||||
 | 
					                        pins = "gpio55", "gpio56";
 | 
				
			||||||
 | 
					                        function = "gpio";
 | 
				
			||||||
 | 
					                        drive-strength = <16>;
 | 
				
			||||||
 | 
					                        bias-pull-up;
 | 
				
			||||||
 | 
					                        input-enable;
 | 
				
			||||||
 | 
					                };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                mux_2 {
 | 
				
			||||||
 | 
					                        pins = "gpio48";
 | 
				
			||||||
 | 
					                        function = "gpio";
 | 
				
			||||||
 | 
					                        drive_strength = <16>;
 | 
				
			||||||
 | 
					                        output-high;
 | 
				
			||||||
 | 
					                };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                mux_3 {
 | 
				
			||||||
 | 
					                        pins = "gpio73";
 | 
				
			||||||
 | 
					                        function = "gpio";
 | 
				
			||||||
 | 
					                        drive-stength = <16>;
 | 
				
			||||||
 | 
					                        output-low;
 | 
				
			||||||
 | 
					                };
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&soc {
 | 
				
			||||||
 | 
						extcon_usb: extcon_usb {
 | 
				
			||||||
 | 
							pinctrl-0 = <&extcon_usb_pins>;
 | 
				
			||||||
 | 
							pinctrl-names = "default";
 | 
				
			||||||
 | 
							id-gpio = <&tlmm 26 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
 | 
							status = "ok";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						mdio0: mdio@90000 {
 | 
				
			||||||
 | 
							pinctrl-0 = <&mdio_pins>;
 | 
				
			||||||
 | 
							pinctrl-names = "default";
 | 
				
			||||||
 | 
							phy-reset-gpio = <&tlmm 75 0 &tlmm 77 1>;
 | 
				
			||||||
 | 
							status = "ok";
 | 
				
			||||||
 | 
							phy0: ethernet-phy@0 {
 | 
				
			||||||
 | 
								reg = <0>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							phy1: ethernet-phy@1 {
 | 
				
			||||||
 | 
								reg = <1>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							phy2: ethernet-phy@2 {
 | 
				
			||||||
 | 
								reg = <2>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					                phy3: ethernet-phy@3 {
 | 
				
			||||||
 | 
					                        reg = <3>;
 | 
				
			||||||
 | 
					                };
 | 
				
			||||||
 | 
					                phy4: ethernet-phy@4 {
 | 
				
			||||||
 | 
					                        reg = <4>;
 | 
				
			||||||
 | 
					                };
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						ess0: ess-switch@3a000000 {
 | 
				
			||||||
 | 
							switch_cpu_bmp = <0x1>;  /* cpu port bitmap */
 | 
				
			||||||
 | 
							switch_lan_bmp = <0x1e>; /* lan port bitmap */
 | 
				
			||||||
 | 
							switch_wan_bmp = <0x20>; /* wan port bitmap */
 | 
				
			||||||
 | 
							switch_inner_bmp = <0xc0>; /*inner port bitmap*/
 | 
				
			||||||
 | 
							switch_mac_mode = <0x0>; /* mac mode for uniphy instance0*/
 | 
				
			||||||
 | 
							switch_mac_mode1 = <0xff>; /* mac mode for uniphy instance1*/
 | 
				
			||||||
 | 
							switch_mac_mode2 = <0xff>; /* mac mode for uniphy instance2*/
 | 
				
			||||||
 | 
							qcom,port_phyinfo {
 | 
				
			||||||
 | 
								port@0 {
 | 
				
			||||||
 | 
									port_id = <1>;
 | 
				
			||||||
 | 
									phy_address = <0>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
								port@1 {
 | 
				
			||||||
 | 
									port_id = <2>;
 | 
				
			||||||
 | 
									phy_address = <1>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
								port@2 {
 | 
				
			||||||
 | 
									port_id = <3>;
 | 
				
			||||||
 | 
									phy_address = <2>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
								port@3 {
 | 
				
			||||||
 | 
									port_id = <4>;
 | 
				
			||||||
 | 
									phy_address = <3>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
								port@4 {
 | 
				
			||||||
 | 
									port_id = <5>;
 | 
				
			||||||
 | 
									phy_address = <4>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						dp1 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
							qcom,id = <1>;
 | 
				
			||||||
 | 
							reg = <0x3a001000 0x200>;
 | 
				
			||||||
 | 
							qcom,mactype = <0>;
 | 
				
			||||||
 | 
							local-mac-address = [000000000000];
 | 
				
			||||||
 | 
							qcom,link-poll = <1>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <0>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						dp2 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
							qcom,id = <2>;
 | 
				
			||||||
 | 
							reg = <0x3a001200 0x200>;
 | 
				
			||||||
 | 
							qcom,mactype = <0>;
 | 
				
			||||||
 | 
							local-mac-address = [000000000000];
 | 
				
			||||||
 | 
							qcom,link-poll = <1>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <1>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						dp3 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
							qcom,id = <3>;
 | 
				
			||||||
 | 
							reg = <0x3a001400 0x200>;
 | 
				
			||||||
 | 
							qcom,mactype = <0>;
 | 
				
			||||||
 | 
							local-mac-address = [000000000000];
 | 
				
			||||||
 | 
							qcom,link-poll = <1>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <2>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						dp4 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
							qcom,id = <4>;
 | 
				
			||||||
 | 
							reg = <0x3a001600 0x200>;
 | 
				
			||||||
 | 
							qcom,mactype = <0>;
 | 
				
			||||||
 | 
							local-mac-address = [000000000000];
 | 
				
			||||||
 | 
							qcom,link-poll = <1>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <3>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						dp5 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
							qcom,id = <5>;
 | 
				
			||||||
 | 
							reg = <0x3a001800 0x200>;
 | 
				
			||||||
 | 
							qcom,mactype = <0>;
 | 
				
			||||||
 | 
							local-mac-address = [000000000000];
 | 
				
			||||||
 | 
							qcom,link-poll = <1>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <4>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						leds {
 | 
				
			||||||
 | 
							compatible = "gpio-leds";
 | 
				
			||||||
 | 
							pinctrl-0 = <&leds_pins>;
 | 
				
			||||||
 | 
							pinctrl-names = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led@29 {
 | 
				
			||||||
 | 
								label = "m2_1_regulator";
 | 
				
			||||||
 | 
								gpios = <&tlmm 29 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
								linux,default-trigger = "none";
 | 
				
			||||||
 | 
								default-state = "on";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led@49 {
 | 
				
			||||||
 | 
								label = "m2_1_pwr_en";
 | 
				
			||||||
 | 
								gpios = <&tlmm 49 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
								linux,default-trigger = "none";
 | 
				
			||||||
 | 
								default-state = "on";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led@32 {
 | 
				
			||||||
 | 
								label = "m2_1_reset_n";
 | 
				
			||||||
 | 
								gpios = <&tlmm 32 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
 | 
								linux,default-trigger = "none";
 | 
				
			||||||
 | 
								default-state = "off";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led@50 {
 | 
				
			||||||
 | 
								label = "red";
 | 
				
			||||||
 | 
								gpios = <&tlmm 50 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
								linux,default-trigger = "none";
 | 
				
			||||||
 | 
								default-state = "on";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led@54 {
 | 
				
			||||||
 | 
								label = "green";
 | 
				
			||||||
 | 
								gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
								linux,default-trigger = "none";
 | 
				
			||||||
 | 
								default-state = "on";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led@57 {
 | 
				
			||||||
 | 
								label = "blue";
 | 
				
			||||||
 | 
								gpios = <&tlmm 57 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
								linux,default-trigger = "none";
 | 
				
			||||||
 | 
								default-state = "off";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						gpio_keys {
 | 
				
			||||||
 | 
							compatible = "gpio-keys";
 | 
				
			||||||
 | 
							pinctrl-0 = <&button_pins>;
 | 
				
			||||||
 | 
							pinctrl-names = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							switch {
 | 
				
			||||||
 | 
								label = "switch";
 | 
				
			||||||
 | 
								linux,code = <KEY_WPS_BUTTON>;
 | 
				
			||||||
 | 
								gpios = <&tlmm 9 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
 | 
								linux,input-type = <1>;
 | 
				
			||||||
 | 
								debounce-interval = <60>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							reset {
 | 
				
			||||||
 | 
								label = "reset";
 | 
				
			||||||
 | 
								linux,code = <KEY_RESTART>;
 | 
				
			||||||
 | 
								gpios = <&tlmm 18 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
 | 
								linux,input-type = <1>;
 | 
				
			||||||
 | 
								debounce-interval = <60>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						i2c_2: i2c@0 { /* i2c gpio */
 | 
				
			||||||
 | 
							pinctrl-0 = <&i2c_2_pins>;
 | 
				
			||||||
 | 
						        pinctrl-names = "default";
 | 
				
			||||||
 | 
							compatible = "i2c-gpio";
 | 
				
			||||||
 | 
							gpios = <&tlmm 56 0>, <&tlmm 55 0>;
 | 
				
			||||||
 | 
							i2c-gpio,scl-open-drain;
 | 
				
			||||||
 | 
							i2c-gpio,delay-us = <7>;
 | 
				
			||||||
 | 
							#address-cells = <1>;
 | 
				
			||||||
 | 
							#size-cells = <0>;
 | 
				
			||||||
 | 
							status = "ok";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						wifi3: wifi3@f00000 {
 | 
				
			||||||
 | 
							qcom,wlan-ramdump-dynamic = <0x400000>;
 | 
				
			||||||
 | 
							mhi,max-channels = <30>;
 | 
				
			||||||
 | 
							mhi,timeout = <10000>;
 | 
				
			||||||
 | 
							#address-cells = <1>;
 | 
				
			||||||
 | 
							#size-cells = <0>;
 | 
				
			||||||
 | 
							qrtr_node_id = <0x20>;
 | 
				
			||||||
 | 
							qca,auto-restart;
 | 
				
			||||||
 | 
					#ifdef __IPQ_MEM_PROFILE_512_MB__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						      /* QCN9000 tgt-mem-mode=1 layout - 30MB
 | 
				
			||||||
 | 
						       * +=========+==============+=========+
 | 
				
			||||||
 | 
						       * |  Region | Start Offset |   Size  |
 | 
				
			||||||
 | 
						       * +---------+--------------+---------+
 | 
				
			||||||
 | 
						       * | BASE    |  0x4E400000  |   20MB  |
 | 
				
			||||||
 | 
						       * +---------+--------------+---------+
 | 
				
			||||||
 | 
						       * | M3 Dump |  0x4F800000  |   1MB   |
 | 
				
			||||||
 | 
						       * +---------+--------------+---------+
 | 
				
			||||||
 | 
						       * |  Caldb  |  0x4FA00000  |   8MB   |
 | 
				
			||||||
 | 
						       * +==================================+
 | 
				
			||||||
 | 
						       */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							base-addr = <0x4E400000>;
 | 
				
			||||||
 | 
							m3-dump-addr = <0x4F800000>;
 | 
				
			||||||
 | 
							qcom,caldb-addr = <0x4FA00000>;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						      /* QCN9000 tgt-mem-mode=0 layout - 55MB
 | 
				
			||||||
 | 
						       * +=========+==============+=========+
 | 
				
			||||||
 | 
						       * |  Region | Start Offset |   Size  |
 | 
				
			||||||
 | 
						       * +---------+--------------+---------+
 | 
				
			||||||
 | 
						       * | BASE    |  0x50200000  |   45MB  |
 | 
				
			||||||
 | 
						       * +---------+--------------+---------+
 | 
				
			||||||
 | 
						       * | M3 Dump |  0x52F00000  |   1MB   |
 | 
				
			||||||
 | 
						       * +---------+--------------+---------+
 | 
				
			||||||
 | 
						       * |  Caldb  |  0x53100000  |   8MB   |
 | 
				
			||||||
 | 
						       * +==================================+
 | 
				
			||||||
 | 
						       */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							base-addr = <0x50200000>;
 | 
				
			||||||
 | 
							m3-dump-addr = <0x52F00000>;
 | 
				
			||||||
 | 
							qcom,caldb-addr = <0x53100000>;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
							status = "ok";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							mhi_channels {
 | 
				
			||||||
 | 
								mhi_chan@0 {
 | 
				
			||||||
 | 
									reg = <0>;
 | 
				
			||||||
 | 
									label = "LOOPBACK";
 | 
				
			||||||
 | 
									mhi,num-elements = <32>;
 | 
				
			||||||
 | 
									mhi,event-ring = <1>;
 | 
				
			||||||
 | 
									mhi,chan-dir = <1>;
 | 
				
			||||||
 | 
									mhi,data-type = <0>;
 | 
				
			||||||
 | 
									mhi,doorbell-mode = <2>;
 | 
				
			||||||
 | 
									mhi,ee = <0x14>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								mhi_chan@1 {
 | 
				
			||||||
 | 
									reg = <1>;
 | 
				
			||||||
 | 
									label = "LOOPBACK";
 | 
				
			||||||
 | 
									mhi,num-elements = <32>;
 | 
				
			||||||
 | 
									mhi,event-ring = <1>;
 | 
				
			||||||
 | 
									mhi,chan-dir = <2>;
 | 
				
			||||||
 | 
									mhi,data-type = <0>;
 | 
				
			||||||
 | 
									mhi,doorbell-mode = <2>;
 | 
				
			||||||
 | 
									mhi,ee = <0x14>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								mhi_chan@4 {
 | 
				
			||||||
 | 
									reg = <4>;
 | 
				
			||||||
 | 
									label = "DIAG";
 | 
				
			||||||
 | 
									mhi,num-elements = <32>;
 | 
				
			||||||
 | 
									mhi,event-ring = <1>;
 | 
				
			||||||
 | 
									mhi,chan-dir = <1>;
 | 
				
			||||||
 | 
									mhi,data-type = <0>;
 | 
				
			||||||
 | 
									mhi,doorbell-mode = <2>;
 | 
				
			||||||
 | 
									mhi,ee = <0x14>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								mhi_chan@5 {
 | 
				
			||||||
 | 
									reg = <5>;
 | 
				
			||||||
 | 
									label = "DIAG";
 | 
				
			||||||
 | 
									mhi,num-elements = <32>;
 | 
				
			||||||
 | 
									mhi,event-ring = <1>;
 | 
				
			||||||
 | 
									mhi,chan-dir = <2>;
 | 
				
			||||||
 | 
									mhi,data-type = <0>;
 | 
				
			||||||
 | 
									mhi,doorbell-mode = <2>;
 | 
				
			||||||
 | 
									mhi,ee = <0x14>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								mhi_chan@20 {
 | 
				
			||||||
 | 
									reg = <20>;
 | 
				
			||||||
 | 
									label = "IPCR";
 | 
				
			||||||
 | 
									mhi,num-elements = <32>;
 | 
				
			||||||
 | 
									mhi,event-ring = <1>;
 | 
				
			||||||
 | 
									mhi,chan-dir = <1>;
 | 
				
			||||||
 | 
									mhi,data-type = <1>;
 | 
				
			||||||
 | 
									mhi,doorbell-mode = <2>;
 | 
				
			||||||
 | 
									mhi,ee = <0x14>;
 | 
				
			||||||
 | 
									mhi,auto-start;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								mhi_chan@21 {
 | 
				
			||||||
 | 
									reg = <21>;
 | 
				
			||||||
 | 
									label = "IPCR";
 | 
				
			||||||
 | 
									mhi,num-elements = <32>;
 | 
				
			||||||
 | 
									mhi,event-ring = <1>;
 | 
				
			||||||
 | 
									mhi,chan-dir = <2>;
 | 
				
			||||||
 | 
									mhi,data-type = <0>;
 | 
				
			||||||
 | 
									mhi,doorbell-mode = <2>;
 | 
				
			||||||
 | 
									mhi,ee = <0x14>;
 | 
				
			||||||
 | 
									mhi,auto-queue;
 | 
				
			||||||
 | 
									mhi,auto-start;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							mhi_events {
 | 
				
			||||||
 | 
								mhi_event@0 {
 | 
				
			||||||
 | 
									mhi,num-elements = <32>;
 | 
				
			||||||
 | 
									mhi,intmod = <1>;
 | 
				
			||||||
 | 
									mhi,msi = <1>;
 | 
				
			||||||
 | 
									mhi,priority = <1>;
 | 
				
			||||||
 | 
									mhi,brstmode = <2>;
 | 
				
			||||||
 | 
									mhi,data-type = <1>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								mhi_event@1 {
 | 
				
			||||||
 | 
									mhi,num-elements = <256>;
 | 
				
			||||||
 | 
									mhi,intmod = <1>;
 | 
				
			||||||
 | 
									mhi,msi = <2>;
 | 
				
			||||||
 | 
									mhi,priority = <1>;
 | 
				
			||||||
 | 
									mhi,brstmode = <2>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							mhi_devices {
 | 
				
			||||||
 | 
								mhi_qrtr {
 | 
				
			||||||
 | 
									mhi,chan = "IPCR";
 | 
				
			||||||
 | 
									qcom,net-id = <0>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&blsp1_uart3 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&uart_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qpic_bam {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&ssphy_0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qusb_phy_0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qusb_phy_1 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&usb2 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&usb3 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&nss_crypto {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&CPU0 {
 | 
				
			||||||
 | 
						operating-points = <
 | 
				
			||||||
 | 
							/* kHz   uV (fixed) */
 | 
				
			||||||
 | 
							864000   1100000
 | 
				
			||||||
 | 
							1056000  1100000
 | 
				
			||||||
 | 
							1200000  1100000
 | 
				
			||||||
 | 
							1608000  1100000
 | 
				
			||||||
 | 
						>;
 | 
				
			||||||
 | 
						clock-latency = <200000>;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&CPU1 {
 | 
				
			||||||
 | 
						operating-points = <
 | 
				
			||||||
 | 
							/* kHz   uV (fixed) */
 | 
				
			||||||
 | 
							864000   1100000
 | 
				
			||||||
 | 
							1056000  1100000
 | 
				
			||||||
 | 
							1200000  1100000
 | 
				
			||||||
 | 
							1608000  1100000
 | 
				
			||||||
 | 
						>;
 | 
				
			||||||
 | 
						clock-latency = <200000>;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&CPU2 {
 | 
				
			||||||
 | 
						operating-points = <
 | 
				
			||||||
 | 
							/* kHz   uV (fixed) */
 | 
				
			||||||
 | 
							864000   1100000
 | 
				
			||||||
 | 
							1056000  1100000
 | 
				
			||||||
 | 
							1200000  1100000
 | 
				
			||||||
 | 
							1608000  1100000
 | 
				
			||||||
 | 
						>;
 | 
				
			||||||
 | 
						clock-latency = <200000>;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&CPU3 {
 | 
				
			||||||
 | 
						operating-points = <
 | 
				
			||||||
 | 
							/* kHz   uV (fixed) */
 | 
				
			||||||
 | 
							864000   1100000
 | 
				
			||||||
 | 
							1056000  1100000
 | 
				
			||||||
 | 
							1200000  1100000
 | 
				
			||||||
 | 
							1608000  1100000
 | 
				
			||||||
 | 
						>;
 | 
				
			||||||
 | 
						clock-latency = <200000>;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&wifi0 {
 | 
				
			||||||
 | 
					        qcom,board_id = <0x10>;
 | 
				
			||||||
 | 
					        status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						pcie0_rp {
 | 
				
			||||||
 | 
							reg = <0 0 0 0 0>;
 | 
				
			||||||
 | 
							status = "ok";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							mhi_0: qcom,mhi@0 {
 | 
				
			||||||
 | 
								reg = <0 0 0 0 0 >;
 | 
				
			||||||
 | 
								qrtr_instance_id = <0x20>;
 | 
				
			||||||
 | 
								qcom,board_id = <0xa4>;
 | 
				
			||||||
 | 
					#if !defined(__IPQ_MEM_PROFILE_256_MB__)
 | 
				
			||||||
 | 
								memory-region = <&mhi_region0>;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie_phy {
 | 
				
			||||||
 | 
					        status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&spi_0 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&spi_0_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						cs-select = <0>;
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						m25p80@0 {
 | 
				
			||||||
 | 
							#address-cells = <1>;
 | 
				
			||||||
 | 
							#size-cells = <1>;
 | 
				
			||||||
 | 
							reg = <0>;
 | 
				
			||||||
 | 
							compatible = "n25q128a11";
 | 
				
			||||||
 | 
							linux,modalias = "m25p80", "n25q128a11";
 | 
				
			||||||
 | 
							spi-max-frequency = <50000000>;
 | 
				
			||||||
 | 
							use-default-sizes;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
@@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					/dts-v1/;
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 2019, The Linux Foundation. All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Permission to use, copy, modify, and/or distribute this software for any
 | 
				
			||||||
 | 
					 * purpose with or without fee is hereby granted, provided that the above
 | 
				
			||||||
 | 
					 * copyright notice and this permission notice appear in all copies.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 | 
				
			||||||
 | 
					 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 | 
				
			||||||
 | 
					 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 | 
				
			||||||
 | 
					 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 | 
				
			||||||
 | 
					 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 | 
				
			||||||
 | 
					 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 | 
				
			||||||
 | 
					 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "qcom-ipq6018-pax1800.dtsi"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/ {
 | 
				
			||||||
 | 
						model = "Plasma Cloud PAX1800 v1";
 | 
				
			||||||
 | 
						compatible = "plasmacloud,pax1800-v1", "qcom,ipq6018-cp03", "qcom,ipq6018";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
@@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					/dts-v1/;
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 2019, The Linux Foundation. All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Permission to use, copy, modify, and/or distribute this software for any
 | 
				
			||||||
 | 
					 * purpose with or without fee is hereby granted, provided that the above
 | 
				
			||||||
 | 
					 * copyright notice and this permission notice appear in all copies.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 | 
				
			||||||
 | 
					 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 | 
				
			||||||
 | 
					 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 | 
				
			||||||
 | 
					 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 | 
				
			||||||
 | 
					 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 | 
				
			||||||
 | 
					 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 | 
				
			||||||
 | 
					 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "qcom-ipq6018-pax1800.dtsi"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/ {
 | 
				
			||||||
 | 
						model = "Plasma Cloud PAX1800 v2";
 | 
				
			||||||
 | 
						compatible = "plasmacloud,pax1800-v2", "qcom,ipq6018-cp03", "qcom,ipq6018";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
@@ -0,0 +1,315 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 2019, The Linux Foundation. All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Permission to use, copy, modify, and/or distribute this software for any
 | 
				
			||||||
 | 
					 * purpose with or without fee is hereby granted, provided that the above
 | 
				
			||||||
 | 
					 * copyright notice and this permission notice appear in all copies.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 | 
				
			||||||
 | 
					 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 | 
				
			||||||
 | 
					 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 | 
				
			||||||
 | 
					 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 | 
				
			||||||
 | 
					 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 | 
				
			||||||
 | 
					 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 | 
				
			||||||
 | 
					 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "qcom-ipq6018.dtsi"
 | 
				
			||||||
 | 
					#include "qcom-ipq6018-rpm-regulator.dtsi"
 | 
				
			||||||
 | 
					#include "qcom-ipq6018-cpr-regulator.dtsi"
 | 
				
			||||||
 | 
					#include "qcom-ipq6018-cp-cpu.dtsi"
 | 
				
			||||||
 | 
					#include <dt-bindings/input/input.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/ {
 | 
				
			||||||
 | 
						#address-cells = <0x2>;
 | 
				
			||||||
 | 
						#size-cells = <0x2>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						interrupt-parent = <&intc>;
 | 
				
			||||||
 | 
						qcom,msm-id = <0x1A5 0x0>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						chosen {
 | 
				
			||||||
 | 
							bootargs = "console=ttyMSM0,115200,n8 rw init=/init";
 | 
				
			||||||
 | 
							bootargs-append = " swiotlb=1 coherent_pool=2M";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						aliases {
 | 
				
			||||||
 | 
							serial0 = &blsp1_uart3;
 | 
				
			||||||
 | 
							/*
 | 
				
			||||||
 | 
							 * Aliases as required by u-boot
 | 
				
			||||||
 | 
							 * to patch MAC addresses
 | 
				
			||||||
 | 
							 */
 | 
				
			||||||
 | 
							ethernet0 = "/soc/dp1";
 | 
				
			||||||
 | 
							ethernet1 = "/soc/dp2";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led-boot = &led_status_green;
 | 
				
			||||||
 | 
							led-failsafe = &led_status_green;
 | 
				
			||||||
 | 
							led-running = &led_status_green;
 | 
				
			||||||
 | 
							led-upgrade = &led_status_green;
 | 
				
			||||||
 | 
							led-uplink = &led_status_blue;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						gpio_keys {
 | 
				
			||||||
 | 
							compatible = "gpio-keys";
 | 
				
			||||||
 | 
							pinctrl-0 = <&button_pins>;
 | 
				
			||||||
 | 
							pinctrl-names = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							reset {
 | 
				
			||||||
 | 
								label = "reset";
 | 
				
			||||||
 | 
								linux,code = <KEY_RESTART>;
 | 
				
			||||||
 | 
								gpios = <&tlmm 24 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
 | 
								linux,input-type = <1>;
 | 
				
			||||||
 | 
								debounce-interval = <60>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						leds {
 | 
				
			||||||
 | 
							compatible = "gpio-leds";
 | 
				
			||||||
 | 
							pinctrl-0 = <&leds_pins>;
 | 
				
			||||||
 | 
							pinctrl-names = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							status_red {
 | 
				
			||||||
 | 
								label = "red:status";
 | 
				
			||||||
 | 
								gpios = <&tlmm 25 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
								linux,default-trigger = "default-off";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led_status_green: status_green {
 | 
				
			||||||
 | 
								label = "green:status";
 | 
				
			||||||
 | 
								gpios = <&tlmm 35 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led_status_blue: status_blue {
 | 
				
			||||||
 | 
								label = "blue:status";
 | 
				
			||||||
 | 
								gpios = <&tlmm 37 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
								linux,default-trigger = "default-off";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						watchdog {
 | 
				
			||||||
 | 
							compatible = "linux,wdt-gpio";
 | 
				
			||||||
 | 
							pinctrl-0 = <&watchdog_pins>;
 | 
				
			||||||
 | 
							pinctrl-names = "default";
 | 
				
			||||||
 | 
							gpios = <&tlmm 67 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
 | 
							hw_algo = "toggle";
 | 
				
			||||||
 | 
							hw_margin_ms = <2000>;
 | 
				
			||||||
 | 
							always-running;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/*
 | 
				
			||||||
 | 
						 * +=========+==============+========================+
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * | Region | Start Offset |          Size           |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * +--------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * | Linux  |  0x41000000  |         139MB           |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * +--------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | TZ App |  0x49B00000  |           6MB           |
 | 
				
			||||||
 | 
						 * +--------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * From the available 145 MB for Linux in the first 256 MB,
 | 
				
			||||||
 | 
						 * we are reserving 6 MB for TZAPP.
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * Refer arch/arm64/boot/dts/qcom/qcom-ipq6018-memory.dtsi
 | 
				
			||||||
 | 
						 * for memory layout.
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* TZAPP is enabled only in default memory profile */
 | 
				
			||||||
 | 
					#if !defined(__IPQ_MEM_PROFILE_256_MB__) && !defined(__IPQ_MEM_PROFILE_512_MB__)
 | 
				
			||||||
 | 
						reserved-memory {
 | 
				
			||||||
 | 
							tzapp:tzapp@49B00000 {	/* TZAPPS */
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x49B00000 0x0 0x00600000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&tlmm {
 | 
				
			||||||
 | 
						uart_pins: uart_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio44", "gpio45";
 | 
				
			||||||
 | 
								function = "blsp2_uart";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						spi_0_pins: spi_0_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio38", "gpio39", "gpio40", "gpio41";
 | 
				
			||||||
 | 
								function = "blsp0_spi";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						button_pins: button_pins {
 | 
				
			||||||
 | 
							reset_button {
 | 
				
			||||||
 | 
								pins = "gpio24";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						mdio_pins: mdio_pinmux {
 | 
				
			||||||
 | 
							mux_0 {
 | 
				
			||||||
 | 
								pins = "gpio64";
 | 
				
			||||||
 | 
								function = "mdc";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							mux_1 {
 | 
				
			||||||
 | 
								pins = "gpio65";
 | 
				
			||||||
 | 
								function = "mdio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							mux_2 {
 | 
				
			||||||
 | 
								pins = "gpio75";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						leds_pins: led_pinmux {
 | 
				
			||||||
 | 
							led_power_green {
 | 
				
			||||||
 | 
								pins = "gpio25";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							led_power_blue {
 | 
				
			||||||
 | 
								pins = "gpio35";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							led_power_red {
 | 
				
			||||||
 | 
								pins = "gpio37";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						watchdog_pins: watchdog_pinmux {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio67";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								bias-none;
 | 
				
			||||||
 | 
								output-low;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&soc {
 | 
				
			||||||
 | 
						mdio@90000 {
 | 
				
			||||||
 | 
							pinctrl-0 = <&mdio_pins>;
 | 
				
			||||||
 | 
							pinctrl-names = "default";
 | 
				
			||||||
 | 
							phy-reset-gpio = <&tlmm 75 0>;
 | 
				
			||||||
 | 
							status = "ok";
 | 
				
			||||||
 | 
							phy0: ethernet-phy@0 {
 | 
				
			||||||
 | 
								reg = <3>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							phy1: ethernet-phy@1 {
 | 
				
			||||||
 | 
								reg = <4>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						ess-switch@3a000000 {
 | 
				
			||||||
 | 
							switch_cpu_bmp = <0x1>;  /* cpu port bitmap */
 | 
				
			||||||
 | 
							switch_lan_bmp = <0x08>; /* lan port bitmap */
 | 
				
			||||||
 | 
							switch_wan_bmp = <0x10>; /* wan port bitmap */
 | 
				
			||||||
 | 
							switch_inner_bmp = <0xc0>; /*inner port bitmap*/
 | 
				
			||||||
 | 
							switch_mac_mode = <0x0>; /* mac mode for uniphy instance0*/
 | 
				
			||||||
 | 
							switch_mac_mode1 = <0xff>; /* mac mode for uniphy instance1*/
 | 
				
			||||||
 | 
							switch_mac_mode2 = <0xff>; /* mac mode for uniphy instance2*/
 | 
				
			||||||
 | 
							qcom,port_phyinfo {
 | 
				
			||||||
 | 
								port@3 {
 | 
				
			||||||
 | 
									port_id = <3>;
 | 
				
			||||||
 | 
									phy_address = <4>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
								port@4 {
 | 
				
			||||||
 | 
									port_id = <4>;
 | 
				
			||||||
 | 
									phy_address = <3>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						dp1 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
							qcom,id = <3>;
 | 
				
			||||||
 | 
							reg = <0x3a001400 0x200>;
 | 
				
			||||||
 | 
							qcom,mactype = <0>;
 | 
				
			||||||
 | 
							local-mac-address = [000000000000];
 | 
				
			||||||
 | 
							qcom,link-poll = <1>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <4>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						dp2 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
							qcom,id = <4>;
 | 
				
			||||||
 | 
							reg = <0x3a001600 0x200>;
 | 
				
			||||||
 | 
							qcom,mactype = <0>;
 | 
				
			||||||
 | 
							local-mac-address = [000000000000];
 | 
				
			||||||
 | 
							qcom,link-poll = <1>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <3>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&blsp1_uart3 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&uart_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&spi_0 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&spi_0_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						cs-select = <0>;
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						m25p80@0 {
 | 
				
			||||||
 | 
							#address-cells = <1>;
 | 
				
			||||||
 | 
							#size-cells = <1>;
 | 
				
			||||||
 | 
							reg = <0>;
 | 
				
			||||||
 | 
							compatible = "n25q128a11";
 | 
				
			||||||
 | 
							linux,modalias = "m25p80", "n25q128a11";
 | 
				
			||||||
 | 
							spi-max-frequency = <50000000>;
 | 
				
			||||||
 | 
							use-default-sizes;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qpic_bam {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&nss_crypto {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* TZAPP is enabled in default memory profile only */
 | 
				
			||||||
 | 
					#if !defined(__IPQ_MEM_PROFILE_256_MB__) && !defined(__IPQ_MEM_PROFILE_512_MB__)
 | 
				
			||||||
 | 
					&qseecom {
 | 
				
			||||||
 | 
						mem-start = <0x49B00000>;
 | 
				
			||||||
 | 
						mem-size = <0x600000>;
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&wifi0 {
 | 
				
			||||||
 | 
						status = "okay";
 | 
				
			||||||
 | 
						qcom,ath11k-calibration-variant = "PlasmaCloud-PAX1800";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
@@ -82,14 +82,24 @@
 | 
				
			|||||||
	 */
 | 
						 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* TZAPP is enabled only in default memory profile */
 | 
					/* TZAPP is enabled only in default memory profile */
 | 
				
			||||||
#if !defined(__IPQ_MEM_PROFILE_256_MB__) && !defined(__IPQ_MEM_PROFILE_512_MB__)
 | 
					 | 
				
			||||||
	reserved-memory {
 | 
						reserved-memory {
 | 
				
			||||||
 | 
					#if !defined(__IPQ_MEM_PROFILE_256_MB__) && !defined(__IPQ_MEM_PROFILE_512_MB__)
 | 
				
			||||||
		tzapp:tzapp@49B00000 {	/* TZAPPS */
 | 
							tzapp:tzapp@49B00000 {	/* TZAPPS */
 | 
				
			||||||
			no-map;
 | 
								no-map;
 | 
				
			||||||
			reg = <0x0 0x49B00000 0x0 0x00600000>;
 | 
								reg = <0x0 0x49B00000 0x0 0x00600000>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
							qcn9000_pcie0@50200000 {
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x50200000 0x0 0x02D00000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							mhi_region0: dma_pool0@52f00000 {
 | 
				
			||||||
 | 
								compatible = "shared-dma-pool";
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x52F00000 0x0 0x01800000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&tlmm {
 | 
					&tlmm {
 | 
				
			||||||
@@ -490,3 +500,49 @@
 | 
				
			|||||||
	//vqmmc-supply = <&ipq6018_l2_corner>;
 | 
						//vqmmc-supply = <&ipq6018_l2_corner>;
 | 
				
			||||||
	status = "ok";
 | 
						status = "ok";
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&wifi1 {
 | 
				
			||||||
 | 
						base-addr = <0x50200000>;
 | 
				
			||||||
 | 
						m3-dump-addr = <0x52500000>;
 | 
				
			||||||
 | 
						etr-addr = <0x52600000>;
 | 
				
			||||||
 | 
						caldb-addr = <0x52700000>;
 | 
				
			||||||
 | 
						hremote-size = <0x2300000>;
 | 
				
			||||||
 | 
						tgt-mem-mode = <0x0>;
 | 
				
			||||||
 | 
						board_id = <0xa4>;
 | 
				
			||||||
 | 
						caldb-size = <0x800000>;
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
						interrupts = <0 52 0>, <0 416 0>, <0 417 0>,
 | 
				
			||||||
 | 
					                     <0 418 0>, <0 419 0>, <0 420 0>,
 | 
				
			||||||
 | 
					                     <0 421 0>, <0 422 0>, <0 423 0>,
 | 
				
			||||||
 | 
					                     <0 424 0>, <0 425 0>, <0 426 0>,
 | 
				
			||||||
 | 
					                     <0 427 0>, <0 428 0>, <0 429 0>,
 | 
				
			||||||
 | 
					                     <0 430 0>, <0 431 0>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        interrupt-names = "msi", "msi_0", "msi_1",
 | 
				
			||||||
 | 
					                          "msi_2", "msi_3", "msi_4",
 | 
				
			||||||
 | 
					                          "msi_5", "msi_6", "msi_7",
 | 
				
			||||||
 | 
					                          "msi_8", "msi_9", "msi_10",
 | 
				
			||||||
 | 
					                          "msi_11", "msi_12", "msi_13",
 | 
				
			||||||
 | 
					                          "msi_14", "msi_15";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        qcom,msi-gicm-addr = <0x0B00A040>;
 | 
				
			||||||
 | 
					        qcom,msi-gicm-base = <0x1c0>;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie0_rp {
 | 
				
			||||||
 | 
					        status = "ok";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        mhi_0: qcom,mhi@0 {
 | 
				
			||||||
 | 
					                reg = <0 0 0 0 0 >;
 | 
				
			||||||
 | 
					                qrtr_instance_id = <0x20>;
 | 
				
			||||||
 | 
					                memory-region = <&mhi_region0>;
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie_phy {
 | 
				
			||||||
 | 
					        status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,39 +1,29 @@
 | 
				
			|||||||
 | 
					// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
 | 
				
			||||||
/dts-v1/;
 | 
					/dts-v1/;
 | 
				
			||||||
/*
 | 
					 | 
				
			||||||
 * Copyright (c) 2019-2021, The Linux Foundation. All rights reserved.
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Permission to use, copy, modify, and/or distribute this software for any
 | 
					 | 
				
			||||||
 * purpose with or without fee is hereby granted, provided that the above
 | 
					 | 
				
			||||||
 * copyright notice and this permission notice appear in all copies.
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 | 
					 | 
				
			||||||
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 | 
					 | 
				
			||||||
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 | 
					 | 
				
			||||||
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 | 
					 | 
				
			||||||
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 | 
					 | 
				
			||||||
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 | 
					 | 
				
			||||||
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "ipq6018.dtsi"
 | 
					#include "qcom-ipq6018.dtsi"
 | 
				
			||||||
#include "ipq6018-cpr-regulator.dtsi"
 | 
					#include "qcom-ipq6018-rpm-regulator.dtsi"
 | 
				
			||||||
 | 
					#include "qcom-ipq6018-cpr-regulator.dtsi"
 | 
				
			||||||
 | 
					#include "qcom-ipq6018-cp-cpu.dtsi"
 | 
				
			||||||
#include <dt-bindings/input/input.h>
 | 
					#include <dt-bindings/input/input.h>
 | 
				
			||||||
 | 
					#include <dt-bindings/gpio/gpio.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/ {
 | 
					/ {
 | 
				
			||||||
	#address-cells = <0x2>;
 | 
					 | 
				
			||||||
	#size-cells = <0x2>;
 | 
					 | 
				
			||||||
	model = "YunCore AX840";
 | 
						model = "YunCore AX840";
 | 
				
			||||||
	compatible = "yuncore,ax840", "qcom,ipq6018-cp03", "qcom,ipq6018";
 | 
						compatible = "yuncore,ax840", "qcom,ipq6018-cp03", "qcom,ipq6018";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						#address-cells = <0x2>;
 | 
				
			||||||
 | 
						#size-cells = <0x2>;
 | 
				
			||||||
	interrupt-parent = <&intc>;
 | 
						interrupt-parent = <&intc>;
 | 
				
			||||||
	qcom,msm-id = <0x1A5 0x0>;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	aliases {
 | 
						aliases {
 | 
				
			||||||
		/*
 | 
							/* Aliases as required by u-boot to patch MAC addresses */
 | 
				
			||||||
		 * Aliases as required by u-boot
 | 
					 | 
				
			||||||
		 * to patch MAC addresses
 | 
					 | 
				
			||||||
		 */
 | 
					 | 
				
			||||||
		ethernet0 = "/soc/dp2";
 | 
							ethernet0 = "/soc/dp2";
 | 
				
			||||||
		ethernet1 = "/soc/dp1";
 | 
							ethernet1 = "/soc/dp1";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							serial0 = &blsp1_uart3;
 | 
				
			||||||
 | 
							serial1 = &blsp1_uart2;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		led-boot = &led_system;
 | 
							led-boot = &led_system;
 | 
				
			||||||
		led-failsafe = &led_system;
 | 
							led-failsafe = &led_system;
 | 
				
			||||||
		led-running = &led_system;
 | 
							led-running = &led_system;
 | 
				
			||||||
@@ -42,38 +32,9 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	chosen {
 | 
						chosen {
 | 
				
			||||||
		bootargs = "console=ttyMSM0,115200,n8 rw init=/init";
 | 
							bootargs = "console=ttyMSM0,115200,n8 rw init=/init";
 | 
				
			||||||
#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
					 | 
				
			||||||
		bootargs-append = " swiotlb=1";
 | 
					 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
		bootargs-append = " swiotlb=1 coherent_pool=2M";
 | 
							bootargs-append = " swiotlb=1 coherent_pool=2M";
 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/*
 | 
					 | 
				
			||||||
	 * +=========+==============+========================+
 | 
					 | 
				
			||||||
	 * |        |              |                         |
 | 
					 | 
				
			||||||
	 * | Region | Start Offset |          Size           |
 | 
					 | 
				
			||||||
	 * |        |              |                         |
 | 
					 | 
				
			||||||
	 * +--------+--------------+-------------------------+
 | 
					 | 
				
			||||||
	 * |        |              |                         |
 | 
					 | 
				
			||||||
	 * |        |              |                         |
 | 
					 | 
				
			||||||
	 * |        |              |                         |
 | 
					 | 
				
			||||||
	 * |        |              |                         |
 | 
					 | 
				
			||||||
	 * | Linux  |  0x41000000  |         139MB           |
 | 
					 | 
				
			||||||
	 * |        |              |                         |
 | 
					 | 
				
			||||||
	 * |        |              |                         |
 | 
					 | 
				
			||||||
	 * |        |              |                         |
 | 
					 | 
				
			||||||
	 * +--------+--------------+-------------------------+
 | 
					 | 
				
			||||||
	 * | TZ App |  0x49B00000  |           6MB           |
 | 
					 | 
				
			||||||
	 * +--------+--------------+-------------------------+
 | 
					 | 
				
			||||||
	 *
 | 
					 | 
				
			||||||
	 * From the available 145 MB for Linux in the first 256 MB,
 | 
					 | 
				
			||||||
	 * we are reserving 6 MB for TZAPP.
 | 
					 | 
				
			||||||
	 *
 | 
					 | 
				
			||||||
	 * Refer arch/arm64/boot/dts/qcom/qcom-ipq6018-memory.dtsi
 | 
					 | 
				
			||||||
	 * for memory layout.
 | 
					 | 
				
			||||||
	 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* TZAPP is enabled only in default memory profile */
 | 
					/* TZAPP is enabled only in default memory profile */
 | 
				
			||||||
#if !defined(__IPQ_MEM_PROFILE_256_MB__) && !defined(__IPQ_MEM_PROFILE_512_MB__)
 | 
					#if !defined(__IPQ_MEM_PROFILE_256_MB__) && !defined(__IPQ_MEM_PROFILE_512_MB__)
 | 
				
			||||||
	reserved-memory {
 | 
						reserved-memory {
 | 
				
			||||||
@@ -104,13 +65,79 @@
 | 
				
			|||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	button_pins: button_pins {
 | 
						qpic_pins: qpic_pins {
 | 
				
			||||||
		wps_button {
 | 
							data_0 {
 | 
				
			||||||
			pins = "gpio9";
 | 
								pins = "gpio15";
 | 
				
			||||||
			function = "gpio";
 | 
								function = "qpic_pad0";
 | 
				
			||||||
			drive-strength = <8>;
 | 
								drive-strength = <8>;
 | 
				
			||||||
			bias-pull-down;
 | 
								bias-pull-down;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							data_1 {
 | 
				
			||||||
 | 
								pins = "gpio12";
 | 
				
			||||||
 | 
								function = "qpic_pad1";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							data_2 {
 | 
				
			||||||
 | 
								pins = "gpio13";
 | 
				
			||||||
 | 
								function = "qpic_pad2";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							data_3 {
 | 
				
			||||||
 | 
								pins = "gpio14";
 | 
				
			||||||
 | 
								function = "qpic_pad3";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							data_4 {
 | 
				
			||||||
 | 
								pins = "gpio5";
 | 
				
			||||||
 | 
								function = "qpic_pad4";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							data_5 {
 | 
				
			||||||
 | 
								pins = "gpio6";
 | 
				
			||||||
 | 
								function = "qpic_pad5";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							data_6 {
 | 
				
			||||||
 | 
								pins = "gpio7";
 | 
				
			||||||
 | 
								function = "qpic_pad6";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							data_7 {
 | 
				
			||||||
 | 
								pins = "gpio8";
 | 
				
			||||||
 | 
								function = "qpic_pad7";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							qpic_pad {
 | 
				
			||||||
 | 
								pins = "gpio1",  "gpio3",  "gpio4",
 | 
				
			||||||
 | 
								       "gpio10", "gpio11", "gpio17";
 | 
				
			||||||
 | 
								function = "qpic_pad";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						button_pins: button_pins {
 | 
				
			||||||
 | 
							rst_button {
 | 
				
			||||||
 | 
								pins = "gpio19";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	mdio_pins: mdio_pinmux {
 | 
						mdio_pins: mdio_pinmux {
 | 
				
			||||||
@@ -120,12 +147,14 @@
 | 
				
			|||||||
			drive-strength = <8>;
 | 
								drive-strength = <8>;
 | 
				
			||||||
			bias-pull-up;
 | 
								bias-pull-up;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		mux_1 {
 | 
							mux_1 {
 | 
				
			||||||
			pins = "gpio65";
 | 
								pins = "gpio65";
 | 
				
			||||||
			function = "mdio";
 | 
								function = "mdio";
 | 
				
			||||||
			drive-strength = <8>;
 | 
								drive-strength = <8>;
 | 
				
			||||||
			bias-pull-up;
 | 
								bias-pull-up;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		mux_2 {
 | 
							mux_2 {
 | 
				
			||||||
			pins = "gpio75";
 | 
								pins = "gpio75";
 | 
				
			||||||
			function = "gpio";
 | 
								function = "gpio";
 | 
				
			||||||
@@ -133,6 +162,16 @@
 | 
				
			|||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						modem_power_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio27";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
								output-high;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	leds_pins: leds_pins {
 | 
						leds_pins: leds_pins {
 | 
				
			||||||
		led_blue {
 | 
							led_blue {
 | 
				
			||||||
			pins = "gpio35";
 | 
								pins = "gpio35";
 | 
				
			||||||
@@ -155,28 +194,22 @@
 | 
				
			|||||||
			bias-pull-down;
 | 
								bias-pull-down;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					 | 
				
			||||||
	button_pins: button_pins {
 | 
					 | 
				
			||||||
		rst_button {
 | 
					 | 
				
			||||||
			pins = "gpio19";
 | 
					 | 
				
			||||||
			function = "gpio";
 | 
					 | 
				
			||||||
			drive-strength = <8>;
 | 
					 | 
				
			||||||
			bias-pull-up;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&soc {
 | 
					&soc {
 | 
				
			||||||
	mdio@90000 {
 | 
						mdio: mdio@90000 {
 | 
				
			||||||
 | 
							status = "ok";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		pinctrl-0 = <&mdio_pins>;
 | 
							pinctrl-0 = <&mdio_pins>;
 | 
				
			||||||
		pinctrl-names = "default";
 | 
							pinctrl-names = "default";
 | 
				
			||||||
		phy-reset-gpio = <&tlmm 75 0>;
 | 
							phy-reset-gpio = <&tlmm 75 0>;
 | 
				
			||||||
		status = "ok";
 | 
					
 | 
				
			||||||
		phy0: ethernet-phy@0 {
 | 
							ethernet-phy@0 {
 | 
				
			||||||
			reg = <3>;
 | 
								reg = <0x03>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
		phy1: ethernet-phy@1 {
 | 
					
 | 
				
			||||||
			reg = <4>;
 | 
							ethernet-phy@1 {
 | 
				
			||||||
 | 
								reg = <0x04>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -203,18 +236,6 @@
 | 
				
			|||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	dp1 {
 | 
						dp1 {
 | 
				
			||||||
		device_type = "network";
 | 
					 | 
				
			||||||
		compatible = "qcom,nss-dp";
 | 
					 | 
				
			||||||
		qcom,id = <0x05>;
 | 
					 | 
				
			||||||
		reg = <0x3a001800 0x200>;
 | 
					 | 
				
			||||||
		qcom,mactype = <0x00>;
 | 
					 | 
				
			||||||
		local-mac-address = [00 00 00 00 00 00];
 | 
					 | 
				
			||||||
		qcom,link-poll = <0x01>;
 | 
					 | 
				
			||||||
		qcom,phy-mdio-addr = <0x04>;
 | 
					 | 
				
			||||||
		phy-mode = "sgmii";
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	dp2 {
 | 
					 | 
				
			||||||
		device_type = "network";
 | 
							device_type = "network";
 | 
				
			||||||
		compatible = "qcom,nss-dp";
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
		qcom,id = <0x04>;
 | 
							qcom,id = <0x04>;
 | 
				
			||||||
@@ -226,6 +247,18 @@
 | 
				
			|||||||
		phy-mode = "sgmii";
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						dp2 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
							qcom,id = <0x05>;
 | 
				
			||||||
 | 
							reg = <0x3a001800 0x200>;
 | 
				
			||||||
 | 
							qcom,mactype = <0x00>;
 | 
				
			||||||
 | 
							local-mac-address = [00 00 00 00 00 00];
 | 
				
			||||||
 | 
							qcom,link-poll = <0x01>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <0x04>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	gpio_keys {
 | 
						gpio_keys {
 | 
				
			||||||
		compatible = "gpio-keys";
 | 
							compatible = "gpio-keys";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -243,21 +276,22 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	leds {
 | 
						leds {
 | 
				
			||||||
		compatible = "gpio-leds";
 | 
							compatible = "gpio-leds";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		pinctrl-0 = <&leds_pins>;
 | 
							pinctrl-0 = <&leds_pins>;
 | 
				
			||||||
		pinctrl-names = "default";
 | 
							pinctrl-names = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		led_system: system {
 | 
							led_system: system {
 | 
				
			||||||
			label = "ax860:green:system";
 | 
								label = "green:system";
 | 
				
			||||||
			gpio = <&tlmm 37 GPIO_ACTIVE_HIGH>;
 | 
								gpio = <&tlmm 37 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		wlan2g {
 | 
							wlan2g {
 | 
				
			||||||
			label = "ax860:blue:wlan2g";
 | 
								label = "blue:wlan2g";
 | 
				
			||||||
			gpio = <&tlmm 35 GPIO_ACTIVE_HIGH>;
 | 
								gpio = <&tlmm 35 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		wlan5g {
 | 
							wlan5g {
 | 
				
			||||||
			label = "ax860:red:wlan5g";
 | 
								label = "red:wlan5g";
 | 
				
			||||||
			gpio = <&tlmm 32 GPIO_ACTIVE_HIGH>;
 | 
								gpio = <&tlmm 32 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
@@ -290,20 +324,40 @@
 | 
				
			|||||||
	status = "ok";
 | 
						status = "ok";
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&qpic_nand {
 | 
					&nand {
 | 
				
			||||||
 | 
						pinctrl-0 = <&qpic_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
	status = "ok";
 | 
						status = "ok";
 | 
				
			||||||
 | 
					 | 
				
			||||||
	nand@0 {
 | 
					 | 
				
			||||||
		reg = <0>;
 | 
					 | 
				
			||||||
		#address-cells = <1>;
 | 
					 | 
				
			||||||
		#size-cells = <1>;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		nand-ecc-strength = <4>;
 | 
					 | 
				
			||||||
		nand-ecc-step-size = <512>;
 | 
					 | 
				
			||||||
		nand-bus-width = <8>;
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&nss_crypto {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&cpu0_opp_table {
 | 
				
			||||||
 | 
						compatible = "operating-points-v2";
 | 
				
			||||||
 | 
						opp-shared;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						opp03 {
 | 
				
			||||||
 | 
							opp-hz = /bits/ 64 <1200000000>;
 | 
				
			||||||
 | 
							opp-microvolt = <3>;
 | 
				
			||||||
 | 
							clock-latency-ns = <200000>;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/delete-node/ opp04;
 | 
				
			||||||
 | 
						/delete-node/ opp05;
 | 
				
			||||||
 | 
						/delete-node/ opp06;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* TZAPP is enabled in default memory profile only */
 | 
				
			||||||
 | 
					#if !defined(__IPQ_MEM_PROFILE_256_MB__) && !defined(__IPQ_MEM_PROFILE_512_MB__)
 | 
				
			||||||
 | 
					&qseecom {
 | 
				
			||||||
 | 
						mem-start = <0x49B00000>;
 | 
				
			||||||
 | 
						mem-size = <0x600000>;
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&ssphy_0 {
 | 
					&ssphy_0 {
 | 
				
			||||||
	status = "ok";
 | 
						status = "ok";
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
@@ -312,10 +366,14 @@
 | 
				
			|||||||
	status = "ok";
 | 
						status = "ok";
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&usb3 {
 | 
					&qusb_phy_1 {
 | 
				
			||||||
	status = "ok";
 | 
						status = "ok";
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&nss_crypto {
 | 
					&usb2 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&usb3 {
 | 
				
			||||||
	status = "ok";
 | 
						status = "ok";
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -0,0 +1,423 @@
 | 
				
			|||||||
 | 
					/dts-v1/;
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 2019, The Linux Foundation. All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Permission to use, copy, modify, and/or distribute this software for any
 | 
				
			||||||
 | 
					 * purpose with or without fee is hereby granted, provided that the above
 | 
				
			||||||
 | 
					 * copyright notice and this permission notice appear in all copies.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 | 
				
			||||||
 | 
					 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 | 
				
			||||||
 | 
					 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 | 
				
			||||||
 | 
					 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 | 
				
			||||||
 | 
					 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 | 
				
			||||||
 | 
					 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 | 
				
			||||||
 | 
					 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "qcom-ipq6018.dtsi"
 | 
				
			||||||
 | 
					#include "qcom-ipq6018-rpm-regulator.dtsi"
 | 
				
			||||||
 | 
					#include "qcom-ipq6018-cpr-regulator.dtsi"
 | 
				
			||||||
 | 
					#include "qcom-ipq6018-cp-cpu.dtsi"
 | 
				
			||||||
 | 
					#include <dt-bindings/input/input.h>
 | 
				
			||||||
 | 
					#include <dt-bindings/gpio/gpio.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/ {
 | 
				
			||||||
 | 
						#address-cells = <0x2>;
 | 
				
			||||||
 | 
						#size-cells = <0x2>;
 | 
				
			||||||
 | 
						model = "Qualcomm Technologies, Inc. IPQ6018/AP-CP03-C1";
 | 
				
			||||||
 | 
						compatible = "yuncore,fap650", "qcom,ipq6018-cp03", "qcom,ipq6018";
 | 
				
			||||||
 | 
						interrupt-parent = <&intc>;
 | 
				
			||||||
 | 
						qcom,msm-id = <0x1A5 0x0>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						aliases {
 | 
				
			||||||
 | 
							/*
 | 
				
			||||||
 | 
							 * Aliases as required by u-boot
 | 
				
			||||||
 | 
							 * to patch MAC addresses
 | 
				
			||||||
 | 
							 */
 | 
				
			||||||
 | 
							ethernet0 = "/soc/dp1";
 | 
				
			||||||
 | 
							ethernet1 = "/soc/dp2";
 | 
				
			||||||
 | 
							ethernet2 = "/soc/dp3";
 | 
				
			||||||
 | 
							ethernet3 = "/soc/dp4";
 | 
				
			||||||
 | 
							ethernet4 = "/soc/dp5";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led-boot = &led_power;
 | 
				
			||||||
 | 
							led-failsafe = &led_power;
 | 
				
			||||||
 | 
							led-running = &led_power;
 | 
				
			||||||
 | 
							led-upgrade = &led_power;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						chosen {
 | 
				
			||||||
 | 
							bootargs = "console=ttyMSM0,115200,n8 rw init=/init";
 | 
				
			||||||
 | 
					#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
 | 
							bootargs-append = " swiotlb=1";
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
							bootargs-append = " swiotlb=1 coherent_pool=2M";
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/*
 | 
				
			||||||
 | 
						 * +=========+==============+========================+
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * | Region | Start Offset |          Size           |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * +--------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * | Linux  |  0x41000000  |         139MB           |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * |        |              |                         |
 | 
				
			||||||
 | 
						 * +--------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 * | TZ App |  0x49B00000  |           6MB           |
 | 
				
			||||||
 | 
						 * +--------+--------------+-------------------------+
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * From the available 145 MB for Linux in the first 256 MB,
 | 
				
			||||||
 | 
						 * we are reserving 6 MB for TZAPP.
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * Refer arch/arm64/boot/dts/qcom/qcom-ipq6018-memory.dtsi
 | 
				
			||||||
 | 
						 * for memory layout.
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* TZAPP is enabled only in default memory profile */
 | 
				
			||||||
 | 
					#if !defined(__IPQ_MEM_PROFILE_256_MB__) && !defined(__IPQ_MEM_PROFILE_512_MB__)
 | 
				
			||||||
 | 
						reserved-memory {
 | 
				
			||||||
 | 
							tzapp:tzapp@49B00000 {	/* TZAPPS */
 | 
				
			||||||
 | 
								no-map;
 | 
				
			||||||
 | 
								reg = <0x0 0x49B00000 0x0 0x00600000>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&tlmm {
 | 
				
			||||||
 | 
						uart_pins: uart_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio44", "gpio45";
 | 
				
			||||||
 | 
								function = "blsp2_uart";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						spi_0_pins: spi_0_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio38", "gpio39", "gpio40", "gpio41";
 | 
				
			||||||
 | 
								function = "blsp0_spi";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						qpic_pins: qpic_pins {
 | 
				
			||||||
 | 
							data_0 {
 | 
				
			||||||
 | 
								pins = "gpio15";
 | 
				
			||||||
 | 
								function = "qpic_pad0";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_1 {
 | 
				
			||||||
 | 
								pins = "gpio12";
 | 
				
			||||||
 | 
								function = "qpic_pad1";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_2 {
 | 
				
			||||||
 | 
								pins = "gpio13";
 | 
				
			||||||
 | 
								function = "qpic_pad2";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_3 {
 | 
				
			||||||
 | 
								pins = "gpio14";
 | 
				
			||||||
 | 
								function = "qpic_pad3";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_4 {
 | 
				
			||||||
 | 
								pins = "gpio5";
 | 
				
			||||||
 | 
								function = "qpic_pad4";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_5 {
 | 
				
			||||||
 | 
								pins = "gpio6";
 | 
				
			||||||
 | 
								function = "qpic_pad5";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_6 {
 | 
				
			||||||
 | 
								pins = "gpio7";
 | 
				
			||||||
 | 
								function = "qpic_pad6";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_7 {
 | 
				
			||||||
 | 
								pins = "gpio8";
 | 
				
			||||||
 | 
								function = "qpic_pad7";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							qpic_pad {
 | 
				
			||||||
 | 
								pins = "gpio1", "gpio3", "gpio4",
 | 
				
			||||||
 | 
								       "gpio10", "gpio11", "gpio17";
 | 
				
			||||||
 | 
								function = "qpic_pad";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						button_pins: button_pins {
 | 
				
			||||||
 | 
							wps_button {
 | 
				
			||||||
 | 
								pins = "gpio19";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						mdio_pins: mdio_pinmux {
 | 
				
			||||||
 | 
							mux_0 {
 | 
				
			||||||
 | 
								pins = "gpio64";
 | 
				
			||||||
 | 
								function = "mdc";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							mux_1 {
 | 
				
			||||||
 | 
								pins = "gpio65";
 | 
				
			||||||
 | 
								function = "mdio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							mux_2 {
 | 
				
			||||||
 | 
								pins = "gpio75";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						leds_pins: leds_pins {
 | 
				
			||||||
 | 
							led_sys {
 | 
				
			||||||
 | 
								pins = "gpio32";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led_5g {
 | 
				
			||||||
 | 
								pins = "gpio35";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led_2g {
 | 
				
			||||||
 | 
								pins = "gpio37";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&soc {
 | 
				
			||||||
 | 
						mdio@90000 {
 | 
				
			||||||
 | 
							pinctrl-0 = <&mdio_pins>;
 | 
				
			||||||
 | 
							pinctrl-names = "default";
 | 
				
			||||||
 | 
							phy-reset-gpio = <&tlmm 75 0>;
 | 
				
			||||||
 | 
							status = "ok";
 | 
				
			||||||
 | 
							phy0: ethernet-phy@0 {
 | 
				
			||||||
 | 
								reg = <0>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							phy1: ethernet-phy@1 {
 | 
				
			||||||
 | 
								reg = <1>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							phy2: ethernet-phy@2 {
 | 
				
			||||||
 | 
								reg = <2>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							phy3: ethernet-phy@3 {
 | 
				
			||||||
 | 
								reg = <3>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							phy4: ethernet-phy@4 {
 | 
				
			||||||
 | 
								reg = <4>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						ess-switch@3a000000 {
 | 
				
			||||||
 | 
							switch_cpu_bmp = <0x1>;  /* cpu port bitmap */
 | 
				
			||||||
 | 
							switch_lan_bmp = <0x1e>; /* lan port bitmap */
 | 
				
			||||||
 | 
							switch_wan_bmp = <0x20>; /* wan port bitmap */
 | 
				
			||||||
 | 
							switch_inner_bmp = <0xc0>; /*inner port bitmap*/
 | 
				
			||||||
 | 
							switch_mac_mode = <0x0>; /* mac mode for uniphy instance0*/
 | 
				
			||||||
 | 
							switch_mac_mode1 = <0xff>; /* mac mode for uniphy instance1*/
 | 
				
			||||||
 | 
							switch_mac_mode2 = <0xff>; /* mac mode for uniphy instance2*/
 | 
				
			||||||
 | 
							qcom,port_phyinfo {
 | 
				
			||||||
 | 
								port@3 {
 | 
				
			||||||
 | 
									port_id = <3>;
 | 
				
			||||||
 | 
									phy_address = <4>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
								port@4 {
 | 
				
			||||||
 | 
									port_id = <4>;
 | 
				
			||||||
 | 
									phy_address = <3>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						dp1 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
							qcom,id = <1>;
 | 
				
			||||||
 | 
							reg = <0x3a001000 0x200>;
 | 
				
			||||||
 | 
							qcom,mactype = <0>;
 | 
				
			||||||
 | 
							local-mac-address = [000000000000];
 | 
				
			||||||
 | 
							qcom,link-poll = <1>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <0>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						dp2 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
							qcom,id = <2>;
 | 
				
			||||||
 | 
							reg = <0x3a001200 0x200>;
 | 
				
			||||||
 | 
							qcom,mactype = <0>;
 | 
				
			||||||
 | 
							local-mac-address = [000000000000];
 | 
				
			||||||
 | 
							qcom,link-poll = <1>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <1>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						dp3 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
							qcom,id = <3>;
 | 
				
			||||||
 | 
							reg = <0x3a001400 0x200>;
 | 
				
			||||||
 | 
							qcom,mactype = <0>;
 | 
				
			||||||
 | 
							local-mac-address = [000000000000];
 | 
				
			||||||
 | 
							qcom,link-poll = <1>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <2>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						dp4 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
							qcom,id = <4>;
 | 
				
			||||||
 | 
							reg = <0x3a001600 0x200>;
 | 
				
			||||||
 | 
							qcom,mactype = <0>;
 | 
				
			||||||
 | 
							local-mac-address = [000000000000];
 | 
				
			||||||
 | 
							qcom,link-poll = <1>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <3>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						dp5 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
							qcom,id = <5>;
 | 
				
			||||||
 | 
							reg = <0x3a001800 0x200>;
 | 
				
			||||||
 | 
							qcom,mactype = <0>;
 | 
				
			||||||
 | 
							local-mac-address = [000000000000];
 | 
				
			||||||
 | 
							qcom,link-poll = <1>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <4>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						leds {
 | 
				
			||||||
 | 
							compatible = "gpio-leds";
 | 
				
			||||||
 | 
							pinctrl-0 = <&leds_pins>;
 | 
				
			||||||
 | 
							pinctrl-names = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led_power: led@32 {
 | 
				
			||||||
 | 
								label = "green:power";
 | 
				
			||||||
 | 
								gpios = <&tlmm 32 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
								default-state = "on";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led@35 {
 | 
				
			||||||
 | 
								label = "green:wifi5";
 | 
				
			||||||
 | 
								gpios = <&tlmm 35 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
								default-state = "off";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led@37 {
 | 
				
			||||||
 | 
								label = "green:wifi2";
 | 
				
			||||||
 | 
								gpios = <&tlmm 37 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
								default-state = "off";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						gpio_keys {
 | 
				
			||||||
 | 
							compatible = "gpio-keys";
 | 
				
			||||||
 | 
							pinctrl-0 = <&button_pins>;
 | 
				
			||||||
 | 
							pinctrl-names = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							wps {
 | 
				
			||||||
 | 
								label = "reset";
 | 
				
			||||||
 | 
								linux,code = <KEY_RESTART>;
 | 
				
			||||||
 | 
								gpios = <&tlmm 19 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
 | 
								linux,input-type = <1>;
 | 
				
			||||||
 | 
								debounce-interval = <60>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&blsp1_uart3 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&uart_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&spi_0 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&spi_0_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						cs-select = <0>;
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						m25p80@0 {
 | 
				
			||||||
 | 
							#address-cells = <1>;
 | 
				
			||||||
 | 
							#size-cells = <1>;
 | 
				
			||||||
 | 
							reg = <0>;
 | 
				
			||||||
 | 
							compatible = "n25q128a11";
 | 
				
			||||||
 | 
							linux,modalias = "m25p80", "n25q128a11";
 | 
				
			||||||
 | 
							spi-max-frequency = <50000000>;
 | 
				
			||||||
 | 
							use-default-sizes;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qpic_bam {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&nand {
 | 
				
			||||||
 | 
						pinctrl-0 = <&qpic_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&ssphy_0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qusb_phy_0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&usb3 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&nss_crypto {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* TZAPP is enabled in default memory profile only */
 | 
				
			||||||
 | 
					#if !defined(__IPQ_MEM_PROFILE_256_MB__) && !defined(__IPQ_MEM_PROFILE_512_MB__)
 | 
				
			||||||
 | 
					&qseecom {
 | 
				
			||||||
 | 
						mem-start = <0x49B00000>;
 | 
				
			||||||
 | 
						mem-size = <0x600000>;
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
@@ -1,9 +1,21 @@
 | 
				
			|||||||
// SPDX-License-Identifier: GPL-2.0-only
 | 
					 | 
				
			||||||
/dts-v1/;
 | 
					/dts-v1/;
 | 
				
			||||||
/* Copyright (c) 2020 The Linux Foundation. All rights reserved.
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 2017-2020, 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 "ipq8074.dtsi"
 | 
					#include "qcom-ipq807x-soc.dtsi"
 | 
				
			||||||
#include "ipq8074-ac-cpu.dtsi"
 | 
					#include "qcom-ipq807x-ac-cpu.dtsi"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/ {
 | 
					/ {
 | 
				
			||||||
	#address-cells = <0x2>;
 | 
						#address-cells = <0x2>;
 | 
				
			||||||
@@ -12,10 +24,14 @@
 | 
				
			|||||||
	compatible = "edgecore,eap102", "qcom,ipq807x-ac02", "qcom,ipq807x";
 | 
						compatible = "edgecore,eap102", "qcom,ipq807x-ac02", "qcom,ipq807x";
 | 
				
			||||||
	qcom,msm-id = <0x178 0x0>;
 | 
						qcom,msm-id = <0x178 0x0>;
 | 
				
			||||||
	interrupt-parent = <&intc>;
 | 
						interrupt-parent = <&intc>;
 | 
				
			||||||
 | 
						qcom,board-id = <0x8 0x0>;
 | 
				
			||||||
 | 
						qcom,pmic-id = <0x0 0x0 0x0 0x0>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	aliases {
 | 
						aliases {
 | 
				
			||||||
		serial0 = &blsp1_uart5;
 | 
							/*
 | 
				
			||||||
		/* Aliases as required by u-boot to patch MAC addresses */
 | 
							 * Aliases as required by u-boot
 | 
				
			||||||
 | 
							 * to patch MAC addresses
 | 
				
			||||||
 | 
							 */
 | 
				
			||||||
		ethernet1 = "/soc/dp5";
 | 
							ethernet1 = "/soc/dp5";
 | 
				
			||||||
		ethernet0 = "/soc/dp6";
 | 
							ethernet0 = "/soc/dp6";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -26,42 +42,51 @@
 | 
				
			|||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	chosen {
 | 
						chosen {
 | 
				
			||||||
		stdout-path = "serial0";
 | 
							bootargs = "console=ttyMSM0,115200,n8 root=/dev/ram0 rw \
 | 
				
			||||||
 | 
								init=/init";
 | 
				
			||||||
 | 
							#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
 | 
								bootargs-append = " swiotlb=1";
 | 
				
			||||||
 | 
							#else
 | 
				
			||||||
 | 
								bootargs-append = " swiotlb=1 coherent_pool=2M";
 | 
				
			||||||
 | 
							#endif
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	soc {
 | 
						gpio-export {
 | 
				
			||||||
		pinctrl@1000000 {
 | 
							compatible = "gpio-export";
 | 
				
			||||||
			button_pins: button_pins {
 | 
							#size-cells = <0>;
 | 
				
			||||||
				reset_button {
 | 
					
 | 
				
			||||||
					pins = "gpio66";
 | 
							mcu-enable {
 | 
				
			||||||
 | 
								gpio-export,name = "mcu-enable";
 | 
				
			||||||
 | 
								gpio-export,output = <1>;
 | 
				
			||||||
 | 
								gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							usb-enable {
 | 
				
			||||||
 | 
								gpio-export,name = "usb-enable";
 | 
				
			||||||
 | 
								gpio-export,output = <1>;
 | 
				
			||||||
 | 
								gpios = <&tlmm 55 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&tlmm {
 | 
				
			||||||
 | 
						pinctrl-0 = <&nrf52840_reset &usb_reset>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						nrf52840_reset: nrf52840_reset_pins {
 | 
				
			||||||
 | 
							pins = "gpio54";
 | 
				
			||||||
		function = "gpio";
 | 
							function = "gpio";
 | 
				
			||||||
		drive-strength = <8>;
 | 
							drive-strength = <8>;
 | 
				
			||||||
					bias-pull-up;
 | 
							bias-disable;
 | 
				
			||||||
				};
 | 
							output-high;
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			usb_mux_sel_pins: usb_mux_pins {
 | 
						usb_reset: usb_reset_pins {
 | 
				
			||||||
				mux {
 | 
							pins = "gpio55";
 | 
				
			||||||
					pins = "gpio27";
 | 
					 | 
				
			||||||
		function = "gpio";
 | 
							function = "gpio";
 | 
				
			||||||
		drive-strength = <8>;
 | 
							drive-strength = <8>;
 | 
				
			||||||
					bias-pull-down;
 | 
							bias-disable;
 | 
				
			||||||
				};
 | 
							output-high;
 | 
				
			||||||
			};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			pcie0_pins: pcie_pins {
 | 
					 | 
				
			||||||
				pcie0_rst {
 | 
					 | 
				
			||||||
					pins = "gpio58";
 | 
					 | 
				
			||||||
					function = "pcie0_rst";
 | 
					 | 
				
			||||||
					drive-strength = <8>;
 | 
					 | 
				
			||||||
					bias-pull-down;
 | 
					 | 
				
			||||||
				};
 | 
					 | 
				
			||||||
				pcie0_wake {
 | 
					 | 
				
			||||||
					pins = "gpio59";
 | 
					 | 
				
			||||||
					function = "pcie0_wake";
 | 
					 | 
				
			||||||
					drive-strength = <8>;
 | 
					 | 
				
			||||||
					bias-pull-down;
 | 
					 | 
				
			||||||
				};
 | 
					 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	mdio_pins: mdio_pinmux {
 | 
						mdio_pins: mdio_pinmux {
 | 
				
			||||||
@@ -88,109 +113,131 @@
 | 
				
			|||||||
			bias-pull-up;
 | 
								bias-pull-up;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						uart_pins: uart_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio23", "gpio24";
 | 
				
			||||||
 | 
								function = "blsp4_uart1";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						spi_0_pins: spi_0_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio38", "gpio39", "gpio40", "gpio41";
 | 
				
			||||||
 | 
								function = "blsp0_spi";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						qpic_pins: qpic_pins {
 | 
				
			||||||
 | 
							data_0 {
 | 
				
			||||||
 | 
								pins = "gpio15";
 | 
				
			||||||
 | 
								function = "qpic_pad0";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_1 {
 | 
				
			||||||
 | 
								pins = "gpio12";
 | 
				
			||||||
 | 
								function = "qpic_pad1";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_2 {
 | 
				
			||||||
 | 
								pins = "gpio13";
 | 
				
			||||||
 | 
								function = "qpic_pad2";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_3 {
 | 
				
			||||||
 | 
								pins = "gpio14";
 | 
				
			||||||
 | 
								function = "qpic_pad3";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_4 {
 | 
				
			||||||
 | 
								pins = "gpio5";
 | 
				
			||||||
 | 
								function = "qpic_pad4";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_5 {
 | 
				
			||||||
 | 
								pins = "gpio6";
 | 
				
			||||||
 | 
								function = "qpic_pad5";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_6 {
 | 
				
			||||||
 | 
								pins = "gpio7";
 | 
				
			||||||
 | 
								function = "qpic_pad6";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_7 {
 | 
				
			||||||
 | 
								pins = "gpio8";
 | 
				
			||||||
 | 
								function = "qpic_pad7";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							qpic_pad {
 | 
				
			||||||
 | 
								pins = "gpio1", "gpio3", "gpio4",
 | 
				
			||||||
 | 
								       "gpio10", "gpio11", "gpio17";
 | 
				
			||||||
 | 
								function = "qpic_pad";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						button_pins: button_pins {
 | 
				
			||||||
 | 
							reset_button {
 | 
				
			||||||
 | 
								pins = "gpio66";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	led_pins: led_pins {
 | 
						led_pins: led_pins {
 | 
				
			||||||
 | 
							led_pwr {
 | 
				
			||||||
 | 
								pins = "gpio46";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		led_2g {
 | 
							led_2g {
 | 
				
			||||||
					pins = "gpio42";
 | 
								pins = "gpio47";
 | 
				
			||||||
			function = "gpio";
 | 
								function = "gpio";
 | 
				
			||||||
			drive-strength = <8>;
 | 
								drive-strength = <8>;
 | 
				
			||||||
			bias-pull-down;
 | 
								bias-pull-down;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		led_5g {
 | 
							led_5g {
 | 
				
			||||||
					pins = "gpio43";
 | 
								pins = "gpio48";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led_bt {
 | 
				
			||||||
 | 
								pins = "gpio50";
 | 
				
			||||||
			function = "gpio";
 | 
								function = "gpio";
 | 
				
			||||||
			drive-strength = <8>;
 | 
								drive-strength = <8>;
 | 
				
			||||||
			bias-pull-down;
 | 
								bias-pull-down;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
		};
 | 
					};
 | 
				
			||||||
 | 
					 | 
				
			||||||
		serial@78b3000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		spi@78b5000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
			pinctrl-0 = <&spi_0_pins>;
 | 
					 | 
				
			||||||
			pinctrl-names = "default";
 | 
					 | 
				
			||||||
			cs-select = <0>;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			m25p80@0 {
 | 
					 | 
				
			||||||
				  compatible = "n25q128a11";
 | 
					 | 
				
			||||||
				  #address-cells = <1>;
 | 
					 | 
				
			||||||
				  #size-cells = <1>;
 | 
					 | 
				
			||||||
				  reg = <0>;
 | 
					 | 
				
			||||||
				  spi-max-frequency = <50000000>;
 | 
					 | 
				
			||||||
			};
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		dma@7984000 {
 | 
					 | 
				
			||||||
			 status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		nand@79b0000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			nand@0 {
 | 
					 | 
				
			||||||
				reg = <0>;
 | 
					 | 
				
			||||||
				#address-cells = <1>;
 | 
					 | 
				
			||||||
				#size-cells = <1>;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
				nand-ecc-strength = <4>;
 | 
					 | 
				
			||||||
				nand-ecc-step-size = <512>;
 | 
					 | 
				
			||||||
				nand-bus-width = <8>;
 | 
					 | 
				
			||||||
			};
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		qusb@79000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		ssphy@78000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		usb3@8A00000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		usb3@8C00000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		qusb@59000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		ssphy@58000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		usb3@8C00000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		phy@84000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		phy@86000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		pci@20000000 {
 | 
					 | 
				
			||||||
			perst-gpio = <&tlmm 58 1>;
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&soc {
 | 
				
			||||||
	gpio_keys {
 | 
						gpio_keys {
 | 
				
			||||||
		compatible = "gpio-keys";
 | 
							compatible = "gpio-keys";
 | 
				
			||||||
		pinctrl-0 = <&button_pins>;
 | 
							pinctrl-0 = <&button_pins>;
 | 
				
			||||||
		pinctrl-names = "default";
 | 
							pinctrl-names = "default";
 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		button@1 {
 | 
							button@1 {
 | 
				
			||||||
				label = "reset";
 | 
								label = "reset_button";
 | 
				
			||||||
			linux,code = <KEY_RESTART>;
 | 
								linux,code = <KEY_RESTART>;
 | 
				
			||||||
			gpios = <&tlmm 66 GPIO_ACTIVE_LOW>;
 | 
								gpios = <&tlmm 66 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
			linux,input-type = <1>;
 | 
								linux,input-type = <1>;
 | 
				
			||||||
@@ -202,6 +249,7 @@
 | 
				
			|||||||
		pinctrl-0 = <&mdio_pins>;
 | 
							pinctrl-0 = <&mdio_pins>;
 | 
				
			||||||
		pinctrl-names = "default";
 | 
							pinctrl-names = "default";
 | 
				
			||||||
		phy-reset-gpio = <&tlmm 37 0 &tlmm 25 1 &tlmm 44 1>;
 | 
							phy-reset-gpio = <&tlmm 37 0 &tlmm 25 1 &tlmm 44 1>;
 | 
				
			||||||
 | 
							compatible = "qcom,ipq40xx-mdio", "qcom,qca-mdio";
 | 
				
			||||||
		phy0: ethernet-phy@0 {
 | 
							phy0: ethernet-phy@0 {
 | 
				
			||||||
			reg = <0>;
 | 
								reg = <0>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
@@ -516,15 +564,10 @@
 | 
				
			|||||||
						sp = <60>;
 | 
											sp = <60>;
 | 
				
			||||||
						cfg = <0 32 0 32>;
 | 
											cfg = <0 32 0 32>;
 | 
				
			||||||
					};
 | 
										};
 | 
				
			||||||
						group@1 {
 | 
					 | 
				
			||||||
							sp = <61>;
 | 
					 | 
				
			||||||
							cfg = <1 33 1 33>;
 | 
					 | 
				
			||||||
						};
 | 
					 | 
				
			||||||
				};
 | 
									};
 | 
				
			||||||
				l0scheduler {
 | 
									l0scheduler {
 | 
				
			||||||
					group@0 {
 | 
										group@0 {
 | 
				
			||||||
						ucast_queue = <240>;
 | 
											ucast_queue = <240>;
 | 
				
			||||||
							ucast_loop_pri = <16>;
 | 
					 | 
				
			||||||
						mcast_queue = <296>;
 | 
											mcast_queue = <296>;
 | 
				
			||||||
						cfg = <60 0 144 0 144>;
 | 
											cfg = <60 0 144 0 144>;
 | 
				
			||||||
					};
 | 
										};
 | 
				
			||||||
@@ -532,7 +575,55 @@
 | 
				
			|||||||
			};
 | 
								};
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
						dp1 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
							qcom,id = <1>;
 | 
				
			||||||
 | 
							reg = <0x3a001000 0x200>;
 | 
				
			||||||
 | 
							qcom,mactype = <0>;
 | 
				
			||||||
 | 
							local-mac-address = [000000000000];
 | 
				
			||||||
 | 
							qcom,link-poll = <1>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <0>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						dp2 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
							qcom,id = <2>;
 | 
				
			||||||
 | 
							reg = <0x3a001200 0x200>;
 | 
				
			||||||
 | 
							qcom,mactype = <0>;
 | 
				
			||||||
 | 
							local-mac-address = [000000000000];
 | 
				
			||||||
 | 
							qcom,link-poll = <1>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <1>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						dp3 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
							qcom,id = <3>;
 | 
				
			||||||
 | 
							reg = <0x3a001400 0x200>;
 | 
				
			||||||
 | 
							qcom,mactype = <0>;
 | 
				
			||||||
 | 
							local-mac-address = [000000000000];
 | 
				
			||||||
 | 
							qcom,link-poll = <1>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <2>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						dp4 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
							qcom,id = <4>;
 | 
				
			||||||
 | 
							reg = <0x3a001600 0x200>;
 | 
				
			||||||
 | 
							qcom,mactype = <0>;
 | 
				
			||||||
 | 
							local-mac-address = [000000000000];
 | 
				
			||||||
 | 
							qcom,link-poll = <1>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <3>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
	dp6 {
 | 
						dp6 {
 | 
				
			||||||
		device_type = "network";
 | 
							device_type = "network";
 | 
				
			||||||
		compatible = "qcom,nss-dp";
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
@@ -591,16 +682,124 @@
 | 
				
			|||||||
	nss-macsec0 {
 | 
						nss-macsec0 {
 | 
				
			||||||
		compatible = "qcom,nss-macsec";
 | 
							compatible = "qcom,nss-macsec";
 | 
				
			||||||
		phy_addr = <0x18>;
 | 
							phy_addr = <0x18>;
 | 
				
			||||||
 | 
							phy_access_mode = <0>;
 | 
				
			||||||
		mdiobus = <&mdio>;
 | 
							mdiobus = <&mdio>;
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
	nss-macsec1 {
 | 
						nss-macsec1 {
 | 
				
			||||||
		compatible = "qcom,nss-macsec";
 | 
							compatible = "qcom,nss-macsec";
 | 
				
			||||||
		phy_addr = <0x1c>;
 | 
							phy_addr = <0x1c>;
 | 
				
			||||||
 | 
							phy_access_mode = <0>;
 | 
				
			||||||
		mdiobus = <&mdio>;
 | 
							mdiobus = <&mdio>;
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&serial_blsp4 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&uart_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&spi_0 { /* BLSP1 QUP1 */
 | 
				
			||||||
 | 
						pinctrl-0 = <&spi_0_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						cs-select = <0>;
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						m25p80@0 {
 | 
				
			||||||
 | 
							#address-cells = <1>;
 | 
				
			||||||
 | 
							#size-cells = <1>;
 | 
				
			||||||
 | 
							reg = <0>;
 | 
				
			||||||
 | 
							compatible = "n25q128a11";
 | 
				
			||||||
 | 
							linux,modalias = "m25p80", "n25q128a11";
 | 
				
			||||||
 | 
							spi-max-frequency = <50000000>;
 | 
				
			||||||
 | 
							use-default-sizes;
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&nss0 {
 | 
				
			||||||
 | 
						qcom,low-frequency = <187200000>;
 | 
				
			||||||
 | 
						qcom,mid-frequency = <748800000>;
 | 
				
			||||||
 | 
						qcom,max-frequency = <1497600000>;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&msm_imem {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&ssphy_0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qusb_phy_0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&ssphy_1 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qusb_phy_1 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&usb3_0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&usb3_1 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&cryptobam {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&crypto {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&i2c_0 {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&i2c_1 {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qpic_bam {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&nand {
 | 
				
			||||||
 | 
						pinctrl-0 = <&qpic_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qpic_lcd {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qpic_lcd_panel {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&ledc {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie0 {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie1 {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&glink_rpm {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&apc_cpr {
 | 
					&apc_cpr {
 | 
				
			||||||
	/* Same CPR configuration as OAK */
 | 
						/* Same CPR configuration as OAK */
 | 
				
			||||||
	compatible = "qcom,cpr4-ipq817x-apss-regulator";
 | 
						compatible = "qcom,cpr4-ipq817x-apss-regulator";
 | 
				
			||||||
@@ -682,12 +881,6 @@
 | 
				
			|||||||
	status = "disabled";
 | 
						status = "disabled";
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&nss0 {
 | 
					 | 
				
			||||||
        qcom,low-frequency = <187200000>;
 | 
					 | 
				
			||||||
        qcom,mid-frequency = <748800000>;
 | 
					 | 
				
			||||||
        qcom,max-frequency = <1497600000>;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
&nss0 {
 | 
					&nss0 {
 | 
				
			||||||
	npu-supply = <&dummy_reg>;
 | 
						npu-supply = <&dummy_reg>;
 | 
				
			||||||
	mx-supply = <&dummy_reg>;
 | 
						mx-supply = <&dummy_reg>;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,65 +1,76 @@
 | 
				
			|||||||
// SPDX-License-Identifier: GPL-2.0-only
 | 
					 | 
				
			||||||
/dts-v1/;
 | 
					/dts-v1/;
 | 
				
			||||||
/* Copyright (c) 2020 The Linux Foundation. All rights reserved.
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 2017-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 "ipq8074.dtsi"
 | 
					#include "qcom-ipq807x-soc.dtsi"
 | 
				
			||||||
#include "ipq8074-hk-cpu.dtsi"
 | 
					#include "qcom-ipq807x-hk-cpu.dtsi"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/ {
 | 
					/ {
 | 
				
			||||||
	#address-cells = <0x2>;
 | 
						#address-cells = <0x2>;
 | 
				
			||||||
	#size-cells = <0x2>;
 | 
						#size-cells = <0x2>;
 | 
				
			||||||
	model = "Edgecore EAP106";
 | 
						model = "Edgecore EAP106";
 | 
				
			||||||
	compatible = "edgecore,eap106", "qcom,ipq807x-hk02", "qcom,ipq807x";
 | 
						compatible = "edgecore,eap106", "qcom,ipq807x-hk02", "qcom,ipq807x";
 | 
				
			||||||
	qcom,msm-id = <0x158 0x0>, <0x188 0x0>;
 | 
						qcom,msm-id = <0x143 0x0>;
 | 
				
			||||||
	interrupt-parent = <&intc>;
 | 
						interrupt-parent = <&intc>;
 | 
				
			||||||
 | 
						qcom,board-id = <0x8 0x0>;
 | 
				
			||||||
 | 
						qcom,pmic-id = <0x0 0x0 0x0 0x0>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	aliases {
 | 
						aliases {
 | 
				
			||||||
		serial0 = &blsp1_uart5;
 | 
							/*
 | 
				
			||||||
		/* Aliases as required by u-boot to patch MAC addresses */
 | 
							 * Aliases as required by u-boot
 | 
				
			||||||
 | 
							 * to patch MAC addresses
 | 
				
			||||||
 | 
							 */
 | 
				
			||||||
		ethernet0 = "/soc/dp1";
 | 
							ethernet0 = "/soc/dp1";
 | 
				
			||||||
		ethernet1 = "/soc/dp2";
 | 
							ethernet1 = "/soc/dp2";
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					 | 
				
			||||||
	chosen {
 | 
						chosen {
 | 
				
			||||||
		stdout-path = "serial0";
 | 
							bootargs = "console=ttyMSM0,115200,n8 root=/dev/ram0 rw init=/init";
 | 
				
			||||||
#ifndef __IPQ_MEM_PROFILE_256_MB__
 | 
							#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
//		bootargs-append = " vmalloc=600M";
 | 
								bootargs-append = " swiotlb=1";
 | 
				
			||||||
#endif
 | 
							#else
 | 
				
			||||||
 | 
								bootargs-append = " swiotlb=1 coherent_pool=2M";
 | 
				
			||||||
 | 
							#endif
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	soc {
 | 
					&tlmm {
 | 
				
			||||||
 | 
						leds_pins: leds_pinmux {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		dp1 {
 | 
							led1_yellow {
 | 
				
			||||||
			device_type = "network";
 | 
								pins = "gpio25";
 | 
				
			||||||
			compatible = "qcom,nss-dp";
 | 
					 | 
				
			||||||
			qcom,id = <4>;
 | 
					 | 
				
			||||||
			reg = <0x3a001600 0x200>;
 | 
					 | 
				
			||||||
			qcom,mactype = <4>;
 | 
					 | 
				
			||||||
			local-mac-address = [000000000000];
 | 
					 | 
				
			||||||
			qcom,link-poll = <1>;
 | 
					 | 
				
			||||||
			qcom,phy-mdio-addr = <3>;
 | 
					 | 
				
			||||||
			phy-mode = "sgmii";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		dp2 {
 | 
					 | 
				
			||||||
			device_type = "network";
 | 
					 | 
				
			||||||
			compatible = "qcom,nss-dp";
 | 
					 | 
				
			||||||
			qcom,id = <6>;
 | 
					 | 
				
			||||||
			reg = <0x3a007000 0x3fff>;
 | 
					 | 
				
			||||||
			qcom,mactype = <1>;
 | 
					 | 
				
			||||||
			local-mac-address = [000000000000];
 | 
					 | 
				
			||||||
			qcom,link-poll = <1>;
 | 
					 | 
				
			||||||
			qcom,phy-mdio-addr = <8>;
 | 
					 | 
				
			||||||
			phy-mode = "sgmii";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		pinctrl@1000000 {
 | 
					 | 
				
			||||||
			button_pins: button_pins {
 | 
					 | 
				
			||||||
				wps_button {
 | 
					 | 
				
			||||||
					pins = "gpio57";
 | 
					 | 
				
			||||||
			function = "gpio";
 | 
								function = "gpio";
 | 
				
			||||||
			drive-strength = <8>;
 | 
								drive-strength = <8>;
 | 
				
			||||||
					bias-pull-up;
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							led1_green {
 | 
				
			||||||
 | 
								pins = "gpio28";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							led2_amber {
 | 
				
			||||||
 | 
								pins = "gpio29";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							led2_blue {
 | 
				
			||||||
 | 
								pins = "gpio32";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -78,6 +89,123 @@
 | 
				
			|||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						uart_pins: uart_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio23", "gpio24";
 | 
				
			||||||
 | 
								function = "blsp4_uart1";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						i2c_0_pins: i2c_0_pinmux {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio42", "gpio43";
 | 
				
			||||||
 | 
								function = "blsp1_i2c";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						spi_0_pins: spi_0_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio38", "gpio39", "gpio40", "gpio41";
 | 
				
			||||||
 | 
								function = "blsp0_spi";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						qpic_pins: qpic_pins {
 | 
				
			||||||
 | 
							data_0 {
 | 
				
			||||||
 | 
								pins = "gpio15";
 | 
				
			||||||
 | 
								function = "qpic_pad0";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_1 {
 | 
				
			||||||
 | 
								pins = "gpio12";
 | 
				
			||||||
 | 
								function = "qpic_pad1";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_2 {
 | 
				
			||||||
 | 
								pins = "gpio13";
 | 
				
			||||||
 | 
								function = "qpic_pad2";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_3 {
 | 
				
			||||||
 | 
								pins = "gpio14";
 | 
				
			||||||
 | 
								function = "qpic_pad3";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_4 {
 | 
				
			||||||
 | 
								pins = "gpio5";
 | 
				
			||||||
 | 
								function = "qpic_pad4";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_5 {
 | 
				
			||||||
 | 
								pins = "gpio6";
 | 
				
			||||||
 | 
								function = "qpic_pad5";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_6 {
 | 
				
			||||||
 | 
								pins = "gpio7";
 | 
				
			||||||
 | 
								function = "qpic_pad6";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_7 {
 | 
				
			||||||
 | 
								pins = "gpio8";
 | 
				
			||||||
 | 
								function = "qpic_pad7";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_8 {
 | 
				
			||||||
 | 
								pins = "gpio16";
 | 
				
			||||||
 | 
								function = "qpic_pad8";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							qpic_pad {
 | 
				
			||||||
 | 
								pins = "gpio0", "gpio1", "gpio2", "gpio3", "gpio4",
 | 
				
			||||||
 | 
								       "gpio9", "gpio10", "gpio11", "gpio17";
 | 
				
			||||||
 | 
								function = "qpic_pad";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						hsuart_pins: hsuart_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio46", "gpio47", "gpio48", "gpio49";
 | 
				
			||||||
 | 
								function = "blsp2_uart";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
								output-low;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							mux_1 {
 | 
				
			||||||
 | 
								pins = "gpio51";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
								output-high;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						button_pins: button_pins {
 | 
				
			||||||
 | 
							wps_button {
 | 
				
			||||||
 | 
								pins = "gpio57";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	uniphy_pins: uniphy_pinmux {
 | 
						uniphy_pins: uniphy_pinmux {
 | 
				
			||||||
		mux {
 | 
							mux {
 | 
				
			||||||
			pins = "gpio60";
 | 
								pins = "gpio60";
 | 
				
			||||||
@@ -85,119 +213,74 @@
 | 
				
			|||||||
			bias-disable;
 | 
								bias-disable;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
						cnss_wlan_en_active: cnss_wlan_en_active {
 | 
				
			||||||
			leds_pins: leds_pinmux {
 | 
							mux {
 | 
				
			||||||
				led1_yellow {
 | 
								pins = "gpio57";
 | 
				
			||||||
					pins = "gpio25";
 | 
					 | 
				
			||||||
			function = "gpio";
 | 
								function = "gpio";
 | 
				
			||||||
					drive-strength = <8>;
 | 
								drive-strength = <16>;
 | 
				
			||||||
					bias-pull-down;
 | 
								output-high;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				led1_green {
 | 
						cnss_wlan_en_sleep: cnss_wlan_en_sleep {
 | 
				
			||||||
					pins = "gpio28";
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio57";
 | 
				
			||||||
			function = "gpio";
 | 
								function = "gpio";
 | 
				
			||||||
					drive-strength = <8>;
 | 
								drive-strength = <2>;
 | 
				
			||||||
					bias-pull-down;
 | 
								output-low;
 | 
				
			||||||
				};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
				led2_amber {
 | 
					 | 
				
			||||||
					pins = "gpio29";
 | 
					 | 
				
			||||||
					function = "gpio";
 | 
					 | 
				
			||||||
					drive-strength = <8>;
 | 
					 | 
				
			||||||
					bias-pull-down;
 | 
					 | 
				
			||||||
				};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
				led2_blue {
 | 
					 | 
				
			||||||
					pins = "gpio32";
 | 
					 | 
				
			||||||
					function = "gpio";
 | 
					 | 
				
			||||||
					drive-strength = <8>;
 | 
					 | 
				
			||||||
			bias-pull-down;
 | 
								bias-pull-down;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
		};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		serial@78b3000 {
 | 
					&soc {
 | 
				
			||||||
			status = "ok";
 | 
						gpio_keys {
 | 
				
			||||||
		};
 | 
							compatible = "gpio-keys";
 | 
				
			||||||
 | 
							pinctrl-0 = <&button_pins>;
 | 
				
			||||||
		spi@78b5000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
			pinctrl-0 = <&spi_0_pins>;
 | 
					 | 
				
			||||||
		pinctrl-names = "default";
 | 
							pinctrl-names = "default";
 | 
				
			||||||
			cs-select = <0>;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
			m25p80@0 {
 | 
							button@1 {
 | 
				
			||||||
				  compatible = "n25q128a11";
 | 
								label = "wps";
 | 
				
			||||||
				  #address-cells = <1>;
 | 
								linux,code = <KEY_WPS_BUTTON>;
 | 
				
			||||||
				  #size-cells = <1>;
 | 
								gpios = <&tlmm 57 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
				  reg = <0>;
 | 
								linux,input-type = <1>;
 | 
				
			||||||
				  spi-max-frequency = <50000000>;
 | 
								debounce-interval = <60>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		dma@7984000 {
 | 
						leds {
 | 
				
			||||||
			 status = "ok";
 | 
							compatible = "gpio-leds";
 | 
				
			||||||
 | 
							pinctrl-0 = <&leds_pins>;
 | 
				
			||||||
 | 
							pinctrl-names = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led@25 {
 | 
				
			||||||
 | 
								label = "led1_yellow";
 | 
				
			||||||
 | 
								gpios = <&tlmm 25 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
								linux,default-trigger = "led1_yellow";
 | 
				
			||||||
 | 
								default-state = "off";
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		nand@79b0000 {
 | 
							led@28 {
 | 
				
			||||||
			status = "ok";
 | 
								label = "led1_green";
 | 
				
			||||||
 | 
								gpios = <&tlmm 28 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
			nand@0 {
 | 
								linux,default-trigger = "led1_green";
 | 
				
			||||||
				reg = <0>;
 | 
								default-state = "off";
 | 
				
			||||||
				#address-cells = <1>;
 | 
					 | 
				
			||||||
				#size-cells = <1>;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
				nand-ecc-strength = <4>;
 | 
					 | 
				
			||||||
				nand-ecc-step-size = <512>;
 | 
					 | 
				
			||||||
				nand-bus-width = <8>;
 | 
					 | 
				
			||||||
			};
 | 
					 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		qusb@79000 {
 | 
							led@29 {
 | 
				
			||||||
			status = "ok";
 | 
								label = "led2_amber";
 | 
				
			||||||
 | 
								gpios = <&tlmm 29 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
								linux,default-trigger = "led2_amber";
 | 
				
			||||||
 | 
								default-state = "off";
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		ssphy@78000 {
 | 
							led@32 {
 | 
				
			||||||
			status = "ok";
 | 
								label = "led2_blue";
 | 
				
			||||||
 | 
								gpio = <&tlmm 32 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
								linux,default-trigger = "led2_blue";
 | 
				
			||||||
 | 
								default-state = "off";
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					 | 
				
			||||||
		usb3@8A00000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		qusb@59000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		ssphy@58000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		usb3@8C00000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		phy@84000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		phy@86000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		pci@20000000 {
 | 
					 | 
				
			||||||
			perst-gpio = <&tlmm 58 1>;
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		phy@8e000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		pci@10000000 {
 | 
					 | 
				
			||||||
			perst-gpio = <&tlmm 61 0x1>;
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	mdio@90000 {
 | 
						mdio@90000 {
 | 
				
			||||||
@@ -510,53 +593,124 @@
 | 
				
			|||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		gpio_keys {
 | 
						dp1 {
 | 
				
			||||||
			compatible = "gpio-keys";
 | 
							device_type = "network";
 | 
				
			||||||
			pinctrl-0 = <&button_pins>;
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
			pinctrl-names = "default";
 | 
							qcom,id = <4>;
 | 
				
			||||||
			status = "ok";
 | 
							reg = <0x3a001600 0x200>;
 | 
				
			||||||
 | 
							qcom,mactype = <0>;
 | 
				
			||||||
			button@1 {
 | 
							local-mac-address = [000000000000];
 | 
				
			||||||
				label = "reset";
 | 
							qcom,link-poll = <1>;
 | 
				
			||||||
				linux,code = <KEY_RESTART>;
 | 
							qcom,phy-mdio-addr = <3>;
 | 
				
			||||||
				gpios = <&tlmm 57 GPIO_ACTIVE_LOW>;
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
				linux,input-type = <1>;
 | 
					 | 
				
			||||||
				debounce-interval = <60>;
 | 
					 | 
				
			||||||
			};
 | 
					 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		leds {
 | 
						dp2 {
 | 
				
			||||||
			compatible = "gpio-leds";
 | 
							device_type = "network";
 | 
				
			||||||
			pinctrl-0 = <&leds_pins>;
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
			pinctrl-names = "default";
 | 
							qcom,id = <6>;
 | 
				
			||||||
 | 
							reg = <0x3a007000 0x3fff>;
 | 
				
			||||||
			led@25 {
 | 
							qcom,mactype = <1>;
 | 
				
			||||||
				label = "led1_yellow";
 | 
							local-mac-address = [000000000000];
 | 
				
			||||||
				gpios = <&tlmm 25 GPIO_ACTIVE_HIGH>;
 | 
							qcom,link-poll = <1>;
 | 
				
			||||||
				linux,default-trigger = "led1_yellow";
 | 
							qcom,phy-mdio-addr = <8>;
 | 
				
			||||||
				default-state = "off";
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
			};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			led@28 {
 | 
					 | 
				
			||||||
				label = "led1_green";
 | 
					 | 
				
			||||||
				gpios = <&tlmm 28 GPIO_ACTIVE_HIGH>;
 | 
					 | 
				
			||||||
				linux,default-trigger = "led1_green";
 | 
					 | 
				
			||||||
				default-state = "off";
 | 
					 | 
				
			||||||
			};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			led@29 {
 | 
					 | 
				
			||||||
				label = "led2_amber";
 | 
					 | 
				
			||||||
				gpios = <&tlmm 29 GPIO_ACTIVE_HIGH>;
 | 
					 | 
				
			||||||
				linux,default-trigger = "led2_amber";
 | 
					 | 
				
			||||||
				default-state = "off";
 | 
					 | 
				
			||||||
			};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			led@32 {
 | 
					 | 
				
			||||||
				label = "led2_blue";
 | 
					 | 
				
			||||||
				gpio = <&tlmm 32 GPIO_ACTIVE_HIGH>;
 | 
					 | 
				
			||||||
				linux,default-trigger = "led2_blue";
 | 
					 | 
				
			||||||
				default-state = "off";
 | 
					 | 
				
			||||||
			};
 | 
					 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
						wifi3: wifi3@f00000 {
 | 
				
			||||||
 | 
							compatible  = "qcom,cnss-qcn9000";
 | 
				
			||||||
 | 
							wlan-en-gpio = <&tlmm 57 0>;
 | 
				
			||||||
 | 
							pinctrl-names = "wlan_en_active", "wlan_en_sleep";
 | 
				
			||||||
 | 
							pinctrl-0 = <&cnss_wlan_en_active>;
 | 
				
			||||||
 | 
							pinctrl-1 = <&cnss_wlan_en_sleep>;
 | 
				
			||||||
 | 
							status = "disabled";
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&serial_blsp4 {
 | 
				
			||||||
 | 
					       pinctrl-0 = <&uart_pins>;
 | 
				
			||||||
 | 
					       pinctrl-names = "default";
 | 
				
			||||||
 | 
					       status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&spi_0 { /* BLSP1 QUP1 */
 | 
				
			||||||
 | 
						pinctrl-0 = <&spi_0_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						cs-select = <0>;
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						m25p80@0 {
 | 
				
			||||||
 | 
							#address-cells = <1>;
 | 
				
			||||||
 | 
							#size-cells = <1>;
 | 
				
			||||||
 | 
							reg = <0>;
 | 
				
			||||||
 | 
							compatible = "n25q128a11";
 | 
				
			||||||
 | 
							linux,modalias = "m25p80", "n25q128a11";
 | 
				
			||||||
 | 
							spi-max-frequency = <50000000>;
 | 
				
			||||||
 | 
							use-default-sizes;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&serial_blsp2 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&hsuart_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&msm_imem {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&ssphy_0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qusb_phy_0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&ssphy_1 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qusb_phy_1 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&usb3_0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&usb3_1 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&cryptobam {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&crypto {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&i2c_0 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&i2c_0_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&i2c_1 {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qpic_bam {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&nand {
 | 
				
			||||||
 | 
						pinctrl-0 = <&qpic_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie0 {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,21 +1,37 @@
 | 
				
			|||||||
// SPDX-License-Identifier: GPL-2.0-only
 | 
					 | 
				
			||||||
/dts-v1/;
 | 
					/dts-v1/;
 | 
				
			||||||
/* Copyright (c) 2020 The Linux Foundation. All rights reserved.
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 2017-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 "ipq8074.dtsi"
 | 
					#include "qcom-ipq807x-soc.dtsi"
 | 
				
			||||||
#include "ipq8074-hk-cpu.dtsi"
 | 
					#include "qcom-ipq807x-hk-cpu.dtsi"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/ {
 | 
					/ {
 | 
				
			||||||
	#address-cells = <0x2>;
 | 
						#address-cells = <0x2>;
 | 
				
			||||||
	#size-cells = <0x2>;
 | 
						#size-cells = <0x2>;
 | 
				
			||||||
	model = "TP-Link EX227";
 | 
						model = "TP-Link EX227";
 | 
				
			||||||
        compatible = "tplink,ex227", "qcom,ipq8074-ap-hk07", "qcom,ipq8074";
 | 
						compatible = "tplink,ex227", "qcom,ipq807x";
 | 
				
			||||||
	qcom,msm-id = <0x156 0x0>, <0x185 0x0>;
 | 
						qcom,msm-id = <0x143 0x0>;
 | 
				
			||||||
	interrupt-parent = <&intc>;
 | 
						interrupt-parent = <&intc>;
 | 
				
			||||||
 | 
						qcom,board-id = <0x8 0x0>;
 | 
				
			||||||
 | 
						qcom,pmic-id = <0x0 0x0 0x0 0x0>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	aliases {
 | 
						aliases {
 | 
				
			||||||
		serial0 = &blsp1_uart5;
 | 
							/*
 | 
				
			||||||
		/* Aliases as required by u-boot to patch MAC addresses */
 | 
							 * Aliases as required by u-boot
 | 
				
			||||||
 | 
							 * to patch MAC addresses
 | 
				
			||||||
 | 
							 */
 | 
				
			||||||
		ethernet0 = "/soc/dp1";
 | 
							ethernet0 = "/soc/dp1";
 | 
				
			||||||
		led-boot = &led_power;
 | 
							led-boot = &led_power;
 | 
				
			||||||
		led-failsafe = &led_power;
 | 
							led-failsafe = &led_power;
 | 
				
			||||||
@@ -24,17 +40,34 @@
 | 
				
			|||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	chosen {
 | 
						chosen {
 | 
				
			||||||
		stdout-path = "serial0";
 | 
							bootargs = "console=ttyMSM0,115200,n8 root=/dev/ram0 rw \
 | 
				
			||||||
 | 
								init=/init";
 | 
				
			||||||
 | 
							bootargs-append = " swiotlb=1";
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	soc {
 | 
					&tlmm {
 | 
				
			||||||
		pinctrl@1000000 {
 | 
						pinctrl-0 = <&btcoex_pins>;
 | 
				
			||||||
			button_pins: button_pins {
 | 
						pinctrl-names = "default";
 | 
				
			||||||
				wps_button {
 | 
					
 | 
				
			||||||
					pins = "gpio50";
 | 
						btcoex_pins: btcoex_pins {
 | 
				
			||||||
					function = "gpio";
 | 
							mux_0 {
 | 
				
			||||||
					drive-strength = <8>;
 | 
								pins = "gpio64";
 | 
				
			||||||
					bias-pull-up;
 | 
								function = "pta1_1";
 | 
				
			||||||
 | 
								drive-strength = <6>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							mux_1 {
 | 
				
			||||||
 | 
								pins = "gpio65";
 | 
				
			||||||
 | 
								function = "pta1_2";
 | 
				
			||||||
 | 
								drive-strength = <6>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							mux_2 {
 | 
				
			||||||
 | 
								pins = "gpio66";
 | 
				
			||||||
 | 
								function = "pta1_0";
 | 
				
			||||||
 | 
								drive-strength = <6>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -52,107 +85,181 @@
 | 
				
			|||||||
			bias-pull-up;
 | 
								bias-pull-up;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
		mux_2 {
 | 
							mux_2 {
 | 
				
			||||||
					pins = "gpio37";
 | 
								pins = "gpio25";
 | 
				
			||||||
			function = "gpio";
 | 
								function = "gpio";
 | 
				
			||||||
			bias-pull-up;
 | 
								bias-pull-up;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
		mux_3 {
 | 
							mux_3 {
 | 
				
			||||||
					pins = "gpio25";
 | 
								pins = "gpio37";
 | 
				
			||||||
			function = "gpio";
 | 
								function = "gpio";
 | 
				
			||||||
			bias-pull-up;
 | 
								bias-pull-up;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						uart_pins: uart_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio23", "gpio24";
 | 
				
			||||||
 | 
								function = "blsp4_uart1";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						spi_0_pins: spi_0_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio38", "gpio39", "gpio40", "gpio41";
 | 
				
			||||||
 | 
								function = "blsp0_spi";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						spi_3_pins: spi_3_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio52", "gpio53";
 | 
				
			||||||
 | 
								function = "blsp3_spi";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							spi_cs {
 | 
				
			||||||
 | 
								pins = "gpio22";
 | 
				
			||||||
 | 
								function = "blsp3_spi2";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							quartz_interrupt {
 | 
				
			||||||
 | 
								pins = "gpio47";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								input;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							quartz_reset {
 | 
				
			||||||
 | 
								pins = "gpio21";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								output-low;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						qpic_pins: qpic_pins {
 | 
				
			||||||
 | 
							data_0 {
 | 
				
			||||||
 | 
								pins = "gpio15";
 | 
				
			||||||
 | 
								function = "qpic_pad0";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_1 {
 | 
				
			||||||
 | 
								pins = "gpio12";
 | 
				
			||||||
 | 
								function = "qpic_pad1";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_2 {
 | 
				
			||||||
 | 
								pins = "gpio13";
 | 
				
			||||||
 | 
								function = "qpic_pad2";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_3 {
 | 
				
			||||||
 | 
								pins = "gpio14";
 | 
				
			||||||
 | 
								function = "qpic_pad3";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_4 {
 | 
				
			||||||
 | 
								pins = "gpio5";
 | 
				
			||||||
 | 
								function = "qpic_pad4";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_5 {
 | 
				
			||||||
 | 
								pins = "gpio6";
 | 
				
			||||||
 | 
								function = "qpic_pad5";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_6 {
 | 
				
			||||||
 | 
								pins = "gpio7";
 | 
				
			||||||
 | 
								function = "qpic_pad6";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_7 {
 | 
				
			||||||
 | 
								pins = "gpio8";
 | 
				
			||||||
 | 
								function = "qpic_pad7";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							qpic_pad {
 | 
				
			||||||
 | 
								pins = "gpio1", "gpio3", "gpio4",
 | 
				
			||||||
 | 
								       "gpio10", "gpio11", "gpio17";
 | 
				
			||||||
 | 
								function = "qpic_pad";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						hsuart_pins: hsuart_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio46", "gpio47", "gpio48", "gpio49";
 | 
				
			||||||
 | 
								function = "blsp2_uart";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* POWER_LED, TP-Link */
 | 
				
			||||||
	led_pins: led_pins {
 | 
						led_pins: led_pins {
 | 
				
			||||||
		led_power {
 | 
							led_power {
 | 
				
			||||||
			pins = "gpio42";
 | 
								pins = "gpio42";
 | 
				
			||||||
			function = "gpio";
 | 
								function = "gpio";
 | 
				
			||||||
			drive-strength = <8>;
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* BUTTON, TP-Link */
 | 
				
			||||||
 | 
						button_pins: button_pins {
 | 
				
			||||||
 | 
							reset_button {
 | 
				
			||||||
 | 
								pins = "gpio50";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						usb_mux_sel_pins: usb_mux_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio27";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
			bias-pull-down;
 | 
								bias-pull-down;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						pcie0_pins: pcie_pins {
 | 
				
			||||||
 | 
							pcie0_rst {
 | 
				
			||||||
 | 
								pins = "gpio58";
 | 
				
			||||||
 | 
								function = "pcie0_rst";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
							pcie0_wake {
 | 
				
			||||||
		serial@78b3000 {
 | 
								pins = "gpio59";
 | 
				
			||||||
			status = "ok";
 | 
								function = "pcie0_wake";
 | 
				
			||||||
		};
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
		dp1 {
 | 
					 | 
				
			||||||
			device_type = "network";
 | 
					 | 
				
			||||||
			compatible = "qcom,nss-dp";
 | 
					 | 
				
			||||||
			qcom,id = <6>;
 | 
					 | 
				
			||||||
			reg = <0x3a001000 0x200>;
 | 
					 | 
				
			||||||
			qcom,mactype = <0>;
 | 
					 | 
				
			||||||
			local-mac-address = [000000000000];
 | 
					 | 
				
			||||||
			qcom,link-poll = <1>;
 | 
					 | 
				
			||||||
			qcom,phy-mdio-addr = <4>;
 | 
					 | 
				
			||||||
			phy-mode = "sgmii";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		spi@78b5000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
			pinctrl-0 = <&spi_0_pins>;
 | 
					 | 
				
			||||||
			pinctrl-names = "default";
 | 
					 | 
				
			||||||
			cs-select = <0>;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			m25p80@0 {
 | 
					 | 
				
			||||||
				  compatible = "n25q128a11";
 | 
					 | 
				
			||||||
				  #address-cells = <1>;
 | 
					 | 
				
			||||||
				  #size-cells = <1>;
 | 
					 | 
				
			||||||
				  reg = <0>;
 | 
					 | 
				
			||||||
				  spi-max-frequency = <50000000>;
 | 
					 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		dma@7984000 {
 | 
					};
 | 
				
			||||||
			 status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		nand@79b0000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			nand@0 {
 | 
					 | 
				
			||||||
				reg = <0>;
 | 
					 | 
				
			||||||
				#address-cells = <1>;
 | 
					 | 
				
			||||||
				#size-cells = <1>;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
				nand-ecc-strength = <4>;
 | 
					 | 
				
			||||||
				nand-ecc-step-size = <512>;
 | 
					 | 
				
			||||||
				nand-bus-width = <8>;
 | 
					 | 
				
			||||||
			};
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		gpio_keys {
 | 
					 | 
				
			||||||
			compatible = "gpio-keys";
 | 
					 | 
				
			||||||
			pinctrl-0 = <&button_pins>;
 | 
					 | 
				
			||||||
			pinctrl-names = "default";
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			button@1 {
 | 
					 | 
				
			||||||
				label = "reset";
 | 
					 | 
				
			||||||
				linux,code = <KEY_RESTART>;
 | 
					 | 
				
			||||||
				gpios = <&tlmm 50 GPIO_ACTIVE_LOW>;
 | 
					 | 
				
			||||||
				linux,input-type = <1>;
 | 
					 | 
				
			||||||
				debounce-interval = <60>;
 | 
					 | 
				
			||||||
			};
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		leds {
 | 
					 | 
				
			||||||
			compatible = "gpio-leds";
 | 
					 | 
				
			||||||
			pinctrl-0 = <&led_pins>;
 | 
					 | 
				
			||||||
			pinctrl-names = "default";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			led_power: led_power {
 | 
					 | 
				
			||||||
				label = "led_2g";
 | 
					 | 
				
			||||||
				gpio = <&tlmm 42 GPIO_ACTIVE_HIGH>;
 | 
					 | 
				
			||||||
				default-state = "off";
 | 
					 | 
				
			||||||
			};
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&soc {
 | 
				
			||||||
	mdio: mdio@90000 {
 | 
						mdio: mdio@90000 {
 | 
				
			||||||
		pinctrl-0 = <&mdio_pins>;
 | 
							pinctrl-0 = <&mdio_pins>;
 | 
				
			||||||
		pinctrl-names = "default";
 | 
							pinctrl-names = "default";
 | 
				
			||||||
		phy-reset-gpio = <&tlmm 37 0 &tlmm 25 1>;
 | 
							phy-reset-gpio = <&tlmm 37 0 &tlmm 25 1>;
 | 
				
			||||||
 | 
							compatible = "qcom,ipq40xx-mdio", "qcom,qca-mdio";
 | 
				
			||||||
		phy0: ethernet-phy@0 {
 | 
							phy0: ethernet-phy@0 {
 | 
				
			||||||
			reg = <0>;
 | 
								reg = <0>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
@@ -178,7 +285,7 @@
 | 
				
			|||||||
		switch_lan_bmp = <0x3e>; /* lan port bitmap */
 | 
							switch_lan_bmp = <0x3e>; /* lan port bitmap */
 | 
				
			||||||
		switch_wan_bmp = <0x40>; /* wan port bitmap */
 | 
							switch_wan_bmp = <0x40>; /* wan port bitmap */
 | 
				
			||||||
		switch_mac_mode = <0x0>; /* mac mode for uniphy instance0*/
 | 
							switch_mac_mode = <0x0>; /* mac mode for uniphy instance0*/
 | 
				
			||||||
			switch_mac_mode1 = <0xff>; /* mac mode for uniphy instance1*/
 | 
							switch_mac_mode1 = <0xf>; /* mac mode for uniphy instance1*/
 | 
				
			||||||
		switch_mac_mode2 = <0xf>; /* mac mode for uniphy instance2*/
 | 
							switch_mac_mode2 = <0xf>; /* mac mode for uniphy instance2*/
 | 
				
			||||||
		bm_tick_mode = <0>; /* bm tick mode */
 | 
							bm_tick_mode = <0>; /* bm tick mode */
 | 
				
			||||||
		tm_tick_mode = <0>; /* tm tick mode */
 | 
							tm_tick_mode = <0>; /* tm tick mode */
 | 
				
			||||||
@@ -466,15 +573,10 @@
 | 
				
			|||||||
						sp = <60>;
 | 
											sp = <60>;
 | 
				
			||||||
						cfg = <0 32 0 32>;
 | 
											cfg = <0 32 0 32>;
 | 
				
			||||||
					};
 | 
										};
 | 
				
			||||||
						group@1 {
 | 
					 | 
				
			||||||
							sp = <61>;
 | 
					 | 
				
			||||||
							cfg = <1 33 1 33>;
 | 
					 | 
				
			||||||
						};
 | 
					 | 
				
			||||||
				};
 | 
									};
 | 
				
			||||||
				l0scheduler {
 | 
									l0scheduler {
 | 
				
			||||||
					group@0 {
 | 
										group@0 {
 | 
				
			||||||
						ucast_queue = <240>;
 | 
											ucast_queue = <240>;
 | 
				
			||||||
							ucast_loop_pri = <16>;
 | 
					 | 
				
			||||||
						mcast_queue = <296>;
 | 
											mcast_queue = <296>;
 | 
				
			||||||
						cfg = <60 0 144 0 144>;
 | 
											cfg = <60 0 144 0 144>;
 | 
				
			||||||
					};
 | 
										};
 | 
				
			||||||
@@ -482,11 +584,171 @@
 | 
				
			|||||||
			};
 | 
								};
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						dp1 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
							qcom,id = <6>;
 | 
				
			||||||
 | 
							reg = <0x3a001000 0x200>;
 | 
				
			||||||
 | 
							qcom,mactype = <0>;
 | 
				
			||||||
 | 
							local-mac-address = [000000000000];
 | 
				
			||||||
 | 
							qcom,link-poll = <1>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <4>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* POWER LED, TP-Link */
 | 
				
			||||||
 | 
						leds {
 | 
				
			||||||
 | 
							compatible = "gpio-leds";
 | 
				
			||||||
 | 
							pinctrl-0 = <&led_pins>;
 | 
				
			||||||
 | 
							pinctrl-names = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led_power: led_power {
 | 
				
			||||||
 | 
								label = "blue:power";
 | 
				
			||||||
 | 
								gpio = <&tlmm 42 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
								default-state = "on";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* BUTTON, TP-Link */
 | 
				
			||||||
 | 
						gpio_keys {
 | 
				
			||||||
 | 
							compatible = "gpio-keys";
 | 
				
			||||||
 | 
							pinctrl-0 = <&button_pins>;
 | 
				
			||||||
 | 
							pinctrl-names = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							button@1 {
 | 
				
			||||||
 | 
								label = "reset";
 | 
				
			||||||
 | 
								linux,code = <KEY_RESTART>;
 | 
				
			||||||
 | 
								gpios = <&tlmm 50 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
 | 
								linux,input-type = <1>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						nss-macsec0 {
 | 
				
			||||||
 | 
							compatible = "qcom,nss-macsec";
 | 
				
			||||||
 | 
							phy_addr = <0x18>;
 | 
				
			||||||
 | 
							phy_access_mode = <0>;
 | 
				
			||||||
 | 
							mdiobus = <&mdio>;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
	nss-macsec1 {
 | 
						nss-macsec1 {
 | 
				
			||||||
		compatible = "qcom,nss-macsec";
 | 
							compatible = "qcom,nss-macsec";
 | 
				
			||||||
		phy_addr = <0x1c>;
 | 
							phy_addr = <0x1c>;
 | 
				
			||||||
		phy_access_mode = <0>;
 | 
							phy_access_mode = <0>;
 | 
				
			||||||
		mdiobus = <&mdio>;
 | 
							mdiobus = <&mdio>;
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&serial_blsp4 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&uart_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&spi_0 { /* BLSP1 QUP1 */
 | 
				
			||||||
 | 
						pinctrl-0 = <&spi_0_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						cs-select = <0>;
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						m25p80@0 {
 | 
				
			||||||
 | 
							#address-cells = <1>;
 | 
				
			||||||
 | 
							#size-cells = <1>;
 | 
				
			||||||
 | 
							reg = <0>;
 | 
				
			||||||
 | 
							compatible = "n25q128a11";
 | 
				
			||||||
 | 
							linux,modalias = "m25p80", "n25q128a11";
 | 
				
			||||||
 | 
							spi-max-frequency = <50000000>;
 | 
				
			||||||
 | 
							use-default-sizes;
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&spi_4 { /* BLSP1 QUP3 */
 | 
				
			||||||
 | 
						pinctrl-0 = <&spi_3_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						cs-select = <2>;
 | 
				
			||||||
 | 
						quartz-reset-gpio = <&tlmm 21 1>;
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
						spidev3: spi@3 {
 | 
				
			||||||
 | 
							compatible = "qca,spidev";
 | 
				
			||||||
 | 
							reg = <0>;
 | 
				
			||||||
 | 
							spi-max-frequency = <24000000>;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&serial_blsp2 {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&msm_imem {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&ssphy_0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qusb_phy_0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&ssphy_1 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qusb_phy_1 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&usb3_0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&usb3_1 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&cryptobam {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&crypto {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&i2c_0 {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&i2c_1 {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qpic_bam {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&nand {
 | 
				
			||||||
 | 
						pinctrl-0 = <&qpic_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qpic_lcd {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qpic_lcd_panel {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&ledc {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie1 {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,36 +1,226 @@
 | 
				
			|||||||
// SPDX-License-Identifier: GPL-2.0-only
 | 
					 | 
				
			||||||
/dts-v1/;
 | 
					/dts-v1/;
 | 
				
			||||||
/* Copyright (c) 2020 The Linux Foundation. All rights reserved.
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 2017-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 "ipq8074.dtsi"
 | 
					#include "qcom-ipq807x-soc.dtsi"
 | 
				
			||||||
#include "ipq8074-hk-cpu.dtsi"
 | 
					#include "qcom-ipq807x-hk-cpu.dtsi"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/ {
 | 
					/ {
 | 
				
			||||||
	#address-cells = <0x2>;
 | 
						#address-cells = <0x2>;
 | 
				
			||||||
	#size-cells = <0x2>;
 | 
						#size-cells = <0x2>;
 | 
				
			||||||
	model = "TP-Link EX447";
 | 
						model = "TP-Link EX447";
 | 
				
			||||||
	compatible = "tplink,ex447", "qcom,ipq807x";
 | 
						compatible = "tplink,ex447", "qcom,ipq807x";
 | 
				
			||||||
	qcom,msm-id = <0x157 0x0>, <0x187 0x0>;
 | 
						qcom,msm-id = <0x143 0x0>;
 | 
				
			||||||
	interrupt-parent = <&intc>;
 | 
						interrupt-parent = <&intc>;
 | 
				
			||||||
 | 
						qcom,board-id = <0x8 0x0>;
 | 
				
			||||||
 | 
						qcom,pmic-id = <0x0 0x0 0x0 0x0>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	aliases {
 | 
						aliases {
 | 
				
			||||||
		serial0 = &blsp1_uart5;
 | 
							/*
 | 
				
			||||||
		/* Aliases as required by u-boot to patch MAC addresses */
 | 
							 * Aliases as required by u-boot
 | 
				
			||||||
 | 
							 * to patch MAC addresses
 | 
				
			||||||
 | 
							 */
 | 
				
			||||||
		ethernet0 = "/soc/dp1";
 | 
							ethernet0 = "/soc/dp1";
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	chosen {
 | 
						chosen {
 | 
				
			||||||
		stdout-path = "serial0";
 | 
							bootargs = "console=ttyMSM0,115200,n8 root=/dev/ram0 rw \
 | 
				
			||||||
 | 
								init=/init";
 | 
				
			||||||
 | 
							bootargs-append = " swiotlb=1";
 | 
				
			||||||
		led-boot = &led_power;
 | 
							led-boot = &led_power;
 | 
				
			||||||
		led-failsafe = &led_power;
 | 
							led-failsafe = &led_power;
 | 
				
			||||||
		led-running = &led_power;
 | 
							led-running = &led_power;
 | 
				
			||||||
		led-upgrade = &led_power;
 | 
							led-upgrade = &led_power;
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	soc {
 | 
					&tlmm {
 | 
				
			||||||
		pinctrl@1000000 {
 | 
						pinctrl-0 = <&btcoex_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						btcoex_pins: btcoex_pins {
 | 
				
			||||||
 | 
							mux_0 {
 | 
				
			||||||
 | 
								pins = "gpio64";
 | 
				
			||||||
 | 
								function = "pta1_1";
 | 
				
			||||||
 | 
								drive-strength = <6>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							mux_1 {
 | 
				
			||||||
 | 
								pins = "gpio65";
 | 
				
			||||||
 | 
								function = "pta1_2";
 | 
				
			||||||
 | 
								drive-strength = <6>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							mux_2 {
 | 
				
			||||||
 | 
								pins = "gpio66";
 | 
				
			||||||
 | 
								function = "pta1_0";
 | 
				
			||||||
 | 
								drive-strength = <6>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						mdio_pins: mdio_pinmux {
 | 
				
			||||||
 | 
							mux_0 {
 | 
				
			||||||
 | 
								pins = "gpio68";
 | 
				
			||||||
 | 
								function = "mdc";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							mux_1 {
 | 
				
			||||||
 | 
								pins = "gpio69";
 | 
				
			||||||
 | 
								function = "mdio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							mux_2 {
 | 
				
			||||||
 | 
								pins = "gpio25";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							mux_3 {
 | 
				
			||||||
 | 
								pins = "gpio37";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						uart_pins: uart_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio23", "gpio24";
 | 
				
			||||||
 | 
								function = "blsp4_uart1";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						spi_0_pins: spi_0_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio38", "gpio39", "gpio40", "gpio41";
 | 
				
			||||||
 | 
								function = "blsp0_spi";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						spi_3_pins: spi_3_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio52", "gpio53";
 | 
				
			||||||
 | 
								function = "blsp3_spi";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							spi_cs {
 | 
				
			||||||
 | 
								pins = "gpio22";
 | 
				
			||||||
 | 
								function = "blsp3_spi2";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							quartz_interrupt {
 | 
				
			||||||
 | 
								pins = "gpio47";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								input;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							quartz_reset {
 | 
				
			||||||
 | 
								pins = "gpio21";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								output-low;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						qpic_pins: qpic_pins {
 | 
				
			||||||
 | 
							data_0 {
 | 
				
			||||||
 | 
								pins = "gpio15";
 | 
				
			||||||
 | 
								function = "qpic_pad0";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_1 {
 | 
				
			||||||
 | 
								pins = "gpio12";
 | 
				
			||||||
 | 
								function = "qpic_pad1";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_2 {
 | 
				
			||||||
 | 
								pins = "gpio13";
 | 
				
			||||||
 | 
								function = "qpic_pad2";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_3 {
 | 
				
			||||||
 | 
								pins = "gpio14";
 | 
				
			||||||
 | 
								function = "qpic_pad3";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_4 {
 | 
				
			||||||
 | 
								pins = "gpio5";
 | 
				
			||||||
 | 
								function = "qpic_pad4";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_5 {
 | 
				
			||||||
 | 
								pins = "gpio6";
 | 
				
			||||||
 | 
								function = "qpic_pad5";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_6 {
 | 
				
			||||||
 | 
								pins = "gpio7";
 | 
				
			||||||
 | 
								function = "qpic_pad6";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_7 {
 | 
				
			||||||
 | 
								pins = "gpio8";
 | 
				
			||||||
 | 
								function = "qpic_pad7";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							qpic_pad {
 | 
				
			||||||
 | 
								pins = "gpio1", "gpio3", "gpio4",
 | 
				
			||||||
 | 
								       "gpio10", "gpio11", "gpio17";
 | 
				
			||||||
 | 
								function = "qpic_pad";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						hsuart_pins: hsuart_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio46", "gpio47", "gpio48", "gpio49";
 | 
				
			||||||
 | 
								function = "blsp2_uart";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* POWER_LED, TP-Link */
 | 
				
			||||||
 | 
						led_pins: led_pins {
 | 
				
			||||||
 | 
							led_power {
 | 
				
			||||||
 | 
								pins = "gpio42";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* BUTTON, TP-Link */
 | 
				
			||||||
	button_pins: button_pins {
 | 
						button_pins: button_pins {
 | 
				
			||||||
				wps_button {
 | 
							reset_button {
 | 
				
			||||||
			pins = "gpio50";
 | 
								pins = "gpio50";
 | 
				
			||||||
			function = "gpio";
 | 
								function = "gpio";
 | 
				
			||||||
			drive-strength = <8>;
 | 
								drive-strength = <8>;
 | 
				
			||||||
@@ -62,161 +252,14 @@
 | 
				
			|||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			mdio_pins: mdio_pinmux {
 | 
					};
 | 
				
			||||||
				mux_0 {
 | 
					 | 
				
			||||||
					pins = "gpio68";
 | 
					 | 
				
			||||||
					function = "mdc";
 | 
					 | 
				
			||||||
					drive-strength = <8>;
 | 
					 | 
				
			||||||
					bias-pull-up;
 | 
					 | 
				
			||||||
				};
 | 
					 | 
				
			||||||
				mux_1 {
 | 
					 | 
				
			||||||
					pins = "gpio69";
 | 
					 | 
				
			||||||
					function = "mdio";
 | 
					 | 
				
			||||||
					drive-strength = <8>;
 | 
					 | 
				
			||||||
					bias-pull-up;
 | 
					 | 
				
			||||||
				};
 | 
					 | 
				
			||||||
				mux_2 {
 | 
					 | 
				
			||||||
					pins = "gpio25";
 | 
					 | 
				
			||||||
					function = "gpio";
 | 
					 | 
				
			||||||
					bias-pull-up;
 | 
					 | 
				
			||||||
				};
 | 
					 | 
				
			||||||
				mux_3 {
 | 
					 | 
				
			||||||
					pins = "gpio37";
 | 
					 | 
				
			||||||
					function = "gpio";
 | 
					 | 
				
			||||||
					bias-pull-up;
 | 
					 | 
				
			||||||
				};
 | 
					 | 
				
			||||||
			};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			led_pins: led_pins {
 | 
					 | 
				
			||||||
				led_power {
 | 
					 | 
				
			||||||
					pins = "gpio42";
 | 
					 | 
				
			||||||
					function = "gpio";
 | 
					 | 
				
			||||||
					drive-strength = <8>;
 | 
					 | 
				
			||||||
					bias-pull-down;
 | 
					 | 
				
			||||||
				};
 | 
					 | 
				
			||||||
			};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			spi_3_pins: spi_3_pins {
 | 
					 | 
				
			||||||
				mux {
 | 
					 | 
				
			||||||
					pins = "gpio50", "gpio52", "gpio53";
 | 
					 | 
				
			||||||
					function = "blsp3_spi";
 | 
					 | 
				
			||||||
					drive-strength = <8>;
 | 
					 | 
				
			||||||
					bias-disable;
 | 
					 | 
				
			||||||
				};
 | 
					 | 
				
			||||||
				spi_cs {
 | 
					 | 
				
			||||||
					pins = "gpio22";
 | 
					 | 
				
			||||||
					function = "blsp3_spi2";
 | 
					 | 
				
			||||||
					drive-strength = <8>;
 | 
					 | 
				
			||||||
					bias-disable;
 | 
					 | 
				
			||||||
				};
 | 
					 | 
				
			||||||
				quartz_interrupt {
 | 
					 | 
				
			||||||
					pins = "gpio47";
 | 
					 | 
				
			||||||
					function = "gpio";
 | 
					 | 
				
			||||||
					input;
 | 
					 | 
				
			||||||
					bias-disable;
 | 
					 | 
				
			||||||
				};
 | 
					 | 
				
			||||||
				quartz_reset {
 | 
					 | 
				
			||||||
					pins = "gpio21";
 | 
					 | 
				
			||||||
					function = "gpio";
 | 
					 | 
				
			||||||
					output-low;
 | 
					 | 
				
			||||||
					bias-disable;
 | 
					 | 
				
			||||||
				};
 | 
					 | 
				
			||||||
			};
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		serial@78b3000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		dp1 {
 | 
					 | 
				
			||||||
			device_type = "network";
 | 
					 | 
				
			||||||
			compatible = "qcom,nss-dp";
 | 
					 | 
				
			||||||
			qcom,id = <5>;
 | 
					 | 
				
			||||||
			reg = <0x3a001000 0x200>;
 | 
					 | 
				
			||||||
			qcom,mactype = <0>;
 | 
					 | 
				
			||||||
			local-mac-address = [000000000000];
 | 
					 | 
				
			||||||
			qcom,link-poll = <1>;
 | 
					 | 
				
			||||||
			qcom,phy-mdio-addr = <28>;
 | 
					 | 
				
			||||||
			phy-mode = "sgmii";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		spi@78b5000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
			pinctrl-0 = <&spi_0_pins>;
 | 
					 | 
				
			||||||
			pinctrl-names = "default";
 | 
					 | 
				
			||||||
			cs-select = <0>;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			m25p80@0 {
 | 
					 | 
				
			||||||
				  compatible = "w25q256jw";
 | 
					 | 
				
			||||||
				  #address-cells = <1>;
 | 
					 | 
				
			||||||
				  #size-cells = <1>;
 | 
					 | 
				
			||||||
				  reg = <0>;
 | 
					 | 
				
			||||||
				  spi-max-frequency = <50000000>;
 | 
					 | 
				
			||||||
			};
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		dma@7984000 {
 | 
					 | 
				
			||||||
			 status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		nand@79b0000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			nand@0 {
 | 
					 | 
				
			||||||
				reg = <0>;
 | 
					 | 
				
			||||||
				#address-cells = <1>;
 | 
					 | 
				
			||||||
				#size-cells = <1>;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
				nand-ecc-strength = <4>;
 | 
					 | 
				
			||||||
				nand-ecc-step-size = <512>;
 | 
					 | 
				
			||||||
				nand-bus-width = <8>;
 | 
					 | 
				
			||||||
			};
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		phy@84000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		phy@86000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		pci@20000000 {
 | 
					 | 
				
			||||||
			perst-gpio = <&tlmm 58 1>;
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		gpio_keys {
 | 
					 | 
				
			||||||
			compatible = "gpio-keys";
 | 
					 | 
				
			||||||
			pinctrl-0 = <&button_pins>;
 | 
					 | 
				
			||||||
			pinctrl-names = "default";
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			button@1 {
 | 
					 | 
				
			||||||
				label = "reset";
 | 
					 | 
				
			||||||
				linux,code = <KEY_RESTART>;
 | 
					 | 
				
			||||||
				gpios = <&tlmm 50 GPIO_ACTIVE_LOW>;
 | 
					 | 
				
			||||||
				linux,input-type = <1>;
 | 
					 | 
				
			||||||
				debounce-interval = <60>;
 | 
					 | 
				
			||||||
			};
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		leds {
 | 
					 | 
				
			||||||
			compatible = "gpio-leds";
 | 
					 | 
				
			||||||
			pinctrl-0 = <&led_pins>;
 | 
					 | 
				
			||||||
			pinctrl-names = "default";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			led_power: led_power {
 | 
					 | 
				
			||||||
				label = "blue:power";
 | 
					 | 
				
			||||||
				gpio = <&tlmm 50 GPIO_ACTIVE_LOW>;
 | 
					 | 
				
			||||||
				default-state = "off";
 | 
					 | 
				
			||||||
			};
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&soc {
 | 
				
			||||||
	mdio: mdio@90000 {
 | 
						mdio: mdio@90000 {
 | 
				
			||||||
		pinctrl-0 = <&mdio_pins>;
 | 
							pinctrl-0 = <&mdio_pins>;
 | 
				
			||||||
		pinctrl-names = "default";
 | 
							pinctrl-names = "default";
 | 
				
			||||||
		phy-reset-gpio = <&tlmm 37 0 &tlmm 25 1>;
 | 
							phy-reset-gpio = <&tlmm 37 0 &tlmm 25 1>;
 | 
				
			||||||
 | 
							compatible = "qcom,ipq40xx-mdio", "qcom,qca-mdio";
 | 
				
			||||||
		phy0: ethernet-phy@0 {
 | 
							phy0: ethernet-phy@0 {
 | 
				
			||||||
			reg = <0>;
 | 
								reg = <0>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
@@ -530,15 +573,10 @@
 | 
				
			|||||||
						sp = <60>;
 | 
											sp = <60>;
 | 
				
			||||||
						cfg = <0 32 0 32>;
 | 
											cfg = <0 32 0 32>;
 | 
				
			||||||
					};
 | 
										};
 | 
				
			||||||
						group@1 {
 | 
					 | 
				
			||||||
							sp = <61>;
 | 
					 | 
				
			||||||
							cfg = <1 33 1 33>;
 | 
					 | 
				
			||||||
						};
 | 
					 | 
				
			||||||
				};
 | 
									};
 | 
				
			||||||
				l0scheduler {
 | 
									l0scheduler {
 | 
				
			||||||
					group@0 {
 | 
										group@0 {
 | 
				
			||||||
						ucast_queue = <240>;
 | 
											ucast_queue = <240>;
 | 
				
			||||||
							ucast_loop_pri = <16>;
 | 
					 | 
				
			||||||
						mcast_queue = <296>;
 | 
											mcast_queue = <296>;
 | 
				
			||||||
						cfg = <60 0 144 0 144>;
 | 
											cfg = <60 0 144 0 144>;
 | 
				
			||||||
					};
 | 
										};
 | 
				
			||||||
@@ -547,6 +585,45 @@
 | 
				
			|||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						dp1 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
							qcom,id = <5>;
 | 
				
			||||||
 | 
							reg = <0x3a001000 0x200>;
 | 
				
			||||||
 | 
							qcom,mactype = <0>;
 | 
				
			||||||
 | 
							local-mac-address = [000000000000];
 | 
				
			||||||
 | 
							qcom,link-poll = <1>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <28>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						/* POWER LED, TP-Link */
 | 
				
			||||||
 | 
						leds {
 | 
				
			||||||
 | 
							compatible = "gpio-leds";
 | 
				
			||||||
 | 
							pinctrl-0 = <&led_pins>;
 | 
				
			||||||
 | 
							pinctrl-names = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led_power: led_power {
 | 
				
			||||||
 | 
								label = "power:blue";
 | 
				
			||||||
 | 
								gpio = <&tlmm 42 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
								default-state = "on";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* BUTTON, TP-Link */
 | 
				
			||||||
 | 
						gpio_keys {
 | 
				
			||||||
 | 
							compatible = "gpio-keys";
 | 
				
			||||||
 | 
							pinctrl-0 = <&button_pins>;
 | 
				
			||||||
 | 
							pinctrl-names = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							button@1 {
 | 
				
			||||||
 | 
								label = "reset";
 | 
				
			||||||
 | 
								linux,code = <KEY_RESTART>;
 | 
				
			||||||
 | 
								gpios = <&tlmm 50 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
 | 
								linux,input-type = <1>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	nss-macsec0 {
 | 
						nss-macsec0 {
 | 
				
			||||||
		compatible = "qcom,nss-macsec";
 | 
							compatible = "qcom,nss-macsec";
 | 
				
			||||||
		phy_addr = <0x18>;
 | 
							phy_addr = <0x18>;
 | 
				
			||||||
@@ -559,5 +636,119 @@
 | 
				
			|||||||
		phy_access_mode = <0>;
 | 
							phy_access_mode = <0>;
 | 
				
			||||||
		mdiobus = <&mdio>;
 | 
							mdiobus = <&mdio>;
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&serial_blsp4 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&uart_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&spi_0 { /* BLSP1 QUP1 */
 | 
				
			||||||
 | 
						pinctrl-0 = <&spi_0_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						cs-select = <0>;
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						m25p80@0 {
 | 
				
			||||||
 | 
							#address-cells = <1>;
 | 
				
			||||||
 | 
							#size-cells = <1>;
 | 
				
			||||||
 | 
							reg = <0>;
 | 
				
			||||||
 | 
							compatible = "n25q128a11";
 | 
				
			||||||
 | 
							linux,modalias = "m25p80", "n25q128a11";
 | 
				
			||||||
 | 
							spi-max-frequency = <50000000>;
 | 
				
			||||||
 | 
							use-default-sizes;
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&spi_4 { /* BLSP1 QUP3 */
 | 
				
			||||||
 | 
						pinctrl-0 = <&spi_3_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						cs-select = <2>;
 | 
				
			||||||
 | 
						quartz-reset-gpio = <&tlmm 21 1>;
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
						spidev3: spi@3 {
 | 
				
			||||||
 | 
							compatible = "qca,spidev";
 | 
				
			||||||
 | 
							reg = <0>;
 | 
				
			||||||
 | 
							spi-max-frequency = <24000000>;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&serial_blsp2 {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&msm_imem {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&ssphy_0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qusb_phy_0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&ssphy_1 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qusb_phy_1 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&usb3_0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&usb3_1 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&cryptobam {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&crypto {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&i2c_0 {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&i2c_1 {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qpic_bam {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&nand {
 | 
				
			||||||
 | 
						pinctrl-0 = <&qpic_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qpic_lcd {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qpic_lcd_panel {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&ledc {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie1 {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,33 +1,197 @@
 | 
				
			|||||||
// SPDX-License-Identifier: GPL-2.0-only
 | 
					 | 
				
			||||||
/dts-v1/;
 | 
					/dts-v1/;
 | 
				
			||||||
/* Copyright (c) 2017, 2020, The Linux Foundation. All rights reserved.
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 2017-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 "ipq8074-hk01.dtsi"
 | 
					#include "qcom-ipq807x-soc.dtsi"
 | 
				
			||||||
#include "ipq8074-audio.dtsi"
 | 
					#include "qcom-ipq807x-audio.dtsi"
 | 
				
			||||||
 | 
					#include "qcom-ipq807x-hk-cpu.dtsi"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/ {
 | 
					/ {
 | 
				
			||||||
 | 
						#address-cells = <0x2>;
 | 
				
			||||||
 | 
						#size-cells = <0x2>;
 | 
				
			||||||
	model = "CIG WF194C";
 | 
						model = "CIG WF194C";
 | 
				
			||||||
	compatible = "cig,wf194c", "qcom,ipq807x";
 | 
						compatible = "cig,wf194c", "qcom,ipq807x";
 | 
				
			||||||
 | 
						qcom,msm-id = <0x143 0x0>, <0x158 0x0>, <0x186 0x0>, <0x188 0x0>;
 | 
				
			||||||
 | 
						interrupt-parent = <&intc>;
 | 
				
			||||||
 | 
						qcom,board-id = <0x8 0x0>;
 | 
				
			||||||
 | 
						qcom,pmic-id = <0x0 0x0 0x0 0x0>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	aliases {
 | 
						aliases {
 | 
				
			||||||
		/delete-property/ ethernet2;
 | 
							sdhc1 = &sdhc_1; /* SDC1 eMMC slot */
 | 
				
			||||||
		/delete-property/ ethernet3;
 | 
							sdhc2 = &sdhc_2; /* SDC2 SD slot */
 | 
				
			||||||
		/delete-property/ ethernet4;
 | 
							/*
 | 
				
			||||||
		/delete-property/ ethernet5;
 | 
							 * Aliases as required by u-boot
 | 
				
			||||||
 | 
							 * to patch MAC addresses
 | 
				
			||||||
 | 
							 */
 | 
				
			||||||
 | 
							ethernet0 = "/soc/dp1";
 | 
				
			||||||
 | 
							ethernet1 = "/soc/dp2";
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	soc {
 | 
						chosen {
 | 
				
			||||||
		/delete-node/ ledc@191E000;
 | 
							bootargs = "console=ttyMSM0,115200,n8 root=/dev/ram0 rw init=/init";
 | 
				
			||||||
		/delete-node/ qti,scm_restart_reason;
 | 
							#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
 | 
								bootargs-append = " swiotlb=1";
 | 
				
			||||||
 | 
							#else
 | 
				
			||||||
 | 
								bootargs-append = " swiotlb=1 coherent_pool=2M";
 | 
				
			||||||
 | 
							#endif
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		pinctrl@1000000 {
 | 
					&tlmm {
 | 
				
			||||||
			button_pins: button_pins {
 | 
						pinctrl-0 = <&btcoex_pins>;
 | 
				
			||||||
				wps_button {
 | 
						pinctrl-names = "default";
 | 
				
			||||||
					pins = "gpio57";
 | 
					
 | 
				
			||||||
 | 
						btcoex_pins: btcoex_pins {
 | 
				
			||||||
 | 
							mux_0 {
 | 
				
			||||||
 | 
								pins = "gpio34";
 | 
				
			||||||
			function = "gpio";
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <6>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
								output-high;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							mux_1 {
 | 
				
			||||||
 | 
								pins = "gpio62";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <6>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
								output-high;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						mdio_pins: mdio_pinmux {
 | 
				
			||||||
 | 
							mux_0 {
 | 
				
			||||||
 | 
								pins = "gpio68";
 | 
				
			||||||
 | 
								function = "mdc";
 | 
				
			||||||
			drive-strength = <8>;
 | 
								drive-strength = <8>;
 | 
				
			||||||
			bias-pull-up;
 | 
								bias-pull-up;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
							mux_1 {
 | 
				
			||||||
 | 
								pins = "gpio69";
 | 
				
			||||||
 | 
								function = "mdio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						uart_pins: uart_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio23", "gpio24";
 | 
				
			||||||
 | 
								function = "blsp4_uart1";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						i2c_0_pins: i2c_0_pinmux {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio42", "gpio43";
 | 
				
			||||||
 | 
								function = "blsp1_i2c";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						spi_0_pins: spi_0_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio38", "gpio39", "gpio40", "gpio41";
 | 
				
			||||||
 | 
								function = "blsp0_spi";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						qpic_pins: qpic_pins {
 | 
				
			||||||
 | 
							data_0 {
 | 
				
			||||||
 | 
								pins = "gpio15";
 | 
				
			||||||
 | 
								function = "qpic_pad0";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_1 {
 | 
				
			||||||
 | 
								pins = "gpio12";
 | 
				
			||||||
 | 
								function = "qpic_pad1";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_2 {
 | 
				
			||||||
 | 
								pins = "gpio13";
 | 
				
			||||||
 | 
								function = "qpic_pad2";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_3 {
 | 
				
			||||||
 | 
								pins = "gpio14";
 | 
				
			||||||
 | 
								function = "qpic_pad3";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_4 {
 | 
				
			||||||
 | 
								pins = "gpio5";
 | 
				
			||||||
 | 
								function = "qpic_pad4";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_5 {
 | 
				
			||||||
 | 
								pins = "gpio6";
 | 
				
			||||||
 | 
								function = "qpic_pad5";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_6 {
 | 
				
			||||||
 | 
								pins = "gpio7";
 | 
				
			||||||
 | 
								function = "qpic_pad6";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_7 {
 | 
				
			||||||
 | 
								pins = "gpio8";
 | 
				
			||||||
 | 
								function = "qpic_pad7";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_8 {
 | 
				
			||||||
 | 
								pins = "gpio16";
 | 
				
			||||||
 | 
								function = "qpic_pad8";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							qpic_pad {
 | 
				
			||||||
 | 
								pins = "gpio0", "gpio1", "gpio2", "gpio3", "gpio4",
 | 
				
			||||||
 | 
								       "gpio9", "gpio10", "gpio11", "gpio17";
 | 
				
			||||||
 | 
								function = "qpic_pad";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						sd_pins: sd_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio63";
 | 
				
			||||||
 | 
								function = "sd_card";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						hsuart_pins: hsuart_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio48", "gpio49";
 | 
				
			||||||
 | 
								function = "blsp2_uart";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	leds_pins: leds_pinmux {
 | 
						leds_pins: leds_pinmux {
 | 
				
			||||||
@@ -37,28 +201,66 @@
 | 
				
			|||||||
			drive-strength = <8>;
 | 
								drive-strength = <8>;
 | 
				
			||||||
			bias-pull-down;
 | 
								bias-pull-down;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					 | 
				
			||||||
		led1_g {
 | 
							led1_g {
 | 
				
			||||||
			pins = "gpio55";
 | 
								pins = "gpio55";
 | 
				
			||||||
			function = "gpio";
 | 
								function = "gpio";
 | 
				
			||||||
			drive-strength = <8>;
 | 
								drive-strength = <8>;
 | 
				
			||||||
			bias-pull-down;
 | 
								bias-pull-down;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					 | 
				
			||||||
		led2_r {
 | 
							led2_r {
 | 
				
			||||||
			pins = "gpio56";
 | 
								pins = "gpio56";
 | 
				
			||||||
			function = "gpio";
 | 
								function = "gpio";
 | 
				
			||||||
			drive-strength = <8>;
 | 
								drive-strength = <8>;
 | 
				
			||||||
			bias-pull-down;
 | 
								bias-pull-down;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					 | 
				
			||||||
		led2_g {
 | 
							led2_g {
 | 
				
			||||||
			pins = "gpio64";
 | 
								pins = "gpio64";
 | 
				
			||||||
			function = "gpio";
 | 
								function = "gpio";
 | 
				
			||||||
			drive-strength = <8>;
 | 
								drive-strength = <8>;
 | 
				
			||||||
			bias-pull-down;
 | 
								bias-pull-down;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						button_pins: button_pins {
 | 
				
			||||||
 | 
							wps_button {
 | 
				
			||||||
 | 
								pins = "gpio67";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						uniphy_pins: uniphy_pinmux {
 | 
				
			||||||
 | 
							mux_2 {
 | 
				
			||||||
 | 
								pins = "gpio37";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							mux_3 {
 | 
				
			||||||
 | 
								pins = "gpio44";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						pwm_pins: pwm_pinmux {
 | 
				
			||||||
 | 
							mux_1 {
 | 
				
			||||||
 | 
								pins = "gpio25";
 | 
				
			||||||
 | 
								function = "pwm02";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&soc {
 | 
				
			||||||
 | 
						pwm {
 | 
				
			||||||
 | 
							pinctrl-0 = <&pwm_pins>;
 | 
				
			||||||
 | 
							pinctrl-names = "default";
 | 
				
			||||||
 | 
							used-pwm-indices = <1>, <0>, <0>, <0>;
 | 
				
			||||||
 | 
							status = "disabled";
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	gpio_keys {
 | 
						gpio_keys {
 | 
				
			||||||
@@ -86,56 +288,28 @@
 | 
				
			|||||||
			gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>;
 | 
								gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
			default-state = "off";
 | 
								default-state = "off";
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					 | 
				
			||||||
		led@55 {
 | 
							led@55 {
 | 
				
			||||||
			label = "wf194c:green:lan";
 | 
								label = "wf194c:green:lan";
 | 
				
			||||||
			gpios = <&tlmm 55 GPIO_ACTIVE_HIGH>;
 | 
								gpios = <&tlmm 55 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
			default-state = "on";
 | 
								default-state = "on";
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					 | 
				
			||||||
		led@56 {
 | 
							led@56 {
 | 
				
			||||||
			label = "wf194c:red:wan";
 | 
								label = "wf194c:red:wan";
 | 
				
			||||||
			gpios = <&tlmm 56 GPIO_ACTIVE_HIGH>;
 | 
								gpios = <&tlmm 56 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
			default-state = "off";
 | 
								default-state = "off";
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					 | 
				
			||||||
		led@64 {
 | 
							led@64 {
 | 
				
			||||||
			label = "wf194c:green:wan";
 | 
								label = "wf194c:green:wan";
 | 
				
			||||||
			gpios = <&tlmm 64 GPIO_ACTIVE_HIGH>;
 | 
								gpios = <&tlmm 64 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
			default-state = "on";
 | 
								default-state = "on";
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					 | 
				
			||||||
		dp1 {
 | 
					 | 
				
			||||||
			device_type = "network";
 | 
					 | 
				
			||||||
			compatible = "qcom,nss-dp";
 | 
					 | 
				
			||||||
			qcom,id = <4>;
 | 
					 | 
				
			||||||
			reg = <0x3a001600 0x200>;
 | 
					 | 
				
			||||||
			qcom,mactype = <0>;
 | 
					 | 
				
			||||||
			local-mac-address = [000000000000];
 | 
					 | 
				
			||||||
			qcom,link-poll = <1>;
 | 
					 | 
				
			||||||
			qcom,phy-mdio-addr = <3>;
 | 
					 | 
				
			||||||
			phy-mode = "sgmii";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		dp2 {
 | 
					 | 
				
			||||||
			device_type = "network";
 | 
					 | 
				
			||||||
			compatible = "qcom,nss-dp";
 | 
					 | 
				
			||||||
			qcom,id = <6>;
 | 
					 | 
				
			||||||
			reg = <0x3a007000 0x3fff>;
 | 
					 | 
				
			||||||
			qcom,mactype = <1>;
 | 
					 | 
				
			||||||
			local-mac-address = [000000000000];
 | 
					 | 
				
			||||||
			qcom,link-poll = <1>;
 | 
					 | 
				
			||||||
			qcom,phy-mdio-addr = <0>;
 | 
					 | 
				
			||||||
			phy-mode = "sgmii";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	mdio@90000 {
 | 
						mdio@90000 {
 | 
				
			||||||
		pinctrl-0 = <&mdio_pins>;
 | 
							pinctrl-0 = <&mdio_pins>;
 | 
				
			||||||
		pinctrl-names = "default";
 | 
							pinctrl-names = "default";
 | 
				
			||||||
		phy-reset-gpio = <&tlmm 37 0 &tlmm 44 0>;
 | 
							phy-reset-gpio = <&tlmm 37 0 &tlmm 44 0>;
 | 
				
			||||||
		phy0: ethernet-phy@0 {
 | 
							phy0: ethernet-phy@0 {
 | 
				
			||||||
				reg = <0xf>;
 | 
								reg = <0xf>;	/*<0>*/
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
		phy1: ethernet-phy@1 {
 | 
							phy1: ethernet-phy@1 {
 | 
				
			||||||
			reg = <0xf>;
 | 
								reg = <0xf>;
 | 
				
			||||||
@@ -156,8 +330,10 @@
 | 
				
			|||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ess-switch@3a000000 {
 | 
						ess-switch@3a000000 {
 | 
				
			||||||
 | 
							pinctrl-0 = <&uniphy_pins>;
 | 
				
			||||||
 | 
							pinctrl-names = "default";
 | 
				
			||||||
		switch_cpu_bmp = <0x1>;  /* cpu port bitmap */
 | 
							switch_cpu_bmp = <0x1>;  /* cpu port bitmap */
 | 
				
			||||||
			switch_lan_bmp = <0x30>; /* lan port bitmap */
 | 
							switch_lan_bmp = <0x30>; /*..0x3e lan port bitmap */
 | 
				
			||||||
		switch_wan_bmp = <0x40>; /* wan port bitmap */
 | 
							switch_wan_bmp = <0x40>; /* wan port bitmap */
 | 
				
			||||||
		switch_mac_mode = <0x0>; /* mac mode for uniphy instance0*/
 | 
							switch_mac_mode = <0x0>; /* mac mode for uniphy instance0*/
 | 
				
			||||||
		switch_mac_mode1 = <0xff>; /* mac mode for uniphy instance1*/
 | 
							switch_mac_mode1 = <0xff>; /* mac mode for uniphy instance1*/
 | 
				
			||||||
@@ -437,25 +613,139 @@
 | 
				
			|||||||
			};
 | 
								};
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
						dp1 {
 | 
				
			||||||
		pwm {
 | 
							device_type = "network";
 | 
				
			||||||
			status = "disabled";
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
		};
 | 
							qcom,id = <4>;
 | 
				
			||||||
 | 
							reg = <0x3a001600 0x200>;
 | 
				
			||||||
		qti_mdss_qpic@7980000 {
 | 
							qcom,mactype = <0>;
 | 
				
			||||||
			status = "disabled";
 | 
							local-mac-address = [000000000000];
 | 
				
			||||||
		};
 | 
							qcom,link-poll = <1>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <3>;
 | 
				
			||||||
		qti_mdss_qpic_panel {
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
			status = "disabled";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		i2c@78b6000 {
 | 
					 | 
				
			||||||
			status = "disabled";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		sdhci@7824900 {
 | 
					 | 
				
			||||||
			status = "disabled";
 | 
					 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
						dp2 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
							qcom,id = <6>;
 | 
				
			||||||
 | 
							reg = <0x3a007000 0x3fff>;
 | 
				
			||||||
 | 
							qcom,mactype = <1>;
 | 
				
			||||||
 | 
							local-mac-address = [000000000000];
 | 
				
			||||||
 | 
							qcom,link-poll = <1>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <0>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&serial_blsp4 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&uart_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&spi_0 { /* BLSP1 QUP1 */
 | 
				
			||||||
 | 
						pinctrl-0 = <&spi_0_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						cs-select = <0>;
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						m25p80@0 {
 | 
				
			||||||
 | 
							#address-cells = <1>;
 | 
				
			||||||
 | 
							#size-cells = <1>;
 | 
				
			||||||
 | 
							reg = <0>;
 | 
				
			||||||
 | 
							compatible = "n25q128a11";
 | 
				
			||||||
 | 
							linux,modalias = "m25p80", "n25q128a11";
 | 
				
			||||||
 | 
							spi-max-frequency = <50000000>;
 | 
				
			||||||
 | 
							use-default-sizes;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&serial_blsp2 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&hsuart_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&msm_imem {
 | 
				
			||||||
 | 
						status = "enabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&ssphy_0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qusb_phy_0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&ssphy_1 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qusb_phy_1 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&usb3_0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&usb3_1 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&cryptobam {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&crypto {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&i2c_0 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&i2c_0_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&i2c_1 {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&sdhc_1 {
 | 
				
			||||||
 | 
						qcom,clk-rates = <400000 25000000 50000000 100000000 \
 | 
				
			||||||
 | 
								 192000000 384000000>;
 | 
				
			||||||
 | 
						qcom,bus-speed-mode = "HS400_1p8v", "HS200_1p8v", "DDR_1p8v";
 | 
				
			||||||
 | 
						qcom,nonremovable;
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qpic_bam {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&nand {
 | 
				
			||||||
 | 
						pinctrl-0 = <&qpic_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&sdhc_2 {
 | 
				
			||||||
 | 
						qcom,clk-rates = <400000 25000000 50000000 100000000 \
 | 
				
			||||||
 | 
								 192000000>;
 | 
				
			||||||
 | 
						qcom,bus-speed-mode = "HS200_1p8v", "DDR_1p8v";
 | 
				
			||||||
 | 
						pinctrl-0 = <&sd_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						cd-gpios = <&tlmm 63 1>;
 | 
				
			||||||
 | 
						sd-ldo-gpios = <&tlmm 21 0>;
 | 
				
			||||||
 | 
						vqmmc-supply = <&ldo11>;
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qpic_lcd {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qpic_lcd_panel {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,110 +1,113 @@
 | 
				
			|||||||
// SPDX-License-Identifier: GPL-2.0-only
 | 
					 | 
				
			||||||
/dts-v1/;
 | 
					/dts-v1/;
 | 
				
			||||||
/* Copyright (c) 2020 The Linux Foundation. All rights reserved.
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Permission to use, copy, modify, and/or distribute this software for any
 | 
				
			||||||
 | 
					 * purpose with or without fee is hereby granted, provided that the above
 | 
				
			||||||
 | 
					 * copyright notice and this permission notice appear in all copies.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 | 
				
			||||||
 | 
					 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 | 
				
			||||||
 | 
					 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 | 
				
			||||||
 | 
					 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 | 
				
			||||||
 | 
					 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 | 
				
			||||||
 | 
					 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 | 
				
			||||||
 | 
					 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
#include "ipq8074.dtsi"
 | 
					#include "qcom-ipq807x-soc.dtsi"
 | 
				
			||||||
#include "ipq8074-hk-cpu.dtsi"
 | 
					#include "qcom-ipq807x-hk-cpu.dtsi"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/ {
 | 
					/ {
 | 
				
			||||||
	#address-cells = <0x2>;
 | 
						#address-cells = <0x2>;
 | 
				
			||||||
	#size-cells = <0x2>;
 | 
						#size-cells = <0x2>;
 | 
				
			||||||
	model = "CIG WF194c4";
 | 
						model = "CIG WF194c4";
 | 
				
			||||||
	compatible = "cig,wf194c4", "qcom,ipq807x";
 | 
						compatible = "cig,wf194c4", "qcom,ipq807x";
 | 
				
			||||||
	qcom,msm-id = <0x157 0x0>, <0x187 0x0>;
 | 
						qcom,msm-id = <0x156 0x0>;
 | 
				
			||||||
	interrupt-parent = <&intc>;
 | 
						interrupt-parent = <&intc>;
 | 
				
			||||||
 | 
						qcom,board-id = <0x8 0x0>;
 | 
				
			||||||
 | 
						qcom,pmic-id = <0x0 0x0 0x0 0x0>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	aliases {
 | 
						aliases {
 | 
				
			||||||
		serial0 = &blsp1_uart5;
 | 
							/*
 | 
				
			||||||
		/* Aliases as required by u-boot to patch MAC addresses */
 | 
							 * Aliases as required by u-boot
 | 
				
			||||||
 | 
							 * to patch MAC addresses
 | 
				
			||||||
 | 
							 */
 | 
				
			||||||
		ethernet0 = "/soc/dp1";
 | 
							ethernet0 = "/soc/dp1";
 | 
				
			||||||
		ethernet1 = "/soc/dp2";
 | 
							ethernet1 = "/soc/dp2";
 | 
				
			||||||
 | 
						/*	ethernet2 = "/soc/dp3";
 | 
				
			||||||
 | 
							ethernet3 = "/soc/dp4";
 | 
				
			||||||
 | 
							ethernet4 = "/soc/dp5";
 | 
				
			||||||
 | 
							ethernet5 = "/soc/dp6";
 | 
				
			||||||
 | 
						*/
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	chosen {
 | 
						chosen {
 | 
				
			||||||
		stdout-path = "serial0";
 | 
							bootargs = "console=ttyMSM0,115200,n8 root=/dev/ram0 rw \
 | 
				
			||||||
 | 
								init=/init";
 | 
				
			||||||
 | 
							#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
 | 
								bootargs-append = " swiotlb=1";
 | 
				
			||||||
 | 
							#else
 | 
				
			||||||
 | 
								bootargs-append = " swiotlb=1 coherent_pool=2M";
 | 
				
			||||||
 | 
							#endif
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	soc {
 | 
					&tlmm {
 | 
				
			||||||
		gpio_keys {
 | 
						pinctrl-0 = <&btcoex_pins>;
 | 
				
			||||||
			compatible = "gpio-keys";
 | 
					 | 
				
			||||||
			pinctrl-0 = <&button_pins>;
 | 
					 | 
				
			||||||
	pinctrl-names = "default";
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			button@1 {
 | 
						btcoex_pins: btcoex_pins {
 | 
				
			||||||
				label = "reset";
 | 
					/*	
 | 
				
			||||||
				linux,code = <KEY_RESTART>;
 | 
							mux_0 {
 | 
				
			||||||
				gpios = <&tlmm 67 GPIO_ACTIVE_LOW>;
 | 
								pins = "gpio64";
 | 
				
			||||||
				linux,input-type = <1>;
 | 
								function = "pta1_1";
 | 
				
			||||||
				debounce-interval = <60>;
 | 
								drive-strength = <6>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
							mux_1 {
 | 
				
			||||||
 | 
								pins = "gpio65";
 | 
				
			||||||
 | 
								function = "pta1_2";
 | 
				
			||||||
 | 
								drive-strength = <6>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
							mux_2 {
 | 
				
			||||||
		leds {
 | 
								pins = "gpio66";
 | 
				
			||||||
			compatible = "gpio-leds";
 | 
								function = "pta1_0";
 | 
				
			||||||
			pinctrl-0 = <&leds_pins>;
 | 
								drive-strength = <6>;
 | 
				
			||||||
			pinctrl-names = "default";
 | 
								bias-pull-down;
 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			led@54 {
 | 
					 | 
				
			||||||
				label = "red:lan";
 | 
					 | 
				
			||||||
				gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>;
 | 
					 | 
				
			||||||
				linux,default-trigger = "led1_r";
 | 
					 | 
				
			||||||
				default-state = "off";
 | 
					 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
							mux_3 {
 | 
				
			||||||
			led@55 {
 | 
								pins = "gpio54";
 | 
				
			||||||
				label = "green:lan";
 | 
								function = "pta2_0";
 | 
				
			||||||
				gpios = <&tlmm 55 GPIO_ACTIVE_HIGH>;
 | 
								drive-strength = <6>;
 | 
				
			||||||
				linux,default-trigger = "led1_g";
 | 
								bias-pull-down;
 | 
				
			||||||
				default-state = "off";
 | 
					 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
							mux_4 {
 | 
				
			||||||
			led@56 {
 | 
								pins = "gpio55";
 | 
				
			||||||
				label = "red:wan";
 | 
								function = "pta2_1";
 | 
				
			||||||
				gpios = <&tlmm 56 GPIO_ACTIVE_HIGH>;
 | 
								drive-strength = <6>;
 | 
				
			||||||
				linux,default-trigger = "led2_r";
 | 
								bias-pull-down;
 | 
				
			||||||
				default-state = "off";
 | 
					 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
							mux_5 {
 | 
				
			||||||
			led@64 {
 | 
								pins = "gpio56";
 | 
				
			||||||
				label = "green:wan";
 | 
								function = "pta2_2";
 | 
				
			||||||
				gpios = <&tlmm 64 GPIO_ACTIVE_HIGH>;
 | 
								drive-strength = <6>;
 | 
				
			||||||
				linux,default-trigger = "led2_g";
 | 
								bias-pull-down;
 | 
				
			||||||
				default-state = "off";
 | 
					 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
		};
 | 
					*/		
 | 
				
			||||||
 | 
							mux_0 {
 | 
				
			||||||
		pinctrl@1000000 {
 | 
					 | 
				
			||||||
			button_pins: button_pins {
 | 
					 | 
				
			||||||
				wps_button {
 | 
					 | 
				
			||||||
			pins = "gpio34";
 | 
								pins = "gpio34";
 | 
				
			||||||
			function = "gpio";
 | 
								function = "gpio";
 | 
				
			||||||
					drive-strength = <8>;
 | 
								drive-strength = <6>;
 | 
				
			||||||
			bias-pull-up;
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
								output-high;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
			};
 | 
							mux_1 {
 | 
				
			||||||
 | 
								pins = "gpio62";
 | 
				
			||||||
			usb_mux_sel_pins: usb_mux_pins {
 | 
					 | 
				
			||||||
				mux {
 | 
					 | 
				
			||||||
					pins = "gpio27";
 | 
					 | 
				
			||||||
			function = "gpio";
 | 
								function = "gpio";
 | 
				
			||||||
					drive-strength = <8>;
 | 
								drive-strength = <6>;
 | 
				
			||||||
					bias-pull-down;
 | 
								bias-pull-up;
 | 
				
			||||||
				};
 | 
								output-high;
 | 
				
			||||||
			};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			pcie0_pins: pcie_pins {
 | 
					 | 
				
			||||||
				pcie0_rst {
 | 
					 | 
				
			||||||
					pins = "gpio58";
 | 
					 | 
				
			||||||
					function = "pcie0_rst";
 | 
					 | 
				
			||||||
					drive-strength = <8>;
 | 
					 | 
				
			||||||
					bias-pull-down;
 | 
					 | 
				
			||||||
				};
 | 
					 | 
				
			||||||
				pcie0_wake {
 | 
					 | 
				
			||||||
					pins = "gpio59";
 | 
					 | 
				
			||||||
					function = "pcie0_wake";
 | 
					 | 
				
			||||||
					drive-strength = <8>;
 | 
					 | 
				
			||||||
					bias-pull-down;
 | 
					 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -121,15 +124,117 @@
 | 
				
			|||||||
			drive-strength = <8>;
 | 
								drive-strength = <8>;
 | 
				
			||||||
			bias-pull-up;
 | 
								bias-pull-up;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
				mux_2 {
 | 
					 | 
				
			||||||
					pins = "gpio25";
 | 
					 | 
				
			||||||
					function = "gpio";
 | 
					 | 
				
			||||||
					bias-pull-up;
 | 
					 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
				mux_3 {
 | 
					
 | 
				
			||||||
					pins = "gpio44";
 | 
						uart_pins: uart_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio23", "gpio24";
 | 
				
			||||||
 | 
								function = "blsp4_uart1";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						spi_0_pins: spi_0_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio38", "gpio39", "gpio40", "gpio41";
 | 
				
			||||||
 | 
								function = "blsp0_spi";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/*spi_3_pins: spi_3_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio50", "gpio52", "gpio53";
 | 
				
			||||||
 | 
								function = "blsp3_spi";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							spi_cs {
 | 
				
			||||||
 | 
								pins = "gpio22";
 | 
				
			||||||
 | 
								function = "blsp3_spi2";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							quartz_interrupt {
 | 
				
			||||||
 | 
								pins = "gpio47";
 | 
				
			||||||
			function = "gpio";
 | 
								function = "gpio";
 | 
				
			||||||
					bias-pull-up;
 | 
								input;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							quartz_reset {
 | 
				
			||||||
 | 
								pins = "gpio21";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								output-low;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						qpic_pins: qpic_pins {
 | 
				
			||||||
 | 
							data_0 {
 | 
				
			||||||
 | 
								pins = "gpio15";
 | 
				
			||||||
 | 
								function = "qpic_pad0";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_1 {
 | 
				
			||||||
 | 
								pins = "gpio12";
 | 
				
			||||||
 | 
								function = "qpic_pad1";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_2 {
 | 
				
			||||||
 | 
								pins = "gpio13";
 | 
				
			||||||
 | 
								function = "qpic_pad2";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_3 {
 | 
				
			||||||
 | 
								pins = "gpio14";
 | 
				
			||||||
 | 
								function = "qpic_pad3";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_4 {
 | 
				
			||||||
 | 
								pins = "gpio5";
 | 
				
			||||||
 | 
								function = "qpic_pad4";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_5 {
 | 
				
			||||||
 | 
								pins = "gpio6";
 | 
				
			||||||
 | 
								function = "qpic_pad5";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_6 {
 | 
				
			||||||
 | 
								pins = "gpio7";
 | 
				
			||||||
 | 
								function = "qpic_pad6";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_7 {
 | 
				
			||||||
 | 
								pins = "gpio8";
 | 
				
			||||||
 | 
								function = "qpic_pad7";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							qpic_pad {
 | 
				
			||||||
 | 
								pins = "gpio1", "gpio3", "gpio4",
 | 
				
			||||||
 | 
								       "gpio10", "gpio11", "gpio17";
 | 
				
			||||||
 | 
								function = "qpic_pad";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						hsuart_pins: hsuart_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio48", "gpio49";
 | 
				
			||||||
 | 
								function = "blsp2_uart";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -167,141 +272,101 @@
 | 
				
			|||||||
			drive-strength = <8>;
 | 
								drive-strength = <8>;
 | 
				
			||||||
			bias-pull-down;
 | 
								bias-pull-down;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			spi_3_pins: spi_3_pins {
 | 
						/*usb_mux_sel_pins: usb_mux_pins {
 | 
				
			||||||
		mux {
 | 
							mux {
 | 
				
			||||||
					pins = "gpio50", "gpio52", "gpio53";
 | 
								pins = "gpio27";
 | 
				
			||||||
					function = "blsp3_spi";
 | 
					 | 
				
			||||||
					drive-strength = <8>;
 | 
					 | 
				
			||||||
					bias-disable;
 | 
					 | 
				
			||||||
				};
 | 
					 | 
				
			||||||
				spi_cs {
 | 
					 | 
				
			||||||
					pins = "gpio22";
 | 
					 | 
				
			||||||
					function = "blsp3_spi2";
 | 
					 | 
				
			||||||
					drive-strength = <8>;
 | 
					 | 
				
			||||||
					bias-disable;
 | 
					 | 
				
			||||||
				};
 | 
					 | 
				
			||||||
				quartz_interrupt {
 | 
					 | 
				
			||||||
					pins = "gpio47";
 | 
					 | 
				
			||||||
			function = "gpio";
 | 
								function = "gpio";
 | 
				
			||||||
					input;
 | 
								drive-strength = <8>;
 | 
				
			||||||
					bias-disable;
 | 
								bias-pull-down;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
				quartz_reset {
 | 
						};
 | 
				
			||||||
					pins = "gpio21";
 | 
					
 | 
				
			||||||
 | 
						pcie0_pins: pcie_pins {
 | 
				
			||||||
 | 
							pcie0_rst {
 | 
				
			||||||
 | 
								pins = "gpio58";
 | 
				
			||||||
 | 
								function = "pcie0_rst";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							pcie0_wake {
 | 
				
			||||||
 | 
								pins = "gpio59";
 | 
				
			||||||
 | 
								function = "pcie0_wake";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};*/
 | 
				
			||||||
 | 
						uniphy_pins: uniphy_pinmux {	
 | 
				
			||||||
 | 
							mux_2 {
 | 
				
			||||||
 | 
								pins = "gpio37";
 | 
				
			||||||
			function = "gpio";
 | 
								function = "gpio";
 | 
				
			||||||
					output-low;
 | 
								drive-strength = <8>;
 | 
				
			||||||
					bias-disable;
 | 
								bias-pull-up;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
							mux_3 {
 | 
				
			||||||
 | 
								pins = "gpio44";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		serial@78b3000 {
 | 
					};
 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		dp1 {
 | 
					&soc {
 | 
				
			||||||
			device_type = "network";
 | 
						gpio_keys {
 | 
				
			||||||
			compatible = "qcom,nss-dp";
 | 
							compatible = "gpio-keys";
 | 
				
			||||||
			qcom,id = <4>;
 | 
							pinctrl-0 = <&button_pins>;
 | 
				
			||||||
			reg = <0x3a001600 0x200>;
 | 
					 | 
				
			||||||
			qcom,mactype = <0>;
 | 
					 | 
				
			||||||
			local-mac-address = [000000000000];
 | 
					 | 
				
			||||||
			qcom,link-poll = <1>;
 | 
					 | 
				
			||||||
			qcom,phy-mdio-addr = <0x13>;
 | 
					 | 
				
			||||||
			phy-mode = "sgmii";
 | 
					 | 
				
			||||||
			};
 | 
					 | 
				
			||||||
			
 | 
					 | 
				
			||||||
		dp2 {
 | 
					 | 
				
			||||||
			device_type = "network";
 | 
					 | 
				
			||||||
			compatible = "qcom,nss-dp";
 | 
					 | 
				
			||||||
			qcom,id = <6>;
 | 
					 | 
				
			||||||
			reg = <0x3a007000 0x3fff>;
 | 
					 | 
				
			||||||
			qcom,mactype = <1>;
 | 
					 | 
				
			||||||
			local-mac-address = [000000000000];
 | 
					 | 
				
			||||||
			qcom,link-poll = <1>;
 | 
					 | 
				
			||||||
			qcom,phy-mdio-addr = <0>;
 | 
					 | 
				
			||||||
			phy-mode = "sgmii";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		spi@78b5000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
			pinctrl-0 = <&spi_0_pins>;
 | 
					 | 
				
			||||||
		pinctrl-names = "default";
 | 
							pinctrl-names = "default";
 | 
				
			||||||
			cs-select = <0>;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
			m25p80@0 {
 | 
							button@1 {
 | 
				
			||||||
				  compatible = "n25q128a11";
 | 
								label = "reset";
 | 
				
			||||||
				  #address-cells = <1>;
 | 
								linux,code = <KEY_RESTART>;
 | 
				
			||||||
				  #size-cells = <1>;
 | 
								gpios = <&tlmm 67 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
				  reg = <0>;
 | 
								linux,input-type = <1>;
 | 
				
			||||||
				  spi-max-frequency = <50000000>;
 | 
								debounce-interval = <60>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  	leds {
 | 
				
			||||||
		dma@7984000 {
 | 
					   		 compatible = "gpio-leds";
 | 
				
			||||||
			 status = "ok";
 | 
						  	 pinctrl-0 = <&leds_pins>;
 | 
				
			||||||
		};
 | 
						  	 pinctrl-names = "default";
 | 
				
			||||||
 | 
					 | 
				
			||||||
		nand@79b0000 {
 | 
					 | 
				
			||||||
	  	 status = "ok";
 | 
						  	 status = "ok";
 | 
				
			||||||
	  
 | 
						  
 | 
				
			||||||
			nand@0 {
 | 
					    	  		led@54 {
 | 
				
			||||||
				reg = <0>;
 | 
					      	  			label = "red:lan";
 | 
				
			||||||
				#address-cells = <1>;
 | 
					     	  			gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
				#size-cells = <1>;
 | 
					      	  			linux,default-trigger = "led1_r";
 | 
				
			||||||
 | 
					      	  			default-state = "off";
 | 
				
			||||||
				nand-ecc-strength = <4>;
 | 
					    	  		};
 | 
				
			||||||
				nand-ecc-step-size = <512>;
 | 
					    	  		led@55 {
 | 
				
			||||||
				nand-bus-width = <8>;
 | 
					      	  			 label = "green:lan";
 | 
				
			||||||
 | 
					          			 gpios = <&tlmm 55 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
					          			 linux,default-trigger = "led1_g";
 | 
				
			||||||
 | 
					         			 default-state = "off";
 | 
				
			||||||
 | 
					          		};
 | 
				
			||||||
 | 
					         		led@56 {
 | 
				
			||||||
 | 
					         			label = "red:wan";
 | 
				
			||||||
 | 
					         			gpios = <&tlmm 56 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
					         			linux,default-trigger = "led2_r";
 | 
				
			||||||
 | 
					         			default-state = "off";
 | 
				
			||||||
 | 
					         		};  
 | 
				
			||||||
 | 
					    			led@64 {
 | 
				
			||||||
 | 
					      				label = "green:wan";
 | 
				
			||||||
 | 
					      				gpios = <&tlmm 64 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
					      				linux,default-trigger = "led2_g";
 | 
				
			||||||
 | 
					      				default-state = "off";
 | 
				
			||||||
    			};
 | 
					    			};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					 | 
				
			||||||
		qusb@79000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		ssphy@78000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		usb3@8A00000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		qusb@59000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		ssphy@58000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		usb3@8C00000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		phy@84000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		phy@86000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		pci@20000000 {
 | 
					 | 
				
			||||||
			perst-gpio = <&tlmm 58 1>;
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	mdio: mdio@90000 {
 | 
						mdio: mdio@90000 {
 | 
				
			||||||
		pinctrl-0 = <&mdio_pins>;
 | 
							pinctrl-0 = <&mdio_pins>;
 | 
				
			||||||
		pinctrl-names = "default";
 | 
							pinctrl-names = "default";
 | 
				
			||||||
			phy-reset-gpio = <&tlmm 37 0 &tlmm 25 0 &tlmm 44 0>;
 | 
							phy-reset-gpio = <&tlmm 37 0 &tlmm 44 0>;
 | 
				
			||||||
		phy0: ethernet-phy@0 {
 | 
							phy0: ethernet-phy@0 {
 | 
				
			||||||
				reg = <0x10>;
 | 
								reg = <0x10>;	/*<0>*/
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
		phy1: ethernet-phy@1 {
 | 
							phy1: ethernet-phy@1 {
 | 
				
			||||||
			reg = <0x11>;
 | 
								reg = <0x11>;
 | 
				
			||||||
@@ -316,19 +381,50 @@
 | 
				
			|||||||
			reg = <0x14>;
 | 
								reg = <0x14>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
		phy5: ethernet-phy@5 {
 | 
							phy5: ethernet-phy@5 {
 | 
				
			||||||
 | 
								compatible ="ethernet-phy-ieee802.3-c45";
 | 
				
			||||||
			reg = <0>;
 | 
								reg = <0>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ess-switch@3a000000 {
 | 
						ess-switch@3a000000 {
 | 
				
			||||||
 | 
							pinctrl-0 = <&uniphy_pins>;
 | 
				
			||||||
 | 
							pinctrl-names = "default";
 | 
				
			||||||
		switch_cpu_bmp = <0x1>;  /* cpu port bitmap */
 | 
							switch_cpu_bmp = <0x1>;  /* cpu port bitmap */
 | 
				
			||||||
			switch_lan_bmp = <0x32>; /* lan port bitmap */
 | 
							switch_lan_bmp = <0x32>; /*..0x3e lan port bitmap */
 | 
				
			||||||
		switch_wan_bmp = <0x40>; /* wan port bitmap */
 | 
							switch_wan_bmp = <0x40>; /* wan port bitmap */
 | 
				
			||||||
		switch_mac_mode = <0x0>; /* mac mode for uniphy instance0*/
 | 
							switch_mac_mode = <0x0>; /* mac mode for uniphy instance0*/
 | 
				
			||||||
		switch_mac_mode1 = <0xff>; /* mac mode for uniphy instance1*/
 | 
							switch_mac_mode1 = <0xff>; /* mac mode for uniphy instance1*/
 | 
				
			||||||
		switch_mac_mode2 = <0xd>; /* mac mode for uniphy instance2*/
 | 
							switch_mac_mode2 = <0xd>; /* mac mode for uniphy instance2*/
 | 
				
			||||||
		bm_tick_mode = <0>; /* bm tick mode */
 | 
							bm_tick_mode = <0>; /* bm tick mode */
 | 
				
			||||||
		tm_tick_mode = <0>; /* tm tick mode */
 | 
							tm_tick_mode = <0>; /* tm tick mode */
 | 
				
			||||||
 | 
							/*qcom,port_phyinfo {
 | 
				
			||||||
 | 
								port@0 {
 | 
				
			||||||
 | 
									port_id = <1>;
 | 
				
			||||||
 | 
									phy_address = <0>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
								port@1 {
 | 
				
			||||||
 | 
									port_id = <2>;
 | 
				
			||||||
 | 
									phy_address = <1>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
								port@2 {
 | 
				
			||||||
 | 
									port_id = <3>;
 | 
				
			||||||
 | 
									phy_address = <2>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
								port@3 {
 | 
				
			||||||
 | 
									port_id = <4>;
 | 
				
			||||||
 | 
									phy_address = <3>;
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
								port@4 {
 | 
				
			||||||
 | 
									port_id = <5>;
 | 
				
			||||||
 | 
									phy_address = <24>;
 | 
				
			||||||
 | 
									port_mac_sel = "QGMAC_PORT";
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
								port@5 {
 | 
				
			||||||
 | 
									port_id = <6>;
 | 
				
			||||||
 | 
									phy_address = <28>;
 | 
				
			||||||
 | 
									port_mac_sel = "QGMAC_PORT";
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};*/
 | 
				
			||||||
		port_scheduler_resource {
 | 
							port_scheduler_resource {
 | 
				
			||||||
			port@0 {
 | 
								port@0 {
 | 
				
			||||||
				port_id = <0>;
 | 
									port_id = <0>;
 | 
				
			||||||
@@ -586,15 +682,10 @@
 | 
				
			|||||||
						sp = <60>;
 | 
											sp = <60>;
 | 
				
			||||||
						cfg = <0 32 0 32>;
 | 
											cfg = <0 32 0 32>;
 | 
				
			||||||
					};
 | 
										};
 | 
				
			||||||
						group@1 {
 | 
					 | 
				
			||||||
							sp = <61>;
 | 
					 | 
				
			||||||
							cfg = <1 33 1 33>;
 | 
					 | 
				
			||||||
						};
 | 
					 | 
				
			||||||
				};
 | 
									};
 | 
				
			||||||
				l0scheduler {
 | 
									l0scheduler {
 | 
				
			||||||
					group@0 {
 | 
										group@0 {
 | 
				
			||||||
						ucast_queue = <240>;
 | 
											ucast_queue = <240>;
 | 
				
			||||||
							ucast_loop_pri = <16>;
 | 
					 | 
				
			||||||
						mcast_queue = <296>;
 | 
											mcast_queue = <296>;
 | 
				
			||||||
						cfg = <60 0 144 0 144>;
 | 
											cfg = <60 0 144 0 144>;
 | 
				
			||||||
					};
 | 
										};
 | 
				
			||||||
@@ -602,6 +693,121 @@
 | 
				
			|||||||
			};
 | 
								};
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
						dp1 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
							qcom,id = <1>;
 | 
				
			||||||
 | 
							reg = <0x3a001000 0x200>;
 | 
				
			||||||
 | 
							qcom,mactype = <0>;
 | 
				
			||||||
 | 
							local-mac-address = [000000000000];
 | 
				
			||||||
 | 
							qcom,link-poll = <1>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <0>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						dp2 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
							qcom,id = <2>;
 | 
				
			||||||
 | 
							reg = <0x3a001200 0x200>;
 | 
				
			||||||
 | 
							qcom,mactype = <0>;
 | 
				
			||||||
 | 
							local-mac-address = [000000000000];
 | 
				
			||||||
 | 
							qcom,link-poll = <1>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <1>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						dp3 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
							qcom,id = <3>;
 | 
				
			||||||
 | 
							reg = <0x3a001400 0x200>;
 | 
				
			||||||
 | 
							qcom,mactype = <0>;
 | 
				
			||||||
 | 
							local-mac-address = [000000000000];
 | 
				
			||||||
 | 
							qcom,link-poll = <1>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <2>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						dp4 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
							qcom,id = <4>;
 | 
				
			||||||
 | 
							reg = <0x3a001600 0x200>;
 | 
				
			||||||
 | 
							qcom,mactype = <0>;
 | 
				
			||||||
 | 
							local-mac-address = [000000000000];
 | 
				
			||||||
 | 
							qcom,link-poll = <1>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <3>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						dp5 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
							qcom,id = <5>;
 | 
				
			||||||
 | 
							reg = <0x3a003000 0x3fff>;
 | 
				
			||||||
 | 
							qcom,mactype = <1>;
 | 
				
			||||||
 | 
							local-mac-address = [000000000000];
 | 
				
			||||||
 | 
							qcom,link-poll = <1>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <24>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						dp6 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
							qcom,id = <6>;
 | 
				
			||||||
 | 
							reg = <0x3a007000 0x3fff>;
 | 
				
			||||||
 | 
							qcom,mactype = <1>;
 | 
				
			||||||
 | 
							local-mac-address = [000000000000];
 | 
				
			||||||
 | 
							qcom,link-poll = <1>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <28>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
						dp1 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
							qcom,id = <4>;
 | 
				
			||||||
 | 
							reg = <0x3a001600 0x200>;
 | 
				
			||||||
 | 
						//	qcom,id = <1>;
 | 
				
			||||||
 | 
						//	reg = <0x3a001000 0x200>;
 | 
				
			||||||
 | 
							qcom,mactype = <0>;
 | 
				
			||||||
 | 
							local-mac-address = [000000000000];
 | 
				
			||||||
 | 
							qcom,link-poll = <1>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <0x13>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
						dp2 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
							qcom,id = <6>;
 | 
				
			||||||
 | 
							reg = <0x3a007000 0x3fff>;
 | 
				
			||||||
 | 
							qcom,mactype = <1>;
 | 
				
			||||||
 | 
							local-mac-address = [000000000000];
 | 
				
			||||||
 | 
							qcom,link-poll = <1>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <0>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					/*	
 | 
				
			||||||
 | 
						leds {
 | 
				
			||||||
 | 
							compatible = "gpio-leds";
 | 
				
			||||||
 | 
							pinctrl-0 = <&led_pins>;
 | 
				
			||||||
 | 
							pinctrl-names = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led_2g {
 | 
				
			||||||
 | 
								label = "led_2g";
 | 
				
			||||||
 | 
								gpio = <&tlmm 42 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
								default-state = "off";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							led_5g {
 | 
				
			||||||
 | 
								label = "led_5g";
 | 
				
			||||||
 | 
								gpio = <&tlmm 43 GPIO_ACTIVE_HIGH>;
 | 
				
			||||||
 | 
								default-state = "off";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	nss-macsec0 {
 | 
						nss-macsec0 {
 | 
				
			||||||
		compatible = "qcom,nss-macsec";
 | 
							compatible = "qcom,nss-macsec";
 | 
				
			||||||
@@ -615,5 +821,122 @@
 | 
				
			|||||||
		phy_access_mode = <0>;
 | 
							phy_access_mode = <0>;
 | 
				
			||||||
		mdiobus = <&mdio>;
 | 
							mdiobus = <&mdio>;
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&serial_blsp4 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&uart_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&spi_0 { /* BLSP1 QUP1 */
 | 
				
			||||||
 | 
						pinctrl-0 = <&spi_0_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						cs-select = <0>;
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						m25p80@0 {
 | 
				
			||||||
 | 
							#address-cells = <1>;
 | 
				
			||||||
 | 
							#size-cells = <1>;
 | 
				
			||||||
 | 
							reg = <0>;
 | 
				
			||||||
 | 
							compatible = "n25q128a11";
 | 
				
			||||||
 | 
							linux,modalias = "m25p80", "n25q128a11";
 | 
				
			||||||
 | 
							spi-max-frequency = <50000000>;
 | 
				
			||||||
 | 
							use-default-sizes;
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					&spi_4 { 
 | 
				
			||||||
 | 
						pinctrl-0 = <&spi_3_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						cs-select = <2>;
 | 
				
			||||||
 | 
						quartz-reset-gpio = <&tlmm 21 1>;
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
						spidev3: spi@3 {
 | 
				
			||||||
 | 
							compatible = "qca,spidev";
 | 
				
			||||||
 | 
							reg = <0>;
 | 
				
			||||||
 | 
							spi-max-frequency = <24000000>;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&serial_blsp2 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&hsuart_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&msm_imem {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&ssphy_0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qusb_phy_0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&ssphy_1 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qusb_phy_1 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&usb3_0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&usb3_1 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&cryptobam {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&crypto {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&i2c_0 {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&i2c_1 {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qpic_bam {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&nand {
 | 
				
			||||||
 | 
						pinctrl-0 = <&qpic_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qpic_lcd {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qpic_lcd_panel {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&ledc {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie0 {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie1 {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,24 +1,45 @@
 | 
				
			|||||||
// SPDX-License-Identifier: GPL-2.0-only
 | 
					 | 
				
			||||||
/dts-v1/;
 | 
					/dts-v1/;
 | 
				
			||||||
/* Copyright (c) 2020 The Linux Foundation. All rights reserved.
 | 
					/*
 | 
				
			||||||
 * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
 | 
					 * Copyright (c) 2017-2020, 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 "ipq8074.dtsi"
 | 
					#include "qcom-ipq807x-soc.dtsi"
 | 
				
			||||||
#include "ipq8074-hk-cpu.dtsi"
 | 
					#include "qcom-ipq807x-audio.dtsi"
 | 
				
			||||||
 | 
					#include "qcom-ipq807x-hk-cpu.dtsi"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/ {
 | 
					/ {
 | 
				
			||||||
	#address-cells = <0x2>;
 | 
						#address-cells = <0x2>;
 | 
				
			||||||
	#size-cells = <0x2>;
 | 
						#size-cells = <0x2>;
 | 
				
			||||||
	model = "CIG WF196";
 | 
						model = "CIG WF196";
 | 
				
			||||||
	compatible = "cig,wf196", "qcom,ipq807x";
 | 
						compatible = "cig,wf196", "qcom,ipq807x";
 | 
				
			||||||
	qcom,msm-id = <0x157 0x0>, <0x187 0x0>;
 | 
						qcom,msm-id = <0x187 0x0>;
 | 
				
			||||||
	interrupt-parent = <&intc>;
 | 
						interrupt-parent = <&intc>;
 | 
				
			||||||
 | 
						qcom,board-id = <0x8 0x0>;
 | 
				
			||||||
 | 
						qcom,pmic-id = <0x0 0x0 0x0 0x0>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	aliases {
 | 
						aliases {
 | 
				
			||||||
		serial0 = &blsp1_uart5;
 | 
							/*
 | 
				
			||||||
		/* Aliases as required by u-boot to patch MAC addresses */
 | 
							 * Aliases as required by u-boot
 | 
				
			||||||
 | 
							 * to patch MAC addresses
 | 
				
			||||||
 | 
							 */
 | 
				
			||||||
		ethernet0 = "/soc/dp1";
 | 
							ethernet0 = "/soc/dp1";
 | 
				
			||||||
		ethernet1 = "/soc/dp2";
 | 
							ethernet1 = "/soc/dp2";
 | 
				
			||||||
 | 
							ethernet2 = "/soc/dp3";
 | 
				
			||||||
 | 
							ethernet3 = "/soc/dp4";
 | 
				
			||||||
 | 
							ethernet4 = "/soc/dp5";
 | 
				
			||||||
 | 
							ethernet5 = "/soc/dp6";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		led-boot = &led_power;
 | 
							led-boot = &led_power;
 | 
				
			||||||
		led-failsafe = &led_power;
 | 
							led-failsafe = &led_power;
 | 
				
			||||||
		led-running = &led_power;
 | 
							led-running = &led_power;
 | 
				
			||||||
@@ -26,7 +47,12 @@
 | 
				
			|||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	chosen {
 | 
						chosen {
 | 
				
			||||||
		stdout-path = "serial0";
 | 
							bootargs = "console=ttyMSM0,115200,n8 root=/dev/ram0 rw init=/init";
 | 
				
			||||||
 | 
							#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
				
			||||||
 | 
								bootargs-append = " swiotlb=1";
 | 
				
			||||||
 | 
							#else
 | 
				
			||||||
 | 
								bootargs-append = " swiotlb=1 coherent_pool=2M vmalloc=600M";
 | 
				
			||||||
 | 
							#endif
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	reserved-memory {
 | 
						reserved-memory {
 | 
				
			||||||
@@ -57,27 +83,26 @@
 | 
				
			|||||||
	 * +--------+--------------+-------------------------+
 | 
						 * +--------+--------------+-------------------------+
 | 
				
			||||||
	 * | M3 Dump|  0x4E800000  |           1MB           |
 | 
						 * | M3 Dump|  0x4E800000  |           1MB           |
 | 
				
			||||||
	 * +--------+--------------+-------------------------+
 | 
						 * +--------+--------------+-------------------------+
 | 
				
			||||||
	 * |  Pine  |  0x4E900000  |          38MB           |
 | 
						 * |  Pine0 |  0x4E900000  |          30MB           |
 | 
				
			||||||
	 * +--------+--------------+-------------------------+
 | 
						 * +--------+--------------+-------------------------+
 | 
				
			||||||
	 * |  MHI0  |  0x50F00000  |          9MB            |
 | 
						 * |  MHI0  |  0x50700000  |          16MB           |
 | 
				
			||||||
	 * +--------+--------------+-------------------------+
 | 
						 * +--------+--------------+-------------------------+
 | 
				
			||||||
	 * |                                                 |
 | 
						 * |                                                 |
 | 
				
			||||||
	 * |      Rest of the memory for Linux               |
 | 
						 * |      Rest of the memory for Linux               |
 | 
				
			||||||
	 * |                                                 |
 | 
						 * |                                                 |
 | 
				
			||||||
	 * +=================================================+
 | 
						 * +=================================================+
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
		qcn9000_pcie0: qcn9000_pcie0@4e900000 {
 | 
							/delete-node/ wifi_dump@4e900000;
 | 
				
			||||||
 | 
							qcn9000_pcie0@4e900000 {
 | 
				
			||||||
			no-map;
 | 
								no-map;
 | 
				
			||||||
			reg = <0x0 0x4e900000 0x0 0x02600000>;
 | 
								reg = <0x0 0x4e900000 0x0 0x01e00000>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if defined(__CNSS2__)
 | 
							mhi_region0: dma_pool0@50700000 {
 | 
				
			||||||
		mhi_region0: dma_pool0@50F00000 {
 | 
					 | 
				
			||||||
			compatible = "shared-dma-pool";
 | 
								compatible = "shared-dma-pool";
 | 
				
			||||||
			no-map;
 | 
								no-map;
 | 
				
			||||||
			reg = <0x0 0x50F00000 0x0 0x00900000>;
 | 
								reg = <0x0 0x50700000 0x0 0x01000000>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
	/*                   Default Profile
 | 
						/*                   Default Profile
 | 
				
			||||||
	 * +========+==============+=========================+
 | 
						 * +========+==============+=========================+
 | 
				
			||||||
@@ -103,53 +128,53 @@
 | 
				
			|||||||
	 * +--------+--------------+-------------------------+
 | 
						 * +--------+--------------+-------------------------+
 | 
				
			||||||
	 * | M3 Dump|  0x51000000  |           1MB           |
 | 
						 * | M3 Dump|  0x51000000  |           1MB           |
 | 
				
			||||||
	 * +--------+--------------+-------------------------+
 | 
						 * +--------+--------------+-------------------------+
 | 
				
			||||||
	 * |  Pine0 |  0x51100000  |          53MB           |
 | 
						 * |  Pine0 |  0x51100000  |          45MB           |
 | 
				
			||||||
	 * +--------+--------------+-------------------------+
 | 
						 * +--------+--------------+-------------------------+
 | 
				
			||||||
	 * |  MHI0  |  0x54600000  |           9MB           |
 | 
						 * |  MHI0  |  0x53E00000  |          24MB           |
 | 
				
			||||||
	 * +--------+--------------+-------------------------+
 | 
						 * +--------+--------------+-------------------------+
 | 
				
			||||||
	 * |                                                 |
 | 
						 * |                                                 |
 | 
				
			||||||
	 * |          Rest of the memory for Linux           |
 | 
						 * |          Rest of the memory for Linux           |
 | 
				
			||||||
	 * |                                                 |
 | 
						 * |                                                 |
 | 
				
			||||||
	 * +=================================================+
 | 
						 * +=================================================+
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
		qcn9000_pcie0: qcn9000_pcie0@51100000 {
 | 
							qcn9000_pcie0@51100000 {
 | 
				
			||||||
			no-map;
 | 
								no-map;
 | 
				
			||||||
			reg = <0x0 0x51100000 0x0 0x03500000>;
 | 
								reg = <0x0 0x51100000 0x0 0x02D00000>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
							/delete-node/ wifi_dump@51100000;
 | 
				
			||||||
 | 
							/delete-node/ wigig_dump@51300000;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if defined(__CNSS2__)
 | 
							mhi_region0: dma_pool0@53e00000 {
 | 
				
			||||||
		mhi_region0: dma_pool0@54600000 {
 | 
					 | 
				
			||||||
			compatible = "shared-dma-pool";
 | 
								compatible = "shared-dma-pool";
 | 
				
			||||||
			no-map;
 | 
								no-map;
 | 
				
			||||||
			reg = <0x0 0x54600000 0x0 0x00900000>;
 | 
								reg = <0x0 0x53E00000 0x0 0x01800000>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	soc {
 | 
					&tlmm {
 | 
				
			||||||
		pinctrl@1000000 {
 | 
						pinctrl-0 = <&btcoex_pins>;
 | 
				
			||||||
			button_pins: button_pins {
 | 
						pinctrl-names = "default";
 | 
				
			||||||
				wps_button {
 | 
					 | 
				
			||||||
					pins = "gpio67";
 | 
					 | 
				
			||||||
					function = "gpio";
 | 
					 | 
				
			||||||
					drive-strength = <8>;
 | 
					 | 
				
			||||||
					bias-pull-up;
 | 
					 | 
				
			||||||
				};
 | 
					 | 
				
			||||||
			};
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
			pcie0_pins: pcie_pins {
 | 
						btcoex_pins: btcoex_pins {
 | 
				
			||||||
				pcie0_rst {
 | 
							mux_0 {
 | 
				
			||||||
					pins = "gpio58";
 | 
								pins = "gpio64";
 | 
				
			||||||
					function = "pcie0_rst";
 | 
								function = "pta1_1";
 | 
				
			||||||
					drive-strength = <8>;
 | 
								drive-strength = <6>;
 | 
				
			||||||
			bias-pull-down;
 | 
								bias-pull-down;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
				pcie0_wake {
 | 
							mux_1 {
 | 
				
			||||||
					pins = "gpio59";
 | 
								pins = "gpio65";
 | 
				
			||||||
					function = "pcie0_wake";
 | 
								function = "pta1_2";
 | 
				
			||||||
					drive-strength = <8>;
 | 
								drive-strength = <6>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							mux_2 {
 | 
				
			||||||
 | 
								pins = "gpio66";
 | 
				
			||||||
 | 
								function = "pta1_0";
 | 
				
			||||||
 | 
								drive-strength = <6>;
 | 
				
			||||||
			bias-pull-down;
 | 
								bias-pull-down;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
@@ -167,20 +192,142 @@
 | 
				
			|||||||
			drive-strength = <8>;
 | 
								drive-strength = <8>;
 | 
				
			||||||
			bias-pull-up;
 | 
								bias-pull-up;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
				mux_2 {
 | 
							mux_3 {
 | 
				
			||||||
			pins = "gpio44";
 | 
								pins = "gpio44";
 | 
				
			||||||
			function = "gpio";
 | 
								function = "gpio";
 | 
				
			||||||
			bias-pull-up;
 | 
								bias-pull-up;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			uniphy_pins: uniphy_pinmux {
 | 
						uart_pins: uart_pins {
 | 
				
			||||||
		mux {
 | 
							mux {
 | 
				
			||||||
					pins = "gpio60";
 | 
								pins = "gpio23", "gpio24";
 | 
				
			||||||
					function = "rx2";
 | 
								function = "blsp4_uart1";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
			bias-disable;
 | 
								bias-disable;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
						i2c_5_pins: i2c_5_pinmux {
 | 
				
			||||||
 | 
					                mux {
 | 
				
			||||||
 | 
					                        pins = "gpio0", "gpio2";
 | 
				
			||||||
 | 
					                        function = "blsp5_i2c";
 | 
				
			||||||
 | 
					                        drive-strength = <8>;
 | 
				
			||||||
 | 
					                        bias-disable;
 | 
				
			||||||
 | 
					                };
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						spi_0_pins: spi_0_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio38", "gpio39", "gpio40", "gpio41";
 | 
				
			||||||
 | 
								function = "blsp0_spi";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						spi_3_pins: spi_3_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio50", "gpio52", "gpio53";
 | 
				
			||||||
 | 
								function = "blsp3_spi";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							spi_cs {
 | 
				
			||||||
 | 
								pins = "gpio22";
 | 
				
			||||||
 | 
								function = "blsp3_spi2";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							quartz_interrupt {
 | 
				
			||||||
 | 
								pins = "gpio47";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								input;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							quartz_reset {
 | 
				
			||||||
 | 
								pins = "gpio21";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								output-low;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						qpic_pins: qpic_pins {
 | 
				
			||||||
 | 
							data_0 {
 | 
				
			||||||
 | 
								pins = "gpio15";
 | 
				
			||||||
 | 
								function = "qpic_pad0";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_1 {
 | 
				
			||||||
 | 
								pins = "gpio12";
 | 
				
			||||||
 | 
								function = "qpic_pad1";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_2 {
 | 
				
			||||||
 | 
								pins = "gpio13";
 | 
				
			||||||
 | 
								function = "qpic_pad2";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_3 {
 | 
				
			||||||
 | 
								pins = "gpio14";
 | 
				
			||||||
 | 
								function = "qpic_pad3";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_4 {
 | 
				
			||||||
 | 
								pins = "gpio5";
 | 
				
			||||||
 | 
								function = "qpic_pad4";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_5 {
 | 
				
			||||||
 | 
								pins = "gpio6";
 | 
				
			||||||
 | 
								function = "qpic_pad5";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_6 {
 | 
				
			||||||
 | 
								pins = "gpio7";
 | 
				
			||||||
 | 
								function = "qpic_pad6";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							data_7 {
 | 
				
			||||||
 | 
								pins = "gpio8";
 | 
				
			||||||
 | 
								function = "qpic_pad7";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							qpic_pad {
 | 
				
			||||||
 | 
								pins = "gpio1", "gpio3", "gpio4",
 | 
				
			||||||
 | 
								       "gpio10", "gpio11", "gpio17";
 | 
				
			||||||
 | 
								function = "qpic_pad";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						hsuart_pins: hsuart_pins {
 | 
				
			||||||
 | 
							mux {
 | 
				
			||||||
 | 
								pins = "gpio46", "gpio47", "gpio48", "gpio49";
 | 
				
			||||||
 | 
								function = "blsp2_uart";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-disable;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						button_pins: button_pins {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							wps_button {
 | 
				
			||||||
 | 
								pins = "gpio67";
 | 
				
			||||||
 | 
								function = "gpio";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-up;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	led_pins: led_pins {
 | 
						led_pins: led_pins {
 | 
				
			||||||
		led_red {
 | 
							led_red {
 | 
				
			||||||
@@ -204,91 +351,67 @@
 | 
				
			|||||||
			bias-pull-down;
 | 
								bias-pull-down;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						pcie0_pins: pcie_pins {
 | 
				
			||||||
 | 
							pcie0_rst {
 | 
				
			||||||
 | 
								pins = "gpio58";
 | 
				
			||||||
 | 
								function = "pcie0_rst";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							pcie0_wake {
 | 
				
			||||||
 | 
								pins = "gpio59";
 | 
				
			||||||
 | 
								function = "pcie0_wake";
 | 
				
			||||||
 | 
								drive-strength = <8>;
 | 
				
			||||||
 | 
								bias-pull-down;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
						pwm_pins: pwm_pinmux {
 | 
				
			||||||
 | 
					                mux_1 {
 | 
				
			||||||
 | 
					                        pins = "gpio25";
 | 
				
			||||||
 | 
					                        function = "pwm02";
 | 
				
			||||||
 | 
					                        drive-strength = <8>;
 | 
				
			||||||
 | 
					                };
 | 
				
			||||||
 | 
							mux_2 {
 | 
				
			||||||
 | 
					                        pins = "gpio26";
 | 
				
			||||||
 | 
					                        function = "pwm12";
 | 
				
			||||||
 | 
					                        drive-strength = <8>;
 | 
				
			||||||
 | 
					                };
 | 
				
			||||||
 | 
							mux_3 {
 | 
				
			||||||
 | 
					                        pins = "gpio27";
 | 
				
			||||||
 | 
					                        function = "pwm22";
 | 
				
			||||||
 | 
					                        drive-strength = <8>;
 | 
				
			||||||
 | 
					                };
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		serial@78b3000 {
 | 
					};
 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		spi@78b5000 {
 | 
					&soc {
 | 
				
			||||||
			status = "ok";
 | 
						 pwm {
 | 
				
			||||||
			pinctrl-0 = <&spi_0_pins>;
 | 
					                pinctrl-0 = <&pwm_pins>;
 | 
				
			||||||
 | 
					                pinctrl-names = "default";
 | 
				
			||||||
 | 
					                used-pwm-indices = <1>, <1>, <1>, <0>;
 | 
				
			||||||
 | 
					         //       status = "ok";
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
						gpio_keys {
 | 
				
			||||||
 | 
							compatible = "gpio-keys";
 | 
				
			||||||
 | 
							pinctrl-0 = <&button_pins>;
 | 
				
			||||||
		pinctrl-names = "default";
 | 
							pinctrl-names = "default";
 | 
				
			||||||
			cs-select = <0>;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
			m25p80@0 {
 | 
							button@1 {
 | 
				
			||||||
				  compatible = "n25q128a11";
 | 
								label = "reset";
 | 
				
			||||||
				  #address-cells = <1>;
 | 
								linux,code = <KEY_RESTART>;
 | 
				
			||||||
				  #size-cells = <1>;
 | 
								gpios = <&tlmm 67 GPIO_ACTIVE_LOW>;
 | 
				
			||||||
				  reg = <0>;
 | 
								linux,input-type = <1>;
 | 
				
			||||||
				  spi-max-frequency = <50000000>;
 | 
								debounce-interval = <60>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		dma@7984000 {
 | 
						mdio: mdio@90000 {
 | 
				
			||||||
			 status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		nand@79b0000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			nand@0 {
 | 
					 | 
				
			||||||
				reg = <0>;
 | 
					 | 
				
			||||||
				#address-cells = <1>;
 | 
					 | 
				
			||||||
				#size-cells = <1>;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
				nand-ecc-strength = <4>;
 | 
					 | 
				
			||||||
				nand-ecc-step-size = <512>;
 | 
					 | 
				
			||||||
				nand-bus-width = <8>;
 | 
					 | 
				
			||||||
			};
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		qusb@79000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		ssphy@78000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		usb3@8A00000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		qcom,test@0 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		phy@84000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		phy@86000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		pci@20000000 {
 | 
					 | 
				
			||||||
			perst-gpio = <&tlmm 58 1>;
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			pcie0_rp: pcie0_rp {
 | 
					 | 
				
			||||||
				reg = <0 0 0 0 0>;
 | 
					 | 
				
			||||||
			};
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		phy@8e000 {
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		pci@10000000 {
 | 
					 | 
				
			||||||
			perst-gpio = <&tlmm 61 0x1>;
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		mdio@90000 {
 | 
					 | 
				
			||||||
		pinctrl-0 = <&mdio_pins>;
 | 
							pinctrl-0 = <&mdio_pins>;
 | 
				
			||||||
		pinctrl-names = "default";
 | 
							pinctrl-names = "default";
 | 
				
			||||||
		phy-reset-gpio = <&tlmm 64 0 &tlmm 66 0>;
 | 
							phy-reset-gpio = <&tlmm 64 0 &tlmm 66 0>;
 | 
				
			||||||
 | 
							compatible = "qcom,ipq40xx-mdio", "qcom,qca-mdio";
 | 
				
			||||||
		phy0: ethernet-phy@0 {
 | 
							phy0: ethernet-phy@0 {
 | 
				
			||||||
			reg = <16>;
 | 
								reg = <16>;
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
@@ -311,8 +434,6 @@
 | 
				
			|||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ess-switch@3a000000 {
 | 
						ess-switch@3a000000 {
 | 
				
			||||||
			pinctrl-0 = <&uniphy_pins>;
 | 
					 | 
				
			||||||
			pinctrl-names = "default";
 | 
					 | 
				
			||||||
		switch_cpu_bmp = <0x1>;  /* cpu port bitmap */
 | 
							switch_cpu_bmp = <0x1>;  /* cpu port bitmap */
 | 
				
			||||||
		switch_lan_bmp = <0x3e>; /* lan port bitmap */
 | 
							switch_lan_bmp = <0x3e>; /* lan port bitmap */
 | 
				
			||||||
		switch_wan_bmp = <0xc0>; /* wan port bitmap */
 | 
							switch_wan_bmp = <0xc0>; /* wan port bitmap */
 | 
				
			||||||
@@ -623,19 +744,77 @@
 | 
				
			|||||||
			};
 | 
								};
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
		gpio_keys {
 | 
					 | 
				
			||||||
			compatible = "gpio-keys";
 | 
					 | 
				
			||||||
			pinctrl-0 = <&button_pins>;
 | 
					 | 
				
			||||||
			pinctrl-names = "default";
 | 
					 | 
				
			||||||
			status = "ok";
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
			button@1 {
 | 
						dp1 {
 | 
				
			||||||
				label = "reset";
 | 
							device_type = "network";
 | 
				
			||||||
				linux,code = <KEY_RESTART>;
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
				gpios = <&tlmm 67 GPIO_ACTIVE_LOW>;
 | 
							qcom,id = <1>;
 | 
				
			||||||
				linux,input-type = <1>;
 | 
							reg = <0x3a001000 0x200>;
 | 
				
			||||||
				debounce-interval = <60>;
 | 
							qcom,mactype = <0>;
 | 
				
			||||||
 | 
							local-mac-address = [000000000000];
 | 
				
			||||||
 | 
							qcom,link-poll = <1>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <16>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						dp2 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
							qcom,id = <2>;
 | 
				
			||||||
 | 
							reg = <0x3a001200 0x200>;
 | 
				
			||||||
 | 
							qcom,mactype = <0>;
 | 
				
			||||||
 | 
							local-mac-address = [000000000000];
 | 
				
			||||||
 | 
							qcom,link-poll = <1>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <17>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						dp3 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
							qcom,id = <3>;
 | 
				
			||||||
 | 
							reg = <0x3a001400 0x200>;
 | 
				
			||||||
 | 
							qcom,mactype = <0>;
 | 
				
			||||||
 | 
							local-mac-address = [000000000000];
 | 
				
			||||||
 | 
							qcom,link-poll = <1>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <18>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						dp4 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
							qcom,id = <4>;
 | 
				
			||||||
 | 
							reg = <0x3a001600 0x200>;
 | 
				
			||||||
 | 
							qcom,mactype = <0>;
 | 
				
			||||||
 | 
							local-mac-address = [000000000000];
 | 
				
			||||||
 | 
							qcom,link-poll = <1>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <19>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						dp5 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
							qcom,id = <5>;
 | 
				
			||||||
 | 
							reg = <0x3a001800 0x200>;
 | 
				
			||||||
 | 
							qcom,mactype = <1>;
 | 
				
			||||||
 | 
							local-mac-address = [000000000000];
 | 
				
			||||||
 | 
							qcom,link-poll = <1>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <0>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						dp6 {
 | 
				
			||||||
 | 
							device_type = "network";
 | 
				
			||||||
 | 
							compatible = "qcom,nss-dp";
 | 
				
			||||||
 | 
							qcom,id = <6>;
 | 
				
			||||||
 | 
							reg = <0x3a001a00 0x200>;
 | 
				
			||||||
 | 
							qcom,mactype = <0>;
 | 
				
			||||||
 | 
							local-mac-address = [000000000000];
 | 
				
			||||||
 | 
							qcom,link-poll = <1>;
 | 
				
			||||||
 | 
							qcom,phy-mdio-addr = <28>;
 | 
				
			||||||
 | 
							phy-mode = "sgmii";
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	leds {
 | 
						leds {
 | 
				
			||||||
@@ -661,29 +840,157 @@
 | 
				
			|||||||
			default-state = "off";
 | 
								default-state = "off";
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
						nss-macsec0 {
 | 
				
			||||||
		dp1 {
 | 
							compatible = "qcom,nss-macsec";
 | 
				
			||||||
			device_type = "network";
 | 
							phy_addr = <0>;
 | 
				
			||||||
			compatible = "qcom,nss-dp";
 | 
							phy_access_mode = <0>;
 | 
				
			||||||
			qcom,id = <5>;
 | 
							mdiobus = <&mdio>;
 | 
				
			||||||
			reg = <0x3a001800 0x200>;
 | 
					 | 
				
			||||||
			qcom,mactype = <1>;
 | 
					 | 
				
			||||||
			local-mac-address = [000000000000];
 | 
					 | 
				
			||||||
			qcom,link-poll = <1>;
 | 
					 | 
				
			||||||
			qcom,phy-mdio-addr = <0>;
 | 
					 | 
				
			||||||
			phy-mode = "sgmii";
 | 
					 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
						nss-macsec1 {
 | 
				
			||||||
 | 
							compatible = "qcom,nss-macsec";
 | 
				
			||||||
 | 
							phy_addr = <0x1c>;
 | 
				
			||||||
 | 
							phy_access_mode = <0>;
 | 
				
			||||||
 | 
							mdiobus = <&mdio>;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
						i2c_5: i2c@78ba000 {
 | 
				
			||||||
 | 
							compatible = "qcom,i2c-qup-v2.2.1";
 | 
				
			||||||
 | 
							#address-cells = <1>;
 | 
				
			||||||
 | 
							#size-cells = <0>;
 | 
				
			||||||
 | 
							reg = <0x78ba000 0x600>;
 | 
				
			||||||
 | 
							interrupts = <GIC_SPI 300 0x4>;
 | 
				
			||||||
 | 
							clocks = <&gcc GCC_BLSP1_AHB_CLK>,
 | 
				
			||||||
 | 
								<&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>;
 | 
				
			||||||
 | 
							clock-names = "iface", "core";
 | 
				
			||||||
 | 
							clock-frequency  = <100000>;
 | 
				
			||||||
 | 
							dmas = <&blsp_dma 23>, <&blsp_dma 22>;
 | 
				
			||||||
 | 
							dma-names = "rx", "tx";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		dp2 {
 | 
					&serial_blsp4 {
 | 
				
			||||||
			device_type = "network";
 | 
						pinctrl-0 = <&uart_pins>;
 | 
				
			||||||
			compatible = "qcom,nss-dp";
 | 
						pinctrl-names = "default";
 | 
				
			||||||
			qcom,id = <6>;
 | 
						status = "ok";
 | 
				
			||||||
			reg = <0x3a001a00 0x200>;
 | 
					};
 | 
				
			||||||
			qcom,mactype = <0>;
 | 
					
 | 
				
			||||||
			local-mac-address = [000000000000];
 | 
					&spi_0 { /* BLSP1 QUP1 */
 | 
				
			||||||
			qcom,link-poll = <1>;
 | 
						pinctrl-0 = <&spi_0_pins>;
 | 
				
			||||||
			qcom,phy-mdio-addr = <28>;
 | 
						pinctrl-names = "default";
 | 
				
			||||||
			phy-mode = "sgmii";
 | 
						cs-select = <0>;
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						m25p80@0 {
 | 
				
			||||||
 | 
							#address-cells = <1>;
 | 
				
			||||||
 | 
							#size-cells = <1>;
 | 
				
			||||||
 | 
							reg = <0>;
 | 
				
			||||||
 | 
							compatible = "n25q128a11";
 | 
				
			||||||
 | 
							linux,modalias = "m25p80", "n25q128a11";
 | 
				
			||||||
 | 
							spi-max-frequency = <50000000>;
 | 
				
			||||||
 | 
							use-default-sizes;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&serial_blsp2 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&hsuart_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&msm_imem {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&ssphy_0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qusb_phy_0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&usb3_0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&cryptobam {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&crypto {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&i2c_0 {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&i2c_1 {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&i2c_5 {
 | 
				
			||||||
 | 
						pinctrl-0 = <&i2c_5_pins>;
 | 
				
			||||||
 | 
					        pinctrl-names = "default";
 | 
				
			||||||
 | 
					        status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qpic_bam {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&nand {
 | 
				
			||||||
 | 
						pinctrl-0 = <&qpic_pins>;
 | 
				
			||||||
 | 
						pinctrl-names = "default";
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qpic_lcd {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&qpic_lcd_panel {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie0 {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie0_rp {
 | 
				
			||||||
 | 
						status = "ok";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						mhi_0: qcom,mhi@0 {
 | 
				
			||||||
 | 
							reg = <0 0 0 0 0 >;
 | 
				
			||||||
 | 
							qrtr_instance_id = <0x20>;
 | 
				
			||||||
 | 
							#address-cells = <0x2>;
 | 
				
			||||||
 | 
							#size-cells = <0x2>;
 | 
				
			||||||
 | 
					#if !defined(__IPQ_MEM_PROFILE_256_MB__)
 | 
				
			||||||
 | 
							memory-region = <&mhi_region0>;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined(__CNSS2__)
 | 
				
			||||||
 | 
							base-addr = <0x51100000>;
 | 
				
			||||||
 | 
							m3-dump-addr = <0x53400000>;
 | 
				
			||||||
 | 
							etr-addr = <0x53500000>;
 | 
				
			||||||
 | 
							qcom,caldb-addr = <0x53600000>;
 | 
				
			||||||
 | 
							mhi,max-channels = <30>;
 | 
				
			||||||
 | 
							mhi,timeout = <10000>;
 | 
				
			||||||
 | 
							qcom,board_id= <0xa4>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							pcie0_mhi: pcie0_mhi {
 | 
				
			||||||
 | 
								status = "ok";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&pcie1_rp {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						mhi_1: qcom,mhi@1 {
 | 
				
			||||||
 | 
							pcie1_mhi: pcie1_mhi {
 | 
				
			||||||
 | 
								status = "disabled";
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
@@ -704,15 +1011,12 @@
 | 
				
			|||||||
};
 | 
					};
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
&wifi0 {
 | 
					 | 
				
			||||||
	status = "disabled";
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
&wifi1 {
 | 
					&wifi1 {
 | 
				
			||||||
	qcom,board_id = <0x294>;
 | 
						qcom,board_id = <0x294>;
 | 
				
			||||||
	status = "ok";
 | 
						status = "ok";
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* No support for QCN9000 in 256M profile */
 | 
				
			||||||
#if !defined(__IPQ_MEM_PROFILE_256_MB__)
 | 
					#if !defined(__IPQ_MEM_PROFILE_256_MB__)
 | 
				
			||||||
&wifi2 {
 | 
					&wifi2 {
 | 
				
			||||||
#ifdef __IPQ_MEM_PROFILE_512_MB__
 | 
					#ifdef __IPQ_MEM_PROFILE_512_MB__
 | 
				
			||||||
@@ -727,15 +1031,12 @@
 | 
				
			|||||||
       * |   ETR   |  0x4FE00000  |   1MB   |
 | 
					       * |   ETR   |  0x4FE00000  |   1MB   |
 | 
				
			||||||
       * +---------+--------------+---------+
 | 
					       * +---------+--------------+---------+
 | 
				
			||||||
       * |  Caldb  |  0x4FF00000  |   8MB   |
 | 
					       * |  Caldb  |  0x4FF00000  |   8MB   |
 | 
				
			||||||
       * +---------+--------------+---------+
 | 
					 | 
				
			||||||
       * | Pageable|  0x50700000  |   8MB   |
 | 
					 | 
				
			||||||
       * +==================================+
 | 
					       * +==================================+
 | 
				
			||||||
       */
 | 
					       */
 | 
				
			||||||
	base-addr = <0x4E900000>;
 | 
						base-addr = <0x4E900000>;
 | 
				
			||||||
	m3-dump-addr = <0x4FD00000>;
 | 
						m3-dump-addr = <0x4FD00000>;
 | 
				
			||||||
	etr-addr = <0x4FE00000>;
 | 
						etr-addr = <0x4FE00000>;
 | 
				
			||||||
	caldb-addr = <0x4FF00000>;
 | 
						caldb-addr = <0x4FF00000>;
 | 
				
			||||||
	pageable-addr = <0x50700000>;
 | 
					 | 
				
			||||||
	hremote-size = <0x1400000>;
 | 
						hremote-size = <0x1400000>;
 | 
				
			||||||
	tgt-mem-mode = <0x1>;
 | 
						tgt-mem-mode = <0x1>;
 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
@@ -745,66 +1046,32 @@
 | 
				
			|||||||
       * +---------+--------------+---------+
 | 
					       * +---------+--------------+---------+
 | 
				
			||||||
       * | HREMOTE |  0x51100000  |   35MB  |
 | 
					       * | HREMOTE |  0x51100000  |   35MB  |
 | 
				
			||||||
       * +---------+--------------+---------+
 | 
					       * +---------+--------------+---------+
 | 
				
			||||||
       * | M3 DUMP |  0x53400000  |   1MB   |
 | 
					       * | M3 Dump |  0x53400000  |   1MB   |
 | 
				
			||||||
       * +---------+--------------+---------+
 | 
					       * +---------+--------------+---------+
 | 
				
			||||||
       * |   ETR   |  0x53500000  |   1MB   |
 | 
					       * |   ETR   |  0x53500000  |   1MB   |
 | 
				
			||||||
       * +---------+--------------+---------+
 | 
					       * +---------+--------------+---------+
 | 
				
			||||||
       * |  Caldb  |  0x53600000  |   8MB   |
 | 
					       * |  Caldb  |  0x53600000  |   8MB   |
 | 
				
			||||||
       * +---------+--------------+---------+
 | 
					 | 
				
			||||||
       * | Pageable|  0x53E00000  |   8MB   |
 | 
					 | 
				
			||||||
       * +==================================+
 | 
					       * +==================================+
 | 
				
			||||||
       */
 | 
					       */
 | 
				
			||||||
	base-addr = <0x51100000>;
 | 
						base-addr = <0x51100000>;
 | 
				
			||||||
	m3-dump-addr = <0x53400000>;
 | 
						m3-dump-addr = <0x53400000>;
 | 
				
			||||||
	etr-addr = <0x53500000>;
 | 
						etr-addr = <0x53500000>;
 | 
				
			||||||
	caldb-addr = <0x53600000>;
 | 
						caldb-addr = <0x53600000>;
 | 
				
			||||||
	pageable-addr = <0x53E00000>;
 | 
					 | 
				
			||||||
	hremote-size = <0x2300000>;
 | 
						hremote-size = <0x2300000>;
 | 
				
			||||||
	tgt-mem-mode = <0x0>;
 | 
						tgt-mem-mode = <0x0>;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
	caldb-size = <0x800000>;
 | 
						caldb-size = <0x800000>;
 | 
				
			||||||
	hremote_node = <&qcn9000_pcie0>;
 | 
					 | 
				
			||||||
	pageable-size = <0x800000>;
 | 
					 | 
				
			||||||
	board_id = <0xa4>;
 | 
						board_id = <0xa4>;
 | 
				
			||||||
	status = "ok";
 | 
						status = "ok";
 | 
				
			||||||
};
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
&wifi3 {
 | 
					 | 
				
			||||||
	status = "disabled";
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
&pcie0_rp {
 | 
					 | 
				
			||||||
	status = "ok";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	mhi_0: qcom,mhi@0 {
 | 
					 | 
				
			||||||
		reg = <0 0 0 0 0 >;
 | 
					 | 
				
			||||||
		qrtr_instance_id = <0x20>;
 | 
					 | 
				
			||||||
		#address-cells = <0x2>;
 | 
					 | 
				
			||||||
		#size-cells = <0x2>;
 | 
					 | 
				
			||||||
#if defined(__CNSS2__)
 | 
					#if defined(__CNSS2__)
 | 
				
			||||||
#if !defined(__IPQ_MEM_PROFILE_256_MB__)
 | 
					 | 
				
			||||||
		memory-region = <&mhi_region0>;
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
#ifdef __IPQ_MEM_PROFILE_512_MB__
 | 
					 | 
				
			||||||
		base-addr = <0x4E900000>;
 | 
					 | 
				
			||||||
		m3-dump-addr = <0x4FD00000>;
 | 
					 | 
				
			||||||
		etr-addr = <0x4FE00000>;
 | 
					 | 
				
			||||||
		qcom,caldb-addr = <0x4FF00000>;
 | 
					 | 
				
			||||||
		pageable-addr = <0x50700000>;
 | 
					 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
		base-addr = <0x51100000>;
 | 
					 | 
				
			||||||
		m3-dump-addr = <0x53400000>;
 | 
					 | 
				
			||||||
		etr-addr = <0x53500000>;
 | 
					 | 
				
			||||||
		qcom,caldb-addr = <0x53600000>;
 | 
					 | 
				
			||||||
		pageable-addr = <0x53E00000>;
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
		qcom,board_id= <0xa4>;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	pcie0_mhi: pcie0_mhi {
 | 
						pcie0_mhi: pcie0_mhi {
 | 
				
			||||||
		status = "ok";
 | 
							status = "ok";
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					&wifi3 {
 | 
				
			||||||
 | 
						status = "disabled";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "qcom-ipq807x-mhi.dtsi"
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,6 +18,35 @@ define Device/edgecore_eap104
 | 
				
			|||||||
endef
 | 
					endef
 | 
				
			||||||
TARGET_DEVICES += edgecore_eap104
 | 
					TARGET_DEVICES += edgecore_eap104
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					define Device/liteon_wpx8324
 | 
				
			||||||
 | 
					  DEVICE_TITLE := Liteon WPX8324
 | 
				
			||||||
 | 
					  DEVICE_DTS := qcom-ipq5018-liteon-wpx8324
 | 
				
			||||||
 | 
					  SUPPORTED_DEVICES := liteon,wpx8324
 | 
				
			||||||
 | 
					  DEVICE_PACKAGES := ath11k-wifi-liteon-wpx8324 ath11k-firmware-ipq50xx-spruce ath11k-firmware-qcn6122
 | 
				
			||||||
 | 
					  DEVICE_DTS_CONFIG := config@mp03.5-c1
 | 
				
			||||||
 | 
					endef
 | 
				
			||||||
 | 
					TARGET_DEVICES += liteon_wpx8324
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					define Device/muxi_ap3220l
 | 
				
			||||||
 | 
					  DEVICE_TITLE := MUXI AP3220L
 | 
				
			||||||
 | 
					  DEVICE_DTS := qcom-ipq5018-muxi-ap3220l
 | 
				
			||||||
 | 
					  SUPPORTED_DEVICES := muxi,ap3220l
 | 
				
			||||||
 | 
					  DEVICE_PACKAGES := ath11k-wifi-muxi-ap3220l ath11k-firmware-ipq50xx-spruce ath11k-firmware-qcn6122
 | 
				
			||||||
 | 
					  DEVICE_DTS_CONFIG := config@mp03.5-c1
 | 
				
			||||||
 | 
					endef
 | 
				
			||||||
 | 
					TARGET_DEVICES += muxi_ap3220l
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					define Device/motorola_q14
 | 
				
			||||||
 | 
					  DEVICE_TITLE := Motorola Q14
 | 
				
			||||||
 | 
					  DEVICE_DTS := qcom-ipq5018-q14
 | 
				
			||||||
 | 
					  SUPPORTED_DEVICES := motorola,q14
 | 
				
			||||||
 | 
					  DEVICE_PACKAGES := ath11k-wifi-motorola-q14 ath11k-firmware-ipq50xx-spruce ath11k-firmware-qcn6122
 | 
				
			||||||
 | 
					  DEVICE_DTS_CONFIG := config@mp03.5-c1
 | 
				
			||||||
 | 
					  IMAGES := sysupgrade.tar mmc-factory.bin
 | 
				
			||||||
 | 
					  IMAGE/mmc-factory.bin := append-ubi | qsdk-ipq-factory-mmc
 | 
				
			||||||
 | 
					endef
 | 
				
			||||||
 | 
					TARGET_DEVICES += motorola_q14
 | 
				
			||||||
 | 
					
 | 
				
			||||||
define Device/qcom_mp03_1
 | 
					define Device/qcom_mp03_1
 | 
				
			||||||
  DEVICE_TITLE := Qualcomm Maple 03.1
 | 
					  DEVICE_TITLE := Qualcomm Maple 03.1
 | 
				
			||||||
  DEVICE_DTS := qcom-ipq5018-mp03.1
 | 
					  DEVICE_DTS := qcom-ipq5018-mp03.1
 | 
				
			||||||
@@ -25,7 +54,7 @@ define Device/qcom_mp03_1
 | 
				
			|||||||
  DEVICE_PACKAGES := ath11k-wifi-qcom-ipq5018
 | 
					  DEVICE_PACKAGES := ath11k-wifi-qcom-ipq5018
 | 
				
			||||||
  DEVICE_DTS_CONFIG := config@mp03.1
 | 
					  DEVICE_DTS_CONFIG := config@mp03.1
 | 
				
			||||||
endef
 | 
					endef
 | 
				
			||||||
#TARGET_DEVICES += qcom_mp03_1
 | 
					TARGET_DEVICES += qcom_mp03_1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
define Device/qcom_mp03_3
 | 
					define Device/qcom_mp03_3
 | 
				
			||||||
  DEVICE_TITLE := Qualcomm Maple 03.3
 | 
					  DEVICE_TITLE := Qualcomm Maple 03.3
 | 
				
			||||||
@@ -34,4 +63,4 @@ define Device/qcom_mp03_3
 | 
				
			|||||||
  DEVICE_PACKAGES := ath11k-wifi-qcom-ipq5018
 | 
					  DEVICE_PACKAGES := ath11k-wifi-qcom-ipq5018
 | 
				
			||||||
  DEVICE_DTS_CONFIG := config@mp03.3
 | 
					  DEVICE_DTS_CONFIG := config@mp03.3
 | 
				
			||||||
endef
 | 
					endef
 | 
				
			||||||
#TARGET_DEVICES += qcom_mp03_3
 | 
					TARGET_DEVICES += qcom_mp03_3
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,7 @@
 | 
				
			|||||||
KERNEL_LOADADDR := 0x41008000
 | 
					KERNEL_LOADADDR := 0x41008000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DEVICE_VARS += CE_TYPE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
define Device/cig_wf188n
 | 
					define Device/cig_wf188n
 | 
				
			||||||
  DEVICE_TITLE := Cigtech WF-188n
 | 
					  DEVICE_TITLE := Cigtech WF-188n
 | 
				
			||||||
  DEVICE_DTS := qcom-ipq6018-cig-wf188n
 | 
					  DEVICE_DTS := qcom-ipq6018-cig-wf188n
 | 
				
			||||||
@@ -18,12 +20,30 @@ define Device/hfcl_ion4xe
 | 
				
			|||||||
endef
 | 
					endef
 | 
				
			||||||
TARGET_DEVICES += hfcl_ion4xe
 | 
					TARGET_DEVICES += hfcl_ion4xe
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					define Device/hfcl_ion4x
 | 
				
			||||||
 | 
					  DEVICE_TITLE := HFCL ION4X
 | 
				
			||||||
 | 
					  DEVICE_DTS := qcom-ipq6018-hfcl-ion4x
 | 
				
			||||||
 | 
					  DEVICE_DTS_CONFIG := config@cp01-c1
 | 
				
			||||||
 | 
					  SUPPORTED_DEVICES := hfcl,ion4x
 | 
				
			||||||
 | 
					  DEVICE_PACKAGES := ath11k-wifi-qcom-ipq6018 uboot-envtools
 | 
				
			||||||
 | 
					endef
 | 
				
			||||||
 | 
					TARGET_DEVICES += hfcl_ion4x
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					define Device/hfcl_ion4x_2
 | 
				
			||||||
 | 
					  DEVICE_TITLE := HFCL ION4X_2
 | 
				
			||||||
 | 
					  DEVICE_DTS := qcom-ipq6018-hfcl-ion4x_2
 | 
				
			||||||
 | 
					  DEVICE_DTS_CONFIG := config@cp01-c1
 | 
				
			||||||
 | 
					  SUPPORTED_DEVICES := hfcl,ion4x_2
 | 
				
			||||||
 | 
					  DEVICE_PACKAGES := ath11k-wifi-qcom-ipq6018 uboot-envtools
 | 
				
			||||||
 | 
					endef
 | 
				
			||||||
 | 
					TARGET_DEVICES += hfcl_ion4x_2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
define Device/hfcl_ion4xi
 | 
					define Device/hfcl_ion4xi
 | 
				
			||||||
  DEVICE_TITLE := HFCL ION4Xi
 | 
					  DEVICE_TITLE := HFCL ION4Xi
 | 
				
			||||||
  DEVICE_DTS := qcom-ipq6018-hfcl-ion4xi
 | 
					  DEVICE_DTS := qcom-ipq6018-hfcl-ion4xi
 | 
				
			||||||
  DEVICE_DTS_CONFIG := config@cp01-c1
 | 
					  DEVICE_DTS_CONFIG := config@cp01-c1
 | 
				
			||||||
  SUPPORTED_DEVICES := hfcl,ion4xi
 | 
					  SUPPORTED_DEVICES := hfcl,ion4xi
 | 
				
			||||||
  DEVICE_PACKAGES := ath11k-wifi-qcom-ipq6018 uboot-envtools
 | 
					  DEVICE_PACKAGES := ath11k-wifi-hfcl-ion4xi uboot-envtools
 | 
				
			||||||
endef
 | 
					endef
 | 
				
			||||||
TARGET_DEVICES += hfcl_ion4xi
 | 
					TARGET_DEVICES += hfcl_ion4xi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -36,23 +56,58 @@ define Device/edgecore_eap101
 | 
				
			|||||||
endef
 | 
					endef
 | 
				
			||||||
TARGET_DEVICES += edgecore_eap101
 | 
					TARGET_DEVICES += edgecore_eap101
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					define Device/indio_um-310ax-v1
 | 
				
			||||||
 | 
					  DEVICE_TITLE := Indio UM-310AX V1
 | 
				
			||||||
 | 
					  DEVICE_DTS := qcom-ipq6018-indio-um-310ax-v1
 | 
				
			||||||
 | 
					  DEVICE_DTS_CONFIG := config@cp03-c1
 | 
				
			||||||
 | 
					  SUPPORTED_DEVICES := indio,um-310ax-v1
 | 
				
			||||||
 | 
					  DEVICE_PACKAGES := ath11k-wifi-indio-um-310ax-v1 uboot-env
 | 
				
			||||||
 | 
					endef
 | 
				
			||||||
 | 
					TARGET_DEVICES += indio_um-310ax-v1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					define Device/indio_um-510axp-v1
 | 
				
			||||||
 | 
					  DEVICE_TITLE := Indio UM-510AXP V1
 | 
				
			||||||
 | 
					  DEVICE_DTS := qcom-ipq6018-indio-um-510axp-v1
 | 
				
			||||||
 | 
					  DEVICE_DTS_CONFIG := config@cp03-c1
 | 
				
			||||||
 | 
					  SUPPORTED_DEVICES := indio,um-510axp-v1
 | 
				
			||||||
 | 
					  DEVICE_PACKAGES := ath11k-wifi-indio-um-510axp-v1 uboot-env
 | 
				
			||||||
 | 
					endef
 | 
				
			||||||
 | 
					TARGET_DEVICES += indio_um-510axp-v1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					define Device/indio_um-510axm-v1
 | 
				
			||||||
 | 
					  DEVICE_TITLE := Indio UM-510AXM V1
 | 
				
			||||||
 | 
					  DEVICE_DTS := qcom-ipq6018-indio-um-510axm-v1
 | 
				
			||||||
 | 
					  DEVICE_DTS_CONFIG := config@cp03-c1
 | 
				
			||||||
 | 
					  SUPPORTED_DEVICES := indio,um-510axm-v1
 | 
				
			||||||
 | 
					  DEVICE_PACKAGES := ath11k-wifi-indio-um-510axm-v1 uboot-env
 | 
				
			||||||
 | 
					endef
 | 
				
			||||||
 | 
					TARGET_DEVICES += indio_um-510axm-v1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
define Device/wallys_dr6018
 | 
					define Device/wallys_dr6018
 | 
				
			||||||
  DEVICE_TITLE := Wallys DR6018
 | 
					  DEVICE_TITLE := Wallys DR6018
 | 
				
			||||||
  DEVICE_DTS := qcom-ipq6018-wallys-dr6018
 | 
					  DEVICE_DTS := qcom-ipq6018-wallys-dr6018
 | 
				
			||||||
  DEVICE_DTS_CONFIG := config@cp01-c4
 | 
					  DEVICE_DTS_CONFIG := config@cp01-c4
 | 
				
			||||||
  SUPPORTED_DEVICES := wallys,dr6018
 | 
					  SUPPORTED_DEVICES := wallys,dr6018
 | 
				
			||||||
  DEVICE_PACKAGES := ath11k-wifi-wallys-dr6018 uboot-envtools
 | 
					  DEVICE_PACKAGES := ath11k-wifi-wallys-dr6018 uboot-envtools -kmod-usb-dwc3-of-simple kmod-usb-dwc3-qcom kmod-usb3 kmod-usb2
 | 
				
			||||||
endef
 | 
					endef
 | 
				
			||||||
#TARGET_DEVICES += wallys_dr6018
 | 
					TARGET_DEVICES += wallys_dr6018
 | 
				
			||||||
 | 
					
 | 
				
			||||||
define Device/wallys_dr6018_v4
 | 
					define Device/wallys_dr6018_v4
 | 
				
			||||||
  DEVICE_TITLE := Wallys DR6018 V4
 | 
					  DEVICE_TITLE := Wallys DR6018 V4
 | 
				
			||||||
  DEVICE_DTS := qcom-ipq6018-wallys-dr6018-v4
 | 
					  DEVICE_DTS := qcom-ipq6018-wallys-dr6018-v4
 | 
				
			||||||
  DEVICE_DTS_CONFIG := config@cp01-c4
 | 
					  DEVICE_DTS_CONFIG := config@cp01-c4
 | 
				
			||||||
  SUPPORTED_DEVICES := wallys,dr6018-v4
 | 
					  SUPPORTED_DEVICES := wallys,dr6018-v4
 | 
				
			||||||
  DEVICE_PACKAGES := ath11k-wifi-wallys-dr6018-v4 uboot-envtools
 | 
					  DEVICE_PACKAGES := ath11k-wifi-wallys-dr6018-v4 uboot-envtools ath11k-firmware-qcn9000
 | 
				
			||||||
endef
 | 
					endef
 | 
				
			||||||
#TARGET_DEVICES += wallys_dr6018_v4
 | 
					TARGET_DEVICES += wallys_dr6018_v4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					define Device/qcom_cp01_c1
 | 
				
			||||||
 | 
					  DEVICE_TITLE := Qualcomm Cypress C1
 | 
				
			||||||
 | 
					  DEVICE_DTS := qcom-ipq6018-cp01-c1
 | 
				
			||||||
 | 
					  SUPPORTED_DEVICES := qcom,ipq6018-cp01
 | 
				
			||||||
 | 
					  DEVICE_PACKAGES := ath11k-wifi-qcom-ipq6018
 | 
				
			||||||
 | 
					endef
 | 
				
			||||||
 | 
					TARGET_DEVICES += qcom_cp01_c1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
define Device/glinet_ax1800
 | 
					define Device/glinet_ax1800
 | 
				
			||||||
  DEVICE_TITLE := GL-iNet AX1800
 | 
					  DEVICE_TITLE := GL-iNet AX1800
 | 
				
			||||||
@@ -68,7 +123,7 @@ define Device/glinet_axt1800
 | 
				
			|||||||
  DEVICE_DTS := qcom-ipq6018-gl-axt1800
 | 
					  DEVICE_DTS := qcom-ipq6018-gl-axt1800
 | 
				
			||||||
  SUPPORTED_DEVICES := glinet,axt1800
 | 
					  SUPPORTED_DEVICES := glinet,axt1800
 | 
				
			||||||
  DEVICE_DTS_CONFIG := config@cp03-c1
 | 
					  DEVICE_DTS_CONFIG := config@cp03-c1
 | 
				
			||||||
  DEVICE_PACKAGES := ath11k-wifi-gl-ax1800 -kmod-usb-dwc3-of-simple kmod-usb-dwc3-qcom kmod-usb3
 | 
					  DEVICE_PACKAGES := ath11k-wifi-gl-axt1800 -kmod-usb-dwc3-of-simple kmod-usb-dwc3-qcom kmod-usb3
 | 
				
			||||||
endef
 | 
					endef
 | 
				
			||||||
TARGET_DEVICES += glinet_axt1800
 | 
					TARGET_DEVICES += glinet_axt1800
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -80,3 +135,63 @@ define Device/yuncore_ax840
 | 
				
			|||||||
  DEVICE_PACKAGES := ath11k-wifi-yuncore-ax840 uboot-env
 | 
					  DEVICE_PACKAGES := ath11k-wifi-yuncore-ax840 uboot-env
 | 
				
			||||||
endef
 | 
					endef
 | 
				
			||||||
TARGET_DEVICES += yuncore_ax840
 | 
					TARGET_DEVICES += yuncore_ax840
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					define Device/plasmacloud_common_64k
 | 
				
			||||||
 | 
					  DEVICE_PACKAGES := uboot-envtools
 | 
				
			||||||
 | 
					  CE_TYPE :=
 | 
				
			||||||
 | 
					  BLOCKSIZE := 64k
 | 
				
			||||||
 | 
					  IMAGES := sysupgrade.tar factory.bin
 | 
				
			||||||
 | 
					  IMAGE/factory.bin := append-rootfs | pad-rootfs | openmesh-image ce_type=$$$$(CE_TYPE)
 | 
				
			||||||
 | 
					  IMAGE/sysupgrade.tar := append-rootfs | pad-rootfs | sysupgrade-tar rootfs=$$$$@ | append-metadata
 | 
				
			||||||
 | 
					  KERNEL += | pad-to $$(BLOCKSIZE)
 | 
				
			||||||
 | 
					endef
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					define Device/plasmacloud_pax1800-v1
 | 
				
			||||||
 | 
					  $(Device/plasmacloud_common_64k)
 | 
				
			||||||
 | 
					  DEVICE_TITLE := Plasma Cloud PAX1800 v1
 | 
				
			||||||
 | 
					  DEVICE_DTS := qcom-ipq6018-pax1800-v1
 | 
				
			||||||
 | 
					  SUPPORTED_DEVICES := plasmacloud,pax1800-v1
 | 
				
			||||||
 | 
					  DEVICE_DTS_CONFIG := config@cp03-c1
 | 
				
			||||||
 | 
					  CE_TYPE := PAX1800
 | 
				
			||||||
 | 
					  DEVICE_PACKAGES += ath11k-wifi-plasmacloud-pax1800
 | 
				
			||||||
 | 
					endef
 | 
				
			||||||
 | 
					TARGET_DEVICES += plasmacloud_pax1800-v1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					define Device/plasmacloud_pax1800-v2
 | 
				
			||||||
 | 
					  $(Device/plasmacloud_common_64k)
 | 
				
			||||||
 | 
					  DEVICE_TITLE := Plasma Cloud PAX1800 v2
 | 
				
			||||||
 | 
					  DEVICE_DTS := qcom-ipq6018-pax1800-v2
 | 
				
			||||||
 | 
					  SUPPORTED_DEVICES := plasmacloud,pax1800-v2
 | 
				
			||||||
 | 
					  DEVICE_DTS_CONFIG := config@plasmacloud.pax1800v2
 | 
				
			||||||
 | 
					  CE_TYPE := PAX1800v2
 | 
				
			||||||
 | 
					  DEVICE_PACKAGES += ath11k-wifi-plasmacloud-pax1800
 | 
				
			||||||
 | 
					endef
 | 
				
			||||||
 | 
					TARGET_DEVICES += plasmacloud_pax1800-v2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					define Device/meshpp_s618_cp03
 | 
				
			||||||
 | 
					  DEVICE_TITLE := S618 cp03
 | 
				
			||||||
 | 
					  DEVICE_DTS := qcom-ipq6018-meshpp-s618-cp03
 | 
				
			||||||
 | 
					  SUPPORTED_DEVICES := meshpp,s618-cp03
 | 
				
			||||||
 | 
					  DEVICE_DTS_CONFIG := config@cp03-c1
 | 
				
			||||||
 | 
					  DEVICE_PACKAGES := ath11k-wifi-meshpp-s618 -kmod-usb-dwc3-of-simple kmod-usb-dwc3-qcom kmod-usb3
 | 
				
			||||||
 | 
					endef
 | 
				
			||||||
 | 
					TARGET_DEVICES += meshpp_s618_cp03
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					define Device/meshpp_s618_cp01
 | 
				
			||||||
 | 
					  DEVICE_TITLE := S618 cp01
 | 
				
			||||||
 | 
					  DEVICE_DTS := qcom-ipq6018-meshpp-s618-cp01
 | 
				
			||||||
 | 
					  SUPPORTED_DEVICES := meshpp,s618-cp01
 | 
				
			||||||
 | 
					  DEVICE_DTS_CONFIG := config@cp01-c1
 | 
				
			||||||
 | 
					  DEVICE_PACKAGES := ath11k-wifi-meshpp-s618 -kmod-usb-dwc3-of-simple kmod-usb-dwc3-qcom kmod-usb3
 | 
				
			||||||
 | 
					endef
 | 
				
			||||||
 | 
					TARGET_DEVICES += meshpp_s618_cp01
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					define Device/yuncore_fap650
 | 
				
			||||||
 | 
					  DEVICE_TITLE := YunCore FAP 650
 | 
				
			||||||
 | 
					  DEVICE_DTS := qcom-ipq6018-yuncore-fap650
 | 
				
			||||||
 | 
					  SUPPORTED_DEVICES := yuncore,fap650
 | 
				
			||||||
 | 
					  DEVICE_DTS_CONFIG := config@cp03-c1
 | 
				
			||||||
 | 
					  DEVICE_PACKAGES := ath11k-wifi-yuncore-fap650
 | 
				
			||||||
 | 
					endef
 | 
				
			||||||
 | 
					TARGET_DEVICES += yuncore_fap650
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,16 +2,16 @@ KERNEL_LOADADDR := 0x41208000
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
define Device/qcom_hk01
 | 
					define Device/qcom_hk01
 | 
				
			||||||
  DEVICE_TITLE := Qualcomm Hawkeye HK01
 | 
					  DEVICE_TITLE := Qualcomm Hawkeye HK01
 | 
				
			||||||
  DEVICE_DTS := ipq8074-hk01
 | 
					  DEVICE_DTS := qcom-ipq807x-hk01
 | 
				
			||||||
  DEVICE_DTS_CONFIG=config@hk01
 | 
					  DEVICE_DTS_CONFIG=config@hk01
 | 
				
			||||||
  SUPPORTED_DEVICES := qcom,ipq807x-hk01
 | 
					  SUPPORTED_DEVICES := qcom,ipq807x-hk01
 | 
				
			||||||
  DEVICE_PACKAGES := ath11k-wifi-qcom-ipq8074
 | 
					  DEVICE_PACKAGES := ath11k-wifi-qcom-ipq8074
 | 
				
			||||||
endef
 | 
					endef
 | 
				
			||||||
#TARGET_DEVICES += qcom_hk01
 | 
					TARGET_DEVICES += qcom_hk01
 | 
				
			||||||
 | 
					
 | 
				
			||||||
define Device/qcom_hk14
 | 
					define Device/qcom_hk14
 | 
				
			||||||
  DEVICE_TITLE := Qualcomm Hawkeye HK14
 | 
					  DEVICE_TITLE := Qualcomm Hawkeye HK14
 | 
				
			||||||
  DEVICE_DTS := ipq8074-hk14
 | 
					  DEVICE_DTS := qcom-ipq807x-hk14
 | 
				
			||||||
  DEVICE_DTS_CONFIG=config@hk14
 | 
					  DEVICE_DTS_CONFIG=config@hk14
 | 
				
			||||||
  SUPPORTED_DEVICES := qcom,ipq807x-hk14
 | 
					  SUPPORTED_DEVICES := qcom,ipq807x-hk14
 | 
				
			||||||
  DEVICE_PACKAGES := ath11k-wifi-qcom-ipq8074 kmod-ath11k-pci ath11k-firmware-qcn9000
 | 
					  DEVICE_PACKAGES := ath11k-wifi-qcom-ipq8074 kmod-ath11k-pci ath11k-firmware-qcn9000
 | 
				
			||||||
@@ -41,6 +41,8 @@ define Device/cig_wf196
 | 
				
			|||||||
  DEVICE_DTS := qcom-ipq807x-wf196
 | 
					  DEVICE_DTS := qcom-ipq807x-wf196
 | 
				
			||||||
  DEVICE_DTS_CONFIG=config@hk14
 | 
					  DEVICE_DTS_CONFIG=config@hk14
 | 
				
			||||||
  SUPPORTED_DEVICES := cig,wf196
 | 
					  SUPPORTED_DEVICES := cig,wf196
 | 
				
			||||||
 | 
					  BLOCKSIZE := 256k
 | 
				
			||||||
 | 
					  PAGESIZE := 4096
 | 
				
			||||||
  DEVICE_PACKAGES := ath11k-wifi-cig-wf196 aq-fw-download uboot-envtools kmod-usb3 kmod-usb2 \
 | 
					  DEVICE_PACKAGES := ath11k-wifi-cig-wf196 aq-fw-download uboot-envtools kmod-usb3 kmod-usb2 \
 | 
				
			||||||
  	ath11k-firmware-qcn9000 ath11k-wifi-cig-wf196_6g
 | 
					  	ath11k-firmware-qcn9000 ath11k-wifi-cig-wf196_6g
 | 
				
			||||||
endef
 | 
					endef
 | 
				
			||||||
 
 | 
				
			|||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										85
									
								
								feeds/ipq807x/ipq807x/ipq50xx/config-default
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								feeds/ipq807x/ipq807x/ipq50xx/config-default
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,85 @@
 | 
				
			|||||||
 | 
					# CONFIG_AHCI_IPQ is not set
 | 
				
			||||||
 | 
					CONFIG_ARCH_IPQ5018=y
 | 
				
			||||||
 | 
					# CONFIG_DIAGFWD_BRIDGE_CODE is not set
 | 
				
			||||||
 | 
					CONFIG_IPQ_ADSS_5018=y
 | 
				
			||||||
 | 
					CONFIG_IPQ_APSS_5018=y
 | 
				
			||||||
 | 
					CONFIG_IPQ_GCC_5018=y
 | 
				
			||||||
 | 
					# CONFIG_NET_SWITCHDEV is not set
 | 
				
			||||||
 | 
					CONFIG_NUM_ALT_PARTITION=16
 | 
				
			||||||
 | 
					CONFIG_PINCTRL_IPQ5018=y
 | 
				
			||||||
 | 
					# CONFIG_IPC_LOGGING is not set
 | 
				
			||||||
 | 
					CONFIG_IPQ_SUBSYSTEM_DUMP=y
 | 
				
			||||||
 | 
					CONFIG_SPS=y
 | 
				
			||||||
 | 
					CONFIG_SPS_SUPPORT_NDP_BAM=y
 | 
				
			||||||
 | 
					CONFIG_CORESIGHT=y
 | 
				
			||||||
 | 
					CONFIG_CORESIGHT_CSR=y
 | 
				
			||||||
 | 
					CONFIG_CORESIGHT_CTI=y
 | 
				
			||||||
 | 
					CONFIG_CORESIGHT_EVENT=y
 | 
				
			||||||
 | 
					CONFIG_CORESIGHT_HWEVENT=y
 | 
				
			||||||
 | 
					CONFIG_CORESIGHT_LINKS_AND_SINKS=y
 | 
				
			||||||
 | 
					CONFIG_CORESIGHT_LINK_AND_SINK_TMC=y
 | 
				
			||||||
 | 
					CONFIG_CORESIGHT_QCOM_REPLICATOR=y
 | 
				
			||||||
 | 
					# CONFIG_INPUT_PM8941_PWRKEY is not set
 | 
				
			||||||
 | 
					CONFIG_MDIO_QCA=y
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_ALL_CASES is not set
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_DEV_QCOM_ICE=y
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_SHA512=y
 | 
				
			||||||
 | 
					# CONFIG_CORESIGHT_QPDI is not set
 | 
				
			||||||
 | 
					# CONFIG_CORESIGHT_SINK_ETBV10 is not set
 | 
				
			||||||
 | 
					CONFIG_CORESIGHT_SINK_TPIU=y
 | 
				
			||||||
 | 
					# CONFIG_CORESIGHT_SOURCE_DUMMY is not set
 | 
				
			||||||
 | 
					CONFIG_CORESIGHT_SOURCE_ETM3X=y
 | 
				
			||||||
 | 
					CONFIG_CORESIGHT_SOURCE_ETM4X=y
 | 
				
			||||||
 | 
					# CONFIG_CORESIGHT_REMOTE_ETM is not set
 | 
				
			||||||
 | 
					CONFIG_CORESIGHT_STM=y
 | 
				
			||||||
 | 
					CONFIG_CORESIGHT_TPDA=y
 | 
				
			||||||
 | 
					CONFIG_CORESIGHT_TPDM=y
 | 
				
			||||||
 | 
					# CONFIG_CORESIGHT_TPDM_DEFAULT_ENABLE is not set
 | 
				
			||||||
 | 
					CONFIG_IIO=y
 | 
				
			||||||
 | 
					# CONFIG_IIO_BUFFER is not set
 | 
				
			||||||
 | 
					# CONFIG_IIO_TRIGGER is not set
 | 
				
			||||||
 | 
					CONFIG_PCIE_DW_PLAT=y
 | 
				
			||||||
 | 
					CONFIG_PHY_IPQ_UNIPHY_PCIE=y
 | 
				
			||||||
 | 
					CONFIG_VMSPLIT_2G=y
 | 
				
			||||||
 | 
					# CONFIG_VMSPLIT_3G is not set
 | 
				
			||||||
 | 
					CONFIG_PPS=y
 | 
				
			||||||
 | 
					CONFIG_PTP_1588_CLOCK=y
 | 
				
			||||||
 | 
					# CONFIG_DP83640_PHY is not set
 | 
				
			||||||
 | 
					CONFIG_PWM_IPQ5018=y
 | 
				
			||||||
 | 
					CONFIG_QCOM_APM=y
 | 
				
			||||||
 | 
					CONFIG_QCOM_DCC=y
 | 
				
			||||||
 | 
					# CONFIG_QCOM_SPMI_TEMP_ALARM is not set
 | 
				
			||||||
 | 
					CONFIG_MMC_SDHCI_MSM_ICE=y
 | 
				
			||||||
 | 
					CONFIG_USB_BAM=y
 | 
				
			||||||
 | 
					CONFIG_MAILBOX=y
 | 
				
			||||||
 | 
					# CONFIG_USB_QCOM_DIAG_BRIDGE is not set
 | 
				
			||||||
 | 
					# CONFIG_USB_CONFIGFS_F_DIAG is not set
 | 
				
			||||||
 | 
					# CONFIG_NF_IPV6_DUMMY_HEADER is not set
 | 
				
			||||||
 | 
					CONFIG_RMNET_DATA=y
 | 
				
			||||||
 | 
					CONFIG_RMNET_DATA_DEBUG_PKT=y
 | 
				
			||||||
 | 
					CONFIG_MTD_NAND_SERIAL=y
 | 
				
			||||||
 | 
					CONFIG_PAGE_SCOPE_MULTI_PAGE_READ=y
 | 
				
			||||||
 | 
					# CONFIG_RMNET_DATA_FC is not set
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_NO_ZERO_LEN_HASH=y
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_DISABLE_AES192_TEST=y
 | 
				
			||||||
 | 
					# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
 | 
				
			||||||
 | 
					# CONFIG_CPU_FREQ_GOV_PERFORMANCE is not set
 | 
				
			||||||
 | 
					# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
 | 
				
			||||||
 | 
					# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set
 | 
				
			||||||
 | 
					# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
 | 
				
			||||||
 | 
					CONFIG_QTI_EUD=y
 | 
				
			||||||
 | 
					CONFIG_USB_QCA_M31_PHY=y
 | 
				
			||||||
 | 
					CONFIG_QGIC2_MSI=y
 | 
				
			||||||
 | 
					CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
 | 
				
			||||||
 | 
					CONFIG_PWM_IPQ4019=y
 | 
				
			||||||
 | 
					CONFIG_RMNET=y
 | 
				
			||||||
 | 
					CONFIG_QCOM_QMI_RMNET=y
 | 
				
			||||||
 | 
					CONFIG_QCOM_QMI_DFC=y
 | 
				
			||||||
 | 
					CONFIG_QCOM_QMI_POWER_COLLAPSE=y
 | 
				
			||||||
 | 
					CONFIG_RMNET_CTL=y
 | 
				
			||||||
 | 
					CONFIG_RMNET_CTL_DEBUG=y
 | 
				
			||||||
 | 
					CONFIG_SND_SOC_IPQ_LPASS=y
 | 
				
			||||||
 | 
					CONFIG_SND_SOC_IPQ_LPASS_PCM_RAW=y
 | 
				
			||||||
 | 
					# CONFIG_SND_SOC_IPQ_PCM_RAW is not set
 | 
				
			||||||
 | 
					CONFIG_QCOM_RESTART_REASON=y
 | 
				
			||||||
							
								
								
									
										73
									
								
								feeds/ipq807x/ipq807x/ipq50xx/config-lowmem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								feeds/ipq807x/ipq807x/ipq50xx/config-lowmem
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,73 @@
 | 
				
			|||||||
 | 
					# CONFIG_AHCI_IPQ is not set
 | 
				
			||||||
 | 
					CONFIG_ARCH_IPQ5018=y
 | 
				
			||||||
 | 
					# CONFIG_DIAGFWD_BRIDGE_CODE is not set
 | 
				
			||||||
 | 
					CONFIG_IPQ_ADSS_5018=y
 | 
				
			||||||
 | 
					CONFIG_IPQ_APSS_5018=y
 | 
				
			||||||
 | 
					CONFIG_IPQ_GCC_5018=y
 | 
				
			||||||
 | 
					# CONFIG_NET_SWITCHDEV is not set
 | 
				
			||||||
 | 
					CONFIG_NUM_ALT_PARTITION=16
 | 
				
			||||||
 | 
					CONFIG_PINCTRL_IPQ5018=y
 | 
				
			||||||
 | 
					# CONFIG_IPC_LOGGING is not set
 | 
				
			||||||
 | 
					CONFIG_IPQ_SUBSYSTEM_DUMP=y
 | 
				
			||||||
 | 
					# CONFIG_SPS is not set
 | 
				
			||||||
 | 
					# CONFIG_SPS_SUPPORT_NDP_BAM is not set
 | 
				
			||||||
 | 
					# CONFIG_CORESIGHT is not set
 | 
				
			||||||
 | 
					# CONFIG_INPUT_PM8941_PWRKEY is not set
 | 
				
			||||||
 | 
					CONFIG_MDIO_QCA=y
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_ALL_CASES is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_DEV_QCOM_ICE is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_SHA512 is not set
 | 
				
			||||||
 | 
					# CONFIG_IIO is not set
 | 
				
			||||||
 | 
					# CONFIG_IIO_BUFFER is not set
 | 
				
			||||||
 | 
					# CONFIG_IIO_TRIGGER is not set
 | 
				
			||||||
 | 
					CONFIG_PCIE_DW_PLAT=y
 | 
				
			||||||
 | 
					CONFIG_PHY_IPQ_UNIPHY_PCIE=y
 | 
				
			||||||
 | 
					CONFIG_VMSPLIT_2G=y
 | 
				
			||||||
 | 
					# CONFIG_VMSPLIT_3G is not set
 | 
				
			||||||
 | 
					# CONFIG_PPS is not set
 | 
				
			||||||
 | 
					# CONFIG_PTP_1588_CLOCK is not set
 | 
				
			||||||
 | 
					# CONFIG_DP83640_PHY is not set
 | 
				
			||||||
 | 
					CONFIG_PWM_IPQ5018=y
 | 
				
			||||||
 | 
					CONFIG_QCOM_APM=y
 | 
				
			||||||
 | 
					# CONFIG_QCOM_DCC is not set
 | 
				
			||||||
 | 
					# CONFIG_QCOM_SPMI_TEMP_ALARM is not set
 | 
				
			||||||
 | 
					CONFIG_MMC_SDHCI_MSM_ICE=y
 | 
				
			||||||
 | 
					CONFIG_USB_BAM=y
 | 
				
			||||||
 | 
					CONFIG_MAILBOX=y
 | 
				
			||||||
 | 
					# CONFIG_USB_QCOM_DIAG_BRIDGE is not set
 | 
				
			||||||
 | 
					# CONFIG_USB_CONFIGFS_F_DIAG is not set
 | 
				
			||||||
 | 
					# CONFIG_NF_IPV6_DUMMY_HEADER is not set
 | 
				
			||||||
 | 
					# CONFIG_RMNET_DATA is not set
 | 
				
			||||||
 | 
					# CONFIG_RMNET_DATA_DEBUG_PKT is not set
 | 
				
			||||||
 | 
					CONFIG_MTD_NAND_SERIAL=y
 | 
				
			||||||
 | 
					CONFIG_PAGE_SCOPE_MULTI_PAGE_READ=y
 | 
				
			||||||
 | 
					# CONFIG_RMNET_DATA_FC is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_NO_ZERO_LEN_HASH is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO_DISABLE_AES192_TEST is not set
 | 
				
			||||||
 | 
					# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
 | 
				
			||||||
 | 
					# CONFIG_CPU_FREQ_GOV_PERFORMANCE is not set
 | 
				
			||||||
 | 
					# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
 | 
				
			||||||
 | 
					# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set
 | 
				
			||||||
 | 
					# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
 | 
				
			||||||
 | 
					CONFIG_QTI_EUD=y
 | 
				
			||||||
 | 
					CONFIG_USB_QCA_M31_PHY=y
 | 
				
			||||||
 | 
					CONFIG_SQUASHFS_XZ=y
 | 
				
			||||||
 | 
					# CONFIG_SQUASHFS_ZLIB is not set
 | 
				
			||||||
 | 
					# CONFIG_JFFS2_LZMA is not set
 | 
				
			||||||
 | 
					CONFIG_JFFS2_ZLIB=y
 | 
				
			||||||
 | 
					# CONFIG_LZO_COMPRESS is not set
 | 
				
			||||||
 | 
					# CONFIG_LZO_DECOMPRESS is not set
 | 
				
			||||||
 | 
					CONFIG_XZ_DEC=y
 | 
				
			||||||
 | 
					# CONFIG_XZ_DEC_X86 is not set
 | 
				
			||||||
 | 
					# CONFIG_XZ_DEC_POWERPC is not set
 | 
				
			||||||
 | 
					# CONFIG_XZ_DEC_IA64 is not set
 | 
				
			||||||
 | 
					CONFIG_XZ_DEC_ARM=y
 | 
				
			||||||
 | 
					# CONFIG_XZ_DEC_ARMTHUMB is not set
 | 
				
			||||||
 | 
					# CONFIG_XZ_DEC_SPARC is not set
 | 
				
			||||||
 | 
					CONFIG_XZ_DEC_BCJ=y
 | 
				
			||||||
 | 
					# CONFIG_LZO_COMPRESS is not set
 | 
				
			||||||
 | 
					# CONFIG_LZO_DECOMPRESS is not set
 | 
				
			||||||
 | 
					# CONFIG_CRYPTO is not set
 | 
				
			||||||
 | 
					CONFIG_QGIC2_MSI=y
 | 
				
			||||||
 | 
					CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
 | 
				
			||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -1,8 +1,6 @@
 | 
				
			|||||||
SUBTARGET:=ipq60xx
 | 
					SUBTARGET:=ipq60xx
 | 
				
			||||||
BOARDNAME:=IPQ60xx based boards
 | 
					BOARDNAME:=IPQ60xx based boards
 | 
				
			||||||
 | 
					
 | 
				
			||||||
KERNEL_PATCHVER:=5.4
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
DEFAULT_PACKAGES += ath11k-firmware-ipq60xx qca-nss-fw-ipq60xx
 | 
					DEFAULT_PACKAGES += ath11k-firmware-ipq60xx qca-nss-fw-ipq60xx
 | 
				
			||||||
 | 
					
 | 
				
			||||||
define Target/Description
 | 
					define Target/Description
 | 
				
			||||||
 
 | 
				
			|||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -2,15 +2,12 @@ define KernelPackage/usb-phy-ipq807x
 | 
				
			|||||||
  TITLE:=DWC3 USB QCOM PHY driver for IPQ807x
 | 
					  TITLE:=DWC3 USB QCOM PHY driver for IPQ807x
 | 
				
			||||||
  DEPENDS:=@TARGET_ipq807x
 | 
					  DEPENDS:=@TARGET_ipq807x
 | 
				
			||||||
  KCONFIG:= \
 | 
					  KCONFIG:= \
 | 
				
			||||||
	CONFIG_PHY_QCOM_QUSB2 \
 | 
					 | 
				
			||||||
	CONFIG_PHY_QCOM_QMP=y \
 | 
					 | 
				
			||||||
	CONFIG_USB_QCOM_QUSB_PHY \
 | 
						CONFIG_USB_QCOM_QUSB_PHY \
 | 
				
			||||||
	CONFIG_USB_QCOM_QMP_PHY
 | 
						CONFIG_USB_QCOM_QMP_PHY
 | 
				
			||||||
  FILES:= \
 | 
					  FILES:= \
 | 
				
			||||||
	$(LINUX_DIR)/drivers/phy/qualcomm/phy-qcom-qusb2.ko@ge5.4 \
 | 
						$(LINUX_DIR)/drivers/usb/phy/phy-msm-qusb.ko \
 | 
				
			||||||
	$(LINUX_DIR)/drivers/usb/phy/phy-msm-qusb.ko@le4.4 \
 | 
						$(LINUX_DIR)/drivers/usb/phy/phy-msm-ssusb-qmp.ko
 | 
				
			||||||
	$(LINUX_DIR)/drivers/usb/phy/phy-msm-ssusb-qmp.ko@le4.4
 | 
					  AUTOLOAD:=$(call AutoLoad,45,phy-msm-qusb phy-msm-ssusb-qmp,1)
 | 
				
			||||||
  AUTOLOAD:=$(call AutoLoad,45,phy-qcom-qusb2 phy-msm-qusb phy-msm-ssusb-qmp,1)
 | 
					 | 
				
			||||||
  $(call AddDepends/usb)
 | 
					  $(call AddDepends/usb)
 | 
				
			||||||
endef
 | 
					endef
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -22,45 +19,46 @@ endef
 | 
				
			|||||||
$(eval $(call KernelPackage,usb-phy-ipq807x))
 | 
					$(eval $(call KernelPackage,usb-phy-ipq807x))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
define KernelPackage/usb-dwc3-internal
 | 
					define KernelPackage/qrtr_mproc
 | 
				
			||||||
  TITLE:=DWC3 USB controller driver
 | 
					  TITLE:= Ath11k Specific kernel configs for IPQ807x and IPQ60xx
 | 
				
			||||||
  DEPENDS:=+USB_GADGET_SUPPORT:kmod-usb-gadget +kmod-usb-core
 | 
					  DEPENDS+= @TARGET_ipq807x
 | 
				
			||||||
  KCONFIG:= \
 | 
					  KCONFIG:= \
 | 
				
			||||||
        CONFIG_USB_DWC3 \
 | 
					          CONFIG_QRTR=y \
 | 
				
			||||||
        CONFIG_USB_DWC3_HOST=n \
 | 
					          CONFIG_QRTR_MHI=y \
 | 
				
			||||||
        CONFIG_USB_DWC3_GADGET=n \
 | 
					          CONFIG_MHI_BUS=y \
 | 
				
			||||||
        CONFIG_USB_DWC3_DUAL_ROLE=y \
 | 
					          CONFIG_MHI_QTI=y \
 | 
				
			||||||
        CONFIG_EXTCON=y \
 | 
					          CONFIG_QCOM_APCS_IPC=y \
 | 
				
			||||||
        CONFIG_USB_DWC3_DEBUG=n \
 | 
					          CONFIG_QCOM_GLINK_SSR=y \
 | 
				
			||||||
        CONFIG_USB_DWC3_VERBOSE=n
 | 
					          CONFIG_QCOM_Q6V5_WCSS=y \
 | 
				
			||||||
  FILES:= $(LINUX_DIR)/drivers/usb/dwc3/dwc3.ko
 | 
					          CONFIG_MSM_RPM_RPMSG=y \
 | 
				
			||||||
  AUTOLOAD:=$(call AutoLoad,54,dwc3,1)
 | 
					          CONFIG_RPMSG_QCOM_GLINK_RPM=y \
 | 
				
			||||||
  $(call AddPlatformDepends/usb)
 | 
					          CONFIG_REGULATOR_RPM_GLINK=y \
 | 
				
			||||||
 | 
					          CONFIG_QCOM_SYSMON=y \
 | 
				
			||||||
 | 
					          CONFIG_RPMSG=y \
 | 
				
			||||||
 | 
					          CONFIG_RPMSG_CHAR=y \
 | 
				
			||||||
 | 
					          CONFIG_RPMSG_QCOM_GLINK_SMEM=y \
 | 
				
			||||||
 | 
					          CONFIG_RPMSG_QCOM_SMD=y \
 | 
				
			||||||
 | 
					          CONFIG_QRTR_SMD=y \
 | 
				
			||||||
 | 
					          CONFIG_QCOM_QMI_HELPERS=y \
 | 
				
			||||||
 | 
					          CONFIG_SAMPLES=y \
 | 
				
			||||||
 | 
					          CONFIG_SAMPLE_QMI_CLIENT=m \
 | 
				
			||||||
 | 
					          CONFIG_SAMPLE_TRACE_EVENTS=n \
 | 
				
			||||||
 | 
					          CONFIG_SAMPLE_KOBJECT=n \
 | 
				
			||||||
 | 
					          CONFIG_SAMPLE_KPROBES=n \
 | 
				
			||||||
 | 
					          CONFIG_SAMPLE_KRETPROBES=n \
 | 
				
			||||||
 | 
					          CONFIG_SAMPLE_HW_BREAKPOINT=n \
 | 
				
			||||||
 | 
					          CONFIG_SAMPLE_KFIFO=n \
 | 
				
			||||||
 | 
					          CONFIG_SAMPLE_CONFIGFS=n \
 | 
				
			||||||
 | 
					          CONFIG_SAMPLE_RPMSG_CLIENT=n \
 | 
				
			||||||
 | 
					          CONFIG_MAILBOX=y \
 | 
				
			||||||
 | 
					          CONFIG_DIAG_OVER_QRTR=y
 | 
				
			||||||
endef
 | 
					endef
 | 
				
			||||||
 | 
					
 | 
				
			||||||
define KernelPackage/usb-dwc3-internal/description
 | 
					define KernelPackage/qrtr_mproc/description
 | 
				
			||||||
 This driver provides support for the Dual Role SuperSpeed
 | 
					Kernel configs for ath11k support specific to ipq807x and IPQ60xx
 | 
				
			||||||
 USB Controller based on the Synopsys DesignWare USB3 IP Core
 | 
					 | 
				
			||||||
endef
 | 
					endef
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$(eval $(call KernelPackage,usb-dwc3-internal))
 | 
					$(eval $(call KernelPackage,qrtr_mproc))
 | 
				
			||||||
 | 
					 | 
				
			||||||
define KernelPackage/usb-dwc3-qcom-internal
 | 
					 | 
				
			||||||
  TITLE:=DWC3 QTI USB driver
 | 
					 | 
				
			||||||
  DEPENDS:=@!LINUX_4_14 @(TARGET_ipq807x||TARGET_ipq60xx||TARGET_ipq95xx||TARGET_ipq50xx) +kmod-usb-dwc3-internal
 | 
					 | 
				
			||||||
  KCONFIG:= CONFIG_USB_DWC3_QCOM
 | 
					 | 
				
			||||||
  FILES:= $(LINUX_DIR)/drivers/usb/dwc3/dwc3-qcom.ko
 | 
					 | 
				
			||||||
  AUTOLOAD:=$(call AutoLoad,53,dwc3-qcom,1)
 | 
					 | 
				
			||||||
  $(call AddPlatformDepends/usb)
 | 
					 | 
				
			||||||
endef
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
define KernelPackage/usb-dwc3-qcom-internal/description
 | 
					 | 
				
			||||||
 Some QTI SoCs use DesignWare Core IP for USB2/3 functionality.
 | 
					 | 
				
			||||||
 This driver also handles Qscratch wrapper which is needed for
 | 
					 | 
				
			||||||
 peripheral mode support.
 | 
					 | 
				
			||||||
endef
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
$(eval $(call KernelPackage,usb-dwc3-qcom-internal))
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
define KernelPackage/bt_tty
 | 
					define KernelPackage/bt_tty
 | 
				
			||||||
  TITLE:= BT Inter-processor Communication
 | 
					  TITLE:= BT Inter-processor Communication
 | 
				
			||||||
@@ -86,7 +84,7 @@ define KernelPackage/usb-phy-ipq5018
 | 
				
			|||||||
        CONFIG_PHY_IPQ_UNIPHY_USB
 | 
					        CONFIG_PHY_IPQ_UNIPHY_USB
 | 
				
			||||||
  FILES:= \
 | 
					  FILES:= \
 | 
				
			||||||
        $(LINUX_DIR)/drivers/usb/phy/phy-qca-m31.ko \
 | 
					        $(LINUX_DIR)/drivers/usb/phy/phy-qca-m31.ko \
 | 
				
			||||||
        $(LINUX_DIR)/drivers/phy/qualcomm/phy-qca-uniphy.ko
 | 
					        $(LINUX_DIR)/drivers/phy/phy-qca-uniphy.ko
 | 
				
			||||||
  AUTOLOAD:=$(call AutoLoad,45,phy-qca-m31 phy-qca-uniphy,1)
 | 
					  AUTOLOAD:=$(call AutoLoad,45,phy-qca-m31 phy-qca-uniphy,1)
 | 
				
			||||||
  $(call AddDepends/usb)
 | 
					  $(call AddDepends/usb)
 | 
				
			||||||
endef
 | 
					endef
 | 
				
			||||||
@@ -98,30 +96,13 @@ endef
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
$(eval $(call KernelPackage,usb-phy-ipq5018))
 | 
					$(eval $(call KernelPackage,usb-phy-ipq5018))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
define KernelPackage/usb-f-diag
 | 
					 | 
				
			||||||
  TITLE:=USB DIAG
 | 
					 | 
				
			||||||
  KCONFIG:=CONFIG_USB_F_DIAG \
 | 
					 | 
				
			||||||
        CONFIG_USB_CONFIGFS_F_DIAG=y \
 | 
					 | 
				
			||||||
        CONFIG_DIAG_OVER_USB=y
 | 
					 | 
				
			||||||
  DEPENDS:=+kmod-usb-lib-composite +kmod-usb-configfs
 | 
					 | 
				
			||||||
  FILES:=$(LINUX_DIR)/drivers/usb/gadget/function/usb_f_diag.ko
 | 
					 | 
				
			||||||
  AUTOLOAD:=$(call AutoLoad,52,usb_f_diag)
 | 
					 | 
				
			||||||
  $(call AddPlatformDepends/usb)
 | 
					 | 
				
			||||||
endef
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
define KernelPackage/usb-f-diag/description
 | 
					 | 
				
			||||||
 USB DIAG
 | 
					 | 
				
			||||||
endef
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
$(eval $(call KernelPackage,usb-f-diag))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
define KernelPackage/diag-char
 | 
					define KernelPackage/diag-char
 | 
				
			||||||
  TITLE:=CHAR DIAG
 | 
					  TITLE:=CHAR DIAG
 | 
				
			||||||
  KCONFIG:= CONFIG_DIAG_MHI=y@ge5.4 \
 | 
					  KCONFIG:= CONFIG_DIAG_MHI=y@ge5.4 \
 | 
				
			||||||
          CONFIG_DIAG_OVER_PCIE=n@ge5.4 \
 | 
					          CONFIG_DIAG_OVER_PCIE=n@ge5.4 \
 | 
				
			||||||
          CONFIG_DIAGFWD_BRIDGE_CODE=y \
 | 
					          CONFIG_DIAGFWD_BRIDGE_CODE=y \
 | 
				
			||||||
          CONFIG_DIAG_CHAR
 | 
					          CONFIG_DIAG_CHAR=m
 | 
				
			||||||
  DEPENDS:=+kmod-lib-crc-ccitt +kmod-usb-f-diag
 | 
					  DEPENDS:=+kmod-lib-crc-ccitt
 | 
				
			||||||
  FILES:=$(LINUX_DIR)/drivers/char/diag/diagchar.ko
 | 
					  FILES:=$(LINUX_DIR)/drivers/char/diag/diagchar.ko
 | 
				
			||||||
endef
 | 
					endef
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -131,34 +112,21 @@ endef
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
$(eval $(call KernelPackage,diag-char))
 | 
					$(eval $(call KernelPackage,diag-char))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
define KernelPackage/usb-configfs
 | 
					define KernelPackage/usb-dwc3-qcom
 | 
				
			||||||
 TITLE:= USB functions
 | 
					  TITLE:=DWC3 Qualcomm USB driver
 | 
				
			||||||
  KCONFIG:=CONFIG_USB_CONFIGFS \
 | 
					  DEPENDS:=@(!LINUX_4_14) @TARGET_ipq807x +kmod-usb-dwc3
 | 
				
			||||||
        CONFIG_USB_CONFIGFS_SERIAL=n \
 | 
					  KCONFIG:= CONFIG_USB_DWC3_QCOM
 | 
				
			||||||
        CONFIG_USB_CONFIGFS_ACM=n \
 | 
					  FILES:= $(LINUX_DIR)/drivers/usb/dwc3/dwc3-qcom.ko \
 | 
				
			||||||
        CONFIG_USB_CONFIGFS_OBEX=n \
 | 
					        $(LINUX_DIR)/drivers/usb/dwc3/dbm.ko
 | 
				
			||||||
        CONFIG_USB_CONFIGFS_NCM=n \
 | 
					  AUTOLOAD:=$(call AutoLoad,53,dwc3-qcom dbm,1)
 | 
				
			||||||
        CONFIG_USB_CONFIGFS_ECM=n \
 | 
					  $(call AddDepends/usb)
 | 
				
			||||||
        CONFIG_USB_CONFIGFS_ECM_SUBSET=n \
 | 
					 | 
				
			||||||
        CONFIG_USB_CONFIGFS_RNDIS=n \
 | 
					 | 
				
			||||||
        CONFIG_USB_CONFIGFS_EEM=n \
 | 
					 | 
				
			||||||
        CONFIG_USB_CONFIGFS_MASS_STORAGE=n \
 | 
					 | 
				
			||||||
        CONFIG_USB_CONFIGFS_F_LB_SS=n \
 | 
					 | 
				
			||||||
        CONFIG_USB_CONFIGFS_F_FS=n \
 | 
					 | 
				
			||||||
        CONFIG_USB_CONFIGFS_F_UAC1=n \
 | 
					 | 
				
			||||||
        CONFIG_USB_CONFIGFS_F_UAC2=n \
 | 
					 | 
				
			||||||
        CONFIG_USB_CONFIGFS_F_MIDI=n \
 | 
					 | 
				
			||||||
        CONFIG_USB_CONFIGFS_F_HID=n \
 | 
					 | 
				
			||||||
        CONFIG_USB_CONFIGFS_F_PRINTER=n \
 | 
					 | 
				
			||||||
        CONFIG_USB_CONFIGFS_F_QDSS=n
 | 
					 | 
				
			||||||
  $(call AddPlatformDepends/usb)
 | 
					 | 
				
			||||||
endef
 | 
					endef
 | 
				
			||||||
 | 
					
 | 
				
			||||||
define KernelPackage/usb-configfs/description
 | 
					define KernelPackage/usb-dwc3-qcom/description
 | 
				
			||||||
 USB functions
 | 
					 Some Qualcomm SoCs use DesignWare Core IP for USB2/3 functionality.
 | 
				
			||||||
 | 
					 This driver also handles Qscratch wrapper which is needed for
 | 
				
			||||||
 | 
					 peripheral mode support.
 | 
				
			||||||
endef
 | 
					endef
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$(eval $(call KernelPackage,usb-configfs))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$(eval $(call KernelPackage,usb-dwc3-qcom))
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										25
									
								
								feeds/ipq807x/ipq807x/patches/001-backport_kbuild_fix.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								feeds/ipq807x/ipq807x/patches/001-backport_kbuild_fix.patch
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
				
			|||||||
 | 
					--- a/scripts/Makefile.lib
 | 
				
			||||||
 | 
					+++ b/scripts/Makefile.lib
 | 
				
			||||||
 | 
					@@ -96,10 +96,10 @@ obj-dirs	:= $(addprefix $(obj)/,$(obj-di
 | 
				
			||||||
 | 
					 # Note: Files that end up in two or more modules are compiled without the
 | 
				
			||||||
 | 
					 #       KBUILD_MODNAME definition. The reason is that any made-up name would
 | 
				
			||||||
 | 
					 #       differ in different configs.
 | 
				
			||||||
 | 
					-name-fix = $(subst $(comma),_,$(subst -,_,$1))
 | 
				
			||||||
 | 
					-basename_flags = -D"KBUILD_BASENAME=KBUILD_STR($(call name-fix,$(basetarget)))"
 | 
				
			||||||
 | 
					+name-fix = $(squote)$(quote)$(subst $(comma),_,$(subst -,_,$1))$(quote)$(squote)
 | 
				
			||||||
 | 
					+basename_flags = -DKBUILD_BASENAME=$(call name-fix,$(basetarget))
 | 
				
			||||||
 | 
					 modname_flags  = $(if $(filter 1,$(words $(modname))),\
 | 
				
			||||||
 | 
					-                 -D"KBUILD_MODNAME=KBUILD_STR($(call name-fix,$(modname)))")
 | 
				
			||||||
 | 
					+                 -DKBUILD_MODNAME=$(call name-fix,$(modname)))
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 orig_c_flags   = $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) $(KBUILD_SUBDIR_CCFLAGS) \
 | 
				
			||||||
 | 
					                  $(ccflags-y) $(CFLAGS_$(basetarget).o)
 | 
				
			||||||
 | 
					@@ -155,7 +155,7 @@ endif
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 c_flags        = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(LINUXINCLUDE)     \
 | 
				
			||||||
 | 
					 		 $(__c_flags) $(modkern_cflags)                           \
 | 
				
			||||||
 | 
					-		 -D"KBUILD_STR(s)=\#s" $(basename_flags) $(modname_flags)
 | 
				
			||||||
 | 
					+		 $(basename_flags) $(modname_flags)
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 a_flags        = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(LINUXINCLUDE)     \
 | 
				
			||||||
 | 
					 		 $(__a_flags) $(modkern_aflags)
 | 
				
			||||||
@@ -1,26 +0,0 @@
 | 
				
			|||||||
Index: linux-5.4.164-qsdk-d5fcb18e5420670c8734c6a659873e73adab6dac/arch/arm64/boot/dts/qcom/ipq8074.dtsi
 | 
					 | 
				
			||||||
===================================================================
 | 
					 | 
				
			||||||
--- linux-5.4.164-qsdk-d5fcb18e5420670c8734c6a659873e73adab6dac.orig/arch/arm64/boot/dts/qcom/ipq8074.dtsi
 | 
					 | 
				
			||||||
+++ linux-5.4.164-qsdk-d5fcb18e5420670c8734c6a659873e73adab6dac/arch/arm64/boot/dts/qcom/ipq8074.dtsi
 | 
					 | 
				
			||||||
@@ -1587,7 +1587,7 @@
 | 
					 | 
				
			||||||
 		};
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
 		wifi1: wifi1@c0000000 {
 | 
					 | 
				
			||||||
-			compatible = "qcom,cnss-qca8074v2", "qcom,ipq8074-wifi";
 | 
					 | 
				
			||||||
+			compatible = "qcom,ipq8074-wifi";
 | 
					 | 
				
			||||||
 			reg = <0xc000000 0x2000000>;
 | 
					 | 
				
			||||||
 			qcom,hw-mode-id = <1>;
 | 
					 | 
				
			||||||
 		#ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
					 | 
				
			||||||
Index: linux-5.4.164-qsdk-d5fcb18e5420670c8734c6a659873e73adab6dac/arch/arm64/boot/dts/qcom/ipq6018.dtsi
 | 
					 | 
				
			||||||
===================================================================
 | 
					 | 
				
			||||||
--- linux-5.4.164-qsdk-d5fcb18e5420670c8734c6a659873e73adab6dac.orig/arch/arm64/boot/dts/qcom/ipq6018.dtsi
 | 
					 | 
				
			||||||
+++ linux-5.4.164-qsdk-d5fcb18e5420670c8734c6a659873e73adab6dac/arch/arm64/boot/dts/qcom/ipq6018.dtsi
 | 
					 | 
				
			||||||
@@ -1561,7 +1561,7 @@
 | 
					 | 
				
			||||||
 		};
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
 		wifi0: wifi@c000000 {
 | 
					 | 
				
			||||||
-			compatible = "qcom,cnss-qca6018", "qcom,ipq6018-wifi";
 | 
					 | 
				
			||||||
+			compatible = "qcom,ipq6018-wifi";
 | 
					 | 
				
			||||||
 			reg = <0xc000000 0x1000000>;
 | 
					 | 
				
			||||||
 			qcom,hw-mode-id = <1>;
 | 
					 | 
				
			||||||
 #ifdef __IPQ_MEM_PROFILE_256_MB__
 | 
					 | 
				
			||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user