REQUEST: Implement AXP20X + ANALOGIX ANX6345 drivers in linux-lts/edge for OLIMEX Teres-I
Context: I don't know how you manage your linux-lts/edge and i don't want to disrupt that so submitting it in this way.
These drivers are needed for OLIMEX Teres-I to work on Alpine and subsequently on postmarketOS without issues, currently the device fails to set voltages for the card and get a functional display
Card did not respond to voltage select! : -110
..after the u-boot phase (using u-boot that was previously tested with a working kernel to work without issues):
U-Boot SPL 2024.01 (Jan 18 2024 - 19:32:49 +0100)
DRAM: 2048 MiB
Trying to boot from MMC1
NOTICE: BL31: v2.10.0 (debug):
NOTICE: BL31: Built : 01:25:38, Dec 4 2023
NOTICE: BL31: Detected Allwinner A64/H64/R18 SoC (1689)
NOTICE: BL31: Found U-Boot DTB at 0x20a2d98, model: Olimex A64 Teres-I
INFO: ARM GICv2 driver initialized
INFO: Configuring SPC Controller
INFO: PMIC: Probing AXP803 on RSB
INFO: PMIC: aldo1 voltage: 2.800V
INFO: PMIC: dcdc1 voltage: 3.300V
INFO: PMIC: dcdc5 voltage: 1.500V
INFO: PMIC: dcdc6 voltage: 1.100V
INFO: PMIC: dldo1 voltage: 3.300V
INFO: PMIC: dldo2 voltage: 2.500V
INFO: PMIC: dldo3 voltage: 1.200V
INFO: PMIC: dldo4 voltage: 3.300V
INFO: PMIC: fldo1 voltage: 1.200V
INFO: PMIC: Enabling DC SW
INFO: BL31: Platform setup done
INFO: BL31: Initializing runtime services
INFO: BL31: cortex_a53: CPU workaround for erratum 843419 was applied
INFO: BL31: cortex_a53: CPU workaround for erratum 855873 was applied
INFO: BL31: cortex_a53: CPU workaround for erratum 1530924 was applied
INFO: PSCI: Suspend is unavailable
INFO: BL31: Preparing for EL3 exit to normal world
INFO: Entry point address = 0x4a000000
INFO: SPSR = 0x3c9
U-Boot 2024.01 (Jan 18 2024 - 19:32:49 +0100) Allwinner Technology
CPU: Allwinner A64 (SUN50I)
Model: Olimex A64 Teres-I
DRAM: 2 GiB
Core: 74 devices, 24 uclasses, devicetree: separate
WDT: Not starting watchdog@1c20ca0
MMC: mmc@1c0f000: 0, mmc@1c10000: 2, mmc@1c11000: 1
Loading Environment from FAT... Unable to read "uboot.env" from mmc0:1...
In: serial,usbkbd
Out: serial,vidconsole
Err: serial,vidconsole
Net: No ethernet found.
starting USB...
Bus usb@1c1b000: USB EHCI 1.00
scanning bus usb@1c1b000 for devices... EHCI timed out on TD - token=0x80008c80
4 USB Device(s) found
scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Card did not respond to voltage select! : -110
BootOrder not defined
EFI boot manager: Cannot load any image
Found EFI removable media binary efi/boot/bootaa64.efi
83456 bytes read in 6 ms (13.3 MiB/s)
Booting /efi\boot\bootaa64.efi
EFI stub: Decompressing Linux Kernel...
EFI stub: Loaded initrd from LINUX_EFI_INITRD_MEDIA_GUID device path
EFI stub: Using DTB from configuration table
EFI stub: Exiting boot services...
<<Unknown what it's doing, no serial console output and black screen on the device>>
Expected additions:
CONFIG_BATTERY_AXP20X=m # Battery Gauge
CONFIG_AXP20X_ADC=m # Battery
CONFIG_DRM_ANALOGIX_ANX6345=m # Display bridge drivers (important!)
# These should be automatically enabled
CONFIG_PINCTRL_AXP209=y
CONFIG_INPUT_AXP20X_PEK=y
Consider also CONFIG_PREEMPT_DYNAMIC
to enable the change of preemption model bcs e.g. teres prefers low-latency over the current desktop and CONFIG_EFI_ZBOOT
as it's supposed to speed up the boot (https://gitlab.com/postmarketOS/pmaports/-/merge_requests/4774#note_1748507441)
If you know of any missing configuration then feel free to propose additions e.g. I don't know what's needed to address INFO: PSCI: Suspend is unavailable
atm, but i assume it's the lack of crust firmware complied in the testing u-boot.
Blocks: https://gitlab.com/postmarketOS/pmaports/-/merge_requests/4743
CC @ncopa - The Linux-LTS/Edge Maintainer in Alpine Linux
CC @mps - The Device Maintainer in Alpine Linux