mirror of
https://github.com/u-boot/u-boot.git
synced 2024-11-27 06:04:40 +08:00
Merge branch 'next'
Signed-off-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
commit
ac897385bb
@ -2,7 +2,7 @@ variables:
|
||||
windows_vm: windows-2019
|
||||
ubuntu_vm: ubuntu-22.04
|
||||
macos_vm: macOS-12
|
||||
ci_runner_image: trini/u-boot-gitlab-ci-runner:jammy-20230624-20Jul2023
|
||||
ci_runner_image: trini/u-boot-gitlab-ci-runner:jammy-20230804-25Aug2023
|
||||
# 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.
|
||||
@ -67,16 +67,6 @@ stages:
|
||||
:^doc/ :^arch/arm/dts/ :^scripts/kconfig/lkc.h
|
||||
:^include/linux/kconfig.h :^tools/ && exit 1 || exit 0
|
||||
|
||||
- job: cppcheck
|
||||
displayName: 'Static code analysis with cppcheck'
|
||||
pool:
|
||||
vmImage: $(ubuntu_vm)
|
||||
container:
|
||||
image: $(ci_runner_image)
|
||||
options: $(container_option)
|
||||
steps:
|
||||
- script: cppcheck -j$(nproc) --force --quiet --inline-suppr .
|
||||
|
||||
- job: docs
|
||||
displayName: 'Build documentation'
|
||||
pool:
|
||||
@ -92,28 +82,6 @@ stages:
|
||||
make htmldocs KDOC_WERROR=1
|
||||
make infodocs
|
||||
|
||||
- job: todo
|
||||
displayName: 'Search for TODO within source tree'
|
||||
pool:
|
||||
vmImage: $(ubuntu_vm)
|
||||
container:
|
||||
image: $(ci_runner_image)
|
||||
options: $(container_option)
|
||||
steps:
|
||||
- script: grep -r TODO .
|
||||
- script: grep -r FIXME .
|
||||
- script: grep -r HACK . | grep -v HACKKIT
|
||||
|
||||
- job: sloccount
|
||||
displayName: 'Some statistics about the code base'
|
||||
pool:
|
||||
vmImage: $(ubuntu_vm)
|
||||
container:
|
||||
image: $(ci_runner_image)
|
||||
options: $(container_option)
|
||||
steps:
|
||||
- script: sloccount .
|
||||
|
||||
- job: maintainers
|
||||
displayName: 'Ensure all configs have MAINTAINERS entries'
|
||||
pool:
|
||||
@ -126,7 +94,7 @@ stages:
|
||||
./tools/buildman/buildman --maintainer-check || exit 0
|
||||
|
||||
- job: tools_only
|
||||
displayName: 'Ensure host tools build'
|
||||
displayName: 'Ensure host tools and env tools build'
|
||||
pool:
|
||||
vmImage: $(ubuntu_vm)
|
||||
container:
|
||||
@ -135,16 +103,7 @@ stages:
|
||||
steps:
|
||||
- script: |
|
||||
make tools-only_config tools-only -j$(nproc)
|
||||
|
||||
- job: envtools
|
||||
displayName: 'Ensure env tools build'
|
||||
pool:
|
||||
vmImage: $(ubuntu_vm)
|
||||
container:
|
||||
image: $(ci_runner_image)
|
||||
options: $(container_option)
|
||||
steps:
|
||||
- script: |
|
||||
make mrproper
|
||||
make tools-only_config envtools -j$(nproc)
|
||||
|
||||
- job: utils
|
||||
@ -163,10 +122,10 @@ stages:
|
||||
. /tmp/venv/bin/activate
|
||||
pip install -r test/py/requirements.txt
|
||||
pip install -r tools/buildman/requirements.txt
|
||||
export UBOOT_TRAVIS_BUILD_DIR=/tmp/sandbox_spl
|
||||
export UBOOT_TRAVIS_BUILD_DIR=/tmp/tools-only
|
||||
export PYTHONPATH=${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt
|
||||
export PATH=${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc:${PATH}
|
||||
./tools/buildman/buildman -T0 -o ${UBOOT_TRAVIS_BUILD_DIR} -w --board sandbox_spl
|
||||
./tools/buildman/buildman -T0 -o ${UBOOT_TRAVIS_BUILD_DIR} -w --board tools-only
|
||||
set -ex
|
||||
./tools/binman/binman --toolpath ${UBOOT_TRAVIS_BUILD_DIR}/tools test
|
||||
./tools/buildman/buildman -t
|
||||
@ -196,8 +155,8 @@ stages:
|
||||
export PATH=${PATH}:~/.local/bin
|
||||
echo "[MASTER]" >> .pylintrc
|
||||
echo "load-plugins=pylint.extensions.docparams" >> .pylintrc
|
||||
export UBOOT_TRAVIS_BUILD_DIR=/tmp/sandbox_spl
|
||||
./tools/buildman/buildman -T0 -o ${UBOOT_TRAVIS_BUILD_DIR} -w --board sandbox_spl
|
||||
export UBOOT_TRAVIS_BUILD_DIR=/tmp/tools-only
|
||||
./tools/buildman/buildman -T0 -o ${UBOOT_TRAVIS_BUILD_DIR} -w --board tools-only
|
||||
set -ex
|
||||
pylint --version
|
||||
export PYTHONPATH=${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt
|
||||
@ -225,19 +184,109 @@ stages:
|
||||
steps:
|
||||
- script: make pip
|
||||
|
||||
- stage: test_py
|
||||
- job: create_test_py_wrapper_script
|
||||
displayName: 'Create and stage a wrapper for test.py runs'
|
||||
pool:
|
||||
vmImage: $(ubuntu_vm)
|
||||
steps:
|
||||
- checkout: none
|
||||
- script: |
|
||||
cat << EOF > test.sh
|
||||
#!/bin/bash
|
||||
set -ex
|
||||
# the below corresponds to .gitlab-ci.yml "before_script"
|
||||
cd \${WORK_DIR}
|
||||
git config --global --add safe.directory \${WORK_DIR}
|
||||
git clone --depth=1 https://source.denx.de/u-boot/u-boot-test-hooks /tmp/uboot-test-hooks
|
||||
ln -s travis-ci /tmp/uboot-test-hooks/bin/\`hostname\`
|
||||
ln -s travis-ci /tmp/uboot-test-hooks/py/\`hostname\`
|
||||
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
|
||||
if [[ "\${TEST_PY_BD}" == "qemu-riscv32_spl" ]]; then
|
||||
wget -O - https://github.com/riscv-software-src/opensbi/releases/download/v1.2/opensbi-1.2-rv-bin.tar.xz | tar -C /tmp -xJ;
|
||||
export OPENSBI=/tmp/opensbi-1.2-rv-bin/share/opensbi/ilp32/generic/firmware/fw_dynamic.bin;
|
||||
fi
|
||||
if [[ "\${TEST_PY_BD}" == "qemu-riscv64_spl" ]] || [[ "\${TEST_PY_BD}" == "sifive_unleashed" ]]; then
|
||||
wget -O - https://github.com/riscv-software-src/opensbi/releases/download/v1.2/opensbi-1.2-rv-bin.tar.xz | tar -C /tmp -xJ;
|
||||
export OPENSBI=/tmp/opensbi-1.2-rv-bin/share/opensbi/lp64/generic/firmware/fw_dynamic.bin;
|
||||
fi
|
||||
# the below corresponds to .gitlab-ci.yml "script"
|
||||
cd \${WORK_DIR}
|
||||
export UBOOT_TRAVIS_BUILD_DIR=/tmp/\${TEST_PY_BD}
|
||||
if [ -n "\${BUILD_ENV}" ]; then
|
||||
export \${BUILD_ENV};
|
||||
fi
|
||||
pip install -r tools/buildman/requirements.txt
|
||||
tools/buildman/buildman -o \${UBOOT_TRAVIS_BUILD_DIR} -w -E -W -e --board \${TEST_PY_BD} \${OVERRIDE}
|
||||
cp ~/grub_x86.efi \${UBOOT_TRAVIS_BUILD_DIR}/
|
||||
cp ~/grub_x64.efi \${UBOOT_TRAVIS_BUILD_DIR}/
|
||||
cp /opt/grub/grubriscv64.efi \${UBOOT_TRAVIS_BUILD_DIR}/grub_riscv64.efi
|
||||
cp /opt/grub/grubaa64.efi \${UBOOT_TRAVIS_BUILD_DIR}/grub_arm64.efi
|
||||
cp /opt/grub/grubarm.efi \${UBOOT_TRAVIS_BUILD_DIR}/grub_arm.efi
|
||||
# create sdcard / spi-nor images for sifive unleashed using genimage
|
||||
if [[ "\${TEST_PY_BD}" == "sifive_unleashed" ]]; then
|
||||
mkdir -p root;
|
||||
cp \${UBOOT_TRAVIS_BUILD_DIR}/spl/u-boot-spl.bin .;
|
||||
cp \${UBOOT_TRAVIS_BUILD_DIR}/u-boot.itb .;
|
||||
rm -rf tmp;
|
||||
genimage --inputpath . --config board/sifive/unleashed/genimage_sdcard.cfg;
|
||||
cp images/sdcard.img \${UBOOT_TRAVIS_BUILD_DIR}/;
|
||||
rm -rf tmp;
|
||||
genimage --inputpath . --config board/sifive/unleashed/genimage_spi-nor.cfg;
|
||||
cp images/spi-nor.img \${UBOOT_TRAVIS_BUILD_DIR}/;
|
||||
fi
|
||||
if [[ "\${TEST_PY_BD}" == "coreboot" ]]; then
|
||||
wget -O - "https://drive.google.com/uc?id=1uJ2VkUQ8czWFZmhJQ90Tp8V_zrJ6BrBH&export=download" |xz -dc >\${UBOOT_TRAVIS_BUILD_DIR}/coreboot.rom;
|
||||
wget -O - "https://drive.google.com/uc?id=149Cz-5SZXHNKpi9xg6R_5XITWohu348y&export=download" >cbfstool;
|
||||
chmod a+x cbfstool;
|
||||
./cbfstool \${UBOOT_TRAVIS_BUILD_DIR}/coreboot.rom add-flat-binary -f \${UBOOT_TRAVIS_BUILD_DIR}/u-boot.bin -n fallback/payload -c LZMA -l 0x1110000 -e 0x1110000;
|
||||
fi
|
||||
virtualenv -p /usr/bin/python3 /tmp/venv
|
||||
. /tmp/venv/bin/activate
|
||||
pip install -r test/py/requirements.txt
|
||||
pip install pytest-azurepipelines
|
||||
export PATH=/opt/qemu/bin:/tmp/uboot-test-hooks/bin:\${PATH}
|
||||
export PYTHONPATH=/tmp/uboot-test-hooks/py/travis-ci
|
||||
# "\${var:+"-k \$var"}" expands to "" if \$var is empty, "-k \$var" if not
|
||||
./test/py/test.py -ra -o cache_dir="\$UBOOT_TRAVIS_BUILD_DIR"/.pytest_cache --bd \${TEST_PY_BD} \${TEST_PY_ID} \${TEST_PY_TEST_SPEC:+"-k \${TEST_PY_TEST_SPEC}"} --build-dir "\$UBOOT_TRAVIS_BUILD_DIR" --report-dir "\$UBOOT_TRAVIS_BUILD_DIR"
|
||||
# the below corresponds to .gitlab-ci.yml "after_script"
|
||||
rm -rf /tmp/uboot-test-hooks /tmp/venv
|
||||
EOF
|
||||
- task: CopyFiles@2
|
||||
displayName: 'Copy test.sh for later usage'
|
||||
inputs:
|
||||
contents: 'test.sh'
|
||||
targetFolder: '$(Build.ArtifactStagingDirectory)'
|
||||
- publish: '$(Build.ArtifactStagingDirectory)/test.sh'
|
||||
displayName: 'Publish test.sh'
|
||||
artifact: testsh
|
||||
|
||||
- stage: test_py_sandbox
|
||||
jobs:
|
||||
- job: test_py
|
||||
displayName: 'test.py'
|
||||
- job: test_py_sandbox
|
||||
displayName: 'test.py for sandbox'
|
||||
pool:
|
||||
vmImage: $(ubuntu_vm)
|
||||
strategy:
|
||||
matrix:
|
||||
sandbox:
|
||||
TEST_PY_BD: "sandbox"
|
||||
sandbox_asan:
|
||||
TEST_PY_BD: "sandbox"
|
||||
OVERRIDE: "-a ASAN"
|
||||
TEST_PY_TEST_SPEC: "version"
|
||||
sandbox_clang:
|
||||
TEST_PY_BD: "sandbox"
|
||||
OVERRIDE: "-O clang-16"
|
||||
sandbox_clang_asan:
|
||||
TEST_PY_BD: "sandbox"
|
||||
OVERRIDE: "-O clang-16 -a ASAN"
|
||||
TEST_PY_TEST_SPEC: "version"
|
||||
sandbox64:
|
||||
TEST_PY_BD: "sandbox64"
|
||||
sandbox64_clang:
|
||||
TEST_PY_BD: "sandbox64"
|
||||
OVERRIDE: "-O clang-16"
|
||||
sandbox_nolto:
|
||||
TEST_PY_BD: "sandbox"
|
||||
BUILD_ENV: "NO_LTO=1"
|
||||
@ -256,7 +305,48 @@ stages:
|
||||
TEST_PY_BD: "sandbox"
|
||||
BUILD_ENV: "FTRACE=1 NO_LTO=1"
|
||||
TEST_PY_TEST_SPEC: "trace"
|
||||
OVERRIDE: "-a CONFIG_TRACE=y -a CONFIG_TRACE_EARLY=y -a CONFIG_TRACE_EARLY_SIZE=0x01000000"
|
||||
OVERRIDE: "-a CONFIG_TRACE=y -a CONFIG_TRACE_EARLY=y -a CONFIG_TRACE_EARLY_SIZE=0x01000000 -a CONFIG_TRACE_BUFFER_SIZE=0x02000000"
|
||||
steps:
|
||||
- download: current
|
||||
artifact: testsh
|
||||
- script: |
|
||||
# make current directory writeable to uboot user inside the container
|
||||
# as sandbox testing need create files like spi flash images, etc.
|
||||
# (TODO: clean up this in the future)
|
||||
chmod 777 .
|
||||
chmod 755 $(Pipeline.Workspace)/testsh/test.sh
|
||||
# Filesystem tests need extra docker args to run
|
||||
set --
|
||||
# mount -o loop needs the loop devices
|
||||
if modprobe loop; then
|
||||
for d in $(find /dev -maxdepth 1 -name 'loop*'); do
|
||||
set -- "$@" --device $d:$d
|
||||
done
|
||||
fi
|
||||
# Needed for mount syscall (for guestmount as well)
|
||||
set -- "$@" --cap-add SYS_ADMIN
|
||||
# Default apparmor profile denies mounts
|
||||
set -- "$@" --security-opt apparmor=unconfined
|
||||
# Some tests using libguestfs-tools need the fuse device to run
|
||||
docker run "$@" --device /dev/fuse:/dev/fuse \
|
||||
-v $PWD:$(work_dir) \
|
||||
-v $(Pipeline.Workspace):$(Pipeline.Workspace) \
|
||||
-e WORK_DIR="${WORK_DIR}" \
|
||||
-e TEST_PY_BD="${TEST_PY_BD}" \
|
||||
-e TEST_PY_ID="${TEST_PY_ID}" \
|
||||
-e TEST_PY_TEST_SPEC="${TEST_PY_TEST_SPEC}" \
|
||||
-e OVERRIDE="${OVERRIDE}" \
|
||||
-e BUILD_ENV="${BUILD_ENV}" $(ci_runner_image) \
|
||||
$(Pipeline.Workspace)/testsh/test.sh
|
||||
|
||||
- stage: test_py_qemu
|
||||
jobs:
|
||||
- job: test_py_qemu
|
||||
displayName: 'test.py for QEMU platforms'
|
||||
pool:
|
||||
vmImage: $(ubuntu_vm)
|
||||
strategy:
|
||||
matrix:
|
||||
coreboot:
|
||||
TEST_PY_BD: "coreboot"
|
||||
TEST_PY_ID: "--id qemu"
|
||||
@ -353,97 +443,25 @@ stages:
|
||||
TEST_PY_ID: "--id qemu"
|
||||
TEST_PY_TEST_SPEC: "not sleep"
|
||||
steps:
|
||||
- download: current
|
||||
artifact: testsh
|
||||
- script: |
|
||||
cat << EOF > test.sh
|
||||
set -ex
|
||||
# make environment variables available as tests are running inside a container
|
||||
export WORK_DIR="${WORK_DIR}"
|
||||
export TEST_PY_BD="${TEST_PY_BD}"
|
||||
export TEST_PY_ID="${TEST_PY_ID}"
|
||||
export TEST_PY_TEST_SPEC="${TEST_PY_TEST_SPEC}"
|
||||
export OVERRIDE="${OVERRIDE}"
|
||||
export BUILD_ENV="${BUILD_ENV}"
|
||||
EOF
|
||||
cat << "EOF" >> test.sh
|
||||
# the below corresponds to .gitlab-ci.yml "before_script"
|
||||
cd ${WORK_DIR}
|
||||
git config --global --add safe.directory ${WORK_DIR}
|
||||
git clone --depth=1 https://source.denx.de/u-boot/u-boot-test-hooks /tmp/uboot-test-hooks
|
||||
ln -s travis-ci /tmp/uboot-test-hooks/bin/`hostname`
|
||||
ln -s travis-ci /tmp/uboot-test-hooks/py/`hostname`
|
||||
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
|
||||
if [[ "${TEST_PY_BD}" == "qemu-riscv32_spl" ]]; then
|
||||
wget -O - https://github.com/riscv-software-src/opensbi/releases/download/v1.2/opensbi-1.2-rv-bin.tar.xz | tar -C /tmp -xJ;
|
||||
export OPENSBI=/tmp/opensbi-1.2-rv-bin/share/opensbi/ilp32/generic/firmware/fw_dynamic.bin;
|
||||
fi
|
||||
if [[ "${TEST_PY_BD}" == "qemu-riscv64_spl" ]] || [[ "${TEST_PY_BD}" == "sifive_unleashed" ]]; then
|
||||
wget -O - https://github.com/riscv-software-src/opensbi/releases/download/v1.2/opensbi-1.2-rv-bin.tar.xz | tar -C /tmp -xJ;
|
||||
export OPENSBI=/tmp/opensbi-1.2-rv-bin/share/opensbi/lp64/generic/firmware/fw_dynamic.bin;
|
||||
fi
|
||||
# the below corresponds to .gitlab-ci.yml "script"
|
||||
cd ${WORK_DIR}
|
||||
export UBOOT_TRAVIS_BUILD_DIR=/tmp/${TEST_PY_BD};
|
||||
if [ -n "${BUILD_ENV}" ]; then
|
||||
export ${BUILD_ENV};
|
||||
fi
|
||||
pip install -r tools/buildman/requirements.txt
|
||||
tools/buildman/buildman -o ${UBOOT_TRAVIS_BUILD_DIR} -w -E -W -e --board ${TEST_PY_BD} ${OVERRIDE}
|
||||
cp ~/grub_x86.efi ${UBOOT_TRAVIS_BUILD_DIR}/
|
||||
cp ~/grub_x64.efi ${UBOOT_TRAVIS_BUILD_DIR}/
|
||||
cp /opt/grub/grubriscv64.efi ${UBOOT_TRAVIS_BUILD_DIR}/grub_riscv64.efi
|
||||
cp /opt/grub/grubaa64.efi ${UBOOT_TRAVIS_BUILD_DIR}/grub_arm64.efi
|
||||
cp /opt/grub/grubarm.efi ${UBOOT_TRAVIS_BUILD_DIR}/grub_arm.efi
|
||||
# create sdcard / spi-nor images for sifive unleashed using genimage
|
||||
if [[ "${TEST_PY_BD}" == "sifive_unleashed" ]]; then
|
||||
mkdir -p root;
|
||||
cp ${UBOOT_TRAVIS_BUILD_DIR}/spl/u-boot-spl.bin .;
|
||||
cp ${UBOOT_TRAVIS_BUILD_DIR}/u-boot.itb .;
|
||||
rm -rf tmp;
|
||||
genimage --inputpath . --config board/sifive/unleashed/genimage_sdcard.cfg;
|
||||
cp images/sdcard.img ${UBOOT_TRAVIS_BUILD_DIR}/;
|
||||
rm -rf tmp;
|
||||
genimage --inputpath . --config board/sifive/unleashed/genimage_spi-nor.cfg;
|
||||
cp images/spi-nor.img ${UBOOT_TRAVIS_BUILD_DIR}/;
|
||||
fi
|
||||
if [[ "${TEST_PY_BD}" == "coreboot" ]]; then
|
||||
wget -O - "https://drive.google.com/uc?id=1uJ2VkUQ8czWFZmhJQ90Tp8V_zrJ6BrBH&export=download" |xz -dc >${UBOOT_TRAVIS_BUILD_DIR}/coreboot.rom;
|
||||
wget -O - "https://drive.google.com/uc?id=149Cz-5SZXHNKpi9xg6R_5XITWohu348y&export=download" >cbfstool;
|
||||
chmod a+x cbfstool;
|
||||
./cbfstool ${UBOOT_TRAVIS_BUILD_DIR}/coreboot.rom add-flat-binary -f ${UBOOT_TRAVIS_BUILD_DIR}/u-boot.bin -n fallback/payload -c LZMA -l 0x1110000 -e 0x1110000;
|
||||
fi
|
||||
virtualenv -p /usr/bin/python3 /tmp/venv
|
||||
. /tmp/venv/bin/activate
|
||||
pip install -r test/py/requirements.txt
|
||||
pip install pytest-azurepipelines
|
||||
export PATH=/opt/qemu/bin:/tmp/uboot-test-hooks/bin:${PATH};
|
||||
export PYTHONPATH=/tmp/uboot-test-hooks/py/travis-ci;
|
||||
# "${var:+"-k $var"}" expands to "" if $var is empty, "-k $var" if not
|
||||
./test/py/test.py -ra -o cache_dir="$UBOOT_TRAVIS_BUILD_DIR"/.pytest_cache --bd ${TEST_PY_BD} ${TEST_PY_ID} ${TEST_PY_TEST_SPEC:+"-k ${TEST_PY_TEST_SPEC}"} --build-dir "$UBOOT_TRAVIS_BUILD_DIR" --report-dir "$UBOOT_TRAVIS_BUILD_DIR";
|
||||
# the below corresponds to .gitlab-ci.yml "after_script"
|
||||
rm -rf /tmp/uboot-test-hooks /tmp/venv
|
||||
EOF
|
||||
cat test.sh
|
||||
# make current directory writeable to uboot user inside the container
|
||||
# as sandbox testing need create files like spi flash images, etc.
|
||||
# (TODO: clean up this in the future)
|
||||
chmod 777 .
|
||||
# Filesystem tests need extra docker args to run
|
||||
set --
|
||||
if [[ "${TEST_PY_BD}" == "sandbox" ]]; then
|
||||
# mount -o loop needs the loop devices
|
||||
if modprobe loop; then
|
||||
for d in $(find /dev -maxdepth 1 -name 'loop*'); do
|
||||
set -- "$@" --device $d:$d
|
||||
done
|
||||
fi
|
||||
# Needed for mount syscall (for guestmount as well)
|
||||
set -- "$@" --cap-add SYS_ADMIN
|
||||
# Default apparmor profile denies mounts
|
||||
set -- "$@" --security-opt apparmor=unconfined
|
||||
fi
|
||||
chmod 755 $(Pipeline.Workspace)/testsh/test.sh
|
||||
# Some tests using libguestfs-tools need the fuse device to run
|
||||
docker run "$@" --device /dev/fuse:/dev/fuse -v $PWD:$(work_dir) $(ci_runner_image) /bin/bash $(work_dir)/test.sh
|
||||
docker run "$@" --device /dev/fuse:/dev/fuse \
|
||||
-v $PWD:$(work_dir) \
|
||||
-v $(Pipeline.Workspace):$(Pipeline.Workspace) \
|
||||
-e WORK_DIR="${WORK_DIR}" \
|
||||
-e TEST_PY_BD="${TEST_PY_BD}" \
|
||||
-e TEST_PY_ID="${TEST_PY_ID}" \
|
||||
-e TEST_PY_TEST_SPEC="${TEST_PY_TEST_SPEC}" \
|
||||
-e OVERRIDE="${OVERRIDE}" \
|
||||
-e BUILD_ENV="${BUILD_ENV}" $(ci_runner_image) \
|
||||
$(Pipeline.Workspace)/testsh/test.sh
|
||||
retryCountOnTaskFailure: 2 # QEMU may be too slow, etc.
|
||||
|
||||
- stage: world_build
|
||||
@ -457,84 +475,26 @@ stages:
|
||||
# Use almost the same target division in .travis.yml, only merged
|
||||
# 3 small build jobs (arc/microblaze/xtensa) into one.
|
||||
matrix:
|
||||
arc_nios2_m68k_microblaze_xtensa:
|
||||
BUILDMAN: "arc nios2 microblaze m68k xtensa"
|
||||
amlogic:
|
||||
BUILDMAN: "amlogic"
|
||||
arm11_arm7_arm920t_arm946es:
|
||||
BUILDMAN: "arm11 arm7 arm920t arm946es"
|
||||
arm926ejs:
|
||||
BUILDMAN: "arm926ejs -x freescale,siemens,at91,kirkwood,omap"
|
||||
at91_non_armv7:
|
||||
BUILDMAN: "at91 -x armv7"
|
||||
at91_non_arm926ejs:
|
||||
BUILDMAN: "at91 -x arm926ejs"
|
||||
boundary_engicam_toradex:
|
||||
BUILDMAN: "boundary engicam toradex"
|
||||
arm_bcm:
|
||||
BUILDMAN: "bcm -x mips"
|
||||
nxp_arm32:
|
||||
BUILDMAN: "freescale -x powerpc,m68k,aarch64,ls101,ls102,ls104,ls108,ls20,lx216"
|
||||
nxp_ls101x_ls108x:
|
||||
BUILDMAN: "freescale&ls101 freescale&ls108"
|
||||
nxp_ls102x:
|
||||
BUILDMAN: "freescale&ls102 -x keymile"
|
||||
nxp_ls104x:
|
||||
BUILDMAN: "freescale&ls104"
|
||||
nxp_ls20xx_lx216x:
|
||||
BUILDMAN: "freescale&ls20 freescale&lx216"
|
||||
imx6:
|
||||
BUILDMAN: "mx6 -x boundary,engicam,freescale,technexion,toradex"
|
||||
am33xx_at91_kirkwood_mvebu_omap:
|
||||
BUILDMAN: "am33xx at91_kirkwood mvebu omap -x siemens"
|
||||
amlogic_bcm_boundary_engicam_siemens_technexion_oradex:
|
||||
BUILDMAN: "amlogic bcm boundary engicam siemens technexion toradex -x mips"
|
||||
arm_nxp_minus_imx:
|
||||
BUILDMAN: "freescale -x powerpc,m68k,imx,mx"
|
||||
imx:
|
||||
BUILDMAN: "mx -x mx6,imx8,freescale,technexion,toradex"
|
||||
imx8_imx9:
|
||||
BUILDMAN: "imx8 imx9 -x engicam,technexion,toradex"
|
||||
keymiles_siemens_technexion:
|
||||
BUILDMAN: "keymile siemens technexion"
|
||||
keystone2_keystone3:
|
||||
BUILDMAN: "k2 k3 -x siemens,toradex"
|
||||
sandbox_asan:
|
||||
BUILDMAN: "sandbox"
|
||||
OVERRIDE: "-a ASAN"
|
||||
sandbox_clang_asan:
|
||||
BUILDMAN: "sandbox"
|
||||
OVERRIDE: "-O clang-16 -a ASAN"
|
||||
samsung_socfpga_renesas:
|
||||
BUILDMAN: "samsung socfpga renesas"
|
||||
sun4i_sun9i:
|
||||
BUILDMAN: "sun4i sun9i"
|
||||
sun5i_sun6i:
|
||||
BUILDMAN: "sun5i sun6i"
|
||||
sun7i:
|
||||
BUILDMAN: "sun7i"
|
||||
sun8i:
|
||||
BUILDMAN: "sun8i"
|
||||
sun50i:
|
||||
BUILDMAN: "sun50i"
|
||||
arm_catch_all:
|
||||
BUILDMAN: "arm -x arm11,arm7,arm9,aarch64,at91,bcm,freescale,kirkwood,mvebu,renesas,siemens,tegra,uniphier,mx,samsung,sunxi,am33xx,omap,toradex,socfpga,k2,k3,zynq"
|
||||
sandbox_x86:
|
||||
BUILDMAN: "sandbox x86"
|
||||
kirkwood_mvebu_uniphier:
|
||||
BUILDMAN: "kirkwood mvebu uniphier"
|
||||
mips:
|
||||
BUILDMAN: "mips"
|
||||
BUILDMAN: "mx imx -x boundary,engicam,technexion,toradex"
|
||||
rk:
|
||||
BUILDMAN: "rk"
|
||||
sunxi:
|
||||
BUILDMAN: "sunxi"
|
||||
powerpc:
|
||||
BUILDMAN: "powerpc -x keymile"
|
||||
tegra:
|
||||
BUILDMAN: "tegra -x toradex"
|
||||
am33xx_omap:
|
||||
BUILDMAN: "am33xx omap -x siemens"
|
||||
BUILDMAN: "powerpc"
|
||||
arm_catch_all:
|
||||
BUILDMAN: "arm -x aarch64,am33xx,at91,bcm,ls1,kirkwood,mvebu,omap,rk,siemens,mx,sunxi,technexion,toradex"
|
||||
aarch64_catch_all:
|
||||
BUILDMAN: "aarch64 -x amlogic,bcm,imx8,imx9,k3,tegra,ls1,ls2,lx216,mvebu,uniphier,renesas,sunxi,samsung,socfpga,rk,versal,zynq"
|
||||
rk_non_rockchip_64bit:
|
||||
BUILDMAN: "rk&aarch64 -x rockchip"
|
||||
rk_rockchip_64bit:
|
||||
BUILDMAN: "rk&aarch64&rockchip"
|
||||
zynq_zynqmp_versal:
|
||||
BUILDMAN: "zynq&armv7 versal zynqmp&aarch64"
|
||||
riscv:
|
||||
BUILDMAN: "riscv"
|
||||
BUILDMAN: "aarch64 -x amlogic,bcm,engicam,imx,ls1,ls2,lx216,mvebu,rk,siemens,sunxi,toradex"
|
||||
everything_but_arm_and_powerpc:
|
||||
BUILDMAN: "-x arm,powerpc"
|
||||
steps:
|
||||
- script: |
|
||||
cat << EOF > build.sh
|
||||
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -35,7 +35,7 @@
|
||||
*.tab.[ch]
|
||||
|
||||
# Build tree
|
||||
/build-*
|
||||
/build*
|
||||
|
||||
#
|
||||
# Top-level generic files
|
||||
|
@ -10,7 +10,7 @@ default:
|
||||
|
||||
# Grab our configured image. The source for this is found
|
||||
# in the u-boot tree at tools/docker/Dockerfile
|
||||
image: ${MIRROR_DOCKER}/trini/u-boot-gitlab-ci-runner:jammy-20230624-20Jul2023
|
||||
image: ${MIRROR_DOCKER}/trini/u-boot-gitlab-ci-runner:jammy-20230804-25Aug2023
|
||||
|
||||
# We run some tests in different order, to catch some failures quicker.
|
||||
stages:
|
||||
@ -21,6 +21,8 @@ stages:
|
||||
.buildman_and_testpy_template: &buildman_and_testpy_dfn
|
||||
stage: test.py
|
||||
retry: 2 # QEMU may be too slow, etc.
|
||||
rules:
|
||||
- when: always
|
||||
before_script:
|
||||
# Clone uboot-test-hooks
|
||||
- git config --global --add safe.directory "${CI_PROJECT_DIR}"
|
||||
@ -93,8 +95,13 @@ stages:
|
||||
- "*.css"
|
||||
expire_in: 1 week
|
||||
|
||||
build all 32bit ARM platforms:
|
||||
.world_build:
|
||||
stage: world build
|
||||
rules:
|
||||
- when: always
|
||||
|
||||
build all 32bit ARM platforms:
|
||||
extends: .world_build
|
||||
script:
|
||||
- ret=0;
|
||||
git config --global --add safe.directory "${CI_PROJECT_DIR}";
|
||||
@ -106,7 +113,7 @@ build all 32bit ARM platforms:
|
||||
fi;
|
||||
|
||||
build all 64bit ARM platforms:
|
||||
stage: world build
|
||||
extends: .world_build
|
||||
script:
|
||||
- virtualenv -p /usr/bin/python3 /tmp/venv
|
||||
- . /tmp/venv/bin/activate
|
||||
@ -120,7 +127,7 @@ build all 64bit ARM platforms:
|
||||
fi;
|
||||
|
||||
build all PowerPC platforms:
|
||||
stage: world build
|
||||
extends: .world_build
|
||||
script:
|
||||
- ret=0;
|
||||
git config --global --add safe.directory "${CI_PROJECT_DIR}";
|
||||
@ -131,7 +138,7 @@ build all PowerPC platforms:
|
||||
fi;
|
||||
|
||||
build all other platforms:
|
||||
stage: world build
|
||||
extends: .world_build
|
||||
script:
|
||||
- ret=0;
|
||||
git config --global --add safe.directory "${CI_PROJECT_DIR}";
|
||||
@ -141,8 +148,13 @@ build all other platforms:
|
||||
exit $ret;
|
||||
fi;
|
||||
|
||||
check for new CONFIG symbols outside Kconfig:
|
||||
.testsuites:
|
||||
stage: testsuites
|
||||
rules:
|
||||
- when: always
|
||||
|
||||
check for new CONFIG symbols outside Kconfig:
|
||||
extends: .testsuites
|
||||
script:
|
||||
- git config --global --add safe.directory "${CI_PROJECT_DIR}"
|
||||
# If grep succeeds and finds a match the test fails as we should
|
||||
@ -151,25 +163,9 @@ check for new CONFIG symbols outside Kconfig:
|
||||
:^doc/ :^arch/arm/dts/ :^scripts/kconfig/lkc.h
|
||||
:^include/linux/kconfig.h :^tools/ && exit 1 || exit 0
|
||||
|
||||
# QA jobs for code analytics
|
||||
# static code analysis with cppcheck (we can add --enable=all later)
|
||||
cppcheck:
|
||||
stage: testsuites
|
||||
script:
|
||||
- cppcheck -j$(nproc) --force --quiet --inline-suppr .
|
||||
|
||||
# search for TODO within source tree
|
||||
grep TODO/FIXME/HACK:
|
||||
stage: testsuites
|
||||
script:
|
||||
- grep -r TODO .
|
||||
- grep -r FIXME .
|
||||
# search for HACK within source tree and ignore HACKKIT board
|
||||
- grep -r HACK . | grep -v HACKKIT
|
||||
|
||||
# build documentation
|
||||
docs:
|
||||
stage: testsuites
|
||||
extends: .testsuites
|
||||
script:
|
||||
- virtualenv -p /usr/bin/python3 /tmp/venvhtml
|
||||
- . /tmp/venvhtml/bin/activate
|
||||
@ -177,32 +173,22 @@ docs:
|
||||
- make htmldocs KDOC_WERROR=1
|
||||
- make infodocs
|
||||
|
||||
# some statistics about the code base
|
||||
sloccount:
|
||||
stage: testsuites
|
||||
script:
|
||||
- sloccount .
|
||||
|
||||
# ensure all configs have MAINTAINERS entries
|
||||
Check for configs without MAINTAINERS entry:
|
||||
stage: testsuites
|
||||
extends: .testsuites
|
||||
script:
|
||||
- ./tools/buildman/buildman --maintainer-check || exit 0
|
||||
|
||||
# Ensure host tools build
|
||||
Build tools-only:
|
||||
stage: testsuites
|
||||
Build tools-only and envtools:
|
||||
extends: .testsuites
|
||||
script:
|
||||
- make tools-only_config tools-only -j$(nproc)
|
||||
|
||||
# Ensure env tools build
|
||||
Build envtools:
|
||||
stage: testsuites
|
||||
script:
|
||||
- make tools-only_config envtools -j$(nproc)
|
||||
- make tools-only_config tools-only -j$(nproc);
|
||||
make mrproper;
|
||||
make tools-only_config envtools -j$(nproc)
|
||||
|
||||
Run binman, buildman, dtoc, Kconfig and patman testsuites:
|
||||
stage: testsuites
|
||||
extends: .testsuites
|
||||
script:
|
||||
- git config --global user.name "GitLab CI Runner";
|
||||
git config --global user.email trini@konsulko.com;
|
||||
@ -212,12 +198,12 @@ Run binman, buildman, dtoc, Kconfig and patman testsuites:
|
||||
. /tmp/venv/bin/activate;
|
||||
pip install -r test/py/requirements.txt;
|
||||
pip install -r tools/buildman/requirements.txt;
|
||||
export UBOOT_TRAVIS_BUILD_DIR=/tmp/sandbox_spl;
|
||||
export UBOOT_TRAVIS_BUILD_DIR=/tmp/tools-only;
|
||||
export PYTHONPATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt";
|
||||
export PATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc:${PATH}";
|
||||
set +e;
|
||||
./tools/buildman/buildman -T0 -o ${UBOOT_TRAVIS_BUILD_DIR} -w
|
||||
--board sandbox_spl;
|
||||
--board tools-only;
|
||||
set -e;
|
||||
./tools/binman/binman --toolpath ${UBOOT_TRAVIS_BUILD_DIR}/tools test;
|
||||
./tools/buildman/buildman -t;
|
||||
@ -227,7 +213,7 @@ Run binman, buildman, dtoc, Kconfig and patman testsuites:
|
||||
|
||||
# Check for any pylint regressions
|
||||
Run pylint:
|
||||
stage: testsuites
|
||||
extends: .testsuites
|
||||
script:
|
||||
- git config --global --add safe.directory "${CI_PROJECT_DIR}"
|
||||
- pip install -r test/py/requirements.txt
|
||||
@ -236,10 +222,10 @@ Run pylint:
|
||||
- export PATH=${PATH}:~/.local/bin
|
||||
- echo "[MASTER]" >> .pylintrc
|
||||
- echo "load-plugins=pylint.extensions.docparams" >> .pylintrc
|
||||
- export UBOOT_TRAVIS_BUILD_DIR=/tmp/sandbox_spl
|
||||
- export UBOOT_TRAVIS_BUILD_DIR=/tmp/tools-only
|
||||
- set +e
|
||||
- ./tools/buildman/buildman -T0 -o ${UBOOT_TRAVIS_BUILD_DIR} -w
|
||||
--board sandbox_spl
|
||||
--board tools-only
|
||||
- set -e
|
||||
- pylint --version
|
||||
- export PYTHONPATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt"
|
||||
@ -247,7 +233,7 @@ Run pylint:
|
||||
|
||||
# Check for pre-schema driver model tags
|
||||
Check for pre-schema tags:
|
||||
stage: testsuites
|
||||
extends: .testsuites
|
||||
script:
|
||||
- git config --global --add safe.directory "${CI_PROJECT_DIR}";
|
||||
# If grep succeeds and finds a match the test fails as we should
|
||||
@ -256,7 +242,7 @@ Check for pre-schema tags:
|
||||
|
||||
# Check we can package the Python tools
|
||||
Check packing of Python tools:
|
||||
stage: testsuites
|
||||
extends: .testsuites
|
||||
script:
|
||||
- make pip
|
||||
|
||||
@ -278,6 +264,23 @@ sandbox without LTO test.py:
|
||||
BUILD_ENV: "NO_LTO=1"
|
||||
<<: *buildman_and_testpy_dfn
|
||||
|
||||
sandbox64 test.py:
|
||||
variables:
|
||||
TEST_PY_BD: "sandbox64"
|
||||
<<: *buildman_and_testpy_dfn
|
||||
|
||||
sandbox64 with clang test.py:
|
||||
variables:
|
||||
TEST_PY_BD: "sandbox64"
|
||||
OVERRIDE: "-O clang-16"
|
||||
<<: *buildman_and_testpy_dfn
|
||||
|
||||
sandbox64 without LTO test.py:
|
||||
variables:
|
||||
TEST_PY_BD: "sandbox64"
|
||||
BUILD_ENV: "NO_LTO=1"
|
||||
<<: *buildman_and_testpy_dfn
|
||||
|
||||
sandbox_spl test.py:
|
||||
variables:
|
||||
TEST_PY_BD: "sandbox_spl"
|
||||
@ -302,7 +305,7 @@ sandbox trace_test.py:
|
||||
TEST_PY_BD: "sandbox"
|
||||
BUILD_ENV: "FTRACE=1 NO_LTO=1"
|
||||
TEST_PY_TEST_SPEC: "trace"
|
||||
OVERRIDE: "-a CONFIG_TRACE=y -a CONFIG_TRACE_EARLY=y -a CONFIG_TRACE_EARLY_SIZE=0x01000000"
|
||||
OVERRIDE: "-a CONFIG_TRACE=y -a CONFIG_TRACE_EARLY=y -a CONFIG_TRACE_EARLY_SIZE=0x01000000 -a CONFIG_TRACE_BUFFER_SIZE=0x02000000"
|
||||
<<: *buildman_and_testpy_dfn
|
||||
|
||||
evb-ast2500 test.py:
|
||||
|
87
Kconfig
87
Kconfig
@ -596,10 +596,95 @@ config MP
|
||||
This provides an option to bringup different processors
|
||||
in multiprocessor cases.
|
||||
|
||||
endmenu # General setup
|
||||
config HAVE_TEXT_BASE
|
||||
bool
|
||||
depends on !NIOS2 && !XTENSA
|
||||
depends on !EFI_APP
|
||||
default y
|
||||
|
||||
config TEXT_BASE
|
||||
depends on HAVE_TEXT_BASE
|
||||
default 0x0 if POSITION_INDEPENDENT
|
||||
default 0x80800000 if ARCH_OMAP2PLUS || ARCH_K3
|
||||
default 0x81700000 if MACH_SUNIV
|
||||
default 0x2a000000 if MACH_SUN9I
|
||||
default 0x4a000000 if SUNXI_MINIMUM_DRAM_MB >= 256
|
||||
default 0x42e00000 if SUNXI_MINIMUM_DRAM_MB >= 64
|
||||
hex "Text Base"
|
||||
help
|
||||
The address in memory that U-Boot will be copied and executed from
|
||||
initially.
|
||||
|
||||
config HAVE_SYS_UBOOT_START
|
||||
bool "Use custom U-Boot Start"
|
||||
depends on HAVE_TEXT_BASE
|
||||
help
|
||||
By default, the address in memory that U-Boot will be copied from
|
||||
(TEXT_BASE) and the entry point are the same. Select this to start the
|
||||
execution of U-Boot from a different address.
|
||||
This may be required if a header or vector table needs to be copied
|
||||
but not executed.
|
||||
|
||||
config SYS_UBOOT_START
|
||||
hex
|
||||
depends on HAVE_TEXT_BASE
|
||||
default TEXT_BASE
|
||||
prompt "U-Boot entry" if HAVE_SYS_UBOOT_START
|
||||
help
|
||||
If TEXT_BASE differs from the start of execution, this sets the
|
||||
address in memory that U-Boot will start execution from initially.
|
||||
|
||||
config HAVE_SYS_MONITOR_BASE
|
||||
bool
|
||||
depends on ARC || MIPS || M68K || NIOS2 || PPC || XTENSA || X86 \
|
||||
|| ENV_IS_IN_FLASH || MTD_NOR_FLASH
|
||||
depends on !EFI_APP
|
||||
default y
|
||||
|
||||
config SYS_MONITOR_BASE
|
||||
depends on HAVE_SYS_MONITOR_BASE
|
||||
hex "Physical start address of boot monitor code"
|
||||
default TEXT_BASE
|
||||
help
|
||||
The physical start address of boot monitor code (which is the same as
|
||||
CONFIG_TEXT_BASE when linking) and the same as CFG_SYS_FLASH_BASE
|
||||
when booting from flash.
|
||||
|
||||
config SPL_SYS_MONITOR_BASE
|
||||
depends on MPC85xx && SPL && HAVE_SYS_MONITOR_BASE
|
||||
hex "Physical start address of SPL monitor code"
|
||||
default SPL_TEXT_BASE
|
||||
|
||||
config TPL_SYS_MONITOR_BASE
|
||||
depends on MPC85xx && TPL && HAVE_SYS_MONITOR_BASE
|
||||
hex "Physical start address of TPL monitor code"
|
||||
|
||||
config DYNAMIC_SYS_CLK_FREQ
|
||||
bool "Determine CPU clock frequency at run-time"
|
||||
help
|
||||
Implement a get_board_sys_clk function that will determine the CPU
|
||||
clock frequency at run time, rather than define it statically.
|
||||
|
||||
config SYS_CLK_FREQ
|
||||
depends on !DYNAMIC_SYS_CLK_FREQ
|
||||
int "CPU clock frequency"
|
||||
default 125000000 if ARCH_LS1012A
|
||||
default 100000000 if ARCH_P2020 || ARCH_T1024 || ARCH_T1042 || \
|
||||
ARCH_LS1021A || FSL_LSCH2 || FSL_LSCH3
|
||||
default 66666666 if ARCH_P1010 || ARCH_P1020 || ARCH_T4240
|
||||
default 66660000 if ARCH_T2080
|
||||
default 33333333 if RCAR_GEN3
|
||||
default 24000000 if ARCH_EXYNOS
|
||||
default 20000000 if RCAR_GEN2
|
||||
default 0
|
||||
help
|
||||
A static value for the CPU frequency. Note that if not required
|
||||
for a given SoC, this can be left at 0.
|
||||
|
||||
source "api/Kconfig"
|
||||
|
||||
endmenu # General setup
|
||||
|
||||
source "boot/Kconfig"
|
||||
|
||||
source "common/Kconfig"
|
||||
|
@ -123,6 +123,7 @@ F: configs/apple_m1_defconfig
|
||||
F: drivers/iommu/apple_dart.c
|
||||
F: drivers/nvme/nvme_apple.c
|
||||
F: drivers/pci/pcie_apple.c
|
||||
F: drivers/phy/phy-apple-atc.c
|
||||
F: drivers/pinctrl/pinctrl-apple.c
|
||||
F: drivers/watchdog/apple_wdt.c
|
||||
F: include/configs/apple.h
|
||||
|
25
Makefile
25
Makefile
@ -485,6 +485,15 @@ export RCS_FIND_IGNORE := \( -name SCCS -o -name BitKeeper -o -name .svn -o \
|
||||
export RCS_TAR_IGNORE := --exclude SCCS --exclude BitKeeper --exclude .svn \
|
||||
--exclude CVS --exclude .pc --exclude .hg --exclude .git
|
||||
|
||||
export PYTHON_ENABLE
|
||||
|
||||
# This is y if U-Boot should not build any Python tools or libraries. Typically
|
||||
# you would need to set this if those tools/libraries (typically binman and
|
||||
# pylibfdt) cannot be built by your environment and are provided separately.
|
||||
ifeq ($(NO_PYTHON),)
|
||||
PYTHON_ENABLE=y
|
||||
endif
|
||||
|
||||
# ===========================================================================
|
||||
# Rules shared between *config targets and build targets
|
||||
|
||||
@ -1358,14 +1367,6 @@ OBJCOPYFLAGS_u-boot.ldr.srec := -I binary -O srec
|
||||
u-boot.ldr.hex u-boot.ldr.srec: u-boot.ldr FORCE
|
||||
$(call if_changed,objcopy)
|
||||
|
||||
#
|
||||
# U-Boot entry point, needed for booting of full-blown U-Boot
|
||||
# from the SPL U-Boot version.
|
||||
#
|
||||
ifndef CFG_SYS_UBOOT_START
|
||||
CFG_SYS_UBOOT_START := $(CONFIG_TEXT_BASE)
|
||||
endif
|
||||
|
||||
# Boards with more complex image requirements can provide an .its source file
|
||||
# or a generator script
|
||||
# NOTE: Please do not use this. We are migrating away from Makefile rules to use
|
||||
@ -1385,7 +1386,7 @@ endif
|
||||
|
||||
ifdef CONFIG_SPL_LOAD_FIT
|
||||
MKIMAGEFLAGS_u-boot.img = -f auto -A $(ARCH) -T firmware -C none -O u-boot \
|
||||
-a $(CONFIG_TEXT_BASE) -e $(CFG_SYS_UBOOT_START) \
|
||||
-a $(CONFIG_TEXT_BASE) -e $(CONFIG_SYS_UBOOT_START) \
|
||||
-p $(CONFIG_FIT_EXTERNAL_OFFSET) \
|
||||
-n "U-Boot $(UBOOTRELEASE) for $(BOARD) board" -E \
|
||||
$(patsubst %,-b arch/$(ARCH)/dts/%.dtb,$(subst ",,$(DEVICE_TREE))) \
|
||||
@ -1393,10 +1394,10 @@ MKIMAGEFLAGS_u-boot.img = -f auto -A $(ARCH) -T firmware -C none -O u-boot \
|
||||
$(patsubst %,-b arch/$(ARCH)/dts/%.dtbo,$(subst ",,$(CONFIG_OF_OVERLAY_LIST)))
|
||||
else
|
||||
MKIMAGEFLAGS_u-boot.img = -A $(ARCH) -T firmware -C none -O u-boot \
|
||||
-a $(CONFIG_TEXT_BASE) -e $(CFG_SYS_UBOOT_START) \
|
||||
-a $(CONFIG_TEXT_BASE) -e $(CONFIG_SYS_UBOOT_START) \
|
||||
-n "U-Boot $(UBOOTRELEASE) for $(BOARD) board"
|
||||
MKIMAGEFLAGS_u-boot-ivt.img = -A $(ARCH) -T firmware_ivt -C none -O u-boot \
|
||||
-a $(CONFIG_TEXT_BASE) -e $(CFG_SYS_UBOOT_START) \
|
||||
-a $(CONFIG_TEXT_BASE) -e $(CONFIG_SYS_UBOOT_START) \
|
||||
-n "U-Boot $(UBOOTRELEASE) for $(BOARD) board"
|
||||
u-boot-ivt.img: MKIMAGEOUTPUT = u-boot-ivt.img.log
|
||||
endif
|
||||
@ -1427,7 +1428,7 @@ MKIMAGEFLAGS_u-boot.pbl = -n $(srctree)/$(CONFIG_SYS_FSL_PBL_RCW:"%"=%) \
|
||||
UBOOT_BIN := u-boot.bin
|
||||
|
||||
MKIMAGEFLAGS_u-boot-lzma.img = -A $(ARCH) -T standalone -C lzma -O u-boot \
|
||||
-a $(CONFIG_TEXT_BASE) -e $(CFG_SYS_UBOOT_START) \
|
||||
-a $(CONFIG_TEXT_BASE) -e $(CONFIG_SYS_UBOOT_START) \
|
||||
-n "U-Boot $(UBOOTRELEASE) for $(BOARD) board"
|
||||
|
||||
u-boot.bin.lzma: u-boot.bin FORCE
|
||||
|
@ -68,7 +68,6 @@ config M68K
|
||||
bool "M68000 architecture"
|
||||
select HAVE_PRIVATE_LIBGCC
|
||||
select USE_PRIVATE_LIBGCC
|
||||
select NEEDS_MANUAL_RELOC
|
||||
select SYS_BOOT_GET_CMDLINE
|
||||
select SYS_BOOT_GET_KBD
|
||||
select SYS_CACHE_SHIFT_4
|
||||
@ -252,6 +251,7 @@ config X86
|
||||
imply DM_SPI
|
||||
imply DM_SPI_FLASH
|
||||
imply DM_USB
|
||||
imply LAST_STAGE_INIT
|
||||
imply VIDEO
|
||||
imply SYSRESET
|
||||
imply SPL_SYSRESET
|
||||
|
@ -8,7 +8,8 @@
|
||||
|
||||
#include <asm-generic/sections.h>
|
||||
|
||||
extern ulong __ivt_start;
|
||||
extern ulong __ivt_end;
|
||||
extern char __ivt_start[];
|
||||
extern char __ivt_end[];
|
||||
extern char __text_end[];
|
||||
|
||||
#endif /* __ASM_ARC_SECTIONS_H */
|
||||
|
@ -6,32 +6,27 @@
|
||||
#include <common.h>
|
||||
#include <elf.h>
|
||||
#include <log.h>
|
||||
#include <asm-generic/sections.h>
|
||||
#include <asm/sections.h>
|
||||
#include <asm/global_data.h>
|
||||
|
||||
extern ulong __image_copy_start;
|
||||
extern ulong __ivt_start;
|
||||
extern ulong __ivt_end;
|
||||
extern ulong __text_end;
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
int copy_uboot_to_ram(void)
|
||||
{
|
||||
size_t len = (size_t)&__image_copy_end - (size_t)&__image_copy_start;
|
||||
size_t len = (size_t)__image_copy_end - (size_t)__image_copy_start;
|
||||
|
||||
if (gd->flags & GD_FLG_SKIP_RELOC)
|
||||
return 0;
|
||||
|
||||
memcpy((void *)gd->relocaddr, (void *)&__image_copy_start, len);
|
||||
memcpy((void *)gd->relocaddr, (void *)__image_copy_start, len);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int clear_bss(void)
|
||||
{
|
||||
ulong dst_addr = (ulong)&__bss_start + gd->reloc_off;
|
||||
size_t len = (size_t)&__bss_end - (size_t)&__bss_start;
|
||||
ulong dst_addr = (ulong)__bss_start + gd->reloc_off;
|
||||
size_t len = (size_t)__bss_end - (size_t)__bss_start;
|
||||
|
||||
memset((void *)dst_addr, 0x00, len);
|
||||
|
||||
@ -43,8 +38,8 @@ int clear_bss(void)
|
||||
*/
|
||||
int do_elf_reloc_fixups(void)
|
||||
{
|
||||
Elf32_Rela *re_src = (Elf32_Rela *)(&__rel_dyn_start);
|
||||
Elf32_Rela *re_end = (Elf32_Rela *)(&__rel_dyn_end);
|
||||
Elf32_Rela *re_src = (Elf32_Rela *)__rel_dyn_start;
|
||||
Elf32_Rela *re_end = (Elf32_Rela *)__rel_dyn_end;
|
||||
|
||||
if (gd->flags & GD_FLG_SKIP_RELOC)
|
||||
return 0;
|
||||
@ -60,8 +55,8 @@ int do_elf_reloc_fixups(void)
|
||||
offset_ptr_rom = (Elf32_Addr *)re_src->r_offset;
|
||||
|
||||
/* Check that the location of the relocation is in .text */
|
||||
if (offset_ptr_rom >= (Elf32_Addr *)&__image_copy_start &&
|
||||
offset_ptr_rom < (Elf32_Addr *)&__image_copy_end) {
|
||||
if (offset_ptr_rom >= (Elf32_Addr *)__image_copy_start &&
|
||||
offset_ptr_rom < (Elf32_Addr *)__image_copy_end) {
|
||||
unsigned int val, do_swap = 0;
|
||||
/* Switch to the in-RAM version */
|
||||
offset_ptr_ram = (Elf32_Addr *)((ulong)offset_ptr_rom +
|
||||
@ -69,11 +64,11 @@ int do_elf_reloc_fixups(void)
|
||||
|
||||
#ifdef __LITTLE_ENDIAN__
|
||||
/* If location in ".text" section swap value */
|
||||
if (((u32)offset_ptr_rom >= (u32)&__text_start &&
|
||||
(u32)offset_ptr_rom <= (u32)&__text_end)
|
||||
if (((u32)offset_ptr_rom >= (u32)__text_start &&
|
||||
(u32)offset_ptr_rom <= (u32)__text_end)
|
||||
#if defined(__ARC700__) || defined(__ARC600__)
|
||||
|| ((u32)offset_ptr_rom >= (u32)&__ivt_start &&
|
||||
(u32)offset_ptr_rom <= (u32)&__ivt_end)
|
||||
|| ((u32)offset_ptr_rom >= (u32)__ivt_start &&
|
||||
(u32)offset_ptr_rom <= (u32)__ivt_end)
|
||||
#endif
|
||||
)
|
||||
do_swap = 1;
|
||||
@ -96,8 +91,8 @@ int do_elf_reloc_fixups(void)
|
||||
val = (val << 16) | (val >> 16);
|
||||
|
||||
/* Check that the target points into executable */
|
||||
if (val < (unsigned int)&__image_copy_start ||
|
||||
val > (unsigned int)&__image_copy_end) {
|
||||
if (val < (unsigned int)__image_copy_start ||
|
||||
val > (unsigned int)__image_copy_end) {
|
||||
/* TODO: Use panic() instead of debug()
|
||||
*
|
||||
* For some reason GCC might generate
|
||||
@ -106,7 +101,7 @@ int do_elf_reloc_fixups(void)
|
||||
* ----------------------->8--------------------
|
||||
* static int setup_mon_len(void)
|
||||
* {
|
||||
* gd->mon_len = (ulong)&__bss_end - CONFIG_SYS_MONITOR_BASE;
|
||||
* gd->mon_len = (ulong)__bss_end - CONFIG_SYS_MONITOR_BASE;
|
||||
* return 0;
|
||||
* }
|
||||
* ----------------------->8--------------------
|
||||
|
@ -998,6 +998,7 @@ config ARCH_APPLE
|
||||
select OF_BOARD_SETUP
|
||||
select OF_CONTROL
|
||||
select PCI
|
||||
select PHY
|
||||
select PINCTRL
|
||||
select POSITION_INDEPENDENT
|
||||
select POWER_DOMAIN
|
||||
@ -1036,6 +1037,16 @@ config ARCH_QEMU
|
||||
imply DM_RTC
|
||||
imply RTC_PL031
|
||||
imply OF_HAS_PRIOR_STAGE
|
||||
imply VIDEO
|
||||
imply VIDEO_BOCHS
|
||||
imply SYS_WHITE_ON_BLACK
|
||||
imply SYS_CONSOLE_IS_IN_ENV
|
||||
imply PRE_CONSOLE_BUFFER
|
||||
imply USB
|
||||
imply USB_XHCI_HCD
|
||||
imply USB_XHCI_PCI
|
||||
imply USB_KEYBOARD
|
||||
imply CMD_USB
|
||||
|
||||
config ARCH_RMOBILE
|
||||
bool "Renesas ARM SoCs"
|
||||
|
@ -100,7 +100,7 @@ int arch_cpu_init(void)
|
||||
struct mxs_clkctrl_regs *clkctrl_regs =
|
||||
(struct mxs_clkctrl_regs *)MXS_CLKCTRL_BASE;
|
||||
|
||||
mx28_fixup_vt((uint32_t)&_start);
|
||||
mx28_fixup_vt((uint32_t)_start);
|
||||
|
||||
/*
|
||||
* Enable NAND clock
|
||||
|
@ -103,7 +103,7 @@ static void mxs_spl_fixup_vectors(void)
|
||||
*/
|
||||
|
||||
/* cppcheck-suppress nullPointer */
|
||||
memcpy(0x0, &_start, 0x60);
|
||||
memcpy(0x0, _start, 0x60);
|
||||
}
|
||||
|
||||
static void mxs_spl_console_init(void)
|
||||
|
@ -98,7 +98,6 @@ config SYS_FSL_ERRATUM_A008407
|
||||
|
||||
config SYS_FSL_QSPI_SKIP_CLKSEL
|
||||
bool "Skip setting QSPI clock during SoC init"
|
||||
default 0
|
||||
help
|
||||
To improve startup times when booting from QSPI flash, the QSPI
|
||||
frequency can be set very early in the boot process. If this option
|
||||
|
@ -739,7 +739,7 @@ config HAS_FSL_XHCI_USB
|
||||
config SYS_FSL_BOOTROM_BASE
|
||||
hex
|
||||
depends on FSL_LSCH2
|
||||
default 0
|
||||
default 0x0
|
||||
|
||||
config SYS_FSL_BOOTROM_SIZE
|
||||
hex
|
||||
|
@ -78,6 +78,11 @@ void tzpc_init(void)
|
||||
#endif
|
||||
}
|
||||
|
||||
__weak int init_func_vid(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
void board_init_f(ulong dummy)
|
||||
{
|
||||
int ret;
|
||||
|
@ -58,7 +58,7 @@ reset:
|
||||
.globl save_boot_params_ret
|
||||
save_boot_params_ret:
|
||||
|
||||
#if CONFIG_POSITION_INDEPENDENT
|
||||
#if CONFIG_POSITION_INDEPENDENT && !defined(CONFIG_SPL_BUILD)
|
||||
/* Verify that we're 4K aligned. */
|
||||
adr x0, _start
|
||||
ands x0, x0, #0xfff
|
||||
|
@ -1201,6 +1201,9 @@ dtb-$(CONFIG_TARGET_SAMA5D27_WLSOM1_EK) += \
|
||||
dtb-$(CONFIG_TARGET_SAMA5D2_ICP) += \
|
||||
at91-sama5d2_icp.dtb
|
||||
|
||||
dtb-$(CONFIG_TARGET_SAMA5D29_CURIOSITY) += \
|
||||
at91-sama5d29_curiosity.dtb
|
||||
|
||||
dtb-$(CONFIG_TARGET_SAMA5D3XEK) += \
|
||||
sama5d31ek.dtb \
|
||||
sama5d33ek.dtb \
|
||||
@ -1334,6 +1337,8 @@ dtb-$(CONFIG_SOC_K3_AM642) += k3-am642-evm.dtb \
|
||||
|
||||
dtb-$(CONFIG_SOC_K3_AM625) += k3-am625-sk.dtb \
|
||||
k3-am625-r5-sk.dtb \
|
||||
k3-am625-beagleplay.dtb \
|
||||
k3-am625-r5-beagleplay.dtb \
|
||||
k3-am625-verdin-wifi-dev.dtb \
|
||||
k3-am625-verdin-r5.dtb
|
||||
|
||||
|
@ -14,16 +14,30 @@
|
||||
|
||||
apb {
|
||||
bootph-all;
|
||||
|
||||
pinctrl {
|
||||
bootph-all;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
chosen {
|
||||
bootph-all;
|
||||
};
|
||||
|
||||
config {
|
||||
u-boot,boot-led = "blue";
|
||||
};
|
||||
|
||||
leds {
|
||||
led-red {
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
led-green {
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
led-blue {
|
||||
default-state = "off";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&clk32 {
|
||||
@ -42,6 +56,10 @@
|
||||
bootph-all;
|
||||
};
|
||||
|
||||
&pinctrl {
|
||||
bootph-all;
|
||||
};
|
||||
|
||||
&pinctrl_dbgu {
|
||||
bootph-all;
|
||||
};
|
||||
|
@ -7,64 +7,23 @@
|
||||
* Author: Durai Manickam KR <durai.manickamkr@microchip.com>
|
||||
*/
|
||||
/dts-v1/;
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include <dt-bindings/mfd/atmel-flexcom.h>
|
||||
#include "sam9x60.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Microchip SAM9X60 CURIOSITY";
|
||||
model = "Microchip SAM9X60 Curiosity";
|
||||
compatible = "microchip,sam9x60-curiosity", "microchip,sam9x60", "atmel,at91sam9";
|
||||
|
||||
ahb {
|
||||
apb {
|
||||
flx0: flexcom@f801c600 {
|
||||
atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>;
|
||||
status = "okay";
|
||||
|
||||
i2c@600 {
|
||||
compatible = "atmel,sama5d2-i2c";
|
||||
reg = <0x600 0x200>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_flx0>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
clocks = <&pmc PMC_TYPE_PERIPHERAL 5>;
|
||||
status = "okay";
|
||||
|
||||
eeprom@53 {
|
||||
compatible = "atmel,24c32";
|
||||
reg = <0x53>;
|
||||
pagesize = <16>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
pinctrl {
|
||||
pinctrl_flx0: flx0_default {
|
||||
atmel,pins =
|
||||
<AT91_PIOA 0 AT91_PERIPH_A AT91_PINCTRL_NONE
|
||||
AT91_PIOA 1 AT91_PERIPH_A AT91_PINCTRL_NONE>;
|
||||
};
|
||||
|
||||
pinctrl_onewire_tm_default: onewire_tm_default {
|
||||
atmel,pins =
|
||||
<AT91_PIOD 14 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
|
||||
};
|
||||
|
||||
usb1 {
|
||||
pinctrl_usb_default: usb_default {
|
||||
atmel,pins = <AT91_PIOD 15 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
|
||||
AT91_PIOD 18 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = &dbgu;
|
||||
i2c0 = &flx0;
|
||||
};
|
||||
|
||||
memory {
|
||||
reg = <0x20000000 0x8000000>;
|
||||
};
|
||||
|
||||
clocks {
|
||||
slow_xtal: slow_xtal {
|
||||
clock-frequency = <32768>;
|
||||
@ -75,8 +34,39 @@
|
||||
};
|
||||
};
|
||||
|
||||
memory {
|
||||
reg = <0x20000000 0x8000000>;
|
||||
gpio-keys {
|
||||
compatible = "gpio-keys";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_key_gpio_default>;
|
||||
|
||||
button-user {
|
||||
label = "PB_USER";
|
||||
gpios = <&pioA 29 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <KEY_PROG1>;
|
||||
wakeup-source;
|
||||
};
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_gpio_leds>;
|
||||
|
||||
led-red {
|
||||
label = "red";
|
||||
gpios = <&pioD 17 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
led-green {
|
||||
label = "green";
|
||||
gpios = <&pioD 19 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
led-blue {
|
||||
label = "blue";
|
||||
gpios = <&pioD 21 GPIO_ACTIVE_HIGH>;
|
||||
linux,default-trigger = "heartbeat";
|
||||
};
|
||||
};
|
||||
|
||||
onewire_tm: onewire {
|
||||
@ -92,11 +82,172 @@
|
||||
};
|
||||
};
|
||||
|
||||
&ebi {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_ebi_addr_nand &pinctrl_ebi_data_0_7>;
|
||||
status = "okay";
|
||||
|
||||
nand_controller: nand-controller {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_nand_oe_we &pinctrl_nand_cs &pinctrl_nand_rb>;
|
||||
status = "okay";
|
||||
|
||||
nand@3 {
|
||||
reg = <0x3 0x0 0x800000>;
|
||||
rb-gpios = <&pioD 5 GPIO_ACTIVE_HIGH>;
|
||||
cs-gpios = <&pioD 4 GPIO_ACTIVE_HIGH>;
|
||||
nand-bus-width = <8>;
|
||||
nand-ecc-mode = "hw";
|
||||
nand-ecc-strength = <8>;
|
||||
nand-ecc-step-size = <512>;
|
||||
nand-on-flash-bbt;
|
||||
label = "atmel_nand";
|
||||
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
at91bootstrap@0 {
|
||||
label = "at91bootstrap";
|
||||
reg = <0x0 0x40000>;
|
||||
};
|
||||
|
||||
uboot@40000 {
|
||||
label = "u-boot";
|
||||
reg = <0x40000 0xc0000>;
|
||||
};
|
||||
|
||||
ubootenvred@100000 {
|
||||
label = "U-Boot Env Redundant";
|
||||
reg = <0x100000 0x40000>;
|
||||
};
|
||||
|
||||
ubootenv@140000 {
|
||||
label = "U-Boot Env";
|
||||
reg = <0x140000 0x40000>;
|
||||
};
|
||||
|
||||
dtb@180000 {
|
||||
label = "device tree";
|
||||
reg = <0x180000 0x80000>;
|
||||
};
|
||||
|
||||
kernel@200000 {
|
||||
label = "kernel";
|
||||
reg = <0x200000 0x600000>;
|
||||
};
|
||||
|
||||
rootfs@800000 {
|
||||
label = "rootfs";
|
||||
reg = <0x800000 0x1f800000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&flx0 {
|
||||
atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>;
|
||||
status = "okay";
|
||||
|
||||
i2c@600 {
|
||||
compatible = "microchip,sam9x60-i2c";
|
||||
reg = <0x600 0x200>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_flx0>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
clocks = <&pmc PMC_TYPE_PERIPHERAL 5>;
|
||||
status = "okay";
|
||||
|
||||
eeprom@53 {
|
||||
compatible = "atmel,24c02";
|
||||
reg = <0x53>;
|
||||
pagesize = <16>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&macb0 {
|
||||
phy-mode = "rmii";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pinctrl {
|
||||
ebi {
|
||||
pinctrl_ebi_data_0_7: ebi-data-lsb-0 {
|
||||
atmel,pins =
|
||||
<AT91_PIOD 6 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
|
||||
AT91_PIOD 7 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
|
||||
AT91_PIOD 8 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
|
||||
AT91_PIOD 9 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
|
||||
AT91_PIOD 10 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
|
||||
AT91_PIOD 11 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
|
||||
AT91_PIOD 12 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
|
||||
AT91_PIOD 13 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)>;
|
||||
};
|
||||
|
||||
pinctrl_ebi_addr_nand: ebi-addr-0 {
|
||||
atmel,pins =
|
||||
<AT91_PIOD 2 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
|
||||
AT91_PIOD 3 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)>;
|
||||
};
|
||||
};
|
||||
|
||||
flexcom {
|
||||
pinctrl_flx0: flx0_default {
|
||||
atmel,pins =
|
||||
<AT91_PIOA 0 AT91_PERIPH_A AT91_PINCTRL_NONE
|
||||
AT91_PIOA 1 AT91_PERIPH_A AT91_PINCTRL_NONE>;
|
||||
};
|
||||
};
|
||||
|
||||
gpio-keys {
|
||||
pinctrl_key_gpio_default: pinctrl-key-gpio {
|
||||
atmel,pins = <AT91_PIOA 29 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
|
||||
};
|
||||
};
|
||||
|
||||
leds {
|
||||
pinctrl_gpio_leds: gpio-leds {
|
||||
atmel,pins = <AT91_PIOD 17 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
|
||||
AT91_PIOD 19 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
|
||||
AT91_PIOD 21 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
|
||||
};
|
||||
};
|
||||
|
||||
nand {
|
||||
pinctrl_nand_oe_we: nand-oe-we-0 {
|
||||
atmel,pins =
|
||||
<AT91_PIOD 0 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
|
||||
AT91_PIOD 1 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)>;
|
||||
};
|
||||
|
||||
pinctrl_nand_rb: nand-rb-0 {
|
||||
atmel,pins =
|
||||
<AT91_PIOD 5 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
|
||||
};
|
||||
|
||||
pinctrl_nand_cs: nand-cs-0 {
|
||||
atmel,pins =
|
||||
<AT91_PIOD 4 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
|
||||
};
|
||||
};
|
||||
|
||||
pinctrl_onewire_tm_default: onewire_tm_default {
|
||||
atmel,pins =
|
||||
<AT91_PIOD 14 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
|
||||
};
|
||||
|
||||
usb1 {
|
||||
pinctrl_usb_default: usb_default {
|
||||
atmel,pins = <AT91_PIOD 15 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
|
||||
AT91_PIOD 18 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&usb1 {
|
||||
num-ports = <3>;
|
||||
atmel,vbus-gpio = <0
|
||||
|
55
arch/arm/dts/at91-sama5d29_curiosity-u-boot.dtsi
Normal file
55
arch/arm/dts/at91-sama5d29_curiosity-u-boot.dtsi
Normal file
@ -0,0 +1,55 @@
|
||||
// SPDX-License-Identifier: GPL-2.0+ OR MIT
|
||||
/*
|
||||
* at91-sama5d29_curiosity-u-boot.dtsi - Device Tree file for SAMA5D2 SoC u-boot properties.
|
||||
*
|
||||
* Copyright (c) 2023, Microchip Technology Inc. and its subsidiaries
|
||||
*
|
||||
* Author: Mihai Sain <mihai.sain@microchip.com>
|
||||
*
|
||||
*/
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
bootph-all;
|
||||
};
|
||||
};
|
||||
|
||||
&pinctrl_qspi1_default {
|
||||
bootph-all;
|
||||
};
|
||||
|
||||
&pinctrl_sdmmc0_default {
|
||||
bootph-all;
|
||||
};
|
||||
|
||||
&pinctrl_sdmmc1_default {
|
||||
bootph-all;
|
||||
};
|
||||
|
||||
&hlcdc {
|
||||
bootph-all;
|
||||
};
|
||||
|
||||
&pioA {
|
||||
bootph-all;
|
||||
};
|
||||
|
||||
&qspi1 {
|
||||
bootph-all;
|
||||
|
||||
flash@0 {
|
||||
bootph-all;
|
||||
};
|
||||
};
|
||||
|
||||
&sdmmc0 {
|
||||
bootph-all;
|
||||
};
|
||||
|
||||
&sdmmc1 {
|
||||
bootph-all;
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
bootph-all;
|
||||
};
|
219
arch/arm/dts/at91-sama5d29_curiosity.dts
Normal file
219
arch/arm/dts/at91-sama5d29_curiosity.dts
Normal file
@ -0,0 +1,219 @@
|
||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
/*
|
||||
* at91-sama5d29_curiosity.dts - Device Tree file for SAMA5D29 CURIOSITY board
|
||||
*
|
||||
* Copyright (C) 2023 Microchip Technology Inc. and its subsidiaries
|
||||
*
|
||||
* Author: Mihai Sain <mihai.sain@microchip.com>
|
||||
*
|
||||
*/
|
||||
/dts-v1/;
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/pinctrl/at91.h>
|
||||
#include "sama5d2.dtsi"
|
||||
#include "sama5d2-pinfunc.h"
|
||||
|
||||
/ {
|
||||
model = "Microchip SAMA5D29-Curiosity";
|
||||
compatible = "atmel,sama5d29-curiosity", "atmel,sama5d2", "atmel,sama5";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootwait";
|
||||
stdout-path = &uart0;
|
||||
};
|
||||
|
||||
memory {
|
||||
reg = <0x20000000 0x20000000>; // 512 MiB LPDDR2-333
|
||||
};
|
||||
|
||||
clocks {
|
||||
slow_xtal: slow_xtal {
|
||||
clock-frequency = <32768>;
|
||||
};
|
||||
|
||||
main_xtal: main_xtal {
|
||||
clock-frequency = <24000000>;
|
||||
};
|
||||
};
|
||||
|
||||
onewire_tm: onewire {
|
||||
gpios = <&pioA PIN_PC9 GPIO_ACTIVE_HIGH>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_onewire_tm_default>;
|
||||
status = "okay";
|
||||
|
||||
w1_eeprom: w1_eeprom@0 {
|
||||
compatible = "maxim,ds24b33";
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
ahb {
|
||||
usb1: ohci@400000 {
|
||||
num-ports = <3>;
|
||||
atmel,vbus-gpio = <&pioA PIN_PB13 GPIO_ACTIVE_HIGH>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_usb_default>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
usb2: ehci@500000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
sdmmc0: sdio-host@a0000000 {
|
||||
bus-width = <4>;
|
||||
disable-wp;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_sdmmc0_default>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
sdmmc1: sdio-host@b0000000 {
|
||||
bus-width = <4>;
|
||||
disable-wp;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_sdmmc1_default>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
apb {
|
||||
hlcdc: hlcdc@f0000000 {
|
||||
atmel,vl-bpix = <4>;
|
||||
atmel,output-mode = <24>;
|
||||
atmel,guard-time = <1>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_lcd_base &pinctrl_lcd_pwm &pinctrl_lcd_rgb666>;
|
||||
status = "okay";
|
||||
|
||||
display-timings { // PDA TM5000
|
||||
800x480 {
|
||||
clock-frequency = <33000000>;
|
||||
xres = <800>;
|
||||
yres = <480>;
|
||||
hactive = <800>;
|
||||
vactive = <480>;
|
||||
hsync-len = <64>;
|
||||
hfront-porch = <1>;
|
||||
hback-porch = <64>;
|
||||
vfront-porch = <1>;
|
||||
vback-porch = <22>;
|
||||
vsync-len = <23>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
qspi1: spi@f0024000 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_qspi1_default>;
|
||||
status = "okay";
|
||||
|
||||
flash@0 {
|
||||
compatible = "jedec,spi-nor";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <80000000>;
|
||||
spi-rx-bus-width = <4>;
|
||||
spi-tx-bus-width = <4>;
|
||||
m25p,fast-read;
|
||||
};
|
||||
};
|
||||
|
||||
uart0: serial@f801c000 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_uart0_default>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
pioA: pinctrl@fc038000 {
|
||||
pinctrl_lcd_base: lcd_base {
|
||||
pinmux = <PIN_PC30__LCDVSYNC>,
|
||||
<PIN_PC31__LCDHSYNC>,
|
||||
<PIN_PD1__LCDDEN>,
|
||||
<PIN_PD0__LCDPCK>;
|
||||
bias-disable;
|
||||
};
|
||||
|
||||
pinctrl_lcd_pwm: lcd_pwm {
|
||||
pinmux = <PIN_PC28__LCDPWM>;
|
||||
bias-disable;
|
||||
};
|
||||
|
||||
pinctrl_lcd_rgb666: lcd_rgb666 {
|
||||
pinmux = <PIN_PC10__LCDDAT2>,
|
||||
<PIN_PC11__LCDDAT3>,
|
||||
<PIN_PC12__LCDDAT4>,
|
||||
<PIN_PC13__LCDDAT5>,
|
||||
<PIN_PC14__LCDDAT6>,
|
||||
<PIN_PC15__LCDDAT7>,
|
||||
<PIN_PC16__LCDDAT10>,
|
||||
<PIN_PC17__LCDDAT11>,
|
||||
<PIN_PC18__LCDDAT12>,
|
||||
<PIN_PC19__LCDDAT13>,
|
||||
<PIN_PC20__LCDDAT14>,
|
||||
<PIN_PC21__LCDDAT15>,
|
||||
<PIN_PC22__LCDDAT18>,
|
||||
<PIN_PC23__LCDDAT19>,
|
||||
<PIN_PC24__LCDDAT20>,
|
||||
<PIN_PC25__LCDDAT21>,
|
||||
<PIN_PC26__LCDDAT22>,
|
||||
<PIN_PC27__LCDDAT23>;
|
||||
bias-disable;
|
||||
};
|
||||
|
||||
pinctrl_qspi1_default: qspi1_default {
|
||||
pinmux = <PIN_PB5__QSPI1_SCK>,
|
||||
<PIN_PB6__QSPI1_CS>,
|
||||
<PIN_PB7__QSPI1_IO0>,
|
||||
<PIN_PB8__QSPI1_IO1>,
|
||||
<PIN_PB9__QSPI1_IO2>,
|
||||
<PIN_PB10__QSPI1_IO3>;
|
||||
bias-pull-up;
|
||||
};
|
||||
|
||||
pinctrl_sdmmc0_default: sdmmc0_default {
|
||||
pinmux = <PIN_PA0__SDMMC0_CK>,
|
||||
<PIN_PA1__SDMMC0_CMD>,
|
||||
<PIN_PA2__SDMMC0_DAT0>,
|
||||
<PIN_PA3__SDMMC0_DAT1>,
|
||||
<PIN_PA4__SDMMC0_DAT2>,
|
||||
<PIN_PA5__SDMMC0_DAT3>,
|
||||
<PIN_PA11__SDMMC0_VDDSEL>,
|
||||
<PIN_PA13__SDMMC0_CD>;
|
||||
bias-disable;
|
||||
};
|
||||
|
||||
pinctrl_sdmmc1_default: sdmmc1_default {
|
||||
pinmux = <PIN_PA18__SDMMC1_DAT0>,
|
||||
<PIN_PA19__SDMMC1_DAT1>,
|
||||
<PIN_PA20__SDMMC1_DAT2>,
|
||||
<PIN_PA21__SDMMC1_DAT3>,
|
||||
<PIN_PA22__SDMMC1_CK>,
|
||||
<PIN_PA28__SDMMC1_CMD>,
|
||||
<PIN_PA30__SDMMC1_CD>;
|
||||
bias-disable;
|
||||
};
|
||||
|
||||
pinctrl_uart0_default: uart0_default {
|
||||
pinmux = <PIN_PB26__URXD0>,
|
||||
<PIN_PB27__UTXD0>;
|
||||
bias-disable;
|
||||
};
|
||||
|
||||
pinctrl_usb_default: usb_default {
|
||||
pinmux = <PIN_PA6__GPIO>;
|
||||
bias-disable;
|
||||
};
|
||||
|
||||
pinctrl_usba_vbus: usba_vbus {
|
||||
pinmux = <PIN_PB13__GPIO>;
|
||||
bias-disable;
|
||||
};
|
||||
|
||||
pinctrl_onewire_tm_default: onewire_tm_default {
|
||||
pinmux = <PIN_PC9__GPIO>;
|
||||
bias-pull-up;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
@ -64,7 +64,7 @@
|
||||
|
||||
&binman {
|
||||
u-boot-update {
|
||||
filename = "u-boot.update";
|
||||
filename = "u-boot-update.bin";
|
||||
|
||||
fit {
|
||||
description = "FIT update image";
|
||||
|
@ -55,11 +55,29 @@
|
||||
#phy-cells = <1>;
|
||||
};
|
||||
|
||||
epwm_tbclk: clock@4130 {
|
||||
compatible = "ti,am62-epwm-tbclk", "syscon";
|
||||
epwm_tbclk: clock-controller@4130 {
|
||||
compatible = "ti,am62-epwm-tbclk";
|
||||
reg = <0x4130 0x4>;
|
||||
#clock-cells = <1>;
|
||||
};
|
||||
|
||||
audio_refclk0: clock-controller@82e0 {
|
||||
compatible = "ti,am62-audio-refclk";
|
||||
reg = <0x82e0 0x4>;
|
||||
clocks = <&k3_clks 157 0>;
|
||||
assigned-clocks = <&k3_clks 157 0>;
|
||||
assigned-clock-parents = <&k3_clks 157 8>;
|
||||
#clock-cells = <0>;
|
||||
};
|
||||
|
||||
audio_refclk1: clock-controller@82e4 {
|
||||
compatible = "ti,am62-audio-refclk";
|
||||
reg = <0x82e4 0x4>;
|
||||
clocks = <&k3_clks 157 10>;
|
||||
assigned-clocks = <&k3_clks 157 10>;
|
||||
assigned-clock-parents = <&k3_clks 157 18>;
|
||||
#clock-cells = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
dmss: bus@48000000 {
|
||||
@ -174,7 +192,6 @@
|
||||
crypto: crypto@40900000 {
|
||||
compatible = "ti,am62-sa3ul";
|
||||
reg = <0x00 0x40900000 0x00 0x1200>;
|
||||
power-domains = <&k3_pds 70 TI_SCI_PD_SHARED>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges = <0x00 0x40900000 0x00 0x40900000 0x00 0x30000>;
|
||||
@ -590,7 +607,7 @@
|
||||
|
||||
usb0: usb@31000000 {
|
||||
compatible = "snps,dwc3";
|
||||
reg =<0x00 0x31000000 0x00 0x50000>;
|
||||
reg = <0x00 0x31000000 0x00 0x50000>;
|
||||
interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>, /* irq.0 */
|
||||
<GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; /* irq.0 */
|
||||
interrupt-names = "host", "peripheral";
|
||||
@ -613,7 +630,7 @@
|
||||
|
||||
usb1: usb@31100000 {
|
||||
compatible = "snps,dwc3";
|
||||
reg =<0x00 0x31100000 0x00 0x50000>;
|
||||
reg = <0x00 0x31100000 0x00 0x50000>;
|
||||
interrupts = <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>, /* irq.0 */
|
||||
<GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>; /* irq.0 */
|
||||
interrupt-names = "host", "peripheral";
|
||||
@ -718,6 +735,31 @@
|
||||
};
|
||||
};
|
||||
|
||||
dss: dss@30200000 {
|
||||
compatible = "ti,am625-dss";
|
||||
reg = <0x00 0x30200000 0x00 0x1000>, /* common */
|
||||
<0x00 0x30202000 0x00 0x1000>, /* vidl1 */
|
||||
<0x00 0x30206000 0x00 0x1000>, /* vid */
|
||||
<0x00 0x30207000 0x00 0x1000>, /* ovr1 */
|
||||
<0x00 0x30208000 0x00 0x1000>, /* ovr2 */
|
||||
<0x00 0x3020a000 0x00 0x1000>, /* vp1: Used for OLDI */
|
||||
<0x00 0x3020b000 0x00 0x1000>; /* vp2: Used as DPI Out */
|
||||
reg-names = "common", "vidl1", "vid",
|
||||
"ovr1", "ovr2", "vp1", "vp2";
|
||||
power-domains = <&k3_pds 186 TI_SCI_PD_EXCLUSIVE>;
|
||||
clocks = <&k3_clks 186 6>,
|
||||
<&dss_vp1_clk>,
|
||||
<&k3_clks 186 2>;
|
||||
clock-names = "fck", "vp1", "vp2";
|
||||
interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
|
||||
status = "disabled";
|
||||
|
||||
dss_ports: ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
hwspinlock: spinlock@2a000000 {
|
||||
compatible = "ti,am64-hwspinlock";
|
||||
reg = <0x00 0x2a000000 0x00 0x1000>;
|
||||
|
@ -147,4 +147,28 @@
|
||||
/* Tightly coupled to M4F */
|
||||
status = "reserved";
|
||||
};
|
||||
|
||||
mcu_mcan0: can@4e08000 {
|
||||
compatible = "bosch,m_can";
|
||||
reg = <0x00 0x4e08000 0x00 0x200>,
|
||||
<0x00 0x4e00000 0x00 0x8000>;
|
||||
reg-names = "m_can", "message_ram";
|
||||
power-domains = <&k3_pds 188 TI_SCI_PD_EXCLUSIVE>;
|
||||
clocks = <&k3_clks 188 6>, <&k3_clks 188 1>;
|
||||
clock-names = "hclk", "cclk";
|
||||
bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
mcu_mcan1: can@4e18000 {
|
||||
compatible = "bosch,m_can";
|
||||
reg = <0x00 0x4e18000 0x00 0x200>,
|
||||
<0x00 0x4e10000 0x00 0x8000>;
|
||||
reg-names = "m_can", "message_ram";
|
||||
power-domains = <&k3_pds 189 TI_SCI_PD_EXCLUSIVE>;
|
||||
clocks = <&k3_clks 189 6>, <&k3_clks 189 1>;
|
||||
clock-names = "hclk", "cclk";
|
||||
bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
@ -8,6 +8,42 @@
|
||||
* https://www.toradex.com/products/carrier-board/verdin-development-board-kit
|
||||
*/
|
||||
|
||||
/ {
|
||||
sound {
|
||||
compatible = "simple-audio-card";
|
||||
simple-audio-card,bitclock-master = <&codec_dai>;
|
||||
simple-audio-card,format = "i2s";
|
||||
simple-audio-card,frame-master = <&codec_dai>;
|
||||
simple-audio-card,name = "verdin-nau8822";
|
||||
simple-audio-card,routing =
|
||||
"Headphones", "LHP",
|
||||
"Headphones", "RHP",
|
||||
"Speaker", "LSPK",
|
||||
"Speaker", "RSPK",
|
||||
"Line Out", "AUXOUT1",
|
||||
"Line Out", "AUXOUT2",
|
||||
"LAUX", "Line In",
|
||||
"RAUX", "Line In",
|
||||
"LMICP", "Mic In",
|
||||
"RMICP", "Mic In";
|
||||
simple-audio-card,widgets =
|
||||
"Headphones", "Headphones",
|
||||
"Line Out", "Line Out",
|
||||
"Speaker", "Speaker",
|
||||
"Microphone", "Mic In",
|
||||
"Line", "Line In";
|
||||
|
||||
codec_dai: simple-audio-card,codec {
|
||||
clocks = <&audio_refclk1>;
|
||||
sound-dai = <&nau8822_1a>;
|
||||
};
|
||||
|
||||
simple-audio-card,cpu {
|
||||
sound-dai = <&mcasp0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/* Verdin ETHs */
|
||||
&cpsw3g {
|
||||
pinctrl-names = "default";
|
||||
@ -65,6 +101,15 @@
|
||||
&main_i2c1 {
|
||||
status = "okay";
|
||||
|
||||
/* Audio Codec */
|
||||
nau8822_1a: audio-codec@1a {
|
||||
compatible = "nuvoton,nau8822";
|
||||
reg = <0x1a>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_i2s1_mclk>;
|
||||
#sound-dai-cells = <0>;
|
||||
};
|
||||
|
||||
/* IO Expander */
|
||||
gpio_expander_21: gpio@21 {
|
||||
compatible = "nxp,pcal6416";
|
||||
@ -144,6 +189,11 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* Verdin CAN_2 */
|
||||
&mcu_mcan0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* Verdin UART_4 */
|
||||
&mcu_uart0 {
|
||||
status = "okay";
|
||||
|
@ -19,6 +19,8 @@
|
||||
};
|
||||
|
||||
aliases {
|
||||
can0 = &main_mcan0;
|
||||
can1 = &mcu_mcan0;
|
||||
ethernet0 = &cpsw_port1;
|
||||
ethernet1 = &cpsw_port2;
|
||||
i2c0 = &main_i2c0;
|
||||
@ -732,6 +734,14 @@
|
||||
>;
|
||||
};
|
||||
|
||||
/* Verdin CAN_2 */
|
||||
pinctrl_mcu_mcan0: mcu-mcan0-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_MCU_IOPAD(0x0038, PIN_INPUT, 0) /* (B3) MCU_MCAN0_RX */ /* SODIMM 26 */
|
||||
AM62X_MCU_IOPAD(0x0034, PIN_OUTPUT, 0) /* (D6) MCU_MCAN0_TX */ /* SODIMM 24 */
|
||||
>;
|
||||
};
|
||||
|
||||
/* Verdin UART_4 - Reserved to Cortex-M4 */
|
||||
pinctrl_mcu_uart0: mcu-uart0-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
@ -758,6 +768,11 @@
|
||||
};
|
||||
};
|
||||
|
||||
/* VERDIN I2S_1_MCLK */
|
||||
&audio_refclk1 {
|
||||
assigned-clock-rates = <25000000>;
|
||||
};
|
||||
|
||||
&cpsw3g {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_rgmii1>;
|
||||
@ -800,6 +815,26 @@
|
||||
};
|
||||
};
|
||||
|
||||
&dss {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_parallel_rgb>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&dss_ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
/* VP2: DPI Output */
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
|
||||
dpi_out: endpoint {
|
||||
remote-endpoint = <&rgb_in>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/* Verdin PWM_1, PWM_2 */
|
||||
&epwm0 {
|
||||
pinctrl-names = "default";
|
||||
@ -1036,6 +1071,7 @@
|
||||
|
||||
rgb_in: endpoint {
|
||||
data-lines = <18>;
|
||||
remote-endpoint = <&dpi_out>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -1238,8 +1274,6 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
/* Verdin CAN_2 - Reserved to Cortex-M4 */
|
||||
|
||||
/* Verdin SPI_1 */
|
||||
&main_spi1 {
|
||||
pinctrl-names = "default";
|
||||
@ -1333,6 +1367,13 @@
|
||||
"";
|
||||
};
|
||||
|
||||
/* Verdin CAN_2 */
|
||||
&mcu_mcan0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_mcu_mcan0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
/* Verdin UART_4 - Cortex-M4 UART */
|
||||
&mcu_uart0 {
|
||||
pinctrl-names = "default";
|
||||
|
@ -102,6 +102,14 @@
|
||||
};
|
||||
};
|
||||
|
||||
dss_vp1_clk: clock-divider-oldi {
|
||||
compatible = "fixed-factor-clock";
|
||||
clocks = <&k3_clks 186 0>;
|
||||
#clock-cells = <0>;
|
||||
clock-div = <7>;
|
||||
clock-mult = <1>;
|
||||
};
|
||||
|
||||
#include "k3-am62-thermal.dtsi"
|
||||
};
|
||||
|
||||
|
2195
arch/arm/dts/k3-am625-beagleplay-ddr4-1600MTs.dtsi
Normal file
2195
arch/arm/dts/k3-am625-beagleplay-ddr4-1600MTs.dtsi
Normal file
File diff suppressed because it is too large
Load Diff
195
arch/arm/dts/k3-am625-beagleplay-u-boot.dtsi
Normal file
195
arch/arm/dts/k3-am625-beagleplay-u-boot.dtsi
Normal file
@ -0,0 +1,195 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* https://beagleboard.org/play
|
||||
*
|
||||
* Copyright (C) 2022-2023 Texas Instruments Incorporated - https://www.ti.com/
|
||||
* Copyright (C) 2022-2023 Robert Nelson, BeagleBoard.org Foundation
|
||||
*/
|
||||
|
||||
#include "k3-am625-sk-binman.dtsi"
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
tick-timer = &main_timer0;
|
||||
};
|
||||
|
||||
memory@80000000 {
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
/* Keep the LEDs on by default to indicate life */
|
||||
leds {
|
||||
bootph-pre-ram;
|
||||
led-0 {
|
||||
default-state = "on";
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
led-1 {
|
||||
default-state = "on";
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
led-2 {
|
||||
default-state = "on";
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
led-3 {
|
||||
default-state = "on";
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
led-4 {
|
||||
default-state = "on";
|
||||
bootph-pre-ram;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&cbass_main {
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
&main_timer0 {
|
||||
clock-frequency = <25000000>;
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
&dmss {
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
&secure_proxy_main {
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
&dmsc {
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
&k3_pds {
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
&k3_clks {
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
&k3_reset {
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
&dmsc {
|
||||
bootph-pre-ram;
|
||||
k3_sysreset: sysreset-controller {
|
||||
compatible = "ti,sci-sysreset";
|
||||
bootph-pre-ram;
|
||||
};
|
||||
};
|
||||
|
||||
&wkup_conf {
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
&chipid {
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
&main_pmx0 {
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
&main_uart0 {
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
&console_pins_default {
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
&cbass_mcu {
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
&cbass_wakeup {
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
&mcu_pmx0 {
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
&main_i2c0 {
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
&local_i2c_pins_default {
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
&gpio0_pins_default {
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
&main_gpio0 {
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
&main_gpio1 {
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
&sdhci0 {
|
||||
/* EMMC */
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
&emmc_pins_default {
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
&sd_pins_default {
|
||||
bootph-pre-ram;
|
||||
/* Force to use SDCD card detect pin */
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x023c, PIN_INPUT, 0) /* (A21) MMC1_CMD */
|
||||
AM62X_IOPAD(0x0234, PIN_INPUT, 0) /* (B22) MMC1_CLK */
|
||||
AM62X_IOPAD(0x0230, PIN_INPUT, 0) /* (A22) MMC1_DAT0 */
|
||||
AM62X_IOPAD(0x022c, PIN_INPUT, 0) /* (B21) MMC1_DAT1 */
|
||||
AM62X_IOPAD(0x0228, PIN_INPUT, 0) /* (C21) MMC1_DAT2 */
|
||||
AM62X_IOPAD(0x0224, PIN_INPUT, 0) /* (D22) MMC1_DAT3 */
|
||||
AM62X_IOPAD(0x0240, PIN_INPUT, 0) /* (D17) MMC1_SDCD.MMC1_SDCD */
|
||||
>;
|
||||
};
|
||||
|
||||
&tps65219 {
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
&sdhci1 {
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
#ifdef CONFIG_TARGET_AM625_A53_EVM
|
||||
|
||||
#define SPL_AM625_BEAGLEPLAY_DTB "spl/dts/k3-am625-beagleplay.dtb"
|
||||
#define AM625_BEAGLEPLAY_DTB "arch/arm/dts/k3-am625-beagleplay.dtb"
|
||||
|
||||
&spl_am625_sk_dtb {
|
||||
filename = SPL_AM625_BEAGLEPLAY_DTB;
|
||||
};
|
||||
|
||||
&am625_sk_dtb {
|
||||
filename = AM625_BEAGLEPLAY_DTB;
|
||||
};
|
||||
|
||||
&spl_am625_sk_dtb_unsigned {
|
||||
filename = SPL_AM625_BEAGLEPLAY_DTB;
|
||||
};
|
||||
|
||||
&am625_sk_dtb_unsigned {
|
||||
filename = AM625_BEAGLEPLAY_DTB;
|
||||
};
|
||||
|
||||
#endif
|
908
arch/arm/dts/k3-am625-beagleplay.dts
Normal file
908
arch/arm/dts/k3-am625-beagleplay.dts
Normal file
@ -0,0 +1,908 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* https://beagleplay.org/
|
||||
*
|
||||
* Copyright (C) 2022-2023 Texas Instruments Incorporated - https://www.ti.com/
|
||||
* Copyright (C) 2022-2023 Robert Nelson, BeagleBoard.org Foundation
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include <dt-bindings/leds/common.h>
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include "k3-am625.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "beagle,am625-beagleplay", "ti,am625";
|
||||
model = "BeagleBoard.org BeaglePlay";
|
||||
|
||||
aliases {
|
||||
ethernet0 = &cpsw_port1;
|
||||
ethernet1 = &cpsw_port2;
|
||||
gpio0 = &main_gpio0;
|
||||
gpio1 = &main_gpio1;
|
||||
gpio2 = &mcu_gpio0;
|
||||
i2c0 = &main_i2c0;
|
||||
i2c1 = &main_i2c1;
|
||||
i2c2 = &main_i2c2;
|
||||
i2c3 = &main_i2c3;
|
||||
i2c4 = &wkup_i2c0;
|
||||
i2c5 = &mcu_i2c0;
|
||||
mdio-gpio0 = &mdio0;
|
||||
mmc0 = &sdhci0;
|
||||
mmc1 = &sdhci1;
|
||||
mmc2 = &sdhci2;
|
||||
rtc0 = &rtc;
|
||||
serial0 = &main_uart5;
|
||||
serial1 = &main_uart6;
|
||||
serial2 = &main_uart0;
|
||||
usb0 = &usb0;
|
||||
usb1 = &usb1;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial2:115200n8";
|
||||
};
|
||||
|
||||
memory@80000000 {
|
||||
device_type = "memory";
|
||||
/* 2G RAM */
|
||||
reg = <0x00000000 0x80000000 0x00000000 0x80000000>;
|
||||
};
|
||||
|
||||
reserved-memory {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
|
||||
ramoops: ramoops@9ca00000 {
|
||||
compatible = "ramoops";
|
||||
reg = <0x00 0x9c700000 0x00 0x00100000>;
|
||||
record-size = <0x8000>;
|
||||
console-size = <0x8000>;
|
||||
ftrace-size = <0x00>;
|
||||
pmsg-size = <0x8000>;
|
||||
};
|
||||
|
||||
secure_tfa_ddr: tfa@9e780000 {
|
||||
reg = <0x00 0x9e780000 0x00 0x80000>;
|
||||
no-map;
|
||||
};
|
||||
|
||||
secure_ddr: optee@9e800000 {
|
||||
reg = <0x00 0x9e800000 0x00 0x01800000>;
|
||||
no-map;
|
||||
};
|
||||
|
||||
wkup_r5fss0_core0_dma_memory_region: r5f-dma-memory@9db00000 {
|
||||
compatible = "shared-dma-pool";
|
||||
reg = <0x00 0x9db00000 0x00 0xc00000>;
|
||||
no-map;
|
||||
};
|
||||
};
|
||||
|
||||
vsys_5v0: regulator-1 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vsys_5v0";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vdd_3v3: regulator-2 {
|
||||
/* output of TLV62595DMQR-U12 */
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vdd_3v3";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
vin-supply = <&vsys_5v0>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
wlan_en: regulator-3 {
|
||||
/* OUTPUT of SN74AVC2T244DQMR */
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "wlan_en";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
enable-active-high;
|
||||
regulator-always-on;
|
||||
vin-supply = <&vdd_3v3>;
|
||||
gpio = <&main_gpio0 38 GPIO_ACTIVE_HIGH>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&wifi_en_pins_default>;
|
||||
};
|
||||
|
||||
vdd_3v3_sd: regulator-4 {
|
||||
/* output of TPS22918DBVR-U21 */
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&vdd_3v3_sd_pins_default>;
|
||||
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vdd_3v3_sd";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
enable-active-high;
|
||||
regulator-always-on;
|
||||
vin-supply = <&vdd_3v3>;
|
||||
gpio = <&main_gpio1 19 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
vdd_sd_dv: regulator-5 {
|
||||
compatible = "regulator-gpio";
|
||||
regulator-name = "sd_hs200_switch";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&vdd_sd_dv_pins_default>;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-boot-on;
|
||||
vin-supply = <&ldo1_reg>;
|
||||
gpios = <&main_gpio1 49 GPIO_ACTIVE_HIGH>;
|
||||
states = <1800000 0x0>,
|
||||
<3300000 0x1>;
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
led-0 {
|
||||
gpios = <&main_gpio0 3 GPIO_ACTIVE_HIGH>;
|
||||
linux,default-trigger = "heartbeat";
|
||||
function = LED_FUNCTION_HEARTBEAT;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
led-1 {
|
||||
gpios = <&main_gpio0 4 GPIO_ACTIVE_HIGH>;
|
||||
linux,default-trigger = "disk-activity";
|
||||
function = LED_FUNCTION_DISK_ACTIVITY;
|
||||
default-state = "keep";
|
||||
};
|
||||
|
||||
led-2 {
|
||||
gpios = <&main_gpio0 5 GPIO_ACTIVE_HIGH>;
|
||||
function = LED_FUNCTION_CPU;
|
||||
};
|
||||
|
||||
led-3 {
|
||||
gpios = <&main_gpio0 6 GPIO_ACTIVE_HIGH>;
|
||||
function = LED_FUNCTION_LAN;
|
||||
};
|
||||
|
||||
led-4 {
|
||||
gpios = <&main_gpio0 9 GPIO_ACTIVE_HIGH>;
|
||||
function = LED_FUNCTION_WLAN;
|
||||
};
|
||||
};
|
||||
|
||||
gpio_keys: gpio-keys {
|
||||
compatible = "gpio-keys";
|
||||
autorepeat;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&usr_button_pins_default>;
|
||||
|
||||
usr: button-usr {
|
||||
label = "User Key";
|
||||
linux,code = <BTN_0>;
|
||||
gpios = <&main_gpio0 18 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
hdmi0: connector-hdmi {
|
||||
compatible = "hdmi-connector";
|
||||
label = "hdmi";
|
||||
type = "a";
|
||||
port {
|
||||
hdmi_connector_in: endpoint {
|
||||
remote-endpoint = <&it66121_out>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
sound {
|
||||
compatible = "simple-audio-card";
|
||||
simple-audio-card,name = "it66121 HDMI";
|
||||
simple-audio-card,format = "i2s";
|
||||
simple-audio-card,bitclock-master = <&hdmi_dailink_master>;
|
||||
simple-audio-card,frame-master = <&hdmi_dailink_master>;
|
||||
|
||||
hdmi_dailink_master: simple-audio-card,cpu {
|
||||
sound-dai = <&mcasp1>;
|
||||
system-clock-direction-out;
|
||||
};
|
||||
|
||||
simple-audio-card,codec {
|
||||
sound-dai = <&it66121>;
|
||||
};
|
||||
};
|
||||
|
||||
/* Workaround for errata i2329 - just use mdio bitbang */
|
||||
mdio0: mdio {
|
||||
compatible = "virtual,mdio-gpio";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mdio0_pins_default>;
|
||||
gpios = <&main_gpio0 86 GPIO_ACTIVE_HIGH>, /* MDC */
|
||||
<&main_gpio0 85 GPIO_ACTIVE_HIGH>; /* MDIO */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
cpsw3g_phy0: ethernet-phy@0 {
|
||||
reg = <0>;
|
||||
};
|
||||
|
||||
cpsw3g_phy1: ethernet-phy@1 {
|
||||
reg = <1>;
|
||||
reset-gpios = <&main_gpio1 5 GPIO_ACTIVE_LOW>;
|
||||
reset-assert-us = <25>;
|
||||
reset-deassert-us = <60000>; /* T2 */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&main_pmx0 {
|
||||
gpio0_pins_default: gpio0-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x0004, PIN_INPUT, 7) /* (G25) OSPI0_LBCLKO.GPIO0_1 */
|
||||
AM62X_IOPAD(0x0008, PIN_INPUT, 7) /* (J24) OSPI0_DQS.GPIO0_2 */
|
||||
AM62X_IOPAD(0x000c, PIN_INPUT, 7) /* (E25) OSPI0_D0.GPIO0_3 */
|
||||
AM62X_IOPAD(0x0010, PIN_INPUT, 7) /* (G24) OSPI0_D1.GPIO0_4 */
|
||||
AM62X_IOPAD(0x0014, PIN_INPUT, 7) /* (F25) OSPI0_D2.GPIO0_5 */
|
||||
AM62X_IOPAD(0x0018, PIN_INPUT, 7) /* (F24) OSPI0_D3.GPIO0_6 */
|
||||
AM62X_IOPAD(0x0024, PIN_INPUT, 7) /* (H25) OSPI0_D6.GPIO0_9 */
|
||||
AM62X_IOPAD(0x0028, PIN_INPUT, 7) /* (J22) OSPI0_D7.GPIO0_10 */
|
||||
AM62X_IOPAD(0x002c, PIN_INPUT, 7) /* (F23) OSPI0_CSn0.GPIO0_11 */
|
||||
AM62X_IOPAD(0x0030, PIN_INPUT, 7) /* (G21) OSPI0_CSn1.GPIO0_12 */
|
||||
AM62X_IOPAD(0x0034, PIN_INPUT, 7) /* (H21) OSPI0_CSn2.GPIO0_13 */
|
||||
AM62X_IOPAD(0x0038, PIN_INPUT, 7) /* (E24) OSPI0_CSn3.GPIO0_14 */
|
||||
AM62X_IOPAD(0x00a4, PIN_INPUT, 7) /* (M22) GPMC0_DIR.GPIO0_40 */
|
||||
AM62X_IOPAD(0x00ac, PIN_INPUT, 7) /* (L21) GPMC0_CSn1.GPIO0_42 */
|
||||
>;
|
||||
};
|
||||
|
||||
vdd_sd_dv_pins_default: vdd-sd-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x0244, PIN_OUTPUT, 7) /* (C17) MMC1_SDWP.GPIO1_49 */
|
||||
>;
|
||||
};
|
||||
|
||||
usr_button_pins_default: usr-button-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x0048, PIN_INPUT, 7) /* (N25) GPMC0_AD3.GPIO0_18 */
|
||||
>;
|
||||
};
|
||||
|
||||
grove_pins_default: grove-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x01e8, PIN_INPUT_PULLUP, 0) /* (B17) I2C1_SCL */
|
||||
AM62X_IOPAD(0x01ec, PIN_INPUT_PULLUP, 0) /* (A17) I2C1_SDA */
|
||||
>;
|
||||
};
|
||||
|
||||
local_i2c_pins_default: local-i2c-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x01e0, PIN_INPUT_PULLUP, 0) /* (B16) I2C0_SCL */
|
||||
AM62X_IOPAD(0x01e4, PIN_INPUT_PULLUP, 0) /* (A16) I2C0_SDA */
|
||||
>;
|
||||
};
|
||||
|
||||
i2c2_1v8_pins_default: i2c2-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x00b0, PIN_INPUT_PULLUP, 1) /* (K22) GPMC0_CSn2.I2C2_SCL */
|
||||
AM62X_IOPAD(0x00b4, PIN_INPUT_PULLUP, 1) /* (K24) GPMC0_CSn3.I2C2_SDA */
|
||||
>;
|
||||
};
|
||||
|
||||
mdio0_pins_default: mdio0-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x0160, PIN_OUTPUT, 7) /* (AD24) MDIO0_MDC.GPIO0_86 */
|
||||
AM62X_IOPAD(0x015c, PIN_INPUT, 7) /* (AB22) MDIO0_MDIO.GPIO0_85 */
|
||||
>;
|
||||
};
|
||||
|
||||
rgmii1_pins_default: rgmii1-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x014c, PIN_INPUT, 0) /* (AB17) RGMII1_RD0 */
|
||||
AM62X_IOPAD(0x0150, PIN_INPUT, 0) /* (AC17) RGMII1_RD1 */
|
||||
AM62X_IOPAD(0x0154, PIN_INPUT, 0) /* (AB16) RGMII1_RD2 */
|
||||
AM62X_IOPAD(0x0158, PIN_INPUT, 0) /* (AA15) RGMII1_RD3 */
|
||||
AM62X_IOPAD(0x0148, PIN_INPUT, 0) /* (AD17) RGMII1_RXC */
|
||||
AM62X_IOPAD(0x0144, PIN_INPUT, 0) /* (AE17) RGMII1_RX_CTL */
|
||||
AM62X_IOPAD(0x0134, PIN_OUTPUT, 0) /* (AE20) RGMII1_TD0 */
|
||||
AM62X_IOPAD(0x0138, PIN_OUTPUT, 0) /* (AD20) RGMII1_TD1 */
|
||||
AM62X_IOPAD(0x013c, PIN_OUTPUT, 0) /* (AE18) RGMII1_TD2 */
|
||||
AM62X_IOPAD(0x0140, PIN_OUTPUT, 0) /* (AD18) RGMII1_TD3 */
|
||||
AM62X_IOPAD(0x0130, PIN_OUTPUT, 0) /* (AE19) RGMII1_TXC */
|
||||
AM62X_IOPAD(0x012c, PIN_OUTPUT, 0) /* (AD19) RGMII1_TX_CTL */
|
||||
>;
|
||||
};
|
||||
|
||||
emmc_pins_default: emmc-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x0220, PIN_INPUT, 0) /* (Y3) MMC0_CMD */
|
||||
AM62X_IOPAD(0x0218, PIN_INPUT, 0) /* (AB1) MMC0_CLK */
|
||||
AM62X_IOPAD(0x0214, PIN_INPUT, 0) /* (AA2) MMC0_DAT0 */
|
||||
AM62X_IOPAD(0x0210, PIN_INPUT, 0) /* (AA1) MMC0_DAT1 */
|
||||
AM62X_IOPAD(0x020c, PIN_INPUT, 0) /* (AA3) MMC0_DAT2 */
|
||||
AM62X_IOPAD(0x0208, PIN_INPUT, 0) /* (Y4) MMC0_DAT3 */
|
||||
AM62X_IOPAD(0x0204, PIN_INPUT, 0) /* (AB2) MMC0_DAT4 */
|
||||
AM62X_IOPAD(0x0200, PIN_INPUT, 0) /* (AC1) MMC0_DAT5 */
|
||||
AM62X_IOPAD(0x01fc, PIN_INPUT, 0) /* (AD2) MMC0_DAT6 */
|
||||
AM62X_IOPAD(0x01f8, PIN_INPUT, 0) /* (AC2) MMC0_DAT7 */
|
||||
>;
|
||||
};
|
||||
|
||||
vdd_3v3_sd_pins_default: vdd-3v3-sd-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x01c4, PIN_INPUT, 7) /* (B14) SPI0_D1_GPIO1_19 */
|
||||
>;
|
||||
};
|
||||
|
||||
sd_pins_default: sd-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x023c, PIN_INPUT, 0) /* (A21) MMC1_CMD */
|
||||
AM62X_IOPAD(0x0234, PIN_INPUT, 0) /* (B22) MMC1_CLK */
|
||||
AM62X_IOPAD(0x0230, PIN_INPUT, 0) /* (A22) MMC1_DAT0 */
|
||||
AM62X_IOPAD(0x022c, PIN_INPUT, 0) /* (B21) MMC1_DAT1 */
|
||||
AM62X_IOPAD(0x0228, PIN_INPUT, 0) /* (C21) MMC1_DAT2 */
|
||||
AM62X_IOPAD(0x0224, PIN_INPUT, 0) /* (D22) MMC1_DAT3 */
|
||||
AM62X_IOPAD(0x0240, PIN_INPUT, 7) /* (D17) MMC1_SDCD.GPIO1_48 */
|
||||
>;
|
||||
};
|
||||
|
||||
wifi_pins_default: wifi-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x0120, PIN_INPUT, 0) /* (C24) MMC2_CMD */
|
||||
AM62X_IOPAD(0x0118, PIN_INPUT, 0) /* (D25) MMC2_CLK */
|
||||
AM62X_IOPAD(0x0114, PIN_INPUT, 0) /* (B24) MMC2_DAT0 */
|
||||
AM62X_IOPAD(0x0110, PIN_INPUT, 0) /* (C25) MMC2_DAT1 */
|
||||
AM62X_IOPAD(0x010c, PIN_INPUT, 0) /* (E23) MMC2_DAT2 */
|
||||
AM62X_IOPAD(0x0108, PIN_INPUT, 0) /* (D24) MMC2_DAT3 */
|
||||
AM62X_IOPAD(0x0124, PIN_INPUT, 0) /* (A23) MMC2_SDCD */
|
||||
AM62X_IOPAD(0x11c, PIN_INPUT, 0) /* (#N/A) MMC2_CLKB */
|
||||
>;
|
||||
};
|
||||
|
||||
wifi_en_pins_default: wifi-en-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x009c, PIN_OUTPUT, 7) /* (V25) GPMC0_WAIT1.GPIO0_38 */
|
||||
>;
|
||||
};
|
||||
|
||||
wifi_wlirq_pins_default: wifi-wlirq-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x00a8, PIN_INPUT, 7) /* (M21) GPMC0_CSn0.GPIO0_41 */
|
||||
>;
|
||||
};
|
||||
|
||||
spe_pins_default: spe-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x0168, PIN_INPUT, 1) /* (AE21) RGMII2_TXC.RMII2_CRS_DV */
|
||||
AM62X_IOPAD(0x0180, PIN_INPUT, 1) /* (AD23) RGMII2_RXC.RMII2_REF_CLK */
|
||||
AM62X_IOPAD(0x0184, PIN_INPUT, 1) /* (AE23) RGMII2_RD0.RMII2_RXD0 */
|
||||
AM62X_IOPAD(0x0188, PIN_INPUT, 1) /* (AB20) RGMII2_RD1.RMII2_RXD1 */
|
||||
AM62X_IOPAD(0x017c, PIN_INPUT, 1) /* (AD22) RGMII2_RX_CTL.RMII2_RX_ER */
|
||||
AM62X_IOPAD(0x016c, PIN_INPUT, 1) /* (Y18) RGMII2_TD0.RMII2_TXD0 */
|
||||
AM62X_IOPAD(0x0170, PIN_INPUT, 1) /* (AA18) RGMII2_TD1.RMII2_TXD1 */
|
||||
AM62X_IOPAD(0x0164, PIN_INPUT, 1) /* (AA19) RGMII2_TX_CTL.RMII2_TX_EN */
|
||||
AM62X_IOPAD(0x018c, PIN_OUTPUT, 7) /* (AC21) RGMII2_RD2.GPIO1_5 */
|
||||
AM62X_IOPAD(0x0190, PIN_INPUT, 7) /* (AE22) RGMII2_RD3.GPIO1_6 */
|
||||
AM62X_IOPAD(0x01f0, PIN_OUTPUT, 5) /* (A18) EXT_REFCLK1.CLKOUT0 */
|
||||
>;
|
||||
};
|
||||
|
||||
mikrobus_i2c_pins_default: mikrobus-i2c-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x01d0, PIN_INPUT_PULLUP, 2) /* (A15) UART0_CTSn.I2C3_SCL */
|
||||
AM62X_IOPAD(0x01d4, PIN_INPUT_PULLUP, 2) /* (B15) UART0_RTSn.I2C3_SDA */
|
||||
>;
|
||||
};
|
||||
|
||||
mikrobus_uart_pins_default: mikrobus-uart-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x01d8, PIN_INPUT, 1) /* (C15) MCAN0_TX.UART5_RXD */
|
||||
AM62X_IOPAD(0x01dc, PIN_OUTPUT, 1) /* (E15) MCAN0_RX.UART5_TXD */
|
||||
>;
|
||||
};
|
||||
|
||||
mikrobus_spi_pins_default: mikrobus-spi-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x01b0, PIN_INPUT, 1) /* (A20) MCASP0_ACLKR.SPI2_CLK */
|
||||
AM62X_IOPAD(0x01ac, PIN_INPUT, 1) /* (E19) MCASP0_AFSR.SPI2_CS0 */
|
||||
AM62X_IOPAD(0x0194, PIN_INPUT, 1) /* (B19) MCASP0_AXR3.SPI2_D0 */
|
||||
AM62X_IOPAD(0x0198, PIN_INPUT, 1) /* (A19) MCASP0_AXR2.SPI2_D1 */
|
||||
>;
|
||||
};
|
||||
|
||||
mikrobus_gpio_pins_default: mikrobus-gpio-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x019c, PIN_INPUT, 7) /* (B18) MCASP0_AXR1.GPIO1_9 */
|
||||
AM62X_IOPAD(0x01a0, PIN_INPUT, 7) /* (E18) MCASP0_AXR0.GPIO1_10 */
|
||||
AM62X_IOPAD(0x01a8, PIN_INPUT, 7) /* (D20) MCASP0_AFSX.GPIO1_12 */
|
||||
>;
|
||||
};
|
||||
|
||||
console_pins_default: console-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x01c8, PIN_INPUT, 0) /* (D14) UART0_RXD */
|
||||
AM62X_IOPAD(0x01cc, PIN_OUTPUT, 0) /* (E14) UART0_TXD */
|
||||
>;
|
||||
};
|
||||
|
||||
wifi_debug_uart_pins_default: wifi-debug-uart-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x001c, PIN_INPUT, 3) /* (J23) OSPI0_D4.UART6_RXD */
|
||||
AM62X_IOPAD(0x0020, PIN_OUTPUT, 3) /* (J25) OSPI0_D5.UART6_TXD */
|
||||
>;
|
||||
};
|
||||
|
||||
usb1_pins_default: usb1-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x0258, PIN_INPUT, 0) /* (F18) USB1_DRVVBUS */
|
||||
>;
|
||||
};
|
||||
|
||||
pmic_irq_pins_default: pmic-irq-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x01f4, PIN_INPUT_PULLUP, 0) /* (D16) EXTINTn */
|
||||
>;
|
||||
};
|
||||
|
||||
hdmi_gpio_pins_default: hdmi-gpio-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x0094, PIN_INPUT_PULLUP | PIN_DEBOUNCE_CONF6, 7) /* (N20) GPMC0_BE1n.GPIO0_36 */
|
||||
AM62X_IOPAD(0x0054, PIN_OUTPUT_PULLUP, 7) /* (P21) GPMC0_AD6.GPIO0_21 */
|
||||
>;
|
||||
};
|
||||
|
||||
mcasp_hdmi_pins_default: mcasp-hdmi-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x0090, PIN_INPUT, 2) /* (M24) GPMC0_BE0n_CLE.MCASP1_ACLKX */
|
||||
AM62X_IOPAD(0x0098, PIN_INPUT, 2) /* (U23) GPMC0_WAIT0.MCASP1_AFSX */
|
||||
AM62X_IOPAD(0x008c, PIN_OUTPUT, 2) /* (L25) GPMC0_WEn.MCASP1_AXR0 */
|
||||
AM62X_IOPAD(0x0088, PIN_INPUT, 2) /* (L24) GPMC0_OEn_REn.MCASP1_AXR1 */
|
||||
AM62X_IOPAD(0x0084, PIN_INPUT, 2) /* (L23) GPMC0_ADVn_ALE.MCASP1_AXR2 */
|
||||
AM62X_IOPAD(0x007c, PIN_INPUT, 2) /* (P25) GPMC0_CLK.MCASP1_AXR3 */
|
||||
>;
|
||||
};
|
||||
|
||||
dss0_pins_default: dss0-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x0100, PIN_OUTPUT, 0) /* (AC25) VOUT0_VSYNC */
|
||||
AM62X_IOPAD(0x00f8, PIN_OUTPUT, 0) /* (AB24) VOUT0_HSYNC */
|
||||
AM62X_IOPAD(0x0104, PIN_OUTPUT, 0) /* (AC24) VOUT0_PCLK */
|
||||
AM62X_IOPAD(0x00fc, PIN_OUTPUT, 0) /* (Y20) VOUT0_DE */
|
||||
AM62X_IOPAD(0x00b8, PIN_OUTPUT, 0) /* (U22) VOUT0_DATA0 */
|
||||
AM62X_IOPAD(0x00bc, PIN_OUTPUT, 0) /* (V24) VOUT0_DATA1 */
|
||||
AM62X_IOPAD(0x00c0, PIN_OUTPUT, 0) /* (W25) VOUT0_DATA2 */
|
||||
AM62X_IOPAD(0x00c4, PIN_OUTPUT, 0) /* (W24) VOUT0_DATA3 */
|
||||
AM62X_IOPAD(0x00c8, PIN_OUTPUT, 0) /* (Y25) VOUT0_DATA4 */
|
||||
AM62X_IOPAD(0x00cc, PIN_OUTPUT, 0) /* (Y24) VOUT0_DATA5 */
|
||||
AM62X_IOPAD(0x00d0, PIN_OUTPUT, 0) /* (Y23) VOUT0_DATA6 */
|
||||
AM62X_IOPAD(0x00d4, PIN_OUTPUT, 0) /* (AA25) VOUT0_DATA7 */
|
||||
AM62X_IOPAD(0x00d8, PIN_OUTPUT, 0) /* (V21) VOUT0_DATA8 */
|
||||
AM62X_IOPAD(0x00dc, PIN_OUTPUT, 0) /* (W21) VOUT0_DATA9 */
|
||||
AM62X_IOPAD(0x00e0, PIN_OUTPUT, 0) /* (V20) VOUT0_DATA10 */
|
||||
AM62X_IOPAD(0x00e4, PIN_OUTPUT, 0) /* (AA23) VOUT0_DATA11 */
|
||||
AM62X_IOPAD(0x00e8, PIN_OUTPUT, 0) /* (AB25) VOUT0_DATA12 */
|
||||
AM62X_IOPAD(0x00ec, PIN_OUTPUT, 0) /* (AA24) VOUT0_DATA13 */
|
||||
AM62X_IOPAD(0x00f0, PIN_OUTPUT, 0) /* (Y22) VOUT0_DATA14 */
|
||||
AM62X_IOPAD(0x00f4, PIN_OUTPUT, 0) /* (AA21) VOUT0_DATA15 */
|
||||
AM62X_IOPAD(0x005c, PIN_OUTPUT, 1) /* (R24) GPMC0_AD8.VOUT0_DATA16 */
|
||||
AM62X_IOPAD(0x0060, PIN_OUTPUT, 1) /* (R25) GPMC0_AD9.VOUT0_DATA17 */
|
||||
AM62X_IOPAD(0x0064, PIN_OUTPUT, 1) /* (T25) GPMC0_AD10.VOUT0_DATA18 */
|
||||
AM62X_IOPAD(0x0068, PIN_OUTPUT, 1) /* (R21) GPMC0_AD11.VOUT0_DATA19 */
|
||||
AM62X_IOPAD(0x006c, PIN_OUTPUT, 1) /* (T22) GPMC0_AD12.VOUT0_DATA20 */
|
||||
AM62X_IOPAD(0x0070, PIN_OUTPUT, 1) /* (T24) GPMC0_AD13.VOUT0_DATA21 */
|
||||
AM62X_IOPAD(0x0074, PIN_OUTPUT, 1) /* (U25) GPMC0_AD14.VOUT0_DATA22 */
|
||||
AM62X_IOPAD(0x0078, PIN_OUTPUT, 1) /* (U24) GPMC0_AD15.VOUT0_DATA23 */
|
||||
>;
|
||||
};
|
||||
};
|
||||
|
||||
&mcu_pmx0 {
|
||||
i2c_qwiic_pins_default: i2c-qwiic-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_MCU_IOPAD(0x0044, PIN_INPUT, 0) /* (A8) MCU_I2C0_SCL */
|
||||
AM62X_MCU_IOPAD(0x0048, PIN_INPUT, 0) /* (D10) MCU_I2C0_SDA */
|
||||
>;
|
||||
};
|
||||
|
||||
gbe_pmx_obsclk: gbe-pmx-obsclk-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_MCU_IOPAD(0x0004, PIN_OUTPUT, 1) /* (B8) MCU_SPI0_CS1.MCU_OBSCLK0 */
|
||||
>;
|
||||
};
|
||||
|
||||
i2c_csi_pins_default: i2c-csi-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_MCU_IOPAD(0x004c, PIN_INPUT_PULLUP, 0) /* (B9) WKUP_I2C0_SCL */
|
||||
AM62X_MCU_IOPAD(0x0050, PIN_INPUT_PULLUP, 0) /* (A9) WKUP_I2C0_SDA */
|
||||
>;
|
||||
};
|
||||
|
||||
wifi_32k_clk: mcu-clk-out-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_MCU_IOPAD(0x0084, PIN_OUTPUT, 0) /* (A12) WKUP_CLKOUT0 */
|
||||
>;
|
||||
};
|
||||
};
|
||||
|
||||
&a53_opp_table {
|
||||
/* Requires VDD_CORE to be at 0.85V */
|
||||
opp-1400000000 {
|
||||
opp-hz = /bits/ 64 <1400000000>;
|
||||
opp-supported-hw = <0x01 0x0004>;
|
||||
};
|
||||
};
|
||||
|
||||
&wkup_i2c0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c_csi_pins_default>;
|
||||
clock-frequency = <400000>;
|
||||
/* Enable with overlay for camera sensor */
|
||||
};
|
||||
|
||||
&mcu_i2c0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c_qwiic_pins_default>;
|
||||
clock-frequency = <100000>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbss0 {
|
||||
ti,vbus-divider;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb0 {
|
||||
dr_mode = "peripheral";
|
||||
};
|
||||
|
||||
&usbss1 {
|
||||
ti,vbus-divider;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb1 {
|
||||
dr_mode = "host";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&usb1_pins_default>;
|
||||
};
|
||||
|
||||
&cpsw3g {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&rgmii1_pins_default>, <&spe_pins_default>,
|
||||
<&gbe_pmx_obsclk>;
|
||||
assigned-clocks = <&k3_clks 157 70>, <&k3_clks 157 20>;
|
||||
assigned-clock-parents = <&k3_clks 157 72>, <&k3_clks 157 22>;
|
||||
};
|
||||
|
||||
&cpsw_port1 {
|
||||
phy-mode = "rgmii-rxid";
|
||||
phy-handle = <&cpsw3g_phy0>;
|
||||
};
|
||||
|
||||
&cpsw_port2 {
|
||||
phy-mode = "rmii";
|
||||
phy-handle = <&cpsw3g_phy1>;
|
||||
};
|
||||
|
||||
&cpsw3g_mdio {
|
||||
/* Workaround for errata i2329 - Use mdio bitbang */
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&main_gpio0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&gpio0_pins_default>;
|
||||
gpio-line-names = "BL_EN_3V3", "SPE_PO_EN", "RTC_INT", /* 0-2 */
|
||||
"USR0", "USR1", "USR2", "USR3", "", "", "USR4", /* 3-9 */
|
||||
"EEPROM_WP", /* 10 */
|
||||
"CSI2_CAMERA_GPIO1", "CSI2_CAMERA_GPIO2", /* 11-12 */
|
||||
"CC1352P7_BOOT", "CC1352P7_RSTN", "", "", "", /* 13-17 */
|
||||
"USR_BUTTON", "", "", "", "", "", "", "", "", /* 18-26 */
|
||||
"", "", "", "", "", "", "", "", "", "HDMI_INT", /* 27-36 */
|
||||
"", "VDD_WLAN_EN", "", "", "WL_IRQ", "GBE_INTN",/* 37-42 */
|
||||
"", "", "", "", "", "", "", "", "", "", "", "", /* 43-54 */
|
||||
"", "", "", "", "", "", "", "", "", "", "", "", /* 55-66 */
|
||||
"", "", "", "", "", "", "", "", "", "", "", "", /* 67-78 */
|
||||
"", "", "", "", "", "", /* 79-84 */
|
||||
"BITBANG_MDIO_DATA", "BITBANG_MDIO_CLK", /* 85-86 */
|
||||
"", "", "", "", ""; /* 87-91 */
|
||||
};
|
||||
|
||||
&main_gpio1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mikrobus_gpio_pins_default>;
|
||||
gpio-line-names = "", "", "", "", "", /* 0-4 */
|
||||
"SPE_RSTN", "SPE_INTN", "MIKROBUS_GPIO1_7", /* 5-7 */
|
||||
"MIKROBUS_GPIO1_8", "MIKROBUS_GPIO1_9", /* 8-9 */
|
||||
"MIKROBUS_GPIO1_10", "MIKROBUS_GPIO1_11", /* 10-11 */
|
||||
"MIKROBUS_GPIO1_12", "MIKROBUS_W1_GPIO0", /* 12-13 */
|
||||
"MIKROBUS_GPIO1_14", /* 14 */
|
||||
"", "", "", "", "VDD_3V3_SD", "", "", /* 15-21 */
|
||||
"MIKROBUS_GPIO1_22", "MIKROBUS_GPIO1_23", /* 22-23 */
|
||||
"MIKROBUS_GPIO1_24", "MIKROBUS_GPIO1_25", /* 24-25 */
|
||||
"", "", "", "", "", "", "", "", "", "", "", "", /* 26-37 */
|
||||
"", "", "", "", "", "", "", "", "", "", /* 38-47 */
|
||||
"SD_CD", "SD_VOLT_SEL", "", ""; /* 48-51 */
|
||||
};
|
||||
|
||||
&main_i2c0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&local_i2c_pins_default>;
|
||||
clock-frequency = <400000>;
|
||||
status = "okay";
|
||||
|
||||
eeprom@50 {
|
||||
compatible = "atmel,24c32";
|
||||
reg = <0x50>;
|
||||
};
|
||||
|
||||
rtc: rtc@68 {
|
||||
compatible = "ti,bq32000";
|
||||
reg = <0x68>;
|
||||
interrupt-parent = <&main_gpio0>;
|
||||
interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
|
||||
};
|
||||
|
||||
tps65219: pmic@30 {
|
||||
compatible = "ti,tps65219";
|
||||
reg = <0x30>;
|
||||
buck1-supply = <&vsys_5v0>;
|
||||
buck2-supply = <&vsys_5v0>;
|
||||
buck3-supply = <&vsys_5v0>;
|
||||
ldo1-supply = <&vdd_3v3>;
|
||||
ldo2-supply = <&buck2_reg>;
|
||||
ldo3-supply = <&vdd_3v3>;
|
||||
ldo4-supply = <&vdd_3v3>;
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pmic_irq_pins_default>;
|
||||
interrupt-parent = <&gic500>;
|
||||
interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
|
||||
system-power-controller;
|
||||
ti,power-button;
|
||||
|
||||
regulators {
|
||||
buck1_reg: buck1 {
|
||||
regulator-name = "VDD_CORE";
|
||||
regulator-min-microvolt = <850000>;
|
||||
regulator-max-microvolt = <850000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
buck2_reg: buck2 {
|
||||
regulator-name = "VDD_1V8";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
buck3_reg: buck3 {
|
||||
regulator-name = "VDD_1V2";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <1200000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
ldo1_reg: ldo1 {
|
||||
/*
|
||||
* Regulator is left as is unused, vdd_sd
|
||||
* is controlled via GPIO with bypass config
|
||||
* as per the NVM configuration
|
||||
*/
|
||||
regulator-name = "VDD_SD_3V3";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-allow-bypass;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
ldo2_reg: ldo2 {
|
||||
regulator-name = "VDDA_0V85";
|
||||
regulator-min-microvolt = <850000>;
|
||||
regulator-max-microvolt = <850000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
ldo3_reg: ldo3 {
|
||||
regulator-name = "VDDA_1V8";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
ldo4_reg: ldo4 {
|
||||
regulator-name = "VDD_2V5";
|
||||
regulator-min-microvolt = <2500000>;
|
||||
regulator-max-microvolt = <2500000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&main_i2c1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&grove_pins_default>;
|
||||
clock-frequency = <100000>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&main_i2c2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c2_1v8_pins_default>;
|
||||
clock-frequency = <100000>;
|
||||
status = "okay";
|
||||
|
||||
it66121: bridge-hdmi@4c {
|
||||
compatible = "ite,it66121";
|
||||
reg = <0x4c>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&hdmi_gpio_pins_default>;
|
||||
vcn33-supply = <&vdd_3v3>;
|
||||
vcn18-supply = <&buck2_reg>;
|
||||
vrf12-supply = <&buck3_reg>;
|
||||
reset-gpios = <&main_gpio0 21 GPIO_ACTIVE_LOW>;
|
||||
interrupt-parent = <&main_gpio0>;
|
||||
interrupts = <36 IRQ_TYPE_EDGE_FALLING>;
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
it66121_in: endpoint {
|
||||
bus-width = <24>;
|
||||
remote-endpoint = <&dpi1_out>;
|
||||
};
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
|
||||
it66121_out: endpoint {
|
||||
remote-endpoint = <&hdmi_connector_in>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&main_i2c3 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mikrobus_i2c_pins_default>;
|
||||
clock-frequency = <400000>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&main_spi2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mikrobus_spi_pins_default>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&sdhci0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&emmc_pins_default>;
|
||||
ti,driver-strength-ohm = <50>;
|
||||
disable-wp;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&sdhci1 {
|
||||
/* SD/MMC */
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sd_pins_default>;
|
||||
|
||||
vmmc-supply = <&vdd_3v3_sd>;
|
||||
vqmmc-supply = <&vdd_sd_dv>;
|
||||
ti,driver-strength-ohm = <50>;
|
||||
disable-wp;
|
||||
cd-gpios = <&main_gpio1 48 GPIO_ACTIVE_LOW>;
|
||||
cd-debounce-delay-ms = <100>;
|
||||
ti,fails-without-test-cd;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&sdhci2 {
|
||||
vmmc-supply = <&wlan_en>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&wifi_pins_default>, <&wifi_32k_clk>;
|
||||
bus-width = <4>;
|
||||
non-removable;
|
||||
ti,fails-without-test-cd;
|
||||
cap-power-off-card;
|
||||
keep-power-in-suspend;
|
||||
ti,driver-strength-ohm = <50>;
|
||||
assigned-clocks = <&k3_clks 157 158>;
|
||||
assigned-clock-parents = <&k3_clks 157 160>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
wlcore: wlcore@2 {
|
||||
compatible = "ti,wl1807";
|
||||
reg = <2>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&wifi_wlirq_pins_default>;
|
||||
interrupt-parent = <&main_gpio0>;
|
||||
interrupts = <41 IRQ_TYPE_EDGE_FALLING>;
|
||||
};
|
||||
};
|
||||
|
||||
&main_uart0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&console_pins_default>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&main_uart1 {
|
||||
/* Main UART1 is used by TIFS firmware */
|
||||
status = "reserved";
|
||||
};
|
||||
|
||||
&main_uart5 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mikrobus_uart_pins_default>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&main_uart6 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&wifi_debug_uart_pins_default>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&dss {
|
||||
status = "okay";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&dss0_pins_default>;
|
||||
};
|
||||
|
||||
&dss_ports {
|
||||
/* VP2: DPI Output */
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
|
||||
dpi1_out: endpoint {
|
||||
remote-endpoint = <&it66121_in>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&mcasp1 {
|
||||
status = "okay";
|
||||
#sound-dai-cells = <0>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mcasp_hdmi_pins_default>;
|
||||
auxclk-fs-ratio = <2177>;
|
||||
op-mode = <0>; /* MCASP_IIS_MODE */
|
||||
tdm-slots = <2>;
|
||||
serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
|
||||
1 0 0 0
|
||||
0 0 0 0
|
||||
0 0 0 0
|
||||
0 0 0 0
|
||||
>;
|
||||
tx-num-evt = <32>;
|
||||
rx-num-evt = <32>;
|
||||
};
|
86
arch/arm/dts/k3-am625-r5-beagleplay.dts
Normal file
86
arch/arm/dts/k3-am625-r5-beagleplay.dts
Normal file
@ -0,0 +1,86 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* https://beagleboard.org/play
|
||||
*
|
||||
* Copyright (C) 2022-2023 Texas Instruments Incorporated - https://www.ti.com/
|
||||
* Copyright (C) 2022-2023 Robert Nelson, BeagleBoard.org Foundation
|
||||
*/
|
||||
|
||||
#include "k3-am625-beagleplay.dts"
|
||||
#include "k3-am625-beagleplay-ddr4-1600MTs.dtsi"
|
||||
#include "k3-am62-ddr.dtsi"
|
||||
|
||||
#include "k3-am625-beagleplay-u-boot.dtsi"
|
||||
|
||||
/ {
|
||||
aliases {
|
||||
remoteproc0 = &sysctrler;
|
||||
remoteproc1 = &a53_0;
|
||||
};
|
||||
|
||||
a53_0: a53@0 {
|
||||
compatible = "ti,am654-rproc";
|
||||
reg = <0x00 0x00a90000 0x00 0x10>;
|
||||
power-domains = <&k3_pds 61 TI_SCI_PD_EXCLUSIVE>,
|
||||
<&k3_pds 135 TI_SCI_PD_EXCLUSIVE>;
|
||||
resets = <&k3_reset 135 0>;
|
||||
clocks = <&k3_clks 61 0>;
|
||||
assigned-clocks = <&k3_clks 61 0>, <&k3_clks 135 0>;
|
||||
assigned-clock-parents = <&k3_clks 61 2>;
|
||||
assigned-clock-rates = <200000000>, <1250000000>;
|
||||
ti,sci = <&dmsc>;
|
||||
ti,sci-proc-id = <32>;
|
||||
ti,sci-host-id = <10>;
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
dm_tifs: dm-tifs {
|
||||
compatible = "ti,j721e-dm-sci";
|
||||
ti,host-id = <36>;
|
||||
ti,secure-host;
|
||||
mbox-names = "rx", "tx";
|
||||
mboxes= <&secure_proxy_main 22>,
|
||||
<&secure_proxy_main 23>;
|
||||
bootph-pre-ram;
|
||||
};
|
||||
};
|
||||
|
||||
&dmsc {
|
||||
mboxes= <&secure_proxy_main 0>,
|
||||
<&secure_proxy_main 1>,
|
||||
<&secure_proxy_main 0>;
|
||||
mbox-names = "rx", "tx", "notify";
|
||||
ti,host-id = <35>;
|
||||
ti,secure-host;
|
||||
};
|
||||
|
||||
&mcu_esm {
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
&secure_proxy_sa3 {
|
||||
bootph-pre-ram;
|
||||
/* We require this for boot handshake */
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&cbass_main {
|
||||
sysctrler: sysctrler {
|
||||
compatible = "ti,am654-system-controller";
|
||||
mboxes= <&secure_proxy_main 1>, <&secure_proxy_main 0>, <&secure_proxy_sa3 0>;
|
||||
mbox-names = "tx", "rx", "boot_notify";
|
||||
bootph-pre-ram;
|
||||
};
|
||||
};
|
||||
|
||||
&main_esm {
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
&main_pktdma {
|
||||
ti,sci = <&dm_tifs>;
|
||||
};
|
||||
|
||||
&main_bcdma {
|
||||
ti,sci = <&dm_tifs>;
|
||||
};
|
@ -389,7 +389,7 @@
|
||||
type = "flat_dt";
|
||||
arch = "arm";
|
||||
compression = "none";
|
||||
blob {
|
||||
spl_am625_sk_dtb_unsigned: blob {
|
||||
filename = SPL_AM625_SK_DTB;
|
||||
};
|
||||
};
|
||||
@ -438,7 +438,7 @@
|
||||
type = "flat_dt";
|
||||
arch = "arm";
|
||||
compression = "none";
|
||||
blob {
|
||||
am625_sk_dtb_unsigned: blob {
|
||||
filename = AM625_SK_DTB;
|
||||
};
|
||||
hash {
|
||||
|
@ -212,7 +212,7 @@
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&ospi0_pins_default>;
|
||||
|
||||
flash@0{
|
||||
flash@0 {
|
||||
compatible = "jedec,spi-nor";
|
||||
reg = <0x0>;
|
||||
spi-tx-bus-width = <8>;
|
||||
|
@ -44,11 +44,28 @@
|
||||
#size-cells = <1>;
|
||||
ranges = <0x0 0x0 0x43000000 0x20000>;
|
||||
|
||||
chipid@14 {
|
||||
compatible = "ti,am654-chipid";
|
||||
reg = <0x00000014 0x4>;
|
||||
};
|
||||
|
||||
serdes_ln_ctrl: mux-controller {
|
||||
compatible = "mmio-mux";
|
||||
#mux-control-cells = <1>;
|
||||
mux-reg-masks = <0x4080 0x3>; /* SERDES0 lane0 select */
|
||||
};
|
||||
|
||||
phy_gmii_sel: phy@4044 {
|
||||
compatible = "ti,am654-phy-gmii-sel";
|
||||
reg = <0x4044 0x8>;
|
||||
#phy-cells = <1>;
|
||||
};
|
||||
|
||||
epwm_tbclk: clock-controller@4140 {
|
||||
compatible = "ti,am64-epwm-tbclk";
|
||||
reg = <0x4130 0x4>;
|
||||
#clock-cells = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
gic500: interrupt-controller@1800000 {
|
||||
@ -203,29 +220,154 @@
|
||||
pinctrl-single,function-mask = <0xffffffff>;
|
||||
};
|
||||
|
||||
main_conf: syscon@43000000 {
|
||||
compatible = "syscon", "simple-mfd";
|
||||
reg = <0x00 0x43000000 0x00 0x20000>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0x00 0x00 0x43000000 0x20000>;
|
||||
main_timer0: timer@2400000 {
|
||||
compatible = "ti,am654-timer";
|
||||
reg = <0x00 0x2400000 0x00 0x400>;
|
||||
interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&k3_clks 36 1>;
|
||||
clock-names = "fck";
|
||||
assigned-clocks = <&k3_clks 36 1>;
|
||||
assigned-clock-parents = <&k3_clks 36 2>;
|
||||
power-domains = <&k3_pds 36 TI_SCI_PD_EXCLUSIVE>;
|
||||
ti,timer-pwm;
|
||||
};
|
||||
|
||||
chipid@14 {
|
||||
compatible = "ti,am654-chipid";
|
||||
reg = <0x00000014 0x4>;
|
||||
};
|
||||
main_timer1: timer@2410000 {
|
||||
compatible = "ti,am654-timer";
|
||||
reg = <0x00 0x2410000 0x00 0x400>;
|
||||
interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&k3_clks 37 1>;
|
||||
clock-names = "fck";
|
||||
assigned-clocks = <&k3_clks 37 1>;
|
||||
assigned-clock-parents = <&k3_clks 37 2>;
|
||||
power-domains = <&k3_pds 37 TI_SCI_PD_EXCLUSIVE>;
|
||||
ti,timer-pwm;
|
||||
};
|
||||
|
||||
phy_gmii_sel: phy@4044 {
|
||||
compatible = "ti,am654-phy-gmii-sel";
|
||||
reg = <0x4044 0x8>;
|
||||
#phy-cells = <1>;
|
||||
};
|
||||
main_timer2: timer@2420000 {
|
||||
compatible = "ti,am654-timer";
|
||||
reg = <0x00 0x2420000 0x00 0x400>;
|
||||
interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&k3_clks 38 1>;
|
||||
clock-names = "fck";
|
||||
assigned-clocks = <&k3_clks 38 1>;
|
||||
assigned-clock-parents = <&k3_clks 38 2>;
|
||||
power-domains = <&k3_pds 38 TI_SCI_PD_EXCLUSIVE>;
|
||||
ti,timer-pwm;
|
||||
};
|
||||
|
||||
epwm_tbclk: clock@4140 {
|
||||
compatible = "ti,am64-epwm-tbclk", "syscon";
|
||||
reg = <0x4130 0x4>;
|
||||
#clock-cells = <1>;
|
||||
};
|
||||
main_timer3: timer@2430000 {
|
||||
compatible = "ti,am654-timer";
|
||||
reg = <0x00 0x2430000 0x00 0x400>;
|
||||
interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&k3_clks 39 1>;
|
||||
clock-names = "fck";
|
||||
assigned-clocks = <&k3_clks 39 1>;
|
||||
assigned-clock-parents = <&k3_clks 39 2>;
|
||||
power-domains = <&k3_pds 39 TI_SCI_PD_EXCLUSIVE>;
|
||||
ti,timer-pwm;
|
||||
};
|
||||
|
||||
main_timer4: timer@2440000 {
|
||||
compatible = "ti,am654-timer";
|
||||
reg = <0x00 0x2440000 0x00 0x400>;
|
||||
interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&k3_clks 40 1>;
|
||||
clock-names = "fck";
|
||||
assigned-clocks = <&k3_clks 40 1>;
|
||||
assigned-clock-parents = <&k3_clks 40 2>;
|
||||
power-domains = <&k3_pds 40 TI_SCI_PD_EXCLUSIVE>;
|
||||
ti,timer-pwm;
|
||||
};
|
||||
|
||||
main_timer5: timer@2450000 {
|
||||
compatible = "ti,am654-timer";
|
||||
reg = <0x00 0x2450000 0x00 0x400>;
|
||||
interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&k3_clks 41 1>;
|
||||
clock-names = "fck";
|
||||
assigned-clocks = <&k3_clks 41 1>;
|
||||
assigned-clock-parents = <&k3_clks 41 2>;
|
||||
power-domains = <&k3_pds 41 TI_SCI_PD_EXCLUSIVE>;
|
||||
ti,timer-pwm;
|
||||
};
|
||||
|
||||
main_timer6: timer@2460000 {
|
||||
compatible = "ti,am654-timer";
|
||||
reg = <0x00 0x2460000 0x00 0x400>;
|
||||
interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&k3_clks 42 1>;
|
||||
clock-names = "fck";
|
||||
assigned-clocks = <&k3_clks 42 1>;
|
||||
assigned-clock-parents = <&k3_clks 42 2>;
|
||||
power-domains = <&k3_pds 42 TI_SCI_PD_EXCLUSIVE>;
|
||||
ti,timer-pwm;
|
||||
};
|
||||
|
||||
main_timer7: timer@2470000 {
|
||||
compatible = "ti,am654-timer";
|
||||
reg = <0x00 0x2470000 0x00 0x400>;
|
||||
interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&k3_clks 43 1>;
|
||||
clock-names = "fck";
|
||||
assigned-clocks = <&k3_clks 43 1>;
|
||||
assigned-clock-parents = <&k3_clks 43 2>;
|
||||
power-domains = <&k3_pds 43 TI_SCI_PD_EXCLUSIVE>;
|
||||
ti,timer-pwm;
|
||||
};
|
||||
|
||||
main_timer8: timer@2480000 {
|
||||
compatible = "ti,am654-timer";
|
||||
reg = <0x00 0x2480000 0x00 0x400>;
|
||||
interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&k3_clks 44 1>;
|
||||
clock-names = "fck";
|
||||
assigned-clocks = <&k3_clks 44 1>;
|
||||
assigned-clock-parents = <&k3_clks 44 2>;
|
||||
power-domains = <&k3_pds 44 TI_SCI_PD_EXCLUSIVE>;
|
||||
ti,timer-pwm;
|
||||
};
|
||||
|
||||
main_timer9: timer@2490000 {
|
||||
compatible = "ti,am654-timer";
|
||||
reg = <0x00 0x2490000 0x00 0x400>;
|
||||
interrupts = <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&k3_clks 45 1>;
|
||||
clock-names = "fck";
|
||||
assigned-clocks = <&k3_clks 45 1>;
|
||||
assigned-clock-parents = <&k3_clks 45 2>;
|
||||
power-domains = <&k3_pds 45 TI_SCI_PD_EXCLUSIVE>;
|
||||
ti,timer-pwm;
|
||||
};
|
||||
|
||||
main_timer10: timer@24a0000 {
|
||||
compatible = "ti,am654-timer";
|
||||
reg = <0x00 0x24a0000 0x00 0x400>;
|
||||
interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&k3_clks 46 1>;
|
||||
clock-names = "fck";
|
||||
assigned-clocks = <&k3_clks 46 1>;
|
||||
assigned-clock-parents = <&k3_clks 46 2>;
|
||||
power-domains = <&k3_pds 46 TI_SCI_PD_EXCLUSIVE>;
|
||||
ti,timer-pwm;
|
||||
};
|
||||
|
||||
main_timer11: timer@24b0000 {
|
||||
compatible = "ti,am654-timer";
|
||||
reg = <0x00 0x24b0000 0x00 0x400>;
|
||||
interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&k3_clks 47 1>;
|
||||
clock-names = "fck";
|
||||
assigned-clocks = <&k3_clks 47 1>;
|
||||
assigned-clock-parents = <&k3_clks 47 2>;
|
||||
power-domains = <&k3_pds 47 TI_SCI_PD_EXCLUSIVE>;
|
||||
ti,timer-pwm;
|
||||
};
|
||||
|
||||
main_esm: esm@420000 {
|
||||
compatible = "ti,j721e-esm";
|
||||
reg = <0x00 0x420000 0x00 0x1000>;
|
||||
ti,esm-pins = <160>, <161>;
|
||||
};
|
||||
|
||||
main_uart0: serial@2800000 {
|
||||
@ -233,7 +375,6 @@
|
||||
reg = <0x00 0x02800000 0x00 0x100>;
|
||||
interrupts = <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clock-frequency = <48000000>;
|
||||
current-speed = <115200>;
|
||||
power-domains = <&k3_pds 146 TI_SCI_PD_EXCLUSIVE>;
|
||||
clocks = <&k3_clks 146 0>;
|
||||
clock-names = "fclk";
|
||||
@ -245,7 +386,6 @@
|
||||
reg = <0x00 0x02810000 0x00 0x100>;
|
||||
interrupts = <GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clock-frequency = <48000000>;
|
||||
current-speed = <115200>;
|
||||
power-domains = <&k3_pds 152 TI_SCI_PD_EXCLUSIVE>;
|
||||
clocks = <&k3_clks 152 0>;
|
||||
clock-names = "fclk";
|
||||
@ -257,7 +397,6 @@
|
||||
reg = <0x00 0x02820000 0x00 0x100>;
|
||||
interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clock-frequency = <48000000>;
|
||||
current-speed = <115200>;
|
||||
power-domains = <&k3_pds 153 TI_SCI_PD_EXCLUSIVE>;
|
||||
clocks = <&k3_clks 153 0>;
|
||||
clock-names = "fclk";
|
||||
@ -269,7 +408,6 @@
|
||||
reg = <0x00 0x02830000 0x00 0x100>;
|
||||
interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clock-frequency = <48000000>;
|
||||
current-speed = <115200>;
|
||||
power-domains = <&k3_pds 154 TI_SCI_PD_EXCLUSIVE>;
|
||||
clocks = <&k3_clks 154 0>;
|
||||
clock-names = "fclk";
|
||||
@ -281,7 +419,6 @@
|
||||
reg = <0x00 0x02840000 0x00 0x100>;
|
||||
interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clock-frequency = <48000000>;
|
||||
current-speed = <115200>;
|
||||
power-domains = <&k3_pds 155 TI_SCI_PD_EXCLUSIVE>;
|
||||
clocks = <&k3_clks 155 0>;
|
||||
clock-names = "fclk";
|
||||
@ -293,7 +430,6 @@
|
||||
reg = <0x00 0x02850000 0x00 0x100>;
|
||||
interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clock-frequency = <48000000>;
|
||||
current-speed = <115200>;
|
||||
power-domains = <&k3_pds 156 TI_SCI_PD_EXCLUSIVE>;
|
||||
clocks = <&k3_clks 156 0>;
|
||||
clock-names = "fclk";
|
||||
@ -305,7 +441,6 @@
|
||||
reg = <0x00 0x02860000 0x00 0x100>;
|
||||
interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clock-frequency = <48000000>;
|
||||
current-speed = <115200>;
|
||||
power-domains = <&k3_pds 158 TI_SCI_PD_EXCLUSIVE>;
|
||||
clocks = <&k3_clks 158 0>;
|
||||
clock-names = "fclk";
|
||||
@ -590,7 +725,7 @@
|
||||
pinctrl-single,function-mask = <0x000107ff>;
|
||||
};
|
||||
|
||||
usbss0: cdns-usb@f900000{
|
||||
usbss0: cdns-usb@f900000 {
|
||||
compatible = "ti,am64-usb";
|
||||
reg = <0x00 0xf900000 0x00 0x100>;
|
||||
power-domains = <&k3_pds 161 TI_SCI_PD_EXCLUSIVE>;
|
||||
@ -601,7 +736,7 @@
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
usb0: usb@f400000{
|
||||
usb0: usb@f400000 {
|
||||
compatible = "cdns,usb3";
|
||||
reg = <0x00 0xf400000 0x00 0x10000>,
|
||||
<0x00 0xf410000 0x00 0x10000>,
|
||||
@ -630,6 +765,7 @@
|
||||
assigned-clock-parents = <&k3_clks 0 3>;
|
||||
assigned-clock-rates = <60000000>;
|
||||
clock-names = "fck";
|
||||
status = "disabled";
|
||||
|
||||
adc {
|
||||
#io-channel-cells = <1>;
|
||||
@ -659,6 +795,7 @@
|
||||
assigned-clock-parents = <&k3_clks 75 7>;
|
||||
assigned-clock-rates = <166666666>;
|
||||
power-domains = <&k3_pds 75 TI_SCI_PD_EXCLUSIVE>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
@ -676,6 +813,7 @@
|
||||
#mbox-cells = <1>;
|
||||
ti,mbox-num-users = <4>;
|
||||
ti,mbox-num-fifos = <16>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
mailbox0_cluster3: mailbox@29030000 {
|
||||
@ -686,6 +824,7 @@
|
||||
#mbox-cells = <1>;
|
||||
ti,mbox-num-users = <4>;
|
||||
ti,mbox-num-fifos = <16>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
mailbox0_cluster4: mailbox@29040000 {
|
||||
@ -696,6 +835,7 @@
|
||||
#mbox-cells = <1>;
|
||||
ti,mbox-num-users = <4>;
|
||||
ti,mbox-num-fifos = <16>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
mailbox0_cluster5: mailbox@29050000 {
|
||||
@ -706,6 +846,7 @@
|
||||
#mbox-cells = <1>;
|
||||
ti,mbox-num-users = <4>;
|
||||
ti,mbox-num-fifos = <16>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
mailbox0_cluster6: mailbox@29060000 {
|
||||
@ -715,6 +856,7 @@
|
||||
#mbox-cells = <1>;
|
||||
ti,mbox-num-users = <4>;
|
||||
ti,mbox-num-fifos = <16>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
mailbox0_cluster7: mailbox@29070000 {
|
||||
@ -724,6 +866,7 @@
|
||||
#mbox-cells = <1>;
|
||||
ti,mbox-num-users = <4>;
|
||||
ti,mbox-num-fifos = <16>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
main_r5fss0: r5fss@78000000 {
|
||||
@ -1392,4 +1535,12 @@
|
||||
clock-names = "fck";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
main_vtm0: temperature-sensor@b00000 {
|
||||
compatible = "ti,j7200-vtm";
|
||||
reg = <0x00 0xb00000 0x00 0x400>,
|
||||
<0x00 0xb01000 0x00 0x400>;
|
||||
power-domains = <&k3_pds 95 TI_SCI_PD_EXCLUSIVE>;
|
||||
#thermal-sensor-cells = <1>;
|
||||
};
|
||||
};
|
||||
|
@ -6,11 +6,55 @@
|
||||
*/
|
||||
|
||||
&cbass_mcu {
|
||||
/*
|
||||
* The MCU domain timer interrupts are routed only to the ESM module,
|
||||
* and not currently available for Linux. The MCU domain timers are
|
||||
* of limited use without interrupts, and likely reserved by the ESM.
|
||||
*/
|
||||
mcu_timer0: timer@4800000 {
|
||||
compatible = "ti,am654-timer";
|
||||
reg = <0x00 0x4800000 0x00 0x400>;
|
||||
clocks = <&k3_clks 35 1>;
|
||||
clock-names = "fck";
|
||||
power-domains = <&k3_pds 35 TI_SCI_PD_EXCLUSIVE>;
|
||||
ti,timer-pwm;
|
||||
status = "reserved";
|
||||
};
|
||||
|
||||
mcu_timer1: timer@4810000 {
|
||||
compatible = "ti,am654-timer";
|
||||
reg = <0x00 0x4810000 0x00 0x400>;
|
||||
clocks = <&k3_clks 48 1>;
|
||||
clock-names = "fck";
|
||||
power-domains = <&k3_pds 48 TI_SCI_PD_EXCLUSIVE>;
|
||||
ti,timer-pwm;
|
||||
status = "reserved";
|
||||
};
|
||||
|
||||
mcu_timer2: timer@4820000 {
|
||||
compatible = "ti,am654-timer";
|
||||
reg = <0x00 0x4820000 0x00 0x400>;
|
||||
clocks = <&k3_clks 49 1>;
|
||||
clock-names = "fck";
|
||||
power-domains = <&k3_pds 49 TI_SCI_PD_EXCLUSIVE>;
|
||||
ti,timer-pwm;
|
||||
status = "reserved";
|
||||
};
|
||||
|
||||
mcu_timer3: timer@4830000 {
|
||||
compatible = "ti,am654-timer";
|
||||
reg = <0x00 0x4830000 0x00 0x400>;
|
||||
clocks = <&k3_clks 50 1>;
|
||||
clock-names = "fck";
|
||||
power-domains = <&k3_pds 50 TI_SCI_PD_EXCLUSIVE>;
|
||||
ti,timer-pwm;
|
||||
status = "reserved";
|
||||
};
|
||||
|
||||
mcu_uart0: serial@4a00000 {
|
||||
compatible = "ti,am64-uart", "ti,am654-uart";
|
||||
reg = <0x00 0x04a00000 0x00 0x100>;
|
||||
interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>;
|
||||
current-speed = <115200>;
|
||||
power-domains = <&k3_pds 149 TI_SCI_PD_EXCLUSIVE>;
|
||||
clocks = <&k3_clks 149 0>;
|
||||
clock-names = "fclk";
|
||||
@ -21,7 +65,6 @@
|
||||
compatible = "ti,am64-uart", "ti,am654-uart";
|
||||
reg = <0x00 0x04a10000 0x00 0x100>;
|
||||
interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>;
|
||||
current-speed = <115200>;
|
||||
power-domains = <&k3_pds 160 TI_SCI_PD_EXCLUSIVE>;
|
||||
clocks = <&k3_clks 160 0>;
|
||||
clock-names = "fclk";
|
||||
@ -109,4 +152,10 @@
|
||||
pinctrl-single,register-width = <32>;
|
||||
pinctrl-single,function-mask = <0xffffffff>;
|
||||
};
|
||||
|
||||
mcu_esm: esm@4100000 {
|
||||
compatible = "ti,j721e-esm";
|
||||
reg = <0x00 0x4100000 0x00 0x1000>;
|
||||
ti,esm-pins = <0>, <1>;
|
||||
};
|
||||
};
|
||||
|
33
arch/arm/dts/k3-am64-thermal.dtsi
Normal file
33
arch/arm/dts/k3-am64-thermal.dtsi
Normal file
@ -0,0 +1,33 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
#include <dt-bindings/thermal/thermal.h>
|
||||
|
||||
thermal_zones: thermal-zones {
|
||||
main0_thermal: main0-thermal {
|
||||
polling-delay-passive = <250>; /* milliSeconds */
|
||||
polling-delay = <500>; /* milliSeconds */
|
||||
thermal-sensors = <&main_vtm0 0>;
|
||||
|
||||
trips {
|
||||
main0_crit: main0-crit {
|
||||
temperature = <105000>; /* milliCelsius */
|
||||
hysteresis = <2000>; /* milliCelsius */
|
||||
type = "critical";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
main1_thermal: main1-thermal {
|
||||
polling-delay-passive = <250>; /* milliSeconds */
|
||||
polling-delay = <500>; /* milliSeconds */
|
||||
thermal-sensors = <&main_vtm0 1>;
|
||||
|
||||
trips {
|
||||
main1_crit: main1-crit {
|
||||
temperature = <105000>; /* milliCelsius */
|
||||
hysteresis = <2000>; /* milliCelsius */
|
||||
type = "critical";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
@ -8,9 +8,10 @@
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/pinctrl/k3.h>
|
||||
#include <dt-bindings/soc/ti,sci_pm_domain.h>
|
||||
|
||||
#include "k3-pinctrl.h"
|
||||
|
||||
/ {
|
||||
model = "Texas Instruments K3 AM642 SoC";
|
||||
compatible = "ti,am642";
|
||||
@ -18,22 +19,6 @@
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
aliases {
|
||||
serial0 = &mcu_uart0;
|
||||
serial1 = &mcu_uart1;
|
||||
serial2 = &main_uart0;
|
||||
serial3 = &main_uart1;
|
||||
serial4 = &main_uart2;
|
||||
serial5 = &main_uart3;
|
||||
serial6 = &main_uart4;
|
||||
serial7 = &main_uart5;
|
||||
serial8 = &main_uart6;
|
||||
ethernet0 = &cpsw_port1;
|
||||
ethernet1 = &cpsw_port2;
|
||||
mmc0 = &sdhci0;
|
||||
mmc1 = &sdhci1;
|
||||
};
|
||||
|
||||
chosen { };
|
||||
|
||||
firmware {
|
||||
@ -69,6 +54,7 @@
|
||||
<0x00 0x00420000 0x00 0x00420000 0x00 0x00001000>, /* ESM0 */
|
||||
<0x00 0x00600000 0x00 0x00600000 0x00 0x00001100>, /* GPIO */
|
||||
<0x00 0x00a40000 0x00 0x00a40000 0x00 0x00000800>, /* Timesync router */
|
||||
<0x00 0x00b00000 0x00 0x00b00000 0x00 0x00002400>, /* VTM */
|
||||
<0x00 0x01000000 0x00 0x01000000 0x00 0x02330400>, /* First peripheral window */
|
||||
<0x00 0x08000000 0x00 0x08000000 0x00 0x00200000>, /* Main CPSW */
|
||||
<0x00 0x0d000000 0x00 0x0d000000 0x00 0x00800000>, /* PCIE_CORE */
|
||||
@ -105,6 +91,8 @@
|
||||
ranges = <0x00 0x04000000 0x00 0x04000000 0x00 0x01ff1400>; /* Peripheral window */
|
||||
};
|
||||
};
|
||||
|
||||
#include "k3-am64-thermal.dtsi"
|
||||
};
|
||||
|
||||
/* Now include the peripherals for each bus segments */
|
||||
|
@ -7,8 +7,7 @@
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
stdout-path = "serial2:115200n8";
|
||||
tick-timer = &timer1;
|
||||
tick-timer = &main_timer0;
|
||||
};
|
||||
|
||||
memory@80000000 {
|
||||
@ -16,15 +15,21 @@
|
||||
};
|
||||
};
|
||||
|
||||
&cbass_main{
|
||||
&vtt_supply {
|
||||
bootph-pre-ram;
|
||||
timer1: timer@2400000 {
|
||||
compatible = "ti,omap5430-timer";
|
||||
reg = <0x0 0x2400000 0x0 0x80>;
|
||||
ti,timer-alwon;
|
||||
clock-frequency = <200000000>;
|
||||
bootph-pre-ram;
|
||||
};
|
||||
};
|
||||
|
||||
&cbass_main {
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
&cbass_mcu {
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
&main_timer0 {
|
||||
bootph-pre-ram;
|
||||
clock-frequency = <200000000>;
|
||||
};
|
||||
|
||||
&main_conf {
|
||||
@ -36,21 +41,18 @@
|
||||
|
||||
&main_pmx0 {
|
||||
bootph-pre-ram;
|
||||
main_i2c0_pins_default: main-i2c0-pins-default {
|
||||
bootph-pre-ram;
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x0260, PIN_INPUT_PULLUP, 0) /* (A18) I2C0_SCL */
|
||||
AM64X_IOPAD(0x0264, PIN_INPUT_PULLUP, 0) /* (B18) I2C0_SDA */
|
||||
>;
|
||||
};
|
||||
};
|
||||
|
||||
&main_i2c0_pins_default {
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
&main_i2c0 {
|
||||
status = "okay";
|
||||
bootph-pre-ram;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&main_i2c0_pins_default>;
|
||||
clock-frequency = <400000>;
|
||||
};
|
||||
|
||||
&main_uart0_pins_default {
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
&main_uart0 {
|
||||
@ -111,18 +113,7 @@
|
||||
};
|
||||
|
||||
&cpsw3g {
|
||||
reg = <0x0 0x8000000 0x0 0x200000>,
|
||||
<0x0 0x43000200 0x0 0x8>;
|
||||
reg-names = "cpsw_nuss", "mac_efuse";
|
||||
/delete-property/ ranges;
|
||||
pinctrl-0 = <&mdio1_pins_default /* HACK: as MDIO driver is not DM enabled */
|
||||
&rgmii1_pins_default
|
||||
&rgmii2_pins_default>;
|
||||
|
||||
cpsw-phy-sel@04044 {
|
||||
compatible = "ti,am64-phy-gmii-sel";
|
||||
reg = <0x0 0x43004044 0x0 0x8>;
|
||||
};
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
&cpsw_port2 {
|
||||
|
@ -6,26 +6,38 @@
|
||||
/dts-v1/;
|
||||
|
||||
#include <dt-bindings/phy/phy.h>
|
||||
#include <dt-bindings/mux/ti-serdes.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/net/ti-dp83867.h>
|
||||
#include "k3-am642.dtsi"
|
||||
|
||||
#include "k3-serdes.h"
|
||||
|
||||
/ {
|
||||
compatible = "ti,am642-evm", "ti,am642";
|
||||
model = "Texas Instruments AM642 EVM";
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial2:115200n8";
|
||||
bootargs = "console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000";
|
||||
stdout-path = &main_uart0;
|
||||
};
|
||||
|
||||
aliases {
|
||||
serial0 = &mcu_uart0;
|
||||
serial1 = &main_uart1;
|
||||
serial2 = &main_uart0;
|
||||
serial3 = &main_uart3;
|
||||
i2c0 = &main_i2c0;
|
||||
i2c1 = &main_i2c1;
|
||||
mmc0 = &sdhci0;
|
||||
mmc1 = &sdhci1;
|
||||
ethernet0 = &cpsw_port1;
|
||||
ethernet1 = &cpsw_port2;
|
||||
};
|
||||
|
||||
memory@80000000 {
|
||||
device_type = "memory";
|
||||
/* 2G RAM */
|
||||
reg = <0x00000000 0x80000000 0x00000000 0x80000000>;
|
||||
|
||||
};
|
||||
|
||||
reserved-memory {
|
||||
@ -94,7 +106,7 @@
|
||||
};
|
||||
};
|
||||
|
||||
evm_12v0: fixedregulator-evm12v0 {
|
||||
evm_12v0: regulator-0 {
|
||||
/* main DC jack */
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "evm_12v0";
|
||||
@ -104,7 +116,7 @@
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vsys_5v0: fixedregulator-vsys5v0 {
|
||||
vsys_5v0: regulator-1 {
|
||||
/* output of LM5140 */
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vsys_5v0";
|
||||
@ -115,7 +127,7 @@
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vsys_3v3: fixedregulator-vsys3v3 {
|
||||
vsys_3v3: regulator-2 {
|
||||
/* output of LM5140 */
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vsys_3v3";
|
||||
@ -126,7 +138,7 @@
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vdd_mmc1: fixed-regulator-sd {
|
||||
vdd_mmc1: regulator-3 {
|
||||
/* TPS2051BD */
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vdd_mmc1";
|
||||
@ -138,7 +150,7 @@
|
||||
gpio = <&exp1 6 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
vddb: fixedregulator-vddb {
|
||||
vddb: regulator-4 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vddb_3v3_display";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
@ -148,6 +160,20 @@
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vtt_supply: regulator-5 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vtt";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&ddr_vtt_pins_default>;
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
gpio = <&main_gpio0 12 GPIO_ACTIVE_HIGH>;
|
||||
vin-supply = <&vsys_3v3>;
|
||||
enable-active-high;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
@ -201,7 +227,7 @@
|
||||
};
|
||||
|
||||
&main_pmx0 {
|
||||
main_mmc1_pins_default: main-mmc1-pins-default {
|
||||
main_mmc1_pins_default: main-mmc1-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x0294, PIN_INPUT_PULLUP, 0) /* (J19) MMC1_CMD */
|
||||
AM64X_IOPAD(0x028c, PIN_INPUT_PULLDOWN, 0) /* (L20) MMC1_CLK */
|
||||
@ -215,7 +241,16 @@
|
||||
>;
|
||||
};
|
||||
|
||||
main_uart0_pins_default: main-uart0-pins-default {
|
||||
main_uart1_pins_default: main-uart1-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x0248, PIN_INPUT, 0) /* (D16) UART1_CTSn */
|
||||
AM64X_IOPAD(0x024c, PIN_OUTPUT, 0) /* (E16) UART1_RTSn */
|
||||
AM64X_IOPAD(0x0240, PIN_INPUT, 0) /* (E15) UART1_RXD */
|
||||
AM64X_IOPAD(0x0244, PIN_OUTPUT, 0) /* (E14) UART1_TXD */
|
||||
>;
|
||||
};
|
||||
|
||||
main_uart0_pins_default: main-uart0-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x0238, PIN_INPUT, 0) /* (B16) UART0_CTSn */
|
||||
AM64X_IOPAD(0x023c, PIN_OUTPUT, 0) /* (A16) UART0_RTSn */
|
||||
@ -224,7 +259,7 @@
|
||||
>;
|
||||
};
|
||||
|
||||
main_spi0_pins_default: main-spi0-pins-default {
|
||||
main_spi0_pins_default: main-spi0-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x0210, PIN_INPUT, 0) /* (D13) SPI0_CLK */
|
||||
AM64X_IOPAD(0x0208, PIN_OUTPUT, 0) /* (D12) SPI0_CS0 */
|
||||
@ -233,21 +268,28 @@
|
||||
>;
|
||||
};
|
||||
|
||||
main_i2c1_pins_default: main-i2c1-pins-default {
|
||||
main_i2c0_pins_default: main-i2c0-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x0260, PIN_INPUT_PULLUP, 0) /* (A18) I2C0_SCL */
|
||||
AM64X_IOPAD(0x0264, PIN_INPUT_PULLUP, 0) /* (B18) I2C0_SDA */
|
||||
>;
|
||||
};
|
||||
|
||||
main_i2c1_pins_default: main-i2c1-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x0268, PIN_INPUT_PULLUP, 0) /* (C18) I2C1_SCL */
|
||||
AM64X_IOPAD(0x026c, PIN_INPUT_PULLUP, 0) /* (B19) I2C1_SDA */
|
||||
>;
|
||||
};
|
||||
|
||||
mdio1_pins_default: mdio1-pins-default {
|
||||
mdio1_pins_default: mdio1-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x01fc, PIN_OUTPUT, 4) /* (R2) PRG0_PRU1_GPO19.MDIO0_MDC */
|
||||
AM64X_IOPAD(0x01f8, PIN_INPUT, 4) /* (P5) PRG0_PRU1_GPO18.MDIO0_MDIO */
|
||||
>;
|
||||
};
|
||||
|
||||
rgmii1_pins_default: rgmii1-pins-default {
|
||||
rgmii1_pins_default: rgmii1-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x01cc, PIN_INPUT, 4) /* (W5) PRG0_PRU1_GPO7.RGMII1_RD0 */
|
||||
AM64X_IOPAD(0x01d4, PIN_INPUT, 4) /* (Y5) PRG0_PRU1_GPO9.RGMII1_RD1 */
|
||||
@ -264,7 +306,7 @@
|
||||
>;
|
||||
};
|
||||
|
||||
rgmii2_pins_default: rgmii2-pins-default {
|
||||
rgmii2_pins_default: rgmii2-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x0108, PIN_INPUT, 4) /* (W11) PRG1_PRU1_GPO0.RGMII2_RD0 */
|
||||
AM64X_IOPAD(0x010c, PIN_INPUT, 4) /* (V11) PRG1_PRU1_GPO1.RGMII2_RD1 */
|
||||
@ -281,13 +323,13 @@
|
||||
>;
|
||||
};
|
||||
|
||||
main_usb0_pins_default: main-usb0-pins-default {
|
||||
main_usb0_pins_default: main-usb0-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x02a8, PIN_OUTPUT, 0) /* (E19) USB0_DRVVBUS */
|
||||
>;
|
||||
};
|
||||
|
||||
ospi0_pins_default: ospi0-pins-default {
|
||||
ospi0_pins_default: ospi0-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x0000, PIN_OUTPUT, 0) /* (N20) OSPI0_CLK */
|
||||
AM64X_IOPAD(0x002c, PIN_OUTPUT, 0) /* (L19) OSPI0_CSn0 */
|
||||
@ -303,36 +345,58 @@
|
||||
>;
|
||||
};
|
||||
|
||||
main_ecap0_pins_default: main-ecap0-pins-default {
|
||||
main_ecap0_pins_default: main-ecap0-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x0270, PIN_INPUT, 0) /* (D18) ECAP0_IN_APWM_OUT */
|
||||
>;
|
||||
};
|
||||
|
||||
main_mcan0_pins_default: main-mcan0-pins-default {
|
||||
main_mcan0_pins_default: main-mcan0-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x0254, PIN_INPUT, 0) /* (B17) MCAN0_RX */
|
||||
AM64X_IOPAD(0x0250, PIN_OUTPUT, 0) /* (A17) MCAN0_TX */
|
||||
>;
|
||||
};
|
||||
|
||||
main_mcan1_pins_default: main-mcan1-pins-default {
|
||||
main_mcan1_pins_default: main-mcan1-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x025c, PIN_INPUT, 0) /* (D17) MCAN1_RX */
|
||||
AM64X_IOPAD(0x0258, PIN_OUTPUT, 0) /* (C17) MCAN1_TX */
|
||||
>;
|
||||
};
|
||||
|
||||
ddr_vtt_pins_default: ddr-vtt-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x0030, PIN_OUTPUT_PULLUP, 7) /* (L18) OSPI0_CSN1.GPIO0_12 */
|
||||
>;
|
||||
};
|
||||
};
|
||||
|
||||
&main_uart0 {
|
||||
status = "okay";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&main_uart0_pins_default>;
|
||||
current-speed = <115200>;
|
||||
};
|
||||
|
||||
/* main_uart1 is reserved for firmware usage */
|
||||
&main_uart1 {
|
||||
status = "reserved";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&main_uart1_pins_default>;
|
||||
};
|
||||
|
||||
&main_i2c0 {
|
||||
status = "okay";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&main_i2c0_pins_default>;
|
||||
clock-frequency = <400000>;
|
||||
|
||||
eeprom@50 {
|
||||
/* AT24CM01 */
|
||||
compatible = "atmel,24c1024";
|
||||
reg = <0x50>;
|
||||
};
|
||||
};
|
||||
|
||||
&main_i2c1 {
|
||||
@ -425,8 +489,7 @@
|
||||
|
||||
&cpsw3g {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&rgmii1_pins_default
|
||||
&rgmii2_pins_default>;
|
||||
pinctrl-0 = <&rgmii1_pins_default>, <&rgmii2_pins_default>;
|
||||
};
|
||||
|
||||
&cpsw_port1 {
|
||||
@ -457,6 +520,7 @@
|
||||
};
|
||||
|
||||
&ospi0 {
|
||||
status = "okay";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&ospi0_pins_default>;
|
||||
|
||||
@ -471,10 +535,53 @@
|
||||
cdns,tchsh-ns = <60>;
|
||||
cdns,tslch-ns = <60>;
|
||||
cdns,read-delay = <4>;
|
||||
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
partition@0 {
|
||||
label = "ospi.tiboot3";
|
||||
reg = <0x0 0x100000>;
|
||||
};
|
||||
|
||||
partition@100000 {
|
||||
label = "ospi.tispl";
|
||||
reg = <0x100000 0x200000>;
|
||||
};
|
||||
|
||||
partition@300000 {
|
||||
label = "ospi.u-boot";
|
||||
reg = <0x300000 0x400000>;
|
||||
};
|
||||
|
||||
partition@700000 {
|
||||
label = "ospi.env";
|
||||
reg = <0x700000 0x40000>;
|
||||
};
|
||||
|
||||
partition@740000 {
|
||||
label = "ospi.env.backup";
|
||||
reg = <0x740000 0x40000>;
|
||||
};
|
||||
|
||||
partition@800000 {
|
||||
label = "ospi.rootfs";
|
||||
reg = <0x800000 0x37c0000>;
|
||||
};
|
||||
|
||||
partition@3fc0000 {
|
||||
label = "ospi.phypattern";
|
||||
reg = <0x3fc0000 0x40000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&mailbox0_cluster2 {
|
||||
status = "okay";
|
||||
|
||||
mbox_main_r5fss0_core0: mbox-main-r5fss0-core0 {
|
||||
ti,mbox-rx = <0 0 2>;
|
||||
ti,mbox-tx = <1 0 2>;
|
||||
@ -486,11 +593,9 @@
|
||||
};
|
||||
};
|
||||
|
||||
&mailbox0_cluster3 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&mailbox0_cluster4 {
|
||||
status = "okay";
|
||||
|
||||
mbox_main_r5fss1_core0: mbox-main-r5fss1-core0 {
|
||||
ti,mbox-rx = <0 0 2>;
|
||||
ti,mbox-tx = <1 0 2>;
|
||||
@ -502,41 +607,35 @@
|
||||
};
|
||||
};
|
||||
|
||||
&mailbox0_cluster5 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&mailbox0_cluster6 {
|
||||
status = "okay";
|
||||
|
||||
mbox_m4_0: mbox-m4-0 {
|
||||
ti,mbox-rx = <0 0 2>;
|
||||
ti,mbox-tx = <1 0 2>;
|
||||
};
|
||||
};
|
||||
|
||||
&mailbox0_cluster7 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&main_r5fss0_core0 {
|
||||
mboxes = <&mailbox0_cluster2 &mbox_main_r5fss0_core0>;
|
||||
mboxes = <&mailbox0_cluster2>, <&mbox_main_r5fss0_core0>;
|
||||
memory-region = <&main_r5fss0_core0_dma_memory_region>,
|
||||
<&main_r5fss0_core0_memory_region>;
|
||||
};
|
||||
|
||||
&main_r5fss0_core1 {
|
||||
mboxes = <&mailbox0_cluster2 &mbox_main_r5fss0_core1>;
|
||||
mboxes = <&mailbox0_cluster2>, <&mbox_main_r5fss0_core1>;
|
||||
memory-region = <&main_r5fss0_core1_dma_memory_region>,
|
||||
<&main_r5fss0_core1_memory_region>;
|
||||
};
|
||||
|
||||
&main_r5fss1_core0 {
|
||||
mboxes = <&mailbox0_cluster4 &mbox_main_r5fss1_core0>;
|
||||
mboxes = <&mailbox0_cluster4>, <&mbox_main_r5fss1_core0>;
|
||||
memory-region = <&main_r5fss1_core0_dma_memory_region>,
|
||||
<&main_r5fss1_core0_memory_region>;
|
||||
};
|
||||
|
||||
&main_r5fss1_core1 {
|
||||
mboxes = <&mailbox0_cluster4 &mbox_main_r5fss1_core1>;
|
||||
mboxes = <&mailbox0_cluster4>, <&mbox_main_r5fss1_core1>;
|
||||
memory-region = <&main_r5fss1_core1_dma_memory_region>,
|
||||
<&main_r5fss1_core1_memory_region>;
|
||||
};
|
||||
|
@ -1,34 +1,20 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* Copyright (C) 2020-2021 Texas Instruments Incorporated - https://www.ti.com/
|
||||
* Copyright (C) 2020-2023 Texas Instruments Incorporated - https://www.ti.com/
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "k3-am642.dtsi"
|
||||
#include "k3-am642-evm.dts"
|
||||
#include "k3-am64-evm-ddr4-1600MTs.dtsi"
|
||||
#include "k3-am64-ddr.dtsi"
|
||||
#include "k3-am64x-binman.dtsi"
|
||||
|
||||
#include "k3-am642-evm-u-boot.dtsi"
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
stdout-path = "serial2:115200n8";
|
||||
tick-timer = &timer1;
|
||||
};
|
||||
|
||||
aliases {
|
||||
remoteproc0 = &sysctrler;
|
||||
remoteproc1 = &a53_0;
|
||||
};
|
||||
|
||||
memory@80000000 {
|
||||
device_type = "memory";
|
||||
/* 2G RAM */
|
||||
reg = <0x00000000 0x80000000 0x00000000 0x80000000>;
|
||||
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
a53_0: a53@0 {
|
||||
compatible = "ti,am654-rproc";
|
||||
reg = <0x00 0x00a90000 0x00 0x10>;
|
||||
@ -46,34 +32,12 @@
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
reserved-memory {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
|
||||
secure_ddr: optee@9e800000 {
|
||||
reg = <0x00 0x9e800000 0x00 0x01800000>; /* for OP-TEE */
|
||||
alignment = <0x1000>;
|
||||
no-map;
|
||||
};
|
||||
};
|
||||
|
||||
clk_200mhz: dummy-clock-200mhz {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <200000000>;
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
vtt_supply: vtt-supply {
|
||||
compatible = "regulator-gpio";
|
||||
regulator-name = "vtt";
|
||||
regulator-min-microvolt = <0>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
gpios = <&main_gpio0 12 GPIO_ACTIVE_HIGH>;
|
||||
states = <0 0x0 3300000 0x1>;
|
||||
bootph-pre-ram;
|
||||
};
|
||||
};
|
||||
|
||||
&cbass_main {
|
||||
@ -85,131 +49,12 @@
|
||||
};
|
||||
};
|
||||
|
||||
&cbass_main {
|
||||
main_esm: esm@420000 {
|
||||
compatible = "ti,j721e-esm";
|
||||
reg = <0x0 0x420000 0x0 0x1000>;
|
||||
ti,esm-pins = <160>, <161>;
|
||||
bootph-pre-ram;
|
||||
};
|
||||
&main_esm {
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
&cbass_mcu {
|
||||
&mcu_esm {
|
||||
bootph-pre-ram;
|
||||
mcu_esm: esm@4100000 {
|
||||
compatible = "ti,j721e-esm";
|
||||
reg = <0x0 0x4100000 0x0 0x1000>;
|
||||
ti,esm-pins = <0>, <1>;
|
||||
bootph-pre-ram;
|
||||
};
|
||||
};
|
||||
|
||||
&main_pmx0 {
|
||||
bootph-pre-ram;
|
||||
main_uart0_pins_default: main-uart0-pins-default {
|
||||
bootph-pre-ram;
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x0238, PIN_INPUT, 0) /* (B16) UART0_CTSn */
|
||||
AM64X_IOPAD(0x023c, PIN_OUTPUT, 0) /* (A16) UART0_RTSn */
|
||||
AM64X_IOPAD(0x0230, PIN_INPUT, 0) /* (D15) UART0_RXD */
|
||||
AM64X_IOPAD(0x0234, PIN_OUTPUT, 0) /* (C16) UART0_TXD */
|
||||
>;
|
||||
};
|
||||
|
||||
main_uart1_pins_default: main-uart1-pins-default {
|
||||
bootph-pre-ram;
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x0248, PIN_INPUT, 0) /* (D16) UART1_CTSn */
|
||||
AM64X_IOPAD(0x024c, PIN_OUTPUT, 0) /* (E16) UART1_RTSn */
|
||||
AM64X_IOPAD(0x0240, PIN_INPUT, 0) /* (E15) UART1_RXD */
|
||||
AM64X_IOPAD(0x0244, PIN_OUTPUT, 0) /* (E14) UART1_TXD */
|
||||
>;
|
||||
};
|
||||
|
||||
main_mmc0_pins_default: main-mmc0-pins-default {
|
||||
bootph-pre-ram;
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x01a8, PIN_INPUT_PULLDOWN, 0) /* (B25) MMC0_CLK */
|
||||
AM64X_IOPAD(0x01aC, PIN_INPUT_PULLUP, 0) /* (B27) MMC0_CMD */
|
||||
AM64X_IOPAD(0x01a4, PIN_INPUT_PULLUP, 0) /* (A26) MMC0_DAT0 */
|
||||
AM64X_IOPAD(0x01a0, PIN_INPUT_PULLUP, 0) /* (E25) MMC0_DAT1 */
|
||||
AM64X_IOPAD(0x019c, PIN_INPUT_PULLUP, 0) /* (C26) MMC0_DAT2 */
|
||||
AM64X_IOPAD(0x0198, PIN_INPUT_PULLUP, 0) /* (A25) MMC0_DAT3 */
|
||||
AM64X_IOPAD(0x0194, PIN_INPUT_PULLUP, 0) /* (E24) MMC0_DAT4 */
|
||||
AM64X_IOPAD(0x0190, PIN_INPUT_PULLUP, 0) /* (A24) MMC0_DAT5 */
|
||||
AM64X_IOPAD(0x018c, PIN_INPUT_PULLUP, 0) /* (B26) MMC0_DAT6 */
|
||||
AM64X_IOPAD(0x0188, PIN_INPUT_PULLUP, 0) /* (D25) MMC0_DAT7 */
|
||||
AM64X_IOPAD(0x01b0, PIN_INPUT, 0) /* (C25) MMC0_DS */
|
||||
>;
|
||||
};
|
||||
|
||||
main_mmc1_pins_default: main-mmc1-pins-default {
|
||||
bootph-pre-ram;
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x0294, PIN_INPUT_PULLUP, 0) /* (J19) MMC1_CMD */
|
||||
AM64X_IOPAD(0x028c, PIN_INPUT_PULLDOWN, 0) /* (L20) MMC1_CLK */
|
||||
AM64X_IOPAD(0x0288, PIN_INPUT_PULLUP, 0) /* (K21) MMC1_DAT0 */
|
||||
AM64X_IOPAD(0x0284, PIN_INPUT_PULLUP, 0) /* (L21) MMC1_DAT1 */
|
||||
AM64X_IOPAD(0x0280, PIN_INPUT_PULLUP, 0) /* (K19) MMC1_DAT2 */
|
||||
AM64X_IOPAD(0x027c, PIN_INPUT_PULLUP, 0) /* (K18) MMC1_DAT3 */
|
||||
AM64X_IOPAD(0x0298, PIN_INPUT_PULLUP, 0) /* (D19) MMC1_SDCD */
|
||||
AM64X_IOPAD(0x029c, PIN_INPUT_PULLUP, 0) /* (C20) MMC1_SDWP */
|
||||
>;
|
||||
};
|
||||
|
||||
ddr_vtt_pins_default: ddr-vtt-pins-default {
|
||||
bootph-pre-ram;
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x0030, PIN_OUTPUT_PULLUP, 7) /* (L18) OSPI0_CSN1.GPIO0_12 */
|
||||
>;
|
||||
};
|
||||
|
||||
main_usb0_pins_default: main-usb0-pins-default {
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x02a8, PIN_OUTPUT, 0) /* (E19) USB0_DRVVBUS */
|
||||
>;
|
||||
};
|
||||
|
||||
mdio1_pins_default: mdio1-pins-default {
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x01fc, PIN_OUTPUT, 4) /* (R2) PRG0_PRU1_GPO19.MDIO0_MDC */
|
||||
AM64X_IOPAD(0x01f8, PIN_INPUT, 4) /* (P5) PRG0_PRU1_GPO18.MDIO0_MDIO */
|
||||
>;
|
||||
};
|
||||
|
||||
rgmii1_pins_default: rgmii1-pins-default {
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x01cc, PIN_INPUT, 4) /* (W5) PRG0_PRU1_GPO7.RGMII1_RD0 */
|
||||
AM64X_IOPAD(0x01d4, PIN_INPUT, 4) /* (Y5) PRG0_PRU1_GPO9.RGMII1_RD1 */
|
||||
AM64X_IOPAD(0x01d8, PIN_INPUT, 4) /* (V6) PRG0_PRU1_GPO10.RGMII1_RD2 */
|
||||
AM64X_IOPAD(0x01f4, PIN_INPUT, 4) /* (V5) PRG0_PRU1_GPO17.RGMII1_RD3 */
|
||||
AM64X_IOPAD(0x0188, PIN_INPUT, 4) /* (AA5) PRG0_PRU0_GPO10.RGMII1_RXC */
|
||||
AM64X_IOPAD(0x0184, PIN_INPUT, 4) /* (W6) PRG0_PRU0_GPO9.RGMII1_RX_CTL */
|
||||
AM64X_IOPAD(0x0124, PIN_OUTPUT, 4) /* (V15) PRG1_PRU1_GPO7.RGMII1_TD0 */
|
||||
AM64X_IOPAD(0x012c, PIN_OUTPUT, 4) /* (V14) PRG1_PRU1_GPO9.RGMII1_TD1 */
|
||||
AM64X_IOPAD(0x0130, PIN_OUTPUT, 4) /* (W14) PRG1_PRU1_GPO10.RGMII1_TD2 */
|
||||
AM64X_IOPAD(0x014c, PIN_OUTPUT, 4) /* (AA14) PRG1_PRU1_GPO17.RGMII1_TD3 */
|
||||
AM64X_IOPAD(0x00e0, PIN_OUTPUT, 4) /* (U14) PRG1_PRU0_GPO10.RGMII1_TXC */
|
||||
AM64X_IOPAD(0x00dc, PIN_OUTPUT, 4) /* (U15) PRG1_PRU0_GPO9.RGMII1_TX_CTL */
|
||||
>;
|
||||
};
|
||||
|
||||
rgmii2_pins_default: rgmii2-pins-default {
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x0108, PIN_INPUT, 4) /* (W11) PRG1_PRU1_GPO0.RGMII2_RD0 */
|
||||
AM64X_IOPAD(0x010c, PIN_INPUT, 4) /* (V11) PRG1_PRU1_GPO1.RGMII2_RD1 */
|
||||
AM64X_IOPAD(0x0110, PIN_INPUT, 4) /* (AA12) PRG1_PRU1_GPO2.RGMII2_RD2 */
|
||||
AM64X_IOPAD(0x0114, PIN_INPUT, 4) /* (Y12) PRG1_PRU1_GPO3.RGMII2_RD3 */
|
||||
AM64X_IOPAD(0x0120, PIN_INPUT, 4) /* (U11) PRG1_PRU1_GPO6.RGMII2_RXC */
|
||||
AM64X_IOPAD(0x0118, PIN_INPUT, 4) /* (W12) PRG1_PRU1_GPO4.RGMII2_RX_CTL */
|
||||
AM64X_IOPAD(0x0134, PIN_OUTPUT, 4) /* (AA10) PRG1_PRU1_GPO11.RGMII2_TD0 */
|
||||
AM64X_IOPAD(0x0138, PIN_OUTPUT, 4) /* (V10) PRG1_PRU1_GPO12.RGMII2_TD1 */
|
||||
AM64X_IOPAD(0x013c, PIN_OUTPUT, 4) /* (U10) PRG1_PRU1_GPO13.RGMII2_TD2 */
|
||||
AM64X_IOPAD(0x0140, PIN_OUTPUT, 4) /* (AA11) PRG1_PRU1_GPO14.RGMII2_TD3 */
|
||||
AM64X_IOPAD(0x0148, PIN_OUTPUT, 4) /* (Y10) PRG1_PRU1_GPO16.RGMII2_TXC */
|
||||
AM64X_IOPAD(0x0144, PIN_OUTPUT, 4) /* (Y11) PRG1_PRU1_GPO15.RGMII2_TX_CTL */
|
||||
>;
|
||||
};
|
||||
};
|
||||
|
||||
&dmsc {
|
||||
@ -221,65 +66,41 @@
|
||||
ti,secure-host;
|
||||
};
|
||||
|
||||
&main_uart0 {
|
||||
/delete-property/ power-domains;
|
||||
/delete-property/ clocks;
|
||||
/delete-property/ clock-names;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&main_uart0_pins_default>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&main_uart1 {
|
||||
bootph-pre-ram;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&main_uart1_pins_default>;
|
||||
};
|
||||
|
||||
&memorycontroller {
|
||||
vtt-supply = <&vtt_supply>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&ddr_vtt_pins_default>;
|
||||
};
|
||||
|
||||
&sdhci0 {
|
||||
/delete-property/ power-domains;
|
||||
clocks = <&clk_200mhz>;
|
||||
clock-names = "clk_xin";
|
||||
ti,driver-strength-ohm = <50>;
|
||||
disable-wp;
|
||||
pinctrl-0 = <&main_mmc0_pins_default>;
|
||||
};
|
||||
|
||||
&sdhci1 {
|
||||
/delete-property/ power-domains;
|
||||
clocks = <&clk_200mhz>;
|
||||
clock-names = "clk_xin";
|
||||
ti,driver-strength-ohm = <50>;
|
||||
disable-wp;
|
||||
pinctrl-0 = <&main_mmc1_pins_default>;
|
||||
};
|
||||
|
||||
&main_gpio0 {
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
/* UART is initialized before SYSFW is started
|
||||
* so we can't do any power-domain/clock operations.
|
||||
* Delete clock/power-domain properties to avoid
|
||||
* UART init failure
|
||||
*/
|
||||
&main_uart0 {
|
||||
/delete-property/ power-domains;
|
||||
/delete-property/ clocks;
|
||||
/delete-property/ clock-names;
|
||||
};
|
||||
|
||||
/* timer init is called as part of rproc_start() while
|
||||
* starting System Firmware, so any clock/power-domain
|
||||
* operations will fail as SYSFW is not yet up and running.
|
||||
* Delete all clock/power-domain properties to avoid
|
||||
* timer init failure.
|
||||
* This is an always on timer at 20MHz.
|
||||
*/
|
||||
&main_timer0 {
|
||||
/delete-property/ clocks;
|
||||
/delete-property/ assigned-clocks;
|
||||
/delete-property/ assigned-clock-parents;
|
||||
/delete-property/ power-domains;
|
||||
};
|
||||
|
||||
/* EEPROM might be read before SYSFW is available */
|
||||
&main_i2c0 {
|
||||
/delete-property/ power-domains;
|
||||
};
|
||||
|
||||
&usbss0 {
|
||||
ti,vbus-divider;
|
||||
ti,usb2-only;
|
||||
};
|
||||
|
||||
&usb0 {
|
||||
dr_mode = "otg";
|
||||
maximum-speed = "high-speed";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&main_usb0_pins_default>;
|
||||
};
|
||||
|
||||
#include "k3-am642-evm-u-boot.dtsi"
|
||||
|
@ -3,33 +3,18 @@
|
||||
* Copyright (C) 2021 Texas Instruments Incorporated - https://www.ti.com/
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include <dt-bindings/mux/ti-serdes.h>
|
||||
#include <dt-bindings/phy/phy.h>
|
||||
#include <dt-bindings/net/ti-dp83867.h>
|
||||
#include "k3-am642.dtsi"
|
||||
#include "k3-am642-sk.dts"
|
||||
#include "k3-am64-sk-lp4-1600MTs.dtsi"
|
||||
#include "k3-am64-ddr.dtsi"
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
stdout-path = "serial2:115200n8";
|
||||
tick-timer = &timer1;
|
||||
};
|
||||
#include "k3-am642-sk-u-boot.dtsi"
|
||||
|
||||
/ {
|
||||
aliases {
|
||||
remoteproc0 = &sysctrler;
|
||||
remoteproc1 = &a53_0;
|
||||
};
|
||||
|
||||
memory@80000000 {
|
||||
device_type = "memory";
|
||||
/* 2G RAM */
|
||||
reg = <0x00000000 0x80000000 0x00000000 0x80000000>;
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
a53_0: a53@0 {
|
||||
compatible = "ti,am654-rproc";
|
||||
reg = <0x00 0x00a90000 0x00 0x10>;
|
||||
@ -47,18 +32,6 @@
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
reserved-memory {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
|
||||
secure_ddr: optee@9e800000 {
|
||||
reg = <0x00 0x9e800000 0x00 0x01800000>; /* for OP-TEE */
|
||||
alignment = <0x1000>;
|
||||
no-map;
|
||||
};
|
||||
};
|
||||
|
||||
clk_200mhz: dummy-clock-200mhz {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
@ -76,108 +49,12 @@
|
||||
};
|
||||
};
|
||||
|
||||
&cbass_main {
|
||||
main_esm: esm@420000 {
|
||||
compatible = "ti,j721e-esm";
|
||||
reg = <0x0 0x420000 0x0 0x1000>;
|
||||
ti,esm-pins = <160>, <161>;
|
||||
bootph-pre-ram;
|
||||
};
|
||||
&main_esm {
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
&cbass_mcu {
|
||||
&mcu_esm {
|
||||
bootph-pre-ram;
|
||||
mcu_esm: esm@4100000 {
|
||||
compatible = "ti,j721e-esm";
|
||||
reg = <0x0 0x4100000 0x0 0x1000>;
|
||||
ti,esm-pins = <0>, <1>;
|
||||
bootph-pre-ram;
|
||||
};
|
||||
};
|
||||
|
||||
&main_pmx0 {
|
||||
bootph-pre-ram;
|
||||
main_uart0_pins_default: main-uart0-pins-default {
|
||||
bootph-pre-ram;
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x0238, PIN_INPUT, 0) /* (B16) UART0_CTSn */
|
||||
AM64X_IOPAD(0x023c, PIN_OUTPUT, 0) /* (A16) UART0_RTSn */
|
||||
AM64X_IOPAD(0x0230, PIN_INPUT, 0) /* (D15) UART0_RXD */
|
||||
AM64X_IOPAD(0x0234, PIN_OUTPUT, 0) /* (C16) UART0_TXD */
|
||||
>;
|
||||
};
|
||||
|
||||
main_uart1_pins_default: main-uart1-pins-default {
|
||||
bootph-pre-ram;
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x0248, PIN_INPUT, 0) /* (D16) UART1_CTSn */
|
||||
AM64X_IOPAD(0x024c, PIN_OUTPUT, 0) /* (E16) UART1_RTSn */
|
||||
AM64X_IOPAD(0x0240, PIN_INPUT, 0) /* (E15) UART1_RXD */
|
||||
AM64X_IOPAD(0x0244, PIN_OUTPUT, 0) /* (E14) UART1_TXD */
|
||||
>;
|
||||
};
|
||||
|
||||
main_mmc1_pins_default: main-mmc1-pins-default {
|
||||
bootph-pre-ram;
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x0294, PIN_INPUT_PULLUP, 0) /* (J19) MMC1_CMD */
|
||||
AM64X_IOPAD(0x028c, PIN_INPUT_PULLDOWN, 0) /* (L20) MMC1_CLK */
|
||||
AM64X_IOPAD(0x0288, PIN_INPUT_PULLUP, 0) /* (K21) MMC1_DAT0 */
|
||||
AM64X_IOPAD(0x0284, PIN_INPUT_PULLUP, 0) /* (L21) MMC1_DAT1 */
|
||||
AM64X_IOPAD(0x0280, PIN_INPUT_PULLUP, 0) /* (K19) MMC1_DAT2 */
|
||||
AM64X_IOPAD(0x027c, PIN_INPUT_PULLUP, 0) /* (K18) MMC1_DAT3 */
|
||||
AM64X_IOPAD(0x0298, PIN_INPUT_PULLUP, 0) /* (D19) MMC1_SDCD */
|
||||
AM64X_IOPAD(0x029c, PIN_INPUT_PULLUP, 0) /* (C20) MMC1_SDWP */
|
||||
>;
|
||||
};
|
||||
|
||||
main_usb0_pins_default: main-usb0-pins-default {
|
||||
bootph-pre-ram;
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x02a8, PIN_OUTPUT, 0) /* (E19) USB0_DRVVBUS */
|
||||
>;
|
||||
};
|
||||
|
||||
mdio1_pins_default: mdio1-pins-default {
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x01fc, PIN_OUTPUT, 4) /* (R2) PRG0_PRU1_GPO19.MDIO0_MDC */
|
||||
AM64X_IOPAD(0x01f8, PIN_INPUT, 4) /* (P5) PRG0_PRU1_GPO18.MDIO0_MDIO */
|
||||
>;
|
||||
};
|
||||
|
||||
rgmii1_pins_default: rgmii1-pins-default {
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x011c, PIN_INPUT, 4) /* (AA13) PRG1_PRU1_GPO5.RGMII1_RD0 */
|
||||
AM64X_IOPAD(0x0128, PIN_INPUT, 4) /* (U12) PRG1_PRU1_GPO8.RGMII1_RD1 */
|
||||
AM64X_IOPAD(0x0150, PIN_INPUT, 4) /* (Y13) PRG1_PRU1_GPO18.RGMII1_RD2 */
|
||||
AM64X_IOPAD(0x0154, PIN_INPUT, 4) /* (V12) PRG1_PRU1_GPO19.RGMII1_RD3 */
|
||||
AM64X_IOPAD(0x00d8, PIN_INPUT, 4) /* (W13) PRG1_PRU0_GPO8.RGMII1_RXC */
|
||||
AM64X_IOPAD(0x00cc, PIN_INPUT, 4) /* (V13) PRG1_PRU0_GPO5.RGMII1_RX_CTL */
|
||||
AM64X_IOPAD(0x0124, PIN_OUTPUT, 4) /* (V15) PRG1_PRU1_GPO7.RGMII1_TD0 */
|
||||
AM64X_IOPAD(0x012c, PIN_OUTPUT, 4) /* (V14) PRG1_PRU1_GPO9.RGMII1_TD1 */
|
||||
AM64X_IOPAD(0x0130, PIN_OUTPUT, 4) /* (W14) PRG1_PRU1_GPO10.RGMII1_TD2 */
|
||||
AM64X_IOPAD(0x014c, PIN_OUTPUT, 4) /* (AA14) PRG1_PRU1_GPO17.RGMII1_TD3 */
|
||||
AM64X_IOPAD(0x00e0, PIN_OUTPUT, 4) /* (U14) PRG1_PRU0_GPO10.RGMII1_TXC */
|
||||
AM64X_IOPAD(0x00dc, PIN_OUTPUT, 4) /* (U15) PRG1_PRU0_GPO9.RGMII1_TX_CTL */
|
||||
>;
|
||||
};
|
||||
|
||||
rgmii2_pins_default: rgmii2-pins-default {
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x0108, PIN_INPUT, 4) /* (W11) PRG1_PRU1_GPO0.RGMII2_RD0 */
|
||||
AM64X_IOPAD(0x010c, PIN_INPUT, 4) /* (V11) PRG1_PRU1_GPO1.RGMII2_RD1 */
|
||||
AM64X_IOPAD(0x0110, PIN_INPUT, 4) /* (AA12) PRG1_PRU1_GPO2.RGMII2_RD2 */
|
||||
AM64X_IOPAD(0x0114, PIN_INPUT, 4) /* (Y12) PRG1_PRU1_GPO3.RGMII2_RD3 */
|
||||
AM64X_IOPAD(0x0120, PIN_INPUT, 4) /* (U11) PRG1_PRU1_GPO6.RGMII2_RXC */
|
||||
AM64X_IOPAD(0x0118, PIN_INPUT, 4) /* (W12) PRG1_PRU1_GPO4.RGMII2_RX_CTL */
|
||||
AM64X_IOPAD(0x0134, PIN_OUTPUT, 4) /* (AA10) PRG1_PRU1_GPO11.RGMII2_TD0 */
|
||||
AM64X_IOPAD(0x0138, PIN_OUTPUT, 4) /* (V10) PRG1_PRU1_GPO12.RGMII2_TD1 */
|
||||
AM64X_IOPAD(0x013c, PIN_OUTPUT, 4) /* (U10) PRG1_PRU1_GPO13.RGMII2_TD2 */
|
||||
AM64X_IOPAD(0x0140, PIN_OUTPUT, 4) /* (AA11) PRG1_PRU1_GPO14.RGMII2_TD3 */
|
||||
AM64X_IOPAD(0x0148, PIN_OUTPUT, 4) /* (Y10) PRG1_PRU1_GPO16.RGMII2_TXC */
|
||||
AM64X_IOPAD(0x0144, PIN_OUTPUT, 4) /* (Y11) PRG1_PRU1_GPO15.RGMII2_TX_CTL */
|
||||
>;
|
||||
};
|
||||
};
|
||||
|
||||
&dmsc {
|
||||
@ -189,79 +66,36 @@
|
||||
ti,secure-host;
|
||||
};
|
||||
|
||||
&main_uart0 {
|
||||
/delete-property/ power-domains;
|
||||
/delete-property/ clocks;
|
||||
/delete-property/ clock-names;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&main_uart0_pins_default>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&main_uart1 {
|
||||
bootph-pre-ram;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&main_uart1_pins_default>;
|
||||
};
|
||||
|
||||
&sdhci1 {
|
||||
/delete-property/ power-domains;
|
||||
clocks = <&clk_200mhz>;
|
||||
clock-names = "clk_xin";
|
||||
ti,driver-strength-ohm = <50>;
|
||||
disable-wp;
|
||||
pinctrl-0 = <&main_mmc1_pins_default>;
|
||||
};
|
||||
|
||||
&serdes_ln_ctrl {
|
||||
idle-states = <AM64_SERDES0_LANE0_USB>;
|
||||
};
|
||||
|
||||
&serdes_wiz0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&serdes0 {
|
||||
serdes0_usb_link: link@0 {
|
||||
reg = <0>;
|
||||
cdns,num-lanes = <1>;
|
||||
#phy-cells = <0>;
|
||||
cdns,phy-type = <PHY_TYPE_USB3>;
|
||||
resets = <&serdes_wiz0 1>;
|
||||
};
|
||||
/* UART is initialized before SYSFW is started
|
||||
* so we can't do any power-domain/clock operations.
|
||||
* Delete clock/power-domain properties to avoid
|
||||
* UART init failure
|
||||
*/
|
||||
&main_uart0 {
|
||||
/delete-property/ power-domains;
|
||||
/delete-property/ clocks;
|
||||
/delete-property/ clock-names;
|
||||
};
|
||||
|
||||
&usbss0 {
|
||||
ti,vbus-divider;
|
||||
/* timer init is called as part of rproc_start() while
|
||||
* starting System Firmware, so any clock/power-domain
|
||||
* operations will fail as SYSFW is not yet up and running.
|
||||
* Delete all clock/power-domain properties to avoid
|
||||
* timer init failure.
|
||||
* This is an always on timer at 20MHz.
|
||||
*/
|
||||
&main_timer0 {
|
||||
/delete-property/ clocks;
|
||||
/delete-property/ assigned-clocks;
|
||||
/delete-property/ assigned-clock-parents;
|
||||
/delete-property/ power-domains;
|
||||
};
|
||||
|
||||
&usb0 {
|
||||
dr_mode = "host";
|
||||
maximum-speed = "super-speed";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&main_usb0_pins_default>;
|
||||
phys = <&serdes0_usb_link>;
|
||||
phy-names = "cdns3,usb3-phy";
|
||||
};
|
||||
|
||||
&cpsw3g {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mdio1_pins_default
|
||||
&rgmii1_pins_default
|
||||
&rgmii2_pins_default>;
|
||||
};
|
||||
|
||||
&cpsw_port2 {
|
||||
phy-mode = "rgmii-rxid";
|
||||
phy-handle = <&cpsw3g_phy1>;
|
||||
};
|
||||
|
||||
&cpsw3g_mdio {
|
||||
cpsw3g_phy1: ethernet-phy@1 {
|
||||
reg = <1>;
|
||||
ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
|
||||
ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
|
||||
};
|
||||
};
|
||||
|
||||
#include "k3-am642-sk-u-boot.dtsi"
|
||||
|
@ -7,12 +7,7 @@
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
stdout-path = "serial2:115200n8";
|
||||
tick-timer = &timer1;
|
||||
};
|
||||
|
||||
aliases {
|
||||
mmc1 = &sdhci1;
|
||||
tick-timer = &main_timer0;
|
||||
};
|
||||
|
||||
memory@80000000 {
|
||||
@ -22,13 +17,15 @@
|
||||
|
||||
&cbass_main{
|
||||
bootph-pre-ram;
|
||||
timer1: timer@2400000 {
|
||||
compatible = "ti,omap5430-timer";
|
||||
reg = <0x0 0x2400000 0x0 0x80>;
|
||||
ti,timer-alwon;
|
||||
clock-frequency = <200000000>;
|
||||
bootph-pre-ram;
|
||||
};
|
||||
};
|
||||
|
||||
&cbass_mcu {
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
&main_timer0 {
|
||||
bootph-pre-ram;
|
||||
clock-frequency = <200000000>;
|
||||
};
|
||||
|
||||
&main_conf {
|
||||
@ -40,81 +37,18 @@
|
||||
|
||||
&main_pmx0 {
|
||||
bootph-pre-ram;
|
||||
main_i2c0_pins_default: main-i2c0-pins-default {
|
||||
bootph-pre-ram;
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x0260, PIN_INPUT_PULLUP, 0) /* (A18) I2C0_SCL */
|
||||
AM64X_IOPAD(0x0264, PIN_INPUT_PULLUP, 0) /* (B18) I2C0_SDA */
|
||||
>;
|
||||
};
|
||||
};
|
||||
|
||||
&main_i2c0_pins_default {
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
&main_i2c0 {
|
||||
bootph-pre-ram;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&main_i2c0_pins_default>;
|
||||
clock-frequency = <400000>;
|
||||
};
|
||||
|
||||
tps65219: pmic@30 {
|
||||
compatible = "ti,tps65219";
|
||||
reg = <0x30>;
|
||||
|
||||
regulators {
|
||||
buck1_reg: buck1 {
|
||||
regulator-name = "VDD_CORE";
|
||||
regulator-min-microvolt = <750000>;
|
||||
regulator-max-microvolt = <750000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
buck2_reg: buck2 {
|
||||
regulator-name = "VCC1V8";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
buck3_reg: buck3 {
|
||||
regulator-name = "VDD_LPDDR4";
|
||||
regulator-min-microvolt = <1100000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
ldo1_reg: ldo1 {
|
||||
regulator-name = "VDDSHV_SD_IO_PMIC";
|
||||
regulator-min-microvolt = <33000000>;
|
||||
regulator-max-microvolt = <33000000>;
|
||||
};
|
||||
|
||||
ldo2_reg: ldo2 {
|
||||
regulator-name = "VDDAR_CORE";
|
||||
regulator-min-microvolt = <850000>;
|
||||
regulator-max-microvolt = <850000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
ldo3_reg: ldo3 {
|
||||
regulator-name = "VDDA_1V8";
|
||||
regulator-min-microvolt = <18000000>;
|
||||
regulator-max-microvolt = <18000000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
ldo4_reg: ldo4 {
|
||||
regulator-name = "VDD_PHY_2V5";
|
||||
regulator-min-microvolt = <25000000>;
|
||||
regulator-max-microvolt = <25000000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
};
|
||||
};
|
||||
&main_uart0_pins_default {
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
&main_uart0 {
|
||||
@ -163,18 +97,8 @@
|
||||
};
|
||||
|
||||
&cpsw3g {
|
||||
reg = <0x0 0x8000000 0x0 0x200000>,
|
||||
<0x0 0x43000200 0x0 0x8>;
|
||||
reg-names = "cpsw_nuss", "mac_efuse";
|
||||
/delete-property/ ranges;
|
||||
bootph-pre-ram;
|
||||
|
||||
cpsw-phy-sel@04044 {
|
||||
compatible = "ti,am64-phy-gmii-sel";
|
||||
reg = <0x0 0x43004044 0x0 0x8>;
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
ethernet-ports {
|
||||
bootph-pre-ram;
|
||||
};
|
||||
@ -221,7 +145,6 @@
|
||||
};
|
||||
|
||||
&usb0 {
|
||||
dr_mode = "host";
|
||||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
|
@ -5,27 +5,38 @@
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include <dt-bindings/mux/ti-serdes.h>
|
||||
#include <dt-bindings/phy/phy.h>
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/net/ti-dp83867.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
#include "k3-am642.dtsi"
|
||||
|
||||
#include "k3-serdes.h"
|
||||
|
||||
/ {
|
||||
compatible = "ti,am642-sk", "ti,am642";
|
||||
model = "Texas Instruments AM642 SK";
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial2:115200n8";
|
||||
bootargs = "console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000";
|
||||
stdout-path = &main_uart0;
|
||||
};
|
||||
|
||||
aliases {
|
||||
serial0 = &mcu_uart0;
|
||||
serial1 = &main_uart1;
|
||||
serial2 = &main_uart0;
|
||||
i2c0 = &main_i2c0;
|
||||
i2c1 = &main_i2c1;
|
||||
mmc0 = &sdhci0;
|
||||
mmc1 = &sdhci1;
|
||||
ethernet0 = &cpsw_port1;
|
||||
ethernet1 = &cpsw_port2;
|
||||
};
|
||||
|
||||
memory@80000000 {
|
||||
device_type = "memory";
|
||||
/* 2G RAM */
|
||||
reg = <0x00000000 0x80000000 0x00000000 0x80000000>;
|
||||
|
||||
};
|
||||
|
||||
reserved-memory {
|
||||
@ -94,7 +105,7 @@
|
||||
};
|
||||
};
|
||||
|
||||
vusb_main: fixed-regulator-vusb-main5v0 {
|
||||
vusb_main: regulator-0 {
|
||||
/* USB MAIN INPUT 5V DC */
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vusb_main5v0";
|
||||
@ -104,7 +115,7 @@
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vcc_3v3_sys: fixedregulator-vcc-3v3-sys {
|
||||
vcc_3v3_sys: regulator-1 {
|
||||
/* output of LP8733xx */
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vcc_3v3_sys";
|
||||
@ -115,7 +126,7 @@
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vdd_mmc1: fixed-regulator-sd {
|
||||
vdd_mmc1: regulator-2 {
|
||||
/* TPS2051BD */
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vdd_mmc1";
|
||||
@ -127,7 +138,7 @@
|
||||
gpio = <&exp1 3 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
com8_ls_en: regulator-1 {
|
||||
com8_ls_en: regulator-3 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "com8_ls_en";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
@ -139,7 +150,7 @@
|
||||
gpio = <&main_gpio0 62 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
wlan_en: regulator-2 {
|
||||
wlan_en: regulator-4 {
|
||||
/* output of SN74AVC4T245RSVR */
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "wlan_en";
|
||||
@ -222,20 +233,21 @@
|
||||
};
|
||||
|
||||
&main_pmx0 {
|
||||
main_mmc1_pins_default: main-mmc1-pins-default {
|
||||
main_mmc1_pins_default: main-mmc1-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x0294, PIN_INPUT, 0) /* (J19) MMC1_CMD */
|
||||
AM64X_IOPAD(0x029c, PIN_INPUT_PULLUP, 0) /* (C20) MMC1_SDWP */
|
||||
AM64X_IOPAD(0x0298, PIN_INPUT_PULLUP, 0) /* (D19) MMC1_SDCD */
|
||||
AM64X_IOPAD(0x0294, PIN_INPUT_PULLUP, 0) /* (J19) MMC1_CMD */
|
||||
AM64X_IOPAD(0x0290, PIN_INPUT, 0) /* (#N/A) MMC1_CLKLB */
|
||||
AM64X_IOPAD(0x028c, PIN_INPUT, 0) /* (L20) MMC1_CLK */
|
||||
AM64X_IOPAD(0x0288, PIN_INPUT, 0) /* (K21) MMC1_DAT0 */
|
||||
AM64X_IOPAD(0x0284, PIN_INPUT, 0) /* (L21) MMC1_DAT1 */
|
||||
AM64X_IOPAD(0x0280, PIN_INPUT, 0) /* (K19) MMC1_DAT2 */
|
||||
AM64X_IOPAD(0x027c, PIN_INPUT, 0) /* (K18) MMC1_DAT3 */
|
||||
AM64X_IOPAD(0x0298, PIN_INPUT, 0) /* (D19) MMC1_SDCD */
|
||||
AM64X_IOPAD(0x028c, PIN_INPUT_PULLDOWN, 0) /* (L20) MMC1_CLK */
|
||||
AM64X_IOPAD(0x0288, PIN_INPUT_PULLUP, 0) /* (K21) MMC1_DAT0 */
|
||||
AM64X_IOPAD(0x0284, PIN_INPUT_PULLUP, 0) /* (L21) MMC1_DAT1 */
|
||||
AM64X_IOPAD(0x0280, PIN_INPUT_PULLUP, 0) /* (K19) MMC1_DAT2 */
|
||||
AM64X_IOPAD(0x027c, PIN_INPUT_PULLUP, 0) /* (K18) MMC1_DAT3 */
|
||||
>;
|
||||
};
|
||||
|
||||
main_uart0_pins_default: main-uart0-pins-default {
|
||||
main_uart0_pins_default: main-uart0-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x0238, PIN_INPUT, 0) /* (B16) UART0_CTSn */
|
||||
AM64X_IOPAD(0x023c, PIN_OUTPUT, 0) /* (A16) UART0_RTSn */
|
||||
@ -244,27 +256,43 @@
|
||||
>;
|
||||
};
|
||||
|
||||
main_usb0_pins_default: main-usb0-pins-default {
|
||||
main_uart1_pins_default: main-uart1-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x0248, PIN_INPUT, 0) /* (D16) UART1_CTSn */
|
||||
AM64X_IOPAD(0x024c, PIN_OUTPUT, 0) /* (E16) UART1_RTSn */
|
||||
AM64X_IOPAD(0x0240, PIN_INPUT, 0) /* (E15) UART1_RXD */
|
||||
AM64X_IOPAD(0x0244, PIN_OUTPUT, 0) /* (E14) UART1_TXD */
|
||||
>;
|
||||
};
|
||||
|
||||
main_usb0_pins_default: main-usb0-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x02a8, PIN_OUTPUT, 0) /* (E19) USB0_DRVVBUS */
|
||||
>;
|
||||
};
|
||||
|
||||
main_i2c1_pins_default: main-i2c1-pins-default {
|
||||
main_i2c0_pins_default: main-i2c0-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x0260, PIN_INPUT_PULLUP, 0) /* (A18) I2C0_SCL */
|
||||
AM64X_IOPAD(0x0264, PIN_INPUT_PULLUP, 0) /* (B18) I2C0_SDA */
|
||||
>;
|
||||
};
|
||||
|
||||
main_i2c1_pins_default: main-i2c1-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x0268, PIN_INPUT_PULLUP, 0) /* (C18) I2C1_SCL */
|
||||
AM64X_IOPAD(0x026c, PIN_INPUT_PULLUP, 0) /* (B19) I2C1_SDA */
|
||||
>;
|
||||
};
|
||||
|
||||
mdio1_pins_default: mdio1-pins-default {
|
||||
mdio1_pins_default: mdio1-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x01fc, PIN_OUTPUT, 4) /* (R2) PRG0_PRU1_GPO19.MDIO0_MDC */
|
||||
AM64X_IOPAD(0x01f8, PIN_INPUT, 4) /* (P5) PRG0_PRU1_GPO18.MDIO0_MDIO */
|
||||
>;
|
||||
};
|
||||
|
||||
rgmii1_pins_default: rgmii1-pins-default {
|
||||
rgmii1_pins_default: rgmii1-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x011c, PIN_INPUT, 4) /* (AA13) PRG1_PRU1_GPO5.RGMII1_RD0 */
|
||||
AM64X_IOPAD(0x0128, PIN_INPUT, 4) /* (U12) PRG1_PRU1_GPO8.RGMII1_RD1 */
|
||||
@ -281,7 +309,7 @@
|
||||
>;
|
||||
};
|
||||
|
||||
rgmii2_pins_default: rgmii2-pins-default {
|
||||
rgmii2_pins_default: rgmii2-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x0108, PIN_INPUT, 4) /* (W11) PRG1_PRU1_GPO0.RGMII2_RD0 */
|
||||
AM64X_IOPAD(0x010c, PIN_INPUT, 4) /* (V11) PRG1_PRU1_GPO1.RGMII2_RD1 */
|
||||
@ -298,7 +326,7 @@
|
||||
>;
|
||||
};
|
||||
|
||||
ospi0_pins_default: ospi0-pins-default {
|
||||
ospi0_pins_default: ospi0-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x0000, PIN_OUTPUT, 0) /* (N20) OSPI0_CLK */
|
||||
AM64X_IOPAD(0x002c, PIN_OUTPUT, 0) /* (L19) OSPI0_CSn0 */
|
||||
@ -314,24 +342,24 @@
|
||||
>;
|
||||
};
|
||||
|
||||
main_ecap0_pins_default: main-ecap0-pins-default {
|
||||
main_ecap0_pins_default: main-ecap0-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x0270, PIN_INPUT, 0) /* (D18) ECAP0_IN_APWM_OUT */
|
||||
>;
|
||||
};
|
||||
main_wlan_en_pins_default: main-wlan-en-pins-default {
|
||||
main_wlan_en_pins_default: main-wlan-en-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x00c4, PIN_OUTPUT_PULLUP, 7) /* (V8) GPIO0_48 */
|
||||
>;
|
||||
};
|
||||
|
||||
main_com8_ls_en_pins_default: main-com8-ls-en-pins-default {
|
||||
main_com8_ls_en_pins_default: main-com8-ls-en-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x00fc, PIN_OUTPUT, 7) /* (U7) PRG1_PRU0_GPO17.GPIO0_62 */
|
||||
>;
|
||||
};
|
||||
|
||||
main_wlan_pins_default: main-wlan-pins-default {
|
||||
main_wlan_pins_default: main-wlan-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM64X_IOPAD(0x00bc, PIN_INPUT, 7) /* (U8) GPIO0_46 */
|
||||
>;
|
||||
@ -342,11 +370,26 @@
|
||||
status = "okay";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&main_uart0_pins_default>;
|
||||
current-speed = <115200>;
|
||||
};
|
||||
|
||||
&main_uart1 {
|
||||
/* main_uart1 is reserved for firmware usage */
|
||||
status = "reserved";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&main_uart1_pins_default>;
|
||||
};
|
||||
|
||||
&main_i2c0 {
|
||||
status = "okay";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&main_i2c0_pins_default>;
|
||||
clock-frequency = <400000>;
|
||||
|
||||
eeprom@51 {
|
||||
compatible = "atmel,24c512";
|
||||
reg = <0x51>;
|
||||
};
|
||||
};
|
||||
|
||||
&main_i2c1 {
|
||||
@ -439,8 +482,7 @@
|
||||
|
||||
&cpsw3g {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&rgmii1_pins_default
|
||||
&rgmii2_pins_default>;
|
||||
pinctrl-0 = <&rgmii1_pins_default>, <&rgmii2_pins_default>;
|
||||
};
|
||||
|
||||
&cpsw_port1 {
|
||||
@ -471,11 +513,8 @@
|
||||
};
|
||||
};
|
||||
|
||||
&tscadc0 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&ospi0 {
|
||||
status = "okay";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&ospi0_pins_default>;
|
||||
|
||||
@ -490,10 +529,53 @@
|
||||
cdns,tchsh-ns = <60>;
|
||||
cdns,tslch-ns = <60>;
|
||||
cdns,read-delay = <4>;
|
||||
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
partition@0 {
|
||||
label = "ospi.tiboot3";
|
||||
reg = <0x0 0x100000>;
|
||||
};
|
||||
|
||||
partition@100000 {
|
||||
label = "ospi.tispl";
|
||||
reg = <0x100000 0x200000>;
|
||||
};
|
||||
|
||||
partition@300000 {
|
||||
label = "ospi.u-boot";
|
||||
reg = <0x300000 0x400000>;
|
||||
};
|
||||
|
||||
partition@700000 {
|
||||
label = "ospi.env";
|
||||
reg = <0x700000 0x40000>;
|
||||
};
|
||||
|
||||
partition@740000 {
|
||||
label = "ospi.env.backup";
|
||||
reg = <0x740000 0x40000>;
|
||||
};
|
||||
|
||||
partition@800000 {
|
||||
label = "ospi.rootfs";
|
||||
reg = <0x800000 0x37c0000>;
|
||||
};
|
||||
|
||||
partition@3fc0000 {
|
||||
label = "ospi.phypattern";
|
||||
reg = <0x3fc0000 0x40000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&mailbox0_cluster2 {
|
||||
status = "okay";
|
||||
|
||||
mbox_main_r5fss0_core0: mbox-main-r5fss0-core0 {
|
||||
ti,mbox-rx = <0 0 2>;
|
||||
ti,mbox-tx = <1 0 2>;
|
||||
@ -505,11 +587,9 @@
|
||||
};
|
||||
};
|
||||
|
||||
&mailbox0_cluster3 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&mailbox0_cluster4 {
|
||||
status = "okay";
|
||||
|
||||
mbox_main_r5fss1_core0: mbox-main-r5fss1-core0 {
|
||||
ti,mbox-rx = <0 0 2>;
|
||||
ti,mbox-tx = <1 0 2>;
|
||||
@ -521,41 +601,35 @@
|
||||
};
|
||||
};
|
||||
|
||||
&mailbox0_cluster5 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&mailbox0_cluster6 {
|
||||
status = "okay";
|
||||
|
||||
mbox_m4_0: mbox-m4-0 {
|
||||
ti,mbox-rx = <0 0 2>;
|
||||
ti,mbox-tx = <1 0 2>;
|
||||
};
|
||||
};
|
||||
|
||||
&mailbox0_cluster7 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&main_r5fss0_core0 {
|
||||
mboxes = <&mailbox0_cluster2 &mbox_main_r5fss0_core0>;
|
||||
mboxes = <&mailbox0_cluster2>, <&mbox_main_r5fss0_core0>;
|
||||
memory-region = <&main_r5fss0_core0_dma_memory_region>,
|
||||
<&main_r5fss0_core0_memory_region>;
|
||||
};
|
||||
|
||||
&main_r5fss0_core1 {
|
||||
mboxes = <&mailbox0_cluster2 &mbox_main_r5fss0_core1>;
|
||||
mboxes = <&mailbox0_cluster2>, <&mbox_main_r5fss0_core1>;
|
||||
memory-region = <&main_r5fss0_core1_dma_memory_region>,
|
||||
<&main_r5fss0_core1_memory_region>;
|
||||
};
|
||||
|
||||
&main_r5fss1_core0 {
|
||||
mboxes = <&mailbox0_cluster4 &mbox_main_r5fss1_core0>;
|
||||
mboxes = <&mailbox0_cluster4>, <&mbox_main_r5fss1_core0>;
|
||||
memory-region = <&main_r5fss1_core0_dma_memory_region>,
|
||||
<&main_r5fss1_core0_memory_region>;
|
||||
};
|
||||
|
||||
&main_r5fss1_core1 {
|
||||
mboxes = <&mailbox0_cluster4 &mbox_main_r5fss1_core1>;
|
||||
mboxes = <&mailbox0_cluster4>, <&mbox_main_r5fss1_core1>;
|
||||
memory-region = <&main_r5fss1_core1_dma_memory_region>,
|
||||
<&main_r5fss1_core1_memory_region>;
|
||||
};
|
||||
|
@ -58,6 +58,7 @@
|
||||
L2_0: l2-cache0 {
|
||||
compatible = "cache";
|
||||
cache-level = <2>;
|
||||
cache-unified;
|
||||
cache-size = <0x40000>;
|
||||
cache-line-size = <64>;
|
||||
cache-sets = <256>;
|
||||
|
@ -64,6 +64,12 @@
|
||||
alignment = <0x1000>;
|
||||
no-map;
|
||||
};
|
||||
|
||||
/* To reserve the power-on(PON) reason for watchdog reset */
|
||||
wdt_reset_memory_region: wdt-memory@a2200000 {
|
||||
reg = <0x00 0xa2200000 0x00 0x00001000>;
|
||||
no-map;
|
||||
};
|
||||
};
|
||||
|
||||
leds {
|
||||
@ -720,6 +726,11 @@
|
||||
mboxes = <&mailbox0_cluster1 &mbox_mcu_r5fss0_core1>;
|
||||
};
|
||||
|
||||
&mcu_rti1 {
|
||||
memory-region = <&wdt_reset_memory_region>;
|
||||
|
||||
};
|
||||
|
||||
&icssg0_mdio {
|
||||
status = "disabled";
|
||||
};
|
||||
|
@ -8,8 +8,8 @@
|
||||
#include "k3-j7200-som-p0.dtsi"
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/net/ti-dp83867.h>
|
||||
#include <dt-bindings/mux/ti-serdes.h>
|
||||
#include <dt-bindings/phy/phy.h>
|
||||
#include "k3-serdes.h"
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
|
@ -1,9 +1,9 @@
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* Copyright (C) 2019 Texas Instruments Incorporated - http://www.ti.com/
|
||||
* This file was generated by the Jacinto7_DDRSS_RegConfigTool, Revision: 0.9.1
|
||||
* This file was generated on 07/17/2022
|
||||
*/
|
||||
* Copyright (C) 2023 Texas Instruments Incorporated - https://www.ti.com/
|
||||
* This file was generated by the Jacinto7_DDRSS_RegConfigTool, Revision: 0.10.0
|
||||
* This file was generated on 04/12/2023
|
||||
*/
|
||||
|
||||
#define DDRSS_PLL_FHS_CNT 10
|
||||
#define DDRSS_PLL_FREQUENCY_0 27500000
|
||||
@ -54,11 +54,11 @@
|
||||
#define DDRSS_CTL_41_DATA 0x1B60008B
|
||||
#define DDRSS_CTL_42_DATA 0x2000422B
|
||||
#define DDRSS_CTL_43_DATA 0x000A0A09
|
||||
#define DDRSS_CTL_44_DATA 0x0400078A
|
||||
#define DDRSS_CTL_44_DATA 0x040003C5
|
||||
#define DDRSS_CTL_45_DATA 0x1E161104
|
||||
#define DDRSS_CTL_46_DATA 0x10012458
|
||||
#define DDRSS_CTL_46_DATA 0x1000922C
|
||||
#define DDRSS_CTL_47_DATA 0x1E161110
|
||||
#define DDRSS_CTL_48_DATA 0x10012458
|
||||
#define DDRSS_CTL_48_DATA 0x1000922C
|
||||
#define DDRSS_CTL_49_DATA 0x02030410
|
||||
#define DDRSS_CTL_50_DATA 0x2C040500
|
||||
#define DDRSS_CTL_51_DATA 0x082D2C2D
|
||||
@ -71,11 +71,11 @@
|
||||
#define DDRSS_CTL_58_DATA 0x00010100
|
||||
#define DDRSS_CTL_59_DATA 0x03010000
|
||||
#define DDRSS_CTL_60_DATA 0x00001008
|
||||
#define DDRSS_CTL_61_DATA 0x000000CE
|
||||
#define DDRSS_CTL_61_DATA 0x00000063
|
||||
#define DDRSS_CTL_62_DATA 0x00000256
|
||||
#define DDRSS_CTL_63_DATA 0x00002073
|
||||
#define DDRSS_CTL_63_DATA 0x00001035
|
||||
#define DDRSS_CTL_64_DATA 0x00000256
|
||||
#define DDRSS_CTL_65_DATA 0x00002073
|
||||
#define DDRSS_CTL_65_DATA 0x00001035
|
||||
#define DDRSS_CTL_66_DATA 0x00000005
|
||||
#define DDRSS_CTL_67_DATA 0x00040000
|
||||
#define DDRSS_CTL_68_DATA 0x00950012
|
||||
@ -112,27 +112,27 @@
|
||||
#define DDRSS_CTL_99_DATA 0x00000000
|
||||
#define DDRSS_CTL_100_DATA 0x00040005
|
||||
#define DDRSS_CTL_101_DATA 0x00000000
|
||||
#define DDRSS_CTL_102_DATA 0x00003380
|
||||
#define DDRSS_CTL_103_DATA 0x00003380
|
||||
#define DDRSS_CTL_104_DATA 0x00003380
|
||||
#define DDRSS_CTL_105_DATA 0x00003380
|
||||
#define DDRSS_CTL_106_DATA 0x00003380
|
||||
#define DDRSS_CTL_102_DATA 0x000018C0
|
||||
#define DDRSS_CTL_103_DATA 0x000018C0
|
||||
#define DDRSS_CTL_104_DATA 0x000018C0
|
||||
#define DDRSS_CTL_105_DATA 0x000018C0
|
||||
#define DDRSS_CTL_106_DATA 0x000018C0
|
||||
#define DDRSS_CTL_107_DATA 0x00000000
|
||||
#define DDRSS_CTL_108_DATA 0x000005A2
|
||||
#define DDRSS_CTL_109_DATA 0x00081CC0
|
||||
#define DDRSS_CTL_110_DATA 0x00081CC0
|
||||
#define DDRSS_CTL_111_DATA 0x00081CC0
|
||||
#define DDRSS_CTL_112_DATA 0x00081CC0
|
||||
#define DDRSS_CTL_113_DATA 0x00081CC0
|
||||
#define DDRSS_CTL_108_DATA 0x000002B5
|
||||
#define DDRSS_CTL_109_DATA 0x00040D40
|
||||
#define DDRSS_CTL_110_DATA 0x00040D40
|
||||
#define DDRSS_CTL_111_DATA 0x00040D40
|
||||
#define DDRSS_CTL_112_DATA 0x00040D40
|
||||
#define DDRSS_CTL_113_DATA 0x00040D40
|
||||
#define DDRSS_CTL_114_DATA 0x00000000
|
||||
#define DDRSS_CTL_115_DATA 0x0000E325
|
||||
#define DDRSS_CTL_116_DATA 0x00081CC0
|
||||
#define DDRSS_CTL_117_DATA 0x00081CC0
|
||||
#define DDRSS_CTL_118_DATA 0x00081CC0
|
||||
#define DDRSS_CTL_119_DATA 0x00081CC0
|
||||
#define DDRSS_CTL_120_DATA 0x00081CC0
|
||||
#define DDRSS_CTL_115_DATA 0x00007173
|
||||
#define DDRSS_CTL_116_DATA 0x00040D40
|
||||
#define DDRSS_CTL_117_DATA 0x00040D40
|
||||
#define DDRSS_CTL_118_DATA 0x00040D40
|
||||
#define DDRSS_CTL_119_DATA 0x00040D40
|
||||
#define DDRSS_CTL_120_DATA 0x00040D40
|
||||
#define DDRSS_CTL_121_DATA 0x00000000
|
||||
#define DDRSS_CTL_122_DATA 0x0000E325
|
||||
#define DDRSS_CTL_122_DATA 0x00007173
|
||||
#define DDRSS_CTL_123_DATA 0x00000000
|
||||
#define DDRSS_CTL_124_DATA 0x00000000
|
||||
#define DDRSS_CTL_125_DATA 0x00000000
|
||||
@ -399,29 +399,29 @@
|
||||
#define DDRSS_CTL_386_DATA 0x00000000
|
||||
#define DDRSS_CTL_387_DATA 0x3A3A1B00
|
||||
#define DDRSS_CTL_388_DATA 0x000A0000
|
||||
#define DDRSS_CTL_389_DATA 0x0000019C
|
||||
#define DDRSS_CTL_389_DATA 0x000000C6
|
||||
#define DDRSS_CTL_390_DATA 0x00000200
|
||||
#define DDRSS_CTL_391_DATA 0x00000200
|
||||
#define DDRSS_CTL_392_DATA 0x00000200
|
||||
#define DDRSS_CTL_393_DATA 0x00000200
|
||||
#define DDRSS_CTL_394_DATA 0x000004D4
|
||||
#define DDRSS_CTL_395_DATA 0x00001018
|
||||
#define DDRSS_CTL_394_DATA 0x00000252
|
||||
#define DDRSS_CTL_395_DATA 0x000007BC
|
||||
#define DDRSS_CTL_396_DATA 0x00000204
|
||||
#define DDRSS_CTL_397_DATA 0x000040E6
|
||||
#define DDRSS_CTL_397_DATA 0x0000206A
|
||||
#define DDRSS_CTL_398_DATA 0x00000200
|
||||
#define DDRSS_CTL_399_DATA 0x00000200
|
||||
#define DDRSS_CTL_400_DATA 0x00000200
|
||||
#define DDRSS_CTL_401_DATA 0x00000200
|
||||
#define DDRSS_CTL_402_DATA 0x0000C2B2
|
||||
#define DDRSS_CTL_403_DATA 0x000288FC
|
||||
#define DDRSS_CTL_402_DATA 0x0000613E
|
||||
#define DDRSS_CTL_403_DATA 0x00014424
|
||||
#define DDRSS_CTL_404_DATA 0x00000E15
|
||||
#define DDRSS_CTL_405_DATA 0x000040E6
|
||||
#define DDRSS_CTL_405_DATA 0x0000206A
|
||||
#define DDRSS_CTL_406_DATA 0x00000200
|
||||
#define DDRSS_CTL_407_DATA 0x00000200
|
||||
#define DDRSS_CTL_408_DATA 0x00000200
|
||||
#define DDRSS_CTL_409_DATA 0x00000200
|
||||
#define DDRSS_CTL_410_DATA 0x0000C2B2
|
||||
#define DDRSS_CTL_411_DATA 0x000288FC
|
||||
#define DDRSS_CTL_410_DATA 0x0000613E
|
||||
#define DDRSS_CTL_411_DATA 0x00014424
|
||||
#define DDRSS_CTL_412_DATA 0x02020E15
|
||||
#define DDRSS_CTL_413_DATA 0x03030202
|
||||
#define DDRSS_CTL_414_DATA 0x00000022
|
||||
@ -640,11 +640,11 @@
|
||||
#define DDRSS_PI_167_DATA 0x02000200
|
||||
#define DDRSS_PI_168_DATA 0x48120C04
|
||||
#define DDRSS_PI_169_DATA 0x00104812
|
||||
#define DDRSS_PI_170_DATA 0x000000CE
|
||||
#define DDRSS_PI_170_DATA 0x00000063
|
||||
#define DDRSS_PI_171_DATA 0x00000256
|
||||
#define DDRSS_PI_172_DATA 0x00002073
|
||||
#define DDRSS_PI_172_DATA 0x00001035
|
||||
#define DDRSS_PI_173_DATA 0x00000256
|
||||
#define DDRSS_PI_174_DATA 0x04002073
|
||||
#define DDRSS_PI_174_DATA 0x04001035
|
||||
#define DDRSS_PI_175_DATA 0x01010404
|
||||
#define DDRSS_PI_176_DATA 0x00001501
|
||||
#define DDRSS_PI_177_DATA 0x00150015
|
||||
@ -689,22 +689,22 @@
|
||||
#define DDRSS_PI_216_DATA 0x3212005B
|
||||
#define DDRSS_PI_217_DATA 0x09000301
|
||||
#define DDRSS_PI_218_DATA 0x04010504
|
||||
#define DDRSS_PI_219_DATA 0x040006C9
|
||||
#define DDRSS_PI_219_DATA 0x04000364
|
||||
#define DDRSS_PI_220_DATA 0x0A032001
|
||||
#define DDRSS_PI_221_DATA 0x2C31110A
|
||||
#define DDRSS_PI_222_DATA 0x00002D1C
|
||||
#define DDRSS_PI_223_DATA 0x6001071C
|
||||
#define DDRSS_PI_223_DATA 0x6000838E
|
||||
#define DDRSS_PI_224_DATA 0x1E202008
|
||||
#define DDRSS_PI_225_DATA 0x2C311116
|
||||
#define DDRSS_PI_226_DATA 0x00002D1C
|
||||
#define DDRSS_PI_227_DATA 0x6001071C
|
||||
#define DDRSS_PI_227_DATA 0x6000838E
|
||||
#define DDRSS_PI_228_DATA 0x1E202008
|
||||
#define DDRSS_PI_229_DATA 0x00019C16
|
||||
#define DDRSS_PI_230_DATA 0x00001018
|
||||
#define DDRSS_PI_231_DATA 0x000040E6
|
||||
#define DDRSS_PI_232_DATA 0x000288FC
|
||||
#define DDRSS_PI_233_DATA 0x000040E6
|
||||
#define DDRSS_PI_234_DATA 0x000288FC
|
||||
#define DDRSS_PI_229_DATA 0x0000C616
|
||||
#define DDRSS_PI_230_DATA 0x000007BC
|
||||
#define DDRSS_PI_231_DATA 0x0000206A
|
||||
#define DDRSS_PI_232_DATA 0x00014424
|
||||
#define DDRSS_PI_233_DATA 0x0000206A
|
||||
#define DDRSS_PI_234_DATA 0x00014424
|
||||
#define DDRSS_PI_235_DATA 0x02660010
|
||||
#define DDRSS_PI_236_DATA 0x03030266
|
||||
#define DDRSS_PI_237_DATA 0x002AF803
|
||||
|
@ -6,7 +6,7 @@
|
||||
*/
|
||||
#include <dt-bindings/phy/phy.h>
|
||||
#include <dt-bindings/mux/mux.h>
|
||||
#include <dt-bindings/mux/ti-serdes.h>
|
||||
#include "k3-serdes.h"
|
||||
|
||||
/ {
|
||||
cmn_refclk: clock-cmnrefclk {
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -11,6 +11,7 @@
|
||||
#define PULLUDEN_SHIFT (16)
|
||||
#define PULLTYPESEL_SHIFT (17)
|
||||
#define RXACTIVE_SHIFT (18)
|
||||
#define DEBOUNCE_SHIFT (11)
|
||||
|
||||
#define PULL_DISABLE (1 << PULLUDEN_SHIFT)
|
||||
#define PULL_ENABLE (0 << PULLUDEN_SHIFT)
|
||||
@ -29,9 +30,20 @@
|
||||
#define PIN_INPUT_PULLUP (INPUT_EN | PULL_UP)
|
||||
#define PIN_INPUT_PULLDOWN (INPUT_EN | PULL_DOWN)
|
||||
|
||||
#define PIN_DEBOUNCE_DISABLE (0 << DEBOUNCE_SHIFT)
|
||||
#define PIN_DEBOUNCE_CONF1 (1 << DEBOUNCE_SHIFT)
|
||||
#define PIN_DEBOUNCE_CONF2 (2 << DEBOUNCE_SHIFT)
|
||||
#define PIN_DEBOUNCE_CONF3 (3 << DEBOUNCE_SHIFT)
|
||||
#define PIN_DEBOUNCE_CONF4 (4 << DEBOUNCE_SHIFT)
|
||||
#define PIN_DEBOUNCE_CONF5 (5 << DEBOUNCE_SHIFT)
|
||||
#define PIN_DEBOUNCE_CONF6 (6 << DEBOUNCE_SHIFT)
|
||||
|
||||
#define AM62AX_IOPAD(pa, val, muxmode) (((pa) & 0x1fff)) ((val) | (muxmode))
|
||||
#define AM62AX_MCU_IOPAD(pa, val, muxmode) (((pa) & 0x1fff)) ((val) | (muxmode))
|
||||
|
||||
#define AM62PX_IOPAD(pa, val, muxmode) (((pa) & 0x1fff)) ((val) | (muxmode))
|
||||
#define AM62PX_MCU_IOPAD(pa, val, muxmode) (((pa) & 0x1fff)) ((val) | (muxmode))
|
||||
|
||||
#define AM62X_IOPAD(pa, val, muxmode) (((pa) & 0x1fff)) ((val) | (muxmode))
|
||||
#define AM62X_MCU_IOPAD(pa, val, muxmode) (((pa) & 0x1fff)) ((val) | (muxmode))
|
||||
|
||||
|
204
arch/arm/dts/k3-serdes.h
Normal file
204
arch/arm/dts/k3-serdes.h
Normal file
@ -0,0 +1,204 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* This header provides constants for SERDES MUX for TI SoCs
|
||||
*
|
||||
* Copyright (C) 2023 Texas Instruments Incorporated - https://www.ti.com/
|
||||
*/
|
||||
|
||||
#ifndef DTS_ARM64_TI_K3_SERDES_H
|
||||
#define DTS_ARM64_TI_K3_SERDES_H
|
||||
|
||||
/* J721E */
|
||||
|
||||
#define J721E_SERDES0_LANE0_QSGMII_LANE1 0x0
|
||||
#define J721E_SERDES0_LANE0_PCIE0_LANE0 0x1
|
||||
#define J721E_SERDES0_LANE0_USB3_0_SWAP 0x2
|
||||
#define J721E_SERDES0_LANE0_IP4_UNUSED 0x3
|
||||
|
||||
#define J721E_SERDES0_LANE1_QSGMII_LANE2 0x0
|
||||
#define J721E_SERDES0_LANE1_PCIE0_LANE1 0x1
|
||||
#define J721E_SERDES0_LANE1_USB3_0 0x2
|
||||
#define J721E_SERDES0_LANE1_IP4_UNUSED 0x3
|
||||
|
||||
#define J721E_SERDES1_LANE0_QSGMII_LANE3 0x0
|
||||
#define J721E_SERDES1_LANE0_PCIE1_LANE0 0x1
|
||||
#define J721E_SERDES1_LANE0_USB3_1_SWAP 0x2
|
||||
#define J721E_SERDES1_LANE0_SGMII_LANE0 0x3
|
||||
|
||||
#define J721E_SERDES1_LANE1_QSGMII_LANE4 0x0
|
||||
#define J721E_SERDES1_LANE1_PCIE1_LANE1 0x1
|
||||
#define J721E_SERDES1_LANE1_USB3_1 0x2
|
||||
#define J721E_SERDES1_LANE1_SGMII_LANE1 0x3
|
||||
|
||||
#define J721E_SERDES2_LANE0_IP1_UNUSED 0x0
|
||||
#define J721E_SERDES2_LANE0_PCIE2_LANE0 0x1
|
||||
#define J721E_SERDES2_LANE0_USB3_1_SWAP 0x2
|
||||
#define J721E_SERDES2_LANE0_SGMII_LANE0 0x3
|
||||
|
||||
#define J721E_SERDES2_LANE1_IP1_UNUSED 0x0
|
||||
#define J721E_SERDES2_LANE1_PCIE2_LANE1 0x1
|
||||
#define J721E_SERDES2_LANE1_USB3_1 0x2
|
||||
#define J721E_SERDES2_LANE1_SGMII_LANE1 0x3
|
||||
|
||||
#define J721E_SERDES3_LANE0_IP1_UNUSED 0x0
|
||||
#define J721E_SERDES3_LANE0_PCIE3_LANE0 0x1
|
||||
#define J721E_SERDES3_LANE0_USB3_0_SWAP 0x2
|
||||
#define J721E_SERDES3_LANE0_IP4_UNUSED 0x3
|
||||
|
||||
#define J721E_SERDES3_LANE1_IP1_UNUSED 0x0
|
||||
#define J721E_SERDES3_LANE1_PCIE3_LANE1 0x1
|
||||
#define J721E_SERDES3_LANE1_USB3_0 0x2
|
||||
#define J721E_SERDES3_LANE1_IP4_UNUSED 0x3
|
||||
|
||||
#define J721E_SERDES4_LANE0_EDP_LANE0 0x0
|
||||
#define J721E_SERDES4_LANE0_IP2_UNUSED 0x1
|
||||
#define J721E_SERDES4_LANE0_QSGMII_LANE5 0x2
|
||||
#define J721E_SERDES4_LANE0_IP4_UNUSED 0x3
|
||||
|
||||
#define J721E_SERDES4_LANE1_EDP_LANE1 0x0
|
||||
#define J721E_SERDES4_LANE1_IP2_UNUSED 0x1
|
||||
#define J721E_SERDES4_LANE1_QSGMII_LANE6 0x2
|
||||
#define J721E_SERDES4_LANE1_IP4_UNUSED 0x3
|
||||
|
||||
#define J721E_SERDES4_LANE2_EDP_LANE2 0x0
|
||||
#define J721E_SERDES4_LANE2_IP2_UNUSED 0x1
|
||||
#define J721E_SERDES4_LANE2_QSGMII_LANE7 0x2
|
||||
#define J721E_SERDES4_LANE2_IP4_UNUSED 0x3
|
||||
|
||||
#define J721E_SERDES4_LANE3_EDP_LANE3 0x0
|
||||
#define J721E_SERDES4_LANE3_IP2_UNUSED 0x1
|
||||
#define J721E_SERDES4_LANE3_QSGMII_LANE8 0x2
|
||||
#define J721E_SERDES4_LANE3_IP4_UNUSED 0x3
|
||||
|
||||
/* J7200 */
|
||||
|
||||
#define J7200_SERDES0_LANE0_QSGMII_LANE3 0x0
|
||||
#define J7200_SERDES0_LANE0_PCIE1_LANE0 0x1
|
||||
#define J7200_SERDES0_LANE0_IP3_UNUSED 0x2
|
||||
#define J7200_SERDES0_LANE0_IP4_UNUSED 0x3
|
||||
|
||||
#define J7200_SERDES0_LANE1_QSGMII_LANE4 0x0
|
||||
#define J7200_SERDES0_LANE1_PCIE1_LANE1 0x1
|
||||
#define J7200_SERDES0_LANE1_IP3_UNUSED 0x2
|
||||
#define J7200_SERDES0_LANE1_IP4_UNUSED 0x3
|
||||
|
||||
#define J7200_SERDES0_LANE2_QSGMII_LANE1 0x0
|
||||
#define J7200_SERDES0_LANE2_PCIE1_LANE2 0x1
|
||||
#define J7200_SERDES0_LANE2_IP3_UNUSED 0x2
|
||||
#define J7200_SERDES0_LANE2_IP4_UNUSED 0x3
|
||||
|
||||
#define J7200_SERDES0_LANE3_QSGMII_LANE2 0x0
|
||||
#define J7200_SERDES0_LANE3_PCIE1_LANE3 0x1
|
||||
#define J7200_SERDES0_LANE3_USB 0x2
|
||||
#define J7200_SERDES0_LANE3_IP4_UNUSED 0x3
|
||||
|
||||
/* AM64 */
|
||||
|
||||
#define AM64_SERDES0_LANE0_PCIE0 0x0
|
||||
#define AM64_SERDES0_LANE0_USB 0x1
|
||||
|
||||
/* J721S2 */
|
||||
|
||||
#define J721S2_SERDES0_LANE0_EDP_LANE0 0x0
|
||||
#define J721S2_SERDES0_LANE0_PCIE1_LANE0 0x1
|
||||
#define J721S2_SERDES0_LANE0_IP3_UNUSED 0x2
|
||||
#define J721S2_SERDES0_LANE0_IP4_UNUSED 0x3
|
||||
|
||||
#define J721S2_SERDES0_LANE1_EDP_LANE1 0x0
|
||||
#define J721S2_SERDES0_LANE1_PCIE1_LANE1 0x1
|
||||
#define J721S2_SERDES0_LANE1_USB 0x2
|
||||
#define J721S2_SERDES0_LANE1_IP4_UNUSED 0x3
|
||||
|
||||
#define J721S2_SERDES0_LANE2_EDP_LANE2 0x0
|
||||
#define J721S2_SERDES0_LANE2_PCIE1_LANE2 0x1
|
||||
#define J721S2_SERDES0_LANE2_IP3_UNUSED 0x2
|
||||
#define J721S2_SERDES0_LANE2_IP4_UNUSED 0x3
|
||||
|
||||
#define J721S2_SERDES0_LANE3_EDP_LANE3 0x0
|
||||
#define J721S2_SERDES0_LANE3_PCIE1_LANE3 0x1
|
||||
#define J721S2_SERDES0_LANE3_USB 0x2
|
||||
#define J721S2_SERDES0_LANE3_IP4_UNUSED 0x3
|
||||
|
||||
/* J784S4 */
|
||||
|
||||
#define J784S4_SERDES0_LANE0_IP1_UNUSED 0x0
|
||||
#define J784S4_SERDES0_LANE0_PCIE1_LANE0 0x1
|
||||
#define J784S4_SERDES0_LANE0_IP3_UNUSED 0x2
|
||||
#define J784S4_SERDES0_LANE0_IP4_UNUSED 0x3
|
||||
|
||||
#define J784S4_SERDES0_LANE1_IP1_UNUSED 0x0
|
||||
#define J784S4_SERDES0_LANE1_PCIE1_LANE1 0x1
|
||||
#define J784S4_SERDES0_LANE1_IP3_UNUSED 0x2
|
||||
#define J784S4_SERDES0_LANE1_IP4_UNUSED 0x3
|
||||
|
||||
#define J784S4_SERDES0_LANE2_PCIE3_LANE0 0x0
|
||||
#define J784S4_SERDES0_LANE2_PCIE1_LANE2 0x1
|
||||
#define J784S4_SERDES0_LANE2_IP3_UNUSED 0x2
|
||||
#define J784S4_SERDES0_LANE2_IP4_UNUSED 0x3
|
||||
|
||||
#define J784S4_SERDES0_LANE3_PCIE3_LANE1 0x0
|
||||
#define J784S4_SERDES0_LANE3_PCIE1_LANE3 0x1
|
||||
#define J784S4_SERDES0_LANE3_USB 0x2
|
||||
#define J784S4_SERDES0_LANE3_IP4_UNUSED 0x3
|
||||
|
||||
#define J784S4_SERDES1_LANE0_QSGMII_LANE3 0x0
|
||||
#define J784S4_SERDES1_LANE0_PCIE0_LANE0 0x1
|
||||
#define J784S4_SERDES1_LANE0_IP3_UNUSED 0x2
|
||||
#define J784S4_SERDES1_LANE0_IP4_UNUSED 0x3
|
||||
|
||||
#define J784S4_SERDES1_LANE1_QSGMII_LANE4 0x0
|
||||
#define J784S4_SERDES1_LANE1_PCIE0_LANE1 0x1
|
||||
#define J784S4_SERDES1_LANE1_IP3_UNUSED 0x2
|
||||
#define J784S4_SERDES1_LANE1_IP4_UNUSED 0x3
|
||||
|
||||
#define J784S4_SERDES1_LANE2_QSGMII_LANE1 0x0
|
||||
#define J784S4_SERDES1_LANE2_PCIE0_LANE2 0x1
|
||||
#define J784S4_SERDES1_LANE2_PCIE2_LANE0 0x2
|
||||
#define J784S4_SERDES1_LANE2_IP4_UNUSED 0x3
|
||||
|
||||
#define J784S4_SERDES1_LANE3_QSGMII_LANE2 0x0
|
||||
#define J784S4_SERDES1_LANE3_PCIE0_LANE3 0x1
|
||||
#define J784S4_SERDES1_LANE3_PCIE2_LANE1 0x2
|
||||
#define J784S4_SERDES1_LANE3_IP4_UNUSED 0x3
|
||||
|
||||
#define J784S4_SERDES2_LANE0_QSGMII_LANE5 0x0
|
||||
#define J784S4_SERDES2_LANE0_IP2_UNUSED 0x1
|
||||
#define J784S4_SERDES2_LANE0_IP3_UNUSED 0x2
|
||||
#define J784S4_SERDES2_LANE0_IP4_UNUSED 0x3
|
||||
|
||||
#define J784S4_SERDES2_LANE1_QSGMII_LANE6 0x0
|
||||
#define J784S4_SERDES2_LANE1_IP2_UNUSED 0x1
|
||||
#define J784S4_SERDES2_LANE1_IP3_UNUSED 0x2
|
||||
#define J784S4_SERDES2_LANE1_IP4_UNUSED 0x3
|
||||
|
||||
#define J784S4_SERDES2_LANE2_QSGMII_LANE7 0x0
|
||||
#define J784S4_SERDES2_LANE2_QSGMII_LANE1 0x1
|
||||
#define J784S4_SERDES2_LANE2_IP3_UNUSED 0x2
|
||||
#define J784S4_SERDES2_LANE2_IP4_UNUSED 0x3
|
||||
|
||||
#define J784S4_SERDES2_LANE3_QSGMII_LANE8 0x0
|
||||
#define J784S4_SERDES2_LANE3_QSGMII_LANE2 0x1
|
||||
#define J784S4_SERDES2_LANE3_IP3_UNUSED 0x2
|
||||
#define J784S4_SERDES2_LANE3_IP4_UNUSED 0x3
|
||||
|
||||
#define J784S4_SERDES4_LANE0_EDP_LANE0 0x0
|
||||
#define J784S4_SERDES4_LANE0_QSGMII_LANE5 0x1
|
||||
#define J784S4_SERDES4_LANE0_IP3_UNUSED 0x2
|
||||
#define J784S4_SERDES4_LANE0_IP4_UNUSED 0x3
|
||||
|
||||
#define J784S4_SERDES4_LANE1_EDP_LANE1 0x0
|
||||
#define J784S4_SERDES4_LANE1_QSGMII_LANE6 0x1
|
||||
#define J784S4_SERDES4_LANE1_IP3_UNUSED 0x2
|
||||
#define J784S4_SERDES4_LANE1_IP4_UNUSED 0x3
|
||||
|
||||
#define J784S4_SERDES4_LANE2_EDP_LANE2 0x0
|
||||
#define J784S4_SERDES4_LANE2_QSGMII_LANE7 0x1
|
||||
#define J784S4_SERDES4_LANE2_IP3_UNUSED 0x2
|
||||
#define J784S4_SERDES4_LANE2_IP4_UNUSED 0x3
|
||||
|
||||
#define J784S4_SERDES4_LANE3_EDP_LANE3 0x0
|
||||
#define J784S4_SERDES4_LANE3_QSGMII_LANE8 0x1
|
||||
#define J784S4_SERDES4_LANE3_USB 0x2
|
||||
#define J784S4_SERDES4_LANE3_IP4_UNUSED 0x3
|
||||
|
||||
#endif /* DTS_ARM64_TI_K3_SERDES_H */
|
@ -9,6 +9,7 @@
|
||||
#include <dt-bindings/clock/mt7988-clk.h>
|
||||
#include <dt-bindings/reset/mt7988-reset.h>
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/phy/phy.h>
|
||||
|
||||
/ {
|
||||
compatible = "mediatek,mt7988-rfb";
|
||||
@ -161,6 +162,65 @@
|
||||
#clock-cells = <1>;
|
||||
};
|
||||
|
||||
dummy_clk: dummy12m {
|
||||
compatible = "fixed-clock";
|
||||
clock-frequency = <12000000>;
|
||||
#clock-cells = <0>;
|
||||
/* must need this line, or uart uanable to get dummy_clk */
|
||||
bootph-all;
|
||||
};
|
||||
|
||||
xhci1: xhci@11200000 {
|
||||
compatible = "mediatek,mt7988-xhci",
|
||||
"mediatek,mtk-xhci";
|
||||
reg = <0 0x11200000 0 0x2e00>,
|
||||
<0 0x11203e00 0 0x0100>;
|
||||
reg-names = "mac", "ippc";
|
||||
interrupts = <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>;
|
||||
phys = <&tphyu2port0 PHY_TYPE_USB2>,
|
||||
<&tphyu3port0 PHY_TYPE_USB3>;
|
||||
clocks = <&dummy_clk>,
|
||||
<&dummy_clk>,
|
||||
<&dummy_clk>,
|
||||
<&dummy_clk>,
|
||||
<&dummy_clk>;
|
||||
clock-names = "sys_ck",
|
||||
"xhci_ck",
|
||||
"ref_ck",
|
||||
"mcu_ck",
|
||||
"dma_ck";
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
usbtphy: usb-phy@11c50000 {
|
||||
compatible = "mediatek,mt7988",
|
||||
"mediatek,generic-tphy-v2";
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
status = "okay";
|
||||
|
||||
tphyu2port0: usb-phy@11c50000 {
|
||||
reg = <0 0x11c50000 0 0x700>;
|
||||
clocks = <&dummy_clk>;
|
||||
clock-names = "ref";
|
||||
#phy-cells = <1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
tphyu3port0: usb-phy@11c50700 {
|
||||
reg = <0 0x11c50700 0 0x900>;
|
||||
clocks = <&dummy_clk>;
|
||||
clock-names = "ref";
|
||||
#phy-cells = <1>;
|
||||
mediatek,usb3-pll-ssc-delta;
|
||||
mediatek,usb3-pll-ssc-delta1;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
xfi_pextp0: syscon@11f20000 {
|
||||
compatible = "mediatek,mt7988-xfi_pextp_0", "syscon";
|
||||
reg = <0 0x11f20000 0 0x10000>;
|
||||
|
@ -354,4 +354,4 @@
|
||||
&r1en_pins
|
||||
&r1oen_pins
|
||||
>;
|
||||
};
|
||||
};
|
||||
|
@ -27,6 +27,18 @@
|
||||
spi0 = &qspi;
|
||||
};
|
||||
|
||||
cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
ARM9260_0: cpu@0 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,arm926ej-s";
|
||||
clocks = <&pmc PMC_TYPE_CORE 19>, <&pmc PMC_TYPE_CORE 11>, <&main_xtal>;
|
||||
clock-names = "cpu", "master", "xtal";
|
||||
};
|
||||
};
|
||||
|
||||
clocks {
|
||||
slow_rc_osc: slow_rc_osc {
|
||||
compatible = "fixed-clock";
|
||||
@ -51,18 +63,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
ARM9260_0: cpu@0 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,arm926ej-s";
|
||||
clocks = <&pmc PMC_TYPE_CORE 19>, <&pmc PMC_TYPE_CORE 11>, <&main_xtal>;
|
||||
clock-names = "cpu", "master", "xtal";
|
||||
};
|
||||
};
|
||||
|
||||
ahb {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
@ -149,13 +149,20 @@
|
||||
compatible = "microchip,sam9x60-qspi";
|
||||
reg = <0xf0014000 0x100>, <0x70000000 0x10000000>;
|
||||
reg-names = "qspi_base", "qspi_mmap";
|
||||
clocks = <&pmc PMC_TYPE_PERIPHERAL 35>, <&pmc PMC_TYPE_SYSTEM 18>; /* ID_QSPI */
|
||||
clocks = <&pmc PMC_TYPE_PERIPHERAL 35>, <&pmc PMC_TYPE_SYSTEM 18>; /* ID_QSPI */
|
||||
clock-names = "pclk", "qspick";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pit64b0: timer@f0028000 {
|
||||
compatible = "microchip,sam9x60-pit64b";
|
||||
reg = <0xf0028000 0xec>;
|
||||
clocks = <&pmc PMC_TYPE_PERIPHERAL 37>, <&pmc PMC_TYPE_GCK 37>;
|
||||
clock-names = "pclk", "gclk";
|
||||
};
|
||||
|
||||
flx0: flexcom@f801c600 {
|
||||
compatible = "atmel,sama5d2-flexcom";
|
||||
reg = <0xf801c000 0x200>;
|
||||
@ -181,6 +188,17 @@
|
||||
reg = <0xf8050000 0x100>;
|
||||
};
|
||||
|
||||
pmecc: ecc-engine@ffffe000 {
|
||||
compatible = "microchip,sam9x60-pmecc", "atmel,at91sam9g45-pmecc";
|
||||
reg = <0xffffe000 0x300>,
|
||||
<0xffffe600 0x100>;
|
||||
};
|
||||
|
||||
smc: smc@ffffea00 {
|
||||
compatible = "microchip,sam9x60-smc", "atmel,at91sam9260-smc", "syscon";
|
||||
reg = <0xffffea00 0x100>;
|
||||
};
|
||||
|
||||
dbgu: serial@fffff200 {
|
||||
compatible = "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
|
||||
reg = <0xfffff200 0x200>;
|
||||
@ -190,7 +208,7 @@
|
||||
clock-names = "usart";
|
||||
};
|
||||
|
||||
pinctrl {
|
||||
pinctrl: pinctrl@fffff400 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "microchip,sam9x60-pinctrl", "simple-bus";
|
||||
@ -205,7 +223,7 @@
|
||||
pinctrl_dbgu: dbgu-0 {
|
||||
atmel,pins =
|
||||
<AT91_PIOA 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
|
||||
AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_NONE>;
|
||||
AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_NONE>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -256,17 +274,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
pmecc: ecc-engine@ffffe000 {
|
||||
compatible = "microchip,sam9x60-pmecc", "atmel,at91sam9g45-pmecc";
|
||||
reg = <0xffffe000 0x300>,
|
||||
<0xffffe600 0x100>;
|
||||
};
|
||||
|
||||
smc: smc@ffffea00 {
|
||||
compatible = "microchip,sam9x60-smc", "atmel,at91sam9260-smc", "syscon";
|
||||
reg = <0xffffea00 0x100>;
|
||||
};
|
||||
|
||||
pioA: gpio@fffff400 {
|
||||
compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
|
||||
reg = <0xfffff400 0x200>;
|
||||
@ -320,13 +327,6 @@
|
||||
clocks = <&pmc PMC_TYPE_CORE 11>; /* ID_MCK. */
|
||||
};
|
||||
|
||||
pit64b0: timer@f0028000 {
|
||||
compatible = "microchip,sam9x60-pit64b";
|
||||
reg = <0xf0028000 0xec>;
|
||||
clocks = <&pmc PMC_TYPE_PERIPHERAL 37>, <&pmc PMC_TYPE_GCK 37>;
|
||||
clock-names = "pclk", "gclk";
|
||||
};
|
||||
|
||||
clk32: sckc@fffffe50 {
|
||||
compatible = "microchip,sam9x60-sckc";
|
||||
reg = <0xfffffe50 0x4>;
|
||||
|
@ -62,7 +62,7 @@
|
||||
status = "okay";
|
||||
|
||||
i2c@600 {
|
||||
compatible = "atmel,sama5d2-i2c";
|
||||
compatible = "microchip,sam9x60-i2c";
|
||||
reg = <0x600 0x200>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_flx0>;
|
||||
|
@ -57,6 +57,7 @@
|
||||
spi-tx-bus-width = <8>;
|
||||
spi-rx-bus-width = <8>;
|
||||
spi-max-frequency = <20000000>;
|
||||
no-wp;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -72,6 +72,7 @@
|
||||
spi-tx-bus-width = <8>;
|
||||
spi-rx-bus-width = <8>;
|
||||
spi-max-frequency = <20000000>;
|
||||
no-wp;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -8,4 +8,10 @@
|
||||
/dts-v1/;
|
||||
|
||||
/ {
|
||||
options {
|
||||
u-boot {
|
||||
compatible = "u-boot,config";
|
||||
bootscr-address = /bits/ 64 <0x20000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -8,4 +8,10 @@
|
||||
/dts-v1/;
|
||||
|
||||
/ {
|
||||
options {
|
||||
u-boot {
|
||||
compatible = "u-boot,config";
|
||||
bootscr-address = /bits/ 64 <0x20000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -11,6 +11,13 @@
|
||||
#size-cells = <1>;
|
||||
compatible = "xlnx,zynq-7000";
|
||||
|
||||
options {
|
||||
u-boot {
|
||||
compatible = "u-boot,config";
|
||||
bootscr-address = /bits/ 64 <0x3000000>;
|
||||
};
|
||||
};
|
||||
|
||||
cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
@ -61,14 +61,14 @@
|
||||
non-removable;
|
||||
disable-wp;
|
||||
bus-width = <8>;
|
||||
xlnx,mio_bank = <0>;
|
||||
xlnx,mio-bank = <0>;
|
||||
};
|
||||
|
||||
&sdhci1 { /* sd1 MIO45-51 cd in place */
|
||||
status = "okay";
|
||||
no-1-8-v;
|
||||
disable-wp;
|
||||
xlnx,mio_bank = <1>;
|
||||
xlnx,mio-bank = <1>;
|
||||
};
|
||||
|
||||
&psgtr {
|
||||
|
@ -2,7 +2,8 @@
|
||||
/*
|
||||
* dts file for Xilinx Versal a2197 RevA System Controller
|
||||
*
|
||||
* (C) Copyright 2019 - 2021, Xilinx, Inc.
|
||||
* (C) Copyright 2019 - 2022, Xilinx, Inc.
|
||||
* (C) Copyright 2022 - 2023, Advanced Micro Devices, Inc.
|
||||
*
|
||||
* Michal Simek <michal.simek@amd.com>
|
||||
*/
|
||||
@ -460,10 +461,10 @@
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <6>;
|
||||
si570_user1: clock-generator@5d { /* u205 */
|
||||
si570_user1: clock-generator@5f { /* u205 */
|
||||
#clock-cells = <0>;
|
||||
compatible = "silabs,si570";
|
||||
reg = <0x5d>;
|
||||
reg = <0x5f>;
|
||||
temperature-stability = <50>;
|
||||
factory-fout = <100000000>;
|
||||
clock-frequency = <100000000>;
|
||||
|
@ -250,6 +250,7 @@
|
||||
conf-tx {
|
||||
pins = "MIO36";
|
||||
bias-disable;
|
||||
output-enable;
|
||||
};
|
||||
|
||||
mux {
|
||||
@ -301,6 +302,7 @@
|
||||
conf-bootstrap {
|
||||
pins = "MIO45", "MIO47", "MIO49";
|
||||
bias-disable;
|
||||
output-enable;
|
||||
low-power-disable;
|
||||
};
|
||||
|
||||
@ -308,6 +310,7 @@
|
||||
pins = "MIO38", "MIO39", "MIO40",
|
||||
"MIO41", "MIO42", "MIO43";
|
||||
bias-disable;
|
||||
output-enable;
|
||||
low-power-enable;
|
||||
};
|
||||
|
||||
@ -316,6 +319,7 @@
|
||||
slew-rate = <SLEW_RATE_SLOW>;
|
||||
power-source = <IO_STANDARD_LVCMOS18>;
|
||||
bias-disable;
|
||||
output-enable;
|
||||
};
|
||||
|
||||
mux-mdio {
|
||||
@ -346,6 +350,7 @@
|
||||
pins = "MIO54", "MIO56", "MIO57", "MIO58", "MIO59",
|
||||
"MIO60", "MIO61", "MIO62", "MIO63";
|
||||
bias-disable;
|
||||
output-enable;
|
||||
drive-strength = <4>;
|
||||
slew-rate = <SLEW_RATE_SLOW>;
|
||||
};
|
||||
@ -373,6 +378,7 @@
|
||||
pins = "MIO66", "MIO68", "MIO69", "MIO70", "MIO71",
|
||||
"MIO72", "MIO73", "MIO74", "MIO75";
|
||||
bias-disable;
|
||||
output-enable;
|
||||
drive-strength = <4>;
|
||||
slew-rate = <SLEW_RATE_SLOW>;
|
||||
};
|
||||
|
@ -250,6 +250,7 @@
|
||||
conf-tx {
|
||||
pins = "MIO36";
|
||||
bias-disable;
|
||||
output-enable;
|
||||
};
|
||||
|
||||
mux {
|
||||
@ -301,6 +302,7 @@
|
||||
conf-bootstrap {
|
||||
pins = "MIO45", "MIO47", "MIO49";
|
||||
bias-disable;
|
||||
output-enable;
|
||||
low-power-disable;
|
||||
};
|
||||
|
||||
@ -308,6 +310,7 @@
|
||||
pins = "MIO38", "MIO39", "MIO40",
|
||||
"MIO41", "MIO42", "MIO43";
|
||||
bias-disable;
|
||||
output-enable;
|
||||
low-power-enable;
|
||||
};
|
||||
|
||||
@ -316,6 +319,7 @@
|
||||
slew-rate = <SLEW_RATE_SLOW>;
|
||||
power-source = <IO_STANDARD_LVCMOS18>;
|
||||
bias-disable;
|
||||
output-enable;
|
||||
};
|
||||
|
||||
mux-mdio {
|
||||
@ -346,6 +350,7 @@
|
||||
pins = "MIO54", "MIO56", "MIO57", "MIO58", "MIO59",
|
||||
"MIO60", "MIO61", "MIO62", "MIO63";
|
||||
bias-disable;
|
||||
output-enable;
|
||||
drive-strength = <4>;
|
||||
slew-rate = <SLEW_RATE_SLOW>;
|
||||
};
|
||||
@ -373,6 +378,7 @@
|
||||
pins = "MIO66", "MIO68", "MIO69", "MIO70", "MIO71",
|
||||
"MIO72", "MIO73", "MIO74", "MIO75";
|
||||
bias-disable;
|
||||
output-enable;
|
||||
drive-strength = <4>;
|
||||
slew-rate = <SLEW_RATE_SLOW>;
|
||||
};
|
||||
|
@ -205,6 +205,7 @@
|
||||
conf-tx {
|
||||
pins = "MIO36";
|
||||
bias-disable;
|
||||
output-enable;
|
||||
};
|
||||
|
||||
mux {
|
||||
@ -256,6 +257,7 @@
|
||||
conf-bootstrap {
|
||||
pins = "MIO71", "MIO73", "MIO75";
|
||||
bias-disable;
|
||||
output-enable;
|
||||
low-power-disable;
|
||||
};
|
||||
|
||||
@ -263,6 +265,7 @@
|
||||
pins = "MIO64", "MIO65", "MIO66",
|
||||
"MIO67", "MIO68", "MIO69";
|
||||
bias-disable;
|
||||
output-enable;
|
||||
low-power-enable;
|
||||
};
|
||||
|
||||
@ -271,6 +274,7 @@
|
||||
slew-rate = <SLEW_RATE_SLOW>;
|
||||
power-source = <IO_STANDARD_LVCMOS18>;
|
||||
bias-disable;
|
||||
output-enable;
|
||||
};
|
||||
|
||||
mux-mdio {
|
||||
@ -301,6 +305,7 @@
|
||||
pins = "MIO54", "MIO56", "MIO57", "MIO58", "MIO59",
|
||||
"MIO60", "MIO61", "MIO62", "MIO63";
|
||||
bias-disable;
|
||||
output-enable;
|
||||
drive-strength = <4>;
|
||||
slew-rate = <SLEW_RATE_SLOW>;
|
||||
};
|
||||
|
@ -193,6 +193,7 @@
|
||||
conf-tx {
|
||||
pins = "MIO36";
|
||||
bias-disable;
|
||||
output-enable;
|
||||
};
|
||||
|
||||
mux {
|
||||
@ -244,6 +245,7 @@
|
||||
conf-bootstrap {
|
||||
pins = "MIO71", "MIO73", "MIO75";
|
||||
bias-disable;
|
||||
output-enable;
|
||||
low-power-disable;
|
||||
};
|
||||
|
||||
@ -251,6 +253,7 @@
|
||||
pins = "MIO64", "MIO65", "MIO66",
|
||||
"MIO67", "MIO68", "MIO69";
|
||||
bias-disable;
|
||||
output-enable;
|
||||
low-power-enable;
|
||||
};
|
||||
|
||||
@ -259,6 +262,7 @@
|
||||
slew-rate = <SLEW_RATE_SLOW>;
|
||||
power-source = <IO_STANDARD_LVCMOS18>;
|
||||
bias-disable;
|
||||
output-enable;
|
||||
};
|
||||
|
||||
mux-mdio {
|
||||
@ -289,6 +293,7 @@
|
||||
pins = "MIO54", "MIO56", "MIO57", "MIO58", "MIO59",
|
||||
"MIO60", "MIO61", "MIO62", "MIO63";
|
||||
bias-disable;
|
||||
output-enable;
|
||||
drive-strength = <4>;
|
||||
slew-rate = <SLEW_RATE_SLOW>;
|
||||
};
|
||||
|
@ -1,8 +1,9 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* dts file for Xilinx ZynqMP SM-K26 rev1/B/A
|
||||
* dts file for Xilinx ZynqMP SM-K26 rev2/1/B/A
|
||||
*
|
||||
* (C) Copyright 2020 - 2021, Xilinx, Inc.
|
||||
* (C) Copyright 2023, Advanced Micro Devices, Inc.
|
||||
*
|
||||
* Michal Simek <michal.simek@amd.com>
|
||||
*/
|
||||
@ -17,8 +18,9 @@
|
||||
#include <dt-bindings/pinctrl/pinctrl-zynqmp.h>
|
||||
|
||||
/ {
|
||||
model = "ZynqMP SM-K26 Rev1/B/A";
|
||||
compatible = "xlnx,zynqmp-sm-k26-rev1", "xlnx,zynqmp-sm-k26-revB",
|
||||
model = "ZynqMP SM-K26 Rev2/1/B/A";
|
||||
compatible = "xlnx,zynqmp-sm-k26-rev2",
|
||||
"xlnx,zynqmp-sm-k26-rev1", "xlnx,zynqmp-sm-k26-revB",
|
||||
"xlnx,zynqmp-sm-k26-revA", "xlnx,zynqmp-sm-k26",
|
||||
"xlnx,zynqmp";
|
||||
|
||||
|
@ -1,8 +1,9 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* dts file for Xilinx ZynqMP SMK-K26 rev1/B/A
|
||||
* dts file for Xilinx ZynqMP SMK-K26 rev2/1/B/A
|
||||
*
|
||||
* (C) Copyright 2020 - 2021, Xilinx, Inc.
|
||||
* (C) Copyright 2023, Advanced Micro Devices, Inc.
|
||||
*
|
||||
* Michal Simek <michal.simek@amd.com>
|
||||
*/
|
||||
@ -10,8 +11,9 @@
|
||||
#include "zynqmp-sm-k26-revA.dts"
|
||||
|
||||
/ {
|
||||
model = "ZynqMP SMK-K26 Rev1/B/A";
|
||||
compatible = "xlnx,zynqmp-smk-k26-rev1", "xlnx,zynqmp-smk-k26-revB",
|
||||
model = "ZynqMP SMK-K26 Rev2/1/B/A";
|
||||
compatible = "xlnx,zynqmp-smk-k26-rev2",
|
||||
"xlnx,zynqmp-smk-k26-rev1", "xlnx,zynqmp-smk-k26-revB",
|
||||
"xlnx,zynqmp-smk-k26-revA", "xlnx,zynqmp-smk-k26",
|
||||
"xlnx,zynqmp";
|
||||
};
|
||||
|
@ -602,7 +602,7 @@
|
||||
reg = <0x5d>;
|
||||
temperature-stability = <50>; /* copy from zc702 */
|
||||
factory-fout = <156250000>;
|
||||
clock-frequency = <148500000>;
|
||||
clock-frequency = <156250000>;
|
||||
clock-output-names = "si570_mgt";
|
||||
};
|
||||
};
|
||||
|
@ -592,7 +592,7 @@
|
||||
reg = <0x5d>;
|
||||
temperature-stability = <50>; /* copy from zc702 */
|
||||
factory-fout = <156250000>;
|
||||
clock-frequency = <148500000>;
|
||||
clock-frequency = <156250000>;
|
||||
clock-output-names = "si570_mgt";
|
||||
};
|
||||
};
|
||||
|
@ -489,7 +489,7 @@
|
||||
reg = <0x5d>;
|
||||
temperature-stability = <50>;
|
||||
factory-fout = <156250000>;
|
||||
clock-frequency = <148500000>;
|
||||
clock-frequency = <156250000>;
|
||||
clock-output-names = "si570_mgt";
|
||||
};
|
||||
};
|
||||
|
@ -499,7 +499,7 @@
|
||||
reg = <0x5d>;
|
||||
temperature-stability = <50>;
|
||||
factory-fout = <156250000>;
|
||||
clock-frequency = <148500000>;
|
||||
clock-frequency = <156250000>;
|
||||
clock-output-names = "si570_mgt";
|
||||
};
|
||||
};
|
||||
|
@ -22,6 +22,13 @@
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
options {
|
||||
u-boot {
|
||||
compatible = "u-boot,config";
|
||||
bootscr-address = /bits/ 64 <0x20000000>;
|
||||
};
|
||||
};
|
||||
|
||||
cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
@ -255,6 +262,7 @@
|
||||
interrupt-parent = <&gic>;
|
||||
tx-fifo-depth = <0x40>;
|
||||
rx-fifo-depth = <0x40>;
|
||||
resets = <&zynqmp_reset ZYNQMP_RESET_CAN0>;
|
||||
power-domains = <&zynqmp_firmware PD_CAN_0>;
|
||||
};
|
||||
|
||||
@ -267,6 +275,7 @@
|
||||
interrupt-parent = <&gic>;
|
||||
tx-fifo-depth = <0x40>;
|
||||
rx-fifo-depth = <0x40>;
|
||||
resets = <&zynqmp_reset ZYNQMP_RESET_CAN1>;
|
||||
power-domains = <&zynqmp_firmware PD_CAN_1>;
|
||||
};
|
||||
|
||||
@ -669,7 +678,7 @@
|
||||
msi-parent = <&pcie>;
|
||||
reg = <0x0 0xfd0e0000 0x0 0x1000>,
|
||||
<0x0 0xfd480000 0x0 0x1000>,
|
||||
<0x80 0x00000000 0x0 0x1000000>;
|
||||
<0x80 0x00000000 0x0 0x10000000>;
|
||||
reg-names = "breg", "pcireg", "cfg";
|
||||
ranges = <0x02000000 0x00000000 0xe0000000 0x00000000 0xe0000000 0x00000000 0x10000000>,/* non-prefetchable memory */
|
||||
<0x43000000 0x00000006 0x00000000 0x00000006 0x00000000 0x00000002 0x00000000>;/* prefetchable memory */
|
||||
|
@ -15,9 +15,34 @@
|
||||
#ifndef __ASM_ARM_BITOPS_H
|
||||
#define __ASM_ARM_BITOPS_H
|
||||
|
||||
#if __LINUX_ARM_ARCH__ < 5
|
||||
|
||||
#include <asm-generic/bitops/__ffs.h>
|
||||
#include <asm-generic/bitops/__fls.h>
|
||||
#include <asm-generic/bitops/fls.h>
|
||||
|
||||
#else
|
||||
|
||||
#define PLATFORM_FFS
|
||||
#define PLATFORM_FLS
|
||||
|
||||
#if !IS_ENABLED(CONFIG_HAS_THUMB2) && CONFIG_IS_ENABLED(SYS_THUMB_BUILD)
|
||||
|
||||
unsigned long __fls(unsigned long word);
|
||||
unsigned long __ffs(unsigned long word);
|
||||
int fls(unsigned int x);
|
||||
int ffs(int x);
|
||||
|
||||
#else
|
||||
|
||||
#include <asm-generic/bitops/builtin-__fls.h>
|
||||
#include <asm-generic/bitops/builtin-__ffs.h>
|
||||
#include <asm-generic/bitops/builtin-fls.h>
|
||||
#include <asm-generic/bitops/builtin-ffs.h>
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include <asm-generic/bitops/fls64.h>
|
||||
|
||||
#ifdef __KERNEL__
|
||||
@ -113,7 +138,7 @@ static inline int test_bit(int nr, const void * addr)
|
||||
|
||||
static inline int __ilog2(unsigned int x)
|
||||
{
|
||||
return generic_fls(x) - 1;
|
||||
return fls(x) - 1;
|
||||
}
|
||||
|
||||
#define ffz(x) __ffs(~(x))
|
||||
|
@ -102,6 +102,9 @@ struct arch_global_data {
|
||||
#ifdef CONFIG_ARCH_IMX8ULP
|
||||
bool m33_handshake_done;
|
||||
#endif
|
||||
#ifdef CONFIG_SMBIOS
|
||||
ulong smbios_start; /* Start address of SMBIOS table */
|
||||
#endif
|
||||
};
|
||||
|
||||
#include <asm-generic/global_data.h>
|
||||
|
@ -34,9 +34,6 @@ enum {
|
||||
};
|
||||
#endif
|
||||
|
||||
/* Linker symbols. */
|
||||
extern char __bss_start[], __bss_end[];
|
||||
|
||||
#ifndef CONFIG_DM
|
||||
extern gd_t gdata;
|
||||
#endif
|
||||
|
@ -113,6 +113,11 @@ AFLAGS_REMOVE_memset.o := -mthumb -mthumb-interwork
|
||||
AFLAGS_REMOVE_memcpy.o := -mthumb -mthumb-interwork
|
||||
AFLAGS_memset.o := -DMEMSET_NO_THUMB_BUILD
|
||||
AFLAGS_memcpy.o := -DMEMCPY_NO_THUMB_BUILD
|
||||
|
||||
# This is only necessary to force ARM mode on THUMB1 targets.
|
||||
ifneq ($(CONFIG_SYS_ARM_ARCH),4)
|
||||
obj-y += bitops.o
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
|
45
arch/arm/lib/bitops.S
Normal file
45
arch/arm/lib/bitops.S
Normal file
@ -0,0 +1,45 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* Copyright (C) 2023 Sean Anderson <sean.anderson@seco.com>
|
||||
*
|
||||
* ARM bitops to call when using THUMB1, which doesn't have these instructions.
|
||||
*/
|
||||
#include <linux/linkage.h>
|
||||
#include <asm/assembler.h>
|
||||
|
||||
.pushsection .text.__fls
|
||||
ENTRY(__fls)
|
||||
clz r0, r0
|
||||
rsb r0, r0, #31
|
||||
ret lr
|
||||
ENDPROC(__fls)
|
||||
.popsection
|
||||
|
||||
.pushsection .text.__ffs
|
||||
ENTRY(__ffs)
|
||||
rsb r3, r0, #0
|
||||
and r0, r0, r3
|
||||
clz r0, r0
|
||||
rsb r0, r0, #31
|
||||
ret lr
|
||||
ENDPROC(__ffs)
|
||||
.popsection
|
||||
|
||||
.pushsection .text.fls
|
||||
ENTRY(fls)
|
||||
cmp r0, #0
|
||||
clzne r0, r0
|
||||
rsbne r0, r0, #32
|
||||
ret lr
|
||||
ENDPROC(fls)
|
||||
.popsection
|
||||
|
||||
.pushsection .text.ffs
|
||||
ENTRY(ffs)
|
||||
rsb r3, r0, #0
|
||||
and r0, r0, r3
|
||||
clz r0, r0
|
||||
rsb r0, r0, #32
|
||||
ret lr
|
||||
ENDPROC(ffs)
|
||||
.popsection
|
@ -9,6 +9,7 @@
|
||||
#include <asm/gic-v3.h>
|
||||
#include <asm/io.h>
|
||||
#include <linux/bitops.h>
|
||||
#include <linux/printk.h>
|
||||
#include <linux/sizes.h>
|
||||
|
||||
static u32 lpi_id_bits;
|
||||
|
@ -215,6 +215,17 @@ config TARGET_SAMA5D2_ICP
|
||||
a 64Mbit QSPI flash, 3xMikrobus connectors, 4xUSB ,
|
||||
EtherCat and WILC3000 devices on board.
|
||||
|
||||
config TARGET_SAMA5D29_CURIOSITY
|
||||
bool "SAMA5D29 CURIOSITY board"
|
||||
select SAMA5D2
|
||||
select BOARD_EARLY_INIT_F
|
||||
select BOARD_LATE_INIT
|
||||
select CPU_V7A
|
||||
help
|
||||
The SAMA5D29 Curiosity embeds SAMA5D29 SoC with 4 Gbit LPDDR2-SDRAM,
|
||||
a 64Mbit QSPI flash with Mac-address, MCP16502 PMIC, RGB LCD connector,
|
||||
2 x Mikrobus connectors, 2 x SD-Card connectors, 2 x USB
|
||||
|
||||
config TARGET_SAMA5D3_XPLAINED
|
||||
bool "SAMA5D3 Xplained board"
|
||||
select BOARD_EARLY_INIT_F
|
||||
@ -346,6 +357,7 @@ source "board/atmel/sama5d2_xplained/Kconfig"
|
||||
source "board/atmel/sama5d27_som1_ek/Kconfig"
|
||||
source "board/atmel/sama5d27_wlsom1_ek/Kconfig"
|
||||
source "board/atmel/sama5d2_icp/Kconfig"
|
||||
source "board/atmel/sama5d29_curiosity/Kconfig"
|
||||
source "board/atmel/sama5d3_xplained/Kconfig"
|
||||
source "board/atmel/sama5d3xek/Kconfig"
|
||||
source "board/atmel/sama5d4_xplained/Kconfig"
|
||||
|
@ -146,6 +146,14 @@ int mach_cpu_init(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if defined(CONFIG_DISPLAY_CPUINFO)
|
||||
int print_cpuinfo(void)
|
||||
{
|
||||
printf("CPU: BCM283x\n");
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ARMV7_LPAE
|
||||
#ifdef CONFIG_TARGET_RPI_4_32B
|
||||
#define BCM2711_RPI4_PCIE_XHCI_MMIO_VIRT 0xffc00000UL
|
||||
|
@ -182,7 +182,7 @@ config IMX8_ROMAPI
|
||||
config SPL_IMX_ROMAPI_LOADADDR
|
||||
hex "Default load address to load image through ROM API"
|
||||
depends on IMX8_ROMAPI || SPL_BOOTROM_SUPPORT
|
||||
default 0
|
||||
default 0x0
|
||||
|
||||
config IMX_DCD_ADDR
|
||||
hex "DCD Blocks location on the image"
|
||||
|
@ -34,11 +34,11 @@ config SYS_SOC
|
||||
|
||||
config BOOTAUX_RESERVED_MEM_BASE
|
||||
hex "i.MX auxiliary core dram memory base"
|
||||
default 0
|
||||
default 0x0
|
||||
|
||||
config BOOTAUX_RESERVED_MEM_SIZE
|
||||
hex "i.MX auxiliary core dram memory size"
|
||||
default 0
|
||||
default 0x0
|
||||
|
||||
choice
|
||||
prompt "i.MX8 board select"
|
||||
|
@ -69,7 +69,7 @@ int arch_cpu_init(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int imx8_init_mu(void *ctx, struct event *event)
|
||||
static int imx8_init_mu(void)
|
||||
{
|
||||
struct udevice *devp;
|
||||
int node, ret;
|
||||
@ -91,7 +91,7 @@ static int imx8_init_mu(void *ctx, struct event *event)
|
||||
|
||||
return 0;
|
||||
}
|
||||
EVENT_SPY(EVT_DM_POST_INIT_F, imx8_init_mu);
|
||||
EVENT_SPY_SIMPLE(EVT_DM_POST_INIT_F, imx8_init_mu);
|
||||
|
||||
#if defined(CONFIG_ARCH_MISC_INIT)
|
||||
int arch_misc_init(void)
|
||||
|
@ -11,6 +11,7 @@
|
||||
#include <dm/ofnode.h>
|
||||
#include <fdt_support.h>
|
||||
#include <linux/libfdt.h>
|
||||
#include <linux/printk.h>
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
|
@ -533,7 +533,7 @@ static void imx_set_wdog_powerdown(bool enable)
|
||||
writew(enable, &wdog3->wmcr);
|
||||
}
|
||||
|
||||
static int imx8m_check_clock(void *ctx, struct event *event)
|
||||
static int imx8m_check_clock(void)
|
||||
{
|
||||
struct udevice *dev;
|
||||
int ret;
|
||||
@ -550,7 +550,7 @@ static int imx8m_check_clock(void *ctx, struct event *event)
|
||||
|
||||
return 0;
|
||||
}
|
||||
EVENT_SPY(EVT_DM_POST_INIT_F, imx8m_check_clock);
|
||||
EVENT_SPY_SIMPLE(EVT_DM_POST_INIT_F, imx8m_check_clock);
|
||||
|
||||
static void imx8m_setup_snvs(void)
|
||||
{
|
||||
|
@ -803,12 +803,7 @@ int imx8ulp_dm_post_init(void)
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int imx8ulp_evt_dm_post_init(void *ctx, struct event *event)
|
||||
{
|
||||
return imx8ulp_dm_post_init();
|
||||
}
|
||||
EVENT_SPY(EVT_DM_POST_INIT_F, imx8ulp_evt_dm_post_init);
|
||||
EVENT_SPY_SIMPLE(EVT_DM_POST_INIT_F, imx8ulp_dm_post_init);
|
||||
|
||||
#if defined(CONFIG_SPL_BUILD)
|
||||
__weak void __noreturn jump_to_image_no_args(struct spl_image_info *spl_image)
|
||||
|
@ -552,7 +552,7 @@ int arch_cpu_init(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int imx9_probe_mu(void *ctx, struct event *event)
|
||||
int imx9_probe_mu(void)
|
||||
{
|
||||
struct udevice *devp;
|
||||
int node, ret;
|
||||
@ -576,7 +576,7 @@ int imx9_probe_mu(void *ctx, struct event *event)
|
||||
|
||||
return 0;
|
||||
}
|
||||
EVENT_SPY(EVT_DM_POST_INIT_F, imx9_probe_mu);
|
||||
EVENT_SPY_SIMPLE(EVT_DM_POST_INIT_F, imx9_probe_mu);
|
||||
|
||||
int timer_init(void)
|
||||
{
|
||||
|
@ -80,8 +80,6 @@ static __maybe_unused void enable_mcu_esm_reset(void)
|
||||
writel(stat, CTRLMMR_MCU_RST_CTRL);
|
||||
}
|
||||
|
||||
#if defined(CONFIG_CPU_V7R)
|
||||
|
||||
/*
|
||||
* RTC Erratum i2327 Workaround for Silicon Revision 1
|
||||
*
|
||||
@ -94,7 +92,7 @@ static __maybe_unused void enable_mcu_esm_reset(void)
|
||||
*
|
||||
* https://www.ti.com/lit/er/sprz487c/sprz487c.pdf
|
||||
*/
|
||||
void rtc_erratumi2327_init(void)
|
||||
static __maybe_unused void rtc_erratumi2327_init(void)
|
||||
{
|
||||
u32 counter;
|
||||
|
||||
@ -112,19 +110,17 @@ void rtc_erratumi2327_init(void)
|
||||
*/
|
||||
writel(K3RTC_KICK0_UNLOCK_VALUE, REG_K3RTC_KICK0);
|
||||
writel(K3RTC_KICK1_UNLOCK_VALUE, REG_K3RTC_KICK1);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
void board_init_f(ulong dummy)
|
||||
{
|
||||
struct udevice *dev;
|
||||
int ret;
|
||||
|
||||
#if defined(CONFIG_CPU_V7R)
|
||||
setup_k3_mpu_regions();
|
||||
rtc_erratumi2327_init();
|
||||
#endif
|
||||
if (IS_ENABLED(CONFIG_CPU_V7R)) {
|
||||
setup_k3_mpu_regions();
|
||||
rtc_erratumi2327_init();
|
||||
}
|
||||
|
||||
/*
|
||||
* Cannot delay this further as there is a chance that
|
||||
@ -156,29 +152,28 @@ void board_init_f(ulong dummy)
|
||||
|
||||
preloader_console_init();
|
||||
|
||||
#ifdef CONFIG_K3_EARLY_CONS
|
||||
/*
|
||||
* Allow establishing an early console as required for example when
|
||||
* doing a UART-based boot. Note that this console may not "survive"
|
||||
* through a SYSFW PM-init step and will need a re-init in some way
|
||||
* due to changing module clock frequencies.
|
||||
*/
|
||||
early_console_init();
|
||||
#endif
|
||||
if (IS_ENABLED(CONFIG_K3_EARLY_CONS))
|
||||
early_console_init();
|
||||
|
||||
#if defined(CONFIG_K3_LOAD_SYSFW)
|
||||
/*
|
||||
* Configure and start up system controller firmware. Provide
|
||||
* the U-Boot console init function to the SYSFW post-PM configuration
|
||||
* callback hook, effectively switching on (or over) the console
|
||||
* output.
|
||||
*/
|
||||
ret = is_rom_loaded_sysfw(&bootdata);
|
||||
if (!ret)
|
||||
panic("ROM has not loaded TIFS firmware\n");
|
||||
if (IS_ENABLED(CONFIG_K3_LOAD_SYSFW)) {
|
||||
ret = is_rom_loaded_sysfw(&bootdata);
|
||||
if (!ret)
|
||||
panic("ROM has not loaded TIFS firmware\n");
|
||||
|
||||
k3_sysfw_loader(true, NULL, NULL);
|
||||
#endif
|
||||
k3_sysfw_loader(true, NULL, NULL);
|
||||
}
|
||||
|
||||
/*
|
||||
* Force probe of clk_k3 driver here to ensure basic default clock
|
||||
@ -209,11 +204,11 @@ void board_init_f(ulong dummy)
|
||||
enable_mcu_esm_reset();
|
||||
}
|
||||
|
||||
#if defined(CONFIG_K3_AM64_DDRSS)
|
||||
ret = uclass_get_device(UCLASS_RAM, 0, &dev);
|
||||
if (ret)
|
||||
panic("DRAM init failed: %d\n", ret);
|
||||
#endif
|
||||
if (IS_ENABLED(CONFIG_K3_AM64_DDRSS)) {
|
||||
ret = uclass_get_device(UCLASS_RAM, 0, &dev);
|
||||
if (ret)
|
||||
panic("DRAM init failed: %d\n", ret);
|
||||
}
|
||||
spl_enable_dcache();
|
||||
}
|
||||
|
||||
@ -225,9 +220,15 @@ u32 spl_mmc_boot_mode(struct mmc *mmc, const u32 boot_device)
|
||||
u32 bootmode_cfg = (devstat & MAIN_DEVSTAT_PRIMARY_BOOTMODE_CFG_MASK) >>
|
||||
MAIN_DEVSTAT_PRIMARY_BOOTMODE_CFG_SHIFT;
|
||||
|
||||
|
||||
switch (bootmode) {
|
||||
case BOOT_DEVICE_EMMC:
|
||||
if (IS_ENABLED(CONFIG_SUPPORT_EMMC_BOOT)) {
|
||||
if (spl_mmc_emmc_boot_partition(mmc))
|
||||
return MMCSD_MODE_EMMCBOOT;
|
||||
return MMCSD_MODE_FS;
|
||||
}
|
||||
if (IS_ENABLED(CONFIG_SPL_FS_FAT) || IS_ENABLED(CONFIG_SPL_FS_EXT4))
|
||||
return MMCSD_MODE_FS;
|
||||
return MMCSD_MODE_EMMCBOOT;
|
||||
case BOOT_DEVICE_MMC:
|
||||
if (bootmode_cfg & MAIN_DEVSTAT_PRIMARY_MMC_FS_RAW_MASK)
|
||||
|
@ -13,6 +13,7 @@
|
||||
#include <log.h>
|
||||
#include <spl.h>
|
||||
#include <asm/global_data.h>
|
||||
#include <linux/printk.h>
|
||||
#include "common.h"
|
||||
#include <dm.h>
|
||||
#include <remoteproc.h>
|
||||
|
@ -30,7 +30,7 @@ tispl.bin_HS: $(obj)/u-boot-spl-nodtb.bin_HS $(patsubst %,$(obj)/dts/%.dtb_HS,$(
|
||||
$(call if_changed,mkfitimage)
|
||||
|
||||
MKIMAGEFLAGS_u-boot.img_HS = -f auto -A $(ARCH) -T firmware -C none -O u-boot \
|
||||
-a $(CONFIG_TEXT_BASE) -e $(CFG_SYS_UBOOT_START) \
|
||||
-a $(CONFIG_TEXT_BASE) -e $(CONFIG_SYS_UBOOT_START) \
|
||||
-n "U-Boot $(UBOOTRELEASE) for $(BOARD) board" -E \
|
||||
$(patsubst %,-b arch/$(ARCH)/dts/%.dtb_HS,$(subst ",,$(CONFIG_OF_LIST)))
|
||||
|
||||
|
@ -15,6 +15,7 @@
|
||||
#include <asm/global_data.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/armv8/mmu.h>
|
||||
#include <linux/printk.h>
|
||||
#include <linux/sizes.h>
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
@ -42,6 +42,7 @@
|
||||
#include <linux/delay.h>
|
||||
#include <linux/errno.h>
|
||||
#include <linux/compiler.h>
|
||||
#include <linux/printk.h>
|
||||
#include <linux/usb/ch9.h>
|
||||
#include <linux/usb/gadget.h>
|
||||
#include <linux/usb/musb.h>
|
||||
@ -270,11 +271,7 @@ int arch_misc_init(void)
|
||||
return ret;
|
||||
|
||||
#if defined(CONFIG_DM_ETH) && defined(CONFIG_USB_ETHER)
|
||||
ret = usb_ether_init();
|
||||
if (ret) {
|
||||
pr_err("USB ether init failed\n");
|
||||
return ret;
|
||||
}
|
||||
usb_ether_init();
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
@ -527,7 +524,7 @@ void board_init_f(ulong dummy)
|
||||
|
||||
#endif
|
||||
|
||||
static int am33xx_dm_post_init(void *ctx, struct event *event)
|
||||
static int am33xx_dm_post_init(void)
|
||||
{
|
||||
hw_data_init();
|
||||
#if !CONFIG_IS_ENABLED(SKIP_LOWLEVEL_INIT)
|
||||
@ -535,4 +532,4 @@ static int am33xx_dm_post_init(void *ctx, struct event *event)
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
EVENT_SPY(EVT_DM_POST_INIT_F, am33xx_dm_post_init);
|
||||
EVENT_SPY_SIMPLE(EVT_DM_POST_INIT_F, am33xx_dm_post_init);
|
||||
|
@ -102,7 +102,7 @@ u-boot_HS_XIP_X-LOADER: $(obj)/u-boot.bin FORCE
|
||||
ifdef CONFIG_SPL_LOAD_FIT
|
||||
|
||||
MKIMAGEFLAGS_u-boot_HS.img = -f auto -A $(ARCH) -T firmware -C none -O u-boot \
|
||||
-a $(CONFIG_TEXT_BASE) -e $(CFG_SYS_UBOOT_START) \
|
||||
-a $(CONFIG_TEXT_BASE) -e $(CONFIG_SYS_UBOOT_START) \
|
||||
-n "U-Boot $(UBOOTRELEASE) for $(BOARD) board" -E \
|
||||
$(patsubst %,-b arch/$(ARCH)/dts/%.dtb_HS,$(subst ",,$(CONFIG_OF_LIST)))
|
||||
|
||||
|
@ -174,7 +174,7 @@ void __weak init_package_revision(void)
|
||||
* done in each of these cases
|
||||
* This function is called with SRAM stack.
|
||||
*/
|
||||
void early_system_init(void)
|
||||
int early_system_init(void)
|
||||
{
|
||||
#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_MULTI_DTB_FIT)
|
||||
int ret;
|
||||
@ -225,6 +225,8 @@ void early_system_init(void)
|
||||
debug_uart_init();
|
||||
#endif
|
||||
prcm_init();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SPL_BUILD
|
||||
@ -240,13 +242,7 @@ void board_init_f(ulong dummy)
|
||||
}
|
||||
#endif
|
||||
|
||||
static int omap2_system_init(void *ctx, struct event *event)
|
||||
{
|
||||
early_system_init();
|
||||
|
||||
return 0;
|
||||
}
|
||||
EVENT_SPY(EVT_DM_POST_INIT_F, omap2_system_init);
|
||||
EVENT_SPY_SIMPLE(EVT_DM_POST_INIT_F, early_system_init);
|
||||
|
||||
/*
|
||||
* Routine: wait_for_command_complete
|
||||
|
@ -9,6 +9,7 @@
|
||||
#include <asm/setup.h>
|
||||
#include <asm/arch/sys_proto.h>
|
||||
#include <asm/omap_common.h>
|
||||
#include <linux/printk.h>
|
||||
|
||||
static void do_cancel_out(u32 *num, u32 *den, u32 factor)
|
||||
{
|
||||
|
@ -83,14 +83,15 @@ static const struct {
|
||||
|
||||
static int rmobile_cpuinfo_idx(void)
|
||||
{
|
||||
int i = 0;
|
||||
u32 cpu_type = rmobile_get_cpu_type();
|
||||
int i;
|
||||
|
||||
for (; i < ARRAY_SIZE(rmobile_cpuinfo) - 1; i++)
|
||||
for (i = 0; i < ARRAY_SIZE(rmobile_cpuinfo) - 1; i++)
|
||||
if (rmobile_cpuinfo[i].cpu_type == cpu_type)
|
||||
break;
|
||||
return i;
|
||||
|
||||
return i;
|
||||
/* Unknown "CPU" entry */
|
||||
return ARRAY_SIZE(rmobile_cpuinfo) - 1;
|
||||
}
|
||||
|
||||
static const u8 *get_cpu_name(int idx)
|
||||
|
@ -470,7 +470,7 @@ config ROCKCHIP_STIMER_BASE
|
||||
|
||||
config ROCKCHIP_SPL_RESERVE_IRAM
|
||||
hex "Size of IRAM reserved in SPL"
|
||||
default 0
|
||||
default 0x0
|
||||
help
|
||||
SPL may need reserve memory for firmware loaded by SPL, whose load
|
||||
address is in IRAM and may overlay with SPL text area if not
|
||||
|
@ -299,9 +299,9 @@ static struct dwc3_device dwc3_device_data = {
|
||||
.hsphy_mode = USBPHY_INTERFACE_MODE_UTMIW,
|
||||
};
|
||||
|
||||
int usb_gadget_handle_interrupts(int index)
|
||||
int dm_usb_gadget_handle_interrupts(struct udevice *dev)
|
||||
{
|
||||
dwc3_uboot_handle_interrupt(0);
|
||||
dwc3_uboot_handle_interrupt(dev);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -12,6 +12,7 @@
|
||||
#include <asm/arch-rockchip/boot_mode.h>
|
||||
#include <dm/device.h>
|
||||
#include <dm/uclass.h>
|
||||
#include <linux/printk.h>
|
||||
|
||||
#if (CONFIG_ROCKCHIP_BOOT_MODE_REG == 0)
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user