mirror of
https://github.com/linux-sunxi/meta-sunxi.git
synced 2025-06-11 16:04:21 +02:00
Merge pull request #449 from okaestne/scarthgap
[Scarthgap] backport PRs for new hardware and fixes
This commit is contained in:
commit
204836ce5d
9
conf/machine/bananapi-m2-berry.conf
Normal file
9
conf/machine/bananapi-m2-berry.conf
Normal file
@ -0,0 +1,9 @@
|
||||
#@TYPE: Machine
|
||||
#@NAME: bananapi-m2-berry
|
||||
#@DESCRIPTION: Machine configuration for the Banana Pi M2 Berry, based on Allwinner V40 CPU
|
||||
|
||||
require conf/machine/include/sun8i.inc
|
||||
require conf/machine/include/hardware/ap6212a.inc
|
||||
|
||||
KERNEL_DEVICETREE = "allwinner/sun8i-v40-bananapi-m2-berry.dtb"
|
||||
UBOOT_MACHINE = "bananapi_m2_berry_defconfig"
|
@ -5,6 +5,5 @@
|
||||
require conf/machine/include/sun8i.inc
|
||||
require conf/machine/include/hardware/ap6212a.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun8i-h2-plus-bananapi-m2-zero.dtb"
|
||||
KERNEL_DEVICETREE = "allwinner/sun8i-h2-plus-bananapi-m2-zero.dtb"
|
||||
UBOOT_MACHINE = "bananapi_m2_zero_defconfig"
|
||||
|
||||
|
@ -4,6 +4,5 @@
|
||||
|
||||
require conf/machine/include/sun8i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun8i-r16-bananapi-m2m.dtb"
|
||||
KERNEL_DEVICETREE = "allwinner/sun8i-r16-bananapi-m2m.dtb"
|
||||
UBOOT_MACHINE = "Bananapi_m2m_defconfig"
|
||||
|
||||
|
@ -4,6 +4,5 @@
|
||||
|
||||
require conf/machine/include/sun8i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun8i-h3-bananapi-m2-plus.dtb"
|
||||
KERNEL_DEVICETREE = "allwinner/sun8i-h3-bananapi-m2-plus.dtb"
|
||||
UBOOT_MACHINE = "bananapi_m2_plus_h3_defconfig"
|
||||
|
||||
|
@ -4,6 +4,6 @@
|
||||
|
||||
require conf/machine/include/sun7i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun7i-a20-bananapi.dtb"
|
||||
KERNEL_DEVICETREE = "allwinner/sun7i-a20-bananapi.dtb"
|
||||
UBOOT_MACHINE = "Bananapi_config"
|
||||
SUNXI_FEX_FILE = "sys_config/a20/Bananapi.fex"
|
||||
SUNXI_FEX_FILE = "sys_config/a20/Bananapi.fex"
|
||||
|
@ -4,6 +4,6 @@
|
||||
|
||||
require conf/machine/include/sun4i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun4i-a10-cubieboard.dtb"
|
||||
KERNEL_DEVICETREE = "allwinner/sun4i-a10-cubieboard.dtb"
|
||||
UBOOT_MACHINE = "Cubieboard_config"
|
||||
SUNXI_FEX_FILE = "sys_config/a10/cubieboard.fex"
|
||||
|
@ -4,6 +4,6 @@
|
||||
|
||||
require conf/machine/include/sun7i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun7i-a20-cubieboard2.dtb"
|
||||
KERNEL_DEVICETREE = "allwinner/sun7i-a20-cubieboard2.dtb"
|
||||
UBOOT_MACHINE = "Cubieboard2_config"
|
||||
SUNXI_FEX_FILE = "sys_config/a20/cubieboard2.fex"
|
||||
|
@ -3,8 +3,9 @@
|
||||
#@DESCRIPTION: Machine configuration for the cubieboard4, based on allwinner A80 CPU http://cubieboard.org/
|
||||
|
||||
require conf/machine/include/sun9i.inc
|
||||
require conf/machine/include/hardware/ap6330.inc
|
||||
|
||||
KERNEL_IMAGETYPE = "zImage"
|
||||
|
||||
KERNEL_DEVICETREE = "sun9i-a80-cubieboard4.dtb"
|
||||
KERNEL_DEVICETREE = "allwinner/sun9i-a80-cubieboard4.dtb"
|
||||
UBOOT_MACHINE = "Cubieboard4_defconfig"
|
||||
|
@ -4,6 +4,6 @@
|
||||
|
||||
require conf/machine/include/sun7i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun7i-a20-cubietruck.dtb"
|
||||
KERNEL_DEVICETREE = "allwinner/sun7i-a20-cubietruck.dtb"
|
||||
UBOOT_MACHINE = "Cubietruck_config"
|
||||
SUNXI_FEX_FILE = "sys_config/a20/cubietruck.fex"
|
||||
SUNXI_FEX_FILE = "sys_config/a20/cubietruck.fex"
|
||||
|
@ -1,5 +1,9 @@
|
||||
# Include for boards with AMPAK 6212A Wifi / Bluetooth module
|
||||
# https://linux-sunxi.org/Wifi#Ampak
|
||||
|
||||
MACHINE_EXTRA_RRECOMMENDS:append = " kernel-module-brcmfmac"
|
||||
MACHINE_EXTRA_RDEPENDS:append = " linux-firmware-bcm43430"
|
||||
MACHINE_EXTRA_RRECOMMENDS:append = " kernel-module-brcmfmac kernel-module-hci-uart"
|
||||
MACHINE_EXTRA_RDEPENDS:append = " linux-firmware-bcm43430 armbian-firmware-ap6212"
|
||||
|
||||
MACHINE_FEATURES:append = " bluetooth wifi"
|
||||
|
||||
KERNEL_FEATURES:append = " features/ap6212/ap6212.scc"
|
||||
|
7
conf/machine/include/hardware/ap6330.inc
Normal file
7
conf/machine/include/hardware/ap6330.inc
Normal file
@ -0,0 +1,7 @@
|
||||
# Include for boards with AMPAK AP6330 Wifi / Bluetooth module
|
||||
# https://linux-sunxi.org/Wifi#Ampak
|
||||
|
||||
MACHINE_EXTRA_RRECOMMENDS:append = " kernel-module-brcmfmac"
|
||||
MACHINE_EXTRA_RDEPENDS:append = " linux-firmware-bcm4330"
|
||||
|
||||
MACHINE_FEATURES:append = " bluetooth wifi"
|
@ -40,7 +40,7 @@ SUNXI_FEX_FILE ?= " "
|
||||
SUNXI_BOOT_SPACE ?= "40"
|
||||
IMAGE_BOOT_FILES ?= "${KERNEL_IMAGETYPE} boot.scr"
|
||||
# ship fex file for sunxi kernel, devicetree file for mainline kernel
|
||||
IMAGE_BOOT_FILES += "${@bb.utils.contains('PREFERRED_PROVIDER_virtual/kernel', 'linux-sunxi', '${SUNXI_FEX_FILE}', '${KERNEL_DEVICETREE}', d)}"
|
||||
IMAGE_BOOT_FILES += "${@bb.utils.contains('PREFERRED_PROVIDER_virtual/kernel', 'linux-sunxi', '${SUNXI_FEX_FILE}', d.getVar('KERNEL_DEVICETREE', '').split('/')[-1], d)}"
|
||||
WKS_FILES ?= "sunxi-sdcard-image.wks.in"
|
||||
WKS_FILE_DEPENDS ?= "virtual/kernel u-boot"
|
||||
# in case of sunxi kernel, sunxi-board-fex must be built prior wic image assembly
|
||||
|
@ -4,6 +4,7 @@ include conf/machine/include/soc-family.inc
|
||||
MACHINEOVERRIDES =. "sunxi:sunxi64:"
|
||||
|
||||
PREFERRED_PROVIDER_virtual/kernel ?= "linux-mainline"
|
||||
PREFERRED_VERSION_linux-mainline ?= "6.6.%"
|
||||
PREFERRED_PROVIDER_u-boot ?= "u-boot"
|
||||
PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot"
|
||||
|
||||
@ -16,7 +17,7 @@ MACHINE_EXTRA_RRECOMMENDS = "kernel-modules"
|
||||
UBOOT_LOCALVERSION = "-g${@d.getVar('SRCPV', True).partition('+')[2][0:7]}"
|
||||
|
||||
UBOOT_ENTRYPOINT ?= "0x40008000"
|
||||
UBOOT_LOADADDRESS ?= "0x400080OB00"
|
||||
UBOOT_LOADADDRESS ?= "0x40008000"
|
||||
|
||||
#UBOOT_BINARY ?= "u-boot.itb"
|
||||
SPL_BINARY ?= "u-boot-sunxi-with-spl.bin"
|
||||
@ -24,28 +25,8 @@ SPL_BINARY ?= "u-boot-sunxi-with-spl.bin"
|
||||
SERIAL_CONSOLES ?= "115200;ttyS0"
|
||||
MACHINE_FEATURES ?= "alsa apm keyboard rtc serial screen usbgadget usbhost vfat"
|
||||
|
||||
# arm64 dbts are under <vendor>/dts but is deployed under DEPLOYDIR
|
||||
do_fix_device_tree_location() {
|
||||
|
||||
for kdt in ${KERNEL_DEVICETREE}
|
||||
do
|
||||
local dbt_dir=$(dirname ${kdt})
|
||||
if [ "." != "${dbt_dir}" ] ; then
|
||||
local dbt=$(basename ${kdt})
|
||||
local dst=${DEPLOY_DIR_IMAGE}/${dbt_dir}/${dbt}
|
||||
if [ ! -f ${dst} ] ; then
|
||||
mkdir -p ${DEPLOY_DIR_IMAGE}/$dbt_dir
|
||||
ln -s ${DEPLOY_DIR_IMAGE}/${dbt} ${dst}
|
||||
fi
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
addtask do_fix_device_tree_location after do_write_wks_template before do_image_wic
|
||||
|
||||
SUNXI_BOOT_SPACE ?= "40"
|
||||
IMAGE_BOOT_FILES ?= "${KERNEL_IMAGETYPE} boot.scr ${KERNEL_DEVICETREE}"
|
||||
IMAGE_BOOT_FILES ?= "${KERNEL_IMAGETYPE} boot.scr ${@d.getVar('KERNEL_DEVICETREE', '').split('/')[-1]}"
|
||||
|
||||
WKS_FILES ?= "sunxi-sdcard-image.wks.in"
|
||||
WKS_FILE_DEPENDS ?= "virtual/kernel u-boot"
|
||||
|
@ -5,6 +5,6 @@
|
||||
require conf/machine/include/sun7i.inc
|
||||
|
||||
MACHINE_EXTRA_RRECOMMENDS = " kernel-modules kernel-devicetree"
|
||||
KERNEL_DEVICETREE = "sun7i-a20-lamobo-r1.dtb"
|
||||
KERNEL_DEVICETREE = "allwinner/sun7i-a20-lamobo-r1.dtb"
|
||||
UBOOT_MACHINE = "Lamobo_R1_config"
|
||||
SUNXI_FEX_FILE = "sys_config/a20/lamobo-r1.fex"
|
||||
|
@ -6,4 +6,4 @@ require conf/machine/include/sun8i.inc
|
||||
|
||||
|
||||
UBOOT_MACHINE = "LicheePi_Zero_defconfig"
|
||||
KERNEL_DEVICETREE = "sun8i-v3s-licheepi-zero.dtb"
|
||||
KERNEL_DEVICETREE = "allwinner/sun8i-v3s-licheepi-zero.dtb"
|
||||
|
10
conf/machine/mangopi-mq-t-t113.conf
Normal file
10
conf/machine/mangopi-mq-t-t113.conf
Normal file
@ -0,0 +1,10 @@
|
||||
#@TYPE: Machine
|
||||
#@NAME: MangoPi MQ-R T113-S3
|
||||
#@DESCRIPTION: Machine configuration for the MangoPi MQ-R, based on the Allwinner T113-S3 CPU
|
||||
|
||||
require conf/machine/include/sun8i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "allwinner/sun8i-t113s-mangopi-mq-r-t113.dtb"
|
||||
KERNEL_IMAGETYPE = "zImage"
|
||||
|
||||
UBOOT_MACHINE = "mangopi_mq_r_defconfig"
|
@ -5,6 +5,6 @@
|
||||
|
||||
require conf/machine/include/sun4i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun4i-a10-marsboard.dtb"
|
||||
KERNEL_DEVICETREE = "allwinner/sun4i-a10-marsboard.dtb"
|
||||
UBOOT_MACHINE = "Marsboard_A10_config"
|
||||
SUNXI_FEX_FILE = "sys_config/a10/marsboard_a10.fex"
|
||||
|
@ -4,6 +4,6 @@
|
||||
|
||||
require conf/machine/include/sun4i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun4i-a10-a1000.dtb"
|
||||
KERNEL_DEVICETREE = "allwinner/sun4i-a10-a1000.dtb"
|
||||
UBOOT_MACHINE = "Mele_A1000_config"
|
||||
SUNXI_FEX_FILE = "sys_config/a10/mele_a1000.fex"
|
||||
SUNXI_FEX_FILE = "sys_config/a10/mele_a1000.fex"
|
||||
|
@ -3,8 +3,9 @@
|
||||
#@DESCRIPTION: Machine configuration for the Merrii A80 Optimus, based on Allwinner A80 CPU https://linux-sunxi.org/Merrii_A80_Optimus_Board
|
||||
|
||||
require conf/machine/include/sun9i.inc
|
||||
require conf/machine/include/hardware/ap6330.inc
|
||||
|
||||
KERNEL_IMAGETYPE = "zImage"
|
||||
|
||||
KERNEL_DEVICETREE = "sun9i-a80-optimus.dtb"
|
||||
KERNEL_DEVICETREE = "allwinner/sun9i-a80-optimus.dtb"
|
||||
UBOOT_MACHINE = "Merrii_A80_Optimus_defconfig"
|
||||
|
@ -4,6 +4,5 @@
|
||||
|
||||
require conf/machine/include/sun8i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun8i-h3-nanopi-m1-plus.dtb"
|
||||
KERNEL_DEVICETREE = "allwinner/sun8i-h3-nanopi-m1-plus.dtb"
|
||||
UBOOT_MACHINE = "nanopi_m1_plus_defconfig"
|
||||
|
||||
|
@ -4,5 +4,5 @@
|
||||
|
||||
require conf/machine/include/sun8i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun8i-h3-nanopi-m1.dtb"
|
||||
KERNEL_DEVICETREE = "allwinner/sun8i-h3-nanopi-m1.dtb"
|
||||
UBOOT_MACHINE = "nanopi_m1_defconfig"
|
||||
|
@ -5,5 +5,5 @@
|
||||
|
||||
require conf/machine/include/sun8i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun8i-h3-nanopi-neo-air.dtb"
|
||||
KERNEL_DEVICETREE = "allwinner/sun8i-h3-nanopi-neo-air.dtb"
|
||||
UBOOT_MACHINE = "nanopi_neo_air_defconfig"
|
||||
|
@ -4,6 +4,5 @@
|
||||
|
||||
require conf/machine/include/sun8i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun8i-h3-nanopi-neo.dtb"
|
||||
KERNEL_DEVICETREE = "allwinner/sun8i-h3-nanopi-neo.dtb"
|
||||
UBOOT_MACHINE = "nanopi_neo_defconfig"
|
||||
|
||||
|
@ -4,5 +4,5 @@
|
||||
|
||||
require conf/machine/include/sun8i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun8i-h3-nanopi-r1.dtb"
|
||||
KERNEL_DEVICETREE = "allwinner/sun8i-h3-nanopi-r1.dtb"
|
||||
UBOOT_MACHINE = "nanopi_r1_defconfig"
|
||||
|
@ -5,6 +5,6 @@
|
||||
|
||||
require conf/machine/include/sun4i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun4i-a10-olinuxino-lime.dtb"
|
||||
KERNEL_DEVICETREE = "allwinner/sun4i-a10-olinuxino-lime.dtb"
|
||||
UBOOT_MACHINE = "A10-OLinuXino-Lime_config"
|
||||
SUNXI_FEX_FILE = "sys_config/a10/a10-olinuxino-lime.fex"
|
||||
SUNXI_FEX_FILE = "sys_config/a10/a10-olinuxino-lime.fex"
|
||||
|
@ -5,6 +5,6 @@
|
||||
|
||||
require conf/machine/include/sun5i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun5i-a10s-olinuxino-micro.dtb"
|
||||
KERNEL_DEVICETREE = "allwinner/sun5i-a10s-olinuxino-micro.dtb"
|
||||
UBOOT_MACHINE = "A10s-OLinuXino-M_config"
|
||||
SUNXI_FEX_FILE = "sys_config/a10s/a10s-olinuxino-m.fex"
|
||||
SUNXI_FEX_FILE = "sys_config/a10s/a10s-olinuxino-m.fex"
|
||||
|
@ -5,6 +5,6 @@
|
||||
|
||||
require conf/machine/include/sun5i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun5i-a13-olinuxino.dtb"
|
||||
KERNEL_DEVICETREE = "allwinner/sun5i-a13-olinuxino.dtb"
|
||||
UBOOT_MACHINE = "A13-OLinuXino_config"
|
||||
SUNXI_FEX_FILE = "sys_config/a13/a13-olinuxino.fex"
|
||||
SUNXI_FEX_FILE = "sys_config/a13/a13-olinuxino.fex"
|
||||
|
@ -5,6 +5,6 @@
|
||||
|
||||
require conf/machine/include/sun7i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun7i-a20-olinuxino-micro.dtb"
|
||||
KERNEL_DEVICETREE = "allwinner/sun7i-a20-olinuxino-micro.dtb"
|
||||
UBOOT_MACHINE = "A20-OLinuXino_MICRO_config"
|
||||
SUNXI_FEX_FILE = "sys_config/a20/a20-olinuxino_micro.fex"
|
||||
SUNXI_FEX_FILE = "sys_config/a20/a20-olinuxino_micro.fex"
|
||||
|
@ -5,6 +5,6 @@
|
||||
|
||||
require conf/machine/include/sun7i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun7i-a20-olinuxino-lime.dtb"
|
||||
KERNEL_DEVICETREE = "allwinner/sun7i-a20-olinuxino-lime.dtb"
|
||||
UBOOT_MACHINE = "A20-OLinuXino-Lime_config"
|
||||
SUNXI_FEX_FILE = "sys_config/a20/a20-olinuxino_lime.fex"
|
||||
SUNXI_FEX_FILE = "sys_config/a20/a20-olinuxino_lime.fex"
|
||||
|
@ -5,6 +5,6 @@
|
||||
|
||||
require conf/machine/include/sun7i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun7i-a20-olinuxino-lime2-emmc.dtb"
|
||||
KERNEL_DEVICETREE = "allwinner/sun7i-a20-olinuxino-lime2-emmc.dtb"
|
||||
UBOOT_MACHINE = "A20-OLinuXino-Lime2-eMMC_config"
|
||||
SUNXI_FEX_FILE = "sys_config/a20/a20-olinuxino_lime2.fex"
|
||||
|
@ -5,6 +5,6 @@
|
||||
|
||||
require conf/machine/include/sun7i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun7i-a20-olinuxino-lime2.dtb"
|
||||
KERNEL_DEVICETREE = "allwinner/sun7i-a20-olinuxino-lime2.dtb"
|
||||
UBOOT_MACHINE = "A20-OLinuXino-Lime2_config"
|
||||
SUNXI_FEX_FILE = "sys_config/a20/a20-olinuxino_lime2.fex"
|
||||
|
@ -5,6 +5,6 @@
|
||||
|
||||
require conf/machine/include/sun7i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun7i-a20-olimex-som-evb.dtb"
|
||||
KERNEL_DEVICETREE = "allwinner/sun7i-a20-olimex-som-evb.dtb"
|
||||
UBOOT_MACHINE = "A20-Olimex-SOM-EVB_config"
|
||||
SUNXI_FEX_FILE = "sys_config/a20/olimex_a20_som.fex"
|
||||
|
28
conf/machine/orange-pi-3lts.conf
Normal file
28
conf/machine/orange-pi-3lts.conf
Normal file
@ -0,0 +1,28 @@
|
||||
#@TYPE: Machine
|
||||
#@NAME: orange-pi-3lts
|
||||
#@DESCRIPTION: Machine configuration for the Orange Pi 3 LTS , based on Allwinner H6 CPU
|
||||
# Note: Some boards have faulty RTC a fix is included by default
|
||||
# a workarround in the dts ins include by default but in can removed adding
|
||||
# KERNEL_FEATURES:remove = " bsp/orange-pi-3lts/fix-rtc.scc" to local.conf
|
||||
|
||||
require conf/machine/include/sun50i-h6.inc
|
||||
|
||||
KERNEL_DEVICETREE = "allwinner/sun50i-h6-orangepi-3-lts.dtb"
|
||||
UBOOT_MACHINE = "orangepi_3_lts_defconfig"
|
||||
|
||||
SPL_BINARY = "u-boot-sunxi-with-spl.bin"
|
||||
|
||||
# as for now neither graphics nor audio is supported
|
||||
MACHINE_FEATURES:remove = " x11 alsa rtc"
|
||||
MACHINE_FEATURES:append = " bluetooth wifi"
|
||||
|
||||
# fiwrware needed for wifi + bt
|
||||
MACHINE_EXTRA_RRECOMMENDS += " uwe5622-firmware"
|
||||
|
||||
# Load modules for wifi & bt
|
||||
# Note: fo wifi a custom hci attach userspace sofware is needed that is not included in the layer
|
||||
KERNEL_MODULE_AUTOLOAD += " sprdwl_ng sprdbt_tty "
|
||||
|
||||
|
||||
|
||||
|
@ -4,6 +4,5 @@
|
||||
|
||||
require conf/machine/include/sun8i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun8i-h3-orangepi-lite.dtb"
|
||||
KERNEL_DEVICETREE = "allwinner/sun8i-h3-orangepi-lite.dtb"
|
||||
UBOOT_MACHINE = "orangepi_lite_defconfig"
|
||||
|
||||
|
@ -4,6 +4,5 @@
|
||||
|
||||
require conf/machine/include/sun8i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun8i-h3-orangepi-one.dtb"
|
||||
KERNEL_DEVICETREE = "allwinner/sun8i-h3-orangepi-one.dtb"
|
||||
UBOOT_MACHINE = "orangepi_one_defconfig"
|
||||
|
||||
|
@ -4,6 +4,5 @@
|
||||
|
||||
require conf/machine/include/sun8i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun8i-h3-orangepi-pc-plus.dtb"
|
||||
KERNEL_DEVICETREE = "allwinner/sun8i-h3-orangepi-pc-plus.dtb"
|
||||
UBOOT_MACHINE = "orangepi_pc_plus_defconfig"
|
||||
|
||||
|
@ -4,6 +4,5 @@
|
||||
|
||||
require conf/machine/include/sun8i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun8i-h3-orangepi-pc.dtb"
|
||||
KERNEL_DEVICETREE = "allwinner/sun8i-h3-orangepi-pc.dtb"
|
||||
UBOOT_MACHINE = "orangepi_pc_defconfig"
|
||||
|
||||
|
11
conf/machine/orange-pi-prime.conf
Normal file
11
conf/machine/orange-pi-prime.conf
Normal file
@ -0,0 +1,11 @@
|
||||
#@TYPE: Machine
|
||||
#@NAME: orange-pi-prime
|
||||
#@DESCRIPTION: Machine configuration for the orange-pi-prime, base on Allwinner H5 CPU
|
||||
|
||||
require conf/machine/include/sun50i.inc
|
||||
require conf/machine/include/hardware/ap6212a.inc
|
||||
|
||||
KERNEL_DEVICETREE = "allwinner/sun50i-h5-orangepi-prime.dtb"
|
||||
UBOOT_MACHINE = "orangepi_prime_defconfig"
|
||||
|
||||
MACHINE_EXTRA_RRECOMMENDS:append = " linux-firmware-rtl8723"
|
@ -4,6 +4,5 @@
|
||||
|
||||
require conf/machine/include/sun8i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun8i-h2-plus-orangepi-r1.dtb"
|
||||
KERNEL_DEVICETREE = "allwinner/sun8i-h2-plus-orangepi-r1.dtb"
|
||||
UBOOT_MACHINE = "orangepi_r1_defconfig"
|
||||
|
||||
|
@ -5,5 +5,5 @@
|
||||
require conf/machine/include/sun8i.inc
|
||||
require conf/machine/include/hardware/ap6212a.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun8i-h3-orangepi-zero-plus2.dtb"
|
||||
KERNEL_DEVICETREE = "allwinner/sun8i-h3-orangepi-zero-plus2.dtb"
|
||||
UBOOT_MACHINE = "orangepi_zero_plus2_h3_defconfig"
|
||||
|
@ -4,6 +4,5 @@
|
||||
|
||||
require conf/machine/include/sun8i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun8i-h2-plus-orangepi-zero.dtb"
|
||||
KERNEL_DEVICETREE = "allwinner/sun8i-h2-plus-orangepi-zero.dtb"
|
||||
UBOOT_MACHINE = "orangepi_zero_defconfig"
|
||||
|
||||
|
@ -13,4 +13,9 @@ SPL_BINARY = "u-boot-sunxi-with-spl.bin"
|
||||
MACHINE_FEATURES:remove = "alsa x11"
|
||||
MACHINE_FEATURES:append = "bluetooth wifi"
|
||||
|
||||
MACHINE_EXTRA_RRECOMMENDS = "uwe5622-firmware"
|
||||
MACHINE_EXTRA_RRECOMMENDS = "uwe5622-firmware"
|
||||
|
||||
# Load modules for wifi & bt
|
||||
# Note: fo wifi a custom hci attach userspace sofware is needed that is not included in the layer
|
||||
KERNEL_MODULE_AUTOLOAD += " sprdwl_ng sprdbt_tty "
|
||||
|
||||
|
@ -4,6 +4,6 @@
|
||||
|
||||
require conf/machine/include/sun4i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun4i-a10-pcduino.dtb"
|
||||
KERNEL_DEVICETREE = "allwinner/sun4i-a10-pcduino.dtb"
|
||||
UBOOT_MACHINE = "Linksprite_pcDuino_defconfig"
|
||||
SUNXI_FEX_FILE = "sys_config/a10/pcduino.fex"
|
||||
|
@ -4,6 +4,6 @@
|
||||
|
||||
require conf/machine/include/sun7i.inc
|
||||
|
||||
KERNEL_DEVICETREE = "sun7i-a20-pcduino3.dtb"
|
||||
KERNEL_DEVICETREE = "allwinner/sun7i-a20-pcduino3.dtb"
|
||||
UBOOT_MACHINE = "Linksprite_pcDuino3_defconfig"
|
||||
SUNXI_FEX_FILE = "sys_config/a20/linksprite_pcduino3.fex"
|
||||
SUNXI_FEX_FILE = "sys_config/a20/linksprite_pcduino3.fex"
|
||||
|
@ -1,7 +1,7 @@
|
||||
COMPATIBLE_MACHINE = "(sun50i|sun50i-h616|sun50i-h6)"
|
||||
COMPATIBLE_MACHINE:sunxi = "(sun50i|sun50i-h616|sun50i-h6)"
|
||||
|
||||
TFA_PLATFORM:sun50i = "sun50i_a64"
|
||||
TFA_PLATFORM:sun50i-h6 = "sun50i_h6"
|
||||
TFA_PLATFORM:sun50i-h616 = "sun50i_h616"
|
||||
|
||||
TFA_BUILD_TARGET = "bl31"
|
||||
TFA_BUILD_TARGET:sunxi = "bl31"
|
||||
|
@ -1,108 +0,0 @@
|
||||
From b75fa85deb7099916493ff9cc582c0956121238e Mon Sep 17 00:00:00 2001
|
||||
From: Leon Anavi <leon.anavi@konsulko.com>
|
||||
Date: Mon, 9 Dec 2024 14:02:07 +0000
|
||||
Subject: [PATCH] Revert "sunxi: board: simplify early PMIC setup conditions"
|
||||
|
||||
This reverts commit ffb02942fab024d4a9b6a3346b9791457e272ff4.
|
||||
|
||||
Upstream-Status: Inappropriate
|
||||
|
||||
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
|
||||
---
|
||||
board/sunxi/board.c | 32 ++++++++++++++++++--------------
|
||||
drivers/power/Kconfig | 2 +-
|
||||
2 files changed, 19 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/board/sunxi/board.c b/board/sunxi/board.c
|
||||
index 02fc3eef00..39ecbe988f 100644
|
||||
--- a/board/sunxi/board.c
|
||||
+++ b/board/sunxi/board.c
|
||||
@@ -581,46 +581,50 @@ void sunxi_board_init(void)
|
||||
}
|
||||
}
|
||||
|
||||
-#ifdef CONFIG_AXP_DCDC1_VOLT
|
||||
+#if defined CONFIG_AXP221_POWER || defined CONFIG_AXP809_POWER || \
|
||||
+ defined CONFIG_AXP818_POWER
|
||||
power_failed |= axp_set_dcdc1(CONFIG_AXP_DCDC1_VOLT);
|
||||
- power_failed |= axp_set_dcdc5(CONFIG_AXP_DCDC5_VOLT);
|
||||
#endif
|
||||
-#ifdef CONFIG_AXP_DCDC2_VOLT
|
||||
+#if !defined(CONFIG_AXP305_POWER)
|
||||
power_failed |= axp_set_dcdc2(CONFIG_AXP_DCDC2_VOLT);
|
||||
power_failed |= axp_set_dcdc3(CONFIG_AXP_DCDC3_VOLT);
|
||||
#endif
|
||||
-#ifdef CONFIG_AXP_DCDC4_VOLT
|
||||
+#if !defined(CONFIG_AXP209_POWER) && !defined(CONFIG_AXP818_POWER)
|
||||
power_failed |= axp_set_dcdc4(CONFIG_AXP_DCDC4_VOLT);
|
||||
#endif
|
||||
+#if defined CONFIG_AXP221_POWER || defined CONFIG_AXP809_POWER || \
|
||||
+ defined CONFIG_AXP818_POWER
|
||||
+ power_failed |= axp_set_dcdc5(CONFIG_AXP_DCDC5_VOLT);
|
||||
+#endif
|
||||
|
||||
-#ifdef CONFIG_AXP_ALDO1_VOLT
|
||||
+#if defined CONFIG_AXP221_POWER || defined CONFIG_AXP809_POWER || \
|
||||
+ defined CONFIG_AXP818_POWER
|
||||
power_failed |= axp_set_aldo1(CONFIG_AXP_ALDO1_VOLT);
|
||||
#endif
|
||||
-#ifdef CONFIG_AXP_ALDO2_VOLT
|
||||
+#if !defined(CONFIG_AXP305_POWER)
|
||||
power_failed |= axp_set_aldo2(CONFIG_AXP_ALDO2_VOLT);
|
||||
#endif
|
||||
-#ifdef CONFIG_AXP_ALDO3_VOLT
|
||||
+#if !defined(CONFIG_AXP152_POWER) && !defined(CONFIG_AXP305_POWER)
|
||||
power_failed |= axp_set_aldo3(CONFIG_AXP_ALDO3_VOLT);
|
||||
#endif
|
||||
-#ifdef CONFIG_AXP_ALDO4_VOLT
|
||||
+#ifdef CONFIG_AXP209_POWER
|
||||
power_failed |= axp_set_aldo4(CONFIG_AXP_ALDO4_VOLT);
|
||||
#endif
|
||||
|
||||
-#ifdef CONFIG_AXP_DLDO1_VOLT
|
||||
+#if defined(CONFIG_AXP221_POWER) || defined(CONFIG_AXP809_POWER) || \
|
||||
+ defined(CONFIG_AXP818_POWER)
|
||||
power_failed |= axp_set_dldo(1, CONFIG_AXP_DLDO1_VOLT);
|
||||
power_failed |= axp_set_dldo(2, CONFIG_AXP_DLDO2_VOLT);
|
||||
-#endif
|
||||
-#ifdef CONFIG_AXP_DLDO3_VOLT
|
||||
+#if !defined CONFIG_AXP809_POWER
|
||||
power_failed |= axp_set_dldo(3, CONFIG_AXP_DLDO3_VOLT);
|
||||
power_failed |= axp_set_dldo(4, CONFIG_AXP_DLDO4_VOLT);
|
||||
#endif
|
||||
-#ifdef CONFIG_AXP_ELDO1_VOLT
|
||||
power_failed |= axp_set_eldo(1, CONFIG_AXP_ELDO1_VOLT);
|
||||
power_failed |= axp_set_eldo(2, CONFIG_AXP_ELDO2_VOLT);
|
||||
power_failed |= axp_set_eldo(3, CONFIG_AXP_ELDO3_VOLT);
|
||||
#endif
|
||||
|
||||
-#ifdef CONFIG_AXP_FLDO1_VOLT
|
||||
+#ifdef CONFIG_AXP818_POWER
|
||||
power_failed |= axp_set_fldo(1, CONFIG_AXP_FLDO1_VOLT);
|
||||
power_failed |= axp_set_fldo(2, CONFIG_AXP_FLDO2_VOLT);
|
||||
power_failed |= axp_set_fldo(3, CONFIG_AXP_FLDO3_VOLT);
|
||||
@@ -629,7 +633,7 @@ void sunxi_board_init(void)
|
||||
#if defined CONFIG_AXP809_POWER || defined CONFIG_AXP818_POWER
|
||||
power_failed |= axp_set_sw(IS_ENABLED(CONFIG_AXP_SW_ON));
|
||||
#endif
|
||||
-#endif /* CONFIG_AXPxxx_POWER */
|
||||
+#endif
|
||||
printf("DRAM:");
|
||||
gd->ram_size = sunxi_dram_init();
|
||||
printf(" %d MiB\n", (int)(gd->ram_size >> 20));
|
||||
diff --git a/drivers/power/Kconfig b/drivers/power/Kconfig
|
||||
index 83cb31c937..7f3b990d23 100644
|
||||
--- a/drivers/power/Kconfig
|
||||
+++ b/drivers/power/Kconfig
|
||||
@@ -180,7 +180,7 @@ config AXP_DCDC3_VOLT
|
||||
|
||||
config AXP_DCDC4_VOLT
|
||||
int "axp pmic dcdc4 voltage"
|
||||
- depends on AXP152_POWER || AXP221_POWER || AXP809_POWER || AXP305_POWER
|
||||
+ depends on AXP152_POWER || AXP221_POWER || AXP809_POWER || AXP818_POWER || AXP305_POWER
|
||||
default 1250 if AXP152_POWER
|
||||
default 1200 if MACH_SUN6I
|
||||
default 0 if MACH_SUN8I
|
||||
--
|
||||
2.47.0
|
||||
|
@ -0,0 +1,41 @@
|
||||
From f4dde09fa41eb538b743ee2104c1e2e10cc7e13f Mon Sep 17 00:00:00 2001
|
||||
From: Leon Anavi <leon.anavi@konsulko.com>
|
||||
Date: Sat, 14 Dec 2024 10:59:09 +0000
|
||||
Subject: [PATCH] sunxi: board: Fix early PMIC setup conditions
|
||||
|
||||
Patch provided by Andre Przywara through the U-Boot mailing list:
|
||||
https://lists.denx.de/pipermail/u-boot/2024-December/575050.html
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Suggested-by: Andre Przywara <andre.przywara@arm.com>
|
||||
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
|
||||
---
|
||||
board/sunxi/board.c | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/board/sunxi/board.c b/board/sunxi/board.c
|
||||
index 961cdcde74..d6759fe853 100644
|
||||
--- a/board/sunxi/board.c
|
||||
+++ b/board/sunxi/board.c
|
||||
@@ -577,7 +577,6 @@ void sunxi_board_init(void)
|
||||
|
||||
#ifdef CONFIG_AXP_DCDC1_VOLT
|
||||
power_failed |= axp_set_dcdc1(CONFIG_AXP_DCDC1_VOLT);
|
||||
- power_failed |= axp_set_dcdc5(CONFIG_AXP_DCDC5_VOLT);
|
||||
#endif
|
||||
#ifdef CONFIG_AXP_DCDC2_VOLT
|
||||
power_failed |= axp_set_dcdc2(CONFIG_AXP_DCDC2_VOLT);
|
||||
@@ -586,6 +585,9 @@ void sunxi_board_init(void)
|
||||
#ifdef CONFIG_AXP_DCDC4_VOLT
|
||||
power_failed |= axp_set_dcdc4(CONFIG_AXP_DCDC4_VOLT);
|
||||
#endif
|
||||
+#ifdef CONFIG_AXP_DCDC5_VOLT
|
||||
+ power_failed |= axp_set_dcdc5(CONFIG_AXP_DCDC5_VOLT);
|
||||
+#endif
|
||||
|
||||
#ifdef CONFIG_AXP_ALDO1_VOLT
|
||||
power_failed |= axp_set_aldo1(CONFIG_AXP_ALDO1_VOLT);
|
||||
--
|
||||
2.47.1
|
||||
|
421
recipes-bsp/u-boot/files/0004-OrangePi-3-LTS-support.patch
Normal file
421
recipes-bsp/u-boot/files/0004-OrangePi-3-LTS-support.patch
Normal file
@ -0,0 +1,421 @@
|
||||
From 9966dda20246285abf8b417bd251d5a4bea3e423 Mon Sep 17 00:00:00 2001
|
||||
From: Juliano Dorigão <jdorigao@gmail.com>
|
||||
Date: Fri, 3 Mar 2023 16:11:30 -0400
|
||||
Subject: [PATCH] OrangePi 3 LTS support
|
||||
|
||||
Upstream-Status: Pending
|
||||
---
|
||||
arch/arm/dts/Makefile | 1 +
|
||||
arch/arm/dts/sun50i-h6-orangepi-3-lts.dts | 361 ++++++++++++++++++++++
|
||||
configs/orangepi_3_lts_defconfig | 19 ++
|
||||
3 files changed, 381 insertions(+)
|
||||
create mode 100644 arch/arm/dts/sun50i-h6-orangepi-3-lts.dts
|
||||
create mode 100644 configs/orangepi_3_lts_defconfig
|
||||
|
||||
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
|
||||
index 43951a77..8dbbb6f4 100644
|
||||
--- a/arch/arm/dts/Makefile
|
||||
+++ b/arch/arm/dts/Makefile
|
||||
@@ -710,6 +710,7 @@ dtb-$(CONFIG_MACH_SUN50I_H5) += \
|
||||
dtb-$(CONFIG_MACH_SUN50I_H6) += \
|
||||
sun50i-h6-beelink-gs1.dtb \
|
||||
sun50i-h6-orangepi-3.dtb \
|
||||
+ sun50i-h6-orangepi-3-lts.dtb \
|
||||
sun50i-h6-orangepi-lite2.dtb \
|
||||
sun50i-h6-orangepi-one-plus.dtb \
|
||||
sun50i-h6-pine-h64.dtb \
|
||||
diff --git a/arch/arm/dts/sun50i-h6-orangepi-3-lts.dts b/arch/arm/dts/sun50i-h6-orangepi-3-lts.dts
|
||||
new file mode 100644
|
||||
index 00000000..67f38b8a
|
||||
--- /dev/null
|
||||
+++ b/arch/arm/dts/sun50i-h6-orangepi-3-lts.dts
|
||||
@@ -0,0 +1,361 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+// Copyright (C) 2023 Jernej Skrabec <jernej.skrabec@gmail.com>
|
||||
+// Based on sun50i-h6-orangepi-3.dts, which is:
|
||||
+// Copyright (C) 2019 Ondřej Jirman <megous@megous.com>
|
||||
+
|
||||
+/dts-v1/;
|
||||
+
|
||||
+#include "sun50i-h6.dtsi"
|
||||
+#include "sun50i-h6-cpu-opp.dtsi"
|
||||
+
|
||||
+#include <dt-bindings/gpio/gpio.h>
|
||||
+
|
||||
+/ {
|
||||
+ model = "OrangePi 3 LTS";
|
||||
+ compatible = "xunlong,orangepi-3-lts", "allwinner,sun50i-h6";
|
||||
+
|
||||
+ aliases {
|
||||
+ ethernet0 = &emac;
|
||||
+ serial0 = &uart0;
|
||||
+ };
|
||||
+
|
||||
+ chosen {
|
||||
+ stdout-path = "serial0:115200n8";
|
||||
+ };
|
||||
+
|
||||
+ connector {
|
||||
+ compatible = "hdmi-connector";
|
||||
+ ddc-en-gpios = <&pio 7 2 GPIO_ACTIVE_HIGH>; /* PH2 */
|
||||
+ type = "a";
|
||||
+
|
||||
+ port {
|
||||
+ hdmi_con_in: endpoint {
|
||||
+ remote-endpoint = <&hdmi_out_con>;
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ ext_osc32k: ext_osc32k_clk {
|
||||
+ #clock-cells = <0>;
|
||||
+ compatible = "fixed-clock";
|
||||
+ clock-frequency = <32768>;
|
||||
+ clock-output-names = "ext_osc32k";
|
||||
+ };
|
||||
+
|
||||
+ leds {
|
||||
+ compatible = "gpio-leds";
|
||||
+
|
||||
+ led-0 {
|
||||
+ label = "orangepi:red:power";
|
||||
+ gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */
|
||||
+ };
|
||||
+
|
||||
+ led-1 {
|
||||
+ label = "orangepi:green:status";
|
||||
+ gpios = <&r_pio 0 7 GPIO_ACTIVE_HIGH>; /* PL7 */
|
||||
+ default-state = "on";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ reg_vcc5v: vcc5v {
|
||||
+ /* board wide 5V supply directly from the DC jack */
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "vcc-5v";
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
+ regulator-always-on;
|
||||
+ };
|
||||
+
|
||||
+ reg_gmac_3v3: gmac-3v3 {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "gmac-3v3";
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ startup-delay-us = <150000>;
|
||||
+ enable-active-high;
|
||||
+ gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>; /* PD6 */
|
||||
+ };
|
||||
+
|
||||
+ reg_vcc33_wifi: vcc33-wifi {
|
||||
+ /* Always on 3.3V regulator for WiFi and BT */
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "vcc33-wifi";
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ enable-active-high;
|
||||
+ gpio = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */
|
||||
+ };
|
||||
+
|
||||
+ reg_vcc_wifi_io: vcc-wifi-io {
|
||||
+ /* Always on 1.8V/300mA regulator for WiFi and BT IO */
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "vcc-wifi-io";
|
||||
+ regulator-min-microvolt = <1800000>;
|
||||
+ regulator-max-microvolt = <1800000>;
|
||||
+ regulator-always-on;
|
||||
+ vin-supply = <®_vcc33_wifi>;
|
||||
+ };
|
||||
+
|
||||
+ wifi_pwrseq: wifi-pwrseq {
|
||||
+ compatible = "mmc-pwrseq-simple";
|
||||
+ clocks = <&rtc 1>;
|
||||
+ clock-names = "ext_clock";
|
||||
+ reset-gpios = <&r_pio 1 3 GPIO_ACTIVE_LOW>; /* PM3 */
|
||||
+ post-power-on-delay-ms = <200>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&cpu0 {
|
||||
+ cpu-supply = <®_dcdca>;
|
||||
+};
|
||||
+
|
||||
+&de {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&dwc3 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&ehci0 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&ehci3 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&emac {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&ext_rgmii_pins>;
|
||||
+ phy-mode = "rgmii";
|
||||
+ phy-handle = <&ext_rgmii_phy>;
|
||||
+ phy-supply = <®_gmac_3v3>;
|
||||
+ allwinner,rx-delay-ps = <1500>;
|
||||
+ allwinner,tx-delay-ps = <700>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&gpu {
|
||||
+ mali-supply = <®_dcdcc>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&hdmi {
|
||||
+ hvcc-supply = <®_bldo2>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&hdmi_out {
|
||||
+ hdmi_out_con: endpoint {
|
||||
+ remote-endpoint = <&hdmi_con_in>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&mdio {
|
||||
+ ext_rgmii_phy: ethernet-phy@1 {
|
||||
+ compatible = "ethernet-phy-ieee802.3-c22";
|
||||
+ reg = <1>;
|
||||
+
|
||||
+ reset-gpios = <&pio 3 14 GPIO_ACTIVE_LOW>; /* PD14 */
|
||||
+ reset-assert-us = <15000>;
|
||||
+ reset-deassert-us = <40000>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&mmc0 {
|
||||
+ vmmc-supply = <®_cldo1>;
|
||||
+ cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
|
||||
+ bus-width = <4>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&mmc1 {
|
||||
+ vmmc-supply = <®_vcc33_wifi>;
|
||||
+ vqmmc-supply = <®_vcc_wifi_io>;
|
||||
+ mmc-pwrseq = <&wifi_pwrseq>;
|
||||
+ bus-width = <4>;
|
||||
+ non-removable;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&mmc2 {
|
||||
+ vmmc-supply = <®_cldo1>;
|
||||
+ vqmmc-supply = <®_bldo2>;
|
||||
+ cap-mmc-hw-reset;
|
||||
+ non-removable;
|
||||
+ bus-width = <8>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&ohci0 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&ohci3 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&pio {
|
||||
+ vcc-pc-supply = <®_bldo2>;
|
||||
+ vcc-pd-supply = <®_cldo1>;
|
||||
+ vcc-pg-supply = <®_bldo3>;
|
||||
+};
|
||||
+
|
||||
+&r_ir {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&r_rsb {
|
||||
+ clock-frequency = <100000>;
|
||||
+ status = "okay";
|
||||
+
|
||||
+ axp805: pmic@745 {
|
||||
+ compatible = "x-powers,axp805", "x-powers,axp806";
|
||||
+ reg = <0x745>;
|
||||
+ interrupt-parent = <&r_intc>;
|
||||
+ interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_LOW>;
|
||||
+ interrupt-controller;
|
||||
+ #interrupt-cells = <1>;
|
||||
+ x-powers,self-working-mode;
|
||||
+ vina-supply = <®_vcc5v>;
|
||||
+ vinb-supply = <®_vcc5v>;
|
||||
+ vinc-supply = <®_vcc5v>;
|
||||
+ vind-supply = <®_vcc5v>;
|
||||
+ vine-supply = <®_vcc5v>;
|
||||
+ aldoin-supply = <®_vcc5v>;
|
||||
+ bldoin-supply = <®_vcc5v>;
|
||||
+ cldoin-supply = <®_vcc5v>;
|
||||
+
|
||||
+ regulators {
|
||||
+ reg_aldo1: aldo1 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-name = "vcc-pl-led-ir";
|
||||
+ };
|
||||
+
|
||||
+ reg_aldo2: aldo2 {
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-name = "vcc33-audio-tv-ephy-mac";
|
||||
+ };
|
||||
+
|
||||
+ /* ALDO3 is shorted to CLDO1 */
|
||||
+ reg_aldo3: aldo3 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-name = "vcc33-io-pd-emmc-sd-usb-uart-1";
|
||||
+ };
|
||||
+
|
||||
+ reg_bldo1: bldo1 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <1800000>;
|
||||
+ regulator-max-microvolt = <1800000>;
|
||||
+ regulator-name = "vcc18-dram-bias-pll";
|
||||
+ };
|
||||
+
|
||||
+ reg_bldo2: bldo2 {
|
||||
+ regulator-min-microvolt = <1800000>;
|
||||
+ regulator-max-microvolt = <1800000>;
|
||||
+ regulator-name = "vcc-efuse-pcie-hdmi-pc";
|
||||
+ };
|
||||
+
|
||||
+ reg_bldo3: bldo3 {
|
||||
+ regulator-min-microvolt = <1800000>;
|
||||
+ regulator-max-microvolt = <1800000>;
|
||||
+ regulator-name = "vcc-pm-pg-dcxoio-wifi";
|
||||
+ };
|
||||
+
|
||||
+ bldo4 {
|
||||
+ /* unused */
|
||||
+ };
|
||||
+
|
||||
+ reg_cldo1: cldo1 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-name = "vcc33-io-pd-emmc-sd-usb-uart-2";
|
||||
+ };
|
||||
+
|
||||
+ cldo2 {
|
||||
+ /* unused */
|
||||
+ };
|
||||
+
|
||||
+ cldo3 {
|
||||
+ /* unused */
|
||||
+ };
|
||||
+
|
||||
+ reg_dcdca: dcdca {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <800000>;
|
||||
+ regulator-max-microvolt = <1160000>;
|
||||
+ regulator-ramp-delay = <2500>;
|
||||
+ regulator-name = "vdd-cpu";
|
||||
+ };
|
||||
+
|
||||
+ reg_dcdcc: dcdcc {
|
||||
+ regulator-enable-ramp-delay = <32000>;
|
||||
+ regulator-min-microvolt = <810000>;
|
||||
+ regulator-max-microvolt = <1080000>;
|
||||
+ regulator-ramp-delay = <2500>;
|
||||
+ regulator-name = "vdd-gpu";
|
||||
+ };
|
||||
+
|
||||
+ reg_dcdcd: dcdcd {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <980000>;
|
||||
+ regulator-max-microvolt = <980000>;
|
||||
+ regulator-name = "vdd-sys";
|
||||
+ };
|
||||
+
|
||||
+ reg_dcdce: dcdce {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <1200000>;
|
||||
+ regulator-max-microvolt = <1200000>;
|
||||
+ regulator-name = "vcc-dram";
|
||||
+ };
|
||||
+
|
||||
+ sw {
|
||||
+ /* unused */
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&pwm {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&r_ir {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&rtc {
|
||||
+ clocks = <&ext_osc32k>;
|
||||
+};
|
||||
+
|
||||
+/delete-node/ &spi0;
|
||||
+
|
||||
+&uart0 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&uart0_ph_pins>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usb2otg {
|
||||
+ dr_mode = "host";
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usb2phy {
|
||||
+ usb0_id_det-gpios = <&pio 2 15 GPIO_ACTIVE_HIGH>; /* PC15 */
|
||||
+ usb0_vbus-supply = <®_vcc5v>;
|
||||
+ usb3_vbus-supply = <®_vcc5v>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usb3phy {
|
||||
+ status = "okay";
|
||||
+};
|
||||
diff --git a/configs/orangepi_3_lts_defconfig b/configs/orangepi_3_lts_defconfig
|
||||
new file mode 100644
|
||||
index 00000000..41a9af4e
|
||||
--- /dev/null
|
||||
+++ b/configs/orangepi_3_lts_defconfig
|
||||
@@ -0,0 +1,19 @@
|
||||
+CONFIG_ARM=y
|
||||
+CONFIG_ARCH_SUNXI=y
|
||||
+CONFIG_DEFAULT_DEVICE_TREE="sun50i-h6-orangepi-3-lts"
|
||||
+CONFIG_SPL=y
|
||||
+CONFIG_MACH_SUN50I_H6=y
|
||||
+CONFIG_SUNXI_DRAM_H6_LPDDR3=y
|
||||
+CONFIG_MMC0_CD_PIN="PF6"
|
||||
+CONFIG_MMC_SUNXI_SLOT_EXTRA=2
|
||||
+# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
|
||||
+CONFIG_SPL_STACK=0x118000
|
||||
+CONFIG_SYS_PBSIZE=1024
|
||||
+CONFIG_SYS_BOOTM_LEN=0x2000000
|
||||
+CONFIG_PHY_SUN50I_USB3=y
|
||||
+CONFIG_USB_XHCI_HCD=y
|
||||
+CONFIG_USB_XHCI_DWC3=y
|
||||
+CONFIG_USB_EHCI_HCD=y
|
||||
+CONFIG_USB_OHCI_HCD=y
|
||||
+CONFIG_USB_DWC3=y
|
||||
+# CONFIG_USB_DWC3_GADGET is not set
|
||||
--
|
||||
2.39.2
|
||||
|
@ -0,0 +1,30 @@
|
||||
From bf813915bf480154c707e0be14016cef94adbd95 Mon Sep 17 00:00:00 2001
|
||||
From: Marek Belisko <marek.belisko@gmail.com>
|
||||
Date: Tue, 7 May 2024 11:27:08 +0200
|
||||
Subject: [PATCH] mangopi-mq-r-t113: Fix serial console
|
||||
|
||||
Serial console is on uart3 not on uart0.
|
||||
|
||||
Upstream-Status: Inappropriate (for this board only)
|
||||
|
||||
Signed-off-by: Marek Belisko <marek.belisko@gmail.com>
|
||||
---
|
||||
include/configs/sunxi-common.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/include/configs/sunxi-common.h b/include/configs/sunxi-common.h
|
||||
index b8ca77d031..4e4808d2c1 100644
|
||||
--- a/include/configs/sunxi-common.h
|
||||
+++ b/include/configs/sunxi-common.h
|
||||
@@ -324,7 +324,7 @@
|
||||
MEM_LAYOUT_ENV_EXTRA_SETTINGS \
|
||||
DFU_ALT_INFO_RAM \
|
||||
"fdtfile=" FDTFILE "\0" \
|
||||
- "console=ttyS0,115200\0" \
|
||||
+ "console=ttyS3,115200\0" \
|
||||
"uuid_gpt_esp=" UUID_GPT_ESP "\0" \
|
||||
"uuid_gpt_system=" UUID_GPT_SYSTEM "\0" \
|
||||
"partitions=" PARTS_DEFAULT "\0" \
|
||||
--
|
||||
2.25.1
|
||||
|
@ -15,13 +15,17 @@ SRC_URI:append:sunxi = " \
|
||||
file://0001-nanopi_neo_air_defconfig-Enable-eMMC-support.patch \
|
||||
file://0002-Added-nanopi-r1-board-support.patch \
|
||||
file://0003-sunxi-H6-Enable-Ethernet-on-Orange-Pi-One-Plus.patch \
|
||||
file://0004-OrangePi-3-LTS-support.patch \
|
||||
file://boot.cmd \
|
||||
"
|
||||
|
||||
SRC_URI:append:sun9i = " \
|
||||
file://0001-Revert-sunxi-board-simplify-early-PMIC-setup-conditi.patch \
|
||||
file://0001-sunxi-board-Fix-early-PMIC-setup-conditions.patch \
|
||||
"
|
||||
|
||||
SRC_URI:append:mangopi-mq-t-t113 = " \
|
||||
file://0004-mangopi-mq-r-t113-Fix-serial-console.patch \
|
||||
"
|
||||
|
||||
UBOOT_ENV_SUFFIX:sunxi = "scr"
|
||||
UBOOT_ENV:sunxi = "boot"
|
||||
|
||||
|
@ -13,7 +13,7 @@ SRC_URI = "https://pypi.python.org/packages/source/p/pyA20/pyA20-${PV}.tar.gz \
|
||||
"
|
||||
S = "${WORKDIR}/pyA20-${PV}"
|
||||
|
||||
inherit distutils3
|
||||
inherit setuptools3
|
||||
|
||||
do_compile:prepend() {
|
||||
cp ${WORKDIR}/mapping.h ${S}/pyA20/gpio/mapping.h
|
||||
|
@ -1 +1 @@
|
||||
DEPENDS += "libxshmfence"
|
||||
PACKAGECONFIG[dri3] = "-Ddri3=true,-Ddri3=false,libxshmfence"
|
||||
|
37
recipes-kernel/armbian-firmware/armbian-firmware_git.bb
Normal file
37
recipes-kernel/armbian-firmware/armbian-firmware_git.bb
Normal file
@ -0,0 +1,37 @@
|
||||
SUMMARY = "Armbian Firmware"
|
||||
DESCRIPTION = "Collection of firmware files necessary for Armbian supported hardware devices to work correctly with the Linux kernel"
|
||||
LICENSE = "CLOSED"
|
||||
|
||||
PV = "1.0+git"
|
||||
SRC_URI = "git://github.com/armbian/firmware.git;protocol=https;branch=master"
|
||||
SRCREV = "4050e02da2dce2b74c97101f7964ecfb962f5aec"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit allarch
|
||||
|
||||
do_compile[noexec] = "1"
|
||||
|
||||
do_install() {
|
||||
# ap6212 (bluetooth firmware only, wifi firmware is provided by linux-firmware-bcm43430)
|
||||
install -d "${D}${nonarch_base_libdir}/firmware/ap6212"
|
||||
install -m 0644 "${S}/ap6212/bcm43438a1.hcd" "${D}${nonarch_base_libdir}/firmware/ap6212/"
|
||||
install -d "${D}${nonarch_base_libdir}/firmware/brcm"
|
||||
ln -sf ../ap6212/bcm43438a1.hcd "${D}${nonarch_base_libdir}/firmware/brcm/BCM43430A1.hcd"
|
||||
}
|
||||
|
||||
PACKAGES =+ " \
|
||||
${PN}-ap6212 \
|
||||
"
|
||||
|
||||
FILES:${PN}-ap6212 = " \
|
||||
${nonarch_base_libdir}/firmware/ap6212/* \
|
||||
${nonarch_base_libdir}/firmware/brcm/BCM43430A1.hcd \
|
||||
"
|
||||
|
||||
|
||||
# Make armbian-firmware depend on all of the split-out packages.
|
||||
python populate_packages:prepend () {
|
||||
firmware_pkgs = oe.utils.packages_filter_out_system(d)
|
||||
d.appendVar('RRECOMMENDS:armbian-firmware', ' ' + ' '.join(firmware_pkgs))
|
||||
}
|
@ -6,8 +6,21 @@
|
||||
# WARNING: The following commit is required for NVRAM files to be included in
|
||||
# linux-firmware-bcm43430 package:
|
||||
# http://git.openembedded.org/openembedded-core/commit/?id=dde0f79f32fa6bab045ef60199903f74c4cc3393
|
||||
do_install:append() {
|
||||
do_install:append:sunxi() {
|
||||
ln -sf -r ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.AP6212.txt ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.xunlong,orangepi-zero-plus2.txt
|
||||
ln -sf -r ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.AP6212.txt ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.xunlong,orangepi-zero-plus2-h3.txt
|
||||
ln -sf -r ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.AP6212.txt ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.friendlyarm,nanopi-neo-plus2.txt
|
||||
ln -sf -r ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.AP6212.txt ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.sinovoip,bpi-m2-berry.txt
|
||||
}
|
||||
|
||||
do_install:append:cubieboard4() {
|
||||
ln -sf -r ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac4330-sdio.bin ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac4330-sdio.cubietech,a80-cubieboard4.bin
|
||||
}
|
||||
|
||||
do_install:append:merrii-a80-optimus() {
|
||||
ln -sf -r ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac4330-sdio.bin ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac4330-sdio.merrii,a80-optimus.bin
|
||||
}
|
||||
|
||||
do_install:append:sun9i() {
|
||||
ln -sf -r ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac4330-sdio.Prowise-PT301.txt ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac4330-sdio.txt
|
||||
}
|
||||
|
@ -1,45 +0,0 @@
|
||||
From 5138d597275fd503573fac84018186bd18740644 Mon Sep 17 00:00:00 2001
|
||||
From: pbiel <pbiel7@gmail.com>
|
||||
Date: Thu, 30 Mar 2023 22:45:33 +0200
|
||||
Subject: [PATCH] Fix incldue path for unisocwcn
|
||||
|
||||
---
|
||||
drivers/net/wireless/uwe5622/Makefile | 4 +++-
|
||||
drivers/net/wireless/uwe5622/unisocwcn/Makefile | 6 +++---
|
||||
2 files changed, 6 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/uwe5622/Makefile b/drivers/net/wireless/uwe5622/Makefile
|
||||
index 313ea5123..e9a398584 100644
|
||||
--- a/drivers/net/wireless/uwe5622/Makefile
|
||||
+++ b/drivers/net/wireless/uwe5622/Makefile
|
||||
@@ -2,7 +2,9 @@ obj-$(CONFIG_AW_WIFI_DEVICE_UWE5622) += unisocwcn/
|
||||
obj-$(CONFIG_WLAN_UWE5622) += unisocwifi/
|
||||
obj-$(CONFIG_TTY_OVERY_SDIO) += tty-sdio/
|
||||
|
||||
-UNISOCWCN_DIR := $(shell cd $(src)/unisocwcn/ && /bin/pwd)
|
||||
+mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST)))
|
||||
+UNISOCWCN_DIR := $(dir $(mkfile_path))/unisocwcn/
|
||||
+
|
||||
UNISOC_BSP_INCLUDE := $(UNISOCWCN_DIR)/include
|
||||
export UNISOC_BSP_INCLUDE
|
||||
|
||||
diff --git a/drivers/net/wireless/uwe5622/unisocwcn/Makefile b/drivers/net/wireless/uwe5622/unisocwcn/Makefile
|
||||
index f9c595747..1ad490594 100644
|
||||
--- a/drivers/net/wireless/uwe5622/unisocwcn/Makefile
|
||||
+++ b/drivers/net/wireless/uwe5622/unisocwcn/Makefile
|
||||
@@ -129,9 +129,9 @@ ccflags-y += -DCONFIG_WCN_BOOT
|
||||
ccflags-y += -DCONFIG_WCN_UTILS
|
||||
|
||||
#### include path ######
|
||||
-ccflags-y += -I$(src)/include/
|
||||
-ccflags-y += -I$(src)/platform/
|
||||
-ccflags-y += -I$(src)/platform/rf/
|
||||
+ccflags-y += -I$(srctree)/$(src)/include/
|
||||
+ccflags-y += -I$(srctree)/$(src)/platform/
|
||||
+ccflags-y += -I$(srctree)/$(src)/platform/rf/
|
||||
|
||||
#### add cflag for Customer ######
|
||||
### ---------- Hisilicon start ---------- ###
|
||||
--
|
||||
2.34.1
|
||||
|
@ -1,177 +0,0 @@
|
||||
From 5f4d2d5fc32dfe41c73cac36ec6747c34e5562a3 Mon Sep 17 00:00:00 2001
|
||||
From: pbiel <pbiel7@gmail.com>
|
||||
Date: Wed, 15 Mar 2023 23:04:27 +0100
|
||||
Subject: [PATCH] wireless: Adapt uwe5622 wifi driver to kernel 6.1
|
||||
|
||||
---
|
||||
drivers/net/wireless/uwe5622/tty-sdio/lpm.c | 2 +-
|
||||
.../uwe5622/unisocwcn/boot/wcn_integrate_dev.c | 2 +-
|
||||
.../uwe5622/unisocwcn/platform/wcn_parn_parser.c | 2 +-
|
||||
.../wireless/uwe5622/unisocwcn/platform/wcn_procfs.c | 2 +-
|
||||
.../wireless/uwe5622/unisocwcn/usb/wcn_usb_download.c | 2 +-
|
||||
.../net/wireless/uwe5622/unisocwcn/usb/wcn_usb_test.c | 6 +++---
|
||||
drivers/net/wireless/uwe5622/unisocwifi/cfg80211.c | 10 +++++-----
|
||||
drivers/net/wireless/uwe5622/unisocwifi/cmdevt.c | 2 +-
|
||||
8 files changed, 14 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/uwe5622/tty-sdio/lpm.c b/drivers/net/wireless/uwe5622/tty-sdio/lpm.c
|
||||
index b2d9a8994e5e..35e30651a921 100644
|
||||
--- a/drivers/net/wireless/uwe5622/tty-sdio/lpm.c
|
||||
+++ b/drivers/net/wireless/uwe5622/tty-sdio/lpm.c
|
||||
@@ -70,7 +70,7 @@ static int btwrite_proc_show(struct seq_file *m, void *v)
|
||||
|
||||
static int bluesleep_open_proc_btwrite(struct inode *inode, struct file *file)
|
||||
{
|
||||
- return single_open(file, btwrite_proc_show, PDE_DATA(inode));
|
||||
+ return single_open(file, btwrite_proc_show, pde_data(inode));
|
||||
}
|
||||
|
||||
static const struct proc_ops lpm_proc_btwrite_fops = {
|
||||
diff --git a/drivers/net/wireless/uwe5622/unisocwcn/boot/wcn_integrate_dev.c b/drivers/net/wireless/uwe5622/unisocwcn/boot/wcn_integrate_dev.c
|
||||
index 3ee6910e7cf7..29a3ec298bc1 100644
|
||||
--- a/drivers/net/wireless/uwe5622/unisocwcn/boot/wcn_integrate_dev.c
|
||||
+++ b/drivers/net/wireless/uwe5622/unisocwcn/boot/wcn_integrate_dev.c
|
||||
@@ -562,7 +562,7 @@ static struct wcn_proc_data g_proc_data = {
|
||||
static int wcn_platform_open(struct inode *inode, struct file *filp)
|
||||
{
|
||||
struct platform_proc_file_entry
|
||||
- *entry = (struct platform_proc_file_entry *)PDE_DATA(inode);
|
||||
+ *entry = (struct platform_proc_file_entry *)pde_data(inode);
|
||||
|
||||
WCN_INFO("entry name:%s\n!", entry->name);
|
||||
|
||||
diff --git a/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_parn_parser.c b/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_parn_parser.c
|
||||
index aea7d6d0fe57..bd841f0b32d3 100644
|
||||
--- a/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_parn_parser.c
|
||||
+++ b/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_parn_parser.c
|
||||
@@ -146,7 +146,7 @@ static int prefixcmp(const char *str, const char *prefix)
|
||||
}
|
||||
|
||||
#if KERNEL_VERSION(3, 19, 0) <= LINUX_VERSION_CODE
|
||||
-static int find_callback(struct dir_context *ctx, const char *name, int namlen,
|
||||
+static bool find_callback(struct dir_context *ctx, const char *name, int namlen,
|
||||
loff_t offset, u64 ino, unsigned int d_type)
|
||||
#else
|
||||
static int find_callback(void *ctx, const char *name, int namlen,
|
||||
diff --git a/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_procfs.c b/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_procfs.c
|
||||
index 2edb7903d80e..9e453365bba8 100644
|
||||
--- a/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_procfs.c
|
||||
+++ b/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_procfs.c
|
||||
@@ -431,7 +431,7 @@ static const struct proc_ops mdbg_snap_shoot_seq_fops = {
|
||||
static int mdbg_proc_open(struct inode *inode, struct file *filp)
|
||||
{
|
||||
struct mdbg_proc_entry *entry =
|
||||
- (struct mdbg_proc_entry *)PDE_DATA(inode);
|
||||
+ (struct mdbg_proc_entry *)pde_data(inode);
|
||||
filp->private_data = entry;
|
||||
|
||||
return 0;
|
||||
diff --git a/drivers/net/wireless/uwe5622/unisocwcn/usb/wcn_usb_download.c b/drivers/net/wireless/uwe5622/unisocwcn/usb/wcn_usb_download.c
|
||||
index 8f228d403909..750bfc0466cb 100644
|
||||
--- a/drivers/net/wireless/uwe5622/unisocwcn/usb/wcn_usb_download.c
|
||||
+++ b/drivers/net/wireless/uwe5622/unisocwcn/usb/wcn_usb_download.c
|
||||
@@ -82,7 +82,7 @@ static int wcn_usb_dopen(struct inode *inode, struct file *file)
|
||||
{
|
||||
struct wcn_usb_ddata *data;
|
||||
|
||||
- data = (struct wcn_usb_ddata *)PDE_DATA(inode);
|
||||
+ data = (struct wcn_usb_ddata *)pde_data(inode);
|
||||
|
||||
if (!data)
|
||||
return -EIO;
|
||||
diff --git a/drivers/net/wireless/uwe5622/unisocwcn/usb/wcn_usb_test.c b/drivers/net/wireless/uwe5622/unisocwcn/usb/wcn_usb_test.c
|
||||
index c2cccc658c0d..e7a9f258943e 100644
|
||||
--- a/drivers/net/wireless/uwe5622/unisocwcn/usb/wcn_usb_test.c
|
||||
+++ b/drivers/net/wireless/uwe5622/unisocwcn/usb/wcn_usb_test.c
|
||||
@@ -61,7 +61,7 @@ static int wcn_usb_channel_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
struct channel *channel;
|
||||
|
||||
- channel = (struct channel *)PDE_DATA(inode);
|
||||
+ channel = (struct channel *)pde_data(inode);
|
||||
|
||||
if (!channel)
|
||||
return -EIO;
|
||||
@@ -467,7 +467,7 @@ static int wcn_usb_chnmg_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
struct chnmg *chnmg;
|
||||
/* get channel_list head */
|
||||
- chnmg = (struct chnmg *)PDE_DATA(inode);
|
||||
+ chnmg = (struct chnmg *)pde_data(inode);
|
||||
|
||||
file->private_data = chnmg;
|
||||
return 0;
|
||||
@@ -916,7 +916,7 @@ static int print_level_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
struct chnmg *chnmg;
|
||||
/* get channel_list head */
|
||||
- chnmg = (struct chnmg *)PDE_DATA(inode);
|
||||
+ chnmg = (struct chnmg *)pde_data(inode);
|
||||
|
||||
file->private_data = chnmg;
|
||||
return 0;
|
||||
diff --git a/drivers/net/wireless/uwe5622/unisocwifi/cfg80211.c b/drivers/net/wireless/uwe5622/unisocwifi/cfg80211.c
|
||||
index daef880ae3c0..2231388da70a 100644
|
||||
--- a/drivers/net/wireless/uwe5622/unisocwifi/cfg80211.c
|
||||
+++ b/drivers/net/wireless/uwe5622/unisocwifi/cfg80211.c
|
||||
@@ -703,7 +703,7 @@ static int sprdwl_add_cipher_key(struct sprdwl_vif *vif, bool pairwise,
|
||||
}
|
||||
|
||||
static int sprdwl_cfg80211_add_key(struct wiphy *wiphy, struct net_device *ndev,
|
||||
- u8 key_index, bool pairwise,
|
||||
+ int link_id, u8 key_index, bool pairwise,
|
||||
const u8 *mac_addr,
|
||||
struct key_params *params)
|
||||
{
|
||||
@@ -725,7 +725,7 @@ static int sprdwl_cfg80211_add_key(struct wiphy *wiphy, struct net_device *ndev,
|
||||
}
|
||||
|
||||
static int sprdwl_cfg80211_del_key(struct wiphy *wiphy, struct net_device *ndev,
|
||||
- u8 key_index, bool pairwise,
|
||||
+ int link_id, u8 key_index, bool pairwise,
|
||||
const u8 *mac_addr)
|
||||
{
|
||||
struct sprdwl_vif *vif = netdev_priv(ndev);
|
||||
@@ -755,7 +755,7 @@ static int sprdwl_cfg80211_del_key(struct wiphy *wiphy, struct net_device *ndev,
|
||||
|
||||
static int sprdwl_cfg80211_set_default_key(struct wiphy *wiphy,
|
||||
struct net_device *ndev,
|
||||
- u8 key_index, bool unicast,
|
||||
+ int link_id, u8 key_index, bool unicast,
|
||||
bool multicast)
|
||||
{
|
||||
struct sprdwl_vif *vif = netdev_priv(ndev);
|
||||
@@ -984,7 +984,7 @@ static int sprdwl_cfg80211_change_beacon(struct wiphy *wiphy,
|
||||
return sprdwl_change_beacon(vif, beacon);
|
||||
}
|
||||
|
||||
-static int sprdwl_cfg80211_stop_ap(struct wiphy *wiphy, struct net_device *ndev)
|
||||
+static int sprdwl_cfg80211_stop_ap(struct wiphy *wiphy, struct net_device *ndev, unsigned int link_id)
|
||||
{
|
||||
#ifdef DFS_MASTER
|
||||
struct sprdwl_vif *vif = netdev_priv(ndev);
|
||||
@@ -2367,7 +2367,7 @@ void sprdwl_report_connection(struct sprdwl_vif *vif,
|
||||
conn_info->status == SPRDWL_ROAM_SUCCESS){
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0)
|
||||
struct cfg80211_roam_info roam_info = {
|
||||
- .bss = bss,
|
||||
+ .links[0].bss = bss,
|
||||
.req_ie = conn_info->req_ie,
|
||||
.req_ie_len = conn_info->req_ie_len,
|
||||
.resp_ie = conn_info->resp_ie,
|
||||
diff --git a/drivers/net/wireless/uwe5622/unisocwifi/cmdevt.c b/drivers/net/wireless/uwe5622/unisocwifi/cmdevt.c
|
||||
index e81619b12e39..1ecbfac5b490 100644
|
||||
--- a/drivers/net/wireless/uwe5622/unisocwifi/cmdevt.c
|
||||
+++ b/drivers/net/wireless/uwe5622/unisocwifi/cmdevt.c
|
||||
@@ -3296,7 +3296,7 @@ void sprdwl_event_chan_changed(struct sprdwl_vif *vif, u8 *data, u16 len)
|
||||
NL80211_CHAN_HT20);
|
||||
else
|
||||
wl_err("%s, ch is null!\n", __func__);
|
||||
- cfg80211_ch_switch_notify(vif->ndev, &chandef);
|
||||
+ cfg80211_ch_switch_notify(vif->ndev, &chandef, 0);
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
2.34.1
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,32 +0,0 @@
|
||||
From 706dc6ed092e4a1b9d84893cb4186fbd354bb1c8 Mon Sep 17 00:00:00 2001
|
||||
From: pbiel <pbiel7@gmail.com>
|
||||
Date: Thu, 26 Jan 2023 09:51:22 +0100
|
||||
Subject: [PATCH] Add addr_mgt device tree node
|
||||
|
||||
---
|
||||
arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
|
||||
index d0b95d43a..15f45a3f9 100644
|
||||
--- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
|
||||
@@ -591,5 +591,15 @@ sunxi-info {
|
||||
compatible = "allwinner,sun50i-h616-sys-info";
|
||||
status = "okay";
|
||||
};
|
||||
+
|
||||
+ addr_mgt {
|
||||
+ compatible = "allwinner,sunxi-addr_mgt";
|
||||
+ type_addr_wifi = <0x00>;
|
||||
+ type_addr_bt = <0x00>;
|
||||
+ type_addr_eth = <0x00>;
|
||||
+ status = "okay";
|
||||
+ linux,phandle = <0x179>;
|
||||
+ phandle = <0x179>;
|
||||
+ };
|
||||
};
|
||||
};
|
||||
--
|
||||
2.34.1
|
||||
|
@ -1,184 +0,0 @@
|
||||
From ab35c98369d50766eb20920a93a2dca927935481 Mon Sep 17 00:00:00 2001
|
||||
From: OpenEmbedded <oe.patch@oe>
|
||||
Date: Fri, 19 May 2023 23:01:14 +0200
|
||||
Subject: [PATCH] Add usb support to h616. This is not needed from kernel 6.2
|
||||
|
||||
Signed-off-by: OpenEmbedded <oe.patch@oe>
|
||||
---
|
||||
.../arm64/boot/dts/allwinner/sun50i-h616.dtsi | 160 ++++++++++++++++++
|
||||
1 file changed, 160 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
|
||||
index 04cdec7e2..a1d872e74 100644
|
||||
--- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
|
||||
@@ -504,6 +504,166 @@ mdio0: mdio {
|
||||
};
|
||||
};
|
||||
|
||||
+ usbotg: usb@5100000 {
|
||||
+ compatible = "allwinner,sun50i-h616-musb",
|
||||
+ "allwinner,sun8i-h3-musb";
|
||||
+ reg = <0x05100000 0x0400>;
|
||||
+ clocks = <&ccu CLK_BUS_OTG>;
|
||||
+ resets = <&ccu RST_BUS_OTG>;
|
||||
+ interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ interrupt-names = "mc";
|
||||
+ phys = <&usbphy 0>;
|
||||
+ phy-names = "usb";
|
||||
+ extcon = <&usbphy 0>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
+ usbphy: phy@5100400 {
|
||||
+ compatible = "allwinner,sun50i-h616-usb-phy";
|
||||
+ reg = <0x05100400 0x24>,
|
||||
+ <0x05101800 0x14>,
|
||||
+ <0x05200800 0x14>,
|
||||
+ <0x05310800 0x14>,
|
||||
+ <0x05311800 0x14>;
|
||||
+ reg-names = "phy_ctrl",
|
||||
+ "pmu0",
|
||||
+ "pmu1",
|
||||
+ "pmu2",
|
||||
+ "pmu3";
|
||||
+ clocks = <&ccu CLK_USB_PHY0>,
|
||||
+ <&ccu CLK_USB_PHY1>,
|
||||
+ <&ccu CLK_USB_PHY2>,
|
||||
+ <&ccu CLK_USB_PHY3>,
|
||||
+ <&ccu CLK_BUS_EHCI2>;
|
||||
+ clock-names = "usb0_phy",
|
||||
+ "usb1_phy",
|
||||
+ "usb2_phy",
|
||||
+ "usb3_phy",
|
||||
+ "pmu2_clk";
|
||||
+ resets = <&ccu RST_USB_PHY0>,
|
||||
+ <&ccu RST_USB_PHY1>,
|
||||
+ <&ccu RST_USB_PHY2>,
|
||||
+ <&ccu RST_USB_PHY3>;
|
||||
+ reset-names = "usb0_reset",
|
||||
+ "usb1_reset",
|
||||
+ "usb2_reset",
|
||||
+ "usb3_reset";
|
||||
+ status = "disabled";
|
||||
+ #phy-cells = <1>;
|
||||
+ };
|
||||
+
|
||||
+ ehci0: usb@5101000 {
|
||||
+ compatible = "allwinner,sun50i-h616-ehci",
|
||||
+ "generic-ehci";
|
||||
+ reg = <0x05101000 0x100>;
|
||||
+ interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ clocks = <&ccu CLK_BUS_OHCI0>,
|
||||
+ <&ccu CLK_BUS_EHCI0>,
|
||||
+ <&ccu CLK_USB_OHCI0>;
|
||||
+ resets = <&ccu RST_BUS_OHCI0>,
|
||||
+ <&ccu RST_BUS_EHCI0>;
|
||||
+ phys = <&usbphy 0>;
|
||||
+ phy-names = "usb";
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
+ ohci0: usb@5101400 {
|
||||
+ compatible = "allwinner,sun50i-h616-ohci",
|
||||
+ "generic-ohci";
|
||||
+ reg = <0x05101400 0x100>;
|
||||
+ interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ clocks = <&ccu CLK_BUS_OHCI0>,
|
||||
+ <&ccu CLK_USB_OHCI0>;
|
||||
+ resets = <&ccu RST_BUS_OHCI0>;
|
||||
+ phys = <&usbphy 0>;
|
||||
+ phy-names = "usb";
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
+ ehci1: usb@5200000 {
|
||||
+ compatible = "allwinner,sun50i-h616-ehci",
|
||||
+ "generic-ehci";
|
||||
+ reg = <0x05200000 0x100>;
|
||||
+ interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ clocks = <&ccu CLK_BUS_OHCI1>,
|
||||
+ <&ccu CLK_BUS_EHCI1>,
|
||||
+ <&ccu CLK_USB_OHCI1>;
|
||||
+ resets = <&ccu RST_BUS_OHCI1>,
|
||||
+ <&ccu RST_BUS_EHCI1>;
|
||||
+ phys = <&usbphy 1>;
|
||||
+ phy-names = "usb";
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
+ ohci1: usb@5200400 {
|
||||
+ compatible = "allwinner,sun50i-h616-ohci",
|
||||
+ "generic-ohci";
|
||||
+ reg = <0x05200400 0x100>;
|
||||
+ interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ clocks = <&ccu CLK_BUS_OHCI1>,
|
||||
+ <&ccu CLK_USB_OHCI1>;
|
||||
+ resets = <&ccu RST_BUS_OHCI1>;
|
||||
+ phys = <&usbphy 1>;
|
||||
+ phy-names = "usb";
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
+ ehci2: usb@5310000 {
|
||||
+ compatible = "allwinner,sun50i-h616-ehci",
|
||||
+ "generic-ehci";
|
||||
+ reg = <0x05310000 0x100>;
|
||||
+ interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ clocks = <&ccu CLK_BUS_OHCI2>,
|
||||
+ <&ccu CLK_BUS_EHCI2>,
|
||||
+ <&ccu CLK_USB_OHCI2>;
|
||||
+ resets = <&ccu RST_BUS_OHCI2>,
|
||||
+ <&ccu RST_BUS_EHCI2>;
|
||||
+ phys = <&usbphy 2>;
|
||||
+ phy-names = "usb";
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
+ ohci2: usb@5310400 {
|
||||
+ compatible = "allwinner,sun50i-h616-ohci",
|
||||
+ "generic-ohci";
|
||||
+ reg = <0x05310400 0x100>;
|
||||
+ interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ clocks = <&ccu CLK_BUS_OHCI2>,
|
||||
+ <&ccu CLK_USB_OHCI2>;
|
||||
+ resets = <&ccu RST_BUS_OHCI2>;
|
||||
+ phys = <&usbphy 2>;
|
||||
+ phy-names = "usb";
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
+ ehci3: usb@5311000 {
|
||||
+ compatible = "allwinner,sun50i-h616-ehci",
|
||||
+ "generic-ehci";
|
||||
+ reg = <0x05311000 0x100>;
|
||||
+ interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ clocks = <&ccu CLK_BUS_OHCI3>,
|
||||
+ <&ccu CLK_BUS_EHCI3>,
|
||||
+ <&ccu CLK_USB_OHCI3>;
|
||||
+ resets = <&ccu RST_BUS_OHCI3>,
|
||||
+ <&ccu RST_BUS_EHCI3>;
|
||||
+ phys = <&usbphy 3>;
|
||||
+ phy-names = "usb";
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
+ ohci3: usb@5311400 {
|
||||
+ compatible = "allwinner,sun50i-h616-ohci",
|
||||
+ "generic-ohci";
|
||||
+ reg = <0x05311400 0x100>;
|
||||
+ interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ clocks = <&ccu CLK_BUS_OHCI3>,
|
||||
+ <&ccu CLK_USB_OHCI3>;
|
||||
+ resets = <&ccu RST_BUS_OHCI3>;
|
||||
+ phys = <&usbphy 3>;
|
||||
+ phy-names = "usb";
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
rtc: rtc@7000000 {
|
||||
compatible = "allwinner,sun50i-h616-rtc";
|
||||
reg = <0x07000000 0x400>;
|
||||
--
|
||||
2.40.1
|
||||
|
@ -1,84 +0,0 @@
|
||||
From 038441bbe0f6dab3e701061c514a8d776dbe6523 Mon Sep 17 00:00:00 2001
|
||||
From: OpenEmbedded <oe.patch@oe>
|
||||
Date: Sat, 20 May 2023 14:07:47 +0200
|
||||
Subject: [PATCH] DTS orange pi zero2 enable usb
|
||||
|
||||
Signed-off-by: OpenEmbedded <oe.patch@oe>
|
||||
---
|
||||
.../allwinner/sun50i-h616-orangepi-zero2.dts | 42 +++++++++++++++++++
|
||||
1 file changed, 42 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts
|
||||
index 88234a139..3b836296b 100644
|
||||
--- a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts
|
||||
@@ -50,6 +50,16 @@ reg_vcc5v: vcc5v {
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
+ reg_usb1_vbus: regulator-usb1-vbus {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "usb1-vbus";
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
+ vin-supply = <®_vcc5v>;
|
||||
+ enable-active-high;
|
||||
+ gpio = <&pio 2 16 GPIO_ACTIVE_HIGH>; /* PC16 */
|
||||
+ };
|
||||
+
|
||||
reg_vcc33_wifi: vcc33-wifi {
|
||||
/* Always on 3.3V regulator for WiFi and BT */
|
||||
compatible = "regulator-fixed";
|
||||
@@ -79,6 +89,12 @@ wifi_pwrseq: wifi-pwrseq {
|
||||
};
|
||||
};
|
||||
|
||||
+&ehci1 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+/* USB 2 & 3 are on headers only. */
|
||||
+
|
||||
&mmc1 {
|
||||
vmmc-supply = <®_vcc33_wifi>;
|
||||
vqmmc-supply = <®_vcc_wifi_io>;
|
||||
@@ -123,6 +139,11 @@ &mmc0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
+
|
||||
+&ohci1 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
&r_rsb {
|
||||
status = "okay";
|
||||
|
||||
@@ -258,3 +279,24 @@ &uart0 {
|
||||
pinctrl-0 = <&uart0_ph_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
+
|
||||
+&usbotg {
|
||||
+ /*
|
||||
+ * PHY0 pins are connected to a USB-C socket, but a role switch
|
||||
+ * is not implemented: both CC pins are pulled to GND.
|
||||
+ * The VBUS pins power the device, so a fixed peripheral mode
|
||||
+ * is the best choice.
|
||||
+ * The board can be powered via GPIOs, in this case port0 *can*
|
||||
+ * act as a host (with a cable/adapter ignoring CC), as VBUS is
|
||||
+ * then provided by the GPIOs. Any user of this setup would
|
||||
+ * need to adjust the DT accordingly: dr_mode set to "host",
|
||||
+ * enabling OHCI0 and EHCI0.
|
||||
+ */
|
||||
+ dr_mode = "peripheral";
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usbphy {
|
||||
+ usb1_vbus-supply = <®_usb1_vbus>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
--
|
||||
2.40.1
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -9,24 +9,6 @@ require linux.inc
|
||||
|
||||
LINUX_VERSION = "${PV}"
|
||||
|
||||
KERNEL_DTB_PREFIX = "0"
|
||||
|
||||
python() {
|
||||
# return version in int form
|
||||
def kernel_version():
|
||||
ver = d.getVar('PV', True).split('.')
|
||||
return int("".join(ver[0])),int("".join(ver[1]))
|
||||
|
||||
# kernel 6.5 have updated dts path add 'allwinner' prefix automatically
|
||||
major, minor = kernel_version()
|
||||
if major >= 6 and minor >= 5:
|
||||
dt = d.getVar('KERNEL_DEVICETREE', True)
|
||||
if not "allwinner" in dt:
|
||||
dt = "allwinner/{0}".format(dt)
|
||||
d.setVar('KERNEL_DEVICETREE', dt)
|
||||
d.setVar('KERNEL_DTB_PREFIX', "1")
|
||||
}
|
||||
|
||||
# Since we're not using git, this doesn't make a difference, but we need to fill
|
||||
# in something or kernel-yocto.bbclass will fail.
|
||||
KBRANCH ?= "master"
|
||||
@ -44,30 +26,30 @@ S = "${WORKDIR}/linux-${PV}"
|
||||
KRELEASE = "${@d.getVar('PV', True).split('.')[0]}"
|
||||
|
||||
SRC_URI = "https://www.kernel.org/pub/linux/kernel/v${KRELEASE}.x/linux-${PV}.tar.xz \
|
||||
file://defconfig \
|
||||
file://defconfig \
|
||||
file://sunxi-kmeta;type=kmeta;name=sunxi-kmeta;destsuffix=sunxi-kmeta \
|
||||
"
|
||||
|
||||
# append patches for kernels before 6.5 and after based on version
|
||||
SRC_URI += "${@oe.utils.ifelse(d.getVar('KERNEL_DTB_PREFIX') == '1', d.getVar('SOURCES_K65'), d.getVar('SOURCES'))}"
|
||||
|
||||
SOURCES_K65 = " \
|
||||
file://6.5/0001-dts-orangepi-zero-Add-wifi-support.patch \
|
||||
file://6.5/0002-dts-nanopi-neo-air-Add-camera-support.patch \
|
||||
file://6.5/0003-dts-allwinner-bananapi-m2-zero-Enforce-consistent-MM.patch \
|
||||
file://6.5/0004-dts-allwinner-bananapi-m64-Consistent-nodes-for-mmc-devices.patch \
|
||||
"
|
||||
|
||||
SOURCES = " \
|
||||
file://0001-dts-orange-pi-zero-Add-wifi-support.patch \
|
||||
file://0002-dts-nanopi-neo-air-add-camera.patch \
|
||||
file://0003-dts-allwinner-bananapi-m2-zreo-Enforce-consistent-MM.patch \
|
||||
file://0004-dts-allwinner-bananapi-m64-Consistent-nodes-for-mmc-devices.patch \
|
||||
# patches
|
||||
SRC_URI:append = " \
|
||||
file://patches/0001-dts-orangepi-zero-Add-wifi-support.patch \
|
||||
file://patches/0002-dts-nanopi-neo-air-Add-camera-support.patch \
|
||||
file://patches/0003-dts-allwinner-bananapi-m2-zero-Enforce-consistent-MM.patch \
|
||||
file://patches/0004-dts-allwinner-bananapi-m64-Consistent-nodes-for-mmc-devices.patch \
|
||||
file://patches/0005-ARM-dts-sunxi-Add-MMC-alias-for-consistent-enumerati.patch \
|
||||
file://patches/0006-dts-allwinner-orangepi-zero-mmc-aliases-for-consiste.patch \
|
||||
"
|
||||
|
||||
SRC_URI:append:use-mailine-graphics = " file://drm.cfg"
|
||||
SRC_URI:append:bananapi = " file://axp20x.cfg"
|
||||
SRC_URI:append:bananapi-m2-berry = " file://axp20x.cfg"
|
||||
SRC_URI:append:bananapi-m2-zero = " file://axp20x.cfg"
|
||||
SRC_URI:append:cubietruck = " file://axp20x.cfg"
|
||||
SRC_URI:append:nanopi-neo-air = " file://cam500b.cfg"
|
||||
SRC_URI:append:orange-pi-prime = " \
|
||||
file://0001-dts-sun50i-h5-enable-power-button-for-orange-pi-prime.patch \
|
||||
file://0002-dts-sun50i-h5-orange-pi-prime-add-regulator.patch \
|
||||
file://0003-dts-sun50i-h5-orange-pi-prime-add-rtl8723cs.patch \
|
||||
"
|
||||
|
||||
FILES_${KERNEL_PACKAGE_NAME}-base:append = " ${nonarch_base_libdir}/modules/${KERNEL_VERSION}/modules.builtin.modinfo"
|
||||
|
@ -1,87 +0,0 @@
|
||||
diff --git a/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts b/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
|
||||
index 84cd9c061..917986cce 100644
|
||||
--- a/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
|
||||
+++ b/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
|
||||
@@ -80,13 +80,15 @@
|
||||
};
|
||||
};
|
||||
|
||||
- reg_vcc_wifi: reg_vcc_wifi {
|
||||
+ vdd_wifi: vdd_wifi {
|
||||
compatible = "regulator-fixed";
|
||||
- regulator-min-microvolt = <3300000>;
|
||||
- regulator-max-microvolt = <3300000>;
|
||||
- regulator-name = "vcc-wifi";
|
||||
- enable-active-high;
|
||||
+ regulator-name = "wifi";
|
||||
+ regulator-min-microvolt = <1800000>;
|
||||
+ regulator-max-microvolt = <1800000>;
|
||||
gpio = <&pio 0 20 GPIO_ACTIVE_HIGH>;
|
||||
+ startup-delay-us = <70000>;
|
||||
+ enable-active-high;
|
||||
+
|
||||
};
|
||||
|
||||
reg_vdd_cpux: vdd-cpux-regulator {
|
||||
@@ -106,10 +108,12 @@
|
||||
1300000 1>;
|
||||
};
|
||||
|
||||
- wifi_pwrseq: wifi_pwrseq {
|
||||
+ pwrseq_wifi: pwrseq_wifi {
|
||||
compatible = "mmc-pwrseq-simple";
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&wifi_rst>;
|
||||
reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>;
|
||||
- post-power-on-delay-ms = <200>;
|
||||
+ post-power-on-delay-ms = <50>;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -140,9 +144,11 @@
|
||||
};
|
||||
|
||||
&mmc1 {
|
||||
- vmmc-supply = <®_vcc_wifi>;
|
||||
- mmc-pwrseq = <&wifi_pwrseq>;
|
||||
+ vmmc-supply = <®_vcc3v3>;
|
||||
+ vqmmc-supply = <&vdd_wifi>;
|
||||
+ mmc-pwrseq = <&pwrseq_wifi>;
|
||||
bus-width = <4>;
|
||||
+ max-frequency = <16000000>;
|
||||
non-removable;
|
||||
status = "okay";
|
||||
|
||||
@@ -152,6 +158,13 @@
|
||||
*/
|
||||
xr819: sdio_wifi@1 {
|
||||
reg = <1>;
|
||||
+ compatible = "xradio,xr819";
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&wifi_wake>;
|
||||
+ interrupt-parent = <&pio>;
|
||||
+ interrupts = <6 10 IRQ_TYPE_EDGE_RISING>;
|
||||
+ interrupt-names = "host-wake";
|
||||
+ local-mac-address = [dc 44 6d c0 ff ee];
|
||||
};
|
||||
};
|
||||
|
||||
@@ -208,3 +221,18 @@
|
||||
status = "okay";
|
||||
usb0_id_det-gpios = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
|
||||
};
|
||||
+
|
||||
+&pio {
|
||||
+ wifi_wake: wifi_wake {
|
||||
+ pins = "PG10";
|
||||
+ function = "gpio_in";
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&r_pio {
|
||||
+ wifi_rst: wifi_rst {
|
||||
+ pins = "PL7";
|
||||
+ function = "gpio_out";
|
||||
+ };
|
||||
+};
|
||||
+
|
@ -1,101 +0,0 @@
|
||||
diff --git a/arch/arm/boot/dts/sun8i-h3-nanopi-neo-air.dts b/arch/arm/boot/dts/sun8i-h3-nanopi-neo-air.dts
|
||||
index cd3df12b65..33a161692f 100644
|
||||
--- a/arch/arm/boot/dts/sun8i-h3-nanopi-neo-air.dts
|
||||
+++ b/arch/arm/boot/dts/sun8i-h3-nanopi-neo-air.dts
|
||||
@@ -77,6 +77,39 @@
|
||||
compatible = "mmc-pwrseq-simple";
|
||||
reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
|
||||
};
|
||||
+
|
||||
+ cam_xclk: cam-xclk {
|
||||
+ #clock-cells = <0>;
|
||||
+ compatible = "fixed-clock";
|
||||
+ clock-frequency = <24000000>;
|
||||
+ clock-output-names = "cam-xclk";
|
||||
+ };
|
||||
+
|
||||
+ reg_cam_avdd: cam-avdd {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "cam-avdd";
|
||||
+ regulator-min-microvolt = <2800000>;
|
||||
+ regulator-max-microvolt = <2800000>;
|
||||
+ vin-supply = <®_vcc3v3>;
|
||||
+ };
|
||||
+
|
||||
+ reg_cam_dovdd: cam-dovdd {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "cam-dovdd";
|
||||
+ regulator-min-microvolt = <1800000>;
|
||||
+ regulator-max-microvolt = <1800000>;
|
||||
+ vin-supply = <®_vcc3v3>;
|
||||
+ };
|
||||
+
|
||||
+ reg_cam_dvdd: cam-dvdd {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "cam-dvdd";
|
||||
+ regulator-min-microvolt = <1500000>;
|
||||
+ regulator-max-microvolt = <1500000>;
|
||||
+ vin-supply = <®_vcc3v3>;
|
||||
+ };
|
||||
+
|
||||
+
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
@@ -141,3 +174,55 @@
|
||||
/* USB VBUS is always on */
|
||||
status = "okay";
|
||||
};
|
||||
+
|
||||
+&csi {
|
||||
+ status = "okay";
|
||||
+
|
||||
+ port {
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+
|
||||
+ /* Parallel bus endpoint */
|
||||
+ csi_from_ov5640: endpoint {
|
||||
+ remote-endpoint = <&ov5640_to_csi>;
|
||||
+ bus-width = <8>;
|
||||
+ data-shift = <2>;
|
||||
+ hsync-active = <1>; /* Active high */
|
||||
+ vsync-active = <0>; /* Active low */
|
||||
+ data-active = <1>; /* Active high */
|
||||
+ pclk-sample = <1>; /* Rising */
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&i2c2 {
|
||||
+ status = "okay";
|
||||
+
|
||||
+ ov5640: camera@3c {
|
||||
+ compatible = "ovti,ov5640";
|
||||
+ reg = <0x3c>;
|
||||
+ clocks = <&cam_xclk>;
|
||||
+ clock-names = "xclk";
|
||||
+
|
||||
+ reset-gpios = <&pio 4 14 GPIO_ACTIVE_LOW>;
|
||||
+ powerdown-gpios = <&pio 4 15 GPIO_ACTIVE_HIGH>;
|
||||
+ AVDD-supply = <®_cam_avdd>;
|
||||
+ DOVDD-supply = <®_cam_dovdd>;
|
||||
+ DVDD-supply = <®_cam_dvdd>;
|
||||
+
|
||||
+ port {
|
||||
+ ov5640_to_csi: endpoint {
|
||||
+ remote-endpoint = <&csi_from_ov5640>;
|
||||
+ bus-width = <8>;
|
||||
+ data-shift = <2>;
|
||||
+ hsync-active = <1>; /* Active high */
|
||||
+ vsync-active = <0>; /* Active low */
|
||||
+ data-active = <1>; /* Active high */
|
||||
+ pclk-sample = <1>; /* Rising */
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+&i2c2_pins {
|
||||
+ bias-pull-up;
|
||||
+};
|
||||
|
@ -1,28 +0,0 @@
|
||||
From 9b4baa9b5aab0511c46a1ae95485e1a3ea984352 Mon Sep 17 00:00:00 2001
|
||||
From: matteolel <matteolel91@hotmail.it>
|
||||
Date: Fri, 9 Dec 2022 16:38:11 +0000
|
||||
Subject: [PATCH] dts: allwinner: bananapi-m2-zreo: Enforce consistent MMC
|
||||
numbering
|
||||
|
||||
Enforce MMC number (sometimes the order was wrong and the device does not boot).
|
||||
---
|
||||
arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts b/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts
|
||||
index 8e8634ff2..37a2ed937 100644
|
||||
--- a/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts
|
||||
+++ b/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts
|
||||
@@ -20,6 +20,9 @@ / {
|
||||
aliases {
|
||||
serial0 = &uart0;
|
||||
serial1 = &uart1;
|
||||
+ mmc0 = &mmc0;
|
||||
+ mmc1 = &mmc1;
|
||||
+ mmc2 = &mmc2;
|
||||
};
|
||||
|
||||
chosen {
|
||||
--
|
||||
2.25.1
|
||||
|
@ -1,27 +0,0 @@
|
||||
From f487f62babb11d014da7a0b58a0fcdf6d217a812 Mon Sep 17 00:00:00 2001
|
||||
From: Marek Belisko <marek.belisko@open-nandra.com>
|
||||
Date: Thu, 11 May 2023 11:18:33 +0200
|
||||
Subject: [PATCH] bananapi-m64: Consistent nodes for mmc devices
|
||||
|
||||
Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
|
||||
---
|
||||
arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
|
||||
index e6d5bc0f7..39a28aad8 100644
|
||||
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
|
||||
@@ -16,6 +16,9 @@ aliases {
|
||||
ethernet0 = &emac;
|
||||
serial0 = &uart0;
|
||||
serial1 = &uart1;
|
||||
+ mmc0 = &mmc0;
|
||||
+ mmc1 = &mmc1;
|
||||
+ mmc2 = &mmc2;
|
||||
};
|
||||
|
||||
chosen {
|
||||
--
|
||||
2.25.1
|
||||
|
@ -0,0 +1,27 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Gunjan Gupta <viraniac@gmail.com>
|
||||
Date: Sat, 15 Jul 2023 17:06:17 +0000
|
||||
Subject: arm64: dts: sun50i: h5: enable power button for orangepi prime
|
||||
|
||||
---
|
||||
arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts
|
||||
index f430acd8558f..35e09098570f 100644
|
||||
--- a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts
|
||||
@@ -63,8 +63,9 @@ gpio-keys {
|
||||
|
||||
key-sw4 {
|
||||
label = "sw4";
|
||||
- linux,code = <BTN_0>;
|
||||
+ linux,code = <KEY_POWER>;
|
||||
gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
|
||||
+ wakeup-source;
|
||||
};
|
||||
};
|
||||
|
||||
--
|
||||
Armbian
|
||||
|
@ -0,0 +1,66 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: The-going <48602507+The-going@users.noreply.github.com>
|
||||
Date: Mon, 24 Jan 2022 19:34:31 +0300
|
||||
Subject: arm64:dts: sun50i-h5-orangepi-prime add regulator
|
||||
|
||||
---
|
||||
.../allwinner/sun50i-h5-orangepi-prime.dts | 30 +++++++++++++++++++
|
||||
1 file changed, 30 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts
|
||||
index 998396bc0..6dc6850c1 100644
|
||||
--- a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts
|
||||
@@ -8,6 +8,7 @@
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
+#include <dt-bindings/pinctrl/sun4i-a10.h>
|
||||
|
||||
/ {
|
||||
model = "Xunlong Orange Pi Prime";
|
||||
@@ -93,6 +94,10 @@ wifi_pwrseq: wifi_pwrseq {
|
||||
};
|
||||
};
|
||||
|
||||
+&cpu0 {
|
||||
+ cpu-supply = <®_vdd_cpux>;
|
||||
+};
|
||||
+
|
||||
&codec {
|
||||
allwinner,audio-routing =
|
||||
"Line Out", "LINEOUT",
|
||||
@@ -188,6 +193,31 @@ &ohci3 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
+&r_i2c {
|
||||
+ status = "okay";
|
||||
+
|
||||
+ reg_vdd_cpux: regulator@65 {
|
||||
+ compatible = "silergy,sy8106a";
|
||||
+ reg = <0x65>;
|
||||
+ regulator-name = "vdd-cpux";
|
||||
+ silergy,fixed-microvolt = <1200000>;
|
||||
+ /*
|
||||
+ * The datasheet uses 1.1V as the minimum value of VDD-CPUX,
|
||||
+ * however both the Armbian DVFS table and the official one
|
||||
+ * have operating points with voltage under 1.1V, and both
|
||||
+ * DVFS table are known to work properly at the lowest
|
||||
+ * operating point.
|
||||
+ *
|
||||
+ * Use 1.0V as the minimum voltage instead.
|
||||
+ */
|
||||
+ regulator-min-microvolt = <1000000>;
|
||||
+ regulator-max-microvolt = <1400000>;
|
||||
+ regulator-ramp-delay = <200>;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-always-on;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
&uart0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_pa_pins>;
|
||||
--
|
||||
2.25.1
|
@ -0,0 +1,35 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: The-going <48602507+The-going@users.noreply.github.com>
|
||||
Date: Mon, 7 Feb 2022 19:11:07 +0300
|
||||
Subject: arm64:dts: sun50i-h5-orangepi-prime add rtl8723cs
|
||||
|
||||
---
|
||||
arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts
|
||||
index 8b92d5e77220..f430acd8558f 100644
|
||||
--- a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts
|
||||
@@ -25,6 +25,7 @@ reg_vcc3v3: vcc3v3 {
|
||||
aliases {
|
||||
ethernet0 = &emac;
|
||||
serial0 = &uart0;
|
||||
+ ethernet1 = &rtl8723cs;
|
||||
};
|
||||
|
||||
chosen {
|
||||
@@ -174,6 +175,10 @@ &mmc1 {
|
||||
bus-width = <4>;
|
||||
non-removable;
|
||||
status = "okay";
|
||||
+
|
||||
+ rtl8723cs: sdio_wifi@1 {
|
||||
+ reg = <1>;
|
||||
+ };
|
||||
};
|
||||
|
||||
&ohci0 {
|
||||
--
|
||||
Armbian
|
||||
|
@ -0,0 +1,31 @@
|
||||
From 8b245b30a451bc4a4081759a6918b630ec075a7c Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Gloor <code@stefan-gloor.ch>
|
||||
Date: Thu, 19 Dec 2024 10:34:54 +0100
|
||||
Subject: [PATCH] ARM: dts: sunxi: Add MMC alias for consistent enumeration
|
||||
|
||||
Add explicit alias for MMC devices, so that (e)MMC and micro SD cards
|
||||
are enumerated consistenly. This should fix spurious boot failures when
|
||||
specifying a hard-coded root partition, e.g., mmcblk0p2.
|
||||
|
||||
Signed-off-by: Stefan Gloor <code@stefan-gloor.ch>
|
||||
Upstream-Status: Denied https://lore.kernel.org/lkml/CAGb2v67dBhL3-AhLeHg3xOgbNZ3qu0aj9+kA+MoOMRYfr_Z_zQ@mail.gmail.com/
|
||||
---
|
||||
arch/arm/boot/dts/allwinner/sun7i-a20-olinuxino-micro.dts | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/allwinner/sun7i-a20-olinuxino-micro.dts b/arch/arm/boot/dts/allwinner/sun7i-a20-olinuxino-micro.dts
|
||||
index a1b89b2a2999..9cd1eb690134 100644
|
||||
--- a/arch/arm/boot/dts/allwinner/sun7i-a20-olinuxino-micro.dts
|
||||
+++ b/arch/arm/boot/dts/allwinner/sun7i-a20-olinuxino-micro.dts
|
||||
@@ -60,6 +60,8 @@ aliases {
|
||||
serial2 = &uart7;
|
||||
spi0 = &spi1;
|
||||
spi1 = &spi2;
|
||||
+ mmc0 = &mmc0;
|
||||
+ mmc1 = &mmc3;
|
||||
};
|
||||
|
||||
chosen {
|
||||
--
|
||||
2.45.2
|
||||
|
@ -0,0 +1,32 @@
|
||||
From a2d765aab2989ba080b8f63cb0489d6a531cb3fd Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Oliver=20K=C3=A4stner?= <git@oliver-kaestner.de>
|
||||
Date: Sun, 16 Mar 2025 22:36:53 +0100
|
||||
Subject: [PATCH] dts: allwinner: orangepi-zero: mmc aliases for consistent
|
||||
enumeration
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
This fixes random boot failures.
|
||||
|
||||
Upstream-Status: Inappropriate [https://github.com/linux-sunxi/meta-sunxi/pull/431]
|
||||
|
||||
Signed-off-by: Oliver Kästner <git@oliver-kaestner.de>
|
||||
---
|
||||
arch/arm/boot/dts/allwinner/sun8i-h2-plus-orangepi-zero.dts | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/allwinner/sun8i-h2-plus-orangepi-zero.dts b/arch/arm/boot/dts/allwinner/sun8i-h2-plus-orangepi-zero.dts
|
||||
index ca94e313f..570a88327 100644
|
||||
--- a/arch/arm/boot/dts/allwinner/sun8i-h2-plus-orangepi-zero.dts
|
||||
+++ b/arch/arm/boot/dts/allwinner/sun8i-h2-plus-orangepi-zero.dts
|
||||
@@ -59,6 +59,9 @@ aliases {
|
||||
/* ethernet0 is the H3 emac, defined in sun8i-h3.dtsi */
|
||||
ethernet0 = &emac;
|
||||
ethernet1 = &xr819;
|
||||
+ mmc0 = &mmc0; /* microSD */
|
||||
+ mmc1 = &mmc1; /* XR819 WiFi */
|
||||
+ mmc2 = &mmc2;
|
||||
};
|
||||
|
||||
chosen {
|
@ -897,7 +897,7 @@ CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
|
||||
# CONFIG_MAC80211_MESSAGE_TRACING is not set
|
||||
# CONFIG_MAC80211_DEBUG_MENU is not set
|
||||
CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
|
||||
# CONFIG_RFKILL is not set
|
||||
CONFIG_RFKILL=y
|
||||
# CONFIG_NET_9P is not set
|
||||
# CONFIG_CAIF is not set
|
||||
# CONFIG_CEPH_LIB is not set
|
||||
|
@ -0,0 +1,72 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: The-going <48602507+The-going@users.noreply.github.com>
|
||||
Date: Sat, 16 Apr 2022 11:51:35 +0300
|
||||
Subject: add nodes for sunxi-info, sunxi-addr and sunxi-dump-reg
|
||||
|
||||
---
|
||||
arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 19 ++++++++++
|
||||
1 file changed, 19 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
|
||||
index 538c90663602..6365cce07304 100644
|
||||
--- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
|
||||
@@ -1243,6 +1243,25 @@ ths: thermal-sensor@5070400 {
|
||||
nvmem-cell-names = "calibration";
|
||||
#thermal-sensor-cells = <1>;
|
||||
};
|
||||
+
|
||||
+ sunxi-info {
|
||||
+ compatible = "allwinner,sun50i-h6-sys-info";
|
||||
+ status = "okay";
|
||||
+ };
|
||||
+
|
||||
+ addr_mgt: addr-mgt {
|
||||
+ compatible = "allwinner,sunxi-addr_mgt";
|
||||
+ type_addr_wifi = <0x2>;
|
||||
+ type_addr_bt = <0x2>;
|
||||
+ type_addr_eth = <0x2>;
|
||||
+ status = "okay";
|
||||
+ };
|
||||
+
|
||||
+ dump_reg: dump_reg@20000 {
|
||||
+ compatible = "allwinner,sunxi-dump-reg";
|
||||
+ reg = <0x0 0x03001000 0x0 0x0f20>;
|
||||
+ status = "okay";
|
||||
+ };
|
||||
};
|
||||
|
||||
thermal-zones {
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
|
||||
index 98735d39e6e8..5ff1b357a25b 100644
|
||||
--- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
|
||||
@@ -1053,6 +1053,25 @@ ths: thermal-sensor@5070400 {
|
||||
nvmem-cell-names = "calibration";
|
||||
#thermal-sensor-cells = <1>;
|
||||
};
|
||||
+
|
||||
+ dump_reg: dump_reg@20000 {
|
||||
+ compatible = "allwinner,sunxi-dump-reg";
|
||||
+ reg = <0x0 0x03001000 0x0 0x0f20>;
|
||||
+ status = "okay";
|
||||
+ };
|
||||
+
|
||||
+ sunxi-info {
|
||||
+ compatible = "allwinner,sun50i-h616-sys-info";
|
||||
+ status = "okay";
|
||||
+ };
|
||||
+
|
||||
+ addr_mgt: addr-mgt {
|
||||
+ compatible = "allwinner,sunxi-addr_mgt";
|
||||
+ type_addr_wifi = <0x2>;
|
||||
+ type_addr_bt = <0x2>;
|
||||
+ type_addr_eth = <0x2>;
|
||||
+ status = "okay";
|
||||
+ };
|
||||
};
|
||||
|
||||
thermal-zones {
|
||||
--
|
||||
Armbian
|
||||
|
@ -0,0 +1,41 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Kali Prasad <kprasadvnsi@protonmail.com>
|
||||
Date: Sun, 19 Sep 2021 08:02:27 +0000
|
||||
Subject: arm64: dts: allwinner: h616: Add device node for SID
|
||||
|
||||
The device tree binding for H616's SID controller.
|
||||
|
||||
Signed-off-by: Kali Prasad <kprasadvnsi@protonmail.com>
|
||||
---
|
||||
arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 15 ++++++++++
|
||||
1 file changed, 15 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
|
||||
index 45359b0d317a..7ad1982fb47f 100644
|
||||
--- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
|
||||
@@ -171,6 +171,21 @@ ccu: clock@3001000 {
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
|
||||
+ sid: efuse@3006000 {
|
||||
+ compatible = "allwinner,sun50i-h616-sid";
|
||||
+ reg = <0x03006000 0x1000>;
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <1>;
|
||||
+
|
||||
+ cpu_speed_grade: cpu-speed-grade@0 {
|
||||
+ reg = <0x00 0x02>;
|
||||
+ };
|
||||
+
|
||||
+ ths_calibration: thermal-sensor-calibration@14 {
|
||||
+ reg = <0x14 0x8>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
watchdog: watchdog@30090a0 {
|
||||
compatible = "allwinner,sun50i-h616-wdt",
|
||||
"allwinner,sun6i-a31-wdt";
|
||||
--
|
||||
Armbian
|
||||
|
@ -0,0 +1,473 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: AGM1968 <AGM1968@users.noreply.github.com>
|
||||
Date: Tue, 23 May 2023 16:43:00 +0000
|
||||
Subject: arm64-dts-allwinner-h616-Add-efuse_xlate-cpu-frequency-scaling-v1_6_2
|
||||
arch/arm64/boot/dts/allwinner/sun50i-h616-cpu-opp.dtsi
|
||||
arch/arm64/boot/dts/allwinner/sun50i-h618-cpu-dvfs.dtsi
|
||||
arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts
|
||||
drivers/cpufreq/cpufreq-dt-platdev.c drivers/cpufreq/sun50i-cpufreq-nvmem.c
|
||||
|
||||
Signed-off-by: AGM1968 <AGM1968@users.noreply.github.com>
|
||||
---
|
||||
arch/arm64/boot/dts/allwinner/sun50i-h616-cpu-opp.dtsi | 75 ++++++++
|
||||
arch/arm64/boot/dts/allwinner/sun50i-h618-cpu-dvfs.dtsi | 64 +++++++++++++
|
||||
arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi | 1 +
|
||||
arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts | 5 +
|
||||
arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero3.dts | 62 ++-----------
|
||||
drivers/cpufreq/cpufreq-dt-platdev.c | 2 +
|
||||
drivers/cpufreq/sun50i-cpufreq-nvmem.c | 92 +++++++---
|
||||
7 files changed, 221 insertions(+), 80 deletions(-)
|
||||
create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h618-cpu-dvfs.dtsi
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-cpu-opp.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616-cpu-opp.dtsi
|
||||
new file mode 100644
|
||||
index 000000000000..36f2950367c6
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-cpu-opp.dtsi
|
||||
@@ -0,0 +1,75 @@
|
||||
+//SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+//Testing Version 1 from: AGM1968 <AGM1968@users.noreply.github.com>
|
||||
+//Noted: PLL_CPUX = 24 MHz*N/P (WIP)
|
||||
+
|
||||
+/ {
|
||||
+ cpu_opp_table: opp-table-cpu {
|
||||
+ compatible = "allwinner,sun50i-h616-operating-points";
|
||||
+ nvmem-cells = <&cpu_speed_grade>;
|
||||
+ opp-shared;
|
||||
+
|
||||
+ opp-480000000 {
|
||||
+ clock-latency-ns = <244144>; /* 8 32k periods */
|
||||
+ opp-hz = /bits/ 64 <480000000>;
|
||||
+ opp-microvolt-speed0 = <820000 820000 1100000>;
|
||||
+ opp-microvolt-speed1 = <880000 880000 1100000>;
|
||||
+ opp-microvolt-speed2 = <880000 880000 1100000>;
|
||||
+ };
|
||||
+
|
||||
+ opp-600000000 {
|
||||
+ clock-latency-ns = <244144>; /* 8 32k periods */
|
||||
+ opp-hz = /bits/ 64 <600000000>;
|
||||
+ opp-microvolt-speed0 = <820000 820000 1100000>;
|
||||
+ opp-microvolt-speed1 = <880000 880000 1100000>;
|
||||
+ opp-microvolt-speed2 = <880000 880000 1100000>;
|
||||
+ };
|
||||
+
|
||||
+ opp-792000000 {
|
||||
+ clock-latency-ns = <244144>; /* 8 32k periods */
|
||||
+ opp-hz = /bits/ 64 <792000000>;
|
||||
+ opp-microvolt-speed0 = <860000 860000 1100000>;
|
||||
+ opp-microvolt-speed1 = <940000 940000 1100000>;
|
||||
+ opp-microvolt-speed2 = <940000 940000 1100000>;
|
||||
+ };
|
||||
+
|
||||
+ opp-1008000000 {
|
||||
+ clock-latency-ns = <244144>; /* 8 32k periods */
|
||||
+ opp-hz = /bits/ 64 <1008000000>;
|
||||
+ opp-microvolt-speed0 = <900000 900000 1100000>;
|
||||
+ opp-microvolt-speed1 = <1020000 1020000 1100000>;
|
||||
+ opp-microvolt-speed2 = <1020000 1020000 1100000>;
|
||||
+ };
|
||||
+
|
||||
+ opp-1200000000 {
|
||||
+ clock-latency-ns = <244144>; /* 8 32k periods */
|
||||
+ opp-hz = /bits/ 64 <1200000000>;
|
||||
+ opp-microvolt-speed0 = <960000 960000 1100000>;
|
||||
+ opp-microvolt-speed1 = <1100000 1100000 1100000>;
|
||||
+ opp-microvolt-speed2 = <1100000 1100000 1100000>;
|
||||
+ };
|
||||
+
|
||||
+ opp-1512000000 {
|
||||
+ clock-latency-ns = <244144>; /* 8 32k periods */
|
||||
+ opp-hz = /bits/ 64 <1512000000>;
|
||||
+ opp-microvolt-speed0 = <1100000 1100000 1100000>;
|
||||
+ opp-microvolt-speed1 = <1100000 1100000 1100000>;
|
||||
+ opp-microvolt-speed2 = <1100000 1100000 1100000>;
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&cpu0 {
|
||||
+ operating-points-v2 = <&cpu_opp_table>;
|
||||
+};
|
||||
+
|
||||
+&cpu1 {
|
||||
+ operating-points-v2 = <&cpu_opp_table>;
|
||||
+};
|
||||
+
|
||||
+&cpu2 {
|
||||
+ operating-points-v2 = <&cpu_opp_table>;
|
||||
+};
|
||||
+
|
||||
+&cpu3 {
|
||||
+ operating-points-v2 = <&cpu_opp_table>;
|
||||
+};
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi
|
||||
index 0666d16ba7d0..54d706286554 100644
|
||||
--- a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi
|
||||
@@ -7,6 +7,7 @@
|
||||
*/
|
||||
|
||||
#include "sun50i-h616.dtsi"
|
||||
+#include "sun50i-h616-cpu-opp.dtsi"
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts
|
||||
index 8d8009c7f9a3..41a5a4013091 100644
|
||||
--- a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts
|
||||
@@ -12,6 +12,11 @@ / {
|
||||
compatible = "xunlong,orangepi-zero2", "allwinner,sun50i-h616";
|
||||
};
|
||||
|
||||
+&cpu0 {
|
||||
+ cpu-supply = <®_dcdca>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
&emac0 {
|
||||
phy-supply = <®_dcdce>;
|
||||
};
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h618-cpu-dvfs.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h618-cpu-dvfs.dtsi
|
||||
new file mode 100644
|
||||
index 0000000000000..0509e3fb22e26
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h618-cpu-dvfs.dtsi
|
||||
@@ -0,0 +1,64 @@
|
||||
+
|
||||
+
|
||||
+&r_i2c {
|
||||
+ status = "okay";
|
||||
+
|
||||
+ axp313: pmic@36 {
|
||||
+ compatible = "x-powers,axp313a";
|
||||
+ reg = <0x36>;
|
||||
+ #interrupt-cells = <1>;
|
||||
+ interrupt-controller;
|
||||
+ interrupt-parent = <&pio>;
|
||||
+ interrupts = <2 9 IRQ_TYPE_LEVEL_LOW>; /* PC9 */
|
||||
+
|
||||
+ vin1-supply = <®_vcc5v>;
|
||||
+ vin2-supply = <®_vcc5v>;
|
||||
+ vin3-supply = <®_vcc5v>;
|
||||
+
|
||||
+ regulators {
|
||||
+ /* Supplies VCC-PLL and DRAM */
|
||||
+ reg_aldo1: aldo1 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <1800000>;
|
||||
+ regulator-max-microvolt = <1800000>;
|
||||
+ regulator-name = "vcc1v8";
|
||||
+ };
|
||||
+
|
||||
+ /* Supplies VCC-IO, so needs to be always on. */
|
||||
+ reg_dldo1: dldo1 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-name = "vcc3v3";
|
||||
+ };
|
||||
+
|
||||
+ reg_dcdc1: dcdc1 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <810000>;
|
||||
+ regulator-max-microvolt = <990000>;
|
||||
+ regulator-step-delay-us = <25>;
|
||||
+ regulator-final-delay-us = <50>;
|
||||
+ regulator-name = "vdd-gpu-sys";
|
||||
+ };
|
||||
+
|
||||
+ reg_dcdc2: dcdc2 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <500000>;
|
||||
+ regulator-max-microvolt = <1100000>;
|
||||
+ regulator-step-delay-us = <25>;
|
||||
+ regulator-final-delay-us = <50>;
|
||||
+ regulator-ramp-delay = <200>;
|
||||
+ regulator-name = "vdd-cpu";
|
||||
+ };
|
||||
+
|
||||
+ reg_dcdc3: dcdc3 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <1100000>;
|
||||
+ regulator-max-microvolt = <1100000>;
|
||||
+ regulator-step-delay-us = <25>;
|
||||
+ regulator-final-delay-us = <50>;
|
||||
+ regulator-name = "vdd-dram";
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero3.dts b/arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero3.dts
|
||||
index 00fe28caac93..edbfc83f390a 100644
|
||||
--- a/arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero3.dts
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero3.dts
|
||||
@@ -6,12 +6,18 @@
|
||||
/dts-v1/;
|
||||
|
||||
#include "sun50i-h616-orangepi-zero.dtsi"
|
||||
+#include "sun50i-h618-cpu-dvfs.dtsi"
|
||||
|
||||
/ {
|
||||
model = "OrangePi Zero3";
|
||||
compatible = "xunlong,orangepi-zero3", "allwinner,sun50i-h618";
|
||||
};
|
||||
|
||||
+&cpu0 {
|
||||
+ cpu-supply = <®_dcdc2>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
&emac0 {
|
||||
phy-supply = <®_dldo1>;
|
||||
};
|
||||
@@ -31,62 +37,6 @@ &mmc0 {
|
||||
vmmc-supply = <®_dldo1>;
|
||||
};
|
||||
|
||||
-&r_i2c {
|
||||
- status = "okay";
|
||||
-
|
||||
- axp313: pmic@36 {
|
||||
- compatible = "x-powers,axp313a";
|
||||
- reg = <0x36>;
|
||||
- #interrupt-cells = <1>;
|
||||
- interrupt-controller;
|
||||
- interrupt-parent = <&pio>;
|
||||
- interrupts = <2 9 IRQ_TYPE_LEVEL_LOW>; /* PC9 */
|
||||
-
|
||||
- vin1-supply = <®_vcc5v>;
|
||||
- vin2-supply = <®_vcc5v>;
|
||||
- vin3-supply = <®_vcc5v>;
|
||||
-
|
||||
- regulators {
|
||||
- /* Supplies VCC-PLL, so needs to be always on. */
|
||||
- reg_aldo1: aldo1 {
|
||||
- regulator-always-on;
|
||||
- regulator-min-microvolt = <1800000>;
|
||||
- regulator-max-microvolt = <1800000>;
|
||||
- regulator-name = "vcc1v8";
|
||||
- };
|
||||
-
|
||||
- /* Supplies VCC-IO, so needs to be always on. */
|
||||
- reg_dldo1: dldo1 {
|
||||
- regulator-always-on;
|
||||
- regulator-min-microvolt = <3300000>;
|
||||
- regulator-max-microvolt = <3300000>;
|
||||
- regulator-name = "vcc3v3";
|
||||
- };
|
||||
-
|
||||
- reg_dcdc1: dcdc1 {
|
||||
- regulator-always-on;
|
||||
- regulator-min-microvolt = <810000>;
|
||||
- regulator-max-microvolt = <990000>;
|
||||
- regulator-name = "vdd-gpu-sys";
|
||||
- };
|
||||
-
|
||||
- reg_dcdc2: dcdc2 {
|
||||
- regulator-always-on;
|
||||
- regulator-min-microvolt = <810000>;
|
||||
- regulator-max-microvolt = <1100000>;
|
||||
- regulator-name = "vdd-cpu";
|
||||
- };
|
||||
-
|
||||
- reg_dcdc3: dcdc3 {
|
||||
- regulator-always-on;
|
||||
- regulator-min-microvolt = <1100000>;
|
||||
- regulator-max-microvolt = <1100000>;
|
||||
- regulator-name = "vdd-dram";
|
||||
- };
|
||||
- };
|
||||
- };
|
||||
-};
|
||||
-
|
||||
&pio {
|
||||
vcc-pc-supply = <®_dldo1>;
|
||||
vcc-pf-supply = <®_dldo1>;
|
||||
diff --git a/drivers/cpufreq/cpufreq-dt-platdev.c b/drivers/cpufreq/cpufreq-dt-platdev.c
|
||||
index fb2875ce1fdd..e63d36839769 100644
|
||||
--- a/drivers/cpufreq/cpufreq-dt-platdev.c
|
||||
+++ b/drivers/cpufreq/cpufreq-dt-platdev.c
|
||||
@@ -104,6 +104,8 @@ static const struct of_device_id allowlist[] __initconst = {
|
||||
*/
|
||||
static const struct of_device_id blocklist[] __initconst = {
|
||||
{ .compatible = "allwinner,sun50i-h6", },
|
||||
+ { .compatible = "allwinner,sun50i-h616", },
|
||||
+ { .compatible = "allwinner,sun50i-h618", },
|
||||
|
||||
{ .compatible = "apple,arm-platform", },
|
||||
|
||||
diff --git a/drivers/cpufreq/sun50i-cpufreq-nvmem.c b/drivers/cpufreq/sun50i-cpufreq-nvmem.c
|
||||
index 6845ab5034ec..5d85bfe475de 100644
|
||||
--- a/drivers/cpufreq/sun50i-cpufreq-nvmem.c
|
||||
+++ b/drivers/cpufreq/sun50i-cpufreq-nvmem.c
|
||||
@@ -6,6 +6,9 @@
|
||||
* provide the OPP framework with required information.
|
||||
*
|
||||
* Copyright (C) 2019 Yangtao Li <tiny.windzz@gmail.com>
|
||||
+ *
|
||||
+ * ADD efuse_xlate to extract SoC version so that h6 and h616 can coexist.
|
||||
+ * Version 1 AGM1968 <AGM1968@users.noreply.github.com>
|
||||
*/
|
||||
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
@@ -20,25 +23,62 @@
|
||||
|
||||
#define MAX_NAME_LEN 7
|
||||
|
||||
-#define NVMEM_MASK 0x7
|
||||
-#define NVMEM_SHIFT 5
|
||||
+#define SUN50I_H616_NVMEM_MASK 0x22
|
||||
+#define SUN50I_H616_NVMEM_SHIFT 5
|
||||
+#define SUN50I_H6_NVMEM_MASK 0x7
|
||||
+#define SUN50I_H6_NVMEM_SHIFT 5
|
||||
+
|
||||
+struct sunxi_cpufreq_soc_data {
|
||||
+ u32 (*efuse_xlate) (void *efuse);
|
||||
+};
|
||||
|
||||
static struct platform_device *cpufreq_dt_pdev, *sun50i_cpufreq_pdev;
|
||||
|
||||
+static u32 sun50i_h616_efuse_xlate(void *efuse)
|
||||
+{
|
||||
+ u32 efuse_value = (*(u32 *)efuse >> SUN50I_H616_NVMEM_SHIFT) &
|
||||
+ SUN50I_H616_NVMEM_MASK;
|
||||
+
|
||||
+ /* Tested as V1 h616 soc. Expected efuse values are 1 - 3,
|
||||
+ slowest to fastest */
|
||||
+ if (efuse_value >=1 && efuse_value <= 3)
|
||||
+ return efuse_value - 1;
|
||||
+ else
|
||||
+ return 0;
|
||||
+};
|
||||
+
|
||||
+static u32 sun50i_h6_efuse_xlate(void *efuse)
|
||||
+{
|
||||
+ u32 efuse_value = (*(u32 *)efuse >> SUN50I_H6_NVMEM_SHIFT) &
|
||||
+ SUN50I_H6_NVMEM_MASK;
|
||||
+
|
||||
+ /*
|
||||
+ * We treat unexpected efuse values as if the SoC was from
|
||||
+ * the slowest bin. Expected efuse values are 1 - 3, slowest
|
||||
+ * to fastest.
|
||||
+ */
|
||||
+ if (efuse_value >= 1 && efuse_value <= 3)
|
||||
+ return efuse_value - 1;
|
||||
+ else
|
||||
+ return 0;
|
||||
+};
|
||||
+
|
||||
+
|
||||
/**
|
||||
* sun50i_cpufreq_get_efuse() - Determine speed grade from efuse value
|
||||
+ * @soc_data: pointer to sunxi_cpufreq_soc_data context
|
||||
* @versions: Set to the value parsed from efuse
|
||||
*
|
||||
* Returns 0 if success.
|
||||
*/
|
||||
-static int sun50i_cpufreq_get_efuse(u32 *versions)
|
||||
+static int sun50i_cpufreq_get_efuse(const struct sunxi_cpufreq_soc_data *soc_data,
|
||||
+ u32 *versions)
|
||||
{
|
||||
struct nvmem_cell *speedbin_nvmem;
|
||||
struct device_node *np;
|
||||
struct device *cpu_dev;
|
||||
- u32 *speedbin, efuse_value;
|
||||
+ u32 *speedbin;
|
||||
size_t len;
|
||||
- int ret;
|
||||
|
||||
cpu_dev = get_cpu_device(0);
|
||||
if (!cpu_dev)
|
||||
@@ -47,10 +87,9 @@ static int sun50i_cpufreq_get_efuse(u32 *versions)
|
||||
np = dev_pm_opp_of_get_opp_desc_node(cpu_dev);
|
||||
if (!np)
|
||||
return -ENOENT;
|
||||
-
|
||||
- ret = of_device_is_compatible(np,
|
||||
- "allwinner,sun50i-h6-operating-points");
|
||||
- if (!ret) {
|
||||
+ if (of_device_is_compatible(np, "allwinner,sun50i-h6-operating-points")) {}
|
||||
+ else if (of_device_is_compatible(np, "allwinner,sun50i-h616-operating-points")) {}
|
||||
+ else {
|
||||
of_node_put(np);
|
||||
return -ENOENT;
|
||||
}
|
||||
@@ -66,17 +105,7 @@ static int sun50i_cpufreq_get_efuse(u32 *versions)
|
||||
if (IS_ERR(speedbin))
|
||||
return PTR_ERR(speedbin);
|
||||
|
||||
- efuse_value = (*speedbin >> NVMEM_SHIFT) & NVMEM_MASK;
|
||||
-
|
||||
- /*
|
||||
- * We treat unexpected efuse values as if the SoC was from
|
||||
- * the slowest bin. Expected efuse values are 1-3, slowest
|
||||
- * to fastest.
|
||||
- */
|
||||
- if (efuse_value >= 1 && efuse_value <= 3)
|
||||
- *versions = efuse_value - 1;
|
||||
- else
|
||||
- *versions = 0;
|
||||
+ *versions = soc_data->efuse_xlate(speedbin);
|
||||
|
||||
kfree(speedbin);
|
||||
return 0;
|
||||
@@ -84,18 +113,23 @@ static int sun50i_cpufreq_get_efuse(u32 *versions)
|
||||
|
||||
static int sun50i_cpufreq_nvmem_probe(struct platform_device *pdev)
|
||||
{
|
||||
+ const struct of_device_id *match;
|
||||
int *opp_tokens;
|
||||
char name[MAX_NAME_LEN];
|
||||
unsigned int cpu;
|
||||
u32 speed = 0;
|
||||
int ret;
|
||||
|
||||
+ match = dev_get_platdata(&pdev->dev);
|
||||
+ if (!match)
|
||||
+ return -EINVAL;
|
||||
+
|
||||
opp_tokens = kcalloc(num_possible_cpus(), sizeof(*opp_tokens),
|
||||
GFP_KERNEL);
|
||||
if (!opp_tokens)
|
||||
return -ENOMEM;
|
||||
|
||||
- ret = sun50i_cpufreq_get_efuse(&speed);
|
||||
+ ret = sun50i_cpufreq_get_efuse(match-> data, &speed);
|
||||
if (ret) {
|
||||
kfree(opp_tokens);
|
||||
return ret;
|
||||
@@ -159,8 +193,18 @@ static struct platform_driver sun50i_cpufreq_driver = {
|
||||
},
|
||||
};
|
||||
|
||||
+static const struct sunxi_cpufreq_soc_data sun50i_h616_data = {
|
||||
+ .efuse_xlate = sun50i_h616_efuse_xlate,
|
||||
+};
|
||||
+
|
||||
+static const struct sunxi_cpufreq_soc_data sun50i_h6_data = {
|
||||
+ .efuse_xlate = sun50i_h6_efuse_xlate,
|
||||
+};
|
||||
+
|
||||
static const struct of_device_id sun50i_cpufreq_match_list[] = {
|
||||
- { .compatible = "allwinner,sun50i-h6" },
|
||||
+ { .compatible = "allwinner,sun50i-h6", .data = &sun50i_h6_data },
|
||||
+ { .compatible = "allwinner,sun50i-h616", .data = &sun50i_h616_data },
|
||||
+ { .compatible = "allwinner,sun50i-h618", .data = &sun50i_h616_data },
|
||||
{}
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, sun50i_cpufreq_match_list);
|
||||
@@ -196,8 +239,8 @@ static int __init sun50i_cpufreq_init(void)
|
||||
return ret;
|
||||
|
||||
sun50i_cpufreq_pdev =
|
||||
- platform_device_register_simple("sun50i-cpufreq-nvmem",
|
||||
- -1, NULL, 0);
|
||||
+ platform_device_register_data(NULL,
|
||||
+ "sun50i-cpufreq-nvmem", -1, match, sizeof(*match));
|
||||
ret = PTR_ERR_OR_ZERO(sun50i_cpufreq_pdev);
|
||||
if (ret == 0)
|
||||
return 0;
|
||||
--
|
||||
Armbian
|
||||
|
@ -0,0 +1,135 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Kali Prasad <kprasadvnsi@protonmail.com>
|
||||
Date: Sun, 19 Sep 2021 08:02:27 +0000
|
||||
Subject: arm64: dts: allwinner: h616: Add thermal sensor and thermal zones
|
||||
|
||||
There are four sensors, CPU, GPU, VE, and DDR.
|
||||
|
||||
Signed-off-by: Kali Prasad <kprasadvnsi@protonmail.com>
|
||||
---
|
||||
arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 75 ++++++++++
|
||||
1 file changed, 75 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
|
||||
index 7ad1982fb47f..8628a9e3dfca 100644
|
||||
--- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
|
||||
@@ -9,6 +9,7 @@
|
||||
#include <dt-bindings/clock/sun6i-rtc.h>
|
||||
#include <dt-bindings/reset/sun50i-h616-ccu.h>
|
||||
#include <dt-bindings/reset/sun50i-h6-r-ccu.h>
|
||||
+#include <dt-bindings/thermal/thermal.h>
|
||||
|
||||
/ {
|
||||
interrupt-parent = <&gic>;
|
||||
@@ -25,6 +26,8 @@ cpu0: cpu@0 {
|
||||
reg = <0>;
|
||||
enable-method = "psci";
|
||||
clocks = <&ccu CLK_CPUX>;
|
||||
+ clock-latency-ns = <244144>; /* 8 32k periods */
|
||||
+ #cooling-cells = <2>;
|
||||
};
|
||||
|
||||
cpu1: cpu@1 {
|
||||
@@ -33,6 +36,8 @@ cpu1: cpu@1 {
|
||||
reg = <1>;
|
||||
enable-method = "psci";
|
||||
clocks = <&ccu CLK_CPUX>;
|
||||
+ clock-latency-ns = <244144>; /* 8 32k periods */
|
||||
+ #cooling-cells = <2>;
|
||||
};
|
||||
|
||||
cpu2: cpu@2 {
|
||||
@@ -41,6 +46,8 @@ cpu2: cpu@2 {
|
||||
reg = <2>;
|
||||
enable-method = "psci";
|
||||
clocks = <&ccu CLK_CPUX>;
|
||||
+ clock-latency-ns = <244144>; /* 8 32k periods */
|
||||
+ #cooling-cells = <2>;
|
||||
};
|
||||
|
||||
cpu3: cpu@3 {
|
||||
@@ -49,6 +56,8 @@ cpu3: cpu@3 {
|
||||
reg = <3>;
|
||||
enable-method = "psci";
|
||||
clocks = <&ccu CLK_CPUX>;
|
||||
+ clock-latency-ns = <244144>; /* 8 32k periods */
|
||||
+ #cooling-cells = <2>;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -833,5 +842,71 @@ r_rsb: rsb@7083000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
+
|
||||
+ ths: thermal-sensor@5070400 {
|
||||
+ compatible = "allwinner,sun50i-h616-ths";
|
||||
+ reg = <0x05070400 0x400>;
|
||||
+ interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ clocks = <&ccu CLK_BUS_THS>;
|
||||
+ clock-names = "bus";
|
||||
+ resets = <&ccu RST_BUS_THS>;
|
||||
+ nvmem-cells = <&ths_calibration>;
|
||||
+ nvmem-cell-names = "calibration";
|
||||
+ #thermal-sensor-cells = <1>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ thermal-zones {
|
||||
+ cpu-thermal {
|
||||
+ polling-delay-passive = <500>;
|
||||
+ polling-delay = <1000>;
|
||||
+ thermal-sensors = <&ths 2>;
|
||||
+ sustainable-power = <1000>;
|
||||
+ k_po = <20>;
|
||||
+ k_pu = <40>;
|
||||
+ k_i = <0>;
|
||||
+
|
||||
+ trips {
|
||||
+ cpu_threshold: trip-point@0 {
|
||||
+ temperature = <60000>;
|
||||
+ type = "passive";
|
||||
+ hysteresis = <0>;
|
||||
+ };
|
||||
+ cpu_target: trip-point@1 {
|
||||
+ temperature = <70000>;
|
||||
+ type = "passive";
|
||||
+ hysteresis = <0>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ cooling-maps {
|
||||
+ map0 {
|
||||
+ trip = <&cpu_target>;
|
||||
+ cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
+ <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
+ <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
+ <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ gpu-thermal {
|
||||
+ polling-delay-passive = <500>;
|
||||
+ polling-delay = <1000>;
|
||||
+ thermal-sensors = <&ths 0>;
|
||||
+ sustainable-power = <1100>;
|
||||
+ };
|
||||
+
|
||||
+ ve-thermal {
|
||||
+ polling-delay-passive = <0>;
|
||||
+ polling-delay = <0>;
|
||||
+ thermal-sensors = <&ths 1>;
|
||||
+ };
|
||||
+
|
||||
+ ddr-thermal {
|
||||
+ polling-delay-passive = <0>;
|
||||
+ polling-delay = <0>;
|
||||
+ thermal-sensors = <&ths 3>;
|
||||
+ };
|
||||
};
|
||||
};
|
||||
--
|
||||
Armbian
|
||||
|
@ -0,0 +1,73 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Micha=C5=82=20Dzieko=C5=84ski?=
|
||||
<michal.dziekonski+github@gmail.com>
|
||||
Date: Wed, 3 May 2023 12:17:28 +0000
|
||||
Subject: arm64: dts: allwinner: h616: Fix thermal zones (add missing trips)
|
||||
|
||||
Signed-off-by: Michal Dziekonski <michal.dziekonski+github@gmail.com>
|
||||
---
|
||||
arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 29 ++++++++++
|
||||
1 file changed, 29 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
|
||||
index 8628a9e3dfca..17b13d3193cc 100644
|
||||
--- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
|
||||
@@ -877,6 +877,11 @@ cpu_target: trip-point@1 {
|
||||
type = "passive";
|
||||
hysteresis = <0>;
|
||||
};
|
||||
+ cpu_temp_critical: trip-point@2 {
|
||||
+ temperature = <110000>;
|
||||
+ type = "critical";
|
||||
+ hysteresis = <0>;
|
||||
+ };
|
||||
};
|
||||
|
||||
cooling-maps {
|
||||
@@ -895,18 +900,42 @@ gpu-thermal {
|
||||
polling-delay = <1000>;
|
||||
thermal-sensors = <&ths 0>;
|
||||
sustainable-power = <1100>;
|
||||
+
|
||||
+ trips {
|
||||
+ gpu_temp_critical: trip-point@0 {
|
||||
+ temperature = <110000>;
|
||||
+ type = "critical";
|
||||
+ hysteresis = <0>;
|
||||
+ };
|
||||
+ };
|
||||
};
|
||||
|
||||
ve-thermal {
|
||||
polling-delay-passive = <0>;
|
||||
polling-delay = <0>;
|
||||
thermal-sensors = <&ths 1>;
|
||||
+
|
||||
+ trips {
|
||||
+ ve_temp_critical: trip-point@0 {
|
||||
+ temperature = <110000>;
|
||||
+ type = "critical";
|
||||
+ hysteresis = <0>;
|
||||
+ };
|
||||
+ };
|
||||
};
|
||||
|
||||
ddr-thermal {
|
||||
polling-delay-passive = <0>;
|
||||
polling-delay = <0>;
|
||||
thermal-sensors = <&ths 3>;
|
||||
+
|
||||
+ trips {
|
||||
+ ddr_temp_critical: trip-point@0 {
|
||||
+ temperature = <110000>;
|
||||
+ type = "critical";
|
||||
+ hysteresis = <0>;
|
||||
+ };
|
||||
+ };
|
||||
};
|
||||
};
|
||||
};
|
||||
--
|
||||
Armbian
|
||||
|
@ -0,0 +1,39 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: AGM1968 <AGM1968@users.noreply.github.com>
|
||||
Date: Wed, 31 May 2023 08:12:00 +0000
|
||||
Subject: LED-green_power_on-red_status_heartbeat
|
||||
arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi
|
||||
|
||||
Signed-off-by: AGM1968 <AGM1968@users.noreply.github.com>
|
||||
---
|
||||
arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi | 7 ++++---
|
||||
1 file changed, 4 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi
|
||||
index 0666d16ba7d0..19451a0c85ae 100644
|
||||
--- a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi
|
||||
@@ -26,16 +26,17 @@ leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
led-0 {
|
||||
- function = LED_FUNCTION_POWER;
|
||||
+ function = LED_FUNCTION_STATUS;
|
||||
color = <LED_COLOR_ID_RED>;
|
||||
gpios = <&pio 2 12 GPIO_ACTIVE_HIGH>; /* PC12 */
|
||||
- default-state = "on";
|
||||
+ linux,default-trigger = "heartbeat";
|
||||
};
|
||||
|
||||
led-1 {
|
||||
- function = LED_FUNCTION_STATUS;
|
||||
+ function = LED_FUNCTION_POWER;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
gpios = <&pio 2 13 GPIO_ACTIVE_HIGH>; /* PC13 */
|
||||
+ default-state = "on";
|
||||
};
|
||||
};
|
||||
|
||||
--
|
||||
Armbian
|
||||
|
@ -0,0 +1,38 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Jernej Skrabec <jernej.skrabec@gmail.com>
|
||||
Date: Fri, 15 Oct 2021 21:07:46 +0200
|
||||
Subject: arm64:dts: allwinner: sun50i-h616 Add GPU node
|
||||
|
||||
Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
|
||||
---
|
||||
arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 14 ++++++++++
|
||||
1 file changed, 14 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
|
||||
index 44f8ae11ca16..26ef79c5d895 100644
|
||||
--- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
|
||||
@@ -108,6 +108,20 @@ soc {
|
||||
#size-cells = <1>;
|
||||
ranges = <0x0 0x0 0x0 0x40000000>;
|
||||
|
||||
+ gpu: gpu@1800000 {
|
||||
+ compatible = "allwinner,sun50i-h616-mali",
|
||||
+ "arm,mali-bifrost";
|
||||
+ reg = <0x1800000 0x40000>;
|
||||
+ interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
|
||||
+ <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
|
||||
+ <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ interrupt-names = "job", "mmu", "gpu";
|
||||
+ clocks = <&ccu CLK_GPU0>, <&ccu CLK_BUS_GPU>;
|
||||
+ clock-names = "core", "bus";
|
||||
+ resets = <&ccu RST_BUS_GPU>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
syscon: syscon@3000000 {
|
||||
compatible = "allwinner,sun50i-h616-system-control";
|
||||
reg = <0x03000000 0x1000>;
|
||||
--
|
||||
Armbian
|
||||
|
@ -0,0 +1,55 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Jernej Skrabec <jernej.skrabec@gmail.com>
|
||||
Date: Fri, 15 Oct 2021 21:14:55 +0200
|
||||
Subject: arm64:dts:allwinner: sun50i-h616 Add VPU node
|
||||
|
||||
Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
|
||||
---
|
||||
arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 24 ++++++++++
|
||||
1 file changed, 24 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
|
||||
index 26ef79c5d895..944ff2747d27 100644
|
||||
--- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
|
||||
@@ -122,6 +122,17 @@ gpu: gpu@1800000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
+ video-codec@1c0e000 {
|
||||
+ compatible = "allwinner,sun50i-h616-video-engine";
|
||||
+ reg = <0x01c0e000 0x2000>;
|
||||
+ clocks = <&ccu CLK_BUS_VE>, <&ccu CLK_VE>,
|
||||
+ <&ccu CLK_MBUS_VE>;
|
||||
+ clock-names = "ahb", "mod", "ram";
|
||||
+ resets = <&ccu RST_BUS_VE>;
|
||||
+ interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ allwinner,sram = <&ve_sram 1>;
|
||||
+ };
|
||||
+
|
||||
syscon: syscon@3000000 {
|
||||
compatible = "allwinner,sun50i-h616-system-control";
|
||||
reg = <0x03000000 0x1000>;
|
||||
@@ -136,6 +147,19 @@ sram_c: sram@28000 {
|
||||
#size-cells = <1>;
|
||||
ranges = <0 0x00028000 0x30000>;
|
||||
};
|
||||
+
|
||||
+ sram_c1: sram@1a00000 {
|
||||
+ compatible = "mmio-sram";
|
||||
+ reg = <0x01a00000 0x200000>;
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <1>;
|
||||
+ ranges = <0 0x01a00000 0x200000>;
|
||||
+
|
||||
+ ve_sram: sram-section@0 {
|
||||
+ compatible = "allwinner,sun50i-h616-sram-c1";
|
||||
+ reg = <0x000000 0x200000>;
|
||||
+ };
|
||||
+ };
|
||||
};
|
||||
|
||||
ccu: clock@3001000 {
|
||||
--
|
||||
Armbian
|
||||
|
@ -0,0 +1,39 @@
|
||||
From a3e54a502cf754b148a8ad06580a3c256bc42b09 Mon Sep 17 00:00:00 2001
|
||||
From: Patrick Yavitz <pyavitz@xxxxx.com>
|
||||
Date: Thu, 22 Feb 2024 19:31:11 -0500
|
||||
Subject: [PATCH] arch: arm64: dts: allwinner: sun50i-h616: PG 12c pins
|
||||
|
||||
pins = "PG17", "PG18";
|
||||
pins = "PG15", "PG16";
|
||||
|
||||
Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
|
||||
---
|
||||
arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 12 ++++++++++++
|
||||
1 file changed, 12 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
|
||||
index 17df57e2db0a..e5ce4214a43b 100644
|
||||
--- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
|
||||
@@ -334,6 +334,18 @@ i2c4_ph_pins: i2c4-ph-pins {
|
||||
function = "i2c4";
|
||||
};
|
||||
|
||||
+ /omit-if-no-ref/
|
||||
+ i2c3_pg_pins: i2c3-pg-pins {
|
||||
+ pins = "PG17", "PG18";
|
||||
+ function = "i2c3";
|
||||
+ };
|
||||
+
|
||||
+ /omit-if-no-ref/
|
||||
+ i2c4_pg_pins: i2c4-pg-pins {
|
||||
+ pins = "PG15", "PG16";
|
||||
+ function = "i2c4";
|
||||
+ };
|
||||
+
|
||||
ir_rx_pin: ir-rx-pin {
|
||||
pins = "PH10";
|
||||
function = "ir_rx";
|
||||
--
|
||||
2.39.2
|
||||
|
@ -0,0 +1,30 @@
|
||||
From 64b0221e526f6359a39ab3beb9a693dc964b1112 Mon Sep 17 00:00:00 2001
|
||||
From: Patrick Yavitz <pyavitz@xxxxx.com>
|
||||
Date: Wed, 6 Mar 2024 06:51:01 -0500
|
||||
Subject: [PATCH] arch: arm64: dts: allwinner: sun50i-h616: spi1 cs1 pin
|
||||
|
||||
Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
|
||||
---
|
||||
arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
|
||||
index 33f8c758b9e6..1354dca01e78 100644
|
||||
--- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
|
||||
@@ -397,6 +397,12 @@ spi1_cs0_pin: spi1-cs0-pin {
|
||||
function = "spi1";
|
||||
};
|
||||
|
||||
+ /omit-if-no-ref/
|
||||
+ spi1_cs1_pin: spi1-cs1-pin {
|
||||
+ pins = "PH9";
|
||||
+ function = "spi1";
|
||||
+ };
|
||||
+
|
||||
uart0_ph_pins: uart0-ph-pins {
|
||||
pins = "PH0", "PH1";
|
||||
function = "uart0";
|
||||
--
|
||||
2.39.2
|
||||
|
@ -1,19 +1,20 @@
|
||||
From 899da8366afd97b1ca59b632036dc313777026da Mon Sep 17 00:00:00 2001
|
||||
From: pbiel <pbiel7@gmail.com>
|
||||
Date: Fri, 24 Feb 2023 22:14:58 +0100
|
||||
Subject: [PATCH] Add wifi power regulator
|
||||
From 8e36084386d07a07f755bda978875b1354162019 Mon Sep 17 00:00:00 2001
|
||||
From: Gunjan Gupta <viraniac@gmail.com>
|
||||
Date: Wed, 13 Dec 2023 19:15:45 +0000
|
||||
Subject: [PATCH] arm64: dts: h616: add wifi support for orange pi zero 2 and
|
||||
zero3
|
||||
|
||||
---
|
||||
.../allwinner/sun50i-h616-orangepi-zero2.dts | 47 +++++++++++++++++++
|
||||
1 file changed, 47 insertions(+)
|
||||
.../allwinner/sun50i-h616-orangepi-zero.dtsi | 38 +++++++++++++++++++
|
||||
1 file changed, 38 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts
|
||||
index 02893f3ac..88234a139 100644
|
||||
--- a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts
|
||||
@@ -49,6 +49,53 @@ reg_vcc5v: vcc5v {
|
||||
regulator-max-microvolt = <5000000>;
|
||||
regulator-always-on;
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi
|
||||
index 19451a0c85ae..400966667d1e 100644
|
||||
--- a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi
|
||||
@@ -59,6 +59,34 @@ reg_usb1_vbus: regulator-usb1-vbus {
|
||||
gpio = <&pio 2 16 GPIO_ACTIVE_HIGH>; /* PC16 */
|
||||
status = "okay";
|
||||
};
|
||||
+
|
||||
+ reg_vcc33_wifi: vcc33-wifi {
|
||||
@ -43,8 +44,13 @@ index 02893f3ac..88234a139 100644
|
||||
+ reset-gpios = <&pio 6 18 GPIO_ACTIVE_LOW>; /* PG18 */
|
||||
+ post-power-on-delay-ms = <200>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
};
|
||||
|
||||
&ehci1 {
|
||||
@@ -90,6 +118,16 @@ &mmc0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
+&mmc1 {
|
||||
+ vmmc-supply = <®_vcc33_wifi>;
|
||||
+ vqmmc-supply = <®_vcc_wifi_io>;
|
||||
@ -53,18 +59,11 @@ index 02893f3ac..88234a139 100644
|
||||
+ non-removable;
|
||||
+ mmc-ddr-1_8v;
|
||||
+ status = "okay";
|
||||
+ uwe-bsp {
|
||||
+ compatible = "unisoc,uwe_bsp";
|
||||
+ keep-power-on;
|
||||
+ data-irq;
|
||||
+ //adma-tx;
|
||||
+ adma-rx;
|
||||
+ //blksz-512;
|
||||
+ status = "okay";
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
&ohci1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&emac0 {
|
||||
--
|
||||
2.34.1
|
||||
|
@ -0,0 +1,53 @@
|
||||
From 8cdd9309fce75995cf3068be5c7ffb65cec51cff Mon Sep 17 00:00:00 2001
|
||||
From: Gunjan Gupta <viraniac@gmail.com>
|
||||
Date: Wed, 3 Jan 2024 09:53:55 +0000
|
||||
Subject: [PATCH] arm64: dts: sun50i-h616: Add dma node
|
||||
|
||||
---
|
||||
arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 16 ++++++++++++++++
|
||||
1 file changed, 16 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
|
||||
index 2424a2827455..e71b79ebced8 100644
|
||||
--- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
|
||||
@@ -170,6 +170,18 @@ mixer0_out_tcon_top_mixer0: endpoint {
|
||||
};
|
||||
};
|
||||
|
||||
+ dma: dma-controller@3002000 {
|
||||
+ compatible = "allwinner,sun50i-h6-dma";
|
||||
+ reg = <0x03002000 0x1000>;
|
||||
+ interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ clocks = <&ccu CLK_BUS_DMA>, <&ccu CLK_MBUS_DMA>;
|
||||
+ clock-names = "bus", "mbus";
|
||||
+ dma-channels = <16>;
|
||||
+ dma-requests = <49>;
|
||||
+ resets = <&ccu RST_BUS_DMA>;
|
||||
+ #dma-cells = <1>;
|
||||
+ };
|
||||
+
|
||||
gpu: gpu@1800000 {
|
||||
compatible = "allwinner,sun50i-h616-mali",
|
||||
"arm,mali-bifrost";
|
||||
@@ -606,6 +618,8 @@ spi0: spi@5010000 {
|
||||
interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_SPI0>;
|
||||
clock-names = "ahb", "mod";
|
||||
+ dmas = <&dma 22>, <&dma 22>;
|
||||
+ dma-names = "rx", "tx";
|
||||
resets = <&ccu RST_BUS_SPI0>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spi0_pins>;
|
||||
@@ -621,6 +635,8 @@ spi1: spi@5011000 {
|
||||
interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&ccu CLK_BUS_SPI1>, <&ccu CLK_SPI1>;
|
||||
clock-names = "ahb", "mod";
|
||||
+ dmas = <&dma 23>, <&dma 23>;
|
||||
+ dma-names = "rx", "tx";
|
||||
resets = <&ccu RST_BUS_SPI1>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spi1_pins>;
|
||||
--
|
||||
2.34.1
|
||||
|
@ -0,0 +1,29 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Jernej Skrabec <jernej.skrabec@gmail.com>
|
||||
Date: Fri, 15 Oct 2021 21:09:42 +0200
|
||||
Subject: arm64:dts: sun50i-h616-orangepi-zero2 Enable GPU mali
|
||||
|
||||
Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
|
||||
---
|
||||
arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts
|
||||
index d83852e72f06..8d8009c7f9a3 100644
|
||||
--- a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts
|
||||
@@ -16,6 +16,11 @@ &emac0 {
|
||||
phy-supply = <®_dcdce>;
|
||||
};
|
||||
|
||||
+&gpu {
|
||||
+ mali-supply = <®_dcdcc>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
&mmc0 {
|
||||
vmmc-supply = <®_dcdce>;
|
||||
};
|
||||
--
|
||||
Armbian
|
||||
|
@ -0,0 +1,24 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: The-going <48602507+The-going@users.noreply.github.com>
|
||||
Date: Wed, 14 Dec 2022 20:15:41 +0300
|
||||
Subject: arm64: dts: sun50i-h616-orangepi-zero2: reg_usb1_vbus status ok
|
||||
|
||||
---
|
||||
arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi
|
||||
index 15290e6892fc..0666d16ba7d0 100644
|
||||
--- a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi
|
||||
@@ -56,6 +56,7 @@ reg_usb1_vbus: regulator-usb1-vbus {
|
||||
vin-supply = <®_vcc5v>;
|
||||
enable-active-high;
|
||||
gpio = <&pio 2 16 GPIO_ACTIVE_HIGH>; /* PC16 */
|
||||
+ status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
--
|
||||
Armbian
|
||||
|
@ -0,0 +1,41 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Kali Prasad <kprasadvnsi@protonmail.com>
|
||||
Date: Sun, 19 Sep 2021 08:02:27 +0000
|
||||
Subject: drv:nvmem:sunxi_sid: Support SID on H616
|
||||
|
||||
Add support for H616's SID controller. It supports 4K-bit
|
||||
EFUSE.
|
||||
|
||||
Signed-off-by: Kali Prasad <kprasadvnsi@protonmail.com>
|
||||
---
|
||||
drivers/nvmem/sunxi_sid.c | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/drivers/nvmem/sunxi_sid.c b/drivers/nvmem/sunxi_sid.c
|
||||
index 5d364d85347f..c526fe4abe22 100644
|
||||
--- a/drivers/nvmem/sunxi_sid.c
|
||||
+++ b/drivers/nvmem/sunxi_sid.c
|
||||
@@ -204,6 +204,12 @@ static const struct sunxi_sid_cfg sun50i_h6_cfg = {
|
||||
.size = 0x200,
|
||||
};
|
||||
|
||||
+static const struct sunxi_sid_cfg sun50i_h616_cfg = {
|
||||
+ .value_offset = 0x200,
|
||||
+ .size = 0x100,
|
||||
+ .need_register_readout = true,
|
||||
+};
|
||||
+
|
||||
static const struct of_device_id sunxi_sid_of_match[] = {
|
||||
{ .compatible = "allwinner,sun4i-a10-sid", .data = &sun4i_a10_cfg },
|
||||
{ .compatible = "allwinner,sun7i-a20-sid", .data = &sun7i_a20_cfg },
|
||||
@@ -213,6 +219,7 @@ static const struct of_device_id sunxi_sid_of_match[] = {
|
||||
{ .compatible = "allwinner,sun50i-a64-sid", .data = &sun50i_a64_cfg },
|
||||
{ .compatible = "allwinner,sun50i-h5-sid", .data = &sun50i_a64_cfg },
|
||||
{ .compatible = "allwinner,sun50i-h6-sid", .data = &sun50i_h6_cfg },
|
||||
+ { .compatible = "allwinner,sun50i-h616-sid", .data = &sun50i_h616_cfg },
|
||||
{/* sentinel */},
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, sunxi_sid_of_match);
|
||||
--
|
||||
Armbian
|
||||
|
@ -0,0 +1,45 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Andre Przywara <andre.przywara@arm.com>
|
||||
Date: Wed, 21 Apr 2021 12:46:43 +0100
|
||||
Subject: drv:rtc: sun6i: Add Allwinner H616 support
|
||||
|
||||
The H616 RTC changes its day storage to the newly introduced linear day
|
||||
scheme, so pair the new compatible string with this feature flag.
|
||||
The clock part is missing an external 32768 Hz oscillator input pin,
|
||||
for future expansion we must thus ignore any provided clock for now.
|
||||
|
||||
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
|
||||
---
|
||||
drivers/rtc/rtc-sun6i.c | 16 ++++++++++
|
||||
1 file changed, 16 insertions(+)
|
||||
|
||||
diff --git a/drivers/rtc/rtc-sun6i.c b/drivers/rtc/rtc-sun6i.c
|
||||
index 190ea007d82e..e0b85a0d5645 100644
|
||||
--- a/drivers/rtc/rtc-sun6i.c
|
||||
+++ b/drivers/rtc/rtc-sun6i.c
|
||||
@@ -389,6 +389,22 @@ static void __init sun50i_h6_rtc_clk_init(struct device_node *node)
|
||||
CLK_OF_DECLARE_DRIVER(sun50i_h6_rtc_clk, "allwinner,sun50i-h6-rtc",
|
||||
sun50i_h6_rtc_clk_init);
|
||||
|
||||
+static const struct sun6i_rtc_clk_data sun50i_h616_rtc_data = {
|
||||
+ .rc_osc_rate = 16000000,
|
||||
+ .fixed_prescaler = 32,
|
||||
+ .has_prescaler = 1,
|
||||
+ .has_out_clk = 1,
|
||||
+ .no_ext_losc = 1,
|
||||
+};
|
||||
+
|
||||
+static void __init sun50i_h616_rtc_clk_init(struct device_node *node)
|
||||
+{
|
||||
+ sun6i_rtc_clk_init(node, &sun50i_h616_rtc_data);
|
||||
+}
|
||||
+
|
||||
+CLK_OF_DECLARE_DRIVER(sun50i_h616_rtc_clk, "allwinner,sun50i-h616-rtc",
|
||||
+ sun50i_h616_rtc_clk_init);
|
||||
+
|
||||
/*
|
||||
* The R40 user manual is self-conflicting on whether the prescaler is
|
||||
* fixed or configurable. The clock diagram shows it as fixed, but there
|
||||
--
|
||||
Armbian
|
||||
|
@ -0,0 +1,68 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Andre Przywara <andre.przywara@arm.com>
|
||||
Date: Mon, 14 Jun 2021 23:02:45 +0100
|
||||
Subject: drv:rtc:sun6i: support RTCs without external LOSCs
|
||||
|
||||
Some newer Allwinner RTCs (for instance the one in the H616 SoC) lack
|
||||
a pin for an external 32768 Hz oscillator. As a consequence, this LOSC
|
||||
can't be selected as the RTC clock source, and we must rely on the
|
||||
internal RC oscillator.
|
||||
To allow additions of clocks to the RTC node, add a feature bit to ignore
|
||||
any provided clocks for now (the current code would think this is the
|
||||
external LOSC). Later DTs and code can then for instance add the PLL
|
||||
based clock input, and older kernel won't get confused.
|
||||
|
||||
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
|
||||
Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com>
|
||||
---
|
||||
drivers/rtc/rtc-sun6i.c | 16 +++++++---
|
||||
1 file changed, 11 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/drivers/rtc/rtc-sun6i.c b/drivers/rtc/rtc-sun6i.c
|
||||
index 02129ea346c1..190ea007d82e 100644
|
||||
--- a/drivers/rtc/rtc-sun6i.c
|
||||
+++ b/drivers/rtc/rtc-sun6i.c
|
||||
@@ -137,6 +137,7 @@ struct sun6i_rtc_clk_data {
|
||||
unsigned int has_out_clk : 1;
|
||||
unsigned int has_losc_en : 1;
|
||||
unsigned int has_auto_swt : 1;
|
||||
+ unsigned int no_ext_losc : 1;
|
||||
};
|
||||
|
||||
#define RTC_LINEAR_DAY BIT(0)
|
||||
@@ -260,7 +261,7 @@ static void __init sun6i_rtc_clk_init(struct device_node *node,
|
||||
}
|
||||
|
||||
/* Switch to the external, more precise, oscillator, if present */
|
||||
- if (of_property_present(node, "clocks")) {
|
||||
+ if (!rtc->data->no_ext_losc && of_get_property(node, "clocks", NULL)) {
|
||||
reg |= SUN6I_LOSC_CTRL_EXT_OSC;
|
||||
if (rtc->data->has_losc_en)
|
||||
reg |= SUN6I_LOSC_CTRL_EXT_LOSC_EN;
|
||||
@@ -284,14 +285,19 @@ static void __init sun6i_rtc_clk_init(struct device_node *node,
|
||||
}
|
||||
|
||||
parents[0] = clk_hw_get_name(rtc->int_osc);
|
||||
- /* If there is no external oscillator, this will be NULL and ... */
|
||||
- parents[1] = of_clk_get_parent_name(node, 0);
|
||||
+ if (rtc->data->no_ext_losc) {
|
||||
+ parents[1] = NULL;
|
||||
+ init.num_parents = 1;
|
||||
+ } else {
|
||||
+ /* If there is no external oscillator, this will be NULL and */
|
||||
+ parents[1] = of_clk_get_parent_name(node, 0);
|
||||
+ /* ... number of clock parents will be 1. */
|
||||
+ init.num_parents = of_clk_get_parent_count(node) + 1;
|
||||
+ }
|
||||
|
||||
rtc->hw.init = &init;
|
||||
|
||||
init.parent_names = parents;
|
||||
- /* ... number of clock parents will be 1. */
|
||||
- init.num_parents = of_clk_get_parent_count(node) + 1;
|
||||
of_property_read_string_index(node, "clock-output-names", 0,
|
||||
&init.name);
|
||||
|
||||
--
|
||||
Armbian
|
||||
|
@ -0,0 +1,41 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Jernej Skrabec <jernej.skrabec@gmail.com>
|
||||
Date: Sat, 16 Oct 2021 21:26:41 +0200
|
||||
Subject: drv:soc: sunxi: sram: Add SRAM C1 H616 handling
|
||||
|
||||
Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
|
||||
---
|
||||
drivers/soc/sunxi/sunxi_sram.c | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
|
||||
diff --git a/drivers/soc/sunxi/sunxi_sram.c b/drivers/soc/sunxi/sunxi_sram.c
|
||||
index 4458b2e0562b..9e65d8dfe355 100644
|
||||
--- a/drivers/soc/sunxi/sunxi_sram.c
|
||||
+++ b/drivers/soc/sunxi/sunxi_sram.c
|
||||
@@ -70,6 +70,12 @@ static struct sunxi_sram_desc sun4i_a10_sram_c1 = {
|
||||
SUNXI_SRAM_MAP(0x7fffffff, 1, "ve")),
|
||||
};
|
||||
|
||||
+static struct sunxi_sram_desc sun50i_h616_sram_c1 = {
|
||||
+ .data = SUNXI_SRAM_DATA("C1", 0x0, 0x0, 31,
|
||||
+ SUNXI_SRAM_MAP(0x7fffffff, 0, "cpu"),
|
||||
+ SUNXI_SRAM_MAP(0, 1, "ve")),
|
||||
+};
|
||||
+
|
||||
static struct sunxi_sram_desc sun4i_a10_sram_d = {
|
||||
.data = SUNXI_SRAM_DATA("D", 0x4, 0x0, 1,
|
||||
SUNXI_SRAM_MAP(0, 0, "cpu"),
|
||||
@@ -99,6 +105,10 @@ static const struct of_device_id sunxi_sram_dt_ids[] = {
|
||||
.compatible = "allwinner,sun50i-a64-sram-c",
|
||||
.data = &sun50i_a64_sram_c.data,
|
||||
},
|
||||
+ {
|
||||
+ .compatible = "allwinner,sun50i-h616-sram-c1",
|
||||
+ .data = &sun50i_h616_sram_c1.data,
|
||||
+ },
|
||||
{}
|
||||
};
|
||||
|
||||
--
|
||||
Armbian
|
||||
|
@ -0,0 +1,44 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Jernej Skrabec <jernej.skrabec@gmail.com>
|
||||
Date: Fri, 15 Oct 2021 21:49:45 +0200
|
||||
Subject: drv:staging:media:sunxi:cedrus: add H616 variant
|
||||
|
||||
Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
|
||||
---
|
||||
drivers/staging/media/sunxi/cedrus/cedrus.c | 13 ++++++++++
|
||||
1 file changed, 13 insertions(+)
|
||||
|
||||
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus.c b/drivers/staging/media/sunxi/cedrus/cedrus.c
|
||||
index a0f9f4a5b03a..160bd376eb58 100644
|
||||
--- a/drivers/staging/media/sunxi/cedrus/cedrus.c
|
||||
+++ b/drivers/staging/media/sunxi/cedrus/cedrus.c
|
||||
@@ -651,6 +651,15 @@ static const struct cedrus_variant sun50i_h6_cedrus_variant = {
|
||||
.mod_rate = 600000000,
|
||||
};
|
||||
|
||||
+static const struct cedrus_variant sun50i_h616_cedrus_variant = {
|
||||
+ .capabilities = CEDRUS_CAPABILITY_UNTILED |
|
||||
+ CEDRUS_CAPABILITY_MPEG2_DEC |
|
||||
+ CEDRUS_CAPABILITY_H264_DEC |
|
||||
+ CEDRUS_CAPABILITY_H265_DEC |
|
||||
+ CEDRUS_CAPABILITY_VP8_DEC,
|
||||
+ .mod_rate = 600000000,
|
||||
+};
|
||||
+
|
||||
static const struct of_device_id cedrus_dt_match[] = {
|
||||
{
|
||||
.compatible = "allwinner,sun4i-a10-video-engine",
|
||||
@@ -696,6 +705,10 @@ static const struct of_device_id cedrus_dt_match[] = {
|
||||
.compatible = "allwinner,sun50i-h6-video-engine",
|
||||
.data = &sun50i_h6_cedrus_variant,
|
||||
},
|
||||
+ {
|
||||
+ .compatible = "allwinner,sun50i-h616-video-engine",
|
||||
+ .data = &sun50i_h6_cedrus_variant,
|
||||
+ },
|
||||
{ /* sentinel */ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, cedrus_dt_match);
|
||||
--
|
||||
Armbian
|
||||
|
@ -0,0 +1,24 @@
|
||||
# Common patches for h616 and h618
|
||||
# Ported from armbian
|
||||
# https://github.com/armbian/build/tree/main/patch/kernel/archive/sunxi-6.6/patches.armbian
|
||||
# Armabian includes a hack hdmi output not included here: drivers-hack-for-h616-hdmi-video-output.patch
|
||||
|
||||
patch add-nodes-for-sunxi-info-addr-dump-reg.patch
|
||||
patch arm64-dts-allwinner-h616-Add-device-node-for-SID.patch
|
||||
patch arm64-dts-allwinner-h616-Add-efuse_xlate-cpu-frequency-scaling-v1_6_2.patch
|
||||
patch arm64-dts-allwinner-h616-Add-thermal-sensor-and-thermal-zones.patch
|
||||
patch arm64-dts-allwinner-h616-Fix-thermal-zones-missing-trips.patch
|
||||
patch arm64-dts-allwinner-h616-LED-green_power_on-red_status_heartbeat.patch
|
||||
patch arm64-dts-allwinner-sun50i-h616-Add-GPU-node.patch
|
||||
patch arm64-dts-allwinner-sun50i-h616-Add-VPU-node.patch
|
||||
patch arm64-dts-allwinner-sun50i-h616-PG-12c-pins.patch
|
||||
patch arm64-dts-allwinner-sun50i-h616-spi1-cs1-pin.patch
|
||||
|
||||
patch arm64-dts-sun50i-h616-Add-dma-node.patch
|
||||
patch drv-nvmem-sunxi_sid-Support-SID-on-H616.patch
|
||||
patch drv-rtc-sun6i-Add-Allwinner-H616-support.patch
|
||||
patch drv-rtc-sun6i-support-RTCs-without-external-LOSCs.patch
|
||||
patch drv-soc-sunxi-sram-Add-SRAM-C1-H616-handling.patch
|
||||
patch drv-staging-media-sunxi-cedrus-add-H616-variant.patch
|
||||
patch nvmem-sunxi_sid-add-sunxi_get_soc_chipid-sunxi_get_serial.patch
|
||||
|
@ -1,18 +1,17 @@
|
||||
From 452a691a83df1aab77cec33203cb04a817817a05 Mon Sep 17 00:00:00 2001
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: The-going <48602507+The-going@users.noreply.github.com>
|
||||
Date: Thu, 5 May 2022 22:55:13 +0300
|
||||
Subject: [PATCH] drv: nvmem: sunxi_sid: Add sunxi_get_soc_chipid,
|
||||
sunxi_get_serial
|
||||
Date: Sat, 16 Apr 2022 11:19:05 +0300
|
||||
Subject: nvmem: sunxi_sid: add sunxi_get_soc_chipid, sunxi_get_serial
|
||||
|
||||
---
|
||||
drivers/nvmem/sunxi_sid.c | 28 ++++++++++++++++++++++++++++
|
||||
drivers/nvmem/sunxi_sid.c | 28 ++++++++++
|
||||
1 file changed, 28 insertions(+)
|
||||
|
||||
diff --git a/drivers/nvmem/sunxi_sid.c b/drivers/nvmem/sunxi_sid.c
|
||||
index 37a6abb0e..c81fac63d 100644
|
||||
index c526fe4abe22..e522bd1e5edd 100644
|
||||
--- a/drivers/nvmem/sunxi_sid.c
|
||||
+++ b/drivers/nvmem/sunxi_sid.c
|
||||
@@ -37,6 +37,25 @@ struct sunxi_sid {
|
||||
@@ -36,6 +36,25 @@ struct sunxi_sid {
|
||||
u32 value_offset;
|
||||
};
|
||||
|
||||
@ -38,7 +37,7 @@ index 37a6abb0e..c81fac63d 100644
|
||||
static int sunxi_sid_read(void *context, unsigned int offset,
|
||||
void *val, size_t bytes)
|
||||
{
|
||||
@@ -167,6 +186,15 @@ static int sunxi_sid_probe(struct platform_device *pdev)
|
||||
@@ -177,6 +196,15 @@ static int sunxi_sid_probe(struct platform_device *pdev)
|
||||
|
||||
platform_set_drvdata(pdev, nvmem);
|
||||
|
||||
@ -55,6 +54,5 @@ index 37a6abb0e..c81fac63d 100644
|
||||
}
|
||||
|
||||
--
|
||||
2.35.3
|
||||
|
||||
Armbian
|
||||
|
@ -0,0 +1,7 @@
|
||||
# Kmeta for OPI Zero 2
|
||||
include h61x-common-6_6.scc
|
||||
|
||||
patch arm64-dts-h616-add-wifi-support-for-orange-pi-zero-2.patch
|
||||
patch arm64-dts-sun50i-h616-orangepi-zero2-Enable-GPU-mali.patch
|
||||
patch arm64-dts-sun50i-h616-orangepi-zero2-reg_usb1_vbus-status-ok.patch
|
||||
|
@ -0,0 +1,142 @@
|
||||
From 91b69779e0875e58d8973b2938a1cc4b7a1c455b Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Karlman <jonas@kwiboo.se>
|
||||
Date: Sun, 25 Mar 2018 22:17:06 +0200
|
||||
Subject: [PATCH 22/44] ASoC: hdmi-codec: fix channel allocation
|
||||
|
||||
---
|
||||
sound/soc/codecs/hdmi-codec.c | 113 ++++++++++++++++------------------
|
||||
1 file changed, 52 insertions(+), 61 deletions(-)
|
||||
|
||||
--- a/sound/soc/codecs/hdmi-codec.c
|
||||
+++ b/sound/soc/codecs/hdmi-codec.c
|
||||
@@ -194,78 +194,69 @@ static const struct snd_pcm_chmap_elem h
|
||||
*/
|
||||
static const struct hdmi_codec_cea_spk_alloc hdmi_codec_channel_alloc[] = {
|
||||
{ .ca_id = 0x00, .n_ch = 2,
|
||||
- .mask = FL | FR},
|
||||
- /* 2.1 */
|
||||
- { .ca_id = 0x01, .n_ch = 4,
|
||||
- .mask = FL | FR | LFE},
|
||||
- /* Dolby Surround */
|
||||
+ .mask = FL | FR },
|
||||
+ { .ca_id = 0x03, .n_ch = 4,
|
||||
+ .mask = FL | FR | LFE | FC },
|
||||
{ .ca_id = 0x02, .n_ch = 4,
|
||||
.mask = FL | FR | FC },
|
||||
- /* surround51 */
|
||||
+ { .ca_id = 0x01, .n_ch = 4,
|
||||
+ .mask = FL | FR | LFE },
|
||||
{ .ca_id = 0x0b, .n_ch = 6,
|
||||
- .mask = FL | FR | LFE | FC | RL | RR},
|
||||
- /* surround40 */
|
||||
- { .ca_id = 0x08, .n_ch = 6,
|
||||
- .mask = FL | FR | RL | RR },
|
||||
- /* surround41 */
|
||||
- { .ca_id = 0x09, .n_ch = 6,
|
||||
- .mask = FL | FR | LFE | RL | RR },
|
||||
- /* surround50 */
|
||||
+ .mask = FL | FR | LFE | FC | RL | RR },
|
||||
{ .ca_id = 0x0a, .n_ch = 6,
|
||||
.mask = FL | FR | FC | RL | RR },
|
||||
- /* 6.1 */
|
||||
- { .ca_id = 0x0f, .n_ch = 8,
|
||||
- .mask = FL | FR | LFE | FC | RL | RR | RC },
|
||||
- /* surround71 */
|
||||
+ { .ca_id = 0x09, .n_ch = 6,
|
||||
+ .mask = FL | FR | LFE | RL | RR },
|
||||
+ { .ca_id = 0x08, .n_ch = 6,
|
||||
+ .mask = FL | FR | RL | RR },
|
||||
+ { .ca_id = 0x07, .n_ch = 6,
|
||||
+ .mask = FL | FR | LFE | FC | RC },
|
||||
+ { .ca_id = 0x06, .n_ch = 6,
|
||||
+ .mask = FL | FR | FC | RC },
|
||||
+ { .ca_id = 0x05, .n_ch = 6,
|
||||
+ .mask = FL | FR | LFE | RC },
|
||||
+ { .ca_id = 0x04, .n_ch = 6,
|
||||
+ .mask = FL | FR | RC },
|
||||
{ .ca_id = 0x13, .n_ch = 8,
|
||||
.mask = FL | FR | LFE | FC | RL | RR | RLC | RRC },
|
||||
- /* others */
|
||||
- { .ca_id = 0x03, .n_ch = 8,
|
||||
- .mask = FL | FR | LFE | FC },
|
||||
- { .ca_id = 0x04, .n_ch = 8,
|
||||
- .mask = FL | FR | RC},
|
||||
- { .ca_id = 0x05, .n_ch = 8,
|
||||
- .mask = FL | FR | LFE | RC },
|
||||
- { .ca_id = 0x06, .n_ch = 8,
|
||||
- .mask = FL | FR | FC | RC },
|
||||
- { .ca_id = 0x07, .n_ch = 8,
|
||||
- .mask = FL | FR | LFE | FC | RC },
|
||||
- { .ca_id = 0x0c, .n_ch = 8,
|
||||
- .mask = FL | FR | RC | RL | RR },
|
||||
- { .ca_id = 0x0d, .n_ch = 8,
|
||||
- .mask = FL | FR | LFE | RL | RR | RC },
|
||||
- { .ca_id = 0x0e, .n_ch = 8,
|
||||
- .mask = FL | FR | FC | RL | RR | RC },
|
||||
- { .ca_id = 0x10, .n_ch = 8,
|
||||
- .mask = FL | FR | RL | RR | RLC | RRC },
|
||||
- { .ca_id = 0x11, .n_ch = 8,
|
||||
- .mask = FL | FR | LFE | RL | RR | RLC | RRC },
|
||||
+ { .ca_id = 0x1f, .n_ch = 8,
|
||||
+ .mask = FL | FR | LFE | FC | RL | RR | FLC | FRC },
|
||||
{ .ca_id = 0x12, .n_ch = 8,
|
||||
.mask = FL | FR | FC | RL | RR | RLC | RRC },
|
||||
- { .ca_id = 0x14, .n_ch = 8,
|
||||
- .mask = FL | FR | FLC | FRC },
|
||||
- { .ca_id = 0x15, .n_ch = 8,
|
||||
- .mask = FL | FR | LFE | FLC | FRC },
|
||||
- { .ca_id = 0x16, .n_ch = 8,
|
||||
- .mask = FL | FR | FC | FLC | FRC },
|
||||
- { .ca_id = 0x17, .n_ch = 8,
|
||||
- .mask = FL | FR | LFE | FC | FLC | FRC },
|
||||
- { .ca_id = 0x18, .n_ch = 8,
|
||||
- .mask = FL | FR | RC | FLC | FRC },
|
||||
- { .ca_id = 0x19, .n_ch = 8,
|
||||
- .mask = FL | FR | LFE | RC | FLC | FRC },
|
||||
- { .ca_id = 0x1a, .n_ch = 8,
|
||||
- .mask = FL | FR | RC | FC | FLC | FRC },
|
||||
- { .ca_id = 0x1b, .n_ch = 8,
|
||||
- .mask = FL | FR | LFE | RC | FC | FLC | FRC },
|
||||
- { .ca_id = 0x1c, .n_ch = 8,
|
||||
- .mask = FL | FR | RL | RR | FLC | FRC },
|
||||
- { .ca_id = 0x1d, .n_ch = 8,
|
||||
- .mask = FL | FR | LFE | RL | RR | FLC | FRC },
|
||||
{ .ca_id = 0x1e, .n_ch = 8,
|
||||
.mask = FL | FR | FC | RL | RR | FLC | FRC },
|
||||
- { .ca_id = 0x1f, .n_ch = 8,
|
||||
- .mask = FL | FR | LFE | FC | RL | RR | FLC | FRC },
|
||||
+ { .ca_id = 0x11, .n_ch = 8,
|
||||
+ .mask = FL | FR | LFE | RL | RR | RLC | RRC },
|
||||
+ { .ca_id = 0x1d, .n_ch = 8,
|
||||
+ .mask = FL | FR | LFE | RL | RR | FLC | FRC },
|
||||
+ { .ca_id = 0x10, .n_ch = 8,
|
||||
+ .mask = FL | FR | RL | RR | RLC | RRC },
|
||||
+ { .ca_id = 0x1c, .n_ch = 8,
|
||||
+ .mask = FL | FR | RL | RR | FLC | FRC },
|
||||
+ { .ca_id = 0x0f, .n_ch = 8,
|
||||
+ .mask = FL | FR | LFE | FC | RL | RR | RC },
|
||||
+ { .ca_id = 0x1b, .n_ch = 8,
|
||||
+ .mask = FL | FR | LFE | RC | FC | FLC | FRC },
|
||||
+ { .ca_id = 0x0e, .n_ch = 8,
|
||||
+ .mask = FL | FR | FC | RL | RR | RC },
|
||||
+ { .ca_id = 0x1a, .n_ch = 8,
|
||||
+ .mask = FL | FR | RC | FC | FLC | FRC },
|
||||
+ { .ca_id = 0x0d, .n_ch = 8,
|
||||
+ .mask = FL | FR | LFE | RL | RR | RC },
|
||||
+ { .ca_id = 0x19, .n_ch = 8,
|
||||
+ .mask = FL | FR | LFE | RC | FLC | FRC },
|
||||
+ { .ca_id = 0x0c, .n_ch = 8,
|
||||
+ .mask = FL | FR | RC | RL | RR },
|
||||
+ { .ca_id = 0x18, .n_ch = 8,
|
||||
+ .mask = FL | FR | RC | FLC | FRC },
|
||||
+ { .ca_id = 0x17, .n_ch = 8,
|
||||
+ .mask = FL | FR | LFE | FC | FLC | FRC },
|
||||
+ { .ca_id = 0x16, .n_ch = 8,
|
||||
+ .mask = FL | FR | FC | FLC | FRC },
|
||||
+ { .ca_id = 0x15, .n_ch = 8,
|
||||
+ .mask = FL | FR | LFE | FLC | FRC },
|
||||
+ { .ca_id = 0x14, .n_ch = 8,
|
||||
+ .mask = FL | FR | FLC | FRC },
|
||||
};
|
||||
|
||||
struct hdmi_codec_priv {
|
@ -0,0 +1,53 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Jernej Skrabec <jernej.skrabec@siol.net>
|
||||
Date: Sat, 16 Jan 2021 10:58:14 +0100
|
||||
Subject: [PATCH] HACK: h6: Add HDMI sound card
|
||||
|
||||
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
|
||||
---
|
||||
arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 20 +++++++++++++++++++-
|
||||
1 file changed, 19 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
|
||||
@@ -108,6 +108,24 @@
|
||||
(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
|
||||
};
|
||||
|
||||
+ sound_hdmi: sound {
|
||||
+ compatible = "simple-audio-card";
|
||||
+ simple-audio-card,format = "i2s";
|
||||
+ simple-audio-card,name = "allwinner-hdmi";
|
||||
+ simple-audio-card,mclk-fs = <128>;
|
||||
+ simple-audio-card,frame-inversion;
|
||||
+
|
||||
+ simple-audio-card,codec {
|
||||
+ sound-dai = <&hdmi>;
|
||||
+ };
|
||||
+
|
||||
+ simple-audio-card,cpu {
|
||||
+ sound-dai = <&i2s1>;
|
||||
+ dai-tdm-slot-num = <2>;
|
||||
+ dai-tdm-slot-width = <32>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
soc {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
@@ -664,7 +682,6 @@
|
||||
dmas = <&dma 4>, <&dma 4>;
|
||||
resets = <&ccu RST_BUS_I2S1>;
|
||||
dma-names = "rx", "tx";
|
||||
- status = "disabled";
|
||||
};
|
||||
|
||||
spdif: spdif@5093000 {
|
||||
@@ -801,6 +818,7 @@
|
||||
};
|
||||
|
||||
hdmi: hdmi@6000000 {
|
||||
+ #sound-dai-cells = <0>;
|
||||
compatible = "allwinner,sun50i-h6-dw-hdmi";
|
||||
reg = <0x06000000 0x10000>;
|
||||
reg-io-width = <1>;
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user