mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-11 23:47:24 +00: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:
commit
8914831860
403 changed files with 15436 additions and 6389 deletions
|
@ -1,7 +1,7 @@
|
|||
variables:
|
||||
windows_vm: vs2017-win2016
|
||||
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
|
||||
# denied" error when it tries to "useradd -m -u 1001 vsts_azpcontainer",
|
||||
# since our $(ci_runner_image) user is not root.
|
||||
|
@ -52,7 +52,7 @@ jobs:
|
|||
image: $(ci_runner_image)
|
||||
options: $(container_option)
|
||||
steps:
|
||||
- script: cppcheck --force --quiet --inline-suppr .
|
||||
- script: cppcheck -j$(nproc) --force --quiet --inline-suppr .
|
||||
|
||||
- job: htmldocs
|
||||
displayName: 'Build HTML documentation'
|
||||
|
@ -120,7 +120,7 @@ jobs:
|
|||
make tools-only_config envtools -j$(nproc)
|
||||
|
||||
- job: utils
|
||||
displayName: 'Run binman, buildman, dtoc and patman testsuites'
|
||||
displayName: 'Run binman, buildman, dtoc, Kconfig and patman testsuites'
|
||||
pool:
|
||||
vmImage: $(ubuntu_vm)
|
||||
steps:
|
||||
|
@ -135,15 +135,16 @@ jobs:
|
|||
export USER=azure
|
||||
virtualenv -p /usr/bin/python3 /tmp/venv
|
||||
. /tmp/venv/bin/activate
|
||||
pip install pyelftools
|
||||
export UBOOT_TRAVIS_BUILD_DIR=/tmp/.bm-work/sandbox_spl
|
||||
pip install pyelftools pytest
|
||||
export UBOOT_TRAVIS_BUILD_DIR=/tmp/sandbox_spl
|
||||
export PYTHONPATH=${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt
|
||||
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/buildman/buildman -t
|
||||
./tools/dtoc/dtoc -t
|
||||
./tools/patman/patman --test
|
||||
make O=${UBOOT_TRAVIS_BUILD_DIR} testconfig
|
||||
EOF
|
||||
cat build.sh
|
||||
# We cannot use "container" like other jobs above, as buildman
|
||||
|
@ -158,90 +159,78 @@ jobs:
|
|||
matrix:
|
||||
sandbox:
|
||||
TEST_PY_BD: "sandbox"
|
||||
BUILDMAN: "^sandbox$"
|
||||
sandbox_clang:
|
||||
TEST_PY_BD: "sandbox"
|
||||
BUILDMAN: "^sandbox$"
|
||||
OVERRIDE: "-O clang-7"
|
||||
sandbox_spl:
|
||||
TEST_PY_BD: "sandbox_spl"
|
||||
TEST_PY_TEST_SPEC: "test_ofplatdata"
|
||||
BUILDMAN: "^sandbox_spl$"
|
||||
TEST_PY_TEST_SPEC: "test_ofplatdata or test_handoff"
|
||||
sandbox_flattree:
|
||||
TEST_PY_BD: "sandbox_flattree"
|
||||
BUILDMAN: "^sandbox_flattree$"
|
||||
evb_ast2500:
|
||||
TEST_PY_BD: "evb-ast2500"
|
||||
TEST_PY_ID: "--id qemu"
|
||||
BUILDMAN: "^evb-ast2500$"
|
||||
vexpress_ca15_tc2:
|
||||
TEST_PY_BD: "vexpress_ca15_tc2"
|
||||
TEST_PY_ID: "--id qemu"
|
||||
BUILDMAN: "^vexpress_ca15_tc2$"
|
||||
vexpress_ca9x4:
|
||||
TEST_PY_BD: "vexpress_ca9x4"
|
||||
TEST_PY_ID: "--id qemu"
|
||||
BUILDMAN: "^vexpress_ca9x4$"
|
||||
integratorcp_cm926ejs:
|
||||
TEST_PY_BD: "integratorcp_cm926ejs"
|
||||
TEST_PY_ID: "--id qemu"
|
||||
TEST_PY_TEST_SPEC: "not sleep"
|
||||
BUILDMAN: "^integratorcp_cm926ejs$"
|
||||
qemu_arm:
|
||||
TEST_PY_BD: "qemu_arm"
|
||||
TEST_PY_TEST_SPEC: "not sleep"
|
||||
BUILDMAN: "^qemu_arm$"
|
||||
qemu_arm64:
|
||||
TEST_PY_BD: "qemu_arm64"
|
||||
TEST_PY_TEST_SPEC: "not sleep"
|
||||
BUILDMAN: "^qemu_arm64$"
|
||||
qemu_mips:
|
||||
TEST_PY_BD: "qemu_mips"
|
||||
TEST_PY_TEST_SPEC: "not sleep"
|
||||
BUILDMAN: "^qemu_mips$"
|
||||
qemu_mipsel:
|
||||
TEST_PY_BD: "qemu_mipsel"
|
||||
TEST_PY_TEST_SPEC: "not sleep"
|
||||
BUILDMAN: "^qemu_mipsel$"
|
||||
qemu_mips64:
|
||||
TEST_PY_BD: "qemu_mips64"
|
||||
TEST_PY_TEST_SPEC: "not sleep"
|
||||
BUILDMAN: "^qemu_mips64$"
|
||||
qemu_mips64el:
|
||||
TEST_PY_BD: "qemu_mips64el"
|
||||
TEST_PY_TEST_SPEC: "not sleep"
|
||||
BUILDMAN: "^qemu_mips64el$"
|
||||
qemu_ppce500:
|
||||
TEST_PY_BD: "qemu-ppce500"
|
||||
TEST_PY_TEST_SPEC: "not sleep"
|
||||
BUILDMAN: "^qemu-ppce500$"
|
||||
qemu_riscv32:
|
||||
TEST_PY_BD: "qemu-riscv32"
|
||||
TEST_PY_TEST_SPEC: "not sleep"
|
||||
qemu_riscv64:
|
||||
TEST_PY_BD: "qemu-riscv64"
|
||||
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:
|
||||
TEST_PY_BD: "qemu-x86"
|
||||
TEST_PY_TEST_SPEC: "not sleep"
|
||||
BUILDMAN: "^qemu-x86$"
|
||||
qemu_x86_64:
|
||||
TEST_PY_BD: "qemu-x86_64"
|
||||
TEST_PY_TEST_SPEC: "not sleep"
|
||||
BUILDMAN: "^qemu-x86_64$"
|
||||
zynq_zc702:
|
||||
TEST_PY_BD: "zynq_zc702"
|
||||
xilinx_zynq_virt:
|
||||
TEST_PY_BD: "xilinx_zynq_virt"
|
||||
TEST_PY_ID: "--id qemu"
|
||||
TEST_PY_TEST_SPEC: "not sleep"
|
||||
BUILDMAN: "^zynq_zc702$"
|
||||
xilinx_versal_virt:
|
||||
TEST_PY_BD: "xilinx_versal_virt"
|
||||
TEST_PY_ID: "--id qemu"
|
||||
TEST_PY_TEST_SPEC: "not sleep"
|
||||
BUILDMAN: "^xilinx_versal_virt$"
|
||||
xtfpga:
|
||||
TEST_PY_BD: "xtfpga"
|
||||
TEST_PY_ID: "--id qemu"
|
||||
TEST_PY_TEST_SPEC: "not sleep"
|
||||
BUILDMAN: "^xtfpga$"
|
||||
steps:
|
||||
- script: |
|
||||
cat << EOF > test.sh
|
||||
|
@ -251,7 +240,6 @@ jobs:
|
|||
export TEST_PY_BD="${TEST_PY_BD}"
|
||||
export TEST_PY_ID="${TEST_PY_ID}"
|
||||
export TEST_PY_TEST_SPEC="${TEST_PY_TEST_SPEC}"
|
||||
export BUILDMAN="${BUILDMAN}"
|
||||
export OVERRIDE="${OVERRIDE}"
|
||||
EOF
|
||||
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_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/grubriscv32.efi ~/grub_riscv32.efi
|
||||
cp /opt/grub/grubaa64.efi ~/grub_arm64.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"
|
||||
cd ${WORK_DIR}
|
||||
if [[ "${BUILDMAN}" != "" ]]; then
|
||||
ret=0;
|
||||
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
|
||||
export UBOOT_TRAVIS_BUILD_DIR=/tmp/${TEST_PY_BD};
|
||||
tools/buildman/buildman -o ${UBOOT_TRAVIS_BUILD_DIR} -w -E -W -e --board ${TEST_PY_BD} ${OVERRIDE}
|
||||
virtualenv -p /usr/bin/python3 /tmp/venv
|
||||
. /tmp/venv/bin/activate
|
||||
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 PYTHONPATH=/tmp/uboot-test-hooks/py/travis-ci;
|
||||
if [[ "${TEST_PY_BD}" != "" ]]; then
|
||||
./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";
|
||||
ret=$?;
|
||||
if [[ $ret -ne 0 ]]; then
|
||||
exit $ret;
|
||||
fi;
|
||||
fi
|
||||
# "${var:+"-k $var"}" expands to "" if $var is empty, "-k $var" if not
|
||||
./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";
|
||||
# the below corresponds to .gitlab-ci.yml "after_script"
|
||||
rm -rf /tmp/uboot-test-hooks /tmp/venv
|
||||
EOF
|
||||
|
@ -421,9 +406,9 @@ jobs:
|
|||
cat << "EOF" >> build.sh
|
||||
if [[ "${BUILDMAN}" != "" ]]; then
|
||||
ret=0;
|
||||
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};
|
||||
tools/buildman/buildman -o /tmp -P -W ${BUILDMAN} ${OVERRIDE} || ret=$?;
|
||||
if [[ $ret -ne 0 ]]; then
|
||||
tools/buildman/buildman -o /tmp -seP ${BUILDMAN};
|
||||
exit $ret;
|
||||
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:
|
||||
# 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.
|
||||
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_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/grubriscv32.efi ~/grub_riscv32.efi
|
||||
- cp /opt/grub/grubaa64.efi ~/grub_arm64.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:
|
||||
- rm -rf /tmp/uboot-test-hooks /tmp/venv
|
||||
script:
|
||||
# From buildman, exit code 129 means warnings only. If we've been asked to
|
||||
# use clang only do one configuration.
|
||||
- if [[ "${BUILDMAN}" != "" ]]; then
|
||||
ret=0;
|
||||
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.
|
||||
# If we've been asked to use clang only do one configuration.
|
||||
- export UBOOT_TRAVIS_BUILD_DIR=/tmp/${TEST_PY_BD}
|
||||
- tools/buildman/buildman -o ${UBOOT_TRAVIS_BUILD_DIR} -w -E -W -e
|
||||
--board ${TEST_PY_BD} ${OVERRIDE}
|
||||
- virtualenv -p /usr/bin/python3 /tmp/venv
|
||||
- . /tmp/venv/bin/activate
|
||||
- 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};
|
||||
# "${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 PYTHONPATH=/tmp/uboot-test-hooks/py/travis-ci;
|
||||
if [[ "${TEST_PY_BD}" != "" ]]; then
|
||||
./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";
|
||||
ret=$?;
|
||||
if [[ $ret -ne 0 ]]; then
|
||||
exit $ret;
|
||||
fi;
|
||||
fi;
|
||||
./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"
|
||||
|
||||
build all 32bit ARM platforms:
|
||||
tags: [ 'all' ]
|
||||
stage: world build
|
||||
script:
|
||||
- ret=0;
|
||||
./tools/buildman/buildman -o /tmp -P -E arm -x aarch64 || ret=$?;
|
||||
if [[ $ret -ne 0 && $ret -ne 129 ]]; then
|
||||
./tools/buildman/buildman -o /tmp -sdeP;
|
||||
./tools/buildman/buildman -o /tmp -P -E -W arm -x aarch64 || ret=$?;
|
||||
if [[ $ret -ne 0 ]]; then
|
||||
./tools/buildman/buildman -o /tmp -seP;
|
||||
exit $ret;
|
||||
fi;
|
||||
|
||||
|
@ -76,9 +69,9 @@ build all 64bit ARM platforms:
|
|||
- . /tmp/venv/bin/activate
|
||||
- pip install pyelftools
|
||||
- ret=0;
|
||||
./tools/buildman/buildman -o /tmp -P -E aarch64 || ret=$?;
|
||||
if [[ $ret -ne 0 && $ret -ne 129 ]]; then
|
||||
./tools/buildman/buildman -o /tmp -sdeP;
|
||||
./tools/buildman/buildman -o /tmp -P -E -W aarch64 || ret=$?;
|
||||
if [[ $ret -ne 0 ]]; then
|
||||
./tools/buildman/buildman -o /tmp -seP;
|
||||
exit $ret;
|
||||
fi;
|
||||
|
||||
|
@ -87,9 +80,9 @@ build all PowerPC platforms:
|
|||
stage: world build
|
||||
script:
|
||||
- ret=0;
|
||||
./tools/buildman/buildman -o /tmp -P -E powerpc || ret=$?;
|
||||
if [[ $ret -ne 0 && $ret -ne 129 ]]; then
|
||||
./tools/buildman/buildman -o /tmp -sdeP;
|
||||
./tools/buildman/buildman -o /tmp -P -E -W powerpc || ret=$?;
|
||||
if [[ $ret -ne 0 ]]; then
|
||||
./tools/buildman/buildman -o /tmp -seP;
|
||||
exit $ret;
|
||||
fi;
|
||||
|
||||
|
@ -98,9 +91,9 @@ build all other platforms:
|
|||
stage: world build
|
||||
script:
|
||||
- ret=0;
|
||||
./tools/buildman/buildman -o /tmp -P -E -x arm,powerpc || ret=$?;
|
||||
if [[ $ret -ne 0 && $ret -ne 129 ]]; then
|
||||
./tools/buildman/buildman -o /tmp -sdeP;
|
||||
./tools/buildman/buildman -o /tmp -P -E -W -x arm,powerpc || ret=$?;
|
||||
if [[ $ret -ne 0 ]]; then
|
||||
./tools/buildman/buildman -o /tmp -seP;
|
||||
exit $ret;
|
||||
fi;
|
||||
|
||||
|
@ -110,7 +103,7 @@ cppcheck:
|
|||
tags: [ 'all' ]
|
||||
stage: testsuites
|
||||
script:
|
||||
- cppcheck --force --quiet --inline-suppr .
|
||||
- cppcheck -j$(nproc) --force --quiet --inline-suppr .
|
||||
|
||||
# search for TODO within source tree
|
||||
grep TODO/FIXME/HACK:
|
||||
|
@ -157,7 +150,7 @@ Build envtools:
|
|||
script:
|
||||
- make tools-only_config envtools -j$(nproc)
|
||||
|
||||
Run binman, buildman, dtoc and patman testsuites:
|
||||
Run binman, buildman, dtoc, Kconfig and patman testsuites:
|
||||
tags: [ 'all' ]
|
||||
stage: testsuites
|
||||
script:
|
||||
|
@ -166,29 +159,28 @@ Run binman, buildman, dtoc and patman testsuites:
|
|||
export USER=gitlab;
|
||||
virtualenv -p /usr/bin/python3 /tmp/venv;
|
||||
. /tmp/venv/bin/activate;
|
||||
pip install pyelftools;
|
||||
export UBOOT_TRAVIS_BUILD_DIR=/tmp/.bm-work/sandbox_spl;
|
||||
pip install pyelftools pytest;
|
||||
export UBOOT_TRAVIS_BUILD_DIR=/tmp/sandbox_spl;
|
||||
export PYTHONPATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt";
|
||||
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/buildman/buildman -t;
|
||||
./tools/dtoc/dtoc -t;
|
||||
./tools/patman/patman --test
|
||||
./tools/patman/patman --test;
|
||||
make testconfig
|
||||
|
||||
# Test sandbox with test.py
|
||||
sandbox test.py:
|
||||
tags: [ 'all' ]
|
||||
variables:
|
||||
TEST_PY_BD: "sandbox"
|
||||
BUILDMAN: "^sandbox$"
|
||||
<<: *buildman_and_testpy_dfn
|
||||
|
||||
sandbox with clang test.py:
|
||||
tags: [ 'all' ]
|
||||
variables:
|
||||
TEST_PY_BD: "sandbox"
|
||||
BUILDMAN: "^sandbox$"
|
||||
OVERRIDE: "-O clang-7"
|
||||
<<: *buildman_and_testpy_dfn
|
||||
|
||||
|
@ -196,8 +188,7 @@ sandbox_spl test.py:
|
|||
tags: [ 'all' ]
|
||||
variables:
|
||||
TEST_PY_BD: "sandbox_spl"
|
||||
BUILDMAN: "^sandbox_spl$"
|
||||
TEST_PY_TEST_SPEC: "test_ofplatdata"
|
||||
TEST_PY_TEST_SPEC: "test_ofplatdata or test_handoff"
|
||||
<<: *buildman_and_testpy_dfn
|
||||
|
||||
evb-ast2500 test.py:
|
||||
|
@ -205,14 +196,12 @@ evb-ast2500 test.py:
|
|||
variables:
|
||||
TEST_PY_BD: "evb-ast2500"
|
||||
TEST_PY_ID: "--id qemu"
|
||||
BUILDMAN: "^evb-ast2500$"
|
||||
<<: *buildman_and_testpy_dfn
|
||||
|
||||
sandbox_flattree test.py:
|
||||
tags: [ 'all' ]
|
||||
variables:
|
||||
TEST_PY_BD: "sandbox_flattree"
|
||||
BUILDMAN: "^sandbox_flattree$"
|
||||
<<: *buildman_and_testpy_dfn
|
||||
|
||||
vexpress_ca15_tc2 test.py:
|
||||
|
@ -220,7 +209,6 @@ vexpress_ca15_tc2 test.py:
|
|||
variables:
|
||||
TEST_PY_BD: "vexpress_ca15_tc2"
|
||||
TEST_PY_ID: "--id qemu"
|
||||
BUILDMAN: "^vexpress_ca15_tc2$"
|
||||
<<: *buildman_and_testpy_dfn
|
||||
|
||||
vexpress_ca9x4 test.py:
|
||||
|
@ -228,7 +216,6 @@ vexpress_ca9x4 test.py:
|
|||
variables:
|
||||
TEST_PY_BD: "vexpress_ca9x4"
|
||||
TEST_PY_ID: "--id qemu"
|
||||
BUILDMAN: "^vexpress_ca9x4$"
|
||||
<<: *buildman_and_testpy_dfn
|
||||
|
||||
integratorcp_cm926ejs test.py:
|
||||
|
@ -237,7 +224,6 @@ integratorcp_cm926ejs test.py:
|
|||
TEST_PY_BD: "integratorcp_cm926ejs"
|
||||
TEST_PY_TEST_SPEC: "not sleep"
|
||||
TEST_PY_ID: "--id qemu"
|
||||
BUILDMAN: "^integratorcp_cm926ejs$"
|
||||
<<: *buildman_and_testpy_dfn
|
||||
|
||||
qemu_arm test.py:
|
||||
|
@ -245,7 +231,6 @@ qemu_arm test.py:
|
|||
variables:
|
||||
TEST_PY_BD: "qemu_arm"
|
||||
TEST_PY_TEST_SPEC: "not sleep"
|
||||
BUILDMAN: "^qemu_arm$"
|
||||
<<: *buildman_and_testpy_dfn
|
||||
|
||||
qemu_arm64 test.py:
|
||||
|
@ -253,7 +238,6 @@ qemu_arm64 test.py:
|
|||
variables:
|
||||
TEST_PY_BD: "qemu_arm64"
|
||||
TEST_PY_TEST_SPEC: "not sleep"
|
||||
BUILDMAN: "^qemu_arm64$"
|
||||
<<: *buildman_and_testpy_dfn
|
||||
|
||||
qemu_mips test.py:
|
||||
|
@ -261,7 +245,6 @@ qemu_mips test.py:
|
|||
variables:
|
||||
TEST_PY_BD: "qemu_mips"
|
||||
TEST_PY_TEST_SPEC: "not sleep"
|
||||
BUILDMAN: "^qemu_mips$"
|
||||
<<: *buildman_and_testpy_dfn
|
||||
|
||||
qemu_mipsel test.py:
|
||||
|
@ -269,7 +252,6 @@ qemu_mipsel test.py:
|
|||
variables:
|
||||
TEST_PY_BD: "qemu_mipsel"
|
||||
TEST_PY_TEST_SPEC: "not sleep"
|
||||
BUILDMAN: "^qemu_mipsel$"
|
||||
<<: *buildman_and_testpy_dfn
|
||||
|
||||
qemu_mips64 test.py:
|
||||
|
@ -277,7 +259,6 @@ qemu_mips64 test.py:
|
|||
variables:
|
||||
TEST_PY_BD: "qemu_mips64"
|
||||
TEST_PY_TEST_SPEC: "not sleep"
|
||||
BUILDMAN: "^qemu_mips64$"
|
||||
<<: *buildman_and_testpy_dfn
|
||||
|
||||
qemu_mips64el test.py:
|
||||
|
@ -285,7 +266,6 @@ qemu_mips64el test.py:
|
|||
variables:
|
||||
TEST_PY_BD: "qemu_mips64el"
|
||||
TEST_PY_TEST_SPEC: "not sleep"
|
||||
BUILDMAN: "^qemu_mips64el$"
|
||||
<<: *buildman_and_testpy_dfn
|
||||
|
||||
qemu-ppce500 test.py:
|
||||
|
@ -293,7 +273,13 @@ qemu-ppce500 test.py:
|
|||
variables:
|
||||
TEST_PY_BD: "qemu-ppce500"
|
||||
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
|
||||
|
||||
qemu-riscv64 test.py:
|
||||
|
@ -301,7 +287,20 @@ qemu-riscv64 test.py:
|
|||
variables:
|
||||
TEST_PY_BD: "qemu-riscv64"
|
||||
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
|
||||
|
||||
qemu-x86 test.py:
|
||||
|
@ -309,7 +308,6 @@ qemu-x86 test.py:
|
|||
variables:
|
||||
TEST_PY_BD: "qemu-x86"
|
||||
TEST_PY_TEST_SPEC: "not sleep"
|
||||
BUILDMAN: "^qemu-x86$"
|
||||
<<: *buildman_and_testpy_dfn
|
||||
|
||||
qemu-x86_64 test.py:
|
||||
|
@ -317,16 +315,14 @@ qemu-x86_64 test.py:
|
|||
variables:
|
||||
TEST_PY_BD: "qemu-x86_64"
|
||||
TEST_PY_TEST_SPEC: "not sleep"
|
||||
BUILDMAN: "^qemu-x86_64$"
|
||||
<<: *buildman_and_testpy_dfn
|
||||
|
||||
zynq_zc702 test.py:
|
||||
xilinx_zynq_virt test.py:
|
||||
tags: [ 'all' ]
|
||||
variables:
|
||||
TEST_PY_BD: "zynq_zc702"
|
||||
TEST_PY_BD: "xilinx_zynq_virt"
|
||||
TEST_PY_TEST_SPEC: "not sleep"
|
||||
TEST_PY_ID: "--id qemu"
|
||||
BUILDMAN: "^zynq_zc702$"
|
||||
<<: *buildman_and_testpy_dfn
|
||||
|
||||
xilinx_versal_virt test.py:
|
||||
|
@ -335,7 +331,6 @@ xilinx_versal_virt test.py:
|
|||
TEST_PY_BD: "xilinx_versal_virt"
|
||||
TEST_PY_TEST_SPEC: "not sleep"
|
||||
TEST_PY_ID: "--id qemu"
|
||||
BUILDMAN: "^xilinx_versal_virt$"
|
||||
<<: *buildman_and_testpy_dfn
|
||||
|
||||
xtfpga test.py:
|
||||
|
@ -344,5 +339,4 @@ xtfpga test.py:
|
|||
TEST_PY_BD: "xtfpga"
|
||||
TEST_PY_TEST_SPEC: "not sleep"
|
||||
TEST_PY_ID: "--id qemu"
|
||||
BUILDMAN: "^xtfpga$"
|
||||
<<: *buildman_and_testpy_dfn
|
||||
|
|
196
.travis.yml
196
.travis.yml
|
@ -14,6 +14,7 @@ addons:
|
|||
- ubuntu-toolchain-r-test
|
||||
- llvm-toolchain-bionic-7
|
||||
packages:
|
||||
- autopoint
|
||||
- cppcheck
|
||||
- sloccount
|
||||
- sparse
|
||||
|
@ -55,10 +56,6 @@ install:
|
|||
- 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_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
|
||||
|
||||
env:
|
||||
|
@ -100,6 +97,7 @@ before_script:
|
|||
fi
|
||||
- if [[ "${TOOLCHAIN}" == "powerpc" ]]; then ./tools/buildman/buildman --fetch-arch powerpc; fi
|
||||
- if [[ "${TOOLCHAIN}" == "riscv" ]]; then
|
||||
./tools/buildman/buildman --fetch-arch riscv32 &&
|
||||
./tools/buildman/buildman --fetch-arch riscv64;
|
||||
fi
|
||||
- if [[ "${QEMU_TARGET}" != "" ]]; then
|
||||
|
@ -112,47 +110,144 @@ before_script:
|
|||
popd;
|
||||
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:
|
||||
# Comments must be outside the command strings below, or the Travis parser
|
||||
# will get confused.
|
||||
#
|
||||
# From buildman, exit code 129 means warnings only. If we've been asked to
|
||||
# use clang only do one configuration.
|
||||
# If we've been asked to use clang only do one configuration.
|
||||
#
|
||||
# Build a selection of boards if TEST_PY_BD is empty
|
||||
- if [[ "${BUILDMAN}" != "" ]]; then
|
||||
ret=0;
|
||||
tools/buildman/buildman -P -E ${BUILDMAN} ${OVERRIDE}|| ret=$?;
|
||||
if [[ $ret -ne 0 && $ret -ne 129 ]]; then
|
||||
tools/buildman/buildman -sdeP ${BUILDMAN};
|
||||
tools/buildman/buildman -P -E -W ${BUILDMAN} ${OVERRIDE};
|
||||
if [[ $ret -ne 0 ]]; then
|
||||
tools/buildman/buildman -seP ${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.
|
||||
- export UBOOT_TRAVIS_BUILD_DIR=`cd .. && pwd`/.bm-work/${TEST_PY_BD};
|
||||
cp ~/grub_x86.efi $UBOOT_TRAVIS_BUILD_DIR/;
|
||||
cp ~/grub_x64.efi $UBOOT_TRAVIS_BUILD_DIR/;
|
||||
cp ~/grub2-arm/usr/lib/grub2/arm-efi/grub.efi $UBOOT_TRAVIS_BUILD_DIR/grub_arm.efi;
|
||||
cp ~/grub2-arm64/usr/lib/grub2/arm64-efi/grub.efi $UBOOT_TRAVIS_BUILD_DIR/grub_arm64.efi;
|
||||
if [[ "${TEST_PY_BD}" != "" ]]; then
|
||||
# Build just the one board needed for testing, if TEST_PY_BD is non-empty
|
||||
# Note: "${var:+"-k $var"}" expands to "" if $var is empty, "-k $var" if not
|
||||
- if [[ "${TEST_PY_BD}" != "" ]]; then
|
||||
export UBOOT_TRAVIS_BUILD_DIR=`cd .. && pwd`/${TEST_PY_BD};
|
||||
cp ~/grub_x86.efi $UBOOT_TRAVIS_BUILD_DIR/;
|
||||
cp ~/grub_x64.efi $UBOOT_TRAVIS_BUILD_DIR/;
|
||||
if [[ -e ~/grub_arm.efi ]]; then
|
||||
cp ~/grub_arm.efi $UBOOT_TRAVIS_BUILD_DIR/;
|
||||
fi;
|
||||
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;
|
||||
. /tmp/venv/bin/activate;
|
||||
pip install -r test/py/requirements.txt;
|
||||
./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";
|
||||
ret=$?;
|
||||
if [[ $ret -ne 0 ]]; then
|
||||
exit $ret;
|
||||
fi;
|
||||
${TEST_PY_TEST_SPEC:+"-k ${TEST_PY_TEST_SPEC}"}
|
||||
--build-dir "$UBOOT_TRAVIS_BUILD_DIR" || exit;
|
||||
if [[ -n "${TEST_PY_TOOLS}" ]]; then
|
||||
export PYTHONPATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt";
|
||||
export PATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc:${PATH}";
|
||||
./tools/binman/binman --toolpath ${UBOOT_TRAVIS_BUILD_DIR}/tools test &&
|
||||
./tools/patman/patman --test &&
|
||||
./tools/buildman/buildman -t &&
|
||||
./tools/dtoc/dtoc -t;
|
||||
./tools/dtoc/dtoc -t &&
|
||||
make testconfig;
|
||||
fi;
|
||||
fi
|
||||
|
||||
|
@ -353,7 +448,7 @@ matrix:
|
|||
# static code analysis with cppcheck (we can add --enable=all later)
|
||||
- name: "cppcheck"
|
||||
script:
|
||||
- cppcheck --force --quiet --inline-suppr .
|
||||
- cppcheck -j$(nproc) --force --quiet --inline-suppr .
|
||||
# build HTML documentation
|
||||
- name: "htmldocs"
|
||||
script:
|
||||
|
@ -390,110 +485,111 @@ matrix:
|
|||
- name: "test/py sandbox"
|
||||
env:
|
||||
- TEST_PY_BD="sandbox"
|
||||
BUILDMAN="^sandbox$"
|
||||
TOOLCHAIN="i386"
|
||||
- name: "test/py sandbox with clang"
|
||||
env:
|
||||
- TEST_PY_BD="sandbox"
|
||||
BUILDMAN="^sandbox$"
|
||||
OVERRIDE="-O clang-7"
|
||||
- name: "test/py sandbox_spl"
|
||||
env:
|
||||
- TEST_PY_BD="sandbox_spl"
|
||||
TEST_PY_TEST_SPEC="test_ofplatdata"
|
||||
BUILDMAN="^sandbox$"
|
||||
TEST_PY_TEST_SPEC="test_ofplatdata or test_handoff"
|
||||
TOOLCHAIN="i386"
|
||||
TEST_PY_TOOLS="yes"
|
||||
- name: "test/py sandbox_flattree"
|
||||
env:
|
||||
- TEST_PY_BD="sandbox_flattree"
|
||||
BUILDMAN="^sandbox_flattree$"
|
||||
TOOLCHAIN="i386"
|
||||
- name: "test/py evb-ast2500"
|
||||
env:
|
||||
- TEST_PY_BD="evb-ast2500"
|
||||
TEST_PY_ID="--id qemu"
|
||||
QEMU_TARGET="arm-softmmu"
|
||||
BUILDMAN="^evb-ast2500$"
|
||||
- name: "test/py vexpress_ca15_tc2"
|
||||
env:
|
||||
- TEST_PY_BD="vexpress_ca15_tc2"
|
||||
TEST_PY_ID="--id qemu"
|
||||
QEMU_TARGET="arm-softmmu"
|
||||
BUILDMAN="^vexpress_ca15_tc2$"
|
||||
- name: "test/py vexpress_ca9x4"
|
||||
env:
|
||||
- TEST_PY_BD="vexpress_ca9x4"
|
||||
TEST_PY_ID="--id qemu"
|
||||
QEMU_TARGET="arm-softmmu"
|
||||
BUILDMAN="^vexpress_ca9x4$"
|
||||
- name: "test/py integratorcp_cm926ejs"
|
||||
env:
|
||||
- TEST_PY_BD="integratorcp_cm926ejs"
|
||||
TEST_PY_TEST_SPEC="not sleep"
|
||||
TEST_PY_ID="--id qemu"
|
||||
QEMU_TARGET="arm-softmmu"
|
||||
BUILDMAN="^integratorcp_cm926ejs$"
|
||||
- name: "test/py qemu_arm"
|
||||
env:
|
||||
- TEST_PY_BD="qemu_arm"
|
||||
TEST_PY_TEST_SPEC="not sleep"
|
||||
QEMU_TARGET="arm-softmmu"
|
||||
BUILDMAN="^qemu_arm$"
|
||||
- name: "test/py qemu_arm64"
|
||||
env:
|
||||
- TEST_PY_BD="qemu_arm64"
|
||||
TEST_PY_TEST_SPEC="not sleep"
|
||||
QEMU_TARGET="aarch64-softmmu"
|
||||
BUILDMAN="^qemu_arm64$"
|
||||
- name: "test/py qemu_mips"
|
||||
env:
|
||||
- TEST_PY_BD="qemu_mips"
|
||||
TEST_PY_TEST_SPEC="not sleep"
|
||||
QEMU_TARGET="mips-softmmu"
|
||||
BUILDMAN="^qemu_mips$"
|
||||
TOOLCHAIN="mips"
|
||||
- name: "test/py qemu_mipsel"
|
||||
env:
|
||||
- TEST_PY_BD="qemu_mipsel"
|
||||
TEST_PY_TEST_SPEC="not sleep"
|
||||
QEMU_TARGET="mipsel-softmmu"
|
||||
BUILDMAN="^qemu_mipsel$"
|
||||
TOOLCHAIN="mips"
|
||||
- name: "test/py qemu_mips64"
|
||||
env:
|
||||
- TEST_PY_BD="qemu_mips64"
|
||||
TEST_PY_TEST_SPEC="not sleep"
|
||||
QEMU_TARGET="mips64-softmmu"
|
||||
BUILDMAN="^qemu_mips64$"
|
||||
TOOLCHAIN="mips"
|
||||
- name: "test/py qemu_mips64el"
|
||||
env:
|
||||
- TEST_PY_BD="qemu_mips64el"
|
||||
TEST_PY_TEST_SPEC="not sleep"
|
||||
QEMU_TARGET="mips64el-softmmu"
|
||||
BUILDMAN="^qemu_mips64el$"
|
||||
TOOLCHAIN="mips"
|
||||
- name: "test/py qemu-ppce500"
|
||||
env:
|
||||
- TEST_PY_BD="qemu-ppce500"
|
||||
TEST_PY_TEST_SPEC="not sleep"
|
||||
QEMU_TARGET="ppc-softmmu"
|
||||
BUILDMAN="^qemu-ppce500$"
|
||||
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"
|
||||
env:
|
||||
- TEST_PY_BD="qemu-riscv64"
|
||||
TEST_PY_TEST_SPEC="not sleep"
|
||||
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"
|
||||
- name: "test/py qemu-x86"
|
||||
env:
|
||||
- TEST_PY_BD="qemu-x86"
|
||||
TEST_PY_TEST_SPEC="not sleep"
|
||||
QEMU_TARGET="i386-softmmu"
|
||||
BUILDMAN="^qemu-x86$"
|
||||
TOOLCHAIN="i386"
|
||||
BUILD_ROM="yes"
|
||||
- name: "test/py qemu-x86_64"
|
||||
|
@ -501,30 +597,26 @@ matrix:
|
|||
- TEST_PY_BD="qemu-x86_64"
|
||||
TEST_PY_TEST_SPEC="not sleep"
|
||||
QEMU_TARGET="x86_64-softmmu"
|
||||
BUILDMAN="^qemu-x86_64$"
|
||||
TOOLCHAIN="i386"
|
||||
BUILD_ROM="yes"
|
||||
- name: "test/py zynq_zc702"
|
||||
- name: "test/py xilinx_zynq_virt"
|
||||
env:
|
||||
- TEST_PY_BD="zynq_zc702"
|
||||
- TEST_PY_BD="xilinx_zynq_virt"
|
||||
TEST_PY_TEST_SPEC="not sleep"
|
||||
QEMU_TARGET="arm-softmmu"
|
||||
TEST_PY_ID="--id qemu"
|
||||
BUILDMAN="^zynq_zc702$"
|
||||
- name: "test/py xilinx_versal_virt"
|
||||
env:
|
||||
- TEST_PY_BD="xilinx_versal_virt"
|
||||
TEST_PY_TEST_SPEC="not sleep"
|
||||
QEMU_TARGET="aarch64-softmmu"
|
||||
TEST_PY_ID="--id qemu"
|
||||
BUILDMAN="^xilinx_versal_virt$"
|
||||
- name: "test/py xtfpga"
|
||||
env:
|
||||
- TEST_PY_BD="xtfpga"
|
||||
TEST_PY_TEST_SPEC="not sleep"
|
||||
QEMU_TARGET="xtensa-softmmu"
|
||||
TEST_PY_ID="--id qemu"
|
||||
BUILDMAN="^xtfpga$"
|
||||
TOOLCHAIN="xtensa-dc233c-elf"
|
||||
|
||||
# TODO make it perfect ;-r
|
||||
|
|
10
Kconfig
10
Kconfig
|
@ -3,11 +3,7 @@
|
|||
# see the file Documentation/kbuild/kconfig-language.txt in the
|
||||
# Linux kernel source tree.
|
||||
#
|
||||
mainmenu "U-Boot $UBOOTVERSION Configuration"
|
||||
|
||||
config UBOOTVERSION
|
||||
string
|
||||
option env="UBOOTVERSION"
|
||||
mainmenu "U-Boot $(UBOOTVERSION) Configuration"
|
||||
|
||||
# Allow defaults in arch-specific code to override any given here
|
||||
source "arch/Kconfig"
|
||||
|
@ -360,6 +356,8 @@ config FIT_SIGNATURE
|
|||
depends on DM
|
||||
select HASH
|
||||
select RSA
|
||||
select RSA_VERIFY
|
||||
select IMAGE_SIGN_INFO
|
||||
help
|
||||
This option enables signature verification of FIT uImages,
|
||||
using a hash signed and verified using RSA. If
|
||||
|
@ -448,6 +446,8 @@ config SPL_FIT_SIGNATURE
|
|||
depends on SPL_DM
|
||||
select SPL_FIT
|
||||
select SPL_RSA
|
||||
select SPL_RSA_VERIFY
|
||||
select IMAGE_SIGN_INFO
|
||||
|
||||
config SPL_LOAD_FIT
|
||||
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
|
||||
T: git https://gitlab.denx.de/u-boot/custodians/u-boot-microblaze.git
|
||||
F: arch/arm/mach-versal/
|
||||
F: drivers/watchdog/xilinx_wwdt.c
|
||||
N: (?<!uni)versal
|
||||
|
||||
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 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
|
||||
HOSTCXX = c++
|
||||
HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer \
|
||||
$(if $(CONFIG_TOOLS_DEBUG),-g)
|
||||
HOSTCXXFLAGS = -O2
|
||||
KBUILD_HOSTCFLAGS := -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer \
|
||||
$(if $(CONFIG_TOOLS_DEBUG),-g) $(HOST_LFS_CFLAGS) $(HOSTCFLAGS)
|
||||
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
|
||||
# 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).
|
||||
CSTD_FLAG := -std=gnu11
|
||||
ifeq ($(HOSTOS),linux)
|
||||
HOSTCFLAGS += $(CSTD_FLAG)
|
||||
KBUILD_HOSTCFLAGS += $(CSTD_FLAG)
|
||||
endif
|
||||
|
||||
ifeq ($(HOSTOS),cygwin)
|
||||
HOSTCFLAGS += -ansi
|
||||
KBUILD_HOSTCFLAGS += -ansi
|
||||
endif
|
||||
|
||||
# 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
|
||||
HOSTCC = $(call os_x_before, 10, 5, "cc", "gcc")
|
||||
HOSTCFLAGS += $(call os_x_before, 10, 4, "-traditional-cpp")
|
||||
HOSTLDFLAGS += $(call os_x_before, 10, 5, "-multiply_defined suppress")
|
||||
KBUILD_HOSTCFLAGS += $(call os_x_before, 10, 4, "-traditional-cpp")
|
||||
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
|
||||
# in some host tools which is a problem then ... so disable ASLR for these
|
||||
# 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)
|
||||
# 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
|
||||
|
||||
# Decide whether to build built-in, modular, or both.
|
||||
|
@ -417,6 +423,23 @@ KBUILD_CFLAGS := -Wall -Wstrict-prototypes \
|
|||
-fno-builtin -ffreestanding $(CSTD_FLAG)
|
||||
KBUILD_CFLAGS += -fshort-wchar -fno-strict-aliasing
|
||||
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
|
||||
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 ARCH CPU BOARD VENDOR SOC CPUDIR BOARDDIR
|
||||
export CONFIG_SHELL HOSTCC HOSTCFLAGS HOSTLDFLAGS CROSS_COMPILE AS LD CC
|
||||
export CPP AR NM LDR STRIP OBJCOPY OBJDUMP
|
||||
export CONFIG_SHELL HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE AS LD CC
|
||||
export CPP AR NM LDR STRIP OBJCOPY OBJDUMP KBUILD_HOSTLDFLAGS KBUILD_HOSTLDLIBS
|
||||
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 CC_VERSION_TEXT := $(shell $(CC) --version | head -n 1)
|
||||
|
||||
# When compiling out-of-tree modules, put MODVERDIR in the module
|
||||
# tree rather than in the kernel tree. The kernel tree might
|
||||
# even be read-only.
|
||||
|
@ -483,6 +508,7 @@ endif
|
|||
version_h := include/generated/version_autogenerated.h
|
||||
timestamp_h := include/generated/timestamp_autogenerated.h
|
||||
defaultenv_h := include/generated/defaultenv_autogenerated.h
|
||||
dt_h := include/generated/dt.h
|
||||
|
||||
no-dot-config-targets := clean clobber mrproper distclean \
|
||||
help %docs check% coccicheck \
|
||||
|
@ -654,6 +680,9 @@ endif
|
|||
KBUILD_CFLAGS += $(call cc-option,-fno-stack-protector)
|
||||
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
|
||||
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_CFLAGS += $(call cc-disable-warning, format-invalid-specifier)
|
||||
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)
|
||||
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
|
||||
|
||||
# turn jbsr into jsr for m68k
|
||||
|
@ -710,7 +751,6 @@ UBOOTINCLUDE := \
|
|||
-include $(srctree)/include/linux/kconfig.h
|
||||
|
||||
NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include)
|
||||
CHECKFLAGS += $(NOSTDINC_FLAGS)
|
||||
|
||||
# FIX ME
|
||||
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)
|
||||
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
|
||||
quiet_cmd_objcopy = OBJCOPY $@
|
||||
cmd_objcopy = $(OBJCOPY) --gap-fill=0xff $(OBJCOPYFLAGS) \
|
||||
|
@ -1683,7 +1729,7 @@ ARCH_POSTLINK := $(wildcard $(srctree)/arch/$(ARCH)/Makefile.postlink)
|
|||
# Rule to link u-boot
|
||||
# May be overridden by arch/$(ARCH)/config.mk
|
||||
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) \
|
||||
--start-group $(u-boot-main) --end-group \
|
||||
$(PLATFORM_LIBS) -Map u-boot.map; \
|
||||
|
@ -1767,7 +1813,7 @@ endif
|
|||
# prepare2 creates a makefile if using a separate output directory
|
||||
prepare2: prepare3 outputmakefile cfg
|
||||
|
||||
prepare1: prepare2 $(version_h) $(timestamp_h) \
|
||||
prepare1: prepare2 $(version_h) $(timestamp_h) $(dt_h) \
|
||||
include/config/auto.conf
|
||||
ifeq ($(wildcard $(LDSCRIPT)),)
|
||||
@echo >&2 " Could not find linker script."
|
||||
|
@ -1833,12 +1879,23 @@ define filechk_defaultenv.h
|
|||
xxd -i ; echo ", 0x00" ; )
|
||||
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
|
||||
$(call filechk,version.h)
|
||||
|
||||
$(timestamp_h): $(srctree)/Makefile FORCE
|
||||
$(call filechk,timestamp.h)
|
||||
|
||||
$(dt_h): $(srctree)/Makefile FORCE
|
||||
$(call filechk,dt.h)
|
||||
|
||||
$(defaultenv_h): $(CONFIG_DEFAULT_ENV_FILE:"%"=%) FORCE
|
||||
$(call filechk,defaultenv.h)
|
||||
|
||||
|
@ -2195,6 +2252,6 @@ endif # skip-makefile
|
|||
PHONY += 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.
|
||||
.PHONY: $(PHONY)
|
||||
|
|
|
@ -9,12 +9,12 @@ CONFIG_SYS_BIG_ENDIAN = 1
|
|||
endif
|
||||
|
||||
ifdef CONFIG_SYS_LITTLE_ENDIAN
|
||||
PLATFORM_LDFLAGS += -EL
|
||||
KBUILD_LDFLAGS += -EL
|
||||
PLATFORM_CPPFLAGS += -mlittle-endian
|
||||
endif
|
||||
|
||||
ifdef CONFIG_SYS_BIG_ENDIAN
|
||||
PLATFORM_LDFLAGS += -EB
|
||||
KBUILD_LDFLAGS += -EB
|
||||
PLATFORM_CPPFLAGS += -mbig-endian
|
||||
endif
|
||||
|
||||
|
|
|
@ -147,7 +147,9 @@ dtb-$(CONFIG_ARCH_MESON) += \
|
|||
meson-gxl-s805x-libretech-ac.dtb \
|
||||
meson-gxl-s905x-libretech-cc.dtb \
|
||||
meson-gxl-s905x-khadas-vim.dtb \
|
||||
meson-gxl-s905d-libretech-pc.dtb \
|
||||
meson-gxm-khadas-vim2.dtb \
|
||||
meson-gxm-s912-libretech-pc.dtb \
|
||||
meson-axg-s400.dtb \
|
||||
meson-g12a-u200.dtb \
|
||||
meson-g12a-sei510.dtb \
|
||||
|
@ -277,6 +279,7 @@ dtb-$(CONFIG_ARCH_ZYNQMP) += \
|
|||
zynqmp-zcu102-revA.dtb \
|
||||
zynqmp-zcu102-revB.dtb \
|
||||
zynqmp-zcu102-rev1.0.dtb \
|
||||
zynqmp-zcu102-rev1.1.dtb \
|
||||
zynqmp-zcu104-revA.dtb \
|
||||
zynqmp-zcu104-revC.dtb \
|
||||
zynqmp-zcu106-revA.dtb \
|
||||
|
|
|
@ -53,6 +53,8 @@
|
|||
bkl-pwm = <&pwmbacklight>;
|
||||
bkl-tps = <&tps_bl>;
|
||||
|
||||
u-boot,dm-pre-reloc;
|
||||
|
||||
panel-info {
|
||||
ac-bias = <255>;
|
||||
ac-bias-intrpt = <0>;
|
||||
|
|
|
@ -53,6 +53,8 @@
|
|||
bkl-pwm = <&pwmbacklight>;
|
||||
bkl-tps = <&tps_bl>;
|
||||
|
||||
u-boot,dm-pre-reloc;
|
||||
|
||||
panel-info {
|
||||
ac-bias = <255>;
|
||||
ac-bias-intrpt = <0>;
|
||||
|
|
|
@ -54,6 +54,8 @@
|
|||
bkl-pwm = <&pwmbacklight>;
|
||||
bkl-tps = <&tps_bl>;
|
||||
|
||||
u-boot,dm-pre-reloc;
|
||||
|
||||
panel-info {
|
||||
ac-bias = <255>;
|
||||
ac-bias-intrpt = <0>;
|
||||
|
|
|
@ -59,6 +59,7 @@
|
|||
/*backlight = <&tps_bl>; */
|
||||
compatible = "ti,tilcdc,panel";
|
||||
status = "okay";
|
||||
u-boot,dm-pre-reloc;
|
||||
|
||||
panel-info {
|
||||
ac-bias = <255>;
|
||||
|
|
|
@ -79,6 +79,8 @@
|
|||
|
||||
backlight = <&tps_bl>;
|
||||
|
||||
u-boot,dm-pre-reloc;
|
||||
|
||||
panel-info {
|
||||
ac-bias = <255>;
|
||||
ac-bias-intrpt = <0>;
|
||||
|
|
|
@ -3,6 +3,12 @@
|
|||
* Copyright (C) 2017 Texas Instruments Incorporated - http://www.ti.com/
|
||||
*/
|
||||
|
||||
/ {
|
||||
panel {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
&mmc3 {
|
||||
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 {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
panel {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
};
|
||||
|
||||
&l4_wkup {
|
||||
|
|
|
@ -7,6 +7,10 @@
|
|||
ocp {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
panel {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
};
|
||||
|
||||
&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
|
||||
*
|
||||
* (C) Copyright 2018, Xilinx, Inc.
|
||||
* (C) Copyright 2018 - 2020, Xilinx, Inc.
|
||||
*
|
||||
* Michal Simek <michal.simek@xilinx.com>
|
||||
*/
|
||||
|
|
|
@ -14,6 +14,10 @@
|
|||
nand {
|
||||
compatible = "ti,davinci-nand";
|
||||
};
|
||||
|
||||
panel {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
};
|
||||
|
||||
ð0 {
|
||||
|
|
|
@ -64,4 +64,42 @@
|
|||
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;
|
||||
i2c4 = &main_i2c2;
|
||||
i2c5 = &main_i2c3;
|
||||
spi0 = &ospi0;
|
||||
spi1 = &ospi1;
|
||||
};
|
||||
|
||||
chosen { };
|
||||
|
@ -79,7 +81,11 @@
|
|||
<0x00 0x42040000 0x00 0x42040000 0x00 0x03ac2400>,
|
||||
<0x00 0x45100000 0x00 0x45100000 0x00 0x00c24000>,
|
||||
<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 {
|
||||
compatible = "simple-bus";
|
||||
|
@ -93,7 +99,10 @@
|
|||
<0x00 0x42040000 0x00 0x42040000 0x00 0x03ac2400>, /* WKUP */
|
||||
<0x00 0x45100000 0x00 0x45100000 0x00 0x00c24000>, /* MMRs, remaining NAVSS */
|
||||
<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 {
|
||||
compatible = "simple-bus";
|
||||
|
|
|
@ -52,6 +52,7 @@
|
|||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
u-boot,dm-spl;
|
||||
|
||||
ti,sci-dev-id = <119>;
|
||||
|
||||
|
@ -68,6 +69,7 @@
|
|||
ti,dma-ring-reset-quirk;
|
||||
ti,sci = <&dmsc>;
|
||||
ti,sci-dev-id = <195>;
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
|
||||
mcu_udmap: udmap@285c0000 {
|
||||
|
@ -90,6 +92,7 @@
|
|||
<0x4>; /* RX_CHAN */
|
||||
ti,sci-rm-range-rflow = <0x5>; /* GP RFLOW */
|
||||
dma-coherent;
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -314,6 +317,10 @@
|
|||
AM65X_WKUP_IOPAD(0x0088, PIN_INPUT, 0) /* (L4) MCU_MDIO0_MDIO */
|
||||
>;
|
||||
};
|
||||
|
||||
mcu-fss0-ospi0-pins-default {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
};
|
||||
|
||||
&main_uart0 {
|
||||
|
@ -374,3 +381,15 @@
|
|||
&usb1 {
|
||||
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 */
|
||||
>;
|
||||
};
|
||||
|
||||
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 {
|
||||
|
@ -73,6 +96,22 @@
|
|||
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 {
|
||||
|
@ -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 {
|
||||
status = "okay";
|
||||
};
|
||||
|
@ -117,3 +181,23 @@
|
|||
&usb0_phy {
|
||||
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 */
|
||||
>;
|
||||
};
|
||||
|
||||
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 {
|
||||
|
@ -239,3 +255,26 @@
|
|||
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 {
|
||||
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 */
|
||||
>;
|
||||
};
|
||||
|
||||
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 {
|
||||
|
@ -172,3 +185,23 @@
|
|||
#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-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 {
|
||||
|
|
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 {
|
||||
remoteproc0 = &sysctrler;
|
||||
remoteproc1 = &a72_0;
|
||||
remoteproc2 = &main_r5fss0_core0;
|
||||
remoteproc3 = &main_r5fss0_core1;
|
||||
};
|
||||
|
||||
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 {
|
||||
mboxes= <&mcu_secproxy 8>, <&mcu_secproxy 6>, <&mcu_secproxy 5>;
|
||||
mbox-names = "tx", "rx", "notify";
|
||||
|
@ -107,6 +118,36 @@
|
|||
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 {
|
||||
|
@ -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"
|
||||
|
|
|
@ -47,6 +47,22 @@
|
|||
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 {
|
||||
|
@ -61,3 +77,23 @@
|
|||
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;
|
||||
i2c8 = &main_i2c5;
|
||||
i2c9 = &main_i2c6;
|
||||
spi0 = &ospi0;
|
||||
spi1 = &ospi1;
|
||||
};
|
||||
|
||||
chosen { };
|
||||
|
@ -135,6 +137,7 @@
|
|||
#size-cells = <2>;
|
||||
ranges = <0x00 0x00100000 0x00 0x00100000 0x00 0x00020000>, /* ctrl mmr */
|
||||
<0x00 0x00600000 0x00 0x00600000 0x00 0x00031100>, /* GPIO */
|
||||
<0x00 0x00700000 0x00 0x00700000 0x00 0x00001000>, /* ESM */
|
||||
<0x00 0x00900000 0x00 0x00900000 0x00 0x00012000>, /* serdes */
|
||||
<0x00 0x00A40000 0x00 0x00A40000 0x00 0x00000800>, /* timesync router */
|
||||
<0x00 0x01000000 0x00 0x01000000 0x00 0x0af02400>, /* Most peripherals */
|
||||
|
|
|
@ -60,7 +60,7 @@
|
|||
serial1 = &uart_A;
|
||||
};
|
||||
|
||||
linein: audio-codec@0 {
|
||||
linein: audio-codec-0 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "everest,es7241";
|
||||
VDDA-supply = <&vcc_3v3>;
|
||||
|
@ -70,7 +70,7 @@
|
|||
sound-name-prefix = "Linein";
|
||||
};
|
||||
|
||||
lineout: audio-codec@1 {
|
||||
lineout: audio-codec-1 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "everest,es7154";
|
||||
VDD-supply = <&vcc_3v3>;
|
||||
|
@ -79,14 +79,14 @@
|
|||
sound-name-prefix = "Lineout";
|
||||
};
|
||||
|
||||
spdif_dit: audio-codec@2 {
|
||||
spdif_dit: audio-codec-2 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "linux,spdif-dit";
|
||||
status = "okay";
|
||||
sound-name-prefix = "DIT";
|
||||
};
|
||||
|
||||
dmics: audio-codec@3 {
|
||||
dmics: audio-codec-3 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "dmic-codec";
|
||||
num-channels = <7>;
|
||||
|
@ -95,6 +95,13 @@
|
|||
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 {
|
||||
compatible = "mmc-pwrseq-emmc";
|
||||
reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
|
||||
|
@ -249,6 +256,9 @@
|
|||
"TODDR_A IN 2", "TDMIN_C OUT",
|
||||
"TODDR_B 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_B IN 4", "PDM Capture",
|
||||
"TODDR_C IN 4", "PDM Capture",
|
||||
|
@ -272,31 +282,31 @@
|
|||
<393216000>;
|
||||
status = "okay";
|
||||
|
||||
dai-link@0 {
|
||||
dai-link-0 {
|
||||
sound-dai = <&frddr_a>;
|
||||
};
|
||||
|
||||
dai-link@1 {
|
||||
dai-link-1 {
|
||||
sound-dai = <&frddr_b>;
|
||||
};
|
||||
|
||||
dai-link@2 {
|
||||
dai-link-2 {
|
||||
sound-dai = <&frddr_c>;
|
||||
};
|
||||
|
||||
dai-link@3 {
|
||||
dai-link-3 {
|
||||
sound-dai = <&toddr_a>;
|
||||
};
|
||||
|
||||
dai-link@4 {
|
||||
dai-link-4 {
|
||||
sound-dai = <&toddr_b>;
|
||||
};
|
||||
|
||||
dai-link@5 {
|
||||
dai-link-5 {
|
||||
sound-dai = <&toddr_c>;
|
||||
};
|
||||
|
||||
dai-link@6 {
|
||||
dai-link-6 {
|
||||
sound-dai = <&tdmif_c>;
|
||||
dai-format = "i2s";
|
||||
dai-tdm-slot-tx-mask-2 = <1 1>;
|
||||
|
@ -317,7 +327,7 @@
|
|||
|
||||
};
|
||||
|
||||
dai-link@7 {
|
||||
dai-link-7 {
|
||||
sound-dai = <&spdifout>;
|
||||
|
||||
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>;
|
||||
|
||||
codec {
|
||||
|
@ -357,6 +375,8 @@
|
|||
eth_phy0: ethernet-phy@0 {
|
||||
/* Realtek RTL8211F (0x001cc916) */
|
||||
reg = <0>;
|
||||
interrupt-parent = <&gpio_intc>;
|
||||
interrupts = <98 IRQ_TYPE_LEVEL_LOW>;
|
||||
eee-broken-1000t;
|
||||
};
|
||||
};
|
||||
|
@ -444,7 +464,8 @@
|
|||
|
||||
bus-width = <4>;
|
||||
cap-sd-highspeed;
|
||||
max-frequency = <100000000>;
|
||||
sd-uhs-sdr104;
|
||||
max-frequency = <200000000>;
|
||||
non-removable;
|
||||
disable-wp;
|
||||
|
||||
|
@ -461,15 +482,14 @@
|
|||
|
||||
/* emmc storage */
|
||||
&sd_emmc_c {
|
||||
status = "disabled";
|
||||
pinctrl-0 = <&emmc_pins>;
|
||||
status = "okay";
|
||||
pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
|
||||
pinctrl-1 = <&emmc_clk_gate_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
|
||||
bus-width = <8>;
|
||||
cap-sd-highspeed;
|
||||
cap-mmc-highspeed;
|
||||
max-frequency = <180000000>;
|
||||
max-frequency = <200000000>;
|
||||
non-removable;
|
||||
disable-wp;
|
||||
mmc-ddr-1_8v;
|
||||
|
@ -481,6 +501,12 @@
|
|||
vqmmc-supply = <&vddio_boot>;
|
||||
};
|
||||
|
||||
&spdifin {
|
||||
pinctrl-0 = <&spdif_in_a19_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&spdifout {
|
||||
pinctrl-0 = <&spdif_out_a20_pins>;
|
||||
pinctrl-names = "default";
|
||||
|
@ -543,8 +569,14 @@
|
|||
|
||||
&uart_A {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&uart_a_pins>;
|
||||
pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
|
||||
pinctrl-names = "default";
|
||||
uart-has-rtscts;
|
||||
|
||||
bluetooth {
|
||||
compatible = "brcm,bcm43438-bt";
|
||||
shutdown-gpios = <&gpio GPIOX_21 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
|
||||
&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/gpio/gpio.h>
|
||||
#include <dt-bindings/clock/axg-audio-clkc.h>
|
||||
#include <dt-bindings/clock/g12a-clkc.h>
|
||||
#include <dt-bindings/clock/g12a-aoclkc.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.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/thermal/thermal.h>
|
||||
|
||||
/ {
|
||||
interrupt-parent = <&gic>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
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";
|
||||
};
|
||||
chosen {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
|
||||
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";
|
||||
};
|
||||
simplefb_cvbs: framebuffer-cvbs {
|
||||
compatible = "amlogic,simple-framebuffer",
|
||||
"simple-framebuffer";
|
||||
amlogic,pipeline = "vpu-cvbs";
|
||||
clocks = <&clkc CLKID_HDMI>,
|
||||
<&clkc CLKID_HTX_PCLK>,
|
||||
<&clkc CLKID_VPU_INTR>;
|
||||
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";
|
||||
simplefb_hdmi: framebuffer-hdmi {
|
||||
compatible = "amlogic,simple-framebuffer",
|
||||
"simple-framebuffer";
|
||||
amlogic,pipeline = "vpu-hdmi";
|
||||
clocks = <&clkc CLKID_HDMI>,
|
||||
<&clkc CLKID_HTX_PCLK>,
|
||||
<&clkc CLKID_VPU_INTR>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
efuse: efuse {
|
||||
|
@ -58,6 +49,7 @@
|
|||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
read-only;
|
||||
secure-monitor = <&sm>;
|
||||
};
|
||||
|
||||
psci {
|
||||
|
@ -95,6 +87,94 @@
|
|||
#size-cells = <2>;
|
||||
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 {
|
||||
compatible = "amlogic,meson-axg-dwmac",
|
||||
"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 {
|
||||
compatible = "amlogic,g12a-usb2-phy";
|
||||
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 {
|
||||
compatible = "amlogic,g12a-usb3-pcie-phy";
|
||||
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 {
|
||||
compatible = "amlogic,meson-g12a-vpu";
|
||||
reg = <0x0 0xff900000 0x0 0x100000>,
|
||||
|
@ -2388,10 +2227,10 @@
|
|||
compatible = "amlogic,meson-g12a-mali", "arm,mali-bifrost";
|
||||
reg = <0x0 0xffe40000 0x0 0x40000>;
|
||||
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 162 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "gpu", "mmu", "job";
|
||||
<GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "job", "mmu", "gpu";
|
||||
clocks = <&clkc CLKID_MALI>;
|
||||
resets = <&reset RESET_DVALIN_CAPB3>, <&reset RESET_DVALIN>;
|
||||
|
||||
|
@ -2409,6 +2248,7 @@
|
|||
assigned-clock-rates = <0>, /* Do Nothing */
|
||||
<800000000>,
|
||||
<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;
|
||||
};
|
||||
|
||||
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 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "VDDIO_AO1V8";
|
||||
|
@ -297,6 +316,34 @@
|
|||
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_out: endpoint {
|
||||
remote-endpoint = <&cvbs_connector_in>;
|
||||
|
@ -339,6 +386,20 @@
|
|||
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 {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&pwm_e_pins>;
|
||||
|
@ -377,6 +438,9 @@
|
|||
non-removable;
|
||||
disable-wp;
|
||||
|
||||
/* WiFi firmware requires power to be kept while in suspend */
|
||||
keep-power-in-suspend;
|
||||
|
||||
mmc-pwrseq = <&sdio_pwrseq>;
|
||||
|
||||
vmmc-supply = <&vddao_3v3>;
|
||||
|
|
|
@ -129,6 +129,24 @@
|
|||
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 {
|
||||
|
@ -145,6 +163,34 @@
|
|||
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_out: endpoint {
|
||||
remote-endpoint = <&cvbs_connector_in>;
|
||||
|
@ -197,6 +243,14 @@
|
|||
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_emmc_b {
|
||||
status = "okay";
|
||||
|
|
|
@ -3,8 +3,7 @@
|
|||
* Copyright (c) 2018 Amlogic, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#include "meson-g12-common.dtsi"
|
||||
#include <dt-bindings/power/meson-g12a-power.h>
|
||||
#include "meson-g12.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "amlogic,g12a";
|
||||
|
@ -19,6 +18,7 @@
|
|||
reg = <0x0 0x0>;
|
||||
enable-method = "psci";
|
||||
next-level-cache = <&l2>;
|
||||
#cooling-cells = <2>;
|
||||
};
|
||||
|
||||
cpu1: cpu@1 {
|
||||
|
@ -27,6 +27,7 @@
|
|||
reg = <0x0 0x1>;
|
||||
enable-method = "psci";
|
||||
next-level-cache = <&l2>;
|
||||
#cooling-cells = <2>;
|
||||
};
|
||||
|
||||
cpu2: cpu@2 {
|
||||
|
@ -35,6 +36,7 @@
|
|||
reg = <0x0 0x2>;
|
||||
enable-method = "psci";
|
||||
next-level-cache = <&l2>;
|
||||
#cooling-cells = <2>;
|
||||
};
|
||||
|
||||
cpu3: cpu@3 {
|
||||
|
@ -43,6 +45,7 @@
|
|||
reg = <0x0 0x3>;
|
||||
enable-method = "psci";
|
||||
next-level-cache = <&l2>;
|
||||
#cooling-cells = <2>;
|
||||
};
|
||||
|
||||
l2: l2-cache0 {
|
||||
|
@ -111,14 +114,22 @@
|
|||
};
|
||||
};
|
||||
|
||||
ðmac {
|
||||
power-domains = <&pwrc PWRC_G12A_ETH_ID>;
|
||||
};
|
||||
&cpu_thermal {
|
||||
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 {
|
||||
power-domains = <&pwrc PWRC_G12A_VPU_ID>;
|
||||
};
|
||||
|
||||
&sd_emmc_a {
|
||||
amlogic,dram-access-quirk;
|
||||
map1 {
|
||||
trip = <&cpu_hot>;
|
||||
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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -14,3 +14,28 @@
|
|||
/ {
|
||||
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>
|
||||
|
||||
/ {
|
||||
compatible = "hardkernel,odroid-n2", "amlogic,g12b";
|
||||
compatible = "hardkernel,odroid-n2", "amlogic,s922x", "amlogic,g12b";
|
||||
model = "Hardkernel ODROID-N2";
|
||||
|
||||
aliases {
|
||||
|
|
|
@ -4,8 +4,7 @@
|
|||
* Author: Neil Armstrong <narmstrong@baylibre.com>
|
||||
*/
|
||||
|
||||
#include "meson-g12-common.dtsi"
|
||||
#include <dt-bindings/power/meson-g12a-power.h>
|
||||
#include "meson-g12.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "amlogic,g12b";
|
||||
|
@ -49,7 +48,9 @@
|
|||
compatible = "arm,cortex-a53";
|
||||
reg = <0x0 0x0>;
|
||||
enable-method = "psci";
|
||||
capacity-dmips-mhz = <592>;
|
||||
next-level-cache = <&l2>;
|
||||
#cooling-cells = <2>;
|
||||
};
|
||||
|
||||
cpu1: cpu@1 {
|
||||
|
@ -57,7 +58,9 @@
|
|||
compatible = "arm,cortex-a53";
|
||||
reg = <0x0 0x1>;
|
||||
enable-method = "psci";
|
||||
capacity-dmips-mhz = <592>;
|
||||
next-level-cache = <&l2>;
|
||||
#cooling-cells = <2>;
|
||||
};
|
||||
|
||||
cpu100: cpu@100 {
|
||||
|
@ -65,7 +68,9 @@
|
|||
compatible = "arm,cortex-a73";
|
||||
reg = <0x0 0x100>;
|
||||
enable-method = "psci";
|
||||
capacity-dmips-mhz = <1024>;
|
||||
next-level-cache = <&l2>;
|
||||
#cooling-cells = <2>;
|
||||
};
|
||||
|
||||
cpu101: cpu@101 {
|
||||
|
@ -73,7 +78,9 @@
|
|||
compatible = "arm,cortex-a73";
|
||||
reg = <0x0 0x101>;
|
||||
enable-method = "psci";
|
||||
capacity-dmips-mhz = <1024>;
|
||||
next-level-cache = <&l2>;
|
||||
#cooling-cells = <2>;
|
||||
};
|
||||
|
||||
cpu102: cpu@102 {
|
||||
|
@ -81,7 +88,9 @@
|
|||
compatible = "arm,cortex-a73";
|
||||
reg = <0x0 0x102>;
|
||||
enable-method = "psci";
|
||||
capacity-dmips-mhz = <1024>;
|
||||
next-level-cache = <&l2>;
|
||||
#cooling-cells = <2>;
|
||||
};
|
||||
|
||||
cpu103: cpu@103 {
|
||||
|
@ -89,7 +98,9 @@
|
|||
compatible = "arm,cortex-a73";
|
||||
reg = <0x0 0x103>;
|
||||
enable-method = "psci";
|
||||
capacity-dmips-mhz = <1024>;
|
||||
next-level-cache = <&l2>;
|
||||
#cooling-cells = <2>;
|
||||
};
|
||||
|
||||
l2: l2-cache0 {
|
||||
|
@ -102,14 +113,3 @@
|
|||
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 {
|
||||
#address-cells = <0x2>;
|
||||
#size-cells = <0x0>;
|
||||
|
||||
cpu0: cpu@0 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
compatible = "arm,cortex-a53";
|
||||
reg = <0x0 0x0>;
|
||||
enable-method = "psci";
|
||||
next-level-cache = <&l2>;
|
||||
|
@ -65,7 +87,7 @@
|
|||
|
||||
cpu1: cpu@1 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
compatible = "arm,cortex-a53";
|
||||
reg = <0x0 0x1>;
|
||||
enable-method = "psci";
|
||||
next-level-cache = <&l2>;
|
||||
|
@ -74,7 +96,7 @@
|
|||
|
||||
cpu2: cpu@2 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
compatible = "arm,cortex-a53";
|
||||
reg = <0x0 0x2>;
|
||||
enable-method = "psci";
|
||||
next-level-cache = <&l2>;
|
||||
|
@ -83,7 +105,7 @@
|
|||
|
||||
cpu3: cpu@3 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
compatible = "arm,cortex-a53";
|
||||
reg = <0x0 0x3>;
|
||||
enable-method = "psci";
|
||||
next-level-cache = <&l2>;
|
||||
|
@ -139,6 +161,7 @@
|
|||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
read-only;
|
||||
secure-monitor = <&sm>;
|
||||
|
||||
sn: sn@14 {
|
||||
reg = <0x14 0x10>;
|
||||
|
@ -198,7 +221,7 @@
|
|||
};
|
||||
|
||||
reset: reset-controller@4404 {
|
||||
compatible = "amlogic,meson-gx-reset", "amlogic,meson-gxbb-reset";
|
||||
compatible = "amlogic,meson-gxbb-reset";
|
||||
reg = <0x0 0x04404 0x0 0x9c>;
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
|
@ -218,7 +241,7 @@
|
|||
};
|
||||
|
||||
i2c_A: i2c@8500 {
|
||||
compatible = "amlogic,meson-gx-i2c", "amlogic,meson-gxbb-i2c";
|
||||
compatible = "amlogic,meson-gxbb-i2c";
|
||||
reg = <0x0 0x08500 0x0 0x20>;
|
||||
interrupts = <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>;
|
||||
#address-cells = <1>;
|
||||
|
@ -262,8 +285,13 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
clock-measure@8758 {
|
||||
compatible = "amlogic,meson-gx-clk-measure";
|
||||
reg = <0x0 0x8758 0x0 0x10>;
|
||||
};
|
||||
|
||||
i2c_B: i2c@87c0 {
|
||||
compatible = "amlogic,meson-gx-i2c", "amlogic,meson-gxbb-i2c";
|
||||
compatible = "amlogic,meson-gxbb-i2c";
|
||||
reg = <0x0 0x087c0 0x0 0x20>;
|
||||
interrupts = <GIC_SPI 214 IRQ_TYPE_EDGE_RISING>;
|
||||
#address-cells = <1>;
|
||||
|
@ -272,7 +300,7 @@
|
|||
};
|
||||
|
||||
i2c_C: i2c@87e0 {
|
||||
compatible = "amlogic,meson-gx-i2c", "amlogic,meson-gxbb-i2c";
|
||||
compatible = "amlogic,meson-gxbb-i2c";
|
||||
reg = <0x0 0x087e0 0x0 0x20>;
|
||||
interrupts = <GIC_SPI 215 IRQ_TYPE_EDGE_RISING>;
|
||||
#address-cells = <1>;
|
||||
|
@ -290,7 +318,7 @@
|
|||
};
|
||||
|
||||
spifc: spi@8c80 {
|
||||
compatible = "amlogic,meson-gx-spifc", "amlogic,meson-gxbb-spifc";
|
||||
compatible = "amlogic,meson-gxbb-spifc";
|
||||
reg = <0x0 0x08c80 0x0 0x80>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
@ -298,7 +326,7 @@
|
|||
};
|
||||
|
||||
watchdog@98d0 {
|
||||
compatible = "amlogic,meson-gx-wdt", "amlogic,meson-gxbb-wdt";
|
||||
compatible = "amlogic,meson-gxbb-wdt";
|
||||
reg = <0x0 0x098d0 0x0 0x10>;
|
||||
clocks = <&xtal>;
|
||||
};
|
||||
|
@ -364,6 +392,7 @@
|
|||
compatible = "amlogic,meson-gx-ao-cec";
|
||||
reg = <0x0 0x00100 0x0 0x14>;
|
||||
interrupts = <GIC_SPI 199 IRQ_TYPE_EDGE_RISING>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
sec_AO: ao-secure@140 {
|
||||
|
@ -387,7 +416,7 @@
|
|||
};
|
||||
|
||||
i2c_AO: i2c@500 {
|
||||
compatible = "amlogic,meson-gx-i2c", "amlogic,meson-gxbb-i2c";
|
||||
compatible = "amlogic,meson-gxbb-i2c";
|
||||
reg = <0x0 0x500 0x0 0x20>;
|
||||
interrupts = <GIC_SPI 195 IRQ_TYPE_EDGE_RISING>;
|
||||
#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";
|
||||
reg = <0x0 0xc8834000 0x0 0x2000>;
|
||||
#address-cells = <2>;
|
||||
|
@ -449,7 +492,7 @@
|
|||
};
|
||||
|
||||
mailbox: mailbox@404 {
|
||||
compatible = "amlogic,meson-gx-mhu", "amlogic,meson-gxbb-mhu";
|
||||
compatible = "amlogic,meson-gxbb-mhu";
|
||||
reg = <0 0x404 0 0x4c>;
|
||||
interrupts = <GIC_SPI 208 IRQ_TYPE_EDGE_RISING>,
|
||||
<GIC_SPI 209 IRQ_TYPE_EDGE_RISING>,
|
||||
|
@ -459,11 +502,15 @@
|
|||
};
|
||||
|
||||
ethmac: ethernet@c9410000 {
|
||||
compatible = "amlogic,meson-gx-dwmac", "amlogic,meson-gxbb-dwmac", "snps,dwmac";
|
||||
reg = <0x0 0xc9410000 0x0 0x10000
|
||||
0x0 0xc8834540 0x0 0x4>;
|
||||
interrupts = <GIC_SPI 8 IRQ_TYPE_EDGE_RISING>;
|
||||
compatible = "amlogic,meson-gxbb-dwmac",
|
||||
"snps,dwmac-3.70a",
|
||||
"snps,dwmac";
|
||||
reg = <0x0 0xc9410000 0x0 0x10000>,
|
||||
<0x0 0xc8834540 0x0 0x4>;
|
||||
interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "macirq";
|
||||
rx-fifo-depth = <4096>;
|
||||
tx-fifo-depth = <2048>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
|
@ -499,12 +546,12 @@
|
|||
vpu: vpu@d0100000 {
|
||||
compatible = "amlogic,meson-gx-vpu";
|
||||
reg = <0x0 0xd0100000 0x0 0x100000>,
|
||||
<0x0 0xc883c000 0x0 0x1000>,
|
||||
<0x0 0xc8838000 0x0 0x1000>;
|
||||
reg-names = "vpu", "hhi", "dmc";
|
||||
<0x0 0xc883c000 0x0 0x1000>;
|
||||
reg-names = "vpu", "hhi";
|
||||
interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
amlogic,canvas = <&canvas>;
|
||||
|
||||
/* CVBS VDAC output port */
|
||||
cvbs_vdac_port: port@0 {
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
|
||||
/ {
|
||||
compatible = "friendlyarm,nanopi-k2", "amlogic,meson-gxbb";
|
||||
model = "FriendlyARM NanoPi K2";
|
||||
|
||||
aliases {
|
||||
serial0 = &uart_AO;
|
||||
|
@ -154,10 +155,6 @@
|
|||
|
||||
amlogic,tx-delay-ns = <2>;
|
||||
|
||||
snps,reset-gpio = <&gpio GPIOZ_14 0>;
|
||||
snps,reset-delays-us = <0 10000 1000000>;
|
||||
snps,reset-active-low;
|
||||
|
||||
mdio {
|
||||
compatible = "snps,dwmac-mdio";
|
||||
#address-cells = <1>;
|
||||
|
@ -166,6 +163,11 @@
|
|||
eth_phy0: ethernet-phy@0 {
|
||||
/* Realtek RTL8211F (0x001cc916) */
|
||||
reg = <0>;
|
||||
|
||||
reset-assert-us = <10000>;
|
||||
reset-deassert-us = <30000>;
|
||||
reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
|
||||
|
||||
interrupt-parent = <&gpio_intc>;
|
||||
/* MAC_INTR on GPIOZ_15 */
|
||||
interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
|
||||
|
@ -191,7 +193,7 @@
|
|||
pinctrl-names = "default";
|
||||
};
|
||||
|
||||
&pinctrl_aobus {
|
||||
&gpio_ao {
|
||||
gpio-line-names = "UART TX", "UART RX", "Power Control", "Power Key In",
|
||||
"VCCK En", "CON1 Header Pin31",
|
||||
"I2S Header Pin6", "IR In", "I2S Header Pin7",
|
||||
|
@ -201,7 +203,7 @@
|
|||
"";
|
||||
};
|
||||
|
||||
&pinctrl_periphs {
|
||||
&gpio {
|
||||
gpio-line-names = /* Bank GPIOZ */
|
||||
"Eth MDIO", "Eth MDC", "Eth RGMII RX Clk",
|
||||
"Eth RX DV", "Eth RX D0", "Eth RX D1", "Eth RX D2",
|
||||
|
@ -273,11 +275,14 @@
|
|||
|
||||
bus-width = <4>;
|
||||
cap-sd-highspeed;
|
||||
max-frequency = <200000000>;
|
||||
max-frequency = <50000000>;
|
||||
|
||||
non-removable;
|
||||
disable-wp;
|
||||
|
||||
/* WiFi firmware requires power to be kept while in suspend */
|
||||
keep-power-in-suspend;
|
||||
|
||||
mmc-pwrseq = <&sdio_pwrseq>;
|
||||
|
||||
vmmc-supply = <&vddio_ao3v3>;
|
||||
|
@ -301,12 +306,11 @@
|
|||
sd-uhs-sdr12;
|
||||
sd-uhs-sdr25;
|
||||
sd-uhs-sdr50;
|
||||
sd-uhs-sdr104;
|
||||
max-frequency = <200000000>;
|
||||
sd-uhs-ddr50;
|
||||
max-frequency = <100000000>;
|
||||
disable-wp;
|
||||
|
||||
cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>;
|
||||
cd-inverted;
|
||||
cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
|
||||
|
||||
vmmc-supply = <&vddio_ao3v3>;
|
||||
vqmmc-supply = <&vddio_tf>;
|
||||
|
|
|
@ -36,8 +36,15 @@
|
|||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
|
||||
/*
|
||||
* signal name from schematics: PWREN
|
||||
*/
|
||||
gpio = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>;
|
||||
enable-active-high;
|
||||
/*
|
||||
* signal name from schematics: USB_POWER
|
||||
*/
|
||||
vin-supply = <&p5v0>;
|
||||
};
|
||||
|
||||
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 {
|
||||
/*
|
||||
* signal name from schematics: TFLASH_VDD_EN
|
||||
*/
|
||||
compatible = "regulator-fixed";
|
||||
|
||||
regulator-name = "TFLASH_VDD";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
|
||||
/*
|
||||
* signal name from schematics: TFLASH_VDD_EN
|
||||
*/
|
||||
gpio = <&gpio GPIOY_12 GPIO_ACTIVE_HIGH>;
|
||||
enable-active-high;
|
||||
/* U16 RT9179GB */
|
||||
vin-supply = <&vddio_ao3v3>;
|
||||
};
|
||||
|
||||
tf_io: gpio-regulator-tf_io {
|
||||
|
@ -77,8 +104,10 @@
|
|||
gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>;
|
||||
gpios-states = <0>;
|
||||
|
||||
states = <3300000 0
|
||||
1800000 1>;
|
||||
states = <3300000 0>,
|
||||
<1800000 1>;
|
||||
/* U12/U13 RT9179GB */
|
||||
vin-supply = <&vddio_ao3v3>;
|
||||
};
|
||||
|
||||
vcc1v8: regulator-vcc1v8 {
|
||||
|
@ -86,6 +115,9 @@
|
|||
regulator-name = "VCC1V8";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-always-on;
|
||||
/* U18 RT9179GB */
|
||||
vin-supply = <&vddio_ao3v3>;
|
||||
};
|
||||
|
||||
vcc3v3: regulator-vcc3v3 {
|
||||
|
@ -95,6 +127,36 @@
|
|||
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 {
|
||||
compatible = "mmc-pwrseq-emmc";
|
||||
reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
|
||||
|
@ -126,10 +188,6 @@
|
|||
phy-handle = <ð_phy0>;
|
||||
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>;
|
||||
|
||||
mdio {
|
||||
|
@ -140,10 +198,14 @@
|
|||
eth_phy0: ethernet-phy@0 {
|
||||
/* Realtek RTL8211F (0x001cc916) */
|
||||
reg = <0>;
|
||||
|
||||
reset-assert-us = <10000>;
|
||||
reset-deassert-us = <30000>;
|
||||
reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
|
||||
|
||||
interrupt-parent = <&gpio_intc>;
|
||||
/* MAC_INTR on GPIOZ_15 */
|
||||
interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
|
||||
eee-broken-1000t;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -167,6 +229,7 @@
|
|||
status = "okay";
|
||||
pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
|
||||
pinctrl-names = "default";
|
||||
hdmi-supply = <&hdmi_p5v0>;
|
||||
};
|
||||
|
||||
&hdmi_tx_tmds_port {
|
||||
|
@ -187,7 +250,7 @@
|
|||
pinctrl-names = "default";
|
||||
};
|
||||
|
||||
&pinctrl_aobus {
|
||||
&gpio_ao {
|
||||
gpio-line-names = "UART TX", "UART RX", "VCCK En", "TF 3V3/1V8 En",
|
||||
"USB HUB nRESET", "USB OTG Power En",
|
||||
"J7 Header Pin2", "IR In", "J7 Header Pin4",
|
||||
|
@ -197,7 +260,7 @@
|
|||
"";
|
||||
};
|
||||
|
||||
&pinctrl_periphs {
|
||||
&gpio {
|
||||
gpio-line-names = /* Bank GPIOZ */
|
||||
"Eth MDIO", "Eth MDC", "Eth RGMII RX Clk",
|
||||
"Eth RX DV", "Eth RX D0", "Eth RX D1", "Eth RX D2",
|
||||
|
@ -256,11 +319,14 @@
|
|||
|
||||
bus-width = <4>;
|
||||
cap-sd-highspeed;
|
||||
sd-uhs-sdr12;
|
||||
sd-uhs-sdr25;
|
||||
sd-uhs-sdr50;
|
||||
sd-uhs-ddr50;
|
||||
max-frequency = <100000000>;
|
||||
disable-wp;
|
||||
|
||||
cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>;
|
||||
cd-inverted;
|
||||
cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
|
||||
|
||||
vmmc-supply = <&tflash_vdd>;
|
||||
vqmmc-supply = <&tf_io>;
|
||||
|
@ -274,7 +340,7 @@
|
|||
pinctrl-names = "default", "clk-gate";
|
||||
|
||||
bus-width = <8>;
|
||||
max-frequency = <100000000>;
|
||||
max-frequency = <200000000>;
|
||||
non-removable;
|
||||
disable-wp;
|
||||
cap-mmc-highspeed;
|
||||
|
@ -293,7 +359,7 @@
|
|||
};
|
||||
|
||||
&usb0_phy {
|
||||
status = "okay";
|
||||
status = "disabled";
|
||||
phy-supply = <&usb_otg_pwr>;
|
||||
};
|
||||
|
||||
|
@ -303,7 +369,7 @@
|
|||
};
|
||||
|
||||
&usb0 {
|
||||
status = "okay";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&usb1 {
|
||||
|
|
|
@ -68,10 +68,6 @@
|
|||
|
||||
amlogic,tx-delay-ns = <2>;
|
||||
|
||||
snps,reset-gpio = <&gpio GPIOZ_14 0>;
|
||||
snps,reset-delays-us = <0 10000 1000000>;
|
||||
snps,reset-active-low;
|
||||
|
||||
mdio {
|
||||
compatible = "snps,dwmac-mdio";
|
||||
#address-cells = <1>;
|
||||
|
@ -80,6 +76,11 @@
|
|||
eth_phy0: ethernet-phy@3 {
|
||||
/* Micrel KSZ9031 (0x00221620) */
|
||||
reg = <3>;
|
||||
|
||||
reset-assert-us = <10000>;
|
||||
reset-deassert-us = <30000>;
|
||||
reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
|
||||
|
||||
interrupt-parent = <&gpio_intc>;
|
||||
/* MAC_INTR on GPIOZ_15 */
|
||||
interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
|
||||
|
|
|
@ -21,6 +21,6 @@
|
|||
phy-mode = "rmii";
|
||||
|
||||
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;
|
||||
};
|
||||
|
|
|
@ -46,8 +46,8 @@
|
|||
gpios-states = <1>;
|
||||
|
||||
/* Based on P200 schematics, signal CARD_1.8V/3.3V_CTR */
|
||||
states = <1800000 0
|
||||
3300000 1>;
|
||||
states = <1800000 0>,
|
||||
<3300000 1>;
|
||||
|
||||
regulator-settling-time-up-us = <10000>;
|
||||
regulator-settling-time-down-us = <150000>;
|
||||
|
@ -165,11 +165,14 @@
|
|||
|
||||
bus-width = <4>;
|
||||
cap-sd-highspeed;
|
||||
max-frequency = <100000000>;
|
||||
max-frequency = <50000000>;
|
||||
|
||||
non-removable;
|
||||
disable-wp;
|
||||
|
||||
/* WiFi firmware requires power to be kept while in suspend */
|
||||
keep-power-in-suspend;
|
||||
|
||||
mmc-pwrseq = <&sdio_pwrseq>;
|
||||
|
||||
vmmc-supply = <&vddao_3v3>;
|
||||
|
|
|
@ -81,6 +81,7 @@
|
|||
mux {
|
||||
groups = "uart_tx_ao_a", "uart_rx_ao_a";
|
||||
function = "uart_ao";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -89,6 +90,7 @@
|
|||
groups = "uart_cts_ao_a",
|
||||
"uart_rts_ao_a";
|
||||
function = "uart_ao";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -96,6 +98,7 @@
|
|||
mux {
|
||||
groups = "uart_tx_ao_b", "uart_rx_ao_b";
|
||||
function = "uart_ao_b";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -104,6 +107,7 @@
|
|||
groups = "uart_cts_ao_b",
|
||||
"uart_rts_ao_b";
|
||||
function = "uart_ao_b";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -111,6 +115,7 @@
|
|||
mux {
|
||||
groups = "remote_input_ao";
|
||||
function = "remote_input_ao";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -119,6 +124,7 @@
|
|||
groups = "i2c_sck_ao",
|
||||
"i2c_sda_ao";
|
||||
function = "i2c_ao";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -126,6 +132,7 @@
|
|||
mux {
|
||||
groups = "pwm_ao_a_3";
|
||||
function = "pwm_ao_a_3";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -133,6 +140,7 @@
|
|||
mux {
|
||||
groups = "pwm_ao_a_6";
|
||||
function = "pwm_ao_a_6";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -140,6 +148,7 @@
|
|||
mux {
|
||||
groups = "pwm_ao_a_12";
|
||||
function = "pwm_ao_a_12";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -147,6 +156,7 @@
|
|||
mux {
|
||||
groups = "pwm_ao_b";
|
||||
function = "pwm_ao_b";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -154,6 +164,7 @@
|
|||
mux {
|
||||
groups = "i2s_am_clk";
|
||||
function = "i2s_out_ao";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -161,6 +172,7 @@
|
|||
mux {
|
||||
groups = "i2s_out_ao_clk";
|
||||
function = "i2s_out_ao";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -168,6 +180,7 @@
|
|||
mux {
|
||||
groups = "i2s_out_lr_clk";
|
||||
function = "i2s_out_ao";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -175,6 +188,7 @@
|
|||
mux {
|
||||
groups = "i2s_out_ch01_ao";
|
||||
function = "i2s_out_ao";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -182,6 +196,7 @@
|
|||
mux {
|
||||
groups = "i2s_out_ch23_ao";
|
||||
function = "i2s_out_ao";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -189,6 +204,7 @@
|
|||
mux {
|
||||
groups = "i2s_out_ch45_ao";
|
||||
function = "i2s_out_ao";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -203,6 +219,7 @@
|
|||
mux {
|
||||
groups = "spdif_out_ao_13";
|
||||
function = "spdif_out_ao";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -210,6 +227,7 @@
|
|||
mux {
|
||||
groups = "ao_cec";
|
||||
function = "cec_ao";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -217,6 +235,7 @@
|
|||
mux {
|
||||
groups = "ee_cec";
|
||||
function = "cec_ao";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -280,6 +299,12 @@
|
|||
|
||||
&clkc_AO {
|
||||
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 {
|
||||
|
@ -311,6 +336,8 @@
|
|||
clkc: clock-controller {
|
||||
compatible = "amlogic,gxbb-clkc";
|
||||
#clock-cells = <1>;
|
||||
clocks = <&xtal>;
|
||||
clock-names = "xtal";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -354,11 +381,17 @@
|
|||
};
|
||||
|
||||
emmc_pins: emmc {
|
||||
mux {
|
||||
mux-0 {
|
||||
groups = "emmc_nand_d07",
|
||||
"emmc_cmd",
|
||||
"emmc_clk";
|
||||
"emmc_cmd";
|
||||
function = "emmc";
|
||||
bias-pull-up;
|
||||
};
|
||||
|
||||
mux-1 {
|
||||
groups = "emmc_clk";
|
||||
function = "emmc";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -366,6 +399,7 @@
|
|||
mux {
|
||||
groups = "emmc_ds";
|
||||
function = "emmc";
|
||||
bias-pull-down;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -373,9 +407,6 @@
|
|||
mux {
|
||||
groups = "BOOT_8";
|
||||
function = "gpio_periphs";
|
||||
};
|
||||
cfg-pull-down {
|
||||
pins = "BOOT_8";
|
||||
bias-pull-down;
|
||||
};
|
||||
};
|
||||
|
@ -387,6 +418,7 @@
|
|||
"nor_c",
|
||||
"nor_cs";
|
||||
function = "nor";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -396,6 +428,7 @@
|
|||
"spi_mosi",
|
||||
"spi_sclk";
|
||||
function = "spi";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -403,18 +436,25 @@
|
|||
mux {
|
||||
groups = "spi_ss0";
|
||||
function = "spi";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
sdcard_pins: sdcard {
|
||||
mux {
|
||||
mux-0 {
|
||||
groups = "sdcard_d0",
|
||||
"sdcard_d1",
|
||||
"sdcard_d2",
|
||||
"sdcard_d3",
|
||||
"sdcard_cmd",
|
||||
"sdcard_clk";
|
||||
"sdcard_cmd";
|
||||
function = "sdcard";
|
||||
bias-pull-up;
|
||||
};
|
||||
|
||||
mux-1 {
|
||||
groups = "sdcard_clk";
|
||||
function = "sdcard";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -422,22 +462,25 @@
|
|||
mux {
|
||||
groups = "CARD_2";
|
||||
function = "gpio_periphs";
|
||||
};
|
||||
cfg-pull-down {
|
||||
pins = "CARD_2";
|
||||
bias-pull-down;
|
||||
};
|
||||
};
|
||||
|
||||
sdio_pins: sdio {
|
||||
mux {
|
||||
mux-0 {
|
||||
groups = "sdio_d0",
|
||||
"sdio_d1",
|
||||
"sdio_d2",
|
||||
"sdio_d3",
|
||||
"sdio_cmd",
|
||||
"sdio_clk";
|
||||
"sdio_cmd";
|
||||
function = "sdio";
|
||||
bias-pull-up;
|
||||
};
|
||||
|
||||
mux-1 {
|
||||
groups = "sdio_clk";
|
||||
function = "sdio";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -445,9 +488,6 @@
|
|||
mux {
|
||||
groups = "GPIOX_4";
|
||||
function = "gpio_periphs";
|
||||
};
|
||||
cfg-pull-down {
|
||||
pins = "GPIOX_4";
|
||||
bias-pull-down;
|
||||
};
|
||||
};
|
||||
|
@ -456,6 +496,7 @@
|
|||
mux {
|
||||
groups = "sdio_irq";
|
||||
function = "sdio";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -464,6 +505,7 @@
|
|||
groups = "uart_tx_a",
|
||||
"uart_rx_a";
|
||||
function = "uart_a";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -472,6 +514,7 @@
|
|||
groups = "uart_cts_a",
|
||||
"uart_rts_a";
|
||||
function = "uart_a";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -480,6 +523,7 @@
|
|||
groups = "uart_tx_b",
|
||||
"uart_rx_b";
|
||||
function = "uart_b";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -488,6 +532,7 @@
|
|||
groups = "uart_cts_b",
|
||||
"uart_rts_b";
|
||||
function = "uart_b";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -496,6 +541,7 @@
|
|||
groups = "uart_tx_c",
|
||||
"uart_rx_c";
|
||||
function = "uart_c";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -504,6 +550,7 @@
|
|||
groups = "uart_cts_c",
|
||||
"uart_rts_c";
|
||||
function = "uart_c";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -512,6 +559,7 @@
|
|||
groups = "i2c_sck_a",
|
||||
"i2c_sda_a";
|
||||
function = "i2c_a";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -520,6 +568,7 @@
|
|||
groups = "i2c_sck_b",
|
||||
"i2c_sda_b";
|
||||
function = "i2c_b";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -528,6 +577,7 @@
|
|||
groups = "i2c_sck_c",
|
||||
"i2c_sda_c";
|
||||
function = "i2c_c";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -548,6 +598,7 @@
|
|||
"eth_txd2",
|
||||
"eth_txd3";
|
||||
function = "eth";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -563,6 +614,7 @@
|
|||
"eth_txd0",
|
||||
"eth_txd1";
|
||||
function = "eth";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -570,6 +622,7 @@
|
|||
mux {
|
||||
groups = "pwm_a_x";
|
||||
function = "pwm_a_x";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -577,6 +630,7 @@
|
|||
mux {
|
||||
groups = "pwm_a_y";
|
||||
function = "pwm_a_y";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -584,6 +638,7 @@
|
|||
mux {
|
||||
groups = "pwm_b";
|
||||
function = "pwm_b";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -591,6 +646,7 @@
|
|||
mux {
|
||||
groups = "pwm_d";
|
||||
function = "pwm_d";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -598,6 +654,7 @@
|
|||
mux {
|
||||
groups = "pwm_e";
|
||||
function = "pwm_e";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -605,6 +662,7 @@
|
|||
mux {
|
||||
groups = "pwm_f_x";
|
||||
function = "pwm_f_x";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -612,6 +670,7 @@
|
|||
mux {
|
||||
groups = "pwm_f_y";
|
||||
function = "pwm_f_y";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -619,6 +678,7 @@
|
|||
mux {
|
||||
groups = "hdmi_hpd";
|
||||
function = "hdmi_hpd";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -626,6 +686,7 @@
|
|||
mux {
|
||||
groups = "hdmi_sda", "hdmi_scl";
|
||||
function = "hdmi_i2c";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -633,6 +694,7 @@
|
|||
mux {
|
||||
groups = "i2sout_ch23_y";
|
||||
function = "i2s_out";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -640,6 +702,7 @@
|
|||
mux {
|
||||
groups = "i2sout_ch45_y";
|
||||
function = "i2s_out";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -647,6 +710,7 @@
|
|||
mux {
|
||||
groups = "i2sout_ch67_y";
|
||||
function = "i2s_out";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -654,6 +718,7 @@
|
|||
mux {
|
||||
groups = "spdif_out_y";
|
||||
function = "spdif_out";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -734,6 +799,12 @@
|
|||
resets = <&reset RESET_SD_EMMC_C>;
|
||||
};
|
||||
|
||||
&simplefb_hdmi {
|
||||
clocks = <&clkc CLKID_HDMI_PCLK>,
|
||||
<&clkc CLKID_CLK81>,
|
||||
<&clkc CLKID_GCLK_VENCI_INT0>;
|
||||
};
|
||||
|
||||
&spicc {
|
||||
clocks = <&clkc CLKID_SPICC>;
|
||||
clock-names = "core";
|
||||
|
@ -774,3 +845,14 @@
|
|||
compatible = "amlogic,meson-gxbb-vpu", "amlogic,meson-gx-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",
|
||||
"amlogic,meson-gxl";
|
||||
model = "Libre Computer Board AML-S805X-AC";
|
||||
model = "Libre Computer AML-S805X-AC";
|
||||
|
||||
aliases {
|
||||
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 {
|
||||
compatible = "gpio-keys-polled";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
poll-interval = <100>;
|
||||
|
||||
button@0 {
|
||||
power-button {
|
||||
label = "power";
|
||||
linux,code = <KEY_POWER>;
|
||||
gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>;
|
||||
|
@ -110,10 +108,10 @@
|
|||
};
|
||||
|
||||
&ir {
|
||||
linux,rc-map-name = "rc-geekbox";
|
||||
linux,rc-map-name = "rc-khadas";
|
||||
};
|
||||
|
||||
&pinctrl_aobus {
|
||||
&gpio_ao {
|
||||
gpio-line-names = "UART TX",
|
||||
"UART RX",
|
||||
"Power Key In",
|
||||
|
@ -128,7 +126,7 @@
|
|||
"";
|
||||
};
|
||||
|
||||
&pinctrl_periphs {
|
||||
&gpio {
|
||||
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: */
|
||||
&uart_AO {
|
||||
status = "okay";
|
||||
|
|
|
@ -12,8 +12,9 @@
|
|||
#include "meson-gxl-s905x.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "libretech,cc", "amlogic,s905x", "amlogic,meson-gxl";
|
||||
model = "Libre Computer Board AML-S905X-CC";
|
||||
compatible = "libretech,aml-s905x-cc", "amlogic,s905x",
|
||||
"amlogic,meson-gxl";
|
||||
model = "Libre Computer AML-S905X-CC";
|
||||
|
||||
aliases {
|
||||
serial0 = &uart_AO;
|
||||
|
@ -115,11 +116,13 @@
|
|||
regulator-max-microvolt = <1800000>;
|
||||
};
|
||||
|
||||
/* This is provided by LDOs on the eMMC daugther card */
|
||||
vddio_boot: regulator-vddio_boot {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "VDDIO_BOOT";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
vin-supply = <&vcc_3v3>;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -164,7 +167,7 @@
|
|||
};
|
||||
};
|
||||
|
||||
&pinctrl_aobus {
|
||||
&gpio_ao {
|
||||
gpio-line-names = "UART TX",
|
||||
"UART RX",
|
||||
"Blue LED",
|
||||
|
@ -179,7 +182,7 @@
|
|||
"7J1 Header Pin15";
|
||||
};
|
||||
|
||||
&pinctrl_periphs {
|
||||
&gpio {
|
||||
gpio-line-names = /* Bank GPIOZ */
|
||||
"", "", "", "", "", "", "",
|
||||
"", "", "", "", "", "", "",
|
||||
|
@ -235,11 +238,10 @@
|
|||
|
||||
bus-width = <4>;
|
||||
cap-sd-highspeed;
|
||||
max-frequency = <100000000>;
|
||||
max-frequency = <50000000>;
|
||||
disable-wp;
|
||||
|
||||
cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>;
|
||||
cd-inverted;
|
||||
cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
|
||||
|
||||
vmmc-supply = <&vcc_3v3>;
|
||||
vqmmc-supply = <&vcc_card>;
|
||||
|
@ -254,9 +256,9 @@
|
|||
|
||||
bus-width = <8>;
|
||||
cap-mmc-highspeed;
|
||||
mmc-ddr-3_3v;
|
||||
max-frequency = <50000000>;
|
||||
non-removable;
|
||||
mmc-ddr-1_8v;
|
||||
mmc-hs200-1_8v;
|
||||
max-frequency = <200000000>;
|
||||
disable-wp;
|
||||
|
||||
mmc-pwrseq = <&emmc_pwrseq>;
|
||||
|
|
|
@ -114,11 +114,14 @@
|
|||
|
||||
bus-width = <4>;
|
||||
cap-sd-highspeed;
|
||||
max-frequency = <100000000>;
|
||||
max-frequency = <50000000>;
|
||||
|
||||
non-removable;
|
||||
disable-wp;
|
||||
|
||||
/* WiFi firmware requires power to be kept while in suspend */
|
||||
keep-power-in-suspend;
|
||||
|
||||
mmc-pwrseq = <&sdio_pwrseq>;
|
||||
|
||||
vmmc-supply = <&vddao_3v3>;
|
||||
|
@ -134,11 +137,10 @@
|
|||
|
||||
bus-width = <4>;
|
||||
cap-sd-highspeed;
|
||||
max-frequency = <100000000>;
|
||||
max-frequency = <50000000>;
|
||||
disable-wp;
|
||||
|
||||
cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>;
|
||||
cd-inverted;
|
||||
cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
|
||||
|
||||
vmmc-supply = <&vddao_3v3>;
|
||||
vqmmc-supply = <&vddio_boot>;
|
||||
|
|
|
@ -36,6 +36,16 @@
|
|||
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 {
|
||||
reg = <0x0 0xc9410000 0x0 0x10000
|
||||
0x0 0xc8834540 0x0 0x4>;
|
||||
|
||||
clocks = <&clkc CLKID_ETH>,
|
||||
<&clkc CLKID_FCLK_DIV2>,
|
||||
<&clkc CLKID_MPLL2>;
|
||||
|
@ -326,10 +333,15 @@
|
|||
};
|
||||
|
||||
emmc_pins: emmc {
|
||||
mux {
|
||||
mux-0 {
|
||||
groups = "emmc_nand_d07",
|
||||
"emmc_cmd",
|
||||
"emmc_clk";
|
||||
"emmc_cmd";
|
||||
function = "emmc";
|
||||
bias-pull-up;
|
||||
};
|
||||
|
||||
mux-1 {
|
||||
groups = "emmc_clk";
|
||||
function = "emmc";
|
||||
bias-disable;
|
||||
};
|
||||
|
@ -339,7 +351,7 @@
|
|||
mux {
|
||||
groups = "emmc_ds";
|
||||
function = "emmc";
|
||||
bias-disable;
|
||||
bias-pull-down;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -381,13 +393,18 @@
|
|||
};
|
||||
|
||||
sdcard_pins: sdcard {
|
||||
mux {
|
||||
mux-0 {
|
||||
groups = "sdcard_d0",
|
||||
"sdcard_d1",
|
||||
"sdcard_d2",
|
||||
"sdcard_d3",
|
||||
"sdcard_cmd",
|
||||
"sdcard_clk";
|
||||
"sdcard_cmd";
|
||||
function = "sdcard";
|
||||
bias-pull-up;
|
||||
};
|
||||
|
||||
mux-1 {
|
||||
groups = "sdcard_clk";
|
||||
function = "sdcard";
|
||||
bias-disable;
|
||||
};
|
||||
|
@ -402,13 +419,18 @@
|
|||
};
|
||||
|
||||
sdio_pins: sdio {
|
||||
mux {
|
||||
mux-0 {
|
||||
groups = "sdio_d0",
|
||||
"sdio_d1",
|
||||
"sdio_d2",
|
||||
"sdio_d3",
|
||||
"sdio_cmd",
|
||||
"sdio_clk";
|
||||
"sdio_cmd";
|
||||
function = "sdio";
|
||||
bias-pull-up;
|
||||
};
|
||||
|
||||
mux-1 {
|
||||
groups = "sdio_clk";
|
||||
function = "sdio";
|
||||
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 {
|
||||
mux {
|
||||
groups = "eth_mdio",
|
||||
|
@ -697,7 +728,7 @@
|
|||
#size-cells = <0>;
|
||||
|
||||
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>;
|
||||
reg = <8>;
|
||||
max-speed = <100>;
|
||||
|
@ -787,6 +818,12 @@
|
|||
resets = <&reset RESET_SD_EMMC_C>;
|
||||
};
|
||||
|
||||
&simplefb_hdmi {
|
||||
clocks = <&clkc CLKID_HDMI_PCLK>,
|
||||
<&clkc CLKID_CLK81>,
|
||||
<&clkc CLKID_GCLK_VENCI_INT0>;
|
||||
};
|
||||
|
||||
&spicc {
|
||||
clocks = <&clkc CLKID_SPICC>;
|
||||
clock-names = "core";
|
||||
|
@ -827,3 +864,14 @@
|
|||
compatible = "amlogic,meson-gxl-vpu", "amlogic,meson-gx-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 {
|
||||
serial0 = &uart_AO;
|
||||
serial1 = &uart_A;
|
||||
serial2 = &uart_AO_B;
|
||||
};
|
||||
|
||||
|
@ -63,11 +62,9 @@
|
|||
|
||||
gpio-keys-polled {
|
||||
compatible = "gpio-keys-polled";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
poll-interval = <100>;
|
||||
|
||||
button@0 {
|
||||
power-button {
|
||||
label = "power";
|
||||
linux,code = <KEY_POWER>;
|
||||
gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>;
|
||||
|
@ -132,19 +129,15 @@
|
|||
|
||||
map1 {
|
||||
trip = <&cpu_alert1>;
|
||||
cooling-device = <&gpio_fan 2 THERMAL_NO_LIMIT>;
|
||||
};
|
||||
|
||||
map2 {
|
||||
trip = <&cpu_alert1>;
|
||||
cooling-device =
|
||||
<&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
||||
};
|
||||
|
||||
map3 {
|
||||
trip = <&cpu_alert1>;
|
||||
cooling-device =
|
||||
<&cpu4 THERMAL_NO_LIMIT 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>,
|
||||
<&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
<&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
<&cpu4 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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -246,11 +239,6 @@
|
|||
|
||||
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 */
|
||||
phy-mode = "rgmii";
|
||||
|
||||
|
@ -261,6 +249,11 @@
|
|||
external_phy: ethernet-phy@0 {
|
||||
/* Realtek RTL8211F (0x001cc916) */
|
||||
reg = <0>;
|
||||
|
||||
reset-assert-us = <10000>;
|
||||
reset-deassert-us = <30000>;
|
||||
reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
|
||||
|
||||
interrupt-parent = <&gpio_intc>;
|
||||
/* MAC_INTR on GPIOZ_15 */
|
||||
interrupts = <25 IRQ_TYPE_LEVEL_LOW>;
|
||||
|
@ -306,7 +299,7 @@
|
|||
status = "okay";
|
||||
pinctrl-0 = <&remote_input_ao_pins>;
|
||||
pinctrl-names = "default";
|
||||
linux,rc-map-name = "rc-geekbox";
|
||||
linux,rc-map-name = "rc-khadas";
|
||||
};
|
||||
|
||||
&pwm_AO_ab {
|
||||
|
@ -328,16 +321,20 @@
|
|||
&sd_emmc_a {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&sdio_pins>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-1 = <&sdio_clk_gate_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
bus-width = <4>;
|
||||
max-frequency = <100000000>;
|
||||
max-frequency = <50000000>;
|
||||
|
||||
non-removable;
|
||||
disable-wp;
|
||||
|
||||
/* WiFi firmware requires power to be kept while in suspend */
|
||||
keep-power-in-suspend;
|
||||
|
||||
mmc-pwrseq = <&sdio_pwrseq>;
|
||||
|
||||
vmmc-supply = <&vddao_3v3>;
|
||||
|
@ -353,15 +350,15 @@
|
|||
&sd_emmc_b {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&sdcard_pins>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-1 = <&sdcard_clk_gate_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
|
||||
bus-width = <4>;
|
||||
cap-sd-highspeed;
|
||||
max-frequency = <100000000>;
|
||||
max-frequency = <50000000>;
|
||||
disable-wp;
|
||||
|
||||
cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>;
|
||||
cd-inverted;
|
||||
cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
|
||||
|
||||
vmmc-supply = <&vddao_3v3>;
|
||||
vqmmc-supply = <&vddio_boot>;
|
||||
|
@ -371,17 +368,16 @@
|
|||
&sd_emmc_c {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-1 = <&emmc_clk_gate_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
|
||||
bus-width = <8>;
|
||||
cap-sd-highspeed;
|
||||
cap-mmc-highspeed;
|
||||
max-frequency = <200000000>;
|
||||
non-removable;
|
||||
disable-wp;
|
||||
mmc-ddr-1_8v;
|
||||
mmc-hs200-1_8v;
|
||||
mmc-hs400-1_8v;
|
||||
|
||||
mmc-pwrseq = <&emmc_pwrseq>;
|
||||
vmmc-supply = <&vcc_3v3>;
|
||||
|
@ -409,8 +405,17 @@
|
|||
/* This one is connected to the Bluetooth module */
|
||||
&uart_A {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&uart_a_pins>;
|
||||
pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
|
||||
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: */
|
||||
|
|
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 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
compatible = "arm,cortex-a53";
|
||||
reg = <0x0 0x100>;
|
||||
enable-method = "psci";
|
||||
next-level-cache = <&l2>;
|
||||
|
@ -53,7 +53,7 @@
|
|||
|
||||
cpu5: cpu@101 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
compatible = "arm,cortex-a53";
|
||||
reg = <0x0 0x101>;
|
||||
enable-method = "psci";
|
||||
next-level-cache = <&l2>;
|
||||
|
@ -62,7 +62,7 @@
|
|||
|
||||
cpu6: cpu@102 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
compatible = "arm,cortex-a53";
|
||||
reg = <0x0 0x102>;
|
||||
enable-method = "psci";
|
||||
next-level-cache = <&l2>;
|
||||
|
@ -71,7 +71,7 @@
|
|||
|
||||
cpu7: cpu@103 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
compatible = "arm,cortex-a53";
|
||||
reg = <0x0 0x103>;
|
||||
enable-method = "psci";
|
||||
next-level-cache = <&l2>;
|
||||
|
@ -91,6 +91,33 @@
|
|||
reset-names = "phy";
|
||||
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 {
|
||||
|
@ -117,3 +144,7 @@
|
|||
&dwc3 {
|
||||
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";
|
||||
};
|
||||
|
||||
&pcie {
|
||||
reset-gpios = <&gpio GPIOA_8 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
&pwm_ef {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&pwm_e_pins>;
|
||||
|
@ -274,6 +278,9 @@
|
|||
non-removable;
|
||||
disable-wp;
|
||||
|
||||
/* WiFi firmware requires power to be kept while in suspend */
|
||||
keep-power-in-suspend;
|
||||
|
||||
mmc-pwrseq = <&sdio_pwrseq>;
|
||||
|
||||
vmmc-supply = <&vsys_3v3>;
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include <dt-bindings/gpio/meson-g12a-gpio.h>
|
||||
#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
|
||||
|
||||
/ {
|
||||
compatible = "seirobotics,sei610", "amlogic,sm1";
|
||||
|
@ -19,6 +20,22 @@
|
|||
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 {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
@ -29,25 +46,47 @@
|
|||
};
|
||||
|
||||
gpio-keys {
|
||||
compatible = "gpio-keys-polled";
|
||||
poll-interval = <100>;
|
||||
compatible = "gpio-keys";
|
||||
|
||||
key1 {
|
||||
label = "A";
|
||||
linux,code = <BTN_0>;
|
||||
gpios = <&gpio GPIOH_6 GPIO_ACTIVE_LOW>;
|
||||
interrupt-parent = <&gpio_intc>;
|
||||
interrupts = <34 IRQ_TYPE_EDGE_BOTH>;
|
||||
};
|
||||
|
||||
key2 {
|
||||
label = "B";
|
||||
linux,code = <BTN_1>;
|
||||
gpios = <&gpio GPIOH_7 GPIO_ACTIVE_LOW>;
|
||||
interrupt-parent = <&gpio_intc>;
|
||||
interrupts = <35 IRQ_TYPE_EDGE_BOTH>;
|
||||
};
|
||||
|
||||
key3 {
|
||||
label = "C";
|
||||
linux,code = <BTN_2>;
|
||||
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";
|
||||
};
|
||||
|
||||
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 {
|
||||
compatible = "pwm-clock";
|
||||
#clock-cells = <0>;
|
||||
|
@ -187,6 +340,10 @@
|
|||
};
|
||||
};
|
||||
|
||||
&arb {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&cec_AO {
|
||||
pinctrl-0 = <&cec_ao_a_h_pins>;
|
||||
pinctrl-names = "default";
|
||||
|
@ -201,6 +358,10 @@
|
|||
hdmi-phandle = <&hdmi_tx>;
|
||||
};
|
||||
|
||||
&clkc_audio {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&cpu0 {
|
||||
cpu-supply = <&vddcpu>;
|
||||
operating-points-v2 = <&cpu_opp_table>;
|
||||
|
@ -235,6 +396,18 @@
|
|||
phy-mode = "rmii";
|
||||
};
|
||||
|
||||
&frddr_a {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&frddr_b {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&frddr_c {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&hdmi_tx {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
|
||||
|
@ -259,6 +432,12 @@
|
|||
pinctrl-names = "default";
|
||||
};
|
||||
|
||||
&pdm {
|
||||
pinctrl-0 = <&pdm_din0_z_pins>, <&pdm_dclk_z_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pwm_AO_ab {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&pwm_ao_a_pins>;
|
||||
|
@ -305,6 +484,9 @@
|
|||
non-removable;
|
||||
disable-wp;
|
||||
|
||||
/* WiFi firmware requires power to be kept while in suspend */
|
||||
keep-power-in-suspend;
|
||||
|
||||
mmc-pwrseq = <&sdio_pwrseq>;
|
||||
|
||||
vmmc-supply = <&vddao_3v3>;
|
||||
|
@ -353,6 +535,54 @@
|
|||
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 {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
|
||||
|
@ -361,6 +591,8 @@
|
|||
|
||||
bluetooth {
|
||||
compatible = "brcm,bcm43438-bt";
|
||||
interrupt-parent = <&gpio_intc>;
|
||||
interrupts = <95 IRQ_TYPE_LEVEL_HIGH>;
|
||||
shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
|
||||
max-speed = <2000000>;
|
||||
clocks = <&wifi32k>;
|
||||
|
|
|
@ -5,11 +5,47 @@
|
|||
*/
|
||||
|
||||
#include "meson-g12-common.dtsi"
|
||||
#include <dt-bindings/clock/axg-audio-clkc.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";
|
||||
|
||||
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 {
|
||||
#address-cells = <0x2>;
|
||||
#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 {
|
||||
compatible = "amlogic,meson-sm1-ao-cec";
|
||||
};
|
||||
|
@ -134,10 +469,31 @@
|
|||
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 {
|
||||
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 {
|
||||
power-domains = <&pwrc PWRC_SM1_VPU_ID>;
|
||||
};
|
||||
|
|
|
@ -133,6 +133,7 @@
|
|||
DDR_MR3
|
||||
>;
|
||||
|
||||
#ifdef DDR_PHY_CAL_SKIP
|
||||
st,phy-cal = <
|
||||
DDR_DX0DLLCR
|
||||
DDR_DX0DQTR
|
||||
|
@ -148,6 +149,8 @@
|
|||
DDR_DX3DQSTR
|
||||
>;
|
||||
|
||||
#endif
|
||||
|
||||
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";
|
||||
reg = <0>;
|
||||
};
|
||||
|
||||
cpu1: cpu@1 {
|
||||
compatible = "arm,cortex-a7";
|
||||
device_type = "cpu";
|
||||
reg = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
psci {
|
||||
|
@ -155,6 +149,11 @@
|
|||
reg = <1>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
counter {
|
||||
compatible = "st,stm32-timer-counter";
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
timers3: timer@40001000 {
|
||||
|
@ -184,6 +183,11 @@
|
|||
reg = <2>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
counter {
|
||||
compatible = "st,stm32-timer-counter";
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
timers4: timer@40002000 {
|
||||
|
@ -211,6 +215,11 @@
|
|||
reg = <3>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
counter {
|
||||
compatible = "st,stm32-timer-counter";
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
timers5: timer@40003000 {
|
||||
|
@ -240,6 +249,11 @@
|
|||
reg = <4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
counter {
|
||||
compatible = "st,stm32-timer-counter";
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
timers6: timer@40004000 {
|
||||
|
@ -596,6 +610,11 @@
|
|||
reg = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
counter {
|
||||
compatible = "st,stm32-timer-counter";
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
timers8: timer@44001000 {
|
||||
|
@ -627,6 +646,11 @@
|
|||
reg = <7>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
counter {
|
||||
compatible = "st,stm32-timer-counter";
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
usart6: serial@44003000 {
|
||||
|
@ -930,33 +954,7 @@
|
|||
};
|
||||
};
|
||||
|
||||
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";
|
||||
};
|
||||
|
||||
dma1: dma@48000000 {
|
||||
dma1: dma-controller@48000000 {
|
||||
compatible = "st,stm32-dma";
|
||||
reg = <0x48000000 0x400>;
|
||||
interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
|
||||
|
@ -973,7 +971,7 @@
|
|||
dma-requests = <8>;
|
||||
};
|
||||
|
||||
dma2: dma@48001000 {
|
||||
dma2: dma-controller@48001000 {
|
||||
compatible = "st,stm32-dma";
|
||||
reg = <0x48001000 0x400>;
|
||||
interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
|
||||
|
@ -1041,8 +1039,8 @@
|
|||
compatible = "arm,pl18x", "arm,primecell";
|
||||
arm,primecell-periphid = <0x10153180>;
|
||||
reg = <0x48004000 0x400>;
|
||||
reg-names = "sdmmc";
|
||||
interrupts = <GIC_SPI 137 IRQ_TYPE_NONE>;
|
||||
interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "cmd_irq";
|
||||
clocks = <&rcc SDMMC3_K>;
|
||||
clock-names = "apb_pclk";
|
||||
resets = <&rcc SDMMC3_R>;
|
||||
|
@ -1273,15 +1271,6 @@
|
|||
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 {
|
||||
compatible = "st,stm32f756-hash";
|
||||
reg = <0x54002000 0x400>;
|
||||
|
@ -1302,7 +1291,7 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
mdma1: dma@58000000 {
|
||||
mdma1: dma-controller@58000000 {
|
||||
compatible = "st,stm32h7-mdma";
|
||||
reg = <0x58000000 0x1000>;
|
||||
interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
@ -1349,20 +1338,22 @@
|
|||
arm,primecell-periphid = <0x10153180>;
|
||||
reg = <0x58005000 0x1000>;
|
||||
interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "cmd_irq";
|
||||
interrupt-names = "cmd_irq";
|
||||
clocks = <&rcc SDMMC1_K>;
|
||||
clock-names = "apb_pclk";
|
||||
resets = <&rcc SDMMC1_R>;
|
||||
cap-sd-highspeed;
|
||||
cap-mmc-highspeed;
|
||||
max-frequency = <120000000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
sdmmc2: sdmmc@58007000 {
|
||||
compatible = "arm,pl18x", "arm,primecell";
|
||||
arm,primecell-periphid = <0x10153180>;
|
||||
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>;
|
||||
clock-names = "apb_pclk";
|
||||
resets = <&rcc SDMMC2_R>;
|
||||
|
@ -1406,6 +1397,7 @@
|
|||
st,syscon = <&syscfg 0x4>;
|
||||
snps,mixed-burst;
|
||||
snps,pbl = <2>;
|
||||
snps,en-tx-lpi-clockgating;
|
||||
snps,axi-config = <&stmmac_axi_config_0>;
|
||||
snps,tso;
|
||||
status = "disabled";
|
||||
|
@ -1430,26 +1422,6 @@
|
|||
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 {
|
||||
compatible = "st,stm32-ltdc";
|
||||
reg = <0x5a001000 0x400>;
|
||||
|
@ -1535,7 +1507,7 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
bsec: nvmem@5c005000 {
|
||||
bsec: efuse@5c005000 {
|
||||
compatible = "st,stm32mp15-bsec";
|
||||
reg = <0x5c005000 0x400>;
|
||||
#address-cells = <1>;
|
||||
|
@ -1560,12 +1532,172 @@
|
|||
#size-cells = <0>;
|
||||
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 {
|
||||
compatible = "simple-bus";
|
||||
mlahb: ahb {
|
||||
compatible = "st,mlahb", "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
dma-ranges = <0x00000000 0x38000000 0x10000>,
|
||||
<0x10000000 0x10000000 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 "stm32mp157-u-boot.dtsi"
|
||||
#include "stm32mp15-u-boot.dtsi"
|
||||
#include "stm32mp15-ddr3-2x4Gb-1066-binG.dtsi"
|
||||
|
||||
/ {
|
||||
|
@ -145,7 +145,10 @@
|
|||
|
||||
&sdmmc1_b4_pins_a {
|
||||
u-boot,dm-spl;
|
||||
pins {
|
||||
pins1 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
pins2 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
};
|
||||
|
@ -199,7 +202,3 @@
|
|||
u-boot,force-b-session-valid;
|
||||
hnp-srp-disable;
|
||||
};
|
||||
|
||||
&v3v3 {
|
||||
regulator-always-on;
|
||||
};
|
||||
|
|
|
@ -6,8 +6,10 @@
|
|||
|
||||
/dts-v1/;
|
||||
|
||||
#include "stm32mp157c.dtsi"
|
||||
#include "stm32mp157xac-pinctrl.dtsi"
|
||||
#include "stm32mp157.dtsi"
|
||||
#include "stm32mp15-pinctrl.dtsi"
|
||||
#include "stm32mp157-pinctrl.dtsi"
|
||||
#include "stm32mp15xxac-pinctrl.dtsi"
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/mfd/st,stpmic1.h>
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
*/
|
||||
|
||||
#include <dt-bindings/clock/stm32mp1-clksrc.h>
|
||||
#include "stm32mp157-u-boot.dtsi"
|
||||
#include "stm32mp15-u-boot.dtsi"
|
||||
#include "stm32mp15-ddr3-1x4Gb-1066-binG.dtsi"
|
||||
|
||||
/ {
|
||||
|
@ -164,7 +164,10 @@
|
|||
|
||||
&sdmmc1_b4_pins_a {
|
||||
u-boot,dm-spl;
|
||||
pins {
|
||||
pins1 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
pins2 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -6,10 +6,10 @@
|
|||
|
||||
/dts-v1/;
|
||||
|
||||
#include "stm32mp157c.dtsi"
|
||||
#include "stm32mp157xac-pinctrl.dtsi"
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/mfd/st,stpmic1.h>
|
||||
#include "stm32mp157.dtsi"
|
||||
#include "stm32mp15-pinctrl.dtsi"
|
||||
#include "stm32mp15xxac-pinctrl.dtsi"
|
||||
#include "stm32mp15xx-dkx.dtsi"
|
||||
|
||||
/ {
|
||||
model = "STMicroelectronics STM32MP157A-DK1 Discovery Board";
|
||||
|
@ -23,537 +23,4 @@
|
|||
chosen {
|
||||
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"
|
||||
|
||||
&i2c1 {
|
||||
hdmi-transmitter@39 {
|
||||
reset-gpios = <&gpioa 10 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -6,11 +6,24 @@
|
|||
|
||||
/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";
|
||||
compatible = "st,stm32mp157c-dk2", "st,stm32mp157";
|
||||
|
||||
aliases {
|
||||
ethernet0 = ðernet0;
|
||||
serial0 = &uart4;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
};
|
||||
|
||||
&dsi {
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
*/
|
||||
|
||||
#include <dt-bindings/clock/stm32mp1-clksrc.h>
|
||||
#include "stm32mp157-u-boot.dtsi"
|
||||
#include "stm32mp15-u-boot.dtsi"
|
||||
#include "stm32mp15-ddr3-2x4Gb-1066-binG.dtsi"
|
||||
|
||||
/ {
|
||||
|
@ -161,7 +161,10 @@
|
|||
|
||||
&sdmmc1_b4_pins_a {
|
||||
u-boot,dm-spl;
|
||||
pins {
|
||||
pins1 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
pins2 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -5,8 +5,10 @@
|
|||
*/
|
||||
/dts-v1/;
|
||||
|
||||
#include "stm32mp157c.dtsi"
|
||||
#include "stm32mp157xaa-pinctrl.dtsi"
|
||||
#include "stm32mp157.dtsi"
|
||||
#include "stm32mp15xc.dtsi"
|
||||
#include "stm32mp15-pinctrl.dtsi"
|
||||
#include "stm32mp15xxaa-pinctrl.dtsi"
|
||||
#include <dt-bindings/gpio/gpio.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 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&dac_ch1_pins_a &dac_ch2_pins_a>;
|
||||
|
|
|
@ -182,8 +182,6 @@
|
|||
|
||||
ov5640: camera@3c {
|
||||
compatible = "ovti,ov5640";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&ov5640_pins>;
|
||||
reg = <0x3c>;
|
||||
clocks = <&clk_ext_camera>;
|
||||
clock-names = "xclk";
|
||||
|
@ -224,12 +222,6 @@
|
|||
pins = "gpio0", "gpio1", "gpio2", "gpio3", "gpio4";
|
||||
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 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spi1_pins_a>;
|
||||
|
@ -304,7 +308,8 @@
|
|||
status = "disabled";
|
||||
pwm {
|
||||
pinctrl-0 = <&pwm2_pins_a>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-1 = <&pwm2_sleep_pins_a>;
|
||||
pinctrl-names = "default", "sleep";
|
||||
status = "okay";
|
||||
};
|
||||
timer@1 {
|
||||
|
@ -318,7 +323,8 @@
|
|||
status = "disabled";
|
||||
pwm {
|
||||
pinctrl-0 = <&pwm8_pins_a>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-1 = <&pwm8_sleep_pins_a>;
|
||||
pinctrl-names = "default", "sleep";
|
||||
status = "okay";
|
||||
};
|
||||
timer@7 {
|
||||
|
@ -332,7 +338,8 @@
|
|||
status = "disabled";
|
||||
pwm {
|
||||
pinctrl-0 = <&pwm12_pins_a>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-1 = <&pwm12_sleep_pins_a>;
|
||||
pinctrl-names = "default", "sleep";
|
||||
status = "okay";
|
||||
};
|
||||
timer@11 {
|
||||
|
@ -348,6 +355,7 @@
|
|||
&usbotg_hs {
|
||||
dr_mode = "peripheral";
|
||||
phys = <&usbphyc_port1 0>;
|
||||
phy-names = "usb2-phy";
|
||||
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 "stm32mp157-u-boot.dtsi"
|
||||
#include "stm32mp15-u-boot.dtsi"
|
||||
#include "stm32mp15-ddr3-2x4Gb-1066-binG.dtsi"
|
||||
|
||||
/ {
|
||||
|
@ -196,7 +196,10 @@
|
|||
|
||||
&sdmmc1_b4_pins_a {
|
||||
u-boot,dm-spl;
|
||||
pins {
|
||||
pins1 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
pins2 {
|
||||
u-boot,dm-spl;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -4,8 +4,10 @@
|
|||
*/
|
||||
/dts-v1/;
|
||||
|
||||
#include "stm32mp157c.dtsi"
|
||||
#include "stm32mp157xaa-pinctrl.dtsi"
|
||||
#include "stm32mp157.dtsi"
|
||||
#include "stm32mp15xc.dtsi"
|
||||
#include "stm32mp15-pinctrl.dtsi"
|
||||
#include "stm32mp15xxaa-pinctrl.dtsi"
|
||||
#include <dt-bindings/gpio/gpio.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.
|
||||
*/
|
||||
/dts-v1/;
|
||||
#include "zynq-7000.dtsi"
|
||||
|
||||
/ {
|
||||
#address-cells = <1>;
|
||||
|
@ -33,27 +32,21 @@
|
|||
};
|
||||
|
||||
amba: amba {
|
||||
u-boot,dm-pre-reloc;
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
interrupt-parent = <&intc>;
|
||||
ranges;
|
||||
|
||||
intc: interrupt-controller@f8f01000 {
|
||||
compatible = "arm,cortex-a9-gic";
|
||||
#interrupt-cells = <3>;
|
||||
interrupt-controller;
|
||||
reg = <0xF8F01000 0x1000>,
|
||||
<0xF8F00100 0x100>;
|
||||
};
|
||||
|
||||
slcr: slcr@f8000000 {
|
||||
u-boot,dm-pre-reloc;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "xlnx,zynq-slcr", "syscon", "simple-bus";
|
||||
reg = <0xF8000000 0x1000>;
|
||||
ranges;
|
||||
clkc: clkc@100 {
|
||||
u-boot,dm-pre-reloc;
|
||||
#clock-cells = <1>;
|
||||
compatible = "xlnx,ps7-clkc";
|
||||
clock-output-names = "armpll", "ddrpll",
|
||||
|
@ -78,6 +71,20 @@
|
|||
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>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
partition@qspi-fsbl-uboot {
|
||||
partition@0 {
|
||||
label = "qspi-fsbl-uboot";
|
||||
reg = <0x0 0x100000>;
|
||||
};
|
||||
partition@qspi-linux {
|
||||
partition@100000 {
|
||||
label = "qspi-linux";
|
||||
reg = <0x100000 0x500000>;
|
||||
};
|
||||
partition@qspi-device-tree {
|
||||
partition@600000 {
|
||||
label = "qspi-device-tree";
|
||||
reg = <0x600000 0x20000>;
|
||||
};
|
||||
partition@qspi-rootfs {
|
||||
partition@620000 {
|
||||
label = "qspi-rootfs";
|
||||
reg = <0x620000 0x5E0000>;
|
||||
};
|
||||
partition@qspi-bitstream {
|
||||
partition@c00000 {
|
||||
label = "qspi-bitstream";
|
||||
reg = <0xC00000 0x400000>;
|
||||
};
|
||||
|
|
|
@ -44,23 +44,23 @@
|
|||
spi-max-frequency = <100000000>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
partition@qspi-u-boot-spl {
|
||||
partition@0 {
|
||||
label = "qspi-u-boot-spl";
|
||||
reg = <0x00000 0x10000>;
|
||||
};
|
||||
partition@qspi-u-boot-img {
|
||||
partition@10000 {
|
||||
label = "qspi-u-boot-img";
|
||||
reg = <0x10000 0x60000>;
|
||||
};
|
||||
partition@qspi-device-tree {
|
||||
partition@70000 {
|
||||
label = "qspi-device-tree";
|
||||
reg = <0x70000 0x10000>;
|
||||
};
|
||||
partition@qspi-linux {
|
||||
partition@80000 {
|
||||
label = "qspi-linux";
|
||||
reg = <0x80000 0x400000>;
|
||||
};
|
||||
partition@qspi-rootfs {
|
||||
partition@480000 {
|
||||
label = "qspi-rootfs";
|
||||
reg = <0x480000 0x1b80000>;
|
||||
};
|
||||
|
|
|
@ -181,17 +181,17 @@
|
|||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <7>;
|
||||
hwmon@52 {
|
||||
hwmon@34 {
|
||||
compatible = "ti,ucd9248";
|
||||
reg = <52>;
|
||||
reg = <0x34>;
|
||||
};
|
||||
hwmon@53 {
|
||||
hwmon@35 {
|
||||
compatible = "ti,ucd9248";
|
||||
reg = <53>;
|
||||
reg = <0x35>;
|
||||
};
|
||||
hwmon@54 {
|
||||
hwmon@36 {
|
||||
compatible = "ti,ucd9248";
|
||||
reg = <54>;
|
||||
reg = <0x36>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
status = "okay";
|
||||
num-cs = <4>;
|
||||
is-decoded-cs = <0>;
|
||||
flash@0 {
|
||||
flash@1 {
|
||||
compatible = "sst25wf080", "jedec,spi-nor";
|
||||
reg = <1>;
|
||||
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
Loading…
Reference in a new issue