From 0225230ce52d4dd2567ad0601f4dc1ed0842f892 Mon Sep 17 00:00:00 2001 From: Affe Null Date: Sun, 25 Jun 2023 20:17:01 +0200 Subject: [PATCH] nokia-weeknd: new device (Nokia 2780 Flip) (MR 4257) [ci:skip-vercheck] [ci:skip-build]: Already built successfully in CI --- .../00-nokia-weeknd-display.files | 2 + device/testing/device-nokia-weeknd/APKBUILD | 71 +++++++++++++++++++ device/testing/device-nokia-weeknd/deviceinfo | 37 ++++++++++ .../nokia,weeknd-gc9104-v2-panel.txt | 9 +++ .../nokia,weeknd-st7789vx2-yihua-panel.txt | 23 ++++++ device/testing/firmware-nokia-weeknd/APKBUILD | 27 +++++++ 6 files changed, 169 insertions(+) create mode 100644 device/testing/device-nokia-weeknd/00-nokia-weeknd-display.files create mode 100644 device/testing/device-nokia-weeknd/APKBUILD create mode 100644 device/testing/device-nokia-weeknd/deviceinfo create mode 100644 device/testing/device-nokia-weeknd/nokia,weeknd-gc9104-v2-panel.txt create mode 100644 device/testing/device-nokia-weeknd/nokia,weeknd-st7789vx2-yihua-panel.txt create mode 100644 device/testing/firmware-nokia-weeknd/APKBUILD diff --git a/device/testing/device-nokia-weeknd/00-nokia-weeknd-display.files b/device/testing/device-nokia-weeknd/00-nokia-weeknd-display.files new file mode 100644 index 000000000..04c5c60d7 --- /dev/null +++ b/device/testing/device-nokia-weeknd/00-nokia-weeknd-display.files @@ -0,0 +1,2 @@ +/lib/firmware/nokia,weeknd-st7789vx2-yihua-panel.bin +/lib/firmware/nokia,weeknd-gc9104-v2-panel.bin diff --git a/device/testing/device-nokia-weeknd/APKBUILD b/device/testing/device-nokia-weeknd/APKBUILD new file mode 100644 index 000000000..a0ee8e68b --- /dev/null +++ b/device/testing/device-nokia-weeknd/APKBUILD @@ -0,0 +1,71 @@ +# Reference: +pkgname=device-nokia-weeknd +pkgdesc="Nokia 2780 Flip" +pkgver=0.1 +pkgrel=0 +url="https://postmarketos.org" +license="GPL-2.0-only" +arch="aarch64" +options="!check !archcheck" +depends=" + linux-postmarketos-qcom-msm8917 + mkbootimg + postmarketos-base + soc-qcom-msm8909 + " +subpackages=" + $pkgname-modem + $pkgname-nonfree-firmware:nonfree_firmware + " +makedepends="devicepkg-dev mipi-dbi-cmd" +_panel="nokia,weeknd-st7789vx2-yihua-panel" +_panel2="nokia,weeknd-gc9104-v2-panel" +source=" + $_panel.txt + $_panel2.txt + 00-nokia-weeknd-display.files + deviceinfo + " + +build() { + devicepkg_build $startdir $pkgname + mkdir -p "$builddir" + mipi-dbi-cmd "$builddir"/"$_panel".bin \ + "$srcdir"/"$_panel".txt + mipi-dbi-cmd "$builddir"/"$_panel2".bin \ + "$srcdir"/"$_panel2".txt +} + +package() { + devicepkg_package $startdir $pkgname + # Package display init sequence + install -Dm644 "$builddir"/"$_panel".bin -t \ + "$pkgdir"/lib/firmware/ + install -Dm644 "$builddir"/"$_panel2".bin -t \ + "$pkgdir"/lib/firmware/ + install -Dm644 "$srcdir"/00-nokia-weeknd-display.files -t \ + "$pkgdir"/usr/share/mkinitfs/files/ +} + +nonfree_firmware() { + pkgdesc="GPU/WiFi/BT/Modem/Video firmware" + depends=" + firmware-qcom-adreno-a300 + msm-firmware-loader + firmware-nokia-weeknd-wcnss-nv + " + mkdir "$subpkgdir" +} + +modem() { + depends="qrtr rmtfs rmtfs-openrc msm-modem-uim-selection" + install_if="$pkgname=$pkgver-r$pkgrel $pkgname-nonfree-firmware" + mkdir "$subpkgdir" +} + +sha512sums=" +ef1456f2fb7da41af4f98f0004f6f69ae0a051b641d3a9a3d6057708d1aca682437c04c58954d3982be471c8973cff7a12ebe359d2f003071110ce5f5dc4b601 nokia,weeknd-st7789vx2-yihua-panel.txt +bdcff520b74e6247d9737554fcf9b4811d608495feba336345655e8fc41acf502b53bb14d380401c6e4ad1b143417e85d59ad2510f79b7888b4b2f8bd677a1fb nokia,weeknd-gc9104-v2-panel.txt +27c61aa53ce688fd8fbec632656842a94647a5438c0bf9769b5cd003742eacfe0f4d1bd30f5a5f255dd2cef863312f10a62b2b959192bf2ac4e575f812b94ec4 00-nokia-weeknd-display.files +f970defefe76eddfa3fbc1911e34f403ad726392aaa4681e6028b9b4e6878d526c09cbb9ca353234865f44d3d350f2cc407f5cb5c849d9f471fd4fe5f7f98a62 deviceinfo +" diff --git a/device/testing/device-nokia-weeknd/deviceinfo b/device/testing/device-nokia-weeknd/deviceinfo new file mode 100644 index 000000000..52fe3c527 --- /dev/null +++ b/device/testing/device-nokia-weeknd/deviceinfo @@ -0,0 +1,37 @@ +# Reference: +# Please use double quotes only. You can source this file in shell +# scripts. + +deviceinfo_format_version="0" +deviceinfo_name="Nokia 2780 Flip" +deviceinfo_manufacturer="Nokia" +deviceinfo_codename="nokia-weeknd" +deviceinfo_year="2022" +deviceinfo_dtb="qcom/qm215-nokia-weeknd" +deviceinfo_append_dtb="true" +deviceinfo_modules_initfs="panel-mipi-dbi pm8916-bms-vm pm8916-lbc" +deviceinfo_arch="aarch64" + +# Device related +deviceinfo_gpu_accelerated="true" +deviceinfo_chassis="handset" +deviceinfo_keyboard="true" +deviceinfo_external_storage="true" +deviceinfo_screen_width="240" +deviceinfo_screen_height="320" + +# Bootloader related +deviceinfo_flash_method="fastboot" +deviceinfo_kernel_cmdline="earlycon console=ttyMSM0,115200" +deviceinfo_generate_bootimg="true" +deviceinfo_bootimg_qcdt="false" +deviceinfo_bootimg_mtk_mkimage="false" +deviceinfo_bootimg_dtb_second="false" +deviceinfo_flash_pagesize="2048" +deviceinfo_header_version="0" +deviceinfo_flash_offset_base="0x80000000" +deviceinfo_flash_offset_kernel="0x00080000" +deviceinfo_flash_offset_ramdisk="0x03600000" +deviceinfo_flash_offset_second="0x00f00000" +deviceinfo_flash_offset_tags="0x03400000" +deviceinfo_flash_sparse="true" diff --git a/device/testing/device-nokia-weeknd/nokia,weeknd-gc9104-v2-panel.txt b/device/testing/device-nokia-weeknd/nokia,weeknd-gc9104-v2-panel.txt new file mode 100644 index 000000000..35169df72 --- /dev/null +++ b/device/testing/device-nokia-weeknd/nokia,weeknd-gc9104-v2-panel.txt @@ -0,0 +1,9 @@ +# very simple init sequence using standard commands only +# downstream uses something similar, but without the "invert" command for some reason +command 0x36 0xd8 # rotate +command 0x3a 0x05 # 16-bit pixel format +command 0x35 0x00 +command 0x21 # invert +command 0x11 # exit sleep mode +delay 120 +command 0x29 # display on diff --git a/device/testing/device-nokia-weeknd/nokia,weeknd-st7789vx2-yihua-panel.txt b/device/testing/device-nokia-weeknd/nokia,weeknd-st7789vx2-yihua-panel.txt new file mode 100644 index 000000000..01f194147 --- /dev/null +++ b/device/testing/device-nokia-weeknd/nokia,weeknd-st7789vx2-yihua-panel.txt @@ -0,0 +1,23 @@ +# Based on the downstream device tree, which is assumed to be: +# Copyright (c) 2017, 2020, The Linux Foundation. All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 and +# only version 2 as published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +command 0x11 # exit sleep mode +delay 120 +command 0x36 0x00 +command 0x3a 0x05 +command 0x35 0x00 +command 0xd0 0xa7 0xa1 +command 0xd0 0xa4 0xa1 +command 0x13 +command 0x38 +command 0x20 +command 0x29 # display on diff --git a/device/testing/firmware-nokia-weeknd/APKBUILD b/device/testing/firmware-nokia-weeknd/APKBUILD new file mode 100644 index 000000000..50c0296a3 --- /dev/null +++ b/device/testing/firmware-nokia-weeknd/APKBUILD @@ -0,0 +1,27 @@ +pkgname=firmware-nokia-weeknd +pkgver=00.2238.20.13 +pkgrel=0 +pkgdesc="Firmware for Nokia 2780 Flip" +url="https://storage.abscue.de/private/zImage/$pkgname-$pkgver" +arch="aarch64" +license="custom" +options="!check !strip !archcheck !tracedeps pmb:cross-native" +subpackages="$pkgname-wcnss-nv:wcnss_nv_package" +source="$url/$pkgname.tar.gz" + +_fwsrc="$srcdir/$pkgname" +_fwdir="/lib/firmware/postmarketos" + +package() { + mkdir -p "$pkgdir" +} + +wcnss_nv_package() { + pkgdesc="Nokia 2780 Flip WiFi/BT firmware configuration" + install -Dm644 "$_fwsrc"/wlan/prima/WCNSS_qcom_wlan_nv.bin -t \ + "$subpkgdir/$_fwdir"/wlan/prima/ +} + +sha512sums=" +62b24bb9dcb95ded8126e39eea364b88f0300a99b1439eeeb4ef6bb53bae58b909517586aaa2af0c97cdaa1797cca531a7d23365828c9cf4057491b159046c05 firmware-nokia-weeknd.tar.gz +" -- 2.51.2