mirror of
				https://xff.cz/git/u-boot/
				synced 2025-10-31 18:35:42 +01:00 
			
		
		
		
	Merge branch 'next'
Pull in changes that have been pending in our 'next' branch. This includes: - A large number of CI improvements including moving to gcc-9.2 for all platforms. - amlogic, xilinx, stm32, TI SoC updates - USB and i2c subsystem updtaes - Re-sync Kbuild/etc logic with v4.19 of the Linux kernel. - RSA key handling improvements
This commit is contained in:
		| @@ -1,7 +1,7 @@ | |||||||
| variables: | variables: | ||||||
|   windows_vm: vs2017-win2016 |   windows_vm: vs2017-win2016 | ||||||
|   ubuntu_vm: ubuntu-18.04 |   ubuntu_vm: ubuntu-18.04 | ||||||
|   ci_runner_image: trini/u-boot-gitlab-ci-runner:bionic-20200112-21Feb2020 |   ci_runner_image: trini/u-boot-gitlab-ci-runner:bionic-20200311-10Apr2020 | ||||||
|   # Add '-u 0' options for Azure pipelines, otherwise we get "permission |   # Add '-u 0' options for Azure pipelines, otherwise we get "permission | ||||||
|   # denied" error when it tries to "useradd -m -u 1001 vsts_azpcontainer", |   # denied" error when it tries to "useradd -m -u 1001 vsts_azpcontainer", | ||||||
|   # since our $(ci_runner_image) user is not root. |   # since our $(ci_runner_image) user is not root. | ||||||
| @@ -52,7 +52,7 @@ jobs: | |||||||
|       image: $(ci_runner_image) |       image: $(ci_runner_image) | ||||||
|       options: $(container_option) |       options: $(container_option) | ||||||
|     steps: |     steps: | ||||||
|       - script: cppcheck --force --quiet --inline-suppr . |       - script: cppcheck -j$(nproc) --force --quiet --inline-suppr . | ||||||
|  |  | ||||||
|   - job: htmldocs |   - job: htmldocs | ||||||
|     displayName: 'Build HTML documentation' |     displayName: 'Build HTML documentation' | ||||||
| @@ -120,7 +120,7 @@ jobs: | |||||||
|           make tools-only_config envtools -j$(nproc) |           make tools-only_config envtools -j$(nproc) | ||||||
|  |  | ||||||
|   - job: utils |   - job: utils | ||||||
|     displayName: 'Run binman, buildman, dtoc and patman testsuites' |     displayName: 'Run binman, buildman, dtoc, Kconfig and patman testsuites' | ||||||
|     pool: |     pool: | ||||||
|       vmImage: $(ubuntu_vm) |       vmImage: $(ubuntu_vm) | ||||||
|     steps: |     steps: | ||||||
| @@ -135,15 +135,16 @@ jobs: | |||||||
|           export USER=azure |           export USER=azure | ||||||
|           virtualenv -p /usr/bin/python3 /tmp/venv |           virtualenv -p /usr/bin/python3 /tmp/venv | ||||||
|           . /tmp/venv/bin/activate |           . /tmp/venv/bin/activate | ||||||
|           pip install pyelftools |           pip install pyelftools pytest | ||||||
|           export UBOOT_TRAVIS_BUILD_DIR=/tmp/.bm-work/sandbox_spl |           export UBOOT_TRAVIS_BUILD_DIR=/tmp/sandbox_spl | ||||||
|           export PYTHONPATH=${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt |           export PYTHONPATH=${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt | ||||||
|           export PATH=${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc:${PATH} |           export PATH=${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc:${PATH} | ||||||
|           ./tools/buildman/buildman -o /tmp -P sandbox_spl |           ./tools/buildman/buildman -o ${UBOOT_TRAVIS_BUILD_DIR} -w sandbox_spl | ||||||
|           ./tools/binman/binman --toolpath ${UBOOT_TRAVIS_BUILD_DIR}/tools test |           ./tools/binman/binman --toolpath ${UBOOT_TRAVIS_BUILD_DIR}/tools test | ||||||
|           ./tools/buildman/buildman -t |           ./tools/buildman/buildman -t | ||||||
|           ./tools/dtoc/dtoc -t |           ./tools/dtoc/dtoc -t | ||||||
|           ./tools/patman/patman --test |           ./tools/patman/patman --test | ||||||
|  |           make O=${UBOOT_TRAVIS_BUILD_DIR} testconfig | ||||||
|           EOF |           EOF | ||||||
|           cat build.sh |           cat build.sh | ||||||
|           # We cannot use "container" like other jobs above, as buildman |           # We cannot use "container" like other jobs above, as buildman | ||||||
| @@ -158,90 +159,78 @@ jobs: | |||||||
|       matrix: |       matrix: | ||||||
|         sandbox: |         sandbox: | ||||||
|           TEST_PY_BD: "sandbox" |           TEST_PY_BD: "sandbox" | ||||||
|           BUILDMAN: "^sandbox$" |  | ||||||
|         sandbox_clang: |         sandbox_clang: | ||||||
|           TEST_PY_BD: "sandbox" |           TEST_PY_BD: "sandbox" | ||||||
|           BUILDMAN: "^sandbox$" |  | ||||||
|           OVERRIDE: "-O clang-7" |           OVERRIDE: "-O clang-7" | ||||||
|         sandbox_spl: |         sandbox_spl: | ||||||
|           TEST_PY_BD: "sandbox_spl" |           TEST_PY_BD: "sandbox_spl" | ||||||
|           TEST_PY_TEST_SPEC: "test_ofplatdata" |           TEST_PY_TEST_SPEC: "test_ofplatdata or test_handoff" | ||||||
|           BUILDMAN: "^sandbox_spl$" |  | ||||||
|         sandbox_flattree: |         sandbox_flattree: | ||||||
|           TEST_PY_BD: "sandbox_flattree" |           TEST_PY_BD: "sandbox_flattree" | ||||||
|           BUILDMAN: "^sandbox_flattree$" |  | ||||||
|         evb_ast2500: |         evb_ast2500: | ||||||
|           TEST_PY_BD: "evb-ast2500" |           TEST_PY_BD: "evb-ast2500" | ||||||
|           TEST_PY_ID: "--id qemu" |           TEST_PY_ID: "--id qemu" | ||||||
|           BUILDMAN: "^evb-ast2500$" |  | ||||||
|         vexpress_ca15_tc2: |         vexpress_ca15_tc2: | ||||||
|           TEST_PY_BD: "vexpress_ca15_tc2" |           TEST_PY_BD: "vexpress_ca15_tc2" | ||||||
|           TEST_PY_ID: "--id qemu" |           TEST_PY_ID: "--id qemu" | ||||||
|           BUILDMAN: "^vexpress_ca15_tc2$" |  | ||||||
|         vexpress_ca9x4: |         vexpress_ca9x4: | ||||||
|           TEST_PY_BD: "vexpress_ca9x4" |           TEST_PY_BD: "vexpress_ca9x4" | ||||||
|           TEST_PY_ID: "--id qemu" |           TEST_PY_ID: "--id qemu" | ||||||
|           BUILDMAN: "^vexpress_ca9x4$" |  | ||||||
|         integratorcp_cm926ejs: |         integratorcp_cm926ejs: | ||||||
|           TEST_PY_BD: "integratorcp_cm926ejs" |           TEST_PY_BD: "integratorcp_cm926ejs" | ||||||
|           TEST_PY_ID: "--id qemu" |           TEST_PY_ID: "--id qemu" | ||||||
|           TEST_PY_TEST_SPEC: "not sleep" |           TEST_PY_TEST_SPEC: "not sleep" | ||||||
|           BUILDMAN: "^integratorcp_cm926ejs$" |  | ||||||
|         qemu_arm: |         qemu_arm: | ||||||
|           TEST_PY_BD: "qemu_arm" |           TEST_PY_BD: "qemu_arm" | ||||||
|           TEST_PY_TEST_SPEC: "not sleep" |           TEST_PY_TEST_SPEC: "not sleep" | ||||||
|           BUILDMAN: "^qemu_arm$" |  | ||||||
|         qemu_arm64: |         qemu_arm64: | ||||||
|           TEST_PY_BD: "qemu_arm64" |           TEST_PY_BD: "qemu_arm64" | ||||||
|           TEST_PY_TEST_SPEC: "not sleep" |           TEST_PY_TEST_SPEC: "not sleep" | ||||||
|           BUILDMAN: "^qemu_arm64$" |  | ||||||
|         qemu_mips: |         qemu_mips: | ||||||
|           TEST_PY_BD: "qemu_mips" |           TEST_PY_BD: "qemu_mips" | ||||||
|           TEST_PY_TEST_SPEC: "not sleep" |           TEST_PY_TEST_SPEC: "not sleep" | ||||||
|           BUILDMAN: "^qemu_mips$" |  | ||||||
|         qemu_mipsel: |         qemu_mipsel: | ||||||
|           TEST_PY_BD: "qemu_mipsel" |           TEST_PY_BD: "qemu_mipsel" | ||||||
|           TEST_PY_TEST_SPEC: "not sleep" |           TEST_PY_TEST_SPEC: "not sleep" | ||||||
|           BUILDMAN: "^qemu_mipsel$" |  | ||||||
|         qemu_mips64: |         qemu_mips64: | ||||||
|           TEST_PY_BD: "qemu_mips64" |           TEST_PY_BD: "qemu_mips64" | ||||||
|           TEST_PY_TEST_SPEC: "not sleep" |           TEST_PY_TEST_SPEC: "not sleep" | ||||||
|           BUILDMAN: "^qemu_mips64$" |  | ||||||
|         qemu_mips64el: |         qemu_mips64el: | ||||||
|           TEST_PY_BD: "qemu_mips64el" |           TEST_PY_BD: "qemu_mips64el" | ||||||
|           TEST_PY_TEST_SPEC: "not sleep" |           TEST_PY_TEST_SPEC: "not sleep" | ||||||
|           BUILDMAN: "^qemu_mips64el$" |  | ||||||
|         qemu_ppce500: |         qemu_ppce500: | ||||||
|           TEST_PY_BD: "qemu-ppce500" |           TEST_PY_BD: "qemu-ppce500" | ||||||
|           TEST_PY_TEST_SPEC: "not sleep" |           TEST_PY_TEST_SPEC: "not sleep" | ||||||
|           BUILDMAN: "^qemu-ppce500$" |         qemu_riscv32: | ||||||
|  |           TEST_PY_BD: "qemu-riscv32" | ||||||
|  |           TEST_PY_TEST_SPEC: "not sleep" | ||||||
|         qemu_riscv64: |         qemu_riscv64: | ||||||
|           TEST_PY_BD: "qemu-riscv64" |           TEST_PY_BD: "qemu-riscv64" | ||||||
|           TEST_PY_TEST_SPEC: "not sleep" |           TEST_PY_TEST_SPEC: "not sleep" | ||||||
|           BUILDMAN: "^qemu-riscv64$" |         qemu_riscv32_spl: | ||||||
|  |           TEST_PY_BD: "qemu-riscv32_spl" | ||||||
|  |           TEST_PY_TEST_SPEC: "not sleep" | ||||||
|  |         qemu_riscv64_spl: | ||||||
|  |           TEST_PY_BD: "qemu-riscv64_spl" | ||||||
|  |           TEST_PY_TEST_SPEC: "not sleep" | ||||||
|         qemu_x86: |         qemu_x86: | ||||||
|           TEST_PY_BD: "qemu-x86" |           TEST_PY_BD: "qemu-x86" | ||||||
|           TEST_PY_TEST_SPEC: "not sleep" |           TEST_PY_TEST_SPEC: "not sleep" | ||||||
|           BUILDMAN: "^qemu-x86$" |  | ||||||
|         qemu_x86_64: |         qemu_x86_64: | ||||||
|           TEST_PY_BD: "qemu-x86_64" |           TEST_PY_BD: "qemu-x86_64" | ||||||
|           TEST_PY_TEST_SPEC: "not sleep" |           TEST_PY_TEST_SPEC: "not sleep" | ||||||
|           BUILDMAN: "^qemu-x86_64$" |         xilinx_zynq_virt: | ||||||
|         zynq_zc702: |           TEST_PY_BD: "xilinx_zynq_virt" | ||||||
|           TEST_PY_BD: "zynq_zc702" |  | ||||||
|           TEST_PY_ID: "--id qemu" |           TEST_PY_ID: "--id qemu" | ||||||
|           TEST_PY_TEST_SPEC: "not sleep" |           TEST_PY_TEST_SPEC: "not sleep" | ||||||
|           BUILDMAN: "^zynq_zc702$" |  | ||||||
|         xilinx_versal_virt: |         xilinx_versal_virt: | ||||||
|           TEST_PY_BD: "xilinx_versal_virt" |           TEST_PY_BD: "xilinx_versal_virt" | ||||||
|           TEST_PY_ID: "--id qemu" |           TEST_PY_ID: "--id qemu" | ||||||
|           TEST_PY_TEST_SPEC: "not sleep" |           TEST_PY_TEST_SPEC: "not sleep" | ||||||
|           BUILDMAN: "^xilinx_versal_virt$" |  | ||||||
|         xtfpga: |         xtfpga: | ||||||
|           TEST_PY_BD: "xtfpga" |           TEST_PY_BD: "xtfpga" | ||||||
|           TEST_PY_ID: "--id qemu" |           TEST_PY_ID: "--id qemu" | ||||||
|           TEST_PY_TEST_SPEC: "not sleep" |           TEST_PY_TEST_SPEC: "not sleep" | ||||||
|           BUILDMAN: "^xtfpga$" |  | ||||||
|     steps: |     steps: | ||||||
|       - script: | |       - script: | | ||||||
|           cat << EOF > test.sh |           cat << EOF > test.sh | ||||||
| @@ -251,7 +240,6 @@ jobs: | |||||||
|           export TEST_PY_BD="${TEST_PY_BD}" |           export TEST_PY_BD="${TEST_PY_BD}" | ||||||
|           export TEST_PY_ID="${TEST_PY_ID}" |           export TEST_PY_ID="${TEST_PY_ID}" | ||||||
|           export TEST_PY_TEST_SPEC="${TEST_PY_TEST_SPEC}" |           export TEST_PY_TEST_SPEC="${TEST_PY_TEST_SPEC}" | ||||||
|           export BUILDMAN="${BUILDMAN}" |  | ||||||
|           export OVERRIDE="${OVERRIDE}" |           export OVERRIDE="${OVERRIDE}" | ||||||
|           EOF |           EOF | ||||||
|           cat << "EOF" >> test.sh |           cat << "EOF" >> test.sh | ||||||
| @@ -263,31 +251,28 @@ jobs: | |||||||
|           grub-mkimage --prefix=\"\" -o ~/grub_x86.efi -O i386-efi normal  echo lsefimmap lsefi lsefisystab efinet tftp minicmd |           grub-mkimage --prefix=\"\" -o ~/grub_x86.efi -O i386-efi normal  echo lsefimmap lsefi lsefisystab efinet tftp minicmd | ||||||
|           grub-mkimage --prefix=\"\" -o ~/grub_x64.efi -O x86_64-efi normal  echo lsefimmap lsefi lsefisystab efinet tftp minicmd |           grub-mkimage --prefix=\"\" -o ~/grub_x64.efi -O x86_64-efi normal  echo lsefimmap lsefi lsefisystab efinet tftp minicmd | ||||||
|           cp /opt/grub/grubriscv64.efi ~/grub_riscv64.efi |           cp /opt/grub/grubriscv64.efi ~/grub_riscv64.efi | ||||||
|  |           cp /opt/grub/grubriscv32.efi ~/grub_riscv32.efi | ||||||
|           cp /opt/grub/grubaa64.efi ~/grub_arm64.efi |           cp /opt/grub/grubaa64.efi ~/grub_arm64.efi | ||||||
|           cp /opt/grub/grubarm.efi ~/grub_arm.efi |           cp /opt/grub/grubarm.efi ~/grub_arm.efi | ||||||
|  |           if [[ "${TEST_PY_BD}" == "qemu-riscv32_spl" ]]; then | ||||||
|  |               wget -O - https://github.com/riscv/opensbi/releases/download/v0.6/opensbi-0.6-rv32-bin.tar.xz | tar -C /tmp -xJ; | ||||||
|  |               export OPENSBI=/tmp/opensbi-0.6-rv32-bin/platform/qemu/virt/firmware/fw_dynamic.bin; | ||||||
|  |           fi | ||||||
|  |           if [[ "${TEST_PY_BD}" == "qemu-riscv64_spl" ]]; then | ||||||
|  |               wget -O - https://github.com/riscv/opensbi/releases/download/v0.6/opensbi-0.6-rv64-bin.tar.xz | tar -C /tmp -xJ; | ||||||
|  |               export OPENSBI=/tmp/opensbi-0.6-rv64-bin/platform/qemu/virt/firmware/fw_dynamic.bin; | ||||||
|  |           fi | ||||||
|           # the below corresponds to .gitlab-ci.yml "script" |           # the below corresponds to .gitlab-ci.yml "script" | ||||||
|           cd ${WORK_DIR} |           cd ${WORK_DIR} | ||||||
|           if [[ "${BUILDMAN}" != "" ]]; then |           export UBOOT_TRAVIS_BUILD_DIR=/tmp/${TEST_PY_BD}; | ||||||
|               ret=0; |           tools/buildman/buildman -o ${UBOOT_TRAVIS_BUILD_DIR} -w -E -W -e --board ${TEST_PY_BD} ${OVERRIDE} | ||||||
|               tools/buildman/buildman -o /tmp -P -E ${BUILDMAN} ${OVERRIDE} || ret=$?; |  | ||||||
|               if [[ $ret -ne 0 && $ret -ne 129 ]]; then |  | ||||||
|                   tools/buildman/buildman -o /tmp -sdeP ${BUILDMAN}; |  | ||||||
|                   exit $ret; |  | ||||||
|               fi; |  | ||||||
|           fi |  | ||||||
|           virtualenv -p /usr/bin/python3 /tmp/venv |           virtualenv -p /usr/bin/python3 /tmp/venv | ||||||
|           . /tmp/venv/bin/activate |           . /tmp/venv/bin/activate | ||||||
|           pip install -r test/py/requirements.txt |           pip install -r test/py/requirements.txt | ||||||
|           export UBOOT_TRAVIS_BUILD_DIR=/tmp/.bm-work/${TEST_PY_BD}; |  | ||||||
|           export PATH=/opt/qemu/bin:/tmp/uboot-test-hooks/bin:${PATH}; |           export PATH=/opt/qemu/bin:/tmp/uboot-test-hooks/bin:${PATH}; | ||||||
|           export PYTHONPATH=/tmp/uboot-test-hooks/py/travis-ci; |           export PYTHONPATH=/tmp/uboot-test-hooks/py/travis-ci; | ||||||
|           if [[ "${TEST_PY_BD}" != "" ]]; then |           # "${var:+"-k $var"}" expands to "" if $var is empty, "-k $var" if not | ||||||
|               ./test/py/test.py --bd ${TEST_PY_BD} ${TEST_PY_ID} -k "${TEST_PY_TEST_SPEC:-not a_test_which_does_not_exist}" --build-dir "$UBOOT_TRAVIS_BUILD_DIR"; |           ./test/py/test.py --bd ${TEST_PY_BD} ${TEST_PY_ID} ${TEST_PY_TEST_SPEC:+"-k ${TEST_PY_TEST_SPEC}"} --build-dir "$UBOOT_TRAVIS_BUILD_DIR"; | ||||||
|               ret=$?; |  | ||||||
|               if [[ $ret -ne 0 ]]; then |  | ||||||
|                   exit $ret; |  | ||||||
|               fi; |  | ||||||
|           fi |  | ||||||
|           # the below corresponds to .gitlab-ci.yml "after_script" |           # the below corresponds to .gitlab-ci.yml "after_script" | ||||||
|           rm -rf /tmp/uboot-test-hooks /tmp/venv |           rm -rf /tmp/uboot-test-hooks /tmp/venv | ||||||
|           EOF |           EOF | ||||||
| @@ -421,9 +406,9 @@ jobs: | |||||||
|           cat << "EOF" >> build.sh |           cat << "EOF" >> build.sh | ||||||
|           if [[ "${BUILDMAN}" != "" ]]; then |           if [[ "${BUILDMAN}" != "" ]]; then | ||||||
|               ret=0; |               ret=0; | ||||||
|               tools/buildman/buildman -o /tmp -P -E ${BUILDMAN} ${OVERRIDE} || ret=$?; |               tools/buildman/buildman -o /tmp -P -W ${BUILDMAN} ${OVERRIDE} || ret=$?; | ||||||
|               if [[ $ret -ne 0 && $ret -ne 129 ]]; then |               if [[ $ret -ne 0 ]]; then | ||||||
|                   tools/buildman/buildman -o /tmp -sdeP ${BUILDMAN}; |                   tools/buildman/buildman -o /tmp -seP ${BUILDMAN}; | ||||||
|                   exit $ret; |                   exit $ret; | ||||||
|               fi; |               fi; | ||||||
|           fi |           fi | ||||||
|   | |||||||
							
								
								
									
										130
									
								
								.gitlab-ci.yml
									
									
									
									
									
								
							
							
						
						
									
										130
									
								
								.gitlab-ci.yml
									
									
									
									
									
								
							| @@ -2,7 +2,7 @@ | |||||||
|  |  | ||||||
| # Grab our configured image.  The source for this is found at: | # Grab our configured image.  The source for this is found at: | ||||||
| # https://gitlab.denx.de/u-boot/gitlab-ci-runner | # https://gitlab.denx.de/u-boot/gitlab-ci-runner | ||||||
| image: trini/u-boot-gitlab-ci-runner:bionic-20200112-21Feb2020 | image: trini/u-boot-gitlab-ci-runner:bionic-20200311-10Apr2020 | ||||||
|  |  | ||||||
| # We run some tests in different order, to catch some failures quicker. | # We run some tests in different order, to catch some failures quicker. | ||||||
| stages: | stages: | ||||||
| @@ -21,50 +21,43 @@ stages: | |||||||
|     - grub-mkimage --prefix="" -o ~/grub_x86.efi -O i386-efi normal  echo lsefimmap lsefi lsefisystab efinet tftp minicmd |     - grub-mkimage --prefix="" -o ~/grub_x86.efi -O i386-efi normal  echo lsefimmap lsefi lsefisystab efinet tftp minicmd | ||||||
|     - grub-mkimage --prefix="" -o ~/grub_x64.efi -O x86_64-efi normal  echo lsefimmap lsefi lsefisystab efinet tftp minicmd |     - grub-mkimage --prefix="" -o ~/grub_x64.efi -O x86_64-efi normal  echo lsefimmap lsefi lsefisystab efinet tftp minicmd | ||||||
|     - cp /opt/grub/grubriscv64.efi ~/grub_riscv64.efi |     - cp /opt/grub/grubriscv64.efi ~/grub_riscv64.efi | ||||||
|  |     - cp /opt/grub/grubriscv32.efi ~/grub_riscv32.efi | ||||||
|     - cp /opt/grub/grubaa64.efi ~/grub_arm64.efi |     - cp /opt/grub/grubaa64.efi ~/grub_arm64.efi | ||||||
|     - cp /opt/grub/grubarm.efi ~/grub_arm.efi |     - cp /opt/grub/grubarm.efi ~/grub_arm.efi | ||||||
|  |     - if [[ "${TEST_PY_BD}" == "qemu-riscv32_spl" ]]; then | ||||||
|  |         wget -O - https://github.com/riscv/opensbi/releases/download/v0.6/opensbi-0.6-rv32-bin.tar.xz | tar -C /tmp -xJ; | ||||||
|  |         export OPENSBI=/tmp/opensbi-0.6-rv32-bin/platform/qemu/virt/firmware/fw_dynamic.bin; | ||||||
|  |       fi | ||||||
|  |     - if [[ "${TEST_PY_BD}" == "qemu-riscv64_spl" ]]; then | ||||||
|  |         wget -O - https://github.com/riscv/opensbi/releases/download/v0.6/opensbi-0.6-rv64-bin.tar.xz | tar -C /tmp -xJ; | ||||||
|  |         export OPENSBI=/tmp/opensbi-0.6-rv64-bin/platform/qemu/virt/firmware/fw_dynamic.bin; | ||||||
|  |       fi | ||||||
|  |  | ||||||
|   after_script: |   after_script: | ||||||
|     - rm -rf /tmp/uboot-test-hooks /tmp/venv |     - rm -rf /tmp/uboot-test-hooks /tmp/venv | ||||||
|   script: |   script: | ||||||
|     # From buildman, exit code 129 means warnings only.  If we've been asked to |     # If we've been asked to use clang only do one configuration. | ||||||
|     # use clang only do one configuration. |     - export UBOOT_TRAVIS_BUILD_DIR=/tmp/${TEST_PY_BD} | ||||||
|     - if [[ "${BUILDMAN}" != "" ]]; then |     - tools/buildman/buildman -o ${UBOOT_TRAVIS_BUILD_DIR} -w -E -W -e | ||||||
|         ret=0; |         --board ${TEST_PY_BD} ${OVERRIDE} | ||||||
|         tools/buildman/buildman -o /tmp -P -E ${BUILDMAN} ${OVERRIDE}|| ret=$?; |  | ||||||
|         if [[ $ret -ne 0 && $ret -ne 129 ]]; then |  | ||||||
|           tools/buildman/buildman -o /tmp -sdeP ${BUILDMAN}; |  | ||||||
|           exit $ret; |  | ||||||
|         fi; |  | ||||||
|       fi |  | ||||||
|     # "not a_test_which_does_not_exist" is a dummy -k parameter which will |  | ||||||
|     # never prevent any test from running. That way, we can always pass |  | ||||||
|     # "-k something" even when $TEST_PY_TEST_SPEC doesnt need a custom |  | ||||||
|     # value. |  | ||||||
|     - virtualenv -p /usr/bin/python3 /tmp/venv |     - virtualenv -p /usr/bin/python3 /tmp/venv | ||||||
|     - . /tmp/venv/bin/activate |     - . /tmp/venv/bin/activate | ||||||
|     - pip install -r test/py/requirements.txt |     - pip install -r test/py/requirements.txt | ||||||
|     - export UBOOT_TRAVIS_BUILD_DIR=/tmp/.bm-work/${TEST_PY_BD}; |     # "${var:+"-k $var"}" expands to "" if $var is empty, "-k $var" if not | ||||||
|       export PATH=/opt/qemu/bin:/tmp/uboot-test-hooks/bin:${PATH}; |     - export PATH=/opt/qemu/bin:/tmp/uboot-test-hooks/bin:${PATH}; | ||||||
|       export PYTHONPATH=/tmp/uboot-test-hooks/py/travis-ci; |       export PYTHONPATH=/tmp/uboot-test-hooks/py/travis-ci; | ||||||
|       if [[ "${TEST_PY_BD}" != "" ]]; then |       ./test/py/test.py --bd ${TEST_PY_BD} ${TEST_PY_ID} | ||||||
|         ./test/py/test.py --bd ${TEST_PY_BD} ${TEST_PY_ID} |         ${TEST_PY_TEST_SPEC:+"-k ${TEST_PY_TEST_SPEC}"} | ||||||
|           -k "${TEST_PY_TEST_SPEC:-not a_test_which_does_not_exist}" |         --build-dir "$UBOOT_TRAVIS_BUILD_DIR" | ||||||
|           --build-dir "$UBOOT_TRAVIS_BUILD_DIR"; |  | ||||||
|         ret=$?; |  | ||||||
|         if [[ $ret -ne 0 ]]; then |  | ||||||
|           exit $ret; |  | ||||||
|         fi; |  | ||||||
|       fi; |  | ||||||
|  |  | ||||||
| build all 32bit ARM platforms: | build all 32bit ARM platforms: | ||||||
|   tags: [ 'all' ] |   tags: [ 'all' ] | ||||||
|   stage: world build |   stage: world build | ||||||
|   script: |   script: | ||||||
|     - ret=0; |     - ret=0; | ||||||
|       ./tools/buildman/buildman -o /tmp -P -E arm -x aarch64 || ret=$?; |       ./tools/buildman/buildman -o /tmp -P -E -W arm -x aarch64 || ret=$?; | ||||||
|       if [[ $ret -ne 0 && $ret -ne 129 ]]; then |       if [[ $ret -ne 0 ]]; then | ||||||
|         ./tools/buildman/buildman -o /tmp -sdeP; |         ./tools/buildman/buildman -o /tmp -seP; | ||||||
|         exit $ret; |         exit $ret; | ||||||
|       fi; |       fi; | ||||||
|  |  | ||||||
| @@ -76,9 +69,9 @@ build all 64bit ARM platforms: | |||||||
|     - . /tmp/venv/bin/activate |     - . /tmp/venv/bin/activate | ||||||
|     - pip install pyelftools |     - pip install pyelftools | ||||||
|     - ret=0; |     - ret=0; | ||||||
|       ./tools/buildman/buildman -o /tmp -P -E aarch64 || ret=$?; |       ./tools/buildman/buildman -o /tmp -P -E -W aarch64 || ret=$?; | ||||||
|       if [[ $ret -ne 0 && $ret -ne 129 ]]; then |       if [[ $ret -ne 0 ]]; then | ||||||
|         ./tools/buildman/buildman -o /tmp -sdeP; |         ./tools/buildman/buildman -o /tmp -seP; | ||||||
|         exit $ret; |         exit $ret; | ||||||
|       fi; |       fi; | ||||||
|  |  | ||||||
| @@ -87,9 +80,9 @@ build all PowerPC platforms: | |||||||
|   stage: world build |   stage: world build | ||||||
|   script: |   script: | ||||||
|     - ret=0; |     - ret=0; | ||||||
|       ./tools/buildman/buildman -o /tmp -P -E powerpc || ret=$?; |       ./tools/buildman/buildman -o /tmp -P -E -W powerpc || ret=$?; | ||||||
|       if [[ $ret -ne 0 && $ret -ne 129 ]]; then |       if [[ $ret -ne 0 ]]; then | ||||||
|         ./tools/buildman/buildman -o /tmp -sdeP; |         ./tools/buildman/buildman -o /tmp -seP; | ||||||
|         exit $ret; |         exit $ret; | ||||||
|       fi; |       fi; | ||||||
|  |  | ||||||
| @@ -98,9 +91,9 @@ build all other platforms: | |||||||
|   stage: world build |   stage: world build | ||||||
|   script: |   script: | ||||||
|     - ret=0; |     - ret=0; | ||||||
|       ./tools/buildman/buildman -o /tmp -P -E -x arm,powerpc || ret=$?; |       ./tools/buildman/buildman -o /tmp -P -E -W -x arm,powerpc || ret=$?; | ||||||
|       if [[ $ret -ne 0 && $ret -ne 129 ]]; then |       if [[ $ret -ne 0 ]]; then | ||||||
|         ./tools/buildman/buildman -o /tmp -sdeP; |         ./tools/buildman/buildman -o /tmp -seP; | ||||||
|         exit $ret; |         exit $ret; | ||||||
|       fi; |       fi; | ||||||
|  |  | ||||||
| @@ -110,7 +103,7 @@ cppcheck: | |||||||
|   tags: [ 'all' ] |   tags: [ 'all' ] | ||||||
|   stage: testsuites |   stage: testsuites | ||||||
|   script: |   script: | ||||||
|     - cppcheck --force --quiet --inline-suppr . |     - cppcheck -j$(nproc) --force --quiet --inline-suppr . | ||||||
|  |  | ||||||
| # search for TODO within source tree | # search for TODO within source tree | ||||||
| grep TODO/FIXME/HACK: | grep TODO/FIXME/HACK: | ||||||
| @@ -157,7 +150,7 @@ Build envtools: | |||||||
|   script: |   script: | ||||||
|     - make tools-only_config envtools -j$(nproc) |     - make tools-only_config envtools -j$(nproc) | ||||||
|  |  | ||||||
| Run binman, buildman, dtoc and patman testsuites: | Run binman, buildman, dtoc, Kconfig and patman testsuites: | ||||||
|   tags: [ 'all' ] |   tags: [ 'all' ] | ||||||
|   stage: testsuites |   stage: testsuites | ||||||
|   script: |   script: | ||||||
| @@ -166,29 +159,28 @@ Run binman, buildman, dtoc and patman testsuites: | |||||||
|       export USER=gitlab; |       export USER=gitlab; | ||||||
|       virtualenv -p /usr/bin/python3 /tmp/venv; |       virtualenv -p /usr/bin/python3 /tmp/venv; | ||||||
|       . /tmp/venv/bin/activate; |       . /tmp/venv/bin/activate; | ||||||
|       pip install pyelftools; |       pip install pyelftools pytest; | ||||||
|       export UBOOT_TRAVIS_BUILD_DIR=/tmp/.bm-work/sandbox_spl; |       export UBOOT_TRAVIS_BUILD_DIR=/tmp/sandbox_spl; | ||||||
|       export PYTHONPATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt"; |       export PYTHONPATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt"; | ||||||
|       export PATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc:${PATH}"; |       export PATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc:${PATH}"; | ||||||
|       ./tools/buildman/buildman -o /tmp -P sandbox_spl; |       ./tools/buildman/buildman -o ${UBOOT_TRAVIS_BUILD_DIR} -w sandbox_spl; | ||||||
|       ./tools/binman/binman --toolpath ${UBOOT_TRAVIS_BUILD_DIR}/tools test; |       ./tools/binman/binman --toolpath ${UBOOT_TRAVIS_BUILD_DIR}/tools test; | ||||||
|       ./tools/buildman/buildman -t; |       ./tools/buildman/buildman -t; | ||||||
|       ./tools/dtoc/dtoc -t; |       ./tools/dtoc/dtoc -t; | ||||||
|       ./tools/patman/patman --test |       ./tools/patman/patman --test; | ||||||
|  |       make testconfig | ||||||
|  |  | ||||||
| # Test sandbox with test.py | # Test sandbox with test.py | ||||||
| sandbox test.py: | sandbox test.py: | ||||||
|   tags: [ 'all' ] |   tags: [ 'all' ] | ||||||
|   variables: |   variables: | ||||||
|     TEST_PY_BD: "sandbox" |     TEST_PY_BD: "sandbox" | ||||||
|     BUILDMAN: "^sandbox$" |  | ||||||
|   <<: *buildman_and_testpy_dfn |   <<: *buildman_and_testpy_dfn | ||||||
|  |  | ||||||
| sandbox with clang test.py: | sandbox with clang test.py: | ||||||
|   tags: [ 'all' ] |   tags: [ 'all' ] | ||||||
|   variables: |   variables: | ||||||
|     TEST_PY_BD: "sandbox" |     TEST_PY_BD: "sandbox" | ||||||
|     BUILDMAN: "^sandbox$" |  | ||||||
|     OVERRIDE: "-O clang-7" |     OVERRIDE: "-O clang-7" | ||||||
|   <<: *buildman_and_testpy_dfn |   <<: *buildman_and_testpy_dfn | ||||||
|  |  | ||||||
| @@ -196,8 +188,7 @@ sandbox_spl test.py: | |||||||
|   tags: [ 'all' ] |   tags: [ 'all' ] | ||||||
|   variables: |   variables: | ||||||
|     TEST_PY_BD: "sandbox_spl" |     TEST_PY_BD: "sandbox_spl" | ||||||
|     BUILDMAN: "^sandbox_spl$" |     TEST_PY_TEST_SPEC: "test_ofplatdata or test_handoff" | ||||||
|     TEST_PY_TEST_SPEC: "test_ofplatdata" |  | ||||||
|   <<: *buildman_and_testpy_dfn |   <<: *buildman_and_testpy_dfn | ||||||
|  |  | ||||||
| evb-ast2500 test.py: | evb-ast2500 test.py: | ||||||
| @@ -205,14 +196,12 @@ evb-ast2500 test.py: | |||||||
|   variables: |   variables: | ||||||
|     TEST_PY_BD: "evb-ast2500" |     TEST_PY_BD: "evb-ast2500" | ||||||
|     TEST_PY_ID: "--id qemu" |     TEST_PY_ID: "--id qemu" | ||||||
|     BUILDMAN: "^evb-ast2500$" |  | ||||||
|   <<: *buildman_and_testpy_dfn |   <<: *buildman_and_testpy_dfn | ||||||
|  |  | ||||||
| sandbox_flattree test.py: | sandbox_flattree test.py: | ||||||
|   tags: [ 'all' ] |   tags: [ 'all' ] | ||||||
|   variables: |   variables: | ||||||
|     TEST_PY_BD: "sandbox_flattree" |     TEST_PY_BD: "sandbox_flattree" | ||||||
|     BUILDMAN: "^sandbox_flattree$" |  | ||||||
|   <<: *buildman_and_testpy_dfn |   <<: *buildman_and_testpy_dfn | ||||||
|  |  | ||||||
| vexpress_ca15_tc2 test.py: | vexpress_ca15_tc2 test.py: | ||||||
| @@ -220,7 +209,6 @@ vexpress_ca15_tc2 test.py: | |||||||
|   variables: |   variables: | ||||||
|     TEST_PY_BD: "vexpress_ca15_tc2" |     TEST_PY_BD: "vexpress_ca15_tc2" | ||||||
|     TEST_PY_ID: "--id qemu" |     TEST_PY_ID: "--id qemu" | ||||||
|     BUILDMAN: "^vexpress_ca15_tc2$" |  | ||||||
|   <<: *buildman_and_testpy_dfn |   <<: *buildman_and_testpy_dfn | ||||||
|  |  | ||||||
| vexpress_ca9x4 test.py: | vexpress_ca9x4 test.py: | ||||||
| @@ -228,7 +216,6 @@ vexpress_ca9x4 test.py: | |||||||
|   variables: |   variables: | ||||||
|     TEST_PY_BD: "vexpress_ca9x4" |     TEST_PY_BD: "vexpress_ca9x4" | ||||||
|     TEST_PY_ID: "--id qemu" |     TEST_PY_ID: "--id qemu" | ||||||
|     BUILDMAN: "^vexpress_ca9x4$" |  | ||||||
|   <<: *buildman_and_testpy_dfn |   <<: *buildman_and_testpy_dfn | ||||||
|  |  | ||||||
| integratorcp_cm926ejs test.py: | integratorcp_cm926ejs test.py: | ||||||
| @@ -237,7 +224,6 @@ integratorcp_cm926ejs test.py: | |||||||
|     TEST_PY_BD: "integratorcp_cm926ejs" |     TEST_PY_BD: "integratorcp_cm926ejs" | ||||||
|     TEST_PY_TEST_SPEC: "not sleep" |     TEST_PY_TEST_SPEC: "not sleep" | ||||||
|     TEST_PY_ID: "--id qemu" |     TEST_PY_ID: "--id qemu" | ||||||
|     BUILDMAN: "^integratorcp_cm926ejs$" |  | ||||||
|   <<: *buildman_and_testpy_dfn |   <<: *buildman_and_testpy_dfn | ||||||
|  |  | ||||||
| qemu_arm test.py: | qemu_arm test.py: | ||||||
| @@ -245,7 +231,6 @@ qemu_arm test.py: | |||||||
|   variables: |   variables: | ||||||
|     TEST_PY_BD: "qemu_arm" |     TEST_PY_BD: "qemu_arm" | ||||||
|     TEST_PY_TEST_SPEC: "not sleep" |     TEST_PY_TEST_SPEC: "not sleep" | ||||||
|     BUILDMAN: "^qemu_arm$" |  | ||||||
|   <<: *buildman_and_testpy_dfn |   <<: *buildman_and_testpy_dfn | ||||||
|  |  | ||||||
| qemu_arm64 test.py: | qemu_arm64 test.py: | ||||||
| @@ -253,7 +238,6 @@ qemu_arm64 test.py: | |||||||
|   variables: |   variables: | ||||||
|     TEST_PY_BD: "qemu_arm64" |     TEST_PY_BD: "qemu_arm64" | ||||||
|     TEST_PY_TEST_SPEC: "not sleep" |     TEST_PY_TEST_SPEC: "not sleep" | ||||||
|     BUILDMAN: "^qemu_arm64$" |  | ||||||
|   <<: *buildman_and_testpy_dfn |   <<: *buildman_and_testpy_dfn | ||||||
|  |  | ||||||
| qemu_mips test.py: | qemu_mips test.py: | ||||||
| @@ -261,7 +245,6 @@ qemu_mips test.py: | |||||||
|   variables: |   variables: | ||||||
|     TEST_PY_BD: "qemu_mips" |     TEST_PY_BD: "qemu_mips" | ||||||
|     TEST_PY_TEST_SPEC: "not sleep" |     TEST_PY_TEST_SPEC: "not sleep" | ||||||
|     BUILDMAN: "^qemu_mips$" |  | ||||||
|   <<: *buildman_and_testpy_dfn |   <<: *buildman_and_testpy_dfn | ||||||
|  |  | ||||||
| qemu_mipsel test.py: | qemu_mipsel test.py: | ||||||
| @@ -269,7 +252,6 @@ qemu_mipsel test.py: | |||||||
|   variables: |   variables: | ||||||
|     TEST_PY_BD: "qemu_mipsel" |     TEST_PY_BD: "qemu_mipsel" | ||||||
|     TEST_PY_TEST_SPEC: "not sleep" |     TEST_PY_TEST_SPEC: "not sleep" | ||||||
|     BUILDMAN: "^qemu_mipsel$" |  | ||||||
|   <<: *buildman_and_testpy_dfn |   <<: *buildman_and_testpy_dfn | ||||||
|  |  | ||||||
| qemu_mips64 test.py: | qemu_mips64 test.py: | ||||||
| @@ -277,7 +259,6 @@ qemu_mips64 test.py: | |||||||
|   variables: |   variables: | ||||||
|     TEST_PY_BD: "qemu_mips64" |     TEST_PY_BD: "qemu_mips64" | ||||||
|     TEST_PY_TEST_SPEC: "not sleep" |     TEST_PY_TEST_SPEC: "not sleep" | ||||||
|     BUILDMAN: "^qemu_mips64$" |  | ||||||
|   <<: *buildman_and_testpy_dfn |   <<: *buildman_and_testpy_dfn | ||||||
|  |  | ||||||
| qemu_mips64el test.py: | qemu_mips64el test.py: | ||||||
| @@ -285,7 +266,6 @@ qemu_mips64el test.py: | |||||||
|   variables: |   variables: | ||||||
|     TEST_PY_BD: "qemu_mips64el" |     TEST_PY_BD: "qemu_mips64el" | ||||||
|     TEST_PY_TEST_SPEC: "not sleep" |     TEST_PY_TEST_SPEC: "not sleep" | ||||||
|     BUILDMAN: "^qemu_mips64el$" |  | ||||||
|   <<: *buildman_and_testpy_dfn |   <<: *buildman_and_testpy_dfn | ||||||
|  |  | ||||||
| qemu-ppce500 test.py: | qemu-ppce500 test.py: | ||||||
| @@ -293,7 +273,13 @@ qemu-ppce500 test.py: | |||||||
|   variables: |   variables: | ||||||
|     TEST_PY_BD: "qemu-ppce500" |     TEST_PY_BD: "qemu-ppce500" | ||||||
|     TEST_PY_TEST_SPEC: "not sleep" |     TEST_PY_TEST_SPEC: "not sleep" | ||||||
|     BUILDMAN: "^qemu-ppce500$" |   <<: *buildman_and_testpy_dfn | ||||||
|  |  | ||||||
|  | qemu-riscv32 test.py: | ||||||
|  |   tags: [ 'all' ] | ||||||
|  |   variables: | ||||||
|  |     TEST_PY_BD: "qemu-riscv32" | ||||||
|  |     TEST_PY_TEST_SPEC: "not sleep" | ||||||
|   <<: *buildman_and_testpy_dfn |   <<: *buildman_and_testpy_dfn | ||||||
|  |  | ||||||
| qemu-riscv64 test.py: | qemu-riscv64 test.py: | ||||||
| @@ -301,7 +287,20 @@ qemu-riscv64 test.py: | |||||||
|   variables: |   variables: | ||||||
|     TEST_PY_BD: "qemu-riscv64" |     TEST_PY_BD: "qemu-riscv64" | ||||||
|     TEST_PY_TEST_SPEC: "not sleep" |     TEST_PY_TEST_SPEC: "not sleep" | ||||||
|     BUILDMAN: "^qemu-riscv64$" |   <<: *buildman_and_testpy_dfn | ||||||
|  |  | ||||||
|  | qemu-riscv32_spl test.py: | ||||||
|  |   tags: [ 'all' ] | ||||||
|  |   variables: | ||||||
|  |     TEST_PY_BD: "qemu-riscv32_spl" | ||||||
|  |     TEST_PY_TEST_SPEC: "not sleep" | ||||||
|  |   <<: *buildman_and_testpy_dfn | ||||||
|  |  | ||||||
|  | qemu-riscv64_spl test.py: | ||||||
|  |   tags: [ 'all' ] | ||||||
|  |   variables: | ||||||
|  |     TEST_PY_BD: "qemu-riscv64_spl" | ||||||
|  |     TEST_PY_TEST_SPEC: "not sleep" | ||||||
|   <<: *buildman_and_testpy_dfn |   <<: *buildman_and_testpy_dfn | ||||||
|  |  | ||||||
| qemu-x86 test.py: | qemu-x86 test.py: | ||||||
| @@ -309,7 +308,6 @@ qemu-x86 test.py: | |||||||
|   variables: |   variables: | ||||||
|     TEST_PY_BD: "qemu-x86" |     TEST_PY_BD: "qemu-x86" | ||||||
|     TEST_PY_TEST_SPEC: "not sleep" |     TEST_PY_TEST_SPEC: "not sleep" | ||||||
|     BUILDMAN: "^qemu-x86$" |  | ||||||
|   <<: *buildman_and_testpy_dfn |   <<: *buildman_and_testpy_dfn | ||||||
|  |  | ||||||
| qemu-x86_64 test.py: | qemu-x86_64 test.py: | ||||||
| @@ -317,16 +315,14 @@ qemu-x86_64 test.py: | |||||||
|   variables: |   variables: | ||||||
|     TEST_PY_BD: "qemu-x86_64" |     TEST_PY_BD: "qemu-x86_64" | ||||||
|     TEST_PY_TEST_SPEC: "not sleep" |     TEST_PY_TEST_SPEC: "not sleep" | ||||||
|     BUILDMAN: "^qemu-x86_64$" |  | ||||||
|   <<: *buildman_and_testpy_dfn |   <<: *buildman_and_testpy_dfn | ||||||
|  |  | ||||||
| zynq_zc702 test.py: | xilinx_zynq_virt test.py: | ||||||
|   tags: [ 'all' ] |   tags: [ 'all' ] | ||||||
|   variables: |   variables: | ||||||
|     TEST_PY_BD: "zynq_zc702" |     TEST_PY_BD: "xilinx_zynq_virt" | ||||||
|     TEST_PY_TEST_SPEC: "not sleep" |     TEST_PY_TEST_SPEC: "not sleep" | ||||||
|     TEST_PY_ID: "--id qemu" |     TEST_PY_ID: "--id qemu" | ||||||
|     BUILDMAN: "^zynq_zc702$" |  | ||||||
|   <<: *buildman_and_testpy_dfn |   <<: *buildman_and_testpy_dfn | ||||||
|  |  | ||||||
| xilinx_versal_virt test.py: | xilinx_versal_virt test.py: | ||||||
| @@ -335,7 +331,6 @@ xilinx_versal_virt test.py: | |||||||
|     TEST_PY_BD: "xilinx_versal_virt" |     TEST_PY_BD: "xilinx_versal_virt" | ||||||
|     TEST_PY_TEST_SPEC: "not sleep" |     TEST_PY_TEST_SPEC: "not sleep" | ||||||
|     TEST_PY_ID: "--id qemu" |     TEST_PY_ID: "--id qemu" | ||||||
|     BUILDMAN: "^xilinx_versal_virt$" |  | ||||||
|   <<: *buildman_and_testpy_dfn |   <<: *buildman_and_testpy_dfn | ||||||
|  |  | ||||||
| xtfpga test.py: | xtfpga test.py: | ||||||
| @@ -344,5 +339,4 @@ xtfpga test.py: | |||||||
|     TEST_PY_BD: "xtfpga" |     TEST_PY_BD: "xtfpga" | ||||||
|     TEST_PY_TEST_SPEC: "not sleep" |     TEST_PY_TEST_SPEC: "not sleep" | ||||||
|     TEST_PY_ID: "--id qemu" |     TEST_PY_ID: "--id qemu" | ||||||
|     BUILDMAN: "^xtfpga$" |  | ||||||
|   <<: *buildman_and_testpy_dfn |   <<: *buildman_and_testpy_dfn | ||||||
|   | |||||||
							
								
								
									
										196
									
								
								.travis.yml
									
									
									
									
									
								
							
							
						
						
									
										196
									
								
								.travis.yml
									
									
									
									
									
								
							| @@ -14,6 +14,7 @@ addons: | |||||||
|     - ubuntu-toolchain-r-test |     - ubuntu-toolchain-r-test | ||||||
|     - llvm-toolchain-bionic-7 |     - llvm-toolchain-bionic-7 | ||||||
|     packages: |     packages: | ||||||
|  |     - autopoint | ||||||
|     - cppcheck |     - cppcheck | ||||||
|     - sloccount |     - sloccount | ||||||
|     - sparse |     - sparse | ||||||
| @@ -55,10 +56,6 @@ install: | |||||||
|  - cat ~/.buildman |  - cat ~/.buildman | ||||||
|  - grub-mkimage --prefix="" -o ~/grub_x86.efi -O i386-efi normal  echo lsefimmap lsefi lsefisystab efinet tftp minicmd |  - grub-mkimage --prefix="" -o ~/grub_x86.efi -O i386-efi normal  echo lsefimmap lsefi lsefisystab efinet tftp minicmd | ||||||
|  - grub-mkimage --prefix="" -o ~/grub_x64.efi -O x86_64-efi normal  echo lsefimmap lsefi lsefisystab efinet tftp minicmd |  - grub-mkimage --prefix="" -o ~/grub_x64.efi -O x86_64-efi normal  echo lsefimmap lsefi lsefisystab efinet tftp minicmd | ||||||
|  - mkdir ~/grub2-arm |  | ||||||
|  - ( cd ~/grub2-arm; wget -O - http://download.opensuse.org/ports/armv7hl/distribution/leap/42.2/repo/oss/suse/armv7hl/grub2-arm-efi-2.02~beta2-87.1.armv7hl.rpm | rpm2cpio | cpio -di ) |  | ||||||
|  - mkdir ~/grub2-arm64 |  | ||||||
|  - ( cd ~/grub2-arm64; wget -O - http://download.opensuse.org/ports/aarch64/distribution/leap/42.2/repo/oss/suse/aarch64/grub2-arm64-efi-2.02~beta2-87.1.aarch64.rpm | rpm2cpio | cpio -di ) |  | ||||||
|  - wget http://mirrors.kernel.org/ubuntu/pool/main/m/mpfr4/libmpfr4_3.1.4-1_amd64.deb && sudo dpkg -i libmpfr4_3.1.4-1_amd64.deb && rm libmpfr4_3.1.4-1_amd64.deb |  - wget http://mirrors.kernel.org/ubuntu/pool/main/m/mpfr4/libmpfr4_3.1.4-1_amd64.deb && sudo dpkg -i libmpfr4_3.1.4-1_amd64.deb && rm libmpfr4_3.1.4-1_amd64.deb | ||||||
|  |  | ||||||
| env: | env: | ||||||
| @@ -100,6 +97,7 @@ before_script: | |||||||
|     fi |     fi | ||||||
|   - if [[ "${TOOLCHAIN}" == "powerpc" ]]; then ./tools/buildman/buildman --fetch-arch powerpc; fi |   - if [[ "${TOOLCHAIN}" == "powerpc" ]]; then ./tools/buildman/buildman --fetch-arch powerpc; fi | ||||||
|   - if [[ "${TOOLCHAIN}" == "riscv" ]]; then |   - if [[ "${TOOLCHAIN}" == "riscv" ]]; then | ||||||
|  |        ./tools/buildman/buildman --fetch-arch riscv32 && | ||||||
|        ./tools/buildman/buildman --fetch-arch riscv64; |        ./tools/buildman/buildman --fetch-arch riscv64; | ||||||
|     fi |     fi | ||||||
|   - if [[ "${QEMU_TARGET}" != "" ]]; then |   - if [[ "${QEMU_TARGET}" != "" ]]; then | ||||||
| @@ -112,47 +110,144 @@ before_script: | |||||||
|        popd; |        popd; | ||||||
|     fi |     fi | ||||||
|  |  | ||||||
|  |   # Build GRUB UEFI targets | ||||||
|  |   - if [[ "${QEMU_TARGET}" == "arm-softmmu" ]]; then | ||||||
|  |        git clone git://git.savannah.gnu.org/grub.git /tmp/grub && | ||||||
|  |        pushd /tmp/grub && | ||||||
|  |        git checkout grub-2.04 && | ||||||
|  |        ./bootstrap && | ||||||
|  |        ./configure --target=arm --with-platform=efi | ||||||
|  |        CC=gcc | ||||||
|  |        TARGET_CC=~/.buildman-toolchains/gcc-9.2.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-gcc | ||||||
|  |        TARGET_OBJCOPY=~/.buildman-toolchains/gcc-9.2.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-objcopy | ||||||
|  |        TARGET_STRIP=~/.buildman-toolchains/gcc-9.2.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-strip | ||||||
|  |        TARGET_NM=~/.buildman-toolchains/gcc-9.2.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-nm | ||||||
|  |        TARGET_RANLIB=~/.buildman-toolchains/gcc-9.2.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-ranlib && | ||||||
|  |        make -j4 && | ||||||
|  |        ./grub-mkimage -O arm-efi -o ~/grub_arm.efi --prefix= -d | ||||||
|  |        grub-core cat chain configfile echo efinet ext2 fat halt help linux | ||||||
|  |        lsefisystab loadenv lvm minicmd normal part_msdos part_gpt reboot | ||||||
|  |        search search_fs_file search_fs_uuid search_label serial sleep test | ||||||
|  |        true && | ||||||
|  |        popd; | ||||||
|  |     fi | ||||||
|  |   - if [[ "${QEMU_TARGET}" == "aarch64-softmmu" ]]; then | ||||||
|  |        git clone git://git.savannah.gnu.org/grub.git /tmp/grub && | ||||||
|  |        pushd /tmp/grub && | ||||||
|  |        git checkout grub-2.04 && | ||||||
|  |        ./bootstrap && | ||||||
|  |        ./configure --target=aarch64 --with-platform=efi | ||||||
|  |        CC=gcc | ||||||
|  |        TARGET_CC=~/.buildman-toolchains/gcc-9.2.0-nolibc/aarch64-linux/bin/aarch64-linux-gcc | ||||||
|  |        TARGET_OBJCOPY=~/.buildman-toolchains/gcc-9.2.0-nolibc/aarch64-linux/bin/aarch64-linux-objcopy | ||||||
|  |        TARGET_STRIP=~/.buildman-toolchains/gcc-9.2.0-nolibc/aarch64-linux/bin/aarch64-linux-strip | ||||||
|  |        TARGET_NM=~/.buildman-toolchains/gcc-9.2.0-nolibc/aarch64-linux/bin/aarch64-linux-nm | ||||||
|  |        TARGET_RANLIB=~/.buildman-toolchains/gcc-9.2.0-nolibc/aarch64-linux/bin/aarch64-linux-ranlib && | ||||||
|  |        make -j4 && | ||||||
|  |        ./grub-mkimage -O arm64-efi -o ~/grub_arm64.efi --prefix= -d | ||||||
|  |        grub-core cat chain configfile echo efinet ext2 fat halt help linux | ||||||
|  |        lsefisystab loadenv lvm minicmd normal part_msdos part_gpt reboot | ||||||
|  |        search search_fs_file search_fs_uuid search_label serial sleep test | ||||||
|  |        true && | ||||||
|  |        popd; | ||||||
|  |     fi | ||||||
|  |   - if [[ "${QEMU_TARGET}" == "riscv32-softmmu" ]]; then | ||||||
|  |        git clone git://git.savannah.gnu.org/grub.git /tmp/grub && | ||||||
|  |        pushd /tmp/grub && | ||||||
|  |        git checkout grub-2.04 && | ||||||
|  |        ./bootstrap && | ||||||
|  |        ./configure --target=riscv32 --with-platform=efi | ||||||
|  |        CC=gcc | ||||||
|  |        TARGET_CC=~/.buildman-toolchains/gcc-9.2.0-nolibc/riscv32-linux/bin/riscv32-linux-gcc | ||||||
|  |        TARGET_OBJCOPY=~/.buildman-toolchains/gcc-9.2.0-nolibc/riscv32-linux/bin/riscv32-linux-objcopy | ||||||
|  |        TARGET_STRIP=~/.buildman-toolchains/gcc-9.2.0-nolibc/riscv32-linux/bin/riscv32-linux-strip | ||||||
|  |        TARGET_NM=~/.buildman-toolchains/gcc-9.2.0-nolibc/riscv32-linux/bin/riscv32-linux-nm | ||||||
|  |        TARGET_RANLIB=~/.buildman-toolchains/gcc-9.2.0-nolibc/riscv32-linux/bin/riscv32-linux-ranlib && | ||||||
|  |        make -j4 && | ||||||
|  |        ./grub-mkimage -O riscv32-efi -o ~/grub_riscv32.efi --prefix= -d | ||||||
|  |        grub-core cat chain configfile echo efinet ext2 fat halt help linux | ||||||
|  |        lsefisystab loadenv lvm minicmd normal part_msdos part_gpt reboot | ||||||
|  |        search search_fs_file search_fs_uuid search_label serial sleep test | ||||||
|  |        true && | ||||||
|  |        popd; | ||||||
|  |     fi | ||||||
|  |   - if [[ "${QEMU_TARGET}" == "riscv64-softmmu" ]]; then | ||||||
|  |        git clone git://git.savannah.gnu.org/grub.git /tmp/grub && | ||||||
|  |        pushd /tmp/grub && | ||||||
|  |        git checkout grub-2.04 && | ||||||
|  |        ./bootstrap && | ||||||
|  |        ./configure --target=riscv64 --with-platform=efi | ||||||
|  |        CC=gcc | ||||||
|  |        TARGET_CC=~/.buildman-toolchains/gcc-9.2.0-nolibc/riscv64-linux/bin/riscv64-linux-gcc | ||||||
|  |        TARGET_OBJCOPY=~/.buildman-toolchains/gcc-9.2.0-nolibc/riscv64-linux/bin/riscv64-linux-objcopy | ||||||
|  |        TARGET_STRIP=~/.buildman-toolchains/gcc-9.2.0-nolibc/riscv64-linux/bin/riscv64-linux-strip | ||||||
|  |        TARGET_NM=~/.buildman-toolchains/gcc-9.2.0-nolibc/riscv64-linux/bin/riscv64-linux-nm | ||||||
|  |        TARGET_RANLIB=~/.buildman-toolchains/gcc-9.2.0-nolibc/riscv64-linux/bin/riscv64-linux-ranlib && | ||||||
|  |        make -j4 && | ||||||
|  |        ./grub-mkimage -O riscv64-efi -o ~/grub_riscv64.efi --prefix= -d | ||||||
|  |        grub-core cat chain configfile echo efinet ext2 fat halt help linux | ||||||
|  |        lsefisystab loadenv lvm minicmd normal part_msdos part_gpt reboot | ||||||
|  |        search search_fs_file search_fs_uuid search_label serial sleep test | ||||||
|  |        true && | ||||||
|  |        popd; | ||||||
|  |     fi | ||||||
|  |   - if [[ "${TEST_PY_BD}" == "qemu-riscv32_spl" ]]; then | ||||||
|  |        wget -O - https://github.com/riscv/opensbi/releases/download/v0.6/opensbi-0.6-rv32-bin.tar.xz | tar -C /tmp -xJ; | ||||||
|  |        export OPENSBI=/tmp/opensbi-0.6-rv32-bin/platform/qemu/virt/firmware/fw_dynamic.bin; | ||||||
|  |     fi | ||||||
|  |   - if [[ "${TEST_PY_BD}" == "qemu-riscv64_spl" ]]; then | ||||||
|  |        wget -O - https://github.com/riscv/opensbi/releases/download/v0.6/opensbi-0.6-rv64-bin.tar.xz | tar -C /tmp -xJ; | ||||||
|  |        export OPENSBI=/tmp/opensbi-0.6-rv64-bin/platform/qemu/virt/firmware/fw_dynamic.bin; | ||||||
|  |     fi | ||||||
|  |  | ||||||
| script: | script: | ||||||
|  # Comments must be outside the command strings below, or the Travis parser |  # Comments must be outside the command strings below, or the Travis parser | ||||||
|  # will get confused. |  # will get confused. | ||||||
|  # |  # | ||||||
|  # From buildman, exit code 129 means warnings only.  If we've been asked to |  # If we've been asked to use clang only do one configuration. | ||||||
|  # use clang only do one configuration. |  # | ||||||
|  |  # Build a selection of boards if TEST_PY_BD is empty | ||||||
|  - if [[ "${BUILDMAN}" != "" ]]; then |  - if [[ "${BUILDMAN}" != "" ]]; then | ||||||
|      ret=0; |      tools/buildman/buildman -P -E -W ${BUILDMAN} ${OVERRIDE}; | ||||||
|      tools/buildman/buildman -P -E ${BUILDMAN} ${OVERRIDE}|| ret=$?; |      if [[ $ret -ne 0 ]]; then | ||||||
|      if [[ $ret -ne 0 && $ret -ne 129 ]]; then |        tools/buildman/buildman -seP ${BUILDMAN}; | ||||||
|        tools/buildman/buildman -sdeP ${BUILDMAN}; |  | ||||||
|        exit $ret; |        exit $ret; | ||||||
|      fi; |      fi; | ||||||
|    fi |    fi | ||||||
|  # "not a_test_which_does_not_exist" is a dummy -k parameter which will |  # Build just the one board needed for testing, if TEST_PY_BD is non-empty | ||||||
|  # never prevent any test from running. That way, we can always pass |  # Note: "${var:+"-k $var"}" expands to "" if $var is empty, "-k $var" if not | ||||||
|  # "-k something" even when $TEST_PY_TEST_SPEC doesnt need a custom |  - if [[ "${TEST_PY_BD}" != "" ]]; then | ||||||
|  # value. |      export UBOOT_TRAVIS_BUILD_DIR=`cd .. && pwd`/${TEST_PY_BD}; | ||||||
|  - export UBOOT_TRAVIS_BUILD_DIR=`cd .. && pwd`/.bm-work/${TEST_PY_BD}; |      cp ~/grub_x86.efi $UBOOT_TRAVIS_BUILD_DIR/; | ||||||
|    cp ~/grub_x86.efi $UBOOT_TRAVIS_BUILD_DIR/; |      cp ~/grub_x64.efi $UBOOT_TRAVIS_BUILD_DIR/; | ||||||
|    cp ~/grub_x64.efi $UBOOT_TRAVIS_BUILD_DIR/; |      if [[ -e ~/grub_arm.efi ]]; then | ||||||
|    cp ~/grub2-arm/usr/lib/grub2/arm-efi/grub.efi $UBOOT_TRAVIS_BUILD_DIR/grub_arm.efi; |        cp ~/grub_arm.efi $UBOOT_TRAVIS_BUILD_DIR/; | ||||||
|    cp ~/grub2-arm64/usr/lib/grub2/arm64-efi/grub.efi $UBOOT_TRAVIS_BUILD_DIR/grub_arm64.efi; |      fi; | ||||||
|    if [[ "${TEST_PY_BD}" != "" ]]; then |      if [[ -e ~/grub_arm64.efi ]]; then | ||||||
|  |        cp ~/grub_arm64.efi $UBOOT_TRAVIS_BUILD_DIR/; | ||||||
|  |      fi; | ||||||
|  |      if [[ -e ~/grub_riscv32.efi ]]; then | ||||||
|  |        cp ~/grub_riscv32.efi $UBOOT_TRAVIS_BUILD_DIR/; | ||||||
|  |      fi; | ||||||
|  |      if [[ -e ~/grub_riscv64.efi ]]; then | ||||||
|  |        cp ~/grub_riscv64.efi $UBOOT_TRAVIS_BUILD_DIR/; | ||||||
|  |      fi; | ||||||
|  |      tools/buildman/buildman -o ${UBOOT_TRAVIS_BUILD_DIR} -w -E -W -e | ||||||
|  |        --board ${TEST_PY_BD} ${OVERRIDE} || exit; | ||||||
|      virtualenv -p /usr/bin/python3 /tmp/venv; |      virtualenv -p /usr/bin/python3 /tmp/venv; | ||||||
|      . /tmp/venv/bin/activate; |      . /tmp/venv/bin/activate; | ||||||
|      pip install -r test/py/requirements.txt; |      pip install -r test/py/requirements.txt; | ||||||
|      ./test/py/test.py --bd ${TEST_PY_BD} ${TEST_PY_ID} |      ./test/py/test.py --bd ${TEST_PY_BD} ${TEST_PY_ID} | ||||||
|        -k "${TEST_PY_TEST_SPEC:-not a_test_which_does_not_exist}" |        ${TEST_PY_TEST_SPEC:+"-k ${TEST_PY_TEST_SPEC}"} | ||||||
|        --build-dir "$UBOOT_TRAVIS_BUILD_DIR"; |        --build-dir "$UBOOT_TRAVIS_BUILD_DIR" || exit; | ||||||
|      ret=$?; |  | ||||||
|      if [[ $ret -ne 0 ]]; then |  | ||||||
|        exit $ret; |  | ||||||
|      fi; |  | ||||||
|      if [[ -n "${TEST_PY_TOOLS}" ]]; then |      if [[ -n "${TEST_PY_TOOLS}" ]]; then | ||||||
|        export PYTHONPATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt"; |        export PYTHONPATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt"; | ||||||
|        export PATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc:${PATH}"; |        export PATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc:${PATH}"; | ||||||
|        ./tools/binman/binman --toolpath ${UBOOT_TRAVIS_BUILD_DIR}/tools test && |        ./tools/binman/binman --toolpath ${UBOOT_TRAVIS_BUILD_DIR}/tools test && | ||||||
|        ./tools/patman/patman --test && |        ./tools/patman/patman --test && | ||||||
|        ./tools/buildman/buildman -t && |        ./tools/buildman/buildman -t && | ||||||
|        ./tools/dtoc/dtoc -t; |        ./tools/dtoc/dtoc -t && | ||||||
|  |        make testconfig; | ||||||
|      fi; |      fi; | ||||||
|    fi |    fi | ||||||
|  |  | ||||||
| @@ -353,7 +448,7 @@ matrix: | |||||||
|     # static code analysis with cppcheck (we can add --enable=all later) |     # static code analysis with cppcheck (we can add --enable=all later) | ||||||
|     - name: "cppcheck" |     - name: "cppcheck" | ||||||
|       script: |       script: | ||||||
|         - cppcheck --force --quiet --inline-suppr . |         - cppcheck -j$(nproc) --force --quiet --inline-suppr . | ||||||
|     # build HTML documentation |     # build HTML documentation | ||||||
|     - name: "htmldocs" |     - name: "htmldocs" | ||||||
|       script: |       script: | ||||||
| @@ -390,110 +485,111 @@ matrix: | |||||||
|     - name: "test/py sandbox" |     - name: "test/py sandbox" | ||||||
|       env: |       env: | ||||||
|         - TEST_PY_BD="sandbox" |         - TEST_PY_BD="sandbox" | ||||||
|           BUILDMAN="^sandbox$" |  | ||||||
|           TOOLCHAIN="i386" |           TOOLCHAIN="i386" | ||||||
|     - name: "test/py sandbox with clang" |     - name: "test/py sandbox with clang" | ||||||
|       env: |       env: | ||||||
|         - TEST_PY_BD="sandbox" |         - TEST_PY_BD="sandbox" | ||||||
|           BUILDMAN="^sandbox$" |  | ||||||
|           OVERRIDE="-O clang-7" |           OVERRIDE="-O clang-7" | ||||||
|     - name: "test/py sandbox_spl" |     - name: "test/py sandbox_spl" | ||||||
|       env: |       env: | ||||||
|         - TEST_PY_BD="sandbox_spl" |         - TEST_PY_BD="sandbox_spl" | ||||||
|           TEST_PY_TEST_SPEC="test_ofplatdata" |           TEST_PY_TEST_SPEC="test_ofplatdata or test_handoff" | ||||||
|           BUILDMAN="^sandbox$" |  | ||||||
|           TOOLCHAIN="i386" |           TOOLCHAIN="i386" | ||||||
|           TEST_PY_TOOLS="yes" |           TEST_PY_TOOLS="yes" | ||||||
|     - name: "test/py sandbox_flattree" |     - name: "test/py sandbox_flattree" | ||||||
|       env: |       env: | ||||||
|         - TEST_PY_BD="sandbox_flattree" |         - TEST_PY_BD="sandbox_flattree" | ||||||
|           BUILDMAN="^sandbox_flattree$" |  | ||||||
|           TOOLCHAIN="i386" |           TOOLCHAIN="i386" | ||||||
|     - name: "test/py evb-ast2500" |     - name: "test/py evb-ast2500" | ||||||
|       env: |       env: | ||||||
|         - TEST_PY_BD="evb-ast2500" |         - TEST_PY_BD="evb-ast2500" | ||||||
|           TEST_PY_ID="--id qemu" |           TEST_PY_ID="--id qemu" | ||||||
|           QEMU_TARGET="arm-softmmu" |           QEMU_TARGET="arm-softmmu" | ||||||
|           BUILDMAN="^evb-ast2500$" |  | ||||||
|     - name: "test/py vexpress_ca15_tc2" |     - name: "test/py vexpress_ca15_tc2" | ||||||
|       env: |       env: | ||||||
|         - TEST_PY_BD="vexpress_ca15_tc2" |         - TEST_PY_BD="vexpress_ca15_tc2" | ||||||
|           TEST_PY_ID="--id qemu" |           TEST_PY_ID="--id qemu" | ||||||
|           QEMU_TARGET="arm-softmmu" |           QEMU_TARGET="arm-softmmu" | ||||||
|           BUILDMAN="^vexpress_ca15_tc2$" |  | ||||||
|     - name: "test/py vexpress_ca9x4" |     - name: "test/py vexpress_ca9x4" | ||||||
|       env: |       env: | ||||||
|         - TEST_PY_BD="vexpress_ca9x4" |         - TEST_PY_BD="vexpress_ca9x4" | ||||||
|           TEST_PY_ID="--id qemu" |           TEST_PY_ID="--id qemu" | ||||||
|           QEMU_TARGET="arm-softmmu" |           QEMU_TARGET="arm-softmmu" | ||||||
|           BUILDMAN="^vexpress_ca9x4$" |  | ||||||
|     - name: "test/py integratorcp_cm926ejs" |     - name: "test/py integratorcp_cm926ejs" | ||||||
|       env: |       env: | ||||||
|         - TEST_PY_BD="integratorcp_cm926ejs" |         - TEST_PY_BD="integratorcp_cm926ejs" | ||||||
|           TEST_PY_TEST_SPEC="not sleep" |           TEST_PY_TEST_SPEC="not sleep" | ||||||
|           TEST_PY_ID="--id qemu" |           TEST_PY_ID="--id qemu" | ||||||
|           QEMU_TARGET="arm-softmmu" |           QEMU_TARGET="arm-softmmu" | ||||||
|           BUILDMAN="^integratorcp_cm926ejs$" |  | ||||||
|     - name: "test/py qemu_arm" |     - name: "test/py qemu_arm" | ||||||
|       env: |       env: | ||||||
|         - TEST_PY_BD="qemu_arm" |         - TEST_PY_BD="qemu_arm" | ||||||
|           TEST_PY_TEST_SPEC="not sleep" |           TEST_PY_TEST_SPEC="not sleep" | ||||||
|           QEMU_TARGET="arm-softmmu" |           QEMU_TARGET="arm-softmmu" | ||||||
|           BUILDMAN="^qemu_arm$" |  | ||||||
|     - name: "test/py qemu_arm64" |     - name: "test/py qemu_arm64" | ||||||
|       env: |       env: | ||||||
|         - TEST_PY_BD="qemu_arm64" |         - TEST_PY_BD="qemu_arm64" | ||||||
|           TEST_PY_TEST_SPEC="not sleep" |           TEST_PY_TEST_SPEC="not sleep" | ||||||
|           QEMU_TARGET="aarch64-softmmu" |           QEMU_TARGET="aarch64-softmmu" | ||||||
|           BUILDMAN="^qemu_arm64$" |  | ||||||
|     - name: "test/py qemu_mips" |     - name: "test/py qemu_mips" | ||||||
|       env: |       env: | ||||||
|         - TEST_PY_BD="qemu_mips" |         - TEST_PY_BD="qemu_mips" | ||||||
|           TEST_PY_TEST_SPEC="not sleep" |           TEST_PY_TEST_SPEC="not sleep" | ||||||
|           QEMU_TARGET="mips-softmmu" |           QEMU_TARGET="mips-softmmu" | ||||||
|           BUILDMAN="^qemu_mips$" |  | ||||||
|           TOOLCHAIN="mips" |           TOOLCHAIN="mips" | ||||||
|     - name: "test/py qemu_mipsel" |     - name: "test/py qemu_mipsel" | ||||||
|       env: |       env: | ||||||
|         - TEST_PY_BD="qemu_mipsel" |         - TEST_PY_BD="qemu_mipsel" | ||||||
|           TEST_PY_TEST_SPEC="not sleep" |           TEST_PY_TEST_SPEC="not sleep" | ||||||
|           QEMU_TARGET="mipsel-softmmu" |           QEMU_TARGET="mipsel-softmmu" | ||||||
|           BUILDMAN="^qemu_mipsel$" |  | ||||||
|           TOOLCHAIN="mips" |           TOOLCHAIN="mips" | ||||||
|     - name: "test/py qemu_mips64" |     - name: "test/py qemu_mips64" | ||||||
|       env: |       env: | ||||||
|         - TEST_PY_BD="qemu_mips64" |         - TEST_PY_BD="qemu_mips64" | ||||||
|           TEST_PY_TEST_SPEC="not sleep" |           TEST_PY_TEST_SPEC="not sleep" | ||||||
|           QEMU_TARGET="mips64-softmmu" |           QEMU_TARGET="mips64-softmmu" | ||||||
|           BUILDMAN="^qemu_mips64$" |  | ||||||
|           TOOLCHAIN="mips" |           TOOLCHAIN="mips" | ||||||
|     - name: "test/py qemu_mips64el" |     - name: "test/py qemu_mips64el" | ||||||
|       env: |       env: | ||||||
|         - TEST_PY_BD="qemu_mips64el" |         - TEST_PY_BD="qemu_mips64el" | ||||||
|           TEST_PY_TEST_SPEC="not sleep" |           TEST_PY_TEST_SPEC="not sleep" | ||||||
|           QEMU_TARGET="mips64el-softmmu" |           QEMU_TARGET="mips64el-softmmu" | ||||||
|           BUILDMAN="^qemu_mips64el$" |  | ||||||
|           TOOLCHAIN="mips" |           TOOLCHAIN="mips" | ||||||
|     - name: "test/py qemu-ppce500" |     - name: "test/py qemu-ppce500" | ||||||
|       env: |       env: | ||||||
|         - TEST_PY_BD="qemu-ppce500" |         - TEST_PY_BD="qemu-ppce500" | ||||||
|           TEST_PY_TEST_SPEC="not sleep" |           TEST_PY_TEST_SPEC="not sleep" | ||||||
|           QEMU_TARGET="ppc-softmmu" |           QEMU_TARGET="ppc-softmmu" | ||||||
|           BUILDMAN="^qemu-ppce500$" |  | ||||||
|           TOOLCHAIN="powerpc" |           TOOLCHAIN="powerpc" | ||||||
|  |     - name: "test/py qemu-riscv32" | ||||||
|  |       env: | ||||||
|  |         - TEST_PY_BD="qemu-riscv32" | ||||||
|  |           TEST_PY_TEST_SPEC="not sleep" | ||||||
|  |           QEMU_TARGET="riscv32-softmmu" | ||||||
|  |           TOOLCHAIN="riscv" | ||||||
|     - name: "test/py qemu-riscv64" |     - name: "test/py qemu-riscv64" | ||||||
|       env: |       env: | ||||||
|         - TEST_PY_BD="qemu-riscv64" |         - TEST_PY_BD="qemu-riscv64" | ||||||
|           TEST_PY_TEST_SPEC="not sleep" |           TEST_PY_TEST_SPEC="not sleep" | ||||||
|           QEMU_TARGET="riscv64-softmmu" |           QEMU_TARGET="riscv64-softmmu" | ||||||
|           BUILDMAN="^qemu-riscv64$" |           TOOLCHAIN="riscv" | ||||||
|  |     - name: "test/py qemu-riscv32_spl" | ||||||
|  |       env: | ||||||
|  |         - TEST_PY_BD="qemu-riscv32_spl" | ||||||
|  |           TEST_PY_TEST_SPEC="not sleep" | ||||||
|  |           QEMU_TARGET="riscv32-softmmu" | ||||||
|  |           TOOLCHAIN="riscv" | ||||||
|  |     - name: "test/py qemu-riscv64_spl" | ||||||
|  |       env: | ||||||
|  |         - TEST_PY_BD="qemu-riscv64_spl" | ||||||
|  |           TEST_PY_TEST_SPEC="not sleep" | ||||||
|  |           QEMU_TARGET="riscv64-softmmu" | ||||||
|           TOOLCHAIN="riscv" |           TOOLCHAIN="riscv" | ||||||
|     - name: "test/py qemu-x86" |     - name: "test/py qemu-x86" | ||||||
|       env: |       env: | ||||||
|         - TEST_PY_BD="qemu-x86" |         - TEST_PY_BD="qemu-x86" | ||||||
|           TEST_PY_TEST_SPEC="not sleep" |           TEST_PY_TEST_SPEC="not sleep" | ||||||
|           QEMU_TARGET="i386-softmmu" |           QEMU_TARGET="i386-softmmu" | ||||||
|           BUILDMAN="^qemu-x86$" |  | ||||||
|           TOOLCHAIN="i386" |           TOOLCHAIN="i386" | ||||||
|           BUILD_ROM="yes" |           BUILD_ROM="yes" | ||||||
|     - name: "test/py qemu-x86_64" |     - name: "test/py qemu-x86_64" | ||||||
| @@ -501,30 +597,26 @@ matrix: | |||||||
|         - TEST_PY_BD="qemu-x86_64" |         - TEST_PY_BD="qemu-x86_64" | ||||||
|           TEST_PY_TEST_SPEC="not sleep" |           TEST_PY_TEST_SPEC="not sleep" | ||||||
|           QEMU_TARGET="x86_64-softmmu" |           QEMU_TARGET="x86_64-softmmu" | ||||||
|           BUILDMAN="^qemu-x86_64$" |  | ||||||
|           TOOLCHAIN="i386" |           TOOLCHAIN="i386" | ||||||
|           BUILD_ROM="yes" |           BUILD_ROM="yes" | ||||||
|     - name: "test/py zynq_zc702" |     - name: "test/py xilinx_zynq_virt" | ||||||
|       env: |       env: | ||||||
|         - TEST_PY_BD="zynq_zc702" |         - TEST_PY_BD="xilinx_zynq_virt" | ||||||
|           TEST_PY_TEST_SPEC="not sleep" |           TEST_PY_TEST_SPEC="not sleep" | ||||||
|           QEMU_TARGET="arm-softmmu" |           QEMU_TARGET="arm-softmmu" | ||||||
|           TEST_PY_ID="--id qemu" |           TEST_PY_ID="--id qemu" | ||||||
|           BUILDMAN="^zynq_zc702$" |  | ||||||
|     - name: "test/py xilinx_versal_virt" |     - name: "test/py xilinx_versal_virt" | ||||||
|       env: |       env: | ||||||
|         - TEST_PY_BD="xilinx_versal_virt" |         - TEST_PY_BD="xilinx_versal_virt" | ||||||
|           TEST_PY_TEST_SPEC="not sleep" |           TEST_PY_TEST_SPEC="not sleep" | ||||||
|           QEMU_TARGET="aarch64-softmmu" |           QEMU_TARGET="aarch64-softmmu" | ||||||
|           TEST_PY_ID="--id qemu" |           TEST_PY_ID="--id qemu" | ||||||
|           BUILDMAN="^xilinx_versal_virt$" |  | ||||||
|     - name: "test/py xtfpga" |     - name: "test/py xtfpga" | ||||||
|       env: |       env: | ||||||
|         - TEST_PY_BD="xtfpga" |         - TEST_PY_BD="xtfpga" | ||||||
|           TEST_PY_TEST_SPEC="not sleep" |           TEST_PY_TEST_SPEC="not sleep" | ||||||
|           QEMU_TARGET="xtensa-softmmu" |           QEMU_TARGET="xtensa-softmmu" | ||||||
|           TEST_PY_ID="--id qemu" |           TEST_PY_ID="--id qemu" | ||||||
|           BUILDMAN="^xtfpga$" |  | ||||||
|           TOOLCHAIN="xtensa-dc233c-elf" |           TOOLCHAIN="xtensa-dc233c-elf" | ||||||
|  |  | ||||||
| # TODO make it perfect ;-r | # TODO make it perfect ;-r | ||||||
|   | |||||||
							
								
								
									
										10
									
								
								Kconfig
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								Kconfig
									
									
									
									
									
								
							| @@ -3,11 +3,7 @@ | |||||||
| # see the file Documentation/kbuild/kconfig-language.txt in the | # see the file Documentation/kbuild/kconfig-language.txt in the | ||||||
| # Linux kernel source tree. | # Linux kernel source tree. | ||||||
| # | # | ||||||
| mainmenu "U-Boot $UBOOTVERSION Configuration" | mainmenu "U-Boot $(UBOOTVERSION) Configuration" | ||||||
|  |  | ||||||
| config UBOOTVERSION |  | ||||||
| 	string |  | ||||||
| 	option env="UBOOTVERSION" |  | ||||||
|  |  | ||||||
| # Allow defaults in arch-specific code to override any given here | # Allow defaults in arch-specific code to override any given here | ||||||
| source "arch/Kconfig" | source "arch/Kconfig" | ||||||
| @@ -360,6 +356,8 @@ config FIT_SIGNATURE | |||||||
| 	depends on DM | 	depends on DM | ||||||
| 	select HASH | 	select HASH | ||||||
| 	select RSA | 	select RSA | ||||||
|  | 	select RSA_VERIFY | ||||||
|  | 	select IMAGE_SIGN_INFO | ||||||
| 	help | 	help | ||||||
| 	  This option enables signature verification of FIT uImages, | 	  This option enables signature verification of FIT uImages, | ||||||
| 	  using a hash signed and verified using RSA. If | 	  using a hash signed and verified using RSA. If | ||||||
| @@ -448,6 +446,8 @@ config SPL_FIT_SIGNATURE | |||||||
| 	depends on SPL_DM | 	depends on SPL_DM | ||||||
| 	select SPL_FIT | 	select SPL_FIT | ||||||
| 	select SPL_RSA | 	select SPL_RSA | ||||||
|  | 	select SPL_RSA_VERIFY | ||||||
|  | 	select IMAGE_SIGN_INFO | ||||||
|  |  | ||||||
| config SPL_LOAD_FIT | config SPL_LOAD_FIT | ||||||
| 	bool "Enable SPL loading U-Boot as a FIT (basic fitImage features)" | 	bool "Enable SPL loading U-Boot as a FIT (basic fitImage features)" | ||||||
|   | |||||||
| @@ -447,6 +447,7 @@ M:	Michal Simek <michal.simek@xilinx.com> | |||||||
| S:	Maintained | S:	Maintained | ||||||
| T:	git https://gitlab.denx.de/u-boot/custodians/u-boot-microblaze.git | T:	git https://gitlab.denx.de/u-boot/custodians/u-boot-microblaze.git | ||||||
| F:	arch/arm/mach-versal/ | F:	arch/arm/mach-versal/ | ||||||
|  | F:	drivers/watchdog/xilinx_wwdt.c | ||||||
| N:	(?<!uni)versal | N:	(?<!uni)versal | ||||||
|  |  | ||||||
| ARM VERSATILE EXPRESS DRIVERS | ARM VERSATILE EXPRESS DRIVERS | ||||||
|   | |||||||
							
								
								
									
										91
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										91
									
								
								Makefile
									
									
									
									
									
								
							| @@ -271,11 +271,17 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \ | |||||||
| 	  else if [ -x /bin/bash ]; then echo /bin/bash; \ | 	  else if [ -x /bin/bash ]; then echo /bin/bash; \ | ||||||
| 	  else echo sh; fi ; fi) | 	  else echo sh; fi ; fi) | ||||||
|  |  | ||||||
|  | HOST_LFS_CFLAGS := $(shell getconf LFS_CFLAGS 2>/dev/null) | ||||||
|  | HOST_LFS_LDFLAGS := $(shell getconf LFS_LDFLAGS 2>/dev/null) | ||||||
|  | HOST_LFS_LIBS := $(shell getconf LFS_LIBS 2>/dev/null) | ||||||
|  |  | ||||||
| HOSTCC       = cc | HOSTCC       = cc | ||||||
| HOSTCXX      = c++ | HOSTCXX      = c++ | ||||||
| HOSTCFLAGS   = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer \ | KBUILD_HOSTCFLAGS   := -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer \ | ||||||
| 		$(if $(CONFIG_TOOLS_DEBUG),-g) | 		$(if $(CONFIG_TOOLS_DEBUG),-g) $(HOST_LFS_CFLAGS) $(HOSTCFLAGS) | ||||||
| HOSTCXXFLAGS = -O2 | KBUILD_HOSTCXXFLAGS := -O2 $(HOST_LFS_CFLAGS) $(HOSTCXXFLAGS) | ||||||
|  | KBUILD_HOSTLDFLAGS  := $(HOST_LFS_LDFLAGS) $(HOSTLDFLAGS) | ||||||
|  | KBUILD_HOSTLDLIBS   := $(HOST_LFS_LIBS) $(HOSTLDLIBS) | ||||||
|  |  | ||||||
| # With the move to GCC 6, we have implicitly upgraded our language | # With the move to GCC 6, we have implicitly upgraded our language | ||||||
| # standard to GNU11 (see https://gcc.gnu.org/gcc-5/porting_to.html). | # standard to GNU11 (see https://gcc.gnu.org/gcc-5/porting_to.html). | ||||||
| @@ -284,11 +290,11 @@ HOSTCXXFLAGS = -O2 | |||||||
| # these that our host tools are GNU11 (i.e. C11 w/ GNU extensions). | # these that our host tools are GNU11 (i.e. C11 w/ GNU extensions). | ||||||
| CSTD_FLAG := -std=gnu11 | CSTD_FLAG := -std=gnu11 | ||||||
| ifeq ($(HOSTOS),linux) | ifeq ($(HOSTOS),linux) | ||||||
| HOSTCFLAGS += $(CSTD_FLAG) | KBUILD_HOSTCFLAGS += $(CSTD_FLAG) | ||||||
| endif | endif | ||||||
|  |  | ||||||
| ifeq ($(HOSTOS),cygwin) | ifeq ($(HOSTOS),cygwin) | ||||||
| HOSTCFLAGS	+= -ansi | KBUILD_HOSTCFLAGS	+= -ansi | ||||||
| endif | endif | ||||||
|  |  | ||||||
| # Mac OS X / Darwin's C preprocessor is Apple specific.  It | # Mac OS X / Darwin's C preprocessor is Apple specific.  It | ||||||
| @@ -315,17 +321,17 @@ os_x_after = $(shell if [ $(DARWIN_MAJOR_VERSION) -ge $(1) -a \ | |||||||
|  |  | ||||||
| # Snow Leopards build environment has no longer restrictions as described above | # Snow Leopards build environment has no longer restrictions as described above | ||||||
| HOSTCC       = $(call os_x_before, 10, 5, "cc", "gcc") | HOSTCC       = $(call os_x_before, 10, 5, "cc", "gcc") | ||||||
| HOSTCFLAGS  += $(call os_x_before, 10, 4, "-traditional-cpp") | KBUILD_HOSTCFLAGS  += $(call os_x_before, 10, 4, "-traditional-cpp") | ||||||
| HOSTLDFLAGS += $(call os_x_before, 10, 5, "-multiply_defined suppress") | KBUILD_HOSTLDFLAGS += $(call os_x_before, 10, 5, "-multiply_defined suppress") | ||||||
|  |  | ||||||
| # since Lion (10.7) ASLR is on by default, but we use linker generated lists | # since Lion (10.7) ASLR is on by default, but we use linker generated lists | ||||||
| # in some host tools which is a problem then ... so disable ASLR for these | # in some host tools which is a problem then ... so disable ASLR for these | ||||||
| # tools | # tools | ||||||
| HOSTLDFLAGS += $(call os_x_before, 10, 7, "", "-Xlinker -no_pie") | KBUILD_HOSTLDFLAGS += $(call os_x_before, 10, 7, "", "-Xlinker -no_pie") | ||||||
|  |  | ||||||
| # macOS Mojave (10.14.X)  | # macOS Mojave (10.14.X)  | ||||||
| # Undefined symbols for architecture x86_64: "_PyArg_ParseTuple" | # Undefined symbols for architecture x86_64: "_PyArg_ParseTuple" | ||||||
| HOSTLDFLAGS += $(call os_x_after, 10, 14, "-lpython -dynamclib", "") | KBUILD_HOSTLDFLAGS += $(call os_x_after, 10, 14, "-lpython -dynamclib", "") | ||||||
| endif | endif | ||||||
|  |  | ||||||
| # Decide whether to build built-in, modular, or both. | # Decide whether to build built-in, modular, or both. | ||||||
| @@ -417,6 +423,23 @@ KBUILD_CFLAGS   := -Wall -Wstrict-prototypes \ | |||||||
| 		   -fno-builtin -ffreestanding $(CSTD_FLAG) | 		   -fno-builtin -ffreestanding $(CSTD_FLAG) | ||||||
| KBUILD_CFLAGS	+= -fshort-wchar -fno-strict-aliasing | KBUILD_CFLAGS	+= -fshort-wchar -fno-strict-aliasing | ||||||
| KBUILD_AFLAGS   := -D__ASSEMBLY__ | KBUILD_AFLAGS   := -D__ASSEMBLY__ | ||||||
|  | KBUILD_LDFLAGS  := | ||||||
|  |  | ||||||
|  | ifeq ($(cc-name),clang) | ||||||
|  | ifneq ($(CROSS_COMPILE),) | ||||||
|  | CLANG_TARGET	:= --target=$(notdir $(CROSS_COMPILE:%-=%)) | ||||||
|  | GCC_TOOLCHAIN_DIR := $(dir $(shell which $(LD))) | ||||||
|  | CLANG_PREFIX	:= --prefix=$(GCC_TOOLCHAIN_DIR) | ||||||
|  | GCC_TOOLCHAIN	:= $(realpath $(GCC_TOOLCHAIN_DIR)/..) | ||||||
|  | endif | ||||||
|  | ifneq ($(GCC_TOOLCHAIN),) | ||||||
|  | CLANG_GCC_TC	:= --gcc-toolchain=$(GCC_TOOLCHAIN) | ||||||
|  | endif | ||||||
|  | KBUILD_CFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC) $(CLANG_PREFIX) | ||||||
|  | KBUILD_AFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC) $(CLANG_PREFIX) | ||||||
|  | KBUILD_CFLAGS += $(call cc-option, -no-integrated-as) | ||||||
|  | KBUILD_AFLAGS += $(call cc-option, -no-integrated-as) | ||||||
|  | endif | ||||||
|  |  | ||||||
| # Don't generate position independent code | # Don't generate position independent code | ||||||
| KBUILD_CFLAGS	+= $(call cc-option,-fno-PIE) | KBUILD_CFLAGS	+= $(call cc-option,-fno-PIE) | ||||||
| @@ -428,14 +451,16 @@ UBOOTVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(SU | |||||||
|  |  | ||||||
| export VERSION PATCHLEVEL SUBLEVEL UBOOTRELEASE UBOOTVERSION | export VERSION PATCHLEVEL SUBLEVEL UBOOTRELEASE UBOOTVERSION | ||||||
| export ARCH CPU BOARD VENDOR SOC CPUDIR BOARDDIR | export ARCH CPU BOARD VENDOR SOC CPUDIR BOARDDIR | ||||||
| export CONFIG_SHELL HOSTCC HOSTCFLAGS HOSTLDFLAGS CROSS_COMPILE AS LD CC | export CONFIG_SHELL HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE AS LD CC | ||||||
| export CPP AR NM LDR STRIP OBJCOPY OBJDUMP | export CPP AR NM LDR STRIP OBJCOPY OBJDUMP KBUILD_HOSTLDFLAGS KBUILD_HOSTLDLIBS | ||||||
| export MAKE LEX YACC AWK PERL PYTHON PYTHON2 PYTHON3 | export MAKE LEX YACC AWK PERL PYTHON PYTHON2 PYTHON3 | ||||||
| export HOSTCXX HOSTCXXFLAGS CHECK CHECKFLAGS DTC DTC_FLAGS | export HOSTCXX KBUILD_HOSTCXXFLAGS CHECK CHECKFLAGS DTC DTC_FLAGS | ||||||
|  |  | ||||||
| export KBUILD_CPPFLAGS NOSTDINC_FLAGS UBOOTINCLUDE OBJCOPYFLAGS LDFLAGS | export KBUILD_CPPFLAGS NOSTDINC_FLAGS UBOOTINCLUDE OBJCOPYFLAGS KBUILD_LDFLAGS | ||||||
| export KBUILD_CFLAGS KBUILD_AFLAGS | export KBUILD_CFLAGS KBUILD_AFLAGS | ||||||
|  |  | ||||||
|  | export CC_VERSION_TEXT := $(shell $(CC) --version | head -n 1) | ||||||
|  |  | ||||||
| # When compiling out-of-tree modules, put MODVERDIR in the module | # When compiling out-of-tree modules, put MODVERDIR in the module | ||||||
| # tree rather than in the kernel tree. The kernel tree might | # tree rather than in the kernel tree. The kernel tree might | ||||||
| # even be read-only. | # even be read-only. | ||||||
| @@ -483,6 +508,7 @@ endif | |||||||
| version_h := include/generated/version_autogenerated.h | version_h := include/generated/version_autogenerated.h | ||||||
| timestamp_h := include/generated/timestamp_autogenerated.h | timestamp_h := include/generated/timestamp_autogenerated.h | ||||||
| defaultenv_h := include/generated/defaultenv_autogenerated.h | defaultenv_h := include/generated/defaultenv_autogenerated.h | ||||||
|  | dt_h := include/generated/dt.h | ||||||
|  |  | ||||||
| no-dot-config-targets := clean clobber mrproper distclean \ | no-dot-config-targets := clean clobber mrproper distclean \ | ||||||
| 			 help %docs check% coccicheck \ | 			 help %docs check% coccicheck \ | ||||||
| @@ -654,6 +680,9 @@ endif | |||||||
| KBUILD_CFLAGS += $(call cc-option,-fno-stack-protector) | KBUILD_CFLAGS += $(call cc-option,-fno-stack-protector) | ||||||
| KBUILD_CFLAGS += $(call cc-option,-fno-delete-null-pointer-checks) | KBUILD_CFLAGS += $(call cc-option,-fno-delete-null-pointer-checks) | ||||||
|  |  | ||||||
|  | # disable stringop warnings in gcc 8+ | ||||||
|  | KBUILD_CFLAGS += $(call cc-disable-warning, stringop-truncation) | ||||||
|  |  | ||||||
| # change __FILE__ to the relative path from the srctree | # change __FILE__ to the relative path from the srctree | ||||||
| KBUILD_CFLAGS	+= $(call cc-option,-fmacro-prefix-map=$(srctree)/=) | KBUILD_CFLAGS	+= $(call cc-option,-fmacro-prefix-map=$(srctree)/=) | ||||||
|  |  | ||||||
| @@ -678,7 +707,19 @@ ifeq ($(cc-name),clang) | |||||||
| KBUILD_CPPFLAGS += $(call cc-option,-Qunused-arguments,) | KBUILD_CPPFLAGS += $(call cc-option,-Qunused-arguments,) | ||||||
| KBUILD_CFLAGS += $(call cc-disable-warning, format-invalid-specifier) | KBUILD_CFLAGS += $(call cc-disable-warning, format-invalid-specifier) | ||||||
| KBUILD_CFLAGS += $(call cc-disable-warning, gnu) | KBUILD_CFLAGS += $(call cc-disable-warning, gnu) | ||||||
|  | KBUILD_CFLAGS += $(call cc-disable-warning, address-of-packed-member) | ||||||
|  | # Quiet clang warning: comparison of unsigned expression < 0 is always false | ||||||
|  | KBUILD_CFLAGS += $(call cc-disable-warning, tautological-compare) | ||||||
|  | # CLANG uses a _MergedGlobals as optimization, but this breaks modpost, as the | ||||||
|  | # source of a reference will be _MergedGlobals and not on of the whitelisted names. | ||||||
|  | # See modpost pattern 2 | ||||||
|  | KBUILD_CFLAGS += $(call cc-option, -mno-global-merge,) | ||||||
| KBUILD_CFLAGS += $(call cc-option, -fcatch-undefined-behavior) | KBUILD_CFLAGS += $(call cc-option, -fcatch-undefined-behavior) | ||||||
|  | else | ||||||
|  |  | ||||||
|  | # These warnings generated too much noise in a regular build. | ||||||
|  | # Use make W=1 to enable them (see scripts/Makefile.extrawarn) | ||||||
|  | KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable) | ||||||
| endif | endif | ||||||
|  |  | ||||||
| # turn jbsr into jsr for m68k | # turn jbsr into jsr for m68k | ||||||
| @@ -710,7 +751,6 @@ UBOOTINCLUDE    := \ | |||||||
| 		-include $(srctree)/include/linux/kconfig.h | 		-include $(srctree)/include/linux/kconfig.h | ||||||
|  |  | ||||||
| NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include) | NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include) | ||||||
| CHECKFLAGS     += $(NOSTDINC_FLAGS) |  | ||||||
|  |  | ||||||
| # FIX ME | # FIX ME | ||||||
| cpp_flags := $(KBUILD_CPPFLAGS) $(PLATFORM_CPPFLAGS) $(UBOOTINCLUDE) \ | cpp_flags := $(KBUILD_CPPFLAGS) $(PLATFORM_CPPFLAGS) $(UBOOTINCLUDE) \ | ||||||
| @@ -924,6 +964,12 @@ ifeq ($(CONFIG_ARC)$(CONFIG_NIOS2)$(CONFIG_X86)$(CONFIG_XTENSA),) | |||||||
| LDFLAGS_u-boot += -Ttext $(CONFIG_SYS_TEXT_BASE) | LDFLAGS_u-boot += -Ttext $(CONFIG_SYS_TEXT_BASE) | ||||||
| endif | endif | ||||||
|  |  | ||||||
|  | # insure the checker run with the right endianness | ||||||
|  | CHECKFLAGS += $(if $(CONFIG_CPU_BIG_ENDIAN),-mbig-endian,-mlittle-endian) | ||||||
|  |  | ||||||
|  | # the checker needs the correct machine size | ||||||
|  | CHECKFLAGS += $(if $(CONFIG_64BIT),-m64,-m32) | ||||||
|  |  | ||||||
| # Normally we fill empty space with 0xff | # Normally we fill empty space with 0xff | ||||||
| quiet_cmd_objcopy = OBJCOPY $@ | quiet_cmd_objcopy = OBJCOPY $@ | ||||||
| cmd_objcopy = $(OBJCOPY) --gap-fill=0xff $(OBJCOPYFLAGS) \ | cmd_objcopy = $(OBJCOPY) --gap-fill=0xff $(OBJCOPYFLAGS) \ | ||||||
| @@ -1683,7 +1729,7 @@ ARCH_POSTLINK := $(wildcard $(srctree)/arch/$(ARCH)/Makefile.postlink) | |||||||
| # Rule to link u-boot | # Rule to link u-boot | ||||||
| # May be overridden by arch/$(ARCH)/config.mk | # May be overridden by arch/$(ARCH)/config.mk | ||||||
| quiet_cmd_u-boot__ ?= LD      $@ | quiet_cmd_u-boot__ ?= LD      $@ | ||||||
|       cmd_u-boot__ ?= $(LD) $(LDFLAGS) $(LDFLAGS_u-boot) -o $@ \ |       cmd_u-boot__ ?= $(LD) $(KBUILD_LDFLAGS) $(LDFLAGS_u-boot) -o $@ \ | ||||||
|       -T u-boot.lds $(u-boot-init)                             \ |       -T u-boot.lds $(u-boot-init)                             \ | ||||||
|       --start-group $(u-boot-main) --end-group                 \ |       --start-group $(u-boot-main) --end-group                 \ | ||||||
|       $(PLATFORM_LIBS) -Map u-boot.map;                        \ |       $(PLATFORM_LIBS) -Map u-boot.map;                        \ | ||||||
| @@ -1767,7 +1813,7 @@ endif | |||||||
| # prepare2 creates a makefile if using a separate output directory | # prepare2 creates a makefile if using a separate output directory | ||||||
| prepare2: prepare3 outputmakefile cfg | prepare2: prepare3 outputmakefile cfg | ||||||
|  |  | ||||||
| prepare1: prepare2 $(version_h) $(timestamp_h) \ | prepare1: prepare2 $(version_h) $(timestamp_h) $(dt_h) \ | ||||||
|                    include/config/auto.conf |                    include/config/auto.conf | ||||||
| ifeq ($(wildcard $(LDSCRIPT)),) | ifeq ($(wildcard $(LDSCRIPT)),) | ||||||
| 	@echo >&2 "  Could not find linker script." | 	@echo >&2 "  Could not find linker script." | ||||||
| @@ -1833,12 +1879,23 @@ define filechk_defaultenv.h | |||||||
| 	 xxd -i ; echo ", 0x00" ; ) | 	 xxd -i ; echo ", 0x00" ; ) | ||||||
| endef | endef | ||||||
|  |  | ||||||
|  | define filechk_dt.h | ||||||
|  | 	(if test -n "$${DEVICE_TREE}"; then \ | ||||||
|  | 		echo \#define DEVICE_TREE \"$(DEVICE_TREE)\"; \ | ||||||
|  | 	else \ | ||||||
|  | 		echo \#define DEVICE_TREE CONFIG_DEFAULT_DEVICE_TREE; \ | ||||||
|  | 	fi) | ||||||
|  | endef | ||||||
|  |  | ||||||
| $(version_h): include/config/uboot.release FORCE | $(version_h): include/config/uboot.release FORCE | ||||||
| 	$(call filechk,version.h) | 	$(call filechk,version.h) | ||||||
|  |  | ||||||
| $(timestamp_h): $(srctree)/Makefile FORCE | $(timestamp_h): $(srctree)/Makefile FORCE | ||||||
| 	$(call filechk,timestamp.h) | 	$(call filechk,timestamp.h) | ||||||
|  |  | ||||||
|  | $(dt_h): $(srctree)/Makefile FORCE | ||||||
|  | 	$(call filechk,dt.h) | ||||||
|  |  | ||||||
| $(defaultenv_h): $(CONFIG_DEFAULT_ENV_FILE:"%"=%) FORCE | $(defaultenv_h): $(CONFIG_DEFAULT_ENV_FILE:"%"=%) FORCE | ||||||
| 	$(call filechk,defaultenv.h) | 	$(call filechk,defaultenv.h) | ||||||
|  |  | ||||||
| @@ -2195,6 +2252,6 @@ endif	# skip-makefile | |||||||
| PHONY += FORCE | PHONY += FORCE | ||||||
| FORCE: | FORCE: | ||||||
|  |  | ||||||
| # Declare the contents of the .PHONY variable as phony.  We keep that | # Declare the contents of the PHONY variable as phony.  We keep that | ||||||
| # information in a variable so we can use it in if_changed and friends. | # information in a variable so we can use it in if_changed and friends. | ||||||
| .PHONY: $(PHONY) | .PHONY: $(PHONY) | ||||||
|   | |||||||
| @@ -9,12 +9,12 @@ CONFIG_SYS_BIG_ENDIAN = 1 | |||||||
| endif | endif | ||||||
|  |  | ||||||
| ifdef CONFIG_SYS_LITTLE_ENDIAN | ifdef CONFIG_SYS_LITTLE_ENDIAN | ||||||
| PLATFORM_LDFLAGS += -EL | KBUILD_LDFLAGS += -EL | ||||||
| PLATFORM_CPPFLAGS += -mlittle-endian | PLATFORM_CPPFLAGS += -mlittle-endian | ||||||
| endif | endif | ||||||
|  |  | ||||||
| ifdef CONFIG_SYS_BIG_ENDIAN | ifdef CONFIG_SYS_BIG_ENDIAN | ||||||
| PLATFORM_LDFLAGS += -EB | KBUILD_LDFLAGS += -EB | ||||||
| PLATFORM_CPPFLAGS += -mbig-endian | PLATFORM_CPPFLAGS += -mbig-endian | ||||||
| endif | endif | ||||||
|  |  | ||||||
|   | |||||||
| @@ -147,7 +147,9 @@ dtb-$(CONFIG_ARCH_MESON) += \ | |||||||
| 	meson-gxl-s805x-libretech-ac.dtb \ | 	meson-gxl-s805x-libretech-ac.dtb \ | ||||||
| 	meson-gxl-s905x-libretech-cc.dtb \ | 	meson-gxl-s905x-libretech-cc.dtb \ | ||||||
| 	meson-gxl-s905x-khadas-vim.dtb \ | 	meson-gxl-s905x-khadas-vim.dtb \ | ||||||
|  | 	meson-gxl-s905d-libretech-pc.dtb \ | ||||||
| 	meson-gxm-khadas-vim2.dtb \ | 	meson-gxm-khadas-vim2.dtb \ | ||||||
|  | 	meson-gxm-s912-libretech-pc.dtb \ | ||||||
| 	meson-axg-s400.dtb \ | 	meson-axg-s400.dtb \ | ||||||
| 	meson-g12a-u200.dtb \ | 	meson-g12a-u200.dtb \ | ||||||
| 	meson-g12a-sei510.dtb \ | 	meson-g12a-sei510.dtb \ | ||||||
| @@ -277,6 +279,7 @@ dtb-$(CONFIG_ARCH_ZYNQMP) += \ | |||||||
| 	zynqmp-zcu102-revA.dtb			\ | 	zynqmp-zcu102-revA.dtb			\ | ||||||
| 	zynqmp-zcu102-revB.dtb			\ | 	zynqmp-zcu102-revB.dtb			\ | ||||||
| 	zynqmp-zcu102-rev1.0.dtb		\ | 	zynqmp-zcu102-rev1.0.dtb		\ | ||||||
|  | 	zynqmp-zcu102-rev1.1.dtb		\ | ||||||
| 	zynqmp-zcu104-revA.dtb			\ | 	zynqmp-zcu104-revA.dtb			\ | ||||||
| 	zynqmp-zcu104-revC.dtb			\ | 	zynqmp-zcu104-revC.dtb			\ | ||||||
| 	zynqmp-zcu106-revA.dtb			\ | 	zynqmp-zcu106-revA.dtb			\ | ||||||
|   | |||||||
| @@ -53,6 +53,8 @@ | |||||||
| 		bkl-pwm = <&pwmbacklight>; | 		bkl-pwm = <&pwmbacklight>; | ||||||
| 		bkl-tps = <&tps_bl>; | 		bkl-tps = <&tps_bl>; | ||||||
|  |  | ||||||
|  | 		u-boot,dm-pre-reloc; | ||||||
|  |  | ||||||
| 		panel-info { | 		panel-info { | ||||||
| 			ac-bias		= <255>; | 			ac-bias		= <255>; | ||||||
| 			ac-bias-intrpt	= <0>; | 			ac-bias-intrpt	= <0>; | ||||||
|   | |||||||
| @@ -53,6 +53,8 @@ | |||||||
| 		bkl-pwm = <&pwmbacklight>; | 		bkl-pwm = <&pwmbacklight>; | ||||||
| 		bkl-tps = <&tps_bl>; | 		bkl-tps = <&tps_bl>; | ||||||
|  |  | ||||||
|  | 		u-boot,dm-pre-reloc; | ||||||
|  |  | ||||||
| 		panel-info { | 		panel-info { | ||||||
| 			ac-bias		= <255>; | 			ac-bias		= <255>; | ||||||
| 			ac-bias-intrpt	= <0>; | 			ac-bias-intrpt	= <0>; | ||||||
|   | |||||||
| @@ -54,6 +54,8 @@ | |||||||
| 		bkl-pwm = <&pwmbacklight>; | 		bkl-pwm = <&pwmbacklight>; | ||||||
| 		bkl-tps = <&tps_bl>; | 		bkl-tps = <&tps_bl>; | ||||||
|  |  | ||||||
|  | 		u-boot,dm-pre-reloc; | ||||||
|  |  | ||||||
| 		panel-info { | 		panel-info { | ||||||
| 			ac-bias		= <255>; | 			ac-bias		= <255>; | ||||||
| 			ac-bias-intrpt	= <0>; | 			ac-bias-intrpt	= <0>; | ||||||
|   | |||||||
| @@ -59,6 +59,7 @@ | |||||||
| 		/*backlight = <&tps_bl>; */ | 		/*backlight = <&tps_bl>; */ | ||||||
| 		compatible = "ti,tilcdc,panel"; | 		compatible = "ti,tilcdc,panel"; | ||||||
| 		status = "okay"; | 		status = "okay"; | ||||||
|  | 		u-boot,dm-pre-reloc; | ||||||
|  |  | ||||||
| 		panel-info { | 		panel-info { | ||||||
| 			ac-bias		= <255>; | 			ac-bias		= <255>; | ||||||
|   | |||||||
| @@ -79,6 +79,8 @@ | |||||||
|  |  | ||||||
| 		backlight = <&tps_bl>; | 		backlight = <&tps_bl>; | ||||||
|  |  | ||||||
|  | 		u-boot,dm-pre-reloc; | ||||||
|  |  | ||||||
| 		panel-info { | 		panel-info { | ||||||
| 			ac-bias		= <255>; | 			ac-bias		= <255>; | ||||||
| 			ac-bias-intrpt	= <0>; | 			ac-bias-intrpt	= <0>; | ||||||
|   | |||||||
| @@ -3,6 +3,12 @@ | |||||||
|  * Copyright (C) 2017 Texas Instruments Incorporated - http://www.ti.com/ |  * Copyright (C) 2017 Texas Instruments Incorporated - http://www.ti.com/ | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	panel { | ||||||
|  | 		u-boot,dm-pre-reloc; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  |  | ||||||
| &mmc3 { | &mmc3 { | ||||||
| 	status = "disabled"; | 	status = "disabled"; | ||||||
|   | |||||||
							
								
								
									
										12
									
								
								arch/arm/dts/am335x-evmsk-u-boot.dtsi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								arch/arm/dts/am335x-evmsk-u-boot.dtsi
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | |||||||
|  | // SPDX-License-Identifier: GPL-2.0+ | ||||||
|  | /* | ||||||
|  |  * am335x-evmsk U-Boot Additions | ||||||
|  |  * | ||||||
|  |  * Copyright (C) 2020 Dario Binacchi <dariobin@libero.it> | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	panel { | ||||||
|  | 		u-boot,dm-pre-reloc; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
| @@ -8,6 +8,10 @@ | |||||||
| 	ocp { | 	ocp { | ||||||
| 		u-boot,dm-pre-reloc; | 		u-boot,dm-pre-reloc; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
|  | 	panel { | ||||||
|  | 		u-boot,dm-pre-reloc; | ||||||
|  | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| &l4_wkup { | &l4_wkup { | ||||||
|   | |||||||
| @@ -7,6 +7,10 @@ | |||||||
| 	ocp { | 	ocp { | ||||||
| 		u-boot,dm-pre-reloc; | 		u-boot,dm-pre-reloc; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
|  | 	panel { | ||||||
|  | 		u-boot,dm-pre-reloc; | ||||||
|  | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| &l4_wkup { | &l4_wkup { | ||||||
|   | |||||||
							
								
								
									
										12
									
								
								arch/arm/dts/am335x-pxm50-u-boot.dtsi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								arch/arm/dts/am335x-pxm50-u-boot.dtsi
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | |||||||
|  | // SPDX-License-Identifier: GPL-2.0+ | ||||||
|  | /* | ||||||
|  |  * am335x-pxm50 U-Boot Additions | ||||||
|  |  * | ||||||
|  |  * Copyright (C) 2020 Dario Binacchi <dariobin@libero.it> | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	panel { | ||||||
|  | 		u-boot,dm-pre-reloc; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
							
								
								
									
										12
									
								
								arch/arm/dts/am335x-rut-u-boot.dtsi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								arch/arm/dts/am335x-rut-u-boot.dtsi
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | |||||||
|  | // SPDX-License-Identifier: GPL-2.0+ | ||||||
|  | /* | ||||||
|  |  * am335x-rut U-Boot Additions | ||||||
|  |  * | ||||||
|  |  * Copyright (C) 2020 Dario Binacchi <dariobin@libero.it> | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	panel { | ||||||
|  | 		u-boot,dm-pre-reloc; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
| @@ -2,7 +2,7 @@ | |||||||
| /* | /* | ||||||
|  * dts file for Avnet Ultra96 rev1 |  * dts file for Avnet Ultra96 rev1 | ||||||
|  * |  * | ||||||
|  * (C) Copyright 2018, Xilinx, Inc. |  * (C) Copyright 2018 - 2020, Xilinx, Inc. | ||||||
|  * |  * | ||||||
|  * Michal Simek <michal.simek@xilinx.com> |  * Michal Simek <michal.simek@xilinx.com> | ||||||
|  */ |  */ | ||||||
|   | |||||||
| @@ -14,6 +14,10 @@ | |||||||
| 	nand { | 	nand { | ||||||
| 		compatible = "ti,davinci-nand"; | 		compatible = "ti,davinci-nand"; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
|  | 	panel { | ||||||
|  | 		u-boot,dm-pre-reloc; | ||||||
|  | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| ð0 { | ð0 { | ||||||
|   | |||||||
| @@ -64,4 +64,42 @@ | |||||||
| 			loczrama = <1>; | 			loczrama = <1>; | ||||||
| 		}; | 		}; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
|  | 	fss: fss@47000000 { | ||||||
|  | 		compatible = "simple-bus"; | ||||||
|  | 		#address-cells = <2>; | ||||||
|  | 		#size-cells = <2>; | ||||||
|  | 		ranges; | ||||||
|  |  | ||||||
|  | 		ospi0: spi@47040000 { | ||||||
|  | 			compatible = "ti,am654-ospi", "cdns,qspi-nor"; | ||||||
|  | 			reg = <0x0 0x47040000 0x0 0x100>, | ||||||
|  | 				<0x5 0x00000000 0x1 0x0000000>; | ||||||
|  | 			interrupts = <GIC_SPI 552 IRQ_TYPE_LEVEL_HIGH>; | ||||||
|  | 			cdns,fifo-depth = <256>; | ||||||
|  | 			cdns,fifo-width = <4>; | ||||||
|  | 			cdns,trigger-address = <0x0>; | ||||||
|  | 			clocks = <&k3_clks 248 0>; | ||||||
|  | 			assigned-clocks = <&k3_clks 248 0>; | ||||||
|  | 			assigned-clock-parents = <&k3_clks 248 2>; | ||||||
|  | 			assigned-clock-rates = <166666666>; | ||||||
|  | 			power-domains = <&k3_pds 248 TI_SCI_PD_EXCLUSIVE>; | ||||||
|  | 			#address-cells = <1>; | ||||||
|  | 			#size-cells = <0>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ospi1: spi@47050000 { | ||||||
|  | 			compatible = "ti,am654-ospi", "cdns,qspi-nor"; | ||||||
|  | 			reg = <0x0 0x47050000 0x0 0x100>, | ||||||
|  | 				<0x7 0x00000000 0x1 0x00000000>; | ||||||
|  | 			interrupts = <GIC_SPI 553 IRQ_TYPE_LEVEL_HIGH>; | ||||||
|  | 			cdns,fifo-depth = <256>; | ||||||
|  | 			cdns,fifo-width = <4>; | ||||||
|  | 			cdns,trigger-address = <0x0>; | ||||||
|  | 			clocks = <&k3_clks 249 6>; | ||||||
|  | 			power-domains = <&k3_pds 249 TI_SCI_PD_EXCLUSIVE>; | ||||||
|  | 			#address-cells = <1>; | ||||||
|  | 			#size-cells = <0>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
| }; | }; | ||||||
|   | |||||||
| @@ -30,6 +30,8 @@ | |||||||
| 		i2c3 = &main_i2c1; | 		i2c3 = &main_i2c1; | ||||||
| 		i2c4 = &main_i2c2; | 		i2c4 = &main_i2c2; | ||||||
| 		i2c5 = &main_i2c3; | 		i2c5 = &main_i2c3; | ||||||
|  | 		spi0 = &ospi0; | ||||||
|  | 		spi1 = &ospi1; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 	chosen { }; | 	chosen { }; | ||||||
| @@ -79,7 +81,11 @@ | |||||||
| 			 <0x00 0x42040000 0x00 0x42040000 0x00 0x03ac2400>, | 			 <0x00 0x42040000 0x00 0x42040000 0x00 0x03ac2400>, | ||||||
| 			 <0x00 0x45100000 0x00 0x45100000 0x00 0x00c24000>, | 			 <0x00 0x45100000 0x00 0x45100000 0x00 0x00c24000>, | ||||||
| 			 <0x00 0x46000000 0x00 0x46000000 0x00 0x00200000>, | 			 <0x00 0x46000000 0x00 0x46000000 0x00 0x00200000>, | ||||||
| 			 <0x00 0x47000000 0x00 0x47000000 0x00 0x00068400>; | 			 <0x00 0x47000000 0x00 0x47000000 0x00 0x00068400>, | ||||||
|  | 			 <0x00 0x50000000 0x00 0x50000000 0x00 0x8000000>, | ||||||
|  | 			 <0x00 0x70000000 0x00 0x70000000 0x00 0x200000>, | ||||||
|  | 			 <0x05 0x00000000 0x05 0x00000000 0x01 0x0000000>, | ||||||
|  | 			 <0x07 0x00000000 0x07 0x00000000 0x01 0x0000000>; | ||||||
|  |  | ||||||
| 		cbass_mcu: interconnect@28380000 { | 		cbass_mcu: interconnect@28380000 { | ||||||
| 			compatible = "simple-bus"; | 			compatible = "simple-bus"; | ||||||
| @@ -93,7 +99,10 @@ | |||||||
| 				 <0x00 0x42040000 0x00 0x42040000 0x00 0x03ac2400>, /* WKUP */ | 				 <0x00 0x42040000 0x00 0x42040000 0x00 0x03ac2400>, /* WKUP */ | ||||||
| 				 <0x00 0x45100000 0x00 0x45100000 0x00 0x00c24000>, /* MMRs, remaining NAVSS */ | 				 <0x00 0x45100000 0x00 0x45100000 0x00 0x00c24000>, /* MMRs, remaining NAVSS */ | ||||||
| 				 <0x00 0x46000000 0x00 0x46000000 0x00 0x00200000>, /* CPSW */ | 				 <0x00 0x46000000 0x00 0x46000000 0x00 0x00200000>, /* CPSW */ | ||||||
| 				 <0x00 0x47000000 0x00 0x47000000 0x00 0x00068400>; /* OSPI space 1 */ | 				 <0x00 0x47000000 0x00 0x47000000 0x00 0x00068400>, /* OSPI space 1 */ | ||||||
|  | 				 <0x00 0x50000000 0x00 0x50000000 0x00 0x8000000>, /*  FSS OSPI0 data region 1 */ | ||||||
|  | 				 <0x05 0x00000000 0x05 0x00000000 0x01 0x0000000>, /* FSS OSPI0 data region 3*/ | ||||||
|  | 				 <0x07 0x00000000 0x07 0x00000000 0x01 0x0000000>; /* FSS OSPI1 data region 3*/ | ||||||
|  |  | ||||||
| 			cbass_wakeup: interconnect@42040000 { | 			cbass_wakeup: interconnect@42040000 { | ||||||
| 				compatible = "simple-bus"; | 				compatible = "simple-bus"; | ||||||
|   | |||||||
| @@ -52,6 +52,7 @@ | |||||||
| 		#address-cells = <2>; | 		#address-cells = <2>; | ||||||
| 		#size-cells = <2>; | 		#size-cells = <2>; | ||||||
| 		ranges; | 		ranges; | ||||||
|  | 		u-boot,dm-spl; | ||||||
|  |  | ||||||
| 		ti,sci-dev-id = <119>; | 		ti,sci-dev-id = <119>; | ||||||
|  |  | ||||||
| @@ -68,6 +69,7 @@ | |||||||
| 			ti,dma-ring-reset-quirk; | 			ti,dma-ring-reset-quirk; | ||||||
| 			ti,sci = <&dmsc>; | 			ti,sci = <&dmsc>; | ||||||
| 			ti,sci-dev-id = <195>; | 			ti,sci-dev-id = <195>; | ||||||
|  | 			u-boot,dm-spl; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| 		mcu_udmap: udmap@285c0000 { | 		mcu_udmap: udmap@285c0000 { | ||||||
| @@ -90,6 +92,7 @@ | |||||||
| 						<0x4>; /* RX_CHAN */ | 						<0x4>; /* RX_CHAN */ | ||||||
| 			ti,sci-rm-range-rflow = <0x5>; /* GP RFLOW */ | 			ti,sci-rm-range-rflow = <0x5>; /* GP RFLOW */ | ||||||
| 			dma-coherent; | 			dma-coherent; | ||||||
|  | 			u-boot,dm-spl; | ||||||
| 		}; | 		}; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| @@ -314,6 +317,10 @@ | |||||||
| 			AM65X_WKUP_IOPAD(0x0088, PIN_INPUT, 0) /* (L4) MCU_MDIO0_MDIO */ | 			AM65X_WKUP_IOPAD(0x0088, PIN_INPUT, 0) /* (L4) MCU_MDIO0_MDIO */ | ||||||
| 		>; | 		>; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
|  | 	mcu-fss0-ospi0-pins-default { | ||||||
|  | 		u-boot,dm-spl; | ||||||
|  | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| &main_uart0 { | &main_uart0 { | ||||||
| @@ -374,3 +381,15 @@ | |||||||
| &usb1 { | &usb1 { | ||||||
| 	dr_mode = "peripheral"; | 	dr_mode = "peripheral"; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | &fss { | ||||||
|  | 	u-boot,dm-spl; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &ospi0 { | ||||||
|  | 	u-boot,dm-spl; | ||||||
|  |  | ||||||
|  | 	 flash@0{ | ||||||
|  | 		u-boot,dm-spl; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|   | |||||||
| @@ -64,6 +64,29 @@ | |||||||
| 			AM65X_IOPAD(0x02c0, PIN_OUTPUT, 0) /* (AC8) USB1_DRVVBUS */ | 			AM65X_IOPAD(0x02c0, PIN_OUTPUT, 0) /* (AC8) USB1_DRVVBUS */ | ||||||
| 		>; | 		>; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
|  | 	main_i2c2_pins_default: main-i2c2-pins-default { | ||||||
|  | 		pinctrl-single,pins = < | ||||||
|  | 			AM65X_IOPAD(0x0074, PIN_INPUT, 5) /* (T27) GPMC0_CSn3.I2C2_SCL */ | ||||||
|  | 			AM65X_IOPAD(0x0070, PIN_INPUT, 5) /* (R25) GPMC0_CSn2.I2C2_SDA */ | ||||||
|  | 		>; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &main_pmx1 { | ||||||
|  | 	main_i2c0_pins_default: main-i2c0-pins-default { | ||||||
|  | 		pinctrl-single,pins = < | ||||||
|  | 			AM65X_IOPAD(0x0000, PIN_INPUT, 0) /* (D20) I2C0_SCL */ | ||||||
|  | 			AM65X_IOPAD(0x0004, PIN_INPUT, 0) /* (C21) I2C0_SDA */ | ||||||
|  | 		>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	main_i2c1_pins_default: main-i2c1-pins-default { | ||||||
|  | 		pinctrl-single,pins = < | ||||||
|  | 			AM65X_IOPAD(0x0008, PIN_INPUT, 0) /* (B21) I2C1_SCL */ | ||||||
|  | 			AM65X_IOPAD(0x000c, PIN_INPUT, 0) /* (E21) I2C1_SDA */ | ||||||
|  | 		>; | ||||||
|  | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| &wkup_pmx0 { | &wkup_pmx0 { | ||||||
| @@ -73,6 +96,22 @@ | |||||||
| 			AM65X_WKUP_IOPAD(0x00e4, PIN_INPUT, 0) /* (AD6) WKUP_I2C0_SDA */ | 			AM65X_WKUP_IOPAD(0x00e4, PIN_INPUT, 0) /* (AD6) WKUP_I2C0_SDA */ | ||||||
| 		>; | 		>; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
|  | 	mcu_fss0_ospi0_pins_default: mcu-fss0-ospi0-pins_default { | ||||||
|  | 		pinctrl-single,pins = < | ||||||
|  | 			AM65X_WKUP_IOPAD(0x0000, PIN_OUTPUT, 0) /* (V1) MCU_OSPI0_CLK */ | ||||||
|  | 			AM65X_WKUP_IOPAD(0x0008, PIN_INPUT, 0)	 /* (U2) MCU_OSPI0_DQS */ | ||||||
|  | 			AM65X_WKUP_IOPAD(0x000c, PIN_INPUT, 0)  /* (U4) MCU_OSPI0_D0 */ | ||||||
|  | 			AM65X_WKUP_IOPAD(0x0010, PIN_INPUT, 0)  /* (U5) MCU_OSPI0_D1 */ | ||||||
|  | 			AM65X_WKUP_IOPAD(0x0014, PIN_INPUT, 0)  /* (T2) MCU_OSPI0_D2 */ | ||||||
|  | 			AM65X_WKUP_IOPAD(0x0018, PIN_INPUT, 0)  /* (T3) MCU_OSPI0_D3 */ | ||||||
|  | 			AM65X_WKUP_IOPAD(0x001c, PIN_INPUT, 0)  /* (T4) MCU_OSPI0_D4 */ | ||||||
|  | 			AM65X_WKUP_IOPAD(0x0020, PIN_INPUT, 0)  /* (T5) MCU_OSPI0_D5 */ | ||||||
|  | 			AM65X_WKUP_IOPAD(0x0024, PIN_INPUT, 0)  /* (R2) MCU_OSPI0_D6 */ | ||||||
|  | 			AM65X_WKUP_IOPAD(0x0028, PIN_INPUT, 0)  /* (R3) MCU_OSPI0_D7 */ | ||||||
|  | 			AM65X_WKUP_IOPAD(0x002c, PIN_OUTPUT, 0) /* (R4) MCU_OSPI0_CSn0 */ | ||||||
|  | 		>; | ||||||
|  | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| &sdhci0 { | &sdhci0 { | ||||||
| @@ -96,6 +135,31 @@ | |||||||
| 	}; | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | &main_i2c0 { | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	pinctrl-0 = <&main_i2c0_pins_default>; | ||||||
|  | 	clock-frequency = <400000>; | ||||||
|  |  | ||||||
|  | 	pca9555: gpio@21 { | ||||||
|  | 		compatible = "nxp,pca9555"; | ||||||
|  | 		reg = <0x21>; | ||||||
|  | 		gpio-controller; | ||||||
|  | 		#gpio-cells = <2>; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &main_i2c1 { | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	pinctrl-0 = <&main_i2c1_pins_default>; | ||||||
|  | 	clock-frequency = <400000>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &main_i2c2 { | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	pinctrl-0 = <&main_i2c2_pins_default>; | ||||||
|  | 	clock-frequency = <400000>; | ||||||
|  | }; | ||||||
|  |  | ||||||
| &dwc3_1 { | &dwc3_1 { | ||||||
| 	status = "okay"; | 	status = "okay"; | ||||||
| }; | }; | ||||||
| @@ -117,3 +181,23 @@ | |||||||
| &usb0_phy { | &usb0_phy { | ||||||
| 	status = "disabled"; | 	status = "disabled"; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | &ospi0 { | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	pinctrl-0 = <&mcu_fss0_ospi0_pins_default>; | ||||||
|  |  | ||||||
|  | 	flash@0{ | ||||||
|  | 		compatible = "jedec,spi-nor"; | ||||||
|  | 		reg = <0x0>; | ||||||
|  | 		spi-tx-bus-width = <1>; | ||||||
|  | 		spi-rx-bus-width = <8>; | ||||||
|  | 		spi-max-frequency = <40000000>; | ||||||
|  | 		cdns,tshsl-ns = <60>; | ||||||
|  | 		cdns,tsd2d-ns = <60>; | ||||||
|  | 		cdns,tchsh-ns = <60>; | ||||||
|  | 		cdns,tslch-ns = <60>; | ||||||
|  | 		cdns,read-delay = <0>; | ||||||
|  | 		#address-cells = <1>; | ||||||
|  | 		#size-cells = <1>; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|   | |||||||
| @@ -179,6 +179,22 @@ | |||||||
| 			AM65X_WKUP_IOPAD(0x00e4, PIN_INPUT, 0) /* (AD6) WKUP_I2C0_SDA */ | 			AM65X_WKUP_IOPAD(0x00e4, PIN_INPUT, 0) /* (AD6) WKUP_I2C0_SDA */ | ||||||
| 		>; | 		>; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
|  | 	mcu_fss0_ospi0_pins_default: mcu-fss0-ospi0-pins_default { | ||||||
|  | 		pinctrl-single,pins = < | ||||||
|  | 			AM65X_WKUP_IOPAD(0x0000, PIN_OUTPUT, 0) /* (V1) MCU_OSPI0_CLK */ | ||||||
|  | 			AM65X_WKUP_IOPAD(0x0008, PIN_INPUT, 0)	 /* (U2) MCU_OSPI0_DQS */ | ||||||
|  | 			AM65X_WKUP_IOPAD(0x000c, PIN_INPUT, 0)  /* (U4) MCU_OSPI0_D0 */ | ||||||
|  | 			AM65X_WKUP_IOPAD(0x0010, PIN_INPUT, 0)  /* (U5) MCU_OSPI0_D1 */ | ||||||
|  | 			AM65X_WKUP_IOPAD(0x0014, PIN_INPUT, 0)  /* (T2) MCU_OSPI0_D2 */ | ||||||
|  | 			AM65X_WKUP_IOPAD(0x0018, PIN_INPUT, 0)  /* (T3) MCU_OSPI0_D3 */ | ||||||
|  | 			AM65X_WKUP_IOPAD(0x001c, PIN_INPUT, 0)  /* (T4) MCU_OSPI0_D4 */ | ||||||
|  | 			AM65X_WKUP_IOPAD(0x0020, PIN_INPUT, 0)  /* (T5) MCU_OSPI0_D5 */ | ||||||
|  | 			AM65X_WKUP_IOPAD(0x0024, PIN_INPUT, 0)  /* (R2) MCU_OSPI0_D6 */ | ||||||
|  | 			AM65X_WKUP_IOPAD(0x0028, PIN_INPUT, 0)  /* (R3) MCU_OSPI0_D7 */ | ||||||
|  | 			AM65X_WKUP_IOPAD(0x002c, PIN_OUTPUT, 0) /* (R4) MCU_OSPI0_CSn0 */ | ||||||
|  | 		>; | ||||||
|  | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| &main_pmx0 { | &main_pmx0 { | ||||||
| @@ -239,3 +255,26 @@ | |||||||
| 		u-boot,dm-spl; | 		u-boot,dm-spl; | ||||||
| 	}; | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | &ospi0 { | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	pinctrl-0 = <&mcu_fss0_ospi0_pins_default>; | ||||||
|  |  | ||||||
|  | 	reg = <0x0 0x47040000 0x0 0x100>, | ||||||
|  | 	      <0x0 0x50000000 0x0 0x8000000>; | ||||||
|  |  | ||||||
|  | 	flash@0{ | ||||||
|  | 		compatible = "jedec,spi-nor"; | ||||||
|  | 		reg = <0x0>; | ||||||
|  | 		spi-tx-bus-width = <1>; | ||||||
|  | 		spi-rx-bus-width = <8>; | ||||||
|  | 		spi-max-frequency = <40000000>; | ||||||
|  | 		cdns,tshsl-ns = <60>; | ||||||
|  | 		cdns,tsd2d-ns = <60>; | ||||||
|  | 		cdns,tchsh-ns = <60>; | ||||||
|  | 		cdns,tslch-ns = <60>; | ||||||
|  | 		cdns,read-delay = <0>; | ||||||
|  | 		#address-cells = <1>; | ||||||
|  | 		#size-cells = <1>; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|   | |||||||
| @@ -349,3 +349,31 @@ | |||||||
| &exp2 { | &exp2 { | ||||||
| 	u-boot,dm-spl; | 	u-boot,dm-spl; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | &mcu_fss0_ospi0_pins_default { | ||||||
|  | 	u-boot,dm-spl; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &fss { | ||||||
|  | 	u-boot,dm-spl; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &ospi0 { | ||||||
|  | 	u-boot,dm-spl; | ||||||
|  |  | ||||||
|  | 	flash@0 { | ||||||
|  | 		u-boot,dm-spl; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &ospi1 { | ||||||
|  | 	u-boot,dm-spl; | ||||||
|  |  | ||||||
|  | 	flash@0 { | ||||||
|  | 		u-boot,dm-spl; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &mcu_fss0_ospi1_pins_default { | ||||||
|  | 	u-boot,dm-spl; | ||||||
|  | }; | ||||||
|   | |||||||
| @@ -123,6 +123,19 @@ | |||||||
| 			J721E_WKUP_IOPAD(0xfc, PIN_INPUT_PULLUP, 0) /* (H24) WKUP_I2C0_SDA */ | 			J721E_WKUP_IOPAD(0xfc, PIN_INPUT_PULLUP, 0) /* (H24) WKUP_I2C0_SDA */ | ||||||
| 		>; | 		>; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
|  | 	mcu_fss0_ospi1_pins_default: mcu-fss0-ospi1-pins-default { | ||||||
|  | 		pinctrl-single,pins = < | ||||||
|  | 			J721E_WKUP_IOPAD(0x34, PIN_OUTPUT, 0) /* (F22) MCU_OSPI1_CLK */ | ||||||
|  | 			J721E_WKUP_IOPAD(0x50, PIN_OUTPUT, 0) /* (C22) MCU_OSPI1_CSn0 */ | ||||||
|  | 			J721E_WKUP_IOPAD(0x40, PIN_INPUT, 0) /* (D22) MCU_OSPI1_D0 */ | ||||||
|  | 			J721E_WKUP_IOPAD(0x44, PIN_INPUT, 0) /* (G22) MCU_OSPI1_D1 */ | ||||||
|  | 			J721E_WKUP_IOPAD(0x48, PIN_INPUT, 0) /* (D23) MCU_OSPI1_D2 */ | ||||||
|  | 			J721E_WKUP_IOPAD(0x4c, PIN_INPUT, 0) /* (C23) MCU_OSPI1_D3 */ | ||||||
|  | 			J721E_WKUP_IOPAD(0x3c, PIN_INPUT, 0) /* (B23) MCU_OSPI1_DQS */ | ||||||
|  | 			J721E_WKUP_IOPAD(0x38, PIN_INPUT, 0) /* (A23) MCU_OSPI1_LBCLKO */ | ||||||
|  | 		>; | ||||||
|  | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| &usbss0 { | &usbss0 { | ||||||
| @@ -172,3 +185,23 @@ | |||||||
| 		#gpio-cells = <2>; | 		#gpio-cells = <2>; | ||||||
| 	}; | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | &ospi1 { | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	pinctrl-0 = <&mcu_fss0_ospi1_pins_default>; | ||||||
|  |  | ||||||
|  | 	flash@0{ | ||||||
|  | 		compatible = "jedec,spi-nor"; | ||||||
|  | 		reg = <0x0>; | ||||||
|  | 		spi-tx-bus-width = <1>; | ||||||
|  | 		spi-rx-bus-width = <4>; | ||||||
|  | 		spi-max-frequency = <40000000>; | ||||||
|  | 		cdns,tshsl-ns = <60>; | ||||||
|  | 		cdns,tsd2d-ns = <60>; | ||||||
|  | 		cdns,tchsh-ns = <60>; | ||||||
|  | 		cdns,tslch-ns = <60>; | ||||||
|  | 		cdns,read-delay = <2>; | ||||||
|  | 		#address-cells = <1>; | ||||||
|  | 		#size-cells = <1>; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|   | |||||||
| @@ -143,6 +143,39 @@ | |||||||
| 			assigned-clocks = <&k3_clks 102 0>; | 			assigned-clocks = <&k3_clks 102 0>; | ||||||
| 			assigned-clock-rates = <250000000>; | 			assigned-clock-rates = <250000000>; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
|  | 		ospi0: spi@47040000 { | ||||||
|  | 			compatible = "ti,am654-ospi"; | ||||||
|  | 			reg = <0x0 0x47040000 0x0 0x100>, | ||||||
|  | 				<0x5 0x00000000 0x1 0x0000000>; | ||||||
|  | 			interrupts = <GIC_SPI 840 IRQ_TYPE_LEVEL_HIGH>; | ||||||
|  | 			cdns,fifo-depth = <256>; | ||||||
|  | 			cdns,fifo-width = <4>; | ||||||
|  | 			cdns,trigger-address = <0x0>; | ||||||
|  | 			clocks = <&k3_clks 103 0>; | ||||||
|  | 			assigned-clocks = <&k3_clks 103 0>; | ||||||
|  | 			assigned-clock-parents = <&k3_clks 103 2>; | ||||||
|  | 			assigned-clock-rates = <166666666>; | ||||||
|  | 			power-domains = <&k3_pds 103 TI_SCI_PD_EXCLUSIVE>; | ||||||
|  | 			#address-cells = <1>; | ||||||
|  | 			#size-cells = <0>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ospi1: spi@47050000 { | ||||||
|  | 			compatible = "ti,am654-ospi"; | ||||||
|  | 			reg = <0x0 0x47050000 0x0 0x100>, | ||||||
|  | 				<0x7 0x00000000 0x1 0x00000000>; | ||||||
|  | 			interrupts = <GIC_SPI 841 IRQ_TYPE_LEVEL_HIGH>; | ||||||
|  | 			cdns,fifo-depth = <256>; | ||||||
|  | 			cdns,fifo-width = <4>; | ||||||
|  | 			cdns,trigger-address = <0x0>; | ||||||
|  | 			clocks = <&k3_clks 104 0>; | ||||||
|  | 			assigned-clocks = <&k3_clks 104 0>; | ||||||
|  | 			assigned-clock-rates = <133333333>; | ||||||
|  | 			power-domains = <&k3_pds 104 TI_SCI_PD_EXCLUSIVE>; | ||||||
|  | 			#address-cells = <1>; | ||||||
|  | 			#size-cells = <0>; | ||||||
|  | 		}; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 	mcu_i2c0: i2c@40b00000 { | 	mcu_i2c0: i2c@40b00000 { | ||||||
|   | |||||||
							
								
								
									
										34
									
								
								arch/arm/dts/k3-j721e-r5-common-proc-board-u-boot.dtsi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								arch/arm/dts/k3-j721e-r5-common-proc-board-u-boot.dtsi
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,34 @@ | |||||||
|  | // SPDX-License-Identifier: GPL-2.0 | ||||||
|  | /* | ||||||
|  |  * Copyright (C) 2020 Texas Instruments Incorporated - http://www.ti.com/ | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	chosen { | ||||||
|  | 		firmware-loader = &fs_loader0; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	fs_loader0: fs_loader@0 { | ||||||
|  | 		u-boot,dm-pre-reloc; | ||||||
|  | 		compatible = "u-boot,fs-loader"; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &main_r5fss0 { | ||||||
|  | 	u-boot,dm-spl; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &main_r5fss0_core0 { | ||||||
|  | 	u-boot,dm-spl; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &main_r5fss0_core1 { | ||||||
|  | 	u-boot,dm-spl; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &tps659413a { | ||||||
|  | 	esm: esm { | ||||||
|  | 		compatible = "ti,tps659413-esm"; | ||||||
|  | 		u-boot,dm-spl; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
| @@ -13,6 +13,8 @@ | |||||||
| 	aliases { | 	aliases { | ||||||
| 		remoteproc0 = &sysctrler; | 		remoteproc0 = &sysctrler; | ||||||
| 		remoteproc1 = &a72_0; | 		remoteproc1 = &a72_0; | ||||||
|  | 		remoteproc2 = &main_r5fss0_core0; | ||||||
|  | 		remoteproc3 = &main_r5fss0_core1; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 	chosen { | 	chosen { | ||||||
| @@ -75,6 +77,15 @@ | |||||||
| 	}; | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | &cbass_main { | ||||||
|  | 	main_esm: esm@700000 { | ||||||
|  | 		compatible = "ti,j721e-esm"; | ||||||
|  | 		reg = <0x0 0x700000 0x0 0x1000>; | ||||||
|  | 		ti,esm-pins = <344>, <345>; | ||||||
|  | 		u-boot,dm-spl; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
| &dmsc { | &dmsc { | ||||||
| 	mboxes= <&mcu_secproxy 8>, <&mcu_secproxy 6>, <&mcu_secproxy 5>; | 	mboxes= <&mcu_secproxy 8>, <&mcu_secproxy 6>, <&mcu_secproxy 5>; | ||||||
| 	mbox-names = "tx", "rx", "notify"; | 	mbox-names = "tx", "rx", "notify"; | ||||||
| @@ -107,6 +118,36 @@ | |||||||
| 			J721E_WKUP_IOPAD(0xfc, PIN_INPUT_PULLUP, 0) /* (H24) WKUP_I2C0_SDA */ | 			J721E_WKUP_IOPAD(0xfc, PIN_INPUT_PULLUP, 0) /* (H24) WKUP_I2C0_SDA */ | ||||||
| 		>; | 		>; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
|  | 	mcu_fss0_ospi0_pins_default: mcu-fss0-ospi0-pins-default { | ||||||
|  | 		pinctrl-single,pins = < | ||||||
|  | 			J721E_WKUP_IOPAD(0x0000, PIN_OUTPUT, 0) /* MCU_OSPI0_CLK */ | ||||||
|  | 			J721E_WKUP_IOPAD(0x0008, PIN_INPUT, 0)  /* MCU_OSPI0_DQS */ | ||||||
|  | 			J721E_WKUP_IOPAD(0x000c, PIN_INPUT, 0)  /* MCU_OSPI0_D0 */ | ||||||
|  | 			J721E_WKUP_IOPAD(0x0010, PIN_INPUT, 0)  /* MCU_OSPI0_D1 */ | ||||||
|  | 			J721E_WKUP_IOPAD(0x0014, PIN_INPUT, 0)  /* MCU_OSPI0_D2 */ | ||||||
|  | 			J721E_WKUP_IOPAD(0x0018, PIN_INPUT, 0)  /* MCU_OSPI0_D3 */ | ||||||
|  | 			J721E_WKUP_IOPAD(0x001c, PIN_INPUT, 0)  /* MCU_OSPI0_D4 */ | ||||||
|  | 			J721E_WKUP_IOPAD(0x0020, PIN_INPUT, 0)  /* MCU_OSPI0_D5 */ | ||||||
|  | 			J721E_WKUP_IOPAD(0x0024, PIN_INPUT, 0)  /* MCU_OSPI0_D6 */ | ||||||
|  | 			J721E_WKUP_IOPAD(0x0028, PIN_INPUT, 0)  /* MCU_OSPI0_D7 */ | ||||||
|  | 			J721E_WKUP_IOPAD(0x002c, PIN_OUTPUT, 0) /* MCU_OSPI0_CSn0 */ | ||||||
|  | 		>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	mcu_fss0_ospi1_pins_default: mcu-fss0-ospi1-pins-default { | ||||||
|  | 		u-boot,dm-spl; | ||||||
|  | 		pinctrl-single,pins = < | ||||||
|  | 			J721E_WKUP_IOPAD(0x34, PIN_OUTPUT, 0) /* (F22) MCU_OSPI1_CLK */ | ||||||
|  | 			J721E_WKUP_IOPAD(0x50, PIN_OUTPUT, 0) /* (C22) MCU_OSPI1_CSn0 */ | ||||||
|  | 			J721E_WKUP_IOPAD(0x40, PIN_INPUT, 0) /* (D22) MCU_OSPI1_D0 */ | ||||||
|  | 			J721E_WKUP_IOPAD(0x44, PIN_INPUT, 0) /* (G22) MCU_OSPI1_D1 */ | ||||||
|  | 			J721E_WKUP_IOPAD(0x48, PIN_INPUT, 0) /* (D23) MCU_OSPI1_D2 */ | ||||||
|  | 			J721E_WKUP_IOPAD(0x4c, PIN_INPUT, 0) /* (C23) MCU_OSPI1_D3 */ | ||||||
|  | 			J721E_WKUP_IOPAD(0x3c, PIN_INPUT, 0) /* (B23) MCU_OSPI1_DQS */ | ||||||
|  | 			J721E_WKUP_IOPAD(0x38, PIN_INPUT, 0) /* (A23) MCU_OSPI1_LBCLKO */ | ||||||
|  | 		>; | ||||||
|  | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| &main_pmx0 { | &main_pmx0 { | ||||||
| @@ -256,4 +297,52 @@ | |||||||
| 	}; | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | &ospi0 { | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	pinctrl-0 = <&mcu_fss0_ospi0_pins_default>; | ||||||
|  |  | ||||||
|  | 	reg = <0x0 0x47040000 0x0 0x100>, | ||||||
|  | 	      <0x0 0x50000000 0x0 0x8000000>; | ||||||
|  |  | ||||||
|  | 	flash@0{ | ||||||
|  | 		compatible = "jedec,spi-nor"; | ||||||
|  | 		reg = <0x0>; | ||||||
|  | 		spi-tx-bus-width = <1>; | ||||||
|  | 		spi-rx-bus-width = <8>; | ||||||
|  | 		spi-max-frequency = <40000000>; | ||||||
|  | 		cdns,tshsl-ns = <60>; | ||||||
|  | 		cdns,tsd2d-ns = <60>; | ||||||
|  | 		cdns,tchsh-ns = <60>; | ||||||
|  | 		cdns,tslch-ns = <60>; | ||||||
|  | 		cdns,read-delay = <0>; | ||||||
|  | 		#address-cells = <1>; | ||||||
|  | 		#size-cells = <1>; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &ospi1 { | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	pinctrl-0 = <&mcu_fss0_ospi1_pins_default>; | ||||||
|  | 	u-boot,dm-spl; | ||||||
|  |  | ||||||
|  | 	reg = <0x0 0x47050000 0x0 0x100>, | ||||||
|  | 	      <0x0 0x58000000 0x0 0x8000000>; | ||||||
|  |  | ||||||
|  | 	flash@0{ | ||||||
|  | 		compatible = "jedec,spi-nor"; | ||||||
|  | 		reg = <0x0>; | ||||||
|  | 		spi-tx-bus-width = <1>; | ||||||
|  | 		spi-rx-bus-width = <4>; | ||||||
|  | 		spi-max-frequency = <40000000>; | ||||||
|  | 		cdns,tshsl-ns = <60>; | ||||||
|  | 		cdns,tsd2d-ns = <60>; | ||||||
|  | 		cdns,tchsh-ns = <60>; | ||||||
|  | 		cdns,tslch-ns = <60>; | ||||||
|  | 		cdns,read-delay = <2>; | ||||||
|  | 		#address-cells = <1>; | ||||||
|  | 		#size-cells = <1>; | ||||||
|  | 		u-boot,dm-spl; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
| #include "k3-j721e-common-proc-board-u-boot.dtsi" | #include "k3-j721e-common-proc-board-u-boot.dtsi" | ||||||
|   | |||||||
| @@ -47,6 +47,22 @@ | |||||||
| 			J721E_WKUP_IOPAD(0x28, PIN_INPUT, 1) /* (G21) MCU_OSPI0_D7.MCU_HYPERBUS0_DQ7 */ | 			J721E_WKUP_IOPAD(0x28, PIN_INPUT, 1) /* (G21) MCU_OSPI0_D7.MCU_HYPERBUS0_DQ7 */ | ||||||
| 		>; | 		>; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
|  | 	mcu_fss0_ospi0_pins_default: mcu-fss0-ospi0-pins-default { | ||||||
|  | 		pinctrl-single,pins = < | ||||||
|  | 			J721E_WKUP_IOPAD(0x0000, PIN_OUTPUT, 0) /* MCU_OSPI0_CLK */ | ||||||
|  | 			J721E_WKUP_IOPAD(0x0008, PIN_INPUT, 0)  /* MCU_OSPI0_DQS */ | ||||||
|  | 			J721E_WKUP_IOPAD(0x000c, PIN_INPUT, 0)  /* MCU_OSPI0_D0 */ | ||||||
|  | 			J721E_WKUP_IOPAD(0x0010, PIN_INPUT, 0)  /* MCU_OSPI0_D1 */ | ||||||
|  | 			J721E_WKUP_IOPAD(0x0014, PIN_INPUT, 0)  /* MCU_OSPI0_D2 */ | ||||||
|  | 			J721E_WKUP_IOPAD(0x0018, PIN_INPUT, 0)  /* MCU_OSPI0_D3 */ | ||||||
|  | 			J721E_WKUP_IOPAD(0x001c, PIN_INPUT, 0)  /* MCU_OSPI0_D4 */ | ||||||
|  | 			J721E_WKUP_IOPAD(0x0020, PIN_INPUT, 0)  /* MCU_OSPI0_D5 */ | ||||||
|  | 			J721E_WKUP_IOPAD(0x0024, PIN_INPUT, 0)  /* MCU_OSPI0_D6 */ | ||||||
|  | 			J721E_WKUP_IOPAD(0x0028, PIN_INPUT, 0)  /* MCU_OSPI0_D7 */ | ||||||
|  | 			J721E_WKUP_IOPAD(0x002c, PIN_OUTPUT, 0) /* MCU_OSPI0_CSn0 */ | ||||||
|  | 		>; | ||||||
|  | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| &hbmc { | &hbmc { | ||||||
| @@ -61,3 +77,23 @@ | |||||||
| 		reg = <0x0 0x0 0x4000000>; | 		reg = <0x0 0x0 0x4000000>; | ||||||
| 	}; | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | &ospi0 { | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	pinctrl-0 = <&mcu_fss0_ospi0_pins_default>; | ||||||
|  |  | ||||||
|  | 	flash@0{ | ||||||
|  | 		compatible = "jedec,spi-nor"; | ||||||
|  | 		reg = <0x0>; | ||||||
|  | 		spi-tx-bus-width = <1>; | ||||||
|  | 		spi-rx-bus-width = <8>; | ||||||
|  | 		spi-max-frequency = <40000000>; | ||||||
|  | 		cdns,tshsl-ns = <60>; | ||||||
|  | 		cdns,tsd2d-ns = <60>; | ||||||
|  | 		cdns,tchsh-ns = <60>; | ||||||
|  | 		cdns,tslch-ns = <60>; | ||||||
|  | 		cdns,read-delay = <0>; | ||||||
|  | 		#address-cells = <1>; | ||||||
|  | 		#size-cells = <1>; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|   | |||||||
| @@ -40,6 +40,8 @@ | |||||||
| 		i2c7 = &main_i2c4; | 		i2c7 = &main_i2c4; | ||||||
| 		i2c8 = &main_i2c5; | 		i2c8 = &main_i2c5; | ||||||
| 		i2c9 = &main_i2c6; | 		i2c9 = &main_i2c6; | ||||||
|  | 		spi0 = &ospi0; | ||||||
|  | 		spi1 = &ospi1; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 	chosen { }; | 	chosen { }; | ||||||
| @@ -135,6 +137,7 @@ | |||||||
| 		#size-cells = <2>; | 		#size-cells = <2>; | ||||||
| 		ranges = <0x00 0x00100000 0x00 0x00100000 0x00 0x00020000>, /* ctrl mmr */ | 		ranges = <0x00 0x00100000 0x00 0x00100000 0x00 0x00020000>, /* ctrl mmr */ | ||||||
| 			 <0x00 0x00600000 0x00 0x00600000 0x00 0x00031100>, /* GPIO */ | 			 <0x00 0x00600000 0x00 0x00600000 0x00 0x00031100>, /* GPIO */ | ||||||
|  | 			 <0x00 0x00700000 0x00 0x00700000 0x00 0x00001000>, /* ESM */ | ||||||
| 			 <0x00 0x00900000 0x00 0x00900000 0x00 0x00012000>, /* serdes */ | 			 <0x00 0x00900000 0x00 0x00900000 0x00 0x00012000>, /* serdes */ | ||||||
| 			 <0x00 0x00A40000 0x00 0x00A40000 0x00 0x00000800>, /* timesync router */ | 			 <0x00 0x00A40000 0x00 0x00A40000 0x00 0x00000800>, /* timesync router */ | ||||||
| 			 <0x00 0x01000000 0x00 0x01000000 0x00 0x0af02400>, /* Most peripherals */ | 			 <0x00 0x01000000 0x00 0x01000000 0x00 0x0af02400>, /* Most peripherals */ | ||||||
|   | |||||||
| @@ -60,7 +60,7 @@ | |||||||
| 		serial1 = &uart_A; | 		serial1 = &uart_A; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 	linein: audio-codec@0 { | 	linein: audio-codec-0 { | ||||||
| 		#sound-dai-cells = <0>; | 		#sound-dai-cells = <0>; | ||||||
| 		compatible = "everest,es7241"; | 		compatible = "everest,es7241"; | ||||||
| 		VDDA-supply = <&vcc_3v3>; | 		VDDA-supply = <&vcc_3v3>; | ||||||
| @@ -70,7 +70,7 @@ | |||||||
| 		sound-name-prefix = "Linein"; | 		sound-name-prefix = "Linein"; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 	lineout: audio-codec@1 { | 	lineout: audio-codec-1 { | ||||||
| 		#sound-dai-cells = <0>; | 		#sound-dai-cells = <0>; | ||||||
| 		compatible = "everest,es7154"; | 		compatible = "everest,es7154"; | ||||||
| 		VDD-supply = <&vcc_3v3>; | 		VDD-supply = <&vcc_3v3>; | ||||||
| @@ -79,14 +79,14 @@ | |||||||
| 		sound-name-prefix = "Lineout"; | 		sound-name-prefix = "Lineout"; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 	spdif_dit: audio-codec@2 { | 	spdif_dit: audio-codec-2 { | ||||||
| 		#sound-dai-cells = <0>; | 		#sound-dai-cells = <0>; | ||||||
| 		compatible = "linux,spdif-dit"; | 		compatible = "linux,spdif-dit"; | ||||||
| 		status = "okay"; | 		status = "okay"; | ||||||
| 		sound-name-prefix = "DIT"; | 		sound-name-prefix = "DIT"; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 	dmics: audio-codec@3 { | 	dmics: audio-codec-3 { | ||||||
| 		#sound-dai-cells = <0>; | 		#sound-dai-cells = <0>; | ||||||
| 		compatible = "dmic-codec"; | 		compatible = "dmic-codec"; | ||||||
| 		num-channels = <7>; | 		num-channels = <7>; | ||||||
| @@ -95,6 +95,13 @@ | |||||||
| 		sound-name-prefix = "MIC"; | 		sound-name-prefix = "MIC"; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
|  | 	spdif_dir: audio-codec-4 { | ||||||
|  | 		#sound-dai-cells = <0>; | ||||||
|  | 		compatible = "linux,spdif-dir"; | ||||||
|  | 		status = "okay"; | ||||||
|  | 		sound-name-prefix = "DIR"; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
| 	emmc_pwrseq: emmc-pwrseq { | 	emmc_pwrseq: emmc-pwrseq { | ||||||
| 		compatible = "mmc-pwrseq-emmc"; | 		compatible = "mmc-pwrseq-emmc"; | ||||||
| 		reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; | 		reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; | ||||||
| @@ -249,6 +256,9 @@ | |||||||
| 				"TODDR_A IN 2", "TDMIN_C OUT", | 				"TODDR_A IN 2", "TDMIN_C OUT", | ||||||
| 				"TODDR_B IN 2", "TDMIN_C OUT", | 				"TODDR_B IN 2", "TDMIN_C OUT", | ||||||
| 				"TODDR_C IN 2", "TDMIN_C OUT", | 				"TODDR_C IN 2", "TDMIN_C OUT", | ||||||
|  | 				"TODDR_A IN 3", "SPDIFIN Capture", | ||||||
|  | 				"TODDR_B IN 3", "SPDIFIN Capture", | ||||||
|  | 				"TODDR_C IN 3", "SPDIFIN Capture", | ||||||
| 				"TODDR_A IN 4", "PDM Capture", | 				"TODDR_A IN 4", "PDM Capture", | ||||||
| 				"TODDR_B IN 4", "PDM Capture", | 				"TODDR_B IN 4", "PDM Capture", | ||||||
| 				"TODDR_C IN 4", "PDM Capture", | 				"TODDR_C IN 4", "PDM Capture", | ||||||
| @@ -272,31 +282,31 @@ | |||||||
| 				       <393216000>; | 				       <393216000>; | ||||||
| 		status = "okay"; | 		status = "okay"; | ||||||
|  |  | ||||||
| 		dai-link@0 { | 		dai-link-0 { | ||||||
| 			sound-dai = <&frddr_a>; | 			sound-dai = <&frddr_a>; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| 		dai-link@1 { | 		dai-link-1 { | ||||||
| 			sound-dai = <&frddr_b>; | 			sound-dai = <&frddr_b>; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| 		dai-link@2 { | 		dai-link-2 { | ||||||
| 			sound-dai = <&frddr_c>; | 			sound-dai = <&frddr_c>; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| 		dai-link@3 { | 		dai-link-3 { | ||||||
| 			sound-dai = <&toddr_a>; | 			sound-dai = <&toddr_a>; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| 		dai-link@4 { | 		dai-link-4 { | ||||||
| 			sound-dai = <&toddr_b>; | 			sound-dai = <&toddr_b>; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| 		dai-link@5 { | 		dai-link-5 { | ||||||
| 			sound-dai = <&toddr_c>; | 			sound-dai = <&toddr_c>; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| 		dai-link@6 { | 		dai-link-6 { | ||||||
| 			sound-dai = <&tdmif_c>; | 			sound-dai = <&tdmif_c>; | ||||||
| 			dai-format = "i2s"; | 			dai-format = "i2s"; | ||||||
| 			dai-tdm-slot-tx-mask-2 = <1 1>; | 			dai-tdm-slot-tx-mask-2 = <1 1>; | ||||||
| @@ -317,7 +327,7 @@ | |||||||
|  |  | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| 		dai-link@7 { | 		dai-link-7 { | ||||||
| 			sound-dai = <&spdifout>; | 			sound-dai = <&spdifout>; | ||||||
|  |  | ||||||
| 			codec { | 			codec { | ||||||
| @@ -325,7 +335,15 @@ | |||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| 		dai-link@8 { | 		dai-link-8 { | ||||||
|  | 			sound-dai = <&spdifin>; | ||||||
|  |  | ||||||
|  | 			codec { | ||||||
|  | 				sound-dai = <&spdif_dir>; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		dai-link-9 { | ||||||
| 			sound-dai = <&pdm>; | 			sound-dai = <&pdm>; | ||||||
|  |  | ||||||
| 			codec { | 			codec { | ||||||
| @@ -357,6 +375,8 @@ | |||||||
| 		eth_phy0: ethernet-phy@0 { | 		eth_phy0: ethernet-phy@0 { | ||||||
| 			/* Realtek RTL8211F (0x001cc916) */ | 			/* Realtek RTL8211F (0x001cc916) */ | ||||||
| 			reg = <0>; | 			reg = <0>; | ||||||
|  | 			interrupt-parent = <&gpio_intc>; | ||||||
|  | 			interrupts = <98 IRQ_TYPE_LEVEL_LOW>; | ||||||
| 			eee-broken-1000t; | 			eee-broken-1000t; | ||||||
| 		}; | 		}; | ||||||
| 	}; | 	}; | ||||||
| @@ -444,7 +464,8 @@ | |||||||
|  |  | ||||||
| 	bus-width = <4>; | 	bus-width = <4>; | ||||||
| 	cap-sd-highspeed; | 	cap-sd-highspeed; | ||||||
| 	max-frequency = <100000000>; | 	sd-uhs-sdr104; | ||||||
|  | 	max-frequency = <200000000>; | ||||||
| 	non-removable; | 	non-removable; | ||||||
| 	disable-wp; | 	disable-wp; | ||||||
|  |  | ||||||
| @@ -461,15 +482,14 @@ | |||||||
|  |  | ||||||
| /* emmc storage */ | /* emmc storage */ | ||||||
| &sd_emmc_c { | &sd_emmc_c { | ||||||
| 	status = "disabled"; | 	status = "okay"; | ||||||
| 	pinctrl-0 = <&emmc_pins>; | 	pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; | ||||||
| 	pinctrl-1 = <&emmc_clk_gate_pins>; | 	pinctrl-1 = <&emmc_clk_gate_pins>; | ||||||
| 	pinctrl-names = "default", "clk-gate"; | 	pinctrl-names = "default", "clk-gate"; | ||||||
|  |  | ||||||
| 	bus-width = <8>; | 	bus-width = <8>; | ||||||
| 	cap-sd-highspeed; |  | ||||||
| 	cap-mmc-highspeed; | 	cap-mmc-highspeed; | ||||||
| 	max-frequency = <180000000>; | 	max-frequency = <200000000>; | ||||||
| 	non-removable; | 	non-removable; | ||||||
| 	disable-wp; | 	disable-wp; | ||||||
| 	mmc-ddr-1_8v; | 	mmc-ddr-1_8v; | ||||||
| @@ -481,6 +501,12 @@ | |||||||
| 	vqmmc-supply = <&vddio_boot>; | 	vqmmc-supply = <&vddio_boot>; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | &spdifin { | ||||||
|  | 	pinctrl-0 = <&spdif_in_a19_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
| &spdifout { | &spdifout { | ||||||
| 	pinctrl-0 = <&spdif_out_a20_pins>; | 	pinctrl-0 = <&spdif_out_a20_pins>; | ||||||
| 	pinctrl-names = "default"; | 	pinctrl-names = "default"; | ||||||
| @@ -543,8 +569,14 @@ | |||||||
|  |  | ||||||
| &uart_A { | &uart_A { | ||||||
| 	status = "okay"; | 	status = "okay"; | ||||||
| 	pinctrl-0 = <&uart_a_pins>; | 	pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; | ||||||
| 	pinctrl-names = "default"; | 	pinctrl-names = "default"; | ||||||
|  | 	uart-has-rtscts; | ||||||
|  |  | ||||||
|  | 	bluetooth { | ||||||
|  | 		compatible = "brcm,bcm43438-bt"; | ||||||
|  | 		shutdown-gpios = <&gpio GPIOX_21 GPIO_ACTIVE_HIGH>; | ||||||
|  | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| &uart_AO { | &uart_AO { | ||||||
|   | |||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -5,51 +5,42 @@ | |||||||
|  |  | ||||||
| #include <dt-bindings/phy/phy.h> | #include <dt-bindings/phy/phy.h> | ||||||
| #include <dt-bindings/gpio/gpio.h> | #include <dt-bindings/gpio/gpio.h> | ||||||
| #include <dt-bindings/clock/axg-audio-clkc.h> |  | ||||||
| #include <dt-bindings/clock/g12a-clkc.h> | #include <dt-bindings/clock/g12a-clkc.h> | ||||||
| #include <dt-bindings/clock/g12a-aoclkc.h> | #include <dt-bindings/clock/g12a-aoclkc.h> | ||||||
| #include <dt-bindings/interrupt-controller/irq.h> | #include <dt-bindings/interrupt-controller/irq.h> | ||||||
| #include <dt-bindings/interrupt-controller/arm-gic.h> | #include <dt-bindings/interrupt-controller/arm-gic.h> | ||||||
| #include <dt-bindings/reset/amlogic,meson-axg-audio-arb.h> |  | ||||||
| #include <dt-bindings/reset/amlogic,meson-g12a-audio-reset.h> |  | ||||||
| #include <dt-bindings/reset/amlogic,meson-g12a-reset.h> | #include <dt-bindings/reset/amlogic,meson-g12a-reset.h> | ||||||
|  | #include <dt-bindings/thermal/thermal.h> | ||||||
|  |  | ||||||
| / { | / { | ||||||
| 	interrupt-parent = <&gic>; | 	interrupt-parent = <&gic>; | ||||||
| 	#address-cells = <2>; | 	#address-cells = <2>; | ||||||
| 	#size-cells = <2>; | 	#size-cells = <2>; | ||||||
|  |  | ||||||
| 	tdmif_a: audio-controller-0 { | 	chosen { | ||||||
| 		compatible = "amlogic,axg-tdm-iface"; | 		#address-cells = <2>; | ||||||
| 		#sound-dai-cells = <0>; | 		#size-cells = <2>; | ||||||
| 		sound-name-prefix = "TDM_A"; | 		ranges; | ||||||
| 		clocks = <&clkc_audio AUD_CLKID_MST_A_MCLK>, |  | ||||||
| 			 <&clkc_audio AUD_CLKID_MST_A_SCLK>, |  | ||||||
| 			 <&clkc_audio AUD_CLKID_MST_A_LRCLK>; |  | ||||||
| 		clock-names = "mclk", "sclk", "lrclk"; |  | ||||||
| 		status = "disabled"; |  | ||||||
| 	}; |  | ||||||
|  |  | ||||||
| 	tdmif_b: audio-controller-1 { | 		simplefb_cvbs: framebuffer-cvbs { | ||||||
| 		compatible = "amlogic,axg-tdm-iface"; | 			compatible = "amlogic,simple-framebuffer", | ||||||
| 		#sound-dai-cells = <0>; | 				     "simple-framebuffer"; | ||||||
| 		sound-name-prefix = "TDM_B"; | 			amlogic,pipeline = "vpu-cvbs"; | ||||||
| 		clocks = <&clkc_audio AUD_CLKID_MST_B_MCLK>, | 			clocks = <&clkc CLKID_HDMI>, | ||||||
| 			 <&clkc_audio AUD_CLKID_MST_B_SCLK>, | 				 <&clkc CLKID_HTX_PCLK>, | ||||||
| 			 <&clkc_audio AUD_CLKID_MST_B_LRCLK>; | 				 <&clkc CLKID_VPU_INTR>; | ||||||
| 		clock-names = "mclk", "sclk", "lrclk"; | 			status = "disabled"; | ||||||
| 		status = "disabled"; | 		}; | ||||||
| 	}; |  | ||||||
|  |  | ||||||
| 	tdmif_c: audio-controller-2 { | 		simplefb_hdmi: framebuffer-hdmi { | ||||||
| 		compatible = "amlogic,axg-tdm-iface"; | 			compatible = "amlogic,simple-framebuffer", | ||||||
| 		#sound-dai-cells = <0>; | 				    "simple-framebuffer"; | ||||||
| 		sound-name-prefix = "TDM_C"; | 			amlogic,pipeline = "vpu-hdmi"; | ||||||
| 		clocks = <&clkc_audio AUD_CLKID_MST_C_MCLK>, | 			clocks = <&clkc CLKID_HDMI>, | ||||||
| 			 <&clkc_audio AUD_CLKID_MST_C_SCLK>, | 				 <&clkc CLKID_HTX_PCLK>, | ||||||
| 			 <&clkc_audio AUD_CLKID_MST_C_LRCLK>; | 				 <&clkc CLKID_VPU_INTR>; | ||||||
| 		clock-names = "mclk", "sclk", "lrclk"; | 			status = "disabled"; | ||||||
| 		status = "disabled"; | 		}; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 	efuse: efuse { | 	efuse: efuse { | ||||||
| @@ -58,6 +49,7 @@ | |||||||
| 		#address-cells = <1>; | 		#address-cells = <1>; | ||||||
| 		#size-cells = <1>; | 		#size-cells = <1>; | ||||||
| 		read-only; | 		read-only; | ||||||
|  | 		secure-monitor = <&sm>; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 	psci { | 	psci { | ||||||
| @@ -95,6 +87,94 @@ | |||||||
| 		#size-cells = <2>; | 		#size-cells = <2>; | ||||||
| 		ranges; | 		ranges; | ||||||
|  |  | ||||||
|  | 		pcie: pcie@fc000000 { | ||||||
|  | 			compatible = "amlogic,g12a-pcie", "snps,dw-pcie"; | ||||||
|  | 			reg = <0x0 0xfc000000 0x0 0x400000 | ||||||
|  | 			       0x0 0xff648000 0x0 0x2000 | ||||||
|  | 			       0x0 0xfc400000 0x0 0x200000>; | ||||||
|  | 			reg-names = "elbi", "cfg", "config"; | ||||||
|  | 			interrupts = <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>; | ||||||
|  | 			#interrupt-cells = <1>; | ||||||
|  | 			interrupt-map-mask = <0 0 0 0>; | ||||||
|  | 			interrupt-map = <0 0 0 0 &gic GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>; | ||||||
|  | 			bus-range = <0x0 0xff>; | ||||||
|  | 			#address-cells = <3>; | ||||||
|  | 			#size-cells = <2>; | ||||||
|  | 			device_type = "pci"; | ||||||
|  | 			ranges = <0x81000000 0 0 0x0 0xfc600000 0 0x00100000 | ||||||
|  | 				  0x82000000 0 0xfc700000 0x0 0xfc700000 0 0x1900000>; | ||||||
|  |  | ||||||
|  | 			clocks = <&clkc CLKID_PCIE_PHY | ||||||
|  | 				  &clkc CLKID_PCIE_COMB | ||||||
|  | 				  &clkc CLKID_PCIE_PLL>; | ||||||
|  | 			clock-names = "general", | ||||||
|  | 				      "pclk", | ||||||
|  | 				      "port"; | ||||||
|  | 			resets = <&reset RESET_PCIE_CTRL_A>, | ||||||
|  | 				 <&reset RESET_PCIE_APB>; | ||||||
|  | 			reset-names = "port", | ||||||
|  | 				      "apb"; | ||||||
|  | 			num-lanes = <1>; | ||||||
|  | 			phys = <&usb3_pcie_phy PHY_TYPE_PCIE>; | ||||||
|  | 			phy-names = "pcie"; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		thermal-zones { | ||||||
|  | 			cpu_thermal: cpu-thermal { | ||||||
|  | 				polling-delay = <1000>; | ||||||
|  | 				polling-delay-passive = <100>; | ||||||
|  | 				thermal-sensors = <&cpu_temp>; | ||||||
|  |  | ||||||
|  | 				trips { | ||||||
|  | 					cpu_passive: cpu-passive { | ||||||
|  | 						temperature = <85000>; /* millicelsius */ | ||||||
|  | 						hysteresis = <2000>; /* millicelsius */ | ||||||
|  | 						type = "passive"; | ||||||
|  | 					}; | ||||||
|  |  | ||||||
|  | 					cpu_hot: cpu-hot { | ||||||
|  | 						temperature = <95000>; /* millicelsius */ | ||||||
|  | 						hysteresis = <2000>; /* millicelsius */ | ||||||
|  | 						type = "hot"; | ||||||
|  | 					}; | ||||||
|  |  | ||||||
|  | 					cpu_critical: cpu-critical { | ||||||
|  | 						temperature = <110000>; /* millicelsius */ | ||||||
|  | 						hysteresis = <2000>; /* millicelsius */ | ||||||
|  | 						type = "critical"; | ||||||
|  | 					}; | ||||||
|  | 				}; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			ddr_thermal: ddr-thermal { | ||||||
|  | 				polling-delay = <1000>; | ||||||
|  | 				polling-delay-passive = <100>; | ||||||
|  | 				thermal-sensors = <&ddr_temp>; | ||||||
|  |  | ||||||
|  | 				trips { | ||||||
|  | 					ddr_passive: ddr-passive { | ||||||
|  | 						temperature = <85000>; /* millicelsius */ | ||||||
|  | 						hysteresis = <2000>; /* millicelsius */ | ||||||
|  | 						type = "passive"; | ||||||
|  | 					}; | ||||||
|  |  | ||||||
|  | 					ddr_critical: ddr-critical { | ||||||
|  | 						temperature = <110000>; /* millicelsius */ | ||||||
|  | 						hysteresis = <2000>; /* millicelsius */ | ||||||
|  | 						type = "critical"; | ||||||
|  | 					}; | ||||||
|  | 				}; | ||||||
|  |  | ||||||
|  | 				cooling-maps { | ||||||
|  | 					map { | ||||||
|  | 						trip = <&ddr_passive>; | ||||||
|  | 						cooling-device = <&mali THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; | ||||||
|  | 					}; | ||||||
|  | 				}; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
| 		ethmac: ethernet@ff3f0000 { | 		ethmac: ethernet@ff3f0000 { | ||||||
| 			compatible = "amlogic,meson-axg-dwmac", | 			compatible = "amlogic,meson-axg-dwmac", | ||||||
| 				     "snps,dwmac-3.70a", | 				     "snps,dwmac-3.70a", | ||||||
| @@ -1356,6 +1436,26 @@ | |||||||
| 				}; | 				}; | ||||||
| 			}; | 			}; | ||||||
|  |  | ||||||
|  | 			cpu_temp: temperature-sensor@34800 { | ||||||
|  | 				compatible = "amlogic,g12a-cpu-thermal", | ||||||
|  | 					     "amlogic,g12a-thermal"; | ||||||
|  | 				reg = <0x0 0x34800 0x0 0x50>; | ||||||
|  | 				interrupts = <GIC_SPI 35 IRQ_TYPE_EDGE_RISING>; | ||||||
|  | 				clocks = <&clkc CLKID_TS>; | ||||||
|  | 				#thermal-sensor-cells = <0>; | ||||||
|  | 				amlogic,ao-secure = <&sec_AO>; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			ddr_temp: temperature-sensor@34c00 { | ||||||
|  | 				compatible = "amlogic,g12a-ddr-thermal", | ||||||
|  | 					     "amlogic,g12a-thermal"; | ||||||
|  | 				reg = <0x0 0x34c00 0x0 0x50>; | ||||||
|  | 				interrupts = <GIC_SPI 36 IRQ_TYPE_EDGE_RISING>; | ||||||
|  | 				clocks = <&clkc CLKID_TS>; | ||||||
|  | 				#thermal-sensor-cells = <0>; | ||||||
|  | 				amlogic,ao-secure = <&sec_AO>; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
| 			usb2_phy0: phy@36000 { | 			usb2_phy0: phy@36000 { | ||||||
| 				compatible = "amlogic,g12a-usb2-phy"; | 				compatible = "amlogic,g12a-usb2-phy"; | ||||||
| 				reg = <0x0 0x36000 0x0 0x2000>; | 				reg = <0x0 0x36000 0x0 0x2000>; | ||||||
| @@ -1457,290 +1557,6 @@ | |||||||
| 				}; | 				}; | ||||||
| 			}; | 			}; | ||||||
|  |  | ||||||
| 			pdm: audio-controller@40000 { |  | ||||||
| 				compatible = "amlogic,g12a-pdm", |  | ||||||
| 					     "amlogic,axg-pdm"; |  | ||||||
| 				reg = <0x0 0x40000 0x0 0x34>; |  | ||||||
| 				#sound-dai-cells = <0>; |  | ||||||
| 				sound-name-prefix = "PDM"; |  | ||||||
| 				clocks = <&clkc_audio AUD_CLKID_PDM>, |  | ||||||
| 					 <&clkc_audio AUD_CLKID_PDM_DCLK>, |  | ||||||
| 					 <&clkc_audio AUD_CLKID_PDM_SYSCLK>; |  | ||||||
| 				clock-names = "pclk", "dclk", "sysclk"; |  | ||||||
| 				status = "disabled"; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			audio: bus@42000 { |  | ||||||
| 				compatible = "simple-bus"; |  | ||||||
| 				reg = <0x0 0x42000 0x0 0x2000>; |  | ||||||
| 				#address-cells = <2>; |  | ||||||
| 				#size-cells = <2>; |  | ||||||
| 				ranges = <0x0 0x0 0x0 0x42000 0x0 0x2000>; |  | ||||||
|  |  | ||||||
| 				clkc_audio: clock-controller@0 { |  | ||||||
| 					status = "disabled"; |  | ||||||
| 					compatible = "amlogic,g12a-audio-clkc"; |  | ||||||
| 					reg = <0x0 0x0 0x0 0xb4>; |  | ||||||
| 					#clock-cells = <1>; |  | ||||||
| 					#reset-cells = <1>; |  | ||||||
|  |  | ||||||
| 					clocks = <&clkc CLKID_AUDIO>, |  | ||||||
| 						 <&clkc CLKID_MPLL0>, |  | ||||||
| 						 <&clkc CLKID_MPLL1>, |  | ||||||
| 						 <&clkc CLKID_MPLL2>, |  | ||||||
| 						 <&clkc CLKID_MPLL3>, |  | ||||||
| 						 <&clkc CLKID_HIFI_PLL>, |  | ||||||
| 						 <&clkc CLKID_FCLK_DIV3>, |  | ||||||
| 						 <&clkc CLKID_FCLK_DIV4>, |  | ||||||
| 						 <&clkc CLKID_GP0_PLL>; |  | ||||||
| 					clock-names = "pclk", |  | ||||||
| 						      "mst_in0", |  | ||||||
| 						      "mst_in1", |  | ||||||
| 						      "mst_in2", |  | ||||||
| 						      "mst_in3", |  | ||||||
| 						      "mst_in4", |  | ||||||
| 						      "mst_in5", |  | ||||||
| 						      "mst_in6", |  | ||||||
| 						      "mst_in7"; |  | ||||||
|  |  | ||||||
| 					resets = <&reset RESET_AUDIO>; |  | ||||||
| 				}; |  | ||||||
|  |  | ||||||
| 				toddr_a: audio-controller@100 { |  | ||||||
| 					compatible = "amlogic,g12a-toddr", |  | ||||||
| 						     "amlogic,axg-toddr"; |  | ||||||
| 					reg = <0x0 0x100 0x0 0x1c>; |  | ||||||
| 					#sound-dai-cells = <0>; |  | ||||||
| 					sound-name-prefix = "TODDR_A"; |  | ||||||
| 					interrupts = <GIC_SPI 148 IRQ_TYPE_EDGE_RISING>; |  | ||||||
| 					clocks = <&clkc_audio AUD_CLKID_TODDR_A>; |  | ||||||
| 					resets = <&arb AXG_ARB_TODDR_A>; |  | ||||||
| 					status = "disabled"; |  | ||||||
| 				}; |  | ||||||
|  |  | ||||||
| 				toddr_b: audio-controller@140 { |  | ||||||
| 					compatible = "amlogic,g12a-toddr", |  | ||||||
| 						     "amlogic,axg-toddr"; |  | ||||||
| 					reg = <0x0 0x140 0x0 0x1c>; |  | ||||||
| 					#sound-dai-cells = <0>; |  | ||||||
| 					sound-name-prefix = "TODDR_B"; |  | ||||||
| 					interrupts = <GIC_SPI 149 IRQ_TYPE_EDGE_RISING>; |  | ||||||
| 					clocks = <&clkc_audio AUD_CLKID_TODDR_B>; |  | ||||||
| 					resets = <&arb AXG_ARB_TODDR_B>; |  | ||||||
| 					status = "disabled"; |  | ||||||
| 				}; |  | ||||||
|  |  | ||||||
| 				toddr_c: audio-controller@180 { |  | ||||||
| 					compatible = "amlogic,g12a-toddr", |  | ||||||
| 						     "amlogic,axg-toddr"; |  | ||||||
| 					reg = <0x0 0x180 0x0 0x1c>; |  | ||||||
| 					#sound-dai-cells = <0>; |  | ||||||
| 					sound-name-prefix = "TODDR_C"; |  | ||||||
| 					interrupts = <GIC_SPI 150 IRQ_TYPE_EDGE_RISING>; |  | ||||||
| 					clocks = <&clkc_audio AUD_CLKID_TODDR_C>; |  | ||||||
| 					resets = <&arb AXG_ARB_TODDR_C>; |  | ||||||
| 					status = "disabled"; |  | ||||||
| 				}; |  | ||||||
|  |  | ||||||
| 				frddr_a: audio-controller@1c0 { |  | ||||||
| 					compatible = "amlogic,g12a-frddr", |  | ||||||
| 						     "amlogic,axg-frddr"; |  | ||||||
| 					reg = <0x0 0x1c0 0x0 0x1c>; |  | ||||||
| 					#sound-dai-cells = <0>; |  | ||||||
| 					sound-name-prefix = "FRDDR_A"; |  | ||||||
| 					interrupts = <GIC_SPI 152 IRQ_TYPE_EDGE_RISING>; |  | ||||||
| 					clocks = <&clkc_audio AUD_CLKID_FRDDR_A>; |  | ||||||
| 					resets = <&arb AXG_ARB_FRDDR_A>; |  | ||||||
| 					status = "disabled"; |  | ||||||
| 				}; |  | ||||||
|  |  | ||||||
| 				frddr_b: audio-controller@200 { |  | ||||||
| 					compatible = "amlogic,g12a-frddr", |  | ||||||
| 						     "amlogic,axg-frddr"; |  | ||||||
| 					reg = <0x0 0x200 0x0 0x1c>; |  | ||||||
| 					#sound-dai-cells = <0>; |  | ||||||
| 					sound-name-prefix = "FRDDR_B"; |  | ||||||
| 					interrupts = <GIC_SPI 153 IRQ_TYPE_EDGE_RISING>; |  | ||||||
| 					clocks = <&clkc_audio AUD_CLKID_FRDDR_B>; |  | ||||||
| 					resets = <&arb AXG_ARB_FRDDR_B>; |  | ||||||
| 					status = "disabled"; |  | ||||||
| 				}; |  | ||||||
|  |  | ||||||
| 				frddr_c: audio-controller@240 { |  | ||||||
| 					compatible = "amlogic,g12a-frddr", |  | ||||||
| 						     "amlogic,axg-frddr"; |  | ||||||
| 					reg = <0x0 0x240 0x0 0x1c>; |  | ||||||
| 					#sound-dai-cells = <0>; |  | ||||||
| 					sound-name-prefix = "FRDDR_C"; |  | ||||||
| 					interrupts = <GIC_SPI 154 IRQ_TYPE_EDGE_RISING>; |  | ||||||
| 					clocks = <&clkc_audio AUD_CLKID_FRDDR_C>; |  | ||||||
| 					resets = <&arb AXG_ARB_FRDDR_C>; |  | ||||||
| 					status = "disabled"; |  | ||||||
| 				}; |  | ||||||
|  |  | ||||||
| 				arb: reset-controller@280 { |  | ||||||
| 					status = "disabled"; |  | ||||||
| 					compatible = "amlogic,meson-axg-audio-arb"; |  | ||||||
| 					reg = <0x0 0x280 0x0 0x4>; |  | ||||||
| 					#reset-cells = <1>; |  | ||||||
| 					clocks = <&clkc_audio AUD_CLKID_DDR_ARB>; |  | ||||||
| 				}; |  | ||||||
|  |  | ||||||
| 				tdmin_a: audio-controller@300 { |  | ||||||
| 					compatible = "amlogic,g12a-tdmin", |  | ||||||
| 						     "amlogic,axg-tdmin"; |  | ||||||
| 					reg = <0x0 0x300 0x0 0x40>; |  | ||||||
| 					sound-name-prefix = "TDMIN_A"; |  | ||||||
| 					resets = <&clkc_audio AUD_RESET_TDMIN_A>; |  | ||||||
| 					clocks = <&clkc_audio AUD_CLKID_TDMIN_A>, |  | ||||||
| 						 <&clkc_audio AUD_CLKID_TDMIN_A_SCLK>, |  | ||||||
| 						 <&clkc_audio AUD_CLKID_TDMIN_A_SCLK_SEL>, |  | ||||||
| 						 <&clkc_audio AUD_CLKID_TDMIN_A_LRCLK>, |  | ||||||
| 						 <&clkc_audio AUD_CLKID_TDMIN_A_LRCLK>; |  | ||||||
| 					clock-names = "pclk", "sclk", "sclk_sel", |  | ||||||
| 						      "lrclk", "lrclk_sel"; |  | ||||||
| 					status = "disabled"; |  | ||||||
| 				}; |  | ||||||
|  |  | ||||||
| 				tdmin_b: audio-controller@340 { |  | ||||||
| 					compatible = "amlogic,g12a-tdmin", |  | ||||||
| 						     "amlogic,axg-tdmin"; |  | ||||||
| 					reg = <0x0 0x340 0x0 0x40>; |  | ||||||
| 					sound-name-prefix = "TDMIN_B"; |  | ||||||
| 					resets = <&clkc_audio AUD_RESET_TDMIN_B>; |  | ||||||
| 					clocks = <&clkc_audio AUD_CLKID_TDMIN_B>, |  | ||||||
| 						 <&clkc_audio AUD_CLKID_TDMIN_B_SCLK>, |  | ||||||
| 						 <&clkc_audio AUD_CLKID_TDMIN_B_SCLK_SEL>, |  | ||||||
| 						 <&clkc_audio AUD_CLKID_TDMIN_B_LRCLK>, |  | ||||||
| 						 <&clkc_audio AUD_CLKID_TDMIN_B_LRCLK>; |  | ||||||
| 					clock-names = "pclk", "sclk", "sclk_sel", |  | ||||||
| 						      "lrclk", "lrclk_sel"; |  | ||||||
| 					status = "disabled"; |  | ||||||
| 				}; |  | ||||||
|  |  | ||||||
| 				tdmin_c: audio-controller@380 { |  | ||||||
| 					compatible = "amlogic,g12a-tdmin", |  | ||||||
| 						     "amlogic,axg-tdmin"; |  | ||||||
| 					reg = <0x0 0x380 0x0 0x40>; |  | ||||||
| 					sound-name-prefix = "TDMIN_C"; |  | ||||||
| 					resets = <&clkc_audio AUD_RESET_TDMIN_C>; |  | ||||||
| 					clocks = <&clkc_audio AUD_CLKID_TDMIN_C>, |  | ||||||
| 						 <&clkc_audio AUD_CLKID_TDMIN_C_SCLK>, |  | ||||||
| 						 <&clkc_audio AUD_CLKID_TDMIN_C_SCLK_SEL>, |  | ||||||
| 						 <&clkc_audio AUD_CLKID_TDMIN_C_LRCLK>, |  | ||||||
| 						 <&clkc_audio AUD_CLKID_TDMIN_C_LRCLK>; |  | ||||||
| 					clock-names = "pclk", "sclk", "sclk_sel", |  | ||||||
| 						      "lrclk", "lrclk_sel"; |  | ||||||
| 					status = "disabled"; |  | ||||||
| 				}; |  | ||||||
|  |  | ||||||
| 				tdmin_lb: audio-controller@3c0 { |  | ||||||
| 					compatible = "amlogic,g12a-tdmin", |  | ||||||
| 						     "amlogic,axg-tdmin"; |  | ||||||
| 					reg = <0x0 0x3c0 0x0 0x40>; |  | ||||||
| 					sound-name-prefix = "TDMIN_LB"; |  | ||||||
| 					resets = <&clkc_audio AUD_RESET_TDMIN_LB>; |  | ||||||
| 					clocks = <&clkc_audio AUD_CLKID_TDMIN_LB>, |  | ||||||
| 						 <&clkc_audio AUD_CLKID_TDMIN_LB_SCLK>, |  | ||||||
| 						 <&clkc_audio AUD_CLKID_TDMIN_LB_SCLK_SEL>, |  | ||||||
| 						 <&clkc_audio AUD_CLKID_TDMIN_LB_LRCLK>, |  | ||||||
| 						 <&clkc_audio AUD_CLKID_TDMIN_LB_LRCLK>; |  | ||||||
| 					clock-names = "pclk", "sclk", "sclk_sel", |  | ||||||
| 						      "lrclk", "lrclk_sel"; |  | ||||||
| 					status = "disabled"; |  | ||||||
| 				}; |  | ||||||
|  |  | ||||||
| 				spdifin: audio-controller@400 { |  | ||||||
| 					compatible = "amlogic,g12a-spdifin", |  | ||||||
| 						     "amlogic,axg-spdifin"; |  | ||||||
| 					reg = <0x0 0x400 0x0 0x30>; |  | ||||||
| 					#sound-dai-cells = <0>; |  | ||||||
| 					sound-name-prefix = "SPDIFIN"; |  | ||||||
| 					interrupts = <GIC_SPI 151 IRQ_TYPE_EDGE_RISING>; |  | ||||||
| 					clocks = <&clkc_audio AUD_CLKID_SPDIFIN>, |  | ||||||
| 						 <&clkc_audio AUD_CLKID_SPDIFIN_CLK>; |  | ||||||
| 					clock-names = "pclk", "refclk"; |  | ||||||
| 					status = "disabled"; |  | ||||||
| 				}; |  | ||||||
|  |  | ||||||
| 				spdifout: audio-controller@480 { |  | ||||||
| 					compatible = "amlogic,g12a-spdifout", |  | ||||||
| 						     "amlogic,axg-spdifout"; |  | ||||||
| 					reg = <0x0 0x480 0x0 0x50>; |  | ||||||
| 					#sound-dai-cells = <0>; |  | ||||||
| 					sound-name-prefix = "SPDIFOUT"; |  | ||||||
| 					clocks = <&clkc_audio AUD_CLKID_SPDIFOUT>, |  | ||||||
| 						 <&clkc_audio AUD_CLKID_SPDIFOUT_CLK>; |  | ||||||
| 					clock-names = "pclk", "mclk"; |  | ||||||
| 					status = "disabled"; |  | ||||||
| 				}; |  | ||||||
|  |  | ||||||
| 				tdmout_a: audio-controller@500 { |  | ||||||
| 					compatible = "amlogic,g12a-tdmout"; |  | ||||||
| 					reg = <0x0 0x500 0x0 0x40>; |  | ||||||
| 					sound-name-prefix = "TDMOUT_A"; |  | ||||||
| 					resets = <&clkc_audio AUD_RESET_TDMOUT_A>; |  | ||||||
| 					clocks = <&clkc_audio AUD_CLKID_TDMOUT_A>, |  | ||||||
| 						 <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK>, |  | ||||||
| 						 <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK_SEL>, |  | ||||||
| 						 <&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>, |  | ||||||
| 						 <&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>; |  | ||||||
| 					clock-names = "pclk", "sclk", "sclk_sel", |  | ||||||
| 						      "lrclk", "lrclk_sel"; |  | ||||||
| 					status = "disabled"; |  | ||||||
| 				}; |  | ||||||
|  |  | ||||||
| 				tdmout_b: audio-controller@540 { |  | ||||||
| 					compatible = "amlogic,g12a-tdmout"; |  | ||||||
| 					reg = <0x0 0x540 0x0 0x40>; |  | ||||||
| 					sound-name-prefix = "TDMOUT_B"; |  | ||||||
| 					resets = <&clkc_audio AUD_RESET_TDMOUT_B>; |  | ||||||
| 					clocks = <&clkc_audio AUD_CLKID_TDMOUT_B>, |  | ||||||
| 						 <&clkc_audio AUD_CLKID_TDMOUT_B_SCLK>, |  | ||||||
| 						 <&clkc_audio AUD_CLKID_TDMOUT_B_SCLK_SEL>, |  | ||||||
| 						 <&clkc_audio AUD_CLKID_TDMOUT_B_LRCLK>, |  | ||||||
| 						 <&clkc_audio AUD_CLKID_TDMOUT_B_LRCLK>; |  | ||||||
| 					clock-names = "pclk", "sclk", "sclk_sel", |  | ||||||
| 						      "lrclk", "lrclk_sel"; |  | ||||||
| 					status = "disabled"; |  | ||||||
| 				}; |  | ||||||
|  |  | ||||||
| 				tdmout_c: audio-controller@580 { |  | ||||||
| 					compatible = "amlogic,g12a-tdmout"; |  | ||||||
| 					reg = <0x0 0x580 0x0 0x40>; |  | ||||||
| 					sound-name-prefix = "TDMOUT_C"; |  | ||||||
| 					resets = <&clkc_audio AUD_RESET_TDMOUT_C>; |  | ||||||
| 					clocks = <&clkc_audio AUD_CLKID_TDMOUT_C>, |  | ||||||
| 						 <&clkc_audio AUD_CLKID_TDMOUT_C_SCLK>, |  | ||||||
| 						 <&clkc_audio AUD_CLKID_TDMOUT_C_SCLK_SEL>, |  | ||||||
| 						 <&clkc_audio AUD_CLKID_TDMOUT_C_LRCLK>, |  | ||||||
| 						 <&clkc_audio AUD_CLKID_TDMOUT_C_LRCLK>; |  | ||||||
| 					clock-names = "pclk", "sclk", "sclk_sel", |  | ||||||
| 						      "lrclk", "lrclk_sel"; |  | ||||||
| 					status = "disabled"; |  | ||||||
| 				}; |  | ||||||
|  |  | ||||||
| 				spdifout_b: audio-controller@680 { |  | ||||||
| 					compatible = "amlogic,g12a-spdifout", |  | ||||||
| 						     "amlogic,axg-spdifout"; |  | ||||||
| 					reg = <0x0 0x680 0x0 0x50>; |  | ||||||
| 					#sound-dai-cells = <0>; |  | ||||||
| 					sound-name-prefix = "SPDIFOUT_B"; |  | ||||||
| 					clocks = <&clkc_audio AUD_CLKID_SPDIFOUT_B>, |  | ||||||
| 						 <&clkc_audio AUD_CLKID_SPDIFOUT_B_CLK>; |  | ||||||
| 					clock-names = "pclk", "mclk"; |  | ||||||
| 					status = "disabled"; |  | ||||||
| 				}; |  | ||||||
|  |  | ||||||
| 				tohdmitx: audio-controller@744 { |  | ||||||
| 					compatible = "amlogic,g12a-tohdmitx"; |  | ||||||
| 					reg = <0x0 0x744 0x0 0x4>; |  | ||||||
| 					#sound-dai-cells = <1>; |  | ||||||
| 					sound-name-prefix = "TOHDMITX"; |  | ||||||
| 					status = "disabled"; |  | ||||||
| 				}; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			usb3_pcie_phy: phy@46000 { | 			usb3_pcie_phy: phy@46000 { | ||||||
| 				compatible = "amlogic,g12a-usb3-pcie-phy"; | 				compatible = "amlogic,g12a-usb3-pcie-phy"; | ||||||
| 				reg = <0x0 0x46000 0x0 0x2000>; | 				reg = <0x0 0x46000 0x0 0x2000>; | ||||||
| @@ -2152,6 +1968,29 @@ | |||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
|  | 		vdec: video-decoder@ff620000 { | ||||||
|  | 			compatible = "amlogic,g12a-vdec"; | ||||||
|  | 			reg = <0x0 0xff620000 0x0 0x10000>, | ||||||
|  | 			      <0x0 0xffd0e180 0x0 0xe4>; | ||||||
|  | 			reg-names = "dos", "esparser"; | ||||||
|  | 			interrupts = <GIC_SPI 44 IRQ_TYPE_EDGE_RISING>, | ||||||
|  | 				     <GIC_SPI 32 IRQ_TYPE_EDGE_RISING>; | ||||||
|  | 			interrupt-names = "vdec", "esparser"; | ||||||
|  |  | ||||||
|  | 			amlogic,ao-sysctrl = <&rti>; | ||||||
|  | 			amlogic,canvas = <&canvas>; | ||||||
|  |  | ||||||
|  | 			clocks = <&clkc CLKID_PARSER>, | ||||||
|  | 				 <&clkc CLKID_DOS>, | ||||||
|  | 				 <&clkc CLKID_VDEC_1>, | ||||||
|  | 				 <&clkc CLKID_VDEC_HEVC>, | ||||||
|  | 				 <&clkc CLKID_VDEC_HEVCF>; | ||||||
|  | 			clock-names = "dos_parser", "dos", "vdec_1", | ||||||
|  | 				      "vdec_hevc", "vdec_hevcf"; | ||||||
|  | 			resets = <&reset RESET_PARSER>; | ||||||
|  | 			reset-names = "esparser"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
| 		vpu: vpu@ff900000 { | 		vpu: vpu@ff900000 { | ||||||
| 			compatible = "amlogic,meson-g12a-vpu"; | 			compatible = "amlogic,meson-g12a-vpu"; | ||||||
| 			reg = <0x0 0xff900000 0x0 0x100000>, | 			reg = <0x0 0xff900000 0x0 0x100000>, | ||||||
| @@ -2388,10 +2227,10 @@ | |||||||
| 			compatible = "amlogic,meson-g12a-mali", "arm,mali-bifrost"; | 			compatible = "amlogic,meson-g12a-mali", "arm,mali-bifrost"; | ||||||
| 			reg = <0x0 0xffe40000 0x0 0x40000>; | 			reg = <0x0 0xffe40000 0x0 0x40000>; | ||||||
| 			interrupt-parent = <&gic>; | 			interrupt-parent = <&gic>; | ||||||
| 			interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>, | 			interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>, | ||||||
| 				     <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>, | 				     <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>, | ||||||
| 				     <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>; | 				     <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>; | ||||||
| 			interrupt-names = "gpu", "mmu", "job"; | 			interrupt-names = "job", "mmu", "gpu"; | ||||||
| 			clocks = <&clkc CLKID_MALI>; | 			clocks = <&clkc CLKID_MALI>; | ||||||
| 			resets = <&reset RESET_DVALIN_CAPB3>, <&reset RESET_DVALIN>; | 			resets = <&reset RESET_DVALIN_CAPB3>, <&reset RESET_DVALIN>; | ||||||
|  |  | ||||||
| @@ -2409,6 +2248,7 @@ | |||||||
| 			assigned-clock-rates = <0>, /* Do Nothing */ | 			assigned-clock-rates = <0>, /* Do Nothing */ | ||||||
| 					       <800000000>, | 					       <800000000>, | ||||||
| 					       <0>; /* Do Nothing */ | 					       <0>; /* Do Nothing */ | ||||||
|  | 			#cooling-cells = <2>; | ||||||
| 		}; | 		}; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										398
									
								
								arch/arm/dts/meson-g12.dtsi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										398
									
								
								arch/arm/dts/meson-g12.dtsi
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,398 @@ | |||||||
|  | // SPDX-License-Identifier: (GPL-2.0+ OR MIT) | ||||||
|  | /* | ||||||
|  |  * Copyright (c) 2019 BayLibre, SAS | ||||||
|  |  * Author: Jerome Brunet <jbrunet@baylibre.com> | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #include "meson-g12-common.dtsi" | ||||||
|  | #include <dt-bindings/clock/axg-audio-clkc.h> | ||||||
|  | #include <dt-bindings/power/meson-g12a-power.h> | ||||||
|  | #include <dt-bindings/reset/amlogic,meson-axg-audio-arb.h> | ||||||
|  | #include <dt-bindings/reset/amlogic,meson-g12a-audio-reset.h> | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	tdmif_a: audio-controller-0 { | ||||||
|  | 		compatible = "amlogic,axg-tdm-iface"; | ||||||
|  | 		#sound-dai-cells = <0>; | ||||||
|  | 		sound-name-prefix = "TDM_A"; | ||||||
|  | 		clocks = <&clkc_audio AUD_CLKID_MST_A_MCLK>, | ||||||
|  | 			 <&clkc_audio AUD_CLKID_MST_A_SCLK>, | ||||||
|  | 			 <&clkc_audio AUD_CLKID_MST_A_LRCLK>; | ||||||
|  | 		clock-names = "mclk", "sclk", "lrclk"; | ||||||
|  | 		status = "disabled"; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	tdmif_b: audio-controller-1 { | ||||||
|  | 		compatible = "amlogic,axg-tdm-iface"; | ||||||
|  | 		#sound-dai-cells = <0>; | ||||||
|  | 		sound-name-prefix = "TDM_B"; | ||||||
|  | 		clocks = <&clkc_audio AUD_CLKID_MST_B_MCLK>, | ||||||
|  | 			 <&clkc_audio AUD_CLKID_MST_B_SCLK>, | ||||||
|  | 			 <&clkc_audio AUD_CLKID_MST_B_LRCLK>; | ||||||
|  | 		clock-names = "mclk", "sclk", "lrclk"; | ||||||
|  | 		status = "disabled"; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	tdmif_c: audio-controller-2 { | ||||||
|  | 		compatible = "amlogic,axg-tdm-iface"; | ||||||
|  | 		#sound-dai-cells = <0>; | ||||||
|  | 		sound-name-prefix = "TDM_C"; | ||||||
|  | 		clocks = <&clkc_audio AUD_CLKID_MST_C_MCLK>, | ||||||
|  | 			 <&clkc_audio AUD_CLKID_MST_C_SCLK>, | ||||||
|  | 			 <&clkc_audio AUD_CLKID_MST_C_LRCLK>; | ||||||
|  | 		clock-names = "mclk", "sclk", "lrclk"; | ||||||
|  | 		status = "disabled"; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &apb { | ||||||
|  | 	pdm: audio-controller@40000 { | ||||||
|  | 		compatible = "amlogic,g12a-pdm", | ||||||
|  | 			     "amlogic,axg-pdm"; | ||||||
|  | 		reg = <0x0 0x40000 0x0 0x34>; | ||||||
|  | 		#sound-dai-cells = <0>; | ||||||
|  | 		sound-name-prefix = "PDM"; | ||||||
|  | 		clocks = <&clkc_audio AUD_CLKID_PDM>, | ||||||
|  | 			 <&clkc_audio AUD_CLKID_PDM_DCLK>, | ||||||
|  | 			 <&clkc_audio AUD_CLKID_PDM_SYSCLK>; | ||||||
|  | 		clock-names = "pclk", "dclk", "sysclk"; | ||||||
|  | 		status = "disabled"; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	audio: bus@42000 { | ||||||
|  | 		compatible = "simple-bus"; | ||||||
|  | 		reg = <0x0 0x42000 0x0 0x2000>; | ||||||
|  | 		#address-cells = <2>; | ||||||
|  | 		#size-cells = <2>; | ||||||
|  | 		ranges = <0x0 0x0 0x0 0x42000 0x0 0x2000>; | ||||||
|  |  | ||||||
|  | 		clkc_audio: clock-controller@0 { | ||||||
|  | 			status = "disabled"; | ||||||
|  | 			compatible = "amlogic,g12a-audio-clkc"; | ||||||
|  | 			reg = <0x0 0x0 0x0 0xb4>; | ||||||
|  | 			#clock-cells = <1>; | ||||||
|  | 			#reset-cells = <1>; | ||||||
|  |  | ||||||
|  | 			clocks = <&clkc CLKID_AUDIO>, | ||||||
|  | 				 <&clkc CLKID_MPLL0>, | ||||||
|  | 				 <&clkc CLKID_MPLL1>, | ||||||
|  | 				 <&clkc CLKID_MPLL2>, | ||||||
|  | 				 <&clkc CLKID_MPLL3>, | ||||||
|  | 				 <&clkc CLKID_HIFI_PLL>, | ||||||
|  | 				 <&clkc CLKID_FCLK_DIV3>, | ||||||
|  | 				 <&clkc CLKID_FCLK_DIV4>, | ||||||
|  | 				 <&clkc CLKID_GP0_PLL>; | ||||||
|  | 			clock-names = "pclk", | ||||||
|  | 				      "mst_in0", | ||||||
|  | 				      "mst_in1", | ||||||
|  | 				      "mst_in2", | ||||||
|  | 				      "mst_in3", | ||||||
|  | 				      "mst_in4", | ||||||
|  | 				      "mst_in5", | ||||||
|  | 				      "mst_in6", | ||||||
|  | 				      "mst_in7"; | ||||||
|  |  | ||||||
|  | 			resets = <&reset RESET_AUDIO>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		toddr_a: audio-controller@100 { | ||||||
|  | 			compatible = "amlogic,g12a-toddr", | ||||||
|  | 				     "amlogic,axg-toddr"; | ||||||
|  | 			reg = <0x0 0x100 0x0 0x2c>; | ||||||
|  | 			#sound-dai-cells = <0>; | ||||||
|  | 			sound-name-prefix = "TODDR_A"; | ||||||
|  | 			interrupts = <GIC_SPI 148 IRQ_TYPE_EDGE_RISING>; | ||||||
|  | 			clocks = <&clkc_audio AUD_CLKID_TODDR_A>; | ||||||
|  | 			resets = <&arb AXG_ARB_TODDR_A>, | ||||||
|  | 				 <&clkc_audio AUD_RESET_TODDR_A>; | ||||||
|  | 			reset-names = "arb", "rst"; | ||||||
|  | 			amlogic,fifo-depth = <512>; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		toddr_b: audio-controller@140 { | ||||||
|  | 			compatible = "amlogic,g12a-toddr", | ||||||
|  | 				     "amlogic,axg-toddr"; | ||||||
|  | 			reg = <0x0 0x140 0x0 0x2c>; | ||||||
|  | 			#sound-dai-cells = <0>; | ||||||
|  | 			sound-name-prefix = "TODDR_B"; | ||||||
|  | 			interrupts = <GIC_SPI 149 IRQ_TYPE_EDGE_RISING>; | ||||||
|  | 			clocks = <&clkc_audio AUD_CLKID_TODDR_B>; | ||||||
|  | 			resets = <&arb AXG_ARB_TODDR_B>, | ||||||
|  | 				 <&clkc_audio AUD_RESET_TODDR_B>; | ||||||
|  | 			reset-names = "arb", "rst"; | ||||||
|  | 			amlogic,fifo-depth = <256>; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		toddr_c: audio-controller@180 { | ||||||
|  | 			compatible = "amlogic,g12a-toddr", | ||||||
|  | 				     "amlogic,axg-toddr"; | ||||||
|  | 			reg = <0x0 0x180 0x0 0x2c>; | ||||||
|  | 			#sound-dai-cells = <0>; | ||||||
|  | 			sound-name-prefix = "TODDR_C"; | ||||||
|  | 			interrupts = <GIC_SPI 150 IRQ_TYPE_EDGE_RISING>; | ||||||
|  | 			clocks = <&clkc_audio AUD_CLKID_TODDR_C>; | ||||||
|  | 			resets = <&arb AXG_ARB_TODDR_C>, | ||||||
|  | 				 <&clkc_audio AUD_RESET_TODDR_C>; | ||||||
|  | 			reset-names = "arb", "rst"; | ||||||
|  | 			amlogic,fifo-depth = <256>; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		frddr_a: audio-controller@1c0 { | ||||||
|  | 			compatible = "amlogic,g12a-frddr", | ||||||
|  | 				     "amlogic,axg-frddr"; | ||||||
|  | 			reg = <0x0 0x1c0 0x0 0x2c>; | ||||||
|  | 			#sound-dai-cells = <0>; | ||||||
|  | 			sound-name-prefix = "FRDDR_A"; | ||||||
|  | 			interrupts = <GIC_SPI 152 IRQ_TYPE_EDGE_RISING>; | ||||||
|  | 			clocks = <&clkc_audio AUD_CLKID_FRDDR_A>; | ||||||
|  | 			resets = <&arb AXG_ARB_FRDDR_A>, | ||||||
|  | 				 <&clkc_audio AUD_RESET_FRDDR_A>; | ||||||
|  | 			reset-names = "arb", "rst"; | ||||||
|  | 			amlogic,fifo-depth = <512>; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		frddr_b: audio-controller@200 { | ||||||
|  | 			compatible = "amlogic,g12a-frddr", | ||||||
|  | 				     "amlogic,axg-frddr"; | ||||||
|  | 			reg = <0x0 0x200 0x0 0x2c>; | ||||||
|  | 			#sound-dai-cells = <0>; | ||||||
|  | 			sound-name-prefix = "FRDDR_B"; | ||||||
|  | 			interrupts = <GIC_SPI 153 IRQ_TYPE_EDGE_RISING>; | ||||||
|  | 			clocks = <&clkc_audio AUD_CLKID_FRDDR_B>; | ||||||
|  | 			resets = <&arb AXG_ARB_FRDDR_B>, | ||||||
|  | 				 <&clkc_audio AUD_RESET_FRDDR_B>; | ||||||
|  | 			reset-names = "arb", "rst"; | ||||||
|  | 			amlogic,fifo-depth = <256>; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		frddr_c: audio-controller@240 { | ||||||
|  | 			compatible = "amlogic,g12a-frddr", | ||||||
|  | 				     "amlogic,axg-frddr"; | ||||||
|  | 			reg = <0x0 0x240 0x0 0x2c>; | ||||||
|  | 			#sound-dai-cells = <0>; | ||||||
|  | 			sound-name-prefix = "FRDDR_C"; | ||||||
|  | 			interrupts = <GIC_SPI 154 IRQ_TYPE_EDGE_RISING>; | ||||||
|  | 			clocks = <&clkc_audio AUD_CLKID_FRDDR_C>; | ||||||
|  | 			resets = <&arb AXG_ARB_FRDDR_C>, | ||||||
|  | 				 <&clkc_audio AUD_RESET_FRDDR_C>; | ||||||
|  | 			reset-names = "arb", "rst"; | ||||||
|  | 			amlogic,fifo-depth = <256>; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		arb: reset-controller@280 { | ||||||
|  | 			status = "disabled"; | ||||||
|  | 			compatible = "amlogic,meson-axg-audio-arb"; | ||||||
|  | 			reg = <0x0 0x280 0x0 0x4>; | ||||||
|  | 			#reset-cells = <1>; | ||||||
|  | 			clocks = <&clkc_audio AUD_CLKID_DDR_ARB>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tdmin_a: audio-controller@300 { | ||||||
|  | 			compatible = "amlogic,g12a-tdmin", | ||||||
|  | 				     "amlogic,axg-tdmin"; | ||||||
|  | 			reg = <0x0 0x300 0x0 0x40>; | ||||||
|  | 			sound-name-prefix = "TDMIN_A"; | ||||||
|  | 			resets = <&clkc_audio AUD_RESET_TDMIN_A>; | ||||||
|  | 			clocks = <&clkc_audio AUD_CLKID_TDMIN_A>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMIN_A_SCLK>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMIN_A_SCLK_SEL>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMIN_A_LRCLK>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMIN_A_LRCLK>; | ||||||
|  | 			clock-names = "pclk", "sclk", "sclk_sel", | ||||||
|  | 				      "lrclk", "lrclk_sel"; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tdmin_b: audio-controller@340 { | ||||||
|  | 			compatible = "amlogic,g12a-tdmin", | ||||||
|  | 				     "amlogic,axg-tdmin"; | ||||||
|  | 			reg = <0x0 0x340 0x0 0x40>; | ||||||
|  | 			sound-name-prefix = "TDMIN_B"; | ||||||
|  | 			resets = <&clkc_audio AUD_RESET_TDMIN_B>; | ||||||
|  | 			clocks = <&clkc_audio AUD_CLKID_TDMIN_B>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMIN_B_SCLK>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMIN_B_SCLK_SEL>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMIN_B_LRCLK>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMIN_B_LRCLK>; | ||||||
|  | 			clock-names = "pclk", "sclk", "sclk_sel", | ||||||
|  | 				      "lrclk", "lrclk_sel"; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tdmin_c: audio-controller@380 { | ||||||
|  | 			compatible = "amlogic,g12a-tdmin", | ||||||
|  | 				     "amlogic,axg-tdmin"; | ||||||
|  | 			reg = <0x0 0x380 0x0 0x40>; | ||||||
|  | 			sound-name-prefix = "TDMIN_C"; | ||||||
|  | 			resets = <&clkc_audio AUD_RESET_TDMIN_C>; | ||||||
|  | 			clocks = <&clkc_audio AUD_CLKID_TDMIN_C>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMIN_C_SCLK>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMIN_C_SCLK_SEL>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMIN_C_LRCLK>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMIN_C_LRCLK>; | ||||||
|  | 			clock-names = "pclk", "sclk", "sclk_sel", | ||||||
|  | 				      "lrclk", "lrclk_sel"; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tdmin_lb: audio-controller@3c0 { | ||||||
|  | 			compatible = "amlogic,g12a-tdmin", | ||||||
|  | 				     "amlogic,axg-tdmin"; | ||||||
|  | 			reg = <0x0 0x3c0 0x0 0x40>; | ||||||
|  | 			sound-name-prefix = "TDMIN_LB"; | ||||||
|  | 			resets = <&clkc_audio AUD_RESET_TDMIN_LB>; | ||||||
|  | 			clocks = <&clkc_audio AUD_CLKID_TDMIN_LB>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMIN_LB_SCLK>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMIN_LB_SCLK_SEL>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMIN_LB_LRCLK>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMIN_LB_LRCLK>; | ||||||
|  | 			clock-names = "pclk", "sclk", "sclk_sel", | ||||||
|  | 				      "lrclk", "lrclk_sel"; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		spdifin: audio-controller@400 { | ||||||
|  | 			compatible = "amlogic,g12a-spdifin", | ||||||
|  | 				     "amlogic,axg-spdifin"; | ||||||
|  | 			reg = <0x0 0x400 0x0 0x30>; | ||||||
|  | 			#sound-dai-cells = <0>; | ||||||
|  | 			sound-name-prefix = "SPDIFIN"; | ||||||
|  | 			interrupts = <GIC_SPI 151 IRQ_TYPE_EDGE_RISING>; | ||||||
|  | 			clocks = <&clkc_audio AUD_CLKID_SPDIFIN>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_SPDIFIN_CLK>; | ||||||
|  | 			clock-names = "pclk", "refclk"; | ||||||
|  | 			resets = <&clkc_audio AUD_RESET_SPDIFIN>; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		spdifout: audio-controller@480 { | ||||||
|  | 			compatible = "amlogic,g12a-spdifout", | ||||||
|  | 				     "amlogic,axg-spdifout"; | ||||||
|  | 			reg = <0x0 0x480 0x0 0x50>; | ||||||
|  | 			#sound-dai-cells = <0>; | ||||||
|  | 			sound-name-prefix = "SPDIFOUT"; | ||||||
|  | 			clocks = <&clkc_audio AUD_CLKID_SPDIFOUT>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_SPDIFOUT_CLK>; | ||||||
|  | 			clock-names = "pclk", "mclk"; | ||||||
|  | 			resets = <&clkc_audio AUD_RESET_SPDIFOUT>; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tdmout_a: audio-controller@500 { | ||||||
|  | 			compatible = "amlogic,g12a-tdmout"; | ||||||
|  | 			reg = <0x0 0x500 0x0 0x40>; | ||||||
|  | 			sound-name-prefix = "TDMOUT_A"; | ||||||
|  | 			resets = <&clkc_audio AUD_RESET_TDMOUT_A>; | ||||||
|  | 			clocks = <&clkc_audio AUD_CLKID_TDMOUT_A>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK_SEL>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>; | ||||||
|  | 			clock-names = "pclk", "sclk", "sclk_sel", | ||||||
|  | 				      "lrclk", "lrclk_sel"; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tdmout_b: audio-controller@540 { | ||||||
|  | 			compatible = "amlogic,g12a-tdmout"; | ||||||
|  | 			reg = <0x0 0x540 0x0 0x40>; | ||||||
|  | 			sound-name-prefix = "TDMOUT_B"; | ||||||
|  | 			resets = <&clkc_audio AUD_RESET_TDMOUT_B>; | ||||||
|  | 			clocks = <&clkc_audio AUD_CLKID_TDMOUT_B>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMOUT_B_SCLK>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMOUT_B_SCLK_SEL>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMOUT_B_LRCLK>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMOUT_B_LRCLK>; | ||||||
|  | 			clock-names = "pclk", "sclk", "sclk_sel", | ||||||
|  | 				      "lrclk", "lrclk_sel"; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tdmout_c: audio-controller@580 { | ||||||
|  | 			compatible = "amlogic,g12a-tdmout"; | ||||||
|  | 			reg = <0x0 0x580 0x0 0x40>; | ||||||
|  | 			sound-name-prefix = "TDMOUT_C"; | ||||||
|  | 			resets = <&clkc_audio AUD_RESET_TDMOUT_C>; | ||||||
|  | 			clocks = <&clkc_audio AUD_CLKID_TDMOUT_C>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMOUT_C_SCLK>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMOUT_C_SCLK_SEL>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMOUT_C_LRCLK>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMOUT_C_LRCLK>; | ||||||
|  | 			clock-names = "pclk", "sclk", "sclk_sel", | ||||||
|  | 				      "lrclk", "lrclk_sel"; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		spdifout_b: audio-controller@680 { | ||||||
|  | 			compatible = "amlogic,g12a-spdifout", | ||||||
|  | 				     "amlogic,axg-spdifout"; | ||||||
|  | 			reg = <0x0 0x680 0x0 0x50>; | ||||||
|  | 			#sound-dai-cells = <0>; | ||||||
|  | 			sound-name-prefix = "SPDIFOUT_B"; | ||||||
|  | 			clocks = <&clkc_audio AUD_CLKID_SPDIFOUT_B>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_SPDIFOUT_B_CLK>; | ||||||
|  | 			clock-names = "pclk", "mclk"; | ||||||
|  | 			resets = <&clkc_audio AUD_RESET_SPDIFOUT_B>; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tohdmitx: audio-controller@744 { | ||||||
|  | 			compatible = "amlogic,g12a-tohdmitx"; | ||||||
|  | 			reg = <0x0 0x744 0x0 0x4>; | ||||||
|  | 			#sound-dai-cells = <1>; | ||||||
|  | 			sound-name-prefix = "TOHDMITX"; | ||||||
|  | 			resets = <&clkc_audio AUD_RESET_TOHDMITX>; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &cpu_thermal { | ||||||
|  | 	cooling-maps { | ||||||
|  | 		map0 { | ||||||
|  | 			trip = <&cpu_passive>; | ||||||
|  | 			cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | ||||||
|  | 					 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | ||||||
|  | 					 <&cpu100 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | ||||||
|  | 					 <&cpu101 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | ||||||
|  | 					 <&cpu102 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | ||||||
|  | 					 <&cpu103 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; | ||||||
|  | 		}; | ||||||
|  | 		map1 { | ||||||
|  | 			trip = <&cpu_hot>; | ||||||
|  | 			cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | ||||||
|  | 					 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | ||||||
|  | 					 <&cpu100 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | ||||||
|  | 					 <&cpu101 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | ||||||
|  | 					 <&cpu102 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | ||||||
|  | 					 <&cpu103 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | ðmac { | ||||||
|  | 	power-domains = <&pwrc PWRC_G12A_ETH_ID>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &vpu { | ||||||
|  | 	power-domains = <&pwrc PWRC_G12A_VPU_ID>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &sd_emmc_a { | ||||||
|  | 	amlogic,dram-access-quirk; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &simplefb_cvbs { | ||||||
|  | 	power-domains = <&pwrc PWRC_G12A_VPU_ID>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &simplefb_hdmi { | ||||||
|  | 	power-domains = <&pwrc PWRC_G12A_VPU_ID>; | ||||||
|  | }; | ||||||
|  |  | ||||||
| @@ -129,6 +129,25 @@ | |||||||
| 		enable-active-high; | 		enable-active-high; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
|  | 	vddcpu: regulator-vddcpu { | ||||||
|  | 		/* | ||||||
|  | 		 * SY8120B1ABC DC/DC Regulator. | ||||||
|  | 		 */ | ||||||
|  | 		compatible = "pwm-regulator"; | ||||||
|  |  | ||||||
|  | 		regulator-name = "VDDCPU"; | ||||||
|  | 		regulator-min-microvolt = <721000>; | ||||||
|  | 		regulator-max-microvolt = <1022000>; | ||||||
|  |  | ||||||
|  | 		vin-supply = <&dc_in>; | ||||||
|  |  | ||||||
|  | 		pwms = <&pwm_AO_cd 1 1250 0>; | ||||||
|  | 		pwm-dutycycle-range = <100 0>; | ||||||
|  |  | ||||||
|  | 		regulator-boot-on; | ||||||
|  | 		regulator-always-on; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
| 	vddio_ao1v8: regulator-vddio_ao1v8 { | 	vddio_ao1v8: regulator-vddio_ao1v8 { | ||||||
| 		compatible = "regulator-fixed"; | 		compatible = "regulator-fixed"; | ||||||
| 		regulator-name = "VDDIO_AO1V8"; | 		regulator-name = "VDDIO_AO1V8"; | ||||||
| @@ -297,6 +316,34 @@ | |||||||
| 	status = "okay"; | 	status = "okay"; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | &cpu0 { | ||||||
|  | 	cpu-supply = <&vddcpu>; | ||||||
|  | 	operating-points-v2 = <&cpu_opp_table>; | ||||||
|  | 	clocks = <&clkc CLKID_CPU_CLK>; | ||||||
|  | 	clock-latency = <50000>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &cpu1 { | ||||||
|  | 	cpu-supply = <&vddcpu>; | ||||||
|  | 	operating-points-v2 = <&cpu_opp_table>; | ||||||
|  | 	clocks = <&clkc CLKID_CPU_CLK>; | ||||||
|  | 	clock-latency = <50000>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &cpu2 { | ||||||
|  | 	cpu-supply = <&vddcpu>; | ||||||
|  | 	operating-points-v2 = <&cpu_opp_table>; | ||||||
|  | 	clocks = <&clkc CLKID_CPU_CLK>; | ||||||
|  | 	clock-latency = <50000>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &cpu3 { | ||||||
|  | 	cpu-supply = <&vddcpu>; | ||||||
|  | 	operating-points-v2 = <&cpu_opp_table>; | ||||||
|  | 	clocks = <&clkc CLKID_CPU_CLK>; | ||||||
|  | 	clock-latency = <50000>; | ||||||
|  | }; | ||||||
|  |  | ||||||
| &cvbs_vdac_port { | &cvbs_vdac_port { | ||||||
| 	cvbs_vdac_out: endpoint { | 	cvbs_vdac_out: endpoint { | ||||||
| 		remote-endpoint = <&cvbs_connector_in>; | 		remote-endpoint = <&cvbs_connector_in>; | ||||||
| @@ -339,6 +386,20 @@ | |||||||
| 	pinctrl-names = "default"; | 	pinctrl-names = "default"; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | &ir { | ||||||
|  | 	status = "okay"; | ||||||
|  | 	pinctrl-0 = <&remote_input_ao_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &pwm_AO_cd { | ||||||
|  | 	pinctrl-0 = <&pwm_ao_d_e_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	clocks = <&xtal>; | ||||||
|  | 	clock-names = "clkin1"; | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
| &pwm_ef { | &pwm_ef { | ||||||
| 	status = "okay"; | 	status = "okay"; | ||||||
| 	pinctrl-0 = <&pwm_e_pins>; | 	pinctrl-0 = <&pwm_e_pins>; | ||||||
| @@ -377,6 +438,9 @@ | |||||||
| 	non-removable; | 	non-removable; | ||||||
| 	disable-wp; | 	disable-wp; | ||||||
|  |  | ||||||
|  | 	/* WiFi firmware requires power to be kept while in suspend */ | ||||||
|  | 	keep-power-in-suspend; | ||||||
|  |  | ||||||
| 	mmc-pwrseq = <&sdio_pwrseq>; | 	mmc-pwrseq = <&sdio_pwrseq>; | ||||||
|  |  | ||||||
| 	vmmc-supply = <&vddao_3v3>; | 	vmmc-supply = <&vddao_3v3>; | ||||||
|   | |||||||
| @@ -129,6 +129,24 @@ | |||||||
| 		regulator-always-on; | 		regulator-always-on; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
|  | 	vddcpu: regulator-vddcpu { | ||||||
|  | 		/* | ||||||
|  | 		 * MP8756GD Regulator. | ||||||
|  | 		 */ | ||||||
|  | 		compatible = "pwm-regulator"; | ||||||
|  |  | ||||||
|  | 		regulator-name = "VDDCPU"; | ||||||
|  | 		regulator-min-microvolt = <721000>; | ||||||
|  | 		regulator-max-microvolt = <1022000>; | ||||||
|  |  | ||||||
|  | 		vin-supply = <&main_12v>; | ||||||
|  |  | ||||||
|  | 		pwms = <&pwm_AO_cd 1 1250 0>; | ||||||
|  | 		pwm-dutycycle-range = <100 0>; | ||||||
|  |  | ||||||
|  | 		regulator-boot-on; | ||||||
|  | 		regulator-always-on; | ||||||
|  | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| &cec_AO { | &cec_AO { | ||||||
| @@ -145,6 +163,34 @@ | |||||||
| 	hdmi-phandle = <&hdmi_tx>; | 	hdmi-phandle = <&hdmi_tx>; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | &cpu0 { | ||||||
|  | 	cpu-supply = <&vddcpu>; | ||||||
|  | 	operating-points-v2 = <&cpu_opp_table>; | ||||||
|  | 	clocks = <&clkc CLKID_CPU_CLK>; | ||||||
|  | 	clock-latency = <50000>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &cpu1 { | ||||||
|  | 	cpu-supply = <&vddcpu>; | ||||||
|  | 	operating-points-v2 = <&cpu_opp_table>; | ||||||
|  | 	clocks = <&clkc CLKID_CPU_CLK>; | ||||||
|  | 	clock-latency = <50000>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &cpu2 { | ||||||
|  | 	cpu-supply = <&vddcpu>; | ||||||
|  | 	operating-points-v2 = <&cpu_opp_table>; | ||||||
|  | 	clocks = <&clkc CLKID_CPU_CLK>; | ||||||
|  | 	clock-latency = <50000>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &cpu3 { | ||||||
|  | 	cpu-supply = <&vddcpu>; | ||||||
|  | 	operating-points-v2 = <&cpu_opp_table>; | ||||||
|  | 	clocks = <&clkc CLKID_CPU_CLK>; | ||||||
|  | 	clock-latency = <50000>; | ||||||
|  | }; | ||||||
|  |  | ||||||
| &cvbs_vdac_port { | &cvbs_vdac_port { | ||||||
| 	cvbs_vdac_out: endpoint { | 	cvbs_vdac_out: endpoint { | ||||||
| 		remote-endpoint = <&cvbs_connector_in>; | 		remote-endpoint = <&cvbs_connector_in>; | ||||||
| @@ -197,6 +243,14 @@ | |||||||
| 	pinctrl-names = "default"; | 	pinctrl-names = "default"; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | &pwm_AO_cd { | ||||||
|  | 	pinctrl-0 = <&pwm_ao_d_e_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	clocks = <&xtal>; | ||||||
|  | 	clock-names = "clkin1"; | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
| /* SD card */ | /* SD card */ | ||||||
| &sd_emmc_b { | &sd_emmc_b { | ||||||
| 	status = "okay"; | 	status = "okay"; | ||||||
|   | |||||||
| @@ -3,8 +3,7 @@ | |||||||
|  * Copyright (c) 2018 Amlogic, Inc. All rights reserved. |  * Copyright (c) 2018 Amlogic, Inc. All rights reserved. | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
| #include "meson-g12-common.dtsi" | #include "meson-g12.dtsi" | ||||||
| #include <dt-bindings/power/meson-g12a-power.h> |  | ||||||
|  |  | ||||||
| / { | / { | ||||||
| 	compatible = "amlogic,g12a"; | 	compatible = "amlogic,g12a"; | ||||||
| @@ -19,6 +18,7 @@ | |||||||
| 			reg = <0x0 0x0>; | 			reg = <0x0 0x0>; | ||||||
| 			enable-method = "psci"; | 			enable-method = "psci"; | ||||||
| 			next-level-cache = <&l2>; | 			next-level-cache = <&l2>; | ||||||
|  | 			#cooling-cells = <2>; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| 		cpu1: cpu@1 { | 		cpu1: cpu@1 { | ||||||
| @@ -27,6 +27,7 @@ | |||||||
| 			reg = <0x0 0x1>; | 			reg = <0x0 0x1>; | ||||||
| 			enable-method = "psci"; | 			enable-method = "psci"; | ||||||
| 			next-level-cache = <&l2>; | 			next-level-cache = <&l2>; | ||||||
|  | 			#cooling-cells = <2>; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| 		cpu2: cpu@2 { | 		cpu2: cpu@2 { | ||||||
| @@ -35,6 +36,7 @@ | |||||||
| 			reg = <0x0 0x2>; | 			reg = <0x0 0x2>; | ||||||
| 			enable-method = "psci"; | 			enable-method = "psci"; | ||||||
| 			next-level-cache = <&l2>; | 			next-level-cache = <&l2>; | ||||||
|  | 			#cooling-cells = <2>; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| 		cpu3: cpu@3 { | 		cpu3: cpu@3 { | ||||||
| @@ -43,6 +45,7 @@ | |||||||
| 			reg = <0x0 0x3>; | 			reg = <0x0 0x3>; | ||||||
| 			enable-method = "psci"; | 			enable-method = "psci"; | ||||||
| 			next-level-cache = <&l2>; | 			next-level-cache = <&l2>; | ||||||
|  | 			#cooling-cells = <2>; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| 		l2: l2-cache0 { | 		l2: l2-cache0 { | ||||||
| @@ -111,14 +114,22 @@ | |||||||
| 	}; | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| ðmac { | &cpu_thermal { | ||||||
| 	power-domains = <&pwrc PWRC_G12A_ETH_ID>; | 	cooling-maps { | ||||||
| }; | 		map0 { | ||||||
|  | 			trip = <&cpu_passive>; | ||||||
|  | 			cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | ||||||
|  | 					<&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | ||||||
|  | 					<&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | ||||||
|  | 					<&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
| &vpu { | 		map1 { | ||||||
| 	power-domains = <&pwrc PWRC_G12A_VPU_ID>; | 			trip = <&cpu_hot>; | ||||||
| }; | 			cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | ||||||
|  | 					<&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | ||||||
| &sd_emmc_a { | 					<&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | ||||||
| 	amlogic,dram-access-quirk; | 					<&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
| }; | }; | ||||||
|   | |||||||
| @@ -14,3 +14,28 @@ | |||||||
| / { | / { | ||||||
| 	compatible = "khadas,vim3", "amlogic,a311d", "amlogic,g12b"; | 	compatible = "khadas,vim3", "amlogic,a311d", "amlogic,g12b"; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |  * The VIM3 on-board  MCU can mux the PCIe/USB3.0 shared differential | ||||||
|  |  * lines using a FUSB340TMX USB 3.1 SuperSpeed Data Switch between | ||||||
|  |  * an USB3.0 Type A connector and a M.2 Key M slot. | ||||||
|  |  * The PHY driving these differential lines is shared between | ||||||
|  |  * the USB3.0 controller and the PCIe Controller, thus only | ||||||
|  |  * a single controller can use it. | ||||||
|  |  * If the MCU is configured to mux the PCIe/USB3.0 differential lines | ||||||
|  |  * to the M.2 Key M slot, uncomment the following block to disable | ||||||
|  |  * USB3.0 from the USB Complex and enable the PCIe controller. | ||||||
|  |  * The End User is not expected to uncomment the following except for | ||||||
|  |  * testing purposes, but instead rely on the firmware/bootloader to | ||||||
|  |  * update these nodes accordingly if PCIe mode is selected by the MCU. | ||||||
|  |  */ | ||||||
|  | /* | ||||||
|  | &pcie { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usb { | ||||||
|  | 	phys = <&usb2_phy0>, <&usb2_phy1>; | ||||||
|  | 	phy-names = "usb2-phy0", "usb2-phy1"; | ||||||
|  | }; | ||||||
|  |  */ | ||||||
|   | |||||||
| @@ -12,7 +12,7 @@ | |||||||
| #include <dt-bindings/sound/meson-g12a-tohdmitx.h> | #include <dt-bindings/sound/meson-g12a-tohdmitx.h> | ||||||
|  |  | ||||||
| / { | / { | ||||||
| 	compatible = "hardkernel,odroid-n2", "amlogic,g12b"; | 	compatible = "hardkernel,odroid-n2", "amlogic,s922x", "amlogic,g12b"; | ||||||
| 	model = "Hardkernel ODROID-N2"; | 	model = "Hardkernel ODROID-N2"; | ||||||
|  |  | ||||||
| 	aliases { | 	aliases { | ||||||
|   | |||||||
| @@ -4,8 +4,7 @@ | |||||||
|  * Author: Neil Armstrong <narmstrong@baylibre.com> |  * Author: Neil Armstrong <narmstrong@baylibre.com> | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
| #include "meson-g12-common.dtsi" | #include "meson-g12.dtsi" | ||||||
| #include <dt-bindings/power/meson-g12a-power.h> |  | ||||||
|  |  | ||||||
| / { | / { | ||||||
| 	compatible = "amlogic,g12b"; | 	compatible = "amlogic,g12b"; | ||||||
| @@ -49,7 +48,9 @@ | |||||||
| 			compatible = "arm,cortex-a53"; | 			compatible = "arm,cortex-a53"; | ||||||
| 			reg = <0x0 0x0>; | 			reg = <0x0 0x0>; | ||||||
| 			enable-method = "psci"; | 			enable-method = "psci"; | ||||||
|  | 			capacity-dmips-mhz = <592>; | ||||||
| 			next-level-cache = <&l2>; | 			next-level-cache = <&l2>; | ||||||
|  | 			#cooling-cells = <2>; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| 		cpu1: cpu@1 { | 		cpu1: cpu@1 { | ||||||
| @@ -57,7 +58,9 @@ | |||||||
| 			compatible = "arm,cortex-a53"; | 			compatible = "arm,cortex-a53"; | ||||||
| 			reg = <0x0 0x1>; | 			reg = <0x0 0x1>; | ||||||
| 			enable-method = "psci"; | 			enable-method = "psci"; | ||||||
|  | 			capacity-dmips-mhz = <592>; | ||||||
| 			next-level-cache = <&l2>; | 			next-level-cache = <&l2>; | ||||||
|  | 			#cooling-cells = <2>; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| 		cpu100: cpu@100 { | 		cpu100: cpu@100 { | ||||||
| @@ -65,7 +68,9 @@ | |||||||
| 			compatible = "arm,cortex-a73"; | 			compatible = "arm,cortex-a73"; | ||||||
| 			reg = <0x0 0x100>; | 			reg = <0x0 0x100>; | ||||||
| 			enable-method = "psci"; | 			enable-method = "psci"; | ||||||
|  | 			capacity-dmips-mhz = <1024>; | ||||||
| 			next-level-cache = <&l2>; | 			next-level-cache = <&l2>; | ||||||
|  | 			#cooling-cells = <2>; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| 		cpu101: cpu@101 { | 		cpu101: cpu@101 { | ||||||
| @@ -73,7 +78,9 @@ | |||||||
| 			compatible = "arm,cortex-a73"; | 			compatible = "arm,cortex-a73"; | ||||||
| 			reg = <0x0 0x101>; | 			reg = <0x0 0x101>; | ||||||
| 			enable-method = "psci"; | 			enable-method = "psci"; | ||||||
|  | 			capacity-dmips-mhz = <1024>; | ||||||
| 			next-level-cache = <&l2>; | 			next-level-cache = <&l2>; | ||||||
|  | 			#cooling-cells = <2>; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| 		cpu102: cpu@102 { | 		cpu102: cpu@102 { | ||||||
| @@ -81,7 +88,9 @@ | |||||||
| 			compatible = "arm,cortex-a73"; | 			compatible = "arm,cortex-a73"; | ||||||
| 			reg = <0x0 0x102>; | 			reg = <0x0 0x102>; | ||||||
| 			enable-method = "psci"; | 			enable-method = "psci"; | ||||||
|  | 			capacity-dmips-mhz = <1024>; | ||||||
| 			next-level-cache = <&l2>; | 			next-level-cache = <&l2>; | ||||||
|  | 			#cooling-cells = <2>; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| 		cpu103: cpu@103 { | 		cpu103: cpu@103 { | ||||||
| @@ -89,7 +98,9 @@ | |||||||
| 			compatible = "arm,cortex-a73"; | 			compatible = "arm,cortex-a73"; | ||||||
| 			reg = <0x0 0x103>; | 			reg = <0x0 0x103>; | ||||||
| 			enable-method = "psci"; | 			enable-method = "psci"; | ||||||
|  | 			capacity-dmips-mhz = <1024>; | ||||||
| 			next-level-cache = <&l2>; | 			next-level-cache = <&l2>; | ||||||
|  | 			#cooling-cells = <2>; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| 		l2: l2-cache0 { | 		l2: l2-cache0 { | ||||||
| @@ -102,14 +113,3 @@ | |||||||
| 	compatible = "amlogic,g12b-clkc"; | 	compatible = "amlogic,g12b-clkc"; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| ðmac { |  | ||||||
| 	power-domains = <&pwrc PWRC_G12A_ETH_ID>; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| &vpu { |  | ||||||
| 	power-domains = <&pwrc PWRC_G12A_VPU_ID>; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| &sd_emmc_a { |  | ||||||
| 	amlogic,dram-access-quirk; |  | ||||||
| }; |  | ||||||
|   | |||||||
							
								
								
									
										375
									
								
								arch/arm/dts/meson-gx-libretech-pc.dtsi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										375
									
								
								arch/arm/dts/meson-gx-libretech-pc.dtsi
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,375 @@ | |||||||
|  | // SPDX-License-Identifier: GPL-2.0 | ||||||
|  | /* | ||||||
|  |  * Copyright (c) 2019 BayLibre SAS. | ||||||
|  |  * Author: Jerome Brunet <jbrunet@baylibre.com> | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | /* Libretech Amlogic GX PC form factor - AKA: Tartiflette */ | ||||||
|  |  | ||||||
|  | #include <dt-bindings/input/input.h> | ||||||
|  | #include <dt-bindings/leds/common.h> | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	adc-keys { | ||||||
|  | 		compatible = "adc-keys"; | ||||||
|  | 		io-channels = <&saradc 0>; | ||||||
|  | 		io-channel-names = "buttons"; | ||||||
|  | 		keyup-threshold-microvolt = <1800000>; | ||||||
|  |  | ||||||
|  | 		update-button { | ||||||
|  | 			label = "update"; | ||||||
|  | 			linux,code = <KEY_VENDOR>; | ||||||
|  | 			press-threshold-microvolt = <1300000>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	aliases { | ||||||
|  | 		serial0 = &uart_AO; | ||||||
|  | 		ethernet0 = ðmac; | ||||||
|  | 		spi0 = &spifc; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	chosen { | ||||||
|  | 		stdout-path = "serial0:115200n8"; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	cvbs-connector { | ||||||
|  | 		compatible = "composite-video-connector"; | ||||||
|  | 		status = "disabled"; | ||||||
|  |  | ||||||
|  | 		port { | ||||||
|  | 			cvbs_connector_in: endpoint { | ||||||
|  | 				remote-endpoint = <&cvbs_vdac_out>; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	emmc_pwrseq: emmc-pwrseq { | ||||||
|  | 		compatible = "mmc-pwrseq-emmc"; | ||||||
|  | 		reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	hdmi-connector { | ||||||
|  | 		compatible = "hdmi-connector"; | ||||||
|  | 		type = "a"; | ||||||
|  |  | ||||||
|  | 		port { | ||||||
|  | 			hdmi_connector_in: endpoint { | ||||||
|  | 				remote-endpoint = <&hdmi_tx_tmds_out>; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpio-keys-polled { | ||||||
|  | 		compatible = "gpio-keys-polled"; | ||||||
|  | 		poll-interval = <100>; | ||||||
|  |  | ||||||
|  | 		power-button { | ||||||
|  | 			label = "power"; | ||||||
|  | 			linux,code = <KEY_POWER>; | ||||||
|  | 			gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	memory@0 { | ||||||
|  | 		device_type = "memory"; | ||||||
|  | 		reg = <0x0 0x0 0x0 0x80000000>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	ao_5v: regulator-ao_5v { | ||||||
|  | 		compatible = "regulator-fixed"; | ||||||
|  | 		regulator-name = "AO_5V"; | ||||||
|  | 		regulator-min-microvolt = <5000000>; | ||||||
|  | 		regulator-max-microvolt = <5000000>; | ||||||
|  | 		vin-supply = <&dc_in>; | ||||||
|  | 		regulator-always-on; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	dc_in: regulator-dc_in { | ||||||
|  | 		compatible = "regulator-fixed"; | ||||||
|  | 		regulator-name = "DC_IN"; | ||||||
|  | 		regulator-min-microvolt = <5000000>; | ||||||
|  | 		regulator-max-microvolt = <5000000>; | ||||||
|  | 		regulator-always-on; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	leds { | ||||||
|  | 		compatible = "gpio-leds"; | ||||||
|  |  | ||||||
|  | 		green { | ||||||
|  | 			color = <LED_COLOR_ID_GREEN>; | ||||||
|  | 			function = LED_FUNCTION_DISK_ACTIVITY; | ||||||
|  | 			gpios = <&gpio_ao GPIOAO_9 GPIO_ACTIVE_HIGH>; | ||||||
|  | 			linux,default-trigger = "disk-activity"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		blue { | ||||||
|  | 			color = <LED_COLOR_ID_BLUE>; | ||||||
|  | 			function = LED_FUNCTION_STATUS; | ||||||
|  | 			gpios = <&gpio GPIODV_28 GPIO_ACTIVE_HIGH>; | ||||||
|  | 			linux,default-trigger = "heartbeat"; | ||||||
|  | 			panic-indicator; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	vcc_card: regulator-vcc_card { | ||||||
|  | 		compatible = "regulator-fixed"; | ||||||
|  | 		regulator-name = "VCC_CARD"; | ||||||
|  | 		regulator-min-microvolt = <3300000>; | ||||||
|  | 		regulator-max-microvolt = <3300000>; | ||||||
|  | 		vin-supply = <&vddio_ao3v3>; | ||||||
|  |  | ||||||
|  | 		gpio = <&gpio GPIODV_4 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		enable-active-high; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	vcc5v: regulator-vcc5v { | ||||||
|  | 		compatible = "regulator-fixed"; | ||||||
|  | 		regulator-name = "VCC5V"; | ||||||
|  | 		regulator-min-microvolt = <5000000>; | ||||||
|  | 		regulator-max-microvolt = <5000000>; | ||||||
|  | 		vin-supply = <&ao_5v>; | ||||||
|  |  | ||||||
|  | 		gpio = <&gpio GPIOH_3 GPIO_OPEN_DRAIN>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	vddio_ao18: regulator-vddio_ao18 { | ||||||
|  | 		compatible = "regulator-fixed"; | ||||||
|  | 		regulator-name = "VDDIO_AO18"; | ||||||
|  | 		regulator-min-microvolt = <1800000>; | ||||||
|  | 		regulator-max-microvolt = <1800000>; | ||||||
|  | 		vin-supply = <&ao_5v>; | ||||||
|  | 		regulator-always-on; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	vddio_ao3v3: regulator-vddio_ao3v3 { | ||||||
|  | 		compatible = "regulator-fixed"; | ||||||
|  | 		regulator-name = "VDDIO_AO3V3"; | ||||||
|  | 		regulator-min-microvolt = <3300000>; | ||||||
|  | 		regulator-max-microvolt = <3300000>; | ||||||
|  | 		vin-supply = <&ao_5v>; | ||||||
|  | 		regulator-always-on; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	vddio_boot: regulator-vddio_boot { | ||||||
|  | 		compatible = "regulator-fixed"; | ||||||
|  | 		regulator-name = "VDDIO_BOOT"; | ||||||
|  | 		regulator-min-microvolt = <1800000>; | ||||||
|  | 		regulator-max-microvolt = <1800000>; | ||||||
|  | 		vin-supply = <&vddio_ao3v3>; | ||||||
|  | 		regulator-always-on; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	vddio_card: regulator-vddio-card { | ||||||
|  | 		compatible = "regulator-gpio"; | ||||||
|  | 		regulator-name = "VDDIO_CARD"; | ||||||
|  | 		regulator-min-microvolt = <1800000>; | ||||||
|  | 		regulator-max-microvolt = <3300000>; | ||||||
|  |  | ||||||
|  | 		gpios = <&gpio GPIODV_5 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		gpios-states = <0>; | ||||||
|  |  | ||||||
|  | 		states = <3300000 0>, | ||||||
|  | 			 <1800000 1>; | ||||||
|  |  | ||||||
|  | 		regulator-settling-time-up-us = <200>; | ||||||
|  | 		regulator-settling-time-down-us = <50000>; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &cec_AO { | ||||||
|  | 	pinctrl-0 = <&ao_cec_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	hdmi-phandle = <&hdmi_tx>; | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &cvbs_vdac_port { | ||||||
|  | 	cvbs_vdac_out: endpoint { | ||||||
|  | 		remote-endpoint = <&cvbs_connector_in>; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | ðmac { | ||||||
|  | 	pinctrl-0 = <ð_pins>, <ð_phy_irq_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	phy-handle = <&external_phy>; | ||||||
|  | 	amlogic,tx-delay-ns = <2>; | ||||||
|  | 	phy-mode = "rgmii"; | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &external_mdio { | ||||||
|  | 	external_phy: ethernet-phy@0 { | ||||||
|  | 		reg = <0>; | ||||||
|  | 		max-speed = <1000>; | ||||||
|  | 		reset-assert-us = <10000>; | ||||||
|  | 		reset-deassert-us = <30000>; | ||||||
|  | 		reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; | ||||||
|  | 		interrupt-parent = <&gpio_intc>; | ||||||
|  | 		interrupts = <25 IRQ_TYPE_LEVEL_LOW>; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &pinctrl_periphs { | ||||||
|  | 	/* | ||||||
|  | 	 * Make sure the reset pin of the usb HUB is driven high to take | ||||||
|  | 	 * it out of reset. | ||||||
|  | 	 */ | ||||||
|  | 	usb1_rst_pins: usb1_rst_irq { | ||||||
|  | 		mux { | ||||||
|  | 			groups = "GPIODV_3"; | ||||||
|  | 			function = "gpio_periphs"; | ||||||
|  | 			bias-disable; | ||||||
|  | 			output-high; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	/* Make sure the phy irq pin is properly configured as input */ | ||||||
|  | 	eth_phy_irq_pins: eth_phy_irq { | ||||||
|  | 		mux { | ||||||
|  | 			groups = "GPIOZ_15"; | ||||||
|  | 			function = "gpio_periphs"; | ||||||
|  | 			bias-disable; | ||||||
|  | 			output-disable; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &hdmi_tx { | ||||||
|  | 	pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	hdmi-supply = <&vcc5v>; | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &hdmi_tx_tmds_port { | ||||||
|  | 	hdmi_tx_tmds_out: endpoint { | ||||||
|  | 		remote-endpoint = <&hdmi_connector_in>; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &ir { | ||||||
|  | 	pinctrl-0 = <&remote_input_ao_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &i2c_C { | ||||||
|  | 	pinctrl-0 = <&i2c_c_dv18_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	rtc: rtc@51 { | ||||||
|  | 		reg = <0x51>; | ||||||
|  | 		compatible = "nxp,pcf8563"; | ||||||
|  | 		#clock-cells = <0>; | ||||||
|  | 		clock-output-names = "rtc_clkout"; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &pwm_AO_ab { | ||||||
|  | 	pinctrl-0 = <&pwm_ao_a_3_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	clocks = <&clkc CLKID_FCLK_DIV4>; | ||||||
|  | 	clock-names = "clkin0"; | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &pwm_ab { | ||||||
|  | 	pinctrl-0 = <&pwm_b_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	clocks = <&clkc CLKID_FCLK_DIV4>; | ||||||
|  | 	clock-names = "clkin0"; | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &pwm_ef { | ||||||
|  | 	pinctrl-0 = <&pwm_e_pins>, <&pwm_f_clk_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	clocks = <&clkc CLKID_FCLK_DIV4>; | ||||||
|  | 	clock-names = "clkin0"; | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &saradc { | ||||||
|  | 	vref-supply = <&vddio_ao18>; | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | /* SD card */ | ||||||
|  | &sd_emmc_b { | ||||||
|  | 	pinctrl-0 = <&sdcard_pins>; | ||||||
|  | 	pinctrl-1 = <&sdcard_clk_gate_pins>; | ||||||
|  | 	pinctrl-names = "default", "clk-gate"; | ||||||
|  |  | ||||||
|  | 	bus-width = <4>; | ||||||
|  | 	cap-sd-highspeed; | ||||||
|  | 	sd-uhs-sdr12; | ||||||
|  | 	sd-uhs-sdr25; | ||||||
|  | 	sd-uhs-sdr50; | ||||||
|  | 	sd-uhs-ddr50; | ||||||
|  | 	max-frequency = <200000000>; | ||||||
|  | 	disable-wp; | ||||||
|  |  | ||||||
|  | 	cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; | ||||||
|  |  | ||||||
|  | 	vmmc-supply = <&vcc_card>; | ||||||
|  | 	vqmmc-supply = <&vddio_card>; | ||||||
|  |  | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | /* eMMC */ | ||||||
|  | &sd_emmc_c { | ||||||
|  | 	pinctrl-0 = <&emmc_pins>; | ||||||
|  | 	pinctrl-1 = <&emmc_clk_gate_pins>; | ||||||
|  | 	pinctrl-names = "default", "clk-gate"; | ||||||
|  |  | ||||||
|  | 	bus-width = <8>; | ||||||
|  | 	cap-mmc-highspeed; | ||||||
|  | 	mmc-ddr-1_8v; | ||||||
|  | 	mmc-hs200-1_8v; | ||||||
|  | 	max-frequency = <200000000>; | ||||||
|  | 	disable-wp; | ||||||
|  |  | ||||||
|  | 	mmc-pwrseq = <&emmc_pwrseq>; | ||||||
|  | 	vmmc-supply = <&vddio_ao3v3>; | ||||||
|  | 	vqmmc-supply = <&vddio_boot>; | ||||||
|  |  | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &spifc { | ||||||
|  | 	pinctrl-0 = <&nor_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	gd25lq128: spi-flash@0 { | ||||||
|  | 		compatible = "jedec,spi-nor"; | ||||||
|  | 		#address-cells = <1>; | ||||||
|  | 		#size-cells = <1>; | ||||||
|  | 		reg = <0>; | ||||||
|  | 		spi-max-frequency = <12000000>; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &uart_AO { | ||||||
|  | 	pinctrl-0 = <&uart_ao_a_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usb0 { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usb2_phy0 { | ||||||
|  | 	pinctrl-0 = <&usb1_rst_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	phy-supply = <&vcc5v>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usb2_phy1 { | ||||||
|  | 	phy-supply = <&vcc5v>; | ||||||
|  | }; | ||||||
| @@ -50,13 +50,35 @@ | |||||||
| 		}; | 		}; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
|  | 	chosen { | ||||||
|  | 		#address-cells = <2>; | ||||||
|  | 		#size-cells = <2>; | ||||||
|  | 		ranges; | ||||||
|  |  | ||||||
|  | 		simplefb_cvbs: framebuffer-cvbs { | ||||||
|  | 			compatible = "amlogic,simple-framebuffer", | ||||||
|  | 				     "simple-framebuffer"; | ||||||
|  | 			amlogic,pipeline = "vpu-cvbs"; | ||||||
|  | 			power-domains = <&pwrc_vpu>; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		simplefb_hdmi: framebuffer-hdmi { | ||||||
|  | 			compatible = "amlogic,simple-framebuffer", | ||||||
|  | 				     "simple-framebuffer"; | ||||||
|  | 			amlogic,pipeline = "vpu-hdmi"; | ||||||
|  | 			power-domains = <&pwrc_vpu>; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
| 	cpus { | 	cpus { | ||||||
| 		#address-cells = <0x2>; | 		#address-cells = <0x2>; | ||||||
| 		#size-cells = <0x0>; | 		#size-cells = <0x0>; | ||||||
|  |  | ||||||
| 		cpu0: cpu@0 { | 		cpu0: cpu@0 { | ||||||
| 			device_type = "cpu"; | 			device_type = "cpu"; | ||||||
| 			compatible = "arm,cortex-a53", "arm,armv8"; | 			compatible = "arm,cortex-a53"; | ||||||
| 			reg = <0x0 0x0>; | 			reg = <0x0 0x0>; | ||||||
| 			enable-method = "psci"; | 			enable-method = "psci"; | ||||||
| 			next-level-cache = <&l2>; | 			next-level-cache = <&l2>; | ||||||
| @@ -65,7 +87,7 @@ | |||||||
|  |  | ||||||
| 		cpu1: cpu@1 { | 		cpu1: cpu@1 { | ||||||
| 			device_type = "cpu"; | 			device_type = "cpu"; | ||||||
| 			compatible = "arm,cortex-a53", "arm,armv8"; | 			compatible = "arm,cortex-a53"; | ||||||
| 			reg = <0x0 0x1>; | 			reg = <0x0 0x1>; | ||||||
| 			enable-method = "psci"; | 			enable-method = "psci"; | ||||||
| 			next-level-cache = <&l2>; | 			next-level-cache = <&l2>; | ||||||
| @@ -74,7 +96,7 @@ | |||||||
|  |  | ||||||
| 		cpu2: cpu@2 { | 		cpu2: cpu@2 { | ||||||
| 			device_type = "cpu"; | 			device_type = "cpu"; | ||||||
| 			compatible = "arm,cortex-a53", "arm,armv8"; | 			compatible = "arm,cortex-a53"; | ||||||
| 			reg = <0x0 0x2>; | 			reg = <0x0 0x2>; | ||||||
| 			enable-method = "psci"; | 			enable-method = "psci"; | ||||||
| 			next-level-cache = <&l2>; | 			next-level-cache = <&l2>; | ||||||
| @@ -83,7 +105,7 @@ | |||||||
|  |  | ||||||
| 		cpu3: cpu@3 { | 		cpu3: cpu@3 { | ||||||
| 			device_type = "cpu"; | 			device_type = "cpu"; | ||||||
| 			compatible = "arm,cortex-a53", "arm,armv8"; | 			compatible = "arm,cortex-a53"; | ||||||
| 			reg = <0x0 0x3>; | 			reg = <0x0 0x3>; | ||||||
| 			enable-method = "psci"; | 			enable-method = "psci"; | ||||||
| 			next-level-cache = <&l2>; | 			next-level-cache = <&l2>; | ||||||
| @@ -139,6 +161,7 @@ | |||||||
| 		#address-cells = <1>; | 		#address-cells = <1>; | ||||||
| 		#size-cells = <1>; | 		#size-cells = <1>; | ||||||
| 		read-only; | 		read-only; | ||||||
|  | 		secure-monitor = <&sm>; | ||||||
|  |  | ||||||
| 		sn: sn@14 { | 		sn: sn@14 { | ||||||
| 			reg = <0x14 0x10>; | 			reg = <0x14 0x10>; | ||||||
| @@ -198,7 +221,7 @@ | |||||||
| 			}; | 			}; | ||||||
|  |  | ||||||
| 			reset: reset-controller@4404 { | 			reset: reset-controller@4404 { | ||||||
| 				compatible = "amlogic,meson-gx-reset", "amlogic,meson-gxbb-reset"; | 				compatible = "amlogic,meson-gxbb-reset"; | ||||||
| 				reg = <0x0 0x04404 0x0 0x9c>; | 				reg = <0x0 0x04404 0x0 0x9c>; | ||||||
| 				#reset-cells = <1>; | 				#reset-cells = <1>; | ||||||
| 			}; | 			}; | ||||||
| @@ -218,7 +241,7 @@ | |||||||
| 			}; | 			}; | ||||||
|  |  | ||||||
| 			i2c_A: i2c@8500 { | 			i2c_A: i2c@8500 { | ||||||
| 				compatible = "amlogic,meson-gx-i2c", "amlogic,meson-gxbb-i2c"; | 				compatible = "amlogic,meson-gxbb-i2c"; | ||||||
| 				reg = <0x0 0x08500 0x0 0x20>; | 				reg = <0x0 0x08500 0x0 0x20>; | ||||||
| 				interrupts = <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>; | 				interrupts = <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>; | ||||||
| 				#address-cells = <1>; | 				#address-cells = <1>; | ||||||
| @@ -262,8 +285,13 @@ | |||||||
| 				status = "disabled"; | 				status = "disabled"; | ||||||
| 			}; | 			}; | ||||||
|  |  | ||||||
|  | 			clock-measure@8758 { | ||||||
|  | 				compatible = "amlogic,meson-gx-clk-measure"; | ||||||
|  | 				reg = <0x0 0x8758 0x0 0x10>; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
| 			i2c_B: i2c@87c0 { | 			i2c_B: i2c@87c0 { | ||||||
| 				compatible = "amlogic,meson-gx-i2c", "amlogic,meson-gxbb-i2c"; | 				compatible = "amlogic,meson-gxbb-i2c"; | ||||||
| 				reg = <0x0 0x087c0 0x0 0x20>; | 				reg = <0x0 0x087c0 0x0 0x20>; | ||||||
| 				interrupts = <GIC_SPI 214 IRQ_TYPE_EDGE_RISING>; | 				interrupts = <GIC_SPI 214 IRQ_TYPE_EDGE_RISING>; | ||||||
| 				#address-cells = <1>; | 				#address-cells = <1>; | ||||||
| @@ -272,7 +300,7 @@ | |||||||
| 			}; | 			}; | ||||||
|  |  | ||||||
| 			i2c_C: i2c@87e0 { | 			i2c_C: i2c@87e0 { | ||||||
| 				compatible = "amlogic,meson-gx-i2c", "amlogic,meson-gxbb-i2c"; | 				compatible = "amlogic,meson-gxbb-i2c"; | ||||||
| 				reg = <0x0 0x087e0 0x0 0x20>; | 				reg = <0x0 0x087e0 0x0 0x20>; | ||||||
| 				interrupts = <GIC_SPI 215 IRQ_TYPE_EDGE_RISING>; | 				interrupts = <GIC_SPI 215 IRQ_TYPE_EDGE_RISING>; | ||||||
| 				#address-cells = <1>; | 				#address-cells = <1>; | ||||||
| @@ -290,7 +318,7 @@ | |||||||
| 			}; | 			}; | ||||||
|  |  | ||||||
| 			spifc: spi@8c80 { | 			spifc: spi@8c80 { | ||||||
| 				compatible = "amlogic,meson-gx-spifc", "amlogic,meson-gxbb-spifc"; | 				compatible = "amlogic,meson-gxbb-spifc"; | ||||||
| 				reg = <0x0 0x08c80 0x0 0x80>; | 				reg = <0x0 0x08c80 0x0 0x80>; | ||||||
| 				#address-cells = <1>; | 				#address-cells = <1>; | ||||||
| 				#size-cells = <0>; | 				#size-cells = <0>; | ||||||
| @@ -298,7 +326,7 @@ | |||||||
| 			}; | 			}; | ||||||
|  |  | ||||||
| 			watchdog@98d0 { | 			watchdog@98d0 { | ||||||
| 				compatible = "amlogic,meson-gx-wdt", "amlogic,meson-gxbb-wdt"; | 				compatible = "amlogic,meson-gxbb-wdt"; | ||||||
| 				reg = <0x0 0x098d0 0x0 0x10>; | 				reg = <0x0 0x098d0 0x0 0x10>; | ||||||
| 				clocks = <&xtal>; | 				clocks = <&xtal>; | ||||||
| 			}; | 			}; | ||||||
| @@ -364,6 +392,7 @@ | |||||||
| 				compatible = "amlogic,meson-gx-ao-cec"; | 				compatible = "amlogic,meson-gx-ao-cec"; | ||||||
| 				reg = <0x0 0x00100 0x0 0x14>; | 				reg = <0x0 0x00100 0x0 0x14>; | ||||||
| 				interrupts = <GIC_SPI 199 IRQ_TYPE_EDGE_RISING>; | 				interrupts = <GIC_SPI 199 IRQ_TYPE_EDGE_RISING>; | ||||||
|  | 				status = "disabled"; | ||||||
| 			}; | 			}; | ||||||
|  |  | ||||||
| 			sec_AO: ao-secure@140 { | 			sec_AO: ao-secure@140 { | ||||||
| @@ -387,7 +416,7 @@ | |||||||
| 			}; | 			}; | ||||||
|  |  | ||||||
| 			i2c_AO: i2c@500 { | 			i2c_AO: i2c@500 { | ||||||
| 				compatible = "amlogic,meson-gx-i2c", "amlogic,meson-gxbb-i2c"; | 				compatible = "amlogic,meson-gxbb-i2c"; | ||||||
| 				reg = <0x0 0x500 0x0 0x20>; | 				reg = <0x0 0x500 0x0 0x20>; | ||||||
| 				interrupts = <GIC_SPI 195 IRQ_TYPE_EDGE_RISING>; | 				interrupts = <GIC_SPI 195 IRQ_TYPE_EDGE_RISING>; | ||||||
| 				#address-cells = <1>; | 				#address-cells = <1>; | ||||||
| @@ -410,7 +439,21 @@ | |||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| 		periphs: periphs@c8834000 { | 		vdec: video-codec@c8820000 { | ||||||
|  | 			compatible = "amlogic,gx-vdec"; | ||||||
|  | 			reg = <0x0 0xc8820000 0x0 0x10000>, | ||||||
|  | 			      <0x0 0xc110a580 0x0 0xe4>; | ||||||
|  | 			reg-names = "dos", "esparser"; | ||||||
|  |  | ||||||
|  | 			interrupts = <GIC_SPI 44 IRQ_TYPE_EDGE_RISING>, | ||||||
|  | 				     <GIC_SPI 32 IRQ_TYPE_EDGE_RISING>; | ||||||
|  | 			interrupt-names = "vdec", "esparser"; | ||||||
|  |  | ||||||
|  | 			amlogic,ao-sysctrl = <&sysctrl_AO>; | ||||||
|  | 			amlogic,canvas = <&canvas>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		periphs: bus@c8834000 { | ||||||
| 			compatible = "simple-bus"; | 			compatible = "simple-bus"; | ||||||
| 			reg = <0x0 0xc8834000 0x0 0x2000>; | 			reg = <0x0 0xc8834000 0x0 0x2000>; | ||||||
| 			#address-cells = <2>; | 			#address-cells = <2>; | ||||||
| @@ -449,7 +492,7 @@ | |||||||
| 			}; | 			}; | ||||||
|  |  | ||||||
| 			mailbox: mailbox@404 { | 			mailbox: mailbox@404 { | ||||||
| 				compatible = "amlogic,meson-gx-mhu", "amlogic,meson-gxbb-mhu"; | 				compatible = "amlogic,meson-gxbb-mhu"; | ||||||
| 				reg = <0 0x404 0 0x4c>; | 				reg = <0 0x404 0 0x4c>; | ||||||
| 				interrupts = <GIC_SPI 208 IRQ_TYPE_EDGE_RISING>, | 				interrupts = <GIC_SPI 208 IRQ_TYPE_EDGE_RISING>, | ||||||
| 					     <GIC_SPI 209 IRQ_TYPE_EDGE_RISING>, | 					     <GIC_SPI 209 IRQ_TYPE_EDGE_RISING>, | ||||||
| @@ -459,11 +502,15 @@ | |||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| 		ethmac: ethernet@c9410000 { | 		ethmac: ethernet@c9410000 { | ||||||
| 			compatible = "amlogic,meson-gx-dwmac", "amlogic,meson-gxbb-dwmac", "snps,dwmac"; | 			compatible = "amlogic,meson-gxbb-dwmac", | ||||||
| 			reg = <0x0 0xc9410000 0x0 0x10000 | 				     "snps,dwmac-3.70a", | ||||||
| 			       0x0 0xc8834540 0x0 0x4>; | 				     "snps,dwmac"; | ||||||
| 			interrupts = <GIC_SPI 8 IRQ_TYPE_EDGE_RISING>; | 			reg = <0x0 0xc9410000 0x0 0x10000>, | ||||||
|  | 			      <0x0 0xc8834540 0x0 0x4>; | ||||||
|  | 			interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; | ||||||
| 			interrupt-names = "macirq"; | 			interrupt-names = "macirq"; | ||||||
|  | 			rx-fifo-depth = <4096>; | ||||||
|  | 			tx-fifo-depth = <2048>; | ||||||
| 			status = "disabled"; | 			status = "disabled"; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -499,12 +546,12 @@ | |||||||
| 		vpu: vpu@d0100000 { | 		vpu: vpu@d0100000 { | ||||||
| 			compatible = "amlogic,meson-gx-vpu"; | 			compatible = "amlogic,meson-gx-vpu"; | ||||||
| 			reg = <0x0 0xd0100000 0x0 0x100000>, | 			reg = <0x0 0xd0100000 0x0 0x100000>, | ||||||
| 			      <0x0 0xc883c000 0x0 0x1000>, | 			      <0x0 0xc883c000 0x0 0x1000>; | ||||||
| 			      <0x0 0xc8838000 0x0 0x1000>; | 			reg-names = "vpu", "hhi"; | ||||||
| 			reg-names = "vpu", "hhi", "dmc"; |  | ||||||
| 			interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>; | 			interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>; | ||||||
| 			#address-cells = <1>; | 			#address-cells = <1>; | ||||||
| 			#size-cells = <0>; | 			#size-cells = <0>; | ||||||
|  | 			amlogic,canvas = <&canvas>; | ||||||
|  |  | ||||||
| 			/* CVBS VDAC output port */ | 			/* CVBS VDAC output port */ | ||||||
| 			cvbs_vdac_port: port@0 { | 			cvbs_vdac_port: port@0 { | ||||||
|   | |||||||
| @@ -10,6 +10,7 @@ | |||||||
|  |  | ||||||
| / { | / { | ||||||
| 	compatible = "friendlyarm,nanopi-k2", "amlogic,meson-gxbb"; | 	compatible = "friendlyarm,nanopi-k2", "amlogic,meson-gxbb"; | ||||||
|  | 	model = "FriendlyARM NanoPi K2"; | ||||||
|  |  | ||||||
| 	aliases { | 	aliases { | ||||||
| 		serial0 = &uart_AO; | 		serial0 = &uart_AO; | ||||||
| @@ -154,10 +155,6 @@ | |||||||
|  |  | ||||||
| 	amlogic,tx-delay-ns = <2>; | 	amlogic,tx-delay-ns = <2>; | ||||||
|  |  | ||||||
| 	snps,reset-gpio = <&gpio GPIOZ_14 0>; |  | ||||||
| 	snps,reset-delays-us = <0 10000 1000000>; |  | ||||||
| 	snps,reset-active-low; |  | ||||||
|  |  | ||||||
| 	mdio { | 	mdio { | ||||||
| 		compatible = "snps,dwmac-mdio"; | 		compatible = "snps,dwmac-mdio"; | ||||||
| 		#address-cells = <1>; | 		#address-cells = <1>; | ||||||
| @@ -166,6 +163,11 @@ | |||||||
| 		eth_phy0: ethernet-phy@0 { | 		eth_phy0: ethernet-phy@0 { | ||||||
| 			/* Realtek RTL8211F (0x001cc916) */ | 			/* Realtek RTL8211F (0x001cc916) */ | ||||||
| 			reg = <0>; | 			reg = <0>; | ||||||
|  |  | ||||||
|  | 			reset-assert-us = <10000>; | ||||||
|  | 			reset-deassert-us = <30000>; | ||||||
|  | 			reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; | ||||||
|  |  | ||||||
| 			interrupt-parent = <&gpio_intc>; | 			interrupt-parent = <&gpio_intc>; | ||||||
| 			/* MAC_INTR on GPIOZ_15 */ | 			/* MAC_INTR on GPIOZ_15 */ | ||||||
| 			interrupts = <29 IRQ_TYPE_LEVEL_LOW>; | 			interrupts = <29 IRQ_TYPE_LEVEL_LOW>; | ||||||
| @@ -191,7 +193,7 @@ | |||||||
| 	pinctrl-names = "default"; | 	pinctrl-names = "default"; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| &pinctrl_aobus { | &gpio_ao { | ||||||
| 	gpio-line-names = "UART TX", "UART RX", "Power Control", "Power Key In", | 	gpio-line-names = "UART TX", "UART RX", "Power Control", "Power Key In", | ||||||
| 			  "VCCK En", "CON1 Header Pin31", | 			  "VCCK En", "CON1 Header Pin31", | ||||||
| 			  "I2S Header Pin6", "IR In", "I2S Header Pin7", | 			  "I2S Header Pin6", "IR In", "I2S Header Pin7", | ||||||
| @@ -201,7 +203,7 @@ | |||||||
| 			  ""; | 			  ""; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| &pinctrl_periphs { | &gpio { | ||||||
| 	gpio-line-names = /* Bank GPIOZ */ | 	gpio-line-names = /* Bank GPIOZ */ | ||||||
| 			  "Eth MDIO", "Eth MDC", "Eth RGMII RX Clk", | 			  "Eth MDIO", "Eth MDC", "Eth RGMII RX Clk", | ||||||
| 			  "Eth RX DV", "Eth RX D0", "Eth RX D1", "Eth RX D2", | 			  "Eth RX DV", "Eth RX D0", "Eth RX D1", "Eth RX D2", | ||||||
| @@ -273,11 +275,14 @@ | |||||||
|  |  | ||||||
| 	bus-width = <4>; | 	bus-width = <4>; | ||||||
| 	cap-sd-highspeed; | 	cap-sd-highspeed; | ||||||
| 	max-frequency = <200000000>; | 	max-frequency = <50000000>; | ||||||
|  |  | ||||||
| 	non-removable; | 	non-removable; | ||||||
| 	disable-wp; | 	disable-wp; | ||||||
|  |  | ||||||
|  | 	/* WiFi firmware requires power to be kept while in suspend */ | ||||||
|  | 	keep-power-in-suspend; | ||||||
|  |  | ||||||
| 	mmc-pwrseq = <&sdio_pwrseq>; | 	mmc-pwrseq = <&sdio_pwrseq>; | ||||||
|  |  | ||||||
| 	vmmc-supply = <&vddio_ao3v3>; | 	vmmc-supply = <&vddio_ao3v3>; | ||||||
| @@ -301,12 +306,11 @@ | |||||||
| 	sd-uhs-sdr12; | 	sd-uhs-sdr12; | ||||||
| 	sd-uhs-sdr25; | 	sd-uhs-sdr25; | ||||||
| 	sd-uhs-sdr50; | 	sd-uhs-sdr50; | ||||||
| 	sd-uhs-sdr104; | 	sd-uhs-ddr50; | ||||||
| 	max-frequency = <200000000>; | 	max-frequency = <100000000>; | ||||||
| 	disable-wp; | 	disable-wp; | ||||||
|  |  | ||||||
| 	cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>; | 	cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; | ||||||
| 	cd-inverted; |  | ||||||
|  |  | ||||||
| 	vmmc-supply = <&vddio_ao3v3>; | 	vmmc-supply = <&vddio_ao3v3>; | ||||||
| 	vqmmc-supply = <&vddio_tf>; | 	vqmmc-supply = <&vddio_tf>; | ||||||
|   | |||||||
| @@ -36,8 +36,15 @@ | |||||||
| 		regulator-min-microvolt = <5000000>; | 		regulator-min-microvolt = <5000000>; | ||||||
| 		regulator-max-microvolt = <5000000>; | 		regulator-max-microvolt = <5000000>; | ||||||
|  |  | ||||||
|  | 		/* | ||||||
|  | 		 * signal name from schematics: PWREN | ||||||
|  | 		 */ | ||||||
| 		gpio = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>; | 		gpio = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>; | ||||||
| 		enable-active-high; | 		enable-active-high; | ||||||
|  | 		/* | ||||||
|  | 		 * signal name from schematics: USB_POWER | ||||||
|  | 		 */ | ||||||
|  | 		vin-supply = <&p5v0>; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 	leds { | 	leds { | ||||||
| @@ -50,18 +57,38 @@ | |||||||
| 		}; | 		}; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
|  | 	p5v0: regulator-p5v0 { | ||||||
|  | 		compatible = "regulator-fixed"; | ||||||
|  |  | ||||||
|  | 		regulator-name = "P5V0"; | ||||||
|  | 		regulator-min-microvolt = <5000000>; | ||||||
|  | 		regulator-max-microvolt = <5000000>; | ||||||
|  | 		regulator-always-on; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	hdmi_p5v0: regulator-hdmi_p5v0 { | ||||||
|  | 		compatible = "regulator-fixed"; | ||||||
|  | 		regulator-name = "HDMI_P5V0"; | ||||||
|  | 		regulator-min-microvolt = <5000000>; | ||||||
|  | 		regulator-max-microvolt = <5000000>; | ||||||
|  | 		/* AP2331SA-7 */ | ||||||
|  | 		vin-supply = <&p5v0>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
| 	tflash_vdd: regulator-tflash_vdd { | 	tflash_vdd: regulator-tflash_vdd { | ||||||
| 		/* |  | ||||||
| 		 * signal name from schematics: TFLASH_VDD_EN |  | ||||||
| 		 */ |  | ||||||
| 		compatible = "regulator-fixed"; | 		compatible = "regulator-fixed"; | ||||||
|  |  | ||||||
| 		regulator-name = "TFLASH_VDD"; | 		regulator-name = "TFLASH_VDD"; | ||||||
| 		regulator-min-microvolt = <3300000>; | 		regulator-min-microvolt = <3300000>; | ||||||
| 		regulator-max-microvolt = <3300000>; | 		regulator-max-microvolt = <3300000>; | ||||||
|  |  | ||||||
|  | 		/* | ||||||
|  | 		 * signal name from schematics: TFLASH_VDD_EN | ||||||
|  | 		 */ | ||||||
| 		gpio = <&gpio GPIOY_12 GPIO_ACTIVE_HIGH>; | 		gpio = <&gpio GPIOY_12 GPIO_ACTIVE_HIGH>; | ||||||
| 		enable-active-high; | 		enable-active-high; | ||||||
|  | 		/* U16 RT9179GB */ | ||||||
|  | 		vin-supply = <&vddio_ao3v3>; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 	tf_io: gpio-regulator-tf_io { | 	tf_io: gpio-regulator-tf_io { | ||||||
| @@ -77,8 +104,10 @@ | |||||||
| 		gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>; | 		gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>; | ||||||
| 		gpios-states = <0>; | 		gpios-states = <0>; | ||||||
|  |  | ||||||
| 		states = <3300000 0 | 		states = <3300000 0>, | ||||||
| 			  1800000 1>; | 			 <1800000 1>; | ||||||
|  | 		/* U12/U13 RT9179GB */ | ||||||
|  | 		vin-supply = <&vddio_ao3v3>; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 	vcc1v8: regulator-vcc1v8 { | 	vcc1v8: regulator-vcc1v8 { | ||||||
| @@ -86,6 +115,9 @@ | |||||||
| 		regulator-name = "VCC1V8"; | 		regulator-name = "VCC1V8"; | ||||||
| 		regulator-min-microvolt = <1800000>; | 		regulator-min-microvolt = <1800000>; | ||||||
| 		regulator-max-microvolt = <1800000>; | 		regulator-max-microvolt = <1800000>; | ||||||
|  | 		regulator-always-on; | ||||||
|  | 		/* U18 RT9179GB */ | ||||||
|  | 		vin-supply = <&vddio_ao3v3>; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 	vcc3v3: regulator-vcc3v3 { | 	vcc3v3: regulator-vcc3v3 { | ||||||
| @@ -95,6 +127,36 @@ | |||||||
| 		regulator-max-microvolt = <3300000>; | 		regulator-max-microvolt = <3300000>; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
|  | 	vddio_ao1v8: regulator-vddio-ao1v8 { | ||||||
|  | 		compatible = "regulator-fixed"; | ||||||
|  | 		regulator-name = "VDDIO_AO1V8"; | ||||||
|  | 		regulator-min-microvolt = <1800000>; | ||||||
|  | 		regulator-max-microvolt = <1800000>; | ||||||
|  | 		regulator-always-on; | ||||||
|  | 		/* U17 RT9179GB */ | ||||||
|  | 		vin-supply = <&p5v0>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	vddio_ao3v3: regulator-vddio-ao3v3 { | ||||||
|  | 		compatible = "regulator-fixed"; | ||||||
|  | 		regulator-name = "VDDIO_AO3V3"; | ||||||
|  | 		regulator-min-microvolt = <3300000>; | ||||||
|  | 		regulator-max-microvolt = <3300000>; | ||||||
|  | 		regulator-always-on; | ||||||
|  | 		/* U11 MP2161GJ-C499 */ | ||||||
|  | 		vin-supply = <&p5v0>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	ddr3_1v5: regulator-ddr3_1v5 { | ||||||
|  | 		compatible = "regulator-fixed"; | ||||||
|  | 		regulator-name = "DDR3_1V5"; | ||||||
|  | 		regulator-min-microvolt = <1500000>; | ||||||
|  | 		regulator-max-microvolt = <1500000>; | ||||||
|  | 		regulator-always-on; | ||||||
|  | 		/* U15 MP2161GJ-C499 */ | ||||||
|  | 		vin-supply = <&p5v0>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
| 	emmc_pwrseq: emmc-pwrseq { | 	emmc_pwrseq: emmc-pwrseq { | ||||||
| 		compatible = "mmc-pwrseq-emmc"; | 		compatible = "mmc-pwrseq-emmc"; | ||||||
| 		reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; | 		reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; | ||||||
| @@ -126,10 +188,6 @@ | |||||||
| 	phy-handle = <ð_phy0>; | 	phy-handle = <ð_phy0>; | ||||||
| 	phy-mode = "rgmii"; | 	phy-mode = "rgmii"; | ||||||
|  |  | ||||||
| 	snps,reset-gpio = <&gpio GPIOZ_14 0>; |  | ||||||
| 	snps,reset-delays-us = <0 10000 1000000>; |  | ||||||
| 	snps,reset-active-low; |  | ||||||
|  |  | ||||||
| 	amlogic,tx-delay-ns = <2>; | 	amlogic,tx-delay-ns = <2>; | ||||||
|  |  | ||||||
| 	mdio { | 	mdio { | ||||||
| @@ -140,10 +198,14 @@ | |||||||
| 		eth_phy0: ethernet-phy@0 { | 		eth_phy0: ethernet-phy@0 { | ||||||
| 			/* Realtek RTL8211F (0x001cc916) */ | 			/* Realtek RTL8211F (0x001cc916) */ | ||||||
| 			reg = <0>; | 			reg = <0>; | ||||||
|  |  | ||||||
|  | 			reset-assert-us = <10000>; | ||||||
|  | 			reset-deassert-us = <30000>; | ||||||
|  | 			reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; | ||||||
|  |  | ||||||
| 			interrupt-parent = <&gpio_intc>; | 			interrupt-parent = <&gpio_intc>; | ||||||
| 			/* MAC_INTR on GPIOZ_15 */ | 			/* MAC_INTR on GPIOZ_15 */ | ||||||
| 			interrupts = <29 IRQ_TYPE_LEVEL_LOW>; | 			interrupts = <29 IRQ_TYPE_LEVEL_LOW>; | ||||||
| 			eee-broken-1000t; |  | ||||||
| 		}; | 		}; | ||||||
| 	}; | 	}; | ||||||
| }; | }; | ||||||
| @@ -167,6 +229,7 @@ | |||||||
| 	status = "okay"; | 	status = "okay"; | ||||||
| 	pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; | 	pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; | ||||||
| 	pinctrl-names = "default"; | 	pinctrl-names = "default"; | ||||||
|  | 	hdmi-supply = <&hdmi_p5v0>; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| &hdmi_tx_tmds_port { | &hdmi_tx_tmds_port { | ||||||
| @@ -187,7 +250,7 @@ | |||||||
| 	pinctrl-names = "default"; | 	pinctrl-names = "default"; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| &pinctrl_aobus { | &gpio_ao { | ||||||
| 	gpio-line-names = "UART TX", "UART RX", "VCCK En", "TF 3V3/1V8 En", | 	gpio-line-names = "UART TX", "UART RX", "VCCK En", "TF 3V3/1V8 En", | ||||||
| 			  "USB HUB nRESET", "USB OTG Power En", | 			  "USB HUB nRESET", "USB OTG Power En", | ||||||
| 			  "J7 Header Pin2", "IR In", "J7 Header Pin4", | 			  "J7 Header Pin2", "IR In", "J7 Header Pin4", | ||||||
| @@ -197,7 +260,7 @@ | |||||||
| 			  ""; | 			  ""; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| &pinctrl_periphs { | &gpio { | ||||||
| 	gpio-line-names = /* Bank GPIOZ */ | 	gpio-line-names = /* Bank GPIOZ */ | ||||||
| 			  "Eth MDIO", "Eth MDC", "Eth RGMII RX Clk", | 			  "Eth MDIO", "Eth MDC", "Eth RGMII RX Clk", | ||||||
| 			  "Eth RX DV", "Eth RX D0", "Eth RX D1", "Eth RX D2", | 			  "Eth RX DV", "Eth RX D0", "Eth RX D1", "Eth RX D2", | ||||||
| @@ -256,11 +319,14 @@ | |||||||
|  |  | ||||||
| 	bus-width = <4>; | 	bus-width = <4>; | ||||||
| 	cap-sd-highspeed; | 	cap-sd-highspeed; | ||||||
|  | 	sd-uhs-sdr12; | ||||||
|  | 	sd-uhs-sdr25; | ||||||
|  | 	sd-uhs-sdr50; | ||||||
|  | 	sd-uhs-ddr50; | ||||||
| 	max-frequency = <100000000>; | 	max-frequency = <100000000>; | ||||||
| 	disable-wp; | 	disable-wp; | ||||||
|  |  | ||||||
| 	cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>; | 	cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; | ||||||
| 	cd-inverted; |  | ||||||
|  |  | ||||||
| 	vmmc-supply = <&tflash_vdd>; | 	vmmc-supply = <&tflash_vdd>; | ||||||
| 	vqmmc-supply = <&tf_io>; | 	vqmmc-supply = <&tf_io>; | ||||||
| @@ -274,7 +340,7 @@ | |||||||
| 	pinctrl-names = "default", "clk-gate"; | 	pinctrl-names = "default", "clk-gate"; | ||||||
|  |  | ||||||
| 	bus-width = <8>; | 	bus-width = <8>; | ||||||
| 	max-frequency = <100000000>; | 	max-frequency = <200000000>; | ||||||
| 	non-removable; | 	non-removable; | ||||||
| 	disable-wp; | 	disable-wp; | ||||||
| 	cap-mmc-highspeed; | 	cap-mmc-highspeed; | ||||||
| @@ -293,7 +359,7 @@ | |||||||
| }; | }; | ||||||
|  |  | ||||||
| &usb0_phy { | &usb0_phy { | ||||||
| 	status = "okay"; | 	status = "disabled"; | ||||||
| 	phy-supply = <&usb_otg_pwr>; | 	phy-supply = <&usb_otg_pwr>; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| @@ -303,7 +369,7 @@ | |||||||
| }; | }; | ||||||
|  |  | ||||||
| &usb0 { | &usb0 { | ||||||
| 	status = "okay"; | 	status = "disabled"; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| &usb1 { | &usb1 { | ||||||
|   | |||||||
| @@ -68,10 +68,6 @@ | |||||||
|  |  | ||||||
| 	amlogic,tx-delay-ns = <2>; | 	amlogic,tx-delay-ns = <2>; | ||||||
|  |  | ||||||
| 	snps,reset-gpio = <&gpio GPIOZ_14 0>; |  | ||||||
| 	snps,reset-delays-us = <0 10000 1000000>; |  | ||||||
| 	snps,reset-active-low; |  | ||||||
|  |  | ||||||
| 	mdio { | 	mdio { | ||||||
| 		compatible = "snps,dwmac-mdio"; | 		compatible = "snps,dwmac-mdio"; | ||||||
| 		#address-cells = <1>; | 		#address-cells = <1>; | ||||||
| @@ -80,6 +76,11 @@ | |||||||
| 		eth_phy0: ethernet-phy@3 { | 		eth_phy0: ethernet-phy@3 { | ||||||
| 			/* Micrel KSZ9031 (0x00221620) */ | 			/* Micrel KSZ9031 (0x00221620) */ | ||||||
| 			reg = <3>; | 			reg = <3>; | ||||||
|  |  | ||||||
|  | 			reset-assert-us = <10000>; | ||||||
|  | 			reset-deassert-us = <30000>; | ||||||
|  | 			reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; | ||||||
|  |  | ||||||
| 			interrupt-parent = <&gpio_intc>; | 			interrupt-parent = <&gpio_intc>; | ||||||
| 			/* MAC_INTR on GPIOZ_15 */ | 			/* MAC_INTR on GPIOZ_15 */ | ||||||
| 			interrupts = <29 IRQ_TYPE_LEVEL_LOW>; | 			interrupts = <29 IRQ_TYPE_LEVEL_LOW>; | ||||||
|   | |||||||
| @@ -21,6 +21,6 @@ | |||||||
| 	phy-mode = "rmii"; | 	phy-mode = "rmii"; | ||||||
|  |  | ||||||
| 	snps,reset-gpio = <&gpio GPIOZ_14 0>; | 	snps,reset-gpio = <&gpio GPIOZ_14 0>; | ||||||
| 	snps,reset-delays-us = <0 10000 1000000>; | 	snps,reset-delays-us = <0>, <10000>, <1000000>; | ||||||
| 	snps,reset-active-low; | 	snps,reset-active-low; | ||||||
| }; | }; | ||||||
|   | |||||||
| @@ -46,8 +46,8 @@ | |||||||
| 		gpios-states = <1>; | 		gpios-states = <1>; | ||||||
|  |  | ||||||
| 		/* Based on P200 schematics, signal CARD_1.8V/3.3V_CTR */ | 		/* Based on P200 schematics, signal CARD_1.8V/3.3V_CTR */ | ||||||
| 		states = <1800000 0 | 		states = <1800000 0>, | ||||||
| 			  3300000 1>; | 			 <3300000 1>; | ||||||
|  |  | ||||||
| 		regulator-settling-time-up-us = <10000>; | 		regulator-settling-time-up-us = <10000>; | ||||||
| 		regulator-settling-time-down-us = <150000>; | 		regulator-settling-time-down-us = <150000>; | ||||||
| @@ -165,11 +165,14 @@ | |||||||
|  |  | ||||||
| 	bus-width = <4>; | 	bus-width = <4>; | ||||||
| 	cap-sd-highspeed; | 	cap-sd-highspeed; | ||||||
| 	max-frequency = <100000000>; | 	max-frequency = <50000000>; | ||||||
|  |  | ||||||
| 	non-removable; | 	non-removable; | ||||||
| 	disable-wp; | 	disable-wp; | ||||||
|  |  | ||||||
|  | 	/* WiFi firmware requires power to be kept while in suspend */ | ||||||
|  | 	keep-power-in-suspend; | ||||||
|  |  | ||||||
| 	mmc-pwrseq = <&sdio_pwrseq>; | 	mmc-pwrseq = <&sdio_pwrseq>; | ||||||
|  |  | ||||||
| 	vmmc-supply = <&vddao_3v3>; | 	vmmc-supply = <&vddao_3v3>; | ||||||
|   | |||||||
| @@ -81,6 +81,7 @@ | |||||||
| 			mux { | 			mux { | ||||||
| 				groups = "uart_tx_ao_a", "uart_rx_ao_a"; | 				groups = "uart_tx_ao_a", "uart_rx_ao_a"; | ||||||
| 				function = "uart_ao"; | 				function = "uart_ao"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -89,6 +90,7 @@ | |||||||
| 				groups = "uart_cts_ao_a", | 				groups = "uart_cts_ao_a", | ||||||
| 				       "uart_rts_ao_a"; | 				       "uart_rts_ao_a"; | ||||||
| 				function = "uart_ao"; | 				function = "uart_ao"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -96,6 +98,7 @@ | |||||||
| 			mux { | 			mux { | ||||||
| 				groups = "uart_tx_ao_b", "uart_rx_ao_b"; | 				groups = "uart_tx_ao_b", "uart_rx_ao_b"; | ||||||
| 				function = "uart_ao_b"; | 				function = "uart_ao_b"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -104,6 +107,7 @@ | |||||||
| 				groups = "uart_cts_ao_b", | 				groups = "uart_cts_ao_b", | ||||||
| 				       "uart_rts_ao_b"; | 				       "uart_rts_ao_b"; | ||||||
| 				function = "uart_ao_b"; | 				function = "uart_ao_b"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -111,6 +115,7 @@ | |||||||
| 			mux { | 			mux { | ||||||
| 				groups = "remote_input_ao"; | 				groups = "remote_input_ao"; | ||||||
| 				function = "remote_input_ao"; | 				function = "remote_input_ao"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -119,6 +124,7 @@ | |||||||
| 				groups = "i2c_sck_ao", | 				groups = "i2c_sck_ao", | ||||||
| 				       "i2c_sda_ao"; | 				       "i2c_sda_ao"; | ||||||
| 				function = "i2c_ao"; | 				function = "i2c_ao"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -126,6 +132,7 @@ | |||||||
| 			mux { | 			mux { | ||||||
| 				groups = "pwm_ao_a_3"; | 				groups = "pwm_ao_a_3"; | ||||||
| 				function = "pwm_ao_a_3"; | 				function = "pwm_ao_a_3"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -133,6 +140,7 @@ | |||||||
| 			mux { | 			mux { | ||||||
| 				groups = "pwm_ao_a_6"; | 				groups = "pwm_ao_a_6"; | ||||||
| 				function = "pwm_ao_a_6"; | 				function = "pwm_ao_a_6"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -140,6 +148,7 @@ | |||||||
| 			mux { | 			mux { | ||||||
| 				groups = "pwm_ao_a_12"; | 				groups = "pwm_ao_a_12"; | ||||||
| 				function = "pwm_ao_a_12"; | 				function = "pwm_ao_a_12"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -147,6 +156,7 @@ | |||||||
| 			mux { | 			mux { | ||||||
| 				groups = "pwm_ao_b"; | 				groups = "pwm_ao_b"; | ||||||
| 				function = "pwm_ao_b"; | 				function = "pwm_ao_b"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -154,6 +164,7 @@ | |||||||
| 			mux { | 			mux { | ||||||
| 				groups = "i2s_am_clk"; | 				groups = "i2s_am_clk"; | ||||||
| 				function = "i2s_out_ao"; | 				function = "i2s_out_ao"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -161,6 +172,7 @@ | |||||||
| 			mux { | 			mux { | ||||||
| 				groups = "i2s_out_ao_clk"; | 				groups = "i2s_out_ao_clk"; | ||||||
| 				function = "i2s_out_ao"; | 				function = "i2s_out_ao"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -168,6 +180,7 @@ | |||||||
| 			mux { | 			mux { | ||||||
| 				groups = "i2s_out_lr_clk"; | 				groups = "i2s_out_lr_clk"; | ||||||
| 				function = "i2s_out_ao"; | 				function = "i2s_out_ao"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -175,6 +188,7 @@ | |||||||
| 			mux { | 			mux { | ||||||
| 				groups = "i2s_out_ch01_ao"; | 				groups = "i2s_out_ch01_ao"; | ||||||
| 				function = "i2s_out_ao"; | 				function = "i2s_out_ao"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -182,6 +196,7 @@ | |||||||
| 			mux { | 			mux { | ||||||
| 				groups = "i2s_out_ch23_ao"; | 				groups = "i2s_out_ch23_ao"; | ||||||
| 				function = "i2s_out_ao"; | 				function = "i2s_out_ao"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -189,6 +204,7 @@ | |||||||
| 			mux { | 			mux { | ||||||
| 				groups = "i2s_out_ch45_ao"; | 				groups = "i2s_out_ch45_ao"; | ||||||
| 				function = "i2s_out_ao"; | 				function = "i2s_out_ao"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -203,6 +219,7 @@ | |||||||
| 			mux { | 			mux { | ||||||
| 				groups = "spdif_out_ao_13"; | 				groups = "spdif_out_ao_13"; | ||||||
| 				function = "spdif_out_ao"; | 				function = "spdif_out_ao"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -210,6 +227,7 @@ | |||||||
| 			mux { | 			mux { | ||||||
| 				groups = "ao_cec"; | 				groups = "ao_cec"; | ||||||
| 				function = "cec_ao"; | 				function = "cec_ao"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -217,6 +235,7 @@ | |||||||
| 			mux { | 			mux { | ||||||
| 				groups = "ee_cec"; | 				groups = "ee_cec"; | ||||||
| 				function = "cec_ao"; | 				function = "cec_ao"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
| 	}; | 	}; | ||||||
| @@ -280,6 +299,12 @@ | |||||||
|  |  | ||||||
| &clkc_AO { | &clkc_AO { | ||||||
| 	compatible = "amlogic,meson-gxbb-aoclkc", "amlogic,meson-gx-aoclkc"; | 	compatible = "amlogic,meson-gxbb-aoclkc", "amlogic,meson-gx-aoclkc"; | ||||||
|  | 	clocks = <&xtal>, <&clkc CLKID_CLK81>; | ||||||
|  | 	clock-names = "xtal", "mpeg-clk"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &efuse { | ||||||
|  | 	clocks = <&clkc CLKID_EFUSE>; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| ðmac { | ðmac { | ||||||
| @@ -311,6 +336,8 @@ | |||||||
| 	clkc: clock-controller { | 	clkc: clock-controller { | ||||||
| 		compatible = "amlogic,gxbb-clkc"; | 		compatible = "amlogic,gxbb-clkc"; | ||||||
| 		#clock-cells = <1>; | 		#clock-cells = <1>; | ||||||
|  | 		clocks = <&xtal>; | ||||||
|  | 		clock-names = "xtal"; | ||||||
| 	}; | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| @@ -354,11 +381,17 @@ | |||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| 		emmc_pins: emmc { | 		emmc_pins: emmc { | ||||||
| 			mux { | 			mux-0 { | ||||||
| 				groups = "emmc_nand_d07", | 				groups = "emmc_nand_d07", | ||||||
| 				       "emmc_cmd", | 				       "emmc_cmd"; | ||||||
| 				       "emmc_clk"; |  | ||||||
| 				function = "emmc"; | 				function = "emmc"; | ||||||
|  | 				bias-pull-up; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			mux-1 { | ||||||
|  | 				groups = "emmc_clk"; | ||||||
|  | 				function = "emmc"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -366,6 +399,7 @@ | |||||||
| 			mux { | 			mux { | ||||||
| 				groups = "emmc_ds"; | 				groups = "emmc_ds"; | ||||||
| 				function = "emmc"; | 				function = "emmc"; | ||||||
|  | 				bias-pull-down; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -373,9 +407,6 @@ | |||||||
| 			mux { | 			mux { | ||||||
| 				groups = "BOOT_8"; | 				groups = "BOOT_8"; | ||||||
| 				function = "gpio_periphs"; | 				function = "gpio_periphs"; | ||||||
| 			}; |  | ||||||
| 			cfg-pull-down { |  | ||||||
| 				pins = "BOOT_8"; |  | ||||||
| 				bias-pull-down; | 				bias-pull-down; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
| @@ -387,6 +418,7 @@ | |||||||
| 				       "nor_c", | 				       "nor_c", | ||||||
| 				       "nor_cs"; | 				       "nor_cs"; | ||||||
| 				function = "nor"; | 				function = "nor"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -396,6 +428,7 @@ | |||||||
| 					"spi_mosi", | 					"spi_mosi", | ||||||
| 					"spi_sclk"; | 					"spi_sclk"; | ||||||
| 				function = "spi"; | 				function = "spi"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -403,18 +436,25 @@ | |||||||
| 			mux { | 			mux { | ||||||
| 				groups = "spi_ss0"; | 				groups = "spi_ss0"; | ||||||
| 				function = "spi"; | 				function = "spi"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| 		sdcard_pins: sdcard { | 		sdcard_pins: sdcard { | ||||||
| 			mux { | 			mux-0 { | ||||||
| 				groups = "sdcard_d0", | 				groups = "sdcard_d0", | ||||||
| 				       "sdcard_d1", | 				       "sdcard_d1", | ||||||
| 				       "sdcard_d2", | 				       "sdcard_d2", | ||||||
| 				       "sdcard_d3", | 				       "sdcard_d3", | ||||||
| 				       "sdcard_cmd", | 				       "sdcard_cmd"; | ||||||
| 				       "sdcard_clk"; |  | ||||||
| 				function = "sdcard"; | 				function = "sdcard"; | ||||||
|  | 				bias-pull-up; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			mux-1 { | ||||||
|  | 				groups = "sdcard_clk"; | ||||||
|  | 				function = "sdcard"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -422,22 +462,25 @@ | |||||||
| 			mux { | 			mux { | ||||||
| 				groups = "CARD_2"; | 				groups = "CARD_2"; | ||||||
| 				function = "gpio_periphs"; | 				function = "gpio_periphs"; | ||||||
| 			}; |  | ||||||
| 			cfg-pull-down { |  | ||||||
| 				pins = "CARD_2"; |  | ||||||
| 				bias-pull-down; | 				bias-pull-down; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| 		sdio_pins: sdio { | 		sdio_pins: sdio { | ||||||
| 			mux { | 			mux-0 { | ||||||
| 				groups = "sdio_d0", | 				groups = "sdio_d0", | ||||||
| 				       "sdio_d1", | 				       "sdio_d1", | ||||||
| 				       "sdio_d2", | 				       "sdio_d2", | ||||||
| 				       "sdio_d3", | 				       "sdio_d3", | ||||||
| 				       "sdio_cmd", | 				       "sdio_cmd"; | ||||||
| 				       "sdio_clk"; |  | ||||||
| 				function = "sdio"; | 				function = "sdio"; | ||||||
|  | 				bias-pull-up; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			mux-1 { | ||||||
|  | 				groups = "sdio_clk"; | ||||||
|  | 				function = "sdio"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -445,9 +488,6 @@ | |||||||
| 			mux { | 			mux { | ||||||
| 				groups = "GPIOX_4"; | 				groups = "GPIOX_4"; | ||||||
| 				function = "gpio_periphs"; | 				function = "gpio_periphs"; | ||||||
| 			}; |  | ||||||
| 			cfg-pull-down { |  | ||||||
| 				pins = "GPIOX_4"; |  | ||||||
| 				bias-pull-down; | 				bias-pull-down; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
| @@ -456,6 +496,7 @@ | |||||||
| 			mux { | 			mux { | ||||||
| 				groups = "sdio_irq"; | 				groups = "sdio_irq"; | ||||||
| 				function = "sdio"; | 				function = "sdio"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -464,6 +505,7 @@ | |||||||
| 				groups = "uart_tx_a", | 				groups = "uart_tx_a", | ||||||
| 				       "uart_rx_a"; | 				       "uart_rx_a"; | ||||||
| 				function = "uart_a"; | 				function = "uart_a"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -472,6 +514,7 @@ | |||||||
| 				groups = "uart_cts_a", | 				groups = "uart_cts_a", | ||||||
| 				       "uart_rts_a"; | 				       "uart_rts_a"; | ||||||
| 				function = "uart_a"; | 				function = "uart_a"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -480,6 +523,7 @@ | |||||||
| 				groups = "uart_tx_b", | 				groups = "uart_tx_b", | ||||||
| 				       "uart_rx_b"; | 				       "uart_rx_b"; | ||||||
| 				function = "uart_b"; | 				function = "uart_b"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -488,6 +532,7 @@ | |||||||
| 				groups = "uart_cts_b", | 				groups = "uart_cts_b", | ||||||
| 				       "uart_rts_b"; | 				       "uart_rts_b"; | ||||||
| 				function = "uart_b"; | 				function = "uart_b"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -496,6 +541,7 @@ | |||||||
| 				groups = "uart_tx_c", | 				groups = "uart_tx_c", | ||||||
| 				       "uart_rx_c"; | 				       "uart_rx_c"; | ||||||
| 				function = "uart_c"; | 				function = "uart_c"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -504,6 +550,7 @@ | |||||||
| 				groups = "uart_cts_c", | 				groups = "uart_cts_c", | ||||||
| 				       "uart_rts_c"; | 				       "uart_rts_c"; | ||||||
| 				function = "uart_c"; | 				function = "uart_c"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -512,6 +559,7 @@ | |||||||
| 				groups = "i2c_sck_a", | 				groups = "i2c_sck_a", | ||||||
| 				       "i2c_sda_a"; | 				       "i2c_sda_a"; | ||||||
| 				function = "i2c_a"; | 				function = "i2c_a"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -520,6 +568,7 @@ | |||||||
| 				groups = "i2c_sck_b", | 				groups = "i2c_sck_b", | ||||||
| 				       "i2c_sda_b"; | 				       "i2c_sda_b"; | ||||||
| 				function = "i2c_b"; | 				function = "i2c_b"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -528,6 +577,7 @@ | |||||||
| 				groups = "i2c_sck_c", | 				groups = "i2c_sck_c", | ||||||
| 				       "i2c_sda_c"; | 				       "i2c_sda_c"; | ||||||
| 				function = "i2c_c"; | 				function = "i2c_c"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -548,6 +598,7 @@ | |||||||
| 				       "eth_txd2", | 				       "eth_txd2", | ||||||
| 				       "eth_txd3"; | 				       "eth_txd3"; | ||||||
| 				function = "eth"; | 				function = "eth"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -563,6 +614,7 @@ | |||||||
| 				       "eth_txd0", | 				       "eth_txd0", | ||||||
| 				       "eth_txd1"; | 				       "eth_txd1"; | ||||||
| 				function = "eth"; | 				function = "eth"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -570,6 +622,7 @@ | |||||||
| 			mux { | 			mux { | ||||||
| 				groups = "pwm_a_x"; | 				groups = "pwm_a_x"; | ||||||
| 				function = "pwm_a_x"; | 				function = "pwm_a_x"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -577,6 +630,7 @@ | |||||||
| 			mux { | 			mux { | ||||||
| 				groups = "pwm_a_y"; | 				groups = "pwm_a_y"; | ||||||
| 				function = "pwm_a_y"; | 				function = "pwm_a_y"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -584,6 +638,7 @@ | |||||||
| 			mux { | 			mux { | ||||||
| 				groups = "pwm_b"; | 				groups = "pwm_b"; | ||||||
| 				function = "pwm_b"; | 				function = "pwm_b"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -591,6 +646,7 @@ | |||||||
| 			mux { | 			mux { | ||||||
| 				groups = "pwm_d"; | 				groups = "pwm_d"; | ||||||
| 				function = "pwm_d"; | 				function = "pwm_d"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -598,6 +654,7 @@ | |||||||
| 			mux { | 			mux { | ||||||
| 				groups = "pwm_e"; | 				groups = "pwm_e"; | ||||||
| 				function = "pwm_e"; | 				function = "pwm_e"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -605,6 +662,7 @@ | |||||||
| 			mux { | 			mux { | ||||||
| 				groups = "pwm_f_x"; | 				groups = "pwm_f_x"; | ||||||
| 				function = "pwm_f_x"; | 				function = "pwm_f_x"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -612,6 +670,7 @@ | |||||||
| 			mux { | 			mux { | ||||||
| 				groups = "pwm_f_y"; | 				groups = "pwm_f_y"; | ||||||
| 				function = "pwm_f_y"; | 				function = "pwm_f_y"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -619,6 +678,7 @@ | |||||||
| 			mux { | 			mux { | ||||||
| 				groups = "hdmi_hpd"; | 				groups = "hdmi_hpd"; | ||||||
| 				function = "hdmi_hpd"; | 				function = "hdmi_hpd"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -626,6 +686,7 @@ | |||||||
| 			mux { | 			mux { | ||||||
| 				groups = "hdmi_sda", "hdmi_scl"; | 				groups = "hdmi_sda", "hdmi_scl"; | ||||||
| 				function = "hdmi_i2c"; | 				function = "hdmi_i2c"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -633,6 +694,7 @@ | |||||||
| 			mux { | 			mux { | ||||||
| 				groups = "i2sout_ch23_y"; | 				groups = "i2sout_ch23_y"; | ||||||
| 				function = "i2s_out"; | 				function = "i2s_out"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -640,6 +702,7 @@ | |||||||
| 			mux { | 			mux { | ||||||
| 				groups = "i2sout_ch45_y"; | 				groups = "i2sout_ch45_y"; | ||||||
| 				function = "i2s_out"; | 				function = "i2s_out"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -647,6 +710,7 @@ | |||||||
| 			mux { | 			mux { | ||||||
| 				groups = "i2sout_ch67_y"; | 				groups = "i2sout_ch67_y"; | ||||||
| 				function = "i2s_out"; | 				function = "i2s_out"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -654,6 +718,7 @@ | |||||||
| 			mux { | 			mux { | ||||||
| 				groups = "spdif_out_y"; | 				groups = "spdif_out_y"; | ||||||
| 				function = "spdif_out"; | 				function = "spdif_out"; | ||||||
|  | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
| 	}; | 	}; | ||||||
| @@ -734,6 +799,12 @@ | |||||||
| 	resets = <&reset RESET_SD_EMMC_C>; | 	resets = <&reset RESET_SD_EMMC_C>; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | &simplefb_hdmi { | ||||||
|  | 	clocks = <&clkc CLKID_HDMI_PCLK>, | ||||||
|  | 		 <&clkc CLKID_CLK81>, | ||||||
|  | 		 <&clkc CLKID_GCLK_VENCI_INT0>; | ||||||
|  | }; | ||||||
|  |  | ||||||
| &spicc { | &spicc { | ||||||
| 	clocks = <&clkc CLKID_SPICC>; | 	clocks = <&clkc CLKID_SPICC>; | ||||||
| 	clock-names = "core"; | 	clock-names = "core"; | ||||||
| @@ -774,3 +845,14 @@ | |||||||
| 	compatible = "amlogic,meson-gxbb-vpu", "amlogic,meson-gx-vpu"; | 	compatible = "amlogic,meson-gxbb-vpu", "amlogic,meson-gx-vpu"; | ||||||
| 	power-domains = <&pwrc_vpu>; | 	power-domains = <&pwrc_vpu>; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | &vdec { | ||||||
|  | 	compatible = "amlogic,gxbb-vdec", "amlogic,gx-vdec"; | ||||||
|  | 	clocks = <&clkc CLKID_DOS_PARSER>, | ||||||
|  | 		 <&clkc CLKID_DOS>, | ||||||
|  | 		 <&clkc CLKID_VDEC_1>, | ||||||
|  | 		 <&clkc CLKID_VDEC_HEVC>; | ||||||
|  | 	clock-names = "dos_parser", "dos", "vdec_1", "vdec_hevc"; | ||||||
|  | 	resets = <&reset RESET_PARSER>; | ||||||
|  | 	reset-names = "esparser"; | ||||||
|  | }; | ||||||
|   | |||||||
| @@ -14,7 +14,7 @@ | |||||||
| / { | / { | ||||||
| 	compatible = "libretech,aml-s805x-ac", "amlogic,s805x", | 	compatible = "libretech,aml-s805x-ac", "amlogic,s805x", | ||||||
| 		     "amlogic,meson-gxl"; | 		     "amlogic,meson-gxl"; | ||||||
| 	model = "Libre Computer Board AML-S805X-AC"; | 	model = "Libre Computer AML-S805X-AC"; | ||||||
|  |  | ||||||
| 	aliases { | 	aliases { | ||||||
| 		serial0 = &uart_AO; | 		serial0 = &uart_AO; | ||||||
|   | |||||||
							
								
								
									
										7
									
								
								arch/arm/dts/meson-gxl-s905d-libretech-pc-u-boot.dtsi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								arch/arm/dts/meson-gxl-s905d-libretech-pc-u-boot.dtsi
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | |||||||
|  | // SPDX-License-Identifier: (GPL-2.0+ OR MIT) | ||||||
|  | /* | ||||||
|  |  * Copyright (c) 2019 BayLibre, SAS. | ||||||
|  |  * Author: Neil Armstrong <narmstrong@baylibre.com> | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #include "meson-gx-u-boot.dtsi" | ||||||
							
								
								
									
										16
									
								
								arch/arm/dts/meson-gxl-s905d-libretech-pc.dts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								arch/arm/dts/meson-gxl-s905d-libretech-pc.dts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | |||||||
|  | // SPDX-License-Identifier: GPL-2.0 | ||||||
|  | /* | ||||||
|  |  * Copyright (c) 2019 BayLibre SAS. All rights reserved. | ||||||
|  |  * Author: Jerome Brunet <jbrunet@baylibre.com> | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | /dts-v1/; | ||||||
|  |  | ||||||
|  | #include "meson-gxl-s905d.dtsi" | ||||||
|  | #include "meson-gx-libretech-pc.dtsi" | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	compatible = "libretech,aml-s905d-pc", "amlogic,s905d", | ||||||
|  | 		     "amlogic,meson-gxl"; | ||||||
|  | 	model = "Libre Computer AML-S905D-PC"; | ||||||
|  | }; | ||||||
							
								
								
									
										12
									
								
								arch/arm/dts/meson-gxl-s905d.dtsi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								arch/arm/dts/meson-gxl-s905d.dtsi
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | |||||||
|  | // SPDX-License-Identifier: (GPL-2.0+ OR MIT) | ||||||
|  | /* | ||||||
|  |  * Copyright (c) 2016 Endless Computers, Inc. | ||||||
|  |  * Author: Carlo Caione <carlo@endlessm.com> | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #include "meson-gxl.dtsi" | ||||||
|  | #include "meson-gxl-mali.dtsi" | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	compatible = "amlogic,s905d", "amlogic,meson-gxl"; | ||||||
|  | }; | ||||||
| @@ -33,11 +33,9 @@ | |||||||
|  |  | ||||||
| 	gpio-keys-polled { | 	gpio-keys-polled { | ||||||
| 		compatible = "gpio-keys-polled"; | 		compatible = "gpio-keys-polled"; | ||||||
| 		#address-cells = <1>; |  | ||||||
| 		#size-cells = <0>; |  | ||||||
| 		poll-interval = <100>; | 		poll-interval = <100>; | ||||||
|  |  | ||||||
| 		button@0 { | 		power-button { | ||||||
| 			label = "power"; | 			label = "power"; | ||||||
| 			linux,code = <KEY_POWER>; | 			linux,code = <KEY_POWER>; | ||||||
| 			gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>; | 			gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>; | ||||||
| @@ -110,10 +108,10 @@ | |||||||
| }; | }; | ||||||
|  |  | ||||||
| &ir { | &ir { | ||||||
| 	linux,rc-map-name = "rc-geekbox"; | 	linux,rc-map-name = "rc-khadas"; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| &pinctrl_aobus { | &gpio_ao { | ||||||
| 	gpio-line-names = "UART TX", | 	gpio-line-names = "UART TX", | ||||||
| 			  "UART RX", | 			  "UART RX", | ||||||
| 			  "Power Key In", | 			  "Power Key In", | ||||||
| @@ -128,7 +126,7 @@ | |||||||
| 			  ""; | 			  ""; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| &pinctrl_periphs { | &gpio { | ||||||
| 	gpio-line-names = /* Bank GPIOZ */ | 	gpio-line-names = /* Bank GPIOZ */ | ||||||
| 			  "", "", "", "", "", "", "", | 			  "", "", "", "", "", "", "", | ||||||
| 			  "", "", "", "", "", "", "", | 			  "", "", "", "", "", "", "", | ||||||
| @@ -188,6 +186,16 @@ | |||||||
| 	}; | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | &uart_A { | ||||||
|  | 	bluetooth { | ||||||
|  | 		compatible = "brcm,bcm43438-bt"; | ||||||
|  | 		shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		max-speed = <2000000>; | ||||||
|  | 		clocks = <&wifi32k>; | ||||||
|  | 		clock-names = "lpo"; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
| /* This is brought out on the Linux_RX (18) and Linux_TX (19) pins: */ | /* This is brought out on the Linux_RX (18) and Linux_TX (19) pins: */ | ||||||
| &uart_AO { | &uart_AO { | ||||||
| 	status = "okay"; | 	status = "okay"; | ||||||
|   | |||||||
| @@ -12,8 +12,9 @@ | |||||||
| #include "meson-gxl-s905x.dtsi" | #include "meson-gxl-s905x.dtsi" | ||||||
|  |  | ||||||
| / { | / { | ||||||
| 	compatible = "libretech,cc", "amlogic,s905x", "amlogic,meson-gxl"; | 	compatible = "libretech,aml-s905x-cc", "amlogic,s905x", | ||||||
| 	model = "Libre Computer Board AML-S905X-CC"; | 		     "amlogic,meson-gxl"; | ||||||
|  | 	model = "Libre Computer AML-S905X-CC"; | ||||||
|  |  | ||||||
| 	aliases { | 	aliases { | ||||||
| 		serial0 = &uart_AO; | 		serial0 = &uart_AO; | ||||||
| @@ -115,11 +116,13 @@ | |||||||
| 		regulator-max-microvolt = <1800000>; | 		regulator-max-microvolt = <1800000>; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
|  | 	/* This is provided by LDOs on the eMMC daugther card */ | ||||||
| 	vddio_boot: regulator-vddio_boot { | 	vddio_boot: regulator-vddio_boot { | ||||||
| 		compatible = "regulator-fixed"; | 		compatible = "regulator-fixed"; | ||||||
| 		regulator-name = "VDDIO_BOOT"; | 		regulator-name = "VDDIO_BOOT"; | ||||||
| 		regulator-min-microvolt = <3300000>; | 		regulator-min-microvolt = <1800000>; | ||||||
| 		regulator-max-microvolt = <3300000>; | 		regulator-max-microvolt = <1800000>; | ||||||
|  | 		vin-supply = <&vcc_3v3>; | ||||||
| 	}; | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| @@ -164,7 +167,7 @@ | |||||||
| 	}; | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| &pinctrl_aobus { | &gpio_ao { | ||||||
| 	gpio-line-names = "UART TX", | 	gpio-line-names = "UART TX", | ||||||
| 			  "UART RX", | 			  "UART RX", | ||||||
| 			  "Blue LED", | 			  "Blue LED", | ||||||
| @@ -179,7 +182,7 @@ | |||||||
| 			  "7J1 Header Pin15"; | 			  "7J1 Header Pin15"; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| &pinctrl_periphs { | &gpio { | ||||||
| 	gpio-line-names = /* Bank GPIOZ */ | 	gpio-line-names = /* Bank GPIOZ */ | ||||||
| 			  "", "", "", "", "", "", "", | 			  "", "", "", "", "", "", "", | ||||||
| 			  "", "", "", "", "", "", "", | 			  "", "", "", "", "", "", "", | ||||||
| @@ -235,11 +238,10 @@ | |||||||
|  |  | ||||||
| 	bus-width = <4>; | 	bus-width = <4>; | ||||||
| 	cap-sd-highspeed; | 	cap-sd-highspeed; | ||||||
| 	max-frequency = <100000000>; | 	max-frequency = <50000000>; | ||||||
| 	disable-wp; | 	disable-wp; | ||||||
|  |  | ||||||
| 	cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>; | 	cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; | ||||||
| 	cd-inverted; |  | ||||||
|  |  | ||||||
| 	vmmc-supply = <&vcc_3v3>; | 	vmmc-supply = <&vcc_3v3>; | ||||||
| 	vqmmc-supply = <&vcc_card>; | 	vqmmc-supply = <&vcc_card>; | ||||||
| @@ -254,9 +256,9 @@ | |||||||
|  |  | ||||||
| 	bus-width = <8>; | 	bus-width = <8>; | ||||||
| 	cap-mmc-highspeed; | 	cap-mmc-highspeed; | ||||||
| 	mmc-ddr-3_3v; | 	mmc-ddr-1_8v; | ||||||
| 	max-frequency = <50000000>; | 	mmc-hs200-1_8v; | ||||||
| 	non-removable; | 	max-frequency = <200000000>; | ||||||
| 	disable-wp; | 	disable-wp; | ||||||
|  |  | ||||||
| 	mmc-pwrseq = <&emmc_pwrseq>; | 	mmc-pwrseq = <&emmc_pwrseq>; | ||||||
|   | |||||||
| @@ -114,11 +114,14 @@ | |||||||
|  |  | ||||||
| 	bus-width = <4>; | 	bus-width = <4>; | ||||||
| 	cap-sd-highspeed; | 	cap-sd-highspeed; | ||||||
| 	max-frequency = <100000000>; | 	max-frequency = <50000000>; | ||||||
|  |  | ||||||
| 	non-removable; | 	non-removable; | ||||||
| 	disable-wp; | 	disable-wp; | ||||||
|  |  | ||||||
|  | 	/* WiFi firmware requires power to be kept while in suspend */ | ||||||
|  | 	keep-power-in-suspend; | ||||||
|  |  | ||||||
| 	mmc-pwrseq = <&sdio_pwrseq>; | 	mmc-pwrseq = <&sdio_pwrseq>; | ||||||
|  |  | ||||||
| 	vmmc-supply = <&vddao_3v3>; | 	vmmc-supply = <&vddao_3v3>; | ||||||
| @@ -134,11 +137,10 @@ | |||||||
|  |  | ||||||
| 	bus-width = <4>; | 	bus-width = <4>; | ||||||
| 	cap-sd-highspeed; | 	cap-sd-highspeed; | ||||||
| 	max-frequency = <100000000>; | 	max-frequency = <50000000>; | ||||||
| 	disable-wp; | 	disable-wp; | ||||||
|  |  | ||||||
| 	cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>; | 	cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; | ||||||
| 	cd-inverted; |  | ||||||
|  |  | ||||||
| 	vmmc-supply = <&vddao_3v3>; | 	vmmc-supply = <&vddao_3v3>; | ||||||
| 	vqmmc-supply = <&vddio_boot>; | 	vqmmc-supply = <&vddio_boot>; | ||||||
|   | |||||||
| @@ -36,6 +36,16 @@ | |||||||
| 				phys = <&usb3_phy>, <&usb2_phy0>, <&usb2_phy1>; | 				phys = <&usb3_phy>, <&usb2_phy0>, <&usb2_phy1>; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
|  | 		crypto: crypto@c883e000 { | ||||||
|  | 			compatible = "amlogic,gxl-crypto"; | ||||||
|  | 			reg = <0x0 0xc883e000 0x0 0x36>; | ||||||
|  | 			interrupts = <GIC_SPI 188 IRQ_TYPE_EDGE_RISING>, | ||||||
|  | 				     <GIC_SPI 189 IRQ_TYPE_EDGE_RISING>; | ||||||
|  | 			clocks = <&clkc CLKID_BLKMV>; | ||||||
|  | 			clock-names = "blkmv"; | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
| 	}; | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| @@ -80,9 +90,6 @@ | |||||||
| }; | }; | ||||||
|  |  | ||||||
| ðmac { | ðmac { | ||||||
| 	reg = <0x0 0xc9410000 0x0 0x10000 |  | ||||||
| 	       0x0 0xc8834540 0x0 0x4>; |  | ||||||
|  |  | ||||||
| 	clocks = <&clkc CLKID_ETH>, | 	clocks = <&clkc CLKID_ETH>, | ||||||
| 		 <&clkc CLKID_FCLK_DIV2>, | 		 <&clkc CLKID_FCLK_DIV2>, | ||||||
| 		 <&clkc CLKID_MPLL2>; | 		 <&clkc CLKID_MPLL2>; | ||||||
| @@ -326,10 +333,15 @@ | |||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| 		emmc_pins: emmc { | 		emmc_pins: emmc { | ||||||
| 			mux { | 			mux-0 { | ||||||
| 				groups = "emmc_nand_d07", | 				groups = "emmc_nand_d07", | ||||||
| 				       "emmc_cmd", | 				       "emmc_cmd"; | ||||||
| 				       "emmc_clk"; | 				function = "emmc"; | ||||||
|  | 				bias-pull-up; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			mux-1 { | ||||||
|  | 				groups = "emmc_clk"; | ||||||
| 				function = "emmc"; | 				function = "emmc"; | ||||||
| 				bias-disable; | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| @@ -339,7 +351,7 @@ | |||||||
| 			mux { | 			mux { | ||||||
| 				groups = "emmc_ds"; | 				groups = "emmc_ds"; | ||||||
| 				function = "emmc"; | 				function = "emmc"; | ||||||
| 				bias-disable; | 				bias-pull-down; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| @@ -381,13 +393,18 @@ | |||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| 		sdcard_pins: sdcard { | 		sdcard_pins: sdcard { | ||||||
| 			mux { | 			mux-0 { | ||||||
| 				groups = "sdcard_d0", | 				groups = "sdcard_d0", | ||||||
| 				       "sdcard_d1", | 				       "sdcard_d1", | ||||||
| 				       "sdcard_d2", | 				       "sdcard_d2", | ||||||
| 				       "sdcard_d3", | 				       "sdcard_d3", | ||||||
| 				       "sdcard_cmd", | 				       "sdcard_cmd"; | ||||||
| 				       "sdcard_clk"; | 				function = "sdcard"; | ||||||
|  | 				bias-pull-up; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			mux-1 { | ||||||
|  | 				groups = "sdcard_clk"; | ||||||
| 				function = "sdcard"; | 				function = "sdcard"; | ||||||
| 				bias-disable; | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| @@ -402,13 +419,18 @@ | |||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| 		sdio_pins: sdio { | 		sdio_pins: sdio { | ||||||
| 			mux { | 			mux-0 { | ||||||
| 				groups = "sdio_d0", | 				groups = "sdio_d0", | ||||||
| 				       "sdio_d1", | 				       "sdio_d1", | ||||||
| 				       "sdio_d2", | 				       "sdio_d2", | ||||||
| 				       "sdio_d3", | 				       "sdio_d3", | ||||||
| 				       "sdio_cmd", | 				       "sdio_cmd"; | ||||||
| 				       "sdio_clk"; | 				function = "sdio"; | ||||||
|  | 				bias-pull-up; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			mux-1 { | ||||||
|  | 				groups = "sdio_clk"; | ||||||
| 				function = "sdio"; | 				function = "sdio"; | ||||||
| 				bias-disable; | 				bias-disable; | ||||||
| 			}; | 			}; | ||||||
| @@ -511,6 +533,15 @@ | |||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
|  | 		i2c_c_dv18_pins: i2c_c_dv18 { | ||||||
|  | 			mux { | ||||||
|  | 				groups = "i2c_sck_c_dv19", | ||||||
|  | 				      "i2c_sda_c_dv18"; | ||||||
|  | 				function = "i2c_c"; | ||||||
|  | 				bias-disable; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
| 		eth_pins: eth_c { | 		eth_pins: eth_c { | ||||||
| 			mux { | 			mux { | ||||||
| 				groups = "eth_mdio", | 				groups = "eth_mdio", | ||||||
| @@ -697,7 +728,7 @@ | |||||||
| 			#size-cells = <0>; | 			#size-cells = <0>; | ||||||
|  |  | ||||||
| 			internal_phy: ethernet-phy@8 { | 			internal_phy: ethernet-phy@8 { | ||||||
| 				compatible = "ethernet-phy-id0181.4400", "ethernet-phy-ieee802.3-c22"; | 				compatible = "ethernet-phy-id0181.4400"; | ||||||
| 				interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; | 				interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; | ||||||
| 				reg = <8>; | 				reg = <8>; | ||||||
| 				max-speed = <100>; | 				max-speed = <100>; | ||||||
| @@ -787,6 +818,12 @@ | |||||||
| 	resets = <&reset RESET_SD_EMMC_C>; | 	resets = <&reset RESET_SD_EMMC_C>; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | &simplefb_hdmi { | ||||||
|  | 	clocks = <&clkc CLKID_HDMI_PCLK>, | ||||||
|  | 		 <&clkc CLKID_CLK81>, | ||||||
|  | 		 <&clkc CLKID_GCLK_VENCI_INT0>; | ||||||
|  | }; | ||||||
|  |  | ||||||
| &spicc { | &spicc { | ||||||
| 	clocks = <&clkc CLKID_SPICC>; | 	clocks = <&clkc CLKID_SPICC>; | ||||||
| 	clock-names = "core"; | 	clock-names = "core"; | ||||||
| @@ -827,3 +864,14 @@ | |||||||
| 	compatible = "amlogic,meson-gxl-vpu", "amlogic,meson-gx-vpu"; | 	compatible = "amlogic,meson-gxl-vpu", "amlogic,meson-gx-vpu"; | ||||||
| 	power-domains = <&pwrc_vpu>; | 	power-domains = <&pwrc_vpu>; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | &vdec { | ||||||
|  | 	compatible = "amlogic,gxl-vdec", "amlogic,gx-vdec"; | ||||||
|  | 	clocks = <&clkc CLKID_DOS_PARSER>, | ||||||
|  | 		 <&clkc CLKID_DOS>, | ||||||
|  | 		 <&clkc CLKID_VDEC_1>, | ||||||
|  | 		 <&clkc CLKID_VDEC_HEVC>; | ||||||
|  | 	clock-names = "dos_parser", "dos", "vdec_1", "vdec_hevc"; | ||||||
|  | 	resets = <&reset RESET_PARSER>; | ||||||
|  | 	reset-names = "esparser"; | ||||||
|  | }; | ||||||
|   | |||||||
| @@ -18,7 +18,6 @@ | |||||||
|  |  | ||||||
| 	aliases { | 	aliases { | ||||||
| 		serial0 = &uart_AO; | 		serial0 = &uart_AO; | ||||||
| 		serial1 = &uart_A; |  | ||||||
| 		serial2 = &uart_AO_B; | 		serial2 = &uart_AO_B; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| @@ -63,11 +62,9 @@ | |||||||
|  |  | ||||||
| 	gpio-keys-polled { | 	gpio-keys-polled { | ||||||
| 		compatible = "gpio-keys-polled"; | 		compatible = "gpio-keys-polled"; | ||||||
| 		#address-cells = <1>; |  | ||||||
| 		#size-cells = <0>; |  | ||||||
| 		poll-interval = <100>; | 		poll-interval = <100>; | ||||||
|  |  | ||||||
| 		button@0 { | 		power-button { | ||||||
| 			label = "power"; | 			label = "power"; | ||||||
| 			linux,code = <KEY_POWER>; | 			linux,code = <KEY_POWER>; | ||||||
| 			gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>; | 			gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>; | ||||||
| @@ -132,19 +129,15 @@ | |||||||
|  |  | ||||||
| 				map1 { | 				map1 { | ||||||
| 					trip = <&cpu_alert1>; | 					trip = <&cpu_alert1>; | ||||||
| 					cooling-device = <&gpio_fan 2 THERMAL_NO_LIMIT>; | 					cooling-device = <&gpio_fan 2 THERMAL_NO_LIMIT>, | ||||||
| 				}; | 							 <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | ||||||
|  | 							 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | ||||||
| 				map2 { | 							 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | ||||||
| 					trip = <&cpu_alert1>; | 							 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | ||||||
| 					cooling-device = | 							 <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | ||||||
| 						<&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; | 							 <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | ||||||
| 				}; | 							 <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | ||||||
|  | 							 <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; | ||||||
| 				map3 { |  | ||||||
| 					trip = <&cpu_alert1>; |  | ||||||
| 					cooling-device = |  | ||||||
| 						<&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; |  | ||||||
| 				}; | 				}; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
| @@ -246,11 +239,6 @@ | |||||||
|  |  | ||||||
| 	amlogic,tx-delay-ns = <2>; | 	amlogic,tx-delay-ns = <2>; | ||||||
|  |  | ||||||
| 	/* External PHY reset is shared with internal PHY Led signals */ |  | ||||||
| 	snps,reset-gpio = <&gpio GPIOZ_14 0>; |  | ||||||
| 	snps,reset-delays-us = <0 10000 1000000>; |  | ||||||
| 	snps,reset-active-low; |  | ||||||
|  |  | ||||||
| 	/* External PHY is in RGMII */ | 	/* External PHY is in RGMII */ | ||||||
| 	phy-mode = "rgmii"; | 	phy-mode = "rgmii"; | ||||||
|  |  | ||||||
| @@ -261,6 +249,11 @@ | |||||||
| 	external_phy: ethernet-phy@0 { | 	external_phy: ethernet-phy@0 { | ||||||
| 		/* Realtek RTL8211F (0x001cc916) */ | 		/* Realtek RTL8211F (0x001cc916) */ | ||||||
| 		reg = <0>; | 		reg = <0>; | ||||||
|  |  | ||||||
|  | 		reset-assert-us = <10000>; | ||||||
|  | 		reset-deassert-us = <30000>; | ||||||
|  | 		reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; | ||||||
|  |  | ||||||
| 		interrupt-parent = <&gpio_intc>; | 		interrupt-parent = <&gpio_intc>; | ||||||
| 		/* MAC_INTR on GPIOZ_15 */ | 		/* MAC_INTR on GPIOZ_15 */ | ||||||
| 		interrupts = <25 IRQ_TYPE_LEVEL_LOW>; | 		interrupts = <25 IRQ_TYPE_LEVEL_LOW>; | ||||||
| @@ -306,7 +299,7 @@ | |||||||
| 	status = "okay"; | 	status = "okay"; | ||||||
| 	pinctrl-0 = <&remote_input_ao_pins>; | 	pinctrl-0 = <&remote_input_ao_pins>; | ||||||
| 	pinctrl-names = "default"; | 	pinctrl-names = "default"; | ||||||
| 	linux,rc-map-name = "rc-geekbox"; | 	linux,rc-map-name = "rc-khadas"; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| &pwm_AO_ab { | &pwm_AO_ab { | ||||||
| @@ -328,16 +321,20 @@ | |||||||
| &sd_emmc_a { | &sd_emmc_a { | ||||||
| 	status = "okay"; | 	status = "okay"; | ||||||
| 	pinctrl-0 = <&sdio_pins>; | 	pinctrl-0 = <&sdio_pins>; | ||||||
| 	pinctrl-names = "default"; | 	pinctrl-1 = <&sdio_clk_gate_pins>; | ||||||
|  | 	pinctrl-names = "default", "clk-gate"; | ||||||
| 	#address-cells = <1>; | 	#address-cells = <1>; | ||||||
| 	#size-cells = <0>; | 	#size-cells = <0>; | ||||||
|  |  | ||||||
| 	bus-width = <4>; | 	bus-width = <4>; | ||||||
| 	max-frequency = <100000000>; | 	max-frequency = <50000000>; | ||||||
|  |  | ||||||
| 	non-removable; | 	non-removable; | ||||||
| 	disable-wp; | 	disable-wp; | ||||||
|  |  | ||||||
|  | 	/* WiFi firmware requires power to be kept while in suspend */ | ||||||
|  | 	keep-power-in-suspend; | ||||||
|  |  | ||||||
| 	mmc-pwrseq = <&sdio_pwrseq>; | 	mmc-pwrseq = <&sdio_pwrseq>; | ||||||
|  |  | ||||||
| 	vmmc-supply = <&vddao_3v3>; | 	vmmc-supply = <&vddao_3v3>; | ||||||
| @@ -353,15 +350,15 @@ | |||||||
| &sd_emmc_b { | &sd_emmc_b { | ||||||
| 	status = "okay"; | 	status = "okay"; | ||||||
| 	pinctrl-0 = <&sdcard_pins>; | 	pinctrl-0 = <&sdcard_pins>; | ||||||
| 	pinctrl-names = "default"; | 	pinctrl-1 = <&sdcard_clk_gate_pins>; | ||||||
|  | 	pinctrl-names = "default", "clk-gate"; | ||||||
|  |  | ||||||
| 	bus-width = <4>; | 	bus-width = <4>; | ||||||
| 	cap-sd-highspeed; | 	cap-sd-highspeed; | ||||||
| 	max-frequency = <100000000>; | 	max-frequency = <50000000>; | ||||||
| 	disable-wp; | 	disable-wp; | ||||||
|  |  | ||||||
| 	cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>; | 	cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; | ||||||
| 	cd-inverted; |  | ||||||
|  |  | ||||||
| 	vmmc-supply = <&vddao_3v3>; | 	vmmc-supply = <&vddao_3v3>; | ||||||
| 	vqmmc-supply = <&vddio_boot>; | 	vqmmc-supply = <&vddio_boot>; | ||||||
| @@ -371,17 +368,16 @@ | |||||||
| &sd_emmc_c { | &sd_emmc_c { | ||||||
| 	status = "okay"; | 	status = "okay"; | ||||||
| 	pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; | 	pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; | ||||||
| 	pinctrl-names = "default"; | 	pinctrl-1 = <&emmc_clk_gate_pins>; | ||||||
|  | 	pinctrl-names = "default", "clk-gate"; | ||||||
|  |  | ||||||
| 	bus-width = <8>; | 	bus-width = <8>; | ||||||
| 	cap-sd-highspeed; |  | ||||||
| 	cap-mmc-highspeed; | 	cap-mmc-highspeed; | ||||||
| 	max-frequency = <200000000>; | 	max-frequency = <200000000>; | ||||||
| 	non-removable; | 	non-removable; | ||||||
| 	disable-wp; | 	disable-wp; | ||||||
| 	mmc-ddr-1_8v; | 	mmc-ddr-1_8v; | ||||||
| 	mmc-hs200-1_8v; | 	mmc-hs200-1_8v; | ||||||
| 	mmc-hs400-1_8v; |  | ||||||
|  |  | ||||||
| 	mmc-pwrseq = <&emmc_pwrseq>; | 	mmc-pwrseq = <&emmc_pwrseq>; | ||||||
| 	vmmc-supply = <&vcc_3v3>; | 	vmmc-supply = <&vcc_3v3>; | ||||||
| @@ -409,8 +405,17 @@ | |||||||
| /* This one is connected to the Bluetooth module */ | /* This one is connected to the Bluetooth module */ | ||||||
| &uart_A { | &uart_A { | ||||||
| 	status = "okay"; | 	status = "okay"; | ||||||
| 	pinctrl-0 = <&uart_a_pins>; | 	pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; | ||||||
| 	pinctrl-names = "default"; | 	pinctrl-names = "default"; | ||||||
|  | 	uart-has-rtscts; | ||||||
|  |  | ||||||
|  | 	bluetooth { | ||||||
|  | 		compatible = "brcm,bcm43438-bt"; | ||||||
|  | 		shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		max-speed = <2000000>; | ||||||
|  | 		clocks = <&wifi32k>; | ||||||
|  | 		clock-names = "lpo"; | ||||||
|  | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| /* This is brought out on the Linux_RX (18) and Linux_TX (19) pins: */ | /* This is brought out on the Linux_RX (18) and Linux_TX (19) pins: */ | ||||||
|   | |||||||
							
								
								
									
										7
									
								
								arch/arm/dts/meson-gxm-s912-libretech-pc-u-boot.dtsi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								arch/arm/dts/meson-gxm-s912-libretech-pc-u-boot.dtsi
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | |||||||
|  | // SPDX-License-Identifier: (GPL-2.0+ OR MIT) | ||||||
|  | /* | ||||||
|  |  * Copyright (c) 2019 BayLibre, SAS. | ||||||
|  |  * Author: Neil Armstrong <narmstrong@baylibre.com> | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #include "meson-gx-u-boot.dtsi" | ||||||
							
								
								
									
										62
									
								
								arch/arm/dts/meson-gxm-s912-libretech-pc.dts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								arch/arm/dts/meson-gxm-s912-libretech-pc.dts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,62 @@ | |||||||
|  | // SPDX-License-Identifier: GPL-2.0 | ||||||
|  | /* | ||||||
|  |  * Copyright (c) 2019 BayLibre SAS. All rights reserved. | ||||||
|  |  * Author: Jerome Brunet <jbrunet@baylibre.com> | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | /dts-v1/; | ||||||
|  |  | ||||||
|  | #include "meson-gxm.dtsi" | ||||||
|  | #include "meson-gx-libretech-pc.dtsi" | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	compatible = "libretech,aml-s912-pc", "amlogic,s912", | ||||||
|  | 		     "amlogic,meson-gxm"; | ||||||
|  | 	model = "Libre Computer AML-S912-PC"; | ||||||
|  |  | ||||||
|  | 	typec2_vbus: regulator-typec2_vbus { | ||||||
|  | 		compatible = "regulator-fixed"; | ||||||
|  | 		regulator-name = "TYPEC2_VBUS"; | ||||||
|  | 		regulator-min-microvolt = <5000000>; | ||||||
|  | 		regulator-max-microvolt = <5000000>; | ||||||
|  | 		vin-supply = <&vcc5v>; | ||||||
|  |  | ||||||
|  | 		gpio = <&gpio GPIODV_1 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		enable-active-high; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &pinctrl_periphs { | ||||||
|  | 	/* | ||||||
|  | 	 * Make sure the irq pin of the TYPE C controller is not driven | ||||||
|  | 	 * by the SoC. | ||||||
|  | 	 */ | ||||||
|  | 	fusb302_irq_pins: fusb302_irq { | ||||||
|  | 		mux { | ||||||
|  | 			groups = "GPIODV_0"; | ||||||
|  | 			function = "gpio_periphs"; | ||||||
|  | 			bias-pull-up; | ||||||
|  | 			output-disable; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &i2c_C { | ||||||
|  | 	fusb302@22 { | ||||||
|  | 		compatible = "fcs,fusb302"; | ||||||
|  | 		reg = <0x22>; | ||||||
|  |  | ||||||
|  | 		pinctrl-0 = <&fusb302_irq_pins>; | ||||||
|  | 		pinctrl-names = "default"; | ||||||
|  | 		interrupt-parent = <&gpio_intc>; | ||||||
|  | 		interrupts = <59 IRQ_TYPE_LEVEL_LOW>; | ||||||
|  |  | ||||||
|  | 		vbus-supply = <&typec2_vbus>; | ||||||
|  |  | ||||||
|  | 		status = "okay"; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usb2_phy2 { | ||||||
|  | 	phy-supply = <&typec2_vbus>; | ||||||
|  | }; | ||||||
| @@ -44,7 +44,7 @@ | |||||||
|  |  | ||||||
| 		cpu4: cpu@100 { | 		cpu4: cpu@100 { | ||||||
| 			device_type = "cpu"; | 			device_type = "cpu"; | ||||||
| 			compatible = "arm,cortex-a53", "arm,armv8"; | 			compatible = "arm,cortex-a53"; | ||||||
| 			reg = <0x0 0x100>; | 			reg = <0x0 0x100>; | ||||||
| 			enable-method = "psci"; | 			enable-method = "psci"; | ||||||
| 			next-level-cache = <&l2>; | 			next-level-cache = <&l2>; | ||||||
| @@ -53,7 +53,7 @@ | |||||||
|  |  | ||||||
| 		cpu5: cpu@101 { | 		cpu5: cpu@101 { | ||||||
| 			device_type = "cpu"; | 			device_type = "cpu"; | ||||||
| 			compatible = "arm,cortex-a53", "arm,armv8"; | 			compatible = "arm,cortex-a53"; | ||||||
| 			reg = <0x0 0x101>; | 			reg = <0x0 0x101>; | ||||||
| 			enable-method = "psci"; | 			enable-method = "psci"; | ||||||
| 			next-level-cache = <&l2>; | 			next-level-cache = <&l2>; | ||||||
| @@ -62,7 +62,7 @@ | |||||||
|  |  | ||||||
| 		cpu6: cpu@102 { | 		cpu6: cpu@102 { | ||||||
| 			device_type = "cpu"; | 			device_type = "cpu"; | ||||||
| 			compatible = "arm,cortex-a53", "arm,armv8"; | 			compatible = "arm,cortex-a53"; | ||||||
| 			reg = <0x0 0x102>; | 			reg = <0x0 0x102>; | ||||||
| 			enable-method = "psci"; | 			enable-method = "psci"; | ||||||
| 			next-level-cache = <&l2>; | 			next-level-cache = <&l2>; | ||||||
| @@ -71,7 +71,7 @@ | |||||||
|  |  | ||||||
| 		cpu7: cpu@103 { | 		cpu7: cpu@103 { | ||||||
| 			device_type = "cpu"; | 			device_type = "cpu"; | ||||||
| 			compatible = "arm,cortex-a53", "arm,armv8"; | 			compatible = "arm,cortex-a53"; | ||||||
| 			reg = <0x0 0x103>; | 			reg = <0x0 0x103>; | ||||||
| 			enable-method = "psci"; | 			enable-method = "psci"; | ||||||
| 			next-level-cache = <&l2>; | 			next-level-cache = <&l2>; | ||||||
| @@ -91,6 +91,33 @@ | |||||||
| 		reset-names = "phy"; | 		reset-names = "phy"; | ||||||
| 		status = "okay"; | 		status = "okay"; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
|  | 	mali: gpu@c0000 { | ||||||
|  | 		compatible = "amlogic,meson-gxm-mali", "arm,mali-t820"; | ||||||
|  | 		reg = <0x0 0xc0000 0x0 0x40000>; | ||||||
|  | 		interrupt-parent = <&gic>; | ||||||
|  | 		interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>, | ||||||
|  | 			     <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>, | ||||||
|  | 			     <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>; | ||||||
|  | 		interrupt-names = "job", "mmu", "gpu"; | ||||||
|  | 		clocks = <&clkc CLKID_MALI>; | ||||||
|  | 		resets = <&reset RESET_MALI_CAPB3>, <&reset RESET_MALI>; | ||||||
|  |  | ||||||
|  | 		/* | ||||||
|  | 		 * Mali clocking is provided by two identical clock paths | ||||||
|  | 		 * MALI_0 and MALI_1 muxed to a single clock by a glitch | ||||||
|  | 		 * free mux to safely change frequency while running. | ||||||
|  | 		 */ | ||||||
|  | 		assigned-clocks = <&clkc CLKID_MALI_0_SEL>, | ||||||
|  | 				  <&clkc CLKID_MALI_0>, | ||||||
|  | 				  <&clkc CLKID_MALI>; /* Glitch free mux */ | ||||||
|  | 		assigned-clock-parents = <&clkc CLKID_FCLK_DIV3>, | ||||||
|  | 					 <0>, /* Do Nothing */ | ||||||
|  | 					 <&clkc CLKID_MALI_0>; | ||||||
|  | 		assigned-clock-rates = <0>, /* Do Nothing */ | ||||||
|  | 				       <666666666>, | ||||||
|  | 				       <0>; /* Do Nothing */ | ||||||
|  | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| &clkc_AO { | &clkc_AO { | ||||||
| @@ -117,3 +144,7 @@ | |||||||
| &dwc3 { | &dwc3 { | ||||||
| 	phys = <&usb3_phy>, <&usb2_phy0>, <&usb2_phy1>, <&usb2_phy2>; | 	phys = <&usb3_phy>, <&usb2_phy0>, <&usb2_phy1>, <&usb2_phy2>; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | &vdec { | ||||||
|  | 	compatible = "amlogic,gxm-vdec", "amlogic,gx-vdec"; | ||||||
|  | }; | ||||||
|   | |||||||
| @@ -246,6 +246,10 @@ | |||||||
| 	linux,rc-map-name = "rc-khadas"; | 	linux,rc-map-name = "rc-khadas"; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | &pcie { | ||||||
|  | 	reset-gpios = <&gpio GPIOA_8 GPIO_ACTIVE_LOW>; | ||||||
|  | }; | ||||||
|  |  | ||||||
| &pwm_ef { | &pwm_ef { | ||||||
|         status = "okay"; |         status = "okay"; | ||||||
|         pinctrl-0 = <&pwm_e_pins>; |         pinctrl-0 = <&pwm_e_pins>; | ||||||
| @@ -274,6 +278,9 @@ | |||||||
| 	non-removable; | 	non-removable; | ||||||
| 	disable-wp; | 	disable-wp; | ||||||
|  |  | ||||||
|  | 	/* WiFi firmware requires power to be kept while in suspend */ | ||||||
|  | 	keep-power-in-suspend; | ||||||
|  |  | ||||||
| 	mmc-pwrseq = <&sdio_pwrseq>; | 	mmc-pwrseq = <&sdio_pwrseq>; | ||||||
|  |  | ||||||
| 	vmmc-supply = <&vsys_3v3>; | 	vmmc-supply = <&vsys_3v3>; | ||||||
|   | |||||||
| @@ -9,6 +9,7 @@ | |||||||
| #include <dt-bindings/gpio/gpio.h> | #include <dt-bindings/gpio/gpio.h> | ||||||
| #include <dt-bindings/input/input.h> | #include <dt-bindings/input/input.h> | ||||||
| #include <dt-bindings/gpio/meson-g12a-gpio.h> | #include <dt-bindings/gpio/meson-g12a-gpio.h> | ||||||
|  | #include <dt-bindings/sound/meson-g12a-tohdmitx.h> | ||||||
|  |  | ||||||
| / { | / { | ||||||
| 	compatible = "seirobotics,sei610", "amlogic,sm1"; | 	compatible = "seirobotics,sei610", "amlogic,sm1"; | ||||||
| @@ -19,6 +20,22 @@ | |||||||
| 		ethernet0 = ðmac; | 		ethernet0 = ðmac; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
|  | 	mono_dac: audio-codec-0 { | ||||||
|  | 		compatible = "maxim,max98357a"; | ||||||
|  | 		#sound-dai-cells = <0>; | ||||||
|  | 		sound-name-prefix = "U16"; | ||||||
|  | 		sdmode-gpios = <&gpio GPIOX_8 GPIO_ACTIVE_HIGH>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	dmics: audio-codec-1 { | ||||||
|  | 		#sound-dai-cells = <0>; | ||||||
|  | 		compatible = "dmic-codec"; | ||||||
|  | 		num-channels = <2>; | ||||||
|  | 		wakeup-delay-ms = <50>; | ||||||
|  | 		status = "okay"; | ||||||
|  | 		sound-name-prefix = "MIC"; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
| 	chosen { | 	chosen { | ||||||
| 		stdout-path = "serial0:115200n8"; | 		stdout-path = "serial0:115200n8"; | ||||||
| 	}; | 	}; | ||||||
| @@ -29,25 +46,47 @@ | |||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 	gpio-keys { | 	gpio-keys { | ||||||
| 		compatible = "gpio-keys-polled"; | 		compatible = "gpio-keys"; | ||||||
| 		poll-interval = <100>; |  | ||||||
|  |  | ||||||
| 		key1 { | 		key1 { | ||||||
| 			label = "A"; | 			label = "A"; | ||||||
| 			linux,code = <BTN_0>; | 			linux,code = <BTN_0>; | ||||||
| 			gpios = <&gpio GPIOH_6 GPIO_ACTIVE_LOW>; | 			gpios = <&gpio GPIOH_6 GPIO_ACTIVE_LOW>; | ||||||
|  | 			interrupt-parent = <&gpio_intc>; | ||||||
|  | 			interrupts = <34 IRQ_TYPE_EDGE_BOTH>; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| 		key2 { | 		key2 { | ||||||
| 			label = "B"; | 			label = "B"; | ||||||
| 			linux,code = <BTN_1>; | 			linux,code = <BTN_1>; | ||||||
| 			gpios = <&gpio GPIOH_7 GPIO_ACTIVE_LOW>; | 			gpios = <&gpio GPIOH_7 GPIO_ACTIVE_LOW>; | ||||||
|  | 			interrupt-parent = <&gpio_intc>; | ||||||
|  | 			interrupts = <35 IRQ_TYPE_EDGE_BOTH>; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
| 		key3 { | 		key3 { | ||||||
| 			label = "C"; | 			label = "C"; | ||||||
| 			linux,code = <BTN_2>; | 			linux,code = <BTN_2>; | ||||||
| 			gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>; | 			gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>; | ||||||
|  | 			interrupt-parent = <&gpio_intc>; | ||||||
|  | 			interrupts = <2 IRQ_TYPE_EDGE_BOTH>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		mic_mute { | ||||||
|  | 			label = "MicMute"; | ||||||
|  | 			linux,code = <SW_MUTE_DEVICE>; | ||||||
|  | 			linux,input-type = <EV_SW>; | ||||||
|  | 			gpios = <&gpio_ao GPIOE_2 GPIO_ACTIVE_LOW>; | ||||||
|  | 			interrupt-parent = <&gpio_intc>; | ||||||
|  | 			interrupts = <99 IRQ_TYPE_EDGE_BOTH>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		power_key { | ||||||
|  | 			label = "PowerKey"; | ||||||
|  | 			linux,code = <KEY_POWER>; | ||||||
|  | 			gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_LOW>; | ||||||
|  | 			interrupt-parent = <&gpio_intc>; | ||||||
|  | 			interrupts = <3 IRQ_TYPE_EDGE_BOTH>; | ||||||
| 		}; | 		}; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| @@ -179,6 +218,120 @@ | |||||||
| 		clock-names = "ext_clock"; | 		clock-names = "ext_clock"; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
|  | 	sound { | ||||||
|  | 		compatible = "amlogic,axg-sound-card"; | ||||||
|  | 		model = "SM1-SEI610"; | ||||||
|  | 		audio-aux-devs = <&tdmout_a>, <&tdmout_b>, | ||||||
|  | 				 <&tdmin_a>, <&tdmin_b>; | ||||||
|  | 		audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 0", | ||||||
|  | 				"TDMOUT_A IN 1", "FRDDR_B OUT 0", | ||||||
|  | 				"TDMOUT_A IN 2", "FRDDR_C OUT 0", | ||||||
|  | 				"TDM_A Playback", "TDMOUT_A OUT", | ||||||
|  | 				"TDMOUT_B IN 0", "FRDDR_A OUT 1", | ||||||
|  | 				"TDMOUT_B IN 1", "FRDDR_B OUT 1", | ||||||
|  | 				"TDMOUT_B IN 2", "FRDDR_C OUT 1", | ||||||
|  | 				"TDM_B Playback", "TDMOUT_B OUT", | ||||||
|  | 				"TODDR_A IN 4", "PDM Capture", | ||||||
|  | 				"TODDR_B IN 4", "PDM Capture", | ||||||
|  | 				"TODDR_C IN 4", "PDM Capture", | ||||||
|  | 				"TDMIN_A IN 0", "TDM_A Capture", | ||||||
|  | 				"TDMIN_A IN 3", "TDM_A Loopback", | ||||||
|  | 				"TDMIN_B IN 0", "TDM_A Capture", | ||||||
|  | 				"TDMIN_B IN 3", "TDM_A Loopback", | ||||||
|  | 				"TDMIN_A IN 1", "TDM_B Capture", | ||||||
|  | 				"TDMIN_A IN 4", "TDM_B Loopback", | ||||||
|  | 				"TDMIN_B IN 1", "TDM_B Capture", | ||||||
|  | 				"TDMIN_B IN 4", "TDM_B Loopback", | ||||||
|  | 				"TODDR_A IN 0", "TDMIN_A OUT", | ||||||
|  | 				"TODDR_B IN 0", "TDMIN_A OUT", | ||||||
|  | 				"TODDR_C IN 0", "TDMIN_A OUT", | ||||||
|  | 				"TODDR_A IN 1", "TDMIN_B OUT", | ||||||
|  | 				"TODDR_B IN 1", "TDMIN_B OUT", | ||||||
|  | 				"TODDR_C IN 1", "TDMIN_B OUT"; | ||||||
|  |  | ||||||
|  | 		assigned-clocks = <&clkc CLKID_MPLL2>, | ||||||
|  | 				  <&clkc CLKID_MPLL0>, | ||||||
|  | 				  <&clkc CLKID_MPLL1>; | ||||||
|  | 		assigned-clock-parents = <0>, <0>, <0>; | ||||||
|  | 		assigned-clock-rates = <294912000>, | ||||||
|  | 				       <270950400>, | ||||||
|  | 				       <393216000>; | ||||||
|  | 		status = "okay"; | ||||||
|  |  | ||||||
|  | 		dai-link-0 { | ||||||
|  | 			sound-dai = <&frddr_a>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		dai-link-1 { | ||||||
|  | 			sound-dai = <&frddr_b>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		dai-link-2 { | ||||||
|  | 			sound-dai = <&frddr_c>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		dai-link-3 { | ||||||
|  | 			sound-dai = <&toddr_a>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		dai-link-4 { | ||||||
|  | 			sound-dai = <&toddr_b>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		dai-link-5 { | ||||||
|  | 			sound-dai = <&toddr_c>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		/* internal speaker interface */ | ||||||
|  | 		dai-link-6 { | ||||||
|  | 			sound-dai = <&tdmif_a>; | ||||||
|  | 			dai-format = "i2s"; | ||||||
|  | 			dai-tdm-slot-tx-mask-0 = <1 1>; | ||||||
|  | 			mclk-fs = <256>; | ||||||
|  |  | ||||||
|  | 			codec-0 { | ||||||
|  | 				sound-dai = <&mono_dac>; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			codec-1 { | ||||||
|  | 				sound-dai = <&tohdmitx TOHDMITX_I2S_IN_A>; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		/* 8ch hdmi interface */ | ||||||
|  | 		dai-link-7 { | ||||||
|  | 			sound-dai = <&tdmif_b>; | ||||||
|  | 			dai-format = "i2s"; | ||||||
|  | 			dai-tdm-slot-tx-mask-0 = <1 1>; | ||||||
|  | 			dai-tdm-slot-tx-mask-1 = <1 1>; | ||||||
|  | 			dai-tdm-slot-tx-mask-2 = <1 1>; | ||||||
|  | 			dai-tdm-slot-tx-mask-3 = <1 1>; | ||||||
|  | 			mclk-fs = <256>; | ||||||
|  |  | ||||||
|  | 			codec { | ||||||
|  | 				sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		/* internal digital mics */ | ||||||
|  | 		dai-link-8 { | ||||||
|  | 			sound-dai = <&pdm>; | ||||||
|  |  | ||||||
|  | 			codec { | ||||||
|  | 				sound-dai = <&dmics>; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		/* hdmi glue */ | ||||||
|  | 		dai-link-9 { | ||||||
|  | 			sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; | ||||||
|  |  | ||||||
|  | 			codec { | ||||||
|  | 				sound-dai = <&hdmi_tx>; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
| 	wifi32k: wifi32k { | 	wifi32k: wifi32k { | ||||||
| 		compatible = "pwm-clock"; | 		compatible = "pwm-clock"; | ||||||
| 		#clock-cells = <0>; | 		#clock-cells = <0>; | ||||||
| @@ -187,6 +340,10 @@ | |||||||
| 	}; | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | &arb { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
| &cec_AO { | &cec_AO { | ||||||
| 	pinctrl-0 = <&cec_ao_a_h_pins>; | 	pinctrl-0 = <&cec_ao_a_h_pins>; | ||||||
| 	pinctrl-names = "default"; | 	pinctrl-names = "default"; | ||||||
| @@ -201,6 +358,10 @@ | |||||||
| 	hdmi-phandle = <&hdmi_tx>; | 	hdmi-phandle = <&hdmi_tx>; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | &clkc_audio { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
| &cpu0 { | &cpu0 { | ||||||
| 	cpu-supply = <&vddcpu>; | 	cpu-supply = <&vddcpu>; | ||||||
| 	operating-points-v2 = <&cpu_opp_table>; | 	operating-points-v2 = <&cpu_opp_table>; | ||||||
| @@ -235,6 +396,18 @@ | |||||||
| 	phy-mode = "rmii"; | 	phy-mode = "rmii"; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | &frddr_a { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &frddr_b { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &frddr_c { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
| &hdmi_tx { | &hdmi_tx { | ||||||
| 	status = "okay"; | 	status = "okay"; | ||||||
| 	pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; | 	pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; | ||||||
| @@ -259,6 +432,12 @@ | |||||||
| 	pinctrl-names = "default"; | 	pinctrl-names = "default"; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | &pdm { | ||||||
|  | 	pinctrl-0 = <&pdm_din0_z_pins>, <&pdm_dclk_z_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
| &pwm_AO_ab { | &pwm_AO_ab { | ||||||
| 	status = "okay"; | 	status = "okay"; | ||||||
| 	pinctrl-0 = <&pwm_ao_a_pins>; | 	pinctrl-0 = <&pwm_ao_a_pins>; | ||||||
| @@ -305,6 +484,9 @@ | |||||||
| 	non-removable; | 	non-removable; | ||||||
| 	disable-wp; | 	disable-wp; | ||||||
|  |  | ||||||
|  | 	/* WiFi firmware requires power to be kept while in suspend */ | ||||||
|  | 	keep-power-in-suspend; | ||||||
|  |  | ||||||
| 	mmc-pwrseq = <&sdio_pwrseq>; | 	mmc-pwrseq = <&sdio_pwrseq>; | ||||||
|  |  | ||||||
| 	vmmc-supply = <&vddao_3v3>; | 	vmmc-supply = <&vddao_3v3>; | ||||||
| @@ -353,6 +535,54 @@ | |||||||
| 	vqmmc-supply = <&emmc_1v8>; | 	vqmmc-supply = <&emmc_1v8>; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | &tdmif_a { | ||||||
|  | 	pinctrl-0 = <&tdm_a_dout0_pins>, <&tdm_a_fs_pins>, <&tdm_a_sclk_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	assigned-clocks = <&clkc_audio AUD_CLKID_TDM_SCLK_PAD0>, | ||||||
|  | 			  <&clkc_audio AUD_CLKID_TDM_LRCLK_PAD0>; | ||||||
|  | 	assigned-clock-parents = <&clkc_audio AUD_CLKID_MST_A_SCLK>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_MST_A_LRCLK>; | ||||||
|  | 	assigned-clock-rates = <0>, <0>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &tdmif_b { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &tdmin_a { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &tdmin_b { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &tdmout_a { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &tdmout_b { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &toddr_a { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &toddr_b { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &toddr_c { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &tohdmitx { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
| &uart_A { | &uart_A { | ||||||
| 	status = "okay"; | 	status = "okay"; | ||||||
| 	pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; | 	pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; | ||||||
| @@ -361,6 +591,8 @@ | |||||||
|  |  | ||||||
| 	bluetooth { | 	bluetooth { | ||||||
| 		compatible = "brcm,bcm43438-bt"; | 		compatible = "brcm,bcm43438-bt"; | ||||||
|  | 		interrupt-parent = <&gpio_intc>; | ||||||
|  | 		interrupts = <95 IRQ_TYPE_LEVEL_HIGH>; | ||||||
| 		shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; | 		shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; | ||||||
| 		max-speed = <2000000>; | 		max-speed = <2000000>; | ||||||
| 		clocks = <&wifi32k>; | 		clocks = <&wifi32k>; | ||||||
|   | |||||||
| @@ -5,11 +5,47 @@ | |||||||
|  */ |  */ | ||||||
|  |  | ||||||
| #include "meson-g12-common.dtsi" | #include "meson-g12-common.dtsi" | ||||||
|  | #include <dt-bindings/clock/axg-audio-clkc.h> | ||||||
| #include <dt-bindings/power/meson-sm1-power.h> | #include <dt-bindings/power/meson-sm1-power.h> | ||||||
|  | #include <dt-bindings/reset/amlogic,meson-axg-audio-arb.h> | ||||||
|  | #include <dt-bindings/reset/amlogic,meson-g12a-audio-reset.h> | ||||||
|  |  | ||||||
| / { | / { | ||||||
| 	compatible = "amlogic,sm1"; | 	compatible = "amlogic,sm1"; | ||||||
|  |  | ||||||
|  | 	tdmif_a: audio-controller-0 { | ||||||
|  | 		compatible = "amlogic,axg-tdm-iface"; | ||||||
|  | 		#sound-dai-cells = <0>; | ||||||
|  | 		sound-name-prefix = "TDM_A"; | ||||||
|  | 		clocks = <&clkc_audio AUD_CLKID_MST_A_MCLK>, | ||||||
|  | 			 <&clkc_audio AUD_CLKID_MST_A_SCLK>, | ||||||
|  | 			 <&clkc_audio AUD_CLKID_MST_A_LRCLK>; | ||||||
|  | 		clock-names = "mclk", "sclk", "lrclk"; | ||||||
|  | 		status = "disabled"; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	tdmif_b: audio-controller-1 { | ||||||
|  | 		compatible = "amlogic,axg-tdm-iface"; | ||||||
|  | 		#sound-dai-cells = <0>; | ||||||
|  | 		sound-name-prefix = "TDM_B"; | ||||||
|  | 		clocks = <&clkc_audio AUD_CLKID_MST_B_MCLK>, | ||||||
|  | 			 <&clkc_audio AUD_CLKID_MST_B_SCLK>, | ||||||
|  | 			 <&clkc_audio AUD_CLKID_MST_B_LRCLK>; | ||||||
|  | 		clock-names = "mclk", "sclk", "lrclk"; | ||||||
|  | 		status = "disabled"; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	tdmif_c: audio-controller-2 { | ||||||
|  | 		compatible = "amlogic,axg-tdm-iface"; | ||||||
|  | 		#sound-dai-cells = <0>; | ||||||
|  | 		sound-name-prefix = "TDM_C"; | ||||||
|  | 		clocks = <&clkc_audio AUD_CLKID_MST_C_MCLK>, | ||||||
|  | 			 <&clkc_audio AUD_CLKID_MST_C_SCLK>, | ||||||
|  | 			 <&clkc_audio AUD_CLKID_MST_C_LRCLK>; | ||||||
|  | 		clock-names = "mclk", "sclk", "lrclk"; | ||||||
|  | 		status = "disabled"; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
| 	cpus { | 	cpus { | ||||||
| 		#address-cells = <0x2>; | 		#address-cells = <0x2>; | ||||||
| 		#size-cells = <0x0>; | 		#size-cells = <0x0>; | ||||||
| @@ -117,6 +153,305 @@ | |||||||
| 	}; | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | &apb { | ||||||
|  | 	audio: bus@60000 { | ||||||
|  | 		compatible = "simple-bus"; | ||||||
|  | 		reg = <0x0 0x60000 0x0 0x1000>; | ||||||
|  | 		#address-cells = <2>; | ||||||
|  | 		#size-cells = <2>; | ||||||
|  | 		ranges = <0x0 0x0 0x0 0x60000 0x0 0x1000>; | ||||||
|  |  | ||||||
|  | 		clkc_audio: clock-controller@0 { | ||||||
|  | 			status = "disabled"; | ||||||
|  | 			compatible = "amlogic,sm1-audio-clkc"; | ||||||
|  | 			reg = <0x0 0x0 0x0 0xb4>; | ||||||
|  | 			#clock-cells = <1>; | ||||||
|  | 			#reset-cells = <1>; | ||||||
|  |  | ||||||
|  | 			clocks = <&clkc CLKID_AUDIO>, | ||||||
|  | 				 <&clkc CLKID_MPLL0>, | ||||||
|  | 				 <&clkc CLKID_MPLL1>, | ||||||
|  | 				 <&clkc CLKID_MPLL2>, | ||||||
|  | 				 <&clkc CLKID_MPLL3>, | ||||||
|  | 				 <&clkc CLKID_HIFI_PLL>, | ||||||
|  | 				 <&clkc CLKID_FCLK_DIV3>, | ||||||
|  | 				 <&clkc CLKID_FCLK_DIV4>, | ||||||
|  | 				 <&clkc CLKID_FCLK_DIV5>; | ||||||
|  | 			clock-names = "pclk", | ||||||
|  | 				      "mst_in0", | ||||||
|  | 				      "mst_in1", | ||||||
|  | 				      "mst_in2", | ||||||
|  | 				      "mst_in3", | ||||||
|  | 				      "mst_in4", | ||||||
|  | 				      "mst_in5", | ||||||
|  | 				      "mst_in6", | ||||||
|  | 				      "mst_in7"; | ||||||
|  |  | ||||||
|  | 			resets = <&reset RESET_AUDIO>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		toddr_a: audio-controller@100 { | ||||||
|  | 			compatible = "amlogic,sm1-toddr", | ||||||
|  | 				     "amlogic,axg-toddr"; | ||||||
|  | 			reg = <0x0 0x100 0x0 0x2c>; | ||||||
|  | 			#sound-dai-cells = <0>; | ||||||
|  | 			sound-name-prefix = "TODDR_A"; | ||||||
|  | 			interrupts = <GIC_SPI 148 IRQ_TYPE_EDGE_RISING>; | ||||||
|  | 			clocks = <&clkc_audio AUD_CLKID_TODDR_A>; | ||||||
|  | 			resets = <&arb AXG_ARB_TODDR_A>, | ||||||
|  | 				 <&clkc_audio AUD_RESET_TODDR_A>; | ||||||
|  | 			reset-names = "arb", "rst"; | ||||||
|  | 			amlogic,fifo-depth = <8192>; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		toddr_b: audio-controller@140 { | ||||||
|  | 			compatible = "amlogic,sm1-toddr", | ||||||
|  | 				     "amlogic,axg-toddr"; | ||||||
|  | 			reg = <0x0 0x140 0x0 0x2c>; | ||||||
|  | 			#sound-dai-cells = <0>; | ||||||
|  | 			sound-name-prefix = "TODDR_B"; | ||||||
|  | 			interrupts = <GIC_SPI 149 IRQ_TYPE_EDGE_RISING>; | ||||||
|  | 			clocks = <&clkc_audio AUD_CLKID_TODDR_B>; | ||||||
|  | 			resets = <&arb AXG_ARB_TODDR_B>, | ||||||
|  | 				 <&clkc_audio AUD_RESET_TODDR_B>; | ||||||
|  | 			reset-names = "arb", "rst"; | ||||||
|  | 			amlogic,fifo-depth = <256>; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		toddr_c: audio-controller@180 { | ||||||
|  | 			compatible = "amlogic,sm1-toddr", | ||||||
|  | 				     "amlogic,axg-toddr"; | ||||||
|  | 			reg = <0x0 0x180 0x0 0x2c>; | ||||||
|  | 			#sound-dai-cells = <0>; | ||||||
|  | 			sound-name-prefix = "TODDR_C"; | ||||||
|  | 			interrupts = <GIC_SPI 150 IRQ_TYPE_EDGE_RISING>; | ||||||
|  | 			clocks = <&clkc_audio AUD_CLKID_TODDR_C>; | ||||||
|  | 			resets = <&arb AXG_ARB_TODDR_C>, | ||||||
|  | 				 <&clkc_audio AUD_RESET_TODDR_C>; | ||||||
|  | 			reset-names = "arb", "rst"; | ||||||
|  | 			amlogic,fifo-depth = <256>; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		frddr_a: audio-controller@1c0 { | ||||||
|  | 			compatible = "amlogic,sm1-frddr", | ||||||
|  | 				     "amlogic,axg-frddr"; | ||||||
|  | 			reg = <0x0 0x1c0 0x0 0x2c>; | ||||||
|  | 			#sound-dai-cells = <0>; | ||||||
|  | 			sound-name-prefix = "FRDDR_A"; | ||||||
|  | 			interrupts = <GIC_SPI 152 IRQ_TYPE_EDGE_RISING>; | ||||||
|  | 			clocks = <&clkc_audio AUD_CLKID_FRDDR_A>; | ||||||
|  | 			resets = <&arb AXG_ARB_FRDDR_A>, | ||||||
|  | 				 <&clkc_audio AUD_RESET_FRDDR_A>; | ||||||
|  | 			reset-names = "arb", "rst"; | ||||||
|  | 			amlogic,fifo-depth = <512>; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		frddr_b: audio-controller@200 { | ||||||
|  | 			compatible = "amlogic,sm1-frddr", | ||||||
|  | 				     "amlogic,axg-frddr"; | ||||||
|  | 			reg = <0x0 0x200 0x0 0x2c>; | ||||||
|  | 			#sound-dai-cells = <0>; | ||||||
|  | 			sound-name-prefix = "FRDDR_B"; | ||||||
|  | 			interrupts = <GIC_SPI 153 IRQ_TYPE_EDGE_RISING>; | ||||||
|  | 			clocks = <&clkc_audio AUD_CLKID_FRDDR_B>; | ||||||
|  | 			resets = <&arb AXG_ARB_FRDDR_B>, | ||||||
|  | 				 <&clkc_audio AUD_RESET_FRDDR_B>; | ||||||
|  | 			reset-names = "arb", "rst"; | ||||||
|  | 			amlogic,fifo-depth = <256>; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		frddr_c: audio-controller@240 { | ||||||
|  | 			compatible = "amlogic,sm1-frddr", | ||||||
|  | 				     "amlogic,axg-frddr"; | ||||||
|  | 			reg = <0x0 0x240 0x0 0x2c>; | ||||||
|  | 			#sound-dai-cells = <0>; | ||||||
|  | 			sound-name-prefix = "FRDDR_C"; | ||||||
|  | 			interrupts = <GIC_SPI 154 IRQ_TYPE_EDGE_RISING>; | ||||||
|  | 			clocks = <&clkc_audio AUD_CLKID_FRDDR_C>; | ||||||
|  | 			resets = <&arb AXG_ARB_FRDDR_C>, | ||||||
|  | 				 <&clkc_audio AUD_RESET_FRDDR_C>; | ||||||
|  | 			reset-names = "arb", "rst"; | ||||||
|  | 			amlogic,fifo-depth = <256>; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		arb: reset-controller@280 { | ||||||
|  | 			status = "disabled"; | ||||||
|  | 			compatible = "amlogic,meson-sm1-audio-arb"; | ||||||
|  | 			reg = <0x0 0x280 0x0 0x4>; | ||||||
|  | 			#reset-cells = <1>; | ||||||
|  | 			clocks = <&clkc_audio AUD_CLKID_DDR_ARB>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tdmin_a: audio-controller@300 { | ||||||
|  | 			compatible = "amlogic,sm1-tdmin", | ||||||
|  | 				     "amlogic,axg-tdmin"; | ||||||
|  | 			reg = <0x0 0x300 0x0 0x40>; | ||||||
|  | 			sound-name-prefix = "TDMIN_A"; | ||||||
|  | 			resets = <&clkc_audio AUD_RESET_TDMIN_A>; | ||||||
|  | 			clocks = <&clkc_audio AUD_CLKID_TDMIN_A>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMIN_A_SCLK>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMIN_A_SCLK_SEL>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMIN_A_LRCLK>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMIN_A_LRCLK>; | ||||||
|  | 			clock-names = "pclk", "sclk", "sclk_sel", | ||||||
|  | 				      "lrclk", "lrclk_sel"; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tdmin_b: audio-controller@340 { | ||||||
|  | 			compatible = "amlogic,sm1-tdmin", | ||||||
|  | 				     "amlogic,axg-tdmin"; | ||||||
|  | 			reg = <0x0 0x340 0x0 0x40>; | ||||||
|  | 			sound-name-prefix = "TDMIN_B"; | ||||||
|  | 			resets = <&clkc_audio AUD_RESET_TDMIN_B>; | ||||||
|  | 			clocks = <&clkc_audio AUD_CLKID_TDMIN_B>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMIN_B_SCLK>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMIN_B_SCLK_SEL>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMIN_B_LRCLK>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMIN_B_LRCLK>; | ||||||
|  | 			clock-names = "pclk", "sclk", "sclk_sel", | ||||||
|  | 				      "lrclk", "lrclk_sel"; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tdmin_c: audio-controller@380 { | ||||||
|  | 			compatible = "amlogic,sm1-tdmin", | ||||||
|  | 				     "amlogic,axg-tdmin"; | ||||||
|  | 			reg = <0x0 0x380 0x0 0x40>; | ||||||
|  | 			sound-name-prefix = "TDMIN_C"; | ||||||
|  | 			resets = <&clkc_audio AUD_RESET_TDMIN_C>; | ||||||
|  | 			clocks = <&clkc_audio AUD_CLKID_TDMIN_C>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMIN_C_SCLK>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMIN_C_SCLK_SEL>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMIN_C_LRCLK>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMIN_C_LRCLK>; | ||||||
|  | 			clock-names = "pclk", "sclk", "sclk_sel", | ||||||
|  | 				      "lrclk", "lrclk_sel"; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tdmin_lb: audio-controller@3c0 { | ||||||
|  | 			compatible = "amlogic,sm1-tdmin", | ||||||
|  | 				     "amlogic,axg-tdmin"; | ||||||
|  | 			reg = <0x0 0x3c0 0x0 0x40>; | ||||||
|  | 			sound-name-prefix = "TDMIN_LB"; | ||||||
|  | 			resets = <&clkc_audio AUD_RESET_TDMIN_LB>; | ||||||
|  | 			clocks = <&clkc_audio AUD_CLKID_TDMIN_LB>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMIN_LB_SCLK>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMIN_LB_SCLK_SEL>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMIN_LB_LRCLK>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMIN_LB_LRCLK>; | ||||||
|  | 			clock-names = "pclk", "sclk", "sclk_sel", | ||||||
|  | 				      "lrclk", "lrclk_sel"; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tdmout_a: audio-controller@500 { | ||||||
|  | 			compatible = "amlogic,sm1-tdmout"; | ||||||
|  | 			reg = <0x0 0x500 0x0 0x40>; | ||||||
|  | 			sound-name-prefix = "TDMOUT_A"; | ||||||
|  | 			resets = <&clkc_audio AUD_RESET_TDMOUT_A>; | ||||||
|  | 			clocks = <&clkc_audio AUD_CLKID_TDMOUT_A>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK_SEL>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>; | ||||||
|  | 			clock-names = "pclk", "sclk", "sclk_sel", | ||||||
|  | 				      "lrclk", "lrclk_sel"; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tdmout_b: audio-controller@540 { | ||||||
|  | 			compatible = "amlogic,sm1-tdmout"; | ||||||
|  | 			reg = <0x0 0x540 0x0 0x40>; | ||||||
|  | 			sound-name-prefix = "TDMOUT_B"; | ||||||
|  | 			resets = <&clkc_audio AUD_RESET_TDMOUT_B>; | ||||||
|  | 			clocks = <&clkc_audio AUD_CLKID_TDMOUT_B>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMOUT_B_SCLK>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMOUT_B_SCLK_SEL>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMOUT_B_LRCLK>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMOUT_B_LRCLK>; | ||||||
|  | 			clock-names = "pclk", "sclk", "sclk_sel", | ||||||
|  | 				      "lrclk", "lrclk_sel"; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tdmout_c: audio-controller@580 { | ||||||
|  | 			compatible = "amlogic,sm1-tdmout"; | ||||||
|  | 			reg = <0x0 0x580 0x0 0x40>; | ||||||
|  | 			sound-name-prefix = "TDMOUT_C"; | ||||||
|  | 			resets = <&clkc_audio AUD_RESET_TDMOUT_C>; | ||||||
|  | 			clocks = <&clkc_audio AUD_CLKID_TDMOUT_C>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMOUT_C_SCLK>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMOUT_C_SCLK_SEL>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMOUT_C_LRCLK>, | ||||||
|  | 				 <&clkc_audio AUD_CLKID_TDMOUT_C_LRCLK>; | ||||||
|  | 			clock-names = "pclk", "sclk", "sclk_sel", | ||||||
|  | 				      "lrclk", "lrclk_sel"; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tohdmitx: audio-controller@744 { | ||||||
|  | 			compatible = "amlogic,sm1-tohdmitx", | ||||||
|  | 				     "amlogic,g12a-tohdmitx"; | ||||||
|  | 			reg = <0x0 0x744 0x0 0x4>; | ||||||
|  | 			#sound-dai-cells = <1>; | ||||||
|  | 			sound-name-prefix = "TOHDMITX"; | ||||||
|  | 			resets = <&clkc_audio AUD_RESET_TOHDMITX>; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		toddr_d: audio-controller@840 { | ||||||
|  | 			compatible = "amlogic,sm1-toddr", | ||||||
|  | 				     "amlogic,axg-toddr"; | ||||||
|  | 			reg = <0x0 0x840 0x0 0x2c>; | ||||||
|  | 			#sound-dai-cells = <0>; | ||||||
|  | 			sound-name-prefix = "TODDR_D"; | ||||||
|  | 			interrupts = <GIC_SPI 49 IRQ_TYPE_EDGE_RISING>; | ||||||
|  | 			clocks = <&clkc_audio AUD_CLKID_TODDR_D>; | ||||||
|  | 			resets = <&arb AXG_ARB_TODDR_D>, | ||||||
|  | 				 <&clkc_audio AUD_RESET_TODDR_D>; | ||||||
|  | 			reset-names = "arb", "rst"; | ||||||
|  | 			amlogic,fifo-depth = <256>; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		frddr_d: audio-controller@880 { | ||||||
|  | 			 compatible = "amlogic,sm1-frddr", | ||||||
|  | 				      "amlogic,axg-frddr"; | ||||||
|  | 			reg = <0x0 0x880 0x0 0x2c>; | ||||||
|  | 			#sound-dai-cells = <0>; | ||||||
|  | 			sound-name-prefix = "FRDDR_D"; | ||||||
|  | 			interrupts = <GIC_SPI 50 IRQ_TYPE_EDGE_RISING>; | ||||||
|  | 			clocks = <&clkc_audio AUD_CLKID_FRDDR_D>; | ||||||
|  | 			resets = <&arb AXG_ARB_FRDDR_D>, | ||||||
|  | 				 <&clkc_audio AUD_RESET_FRDDR_D>; | ||||||
|  | 			reset-names = "arb", "rst"; | ||||||
|  | 			amlogic,fifo-depth = <256>; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	pdm: audio-controller@61000 { | ||||||
|  | 		compatible = "amlogic,sm1-pdm", | ||||||
|  | 			     "amlogic,axg-pdm"; | ||||||
|  | 		reg = <0x0 0x61000 0x0 0x34>; | ||||||
|  | 		#sound-dai-cells = <0>; | ||||||
|  | 		sound-name-prefix = "PDM"; | ||||||
|  | 		clocks = <&clkc_audio AUD_CLKID_PDM>, | ||||||
|  | 			 <&clkc_audio AUD_CLKID_PDM_DCLK>, | ||||||
|  | 			 <&clkc_audio AUD_CLKID_PDM_SYSCLK>; | ||||||
|  | 		clock-names = "pclk", "dclk", "sysclk"; | ||||||
|  | 		status = "disabled"; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
| &cecb_AO { | &cecb_AO { | ||||||
| 	compatible = "amlogic,meson-sm1-ao-cec"; | 	compatible = "amlogic,meson-sm1-ao-cec"; | ||||||
| }; | }; | ||||||
| @@ -134,10 +469,31 @@ | |||||||
| 	power-domains = <&pwrc PWRC_SM1_ETH_ID>; | 	power-domains = <&pwrc PWRC_SM1_ETH_ID>; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | &gpio_intc { | ||||||
|  | 	compatible = "amlogic,meson-sm1-gpio-intc", | ||||||
|  | 		     "amlogic,meson-gpio-intc"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &pcie { | ||||||
|  | 	power-domains = <&pwrc PWRC_SM1_PCIE_ID>; | ||||||
|  | }; | ||||||
|  |  | ||||||
| &pwrc { | &pwrc { | ||||||
| 	compatible = "amlogic,meson-sm1-pwrc"; | 	compatible = "amlogic,meson-sm1-pwrc"; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | &simplefb_cvbs { | ||||||
|  | 	power-domains = <&pwrc PWRC_SM1_VPU_ID>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &simplefb_hdmi { | ||||||
|  | 	power-domains = <&pwrc PWRC_SM1_VPU_ID>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &vdec { | ||||||
|  | 	compatible = "amlogic,sm1-vdec"; | ||||||
|  | }; | ||||||
|  |  | ||||||
| &vpu { | &vpu { | ||||||
| 	power-domains = <&pwrc PWRC_SM1_VPU_ID>; | 	power-domains = <&pwrc PWRC_SM1_VPU_ID>; | ||||||
| }; | }; | ||||||
|   | |||||||
| @@ -133,6 +133,7 @@ | |||||||
| 				DDR_MR3 | 				DDR_MR3 | ||||||
| 			>; | 			>; | ||||||
|  |  | ||||||
|  | #ifdef DDR_PHY_CAL_SKIP | ||||||
| 			st,phy-cal = < | 			st,phy-cal = < | ||||||
| 				DDR_DX0DLLCR | 				DDR_DX0DLLCR | ||||||
| 				DDR_DX0DQTR | 				DDR_DX0DQTR | ||||||
| @@ -148,6 +149,8 @@ | |||||||
| 				DDR_DX3DQSTR | 				DDR_DX3DQSTR | ||||||
| 			>; | 			>; | ||||||
|  |  | ||||||
|  | #endif | ||||||
|  |  | ||||||
| 			status = "okay"; | 			status = "okay"; | ||||||
| 		}; | 		}; | ||||||
| 	}; | 	}; | ||||||
|   | |||||||
							
								
								
									
										1114
									
								
								arch/arm/dts/stm32mp15-pinctrl.dtsi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1114
									
								
								arch/arm/dts/stm32mp15-pinctrl.dtsi
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -20,12 +20,6 @@ | |||||||
| 			device_type = "cpu"; | 			device_type = "cpu"; | ||||||
| 			reg = <0>; | 			reg = <0>; | ||||||
| 		}; | 		}; | ||||||
| 
 |  | ||||||
| 		cpu1: cpu@1 { |  | ||||||
| 			compatible = "arm,cortex-a7"; |  | ||||||
| 			device_type = "cpu"; |  | ||||||
| 			reg = <1>; |  | ||||||
| 		}; |  | ||||||
| 	}; | 	}; | ||||||
| 
 | 
 | ||||||
| 	psci { | 	psci { | ||||||
| @@ -155,6 +149,11 @@ | |||||||
| 				reg = <1>; | 				reg = <1>; | ||||||
| 				status = "disabled"; | 				status = "disabled"; | ||||||
| 			}; | 			}; | ||||||
|  | 
 | ||||||
|  | 			counter { | ||||||
|  | 				compatible = "st,stm32-timer-counter"; | ||||||
|  | 				status = "disabled"; | ||||||
|  | 			}; | ||||||
| 		}; | 		}; | ||||||
| 
 | 
 | ||||||
| 		timers3: timer@40001000 { | 		timers3: timer@40001000 { | ||||||
| @@ -184,6 +183,11 @@ | |||||||
| 				reg = <2>; | 				reg = <2>; | ||||||
| 				status = "disabled"; | 				status = "disabled"; | ||||||
| 			}; | 			}; | ||||||
|  | 
 | ||||||
|  | 			counter { | ||||||
|  | 				compatible = "st,stm32-timer-counter"; | ||||||
|  | 				status = "disabled"; | ||||||
|  | 			}; | ||||||
| 		}; | 		}; | ||||||
| 
 | 
 | ||||||
| 		timers4: timer@40002000 { | 		timers4: timer@40002000 { | ||||||
| @@ -211,6 +215,11 @@ | |||||||
| 				reg = <3>; | 				reg = <3>; | ||||||
| 				status = "disabled"; | 				status = "disabled"; | ||||||
| 			}; | 			}; | ||||||
|  | 
 | ||||||
|  | 			counter { | ||||||
|  | 				compatible = "st,stm32-timer-counter"; | ||||||
|  | 				status = "disabled"; | ||||||
|  | 			}; | ||||||
| 		}; | 		}; | ||||||
| 
 | 
 | ||||||
| 		timers5: timer@40003000 { | 		timers5: timer@40003000 { | ||||||
| @@ -240,6 +249,11 @@ | |||||||
| 				reg = <4>; | 				reg = <4>; | ||||||
| 				status = "disabled"; | 				status = "disabled"; | ||||||
| 			}; | 			}; | ||||||
|  | 
 | ||||||
|  | 			counter { | ||||||
|  | 				compatible = "st,stm32-timer-counter"; | ||||||
|  | 				status = "disabled"; | ||||||
|  | 			}; | ||||||
| 		}; | 		}; | ||||||
| 
 | 
 | ||||||
| 		timers6: timer@40004000 { | 		timers6: timer@40004000 { | ||||||
| @@ -596,6 +610,11 @@ | |||||||
| 				reg = <0>; | 				reg = <0>; | ||||||
| 				status = "disabled"; | 				status = "disabled"; | ||||||
| 			}; | 			}; | ||||||
|  | 
 | ||||||
|  | 			counter { | ||||||
|  | 				compatible = "st,stm32-timer-counter"; | ||||||
|  | 				status = "disabled"; | ||||||
|  | 			}; | ||||||
| 		}; | 		}; | ||||||
| 
 | 
 | ||||||
| 		timers8: timer@44001000 { | 		timers8: timer@44001000 { | ||||||
| @@ -627,6 +646,11 @@ | |||||||
| 				reg = <7>; | 				reg = <7>; | ||||||
| 				status = "disabled"; | 				status = "disabled"; | ||||||
| 			}; | 			}; | ||||||
|  | 
 | ||||||
|  | 			counter { | ||||||
|  | 				compatible = "st,stm32-timer-counter"; | ||||||
|  | 				status = "disabled"; | ||||||
|  | 			}; | ||||||
| 		}; | 		}; | ||||||
| 
 | 
 | ||||||
| 		usart6: serial@44003000 { | 		usart6: serial@44003000 { | ||||||
| @@ -930,33 +954,7 @@ | |||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
| 
 | 
 | ||||||
| 		m_can1: can@4400e000 { | 		dma1: dma-controller@48000000 { | ||||||
| 			compatible = "bosch,m_can"; |  | ||||||
| 			reg = <0x4400e000 0x400>, <0x44011000 0x1400>; |  | ||||||
| 			reg-names = "m_can", "message_ram"; |  | ||||||
| 			interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>, |  | ||||||
| 				     <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; |  | ||||||
| 			interrupt-names = "int0", "int1"; |  | ||||||
| 			clocks = <&rcc CK_HSE>, <&rcc FDCAN_K>; |  | ||||||
| 			clock-names = "hclk", "cclk"; |  | ||||||
| 			bosch,mram-cfg = <0x0 0 0 32 0 0 2 2>; |  | ||||||
| 			status = "disabled"; |  | ||||||
| 		}; |  | ||||||
| 
 |  | ||||||
| 		m_can2: can@4400f000 { |  | ||||||
| 			compatible = "bosch,m_can"; |  | ||||||
| 			reg = <0x4400f000 0x400>, <0x44011000 0x2800>; |  | ||||||
| 			reg-names = "m_can", "message_ram"; |  | ||||||
| 			interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>, |  | ||||||
| 				     <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>; |  | ||||||
| 			interrupt-names = "int0", "int1"; |  | ||||||
| 			clocks = <&rcc CK_HSE>, <&rcc FDCAN_K>; |  | ||||||
| 			clock-names = "hclk", "cclk"; |  | ||||||
| 			bosch,mram-cfg = <0x1400 0 0 32 0 0 2 2>; |  | ||||||
| 			status = "disabled"; |  | ||||||
| 		}; |  | ||||||
| 
 |  | ||||||
| 		dma1: dma@48000000 { |  | ||||||
| 			compatible = "st,stm32-dma"; | 			compatible = "st,stm32-dma"; | ||||||
| 			reg = <0x48000000 0x400>; | 			reg = <0x48000000 0x400>; | ||||||
| 			interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>, | 			interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>, | ||||||
| @@ -973,7 +971,7 @@ | |||||||
| 			dma-requests = <8>; | 			dma-requests = <8>; | ||||||
| 		}; | 		}; | ||||||
| 
 | 
 | ||||||
| 		dma2: dma@48001000 { | 		dma2: dma-controller@48001000 { | ||||||
| 			compatible = "st,stm32-dma"; | 			compatible = "st,stm32-dma"; | ||||||
| 			reg = <0x48001000 0x400>; | 			reg = <0x48001000 0x400>; | ||||||
| 			interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>, | 			interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>, | ||||||
| @@ -1041,8 +1039,8 @@ | |||||||
| 			compatible = "arm,pl18x", "arm,primecell"; | 			compatible = "arm,pl18x", "arm,primecell"; | ||||||
| 			arm,primecell-periphid = <0x10153180>; | 			arm,primecell-periphid = <0x10153180>; | ||||||
| 			reg = <0x48004000 0x400>; | 			reg = <0x48004000 0x400>; | ||||||
| 			reg-names = "sdmmc"; | 			interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>; | ||||||
| 			interrupts = <GIC_SPI 137 IRQ_TYPE_NONE>; | 			interrupt-names = "cmd_irq"; | ||||||
| 			clocks = <&rcc SDMMC3_K>; | 			clocks = <&rcc SDMMC3_K>; | ||||||
| 			clock-names = "apb_pclk"; | 			clock-names = "apb_pclk"; | ||||||
| 			resets = <&rcc SDMMC3_R>; | 			resets = <&rcc SDMMC3_R>; | ||||||
| @@ -1273,15 +1271,6 @@ | |||||||
| 			status = "disabled"; | 			status = "disabled"; | ||||||
| 		}; | 		}; | ||||||
| 
 | 
 | ||||||
| 		cryp1: cryp@54001000 { |  | ||||||
| 			compatible = "st,stm32mp1-cryp"; |  | ||||||
| 			reg = <0x54001000 0x400>; |  | ||||||
| 			interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; |  | ||||||
| 			clocks = <&rcc CRYP1>; |  | ||||||
| 			resets = <&rcc CRYP1_R>; |  | ||||||
| 			status = "disabled"; |  | ||||||
| 		}; |  | ||||||
| 
 |  | ||||||
| 		hash1: hash@54002000 { | 		hash1: hash@54002000 { | ||||||
| 			compatible = "st,stm32f756-hash"; | 			compatible = "st,stm32f756-hash"; | ||||||
| 			reg = <0x54002000 0x400>; | 			reg = <0x54002000 0x400>; | ||||||
| @@ -1302,7 +1291,7 @@ | |||||||
| 			status = "disabled"; | 			status = "disabled"; | ||||||
| 		}; | 		}; | ||||||
| 
 | 
 | ||||||
| 		mdma1: dma@58000000 { | 		mdma1: dma-controller@58000000 { | ||||||
| 			compatible = "st,stm32h7-mdma"; | 			compatible = "st,stm32h7-mdma"; | ||||||
| 			reg = <0x58000000 0x1000>; | 			reg = <0x58000000 0x1000>; | ||||||
| 			interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>; | 			interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>; | ||||||
| @@ -1349,20 +1338,22 @@ | |||||||
| 			arm,primecell-periphid = <0x10153180>; | 			arm,primecell-periphid = <0x10153180>; | ||||||
| 			reg = <0x58005000 0x1000>; | 			reg = <0x58005000 0x1000>; | ||||||
| 			interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>; | 			interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>; | ||||||
| 			interrupt-names	= "cmd_irq"; | 			interrupt-names = "cmd_irq"; | ||||||
| 			clocks = <&rcc SDMMC1_K>; | 			clocks = <&rcc SDMMC1_K>; | ||||||
| 			clock-names = "apb_pclk"; | 			clock-names = "apb_pclk"; | ||||||
| 			resets = <&rcc SDMMC1_R>; | 			resets = <&rcc SDMMC1_R>; | ||||||
| 			cap-sd-highspeed; | 			cap-sd-highspeed; | ||||||
| 			cap-mmc-highspeed; | 			cap-mmc-highspeed; | ||||||
| 			max-frequency = <120000000>; | 			max-frequency = <120000000>; | ||||||
|  | 			status = "disabled"; | ||||||
| 		}; | 		}; | ||||||
| 
 | 
 | ||||||
| 		sdmmc2: sdmmc@58007000 { | 		sdmmc2: sdmmc@58007000 { | ||||||
| 			compatible = "arm,pl18x", "arm,primecell"; | 			compatible = "arm,pl18x", "arm,primecell"; | ||||||
| 			arm,primecell-periphid = <0x10153180>; | 			arm,primecell-periphid = <0x10153180>; | ||||||
| 			reg = <0x58007000 0x1000>; | 			reg = <0x58007000 0x1000>; | ||||||
| 			interrupts = <GIC_SPI 124 IRQ_TYPE_NONE>; | 			interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>; | ||||||
|  | 			interrupt-names = "cmd_irq"; | ||||||
| 			clocks = <&rcc SDMMC2_K>; | 			clocks = <&rcc SDMMC2_K>; | ||||||
| 			clock-names = "apb_pclk"; | 			clock-names = "apb_pclk"; | ||||||
| 			resets = <&rcc SDMMC2_R>; | 			resets = <&rcc SDMMC2_R>; | ||||||
| @@ -1406,6 +1397,7 @@ | |||||||
| 			st,syscon = <&syscfg 0x4>; | 			st,syscon = <&syscfg 0x4>; | ||||||
| 			snps,mixed-burst; | 			snps,mixed-burst; | ||||||
| 			snps,pbl = <2>; | 			snps,pbl = <2>; | ||||||
|  | 			snps,en-tx-lpi-clockgating; | ||||||
| 			snps,axi-config = <&stmmac_axi_config_0>; | 			snps,axi-config = <&stmmac_axi_config_0>; | ||||||
| 			snps,tso; | 			snps,tso; | ||||||
| 			status = "disabled"; | 			status = "disabled"; | ||||||
| @@ -1430,26 +1422,6 @@ | |||||||
| 			status = "disabled"; | 			status = "disabled"; | ||||||
| 		}; | 		}; | ||||||
| 
 | 
 | ||||||
| 		gpu: gpu@59000000 { |  | ||||||
| 			compatible = "vivante,gc"; |  | ||||||
| 			reg = <0x59000000 0x800>; |  | ||||||
| 			interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>; |  | ||||||
| 			clocks = <&rcc GPU>, <&rcc GPU_K>; |  | ||||||
| 			clock-names = "bus" ,"core"; |  | ||||||
| 			resets = <&rcc GPU_R>; |  | ||||||
| 			status = "disabled"; |  | ||||||
| 		}; |  | ||||||
| 
 |  | ||||||
| 		dsi: dsi@5a000000 { |  | ||||||
| 			compatible = "st,stm32-dsi"; |  | ||||||
| 			reg = <0x5a000000 0x800>; |  | ||||||
| 			clocks = <&rcc DSI_K>, <&clk_hse>, <&rcc DSI_PX>; |  | ||||||
| 			clock-names = "pclk", "ref", "px_clk"; |  | ||||||
| 			resets = <&rcc DSI_R>; |  | ||||||
| 			reset-names = "apb"; |  | ||||||
| 			status = "disabled"; |  | ||||||
| 		}; |  | ||||||
| 
 |  | ||||||
| 		ltdc: display-controller@5a001000 { | 		ltdc: display-controller@5a001000 { | ||||||
| 			compatible = "st,stm32-ltdc"; | 			compatible = "st,stm32-ltdc"; | ||||||
| 			reg = <0x5a001000 0x400>; | 			reg = <0x5a001000 0x400>; | ||||||
| @@ -1535,7 +1507,7 @@ | |||||||
| 			status = "disabled"; | 			status = "disabled"; | ||||||
| 		}; | 		}; | ||||||
| 
 | 
 | ||||||
| 		bsec: nvmem@5c005000 { | 		bsec: efuse@5c005000 { | ||||||
| 			compatible = "st,stm32mp15-bsec"; | 			compatible = "st,stm32mp15-bsec"; | ||||||
| 			reg = <0x5c005000 0x400>; | 			reg = <0x5c005000 0x400>; | ||||||
| 			#address-cells = <1>; | 			#address-cells = <1>; | ||||||
| @@ -1560,12 +1532,172 @@ | |||||||
| 			#size-cells = <0>; | 			#size-cells = <0>; | ||||||
| 			status = "disabled"; | 			status = "disabled"; | ||||||
| 		}; | 		}; | ||||||
|  | 
 | ||||||
|  | 		/* | ||||||
|  | 		 * Break node order to solve dependency probe issue between | ||||||
|  | 		 * pinctrl and exti. | ||||||
|  | 		 */ | ||||||
|  | 		pinctrl: pin-controller@50002000 { | ||||||
|  | 			#address-cells = <1>; | ||||||
|  | 			#size-cells = <1>; | ||||||
|  | 			compatible = "st,stm32mp157-pinctrl"; | ||||||
|  | 			ranges = <0 0x50002000 0xa400>; | ||||||
|  | 			interrupt-parent = <&exti>; | ||||||
|  | 			st,syscfg = <&exti 0x60 0xff>; | ||||||
|  | 			hwlocks = <&hwspinlock 0>; | ||||||
|  | 			pins-are-numbered; | ||||||
|  | 
 | ||||||
|  | 			gpioa: gpio@50002000 { | ||||||
|  | 				gpio-controller; | ||||||
|  | 				#gpio-cells = <2>; | ||||||
|  | 				interrupt-controller; | ||||||
|  | 				#interrupt-cells = <2>; | ||||||
|  | 				reg = <0x0 0x400>; | ||||||
|  | 				clocks = <&rcc GPIOA>; | ||||||
|  | 				st,bank-name = "GPIOA"; | ||||||
|  | 				status = "disabled"; | ||||||
|  | 			}; | ||||||
|  | 
 | ||||||
|  | 			gpiob: gpio@50003000 { | ||||||
|  | 				gpio-controller; | ||||||
|  | 				#gpio-cells = <2>; | ||||||
|  | 				interrupt-controller; | ||||||
|  | 				#interrupt-cells = <2>; | ||||||
|  | 				reg = <0x1000 0x400>; | ||||||
|  | 				clocks = <&rcc GPIOB>; | ||||||
|  | 				st,bank-name = "GPIOB"; | ||||||
|  | 				status = "disabled"; | ||||||
|  | 			}; | ||||||
|  | 
 | ||||||
|  | 			gpioc: gpio@50004000 { | ||||||
|  | 				gpio-controller; | ||||||
|  | 				#gpio-cells = <2>; | ||||||
|  | 				interrupt-controller; | ||||||
|  | 				#interrupt-cells = <2>; | ||||||
|  | 				reg = <0x2000 0x400>; | ||||||
|  | 				clocks = <&rcc GPIOC>; | ||||||
|  | 				st,bank-name = "GPIOC"; | ||||||
|  | 				status = "disabled"; | ||||||
|  | 			}; | ||||||
|  | 
 | ||||||
|  | 			gpiod: gpio@50005000 { | ||||||
|  | 				gpio-controller; | ||||||
|  | 				#gpio-cells = <2>; | ||||||
|  | 				interrupt-controller; | ||||||
|  | 				#interrupt-cells = <2>; | ||||||
|  | 				reg = <0x3000 0x400>; | ||||||
|  | 				clocks = <&rcc GPIOD>; | ||||||
|  | 				st,bank-name = "GPIOD"; | ||||||
|  | 				status = "disabled"; | ||||||
|  | 			}; | ||||||
|  | 
 | ||||||
|  | 			gpioe: gpio@50006000 { | ||||||
|  | 				gpio-controller; | ||||||
|  | 				#gpio-cells = <2>; | ||||||
|  | 				interrupt-controller; | ||||||
|  | 				#interrupt-cells = <2>; | ||||||
|  | 				reg = <0x4000 0x400>; | ||||||
|  | 				clocks = <&rcc GPIOE>; | ||||||
|  | 				st,bank-name = "GPIOE"; | ||||||
|  | 				status = "disabled"; | ||||||
|  | 			}; | ||||||
|  | 
 | ||||||
|  | 			gpiof: gpio@50007000 { | ||||||
|  | 				gpio-controller; | ||||||
|  | 				#gpio-cells = <2>; | ||||||
|  | 				interrupt-controller; | ||||||
|  | 				#interrupt-cells = <2>; | ||||||
|  | 				reg = <0x5000 0x400>; | ||||||
|  | 				clocks = <&rcc GPIOF>; | ||||||
|  | 				st,bank-name = "GPIOF"; | ||||||
|  | 				status = "disabled"; | ||||||
|  | 			}; | ||||||
|  | 
 | ||||||
|  | 			gpiog: gpio@50008000 { | ||||||
|  | 				gpio-controller; | ||||||
|  | 				#gpio-cells = <2>; | ||||||
|  | 				interrupt-controller; | ||||||
|  | 				#interrupt-cells = <2>; | ||||||
|  | 				reg = <0x6000 0x400>; | ||||||
|  | 				clocks = <&rcc GPIOG>; | ||||||
|  | 				st,bank-name = "GPIOG"; | ||||||
|  | 				status = "disabled"; | ||||||
|  | 			}; | ||||||
|  | 
 | ||||||
|  | 			gpioh: gpio@50009000 { | ||||||
|  | 				gpio-controller; | ||||||
|  | 				#gpio-cells = <2>; | ||||||
|  | 				interrupt-controller; | ||||||
|  | 				#interrupt-cells = <2>; | ||||||
|  | 				reg = <0x7000 0x400>; | ||||||
|  | 				clocks = <&rcc GPIOH>; | ||||||
|  | 				st,bank-name = "GPIOH"; | ||||||
|  | 				status = "disabled"; | ||||||
|  | 			}; | ||||||
|  | 
 | ||||||
|  | 			gpioi: gpio@5000a000 { | ||||||
|  | 				gpio-controller; | ||||||
|  | 				#gpio-cells = <2>; | ||||||
|  | 				interrupt-controller; | ||||||
|  | 				#interrupt-cells = <2>; | ||||||
|  | 				reg = <0x8000 0x400>; | ||||||
|  | 				clocks = <&rcc GPIOI>; | ||||||
|  | 				st,bank-name = "GPIOI"; | ||||||
|  | 				status = "disabled"; | ||||||
|  | 			}; | ||||||
|  | 
 | ||||||
|  | 			gpioj: gpio@5000b000 { | ||||||
|  | 				gpio-controller; | ||||||
|  | 				#gpio-cells = <2>; | ||||||
|  | 				interrupt-controller; | ||||||
|  | 				#interrupt-cells = <2>; | ||||||
|  | 				reg = <0x9000 0x400>; | ||||||
|  | 				clocks = <&rcc GPIOJ>; | ||||||
|  | 				st,bank-name = "GPIOJ"; | ||||||
|  | 				status = "disabled"; | ||||||
|  | 			}; | ||||||
|  | 
 | ||||||
|  | 			gpiok: gpio@5000c000 { | ||||||
|  | 				gpio-controller; | ||||||
|  | 				#gpio-cells = <2>; | ||||||
|  | 				interrupt-controller; | ||||||
|  | 				#interrupt-cells = <2>; | ||||||
|  | 				reg = <0xa000 0x400>; | ||||||
|  | 				clocks = <&rcc GPIOK>; | ||||||
|  | 				st,bank-name = "GPIOK"; | ||||||
|  | 				status = "disabled"; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 
 | ||||||
|  | 		pinctrl_z: pin-controller-z@54004000 { | ||||||
|  | 			#address-cells = <1>; | ||||||
|  | 			#size-cells = <1>; | ||||||
|  | 			compatible = "st,stm32mp157-z-pinctrl"; | ||||||
|  | 			ranges = <0 0x54004000 0x400>; | ||||||
|  | 			pins-are-numbered; | ||||||
|  | 			interrupt-parent = <&exti>; | ||||||
|  | 			st,syscfg = <&exti 0x60 0xff>; | ||||||
|  | 			hwlocks = <&hwspinlock 0>; | ||||||
|  | 
 | ||||||
|  | 			gpioz: gpio@54004000 { | ||||||
|  | 				gpio-controller; | ||||||
|  | 				#gpio-cells = <2>; | ||||||
|  | 				interrupt-controller; | ||||||
|  | 				#interrupt-cells = <2>; | ||||||
|  | 				reg = <0 0x400>; | ||||||
|  | 				clocks = <&rcc GPIOZ>; | ||||||
|  | 				st,bank-name = "GPIOZ"; | ||||||
|  | 				st,bank-ioport = <11>; | ||||||
|  | 				status = "disabled"; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
| 	}; | 	}; | ||||||
| 
 | 
 | ||||||
| 	mlahb { | 	mlahb: ahb { | ||||||
| 		compatible = "simple-bus"; | 		compatible = "st,mlahb", "simple-bus"; | ||||||
| 		#address-cells = <1>; | 		#address-cells = <1>; | ||||||
| 		#size-cells = <1>; | 		#size-cells = <1>; | ||||||
|  | 		ranges; | ||||||
| 		dma-ranges = <0x00000000 0x38000000 0x10000>, | 		dma-ranges = <0x00000000 0x38000000 0x10000>, | ||||||
| 			     <0x10000000 0x10000000 0x60000>, | 			     <0x10000000 0x10000000 0x60000>, | ||||||
| 			     <0x30000000 0x30000000 0x60000>; | 			     <0x30000000 0x30000000 0x60000>; | ||||||
							
								
								
									
										45
									
								
								arch/arm/dts/stm32mp153.dtsi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								arch/arm/dts/stm32mp153.dtsi
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,45 @@ | |||||||
|  | // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) | ||||||
|  | /* | ||||||
|  |  * Copyright (C) STMicroelectronics 2019 - All Rights Reserved | ||||||
|  |  * Author: Alexandre Torgue <alexandre.torgue@st.com> for STMicroelectronics. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #include "stm32mp151.dtsi" | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	cpus { | ||||||
|  | 		cpu1: cpu@1 { | ||||||
|  | 			compatible = "arm,cortex-a7"; | ||||||
|  | 			device_type = "cpu"; | ||||||
|  | 			reg = <1>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	soc { | ||||||
|  | 		m_can1: can@4400e000 { | ||||||
|  | 			compatible = "bosch,m_can"; | ||||||
|  | 			reg = <0x4400e000 0x400>, <0x44011000 0x1400>; | ||||||
|  | 			reg-names = "m_can", "message_ram"; | ||||||
|  | 			interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>, | ||||||
|  | 				     <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; | ||||||
|  | 			interrupt-names = "int0", "int1"; | ||||||
|  | 			clocks = <&rcc CK_HSE>, <&rcc FDCAN_K>; | ||||||
|  | 			clock-names = "hclk", "cclk"; | ||||||
|  | 			bosch,mram-cfg = <0x0 0 0 32 0 0 2 2>; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		m_can2: can@4400f000 { | ||||||
|  | 			compatible = "bosch,m_can"; | ||||||
|  | 			reg = <0x4400f000 0x400>, <0x44011000 0x2800>; | ||||||
|  | 			reg-names = "m_can", "message_ram"; | ||||||
|  | 			interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>, | ||||||
|  | 				     <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>; | ||||||
|  | 			interrupt-names = "int0", "int1"; | ||||||
|  | 			clocks = <&rcc CK_HSE>, <&rcc FDCAN_K>; | ||||||
|  | 			clock-names = "hclk", "cclk"; | ||||||
|  | 			bosch,mram-cfg = <0x1400 0 0 32 0 0 2 2>; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
							
								
								
									
										31
									
								
								arch/arm/dts/stm32mp157.dtsi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								arch/arm/dts/stm32mp157.dtsi
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,31 @@ | |||||||
|  | // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) | ||||||
|  | /* | ||||||
|  |  * Copyright (C) STMicroelectronics 2019 - All Rights Reserved | ||||||
|  |  * Author: Alexandre Torgue <alexandre.torgue@st.com> for STMicroelectronics. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #include "stm32mp153.dtsi" | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	soc { | ||||||
|  | 		gpu: gpu@59000000 { | ||||||
|  | 			compatible = "vivante,gc"; | ||||||
|  | 			reg = <0x59000000 0x800>; | ||||||
|  | 			interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>; | ||||||
|  | 			clocks = <&rcc GPU>, <&rcc GPU_K>; | ||||||
|  | 			clock-names = "bus" ,"core"; | ||||||
|  | 			resets = <&rcc GPU_R>; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		dsi: dsi@5a000000 { | ||||||
|  | 			compatible = "st,stm32-dsi"; | ||||||
|  | 			reg = <0x5a000000 0x800>; | ||||||
|  | 			clocks = <&rcc DSI_K>, <&clk_hse>, <&rcc DSI_PX>; | ||||||
|  | 			clock-names = "pclk", "ref", "px_clk"; | ||||||
|  | 			resets = <&rcc DSI_R>; | ||||||
|  | 			reset-names = "apb"; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
| @@ -7,7 +7,7 @@ | |||||||
|  */ |  */ | ||||||
|  |  | ||||||
| #include <dt-bindings/clock/stm32mp1-clksrc.h> | #include <dt-bindings/clock/stm32mp1-clksrc.h> | ||||||
| #include "stm32mp157-u-boot.dtsi" | #include "stm32mp15-u-boot.dtsi" | ||||||
| #include "stm32mp15-ddr3-2x4Gb-1066-binG.dtsi" | #include "stm32mp15-ddr3-2x4Gb-1066-binG.dtsi" | ||||||
|  |  | ||||||
| / { | / { | ||||||
| @@ -145,7 +145,10 @@ | |||||||
|  |  | ||||||
| &sdmmc1_b4_pins_a { | &sdmmc1_b4_pins_a { | ||||||
| 	u-boot,dm-spl; | 	u-boot,dm-spl; | ||||||
| 	pins { | 	pins1 { | ||||||
|  | 		u-boot,dm-spl; | ||||||
|  | 	}; | ||||||
|  | 	pins2 { | ||||||
| 		u-boot,dm-spl; | 		u-boot,dm-spl; | ||||||
| 	}; | 	}; | ||||||
| }; | }; | ||||||
| @@ -199,7 +202,3 @@ | |||||||
| 	u-boot,force-b-session-valid; | 	u-boot,force-b-session-valid; | ||||||
| 	hnp-srp-disable; | 	hnp-srp-disable; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| &v3v3 { |  | ||||||
| 	regulator-always-on; |  | ||||||
| }; |  | ||||||
|   | |||||||
| @@ -6,8 +6,10 @@ | |||||||
|  |  | ||||||
| /dts-v1/; | /dts-v1/; | ||||||
|  |  | ||||||
| #include "stm32mp157c.dtsi" | #include "stm32mp157.dtsi" | ||||||
| #include "stm32mp157xac-pinctrl.dtsi" | #include "stm32mp15-pinctrl.dtsi" | ||||||
|  | #include "stm32mp157-pinctrl.dtsi" | ||||||
|  | #include "stm32mp15xxac-pinctrl.dtsi" | ||||||
| #include <dt-bindings/gpio/gpio.h> | #include <dt-bindings/gpio/gpio.h> | ||||||
| #include <dt-bindings/mfd/st,stpmic1.h> | #include <dt-bindings/mfd/st,stpmic1.h> | ||||||
|  |  | ||||||
|   | |||||||
| @@ -4,7 +4,7 @@ | |||||||
|  */ |  */ | ||||||
|  |  | ||||||
| #include <dt-bindings/clock/stm32mp1-clksrc.h> | #include <dt-bindings/clock/stm32mp1-clksrc.h> | ||||||
| #include "stm32mp157-u-boot.dtsi" | #include "stm32mp15-u-boot.dtsi" | ||||||
| #include "stm32mp15-ddr3-1x4Gb-1066-binG.dtsi" | #include "stm32mp15-ddr3-1x4Gb-1066-binG.dtsi" | ||||||
|  |  | ||||||
| / { | / { | ||||||
| @@ -164,7 +164,10 @@ | |||||||
|  |  | ||||||
| &sdmmc1_b4_pins_a { | &sdmmc1_b4_pins_a { | ||||||
| 	u-boot,dm-spl; | 	u-boot,dm-spl; | ||||||
| 	pins { | 	pins1 { | ||||||
|  | 		u-boot,dm-spl; | ||||||
|  | 	}; | ||||||
|  | 	pins2 { | ||||||
| 		u-boot,dm-spl; | 		u-boot,dm-spl; | ||||||
| 	}; | 	}; | ||||||
| }; | }; | ||||||
|   | |||||||
| @@ -6,10 +6,10 @@ | |||||||
|  |  | ||||||
| /dts-v1/; | /dts-v1/; | ||||||
|  |  | ||||||
| #include "stm32mp157c.dtsi" | #include "stm32mp157.dtsi" | ||||||
| #include "stm32mp157xac-pinctrl.dtsi" | #include "stm32mp15-pinctrl.dtsi" | ||||||
| #include <dt-bindings/gpio/gpio.h> | #include "stm32mp15xxac-pinctrl.dtsi" | ||||||
| #include <dt-bindings/mfd/st,stpmic1.h> | #include "stm32mp15xx-dkx.dtsi" | ||||||
|  |  | ||||||
| / { | / { | ||||||
| 	model = "STMicroelectronics STM32MP157A-DK1 Discovery Board"; | 	model = "STMicroelectronics STM32MP157A-DK1 Discovery Board"; | ||||||
| @@ -23,537 +23,4 @@ | |||||||
| 	chosen { | 	chosen { | ||||||
| 		stdout-path = "serial0:115200n8"; | 		stdout-path = "serial0:115200n8"; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 	memory@c0000000 { |  | ||||||
| 		device_type = "memory"; |  | ||||||
| 		reg = <0xc0000000 0x20000000>; |  | ||||||
| 	}; |  | ||||||
|  |  | ||||||
| 	reserved-memory { |  | ||||||
| 		#address-cells = <1>; |  | ||||||
| 		#size-cells = <1>; |  | ||||||
| 		ranges; |  | ||||||
|  |  | ||||||
| 		mcuram2: mcuram2@10000000 { |  | ||||||
| 			compatible = "shared-dma-pool"; |  | ||||||
| 			reg = <0x10000000 0x40000>; |  | ||||||
| 			no-map; |  | ||||||
| 		}; |  | ||||||
|  |  | ||||||
| 		vdev0vring0: vdev0vring0@10040000 { |  | ||||||
| 			compatible = "shared-dma-pool"; |  | ||||||
| 			reg = <0x10040000 0x1000>; |  | ||||||
| 			no-map; |  | ||||||
| 		}; |  | ||||||
|  |  | ||||||
| 		vdev0vring1: vdev0vring1@10041000 { |  | ||||||
| 			compatible = "shared-dma-pool"; |  | ||||||
| 			reg = <0x10041000 0x1000>; |  | ||||||
| 			no-map; |  | ||||||
| 		}; |  | ||||||
|  |  | ||||||
| 		vdev0buffer: vdev0buffer@10042000 { |  | ||||||
| 			compatible = "shared-dma-pool"; |  | ||||||
| 			reg = <0x10042000 0x4000>; |  | ||||||
| 			no-map; |  | ||||||
| 		}; |  | ||||||
|  |  | ||||||
| 		mcuram: mcuram@30000000 { |  | ||||||
| 			compatible = "shared-dma-pool"; |  | ||||||
| 			reg = <0x30000000 0x40000>; |  | ||||||
| 			no-map; |  | ||||||
| 		}; |  | ||||||
|  |  | ||||||
| 		retram: retram@38000000 { |  | ||||||
| 			compatible = "shared-dma-pool"; |  | ||||||
| 			reg = <0x38000000 0x10000>; |  | ||||||
| 			no-map; |  | ||||||
| 		}; |  | ||||||
|  |  | ||||||
| 		gpu_reserved: gpu@d4000000 { |  | ||||||
| 			reg = <0xd4000000 0x4000000>; |  | ||||||
| 			no-map; |  | ||||||
| 		}; |  | ||||||
| 	}; |  | ||||||
|  |  | ||||||
| 	led { |  | ||||||
| 		compatible = "gpio-leds"; |  | ||||||
| 		blue { |  | ||||||
| 			label = "heartbeat"; |  | ||||||
| 			gpios = <&gpiod 11 GPIO_ACTIVE_HIGH>; |  | ||||||
| 			linux,default-trigger = "heartbeat"; |  | ||||||
| 			default-state = "off"; |  | ||||||
| 		}; |  | ||||||
| 	}; |  | ||||||
|  |  | ||||||
| 	sound { |  | ||||||
| 		compatible = "audio-graph-card"; |  | ||||||
| 		label = "STM32MP1-DK"; |  | ||||||
| 		routing = |  | ||||||
| 			"Playback" , "MCLK", |  | ||||||
| 			"Capture" , "MCLK", |  | ||||||
| 			"MICL" , "Mic Bias"; |  | ||||||
| 		dais = <&sai2a_port &sai2b_port &i2s2_port>; |  | ||||||
| 		status = "okay"; |  | ||||||
| 	}; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| &adc { |  | ||||||
| 	pinctrl-names = "default"; |  | ||||||
| 	pinctrl-0 = <&adc12_ain_pins_a>, <&adc12_usb_cc_pins_a>; |  | ||||||
| 	vdd-supply = <&vdd>; |  | ||||||
| 	vdda-supply = <&vdd>; |  | ||||||
| 	vref-supply = <&vrefbuf>; |  | ||||||
| 	status = "disabled"; |  | ||||||
| 	adc1: adc@0 { |  | ||||||
| 		/* |  | ||||||
| 		 * Type-C USB_PWR_CC1 & USB_PWR_CC2 on in18 & in19. |  | ||||||
| 		 * Use at least 5 * RC time, e.g. 5 * (Rp + Rd) * C: |  | ||||||
| 		 * 5 * (56 + 47kOhms) * 5pF => 2.5us. |  | ||||||
| 		 * Use arbitrary margin here (e.g. 5us). |  | ||||||
| 		 */ |  | ||||||
| 		st,min-sample-time-nsecs = <5000>; |  | ||||||
| 		/* AIN connector, USB Type-C CC1 & CC2 */ |  | ||||||
| 		st,adc-channels = <0 1 6 13 18 19>; |  | ||||||
| 		status = "okay"; |  | ||||||
| 	}; |  | ||||||
| 	adc2: adc@100 { |  | ||||||
| 		/* AIN connector, USB Type-C CC1 & CC2 */ |  | ||||||
| 		st,adc-channels = <0 1 2 6 18 19>; |  | ||||||
| 		st,min-sample-time-nsecs = <5000>; |  | ||||||
| 		status = "okay"; |  | ||||||
| 	}; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| &cec { |  | ||||||
| 	pinctrl-names = "default", "sleep"; |  | ||||||
| 	pinctrl-0 = <&cec_pins_b>; |  | ||||||
| 	pinctrl-1 = <&cec_pins_sleep_b>; |  | ||||||
| 	status = "okay"; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| ðernet0 { |  | ||||||
| 	status = "okay"; |  | ||||||
| 	pinctrl-0 = <ðernet0_rgmii_pins_a>; |  | ||||||
| 	pinctrl-1 = <ðernet0_rgmii_pins_sleep_a>; |  | ||||||
| 	pinctrl-names = "default", "sleep"; |  | ||||||
| 	phy-mode = "rgmii-id"; |  | ||||||
| 	max-speed = <1000>; |  | ||||||
| 	phy-handle = <&phy0>; |  | ||||||
|  |  | ||||||
| 	mdio0 { |  | ||||||
| 		#address-cells = <1>; |  | ||||||
| 		#size-cells = <0>; |  | ||||||
| 		compatible = "snps,dwmac-mdio"; |  | ||||||
| 		phy0: ethernet-phy@0 { |  | ||||||
| 			reg = <0>; |  | ||||||
| 		}; |  | ||||||
| 	}; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| &gpu { |  | ||||||
| 	contiguous-area = <&gpu_reserved>; |  | ||||||
| 	status = "okay"; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| &i2c1 { |  | ||||||
| 	pinctrl-names = "default", "sleep"; |  | ||||||
| 	pinctrl-0 = <&i2c1_pins_a>; |  | ||||||
| 	pinctrl-1 = <&i2c1_pins_sleep_a>; |  | ||||||
| 	i2c-scl-rising-time-ns = <100>; |  | ||||||
| 	i2c-scl-falling-time-ns = <7>; |  | ||||||
| 	status = "okay"; |  | ||||||
| 	/delete-property/dmas; |  | ||||||
| 	/delete-property/dma-names; |  | ||||||
|  |  | ||||||
| 	hdmi-transmitter@39 { |  | ||||||
| 		compatible = "sil,sii9022"; |  | ||||||
| 		reg = <0x39>; |  | ||||||
| 		iovcc-supply = <&v3v3_hdmi>; |  | ||||||
| 		cvcc12-supply = <&v1v2_hdmi>; |  | ||||||
| 		reset-gpios = <&gpioa 10 GPIO_ACTIVE_LOW>; |  | ||||||
| 		interrupts = <1 IRQ_TYPE_EDGE_FALLING>; |  | ||||||
| 		interrupt-parent = <&gpiog>; |  | ||||||
| 		#sound-dai-cells = <0>; |  | ||||||
| 		status = "okay"; |  | ||||||
|  |  | ||||||
| 		ports { |  | ||||||
| 			#address-cells = <1>; |  | ||||||
| 			#size-cells = <0>; |  | ||||||
|  |  | ||||||
| 			port@0 { |  | ||||||
| 				reg = <0>; |  | ||||||
| 				sii9022_in: endpoint { |  | ||||||
| 					remote-endpoint = <<dc_ep0_out>; |  | ||||||
| 				}; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			port@3 { |  | ||||||
| 				reg = <3>; |  | ||||||
| 				sii9022_tx_endpoint: endpoint { |  | ||||||
| 					remote-endpoint = <&i2s2_endpoint>; |  | ||||||
| 				}; |  | ||||||
| 			}; |  | ||||||
| 		}; |  | ||||||
| 	}; |  | ||||||
|  |  | ||||||
| 	cs42l51: cs42l51@4a { |  | ||||||
| 		compatible = "cirrus,cs42l51"; |  | ||||||
| 		reg = <0x4a>; |  | ||||||
| 		#sound-dai-cells = <0>; |  | ||||||
| 		VL-supply = <&v3v3>; |  | ||||||
| 		VD-supply = <&v1v8_audio>; |  | ||||||
| 		VA-supply = <&v1v8_audio>; |  | ||||||
| 		VAHP-supply = <&v1v8_audio>; |  | ||||||
| 		reset-gpios = <&gpiog 9 GPIO_ACTIVE_LOW>; |  | ||||||
| 		clocks = <&sai2a>; |  | ||||||
| 		clock-names = "MCLK"; |  | ||||||
| 		status = "okay"; |  | ||||||
|  |  | ||||||
| 		cs42l51_port: port { |  | ||||||
| 			#address-cells = <1>; |  | ||||||
| 			#size-cells = <0>; |  | ||||||
|  |  | ||||||
| 			cs42l51_tx_endpoint: endpoint@0 { |  | ||||||
| 				reg = <0>; |  | ||||||
| 				remote-endpoint = <&sai2a_endpoint>; |  | ||||||
| 				frame-master; |  | ||||||
| 				bitclock-master; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			cs42l51_rx_endpoint: endpoint@1 { |  | ||||||
| 				reg = <1>; |  | ||||||
| 				remote-endpoint = <&sai2b_endpoint>; |  | ||||||
| 				frame-master; |  | ||||||
| 				bitclock-master; |  | ||||||
| 			}; |  | ||||||
| 		}; |  | ||||||
| 	}; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| &i2c4 { |  | ||||||
| 	pinctrl-names = "default"; |  | ||||||
| 	pinctrl-0 = <&i2c4_pins_a>; |  | ||||||
| 	i2c-scl-rising-time-ns = <185>; |  | ||||||
| 	i2c-scl-falling-time-ns = <20>; |  | ||||||
| 	status = "okay"; |  | ||||||
| 	/* spare dmas for other usage */ |  | ||||||
| 	/delete-property/dmas; |  | ||||||
| 	/delete-property/dma-names; |  | ||||||
|  |  | ||||||
| 	typec: stusb1600@28 { |  | ||||||
| 		compatible = "st,stusb1600"; |  | ||||||
| 		reg = <0x28>; |  | ||||||
| 		interrupts = <11 IRQ_TYPE_EDGE_FALLING>; |  | ||||||
| 		interrupt-parent = <&gpioi>; |  | ||||||
| 		pinctrl-names = "default"; |  | ||||||
| 		pinctrl-0 = <&stusb1600_pins_a>; |  | ||||||
|  |  | ||||||
| 		status = "okay"; |  | ||||||
|  |  | ||||||
| 		typec_con: connector { |  | ||||||
| 			compatible = "usb-c-connector"; |  | ||||||
| 			label = "USB-C"; |  | ||||||
| 			power-role = "sink"; |  | ||||||
| 			power-opmode = "default"; |  | ||||||
| 		}; |  | ||||||
| 	}; |  | ||||||
|  |  | ||||||
| 	pmic: stpmic@33 { |  | ||||||
| 		compatible = "st,stpmic1"; |  | ||||||
| 		reg = <0x33>; |  | ||||||
| 		interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>; |  | ||||||
| 		interrupt-controller; |  | ||||||
| 		#interrupt-cells = <2>; |  | ||||||
| 		status = "okay"; |  | ||||||
|  |  | ||||||
| 		regulators { |  | ||||||
| 			compatible = "st,stpmic1-regulators"; |  | ||||||
| 			ldo1-supply = <&v3v3>; |  | ||||||
| 			ldo3-supply = <&vdd_ddr>; |  | ||||||
| 			ldo6-supply = <&v3v3>; |  | ||||||
| 			pwr_sw1-supply = <&bst_out>; |  | ||||||
| 			pwr_sw2-supply = <&bst_out>; |  | ||||||
|  |  | ||||||
| 			vddcore: buck1 { |  | ||||||
| 				regulator-name = "vddcore"; |  | ||||||
| 				regulator-min-microvolt = <1200000>; |  | ||||||
| 				regulator-max-microvolt = <1350000>; |  | ||||||
| 				regulator-always-on; |  | ||||||
| 				regulator-initial-mode = <0>; |  | ||||||
| 				regulator-over-current-protection; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			vdd_ddr: buck2 { |  | ||||||
| 				regulator-name = "vdd_ddr"; |  | ||||||
| 				regulator-min-microvolt = <1350000>; |  | ||||||
| 				regulator-max-microvolt = <1350000>; |  | ||||||
| 				regulator-always-on; |  | ||||||
| 				regulator-initial-mode = <0>; |  | ||||||
| 				regulator-over-current-protection; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			vdd: buck3 { |  | ||||||
| 				regulator-name = "vdd"; |  | ||||||
| 				regulator-min-microvolt = <3300000>; |  | ||||||
| 				regulator-max-microvolt = <3300000>; |  | ||||||
| 				regulator-always-on; |  | ||||||
| 				st,mask-reset; |  | ||||||
| 				regulator-initial-mode = <0>; |  | ||||||
| 				regulator-over-current-protection; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			v3v3: buck4 { |  | ||||||
| 				regulator-name = "v3v3"; |  | ||||||
| 				regulator-min-microvolt = <3300000>; |  | ||||||
| 				regulator-max-microvolt = <3300000>; |  | ||||||
| 				regulator-always-on; |  | ||||||
| 				regulator-over-current-protection; |  | ||||||
| 				regulator-initial-mode = <0>; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			v1v8_audio: ldo1 { |  | ||||||
| 				regulator-name = "v1v8_audio"; |  | ||||||
| 				regulator-min-microvolt = <1800000>; |  | ||||||
| 				regulator-max-microvolt = <1800000>; |  | ||||||
| 				regulator-always-on; |  | ||||||
| 				interrupts = <IT_CURLIM_LDO1 0>; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			v3v3_hdmi: ldo2 { |  | ||||||
| 				regulator-name = "v3v3_hdmi"; |  | ||||||
| 				regulator-min-microvolt = <3300000>; |  | ||||||
| 				regulator-max-microvolt = <3300000>; |  | ||||||
| 				regulator-always-on; |  | ||||||
| 				interrupts = <IT_CURLIM_LDO2 0>; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			vtt_ddr: ldo3 { |  | ||||||
| 				regulator-name = "vtt_ddr"; |  | ||||||
| 				regulator-min-microvolt = <500000>; |  | ||||||
| 				regulator-max-microvolt = <750000>; |  | ||||||
| 				regulator-always-on; |  | ||||||
| 				regulator-over-current-protection; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			vdd_usb: ldo4 { |  | ||||||
| 				regulator-name = "vdd_usb"; |  | ||||||
| 				regulator-min-microvolt = <3300000>; |  | ||||||
| 				regulator-max-microvolt = <3300000>; |  | ||||||
| 				interrupts = <IT_CURLIM_LDO4 0>; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			vdda: ldo5 { |  | ||||||
| 				regulator-name = "vdda"; |  | ||||||
| 				regulator-min-microvolt = <2900000>; |  | ||||||
| 				regulator-max-microvolt = <2900000>; |  | ||||||
| 				interrupts = <IT_CURLIM_LDO5 0>; |  | ||||||
| 				regulator-boot-on; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			v1v2_hdmi: ldo6 { |  | ||||||
| 				regulator-name = "v1v2_hdmi"; |  | ||||||
| 				regulator-min-microvolt = <1200000>; |  | ||||||
| 				regulator-max-microvolt = <1200000>; |  | ||||||
| 				regulator-always-on; |  | ||||||
| 				interrupts = <IT_CURLIM_LDO6 0>; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			vref_ddr: vref_ddr { |  | ||||||
| 				regulator-name = "vref_ddr"; |  | ||||||
| 				regulator-always-on; |  | ||||||
| 				regulator-over-current-protection; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			 bst_out: boost { |  | ||||||
| 				regulator-name = "bst_out"; |  | ||||||
| 				interrupts = <IT_OCP_BOOST 0>; |  | ||||||
| 			 }; |  | ||||||
|  |  | ||||||
| 			vbus_otg: pwr_sw1 { |  | ||||||
| 				regulator-name = "vbus_otg"; |  | ||||||
| 				interrupts = <IT_OCP_OTG 0>; |  | ||||||
| 			 }; |  | ||||||
|  |  | ||||||
| 			 vbus_sw: pwr_sw2 { |  | ||||||
| 				regulator-name = "vbus_sw"; |  | ||||||
| 				interrupts = <IT_OCP_SWOUT 0>; |  | ||||||
| 				regulator-active-discharge = <1>; |  | ||||||
| 			 }; |  | ||||||
| 		}; |  | ||||||
|  |  | ||||||
| 		onkey { |  | ||||||
| 			compatible = "st,stpmic1-onkey"; |  | ||||||
| 			interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 0>; |  | ||||||
| 			interrupt-names = "onkey-falling", "onkey-rising"; |  | ||||||
| 			power-off-time-sec = <10>; |  | ||||||
| 			status = "okay"; |  | ||||||
| 		}; |  | ||||||
|  |  | ||||||
| 		watchdog { |  | ||||||
| 			compatible = "st,stpmic1-wdt"; |  | ||||||
| 			status = "disabled"; |  | ||||||
| 		}; |  | ||||||
| 	}; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| &i2s2 { |  | ||||||
| 	clocks = <&rcc SPI2>, <&rcc SPI2_K>, <&rcc PLL3_Q>, <&rcc PLL3_R>; |  | ||||||
| 	clock-names = "pclk", "i2sclk", "x8k", "x11k"; |  | ||||||
| 	pinctrl-names = "default", "sleep"; |  | ||||||
| 	pinctrl-0 = <&i2s2_pins_a>; |  | ||||||
| 	pinctrl-1 = <&i2s2_pins_sleep_a>; |  | ||||||
| 	status = "okay"; |  | ||||||
|  |  | ||||||
| 	i2s2_port: port { |  | ||||||
| 		i2s2_endpoint: endpoint { |  | ||||||
| 			remote-endpoint = <&sii9022_tx_endpoint>; |  | ||||||
| 			format = "i2s"; |  | ||||||
| 			mclk-fs = <256>; |  | ||||||
| 		}; |  | ||||||
| 	}; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| &ipcc { |  | ||||||
| 	status = "okay"; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| &iwdg2 { |  | ||||||
| 	timeout-sec = <32>; |  | ||||||
| 	status = "okay"; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| <dc { |  | ||||||
| 	pinctrl-names = "default", "sleep"; |  | ||||||
| 	pinctrl-0 = <<dc_pins_a>; |  | ||||||
| 	pinctrl-1 = <<dc_pins_sleep_a>; |  | ||||||
| 	status = "okay"; |  | ||||||
|  |  | ||||||
| 	port { |  | ||||||
| 		#address-cells = <1>; |  | ||||||
| 		#size-cells = <0>; |  | ||||||
|  |  | ||||||
| 		ltdc_ep0_out: endpoint@0 { |  | ||||||
| 			reg = <0>; |  | ||||||
| 			remote-endpoint = <&sii9022_in>; |  | ||||||
| 		}; |  | ||||||
| 	}; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| &m4_rproc { |  | ||||||
| 	memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>, |  | ||||||
| 			<&vdev0vring1>, <&vdev0buffer>; |  | ||||||
| 	mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>; |  | ||||||
| 	mbox-names = "vq0", "vq1", "shutdown"; |  | ||||||
| 	interrupt-parent = <&exti>; |  | ||||||
| 	interrupts = <68 1>; |  | ||||||
| 	status = "okay"; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| &pwr_regulators { |  | ||||||
| 	vdd-supply = <&vdd>; |  | ||||||
| 	vdd_3v3_usbfs-supply = <&vdd_usb>; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| &rng1 { |  | ||||||
| 	status = "okay"; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| &rtc { |  | ||||||
| 	status = "okay"; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| &sai2 { |  | ||||||
| 	clocks = <&rcc SAI2>, <&rcc PLL3_Q>, <&rcc PLL3_R>; |  | ||||||
| 	clock-names = "pclk", "x8k", "x11k"; |  | ||||||
| 	pinctrl-names = "default", "sleep"; |  | ||||||
| 	pinctrl-0 = <&sai2a_pins_a>, <&sai2b_pins_b>; |  | ||||||
| 	pinctrl-1 = <&sai2a_sleep_pins_a>, <&sai2b_sleep_pins_b>; |  | ||||||
| 	status = "okay"; |  | ||||||
|  |  | ||||||
| 	sai2a: audio-controller@4400b004 { |  | ||||||
| 		#clock-cells = <0>; |  | ||||||
| 		dma-names = "tx"; |  | ||||||
| 		clocks = <&rcc SAI2_K>; |  | ||||||
| 		clock-names = "sai_ck"; |  | ||||||
| 		status = "okay"; |  | ||||||
|  |  | ||||||
| 		sai2a_port: port { |  | ||||||
| 			sai2a_endpoint: endpoint { |  | ||||||
| 				remote-endpoint = <&cs42l51_tx_endpoint>; |  | ||||||
| 				format = "i2s"; |  | ||||||
| 				mclk-fs = <256>; |  | ||||||
| 				dai-tdm-slot-num = <2>; |  | ||||||
| 				dai-tdm-slot-width = <32>; |  | ||||||
| 			}; |  | ||||||
| 		}; |  | ||||||
| 	}; |  | ||||||
|  |  | ||||||
| 	sai2b: audio-controller@4400b024 { |  | ||||||
| 		dma-names = "rx"; |  | ||||||
| 		st,sync = <&sai2a 2>; |  | ||||||
| 		clocks = <&rcc SAI2_K>, <&sai2a>; |  | ||||||
| 		clock-names = "sai_ck", "MCLK"; |  | ||||||
| 		status = "okay"; |  | ||||||
|  |  | ||||||
| 		sai2b_port: port { |  | ||||||
| 			sai2b_endpoint: endpoint { |  | ||||||
| 				remote-endpoint = <&cs42l51_rx_endpoint>; |  | ||||||
| 				format = "i2s"; |  | ||||||
| 				mclk-fs = <256>; |  | ||||||
| 				dai-tdm-slot-num = <2>; |  | ||||||
| 				dai-tdm-slot-width = <32>; |  | ||||||
| 			}; |  | ||||||
| 		}; |  | ||||||
| 	}; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| &sdmmc1 { |  | ||||||
| 	pinctrl-names = "default", "opendrain", "sleep"; |  | ||||||
| 	pinctrl-0 = <&sdmmc1_b4_pins_a>; |  | ||||||
| 	pinctrl-1 = <&sdmmc1_b4_od_pins_a>; |  | ||||||
| 	pinctrl-2 = <&sdmmc1_b4_sleep_pins_a>; |  | ||||||
| 	broken-cd; |  | ||||||
| 	st,neg-edge; |  | ||||||
| 	bus-width = <4>; |  | ||||||
| 	vmmc-supply = <&v3v3>; |  | ||||||
| 	status = "okay"; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| &uart4 { |  | ||||||
| 	pinctrl-names = "default"; |  | ||||||
| 	pinctrl-0 = <&uart4_pins_a>; |  | ||||||
| 	status = "okay"; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| &usbh_ehci { |  | ||||||
| 	phys = <&usbphyc_port0>; |  | ||||||
| 	phy-names = "usb"; |  | ||||||
| 	status = "okay"; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| &usbotg_hs { |  | ||||||
| 	dr_mode = "peripheral"; |  | ||||||
| 	phys = <&usbphyc_port1 0>; |  | ||||||
| 	phy-names = "usb2-phy"; |  | ||||||
| 	status = "okay"; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| &usbphyc { |  | ||||||
| 	status = "okay"; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| &usbphyc_port0 { |  | ||||||
| 	phy-supply = <&vdd_usb>; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| &usbphyc_port1 { |  | ||||||
| 	phy-supply = <&vdd_usb>; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| &vrefbuf { |  | ||||||
| 	regulator-min-microvolt = <2500000>; |  | ||||||
| 	regulator-max-microvolt = <2500000>; |  | ||||||
| 	vdda-supply = <&vdd>; |  | ||||||
| 	status = "okay"; |  | ||||||
| }; | }; | ||||||
|   | |||||||
| @@ -4,9 +4,3 @@ | |||||||
|  */ |  */ | ||||||
|  |  | ||||||
| #include "stm32mp157a-dk1-u-boot.dtsi" | #include "stm32mp157a-dk1-u-boot.dtsi" | ||||||
|  |  | ||||||
| &i2c1 { |  | ||||||
| 	hdmi-transmitter@39 { |  | ||||||
| 		reset-gpios = <&gpioa 10 GPIO_ACTIVE_LOW>; |  | ||||||
| 	}; |  | ||||||
| }; |  | ||||||
|   | |||||||
| @@ -6,11 +6,24 @@ | |||||||
|  |  | ||||||
| /dts-v1/; | /dts-v1/; | ||||||
|  |  | ||||||
| #include "stm32mp157a-dk1.dts" | #include "stm32mp157.dtsi" | ||||||
|  | #include "stm32mp15xc.dtsi" | ||||||
|  | #include "stm32mp15-pinctrl.dtsi" | ||||||
|  | #include "stm32mp15xxac-pinctrl.dtsi" | ||||||
|  | #include "stm32mp15xx-dkx.dtsi" | ||||||
|  |  | ||||||
| / { | / { | ||||||
| 	model = "STMicroelectronics STM32MP157C-DK2 Discovery Board"; | 	model = "STMicroelectronics STM32MP157C-DK2 Discovery Board"; | ||||||
| 	compatible = "st,stm32mp157c-dk2", "st,stm32mp157"; | 	compatible = "st,stm32mp157c-dk2", "st,stm32mp157"; | ||||||
|  |  | ||||||
|  | 	aliases { | ||||||
|  | 		ethernet0 = ðernet0; | ||||||
|  | 		serial0 = &uart4; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	chosen { | ||||||
|  | 		stdout-path = "serial0:115200n8"; | ||||||
|  | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| &dsi { | &dsi { | ||||||
|   | |||||||
| @@ -4,7 +4,7 @@ | |||||||
|  */ |  */ | ||||||
|  |  | ||||||
| #include <dt-bindings/clock/stm32mp1-clksrc.h> | #include <dt-bindings/clock/stm32mp1-clksrc.h> | ||||||
| #include "stm32mp157-u-boot.dtsi" | #include "stm32mp15-u-boot.dtsi" | ||||||
| #include "stm32mp15-ddr3-2x4Gb-1066-binG.dtsi" | #include "stm32mp15-ddr3-2x4Gb-1066-binG.dtsi" | ||||||
|  |  | ||||||
| / { | / { | ||||||
| @@ -161,7 +161,10 @@ | |||||||
|  |  | ||||||
| &sdmmc1_b4_pins_a { | &sdmmc1_b4_pins_a { | ||||||
| 	u-boot,dm-spl; | 	u-boot,dm-spl; | ||||||
| 	pins { | 	pins1 { | ||||||
|  | 		u-boot,dm-spl; | ||||||
|  | 	}; | ||||||
|  | 	pins2 { | ||||||
| 		u-boot,dm-spl; | 		u-boot,dm-spl; | ||||||
| 	}; | 	}; | ||||||
| }; | }; | ||||||
|   | |||||||
| @@ -5,8 +5,10 @@ | |||||||
|  */ |  */ | ||||||
| /dts-v1/; | /dts-v1/; | ||||||
|  |  | ||||||
| #include "stm32mp157c.dtsi" | #include "stm32mp157.dtsi" | ||||||
| #include "stm32mp157xaa-pinctrl.dtsi" | #include "stm32mp15xc.dtsi" | ||||||
|  | #include "stm32mp15-pinctrl.dtsi" | ||||||
|  | #include "stm32mp15xxaa-pinctrl.dtsi" | ||||||
| #include <dt-bindings/gpio/gpio.h> | #include <dt-bindings/gpio/gpio.h> | ||||||
| #include <dt-bindings/mfd/st,stpmic1.h> | #include <dt-bindings/mfd/st,stpmic1.h> | ||||||
|  |  | ||||||
| @@ -89,6 +91,22 @@ | |||||||
| 	}; | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | &adc { | ||||||
|  | 	/* ANA0, ANA1 are dedicated pins and don't need pinctrl: only in6. */ | ||||||
|  | 	pinctrl-0 = <&adc1_in6_pins_a>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	vdd-supply = <&vdd>; | ||||||
|  | 	vdda-supply = <&vdda>; | ||||||
|  | 	vref-supply = <&vdda>; | ||||||
|  | 	status = "disabled"; | ||||||
|  | 	adc1: adc@0 { | ||||||
|  | 		st,adc-channels = <0 1 6>; | ||||||
|  | 		/* 16.5 ck_cycles sampling time */ | ||||||
|  | 		st,min-sample-time-nsecs = <400>; | ||||||
|  | 		status = "okay"; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
| &dac { | &dac { | ||||||
| 	pinctrl-names = "default"; | 	pinctrl-names = "default"; | ||||||
| 	pinctrl-0 = <&dac_ch1_pins_a &dac_ch2_pins_a>; | 	pinctrl-0 = <&dac_ch1_pins_a &dac_ch2_pins_a>; | ||||||
|   | |||||||
| @@ -182,8 +182,6 @@ | |||||||
|  |  | ||||||
| 	ov5640: camera@3c { | 	ov5640: camera@3c { | ||||||
| 		compatible = "ovti,ov5640"; | 		compatible = "ovti,ov5640"; | ||||||
| 		pinctrl-names = "default"; |  | ||||||
| 		pinctrl-0 = <&ov5640_pins>; |  | ||||||
| 		reg = <0x3c>; | 		reg = <0x3c>; | ||||||
| 		clocks = <&clk_ext_camera>; | 		clocks = <&clk_ext_camera>; | ||||||
| 		clock-names = "xclk"; | 		clock-names = "xclk"; | ||||||
| @@ -224,12 +222,6 @@ | |||||||
| 				pins = "gpio0", "gpio1", "gpio2", "gpio3", "gpio4"; | 				pins = "gpio0", "gpio1", "gpio2", "gpio3", "gpio4"; | ||||||
| 				bias-pull-down; | 				bias-pull-down; | ||||||
| 			}; | 			}; | ||||||
|  |  | ||||||
| 			ov5640_pins: camera { |  | ||||||
| 				pins = "agpio2", "agpio3"; /* stmfx pins 18 & 19 */ |  | ||||||
| 				drive-push-pull; |  | ||||||
| 				output-low; |  | ||||||
| 			}; |  | ||||||
| 		}; | 		}; | ||||||
| 	}; | 	}; | ||||||
| }; | }; | ||||||
| @@ -291,6 +283,18 @@ | |||||||
| 	}; | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | &sdmmc3 { | ||||||
|  | 	pinctrl-names = "default", "opendrain", "sleep"; | ||||||
|  | 	pinctrl-0 = <&sdmmc3_b4_pins_a>; | ||||||
|  | 	pinctrl-1 = <&sdmmc3_b4_od_pins_a>; | ||||||
|  | 	pinctrl-2 = <&sdmmc3_b4_sleep_pins_a>; | ||||||
|  | 	broken-cd; | ||||||
|  | 	st,neg-edge; | ||||||
|  | 	bus-width = <4>; | ||||||
|  | 	vmmc-supply = <&v3v3>; | ||||||
|  | 	status = "disabled"; | ||||||
|  | }; | ||||||
|  |  | ||||||
| &spi1 { | &spi1 { | ||||||
| 	pinctrl-names = "default"; | 	pinctrl-names = "default"; | ||||||
| 	pinctrl-0 = <&spi1_pins_a>; | 	pinctrl-0 = <&spi1_pins_a>; | ||||||
| @@ -304,7 +308,8 @@ | |||||||
| 	status = "disabled"; | 	status = "disabled"; | ||||||
| 	pwm { | 	pwm { | ||||||
| 		pinctrl-0 = <&pwm2_pins_a>; | 		pinctrl-0 = <&pwm2_pins_a>; | ||||||
| 		pinctrl-names = "default"; | 		pinctrl-1 = <&pwm2_sleep_pins_a>; | ||||||
|  | 		pinctrl-names = "default", "sleep"; | ||||||
| 		status = "okay"; | 		status = "okay"; | ||||||
| 	}; | 	}; | ||||||
| 	timer@1 { | 	timer@1 { | ||||||
| @@ -318,7 +323,8 @@ | |||||||
| 	status = "disabled"; | 	status = "disabled"; | ||||||
| 	pwm { | 	pwm { | ||||||
| 		pinctrl-0 = <&pwm8_pins_a>; | 		pinctrl-0 = <&pwm8_pins_a>; | ||||||
| 		pinctrl-names = "default"; | 		pinctrl-1 = <&pwm8_sleep_pins_a>; | ||||||
|  | 		pinctrl-names = "default", "sleep"; | ||||||
| 		status = "okay"; | 		status = "okay"; | ||||||
| 	}; | 	}; | ||||||
| 	timer@7 { | 	timer@7 { | ||||||
| @@ -332,7 +338,8 @@ | |||||||
| 	status = "disabled"; | 	status = "disabled"; | ||||||
| 	pwm { | 	pwm { | ||||||
| 		pinctrl-0 = <&pwm12_pins_a>; | 		pinctrl-0 = <&pwm12_pins_a>; | ||||||
| 		pinctrl-names = "default"; | 		pinctrl-1 = <&pwm12_sleep_pins_a>; | ||||||
|  | 		pinctrl-names = "default", "sleep"; | ||||||
| 		status = "okay"; | 		status = "okay"; | ||||||
| 	}; | 	}; | ||||||
| 	timer@11 { | 	timer@11 { | ||||||
| @@ -348,6 +355,7 @@ | |||||||
| &usbotg_hs { | &usbotg_hs { | ||||||
| 	dr_mode = "peripheral"; | 	dr_mode = "peripheral"; | ||||||
| 	phys = <&usbphyc_port1 0>; | 	phys = <&usbphyc_port1 0>; | ||||||
|  | 	phy-names = "usb2-phy"; | ||||||
| 	status = "okay"; | 	status = "okay"; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,90 +0,0 @@ | |||||||
| // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) |  | ||||||
| /* |  | ||||||
|  * Copyright (C) STMicroelectronics 2019 - All Rights Reserved |  | ||||||
|  * Author: Alexandre Torgue <alexandre.torgue@st.com> |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #include "stm32mp157-pinctrl.dtsi" |  | ||||||
| / { |  | ||||||
| 	soc { |  | ||||||
| 		pinctrl: pin-controller@50002000 { |  | ||||||
| 			st,package = <STM32MP_PKG_AA>; |  | ||||||
|  |  | ||||||
| 			gpioa: gpio@50002000 { |  | ||||||
| 				status = "okay"; |  | ||||||
| 				ngpios = <16>; |  | ||||||
| 				gpio-ranges = <&pinctrl 0 0 16>; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			gpiob: gpio@50003000 { |  | ||||||
| 				status = "okay"; |  | ||||||
| 				ngpios = <16>; |  | ||||||
| 				gpio-ranges = <&pinctrl 0 16 16>; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			gpioc: gpio@50004000 { |  | ||||||
| 				status = "okay"; |  | ||||||
| 				ngpios = <16>; |  | ||||||
| 				gpio-ranges = <&pinctrl 0 32 16>; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			gpiod: gpio@50005000 { |  | ||||||
| 				status = "okay"; |  | ||||||
| 				ngpios = <16>; |  | ||||||
| 				gpio-ranges = <&pinctrl 0 48 16>; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			gpioe: gpio@50006000 { |  | ||||||
| 				status = "okay"; |  | ||||||
| 				ngpios = <16>; |  | ||||||
| 				gpio-ranges = <&pinctrl 0 64 16>; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			gpiof: gpio@50007000 { |  | ||||||
| 				status = "okay"; |  | ||||||
| 				ngpios = <16>; |  | ||||||
| 				gpio-ranges = <&pinctrl 0 80 16>; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			gpiog: gpio@50008000 { |  | ||||||
| 				status = "okay"; |  | ||||||
| 				ngpios = <16>; |  | ||||||
| 				gpio-ranges = <&pinctrl 0 96 16>; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			gpioh: gpio@50009000 { |  | ||||||
| 				status = "okay"; |  | ||||||
| 				ngpios = <16>; |  | ||||||
| 				gpio-ranges = <&pinctrl 0 112 16>; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			gpioi: gpio@5000a000 { |  | ||||||
| 				status = "okay"; |  | ||||||
| 				ngpios = <16>; |  | ||||||
| 				gpio-ranges = <&pinctrl 0 128 16>; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			gpioj: gpio@5000b000 { |  | ||||||
| 				status = "okay"; |  | ||||||
| 				ngpios = <16>; |  | ||||||
| 				gpio-ranges = <&pinctrl 0 144 16>; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			gpiok: gpio@5000c000 { |  | ||||||
| 				status = "okay"; |  | ||||||
| 				ngpios = <8>; |  | ||||||
| 				gpio-ranges = <&pinctrl 0 160 8>; |  | ||||||
| 			}; |  | ||||||
| 		}; |  | ||||||
|  |  | ||||||
| 		pinctrl_z: pin-controller-z@54004000 { |  | ||||||
| 			st,package = <STM32MP_PKG_AA>; |  | ||||||
|  |  | ||||||
| 			gpioz: gpio@54004000 { |  | ||||||
| 				status = "okay"; |  | ||||||
| 				ngpios = <8>; |  | ||||||
| 				gpio-ranges = <&pinctrl_z 0 400 8>; |  | ||||||
| 			}; |  | ||||||
| 		}; |  | ||||||
| 	}; |  | ||||||
| }; |  | ||||||
| @@ -1,62 +0,0 @@ | |||||||
| // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) |  | ||||||
| /* |  | ||||||
|  * Copyright (C) STMicroelectronics 2019 - All Rights Reserved |  | ||||||
|  * Author: Alexandre Torgue <alexandre.torgue@st.com> |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #include "stm32mp157-pinctrl.dtsi" |  | ||||||
| / { |  | ||||||
| 	soc { |  | ||||||
| 		pinctrl: pin-controller@50002000 { |  | ||||||
| 			st,package = <STM32MP_PKG_AB>; |  | ||||||
|  |  | ||||||
| 			gpioa: gpio@50002000 { |  | ||||||
| 				status = "okay"; |  | ||||||
| 				ngpios = <16>; |  | ||||||
| 				gpio-ranges = <&pinctrl 0 0 16>; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			gpiob: gpio@50003000 { |  | ||||||
| 				status = "okay"; |  | ||||||
| 				ngpios = <16>; |  | ||||||
| 				gpio-ranges = <&pinctrl 0 16 16>; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			gpioc: gpio@50004000 { |  | ||||||
| 				status = "okay"; |  | ||||||
| 				ngpios = <16>; |  | ||||||
| 				gpio-ranges = <&pinctrl 0 32 16>; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			gpiod: gpio@50005000 { |  | ||||||
| 				status = "okay"; |  | ||||||
| 				ngpios = <16>; |  | ||||||
| 				gpio-ranges = <&pinctrl 0 48 16>; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			gpioe: gpio@50006000 { |  | ||||||
| 				status = "okay"; |  | ||||||
| 				ngpios = <16>; |  | ||||||
| 				gpio-ranges = <&pinctrl 0 64 16>; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			gpiof: gpio@50007000 { |  | ||||||
| 				status = "okay"; |  | ||||||
| 				ngpios = <6>; |  | ||||||
| 				gpio-ranges = <&pinctrl 6 86 6>; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			gpiog: gpio@50008000 { |  | ||||||
| 				status = "okay"; |  | ||||||
| 				ngpios = <10>; |  | ||||||
| 				gpio-ranges = <&pinctrl 6 102 10>; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			gpioh: gpio@50009000 { |  | ||||||
| 				status = "okay"; |  | ||||||
| 				ngpios = <2>; |  | ||||||
| 				gpio-ranges = <&pinctrl 0 112 2>; |  | ||||||
| 			}; |  | ||||||
| 		}; |  | ||||||
| 	}; |  | ||||||
| }; |  | ||||||
| @@ -1,78 +0,0 @@ | |||||||
| // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) |  | ||||||
| /* |  | ||||||
|  * Copyright (C) STMicroelectronics 2019 - All Rights Reserved |  | ||||||
|  * Author: Alexandre Torgue <alexandre.torgue@st.com> |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #include "stm32mp157-pinctrl.dtsi" |  | ||||||
| / { |  | ||||||
| 	soc { |  | ||||||
| 		pinctrl: pin-controller@50002000 { |  | ||||||
| 			st,package = <STM32MP_PKG_AC>; |  | ||||||
|  |  | ||||||
| 			gpioa: gpio@50002000 { |  | ||||||
| 				status = "okay"; |  | ||||||
| 				ngpios = <16>; |  | ||||||
| 				gpio-ranges = <&pinctrl 0 0 16>; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			gpiob: gpio@50003000 { |  | ||||||
| 				status = "okay"; |  | ||||||
| 				ngpios = <16>; |  | ||||||
| 				gpio-ranges = <&pinctrl 0 16 16>; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			gpioc: gpio@50004000 { |  | ||||||
| 				status = "okay"; |  | ||||||
| 				ngpios = <16>; |  | ||||||
| 				gpio-ranges = <&pinctrl 0 32 16>; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			gpiod: gpio@50005000 { |  | ||||||
| 				status = "okay"; |  | ||||||
| 				ngpios = <16>; |  | ||||||
| 				gpio-ranges = <&pinctrl 0 48 16>; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			gpioe: gpio@50006000 { |  | ||||||
| 				status = "okay"; |  | ||||||
| 				ngpios = <16>; |  | ||||||
| 				gpio-ranges = <&pinctrl 0 64 16>; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			gpiof: gpio@50007000 { |  | ||||||
| 				status = "okay"; |  | ||||||
| 				ngpios = <16>; |  | ||||||
| 				gpio-ranges = <&pinctrl 0 80 16>; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			gpiog: gpio@50008000 { |  | ||||||
| 				status = "okay"; |  | ||||||
| 				ngpios = <16>; |  | ||||||
| 				gpio-ranges = <&pinctrl 0 96 16>; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			gpioh: gpio@50009000 { |  | ||||||
| 				status = "okay"; |  | ||||||
| 				ngpios = <16>; |  | ||||||
| 				gpio-ranges = <&pinctrl 0 112 16>; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			gpioi: gpio@5000a000 { |  | ||||||
| 				status = "okay"; |  | ||||||
| 				ngpios = <12>; |  | ||||||
| 				gpio-ranges = <&pinctrl 0 128 12>; |  | ||||||
| 			}; |  | ||||||
| 		}; |  | ||||||
|  |  | ||||||
| 		pinctrl_z: pin-controller-z@54004000 { |  | ||||||
| 			st,package = <STM32MP_PKG_AC>; |  | ||||||
|  |  | ||||||
| 			gpioz: gpio@54004000 { |  | ||||||
| 				status = "okay"; |  | ||||||
| 				ngpios = <8>; |  | ||||||
| 				gpio-ranges = <&pinctrl_z 0 400 8>; |  | ||||||
| 			}; |  | ||||||
| 		}; |  | ||||||
| 	}; |  | ||||||
| }; |  | ||||||
| @@ -1,62 +0,0 @@ | |||||||
| // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) |  | ||||||
| /* |  | ||||||
|  * Copyright (C) STMicroelectronics 2019 - All Rights Reserved |  | ||||||
|  * Author: Alexandre Torgue <alexandre.torgue@st.com> |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #include "stm32mp157-pinctrl.dtsi" |  | ||||||
| / { |  | ||||||
| 	soc { |  | ||||||
| 		pinctrl: pin-controller@50002000 { |  | ||||||
| 			st,package = <STM32MP_PKG_AD>; |  | ||||||
|  |  | ||||||
| 			gpioa: gpio@50002000 { |  | ||||||
| 				status = "okay"; |  | ||||||
| 				ngpios = <16>; |  | ||||||
| 				gpio-ranges = <&pinctrl 0 0 16>; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			gpiob: gpio@50003000 { |  | ||||||
| 				status = "okay"; |  | ||||||
| 				ngpios = <16>; |  | ||||||
| 				gpio-ranges = <&pinctrl 0 16 16>; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			gpioc: gpio@50004000 { |  | ||||||
| 				status = "okay"; |  | ||||||
| 				ngpios = <16>; |  | ||||||
| 				gpio-ranges = <&pinctrl 0 32 16>; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			gpiod: gpio@50005000 { |  | ||||||
| 				status = "okay"; |  | ||||||
| 				ngpios = <16>; |  | ||||||
| 				gpio-ranges = <&pinctrl 0 48 16>; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			gpioe: gpio@50006000 { |  | ||||||
| 				status = "okay"; |  | ||||||
| 				ngpios = <16>; |  | ||||||
| 				gpio-ranges = <&pinctrl 0 64 16>; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			gpiof: gpio@50007000 { |  | ||||||
| 				status = "okay"; |  | ||||||
| 				ngpios = <6>; |  | ||||||
| 				gpio-ranges = <&pinctrl 6 86 6>; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			gpiog: gpio@50008000 { |  | ||||||
| 				status = "okay"; |  | ||||||
| 				ngpios = <10>; |  | ||||||
| 				gpio-ranges = <&pinctrl 6 102 10>; |  | ||||||
| 			}; |  | ||||||
|  |  | ||||||
| 			gpioh: gpio@50009000 { |  | ||||||
| 				status = "okay"; |  | ||||||
| 				ngpios = <2>; |  | ||||||
| 				gpio-ranges = <&pinctrl 0 112 2>; |  | ||||||
| 			}; |  | ||||||
| 		}; |  | ||||||
| 	}; |  | ||||||
| }; |  | ||||||
							
								
								
									
										18
									
								
								arch/arm/dts/stm32mp15xc.dtsi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								arch/arm/dts/stm32mp15xc.dtsi
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  | // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) | ||||||
|  | /* | ||||||
|  |  * Copyright (C) STMicroelectronics 2019 - All Rights Reserved | ||||||
|  |  * Author: Alexandre Torgue <alexandre.torgue@st.com> for STMicroelectronics. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	soc { | ||||||
|  | 		cryp1: cryp@54001000 { | ||||||
|  | 			compatible = "st,stm32mp1-cryp"; | ||||||
|  | 			reg = <0x54001000 0x400>; | ||||||
|  | 			interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; | ||||||
|  | 			clocks = <&rcc CRYP1>; | ||||||
|  | 			resets = <&rcc CRYP1_R>; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
| @@ -4,7 +4,7 @@ | |||||||
|  */ |  */ | ||||||
|  |  | ||||||
| #include <dt-bindings/clock/stm32mp1-clksrc.h> | #include <dt-bindings/clock/stm32mp1-clksrc.h> | ||||||
| #include "stm32mp157-u-boot.dtsi" | #include "stm32mp15-u-boot.dtsi" | ||||||
| #include "stm32mp15-ddr3-2x4Gb-1066-binG.dtsi" | #include "stm32mp15-ddr3-2x4Gb-1066-binG.dtsi" | ||||||
|  |  | ||||||
| / { | / { | ||||||
| @@ -196,7 +196,10 @@ | |||||||
|  |  | ||||||
| &sdmmc1_b4_pins_a { | &sdmmc1_b4_pins_a { | ||||||
| 	u-boot,dm-spl; | 	u-boot,dm-spl; | ||||||
| 	pins { | 	pins1 { | ||||||
|  | 		u-boot,dm-spl; | ||||||
|  | 	}; | ||||||
|  | 	pins2 { | ||||||
| 		u-boot,dm-spl; | 		u-boot,dm-spl; | ||||||
| 	}; | 	}; | ||||||
| }; | }; | ||||||
|   | |||||||
| @@ -4,8 +4,10 @@ | |||||||
|  */ |  */ | ||||||
| /dts-v1/; | /dts-v1/; | ||||||
|  |  | ||||||
| #include "stm32mp157c.dtsi" | #include "stm32mp157.dtsi" | ||||||
| #include "stm32mp157xaa-pinctrl.dtsi" | #include "stm32mp15xc.dtsi" | ||||||
|  | #include "stm32mp15-pinctrl.dtsi" | ||||||
|  | #include "stm32mp15xxaa-pinctrl.dtsi" | ||||||
| #include <dt-bindings/gpio/gpio.h> | #include <dt-bindings/gpio/gpio.h> | ||||||
| #include <dt-bindings/mfd/st,stpmic1.h> | #include <dt-bindings/mfd/st,stpmic1.h> | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										639
									
								
								arch/arm/dts/stm32mp15xx-dkx.dtsi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										639
									
								
								arch/arm/dts/stm32mp15xx-dkx.dtsi
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,639 @@ | |||||||
|  | // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) | ||||||
|  | /* | ||||||
|  |  * Copyright (C) STMicroelectronics 2019 - All Rights Reserved | ||||||
|  |  * Author: Alexandre Torgue <alexandre.torgue@st.com> for STMicroelectronics. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #include <dt-bindings/gpio/gpio.h> | ||||||
|  | #include <dt-bindings/mfd/st,stpmic1.h> | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	memory@c0000000 { | ||||||
|  | 		device_type = "memory"; | ||||||
|  | 		reg = <0xc0000000 0x20000000>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	reserved-memory { | ||||||
|  | 		#address-cells = <1>; | ||||||
|  | 		#size-cells = <1>; | ||||||
|  | 		ranges; | ||||||
|  |  | ||||||
|  | 		mcuram2: mcuram2@10000000 { | ||||||
|  | 			compatible = "shared-dma-pool"; | ||||||
|  | 			reg = <0x10000000 0x40000>; | ||||||
|  | 			no-map; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		vdev0vring0: vdev0vring0@10040000 { | ||||||
|  | 			compatible = "shared-dma-pool"; | ||||||
|  | 			reg = <0x10040000 0x1000>; | ||||||
|  | 			no-map; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		vdev0vring1: vdev0vring1@10041000 { | ||||||
|  | 			compatible = "shared-dma-pool"; | ||||||
|  | 			reg = <0x10041000 0x1000>; | ||||||
|  | 			no-map; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		vdev0buffer: vdev0buffer@10042000 { | ||||||
|  | 			compatible = "shared-dma-pool"; | ||||||
|  | 			reg = <0x10042000 0x4000>; | ||||||
|  | 			no-map; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		mcuram: mcuram@30000000 { | ||||||
|  | 			compatible = "shared-dma-pool"; | ||||||
|  | 			reg = <0x30000000 0x40000>; | ||||||
|  | 			no-map; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		retram: retram@38000000 { | ||||||
|  | 			compatible = "shared-dma-pool"; | ||||||
|  | 			reg = <0x38000000 0x10000>; | ||||||
|  | 			no-map; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		gpu_reserved: gpu@d4000000 { | ||||||
|  | 			reg = <0xd4000000 0x4000000>; | ||||||
|  | 			no-map; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	led { | ||||||
|  | 		compatible = "gpio-leds"; | ||||||
|  | 		blue { | ||||||
|  | 			label = "heartbeat"; | ||||||
|  | 			gpios = <&gpiod 11 GPIO_ACTIVE_HIGH>; | ||||||
|  | 			linux,default-trigger = "heartbeat"; | ||||||
|  | 			default-state = "off"; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	sound { | ||||||
|  | 		compatible = "audio-graph-card"; | ||||||
|  | 		label = "STM32MP1-DK"; | ||||||
|  | 		routing = | ||||||
|  | 			"Playback" , "MCLK", | ||||||
|  | 			"Capture" , "MCLK", | ||||||
|  | 			"MICL" , "Mic Bias"; | ||||||
|  | 		dais = <&sai2a_port &sai2b_port &i2s2_port>; | ||||||
|  | 		status = "okay"; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &adc { | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	pinctrl-0 = <&adc12_ain_pins_a>, <&adc12_usb_cc_pins_a>; | ||||||
|  | 	vdd-supply = <&vdd>; | ||||||
|  | 	vdda-supply = <&vdd>; | ||||||
|  | 	vref-supply = <&vrefbuf>; | ||||||
|  | 	status = "disabled"; | ||||||
|  | 	adc1: adc@0 { | ||||||
|  | 		/* | ||||||
|  | 		 * Type-C USB_PWR_CC1 & USB_PWR_CC2 on in18 & in19. | ||||||
|  | 		 * Use at least 5 * RC time, e.g. 5 * (Rp + Rd) * C: | ||||||
|  | 		 * 5 * (56 + 47kOhms) * 5pF => 2.5us. | ||||||
|  | 		 * Use arbitrary margin here (e.g. 5us). | ||||||
|  | 		 */ | ||||||
|  | 		st,min-sample-time-nsecs = <5000>; | ||||||
|  | 		/* AIN connector, USB Type-C CC1 & CC2 */ | ||||||
|  | 		st,adc-channels = <0 1 6 13 18 19>; | ||||||
|  | 		status = "okay"; | ||||||
|  | 	}; | ||||||
|  | 	adc2: adc@100 { | ||||||
|  | 		/* AIN connector, USB Type-C CC1 & CC2 */ | ||||||
|  | 		st,adc-channels = <0 1 2 6 18 19>; | ||||||
|  | 		st,min-sample-time-nsecs = <5000>; | ||||||
|  | 		status = "okay"; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &cec { | ||||||
|  | 	pinctrl-names = "default", "sleep"; | ||||||
|  | 	pinctrl-0 = <&cec_pins_b>; | ||||||
|  | 	pinctrl-1 = <&cec_pins_sleep_b>; | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | ðernet0 { | ||||||
|  | 	status = "okay"; | ||||||
|  | 	pinctrl-0 = <ðernet0_rgmii_pins_a>; | ||||||
|  | 	pinctrl-1 = <ðernet0_rgmii_pins_sleep_a>; | ||||||
|  | 	pinctrl-names = "default", "sleep"; | ||||||
|  | 	phy-mode = "rgmii-id"; | ||||||
|  | 	max-speed = <1000>; | ||||||
|  | 	phy-handle = <&phy0>; | ||||||
|  |  | ||||||
|  | 	mdio0 { | ||||||
|  | 		#address-cells = <1>; | ||||||
|  | 		#size-cells = <0>; | ||||||
|  | 		compatible = "snps,dwmac-mdio"; | ||||||
|  | 		phy0: ethernet-phy@0 { | ||||||
|  | 			reg = <0>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &gpu { | ||||||
|  | 	contiguous-area = <&gpu_reserved>; | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &i2c1 { | ||||||
|  | 	pinctrl-names = "default", "sleep"; | ||||||
|  | 	pinctrl-0 = <&i2c1_pins_a>; | ||||||
|  | 	pinctrl-1 = <&i2c1_pins_sleep_a>; | ||||||
|  | 	i2c-scl-rising-time-ns = <100>; | ||||||
|  | 	i2c-scl-falling-time-ns = <7>; | ||||||
|  | 	status = "okay"; | ||||||
|  | 	/delete-property/dmas; | ||||||
|  | 	/delete-property/dma-names; | ||||||
|  |  | ||||||
|  | 	hdmi-transmitter@39 { | ||||||
|  | 		compatible = "sil,sii9022"; | ||||||
|  | 		reg = <0x39>; | ||||||
|  | 		iovcc-supply = <&v3v3_hdmi>; | ||||||
|  | 		cvcc12-supply = <&v1v2_hdmi>; | ||||||
|  | 		reset-gpios = <&gpioa 10 GPIO_ACTIVE_LOW>; | ||||||
|  | 		interrupts = <1 IRQ_TYPE_EDGE_FALLING>; | ||||||
|  | 		interrupt-parent = <&gpiog>; | ||||||
|  | 		#sound-dai-cells = <0>; | ||||||
|  | 		status = "okay"; | ||||||
|  |  | ||||||
|  | 		ports { | ||||||
|  | 			#address-cells = <1>; | ||||||
|  | 			#size-cells = <0>; | ||||||
|  |  | ||||||
|  | 			port@0 { | ||||||
|  | 				reg = <0>; | ||||||
|  | 				sii9022_in: endpoint { | ||||||
|  | 					remote-endpoint = <<dc_ep0_out>; | ||||||
|  | 				}; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			port@3 { | ||||||
|  | 				reg = <3>; | ||||||
|  | 				sii9022_tx_endpoint: endpoint { | ||||||
|  | 					remote-endpoint = <&i2s2_endpoint>; | ||||||
|  | 				}; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	cs42l51: cs42l51@4a { | ||||||
|  | 		compatible = "cirrus,cs42l51"; | ||||||
|  | 		reg = <0x4a>; | ||||||
|  | 		#sound-dai-cells = <0>; | ||||||
|  | 		VL-supply = <&v3v3>; | ||||||
|  | 		VD-supply = <&v1v8_audio>; | ||||||
|  | 		VA-supply = <&v1v8_audio>; | ||||||
|  | 		VAHP-supply = <&v1v8_audio>; | ||||||
|  | 		reset-gpios = <&gpiog 9 GPIO_ACTIVE_LOW>; | ||||||
|  | 		clocks = <&sai2a>; | ||||||
|  | 		clock-names = "MCLK"; | ||||||
|  | 		status = "okay"; | ||||||
|  |  | ||||||
|  | 		cs42l51_port: port { | ||||||
|  | 			#address-cells = <1>; | ||||||
|  | 			#size-cells = <0>; | ||||||
|  |  | ||||||
|  | 			cs42l51_tx_endpoint: endpoint@0 { | ||||||
|  | 				reg = <0>; | ||||||
|  | 				remote-endpoint = <&sai2a_endpoint>; | ||||||
|  | 				frame-master; | ||||||
|  | 				bitclock-master; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			cs42l51_rx_endpoint: endpoint@1 { | ||||||
|  | 				reg = <1>; | ||||||
|  | 				remote-endpoint = <&sai2b_endpoint>; | ||||||
|  | 				frame-master; | ||||||
|  | 				bitclock-master; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &i2c4 { | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	pinctrl-0 = <&i2c4_pins_a>; | ||||||
|  | 	i2c-scl-rising-time-ns = <185>; | ||||||
|  | 	i2c-scl-falling-time-ns = <20>; | ||||||
|  | 	status = "okay"; | ||||||
|  | 	/* spare dmas for other usage */ | ||||||
|  | 	/delete-property/dmas; | ||||||
|  | 	/delete-property/dma-names; | ||||||
|  |  | ||||||
|  | 	typec: stusb1600@28 { | ||||||
|  | 		compatible = "st,stusb1600"; | ||||||
|  | 		reg = <0x28>; | ||||||
|  | 		interrupts = <11 IRQ_TYPE_EDGE_FALLING>; | ||||||
|  | 		interrupt-parent = <&gpioi>; | ||||||
|  | 		pinctrl-names = "default"; | ||||||
|  | 		pinctrl-0 = <&stusb1600_pins_a>; | ||||||
|  |  | ||||||
|  | 		status = "okay"; | ||||||
|  |  | ||||||
|  | 		typec_con: connector { | ||||||
|  | 			compatible = "usb-c-connector"; | ||||||
|  | 			label = "USB-C"; | ||||||
|  | 			power-role = "sink"; | ||||||
|  | 			power-opmode = "default"; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	pmic: stpmic@33 { | ||||||
|  | 		compatible = "st,stpmic1"; | ||||||
|  | 		reg = <0x33>; | ||||||
|  | 		interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>; | ||||||
|  | 		interrupt-controller; | ||||||
|  | 		#interrupt-cells = <2>; | ||||||
|  | 		status = "okay"; | ||||||
|  |  | ||||||
|  | 		regulators { | ||||||
|  | 			compatible = "st,stpmic1-regulators"; | ||||||
|  | 			ldo1-supply = <&v3v3>; | ||||||
|  | 			ldo3-supply = <&vdd_ddr>; | ||||||
|  | 			ldo6-supply = <&v3v3>; | ||||||
|  | 			pwr_sw1-supply = <&bst_out>; | ||||||
|  | 			pwr_sw2-supply = <&bst_out>; | ||||||
|  |  | ||||||
|  | 			vddcore: buck1 { | ||||||
|  | 				regulator-name = "vddcore"; | ||||||
|  | 				regulator-min-microvolt = <1200000>; | ||||||
|  | 				regulator-max-microvolt = <1350000>; | ||||||
|  | 				regulator-always-on; | ||||||
|  | 				regulator-initial-mode = <0>; | ||||||
|  | 				regulator-over-current-protection; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			vdd_ddr: buck2 { | ||||||
|  | 				regulator-name = "vdd_ddr"; | ||||||
|  | 				regulator-min-microvolt = <1350000>; | ||||||
|  | 				regulator-max-microvolt = <1350000>; | ||||||
|  | 				regulator-always-on; | ||||||
|  | 				regulator-initial-mode = <0>; | ||||||
|  | 				regulator-over-current-protection; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			vdd: buck3 { | ||||||
|  | 				regulator-name = "vdd"; | ||||||
|  | 				regulator-min-microvolt = <3300000>; | ||||||
|  | 				regulator-max-microvolt = <3300000>; | ||||||
|  | 				regulator-always-on; | ||||||
|  | 				st,mask-reset; | ||||||
|  | 				regulator-initial-mode = <0>; | ||||||
|  | 				regulator-over-current-protection; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			v3v3: buck4 { | ||||||
|  | 				regulator-name = "v3v3"; | ||||||
|  | 				regulator-min-microvolt = <3300000>; | ||||||
|  | 				regulator-max-microvolt = <3300000>; | ||||||
|  | 				regulator-always-on; | ||||||
|  | 				regulator-over-current-protection; | ||||||
|  | 				regulator-initial-mode = <0>; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			v1v8_audio: ldo1 { | ||||||
|  | 				regulator-name = "v1v8_audio"; | ||||||
|  | 				regulator-min-microvolt = <1800000>; | ||||||
|  | 				regulator-max-microvolt = <1800000>; | ||||||
|  | 				regulator-always-on; | ||||||
|  | 				interrupts = <IT_CURLIM_LDO1 0>; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			v3v3_hdmi: ldo2 { | ||||||
|  | 				regulator-name = "v3v3_hdmi"; | ||||||
|  | 				regulator-min-microvolt = <3300000>; | ||||||
|  | 				regulator-max-microvolt = <3300000>; | ||||||
|  | 				regulator-always-on; | ||||||
|  | 				interrupts = <IT_CURLIM_LDO2 0>; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			vtt_ddr: ldo3 { | ||||||
|  | 				regulator-name = "vtt_ddr"; | ||||||
|  | 				regulator-min-microvolt = <500000>; | ||||||
|  | 				regulator-max-microvolt = <750000>; | ||||||
|  | 				regulator-always-on; | ||||||
|  | 				regulator-over-current-protection; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			vdd_usb: ldo4 { | ||||||
|  | 				regulator-name = "vdd_usb"; | ||||||
|  | 				regulator-min-microvolt = <3300000>; | ||||||
|  | 				regulator-max-microvolt = <3300000>; | ||||||
|  | 				interrupts = <IT_CURLIM_LDO4 0>; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			vdda: ldo5 { | ||||||
|  | 				regulator-name = "vdda"; | ||||||
|  | 				regulator-min-microvolt = <2900000>; | ||||||
|  | 				regulator-max-microvolt = <2900000>; | ||||||
|  | 				interrupts = <IT_CURLIM_LDO5 0>; | ||||||
|  | 				regulator-boot-on; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			v1v2_hdmi: ldo6 { | ||||||
|  | 				regulator-name = "v1v2_hdmi"; | ||||||
|  | 				regulator-min-microvolt = <1200000>; | ||||||
|  | 				regulator-max-microvolt = <1200000>; | ||||||
|  | 				regulator-always-on; | ||||||
|  | 				interrupts = <IT_CURLIM_LDO6 0>; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			vref_ddr: vref_ddr { | ||||||
|  | 				regulator-name = "vref_ddr"; | ||||||
|  | 				regulator-always-on; | ||||||
|  | 				regulator-over-current-protection; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			 bst_out: boost { | ||||||
|  | 				regulator-name = "bst_out"; | ||||||
|  | 				interrupts = <IT_OCP_BOOST 0>; | ||||||
|  | 			 }; | ||||||
|  |  | ||||||
|  | 			vbus_otg: pwr_sw1 { | ||||||
|  | 				regulator-name = "vbus_otg"; | ||||||
|  | 				interrupts = <IT_OCP_OTG 0>; | ||||||
|  | 			 }; | ||||||
|  |  | ||||||
|  | 			 vbus_sw: pwr_sw2 { | ||||||
|  | 				regulator-name = "vbus_sw"; | ||||||
|  | 				interrupts = <IT_OCP_SWOUT 0>; | ||||||
|  | 				regulator-active-discharge = <1>; | ||||||
|  | 			 }; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		onkey { | ||||||
|  | 			compatible = "st,stpmic1-onkey"; | ||||||
|  | 			interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 0>; | ||||||
|  | 			interrupt-names = "onkey-falling", "onkey-rising"; | ||||||
|  | 			power-off-time-sec = <10>; | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		watchdog { | ||||||
|  | 			compatible = "st,stpmic1-wdt"; | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &i2s2 { | ||||||
|  | 	clocks = <&rcc SPI2>, <&rcc SPI2_K>, <&rcc PLL3_Q>, <&rcc PLL3_R>; | ||||||
|  | 	clock-names = "pclk", "i2sclk", "x8k", "x11k"; | ||||||
|  | 	pinctrl-names = "default", "sleep"; | ||||||
|  | 	pinctrl-0 = <&i2s2_pins_a>; | ||||||
|  | 	pinctrl-1 = <&i2s2_pins_sleep_a>; | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	i2s2_port: port { | ||||||
|  | 		i2s2_endpoint: endpoint { | ||||||
|  | 			remote-endpoint = <&sii9022_tx_endpoint>; | ||||||
|  | 			format = "i2s"; | ||||||
|  | 			mclk-fs = <256>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &ipcc { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &iwdg2 { | ||||||
|  | 	timeout-sec = <32>; | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | <dc { | ||||||
|  | 	pinctrl-names = "default", "sleep"; | ||||||
|  | 	pinctrl-0 = <<dc_pins_a>; | ||||||
|  | 	pinctrl-1 = <<dc_pins_sleep_a>; | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	port { | ||||||
|  | 		#address-cells = <1>; | ||||||
|  | 		#size-cells = <0>; | ||||||
|  |  | ||||||
|  | 		ltdc_ep0_out: endpoint@0 { | ||||||
|  | 			reg = <0>; | ||||||
|  | 			remote-endpoint = <&sii9022_in>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &m4_rproc { | ||||||
|  | 	memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>, | ||||||
|  | 			<&vdev0vring1>, <&vdev0buffer>; | ||||||
|  | 	mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>; | ||||||
|  | 	mbox-names = "vq0", "vq1", "shutdown"; | ||||||
|  | 	interrupt-parent = <&exti>; | ||||||
|  | 	interrupts = <68 1>; | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &pwr_regulators { | ||||||
|  | 	vdd-supply = <&vdd>; | ||||||
|  | 	vdd_3v3_usbfs-supply = <&vdd_usb>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &rng1 { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &rtc { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &sai2 { | ||||||
|  | 	clocks = <&rcc SAI2>, <&rcc PLL3_Q>, <&rcc PLL3_R>; | ||||||
|  | 	clock-names = "pclk", "x8k", "x11k"; | ||||||
|  | 	pinctrl-names = "default", "sleep"; | ||||||
|  | 	pinctrl-0 = <&sai2a_pins_a>, <&sai2b_pins_b>; | ||||||
|  | 	pinctrl-1 = <&sai2a_sleep_pins_a>, <&sai2b_sleep_pins_b>; | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	sai2a: audio-controller@4400b004 { | ||||||
|  | 		#clock-cells = <0>; | ||||||
|  | 		dma-names = "tx"; | ||||||
|  | 		clocks = <&rcc SAI2_K>; | ||||||
|  | 		clock-names = "sai_ck"; | ||||||
|  | 		status = "okay"; | ||||||
|  |  | ||||||
|  | 		sai2a_port: port { | ||||||
|  | 			sai2a_endpoint: endpoint { | ||||||
|  | 				remote-endpoint = <&cs42l51_tx_endpoint>; | ||||||
|  | 				format = "i2s"; | ||||||
|  | 				mclk-fs = <256>; | ||||||
|  | 				dai-tdm-slot-num = <2>; | ||||||
|  | 				dai-tdm-slot-width = <32>; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	sai2b: audio-controller@4400b024 { | ||||||
|  | 		dma-names = "rx"; | ||||||
|  | 		st,sync = <&sai2a 2>; | ||||||
|  | 		clocks = <&rcc SAI2_K>, <&sai2a>; | ||||||
|  | 		clock-names = "sai_ck", "MCLK"; | ||||||
|  | 		status = "okay"; | ||||||
|  |  | ||||||
|  | 		sai2b_port: port { | ||||||
|  | 			sai2b_endpoint: endpoint { | ||||||
|  | 				remote-endpoint = <&cs42l51_rx_endpoint>; | ||||||
|  | 				format = "i2s"; | ||||||
|  | 				mclk-fs = <256>; | ||||||
|  | 				dai-tdm-slot-num = <2>; | ||||||
|  | 				dai-tdm-slot-width = <32>; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &sdmmc1 { | ||||||
|  | 	pinctrl-names = "default", "opendrain", "sleep"; | ||||||
|  | 	pinctrl-0 = <&sdmmc1_b4_pins_a>; | ||||||
|  | 	pinctrl-1 = <&sdmmc1_b4_od_pins_a>; | ||||||
|  | 	pinctrl-2 = <&sdmmc1_b4_sleep_pins_a>; | ||||||
|  | 	broken-cd; | ||||||
|  | 	st,neg-edge; | ||||||
|  | 	bus-width = <4>; | ||||||
|  | 	vmmc-supply = <&v3v3>; | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &sdmmc3 { | ||||||
|  | 	pinctrl-names = "default", "opendrain", "sleep"; | ||||||
|  | 	pinctrl-0 = <&sdmmc3_b4_pins_a>; | ||||||
|  | 	pinctrl-1 = <&sdmmc3_b4_od_pins_a>; | ||||||
|  | 	pinctrl-2 = <&sdmmc3_b4_sleep_pins_a>; | ||||||
|  | 	broken-cd; | ||||||
|  | 	st,neg-edge; | ||||||
|  | 	bus-width = <4>; | ||||||
|  | 	vmmc-supply = <&v3v3>; | ||||||
|  | 	status = "disabled"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &timers1 { | ||||||
|  | 	/* spare dmas for other usage */ | ||||||
|  | 	/delete-property/dmas; | ||||||
|  | 	/delete-property/dma-names; | ||||||
|  | 	status = "disabled"; | ||||||
|  | 	pwm { | ||||||
|  | 		pinctrl-0 = <&pwm1_pins_a>; | ||||||
|  | 		pinctrl-1 = <&pwm1_sleep_pins_a>; | ||||||
|  | 		pinctrl-names = "default", "sleep"; | ||||||
|  | 		status = "okay"; | ||||||
|  | 	}; | ||||||
|  | 	timer@0 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &timers3 { | ||||||
|  | 	/delete-property/dmas; | ||||||
|  | 	/delete-property/dma-names; | ||||||
|  | 	status = "disabled"; | ||||||
|  | 	pwm { | ||||||
|  | 		pinctrl-0 = <&pwm3_pins_a>; | ||||||
|  | 		pinctrl-1 = <&pwm3_sleep_pins_a>; | ||||||
|  | 		pinctrl-names = "default", "sleep"; | ||||||
|  | 		status = "okay"; | ||||||
|  | 	}; | ||||||
|  | 	timer@2 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &timers4 { | ||||||
|  | 	/delete-property/dmas; | ||||||
|  | 	/delete-property/dma-names; | ||||||
|  | 	status = "disabled"; | ||||||
|  | 	pwm { | ||||||
|  | 		pinctrl-0 = <&pwm4_pins_a &pwm4_pins_b>; | ||||||
|  | 		pinctrl-1 = <&pwm4_sleep_pins_a &pwm4_sleep_pins_b>; | ||||||
|  | 		pinctrl-names = "default", "sleep"; | ||||||
|  | 		status = "okay"; | ||||||
|  | 	}; | ||||||
|  | 	timer@3 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &timers5 { | ||||||
|  | 	/delete-property/dmas; | ||||||
|  | 	/delete-property/dma-names; | ||||||
|  | 	status = "disabled"; | ||||||
|  | 	pwm { | ||||||
|  | 		pinctrl-0 = <&pwm5_pins_a>; | ||||||
|  | 		pinctrl-1 = <&pwm5_sleep_pins_a>; | ||||||
|  | 		pinctrl-names = "default", "sleep"; | ||||||
|  | 		status = "okay"; | ||||||
|  | 	}; | ||||||
|  | 	timer@4 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &timers6 { | ||||||
|  | 	/delete-property/dmas; | ||||||
|  | 	/delete-property/dma-names; | ||||||
|  | 	status = "disabled"; | ||||||
|  | 	timer@5 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &timers12 { | ||||||
|  | 	/delete-property/dmas; | ||||||
|  | 	/delete-property/dma-names; | ||||||
|  | 	status = "disabled"; | ||||||
|  | 	pwm { | ||||||
|  | 		pinctrl-0 = <&pwm12_pins_a>; | ||||||
|  | 		pinctrl-1 = <&pwm12_sleep_pins_a>; | ||||||
|  | 		pinctrl-names = "default", "sleep"; | ||||||
|  | 		status = "okay"; | ||||||
|  | 	}; | ||||||
|  | 	timer@11 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &uart4 { | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	pinctrl-0 = <&uart4_pins_a>; | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usbh_ehci { | ||||||
|  | 	phys = <&usbphyc_port0>; | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usbotg_hs { | ||||||
|  | 	dr_mode = "peripheral"; | ||||||
|  | 	phys = <&usbphyc_port1 0>; | ||||||
|  | 	phy-names = "usb2-phy"; | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usbphyc { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usbphyc_port0 { | ||||||
|  | 	phy-supply = <&vdd_usb>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usbphyc_port1 { | ||||||
|  | 	phy-supply = <&vdd_usb>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &vrefbuf { | ||||||
|  | 	regulator-min-microvolt = <2500000>; | ||||||
|  | 	regulator-max-microvolt = <2500000>; | ||||||
|  | 	vdda-supply = <&vdd>; | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
							
								
								
									
										85
									
								
								arch/arm/dts/stm32mp15xxaa-pinctrl.dtsi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								arch/arm/dts/stm32mp15xxaa-pinctrl.dtsi
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,85 @@ | |||||||
|  | // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) | ||||||
|  | /* | ||||||
|  |  * Copyright (C) STMicroelectronics 2019 - All Rights Reserved | ||||||
|  |  * Author: Alexandre Torgue <alexandre.torgue@st.com> for STMicroelectronics. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | &pinctrl { | ||||||
|  | 	st,package = <STM32MP_PKG_AA>; | ||||||
|  |  | ||||||
|  | 	gpioa: gpio@50002000 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		ngpios = <16>; | ||||||
|  | 		gpio-ranges = <&pinctrl 0 0 16>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpiob: gpio@50003000 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		ngpios = <16>; | ||||||
|  | 		gpio-ranges = <&pinctrl 0 16 16>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpioc: gpio@50004000 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		ngpios = <16>; | ||||||
|  | 		gpio-ranges = <&pinctrl 0 32 16>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpiod: gpio@50005000 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		ngpios = <16>; | ||||||
|  | 		gpio-ranges = <&pinctrl 0 48 16>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpioe: gpio@50006000 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		ngpios = <16>; | ||||||
|  | 		gpio-ranges = <&pinctrl 0 64 16>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpiof: gpio@50007000 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		ngpios = <16>; | ||||||
|  | 		gpio-ranges = <&pinctrl 0 80 16>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpiog: gpio@50008000 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		ngpios = <16>; | ||||||
|  | 		gpio-ranges = <&pinctrl 0 96 16>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpioh: gpio@50009000 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		ngpios = <16>; | ||||||
|  | 		gpio-ranges = <&pinctrl 0 112 16>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpioi: gpio@5000a000 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		ngpios = <16>; | ||||||
|  | 		gpio-ranges = <&pinctrl 0 128 16>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpioj: gpio@5000b000 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		ngpios = <16>; | ||||||
|  | 		gpio-ranges = <&pinctrl 0 144 16>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpiok: gpio@5000c000 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		ngpios = <8>; | ||||||
|  | 		gpio-ranges = <&pinctrl 0 160 8>; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &pinctrl_z { | ||||||
|  | 	st,package = <STM32MP_PKG_AA>; | ||||||
|  |  | ||||||
|  | 	gpioz: gpio@54004000 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		ngpios = <8>; | ||||||
|  | 		gpio-ranges = <&pinctrl_z 0 400 8>; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
							
								
								
									
										57
									
								
								arch/arm/dts/stm32mp15xxab-pinctrl.dtsi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								arch/arm/dts/stm32mp15xxab-pinctrl.dtsi
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,57 @@ | |||||||
|  | // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) | ||||||
|  | /* | ||||||
|  |  * Copyright (C) STMicroelectronics 2019 - All Rights Reserved | ||||||
|  |  * Author: Alexandre Torgue <alexandre.torgue@st.com> for STMicroelectronics. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | &pinctrl { | ||||||
|  | 	st,package = <STM32MP_PKG_AB>; | ||||||
|  |  | ||||||
|  | 	gpioa: gpio@50002000 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		ngpios = <16>; | ||||||
|  | 		gpio-ranges = <&pinctrl 0 0 16>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpiob: gpio@50003000 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		ngpios = <16>; | ||||||
|  | 		gpio-ranges = <&pinctrl 0 16 16>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpioc: gpio@50004000 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		ngpios = <16>; | ||||||
|  | 		gpio-ranges = <&pinctrl 0 32 16>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpiod: gpio@50005000 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		ngpios = <16>; | ||||||
|  | 		gpio-ranges = <&pinctrl 0 48 16>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpioe: gpio@50006000 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		ngpios = <16>; | ||||||
|  | 		gpio-ranges = <&pinctrl 0 64 16>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpiof: gpio@50007000 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		ngpios = <6>; | ||||||
|  | 		gpio-ranges = <&pinctrl 6 86 6>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpiog: gpio@50008000 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		ngpios = <10>; | ||||||
|  | 		gpio-ranges = <&pinctrl 6 102 10>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpioh: gpio@50009000 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		ngpios = <2>; | ||||||
|  | 		gpio-ranges = <&pinctrl 0 112 2>; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
							
								
								
									
										73
									
								
								arch/arm/dts/stm32mp15xxac-pinctrl.dtsi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								arch/arm/dts/stm32mp15xxac-pinctrl.dtsi
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,73 @@ | |||||||
|  | // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) | ||||||
|  | /* | ||||||
|  |  * Copyright (C) STMicroelectronics 2019 - All Rights Reserved | ||||||
|  |  * Author: Alexandre Torgue <alexandre.torgue@st.com> for STMicroelectronics. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | &pinctrl { | ||||||
|  | 	st,package = <STM32MP_PKG_AC>; | ||||||
|  |  | ||||||
|  | 	gpioa: gpio@50002000 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		ngpios = <16>; | ||||||
|  | 		gpio-ranges = <&pinctrl 0 0 16>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpiob: gpio@50003000 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		ngpios = <16>; | ||||||
|  | 		gpio-ranges = <&pinctrl 0 16 16>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpioc: gpio@50004000 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		ngpios = <16>; | ||||||
|  | 		gpio-ranges = <&pinctrl 0 32 16>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpiod: gpio@50005000 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		ngpios = <16>; | ||||||
|  | 		gpio-ranges = <&pinctrl 0 48 16>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpioe: gpio@50006000 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		ngpios = <16>; | ||||||
|  | 		gpio-ranges = <&pinctrl 0 64 16>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpiof: gpio@50007000 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		ngpios = <16>; | ||||||
|  | 		gpio-ranges = <&pinctrl 0 80 16>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpiog: gpio@50008000 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		ngpios = <16>; | ||||||
|  | 		gpio-ranges = <&pinctrl 0 96 16>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpioh: gpio@50009000 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		ngpios = <16>; | ||||||
|  | 		gpio-ranges = <&pinctrl 0 112 16>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpioi: gpio@5000a000 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		ngpios = <12>; | ||||||
|  | 		gpio-ranges = <&pinctrl 0 128 12>; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &pinctrl_z { | ||||||
|  | 	st,package = <STM32MP_PKG_AC>; | ||||||
|  |  | ||||||
|  | 	gpioz: gpio@54004000 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		ngpios = <8>; | ||||||
|  | 		gpio-ranges = <&pinctrl_z 0 400 8>; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
							
								
								
									
										57
									
								
								arch/arm/dts/stm32mp15xxad-pinctrl.dtsi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								arch/arm/dts/stm32mp15xxad-pinctrl.dtsi
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,57 @@ | |||||||
|  | // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) | ||||||
|  | /* | ||||||
|  |  * Copyright (C) STMicroelectronics 2019 - All Rights Reserved | ||||||
|  |  * Author: Alexandre Torgue <alexandre.torgue@st.com> for STMicroelectronics. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | &pinctrl { | ||||||
|  | 	st,package = <STM32MP_PKG_AD>; | ||||||
|  |  | ||||||
|  | 	gpioa: gpio@50002000 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		ngpios = <16>; | ||||||
|  | 		gpio-ranges = <&pinctrl 0 0 16>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpiob: gpio@50003000 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		ngpios = <16>; | ||||||
|  | 		gpio-ranges = <&pinctrl 0 16 16>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpioc: gpio@50004000 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		ngpios = <16>; | ||||||
|  | 		gpio-ranges = <&pinctrl 0 32 16>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpiod: gpio@50005000 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		ngpios = <16>; | ||||||
|  | 		gpio-ranges = <&pinctrl 0 48 16>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpioe: gpio@50006000 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		ngpios = <16>; | ||||||
|  | 		gpio-ranges = <&pinctrl 0 64 16>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpiof: gpio@50007000 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		ngpios = <6>; | ||||||
|  | 		gpio-ranges = <&pinctrl 6 86 6>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpiog: gpio@50008000 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		ngpios = <10>; | ||||||
|  | 		gpio-ranges = <&pinctrl 6 102 10>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpioh: gpio@50009000 { | ||||||
|  | 		status = "okay"; | ||||||
|  | 		ngpios = <2>; | ||||||
|  | 		gpio-ranges = <&pinctrl 0 112 2>; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
| @@ -5,7 +5,6 @@ | |||||||
|  * Copyright (C) 2018 Xilinx, Inc. |  * Copyright (C) 2018 Xilinx, Inc. | ||||||
|  */ |  */ | ||||||
| /dts-v1/; | /dts-v1/; | ||||||
| #include "zynq-7000.dtsi" |  | ||||||
|  |  | ||||||
| / { | / { | ||||||
| 	#address-cells = <1>; | 	#address-cells = <1>; | ||||||
| @@ -33,27 +32,21 @@ | |||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 	amba: amba { | 	amba: amba { | ||||||
|  | 		u-boot,dm-pre-reloc; | ||||||
| 		compatible = "simple-bus"; | 		compatible = "simple-bus"; | ||||||
| 		#address-cells = <1>; | 		#address-cells = <1>; | ||||||
| 		#size-cells = <1>; | 		#size-cells = <1>; | ||||||
| 		interrupt-parent = <&intc>; |  | ||||||
| 		ranges; | 		ranges; | ||||||
|  |  | ||||||
| 		intc: interrupt-controller@f8f01000 { |  | ||||||
| 			compatible = "arm,cortex-a9-gic"; |  | ||||||
| 			#interrupt-cells = <3>; |  | ||||||
| 			interrupt-controller; |  | ||||||
| 			reg = <0xF8F01000 0x1000>, |  | ||||||
| 			      <0xF8F00100 0x100>; |  | ||||||
| 		}; |  | ||||||
|  |  | ||||||
| 		slcr: slcr@f8000000 { | 		slcr: slcr@f8000000 { | ||||||
|  | 			u-boot,dm-pre-reloc; | ||||||
| 			#address-cells = <1>; | 			#address-cells = <1>; | ||||||
| 			#size-cells = <1>; | 			#size-cells = <1>; | ||||||
| 			compatible = "xlnx,zynq-slcr", "syscon", "simple-bus"; | 			compatible = "xlnx,zynq-slcr", "syscon", "simple-bus"; | ||||||
| 			reg = <0xF8000000 0x1000>; | 			reg = <0xF8000000 0x1000>; | ||||||
| 			ranges; | 			ranges; | ||||||
| 			clkc: clkc@100 { | 			clkc: clkc@100 { | ||||||
|  | 				u-boot,dm-pre-reloc; | ||||||
| 				#clock-cells = <1>; | 				#clock-cells = <1>; | ||||||
| 				compatible = "xlnx,ps7-clkc"; | 				compatible = "xlnx,ps7-clkc"; | ||||||
| 				clock-output-names = "armpll", "ddrpll", | 				clock-output-names = "armpll", "ddrpll", | ||||||
| @@ -78,6 +71,20 @@ | |||||||
| 				reg = <0x100 0x100>; | 				reg = <0x100 0x100>; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
|  |  | ||||||
|  | 		/* | ||||||
|  | 		 * This is partially hack because it is normally subnode of smcc | ||||||
|  | 		 * but for mini U-Boot there is no reason to enable SMCC driver | ||||||
|  | 		 * which does almost nothing in NOR flash configuration that's | ||||||
|  | 		 * why place cfi-flash directly here. | ||||||
|  | 		 */ | ||||||
|  | 		flash@e2000000 { | ||||||
|  | 			u-boot,dm-pre-reloc; | ||||||
|  | 			compatible = "cfi-flash"; | ||||||
|  | 			reg = <0xe2000000 0x2000000>; | ||||||
|  | 			#address-cells = <1>; | ||||||
|  | 			#size-cells = <1>; | ||||||
|  | 		}; | ||||||
| 	}; | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -67,23 +67,23 @@ | |||||||
| 				spi-max-frequency = <50000000>; | 				spi-max-frequency = <50000000>; | ||||||
| 				#address-cells = <1>; | 				#address-cells = <1>; | ||||||
| 				#size-cells = <1>; | 				#size-cells = <1>; | ||||||
| 				partition@qspi-fsbl-uboot { | 				partition@0 { | ||||||
| 					label = "qspi-fsbl-uboot"; | 					label = "qspi-fsbl-uboot"; | ||||||
| 					reg = <0x0 0x100000>; | 					reg = <0x0 0x100000>; | ||||||
| 				}; | 				}; | ||||||
| 				partition@qspi-linux { | 				partition@100000 { | ||||||
| 					label = "qspi-linux"; | 					label = "qspi-linux"; | ||||||
| 					reg = <0x100000 0x500000>; | 					reg = <0x100000 0x500000>; | ||||||
| 				}; | 				}; | ||||||
| 				partition@qspi-device-tree { | 				partition@600000 { | ||||||
| 					label = "qspi-device-tree"; | 					label = "qspi-device-tree"; | ||||||
| 					reg = <0x600000 0x20000>; | 					reg = <0x600000 0x20000>; | ||||||
| 				}; | 				}; | ||||||
| 				partition@qspi-rootfs { | 				partition@620000 { | ||||||
| 					label = "qspi-rootfs"; | 					label = "qspi-rootfs"; | ||||||
| 					reg = <0x620000 0x5E0000>; | 					reg = <0x620000 0x5E0000>; | ||||||
| 				}; | 				}; | ||||||
| 				partition@qspi-bitstream { | 				partition@c00000 { | ||||||
| 					label = "qspi-bitstream"; | 					label = "qspi-bitstream"; | ||||||
| 					reg = <0xC00000 0x400000>; | 					reg = <0xC00000 0x400000>; | ||||||
| 				}; | 				}; | ||||||
|   | |||||||
| @@ -44,23 +44,23 @@ | |||||||
| 		spi-max-frequency = <100000000>; | 		spi-max-frequency = <100000000>; | ||||||
| 		#address-cells = <1>; | 		#address-cells = <1>; | ||||||
| 		#size-cells = <1>; | 		#size-cells = <1>; | ||||||
| 		partition@qspi-u-boot-spl { | 		partition@0 { | ||||||
| 			label = "qspi-u-boot-spl"; | 			label = "qspi-u-boot-spl"; | ||||||
| 			reg = <0x00000 0x10000>; | 			reg = <0x00000 0x10000>; | ||||||
| 		}; | 		}; | ||||||
| 		partition@qspi-u-boot-img { | 		partition@10000 { | ||||||
| 			label = "qspi-u-boot-img"; | 			label = "qspi-u-boot-img"; | ||||||
| 			reg = <0x10000 0x60000>; | 			reg = <0x10000 0x60000>; | ||||||
| 		}; | 		}; | ||||||
| 		partition@qspi-device-tree { | 		partition@70000 { | ||||||
| 			label = "qspi-device-tree"; | 			label = "qspi-device-tree"; | ||||||
| 			reg = <0x70000 0x10000>; | 			reg = <0x70000 0x10000>; | ||||||
| 		}; | 		}; | ||||||
| 		partition@qspi-linux { | 		partition@80000 { | ||||||
| 			label = "qspi-linux"; | 			label = "qspi-linux"; | ||||||
| 			reg = <0x80000 0x400000>; | 			reg = <0x80000 0x400000>; | ||||||
| 		}; | 		}; | ||||||
| 		partition@qspi-rootfs { | 		partition@480000 { | ||||||
| 			label = "qspi-rootfs"; | 			label = "qspi-rootfs"; | ||||||
| 			reg = <0x480000 0x1b80000>; | 			reg = <0x480000 0x1b80000>; | ||||||
| 		}; | 		}; | ||||||
|   | |||||||
| @@ -181,17 +181,17 @@ | |||||||
| 			#address-cells = <1>; | 			#address-cells = <1>; | ||||||
| 			#size-cells = <0>; | 			#size-cells = <0>; | ||||||
| 			reg = <7>; | 			reg = <7>; | ||||||
| 			hwmon@52 { | 			hwmon@34 { | ||||||
| 				compatible = "ti,ucd9248"; | 				compatible = "ti,ucd9248"; | ||||||
| 				reg = <52>; | 				reg = <0x34>; | ||||||
| 			}; | 			}; | ||||||
| 			hwmon@53 { | 			hwmon@35 { | ||||||
| 				compatible = "ti,ucd9248"; | 				compatible = "ti,ucd9248"; | ||||||
| 				reg = <53>; | 				reg = <0x35>; | ||||||
| 			}; | 			}; | ||||||
| 			hwmon@54 { | 			hwmon@36 { | ||||||
| 				compatible = "ti,ucd9248"; | 				compatible = "ti,ucd9248"; | ||||||
| 				reg = <54>; | 				reg = <0x36>; | ||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
| 	}; | 	}; | ||||||
|   | |||||||
| @@ -72,7 +72,7 @@ | |||||||
| 	status = "okay"; | 	status = "okay"; | ||||||
| 	num-cs = <4>; | 	num-cs = <4>; | ||||||
| 	is-decoded-cs = <0>; | 	is-decoded-cs = <0>; | ||||||
| 	flash@0 { | 	flash@1 { | ||||||
| 		compatible = "sst25wf080", "jedec,spi-nor"; | 		compatible = "sst25wf080", "jedec,spi-nor"; | ||||||
| 		reg = <1>; | 		reg = <1>; | ||||||
| 		spi-max-frequency = <1000000>; | 		spi-max-frequency = <1000000>; | ||||||
|   | |||||||
| @@ -1 +0,0 @@ | |||||||
| zynq-zc770-xm011.dts |  | ||||||
							
								
								
									
										11
									
								
								arch/arm/dts/zynq-zc770-xm011-x16.dts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								arch/arm/dts/zynq-zc770-xm011-x16.dts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | |||||||
|  | // SPDX-License-Identifier: GPL-2.0+ | ||||||
|  | /* | ||||||
|  |  * Xilinx ZC770 XM011 board DTS with NAND x16 | ||||||
|  |  * | ||||||
|  |  * Copyright (C) 2013-2018 Xilinx, Inc. | ||||||
|  |  */ | ||||||
|  | #include "zynq-zc770-xm011.dts" | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	model = "Xilinx ZC770 XM011 board (NAND x16)"; | ||||||
|  | }; | ||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user