mirror of
https://github.com/armbian/build
synced 2025-09-24 19:47:06 +07:00
Compare commits
74 Commits
v25.8.0-tr
...
coderabbit
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9852b3afcf | ||
|
|
3844ef919f | ||
|
|
fc8fef06b2 | ||
|
|
99d23b8190 | ||
|
|
923dc8d7e8 | ||
|
|
8062795c00 | ||
|
|
057681b37d | ||
|
|
4d953d0b83 | ||
|
|
6eb849b60e | ||
|
|
a1168c2635 | ||
|
|
989f25533a | ||
|
|
ae9c66bc0d | ||
|
|
a4551ec75d | ||
|
|
ce02695915 | ||
|
|
4f69047bcd | ||
|
|
5921322e6a | ||
|
|
e9b20c3ed5 | ||
|
|
b39b03b5a5 | ||
|
|
d5fb671349 | ||
|
|
bc6e97caa9 | ||
|
|
15407330c6 | ||
|
|
0e388bb514 | ||
|
|
214e3ec224 | ||
|
|
998542060f | ||
|
|
a4f8def161 | ||
|
|
609110ac10 | ||
|
|
0aed5abe02 | ||
|
|
c9bbbbb0c6 | ||
|
|
3188743b1a | ||
|
|
65af1b843b | ||
|
|
6a60311cb1 | ||
|
|
f2f71b9588 | ||
|
|
d08fea5232 | ||
|
|
32aeb71980 | ||
|
|
8cfd540d0d | ||
|
|
b743487194 | ||
|
|
ddfe4f4106 | ||
|
|
18ddabe25f | ||
|
|
7968bd4a43 | ||
|
|
0a001ec1d1 | ||
|
|
13536bf932 | ||
|
|
abe8102669 | ||
|
|
93a09536aa | ||
|
|
a7785c8ab7 | ||
|
|
f29414a0ea | ||
|
|
06b32ab619 | ||
|
|
2151ca5d7f | ||
|
|
4a4e0e262b | ||
|
|
c0ac2574ac | ||
|
|
189c0ad2ec | ||
|
|
c66fbec4e2 | ||
|
|
22b0414b91 | ||
|
|
f1354108fb | ||
|
|
fb8f189130 | ||
|
|
66cc1f04d4 | ||
|
|
aa5526a918 | ||
|
|
c0da65087a | ||
|
|
54dbbe2785 | ||
|
|
7282020937 | ||
|
|
b571ceb46f | ||
|
|
8762476502 | ||
|
|
699816ddf2 | ||
|
|
c2d1479fa6 | ||
|
|
28ae76b468 | ||
|
|
e03b1b543c | ||
|
|
c8baf1c888 | ||
|
|
0f4303651f | ||
|
|
826309f7bc | ||
|
|
cc4cb72d40 | ||
|
|
cdf71df4b8 | ||
|
|
08c19c021f | ||
|
|
acc79288f4 | ||
|
|
217149cb01 | ||
|
|
dcc9d91b94 |
24
.github/CODEOWNERS
vendored
24
.github/CODEOWNERS
vendored
@@ -55,6 +55,7 @@ config/boards/helios4.conf @Heisath
|
||||
config/boards/helios64.conf @prahal
|
||||
config/boards/hinlink-h28k.csc @sputnik2019
|
||||
config/boards/hinlink-ht2.csc @hoochiwetech
|
||||
config/boards/imb3588.conf @JackHuang021
|
||||
config/boards/indiedroid-nova.csc @lanefu
|
||||
config/boards/inovato-quadra.conf @NicoD-SBC
|
||||
config/boards/jethubj100.conf @adeepn
|
||||
@@ -86,6 +87,7 @@ config/boards/mkspi.csc @redrathnure
|
||||
config/boards/nanopct6-lts.conf @SuperKali @Tonymac32
|
||||
config/boards/nanopct6.conf @SuperKali @Tonymac32
|
||||
config/boards/nanopi-m6.conf @efectn
|
||||
config/boards/nanopi-r3s-lts.conf @pyavitz
|
||||
config/boards/nanopi-r5s.csc @utlark
|
||||
config/boards/nanopi-r6c.csc @ColorfulRhino
|
||||
config/boards/nanopi-r6s.conf @efectn
|
||||
@@ -121,7 +123,7 @@ config/boards/orangepizeroplus.csc @schwar3kat
|
||||
config/boards/phytiumpi.conf @chainsx
|
||||
config/boards/pine64.conf @PanderMusubi
|
||||
config/boards/pinebook-pro.csc @TRSx80 @ahoneybun
|
||||
config/boards/pocketbeagle2.csc @Grippy98
|
||||
config/boards/pocketbeagle2.conf @Grippy98
|
||||
config/boards/pocketchip-sd.csc @TheSnowfield
|
||||
config/boards/qcom-robotics-rb5.conf @FantasyGmm
|
||||
config/boards/qemu-uboot-arm64.csc @rpardini
|
||||
@@ -188,9 +190,9 @@ config/kernel/linux-meson64-*.config @NicoD-SBC @SteeManMI @Tonymac32 @adeepn @
|
||||
config/kernel/linux-mvebu-*.config @Heisath
|
||||
config/kernel/linux-odroidxu4-*.config @joekhoobyar
|
||||
config/kernel/linux-phytium-embedded-*.config @chainsx
|
||||
config/kernel/linux-rk35xx-*.config @CodeChenL @ColorfulRhino @HeyMeco @SeeleVolleri @SuperKali @Tonymac32 @ZazaBR @alexl83 @amazingfate @catalinii @chainsx @efectn @fridtjof @ginkage @hoochiwetech @hqnicolas @krachlatte @lanefu @linhz0hz @mahdichi @mattx433 @monkaBlyat @prahal @rpardini @schwar3kat @sputnik2019 @vamzii
|
||||
config/kernel/linux-rk35xx-*.config @CodeChenL @ColorfulRhino @HeyMeco @JackHuang021 @SeeleVolleri @SuperKali @Tonymac32 @ZazaBR @alexl83 @amazingfate @andyshrk @catalinii @chainsx @efectn @fridtjof @ginkage @hoochiwetech @hqnicolas @krachlatte @lanefu @linhz0hz @mahdichi @mattx433 @monkaBlyat @prahal @rpardini @schwar3kat @sputnik2019 @vamzii
|
||||
config/kernel/linux-rockchip-*.config @paolosabatino
|
||||
config/kernel/linux-rockchip64-*.config @150balbes @ColorfulRhino @HeyMeco @JohnTheCoolingFan @SuperKali @TRSx80 @TheSnowfield @Tonymac32 @ZazaBR @ahoneybun @alexl83 @amazingfate @andyshrk @brentr @catalinii @clee @efectn @fridtjof @hqnicolas @igorpecovnik @joekhoobyar @krachlatte @lanefu @linhz0hz @mlegenovic @paolosabatino @prahal @redrathnure @rpardini @schwar3kat @sicXnull @tdleiyao @torte71 @utlark @vamzii
|
||||
config/kernel/linux-rockchip64-*.config @150balbes @ColorfulRhino @HeyMeco @JohnTheCoolingFan @SuperKali @TRSx80 @TheSnowfield @Tonymac32 @ZazaBR @ahoneybun @alexl83 @amazingfate @andyshrk @brentr @catalinii @clee @efectn @fridtjof @hqnicolas @igorpecovnik @joekhoobyar @krachlatte @lanefu @linhz0hz @mlegenovic @paolosabatino @prahal @pyavitz @redrathnure @rpardini @schwar3kat @sicXnull @tdleiyao @torte71 @utlark @vamzii
|
||||
config/kernel/linux-sm8250-*.config @FantasyGmm @amazingfate
|
||||
config/kernel/linux-sm8550-*.config @FantasyGmm
|
||||
config/kernel/linux-spacemit-*.config @pyavitz
|
||||
@@ -207,11 +209,11 @@ config/kernel/linux-wsl2-x86-*.config @rpardini
|
||||
patch/atf/atf-arm64/ @PeterChrz @rpardini
|
||||
patch/atf/atf-bcm2711/ @PanderMusubi @teknoid
|
||||
patch/atf/atf-genio/ @HeyMeco
|
||||
patch/atf/atf-imx8m/ @schmiedelm
|
||||
patch/atf/atf-imx8/ @schmiedelm
|
||||
patch/atf/atf-k3-beagle/ @Grippy98
|
||||
patch/atf/atf-k3/ @Grippy98 @glneo
|
||||
patch/atf/atf-phytium-embedded/ @chainsx
|
||||
patch/atf/atf-rockchip64/ @ColorfulRhino @TRSx80 @ahoneybun @andyshrk @clee @joekhoobyar @paolosabatino @prahal
|
||||
patch/atf/atf-rockchip64/ @ColorfulRhino @SuperKali @TRSx80 @Tonymac32 @ahoneybun @andyshrk @clee @joekhoobyar @paolosabatino @prahal
|
||||
patch/atf/atf-sm8250/ @FantasyGmm @amazingfate
|
||||
patch/atf/atf-sm8550/ @FantasyGmm
|
||||
patch/atf/atf-spacemit/ @pyavitz
|
||||
@@ -228,7 +230,7 @@ patch/kernel/archive/meson64-*/ @NicoD-SBC @SteeManMI @Tonymac32 @adeepn @clee
|
||||
patch/kernel/archive/mvebu-*/ @Heisath
|
||||
patch/kernel/archive/odroidxu4-*/ @joekhoobyar
|
||||
patch/kernel/archive/rockchip-*/ @paolosabatino
|
||||
patch/kernel/archive/rockchip64-*/ @150balbes @ColorfulRhino @HeyMeco @JohnTheCoolingFan @SuperKali @TRSx80 @TheSnowfield @Tonymac32 @ZazaBR @ahoneybun @alexl83 @amazingfate @andyshrk @brentr @catalinii @clee @efectn @fridtjof @hqnicolas @igorpecovnik @joekhoobyar @krachlatte @lanefu @linhz0hz @mlegenovic @paolosabatino @prahal @redrathnure @rpardini @schwar3kat @sicXnull @tdleiyao @torte71 @utlark @vamzii
|
||||
patch/kernel/archive/rockchip64-*/ @150balbes @ColorfulRhino @HeyMeco @JohnTheCoolingFan @SuperKali @TRSx80 @TheSnowfield @Tonymac32 @ZazaBR @ahoneybun @alexl83 @amazingfate @andyshrk @brentr @catalinii @clee @efectn @fridtjof @hqnicolas @igorpecovnik @joekhoobyar @krachlatte @lanefu @linhz0hz @mlegenovic @paolosabatino @prahal @pyavitz @redrathnure @rpardini @schwar3kat @sicXnull @tdleiyao @torte71 @utlark @vamzii
|
||||
patch/kernel/archive/sm8250-*/ @FantasyGmm @amazingfate
|
||||
patch/kernel/archive/sm8550-*/ @FantasyGmm
|
||||
patch/kernel/archive/spacemit-*/ @pyavitz
|
||||
@@ -239,7 +241,7 @@ patch/kernel/archive/wsl2-arm64-*/ @rpardini
|
||||
patch/kernel/archive/wsl2-x86-*/ @rpardini
|
||||
patch/kernel/genio-1200-*/ @HeyMeco
|
||||
patch/kernel/phytium-embedded-*/ @chainsx
|
||||
patch/kernel/rk35xx-vendor-*/ @CodeChenL @ColorfulRhino @HeyMeco @SeeleVolleri @SuperKali @Tonymac32 @ZazaBR @alexl83 @amazingfate @catalinii @chainsx @efectn @fridtjof @ginkage @hoochiwetech @hqnicolas @krachlatte @lanefu @linhz0hz @mahdichi @mattx433 @monkaBlyat @prahal @rpardini @schwar3kat @sputnik2019 @vamzii
|
||||
patch/kernel/rk35xx-vendor-*/ @CodeChenL @ColorfulRhino @HeyMeco @JackHuang021 @SeeleVolleri @SuperKali @Tonymac32 @ZazaBR @alexl83 @amazingfate @andyshrk @catalinii @chainsx @efectn @fridtjof @ginkage @hoochiwetech @hqnicolas @krachlatte @lanefu @linhz0hz @mahdichi @mattx433 @monkaBlyat @prahal @rpardini @schwar3kat @sputnik2019 @vamzii
|
||||
patch/kernel/starfive2-*/ @libiunc
|
||||
patch/kernel/sun55iw3-syterkit-*/ @chainsx
|
||||
patch/kernel/thead-*/ @chainsx
|
||||
@@ -248,7 +250,7 @@ patch/u-boot/legacy/ @chainsx @joekhoobyar @juanlufont @lanefu
|
||||
patch/u-boot/legacy/u-boot-clearfog/ @Heisath
|
||||
patch/u-boot/legacy/u-boot-helios4/ @Heisath
|
||||
patch/u-boot/legacy/u-boot-khadas-edge2-rk3588/ @efectn
|
||||
patch/u-boot/legacy/u-boot-radxa-rk35xx/ @CodeChenL @HeyMeco @SeeleVolleri @SuperKali @Tonymac32 @ZazaBR @alexl83 @amazingfate @catalinii @chainsx @efectn @fridtjof @ginkage @hoochiwetech @hqnicolas @krachlatte @linhz0hz @mahdichi @mattx433 @monkaBlyat @prahal @rpardini @schwar3kat @sputnik2019 @tdleiyao @vamzii
|
||||
patch/u-boot/legacy/u-boot-radxa-rk35xx/ @CodeChenL @HeyMeco @JackHuang021 @SeeleVolleri @SuperKali @Tonymac32 @ZazaBR @alexl83 @amazingfate @catalinii @chainsx @efectn @fridtjof @ginkage @hoochiwetech @hqnicolas @krachlatte @linhz0hz @mahdichi @mattx433 @monkaBlyat @prahal @rpardini @schwar3kat @sputnik2019 @tdleiyao @vamzii
|
||||
patch/u-boot/legacy/u-boot-spacemit-k1/ @pyavitz
|
||||
patch/u-boot/u-boot-beagle/ @Grippy98
|
||||
patch/u-boot/u-boot-k3-beagle/ @Grippy98
|
||||
@@ -280,7 +282,7 @@ patch/u-boot/v2025-sunxi/ @The-going
|
||||
patch/u-boot/v2025.01-rc3-coolpi-cm5/ @andyshrk
|
||||
patch/u-boot/v2025.01/ @ColorfulRhino @efectn @jeanrhum @joekhoobyar @paolosabatino @pyavitz @rpardini @torte71
|
||||
patch/u-boot/v2025.01/board_h96-tvbox-3566/ @hqnicolas
|
||||
patch/u-boot/v2025.04/ @IsMrX @NicoD-SBC @SuperKali @TheSnowfield @Tonymac32 @ZazaBR @amazingfate @andyshrk @catalinii @igorpecovnik @mlegenovic @rpardini @vamzii
|
||||
patch/u-boot/v2025.04/ @IsMrX @NicoD-SBC @SuperKali @TheSnowfield @Tonymac32 @ZazaBR @amazingfate @andyshrk @catalinii @igorpecovnik @mlegenovic @pyavitz @rpardini @vamzii
|
||||
sources/families/bcm2711.conf @PanderMusubi @teknoid
|
||||
sources/families/genio.conf @HeyMeco
|
||||
sources/families/imx8m.conf @schmiedelm
|
||||
@@ -297,8 +299,8 @@ sources/families/meson8b.conf @hzyitc @juanlufont
|
||||
sources/families/mvebu.conf @Heisath
|
||||
sources/families/odroidxu4.conf @joekhoobyar
|
||||
sources/families/phytium-embedded.conf @chainsx
|
||||
sources/families/rk35xx.conf @CodeChenL @ZazaBR @amazingfate @andyshrk @catalinii @hoochiwetech @hqnicolas @krachlatte @mattx433 @sputnik2019 @tdleiyao @vamzii
|
||||
sources/families/rockchip-rk3588.conf @ColorfulRhino @HeyMeco @SeeleVolleri @SuperKali @Tonymac32 @alexl83 @amazingfate @andyshrk @chainsx @efectn @fridtjof @ginkage @lanefu @linhz0hz @mahdichi @monkaBlyat @prahal @rpardini @schwar3kat
|
||||
sources/families/rk35xx.conf @CodeChenL @ZazaBR @amazingfate @andyshrk @catalinii @hoochiwetech @hqnicolas @krachlatte @mattx433 @pyavitz @sputnik2019 @tdleiyao @vamzii
|
||||
sources/families/rockchip-rk3588.conf @ColorfulRhino @HeyMeco @JackHuang021 @SeeleVolleri @SuperKali @Tonymac32 @alexl83 @amazingfate @andyshrk @chainsx @efectn @fridtjof @ginkage @lanefu @linhz0hz @mahdichi @monkaBlyat @prahal @rpardini @schwar3kat
|
||||
sources/families/rockchip.conf @paolosabatino
|
||||
sources/families/rockchip64.conf @150balbes @JohnTheCoolingFan @TRSx80 @TheSnowfield @Tonymac32 @ahoneybun @andyshrk @brentr @clee @hqnicolas @igorpecovnik @joekhoobyar @mlegenovic @paolosabatino @prahal @redrathnure @rpardini @sicXnull @torte71 @utlark
|
||||
sources/families/sm8250.conf @FantasyGmm @amazingfate
|
||||
|
||||
@@ -34,7 +34,7 @@ jobs:
|
||||
|
||||
- name: Get changed files
|
||||
id: changed-files
|
||||
uses: tj-actions/changed-files@c6634ca281a9fc05b03bee224ba00910cb78ab6e # v46.0.3
|
||||
uses: tj-actions/changed-files@d52d20fa3f981cb852b861fd8f55308b5fe29637 # v46.0.3
|
||||
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
2
.github/workflows/pr-lint-scripts.yml
vendored
2
.github/workflows/pr-lint-scripts.yml
vendored
@@ -30,7 +30,7 @@ jobs:
|
||||
|
||||
- name: Get changed files
|
||||
id: changed-files
|
||||
uses: tj-actions/changed-files@c6634ca281a9fc05b03bee224ba00910cb78ab6e # v46.0.3
|
||||
uses: tj-actions/changed-files@d52d20fa3f981cb852b861fd8f55308b5fe29637 # v46.0.3
|
||||
|
||||
- name: List all changed files
|
||||
run: |
|
||||
|
||||
2
.github/workflows/scorecard.yml
vendored
2
.github/workflows/scorecard.yml
vendored
@@ -33,7 +33,7 @@ jobs:
|
||||
persist-credentials: false
|
||||
|
||||
- name: "Run analysis"
|
||||
uses: ossf/scorecard-action@v2.4.1
|
||||
uses: ossf/scorecard-action@v2.4.2
|
||||
with:
|
||||
results_file: results.sarif
|
||||
results_format: sarif
|
||||
|
||||
107
config/boards/cainiao-cniot-core.csc
Normal file
107
config/boards/cainiao-cniot-core.csc
Normal file
@@ -0,0 +1,107 @@
|
||||
# Amlogic A311D 2GB RAM 16GB eMMC GBE USB3 RTL8822CS WiFi/BT
|
||||
BOARD_NAME="CAINIAO CNIoT-CORE"
|
||||
BOARDFAMILY="meson-g12b"
|
||||
BOARD_MAINTAINER=""
|
||||
BOOTCONFIG="cainiao-cniot-core_defconfig"
|
||||
KERNEL_TARGET="current,edge"
|
||||
KERNEL_TEST_TARGET="current"
|
||||
MODULES_BLACKLIST="simpledrm" # SimpleDRM conflicts with Panfrost on the CAINIAO CNIoT-CORE
|
||||
FULL_DESKTOP="yes"
|
||||
SERIALCON="ttyAML0"
|
||||
BOOT_LOGO="desktop"
|
||||
BOOT_FDT_FILE="amlogic/meson-g12b-a311d-cainiao-cniot-core.dtb"
|
||||
PACKAGE_LIST_BOARD="alsa-ucm-conf" # Contain ALSA UCM top-level configuration file
|
||||
|
||||
BOOTBRANCH_BOARD="tag:v2025.04"
|
||||
BOOTPATCHDIR="v2025.04" # This has a patch that adds support for CAINIAO CNIoT-CORE.
|
||||
|
||||
function post_family_config__use_repacked_fip() {
|
||||
declare -g UBOOT_TARGET_MAP="u-boot.bin"
|
||||
unset write_uboot_platform
|
||||
|
||||
function write_uboot_platform() {
|
||||
dd if="$1/u-boot.bin" of="$2" bs=512 seek=1 conv=fsync 2>&1
|
||||
}
|
||||
}
|
||||
|
||||
function fetch_sources_tools__get_vendor_fip_and_gxlimg_source() {
|
||||
fetch_from_repo "https://github.com/retro98boy/cainiao-cniot-core-linux.git" "cainiao-cniot-core-linux" "commit:30273c25aeabf75f609cff2c4fa7264335c295a8"
|
||||
fetch_from_repo "https://github.com/repk/gxlimg.git" "gxlimg" "commit:0d0e5ba9cf396d1338067e8dc37a8bcd2e6874f1"
|
||||
}
|
||||
|
||||
function build_host_tools__install_gxlimg() {
|
||||
# Compile and install only if git commit hash changed
|
||||
cd "${SRC}/cache/sources/gxlimg" || exit
|
||||
# need to check if /usr/local/bin/gxlimg to detect new Docker containers with old cached sources
|
||||
if [[ ! -f .commit_id || $(git rev-parse @ 2> /dev/null) != $(< .commit_id) || ! -f /usr/local/bin/gxlimg ]]; then
|
||||
display_alert "Compiling" "gxlimg" "info"
|
||||
run_host_command_logged make distclean
|
||||
run_host_command_logged make
|
||||
install -Dm0755 gxlimg /usr/local/bin/gxlimg
|
||||
git rev-parse @ 2> /dev/null > .commit_id
|
||||
fi
|
||||
}
|
||||
|
||||
function post_uboot_custom_postprocess__repack_vendor_fip_with_mainline_uboot() {
|
||||
display_alert "${BOARD}" "Repacking vendor FIP with mainline u-boot.bin" "info"
|
||||
|
||||
BLOBS_DIR="${SRC}/cache/sources/cainiao-cniot-core-linux"
|
||||
EXTRACT_DIR="${BLOBS_DIR}/extract"
|
||||
AML_ENCRYPT="${SRC}/cache/sources/amlogic-boot-fip/khadas-vim3/aml_encrypt_g12b"
|
||||
|
||||
if [ ! -f "$AML_ENCRYPT" ]; then
|
||||
display_alert "${BOARD}" "amlogic-boot-fip/khadas-vim3/aml_encrypt_g12b not exist" "err"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mv u-boot.bin raw-u-boot.bin
|
||||
rm -f "${EXTRACT_DIR}/bl33.enc"
|
||||
# The current version of gxlimg has a problem with the handling of bl3x,
|
||||
# which may cause the produced fip to fail to boot.
|
||||
# see https://github.com/repk/gxlimg/issues/19
|
||||
# run_host_command_logged gxlimg -t bl3x -s raw-u-boot.bin "${EXTRACT_DIR}/bl33.enc"
|
||||
run_host_x86_binary_logged "$AML_ENCRYPT" --bl3sig \
|
||||
--input raw-u-boot.bin \
|
||||
--output "${EXTRACT_DIR}/bl33.enc" \
|
||||
--level v3 --type bl33
|
||||
run_host_command_logged gxlimg \
|
||||
-t fip \
|
||||
--bl2 "${EXTRACT_DIR}/bl2.sign" \
|
||||
--ddrfw "${EXTRACT_DIR}/ddr4_1d.fw" \
|
||||
--ddrfw "${EXTRACT_DIR}/ddr4_2d.fw" \
|
||||
--ddrfw "${EXTRACT_DIR}/ddr3_1d.fw" \
|
||||
--ddrfw "${EXTRACT_DIR}/piei.fw" \
|
||||
--ddrfw "${EXTRACT_DIR}/lpddr4_1d.fw" \
|
||||
--ddrfw "${EXTRACT_DIR}/lpddr4_2d.fw" \
|
||||
--ddrfw "${EXTRACT_DIR}/diag_lpddr4.fw" \
|
||||
--ddrfw "${EXTRACT_DIR}/aml_ddr.fw" \
|
||||
--ddrfw "${EXTRACT_DIR}/lpddr3_1d.fw" \
|
||||
--bl30 "${EXTRACT_DIR}/bl30.enc" \
|
||||
--bl31 "${EXTRACT_DIR}/bl31.enc" \
|
||||
--bl33 "${EXTRACT_DIR}/bl33.enc" \
|
||||
--rev v3 u-boot.bin
|
||||
|
||||
if [ ! -s u-boot.bin ]; then
|
||||
display_alert "${BOARD}" "FIP repack produced empty u-boot.bin" "err"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
function post_family_tweaks_bsp__cainiao-cniot-core() {
|
||||
display_alert "${BOARD}" "Installing ALSA UCM configuration files" "info"
|
||||
|
||||
# Use ALSA UCM via GUI: Install a desktop environment such as GNOME, PipeWire, and WirePlumber.
|
||||
|
||||
# Use ALSA UCM via CLI: alsactl init && alsaucm set _verb "HiFi" set _enadev "HDMI" set _enadev "Speaker"
|
||||
# playback via HDMI: aplay -D plughw:cainiaocniotcor,0 /usr/share/sounds/alsa/Front_Center.wav
|
||||
# playback via internal speaker: aplay -D plughw:cainiaocniotcor,1 /usr/share/sounds/alsa/Front_Center.wav
|
||||
|
||||
install -Dm644 "${SRC}/packages/bsp/cainiao-cniot-core/cainiao-cniot-core-HiFi.conf" "${destination}/usr/share/alsa/ucm2/Amlogic/axg-sound-card/cainiao-cniot-core-HiFi.conf"
|
||||
install -Dm644 "${SRC}/packages/bsp/cainiao-cniot-core/cainiao-cniot-core.conf" "${destination}/usr/share/alsa/ucm2/Amlogic/axg-sound-card/cainiao-cniot-core.conf"
|
||||
|
||||
if [ ! -d "${destination}/usr/share/alsa/ucm2/conf.d/axg-sound-card" ]; then
|
||||
mkdir -p "${destination}/usr/share/alsa/ucm2/conf.d/axg-sound-card"
|
||||
fi
|
||||
ln -sfv /usr/share/alsa/ucm2/Amlogic/axg-sound-card/cainiao-cniot-core.conf \
|
||||
"${destination}/usr/share/alsa/ucm2/conf.d/axg-sound-card/cainiao-cniot-core.conf"
|
||||
}
|
||||
@@ -5,7 +5,7 @@ BOARD_MAINTAINER="andyshrk"
|
||||
BOARD_FIRMWARE_INSTALL="-full"
|
||||
BOOT_SOC="rk3588"
|
||||
BOOTCONFIG="coolpi-cm5-genbook-rk3588_defconfig"
|
||||
KERNEL_TARGET="edge"
|
||||
KERNEL_TARGET="edge,vendor"
|
||||
FULL_DESKTOP="yes"
|
||||
BOOT_LOGO="desktop"
|
||||
BOOT_FDT_FILE="rockchip/rk3588-coolpi-cm5-genbook.dtb"
|
||||
@@ -15,13 +15,13 @@ BOOT_SPI_RKSPI_LOADER="yes"
|
||||
IMAGE_PARTITION_TABLE="gpt"
|
||||
|
||||
# Mainline U-Boot
|
||||
function post_family_config_branch_edge__coolpi-genbook_use_mainline_uboot() {
|
||||
function post_family_config__coolpi-genbook_use_mainline_uboot() {
|
||||
display_alert "$BOARD" "mainline (next branch) u-boot overrides for $BOARD / $BRANCH" "info"
|
||||
|
||||
declare -g BOOTSOURCE="https://github.com/u-boot/u-boot.git" # Mainline U-Boot
|
||||
unset BOOTBRANCH
|
||||
declare -g BOOTPATCHDIR="v2025.01-rc3-coolpi-cm5"
|
||||
declare -g BOOTBRANCH_BOARD="tag:v2025.01"
|
||||
declare -g BOOTBRANCH_BOARD="tag:v2025.04"
|
||||
declare -g UBOOT_TARGET_MAP="BL31=${RKBIN_DIR}/${BL31_BLOB} ROCKCHIP_TPL=${RKBIN_DIR}/${DDR_BLOB};;u-boot-rockchip.bin u-boot-rockchip-spi.bin"
|
||||
unset uboot_custom_postprocess write_uboot_platform write_uboot_platform_mtd # disable stuff from rockchip64_common; we're using binman here which does all the work already
|
||||
|
||||
|
||||
14
config/boards/imb3588.conf
Normal file
14
config/boards/imb3588.conf
Normal file
@@ -0,0 +1,14 @@
|
||||
# Rockchip RK3588 SoC with 4/8/16GB RAM, 16GBB/32GB/64GB/128GB EMMC, m.2 SATA, USB3, USB2, 2xGbE, WIFI6, BT5.1, LCDS, MIPI, eDP, HDMI
|
||||
BOARD_NAME="IMB3588"
|
||||
BOARDFAMILY="rockchip-rk3588"
|
||||
BOARD_MAINTAINER="JackHuang021"
|
||||
BOOTCONFIG="imb3588_defconfig"
|
||||
BOOT_SOC="rk3588"
|
||||
KERNEL_TARGET="vendor"
|
||||
FULL_DESKTOP="yes"
|
||||
BOOT_LOGO="desktop"
|
||||
BOOT_FDT_FILE="rockchip/rk3588-yx-imb3588.dtb"
|
||||
BOOT_SCENARIO="spl-blobs"
|
||||
BOOT_SUPPORT_SPI="yes"
|
||||
BOOT_SPI_RKSPI_LOADER="yes"
|
||||
IMAGE_PARTITION_TABLE="gpt"
|
||||
30
config/boards/nanopi-r3s-lts.conf
Normal file
30
config/boards/nanopi-r3s-lts.conf
Normal file
@@ -0,0 +1,30 @@
|
||||
# Rockchip RK3566 quad core 2GB RAM eMMC 2x GbE USB3 HDMI
|
||||
BOARD_NAME="NanoPi R3S LTS"
|
||||
BOARDFAMILY="rk35xx"
|
||||
BOARD_MAINTAINER="pyavitz"
|
||||
BOOTCONFIG="nanopi-r3s-lts-rk3566_defconfig"
|
||||
KERNEL_TARGET="current,edge"
|
||||
KERNEL_TEST_TARGET="current,edge"
|
||||
BOOT_FDT_FILE="rockchip/rk3566-nanopi-r3s-lts.dtb"
|
||||
IMAGE_PARTITION_TABLE="gpt"
|
||||
BOOT_SCENARIO="spl-blobs"
|
||||
|
||||
|
||||
function post_family_config__use_mainline_uboot() {
|
||||
if [[ "$BRANCH" != "current" && "$BRANCH" != "edge" ]]; then
|
||||
return 0
|
||||
fi
|
||||
unset BOOTFS_TYPE # mainline u-boot can boot ext4 directly
|
||||
BOOTCONFIG="nanopi-r3s-lts-rk3566_defconfig"
|
||||
BOOTSOURCE="https://github.com/u-boot/u-boot"
|
||||
BOOTBRANCH="tag:v2025.04"
|
||||
BOOTPATCHDIR="v2025.04"
|
||||
|
||||
UBOOT_TARGET_MAP="BL31=$RKBIN_DIR/$BL31_BLOB ROCKCHIP_TPL=$RKBIN_DIR/$DDR_BLOB;;u-boot-rockchip.bin"
|
||||
|
||||
unset uboot_custom_postprocess write_uboot_platform write_uboot_platform_mtd
|
||||
|
||||
function write_uboot_platform() {
|
||||
dd if=$1/u-boot-rockchip.bin of=$2 seek=64 conv=notrunc status=none
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
# Rockchip RK3588 octa core whatever fixme
|
||||
# Rockchip RK3588 octa core 4/8/16GB RAM SoC SPI NVMe 2x USB2 2x USB3 HDMI HDMI-in
|
||||
BOARD_NAME="Orange Pi 5 Ultra"
|
||||
BOARDFAMILY="rockchip-rk3588"
|
||||
BOARD_MAINTAINER=""
|
||||
|
||||
@@ -13,8 +13,9 @@ KERNEL_TEST_TARGET="edge"
|
||||
SERIALCON="ttyS2"
|
||||
ATF_BOARD="lite"
|
||||
SRC_EXTLINUX="yes"
|
||||
SRC_CMDLINE="console=ttyS2,115200n8"
|
||||
SRC_CMDLINE="root=/dev/mmcblk1p2 rootwait console=ttyS2,115200n8"
|
||||
BOOT_FDT_FILE="ti/k3-am6232-pocketbeagle2.dtb"
|
||||
OPTEE_PLATFORM="k3-am62x"
|
||||
|
||||
#Until PB2 goes upstream, use this branch
|
||||
function post_family_config_branch_edge__pocketbeagle2_use_beagle_kernel_uboot() {
|
||||
@@ -22,9 +23,9 @@ function post_family_config_branch_edge__pocketbeagle2_use_beagle_kernel_uboot()
|
||||
|
||||
declare -g KERNELSOURCE="https://github.com/beagleboard/linux" # BeagleBoard kernel
|
||||
declare -g KERNEL_MAJOR_MINOR="6.12"
|
||||
declare -g KERNELBRANCH="branch:v6.12.13-ti-arm64-r24"
|
||||
declare -g KERNELBRANCH="branch:v6.12.24-ti-arm64-r42"
|
||||
declare -g LINUXFAMILY="k3-beagle" # Separate kernel package from the regular `k3` family
|
||||
|
||||
declare -g BOOTSOURCE="https://github.com/beagleboard/u-boot" # BeagleBoard u-boot
|
||||
declare -g BOOTBRANCH="branch:v2025.01-pocketbeagle2"
|
||||
declare -g BOOTBRANCH="branch:v2025.04-pocketbeagle2"
|
||||
}
|
||||
@@ -9,8 +9,8 @@ FULL_DESKTOP="yes"
|
||||
BOOT_LOGO="desktop"
|
||||
BOOT_FDT_FILE="rockchip/rk3399-tinker-2.dtb"
|
||||
SERIALCON="ttyS2"
|
||||
BOOT_SCENARIO="spl-blobs" # 'blobless' also works; but some RAM issues found; see rk33/rk3399_ddr_800MHz_v1.27.bin in rockchip64_common.inc
|
||||
BOOT_SCENARIO="binman" # 'blobless' also works; but some RAM issues found; see rk33/rk3399_ddr_800MHz_v1.27.bin in rockchip64_common.inc
|
||||
BOARD_FIRMWARE_INSTALL="-full" # Install full firmware, for rtl8822ce firmware and others
|
||||
BOOTBRANCH="tag:v2021.07" # v2021.07 ...
|
||||
BOOTBRANCH="tag:v2025.04" # v2025.04 ...
|
||||
BOOTPATCHDIR='legacy/u-boot-tinkerboard2' # ... with _only_ the patches we need for TB2, not the default rockchip64
|
||||
DDR_BLOB="rk33/rk3399_ddr_800MHz_v1.27.bin" # Different blob for TB2
|
||||
|
||||
@@ -3,187 +3,539 @@
|
||||
# Please edit /boot/armbianEnv.txt to set supported parameters
|
||||
#
|
||||
|
||||
# NOTE
|
||||
# If you intend to use 'outside' of 'global' variables from U-Boot, make sure that you do not change them!
|
||||
# The boot logic will attempt a list of 'boot_targets' that all might rely on (environment) variables that
|
||||
# have been set by U-Boot, either compile-time or as part of U-Boot's default 'bootcmd'.
|
||||
# Any variable that this bootscript uses needs to be set explicitly and not conflict with any pre-set variables.
|
||||
# Variables that we might change will be saved in preset_x and variables we use will be copied into l_x.
|
||||
|
||||
# default environment variables
|
||||
setenv align_overlap_oboe_avoidance "on"
|
||||
setenv align_to "0x00001000"
|
||||
setenv console "both"
|
||||
setenv docker_optimizations "on"
|
||||
setenv earlycon "off"
|
||||
setenv emmc_fix "off"
|
||||
setenv eth1addr "00:50:43:25:fb:84"
|
||||
setenv eth2addr "00:50:43:84:25:2f"
|
||||
setenv eth3addr "00:50:43:0d:19:18"
|
||||
setenv ethaddr "00:50:43:84:fb:2f"
|
||||
setenv exit_on_critical_errors "on"
|
||||
setenv fdt_extrasize "0x00010000"
|
||||
setenv kver
|
||||
setenv load_addr_calc
|
||||
setenv overlay_error "false"
|
||||
setenv preset_fdtdir "${fdtdir}"
|
||||
setenv preset_fdtfile "${fdtfile}"
|
||||
setenv preset_kernel_comp_addr_r "${kernel_comp_addr_r}"
|
||||
setenv preset_kernel_comp_size "${kernel_comp_size}"
|
||||
setenv rootdev "/dev/mmcblk${devnum}p${distro_bootpart}"
|
||||
setenv rootfstype "ext4"
|
||||
setenv spi_workaround "off"
|
||||
setenv vendor "marvell"
|
||||
setenv verbosity "1"
|
||||
|
||||
# load addresses
|
||||
setenv load_addr "0x00300000"
|
||||
setenv fdt_addr_r "0x02040000" # max size 256 KiB (=dtb+dto+fdt_extrasize)
|
||||
setenv kernel_addr_r "0x02080000" # max size 16 MiB
|
||||
setenv ramdisk_addr_r "0x03080000"
|
||||
|
||||
# default values
|
||||
setenv overlay_error "false"
|
||||
setenv rootdev "/dev/mmcblk0p1"
|
||||
setenv rootfstype "ext4"
|
||||
setenv verbosity "1"
|
||||
setenv emmc_fix "off"
|
||||
setenv spi_workaround "off"
|
||||
setenv ethaddr "00:50:43:84:fb:2f"
|
||||
setenv eth1addr "00:50:43:25:fb:84"
|
||||
setenv eth2addr "00:50:43:84:25:2f"
|
||||
setenv eth3addr "00:50:43:0d:19:18"
|
||||
setenv exit_on_critical_errors "on"
|
||||
setenv fdt_extrasize "0x00010000"
|
||||
setenv align_to "0x00001000"
|
||||
setenv align_overlap_oboe_avoidance "on"
|
||||
setenv align_addr_next 'if test "${align_overlap_oboe_avoidance}" = "on" ; then setexpr addr_next ${addr_next} + 1 ; fi ; setexpr modulo ${addr_next} % ${align_to} ; if itest ${modulo} -gt 0 ; then setexpr addr_next ${addr_next} / ${align_to} ; setexpr addr_next ${addr_next} + 1 ; setexpr addr_next ${addr_next} * ${align_to} ; fi'
|
||||
|
||||
if setexpr setexpr 1 + 1 ; then
|
||||
setenv setexpr "available"
|
||||
else
|
||||
echo "** Command `setexpr` not available - using configured load addresses"
|
||||
fi
|
||||
|
||||
echo "Boot script loaded from ${devtype}"
|
||||
|
||||
setenv something "environment ${prefix}armbianEnv.txt from ${devtype} to ${load_addr}"
|
||||
echo "Loading ${something} ..."
|
||||
if load ${devtype} ${devnum} ${load_addr} ${prefix}armbianEnv.txt; then
|
||||
env import -t ${load_addr} ${filesize}
|
||||
else
|
||||
echo "** Could not load ${something} - using default environment"
|
||||
fi
|
||||
|
||||
setenv bootargs "console=ttyS0,115200 root=${rootdev} rootwait rootfstype=${rootfstype} ubootdev=${devtype} scandelay loglevel=${verbosity} usb-storage.quirks=${usbstoragequirks} ${extraargs}"
|
||||
|
||||
setenv something "DT ${prefix}dtb/${fdtfile} from ${devtype} to ${fdt_addr_r}"
|
||||
echo "Loading ${something} ..."
|
||||
if load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}dtb/${fdtfile} ; then
|
||||
else
|
||||
echo "!! CRITICAL - Could not load ${something}"
|
||||
# environment run variables
|
||||
setenv func_align_addr_next '
|
||||
test "${align_overlap_oboe_avoidance}" = "on" && setexpr l_addr_next ${l_addr_next} + 1 ;
|
||||
setexpr modulo ${l_addr_next} % ${align_to} ;
|
||||
if itest ${modulo} -gt 0 ; then
|
||||
setexpr l_addr_next ${l_addr_next} / ${align_to} ;
|
||||
setexpr l_addr_next ${l_addr_next} + 1 ;
|
||||
setexpr l_addr_next ${l_addr_next} * ${align_to} ;
|
||||
fi'
|
||||
setenv func_inform 'test "${verbosity}" = "" || itest ${verbosity} -gt 0 && echo "${l_message}"'
|
||||
setenv func_warn 'echo "** WARNING: ${l_message}"'
|
||||
setenv func_critical_error '
|
||||
echo "!! CRITICAL: ${l_message}" ;
|
||||
if test "${exit_on_critical_errors}" = "on" ; then
|
||||
exit
|
||||
false ;
|
||||
else
|
||||
true ;
|
||||
fi'
|
||||
|
||||
# set some defaults in case there are no pre-sets
|
||||
if test "${envfile}" = "" ; then
|
||||
setenv l_envfile 'armbianEnv.txt'
|
||||
else
|
||||
setenv l_envfile "${envfile}"
|
||||
fi
|
||||
|
||||
echo "Boot script loaded from ${devtype} ${devnum}:${distro_bootpart}."
|
||||
|
||||
# load (merge) on-disk environment
|
||||
setenv l_file "${prefix}${l_envfile}"
|
||||
if test -e ${devtype} ${devnum}:${distro_bootpart} ${l_file} ; then
|
||||
if load ${devtype} ${devnum}:${distro_bootpart} ${load_addr} ${l_file} ; then
|
||||
if env import -t ${load_addr} ${filesize} ; then
|
||||
setenv l_message "Loaded/imported environment ${l_file} to/from ${load_addr}."
|
||||
run func_inform
|
||||
else
|
||||
setenv l_message "Could not import environment ${l_file} - using default environment!"
|
||||
run func_warn
|
||||
fi
|
||||
else
|
||||
setenv l_message "Could not load environment ${l_file} - using default environment!"
|
||||
run func_warn
|
||||
fi
|
||||
fi
|
||||
|
||||
setenv fdt_filesize ${filesize}
|
||||
fdt addr ${fdt_addr_r}
|
||||
fdt resize ${fdt_extrasize}
|
||||
# compose kernel commandline options (bootargs)
|
||||
setenv consoleargs
|
||||
if test "${console}" = "display" || test "${console}" = "both" ; then
|
||||
setenv consoleargs "console=tty1"
|
||||
fi
|
||||
if test "${console}" = "serial" || test "${console}" = "both" ; then
|
||||
setenv consoleargs "console=ttyS0,115200 ${consoleargs}"
|
||||
fi
|
||||
if test "${earlycon}" = "on" ; then
|
||||
setenv consoleargs "earlycon ${consoleargs}"
|
||||
fi
|
||||
if test "${bootlogo}" = "true" ; then
|
||||
setenv consoleargs "splash plymouth.ignore-serial-consoles ${consoleargs}"
|
||||
else
|
||||
setenv consoleargs "splash=verbose ${consoleargs}"
|
||||
fi
|
||||
|
||||
for overlay_file in ${overlays}; do
|
||||
setenv something "kernel provided DT overlay ${overlay_prefix}-${overlay_file}.dtbo from ${devtype} to ${load_addr}"
|
||||
echo "Loading ${something} ..."
|
||||
if load ${devtype} ${devnum} ${load_addr} ${prefix}dtb/overlay/${overlay_prefix}-${overlay_file}.dtbo; then
|
||||
fdt apply ${load_addr} || setenv overlay_error "true"
|
||||
else
|
||||
echo "** Could not load ${something}"
|
||||
part uuid ${devtype} ${devnum}:${distro_bootpart} l_ubootpart
|
||||
|
||||
setenv bootargs "root=${rootdev} rootfstype=${rootfstype} rootwait ${consoleargs} consoleblank=0 loglevel=${verbosity} ubootpart=${l_ubootpart} usb-storage.quirks=${usbstoragequirks} ${extraargs} ${extraboardargs}"
|
||||
|
||||
if test "${docker_optimizations}" = "on" ; then
|
||||
setenv bootargs "${bootargs} cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory"
|
||||
fi
|
||||
|
||||
if test "${vendor}" = "allwinner" ; then
|
||||
if test "${disp_mem_reserves}" = "off" ; then
|
||||
setenv bootargs "${bootargs} sunxi_ve_mem_reserve=0 sunxi_g2d_mem_reserve=0 sunxi_fb_mem_reserve=16"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
if test "${vendor}" = "marvell" ; then
|
||||
# nothing here yet
|
||||
fi
|
||||
if test "${vendor}" = "rockchip" ; then
|
||||
# nothing here yet
|
||||
fi
|
||||
|
||||
for overlay_file in ${user_overlays}; do
|
||||
setenv something "user provided DT overlay ${overlay_file}.dtbo from ${devtype} to ${load_addr}"
|
||||
echo "Loading ${something}"
|
||||
if load ${devtype} ${devnum} ${load_addr} ${prefix}overlay-user/${overlay_file}.dtbo; then
|
||||
fdt apply ${load_addr} || setenv overlay_error "true"
|
||||
# check if we are requested (or are able to) use load address calculation
|
||||
if test "${load_addr_calc}" = "" ; then
|
||||
if setexpr load_addr_calc 1 + 1 ; then
|
||||
setenv load_addr_calc 'on'
|
||||
else
|
||||
echo "** Could not load ${something}"
|
||||
setenv load_addr_calc 'off'
|
||||
fi
|
||||
done
|
||||
fi
|
||||
if test "${load_addr_calc}" != "on" ; then
|
||||
setenv load_addr_calc 'off'
|
||||
|
||||
if test "${overlay_error}" = "true"; then
|
||||
echo "** Error applying DT overlays"
|
||||
setenv something "original DT ${prefix}dtb/${fdtfile} from ${devtype} to ${fdt_addr_r}"
|
||||
echo "Restoring ${something} ..."
|
||||
if load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}dtb/${fdtfile} ; then
|
||||
setenv l_message "Using fixed load addresses."
|
||||
run func_inform
|
||||
setenv l_message " fdt_addr_r: ${fdt_addr_r}"
|
||||
run func_inform
|
||||
setenv l_message " kernel_addr_r: ${kernel_addr_r}"
|
||||
run func_inform
|
||||
setenv l_message " ramdisk_addr_r: ${ramdisk_addr_r}"
|
||||
run func_inform
|
||||
fi
|
||||
|
||||
if test "${kver}" != "" ; then
|
||||
setenv l_message "Using version override ${kver} for image loading."
|
||||
run func_inform
|
||||
fi
|
||||
|
||||
# set a default kernel image type in case 'setexpr' not available
|
||||
if test "${cpu}" = "armv8" ; then
|
||||
# aarch64 uses a flat kernel image
|
||||
setenv l_kernel_image_type "flat"
|
||||
setenv l_bootfile "Image${kver}"
|
||||
else
|
||||
if test "${cpu}" = "armv7" ; then
|
||||
# aarch32 mostly uses compressed kernel image
|
||||
setenv l_kernel_image_type "compressed"
|
||||
setenv l_bootfile "zImage${kver}"
|
||||
else
|
||||
# per default use compressed kernel image
|
||||
setenv l_kernel_image_type "compressed"
|
||||
setenv l_bootfile "zImage${kver}"
|
||||
fi
|
||||
fi
|
||||
|
||||
setenv l_ramdiskfile "uInitrd${kver}"
|
||||
|
||||
# $fdtdir:
|
||||
# some boards use "${prefix}dtb/" others use "${prefix}dtb/${vendor}/" as base location for the DT files
|
||||
# user can also override by specifying an fdtdir=... in armbianEnv.txt
|
||||
# try any U-Boot built-in (or pre-set) fdtdir as last resort
|
||||
# $fdtfile:
|
||||
# some boards use a "filename.dts" others use "${vendor}/filename.dts"
|
||||
# user can also override by specifying an fdtfile=... in armbianEnv.txt
|
||||
# strip any leading path components and try any U-Boot built-in (or pre-set) fdtfile as last resort
|
||||
|
||||
setenv l_fdtfile_basename
|
||||
setexpr l_fdtfile_basename sub ".*/" "" "${fdtfile}"
|
||||
if test "${l_fdtfile_basename}" = "" ; then
|
||||
setenv l_fdtfile_basename "${fdtfile}"
|
||||
fi
|
||||
|
||||
setenv l_fdtdir "${fdtdir}"
|
||||
setenv l_fdtfile "${l_fdtfile_basename}"
|
||||
if test -e ${devtype} ${devnum}:${distro_bootpart} "${l_fdtdir}/${l_fdtfile}" ; then
|
||||
true
|
||||
else
|
||||
setenv l_fdtdir "${prefix}dtb${kver}/${vendor}"
|
||||
setenv l_fdtfile "${l_fdtfile_basename}"
|
||||
if test -e ${devtype} ${devnum}:${distro_bootpart} "${l_fdtdir}/${l_fdtfile}" ; then
|
||||
true
|
||||
else
|
||||
setenv l_fdtdir "${prefix}dtb${kver}"
|
||||
setenv l_fdtfile "${l_fdtfile_basename}"
|
||||
if test -e ${devtype} ${devnum}:${distro_bootpart} "${l_fdtdir}/${l_fdtfile}" ; then
|
||||
true
|
||||
else
|
||||
setenv l_fdtdir "${fdtdir}"
|
||||
setenv l_fdtfile "${fdtfile}"
|
||||
if test -e ${devtype} ${devnum}:${distro_bootpart} "${l_fdtdir}/${l_fdtfile}" ; then
|
||||
true
|
||||
else
|
||||
setenv l_fdtdir "${preset_fdtdir}"
|
||||
setenv l_fdtfile "${preset_fdtfile}"
|
||||
if test -e ${devtype} ${devnum}:${distro_bootpart} "${l_fdtdir}/${l_fdtfile}" ; then
|
||||
true
|
||||
else
|
||||
false
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
if itest $? -ne 0 ; then
|
||||
setenv l_message "Cannot find DT!"
|
||||
run func_critical_error || exit
|
||||
fi
|
||||
|
||||
# load the device tree blob
|
||||
setenv l_file "${l_fdtdir}/${l_fdtfile}"
|
||||
if load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${l_file} ; then
|
||||
setenv l_message "Loaded DT ${l_file} to ${fdt_addr_r}."
|
||||
run func_inform
|
||||
|
||||
setenv l_fdt_filesize ${filesize}
|
||||
fdt addr ${fdt_addr_r}
|
||||
fdt resize ${fdt_extrasize}
|
||||
else
|
||||
setenv l_message "Could not load DT ${l_file}!"
|
||||
run func_critical_error || exit
|
||||
fi
|
||||
|
||||
# process "overlays=..." from $l_envfile
|
||||
if test "${overlays}" != "" ; then
|
||||
setenv l_message "Loading kernel provided DT overlay(s) from ${l_fdtdir}/overlay to ${load_addr} .."
|
||||
run func_inform
|
||||
|
||||
# as some families offer overlays with different (or no) prefixes, try to guess the most commonly seen ones
|
||||
# just changing overlay_prefix= will not work for all available overlays, as some have prefixes and some do not
|
||||
|
||||
setenv each_overlay
|
||||
for each_overlay in ${overlays} ; do
|
||||
setenv l_overlay_prefix "${overlay_prefix}"
|
||||
setenv l_file "${l_fdtdir}/overlay/${l_overlay_prefix}-${each_overlay}.dtbo"
|
||||
if test -e ${devtype} ${devnum}:${distro_bootpart} ${l_file} ; then
|
||||
true
|
||||
else
|
||||
setenv l_overlay_prefix "${vendor}"
|
||||
setenv l_file "${l_fdtdir}/overlay/${l_overlay_prefix}-${each_overlay}.dtbo"
|
||||
if test -e ${devtype} ${devnum}:${distro_bootpart} ${l_file} ; then
|
||||
setenv l_message "Found DT overlay ${l_overlay_prefix}-${each_overlay} instead of ${overlay_prefix}-${each_overlay} in ${l_fdtdir}/overlay!"
|
||||
run func_warn
|
||||
setenv l_message "Consider setting overlay_prefix=${l_overlay_prefix} in your ${l_envfile}."
|
||||
run func_inform
|
||||
true
|
||||
else
|
||||
setenv l_overlay_prefix "${vendor}-${soc}"
|
||||
setenv l_file "${l_fdtdir}/overlay/${l_overlay_prefix}-${each_overlay}.dtbo"
|
||||
if test -e ${devtype} ${devnum}:${distro_bootpart} ${l_file} ; then
|
||||
setenv l_message "Found DT overlay ${l_overlay_prefix}-${each_overlay} instead of ${overlay_prefix}-${each_overlay} in ${l_fdtdir}/overlay!"
|
||||
run func_warn
|
||||
setenv l_message "Consider setting overlay_prefix=${l_overlay_prefix} in your ${l_envfile}."
|
||||
run func_inform
|
||||
true
|
||||
else
|
||||
false
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
if itest $? -eq 0 ; then
|
||||
if load ${devtype} ${devnum}:${distro_bootpart} ${load_addr} ${l_file} ; then
|
||||
if fdt apply ${load_addr} ; then
|
||||
setenv l_message "Applied DT overlay ${each_overlay} (${l_file})."
|
||||
run func_inform
|
||||
else
|
||||
setenv overlay_error "true"
|
||||
setenv l_message "Could NOT apply DT overlay ${each_overlay} (${l_file})!"
|
||||
run func_warn
|
||||
fi
|
||||
else
|
||||
setenv l_message "Could NOT load DT overlay ${each_overlay} (${l_file})!"
|
||||
run func_warn
|
||||
fi
|
||||
else
|
||||
setenv l_message "Could NOT find DT overlay ${each_overlay}!"
|
||||
run func_warn
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
# process "user_overlays=..." from $l_envfile
|
||||
if test "${user_overlays}" != "" ; then
|
||||
setenv l_message "Loading user provided DT overlay(s) from ${prefix}overlay-user to ${load_addr} .."
|
||||
run func_inform
|
||||
|
||||
setenv each_user_overlay
|
||||
for each_user_overlay in ${user_overlays} ; do
|
||||
setenv l_file "${prefix}overlay-user/${each_user_overlay}.dtbo"
|
||||
if test -e ${devtype} ${devnum}:${distro_bootpart} ${l_file} ; then
|
||||
if load ${devtype} ${devnum}:${distro_bootpart} ${load_addr} ${l_file} ; then
|
||||
if fdt apply ${load_addr} ; then
|
||||
setenv l_message "Applied user DT overlay ${each_user_overlay} (${l_file})."
|
||||
run func_inform
|
||||
else
|
||||
setenv overlay_error "true"
|
||||
setenv l_message "Could NOT apply user DT overlay ${each_user_overlay} (${l_file})!"
|
||||
run func_warn
|
||||
fi
|
||||
else
|
||||
setenv l_message "Could NOT load user DT overlay ${each_user_overlay} (${l_file})!"
|
||||
run func_warn
|
||||
fi
|
||||
else
|
||||
setenv l_message "Could NOT find user DT overlay ${each_user_overlay} (${l_file})!"
|
||||
run func_warn
|
||||
fi
|
||||
done
|
||||
fi
|
||||
if test "${overlay_error}" = "true" ; then
|
||||
setenv l_message "Could not apply DT overlays!"
|
||||
run func_warn
|
||||
|
||||
setenv l_file "${l_fdtdir}/${l_fdtfile}"
|
||||
if load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${l_file} ; then
|
||||
setenv l_message "Loaded original DT ${l_file} to ${fdt_addr_r}."
|
||||
run func_inform
|
||||
|
||||
setenv l_fdt_filesize ${filesize}
|
||||
fdt addr ${fdt_addr_r}
|
||||
fdt resize ${fdt_extrasize}
|
||||
else
|
||||
echo "!! CRITICAL - Could not restore ${something}"
|
||||
if test "${exit_on_critical_errors}" = "on" ; then
|
||||
exit
|
||||
fi
|
||||
setenv l_message "Could not load original DT ${l_file}!"
|
||||
run func_critical_error || exit
|
||||
fi
|
||||
else
|
||||
if test -e ${devtype} ${devnum} ${prefix}dtb/overlay/${overlay_prefix}-fixup.scr; then
|
||||
setenv something "kernel provided DT fixup script (${overlay_prefix}-fixup.scr) from ${devtype} to ${load_addr}"
|
||||
echo "Loading ${something} ..."
|
||||
if load ${devtype} ${devnum} ${load_addr} ${prefix}dtb/overlay/${overlay_prefix}-fixup.scr ; then
|
||||
source ${load_addr}
|
||||
else
|
||||
echo "** Could not load ${something}"
|
||||
# process any available DT fixup scripts
|
||||
setenv l_fixup_scripts "${prefix}fixup.scr"
|
||||
if test "${overlay_prefix}" != "" ; then
|
||||
setenv l_fixup_scripts "${l_fdtdir}/overlay/${overlay_prefix}-fixup.scr ${l_fixup_scripts}"
|
||||
fi
|
||||
if test "${vendor}" != "" ; then
|
||||
if test "${vendor}" != "${overlay_prefix}" ; then
|
||||
setenv l_fixup_scripts "${l_fdtdir}/overlay/${vendor}-fixup.scr ${l_fixup_scripts}"
|
||||
fi
|
||||
fi
|
||||
if test -e ${devtype} ${devnum} ${prefix}fixup.scr; then
|
||||
setenv something "user provided fixup script (fixup.scr) from ${devtype} to ${load_addr}"
|
||||
echo "Loading ${something} ..."
|
||||
if load ${devtype} ${devnum} ${load_addr} ${prefix}fixup.scr ; then
|
||||
source ${load_addr}
|
||||
else
|
||||
echo "** Could not load ${something}"
|
||||
|
||||
setenv each_fixup_script
|
||||
for each_fixup_script in ${l_fixup_scripts} ; do
|
||||
if test -e ${devtype} ${devnum}:${distro_bootpart} ${each_fixup_script} ; then
|
||||
if load ${devtype} ${devnum}:${distro_bootpart} ${load_addr} ${each_fixup_script} ; then
|
||||
if source ${load_addr} ; then
|
||||
setenv l_message "Loaded/sourced fixup script ${each_fixup_script} to/at ${load_addr}."
|
||||
run func_inform
|
||||
else
|
||||
setenv l_message "Fixup script ${each_fixup_script} returned an error!"
|
||||
run func_warn
|
||||
fi
|
||||
else
|
||||
setenv l_message "Could not load fixup script ${each_fixup_script}!"
|
||||
run func_warn
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
# eMMC fix
|
||||
if test "${emmc_fix}" = "on"; then
|
||||
echo "Applying eMMC compatibility fix to the DT"
|
||||
echo "Applying eMMC compatibility fix to the DT."
|
||||
fdt rm /soc/internal-regs/sdhci@d8000/ cd-gpios
|
||||
fdt set /soc/internal-regs/sdhci@d8000/ non-removable
|
||||
fi
|
||||
|
||||
# SPI - SATA workaround
|
||||
if test "${spi_workaround}" = "on"; then
|
||||
echo "Applying SPI workaround to the DT"
|
||||
echo "Applying SPI workaround to the DT."
|
||||
fdt set /soc/internal-regs/sata@e0000 status "disabled"
|
||||
fdt set /soc/internal-regs/sata@a8000 status "disabled"
|
||||
fdt set /soc/spi@10680 status "okay"
|
||||
fdt set /soc/spi@10680/spi-flash@0 status "okay"
|
||||
fi
|
||||
|
||||
echo "Trimming DT ..."
|
||||
# resize (trim) device tree after all overlays have been applied and fixup scripts have been run
|
||||
fdt resize
|
||||
|
||||
if test "${setexpr}" = "available" ; then
|
||||
fdt header get fdt_totalsize totalsize
|
||||
if test "${fdt_totalsize}" = "" ; then
|
||||
echo "** Command `fdt header` does not support `get <var> <member>` - calculating DT size"
|
||||
# determine the load address for the kernel image
|
||||
if test "${load_addr_calc}" = "on" ; then
|
||||
# get the total size of the DT
|
||||
setenv l_fdt_totalsize
|
||||
fdt header get l_fdt_totalsize totalsize
|
||||
|
||||
if test "${l_fdt_totalsize}" = "" ; then
|
||||
# could not get the total size of the DT so calculate it instead
|
||||
setenv l_message "Calculating DT size."
|
||||
run func_inform
|
||||
|
||||
# 'fdt resize' will align upwards to 4k address boundary
|
||||
setexpr fdt_totalsize ${fdt_filesize} / 0x1000
|
||||
setexpr fdt_totalsize ${fdt_totalsize} + 1
|
||||
setexpr fdt_totalsize ${fdt_totalsize} * 0x1000
|
||||
setexpr l_fdt_totalsize ${l_fdt_filesize} / 0x1000
|
||||
setexpr l_fdt_totalsize ${l_fdt_totalsize} + 1
|
||||
setexpr l_fdt_totalsize ${l_fdt_totalsize} * 0x1000
|
||||
if test "${fdt_extrasize}" != "" ; then
|
||||
# add 'extrasize' before aligning
|
||||
setexpr fdt_totalsize ${fdt_totalsize} + ${fdt_extrasize}
|
||||
setexpr l_fdt_totalsize ${l_fdt_totalsize} + ${fdt_extrasize}
|
||||
fi
|
||||
fi
|
||||
setexpr addr_next ${fdt_addr_r} + ${fdt_totalsize}
|
||||
run align_addr_next
|
||||
setenv kernel_addr_r ${addr_next}
|
||||
|
||||
setexpr l_addr_next ${fdt_addr_r} + ${l_fdt_totalsize}
|
||||
run func_align_addr_next
|
||||
|
||||
setenv l_kernel_addr_r ${l_addr_next}
|
||||
else
|
||||
setenv l_kernel_addr_r ${kernel_addr_r}
|
||||
fi
|
||||
|
||||
setenv something "kernel ${prefix}zImage from ${devtype} to ${kernel_addr_r}"
|
||||
echo "Loading ${something} ..."
|
||||
if load ${devtype} ${devnum} ${kernel_addr_r} ${prefix}zImage ; then
|
||||
setenv l_file "${prefix}${l_bootfile}"
|
||||
if load ${devtype} ${devnum}:${distro_bootpart} ${l_kernel_addr_r} ${l_file} ; then
|
||||
if test "${load_addr_calc}" = "on" ; then
|
||||
setenv kernel_comp_size ${filesize}
|
||||
fi
|
||||
|
||||
setenv l_message "Loaded ${l_kernel_image_type} kernel image ${l_file} to ${l_kernel_addr_r}."
|
||||
run func_inform
|
||||
else
|
||||
echo "!! CRITICAL - Could not load ${something}"
|
||||
if test "${exit_on_critical_errors}" = "on" ; then
|
||||
exit
|
||||
if test "${load_addr_calc}" = "on" ; then
|
||||
setenv kernel_comp_addr_r "${preset_kernel_comp_addr_r}"
|
||||
setenv kernel_comp_size "${preset_kernel_comp_size}"
|
||||
fi
|
||||
setenv l_message "Could not load ${l_kernel_image_type} kernel image ${l_file}!"
|
||||
run func_critical_error || exit
|
||||
fi
|
||||
|
||||
# determine the load address for the initial ramdisk
|
||||
if test "${load_addr_calc}" = "on" ; then
|
||||
# vmlinux image + 0x38 contain magic (le-double) 'ARMd'
|
||||
setexpr l_ptr ${l_kernel_addr_r} + 0x00000038
|
||||
setexpr.w l_magic_lsw *${l_ptr}
|
||||
|
||||
setexpr l_ptr ${l_kernel_addr_r} + 0x0000003a
|
||||
setexpr.w l_magic_msw *${l_ptr}
|
||||
|
||||
if test "${l_magic_msw}${l_magic_lsw}" != "" && itest "${l_magic_msw}${l_magic_lsw}" -eq 0x644d5241 ; then
|
||||
setenv l_kernel_image_type "flat"
|
||||
else
|
||||
setenv l_kernel_image_type "compressed"
|
||||
fi
|
||||
|
||||
if test "${l_kernel_image_type}" = "flat" ; then
|
||||
# vmlinux image + 0x10 contains image_size
|
||||
setexpr l_ptr ${l_kernel_addr_r} + 0x00000010
|
||||
setexpr.l l_image_size *${l_ptr}
|
||||
|
||||
setenv l_message "Using ${l_kernel_image_type} kernel image image_size 0x${l_image_size} bytes to calculate initial ramdisk load address."
|
||||
run func_inform
|
||||
|
||||
# vmlinux image + 0x08 contains text_offset
|
||||
setexpr l_ptr ${l_kernel_addr_r} + 0x00000008
|
||||
setexpr.l l_text_offset *${l_ptr}
|
||||
|
||||
setenv l_message "Using ${l_kernel_image_type} kernel image text_offset 0x${l_text_offset} bytes to offset initial ramdisk load address."
|
||||
run func_inform
|
||||
|
||||
setexpr l_addr_next ${l_kernel_addr_r} + ${l_image_size}
|
||||
run func_align_addr_next
|
||||
|
||||
# take into account that U-Boot's booti_setup() might relocate the kernel image
|
||||
setexpr l_addr_next ${l_addr_next} + ${l_text_offset}
|
||||
else
|
||||
setexpr l_addr_next ${l_kernel_addr_r} + ${filesize}
|
||||
run func_align_addr_next
|
||||
|
||||
setenv l_message "Using ${l_kernel_image_type} kernel image filesize 0x${filesize} bytes to calculate initial ramdisk load address."
|
||||
run func_inform
|
||||
fi
|
||||
|
||||
setenv l_ramdisk_addr_r ${l_addr_next}
|
||||
else
|
||||
setenv l_ramdisk_addr_r ${ramdisk_addr_r}
|
||||
fi
|
||||
|
||||
setenv l_file "${prefix}${l_ramdiskfile}"
|
||||
if load ${devtype} ${devnum}:${distro_bootpart} ${l_ramdisk_addr_r} ${l_file} ; then
|
||||
if test "${load_addr_calc}" = "on" ; then
|
||||
setexpr l_addr_next ${l_ramdisk_addr_r} + ${filesize}
|
||||
run func_align_addr_next
|
||||
|
||||
setenv kernel_comp_addr_r ${l_addr_next}
|
||||
fi
|
||||
|
||||
setenv l_message "Loaded initial ramdisk ${l_file} to ${l_ramdisk_addr_r}."
|
||||
run func_inform
|
||||
else
|
||||
if test "${load_addr_calc}" = "on" ; then
|
||||
setenv kernel_comp_addr_r "${preset_kernel_comp_addr_r}"
|
||||
setenv kernel_comp_size "${preset_kernel_comp_size}"
|
||||
fi
|
||||
setenv l_message "Could not load initial ramdisk ${l_file}!"
|
||||
run func_critical_error || exit
|
||||
fi
|
||||
|
||||
# attempt to prepare for kernel address space randomization
|
||||
if kaslrseed ; then
|
||||
else
|
||||
setenv l_message "Not able to prepare for KASLR."
|
||||
run func_inform
|
||||
fi
|
||||
|
||||
setenv l_message "Kernel commandline arguments:"
|
||||
run func_inform
|
||||
|
||||
setenv each_bootarg
|
||||
for each_bootarg in ${bootargs} ; do
|
||||
setenv l_message " ${each_bootarg}"
|
||||
run func_inform
|
||||
done
|
||||
|
||||
if test "${l_kernel_image_type}" = "flat" ; then
|
||||
booti ${l_kernel_addr_r} ${l_ramdisk_addr_r} ${fdt_addr_r}
|
||||
else
|
||||
if test "${l_kernel_image_type}" = "compressed" ; then
|
||||
bootz ${l_kernel_addr_r} ${l_ramdisk_addr_r} ${fdt_addr_r}
|
||||
else
|
||||
# default booting command
|
||||
bootz ${l_kernel_addr_r} ${l_ramdisk_addr_r} ${fdt_addr_r}
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "${setexpr}" = "available" ; then
|
||||
setexpr addr_next ${kernel_addr_r} + ${filesize}
|
||||
run align_addr_next
|
||||
setenv ramdisk_addr_r ${addr_next}
|
||||
# booting failed, restore environment variables that are not unique
|
||||
# to this bootmeth
|
||||
if test "${load_addr_calc}" = "on" ; then
|
||||
# restore original presets
|
||||
setenv kernel_comp_addr_r "${preset_kernel_comp_addr_r}"
|
||||
setenv kernel_comp_size "${preset_kernel_comp_size}"
|
||||
fi
|
||||
|
||||
setenv something "initial ramdisk ${prefix}uInitrd from ${devtype} to ${ramdisk_addr_r}"
|
||||
echo "Loading ${something} ..."
|
||||
if load ${devtype} ${devnum} ${ramdisk_addr_r} ${prefix}uInitrd ; then
|
||||
else
|
||||
echo "!! CRITICAL - Could not load ${something}"
|
||||
if test "${exit_on_critical_errors}" = "on" ; then
|
||||
exit
|
||||
fi
|
||||
fi
|
||||
|
||||
setenv something "kernel from ${kernel_addr_r}"
|
||||
echo "Booting ${something} ..."
|
||||
if bootz ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r} ; then
|
||||
else
|
||||
echo "!! CRITICAL - Could not boot ${something}"
|
||||
if test "${exit_on_critical_errors}" = "on" ; then
|
||||
exit
|
||||
fi
|
||||
fi
|
||||
setenv l_message "Could not boot kernel!"
|
||||
run func_critical_error || exit
|
||||
|
||||
# Recompile with:
|
||||
# mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr
|
||||
|
||||
@@ -78,8 +78,6 @@ openprinting-ppds
|
||||
p7zip-full
|
||||
pamix
|
||||
pasystray
|
||||
pavucontrol
|
||||
pavumeter
|
||||
polkitd
|
||||
pkexec
|
||||
#printer-driver-all
|
||||
|
||||
@@ -65,8 +65,6 @@ orca
|
||||
p7zip-full
|
||||
pamix
|
||||
pasystray
|
||||
pavucontrol
|
||||
pavumeter
|
||||
polkitd
|
||||
pkexec
|
||||
#printer-driver-all
|
||||
|
||||
@@ -871,9 +871,12 @@ CONFIG_I2C_MUX_PINCTRL=m
|
||||
CONFIG_I2C_BCM2708=m
|
||||
CONFIG_I2C_BCM2835=m
|
||||
CONFIG_I2C_BRCMSTB=m
|
||||
CONFIG_I2C_DESIGNWARE_CORE=m
|
||||
CONFIG_I2C_GPIO=m
|
||||
CONFIG_I2C_ROBOTFUZZ_OSIF=m
|
||||
CONFIG_I2C_TINY_USB=m
|
||||
CONFIG_I2C_SLAVE=y
|
||||
CONFIG_I2C_DESIGNWARE_SLAVE=y
|
||||
CONFIG_SPI=y
|
||||
CONFIG_SPI_BCM2835=m
|
||||
CONFIG_SPI_BCM2835AUX=m
|
||||
|
||||
@@ -856,10 +856,13 @@ CONFIG_I2C_MUX_PINCTRL=m
|
||||
CONFIG_I2C_BCM2708=m
|
||||
CONFIG_I2C_BCM2835=m
|
||||
CONFIG_I2C_BRCMSTB=m
|
||||
CONFIG_I2C_DESIGNWARE_CORE=m
|
||||
CONFIG_I2C_GPIO=m
|
||||
CONFIG_I2C_CP2615=m
|
||||
CONFIG_I2C_ROBOTFUZZ_OSIF=m
|
||||
CONFIG_I2C_TINY_USB=m
|
||||
CONFIG_I2C_SLAVE=y
|
||||
CONFIG_I2C_DESIGNWARE_SLAVE=y
|
||||
CONFIG_I2C_VIRTIO=m
|
||||
CONFIG_SPI=y
|
||||
CONFIG_SPI_BCM2835=m
|
||||
|
||||
@@ -814,10 +814,13 @@ CONFIG_I2C_CHARDEV=m
|
||||
CONFIG_I2C_MUX_GPMUX=m
|
||||
CONFIG_I2C_MUX_PCA954x=m
|
||||
CONFIG_I2C_MUX_PINCTRL=m
|
||||
CONFIG_I2C_DESIGNWARE_CORE=m
|
||||
CONFIG_I2C_GPIO=m
|
||||
CONFIG_I2C_CP2615=m
|
||||
CONFIG_I2C_ROBOTFUZZ_OSIF=m
|
||||
CONFIG_I2C_TINY_USB=m
|
||||
CONFIG_I2C_SLAVE=y
|
||||
CONFIG_I2C_DESIGNWARE_SLAVE=y
|
||||
CONFIG_I2C_VIRTIO=m
|
||||
CONFIG_SPI=y
|
||||
CONFIG_SPI_DESIGNWARE=m
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
# CONFIG_LOCALVERSION_AUTO is not set
|
||||
CONFIG_SYSVIPC=y
|
||||
CONFIG_POSIX_MQUEUE=y
|
||||
CONFIG_AUDIT=y
|
||||
CONFIG_NO_HZ_IDLE=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
CONFIG_BPF_SYSCALL=y
|
||||
@@ -17,6 +16,8 @@ CONFIG_IKCONFIG=y
|
||||
CONFIG_IKCONFIG_PROC=y
|
||||
CONFIG_MEMCG=y
|
||||
CONFIG_BLK_CGROUP=y
|
||||
CONFIG_CFS_BANDWIDTH=y
|
||||
CONFIG_RT_GROUP_SCHED=y
|
||||
CONFIG_CGROUP_PIDS=y
|
||||
CONFIG_CGROUP_FREEZER=y
|
||||
CONFIG_CGROUP_HUGETLB=y
|
||||
@@ -25,6 +26,8 @@ CONFIG_CGROUP_DEVICE=y
|
||||
CONFIG_CGROUP_CPUACCT=y
|
||||
CONFIG_CGROUP_PERF=y
|
||||
CONFIG_CGROUP_BPF=y
|
||||
CONFIG_NAMESPACES=y
|
||||
CONFIG_USER_NS=y
|
||||
CONFIG_SCHED_AUTOGROUP=y
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
CONFIG_EXPERT=y
|
||||
@@ -89,7 +92,10 @@ CONFIG_JUMP_LABEL=y
|
||||
CONFIG_MODULES=y
|
||||
CONFIG_MODULE_UNLOAD=y
|
||||
CONFIG_BLK_DEV_INTEGRITY=y
|
||||
CONFIG_BLK_DEV_THROTTLING=y
|
||||
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
|
||||
CONFIG_ZSWAP=y
|
||||
CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y
|
||||
# CONFIG_COMPAT_BRK is not set
|
||||
CONFIG_MEMORY_HOTPLUG=y
|
||||
CONFIG_MEMORY_HOTREMOVE=y
|
||||
@@ -101,33 +107,69 @@ CONFIG_CMA_AREAS=20
|
||||
CONFIG_NET=y
|
||||
CONFIG_PACKET=y
|
||||
CONFIG_UNIX=y
|
||||
CONFIG_XFRM_USER=m
|
||||
CONFIG_INET=y
|
||||
CONFIG_IP_MULTICAST=y
|
||||
CONFIG_IP_PNP=y
|
||||
CONFIG_IP_PNP_DHCP=y
|
||||
CONFIG_IP_PNP_BOOTP=y
|
||||
CONFIG_INET_ESP=m
|
||||
CONFIG_IPV6=m
|
||||
CONFIG_NETFILTER=y
|
||||
CONFIG_BRIDGE_NETFILTER=m
|
||||
CONFIG_NF_CONNTRACK=m
|
||||
CONFIG_NF_CONNTRACK=y
|
||||
CONFIG_NF_CONNTRACK_MARK=y
|
||||
CONFIG_NF_CONNTRACK_ZONES=y
|
||||
CONFIG_NF_CONNTRACK_EVENTS=y
|
||||
CONFIG_NF_CONNTRACK_LABELS=y
|
||||
CONFIG_NF_CONNTRACK_FTP=m
|
||||
CONFIG_NF_CONNTRACK_IRC=m
|
||||
CONFIG_NF_CONNTRACK_PPTP=m
|
||||
CONFIG_NF_CONNTRACK_TFTP=m
|
||||
CONFIG_NF_TABLES=y
|
||||
CONFIG_NF_TABLES_INET=y
|
||||
CONFIG_NF_TABLES_NETDEV=y
|
||||
CONFIG_NFT_NAT=m
|
||||
CONFIG_NFT_TUNNEL=m
|
||||
CONFIG_NFT_QUOTA=m
|
||||
CONFIG_NFT_REJECT=m
|
||||
CONFIG_NFT_COMPAT=m
|
||||
CONFIG_NFT_HASH=m
|
||||
CONFIG_NFT_XFRM=m
|
||||
CONFIG_NFT_SOCKET=m
|
||||
CONFIG_NFT_TPROXY=m
|
||||
CONFIG_NFT_SYNPROXY=m
|
||||
CONFIG_NFT_DUP_NETDEV=m
|
||||
CONFIG_NFT_FWD_NETDEV=m
|
||||
CONFIG_NFT_REJECT_NETDEV=m
|
||||
CONFIG_NETFILTER_XT_MARK=m
|
||||
CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
|
||||
CONFIG_NETFILTER_XT_TARGET_LOG=m
|
||||
CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
|
||||
CONFIG_NETFILTER_XT_MATCH_BPF=m
|
||||
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
|
||||
CONFIG_NETFILTER_XT_MATCH_IPVS=m
|
||||
CONFIG_IP_VS=m
|
||||
CONFIG_IP_NF_IPTABLES=m
|
||||
CONFIG_IP_NF_FILTER=m
|
||||
CONFIG_IP_VS_PROTO_TCP=y
|
||||
CONFIG_IP_VS_PROTO_UDP=y
|
||||
CONFIG_IP_VS_RR=m
|
||||
CONFIG_IP_VS_NFCT=y
|
||||
CONFIG_IP_NF_IPTABLES=y
|
||||
CONFIG_IP_NF_FILTER=y
|
||||
CONFIG_IP_NF_TARGET_REJECT=m
|
||||
CONFIG_IP_NF_NAT=m
|
||||
CONFIG_IP_NF_TARGET_MASQUERADE=m
|
||||
CONFIG_IP_NF_TARGET_NETMAP=m
|
||||
CONFIG_IP_NF_TARGET_REDIRECT=m
|
||||
CONFIG_IP_NF_MANGLE=m
|
||||
CONFIG_IP_NF_RAW=m
|
||||
CONFIG_IP_NF_SECURITY=y
|
||||
CONFIG_IP6_NF_IPTABLES=m
|
||||
CONFIG_IP6_NF_FILTER=m
|
||||
CONFIG_IP6_NF_TARGET_REJECT=m
|
||||
CONFIG_IP6_NF_MANGLE=m
|
||||
CONFIG_IP6_NF_RAW=m
|
||||
CONFIG_IP6_NF_SECURITY=m
|
||||
CONFIG_IP6_NF_NAT=m
|
||||
CONFIG_IP6_NF_TARGET_MASQUERADE=m
|
||||
CONFIG_BRIDGE=m
|
||||
@@ -149,6 +191,7 @@ CONFIG_NET_SCH_TAPRIO=m
|
||||
CONFIG_NET_SCH_MQPRIO=m
|
||||
CONFIG_NET_SCH_INGRESS=m
|
||||
CONFIG_NET_CLS_BASIC=m
|
||||
CONFIG_NET_CLS_CGROUP=m
|
||||
CONFIG_NET_CLS_FLOWER=m
|
||||
CONFIG_NET_CLS_ACT=y
|
||||
CONFIG_NET_ACT_GACT=m
|
||||
@@ -156,6 +199,7 @@ CONFIG_NET_ACT_MIRRED=m
|
||||
CONFIG_NET_ACT_GATE=m
|
||||
CONFIG_QRTR_SMD=m
|
||||
CONFIG_QRTR_TUN=m
|
||||
CONFIG_CGROUP_NET_PRIO=y
|
||||
CONFIG_CAN=m
|
||||
CONFIG_BT=m
|
||||
CONFIG_BT_HIDP=m
|
||||
@@ -195,12 +239,10 @@ CONFIG_FW_LOADER_USER_HELPER=y
|
||||
CONFIG_MHI_BUS_PCI_GENERIC=m
|
||||
CONFIG_ARM_SCMI_PROTOCOL=y
|
||||
CONFIG_IMX_SCMI_BBM_EXT=y
|
||||
CONFIG_IMX_SCMI_MISC_EXT=y
|
||||
CONFIG_GOOGLE_FIRMWARE=y
|
||||
CONFIG_GOOGLE_CBMEM=m
|
||||
CONFIG_GOOGLE_COREBOOT_TABLE=m
|
||||
CONFIG_EFI_CAPSULE_LOADER=y
|
||||
CONFIG_IMX_SCMI_MISC_DRV=y
|
||||
CONFIG_GNSS=m
|
||||
CONFIG_GNSS_MTK_SERIAL=m
|
||||
CONFIG_MTD=y
|
||||
@@ -219,6 +261,10 @@ CONFIG_MTD_SPI_NOR=y
|
||||
CONFIG_MTD_UBI=m
|
||||
CONFIG_MTD_HYPERBUS=m
|
||||
CONFIG_HBMC_AM654=m
|
||||
CONFIG_OF_OVERLAY=y
|
||||
CONFIG_ZRAM=m
|
||||
CONFIG_ZRAM_WRITEBACK=y
|
||||
CONFIG_ZRAM_MEMORY_TRACKING=y
|
||||
CONFIG_BLK_DEV_LOOP=y
|
||||
CONFIG_BLK_DEV_NBD=m
|
||||
CONFIG_VIRTIO_BLK=y
|
||||
@@ -245,11 +291,15 @@ CONFIG_BLK_DEV_DM=m
|
||||
CONFIG_DM_MIRROR=m
|
||||
CONFIG_DM_ZERO=m
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_DUMMY=m
|
||||
CONFIG_MACVLAN=m
|
||||
CONFIG_MACVTAP=m
|
||||
CONFIG_IPVLAN=m
|
||||
CONFIG_VXLAN=m
|
||||
CONFIG_TUN=y
|
||||
CONFIG_VETH=m
|
||||
CONFIG_VIRTIO_NET=y
|
||||
CONFIG_NETKIT=y
|
||||
CONFIG_MHI_NET=m
|
||||
# CONFIG_NET_VENDOR_ALACRITECH is not set
|
||||
# CONFIG_NET_VENDOR_AMAZON is not set
|
||||
@@ -347,6 +397,7 @@ CONFIG_IWLMVM=m
|
||||
CONFIG_MWIFIEX=m
|
||||
CONFIG_MWIFIEX_SDIO=m
|
||||
CONFIG_MWIFIEX_PCIE=m
|
||||
CONFIG_MT7601U=m
|
||||
CONFIG_MT7921E=m
|
||||
CONFIG_RSI_91X=m
|
||||
CONFIG_WL18XX=m
|
||||
@@ -355,6 +406,7 @@ CONFIG_WWAN=m
|
||||
CONFIG_MHI_WWAN_CTRL=m
|
||||
CONFIG_MHI_WWAN_MBIM=m
|
||||
CONFIG_INPUT_MATRIXKMAP=y
|
||||
CONFIG_INPUT_JOYDEV=m
|
||||
CONFIG_INPUT_EVDEV=y
|
||||
CONFIG_KEYBOARD_ADC=m
|
||||
CONFIG_KEYBOARD_GPIO=y
|
||||
@@ -417,6 +469,7 @@ CONFIG_SPI_OMAP24XX=m
|
||||
CONFIG_SPI_SPIDEV=m
|
||||
CONFIG_PINCTRL=y
|
||||
CONFIG_PINCTRL_DA9062=m
|
||||
CONFIG_PINCTRL_MCP23S08=m
|
||||
CONFIG_PINCTRL_RK805=m
|
||||
CONFIG_PINCTRL_SINGLE=y
|
||||
CONFIG_GPIO_SYSFS=y
|
||||
@@ -522,6 +575,8 @@ CONFIG_VIDEO_IMX219=m
|
||||
CONFIG_VIDEO_IMX412=m
|
||||
CONFIG_VIDEO_OV5640=m
|
||||
CONFIG_VIDEO_OV5645=m
|
||||
CONFIG_AUXDISPLAY=y
|
||||
CONFIG_SEG_LED_GPIO=m
|
||||
CONFIG_DRM=m
|
||||
CONFIG_DRM_I2C_CH7006=m
|
||||
CONFIG_DRM_I2C_SIL164=m
|
||||
@@ -698,6 +753,7 @@ CONFIG_LEDS_PCA9532=m
|
||||
CONFIG_LEDS_GPIO=y
|
||||
CONFIG_LEDS_PWM=y
|
||||
CONFIG_LEDS_SYSCON=y
|
||||
CONFIG_LEDS_PWM_MULTICOLOR=m
|
||||
CONFIG_LEDS_TRIGGER_TIMER=y
|
||||
CONFIG_LEDS_TRIGGER_DISK=y
|
||||
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
|
||||
@@ -772,6 +828,8 @@ CONFIG_EXTCON_PTN5150=m
|
||||
CONFIG_EXTCON_USB_GPIO=y
|
||||
CONFIG_MEMORY=y
|
||||
CONFIG_IIO=y
|
||||
CONFIG_MMA8452=m
|
||||
CONFIG_AD7291=m
|
||||
CONFIG_MAX9611=m
|
||||
CONFIG_TI_ADS1015=m
|
||||
CONFIG_TI_AM335X_ADC=m
|
||||
@@ -782,6 +840,7 @@ CONFIG_IIO_ST_MAGN_3AXIS=m
|
||||
CONFIG_MPL3115=m
|
||||
CONFIG_PWM=y
|
||||
CONFIG_PWM_ADP5585=m
|
||||
CONFIG_PWM_GPIO=m
|
||||
CONFIG_PWM_TIECAP=m
|
||||
CONFIG_PWM_TIEHRPWM=m
|
||||
CONFIG_RESET_CONTROLLER=y
|
||||
@@ -822,7 +881,7 @@ CONFIG_HTE=y
|
||||
CONFIG_EXT4_FS=y
|
||||
CONFIG_EXT4_FS_POSIX_ACL=y
|
||||
CONFIG_EXT4_FS_SECURITY=y
|
||||
CONFIG_BTRFS_FS=m
|
||||
CONFIG_BTRFS_FS=y
|
||||
CONFIG_BTRFS_FS_POSIX_ACL=y
|
||||
CONFIG_FANOTIFY=y
|
||||
CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
|
||||
@@ -847,10 +906,13 @@ CONFIG_NFS_V4_2=y
|
||||
CONFIG_ROOT_NFS=y
|
||||
CONFIG_NLS_CODEPAGE_437=y
|
||||
CONFIG_NLS_ISO8859_1=y
|
||||
CONFIG_PERSISTENT_KEYRINGS=y
|
||||
CONFIG_ENCRYPTED_KEYS=y
|
||||
CONFIG_KEY_DH_OPERATIONS=y
|
||||
CONFIG_SECURITY=y
|
||||
CONFIG_SECURITY_APPARMOR=y
|
||||
CONFIG_CRYPTO_USER=y
|
||||
CONFIG_CRYPTO_TEST=m
|
||||
CONFIG_CRYPTO_DH=m
|
||||
CONFIG_CRYPTO_CURVE25519=m
|
||||
CONFIG_CRYPTO_ECHAINIV=y
|
||||
CONFIG_CRYPTO_ANSI_CPRNG=y
|
||||
|
||||
@@ -86,7 +86,6 @@ CONFIG_ZSWAP=y
|
||||
CONFIG_ZSWAP_DEFAULT_ON=y
|
||||
CONFIG_ZSWAP_SHRINKER_DEFAULT_ON=y
|
||||
CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD=y
|
||||
CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y
|
||||
# CONFIG_COMPAT_BRK is not set
|
||||
CONFIG_KSM=y
|
||||
CONFIG_CMA=y
|
||||
@@ -777,10 +776,11 @@ CONFIG_RTL8XXXU=m
|
||||
CONFIG_RTW88=m
|
||||
CONFIG_RTW88_8822BU=m
|
||||
CONFIG_RTW88_8822CU=m
|
||||
CONFIG_RTW88_8723DS=m
|
||||
CONFIG_RTW88_8723CS=m
|
||||
CONFIG_RTW88_8723DU=m
|
||||
CONFIG_RTW88_8821CU=m
|
||||
CONFIG_RTW89=m
|
||||
CONFIG_RTL8723DS=m
|
||||
CONFIG_RTL8192EU=m
|
||||
CONFIG_RTL8189ES=m
|
||||
CONFIG_ZD1211RW=m
|
||||
@@ -1245,11 +1245,6 @@ CONFIG_HID_ICADE=m
|
||||
CONFIG_HID_TWINHAN=m
|
||||
CONFIG_HID_KENSINGTON=m
|
||||
CONFIG_HID_LCPOWER=m
|
||||
CONFIG_HID_LOGITECH=m
|
||||
CONFIG_HID_LOGITECH_DJ=m
|
||||
CONFIG_LOGITECH_FF=y
|
||||
CONFIG_LOGIRUMBLEPAD2_FF=y
|
||||
CONFIG_LOGIG940_FF=y
|
||||
CONFIG_HID_MAGICMOUSE=m
|
||||
CONFIG_HID_MALTRON=m
|
||||
CONFIG_HID_MICROSOFT=m
|
||||
@@ -1535,7 +1530,6 @@ CONFIG_FB_TFT_TLS8204=m
|
||||
CONFIG_FB_TFT_UC1611=m
|
||||
CONFIG_FB_TFT_UC1701=m
|
||||
CONFIG_FB_TFT_UPD161704=m
|
||||
CONFIG_RTL8723CS=m
|
||||
CONFIG_COMMON_CLK_MAX9485=m
|
||||
CONFIG_COMMON_CLK_RK808=y
|
||||
CONFIG_COMMON_CLK_SCMI=m
|
||||
@@ -1692,7 +1686,6 @@ CONFIG_SQUASHFS_EMBEDDED=y
|
||||
CONFIG_PSTORE=y
|
||||
CONFIG_PSTORE_CONSOLE=y
|
||||
CONFIG_PSTORE_RAM=y
|
||||
CONFIG_SYSV_FS=m
|
||||
CONFIG_UFS_FS=m
|
||||
CONFIG_EROFS_FS=m
|
||||
# CONFIG_EROFS_FS_ZIP is not set
|
||||
@@ -1726,7 +1719,6 @@ CONFIG_CIFS_POSIX=y
|
||||
CONFIG_CIFS_FSCACHE=y
|
||||
CONFIG_CIFS_COMPRESSION=y
|
||||
CONFIG_SMB_SERVER=m
|
||||
CONFIG_SMB_SERVER_KERBEROS5=y
|
||||
CONFIG_NLS_DEFAULT="utf8"
|
||||
CONFIG_NLS_CODEPAGE_437=y
|
||||
CONFIG_NLS_CODEPAGE_850=y
|
||||
@@ -1799,8 +1791,6 @@ CONFIG_CRYPTO_DEV_ROCKCHIP_DEBUG=y
|
||||
CONFIG_CRYPTO_DEV_VIRTIO=m
|
||||
CONFIG_CRYPTO_DEV_SAFEXCEL=m
|
||||
CONFIG_CRYPTO_DEV_CCREE=m
|
||||
CONFIG_CRC4=m
|
||||
CONFIG_CRC7=m
|
||||
CONFIG_DMA_CMA=y
|
||||
CONFIG_IRQ_POLL=y
|
||||
CONFIG_PRINTK_TIME=y
|
||||
@@ -1812,7 +1802,6 @@ CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0
|
||||
# CONFIG_SLUB_DEBUG is not set
|
||||
CONFIG_DETECT_HUNG_TASK=y
|
||||
CONFIG_BOOTPARAM_HUNG_TASK_PANIC=y
|
||||
# CONFIG_SCHED_DEBUG is not set
|
||||
CONFIG_SCHEDSTATS=y
|
||||
CONFIG_STACKTRACE=y
|
||||
CONFIG_RCU_CPU_STALL_TIMEOUT=60
|
||||
|
||||
@@ -2694,7 +2694,7 @@ CONFIG_RTC_CLASS=y
|
||||
CONFIG_RTC_LIB_KUNIT_TEST=m
|
||||
CONFIG_RTC_DRV_AS3722=m
|
||||
CONFIG_RTC_DRV_DS1307=y
|
||||
CONFIG_RTC_DRV_HYM8563=y
|
||||
CONFIG_RTC_DRV_HYM8563=m
|
||||
CONFIG_RTC_DRV_MAX77686=y
|
||||
CONFIG_RTC_DRV_RK808=m
|
||||
CONFIG_RTC_DRV_ISL12026=m
|
||||
|
||||
@@ -2696,7 +2696,7 @@ CONFIG_RTC_CLASS=y
|
||||
CONFIG_RTC_LIB_KUNIT_TEST=m
|
||||
CONFIG_RTC_DRV_AS3722=m
|
||||
CONFIG_RTC_DRV_DS1307=y
|
||||
CONFIG_RTC_DRV_HYM8563=y
|
||||
CONFIG_RTC_DRV_HYM8563=m
|
||||
CONFIG_RTC_DRV_MAX77686=y
|
||||
CONFIG_RTC_DRV_RK808=m
|
||||
CONFIG_RTC_DRV_ISL12026=m
|
||||
|
||||
@@ -37,8 +37,8 @@ case "${BRANCH}" in
|
||||
edge)
|
||||
declare -g EXTRAWIFI="no"
|
||||
declare -g KERNELSOURCE='https://github.com/raspberrypi/linux'
|
||||
declare -g KERNEL_MAJOR_MINOR="6.14" # Major and minor versions of this kernel. For mainline caching.
|
||||
declare -g KERNELBRANCH="branch:rpi-6.14.y"
|
||||
declare -g KERNEL_MAJOR_MINOR="6.15" # Major and minor versions of this kernel. For mainline caching.
|
||||
declare -g KERNELBRANCH="branch:rpi-6.15.y"
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ case $BOARD in
|
||||
ATFSOURCE='https://github.com/tq-systems/atf' # required for ram
|
||||
ATFBRANCH="branch:TQM-lf_v2.10"
|
||||
BOOTSOURCE='https://github.com/tq-systems/u-boot-tqmaxx.git' # u-boot mainlining is hard and has low-priority
|
||||
BOOTBRANCH='branch:TQMa8-v2020.04_imx_5.4.70_2.3.0'
|
||||
BOOTBRANCH='commit:90aea55d842b6c3c978530532e16110123995002'
|
||||
BOOTPATCHDIR="u-boot-tqma" # could be removed when distro boot patches are integrated
|
||||
;;
|
||||
esac
|
||||
|
||||
@@ -11,11 +11,12 @@ ARCH="arm64"
|
||||
KERNEL_IMAGE_TYPE="Image"
|
||||
OVERLAY_DIR="/boot/dtb/freescale/overlay"
|
||||
SRC_EXTLINUX="yes" # use extlinux as default
|
||||
IMX_FIRMWARE="${IMX_FIRMWARE:-"firmware-imx-8.12"}"
|
||||
IMX_FIRMWARE="${IMX_FIRMWARE:-"firmware-imx-8.26-d4c33ab"}"
|
||||
# ATF_PLAT musst set in board
|
||||
# ATF_UART_BASE musst set in board
|
||||
# MAP = target_make,target_patchdir,target_files
|
||||
# use xxx:xxx to rename files after build
|
||||
ATFPATCHDIR='atf-imx8'
|
||||
ATF_TARGET_MAP="PLAT=${ATF_PLAT} IMX_BOOT_UART_BASE=${ATF_UART_BASE} bl31;;build/imx8mp/release/bl31.bin"
|
||||
UBOOT_TARGET_MAP="flash.bin;;flash.bin"
|
||||
|
||||
|
||||
@@ -35,8 +35,8 @@ case $BRANCH in
|
||||
;;
|
||||
|
||||
edge)
|
||||
declare -g KERNEL_MAJOR_MINOR="6.14" # Major and minor versions of this kernel.
|
||||
declare -g KERNELBRANCH="tag:v6.14.8"
|
||||
declare -g KERNEL_MAJOR_MINOR="6.15" # Major and minor versions of this kernel.
|
||||
declare -g KERNELBRANCH="tag:v6.15"
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
@@ -36,8 +36,8 @@ case $BRANCH in
|
||||
;;
|
||||
|
||||
edge)
|
||||
declare -g KERNEL_MAJOR_MINOR="6.14" # Major and minor versions of this kernel.
|
||||
declare -g KERNELBRANCH="tag:v6.14.8"
|
||||
declare -g KERNEL_MAJOR_MINOR="6.15" # Major and minor versions of this kernel.
|
||||
declare -g KERNELBRANCH="tag:v6.15"
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@ function uboot_custom_postprocess() {
|
||||
elif [[ $BOARD == odroidn2* ]]; then
|
||||
# FIP trees 'odroid-n2-plus' and 'odroid-n2' are identical.
|
||||
uboot_g12_postprocess "$SRC"/cache/sources/amlogic-boot-fip/odroid-n2 g12b
|
||||
elif [[ $BOARD == khadas-vim3 ]]; then
|
||||
# do nothing. VIM3 has its own post_uboot_custom_postprocess hook, directly in the board file.
|
||||
elif [[ $BOARD == khadas-vim3 ]] || [[ $BOARD == cainiao-cniot-core ]]; then
|
||||
# do nothing. These boards have their own post_uboot_custom_postprocess hook, directly in the board file.
|
||||
:
|
||||
elif [[ $BOARD == radxa-zero2 ]]; then
|
||||
uboot_g12_postprocess "$SRC"/cache/sources/amlogic-boot-fip/radxa-zero2 g12b
|
||||
|
||||
@@ -56,7 +56,7 @@ case $BRANCH in
|
||||
|
||||
edge)
|
||||
|
||||
declare -g KERNEL_MAJOR_MINOR="6.14" # Major and minor versions of this kernel.
|
||||
declare -g KERNEL_MAJOR_MINOR="6.15" # Major and minor versions of this kernel.
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
@@ -5,7 +5,7 @@ function extension_prepare_config__apa() {
|
||||
}
|
||||
|
||||
function custom_apt_repo__add_apa() {
|
||||
run_host_command_logged echo "deb [signed-by=${APT_SIGNING_KEY_FILE}] https://github.armbian.com/apa current main" "|" tee "${SDCARD}"/etc/apt/sources.list.d/armbian-apa.list
|
||||
run_host_command_logged echo "deb [signed-by=${APT_SIGNING_KEY_FILE}] http://github.armbian.com/apa current main" "|" tee "${SDCARD}"/etc/apt/sources.list.d/armbian-apa.list
|
||||
}
|
||||
|
||||
function post_armbian_repo_customize_image__install_from_apa() {
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
function custom_apt_repo__add_armbian-github-repo() {
|
||||
cat <<- EOF > "${SDCARD}"/etc/apt/sources.list.d/armbian-config.sources
|
||||
Types: deb
|
||||
URIs: https://github.armbian.com/configng
|
||||
URIs: http://github.armbian.com/configng
|
||||
Suites: stable
|
||||
Components: main
|
||||
Signed-By: ${APT_SIGNING_KEY_FILE}
|
||||
|
||||
@@ -14,3 +14,15 @@ network:
|
||||
dhcp4: yes
|
||||
dhcp6: yes
|
||||
ipv6-privacy: yes # Enabled by default on most current systems, but networkd currently doesn't enable IPv6 privacy by default, see https://man.archlinux.org/man/systemd.network.5
|
||||
all-lan-interfaces: # include interfaces that are renamed to 'lanX' by udev, e.g. nanopi-r2s
|
||||
match:
|
||||
name: "lan[0-9]*"
|
||||
dhcp4: yes
|
||||
dhcp6: yes
|
||||
ipv6-privacy: yes # Enabled by default on most current systems, but networkd currently doesn't enable IPv6 privacy by default, see https://man.archlinux.org/man/systemd.network.5
|
||||
all-wan-interfaces: # include interfaces that are renamed to 'wanX' by udev, e.g. nanopi-r1
|
||||
match:
|
||||
name: "wan[0-9]*"
|
||||
dhcp4: yes
|
||||
dhcp6: yes
|
||||
ipv6-privacy: yes # Enabled by default on most current systems, but networkd currently doesn't enable IPv6 privacy by default, see https://man.archlinux.org/man/systemd.network.5
|
||||
|
||||
@@ -367,8 +367,14 @@ function armbian_kernel_config__restore_enable_gpio_sysfs() {
|
||||
#
|
||||
function kernel_config_set_m() {
|
||||
declare module="$1"
|
||||
display_alert "Enabling kernel module" "${module}=m" "debug"
|
||||
run_host_command_logged ./scripts/config --module "$module"
|
||||
state=$(./scripts/config --state "$module")
|
||||
|
||||
if [ "$state" == "y" ]; then
|
||||
display_alert "${module} is already enabled as built-in"
|
||||
else
|
||||
display_alert "Enabling kernel module" "${module}=m" "debug"
|
||||
run_host_command_logged ./scripts/config --module "$module"
|
||||
fi
|
||||
}
|
||||
|
||||
function kernel_config_set_y() {
|
||||
|
||||
@@ -245,6 +245,8 @@ driver_xradio_xr819() {
|
||||
>> "$kerneldir/drivers/net/wireless/Makefile"
|
||||
sed -i '/source "drivers\/net\/wireless\/ti\/Kconfig"/a source "drivers\/net\/wireless\/xradio\/Kconfig"' \
|
||||
"$kerneldir/drivers/net/wireless/Kconfig"
|
||||
|
||||
process_patch_file "${SRC}/patch/misc/xradio-Switching-from-del_timer_sync-to-timer_delete_sync.patch" "applying"
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -525,7 +527,11 @@ driver_uwe5622() {
|
||||
fi
|
||||
|
||||
if linux-version compare "${version}" ge 6.15; then
|
||||
process_patch_file "${SRC}/patch/misc/wireless-uwe5622/uwe5622-v6.15-timer-api-changes.patch" "applying"
|
||||
if [[ "$LINUXFAMILY" == sunxi* ]]; then
|
||||
process_patch_file "${SRC}/patch/misc/wireless-uwe5622/uwe5622-fix-timer-api-changes-for-6.15-only-sunxi.patch" "applying"
|
||||
else
|
||||
process_patch_file "${SRC}/patch/misc/wireless-uwe5622/uwe5622-v6.15-timer-api-changes.patch" "applying"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -233,14 +233,17 @@ function interactive_config_ask_branch() {
|
||||
description="Recommended. Usually an LTS kernel"
|
||||
;;
|
||||
legacy)
|
||||
description="Old stable / Legacy / Vendor kernel"
|
||||
description="Old stable / Legacy kernel"
|
||||
;;
|
||||
edge)
|
||||
description="Bleeding edge / latest possible"
|
||||
;;
|
||||
cloud)
|
||||
description="Cloud optimised minimal LTS kernel"
|
||||
description="Cloud optimized minimal LTS kernel"
|
||||
;;
|
||||
vendor)
|
||||
description="Vendor BSP kernel"
|
||||
;;
|
||||
*)
|
||||
description="Experimental ${one_kernel_target} kernel / for Developers"
|
||||
;;
|
||||
|
||||
@@ -409,6 +409,13 @@ function docker_cli_prepare_launch() {
|
||||
"--env" "GITHUB_SHA=${GITHUB_SHA}"
|
||||
"--env" "GITHUB_WORKFLOW=${GITHUB_WORKFLOW}"
|
||||
"--env" "GITHUB_WORKSPACE=${GITHUB_WORKSPACE}"
|
||||
|
||||
# Pass proxy args
|
||||
"--env" "http_proxy=${http_proxy:-${HTTP_PROXY}}"
|
||||
"--env" "https_proxy=${https_proxy:-${HTTPS_PROXY}}"
|
||||
"--env" "HTTP_PROXY=${HTTP_PROXY}"
|
||||
"--env" "HTTPS_PROXY=${HTTPS_PROXY}"
|
||||
"--env" "APT_PROXY_ADDR=${APT_PROXY_ADDR}"
|
||||
)
|
||||
|
||||
# This env var is used super early (in entrypoint.sh), so set it as an env to current value.
|
||||
|
||||
@@ -203,7 +203,7 @@ function adaptative_prepare_host_dependencies() {
|
||||
udev # causes initramfs rebuild, but is usually pre-installed.
|
||||
uuid-dev
|
||||
zlib1g-dev
|
||||
gcc-arm-linux-gnueabi # necessary for rockchip64 (and maybe other too) ATF compilation
|
||||
gcc-arm-linux-gnueabi # necessary for rockchip64 (and maybe other too) ATF compilation
|
||||
|
||||
# by-category below
|
||||
file tree expect # logging utilities; expect is needed for 'unbuffer' command
|
||||
@@ -228,6 +228,12 @@ function adaptative_prepare_host_dependencies() {
|
||||
# Needed for some u-boot's, lest "tools/mkeficapsule.c:21:10: fatal error: gnutls/gnutls.h"
|
||||
host_dependencies+=("libgnutls28-dev")
|
||||
|
||||
# Some versions of U-Boot do not require/import 'python3-setuptools' properly, so add them explicitly.
|
||||
if [[ 'tag:v2022.04' == "${BOOTBRANCH:-}" || 'tag:v2022.07' == "${BOOTBRANCH:-}" ]]; then
|
||||
display_alert "Adding package to 'host_dependencies'" "python3-setuptools" "info"
|
||||
host_dependencies+=("python3-setuptools")
|
||||
fi
|
||||
|
||||
### Python2 -- required for some older u-boot builds
|
||||
# Debian newer than 'bookworm' and Ubuntu newer than 'lunar'/'mantic' does not carry python2 anymore; in this case some u-boot's might fail to build.
|
||||
# Last versions to support python2 were Debian 'bullseye' and Ubuntu 'jammy'
|
||||
|
||||
@@ -37,8 +37,15 @@ function chroot_sdcard_apt_get_remove() {
|
||||
DONT_MAINTAIN_APT_CACHE="yes" chroot_sdcard_apt_get remove "$@"
|
||||
}
|
||||
|
||||
function chroot_sdcard_custom_with_apt_logic() {
|
||||
declare command="${1}"
|
||||
shift
|
||||
chroot_command="${command}" chroot_sdcard_apt_get "$@"
|
||||
}
|
||||
|
||||
function chroot_sdcard_apt_get() {
|
||||
acng_check_status_or_restart # make sure apt-cacher-ng is running OK.
|
||||
declare apt_get_command="${chroot_command:-"apt-get"}"
|
||||
declare default_apt_logging="-qq"
|
||||
if [[ "${SHOW_DEBUG}" == "yes" ]]; then
|
||||
default_apt_logging=""
|
||||
@@ -83,7 +90,7 @@ function chroot_sdcard_apt_get() {
|
||||
prelude_clean_env=("env" "-i")
|
||||
fi
|
||||
|
||||
local_apt_deb_cache_prepare "before 'apt-get $*'" # sets LOCAL_APT_CACHE_INFO
|
||||
local_apt_deb_cache_prepare "before '${apt_get_command} $*'" # sets LOCAL_APT_CACHE_INFO
|
||||
if [[ "${LOCAL_APT_CACHE_INFO[USE]}" == "yes" ]]; then
|
||||
# prepare and mount apt cache dir at /var/cache/apt/archives in the SDCARD.
|
||||
skip_error_info="yes" run_host_command_logged mkdir -pv "${LOCAL_APT_CACHE_INFO[SDCARD_DEBS_DIR]}" "${LOCAL_APT_CACHE_INFO[SDCARD_LISTS_DIR]}"
|
||||
@@ -104,9 +111,14 @@ function chroot_sdcard_apt_get() {
|
||||
display_alert "Extra envs for apt:" "${extra_envs[*]@Q}" "debug"
|
||||
|
||||
local chroot_apt_result=1
|
||||
chroot_sdcard "${prelude_clean_env[@]}" "${extra_envs[@]}" apt-get "${apt_params[@]}" "$@" && chroot_apt_result=0
|
||||
if [[ "${apt_get_command}" == "apt-get" ]]; then
|
||||
chroot_sdcard "${prelude_clean_env[@]}" "${extra_envs[@]}" apt-get "${apt_params[@]}" "$@" && chroot_apt_result=0
|
||||
else
|
||||
# custom case: does not pass the apt parameters; but envs are passed normally.
|
||||
chroot_sdcard "${prelude_clean_env[@]}" "${extra_envs[@]}" "${apt_get_command}" "$@" && chroot_apt_result=0
|
||||
fi
|
||||
|
||||
local_apt_deb_cache_prepare "after 'apt-get $*'" # sets LOCAL_APT_CACHE_INFO
|
||||
local_apt_deb_cache_prepare "after '${apt_get_command} $*'" # sets LOCAL_APT_CACHE_INFO
|
||||
if [[ "${LOCAL_APT_CACHE_INFO[USE]}" == "yes" ]]; then
|
||||
display_alert "Unmounting apt deb cache dir" "${LOCAL_APT_CACHE_INFO[SDCARD_DEBS_DIR]}" "debug"
|
||||
run_host_command_logged umount "${LOCAL_APT_CACHE_INFO[SDCARD_DEBS_DIR]}"
|
||||
|
||||
@@ -166,7 +166,11 @@ function config_early_init() {
|
||||
|
||||
display_alert "Starting single build process" "${BOARD:-"no BOARD set"}" "info"
|
||||
|
||||
declare -g -a KERNEL_DRIVERS_SKIP=() # Prepare array to be filled in by board/family/extensions
|
||||
# Do not initialize an empty array if it exists.
|
||||
if [ "${KERNEL_DRIVERS_SKIP[*]}" == "" ]; then
|
||||
# Prepare array to be filled in by board/family/extensions
|
||||
declare -g -a KERNEL_DRIVERS_SKIP=()
|
||||
fi
|
||||
|
||||
silent="yes" track_general_config_variables "after config_early_init" # don't log anything, just init the change tracking
|
||||
|
||||
|
||||
@@ -164,6 +164,10 @@ function create_sources_list_and_deploy_repo_key() {
|
||||
APT_SIGNING_KEY_FILE="/usr/share/keyrings/armbian-archive-keyring.gpg"
|
||||
gpg --dearmor < "${SRC}"/config/armbian.key > "${basedir}${APT_SIGNING_KEY_FILE}"
|
||||
|
||||
# lets link to the old file as armbian-config uses it and we can't set there to new file
|
||||
# we user force linking as some old caches still exists
|
||||
chroot "${basedir}" /bin/bash -c "ln -fs armbian-archive-keyring.gpg /usr/share/keyrings/armbian.gpg"
|
||||
|
||||
# lets keep old way for old distributions
|
||||
if [[ "${RELEASE}" =~ (focal|bullseye) ]]; then
|
||||
cp "${SRC}"/config/armbian.key "${basedir}"
|
||||
@@ -192,7 +196,7 @@ function create_sources_list_and_deploy_repo_key() {
|
||||
fi
|
||||
cat <<- EOF > "${basedir}"/etc/apt/sources.list.d/armbian.sources
|
||||
Types: deb
|
||||
URIs: https://${armbian_mirror}
|
||||
URIs: http://${armbian_mirror}
|
||||
Suites: $RELEASE
|
||||
Components: ${components[*]}
|
||||
Signed-By: ${APT_SIGNING_KEY_FILE}
|
||||
|
||||
61
packages/bsp/cainiao-cniot-core/cainiao-cniot-core-HiFi.conf
Normal file
61
packages/bsp/cainiao-cniot-core/cainiao-cniot-core-HiFi.conf
Normal file
@@ -0,0 +1,61 @@
|
||||
SectionVerb {
|
||||
Value {
|
||||
TQ "HiFi"
|
||||
}
|
||||
|
||||
# Note that if some audio paths are not pre-configured here,
|
||||
# allowing audio streams to be input to the device without returning errors,
|
||||
# it will cause PipeWire to fail in parsing ALSA UCM.
|
||||
EnableSequence [
|
||||
# FRDDR_A -> TDMOUT_A -> TOHDMITX -> HDMI
|
||||
cset "name='FRDDR_A SINK 1 SEL' 'OUT 0'"
|
||||
cset "name='FRDDR_A SRC 1 EN Switch' on"
|
||||
cset "name='TDMOUT_A SRC SEL' 'IN 0'"
|
||||
cset "name='TOHDMITX Switch' off" # Disable output
|
||||
cset "name='TOHDMITX I2S SRC' 'I2S A'"
|
||||
|
||||
# FRDDR_B -> TDMOUT_B -> TOACODEC -> ACODEC -> Internal Speaker
|
||||
cset "name='FRDDR_B SINK 1 SEL' 'OUT 1'"
|
||||
cset "name='FRDDR_B SRC 1 EN Switch' on"
|
||||
cset "name='TDMOUT_B SRC SEL' 'IN 1'"
|
||||
cset "name='TOACODEC Lane Select' 0"
|
||||
cset "name='TOACODEC OUT EN Switch' off" # Disable output
|
||||
cset "name='TOACODEC SRC' 'I2S B'"
|
||||
cset "name='ACODEC Playback Volume' 255"
|
||||
]
|
||||
}
|
||||
|
||||
SectionDevice."HDMI" {
|
||||
Comment "HDMI"
|
||||
|
||||
Value {
|
||||
PlaybackPriority 200
|
||||
PlaybackPCM "hw:${CardId},0" # plughw won't work
|
||||
}
|
||||
|
||||
EnableSequence [
|
||||
cset "name='TOHDMITX Switch' on"
|
||||
]
|
||||
|
||||
DisableSequence [
|
||||
cset "name='TOHDMITX Switch' off"
|
||||
]
|
||||
}
|
||||
|
||||
SectionDevice."Speaker" {
|
||||
Comment "Internal Speaker"
|
||||
|
||||
Value {
|
||||
PlaybackPriority 100
|
||||
PlaybackPCM "hw:${CardId},1" # plughw won't work
|
||||
PlaybackMixerElem "ACODEC"
|
||||
}
|
||||
|
||||
EnableSequence [
|
||||
cset "name='TOACODEC OUT EN Switch' on"
|
||||
]
|
||||
|
||||
DisableSequence [
|
||||
cset "name='TOACODEC OUT EN Switch' off"
|
||||
]
|
||||
}
|
||||
56
packages/bsp/cainiao-cniot-core/cainiao-cniot-core.conf
Normal file
56
packages/bsp/cainiao-cniot-core/cainiao-cniot-core.conf
Normal file
@@ -0,0 +1,56 @@
|
||||
Syntax 4
|
||||
|
||||
Comment "CAINIAO CNIoT-CORE Sound"
|
||||
|
||||
SectionUseCase."HiFi" {
|
||||
File "/Amlogic/axg-sound-card/cainiao-cniot-core-HiFi.conf"
|
||||
Comment "Play HiFi quality music"
|
||||
}
|
||||
|
||||
BootSequence [
|
||||
# Reset to default
|
||||
cset "name='ACODEC Playback Volume' 0"
|
||||
cset "name='ACODEC Left DAC Sel' 'Left'"
|
||||
cset "name='ACODEC Mute Ramp Switch' off"
|
||||
cset "name='ACODEC Playback Channel Mode' 'Stereo'"
|
||||
cset "name='ACODEC Ramp Rate' 'Fast'"
|
||||
cset "name='ACODEC Right DAC Sel' 'Right'"
|
||||
cset "name='ACODEC Unmute Ramp Switch' off"
|
||||
cset "name='ACODEC Volume Ramp Switch' off"
|
||||
cset "name='FRDDR_A SINK 1 SEL' 'OUT 0'"
|
||||
cset "name='FRDDR_A SINK 2 SEL' 'OUT 0'"
|
||||
cset "name='FRDDR_A SINK 3 SEL' 'OUT 0'"
|
||||
cset "name='FRDDR_A SRC 1 EN Switch' off"
|
||||
cset "name='FRDDR_A SRC 2 EN Switch' off"
|
||||
cset "name='FRDDR_A SRC 3 EN Switch' off"
|
||||
cset "name='FRDDR_B SINK 1 SEL' 'OUT 0'"
|
||||
cset "name='FRDDR_B SINK 2 SEL' 'OUT 0'"
|
||||
cset "name='FRDDR_B SINK 3 SEL' 'OUT 0'"
|
||||
cset "name='FRDDR_B SRC 1 EN Switch' off"
|
||||
cset "name='FRDDR_B SRC 2 EN Switch' off"
|
||||
cset "name='FRDDR_B SRC 3 EN Switch' off"
|
||||
cset "name='FRDDR_C SINK 1 SEL' 'OUT 0'"
|
||||
cset "name='FRDDR_C SINK 2 SEL' 'OUT 0'"
|
||||
cset "name='FRDDR_C SINK 3 SEL' 'OUT 0'"
|
||||
cset "name='FRDDR_C SRC 1 EN Switch' off"
|
||||
cset "name='FRDDR_C SRC 2 EN Switch' off"
|
||||
cset "name='FRDDR_C SRC 3 EN Switch' off"
|
||||
cset "name='TDMOUT_A Gain Enable Switch' off"
|
||||
cset "name='TDMOUT_A Lane 0 Volume' 0"
|
||||
cset "name='TDMOUT_A Lane 1 Volume' 0"
|
||||
cset "name='TDMOUT_A Lane 2 Volume' 0"
|
||||
cset "name='TDMOUT_A Lane 3 Volume' 0"
|
||||
cset "name='TDMOUT_A SRC SEL' 'IN 0'"
|
||||
cset "name='TDMOUT_B Gain Enable Switch' off"
|
||||
cset "name='TDMOUT_B Lane 0 Volume' 0"
|
||||
cset "name='TDMOUT_B Lane 1 Volume' 0"
|
||||
cset "name='TDMOUT_B Lane 2 Volume' 0"
|
||||
cset "name='TDMOUT_B Lane 3 Volume' 0"
|
||||
cset "name='TDMOUT_B SRC SEL' 'IN 0'"
|
||||
cset "name='TOACODEC Lane Select' 0"
|
||||
cset "name='TOACODEC OUT EN Switch' off"
|
||||
cset "name='TOACODEC SRC' 'I2S A'"
|
||||
cset "name='TOHDMITX Switch' off"
|
||||
cset "name='TOHDMITX I2S SRC' 'I2S A'"
|
||||
cset "name='TOHDMITX SPDIF SRC' 'SPDIF A'"
|
||||
]
|
||||
@@ -0,0 +1,30 @@
|
||||
From 230e25fbcd0a36dfaaa8f3b9f0ad7d9cd0500736 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Schmiedel <Martin.Schmiedel@tq-group.com>
|
||||
Date: Wed, 28 May 2025 14:02:39 +0200
|
||||
Subject: [PATCH] fix needed by armbian build system
|
||||
|
||||
remove possibly contained gcc linker flags
|
||||
|
||||
Signed-off-by: Martin Schmiedel <Martin.Schmiedel@tq-group.com>
|
||||
---
|
||||
Makefile | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index ea5701347..7a4ff1244 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -343,6 +343,10 @@ GCC_V_OUTPUT := $(shell $(CC) -v 2>&1)
|
||||
|
||||
TF_LDFLAGS += -z noexecstack
|
||||
|
||||
+# remove possibly contained gcc linker flags we use the linker directly
|
||||
+gcc_linker_flags = -Wl,--no-warn-rwx-segment
|
||||
+TF_LDFLAGS := $(filter-out $(gcc_linker_flags), $(TF_LDFLAGS))
|
||||
+
|
||||
# LD = armlink
|
||||
ifneq ($(findstring armlink,$(notdir $(LD))),)
|
||||
TF_LDFLAGS += --diag_error=warning --lto_level=O1
|
||||
--
|
||||
2.43.0
|
||||
|
||||
259
patch/kernel/archive/imx8m-6.12/0003-TQMa8MPXL-LDO5-Fix.patch
Normal file
259
patch/kernel/archive/imx8m-6.12/0003-TQMa8MPXL-LDO5-Fix.patch
Normal file
@@ -0,0 +1,259 @@
|
||||
From 17f6e064d93013f2aaca40e9f44bf2c5b45652eb Mon Sep 17 00:00:00 2001
|
||||
From: Martin Schmiedel <martin.schmiedel@tq-group.com>
|
||||
Date: Thu, 5 Jun 2025 13:11:40 +0200
|
||||
Subject: [PATCH] TQMa8MPXL LDO5 Fix
|
||||
|
||||
Signed-off-by: Martin Schmiedel <martin.schmiedel@tq-group.com>
|
||||
Signed-off-by: Markus Niebel <Markus.Niebel@ew.tq-group.com>
|
||||
---
|
||||
.../imx8mp-tqma8mpql-mba8mp-ras314.dts | 13 ++---
|
||||
.../freescale/imx8mp-tqma8mpql-mba8mpxl.dts | 13 ++---
|
||||
.../boot/dts/freescale/imx8mp-tqma8mpql.dtsi | 48 +++++++++++++++----
|
||||
3 files changed, 53 insertions(+), 21 deletions(-)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql-mba8mp-ras314.dts b/arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql-mba8mp-ras314.dts
|
||||
index d7fd9d36f824..f7346b3d35fe 100644
|
||||
--- a/arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql-mba8mp-ras314.dts
|
||||
+++ b/arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql-mba8mp-ras314.dts
|
||||
@@ -467,6 +467,10 @@ &pwm4 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
+®_usdhc2_vqmmc {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
&sai5 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_sai5>;
|
||||
@@ -876,8 +880,7 @@ pinctrl_usdhc2: usdhc2grp {
|
||||
<MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0 0x1d2>,
|
||||
<MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1 0x1d2>,
|
||||
<MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2 0x1d2>,
|
||||
- <MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d2>,
|
||||
- <MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0xc0>;
|
||||
+ <MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d2>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
|
||||
@@ -886,8 +889,7 @@ pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
|
||||
<MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0 0x1d4>,
|
||||
<MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1 0x1d4>,
|
||||
<MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2 0x1d4>,
|
||||
- <MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d4>,
|
||||
- <MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0xc0>;
|
||||
+ <MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d4>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
|
||||
@@ -896,8 +898,7 @@ pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
|
||||
<MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0 0x1d4>,
|
||||
<MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1 0x1d4>,
|
||||
<MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2 0x1d4>,
|
||||
- <MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d4>,
|
||||
- <MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0xc0>;
|
||||
+ <MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d4>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc2_gpio: usdhc2-gpiogrp {
|
||||
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql-mba8mpxl.dts b/arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql-mba8mpxl.dts
|
||||
index ae64731266f3..e7c16a7ee6c2 100644
|
||||
--- a/arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql-mba8mpxl.dts
|
||||
+++ b/arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql-mba8mpxl.dts
|
||||
@@ -603,6 +603,10 @@ &pwm3 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
+®_usdhc2_vqmmc {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
&sai3 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_sai3>;
|
||||
@@ -982,8 +986,7 @@ pinctrl_usdhc2: usdhc2grp {
|
||||
<MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0 0x1d2>,
|
||||
<MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1 0x1d2>,
|
||||
<MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2 0x1d2>,
|
||||
- <MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d2>,
|
||||
- <MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0xc0>;
|
||||
+ <MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d2>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
|
||||
@@ -992,8 +995,7 @@ pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
|
||||
<MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0 0x1d4>,
|
||||
<MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1 0x1d4>,
|
||||
<MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2 0x1d4>,
|
||||
- <MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d4>,
|
||||
- <MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0xc0>;
|
||||
+ <MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d4>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
|
||||
@@ -1002,8 +1004,7 @@ pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
|
||||
<MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0 0x1d4>,
|
||||
<MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1 0x1d4>,
|
||||
<MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2 0x1d4>,
|
||||
- <MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d4>,
|
||||
- <MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0xc0>;
|
||||
+ <MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d4>;
|
||||
};
|
||||
|
||||
pinctrl_usdhc2_gpio: usdhc2-gpiogrp {
|
||||
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql.dtsi b/arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql.dtsi
|
||||
index 3ddc5aaa7c5f..05a518209b59 100644
|
||||
--- a/arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql.dtsi
|
||||
+++ b/arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql.dtsi
|
||||
@@ -16,13 +16,26 @@ memory@40000000 {
|
||||
reg = <0x0 0x40000000 0 0x80000000>;
|
||||
};
|
||||
|
||||
- /* identical to buck4_reg, but should never change */
|
||||
- reg_vcc3v3: regulator-vcc3v3 {
|
||||
- compatible = "regulator-fixed";
|
||||
- regulator-name = "VCC3V3";
|
||||
- regulator-min-microvolt = <3300000>;
|
||||
+ reg_usdhc2_vqmmc: regulator-usdhc2-vqmmc {
|
||||
+ compatible = "regulator-gpio";
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&pinctrl_reg_usdhc2_vqmmc>;
|
||||
+ regulator-name = "V_SD2";
|
||||
+ regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
- regulator-always-on;
|
||||
+ gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
|
||||
+ states = <1800000 0x1>,
|
||||
+ <3300000 0x0>;
|
||||
+ vin-supply = <&ldo5_reg>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
+ reg_5v_in: regulator-5v-in {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "V_5V_IN";
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
+ regulator-boot-on;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -80,6 +93,7 @@ buck1_reg: BUCK1 {
|
||||
regulator-name = "BUCK1";
|
||||
regulator-min-microvolt = <850000>;
|
||||
regulator-max-microvolt = <950000>;
|
||||
+ vin-supply = <®_5v_in>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
regulator-ramp-delay = <3125>;
|
||||
@@ -90,6 +104,7 @@ buck2_reg: BUCK2 {
|
||||
regulator-name = "BUCK2";
|
||||
regulator-min-microvolt = <850000>;
|
||||
regulator-max-microvolt = <1000000>;
|
||||
+ vin-supply = <®_5v_in>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
nxp,dvs-run-voltage = <950000>;
|
||||
@@ -102,6 +117,7 @@ buck4_reg: BUCK4 {
|
||||
regulator-name = "BUCK4";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
+ vin-supply = <®_5v_in>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
@@ -111,6 +127,7 @@ buck5_reg: BUCK5 {
|
||||
regulator-name = "BUCK5";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
+ vin-supply = <®_5v_in>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
@@ -120,6 +137,7 @@ buck6_reg: BUCK6 {
|
||||
regulator-name = "BUCK6";
|
||||
regulator-min-microvolt = <1100000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
+ vin-supply = <®_5v_in>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
@@ -129,6 +147,7 @@ ldo1_reg: LDO1 {
|
||||
regulator-name = "LDO1";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
+ vin-supply = <®_5v_in>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
@@ -138,6 +157,7 @@ ldo3_reg: LDO3 {
|
||||
regulator-name = "LDO3";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
+ vin-supply = <®_5v_in>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
@@ -147,6 +167,7 @@ ldo4_reg: LDO4 {
|
||||
regulator-name = "LDO4";
|
||||
regulator-min-microvolt = <800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
+ vin-supply = <®_5v_in>;
|
||||
};
|
||||
|
||||
/* VCC SD IO - switched using SD2 VSELECT */
|
||||
@@ -154,6 +175,7 @@ ldo5_reg: LDO5 {
|
||||
regulator-name = "LDO5";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
+ vin-supply = <®_5v_in>;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -168,17 +190,21 @@ at24c02: eeprom@53 {
|
||||
read-only;
|
||||
reg = <0x53>;
|
||||
pagesize = <16>;
|
||||
- vcc-supply = <®_vcc3v3>;
|
||||
+ vcc-supply = <&buck4_reg>;
|
||||
};
|
||||
|
||||
m24c64: eeprom@57 {
|
||||
compatible = "atmel,24c64";
|
||||
reg = <0x57>;
|
||||
pagesize = <32>;
|
||||
- vcc-supply = <®_vcc3v3>;
|
||||
+ vcc-supply = <&buck4_reg>;
|
||||
};
|
||||
};
|
||||
|
||||
+&usdhc2 {
|
||||
+ vqmmc-supply = <®_usdhc2_vqmmc>;
|
||||
+};
|
||||
+
|
||||
&usdhc3 {
|
||||
pinctrl-names = "default", "state_100mhz", "state_200mhz";
|
||||
pinctrl-0 = <&pinctrl_usdhc3>;
|
||||
@@ -188,7 +214,7 @@ &usdhc3 {
|
||||
non-removable;
|
||||
no-sd;
|
||||
no-sdio;
|
||||
- vmmc-supply = <®_vcc3v3>;
|
||||
+ vmmc-supply = <&buck4_reg>;
|
||||
vqmmc-supply = <&buck5_reg>;
|
||||
status = "okay";
|
||||
};
|
||||
@@ -228,6 +254,10 @@ pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
|
||||
fsl,pins = <MX8MP_IOMUXC_SD2_RESET_B__GPIO2_IO19 0x10>;
|
||||
};
|
||||
|
||||
+ pinctrl_reg_usdhc2_vqmmc: regusdhc2vqmmcgrp {
|
||||
+ fsl,pins = <MX8MP_IOMUXC_GPIO1_IO04__GPIO1_IO04 0xc0>;
|
||||
+ };
|
||||
+
|
||||
pinctrl_usdhc3: usdhc3grp {
|
||||
fsl,pins = <MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK 0x194>,
|
||||
<MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD 0x1d4>,
|
||||
--
|
||||
2.43.0
|
||||
|
||||
@@ -43,7 +43,7 @@ index 111111111111..222222222222 100644
|
||||
+ */
|
||||
{
|
||||
.limits = {
|
||||
.max_hdmi_phy_freq = 1650000,
|
||||
.max_hdmi_phy_freq = 1650000000,
|
||||
},
|
||||
.attrs = (const struct soc_device_attribute []) {
|
||||
{ .soc_id = "GXL (S805*)", },
|
||||
|
||||
@@ -0,0 +1,600 @@
|
||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
/*
|
||||
* Copyright (c) 2019 BayLibre, SAS
|
||||
* Author: Neil Armstrong <narmstrong@baylibre.com>
|
||||
* Copyright (c) 2019 Christian Hewitt <christianshewitt@gmail.com>
|
||||
* Copyright (c) 2025 retro98boy <retro98boy@qq.com>
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "meson-g12b-a311d.dtsi"
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include <dt-bindings/gpio/meson-g12a-gpio.h>
|
||||
#include <dt-bindings/sound/meson-g12a-toacodec.h>
|
||||
#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
|
||||
|
||||
/ {
|
||||
compatible = "CAINIAO,CNIoT-CORE", "amlogic,a311d", "amlogic,g12b";
|
||||
model = "CAINIAO CNIoT-CORE";
|
||||
|
||||
aliases {
|
||||
serial0 = &uart_AO;
|
||||
ethernet0 = ðmac;
|
||||
rtc99 = &vrtc;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
memory@0 {
|
||||
device_type = "memory";
|
||||
reg = <0x0 0x0 0x0 0x80000000>;
|
||||
};
|
||||
|
||||
fan0: pwm-fan {
|
||||
compatible = "pwm-fan";
|
||||
#cooling-cells = <2>;
|
||||
cooling-levels = <0 120 170 220>;
|
||||
pwms = <&pwm_cd 1 40000 1>;
|
||||
tach-gpio = <&gpio GPIOA_4 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
gpio-keys-polled {
|
||||
compatible = "gpio-keys-polled";
|
||||
poll-interval = <100>;
|
||||
|
||||
pwr-btn {
|
||||
label = "pwr-btn";
|
||||
linux,code = <KEY_POWER>;
|
||||
gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
adc-keys {
|
||||
compatible = "adc-keys";
|
||||
io-channels = <&saradc 2>;
|
||||
io-channel-names = "buttons";
|
||||
keyup-threshold-microvolt = <1710000>;
|
||||
poll-interval = <100>;
|
||||
|
||||
button-recovery {
|
||||
label = "Recovery";
|
||||
linux,code = <KEY_VENDOR>;
|
||||
press-threshold-microvolt = <10000>;
|
||||
};
|
||||
};
|
||||
|
||||
emmc_pwrseq: emmc-pwrseq {
|
||||
compatible = "mmc-pwrseq-emmc";
|
||||
reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; /* In the vendor DTS, this is BOOT_10, but the actual test result is BOOT_12. */
|
||||
};
|
||||
|
||||
hdmi-connector {
|
||||
compatible = "hdmi-connector";
|
||||
type = "a";
|
||||
|
||||
port {
|
||||
hdmi_connector_in: endpoint {
|
||||
remote-endpoint = <&hdmi_tx_tmds_out>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ht6872: ht6872 {
|
||||
compatible = "simple-audio-amplifier";
|
||||
enable-gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>;
|
||||
VCC-supply = <&vdd_amp>;
|
||||
sound-name-prefix = "HT6872";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
sdio_pwrseq: sdio-pwrseq {
|
||||
compatible = "mmc-pwrseq-simple";
|
||||
reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
|
||||
clocks = <&wifi32k>;
|
||||
clock-names = "ext_clock";
|
||||
};
|
||||
|
||||
wifi32k: wifi32k {
|
||||
compatible = "pwm-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <32768>;
|
||||
pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
|
||||
};
|
||||
|
||||
dc_in: regulator-dc-in {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "dc_in";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
/* important to usb hub */
|
||||
amp_power: regulator-amp-power {
|
||||
compatible = "regulator-fixed";
|
||||
enable-active-high;
|
||||
gpio = <&gpio GPIOH_8 GPIO_ACTIVE_HIGH>;
|
||||
regulator-name = "amp_power";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
vin-supply = <&dc_in>;
|
||||
};
|
||||
|
||||
vddao_1v8: regulator-vddao-1v8 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vddao_1v8";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
vin-supply = <&dc_in>;
|
||||
};
|
||||
|
||||
vddcpu_a: regulator-vddcpu-a {
|
||||
compatible = "pwm-regulator";
|
||||
regulator-name = "VDDCPU_A";
|
||||
regulator-min-microvolt = <690000>;
|
||||
regulator-max-microvolt = <1050000>;
|
||||
pwm-supply = <&dc_in>;
|
||||
pwms = <&pwm_ab 0 1250 0>;
|
||||
pwm-dutycycle-range = <100 0>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vddcpu_b: regulator-vddcpu-b {
|
||||
compatible = "pwm-regulator";
|
||||
regulator-name = "VDDCPU_B";
|
||||
regulator-min-microvolt = <690000>;
|
||||
regulator-max-microvolt = <1050000>;
|
||||
pwm-supply = <&dc_in>;
|
||||
pwms = <&pwm_AO_cd 1 1250 0>;
|
||||
pwm-dutycycle-range = <100 0>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vsys_3v3: regulator-vsys-3v3 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vsys_3v3";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
vin-supply = <&dc_in>;
|
||||
};
|
||||
|
||||
usb_pwr: regulator-usb-pwr {
|
||||
compatible = "regulator-fixed";
|
||||
enable-active-high;
|
||||
gpio = <&gpio_ao GPIOAO_6 GPIO_ACTIVE_HIGH>; /* always keep usb hub reset pin high */
|
||||
regulator-name = "usb_pwr";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
vin-supply = <&dc_in>;
|
||||
};
|
||||
|
||||
/*
|
||||
* The Type-C port on the host is switched with the four USB contacts on the side of the host via GPIOA_14.
|
||||
* Since the Type-C port on the host is either used for power supply or blocked by the dock,
|
||||
* switching USB 2.0 access to the four contacts on the side of the host is a better choice.
|
||||
* To use the Type-C port for data transmission,
|
||||
* you only need to set GPIOA_14 in the node below to a high level.
|
||||
*/
|
||||
usb_switch: regulator-usb-switch {
|
||||
compatible = "regulator-fixed";
|
||||
enable-active-low;
|
||||
gpio = <&gpio GPIOA_14 GPIO_ACTIVE_LOW>;
|
||||
regulator-name = "usb_switch";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
vin-supply = <&dc_in>;
|
||||
};
|
||||
|
||||
vdd_amp: regulator-vdd-amp {
|
||||
compatible = "regulator-fixed";
|
||||
enable-active-high;
|
||||
gpio = <&gpio GPIOH_7 GPIO_ACTIVE_HIGH>;
|
||||
regulator-name = "vdd_amp";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
vin-supply = <&dc_in>;
|
||||
};
|
||||
|
||||
sound {
|
||||
compatible = "amlogic,axg-sound-card";
|
||||
model = "cainiao-cniot-core";
|
||||
audio-widgets = "Speaker", "Internal Speaker";
|
||||
audio-aux-devs = <&tdmout_a>, <&tdmout_b>, <&ht6872>;
|
||||
audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 0",
|
||||
"TDMOUT_A IN 1", "FRDDR_B OUT 0",
|
||||
"TDMOUT_A IN 2", "FRDDR_C OUT 0",
|
||||
"TDM_A Playback", "TDMOUT_A OUT",
|
||||
"TDMOUT_B IN 0", "FRDDR_A OUT 1",
|
||||
"TDMOUT_B IN 1", "FRDDR_B OUT 1",
|
||||
"TDMOUT_B IN 2", "FRDDR_C OUT 1",
|
||||
"TDM_B Playback", "TDMOUT_B OUT",
|
||||
"HT6872 INL", "ACODEC LOLP",
|
||||
"HT6872 INR", "ACODEC LORP",
|
||||
"Internal Speaker", "HT6872 OUTL",
|
||||
"Internal Speaker", "HT6872 OUTR";
|
||||
|
||||
clocks = <&clkc CLKID_MPLL2>,
|
||||
<&clkc CLKID_MPLL0>,
|
||||
<&clkc CLKID_MPLL1>;
|
||||
|
||||
assigned-clocks = <&clkc CLKID_MPLL2>,
|
||||
<&clkc CLKID_MPLL0>,
|
||||
<&clkc CLKID_MPLL1>;
|
||||
assigned-clock-parents = <0>, <0>, <0>;
|
||||
assigned-clock-rates = <294912000>,
|
||||
<270950400>,
|
||||
<393216000>;
|
||||
|
||||
dai-link-0 {
|
||||
sound-dai = <&frddr_a>;
|
||||
};
|
||||
|
||||
dai-link-1 {
|
||||
sound-dai = <&frddr_b>;
|
||||
};
|
||||
|
||||
dai-link-2 {
|
||||
sound-dai = <&frddr_c>;
|
||||
};
|
||||
|
||||
/* 8ch hdmi interface */
|
||||
dai-link-3 {
|
||||
sound-dai = <&tdmif_a>;
|
||||
dai-format = "i2s";
|
||||
dai-tdm-slot-tx-mask-0 = <1 1>;
|
||||
dai-tdm-slot-tx-mask-1 = <1 1>;
|
||||
dai-tdm-slot-tx-mask-2 = <1 1>;
|
||||
dai-tdm-slot-tx-mask-3 = <1 1>;
|
||||
mclk-fs = <256>;
|
||||
|
||||
codec-0 {
|
||||
sound-dai = <&tohdmitx TOHDMITX_I2S_IN_A>;
|
||||
};
|
||||
|
||||
codec-1 {
|
||||
sound-dai = <&toacodec TOACODEC_IN_A>;
|
||||
};
|
||||
};
|
||||
|
||||
/* 8ch hdmi interface */
|
||||
dai-link-4 {
|
||||
sound-dai = <&tdmif_b>;
|
||||
dai-format = "i2s";
|
||||
dai-tdm-slot-tx-mask-0 = <1 1>;
|
||||
dai-tdm-slot-tx-mask-1 = <1 1>;
|
||||
dai-tdm-slot-tx-mask-2 = <1 1>;
|
||||
dai-tdm-slot-tx-mask-3 = <1 1>;
|
||||
mclk-fs = <256>;
|
||||
|
||||
codec-0 {
|
||||
sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
|
||||
};
|
||||
|
||||
codec-1 {
|
||||
sound-dai = <&toacodec TOACODEC_IN_B>;
|
||||
};
|
||||
};
|
||||
|
||||
/* hdmi glue */
|
||||
dai-link-5 {
|
||||
sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
|
||||
|
||||
codec {
|
||||
sound-dai = <&hdmi_tx>;
|
||||
};
|
||||
};
|
||||
|
||||
/* acodec glue */
|
||||
dai-link-6 {
|
||||
sound-dai = <&toacodec TOACODEC_OUT>;
|
||||
|
||||
codec {
|
||||
sound-dai = <&acodec>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&acodec {
|
||||
AVDD-supply = <&vddao_1v8>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&arb {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&clkc_audio {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&cecb_AO {
|
||||
pinctrl-0 = <&cec_ao_b_h_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
hdmi-phandle = <&hdmi_tx>;
|
||||
};
|
||||
|
||||
&cpu0 {
|
||||
cpu-supply = <&vddcpu_b>;
|
||||
operating-points-v2 = <&cpu_opp_table_0>;
|
||||
clocks = <&clkc CLKID_CPU_CLK>;
|
||||
clock-latency = <50000>;
|
||||
};
|
||||
|
||||
&cpu1 {
|
||||
cpu-supply = <&vddcpu_b>;
|
||||
operating-points-v2 = <&cpu_opp_table_0>;
|
||||
clocks = <&clkc CLKID_CPU_CLK>;
|
||||
clock-latency = <50000>;
|
||||
};
|
||||
|
||||
&cpu100 {
|
||||
cpu-supply = <&vddcpu_a>;
|
||||
operating-points-v2 = <&cpub_opp_table_1>;
|
||||
clocks = <&clkc CLKID_CPUB_CLK>;
|
||||
clock-latency = <50000>;
|
||||
};
|
||||
|
||||
&cpu101 {
|
||||
cpu-supply = <&vddcpu_a>;
|
||||
operating-points-v2 = <&cpub_opp_table_1>;
|
||||
clocks = <&clkc CLKID_CPUB_CLK>;
|
||||
clock-latency = <50000>;
|
||||
};
|
||||
|
||||
&cpu102 {
|
||||
cpu-supply = <&vddcpu_a>;
|
||||
operating-points-v2 = <&cpub_opp_table_1>;
|
||||
clocks = <&clkc CLKID_CPUB_CLK>;
|
||||
clock-latency = <50000>;
|
||||
};
|
||||
|
||||
&cpu103 {
|
||||
cpu-supply = <&vddcpu_a>;
|
||||
operating-points-v2 = <&cpub_opp_table_1>;
|
||||
clocks = <&clkc CLKID_CPUB_CLK>;
|
||||
clock-latency = <50000>;
|
||||
};
|
||||
|
||||
&cpu_thermal {
|
||||
trips {
|
||||
cpu_active: cpu-active {
|
||||
temperature = <60000>; /* millicelsius */
|
||||
hysteresis = <5000>; /* millicelsius */
|
||||
type = "active";
|
||||
};
|
||||
};
|
||||
|
||||
cooling-maps {
|
||||
map2 {
|
||||
trip = <&cpu_active>;
|
||||
cooling-device = <&fan0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ðmac {
|
||||
pinctrl-0 = <ð_pins>, <ð_rgmii_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
phy-mode = "rgmii";
|
||||
phy-handle = <&rtl8211f>;
|
||||
amlogic,tx-delay-ns = <2>;
|
||||
};
|
||||
|
||||
&ext_mdio {
|
||||
rtl8211f: rtl8211f@0 {
|
||||
reg = <0>;
|
||||
max-speed = <1000>;
|
||||
|
||||
reset-assert-us = <10000>;
|
||||
reset-deassert-us = <80000>;
|
||||
reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
|
||||
|
||||
interrupt-parent = <&gpio_intc>;
|
||||
/* MAC_INTR on GPIOZ_14 */
|
||||
interrupts = <IRQID_GPIOZ_14 IRQ_TYPE_LEVEL_LOW>; /* tested by voltmeter */
|
||||
};
|
||||
};
|
||||
|
||||
&frddr_a {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&frddr_b {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&frddr_c {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&hdmi_tx {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
|
||||
pinctrl-names = "default";
|
||||
};
|
||||
|
||||
&hdmi_tx_tmds_port {
|
||||
hdmi_tx_tmds_out: endpoint {
|
||||
remote-endpoint = <&hdmi_connector_in>;
|
||||
};
|
||||
};
|
||||
|
||||
&npu {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pwm_ab {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&pwm_a_e_pins>;
|
||||
pinctrl-names = "default";
|
||||
clocks = <&xtal>;
|
||||
clock-names = "clkin0";
|
||||
};
|
||||
|
||||
&pwm_cd {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&pwm_d_a_pins>;
|
||||
pinctrl-names = "default";
|
||||
};
|
||||
|
||||
&pwm_ef {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&pwm_e_pins>;
|
||||
pinctrl-names = "default";
|
||||
};
|
||||
|
||||
&pwm_AO_cd {
|
||||
pinctrl-0 = <&pwm_ao_d_e_pins>;
|
||||
pinctrl-names = "default";
|
||||
clocks = <&xtal>;
|
||||
clock-names = "clkin1";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&saradc {
|
||||
status = "okay";
|
||||
vref-supply = <&vddao_1v8>;
|
||||
};
|
||||
|
||||
&sd_emmc_a {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&sdio_pins>;
|
||||
pinctrl-1 = <&sdio_clk_gate_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
bus-width = <4>;
|
||||
max-frequency = <100000000>;
|
||||
cap-sdio-irq;
|
||||
cap-sd-highspeed;
|
||||
non-removable;
|
||||
|
||||
/* WiFi firmware requires power in suspend */
|
||||
keep-power-in-suspend;
|
||||
mmc-pwrseq = <&sdio_pwrseq>;
|
||||
vmmc-supply = <&vsys_3v3>;
|
||||
vqmmc-supply = <&vddao_1v8>;
|
||||
|
||||
rtl8822cs: wifi@1 {
|
||||
reg = <1>;
|
||||
/*
|
||||
* tested by voltmeter
|
||||
* WL_REG_ON GPIOX_6
|
||||
* WL_WAKE_HOST GPIOX_5
|
||||
*/
|
||||
};
|
||||
};
|
||||
|
||||
&sd_emmc_c {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>;
|
||||
pinctrl-1 = <&emmc_clk_gate_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
|
||||
max-frequency = <200000000>;
|
||||
bus-width = <8>;
|
||||
cap-mmc-highspeed;
|
||||
mmc-ddr-1_8v;
|
||||
mmc-hs200-1_8v;
|
||||
non-removable;
|
||||
|
||||
mmc-pwrseq = <&emmc_pwrseq>;
|
||||
vmmc-supply = <&vsys_3v3>;
|
||||
vqmmc-supply = <&vddao_1v8>;
|
||||
};
|
||||
|
||||
/*
|
||||
* GPIOH_4 is connected to 6 WS2812 LEDs.
|
||||
* Reusing GPIOH_4 as SPI MOSI to control the WS2812 offers superior performance compared to the GPIO method.
|
||||
*/
|
||||
&spicc1_pins {
|
||||
mux {
|
||||
groups = "spi1_mosi";
|
||||
};
|
||||
};
|
||||
|
||||
/* Controlling WS2812 LEDs via spidev in user space. */
|
||||
&spicc1 {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&spicc1_pins>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
spidev@0 {
|
||||
compatible = "rohm,dh2228fv";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <3340000>;
|
||||
};
|
||||
};
|
||||
|
||||
&tdmif_a {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&tdmif_b {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&tdmout_a {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&tdmout_b {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&toacodec {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&tohdmitx {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart_A {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
|
||||
pinctrl-names = "default";
|
||||
uart-has-rtscts;
|
||||
|
||||
bluetooth {
|
||||
compatible = "realtek,rtl8822cs-bt";
|
||||
enable-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; /* tested by voltmeter */
|
||||
host-wake-gpios = <&gpio GPIOX_18 GPIO_ACTIVE_HIGH>; /* tested by voltmeter */
|
||||
device-wake-gpios = <&gpio GPIOX_19 GPIO_ACTIVE_HIGH>; /* tested by voltmeter */
|
||||
};
|
||||
};
|
||||
|
||||
&uart_AO {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&uart_ao_a_pins>;
|
||||
pinctrl-names = "default";
|
||||
};
|
||||
|
||||
&usb2_phy0 {
|
||||
phy-supply = <&_power>;
|
||||
};
|
||||
|
||||
&usb2_phy1 {
|
||||
phy-supply = <&usb_switch>;
|
||||
};
|
||||
|
||||
&usb3_pcie_phy {
|
||||
phy-supply = <&usb_pwr>;
|
||||
};
|
||||
|
||||
&usb {
|
||||
status = "okay";
|
||||
dr_mode = "host";
|
||||
};
|
||||
@@ -1,6 +1,6 @@
|
||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
/*
|
||||
* Copyright (c) 2024 Patrick Yavitz <pyavitz@xxxxx.com>
|
||||
* Copyright (c) 2024 Patrick Yavitz <pyavitz@gmail.com>
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
@@ -16,21 +16,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
rtc: rtc@51 {
|
||||
compatible = "nxp,pcf85063a";
|
||||
reg = <0x51>;
|
||||
wakeup-source;
|
||||
};
|
||||
|
||||
fanctrl: emc2305@2f {
|
||||
compatible = "smsc,emc2305";
|
||||
reg = <0x2f>;
|
||||
#cooling-cells = <0x02>;
|
||||
wakeup-source;
|
||||
};
|
||||
};
|
||||
|
||||
&cpu_thermal {
|
||||
trips {
|
||||
fanmid0: fanmid0 {
|
||||
@@ -59,6 +44,21 @@
|
||||
};
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
rtc: rtc@51 {
|
||||
compatible = "nxp,pcf85063a";
|
||||
reg = <0x51>;
|
||||
wakeup-source;
|
||||
};
|
||||
|
||||
fanctrl: emc2305@2f {
|
||||
compatible = "smsc,emc2305";
|
||||
reg = <0x2f>;
|
||||
#cooling-cells = <0x02>;
|
||||
wakeup-source;
|
||||
};
|
||||
};
|
||||
|
||||
&usb {
|
||||
dr_mode = "host";
|
||||
};
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From e1e66c32b7a9ce7cf52922fe073c4bff40054599 Mon Sep 17 00:00:00 2001
|
||||
From: Yuntian Zhang <yt@radxa.com>
|
||||
Date: Thu, 13 Jan 2022 21:34:10 +0800
|
||||
Subject: pinctrl: meson: Add several missing pinmux for pwm functions
|
||||
Subject: [PATCH] pinctrl: meson: Add several missing pinmux for pwm functions
|
||||
|
||||
The following pin definitions are mentioned in A311D Quick
|
||||
Reference Manual and S922X Public Datasheet, but not in S905Y2
|
||||
@@ -11,15 +11,15 @@ They are currently exposed in Radxa Zero 2's GPIO header.
|
||||
|
||||
Signed-off-by: Yuntian Zhang <yt@radxa.com>
|
||||
---
|
||||
arch/arm64/boot/dts/amlogic/meson-g12b.dtsi | 34 ++++++++++
|
||||
drivers/pinctrl/meson/pinctrl-meson-g12a.c | 14 +++-
|
||||
2 files changed, 45 insertions(+), 3 deletions(-)
|
||||
arch/arm64/boot/dts/amlogic/meson-g12b.dtsi | 42 +++++++++++++++++++++
|
||||
drivers/pinctrl/meson/pinctrl-meson-g12a.c | 16 ++++++--
|
||||
2 files changed, 55 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b.dtsi
|
||||
index 111111111111..222222222222 100644
|
||||
index 86e6ceb31..b2f9a09b2 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12b.dtsi
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b.dtsi
|
||||
@@ -149,3 +149,37 @@ &pmu {
|
||||
@@ -149,3 +149,45 @@ &pmu {
|
||||
&npu {
|
||||
power-domains = <&pwrc PWRC_G12A_NNA_ID>;
|
||||
};
|
||||
@@ -56,12 +56,20 @@ index 111111111111..222222222222 100644
|
||||
+ bias-disable;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ pwm_d_a_pins: pwm-d-a {
|
||||
+ mux {
|
||||
+ groups = "pwm_d_a";
|
||||
+ function = "pwm_d";
|
||||
+ bias-disable;
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
diff --git a/drivers/pinctrl/meson/pinctrl-meson-g12a.c b/drivers/pinctrl/meson/pinctrl-meson-g12a.c
|
||||
index 111111111111..222222222222 100644
|
||||
index e2788bfc5..c94360afc 100644
|
||||
--- a/drivers/pinctrl/meson/pinctrl-meson-g12a.c
|
||||
+++ b/drivers/pinctrl/meson/pinctrl-meson-g12a.c
|
||||
@@ -271,17 +271,21 @@ static const unsigned int eth_act_led_pins[] = { GPIOZ_15 };
|
||||
@@ -268,17 +268,22 @@ static const unsigned int eth_act_led_pins[] = { GPIOZ_15 };
|
||||
static const unsigned int pwm_a_pins[] = { GPIOX_6 };
|
||||
|
||||
/* pwm_b */
|
||||
@@ -80,20 +88,22 @@ index 111111111111..222222222222 100644
|
||||
static const unsigned int pwm_d_x3_pins[] = { GPIOX_3 };
|
||||
static const unsigned int pwm_d_x6_pins[] = { GPIOX_6 };
|
||||
+static const unsigned int pwm_d_z_pins[] = { GPIOZ_2 };
|
||||
+static const unsigned int pwm_d_a_pins[] = { GPIOA_4 };
|
||||
|
||||
/* pwm_e */
|
||||
static const unsigned int pwm_e_pins[] = { GPIOX_16 };
|
||||
@@ -594,6 +598,9 @@ static const struct meson_pmx_group meson_g12a_periphs_groups[] = {
|
||||
@@ -591,6 +596,10 @@ static const struct meson_pmx_group meson_g12a_periphs_groups[] = {
|
||||
GROUP(bt565_a_din5, 2),
|
||||
GROUP(bt565_a_din6, 2),
|
||||
GROUP(bt565_a_din7, 2),
|
||||
+ GROUP(pwm_b_z, 5),
|
||||
+ GROUP(pwm_c_z, 5),
|
||||
+ GROUP(pwm_d_z, 2),
|
||||
+ GROUP(pwm_d_a, 3),
|
||||
GROUP(tsin_b_valid_z, 3),
|
||||
GROUP(tsin_b_sop_z, 3),
|
||||
GROUP(tsin_b_din0_z, 3),
|
||||
@@ -726,6 +733,7 @@ static const struct meson_pmx_group meson_g12a_periphs_groups[] = {
|
||||
@@ -723,6 +732,7 @@ static const struct meson_pmx_group meson_g12a_periphs_groups[] = {
|
||||
GROUP(uart_c_rts, 2),
|
||||
GROUP(iso7816_clk_h, 1),
|
||||
GROUP(iso7816_data_h, 1),
|
||||
@@ -101,7 +111,7 @@ index 111111111111..222222222222 100644
|
||||
GROUP(pwm_f_h, 4),
|
||||
GROUP(cec_ao_a_h, 4),
|
||||
GROUP(cec_ao_b_h, 5),
|
||||
@@ -1066,15 +1074,15 @@ static const char * const pwm_a_groups[] = {
|
||||
@@ -1058,15 +1068,15 @@ static const char * const pwm_a_groups[] = {
|
||||
};
|
||||
|
||||
static const char * const pwm_b_groups[] = {
|
||||
@@ -116,10 +126,10 @@ index 111111111111..222222222222 100644
|
||||
|
||||
static const char * const pwm_d_groups[] = {
|
||||
- "pwm_d_x3", "pwm_d_x6",
|
||||
+ "pwm_d_x3", "pwm_d_x6", "pwm_d_z",
|
||||
+ "pwm_d_x3", "pwm_d_x6", "pwm_d_z", "pwm_d_a",
|
||||
};
|
||||
|
||||
static const char * const pwm_e_groups[] = {
|
||||
--
|
||||
Armbian
|
||||
2.49.0
|
||||
|
||||
|
||||
@@ -0,0 +1,600 @@
|
||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
/*
|
||||
* Copyright (c) 2019 BayLibre, SAS
|
||||
* Author: Neil Armstrong <narmstrong@baylibre.com>
|
||||
* Copyright (c) 2019 Christian Hewitt <christianshewitt@gmail.com>
|
||||
* Copyright (c) 2025 retro98boy <retro98boy@qq.com>
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "meson-g12b-a311d.dtsi"
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include <dt-bindings/gpio/meson-g12a-gpio.h>
|
||||
#include <dt-bindings/sound/meson-g12a-toacodec.h>
|
||||
#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
|
||||
|
||||
/ {
|
||||
compatible = "CAINIAO,CNIoT-CORE", "amlogic,a311d", "amlogic,g12b";
|
||||
model = "CAINIAO CNIoT-CORE";
|
||||
|
||||
aliases {
|
||||
serial0 = &uart_AO;
|
||||
ethernet0 = ðmac;
|
||||
rtc99 = &vrtc;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
memory@0 {
|
||||
device_type = "memory";
|
||||
reg = <0x0 0x0 0x0 0x80000000>;
|
||||
};
|
||||
|
||||
fan0: pwm-fan {
|
||||
compatible = "pwm-fan";
|
||||
#cooling-cells = <2>;
|
||||
cooling-levels = <0 120 170 220>;
|
||||
pwms = <&pwm_cd 1 40000 1>;
|
||||
tach-gpio = <&gpio GPIOA_4 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
gpio-keys-polled {
|
||||
compatible = "gpio-keys-polled";
|
||||
poll-interval = <100>;
|
||||
|
||||
pwr-btn {
|
||||
label = "pwr-btn";
|
||||
linux,code = <KEY_POWER>;
|
||||
gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
adc-keys {
|
||||
compatible = "adc-keys";
|
||||
io-channels = <&saradc 2>;
|
||||
io-channel-names = "buttons";
|
||||
keyup-threshold-microvolt = <1710000>;
|
||||
poll-interval = <100>;
|
||||
|
||||
button-recovery {
|
||||
label = "Recovery";
|
||||
linux,code = <KEY_VENDOR>;
|
||||
press-threshold-microvolt = <10000>;
|
||||
};
|
||||
};
|
||||
|
||||
emmc_pwrseq: emmc-pwrseq {
|
||||
compatible = "mmc-pwrseq-emmc";
|
||||
reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; /* In the vendor DTS, this is BOOT_10, but the actual test result is BOOT_12. */
|
||||
};
|
||||
|
||||
hdmi-connector {
|
||||
compatible = "hdmi-connector";
|
||||
type = "a";
|
||||
|
||||
port {
|
||||
hdmi_connector_in: endpoint {
|
||||
remote-endpoint = <&hdmi_tx_tmds_out>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ht6872: ht6872 {
|
||||
compatible = "simple-audio-amplifier";
|
||||
enable-gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>;
|
||||
VCC-supply = <&vdd_amp>;
|
||||
sound-name-prefix = "HT6872";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
sdio_pwrseq: sdio-pwrseq {
|
||||
compatible = "mmc-pwrseq-simple";
|
||||
reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
|
||||
clocks = <&wifi32k>;
|
||||
clock-names = "ext_clock";
|
||||
};
|
||||
|
||||
wifi32k: wifi32k {
|
||||
compatible = "pwm-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <32768>;
|
||||
pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
|
||||
};
|
||||
|
||||
dc_in: regulator-dc-in {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "dc_in";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
/* important to usb hub */
|
||||
amp_power: regulator-amp-power {
|
||||
compatible = "regulator-fixed";
|
||||
enable-active-high;
|
||||
gpio = <&gpio GPIOH_8 GPIO_ACTIVE_HIGH>;
|
||||
regulator-name = "amp_power";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
vin-supply = <&dc_in>;
|
||||
};
|
||||
|
||||
vddao_1v8: regulator-vddao-1v8 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vddao_1v8";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
vin-supply = <&dc_in>;
|
||||
};
|
||||
|
||||
vddcpu_a: regulator-vddcpu-a {
|
||||
compatible = "pwm-regulator";
|
||||
regulator-name = "VDDCPU_A";
|
||||
regulator-min-microvolt = <690000>;
|
||||
regulator-max-microvolt = <1050000>;
|
||||
pwm-supply = <&dc_in>;
|
||||
pwms = <&pwm_ab 0 1250 0>;
|
||||
pwm-dutycycle-range = <100 0>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vddcpu_b: regulator-vddcpu-b {
|
||||
compatible = "pwm-regulator";
|
||||
regulator-name = "VDDCPU_B";
|
||||
regulator-min-microvolt = <690000>;
|
||||
regulator-max-microvolt = <1050000>;
|
||||
pwm-supply = <&dc_in>;
|
||||
pwms = <&pwm_AO_cd 1 1250 0>;
|
||||
pwm-dutycycle-range = <100 0>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vsys_3v3: regulator-vsys-3v3 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vsys_3v3";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
vin-supply = <&dc_in>;
|
||||
};
|
||||
|
||||
usb_pwr: regulator-usb-pwr {
|
||||
compatible = "regulator-fixed";
|
||||
enable-active-high;
|
||||
gpio = <&gpio_ao GPIOAO_6 GPIO_ACTIVE_HIGH>; /* always keep usb hub reset pin high */
|
||||
regulator-name = "usb_pwr";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
vin-supply = <&dc_in>;
|
||||
};
|
||||
|
||||
/*
|
||||
* The Type-C port on the host is switched with the four USB contacts on the side of the host via GPIOA_14.
|
||||
* Since the Type-C port on the host is either used for power supply or blocked by the dock,
|
||||
* switching USB 2.0 access to the four contacts on the side of the host is a better choice.
|
||||
* To use the Type-C port for data transmission,
|
||||
* you only need to set GPIOA_14 in the node below to a high level.
|
||||
*/
|
||||
usb_switch: regulator-usb-switch {
|
||||
compatible = "regulator-fixed";
|
||||
enable-active-low;
|
||||
gpio = <&gpio GPIOA_14 GPIO_ACTIVE_LOW>;
|
||||
regulator-name = "usb_switch";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
vin-supply = <&dc_in>;
|
||||
};
|
||||
|
||||
vdd_amp: regulator-vdd-amp {
|
||||
compatible = "regulator-fixed";
|
||||
enable-active-high;
|
||||
gpio = <&gpio GPIOH_7 GPIO_ACTIVE_HIGH>;
|
||||
regulator-name = "vdd_amp";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
vin-supply = <&dc_in>;
|
||||
};
|
||||
|
||||
sound {
|
||||
compatible = "amlogic,axg-sound-card";
|
||||
model = "cainiao-cniot-core";
|
||||
audio-widgets = "Speaker", "Internal Speaker";
|
||||
audio-aux-devs = <&tdmout_a>, <&tdmout_b>, <&ht6872>;
|
||||
audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 0",
|
||||
"TDMOUT_A IN 1", "FRDDR_B OUT 0",
|
||||
"TDMOUT_A IN 2", "FRDDR_C OUT 0",
|
||||
"TDM_A Playback", "TDMOUT_A OUT",
|
||||
"TDMOUT_B IN 0", "FRDDR_A OUT 1",
|
||||
"TDMOUT_B IN 1", "FRDDR_B OUT 1",
|
||||
"TDMOUT_B IN 2", "FRDDR_C OUT 1",
|
||||
"TDM_B Playback", "TDMOUT_B OUT",
|
||||
"HT6872 INL", "ACODEC LOLP",
|
||||
"HT6872 INR", "ACODEC LORP",
|
||||
"Internal Speaker", "HT6872 OUTL",
|
||||
"Internal Speaker", "HT6872 OUTR";
|
||||
|
||||
clocks = <&clkc CLKID_MPLL2>,
|
||||
<&clkc CLKID_MPLL0>,
|
||||
<&clkc CLKID_MPLL1>;
|
||||
|
||||
assigned-clocks = <&clkc CLKID_MPLL2>,
|
||||
<&clkc CLKID_MPLL0>,
|
||||
<&clkc CLKID_MPLL1>;
|
||||
assigned-clock-parents = <0>, <0>, <0>;
|
||||
assigned-clock-rates = <294912000>,
|
||||
<270950400>,
|
||||
<393216000>;
|
||||
|
||||
dai-link-0 {
|
||||
sound-dai = <&frddr_a>;
|
||||
};
|
||||
|
||||
dai-link-1 {
|
||||
sound-dai = <&frddr_b>;
|
||||
};
|
||||
|
||||
dai-link-2 {
|
||||
sound-dai = <&frddr_c>;
|
||||
};
|
||||
|
||||
/* 8ch hdmi interface */
|
||||
dai-link-3 {
|
||||
sound-dai = <&tdmif_a>;
|
||||
dai-format = "i2s";
|
||||
dai-tdm-slot-tx-mask-0 = <1 1>;
|
||||
dai-tdm-slot-tx-mask-1 = <1 1>;
|
||||
dai-tdm-slot-tx-mask-2 = <1 1>;
|
||||
dai-tdm-slot-tx-mask-3 = <1 1>;
|
||||
mclk-fs = <256>;
|
||||
|
||||
codec-0 {
|
||||
sound-dai = <&tohdmitx TOHDMITX_I2S_IN_A>;
|
||||
};
|
||||
|
||||
codec-1 {
|
||||
sound-dai = <&toacodec TOACODEC_IN_A>;
|
||||
};
|
||||
};
|
||||
|
||||
/* 8ch hdmi interface */
|
||||
dai-link-4 {
|
||||
sound-dai = <&tdmif_b>;
|
||||
dai-format = "i2s";
|
||||
dai-tdm-slot-tx-mask-0 = <1 1>;
|
||||
dai-tdm-slot-tx-mask-1 = <1 1>;
|
||||
dai-tdm-slot-tx-mask-2 = <1 1>;
|
||||
dai-tdm-slot-tx-mask-3 = <1 1>;
|
||||
mclk-fs = <256>;
|
||||
|
||||
codec-0 {
|
||||
sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
|
||||
};
|
||||
|
||||
codec-1 {
|
||||
sound-dai = <&toacodec TOACODEC_IN_B>;
|
||||
};
|
||||
};
|
||||
|
||||
/* hdmi glue */
|
||||
dai-link-5 {
|
||||
sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
|
||||
|
||||
codec {
|
||||
sound-dai = <&hdmi_tx>;
|
||||
};
|
||||
};
|
||||
|
||||
/* acodec glue */
|
||||
dai-link-6 {
|
||||
sound-dai = <&toacodec TOACODEC_OUT>;
|
||||
|
||||
codec {
|
||||
sound-dai = <&acodec>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&acodec {
|
||||
AVDD-supply = <&vddao_1v8>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&arb {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&clkc_audio {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&cecb_AO {
|
||||
pinctrl-0 = <&cec_ao_b_h_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
hdmi-phandle = <&hdmi_tx>;
|
||||
};
|
||||
|
||||
&cpu0 {
|
||||
cpu-supply = <&vddcpu_b>;
|
||||
operating-points-v2 = <&cpu_opp_table_0>;
|
||||
clocks = <&clkc CLKID_CPU_CLK>;
|
||||
clock-latency = <50000>;
|
||||
};
|
||||
|
||||
&cpu1 {
|
||||
cpu-supply = <&vddcpu_b>;
|
||||
operating-points-v2 = <&cpu_opp_table_0>;
|
||||
clocks = <&clkc CLKID_CPU_CLK>;
|
||||
clock-latency = <50000>;
|
||||
};
|
||||
|
||||
&cpu100 {
|
||||
cpu-supply = <&vddcpu_a>;
|
||||
operating-points-v2 = <&cpub_opp_table_1>;
|
||||
clocks = <&clkc CLKID_CPUB_CLK>;
|
||||
clock-latency = <50000>;
|
||||
};
|
||||
|
||||
&cpu101 {
|
||||
cpu-supply = <&vddcpu_a>;
|
||||
operating-points-v2 = <&cpub_opp_table_1>;
|
||||
clocks = <&clkc CLKID_CPUB_CLK>;
|
||||
clock-latency = <50000>;
|
||||
};
|
||||
|
||||
&cpu102 {
|
||||
cpu-supply = <&vddcpu_a>;
|
||||
operating-points-v2 = <&cpub_opp_table_1>;
|
||||
clocks = <&clkc CLKID_CPUB_CLK>;
|
||||
clock-latency = <50000>;
|
||||
};
|
||||
|
||||
&cpu103 {
|
||||
cpu-supply = <&vddcpu_a>;
|
||||
operating-points-v2 = <&cpub_opp_table_1>;
|
||||
clocks = <&clkc CLKID_CPUB_CLK>;
|
||||
clock-latency = <50000>;
|
||||
};
|
||||
|
||||
&cpu_thermal {
|
||||
trips {
|
||||
cpu_active: cpu-active {
|
||||
temperature = <60000>; /* millicelsius */
|
||||
hysteresis = <5000>; /* millicelsius */
|
||||
type = "active";
|
||||
};
|
||||
};
|
||||
|
||||
cooling-maps {
|
||||
map2 {
|
||||
trip = <&cpu_active>;
|
||||
cooling-device = <&fan0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ðmac {
|
||||
pinctrl-0 = <ð_pins>, <ð_rgmii_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
phy-mode = "rgmii";
|
||||
phy-handle = <&rtl8211f>;
|
||||
amlogic,tx-delay-ns = <2>;
|
||||
};
|
||||
|
||||
&ext_mdio {
|
||||
rtl8211f: rtl8211f@0 {
|
||||
reg = <0>;
|
||||
max-speed = <1000>;
|
||||
|
||||
reset-assert-us = <10000>;
|
||||
reset-deassert-us = <80000>;
|
||||
reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
|
||||
|
||||
interrupt-parent = <&gpio_intc>;
|
||||
/* MAC_INTR on GPIOZ_14 */
|
||||
interrupts = <IRQID_GPIOZ_14 IRQ_TYPE_LEVEL_LOW>; /* tested by voltmeter */
|
||||
};
|
||||
};
|
||||
|
||||
&frddr_a {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&frddr_b {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&frddr_c {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&hdmi_tx {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
|
||||
pinctrl-names = "default";
|
||||
};
|
||||
|
||||
&hdmi_tx_tmds_port {
|
||||
hdmi_tx_tmds_out: endpoint {
|
||||
remote-endpoint = <&hdmi_connector_in>;
|
||||
};
|
||||
};
|
||||
|
||||
&npu {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pwm_ab {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&pwm_a_e_pins>;
|
||||
pinctrl-names = "default";
|
||||
clocks = <&xtal>;
|
||||
clock-names = "clkin0";
|
||||
};
|
||||
|
||||
&pwm_cd {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&pwm_d_a_pins>;
|
||||
pinctrl-names = "default";
|
||||
};
|
||||
|
||||
&pwm_ef {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&pwm_e_pins>;
|
||||
pinctrl-names = "default";
|
||||
};
|
||||
|
||||
&pwm_AO_cd {
|
||||
pinctrl-0 = <&pwm_ao_d_e_pins>;
|
||||
pinctrl-names = "default";
|
||||
clocks = <&xtal>;
|
||||
clock-names = "clkin1";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&saradc {
|
||||
status = "okay";
|
||||
vref-supply = <&vddao_1v8>;
|
||||
};
|
||||
|
||||
&sd_emmc_a {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&sdio_pins>;
|
||||
pinctrl-1 = <&sdio_clk_gate_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
bus-width = <4>;
|
||||
max-frequency = <100000000>;
|
||||
cap-sdio-irq;
|
||||
cap-sd-highspeed;
|
||||
non-removable;
|
||||
|
||||
/* WiFi firmware requires power in suspend */
|
||||
keep-power-in-suspend;
|
||||
mmc-pwrseq = <&sdio_pwrseq>;
|
||||
vmmc-supply = <&vsys_3v3>;
|
||||
vqmmc-supply = <&vddao_1v8>;
|
||||
|
||||
rtl8822cs: wifi@1 {
|
||||
reg = <1>;
|
||||
/*
|
||||
* tested by voltmeter
|
||||
* WL_REG_ON GPIOX_6
|
||||
* WL_WAKE_HOST GPIOX_5
|
||||
*/
|
||||
};
|
||||
};
|
||||
|
||||
&sd_emmc_c {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>;
|
||||
pinctrl-1 = <&emmc_clk_gate_pins>;
|
||||
pinctrl-names = "default", "clk-gate";
|
||||
|
||||
max-frequency = <200000000>;
|
||||
bus-width = <8>;
|
||||
cap-mmc-highspeed;
|
||||
mmc-ddr-1_8v;
|
||||
mmc-hs200-1_8v;
|
||||
non-removable;
|
||||
|
||||
mmc-pwrseq = <&emmc_pwrseq>;
|
||||
vmmc-supply = <&vsys_3v3>;
|
||||
vqmmc-supply = <&vddao_1v8>;
|
||||
};
|
||||
|
||||
/*
|
||||
* GPIOH_4 is connected to 6 WS2812 LEDs.
|
||||
* Reusing GPIOH_4 as SPI MOSI to control the WS2812 offers superior performance compared to the GPIO method.
|
||||
*/
|
||||
&spicc1_pins {
|
||||
mux {
|
||||
groups = "spi1_mosi";
|
||||
};
|
||||
};
|
||||
|
||||
/* Controlling WS2812 LEDs via spidev in user space. */
|
||||
&spicc1 {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&spicc1_pins>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
spidev@0 {
|
||||
compatible = "rohm,dh2228fv";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <3340000>;
|
||||
};
|
||||
};
|
||||
|
||||
&tdmif_a {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&tdmif_b {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&tdmout_a {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&tdmout_b {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&toacodec {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&tohdmitx {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart_A {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
|
||||
pinctrl-names = "default";
|
||||
uart-has-rtscts;
|
||||
|
||||
bluetooth {
|
||||
compatible = "realtek,rtl8822cs-bt";
|
||||
enable-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; /* tested by voltmeter */
|
||||
host-wake-gpios = <&gpio GPIOX_18 GPIO_ACTIVE_HIGH>; /* tested by voltmeter */
|
||||
device-wake-gpios = <&gpio GPIOX_19 GPIO_ACTIVE_HIGH>; /* tested by voltmeter */
|
||||
};
|
||||
};
|
||||
|
||||
&uart_AO {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&uart_ao_a_pins>;
|
||||
pinctrl-names = "default";
|
||||
};
|
||||
|
||||
&usb2_phy0 {
|
||||
phy-supply = <&_power>;
|
||||
};
|
||||
|
||||
&usb2_phy1 {
|
||||
phy-supply = <&usb_switch>;
|
||||
};
|
||||
|
||||
&usb3_pcie_phy {
|
||||
phy-supply = <&usb_pwr>;
|
||||
};
|
||||
|
||||
&usb {
|
||||
status = "okay";
|
||||
dr_mode = "host";
|
||||
};
|
||||
@@ -1,6 +1,6 @@
|
||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
/*
|
||||
* Copyright (c) 2024 Patrick Yavitz <pyavitz@xxxxx.com>
|
||||
* Copyright (c) 2024 Patrick Yavitz <pyavitz@gmail.com>
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
@@ -16,21 +16,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
rtc: rtc@51 {
|
||||
compatible = "nxp,pcf85063a";
|
||||
reg = <0x51>;
|
||||
wakeup-source;
|
||||
};
|
||||
|
||||
fanctrl: emc2305@2f {
|
||||
compatible = "smsc,emc2305";
|
||||
reg = <0x2f>;
|
||||
#cooling-cells = <0x02>;
|
||||
wakeup-source;
|
||||
};
|
||||
};
|
||||
|
||||
&cpu_thermal {
|
||||
trips {
|
||||
fanmid0: fanmid0 {
|
||||
@@ -59,6 +44,21 @@
|
||||
};
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
rtc: rtc@51 {
|
||||
compatible = "nxp,pcf85063a";
|
||||
reg = <0x51>;
|
||||
wakeup-source;
|
||||
};
|
||||
|
||||
fanctrl: emc2305@2f {
|
||||
compatible = "smsc,emc2305";
|
||||
reg = <0x2f>;
|
||||
#cooling-cells = <0x02>;
|
||||
wakeup-source;
|
||||
};
|
||||
};
|
||||
|
||||
&usb {
|
||||
dr_mode = "host";
|
||||
};
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From e1e66c32b7a9ce7cf52922fe073c4bff40054599 Mon Sep 17 00:00:00 2001
|
||||
From: Yuntian Zhang <yt@radxa.com>
|
||||
Date: Thu, 13 Jan 2022 21:34:10 +0800
|
||||
Subject: pinctrl: meson: Add several missing pinmux for pwm functions
|
||||
Subject: [PATCH] pinctrl: meson: Add several missing pinmux for pwm functions
|
||||
|
||||
The following pin definitions are mentioned in A311D Quick
|
||||
Reference Manual and S922X Public Datasheet, but not in S905Y2
|
||||
@@ -11,15 +11,15 @@ They are currently exposed in Radxa Zero 2's GPIO header.
|
||||
|
||||
Signed-off-by: Yuntian Zhang <yt@radxa.com>
|
||||
---
|
||||
arch/arm64/boot/dts/amlogic/meson-g12b.dtsi | 34 ++++++++++
|
||||
drivers/pinctrl/meson/pinctrl-meson-g12a.c | 14 +++-
|
||||
2 files changed, 45 insertions(+), 3 deletions(-)
|
||||
arch/arm64/boot/dts/amlogic/meson-g12b.dtsi | 42 +++++++++++++++++++++
|
||||
drivers/pinctrl/meson/pinctrl-meson-g12a.c | 16 ++++++--
|
||||
2 files changed, 55 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b.dtsi
|
||||
index 111111111111..222222222222 100644
|
||||
index 86e6ceb31..b2f9a09b2 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12b.dtsi
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b.dtsi
|
||||
@@ -149,3 +149,37 @@ &pmu {
|
||||
@@ -149,3 +149,45 @@ &pmu {
|
||||
&npu {
|
||||
power-domains = <&pwrc PWRC_G12A_NNA_ID>;
|
||||
};
|
||||
@@ -56,12 +56,20 @@ index 111111111111..222222222222 100644
|
||||
+ bias-disable;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ pwm_d_a_pins: pwm-d-a {
|
||||
+ mux {
|
||||
+ groups = "pwm_d_a";
|
||||
+ function = "pwm_d";
|
||||
+ bias-disable;
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
diff --git a/drivers/pinctrl/meson/pinctrl-meson-g12a.c b/drivers/pinctrl/meson/pinctrl-meson-g12a.c
|
||||
index 111111111111..222222222222 100644
|
||||
index e2788bfc5..c94360afc 100644
|
||||
--- a/drivers/pinctrl/meson/pinctrl-meson-g12a.c
|
||||
+++ b/drivers/pinctrl/meson/pinctrl-meson-g12a.c
|
||||
@@ -271,17 +271,21 @@ static const unsigned int eth_act_led_pins[] = { GPIOZ_15 };
|
||||
@@ -268,17 +268,22 @@ static const unsigned int eth_act_led_pins[] = { GPIOZ_15 };
|
||||
static const unsigned int pwm_a_pins[] = { GPIOX_6 };
|
||||
|
||||
/* pwm_b */
|
||||
@@ -80,20 +88,22 @@ index 111111111111..222222222222 100644
|
||||
static const unsigned int pwm_d_x3_pins[] = { GPIOX_3 };
|
||||
static const unsigned int pwm_d_x6_pins[] = { GPIOX_6 };
|
||||
+static const unsigned int pwm_d_z_pins[] = { GPIOZ_2 };
|
||||
+static const unsigned int pwm_d_a_pins[] = { GPIOA_4 };
|
||||
|
||||
/* pwm_e */
|
||||
static const unsigned int pwm_e_pins[] = { GPIOX_16 };
|
||||
@@ -594,6 +598,9 @@ static const struct meson_pmx_group meson_g12a_periphs_groups[] = {
|
||||
@@ -591,6 +596,10 @@ static const struct meson_pmx_group meson_g12a_periphs_groups[] = {
|
||||
GROUP(bt565_a_din5, 2),
|
||||
GROUP(bt565_a_din6, 2),
|
||||
GROUP(bt565_a_din7, 2),
|
||||
+ GROUP(pwm_b_z, 5),
|
||||
+ GROUP(pwm_c_z, 5),
|
||||
+ GROUP(pwm_d_z, 2),
|
||||
+ GROUP(pwm_d_a, 3),
|
||||
GROUP(tsin_b_valid_z, 3),
|
||||
GROUP(tsin_b_sop_z, 3),
|
||||
GROUP(tsin_b_din0_z, 3),
|
||||
@@ -726,6 +733,7 @@ static const struct meson_pmx_group meson_g12a_periphs_groups[] = {
|
||||
@@ -723,6 +732,7 @@ static const struct meson_pmx_group meson_g12a_periphs_groups[] = {
|
||||
GROUP(uart_c_rts, 2),
|
||||
GROUP(iso7816_clk_h, 1),
|
||||
GROUP(iso7816_data_h, 1),
|
||||
@@ -101,7 +111,7 @@ index 111111111111..222222222222 100644
|
||||
GROUP(pwm_f_h, 4),
|
||||
GROUP(cec_ao_a_h, 4),
|
||||
GROUP(cec_ao_b_h, 5),
|
||||
@@ -1066,15 +1074,15 @@ static const char * const pwm_a_groups[] = {
|
||||
@@ -1058,15 +1068,15 @@ static const char * const pwm_a_groups[] = {
|
||||
};
|
||||
|
||||
static const char * const pwm_b_groups[] = {
|
||||
@@ -116,10 +126,10 @@ index 111111111111..222222222222 100644
|
||||
|
||||
static const char * const pwm_d_groups[] = {
|
||||
- "pwm_d_x3", "pwm_d_x6",
|
||||
+ "pwm_d_x3", "pwm_d_x6", "pwm_d_z",
|
||||
+ "pwm_d_x3", "pwm_d_x6", "pwm_d_z", "pwm_d_a",
|
||||
};
|
||||
|
||||
static const char * const pwm_e_groups[] = {
|
||||
--
|
||||
Armbian
|
||||
2.49.0
|
||||
|
||||
|
||||
6884
patch/kernel/archive/odroidxu4-6.6/patch-6.6.88-89.patch
Normal file
6884
patch/kernel/archive/odroidxu4-6.6/patch-6.6.88-89.patch
Normal file
File diff suppressed because it is too large
Load Diff
5797
patch/kernel/archive/odroidxu4-6.6/patch-6.6.89-90.patch
Normal file
5797
patch/kernel/archive/odroidxu4-6.6/patch-6.6.89-90.patch
Normal file
File diff suppressed because it is too large
Load Diff
4952
patch/kernel/archive/odroidxu4-6.6/patch-6.6.90-91.patch
Normal file
4952
patch/kernel/archive/odroidxu4-6.6/patch-6.6.90-91.patch
Normal file
File diff suppressed because it is too large
Load Diff
4627
patch/kernel/archive/odroidxu4-6.6/patch-6.6.91-92.patch
Normal file
4627
patch/kernel/archive/odroidxu4-6.6/patch-6.6.91-92.patch
Normal file
File diff suppressed because it is too large
Load Diff
20602
patch/kernel/archive/odroidxu4-6.6/patch-6.6.92-93.patch
Normal file
20602
patch/kernel/archive/odroidxu4-6.6/patch-6.6.92-93.patch
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,10 +1,10 @@
|
||||
config:
|
||||
# Just some info stuff; not used by the patching scripts
|
||||
name: rockchip-6.14
|
||||
name: rockchip-6.15
|
||||
kind: kernel
|
||||
type: mainline # or: vendor
|
||||
branch: linux-6.14.y
|
||||
last-known-good-tag: v6.14
|
||||
branch: linux-6.15.y
|
||||
last-known-good-tag: v6.15.0
|
||||
maintainers:
|
||||
- { github: paolo.sabatino, name: Paolo Sabatino, email: paolo.sabatino@gmail.com, armbian-forum: jock }
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user