Compare commits

...

9 Commits

Author SHA1 Message Date
fe9a59705e refactor: move resize2fs service to meta-diya 2026-04-09 01:16:28 +02:00
Dany LE
705c053040 fix: only include kernel module to pinephone recovery image 2025-12-22 12:55:20 +01:00
Dany LE
e1010c09bc fix: only include USB gadget kernels modules to recovery images 2025-11-28 17:06:31 +01:00
Dany LE
dd17a0f88d refactor: update WIC image size 2025-11-26 18:17:53 +01:00
Dany LE
e30e31fc49 Major update:
- Switch to Sytemd
- Switch to linux 6.12lts
- Remove modem power DTS node as it is not compatible with eg25-manager
2025-11-26 17:57:53 +01:00
b72726c171 fix: update to kernel 6.15.8 2025-08-27 08:11:25 +02:00
DanyLE
c790eefea5 add networkmanaer and modemmanager to the image 2025-07-21 19:48:15 +02:00
DanyLE
37571d17cc fix: make it boot on pinephone 2025-07-21 00:10:47 +02:00
DanyLE
1fe7d54ae8 switch to walnascar 2025-07-12 17:23:24 +02:00
22 changed files with 537 additions and 146 deletions

View File

@@ -1,3 +1,26 @@
# meta-pinephone-diya
Pinephone yocto layer for diya
Pinephone yocto layer for diya
# Notes
To power on the modem
```sh
echo 1 > /sys/class/modem-power/modem-power/device/powered
```
Enable GPS
```sh
mmcli -m 0 --command="AT+QGPS=1,30,50,0,2"
```
Wifi
```sh
nmcli radio wifi
nmcli radio wifi on
nmcli dev wifi list
```

View File

