mirror of
				https://github.com/Telecominfraproject/wlan-ap.git
				synced 2025-10-31 02:17:58 +00:00 
			
		
		
		
	Compare commits
	
		
			374 Commits
		
	
	
		
			v2.6.0-rc1
			...
			v2.9.0-rc3
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 71fc375a72 | ||
|   | 95bfa265ee | ||
|   | c0cf066900 | ||
|   | 6462efd6bc | ||
|   | 0bce7dc7a4 | ||
|   | a3f0fb23b7 | ||
|   | b9d20e083c | ||
|   | 725899248a | ||
|   | c8685f2352 | ||
|   | 7d10d77e35 | ||
|   | 96c391eaac | ||
|   | c700795895 | ||
|   | 8bcb4c2063 | ||
|   | fce075bd2c | ||
|   | ea95356ebd | ||
|   | 8111566f35 | ||
|   | c952b34858 | ||
|   | 792e3a8a2e | ||
|   | ae75067938 | ||
|   | 81b66ad44b | ||
|   | e193250291 | ||
|   | dc0dae6284 | ||
|   | 7c535de60d | ||
|   | 26192989cd | ||
|   | 317aaadcbd | ||
|   | c670733ea5 | ||
|   | f92617f24a | ||
|   | 337a68cf1d | ||
|   | e09633fc2a | ||
|   | d838391850 | ||
|   | d59e58b794 | ||
|   | ee7bf9671a | ||
|   | c4f0f367bc | ||
|   | 5f649ea1f4 | ||
|   | 397c6df34a | ||
|   | 7a37e9bf0b | ||
|   | e4ed881dd7 | ||
|   | 9aff26b7fb | ||
|   | 5603442a37 | ||
|   | 8a86ae3b7d | ||
|   | 9997af10a5 | ||
|   | 5fec90d4ca | ||
|   | f1a56edd09 | ||
|   | 3f03cfa7c4 | ||
|   | f34db0bb24 | ||
|   | 94d154c628 | ||
|   | 071962440e | ||
|   | 5171b52570 | ||
|   | fb282e2aff | ||
|   | 5013b9c7fe | ||
|   | 0e2fcfcb95 | ||
|   | a7ea6ef398 | ||
|   | b4a2291dce | ||
|   | 9348c426e5 | ||
|   | 678c4db8f0 | ||
|   | e979df64d1 | ||
|   | 43fa167f14 | ||
|   | 2a8858a3a2 | ||
|   | 977d16557a | ||
|   | 3db254c306 | ||
|   | 9274c3a719 | ||
|   | 993ff2624e | ||
|   | 60f6565d18 | ||
|   | 924d30af74 | ||
|   | c55d19c3c5 | ||
|   | 9221c3e7e7 | ||
|   | eb862cf2d2 | ||
|   | 1e3cef1a26 | ||
|   | 50fd49fd3d | ||
|   | 8e8a763485 | ||
|   | ab47566e82 | ||
|   | e9a834c205 | ||
|   | 6dc524e67b | ||
|   | b61b3aa06f | ||
|   | b9d43eb897 | ||
|   | c069ba71cc | ||
|   | df01a9acc0 | ||
|   | e0aa0eec98 | ||
|   | 2a145ba46a | ||
|   | 9f34e57df8 | ||
|   | 9c8affad09 | ||
|   | cd76797336 | ||
|   | feb26f21fd | ||
|   | 5ff23ce3cf | ||
|   | cacb8a23dd | ||
|   | f5604d42f6 | ||
|   | 8f74933b37 | ||
|   | 2d92eeab07 | ||
|   | c44ab8b4e6 | ||
|   | d3ad594940 | ||
|   | 8f53da4f79 | ||
|   | 1cc9673e8c | ||
|   | 258e484d5f | ||
|   | 7edbe99599 | ||
|   | fbcfddfbdc | ||
|   | 0e75b82eb6 | ||
|   | 492db67f64 | ||
|   | 6129f525d5 | ||
|   | 2ec381534e | ||
|   | 29d6d9f1ea | ||
|   | a530af9354 | ||
|   | e42fd1e3a4 | ||
|   | 30cfc34e1c | ||
|   | 0737a706ec | ||
|   | b3589c92dc | ||
|   | 0f40cb8e77 | ||
|   | a051edcd00 | ||
|   | 18b19c92be | ||
|   | a2eabf35e3 | ||
|   | 0dfe43f1e6 | ||
|   | 20cda84f47 | ||
|   | 0228173d53 | ||
|   | 0db604ad1e | ||
|   | c53d342b6a | ||
|   | 42e77e6f5a | ||
|   | e8bd819e39 | ||
|   | 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-us', 'cig_wf196-ca', 'cig_wf610d', 'cig_wf660a', '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 | ||||||
|   | |||||||
| @@ -14,3 +14,4 @@ patch_folders: | |||||||
|   - patches/ipq807x |   - patches/ipq807x | ||||||
|   - patches/rtkmipsel |   - patches/rtkmipsel | ||||||
|   - patches/rest |   - patches/rest | ||||||
|  |   - patches/x86 | ||||||
|   | |||||||
| @@ -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,29 @@ 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" | ||||||
| 		;; | 		;; | ||||||
|  |        cig,wf660a) | ||||||
|  |                 ucidef_set_interface_lan "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 +85,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 | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -75,14 +99,32 @@ qcom_setup_macs() | |||||||
| 	local board="$1" | 	local board="$1" | ||||||
|  |  | ||||||
| 	case $board in | 	case $board in | ||||||
|  | 	cig,wf188n|\ | ||||||
| 	cig,wf194c|\ | 	cig,wf194c|\ | ||||||
| 	cig,wf194c4|\ | 	cig,wf194c4) | ||||||
| 	cig,wf196) | 		mtd=$(find_mtd_chardev "0:APPSBLENV") | ||||||
| 		mac=$(grep BaseMacAddress= /dev/mtd14 | cut -dx -f2) | 		[ -z "$mtd" ] && return; | ||||||
|  | 		mac=$(grep BaseMacAddress= $mtd | cut -dx -f2) | ||||||
|  | 		[ -z "$mac" ] && return; | ||||||
| 		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) | ||||||
|  | 		mtd=$(find_mtd_chardev "0:APPSBLENV") | ||||||
|  | 		[ -z "$mtd" ] && return; | ||||||
|  | 		mac=$(grep BaseMacAddress= $mtd | cut -dx -f2) | ||||||
|  | 		[ -z "$mac" ] && return; | ||||||
|  | 		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 +136,25 @@ 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) | ||||||
|  | 		;; | ||||||
|  | 	yuncore,fap650) | ||||||
|  | 		wan_mac=$(cat /sys/class/net/eth4/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 | ||||||
| @@ -61,6 +70,9 @@ caldata_extract() { | |||||||
|         local mtd |         local mtd | ||||||
|  |  | ||||||
|         mtd=$(find_mtd_chardev $part) |         mtd=$(find_mtd_chardev $part) | ||||||
|  |         if [ -z "$mtd" ]; then                                  | ||||||
|  |                 mtd=/dev/$(echo $(find_mmc_part $part) | sed 's/^.\{5\}//') | ||||||
|  |         fi                	 | ||||||
|         [ -n "$mtd" ] || caldata_die "no mtd device found for partition $part" |         [ -n "$mtd" ] || caldata_die "no mtd device found for partition $part" | ||||||
|  |  | ||||||
|         dd if=$mtd of=/lib/firmware/$FIRMWARE iflag=skip_bytes bs=$count skip=$offset count=1 2>/dev/null || \ |         dd if=$mtd of=/lib/firmware/$FIRMWARE iflag=skip_bytes bs=$count skip=$offset count=1 2>/dev/null || \ | ||||||
| @@ -77,11 +89,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 | ||||||
| 		;; | 		;; | ||||||
| @@ -91,14 +105,24 @@ case "$FIRMWARE" in | |||||||
| 	case "$board" in | 	case "$board" in | ||||||
| 	cig,wf188|\ | 	cig,wf188|\ | ||||||
| 	cig,wf188n|\ | 	cig,wf188n|\ | ||||||
|  | 	cig,wf660a|\ | ||||||
| 	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 +131,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 +180,33 @@ 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,wf660a|\ | ||||||
| 	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,11 +20,72 @@ 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_cig() { | ||||||
|  |         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_1' $board_dir kernel | ||||||
|  |         do_flash_emmc $tar_file 'rootfs_1' $board_dir root | ||||||
|  |  | ||||||
|  |         local emmcblock="$(find_mmc_part "rootfs_data")" | ||||||
|  |         if [ -e "$emmcblock" ]; then | ||||||
|  |                 mkfs.ext4 -F "$emmcblock" | ||||||
|  |         fi | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  | 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) | ||||||
| 	case $board in | 	case $board in | ||||||
| 	cig,wf188|\ | 	cig,wf188|\ | ||||||
|  | 	cig,wf660a|\ | ||||||
| 	cig,wf188n|\ | 	cig,wf188n|\ | ||||||
| 	cig,wf194c|\ | 	cig,wf194c|\ | ||||||
| 	cig,wf194c4|\ | 	cig,wf194c4|\ | ||||||
| @@ -31,17 +93,29 @@ 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|\ | ||||||
|  | 	yuncore,fap650|\ | ||||||
|  | 	motorola,q14|\ | ||||||
|  | 	muxi,ap3220l|\ | ||||||
| 	qcom,ipq6018-cp01|\ | 	qcom,ipq6018-cp01|\ | ||||||
| 	qcom,ipq807x-hk01|\ | 	qcom,ipq807x-hk01|\ | ||||||
| 	qcom,ipq807x-hk14|\ | 	qcom,ipq807x-hk14|\ | ||||||
| @@ -62,14 +136,22 @@ platform_do_upgrade() { | |||||||
| 	cig,wf188) | 	cig,wf188) | ||||||
| 		qca_do_upgrade $1 | 		qca_do_upgrade $1 | ||||||
| 		;; | 		;; | ||||||
|  | 	cig,wf660a) | ||||||
|  | 		emmc_do_upgrade_cig $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|\ | ||||||
| @@ -77,11 +159,16 @@ platform_do_upgrade() { | |||||||
| 	wallys,dr6018|\ | 	wallys,dr6018|\ | ||||||
| 	wallys,dr6018-v4|\ | 	wallys,dr6018-v4|\ | ||||||
| 	yuncore,ax840|\ | 	yuncore,ax840|\ | ||||||
|  | 	yuncore,fap650|\ | ||||||
| 	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 +179,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 +191,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 +205,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" | ||||||
|   | |||||||
| @@ -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-cig-wf660a.dts" | ||||||
|  | #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,31 +512,26 @@ | |||||||
| 			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>; | ||||||
| @@ -514,108 +540,11 @@ | |||||||
| 	}; | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| 	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 | ||||||
|   | |||||||
| @@ -0,0 +1,590 @@ | |||||||
|  | /* | ||||||
|  |  * 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 <dt-bindings/input/input.h> | ||||||
|  | #include <dt-bindings/gpio/gpio.h> | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	#address-cells = <0x2>; | ||||||
|  | 	#size-cells = <0x2>; | ||||||
|  | 	compatible = "cig,wf660a", "qcom,ipq6018-cp01", "qcom,ipq6018"; | ||||||
|  | 	interrupt-parent = <&intc>; | ||||||
|  | 	qcom,msm-id = <0x192 0x0>, <0x193 0x0>; | ||||||
|  |  | ||||||
|  | 	aliases { | ||||||
|  | 		serial0 = &blsp1_uart3; | ||||||
|  | 		serial1 = &blsp1_uart2; | ||||||
|  | 		sdhc1 = &sdhc_1; | ||||||
|  | 		/* | ||||||
|  | 		 * 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"; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	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 | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &tlmm { | ||||||
|  | 	pinctrl-0 = <&sd_ldo_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; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	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; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	sd_pins: sd_pins { | ||||||
|  | 		mux { | ||||||
|  | 			pins = "gpio62"; | ||||||
|  | 			function = "sd_card"; | ||||||
|  | 			drive-strength = <8>; | ||||||
|  | 			bias-pull-up; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	extcon_usb_pins: extcon_usb_pins { | ||||||
|  | 		mux { | ||||||
|  | 			pins = "gpio26"; | ||||||
|  | 			function = "gpio"; | ||||||
|  | 			drive-strength = <2>; | ||||||
|  | 			bias-pull-down; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	button_pins: button_pins { | ||||||
|  | 		wps_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; | ||||||
|  | 		}; | ||||||
|  | 		led_usb0 { | ||||||
|  | 			pins = "gpio50"; | ||||||
|  | 			function = "gpio"; | ||||||
|  | 			drive-strength = <8>; | ||||||
|  | 			bias-pull-down; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	hsuart_pins: hsuart_pins { | ||||||
|  | 		mux { | ||||||
|  | 			pins = "gpio71", "gpio72"; | ||||||
|  | 			function = "blsp1_uart"; | ||||||
|  | 			drive-strength = <8>; | ||||||
|  | 			bias-disable; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	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; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | 	pwm_pins: pwm_pinmux { | ||||||
|  |         mux_1 { | ||||||
|  |                 pins = "gpio22"; | ||||||
|  |                 function = "pwm02"; | ||||||
|  |                 drive-strength = <8>; | ||||||
|  |         }; | ||||||
|  | 		mux_2 { | ||||||
|  | 			pins = "gpio23"; | ||||||
|  |             function = "pwm12"; | ||||||
|  |             drive-strength = <8>; | ||||||
|  | 		}; | ||||||
|  | 		mux_3 { | ||||||
|  | 			pins = "gpio24"; | ||||||
|  |             function = "pwm22"; | ||||||
|  |             drive-strength = <8>; | ||||||
|  | 		}; | ||||||
|  | 		 | ||||||
|  |         }; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &soc { | ||||||
|  | 	pwm { | ||||||
|  |                 pinctrl-0 = <&pwm_pins>; | ||||||
|  |                 pinctrl-names = "default"; | ||||||
|  |                 used-pwm-indices = <1>, <1>, <1>, <0>; | ||||||
|  |                 status = "ok"; | ||||||
|  |         }; | ||||||
|  | 	extcon_usb: extcon_usb { | ||||||
|  | 		pinctrl-0 = <&extcon_usb_pins>; | ||||||
|  | 		pinctrl-names = "default"; | ||||||
|  | 		id-gpio = <&tlmm 26 GPIO_ACTIVE_LOW>; | ||||||
|  | 		status = "ok"; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	mdio: 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 = <0x1c>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	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 = <28>; | ||||||
|  | 		phy-mode = "sgmii"; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	nss-macsec0 { | ||||||
|  | 		compatible = "qcom,nss-macsec"; | ||||||
|  | 		phy_addr = <0x1c>; | ||||||
|  | 		phy_access_mode = <0>; | ||||||
|  | 		mdiobus = <&mdio>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	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 = <0xf>; /* mac mode for uniphy instance1*/ | ||||||
|  | 		switch_mac_mode2 = <0xff>; /* mac mode for uniphy instance2*/ | ||||||
|  | 		qcom,port_phyinfo { | ||||||
|  | 			port@0 { | ||||||
|  | 				port_id = <1>; | ||||||
|  | 				phy_address = <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 = <0x1c>; | ||||||
|  | 				port_mac_sel = "QGMAC_PORT"; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpio_keys { | ||||||
|  | 		compatible = "gpio-keys"; | ||||||
|  | 		pinctrl-0 = <&button_pins>; | ||||||
|  | 		pinctrl-names = "default"; | ||||||
|  |  | ||||||
|  | 		wps { | ||||||
|  | 			label = "wps"; | ||||||
|  | 			linux,code = <KEY_WPS_BUTTON>; | ||||||
|  | 			gpios = <&tlmm 9 GPIO_ACTIVE_LOW>; | ||||||
|  | 			linux,input-type = <1>; | ||||||
|  | 			debounce-interval = <60>; | ||||||
|  | 		}; | ||||||
|  | 		reset { | ||||||
|  | 			label = "reset"; | ||||||
|  | 			linux,code = <KEY_POWER>; | ||||||
|  | 			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@35 { | ||||||
|  | 			label = "led_5g"; | ||||||
|  | 			gpios = <&tlmm 35 GPIO_ACTIVE_HIGH>; | ||||||
|  | 			linux,default-trigger = "led_5g"; | ||||||
|  | 			default-state = "off"; | ||||||
|  | 		}; | ||||||
|  | 		led@37 { | ||||||
|  | 			label = "led_2g"; | ||||||
|  | 			gpios = <&tlmm 37 GPIO_ACTIVE_HIGH>; | ||||||
|  | 			linux,default-trigger = "led_2g"; | ||||||
|  | 			default-state = "off"; | ||||||
|  | 		}; | ||||||
|  | 		led@50 { | ||||||
|  | 			label = "led_usb0"; | ||||||
|  | 			gpios = <&tlmm 50 GPIO_ACTIVE_HIGH>; | ||||||
|  | 			linux,default-trigger = "usb-host"; | ||||||
|  | 			default-state = "off"; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | i2c_4: i2c@78b9000 { | ||||||
|  | 	compatible = "qcom,i2c-qup-v2.2.1"; | ||||||
|  | 	#address-cells = <1>; | ||||||
|  | 	#size-cells = <0>; | ||||||
|  | 	reg = <0x78b9000 0x600>; | ||||||
|  | 	interrupts = <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>; | ||||||
|  | 	clocks = <&gcc GCC_BLSP1_AHB_CLK>,<&gcc GCC_BLSP1_QUP5_I2C_APPS_CLK>; | ||||||
|  | 	clock-names = "iface", "core"; | ||||||
|  | 	clock-frequency  = <100000>; | ||||||
|  | 	dmas = <&blsp_dma 21>, <&blsp_dma 20>; | ||||||
|  | 	dma-names = "rx", "tx"; | ||||||
|  | 	status = "disabled"; | ||||||
|  | }; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &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 = <&hsuart_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	status = "ok"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &spi_1 { /* BLSP1 QUP1 */ | ||||||
|  | 	pinctrl-0 = <&spi_1_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	cs-select = <0>; | ||||||
|  | 	quartz-reset-gpio = <&tlmm 79 1>; | ||||||
|  | 	status = "disabled"; | ||||||
|  | 	spidev1: spi@1 { | ||||||
|  | 		compatible = "qca,spidev"; | ||||||
|  | 		reg = <0>; | ||||||
|  | 		spi-max-frequency = <24000000>; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  |  | ||||||
|  | &qpic_bam { | ||||||
|  | 	status = "ok"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &nand { | ||||||
|  | 	pinctrl-0 = <&qpic_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	status = "disable"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &ssphy_0 { | ||||||
|  | 	status = "ok"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &qusb_phy_0 { | ||||||
|  | 	status = "ok"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &qusb_phy_1 { | ||||||
|  | 	status = "ok"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usb2 { | ||||||
|  | 	status = "ok"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usb3 { | ||||||
|  | 	status = "ok"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &nss_crypto { | ||||||
|  | 	status = "ok"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &pcie_phy { | ||||||
|  | 	status = "ok"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &pcie0 { | ||||||
|  | #if defined(__CNSS2__) | ||||||
|  | 	status = "ok"; | ||||||
|  | #endif | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &qpic_lcd { | ||||||
|  | 	status = "ok"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &qpic_lcd_panel { | ||||||
|  | 	status = "ok"; | ||||||
|  | }; | ||||||
							
								
								
									
										120
									
								
								feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-cig-wf660a.dts
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										120
									
								
								feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-cig-wf660a.dts
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,120 @@ | |||||||
|  | /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-cig-wf660a-cp01.dtsi" | ||||||
|  | #include "qcom-ipq6018-rpm-regulator.dtsi" | ||||||
|  | #include "qcom-ipq6018-cpr-regulator.dtsi" | ||||||
|  | #include "qcom-ipq6018-cp-cpu.dtsi" | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	model = "Cigtech WF-660a"; | ||||||
|  |  | ||||||
|  | 	/* | ||||||
|  | 	 * +=========+==============+========================+ | ||||||
|  | 	 * |        |              |                         | | ||||||
|  | 	 * | 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_0_pins: i2c_0_pins { | ||||||
|  | 		mux { | ||||||
|  | 			pins = "gpio69", "gpio70"; | ||||||
|  | 			function = "blsp1_i2c"; | ||||||
|  | 			drive-strength = <8>; | ||||||
|  | 			bias-pull-down; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | 	i2c_1_pins: i2c_1_pins { | ||||||
|  | 		mux { | ||||||
|  | 			pins = "gpio42", "gpio43"; | ||||||
|  | 			function = "blsp2_i2c"; | ||||||
|  | 			drive-strength = <8>; | ||||||
|  | 			bias-pull-down; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | 	i2c_4_pins: i2c_4_pins { | ||||||
|  | 		mux { | ||||||
|  | 			pins = "gpio55", "gpio56"; | ||||||
|  | 			function = "blsp4_i2c"; | ||||||
|  | 			drive-strength = <8>; | ||||||
|  | 			bias-pull-down; | ||||||
|  | 		}; | ||||||
|  | 	};	 | ||||||
|  | 	 | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &i2c_0 { | ||||||
|  | 	pinctrl-0 = <&i2c_0_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	status = "ok"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  |  | ||||||
|  | &i2c_1 { | ||||||
|  | 	pinctrl-0 = <&i2c_1_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	status = "ok"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &i2c_4 { | ||||||
|  | 	pinctrl-0 = <&i2c_4_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	status = "ok"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &sdhc_1 { | ||||||
|  | 	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,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>; | ||||||
| }; | }; | ||||||
|   | |||||||
							
								
								
									
										356
									
								
								feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-hfcl-ion4x.dts
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										356
									
								
								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"; |  | ||||||
| 	}; |  | ||||||
|  |  | ||||||
| 	chosen { | /* TZAPP is enabled in default memory profile only */ | ||||||
| 		stdout-path = "serial0:115200n8"; | #if !defined(__IPQ_MEM_PROFILE_256_MB__) && !defined(__IPQ_MEM_PROFILE_512_MB__) | ||||||
| 		bootargs-append = " swiotlb=1"; | 	reserved-memory { | ||||||
|  | 		tzapp:tzapp@49B00000 {	/* TZAPPS */ | ||||||
|  | 			no-map; | ||||||
|  | 			reg = <0x0 0x49B00000 0x0 0x00600000>; | ||||||
| 		}; | 		}; | ||||||
| 	}; | 	}; | ||||||
|  | #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; |                         bias-pull-down; | ||||||
|                 }; |                 }; | ||||||
| 		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 { | &i2c_1 { | ||||||
| 		mux_0 { | 	pinctrl-0 = <&i2c_1_pins>; | ||||||
| 			pins = "gpio51"; | 	pinctrl-names = "default"; | ||||||
| 			function = "pta1_1"; | 	status = "ok"; | ||||||
| 			drive-strength = <6>; |  | ||||||
| 			bias-pull-down; | 	lm75@48 { | ||||||
| 		}; | 		compatible = "lm75"; | ||||||
| 		mux_1 { | 		reg = <0x48>; | ||||||
| 			pins = "gpio53"; | 		status = "okay"; | ||||||
| 			function = "pta1_0"; |  | ||||||
| 			drive-strength = <6>; |  | ||||||
| 			bias-pull-down; |  | ||||||
| 		}; |  | ||||||
| 		mux_2 { |  | ||||||
| 			pins = "gpio52"; |  | ||||||
| 			function = "pta1_2"; |  | ||||||
| 			drive-strength = <6>; |  | ||||||
| 			bias-pull-down; |  | ||||||
| 	}; | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | &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 { | &soc { | ||||||
| 	mdio: mdio@90000 { |  | ||||||
| 		pinctrl-0 = <&mdio_pins>; |  | ||||||
| 		pinctrl-names = "default"; |  | ||||||
| 		phy-reset-gpio = <&tlmm 77 0>; |  | ||||||
| 		status = "ok"; |  | ||||||
| 		phy0: ethernet-phy@0 { |  | ||||||
| 			reg = <4>; |  | ||||||
| 		}; |  | ||||||
| 		phy1: ethernet-phy@1 { |  | ||||||
| 			reg = <30>; |  | ||||||
| 		}; |  | ||||||
| 	}; |  | ||||||
|  |  | ||||||
| 	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 = <4>; |  | ||||||
| 		phy-mode = "sgmii"; |  | ||||||
| 	}; |  | ||||||
|  |  | ||||||
| 	dp2 { |  | ||||||
| 		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 = <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"; |  | ||||||
|  |  | ||||||
| 		reset { |  | ||||||
| 			label = "reset"; |  | ||||||
| 			linux,code = <KEY_RESTART>; |  | ||||||
| 			gpios = <&tlmm 53 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>; | ||||||
| @@ -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>; | 	}; | ||||||
| 	}; | }; | ||||||
| }; |  | ||||||
|  | /* TZAPP is enabled in default memory profile only */ | ||||||
| &pcie_phy { | #if !defined(__IPQ_MEM_PROFILE_256_MB__) && !defined(__IPQ_MEM_PROFILE_512_MB__) | ||||||
| 	status = "ok"; | &qseecom { | ||||||
| }; | 	mem-start = <0x49B00000>; | ||||||
|  | 	mem-size = <0x600000>; | ||||||
| &pcie0 { |  | ||||||
| 	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 = "Yuncore FAP650"; | ||||||
|  | 	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/dp5"; | ||||||
|  | 		ethernet1 = "/soc/dp4"; | ||||||
|  | 		ethernet2 = "/soc/dp3"; | ||||||
|  | 		ethernet3 = "/soc/dp2"; | ||||||
|  | 		ethernet4 = "/soc/dp1"; | ||||||
|  |  | ||||||
|  | 		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,86 @@ | |||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 	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 = <0>; | ||||||
|  | 			gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		usb-hub-enable { | ||||||
|  | 			gpio-export,name = "usb-hub-enable"; | ||||||
|  | 			gpio-export,output = <1>; | ||||||
|  | 			gpios = <&tlmm 55 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		usb-rear-power { | ||||||
|  | 			gpio-export,name = "usb-rear-power"; | ||||||
|  | 			gpio-export,output = <1>; | ||||||
|  | 			gpios = <&tlmm 29 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		usb-side-power { | ||||||
|  | 			gpio-export,name = "usb-side-power"; | ||||||
|  | 			gpio-export,output = <1>; | ||||||
|  | 			gpios = <&tlmm 30 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &tlmm { | ||||||
|  | 	pinctrl-0 = <&mcu_rst &mcu_rsv &usb_rear_pwr &usb_side_pwr &usb_hub_rst>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  |  | ||||||
|  | 	mcu_rst: mcu_rst_pins { | ||||||
|  | 		pins = "gpio54"; | ||||||
| 		function = "gpio"; | 		function = "gpio"; | ||||||
| 		drive-strength = <8>; | 		drive-strength = <8>; | ||||||
| 					bias-pull-up; | 		bias-disable; | ||||||
| 				}; | 		output-low; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 			usb_mux_sel_pins: usb_mux_pins { | 	mcu_rsv: mcu_rsv_pins { | ||||||
| 				mux { | 		pins = "gpio56"; | ||||||
| 					pins = "gpio27"; |  | ||||||
| 		function = "gpio"; | 		function = "gpio"; | ||||||
| 		drive-strength = <8>; | 		drive-strength = <8>; | ||||||
| 					bias-pull-down; | 		bias-disable; | ||||||
| 				}; |  | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 			pcie0_pins: pcie_pins { | 	usb_rear_pwr: usb_rear_pwr_pins { | ||||||
| 				pcie0_rst { | 		pins = "gpio29"; | ||||||
| 					pins = "gpio58"; | 		function = "gpio"; | ||||||
| 					function = "pcie0_rst"; |  | ||||||
| 		drive-strength = <8>; | 		drive-strength = <8>; | ||||||
| 					bias-pull-down; | 		bias-disable; | ||||||
|  | 		output-high; | ||||||
| 	}; | 	}; | ||||||
| 				pcie0_wake { |  | ||||||
| 					pins = "gpio59"; | 	usb_side_pwr: usb_side_pwr_pins { | ||||||
| 					function = "pcie0_wake"; | 		pins = "gpio30"; | ||||||
|  | 		function = "gpio"; | ||||||
| 		drive-strength = <8>; | 		drive-strength = <8>; | ||||||
| 					bias-pull-down; | 		bias-disable; | ||||||
|  | 		output-high; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
|  | 	usb_hub_rst: usb_hub_rst_pins { | ||||||
|  | 		pins = "gpio55"; | ||||||
|  | 		function = "gpio"; | ||||||
|  | 		drive-strength = <8>; | ||||||
|  | 		bias-disable; | ||||||
|  | 		output-high; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 	mdio_pins: mdio_pinmux { | 	mdio_pins: mdio_pinmux { | ||||||
| @@ -88,16 +148,116 @@ | |||||||
| 			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; | ||||||
| @@ -105,92 +265,14 @@ | |||||||
| 	}; | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| 		serial@78b3000 { | &soc { | ||||||
| 			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"; |  | ||||||
| 		}; |  | ||||||
|  |  | ||||||
| 	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 +284,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 +599,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 +610,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,14 +717,122 @@ | |||||||
| 	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 { | ||||||
| @@ -682,12 +916,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"; | ||||||
|  | 		#else | ||||||
|  | 			bootargs-append = " swiotlb=1 coherent_pool=2M"; | ||||||
| 		#endif | 		#endif | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 	soc { |  | ||||||
|  |  | ||||||
| 		dp1 { |  | ||||||
| 			device_type = "network"; |  | ||||||
| 			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 { | &tlmm { | ||||||
| 			device_type = "network"; | 	leds_pins: leds_pinmux { | ||||||
| 			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 { | 		led1_yellow { | ||||||
| 			button_pins: button_pins { | 			pins = "gpio25"; | ||||||
| 				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"; | ||||||
|  | 		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 = <8>; | ||||||
|  | 		phy-mode = "sgmii"; | ||||||
|  | 	}; | ||||||
|  | 	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"; |        pinctrl-names = "default"; | ||||||
|        status = "ok"; |        status = "ok"; | ||||||
|  |  | ||||||
| 			button@1 { |  | ||||||
| 				label = "reset"; |  | ||||||
| 				linux,code = <KEY_RESTART>; |  | ||||||
| 				gpios = <&tlmm 57 GPIO_ACTIVE_LOW>; |  | ||||||
| 				linux,input-type = <1>; |  | ||||||
| 				debounce-interval = <60>; |  | ||||||
| 			}; |  | ||||||
| }; | }; | ||||||
|  |  | ||||||
| 		leds { | &spi_0 { /* BLSP1 QUP1 */ | ||||||
| 			compatible = "gpio-leds"; | 	pinctrl-0 = <&spi_0_pins>; | ||||||
| 			pinctrl-0 = <&leds_pins>; |  | ||||||
| 	pinctrl-names = "default"; | 	pinctrl-names = "default"; | ||||||
|  | 	cs-select = <0>; | ||||||
|  | 	status = "ok"; | ||||||
|  |  | ||||||
| 			led@25 { | 	m25p80@0 { | ||||||
| 				label = "led1_yellow"; | 		#address-cells = <1>; | ||||||
| 				gpios = <&tlmm 25 GPIO_ACTIVE_HIGH>; | 		#size-cells = <1>; | ||||||
| 				linux,default-trigger = "led1_yellow"; | 		reg = <0>; | ||||||
| 				default-state = "off"; | 		compatible = "n25q128a11"; | ||||||
|  | 		linux,modalias = "m25p80", "n25q128a11"; | ||||||
|  | 		spi-max-frequency = <50000000>; | ||||||
|  | 		use-default-sizes; | ||||||
|  | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| 			led@28 { | &serial_blsp2 { | ||||||
| 				label = "led1_green"; | 	pinctrl-0 = <&hsuart_pins>; | ||||||
| 				gpios = <&tlmm 28 GPIO_ACTIVE_HIGH>; | 	pinctrl-names = "default"; | ||||||
| 				linux,default-trigger = "led1_green"; | 	status = "ok"; | ||||||
| 				default-state = "off"; |  | ||||||
| }; | }; | ||||||
|  |  | ||||||
| 			led@29 { | &msm_imem { | ||||||
| 				label = "led2_amber"; | 	status = "disabled"; | ||||||
| 				gpios = <&tlmm 29 GPIO_ACTIVE_HIGH>; |  | ||||||
| 				linux,default-trigger = "led2_amber"; |  | ||||||
| 				default-state = "off"; |  | ||||||
| }; | }; | ||||||
|  |  | ||||||
| 			led@32 { | &ssphy_0 { | ||||||
| 				label = "led2_blue"; | 	status = "ok"; | ||||||
| 				gpio = <&tlmm 32 GPIO_ACTIVE_HIGH>; |  | ||||||
| 				linux,default-trigger = "led2_blue"; |  | ||||||
| 				default-state = "off"; |  | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | &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,6 +584,52 @@ | |||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
|  | 	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>; | ||||||
| @@ -489,4 +637,118 @@ | |||||||
| 		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>; | ||||||
| @@ -560,4 +637,118 @@ | |||||||
| 		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 { | ||||||
|  | 		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"; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
| 		pwm { | &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"; | 	status = "disabled"; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| 		qti_mdss_qpic@7980000 { | &sdhc_1 { | ||||||
| 			status = "disabled"; | 	qcom,clk-rates = <400000 25000000 50000000 100000000 \ | ||||||
|  | 			 192000000 384000000>; | ||||||
|  | 	qcom,bus-speed-mode = "HS400_1p8v", "HS200_1p8v", "DDR_1p8v"; | ||||||
|  | 	qcom,nonremovable; | ||||||
|  | 	status = "ok"; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| 		qti_mdss_qpic_panel { | &qpic_bam { | ||||||
| 			status = "disabled"; | 	status = "ok"; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| 		i2c@78b6000 { | &nand { | ||||||
| 			status = "disabled"; | 	pinctrl-0 = <&qpic_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	status = "ok"; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| 		sdhci@7824900 { | &sdhc_2 { | ||||||
| 			status = "disabled"; | 	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,23 @@ | |||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 	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 | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpio-export { | ||||||
|  | 		compatible = "gpio-export"; | ||||||
|  | 		#size-cells = <0>; | ||||||
|  |  | ||||||
|  | 		mcu-enable { | ||||||
|  | 			gpio-export,name = "mcu-enable"; | ||||||
|  | 			gpio-export,output = <0>; | ||||||
|  | 			gpios = <&tlmm 34 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		}; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 	reserved-memory { | 	reserved-memory { | ||||||
| @@ -57,27 +94,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,55 +139,42 @@ | |||||||
| 	 * +--------+--------------+-------------------------+ | 	 * +--------+--------------+-------------------------+ | ||||||
| 	 * | 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 = <&mcu_rst>; | ||||||
| 			button_pins: button_pins { | 	pinctrl-names = "default"; | ||||||
| 				wps_button { |  | ||||||
| 					pins = "gpio67"; | 	mcu_rst: mcu_rst_pins { | ||||||
|  | 		pins = "gpio34"; | ||||||
| 		function = "gpio"; | 		function = "gpio"; | ||||||
| 		drive-strength = <8>; | 		drive-strength = <8>; | ||||||
| 					bias-pull-up; | 		bias-disable; | ||||||
| 				}; | 		output-low; | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			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 { | ||||||
| @@ -167,21 +190,116 @@ | |||||||
| 			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; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	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; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	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 { | ||||||
| 			pins = "gpio25"; | 			pins = "gpio25"; | ||||||
| @@ -204,91 +322,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; | ||||||
|  | 		}; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 		serial@78b3000 { | 	pwm_pins: pwm_pinmux { | ||||||
| 			status = "ok"; | 		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>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| 		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 +405,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 +715,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 +811,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>; | 	nss-macsec1 { | ||||||
| 			local-mac-address = [000000000000]; | 		compatible = "qcom,nss-macsec"; | ||||||
| 			qcom,link-poll = <1>; | 		phy_addr = <0x1c>; | ||||||
| 			qcom,phy-mdio-addr = <0>; | 		phy_access_mode = <0>; | ||||||
| 			phy-mode = "sgmii"; | 		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 +982,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 +1002,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 +1017,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,18 @@ | |||||||
| KERNEL_LOADADDR := 0x41008000 | KERNEL_LOADADDR := 0x41008000 | ||||||
|  |  | ||||||
|  | DEVICE_VARS += CE_TYPE | ||||||
|  |  | ||||||
|  | define Device/cig_wf660a | ||||||
|  |   DEVICE_TITLE := Cigtech WF-660a | ||||||
|  |   DEVICE_DTS := qcom-ipq6018-cig-wf660a | ||||||
|  |   SUPPORTED_DEVICES := cig,wf660a | ||||||
|  |   DEVICE_DTS_CONFIG := config@cp01-c1 | ||||||
|  |   DEVICE_PACKAGES := ath11k-wifi-cig-wf660a uboot-env uboot-envtools | ||||||
|  |   IMAGES := sysupgrade.tar mmc-factory.bin | ||||||
|  |   IMAGE/mmc-factory.bin := append-ubi | qsdk-ipq-factory-mmc | ||||||
|  | endef | ||||||
|  | TARGET_DEVICES += cig_wf660a | ||||||
|  |  | ||||||
| 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 +31,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 +67,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 +134,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 +146,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 | ||||||
| @@ -36,22 +36,39 @@ define Device/cig_wf194c4 | |||||||
| endef | endef | ||||||
| TARGET_DEVICES += cig_wf194c4 | TARGET_DEVICES += cig_wf194c4 | ||||||
|  |  | ||||||
| define Device/cig_wf196 | define Device/cig_wf196_us | ||||||
|   DEVICE_TITLE := CIG WF196 |   DEVICE_TITLE := CIG WF196 (US) | ||||||
|   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 | ||||||
|   DEVICE_PACKAGES := ath11k-wifi-cig-wf196 aq-fw-download uboot-envtools kmod-usb3 kmod-usb2 \ |   BLOCKSIZE := 256k | ||||||
|   	ath11k-firmware-qcn9000 ath11k-wifi-cig-wf196_6g |   PAGESIZE := 4096 | ||||||
|  |   DEVICE_PACKAGES := ath11k-wifi-cig-wf196-us aq-fw-download uboot-envtools kmod-usb3 kmod-usb2 \ | ||||||
|  | 	ath11k-firmware-qcn9000 ath11k-wifi-cig-wf196_6g-us \ | ||||||
|  | 	zephyr-v3.3.x-hci_uart-cig_wf196_nrf52833 | ||||||
| endef | endef | ||||||
| TARGET_DEVICES += cig_wf196 | TARGET_DEVICES += cig_wf196_us | ||||||
|  |  | ||||||
|  | define Device/cig_wf196_ca | ||||||
|  |   DEVICE_TITLE := CIG WF196 (CA) | ||||||
|  |   DEVICE_DTS := qcom-ipq807x-wf196 | ||||||
|  |   DEVICE_DTS_CONFIG=config@hk14 | ||||||
|  |   SUPPORTED_DEVICES := cig,wf196 | ||||||
|  |   BLOCKSIZE := 256k | ||||||
|  |   PAGESIZE := 4096 | ||||||
|  |   DEVICE_PACKAGES := ath11k-wifi-cig-wf196-ca aq-fw-download uboot-envtools kmod-usb3 kmod-usb2 \ | ||||||
|  | 	ath11k-firmware-qcn9000 ath11k-wifi-cig-wf196_6g-ca \ | ||||||
|  | 	zephyr-v3.3.x-hci_uart-cig_wf196_nrf52833 | ||||||
|  | endef | ||||||
|  | TARGET_DEVICES += cig_wf196_ca | ||||||
|  |  | ||||||
| define Device/edgecore_eap102 | define Device/edgecore_eap102 | ||||||
|   DEVICE_TITLE := Edgecore EAP102 |   DEVICE_TITLE := Edgecore EAP102 | ||||||
|   DEVICE_DTS := qcom-ipq807x-eap102 |   DEVICE_DTS := qcom-ipq807x-eap102 | ||||||
|   DEVICE_DTS_CONFIG=config@ac02 |   DEVICE_DTS_CONFIG=config@ac02 | ||||||
|   SUPPORTED_DEVICES := edgecore,eap102 |   SUPPORTED_DEVICES := edgecore,eap102 | ||||||
|   DEVICE_PACKAGES := ath11k-wifi-edgecore-eap102 kmod-usb2 kmod-usb3 uboot-envtools |   DEVICE_PACKAGES := ath11k-wifi-edgecore-eap102 kmod-usb2 kmod-usb3 uboot-envtools \ | ||||||
|  | 	zephyr-v3.3.x-hci_usb-edgecore_eap102_nrf52840 | ||||||
| endef | endef | ||||||
| TARGET_DEVICES += edgecore_eap102 | TARGET_DEVICES += edgecore_eap102 | ||||||
|  |  | ||||||
|   | |||||||
										
											
												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 | ||||||
|   | |||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user