@@ -5,22 +5,33 @@ BBPATH .= ":${LAYERDIR}"
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
${LAYERDIR}/recipes-*/*/*.bbappend"
BBFILE_COLLECTIONS += "meta-opi-diya"
BBFILE_PATTERN_meta-opi-diya = "^${LAYERDIR}/"
BBFILE_PRIORITY_meta-opi-diya = "11"
BBFILE_COLLECTIONS += "meta-pinephone-diya"
BBFILE_PATTERN_meta-pinephone-diya = "^${LAYERDIR}/"
BBFILE_PRIORITY_meta-pinephone-diya = "11"
LAYERDEPENDS_meta-opi-diya = " core "
LAYERSERIES_COMPAT_meta-opi-diya = "scarthgap"
LAYERDEPENDS_meta-pinephone-diya = " core "
LAYERSERIES_COMPAT_meta-pinephone-diya = "walnascar"
MACHINE ?= "pinephone"
PREFERRED_PROVIDER_virtual/kernel = "linux-megi"
PREFERRED_VERSION_linux-megi = "6.15"
PREFERRED_VERSION_linux-megi = "6.12.10"
PREFERRED_PROVIDER_virtual/bootloader = "u-boot-megous"
PREFERRED_PROVIDER_u-boot = "u-boot-megous"
#
#INITRAMFS_FSTYPES = "cpio.lz4.u-boot"
#KERNEL_IMAGETYPE = "Image.gz"
#PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "gcc-cross-${TARGET_ARCH}"
#PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "gcc-cross-${TARGET_ARCH}"
#PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}compilerlibs = "gcc-runtime"
#PREFERRED_PROVIDER_gdb = "gdb"
#PREFERRED_PROVIDER_virtual/${SDK_PREFIX}binutils ?= "binutils-crosssdk-${SDK_SYS}"
#PREFERRED_PROVIDER_virtual/${SDK_PREFIX}gcc = "gcc-crosssdk-${SDK_SYS}"
#PREFERRED_PROVIDER_virtual/${SDK_PREFIX}g++ = "gcc-crosssdk-${SDK_SYS}"
#PREFERRED_PROVIDER_virtual/${SDK_PREFIX}compilerlibs = "nativesdk-gcc-runtime"
# extra kernel CMDLINE_RNDIS option
# CMDLINE_RNDIS += " video=DPI-1:480x640,rotate=90 "

View File

@@ -9,12 +9,12 @@ KERNEL_DEVICETREE = "allwinner/sun50i-a64-pinephone-1.0.dtb \
allwinner/sun50i-a64-pinephone-1.2.dtb \
allwinner/sun50i-a64-pinephone-1.2b.dtb \
"
UBOOT_MACHINE = "pinephone_defconfig"
SPL_BINARY = "u-boot-sunxi-with-spl.bin"
# as for now neither graphics nor audio is supported
MACHINE_FEATURES:remove = "x11"
MACHINE_FEATURES:append = "bluetooth wifi"
MACHINE_FEATURES:append = "apm touchscreen keyboard rtc serial screen usbgadget usbhost pic phone vfat bluetooth wifi"
MACHINE_EXTRA_RRECOMMENDS = "pinephone-firmware"
MACHINE_EXTRA_RRECOMMENDS = "pinephone-firmware"
SERIAL_CONSOLES = "115200;ttyS0"

View File

@@ -8,10 +8,10 @@ SRCREV = "d3e71ead6ea5bc3555ac90a446efec84ef6c6122"
# v2.9
S = "${WORKDIR}/git"
S = "${UNPACKDIR}/git"
B = "${WORKDIR}/build"
COMPATIBLE_MACHINE = "(sun50i|sun50i-a64)"
COMPATIBLE_MACHINE = "(sun50i|sun50i-a64|pinephone)"
PLATFORM = "sun50i_a64"

View File

@@ -1,28 +1,23 @@
# default values
setenv load_addr "0x45000000"
setenv overlay_error "false"
setenv rootdev "/dev/mmcblk1p2"
setenv verbosity "1"
setenv rootfstype "ext4"
setenv console "both"
setenv bootlogo "false"
setenv overlay_prefix "sun50i-a64"
setenv recovery "false"
setenv recovery_image "recovery.initramfs"
# Print boot source
itest.b *0x10028 == 0x00 && echo "U-boot loaded from SD"
itest.b *0x10028 == 0x02 && echo "U-boot loaded from eMMC or secondary SD"
itest.b *0x10028 == 0x03 && echo "U-boot loaded from SPI"
setenv recovery_image "recovery-pinephone.cpio.lz4.u-boot"
setenv kernel = "Image.gz"
echo "Boot script loaded from ${devtype}"
if test -e ${devtype} ${devnum} diya-config.txt; then
load ${devtype} ${devnum} ${load_addr} diya-config.txt
env import -t ${load_addr} ${filesize}
echo "Loading environment variables from ${devtype} ${devnum} diya-config.txt"
load ${devtype} ${devnum} ${load_addr} diya-config.txt
env import -t ${load_addr} ${filesize}
fi
if test "${console}" = "display" || test "${console}" = "both"; then setenv consoleargs "console=ttyS0,115200 console=tty1"; fi
if test "${console}" = "display" || test "${console}" = "both"; then setenv consoleargs "console=ttyS0,115200 console=tty0"; fi
if test "${console}" = "serial"; then setenv consoleargs "console=ttyS0,115200"; fi
if test "${bootlogo}" = "true"; then
setenv consoleargs "splash plymouth.ignore-serial-consoles ${consoleargs}"
@@ -30,46 +25,42 @@ else
setenv consoleargs "splash=verbose ${consoleargs}"
fi
# get PARTUUID of first partition on SD/eMMC it was loaded from
# mmc 0 is always mapped to device u-boot (2016.09+) was loaded from
if test "${devtype}" = "mmc"; then part uuid mmc 0:1 partuuid; fi
# consoleblank=0 loglevel=${verbosity}
setenv bootargs "root=${rootdev} rootwait rootfstype=${rootfstype} ${consoleargs} ubootpart=${partuuid} usb-storage.quirks=${usbstoragequirks} ${extraargs} ${extraboardargs}"
echo "Loading kernel FDT from ${devtype} ${devnum} ${fdtfile}"
load ${devtype} ${devnum} ${fdt_addr_r} ${fdtfile}
fdt addr ${fdt_addr_r}
fdt resize 65536
for overlay_file in ${overlays}; do
if load ${devtype} ${devnum} ${load_addr} allwinner/overlay/${overlay_prefix}-${overlay_file}.dtbo; then
echo "Applying kernel provided DT overlay ${overlay_prefix}-${overlay_file}.dtbo"
fdt apply ${load_addr} || setenv overlay_error "true"
fi
if load ${devtype} ${devnum} ${load_addr} allwinner/overlay/${overlay_prefix}-${overlay_file}.dtbo; then
echo "Applying kernel provided DT overlay ${overlay_prefix}-${overlay_file}.dtbo"
fdt apply ${load_addr} || setenv overlay_error "true"
fi
done
if test "${overlay_error}" = "true"; then
echo "Error applying DT overlays, restoring original DT"
load ${devtype} ${devnum} ${fdt_addr_r} ${fdtfile}
echo "Error applying DT overlays, restoring original DT"
load ${devtype} ${devnum} ${fdt_addr_r} ${fdtfile}
fi
if test "${ethernet_phy}" = "rtl8211f"; then
fdt set /soc/ethernet@5020000 allwinner,rx-delay-ps <3100>
fdt set /soc/ethernet@5020000 allwinner,tx-delay-ps <700>
fi
if test "${ethernet_phy}" = "yt8531c"; then
fdt set /soc/ethernet@5020000 allwinner,rx-delay-ps <0>
fdt set /soc/ethernet@5020000 allwinner,tx-delay-ps <600>
fi
load ${devtype} ${devnum} ${kernel_addr_r} Image
if test "${recovery}" = "true"; then
load ${devtype} ${devnum} ${ramdisk_addr_r} ${recovery_image}
booti ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}
echo "Loading kernel from ${devtype} ${devnum} ${kernel_comp_addr_r} ${kernel}"
load ${devtype} ${devnum} ${kernel_addr_r} ${kernel}
setenv kernel_comp_size ${filesize}
if test -e ${devtype} ${devnum} enable-recovery-mode; then
echo "Booting Diya in recovery mode with ramdisk at ${devtype} ${devnum} ${ramdisk_addr_r} ${recovery_image}"
fatrm ${devtype} ${devnum} enable-recovery-mode
load ${devtype} ${devnum} ${ramdisk_addr_r} ${recovery_image}
setenv bootargs "root=ramfs rootwait ${consoleargs} ${extraargs} ${extraboardargs}"
booti ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}
else
booti ${kernel_addr_r} - ${fdt_addr_r}
# get PARTUUID of first partition on SD/eMMC it was loaded from
# mmc 0 is always mapped to device u-boot (2016.09+) was loaded from
if test "${devtype}" = "mmc"; then part uuid mmc 0:2 partuuid; fi
setenv rootfstype "ext4"
echo "Root dev PARTUUID is ${partuuid}"
setenv bootargs "root=PARTUUID=${partuuid} rootwait rootfstype=${rootfstype} ${consoleargs} ${extraargs} ${extraboardargs}"
echo "Booting Diya: ${bootargs}"
booti ${kernel_addr_r} - ${fdt_addr_r}
fi
# Recompile with:

View File

@@ -0,0 +1,74 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-pinephone-1.2"
CONFIG_SPL_DRIVERS_MISC=y
CONFIG_SPL=y
CONFIG_MACH_SUN50I=y
CONFIG_SUNXI_DRAM_LPDDR3_STOCK=y
CONFIG_DRAM_CLK=552
CONFIG_DRAM_ZQ=3881949
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
CONFIG_PINEPHONE_DT_SELECTION=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
# CONFIG_ANDROID_BOOT_IMAGE is not set
CONFIG_OF_LIST="sun50i-a64-pinephone-1.1 sun50i-a64-pinephone-1.2"
CONFIG_CMD_USB_SDP=y
CONFIG_CMD_USB_MASS_STORAGE=y
#
# Fastboot support
#
CONFIG_FASTBOOT=y
CONFIG_USB_FUNCTION_FASTBOOT=y
# CONFIG_UDP_FUNCTION_FASTBOOT is not set
# CONFIG_TCP_FUNCTION_FASTBOOT is not set
CONFIG_FASTBOOT_BUF_ADDR=0x42000000
CONFIG_FASTBOOT_BUF_SIZE=0x2000000
CONFIG_FASTBOOT_USB_DEV=0
CONFIG_FASTBOOT_FLASH=y
CONFIG_FASTBOOT_UUU_SUPPORT=y
CONFIG_FASTBOOT_FLASH_MMC=y
CONFIG_FASTBOOT_FLASH_MMC_DEV=1
CONFIG_FASTBOOT_MMC_BOOT_SUPPORT=y
CONFIG_FASTBOOT_MMC_BOOT1_NAME="mmc0boot0"
CONFIG_FASTBOOT_MMC_BOOT2_NAME="mmc0boot1"
CONFIG_FASTBOOT_MMC_USER_SUPPORT=y
CONFIG_FASTBOOT_MMC_USER_NAME="mmc0"
CONFIG_FASTBOOT_GPT_NAME="gpt"
CONFIG_FASTBOOT_MBR_NAME="mbr"
CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
CONFIG_FASTBOOT_OEM_RUN=y
CONFIG_FASTBOOT_OEM_BOARD=y
CONFIG_FIRMWARE=y
# CONFIG_SPL_FIRMWARE is not set
# CONFIG_USB_DWC2=y
# CONFIG_USB_DWC3=y
CONFIG_ARM_PSCI_FW=y
CONFIG_DM_USB_GADGET=y
CONFIG_USB_GADGET_DWC2_OTG=y
CONFIG_USB_GADGET=y
# CONFIG_USB_GADGET_DEBUG_FILES is not set
# CONFIG_USB_GADGET_DEBUG_FS is not set
CONFIG_USB_GADGET_VBUS_DRAW=2
CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
CONFIG_USB_OTG=y
CONFIG_USB_MUSB_HDRC=y
CONFIG_USB_MUSB_SUNXI=y
# CONFIG_USB_MUSB_HCD=y
# CONFIG_USB_MUSB_UDC=y
CONFIG_USB_MUSB_DUAL_ROLE=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_DUAL_ROLE=y
CONFIG_USB_DWC3_OF_SIMPLE=y
CONFIG_USB_DWC2=y
CONFIG_USB_DWC2_DUAL_ROLE=y
CONFIG_USB_BDC_UDC=y
CONFIG_LED_STATUS=y
CONFIG_LED_STATUS_GPIO=y
CONFIG_LED_STATUS0=y
CONFIG_LED_STATUS_BIT=114
CONFIG_LED_STATUS_STATE=2
CONFIG_LEGACY_IMAGE_FORMAT=y

View File

@@ -17,10 +17,12 @@ COMPATIBLE_MACHINE = "(sun50i|sun50i-a64|pinephone)"
DEFAULT_PREFERENCE:sun50i = "1"
DEFAULT_PREFERENCE:pinephone="1"
UBOOT_MACHINE = "pinephonefb_defconfig"
SRC_URI = " \
git://git.iohub.dev/dany/u-boot-megous.git;protocol=https;branch=megi-v2025.01 \
file://boot.cmd \
file://pinephonefb_defconfig \
"
PE = "1"
@@ -29,7 +31,7 @@ PV = "v2025.01+git${SRCPV}"
SRCREV = "${AUTOREV}"
S = "${WORKDIR}/git"
S = "${UNPACKDIR}/git"
PACKAGE_ARCH = "${MACHINE_ARCH}"
@@ -43,6 +45,10 @@ EXTRA_OEMAKE:append = " BL31=${DEPLOY_DIR_IMAGE}/bl31.bin SCP=/dev/null"
do_compile[depends] += "atf-50i-a64:do_install"
do_configure:prepend() {
cp ${UNPACKDIR}/pinephonefb_defconfig ${S}/configs/pinephonefb_defconfig
}
do_configure() {
oe_runmake ${UBOOT_MACHINE}
# oe_runmake -C ${S} O=${B} ${UBOOT_MACHINE} mrproper
@@ -51,6 +57,6 @@ do_configure() {
do_compile() {
oe_runmake
oe_runmake u-boot-initial-env
${B}/tools/mkimage -C none -A arm -T script -d ${WORKDIR}/boot.cmd ${WORKDIR}/${UBOOT_ENV_BINARY}
${B}/tools/mkimage -C none -A arm -T script -d ${UNPACKDIR}/boot.cmd ${S}/${UBOOT_ENV_BINARY}
}

View File

@@ -0,0 +1,20 @@
DESCRIPTION = "Diya session manager"
DEPENDS = "glib-2.0"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
SRC_URI += "git://git.iohub.dev/dany/eg25-manager.git;protocol=https;branch=master;tag=0.5.2"
# SRCREV = "${AUTOREV}"
PV = "0.5.2+git${SRCPV}"
S = "${UNPACKDIR}/git"
DEPENDS:append = " libgudev libgpiod libusb curl modemmanager "
inherit meson pkgconfig
inherit systemd
SYSTEMD_PACKAGES = "${PN}"
SYSTEMD_SERVICE:${PN} = "eg25-manager.service"
# FILES:${PN} = " "

View File

@@ -1,14 +1,56 @@
hostname = "diya"
do_install:append () {
cat << 'EOF' >> "${D}${sysconfdir}/profile"
export DISK="mmcblk1"
do_install:append:pinephone () {
install -d ${DEPLOY_DIR_IMAGE}
cat << EOF > ${DEPLOY_DIR_IMAGE}/diya-config.txt
recovery_image=recovery-${MACHINE}.cpio.lz4.u-boot
kernel=Image.gz
console=both
bootlogo=false
EOF
cat << EOF >> "${D}${sysconfdir}/modules"
sprdwl_ng
sprdbt_tty
bluetooth
hci_uart
rfcomm
cat << 'EOF' >> "${D}${sysconfdir}/profile"
export DISK="mmcblk0"
EOF
install -d ${D}${sysconfdir}/modules-load.d
cat << EOF >> "${D}${sysconfdir}/modules-load.d/diya.conf"
# option
# cfg80211
# bluetooth
# hci_uart
# rfcomm
# qmi_wwan
# usbnet
# usb_wwan
# usbserial
# mii
# snd_seq_dummy
# snd_hrtimer
# 842_decompress
# 842_compress
# zram
# crct10dif_ce
# polyval_ce
# 8723cs
# btbcm
# sm4
# gpio_vibra
# st_magn_spi
# st_sensors_spi
# sunxi_wdt
# snd_soc_ec25
# led_class_flash
# i2c_gpio
# ledtrig_pattern
# i2c_algo_bit
# ppkb_manager
# joydev
# sch_fq_codel
# crypto_user
# loop
# fuse
# nfnetlink
# ip_tables
# ipv6
# sun4i_lradc_keys
EOF
}

View File

@@ -1,2 +1,10 @@
# IMAGE_BOOT_FILES:append:pinephone = " boot.scr ${KERNEL_DEVICETREE} allwinner/overlay/sun50i-h616-fixup.scr "
IMAGE_INSTALL:append:pinephone = " pinephone-firmware "
IMAGE_BOOT_FILES:append:pinephone = " boot.scr ${KERNEL_DEVICETREE} diya-config.txt recovery-${MACHINE}.cpio.lz4.u-boot Image.gz "
OVERLAYFS_ETC_DEVICE = "/dev/mmcblk0p3"
IMAGE_INSTALL:append:pinephone = " \
pinephone-firmware \
eg25-manager \
modemmanager \
gpsd \
gps-utils \
diya-resizefs \
"

View File

@@ -1,7 +0,0 @@
image_patch:append () {
# create /etc/fstab
cat << EOF > ${IMAGE_ROOTFS}/etc/fstab
/dev/mmcblk1p1 /boot auto defaults 0 0
/dev/mmcblk1p4 /home auto defaults 0 0
EOF
}

View File

@@ -0,0 +1,20 @@
PACKAGE_INSTALL:append:pinephone = " \
kernel-module-musb-hdrc \
kernel-module-sunxi \
kernel-module-libcomposite \
kernel-module-usb-f-rndis \
kernel-module-usb-f-mass-storage \
kernel-module-usb-f-ecm \
kernel-module-usb-f-eem \
kernel-module-usb-f-serial \
kernel-module-usb-f-acm \
kernel-module-usb-f-hid \
kernel-module-usb-f-fs \
"
image_patch:append () {
# create /etc/fstab
cat << EOF > ${IMAGE_ROOTFS}/etc/fstab
/dev/mmcblk0p1 /boot auto defaults 0 0
/dev/mmcblk0p4 /home auto defaults 0 0
EOF
}

View File

@@ -0,0 +1,165 @@
From 4c9bb6e27dc39ffe26f3b92b63a14c1093ce74fd Mon Sep 17 00:00:00 2001
From: Clayton Craft <clayton@craftyguy.net>
Date: Wed, 16 Dec 2020 20:16:14 -0800
Subject: [PATCH 1/3] dts: pinephone: drop modem-power node
Upstream-Status: Pending
---
.../allwinner/sun50i-a64-pinephone-1.0.dts | 22 ---------------
.../allwinner/sun50i-a64-pinephone-1.1.dts | 27 +++----------------
.../allwinner/sun50i-a64-pinephone-1.2.dts | 27 +++----------------
.../dts/allwinner/sun50i-a64-pinephone.dtsi | 12 +++++++++
4 files changed, 20 insertions(+), 68 deletions(-)
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.0.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.0.dts
index 0530881d8..ebe6c8324 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.0.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.0.dts
@@ -87,28 +87,6 @@ &reg_drivevbus {
status = "okay";
};
-&uart3 {
- modem {
- compatible = "quectel,eg25";
- char-device-name = "modem-power";
-
- power-supply = <&reg_vbat_bb>; /* PL7 */
-
- enable-gpios = <&pio 7 8 GPIO_ACTIVE_LOW>; /* PH8 */
- reset-gpios = <&pio 2 4 GPIO_ACTIVE_HIGH>; /* PC4 */
- pwrkey-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */
-
- sleep-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */
- wakeup-gpios = <&pio 1 2 GPIO_ACTIVE_HIGH>; /* PB2-RI */
-
- cts-gpios = <&pio 3 5 GPIO_ACTIVE_HIGH>; /* PD5-CTS */
- dtr-gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6-DTR */
- rts-gpios = <&pio 3 4 GPIO_ACTIVE_HIGH>; /* PD4-RTS */
-
- quectel,qdai = "1,1,0,1,0,0,1,1";
- };
-};
-
&usbphy {
usb-role-switch;
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts
index 053e4add9..8bacee359 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts
@@ -96,34 +96,15 @@ &reg_drivevbus {
status = "okay";
};
+&ring_indicator {
+ gpios = <&pio 1 2 GPIO_ACTIVE_LOW>; /* PB2 */
+};
+
&sgm3140 {
enable-gpios = <&pio 3 24 GPIO_ACTIVE_HIGH>; /* PD24 */
flash-gpios = <&pio 2 3 GPIO_ACTIVE_HIGH>; /* PC3 */
};
-&uart3 {
- modem {
- compatible = "quectel,eg25";
- char-device-name = "modem-power";
-
- power-supply = <&reg_vbat_bb>; /* PL7 */
-
- enable-gpios = <&pio 7 8 GPIO_ACTIVE_LOW>; /* PH8 */
- reset-gpios = <&pio 2 4 GPIO_ACTIVE_HIGH>; /* PC4 */
- pwrkey-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */
- //status-pwrkey-multiplexed; /* status acts as pwrkey */
-
- sleep-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */
- wakeup-gpios = <&pio 1 2 GPIO_ACTIVE_HIGH>; /* PB2-RI */
-
- dtr-gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6-DTR */
- cts-gpios = <&pio 3 5 GPIO_ACTIVE_HIGH>; /* PD5-CTS */
- rts-gpios = <&pio 3 4 GPIO_ACTIVE_HIGH>; /* PD4-RTS */
-
- quectel,qdai = "1,1,0,1,0,0,1,1";
- };
-};
-
&usbphy {
usb-role-switch;
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts
index ec4927dfe..75d8735f6 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts
@@ -88,34 +88,15 @@ &reg_anx1v0 {
enable-active-high;
};
+&ring_indicator {
+ gpios = <&r_pio 0 6 GPIO_ACTIVE_LOW>; /* PL6 */
+};
+
&sgm3140 {
enable-gpios = <&pio 3 24 GPIO_ACTIVE_HIGH>; /* PD24 */
flash-gpios = <&pio 2 3 GPIO_ACTIVE_HIGH>; /* PC3 */
};
-&uart3 {
- modem {
- compatible = "quectel,eg25";
- char-device-name = "modem-power";
-
- power-supply = <&reg_vbat_bb>; /* PL7 */
-
- enable-gpios = <&pio 7 8 GPIO_ACTIVE_LOW>; /* PH8 */
- reset-gpios = <&pio 2 4 GPIO_ACTIVE_HIGH>; /* PC4 */
- status-gpios = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */
- pwrkey-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */
-
- host-ready-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */
- wakeup-gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6-RI */
-
- dtr-gpios = <&pio 1 2 GPIO_ACTIVE_HIGH>; /* PB2-DTR */
- cts-gpios = <&pio 3 5 GPIO_ACTIVE_HIGH>; /* PD5-CTS */
- rts-gpios = <&pio 3 4 GPIO_ACTIVE_HIGH>; /* PD4-RTS */
-
- quectel,qdai = "1,1,0,1,0,0,1,1";
- };
-};
-
&usbphy {
usb-role-switch;
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi
index 70a2c4ffb..862c45e81 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi
@@ -310,6 +310,17 @@ ec25_codec: ec25-codec {
sound-name-prefix = "Modem";
};
+ gpio-keys {
+ compatible = "gpio-keys";
+
+ ring_indicator: ring-indicator {
+ label = "Ring Indicator";
+ linux,can-disable;
+ linux,code = <KEY_WAKEUP>;
+ wakeup-source;
+ };
+ };
+
i2c_csi: i2c-csi {
compatible = "i2c-gpio";
sda-gpios = <&pio 4 13 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; /* PE13 */
@@ -382,6 +393,7 @@ reg_usb_5v: usb-5v {
reg_vbat_bb: vbat-bb {
compatible = "regulator-fixed";
regulator-name = "vbat-bb";
+ regulator-always-on;
regulator-min-microvolt = <3500000>;
regulator-max-microvolt = <3500000>;
gpio = <&r_pio 0 7 GPIO_ACTIVE_HIGH>; /* PL7 */
--
2.44.0

View File

@@ -3,8 +3,11 @@ From: Jernej Skrabec <jernej.skrabec@gmail.com>
Date: Sun, 9 May 2021 10:39:56 +0200
Subject: [PATCH 217/484] arm64: dts: allwinner: a64: Add hdmi sound card
A64 supports HDMI audio. Add a sound card node for it.
Upstream-Status: Pending
Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
---
arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 15 +++++++++++++++

View File

@@ -11,11 +11,11 @@ CONFIG_THREAD_INFO_IN_TASK=y
CONFIG_INIT_ENV_ARG_LIMIT=32
# CONFIG_COMPILE_TEST is not set
# CONFIG_WERROR is not set
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
CONFIG_LOCALVERSION="-diya"
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_BUILD_SALT=""
CONFIG_DEFAULT_INIT=""
CONFIG_DEFAULT_HOSTNAME="(none)"
CONFIG_DEFAULT_HOSTNAME="diya"
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_SYSVIPC_COMPAT=y
@@ -1823,25 +1823,27 @@ CONFIG_WLAN=y
# CONFIG_WLAN_VENDOR_ADMTEK is not set
# CONFIG_WLAN_VENDOR_ATH is not set
# CONFIG_WLAN_VENDOR_ATMEL is not set
# CONFIG_WLAN_VENDOR_BROADCOM is not set
CONFIG_WLAN_VENDOR_BROADCOM=y
# CONFIG_WLAN_VENDOR_INTEL is not set
# CONFIG_WLAN_VENDOR_INTERSIL is not set
# CONFIG_WLAN_VENDOR_MARVELL is not set
# CONFIG_WLAN_VENDOR_MEDIATEK is not set
CONFIG_WLAN_VENDOR_MEDIATEK=y
# CONFIG_WLAN_VENDOR_MICROCHIP is not set
# CONFIG_WLAN_VENDOR_PURELIFI is not set
# CONFIG_WLAN_VENDOR_RALINK is not set
# CONFIG_WLAN_VENDOR_REALTEK is not set
CONFIG_WLAN_VENDOR_REALTEK=y
# CONFIG_WLAN_VENDOR_RSI is not set
# CONFIG_WLAN_VENDOR_SILABS is not set
# CONFIG_WLAN_VENDOR_ST is not set
# CONFIG_WLAN_VENDOR_TI is not set
# CONFIG_WLAN_VENDOR_ZYDAS is not set
# CONFIG_WLAN_VENDOR_QUANTENNA is not set
# CONFIG_MAC80211_HWSIM is not set
# CONFIG_VIRT_WIFI is not set
CONFIG_WLAN_VENDOR_QUANTENNA=y
CONFIG_MAC80211_HWSIM=m
CONFIG_VIRT_WIFI=m
# CONFIG_WAN is not set
CONFIG_RTLWIFI=m
CONFIG_RTLWIFI_USB=m
CONFIG_RTLWIFI_DEBUG=y
#
# Wireless WAN
#
@@ -3946,7 +3948,7 @@ CONFIG_NOP_USB_XCEIV=m
CONFIG_USB_GADGET=m
# CONFIG_USB_GADGET_DEBUG_FILES is not set
# CONFIG_USB_GADGET_DEBUG_FS is not set
CONFIG_USB_GADGET_VBUS_DRAW=500
CONFIG_USB_GADGET_VBUS_DRAW=2
CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
CONFIG_U_SERIAL_CONSOLE=y
@@ -4413,6 +4415,9 @@ CONFIG_VIDEO_SUNXI_CEDRUS=m
# CONFIG_XIL_AXIS_FIFO is not set
# CONFIG_GPIB is not set
CONFIG_RTL8723CS=m
CONFIG_RTW88_8723X=m
CONFIG_RTW88_8723D=m
CONFIG_RTW88_8723DU=m
# CONFIG_GOLDFISH is not set
# CONFIG_CHROME_PLATFORMS is not set
# CONFIG_MELLANOX_PLATFORM is not set

View File

@@ -0,0 +1,30 @@
DESCRIPTION = "Linux Kernel for Pinephone"
SECTION = "kernel"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
SRCREV = "${AUTOREV}"
COMPATIBLE_MACHINE = "(sun50i|pinephone)"
LINUX_PINEPHONE_BRANCH ?= "orange-pi-6.12"
SRC_URI = " \
git://codeberg.org/megi/linux.git;branch=${LINUX_PINEPHONE_BRANCH};protocol=https \
file://defconfig \
file://0001-dts-pinephone-drop-modem-power-node.patch \
"
KBUILD_DEFCONFIG = "pinephone_diya_defconfig"
inherit kernel
require linux.inc
do_kernel_metadata:prepend() {
cp ${UNPACKDIR}/defconfig ${S}/arch/arm64/configs/pinephone_diya_defconfig
}

View File

@@ -0,0 +1,29 @@
DESCRIPTION = "Linux Kernel for Pinephone"
SECTION = "kernel"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
SRCREV = "${AUTOREV}"
COMPATIBLE_MACHINE = "(sun50i|pinephone)"
LINUX_PINEPHONE_BRANCH ?= "orange-pi-6.15"
SRC_URI = " \
git://codeberg.org/megi/linux.git;branch=${LINUX_PINEPHONE_BRANCH};protocol=https \
file://defconfig \
"
KBUILD_DEFCONFIG = "pinephone_diya_defconfig"
inherit kernel
require linux.inc
do_kernel_metadata:prepend() {
cp ${UNPACKDIR}/defconfig ${S}/arch/arm64/configs/pinephone_diya_defconfig
}

View File

@@ -1,48 +0,0 @@
DESCRIPTION = "Linux Kernel for Pinephone"
SECTION = "kernel"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
SRCREV_machine = "${AUTOREV}"
COMPATIBLE_MACHINE = "(sun50i)"
LINUX_PINEPHONE_BRANCH ?= "pp-6.15"
SRC_URI = " \
git://codeberg.org/megi/linux.git;name=machine;branch=${LINUX_PINEPHONE_BRANCH};protocol=https \
file://defconfig \
file://0217-arm64-dts-allwinner-a64-Add-hdmi-sound-card.patch \
"
# Pull in the devicetree files into the rootfs
RDEPENDS_${KERNEL_PACKAGE_NAME}-base += "kernel-devicetree"
KERNEL_EXTRA_ARGS += "LOADADDR=${UBOOT_ENTRYPOINT}"
inherit kernel
require linux.inc
LINUX_VERSION ?= "${PV}"
S = "${WORKDIR}/linux-${PV}"
do_deploy:append() {
install -d ${DEPLOY_DIR_IMAGE}
install -d ${DEPLOY_DIR_IMAGE}/allwinner
install -d ${DEPLOY_DIR_IMAGE}/allwinner/overlay
for file in ${KERNEL_DEVICETREE}; do
name=$(basename $file)
ext="${name##*.}"
if [ "$ext" = "dtb" ]; then
ln -sf ${DEPLOY_DIR_IMAGE}/${name} ${DEPLOY_DIR_IMAGE}/allwinner/${name}
else
ln -sf ${DEPLOY_DIR_IMAGE}/${name} ${DEPLOY_DIR_IMAGE}/allwinner/overlay/${name}
fi
done
# install -m 0755 ${S}/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-fixup.scr ${DEPLOY_DIR_IMAGE}/allwinner/overlay/
}
FILES_${KERNEL_PACKAGE_NAME}-base:append = " ${nonarch_base_libdir}/modules/${KERNEL_VERSION}/modules.builtin.modinfo"

View File

@@ -1,6 +1,5 @@
DESCRIPTION = "Linux Kernel"
SECTION = "kernel"
LICENSE = "GPLv2"
INC_PR = "r0"
@@ -23,6 +22,12 @@ LOGO_SIZE ?= '${@oe.utils.conditional("MACHINE_GUI_CLASS", "bigscreen", "vga", "
LOCALVERSION ?= ""
KCONFIG_MODE ?= "alldefconfig"
KMACHINE ?= "${MACHINE}"
# Pull in the devicetree files into the rootfs
RDEPENDS_${KERNEL_PACKAGE_NAME}-base += "kernel-devicetree u-boot"
KERNEL_EXTRA_ARGS += "LOADADDR=${UBOOT_ENTRYPOINT}"
LINUX_VERSION ?= "${PV}"
S = "${UNPACKDIR}/git"
#kernel_conf_variable CMDLINE "\"${CMDLINE} ${CMDLINE_DEBUG}\""
kernel_conf_variable() {
@@ -35,8 +40,8 @@ kernel_conf_variable() {
fi
}
do_kernel_configme[depends] += "virtual/${TARGET_PREFIX}binutils:do_populate_sysroot"
do_kernel_configme[depends] += "virtual/${TARGET_PREFIX}gcc:do_populate_sysroot"
do_kernel_configme[depends] += "virtual/cross-binutils:do_populate_sysroot"
do_kernel_configme[depends] += "gcc-cross-${TARGET_ARCH}:do_populate_sysroot"
do_kernel_configme[depends] += "bc-native:do_populate_sysroot bison-native:do_populate_sysroot"
do_configure:prepend() {
@@ -45,8 +50,8 @@ do_configure:prepend() {
#
# logo support, if you supply logo_linux_clut224.ppm in SRC_URI, then it's going to be used
#
if [ -e ${WORKDIR}/logo_linux_clut224.ppm ]; then
install -m 0644 ${WORKDIR}/logo_linux_clut224.ppm drivers/video/logo/logo_linux_clut224.ppm
if [ -e ${UNPACKDIR}/logo_linux_clut224.ppm ]; then
install -m 0644 ${UNPACKDIR}/logo_linux_clut224.ppm drivers/video/logo/logo_linux_clut224.ppm
kernel_conf_variable LOGO y
kernel_conf_variable LOGO_LINUX_CLUT224 y
fi
@@ -124,3 +129,21 @@ do_configure:append() {
fi
}
do_deploy:append() {
install -d ${DEPLOY_DIR_IMAGE}
install -d ${DEPLOY_DIR_IMAGE}/allwinner
install -d ${DEPLOY_DIR_IMAGE}/allwinner/overlay
for file in ${KERNEL_DEVICETREE}; do
name=$(basename $file)
ext="${name##*.}"
if [ "$ext" = "dtb" ]; then
ln -sf ${DEPLOY_DIR_IMAGE}/${name} ${DEPLOY_DIR_IMAGE}/allwinner/${name}
else
ln -sf ${DEPLOY_DIR_IMAGE}/${name} ${DEPLOY_DIR_IMAGE}/allwinner/overlay/${name}
fi
done
# install -m 0755 ${S}/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-fixup.scr ${DEPLOY_DIR_IMAGE}/allwinner/overlay/
}
FILES_${KERNEL_PACKAGE_NAME}-base:append = " ${nonarch_base_libdir}/modules/${KERNEL_VERSION}/modules.builtin.modinfo"

View File

@@ -2,7 +2,7 @@ DESCRIPTION = "UWE5622 Wifi firmware"
LICENSE = "CC0-1.0"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/${LICENSE};md5=0ceb3372c9595f0a8067e55da801e4a1"
S = "${WORKDIR}"
S = "${UNPACKDIR}"
COMPATIBLE_MACHINE = "pinephone"

View File

@@ -1,12 +1,8 @@
# short-description: Create Raspberry Pi SD card image
# long-description: Creates a partitioned SD card image for use with
part u-boot --source rawcopy --sourceparams="file=${SPL_BINARY}" --ondisk mmcblk1 --no-table --align 8
part /boot --source bootimg-partition --ondisk mmcblk1 --fstype=vfat --label boot --active --align 4096 --size 32
part u-boot --source rawcopy --sourceparams="file=${SPL_BINARY}" --ondisk mmcblk0 --no-table --align 8
part /boot --source bootimg-partition --ondisk mmcblk0 --fstype=vfat --label boot --active --align 4096 --fixed-size 128M
# read only roofs
part / --source rootfs --ondisk mmcblk1 --fstype=ext4 --label root --align 4096 --size 150 --exclude-path home/ --exclude-path var/etc/ --exclude-path boot/
part / --source rootfs --ondisk mmcblk0 --fstype=ext4 --label rootfs --align 4096 --fixed-size 1024M --exclude-path home/ --exclude-path var/etc/ --exclude-path boot/
# modifiable configurations stored in /var/etc
part /var/etc --source rootfs --rootfs-dir=${IMAGE_ROOTFS}/var/etc --ondisk mmcblk1 --fstype=ext4 --label diya --align 1024 --size 32
part /var/etc --source rootfs --rootfs-dir=${IMAGE_ROOTFS}/var/etc --ondisk mmcblk0 --fstype=ext4 --label diya --align 1024 --fixed-size 64M
# home partition
part /home --source rootfs --rootfs-dir=${IMAGE_ROOTFS}/home --ondisk mmcblk1 --fstype=ext4 --label home --align 1024 --size 16
# part /home --ondisk mmcblk1 --fstype=vfat --label music --active --align 1024 --size 16
part /home --source rootfs --rootfs-dir=${IMAGE_ROOTFS}/home --ondisk mmcblk0 --fstype=ext4 --label home --align 1024 --fixed-size 16M