device-motorola-rtwo: new device (Motorola Moto Edge 40 Pro), WIP
Bring-up for the Motorola Moto Edge 40 Pro (codename "rtwo", SM8550 / Snapdragon 8 Gen 2). New linux-postmarketos-qcom-sm8550 aport: - Built from the postmarketOS soc/qcom-sm8550 tree (branch bringup, 6.13-rc3, commit 22591bbc). - Kernel config is generated at build time from the in-tree upstream defconfig plus the repo's pmos.config and devices.config fragments. - Ships a WIP sm8550-motorola-rtwo.dts: SoC + PMICs + the sm8550-mtp regulator tree, UART7 debug console, USB in high-speed peripheral mode, UFS and SD card. Display panel, touchscreen, modem, WiFi/BT, GPU zap shader and reserved-memory carveouts still need to be described from Motorola's downstream sources. device-motorola-rtwo: - deviceinfo completed from bootimg analysis of the stock boot.img: Android boot header v4, 4096-byte pages, no qcdt, fastboot flashing. Added screen geometry, UFS sector size and a serial getty; framebuffer disabled until the panel works. - Depends on the new kernel, soc-qcom and mkbootimg. Both packages still need 'pmbootstrap checksum' for the kernel tarball and a real boot test; see the TODO comments in the APKBUILDs and the .dts. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QF5HebjUsRaxbW4cBX6HJP
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
# Reference: <https://postmarketos.org/devicepkg>
|
||||
maintainer="snlavaise <snlavaise@gmail.com>"
|
||||
pkgname=device-motorola-rtwo
|
||||
pkgver=1
|
||||
pkgrel=0
|
||||
pkgdesc="Motorola Moto Edge 40 Pro"
|
||||
url="https://postmarketos.org"
|
||||
arch="aarch64"
|
||||
license="MIT"
|
||||
depends="
|
||||
linux-postmarketos-qcom-sm8550
|
||||
mkbootimg
|
||||
postmarketos-base
|
||||
soc-qcom
|
||||
"
|
||||
makedepends="devicepkg-dev"
|
||||
source="
|
||||
deviceinfo
|
||||
modules-initfs
|
||||
"
|
||||
options="!archcheck !check"
|
||||
|
||||
# TODO (as hardware comes up):
|
||||
# - firmware-motorola-rtwo (WiFi/BT/modem/GPU blobs, generate from the
|
||||
# stock image with 'pmbootstrap ...' or extract manually)
|
||||
# - firmware-qcom-adreno-* for the Adreno 740 (GPU / mesa-vulkan-freedreno)
|
||||
# - make-dynpart-mappings once super partitions are mapped
|
||||
# - soc-qcom-modem, qbootctl (A/B slot handling) once booting
|
||||
|
||||
build() {
|
||||
devicepkg_build $startdir $pkgname
|
||||
}
|
||||
|
||||
package() {
|
||||
devicepkg_package $startdir $pkgname
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
2dee03e8320880337767f0f6523c2f85ba24940a4499ea6f470a7e1655e7c6e69122018daa03ddbba34b5302dc5f40ae48a7bcabfb9aedcfab10b112227e3052 deviceinfo
|
||||
977b5009bf750b3ff1419afc9ccb6a955f79c62f0bddd07af9f75a687a939eddda5c697b38a29ad8fea172693506dd353ce0b01bedd4dac72b105c060c343188 modules-initfs
|
||||
"
|
||||
@@ -0,0 +1,42 @@
|
||||
# Reference: <https://postmarketos.org/deviceinfo>
|
||||
# Please use double quotes only. You can source this file in shell
|
||||
# scripts.
|
||||
|
||||
deviceinfo_format_version="0"
|
||||
deviceinfo_name="Motorola Moto Edge 40 Pro"
|
||||
deviceinfo_manufacturer="Motorola"
|
||||
deviceinfo_codename="motorola-rtwo"
|
||||
deviceinfo_year="2023"
|
||||
deviceinfo_dtb="qcom/sm8550-motorola-rtwo"
|
||||
deviceinfo_append_dtb="true"
|
||||
deviceinfo_arch="aarch64"
|
||||
|
||||
# Device related
|
||||
deviceinfo_chassis="handset"
|
||||
deviceinfo_keyboard="false"
|
||||
deviceinfo_external_storage="true"
|
||||
deviceinfo_screen_width="1220"
|
||||
deviceinfo_screen_height="2712"
|
||||
deviceinfo_getty="ttyMSM0;115200"
|
||||
|
||||
# The panel is not described in the device tree yet, so there is no display
|
||||
# output. Flip this to "false" once mdss_dsi0 + a panel node work.
|
||||
deviceinfo_no_framebuffer="true"
|
||||
|
||||
# Bootloader related
|
||||
deviceinfo_flash_method="fastboot"
|
||||
deviceinfo_kernel_cmdline="console=ttyMSM0,115200n8 earlycon"
|
||||
deviceinfo_generate_bootimg="true"
|
||||
deviceinfo_bootimg_qcdt="false"
|
||||
deviceinfo_header_version="4"
|
||||
deviceinfo_flash_pagesize="4096"
|
||||
deviceinfo_flash_sparse="true"
|
||||
|
||||
# UFS storage
|
||||
deviceinfo_rootfs_image_sector_size="4096"
|
||||
|
||||
# A/B + dynamic (super) partitions. Fill in the 'super' block device once
|
||||
# known (from the initramfs debug shell:
|
||||
# ls -l /dev/disk/by-partlabel/super
|
||||
# ), then uncomment:
|
||||
# deviceinfo_super_partitions="/dev/sda1 /dev/sda1"
|
||||
@@ -0,0 +1,12 @@
|
||||
# Modules to include in the initramfs (one name per line, '#' = comment).
|
||||
# Needed for: USB networking + telnet debug-shell, and later FDE unlock
|
||||
# (touchscreen + panel).
|
||||
#
|
||||
# Most of the SM8550 USB gadget path is built-in with the postmarketOS
|
||||
# kernel config, so nothing is strictly required yet. Add modules here as
|
||||
# the port progresses, e.g.:
|
||||
#
|
||||
# phy-qcom-eusb2-repeater
|
||||
# phy-qcom-qmp-combo
|
||||
# panel-<vendor>-<name>
|
||||
# <touchscreen driver>
|
||||
@@ -0,0 +1,108 @@
|
||||
# Reference: <https://postmarketos.org/vendorkernel>
|
||||
# Kernel config based on: arch/arm64/configs/defconfig (+ pmos.config, devices.config)
|
||||
maintainer="snlavaise <snlavaise@gmail.com>"
|
||||
_flavor="postmarketos-qcom-sm8550"
|
||||
pkgname=linux-$_flavor
|
||||
pkgver=6.13_rc3
|
||||
pkgrel=0
|
||||
pkgdesc="Mainline kernel fork for Qualcomm SM8550 (Snapdragon 8 Gen 2) devices"
|
||||
arch="aarch64"
|
||||
_carch="arm64"
|
||||
url="https://gitlab.postmarketos.org/soc/qcom-sm8550/linux"
|
||||
license="GPL-2.0-only"
|
||||
options="
|
||||
!check
|
||||
!strip
|
||||
!tracedeps
|
||||
pmb:cross-native
|
||||
pmb:kconfigcheck-community
|
||||
pmb:kconfigcheck-uefi
|
||||
"
|
||||
makedepends="
|
||||
bash
|
||||
bison
|
||||
clang
|
||||
elfutils-dev
|
||||
findutils
|
||||
flex
|
||||
linux-headers
|
||||
lld
|
||||
llvm
|
||||
openssl-dev
|
||||
pahole
|
||||
perl
|
||||
postmarketos-installkernel
|
||||
python3
|
||||
zstd
|
||||
"
|
||||
|
||||
# Source: snapshot of the postmarketOS SM8550 bring-up tree (branch: bringup).
|
||||
# Bump _commit to move forward; then run 'pmbootstrap checksum linux-postmarketos-qcom-sm8550'.
|
||||
_commit="22591bbc21da5cc0c6e37503b77bd2d852fe241c"
|
||||
source="
|
||||
$pkgname-$_commit.tar.gz::https://gitlab.postmarketos.org/soc/qcom-sm8550/linux/-/archive/$_commit/linux-$_commit.tar.gz
|
||||
sm8550-motorola-rtwo.dts
|
||||
"
|
||||
builddir="$srcdir/linux-$_commit"
|
||||
|
||||
prepare() {
|
||||
default_prepare
|
||||
|
||||
# The Motorola rtwo (Moto Edge 40 Pro) device tree is not upstream yet, so
|
||||
# drop it into the tree and register it in the Makefile before configuring.
|
||||
local _dtsdir="$builddir/arch/$_carch/boot/dts/qcom"
|
||||
cp "$srcdir/sm8550-motorola-rtwo.dts" "$_dtsdir/sm8550-motorola-rtwo.dts"
|
||||
if ! grep -q "sm8550-motorola-rtwo.dtb" "$_dtsdir/Makefile"; then
|
||||
sed -i '/sm8550-mtp\.dtb/a dtb-$(CONFIG_ARCH_QCOM) += sm8550-motorola-rtwo.dtb' \
|
||||
"$_dtsdir/Makefile"
|
||||
fi
|
||||
|
||||
# Generate .config from the in-tree upstream defconfig plus the postmarketOS
|
||||
# and device config fragments shipped by the kernel repo.
|
||||
# To "freeze" this config: build once, copy "$builddir"/.config to
|
||||
# config-$_flavor.$CARCH, add it to source= and switch prepare() to a plain
|
||||
# 'cp "$srcdir/config-$_flavor.$CARCH" .config' (like the other qcom kernels).
|
||||
make ARCH="$_carch" LLVM=1 HOSTLDFLAGS="-fuse-ld=lld" \
|
||||
defconfig pmos.config devices.config
|
||||
}
|
||||
|
||||
build() {
|
||||
unset LDFLAGS
|
||||
make ARCH="$_carch" LLVM=1 HOSTLDFLAGS="-fuse-ld=lld" \
|
||||
KBUILD_BUILD_VERSION="$((pkgrel + 1))-$_flavor"
|
||||
}
|
||||
|
||||
package() {
|
||||
mkdir -p "$pkgdir"/boot
|
||||
|
||||
if [ -e "$builddir/arch/$_carch/boot/vmlinuz.efi" ]; then
|
||||
# ZBOOT EFI decompressor for EFI booting
|
||||
install -Dm644 "$builddir/arch/$_carch/boot/vmlinuz.efi" \
|
||||
"$pkgdir/boot/linux.efi"
|
||||
# gzip'd image for Android boot.img compatibility
|
||||
install -Dm644 "$builddir/arch/$_carch/boot/vmlinuz" \
|
||||
"$pkgdir/boot/vmlinuz"
|
||||
else
|
||||
echo "WARNING: CONFIG_EFI_ZBOOT not enabled!"
|
||||
install -Dm644 "$builddir/arch/$_carch/boot/Image.gz" \
|
||||
"$pkgdir/boot/vmlinuz"
|
||||
fi
|
||||
|
||||
make modules_install dtbs_install \
|
||||
ARCH="$_carch" \
|
||||
LLVM=1 \
|
||||
INSTALL_PATH="$pkgdir"/boot \
|
||||
INSTALL_MOD_PATH="$pkgdir"/usr \
|
||||
INSTALL_MOD_STRIP=1 \
|
||||
INSTALL_DTBS_PATH="$pkgdir"/boot/dtbs
|
||||
rm -f "$pkgdir"/usr/lib/modules/*/build "$pkgdir"/usr/lib/modules/*/source
|
||||
|
||||
install -D "$builddir"/include/config/kernel.release \
|
||||
"$pkgdir"/usr/share/kernel/"$_flavor"/kernel.release
|
||||
}
|
||||
|
||||
# The kernel tarball checksum is filled in by
|
||||
# 'pmbootstrap checksum linux-postmarketos-qcom-sm8550' (it downloads ~250 MB).
|
||||
sha512sums="
|
||||
ed1e3a57c30dff3f40026c2e318965fa7f62dfb0eef428ee0354341137bffde324f93cf5a500619e476e44ac616351ac9cafec6dc3ecefa69b68f24b9c94bbb2 sm8550-motorola-rtwo.dts
|
||||
"
|
||||
@@ -0,0 +1,456 @@
|
||||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
/*
|
||||
* Motorola Moto Edge 40 Pro / Razr 40 Ultra platform (codename "rtwo"), SM8550
|
||||
*
|
||||
* WIP bring-up device tree for postmarketOS. This is NOT a finished port:
|
||||
* - The regulator tree below is copied from sm8550-mtp.dts (the Qualcomm
|
||||
* reference design). Verify every rail against Motorola's downstream
|
||||
* (LineageOS: kernel/motorola/sm8550, arch/arm64/boot/dts/vendor/qcom/*rtwo*).
|
||||
* - reserved-memory / memory@ is left to the bootloader. If the board hangs
|
||||
* early, add the carveouts from the downstream DT (cont_splash, ramoops,
|
||||
* adsp/cdsp/mpss/... regions).
|
||||
* - Display panel, touchscreen, WiFi/BT, NFC, modem, charger/fuel-gauge,
|
||||
* haptics and the GPU zap shader still need to be described.
|
||||
*
|
||||
* Goal of this file as-is: reach the postmarketOS initramfs debug shell over
|
||||
* USB (and the UART if you have a cable), then iterate.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
|
||||
|
||||
#include "sm8550.dtsi"
|
||||
#include "pm8550.dtsi"
|
||||
#include "pm8550b.dtsi"
|
||||
#define PMK8550VE_SID 5
|
||||
#include "pm8550ve.dtsi"
|
||||
#include "pm8550vs.dtsi"
|
||||
#include "pmk8550.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Motorola Moto Edge 40 Pro";
|
||||
compatible = "motorola,rtwo", "qcom,sm8550";
|
||||
chassis-type = "handset";
|
||||
|
||||
aliases {
|
||||
serial0 = &uart7;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
|
||||
/*
|
||||
* TODO: a simple-framebuffer node pointing at the bootloader
|
||||
* framebuffer would give an early console on the panel. The
|
||||
* base address / geometry must come from the downstream DT or
|
||||
* from 'fastboot oem' / the LK log.
|
||||
*/
|
||||
};
|
||||
|
||||
vph_pwr: vph-pwr-regulator {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vph_pwr";
|
||||
regulator-min-microvolt = <3700000>;
|
||||
regulator-max-microvolt = <3700000>;
|
||||
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
};
|
||||
|
||||
&apps_rsc {
|
||||
/* Copied from sm8550-mtp.dts - VERIFY against Motorola downstream */
|
||||
regulators-0 {
|
||||
compatible = "qcom,pm8550-rpmh-regulators";
|
||||
qcom,pmic-id = "b";
|
||||
|
||||
vdd-bob1-supply = <&vph_pwr>;
|
||||
vdd-bob2-supply = <&vph_pwr>;
|
||||
vdd-l1-l4-l10-supply = <&vreg_s6g_1p8>;
|
||||
vdd-l2-l13-l14-supply = <&vreg_bob1>;
|
||||
vdd-l3-supply = <&vreg_s4g_1p3>;
|
||||
vdd-l5-l16-supply = <&vreg_bob1>;
|
||||
vdd-l6-l7-supply = <&vreg_bob1>;
|
||||
vdd-l8-l9-supply = <&vreg_bob1>;
|
||||
vdd-l11-supply = <&vreg_s4g_1p3>;
|
||||
vdd-l12-supply = <&vreg_s6g_1p8>;
|
||||
vdd-l15-supply = <&vreg_s6g_1p8>;
|
||||
vdd-l17-supply = <&vreg_bob2>;
|
||||
|
||||
vreg_bob1: bob1 {
|
||||
regulator-name = "vreg_bob1";
|
||||
regulator-min-microvolt = <3296000>;
|
||||
regulator-max-microvolt = <3960000>;
|
||||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
};
|
||||
|
||||
vreg_bob2: bob2 {
|
||||
regulator-name = "vreg_bob2";
|
||||
regulator-min-microvolt = <2720000>;
|
||||
regulator-max-microvolt = <3960000>;
|
||||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
};
|
||||
|
||||
vreg_l1b_1p8: ldo1 {
|
||||
regulator-name = "vreg_l1b_1p8";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
};
|
||||
|
||||
vreg_l2b_3p0: ldo2 {
|
||||
regulator-name = "vreg_l2b_3p0";
|
||||
regulator-min-microvolt = <3008000>;
|
||||
regulator-max-microvolt = <3008000>;
|
||||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
};
|
||||
|
||||
vreg_l5b_3p1: ldo5 {
|
||||
regulator-name = "vreg_l5b_3p1";
|
||||
regulator-min-microvolt = <3104000>;
|
||||
regulator-max-microvolt = <3104000>;
|
||||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
};
|
||||
|
||||
vreg_l6b_1p8: ldo6 {
|
||||
regulator-name = "vreg_l6b_1p8";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <3008000>;
|
||||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
};
|
||||
|
||||
vreg_l7b_1p8: ldo7 {
|
||||
regulator-name = "vreg_l7b_1p8";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <3008000>;
|
||||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
};
|
||||
|
||||
vreg_l8b_1p8: ldo8 {
|
||||
regulator-name = "vreg_l8b_1p8";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <3008000>;
|
||||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
};
|
||||
|
||||
vreg_l9b_2p9: ldo9 {
|
||||
regulator-name = "vreg_l9b_2p9";
|
||||
regulator-min-microvolt = <2960000>;
|
||||
regulator-max-microvolt = <3008000>;
|
||||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
};
|
||||
|
||||
vreg_l11b_1p2: ldo11 {
|
||||
regulator-name = "vreg_l11b_1p2";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <1504000>;
|
||||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
};
|
||||
|
||||
vreg_l12b_1p8: ldo12 {
|
||||
regulator-name = "vreg_l12b_1p8";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
};
|
||||
|
||||
vreg_l13b_3p0: ldo13 {
|
||||
regulator-name = "vreg_l13b_3p0";
|
||||
regulator-min-microvolt = <3000000>;
|
||||
regulator-max-microvolt = <3000000>;
|
||||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
};
|
||||
|
||||
vreg_l14b_3p2: ldo14 {
|
||||
regulator-name = "vreg_l14b_3p2";
|
||||
regulator-min-microvolt = <3200000>;
|
||||
regulator-max-microvolt = <3200000>;
|
||||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
};
|
||||
|
||||
vreg_l15b_1p8: ldo15 {
|
||||
regulator-name = "vreg_l15b_1p8";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
};
|
||||
|
||||
vreg_l16b_2p8: ldo16 {
|
||||
regulator-name = "vreg_l16b_2p8";
|
||||
regulator-min-microvolt = <2800000>;
|
||||
regulator-max-microvolt = <2800000>;
|
||||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
};
|
||||
|
||||
vreg_l17b_2p5: ldo17 {
|
||||
regulator-name = "vreg_l17b_2p5";
|
||||
regulator-min-microvolt = <2504000>;
|
||||
regulator-max-microvolt = <2504000>;
|
||||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
};
|
||||
};
|
||||
|
||||
regulators-1 {
|
||||
compatible = "qcom,pm8550vs-rpmh-regulators";
|
||||
qcom,pmic-id = "c";
|
||||
|
||||
vdd-l3-supply = <&vreg_s4e_0p9>;
|
||||
|
||||
vreg_l3c_0p91: ldo3 {
|
||||
regulator-name = "vreg_l3c_0p9";
|
||||
regulator-min-microvolt = <880000>;
|
||||
regulator-max-microvolt = <912000>;
|
||||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
};
|
||||
};
|
||||
|
||||
regulators-2 {
|
||||
compatible = "qcom,pm8550vs-rpmh-regulators";
|
||||
qcom,pmic-id = "d";
|
||||
|
||||
vdd-l1-supply = <&vreg_s4e_0p9>;
|
||||
|
||||
vreg_l1d_0p88: ldo1 {
|
||||
regulator-name = "vreg_l1d_0p88";
|
||||
regulator-min-microvolt = <880000>;
|
||||
regulator-max-microvolt = <920000>;
|
||||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
};
|
||||
};
|
||||
|
||||
regulators-3 {
|
||||
compatible = "qcom,pm8550vs-rpmh-regulators";
|
||||
qcom,pmic-id = "e";
|
||||
|
||||
vdd-l1-supply = <&vreg_s4e_0p9>;
|
||||
vdd-l2-supply = <&vreg_s4e_0p9>;
|
||||
vdd-l3-supply = <&vreg_s4g_1p3>;
|
||||
vdd-s4-supply = <&vph_pwr>;
|
||||
vdd-s5-supply = <&vph_pwr>;
|
||||
|
||||
vreg_s4e_0p9: smps4 {
|
||||
regulator-name = "vreg_s4e_0p9";
|
||||
regulator-min-microvolt = <904000>;
|
||||
regulator-max-microvolt = <984000>;
|
||||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
};
|
||||
|
||||
vreg_s5e_1p1: smps5 {
|
||||
regulator-name = "vreg_s5e_1p1";
|
||||
regulator-min-microvolt = <1080000>;
|
||||
regulator-max-microvolt = <1120000>;
|
||||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
};
|
||||
|
||||
vreg_l1e_0p88: ldo1 {
|
||||
regulator-name = "vreg_l1e_0p88";
|
||||
regulator-min-microvolt = <880000>;
|
||||
regulator-max-microvolt = <880000>;
|
||||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
};
|
||||
|
||||
vreg_l2e_0p9: ldo2 {
|
||||
regulator-name = "vreg_l2e_0p9";
|
||||
regulator-min-microvolt = <904000>;
|
||||
regulator-max-microvolt = <970000>;
|
||||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
};
|
||||
|
||||
vreg_l3e_1p2: ldo3 {
|
||||
regulator-name = "vreg_l3e_1p2";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <1200000>;
|
||||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
};
|
||||
};
|
||||
|
||||
regulators-4 {
|
||||
compatible = "qcom,pm8550ve-rpmh-regulators";
|
||||
qcom,pmic-id = "f";
|
||||
|
||||
vdd-l1-supply = <&vreg_s4e_0p9>;
|
||||
vdd-l2-supply = <&vreg_s4e_0p9>;
|
||||
vdd-l3-supply = <&vreg_s4e_0p9>;
|
||||
vdd-s4-supply = <&vph_pwr>;
|
||||
|
||||
vreg_s4f_0p5: smps4 {
|
||||
regulator-name = "vreg_s4f_0p5";
|
||||
regulator-min-microvolt = <500000>;
|
||||
regulator-max-microvolt = <700000>;
|
||||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
};
|
||||
|
||||
vreg_l1f_0p9: ldo1 {
|
||||
regulator-name = "vreg_l1f_0p9";
|
||||
regulator-min-microvolt = <912000>;
|
||||
regulator-max-microvolt = <912000>;
|
||||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
};
|
||||
|
||||
vreg_l2f_0p88: ldo2 {
|
||||
regulator-name = "vreg_l2f_0p88";
|
||||
regulator-min-microvolt = <880000>;
|
||||
regulator-max-microvolt = <912000>;
|
||||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
};
|
||||
|
||||
vreg_l3f_0p91: ldo3 {
|
||||
regulator-name = "vreg_l3f_0p91";
|
||||
regulator-min-microvolt = <880000>;
|
||||
regulator-max-microvolt = <912000>;
|
||||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
};
|
||||
};
|
||||
|
||||
regulators-5 {
|
||||
compatible = "qcom,pm8550vs-rpmh-regulators";
|
||||
qcom,pmic-id = "g";
|
||||
|
||||
vdd-l1-supply = <&vreg_s4g_1p3>;
|
||||
vdd-l2-supply = <&vreg_s4g_1p3>;
|
||||
vdd-l3-supply = <&vreg_s4g_1p3>;
|
||||
vdd-s1-supply = <&vph_pwr>;
|
||||
vdd-s2-supply = <&vph_pwr>;
|
||||
vdd-s3-supply = <&vph_pwr>;
|
||||
vdd-s4-supply = <&vph_pwr>;
|
||||
vdd-s5-supply = <&vph_pwr>;
|
||||
vdd-s6-supply = <&vph_pwr>;
|
||||
|
||||
vreg_s1g_1p2: smps1 {
|
||||
regulator-name = "vreg_s1g_1p2";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <1300000>;
|
||||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
};
|
||||
|
||||
vreg_s2g_0p8: smps2 {
|
||||
regulator-name = "vreg_s2g_0p8";
|
||||
regulator-min-microvolt = <800000>;
|
||||
regulator-max-microvolt = <1000000>;
|
||||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
};
|
||||
|
||||
vreg_s3g_0p7: smps3 {
|
||||
regulator-name = "vreg_s3g_0p7";
|
||||
regulator-min-microvolt = <300000>;
|
||||
regulator-max-microvolt = <1004000>;
|
||||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
};
|
||||
|
||||
vreg_s4g_1p3: smps4 {
|
||||
regulator-name = "vreg_s4g_1p3";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <1352000>;
|
||||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
};
|
||||
|
||||
vreg_s5g_0p8: smps5 {
|
||||
regulator-name = "vreg_s5g_0p8";
|
||||
regulator-min-microvolt = <500000>;
|
||||
regulator-max-microvolt = <1004000>;
|
||||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
};
|
||||
|
||||
vreg_s6g_1p8: smps6 {
|
||||
regulator-name = "vreg_s6g_1p8";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <2000000>;
|
||||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
};
|
||||
|
||||
vreg_l1g_1p2: ldo1 {
|
||||
regulator-name = "vreg_l1g_1p2";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <1200000>;
|
||||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
};
|
||||
|
||||
vreg_l2g_1p2: ldo2 {
|
||||
regulator-name = "vreg_l2g_1p2";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <1200000>;
|
||||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
};
|
||||
|
||||
vreg_l3g_1p2: ldo3 {
|
||||
regulator-name = "vreg_l3g_1p2";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <1200000>;
|
||||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&pm8550b_eusb2_repeater {
|
||||
vdd18-supply = <&vreg_l15b_1p8>;
|
||||
vdd3-supply = <&vreg_l5b_3p1>;
|
||||
};
|
||||
|
||||
/* GENI QUP wrapper that hosts the debug UART (uart7) */
|
||||
&qupv3_id_1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&sdhc_2 {
|
||||
vmmc-supply = <&vreg_l9b_2p9>;
|
||||
vqmmc-supply = <&vreg_l8b_1p8>;
|
||||
bus-width = <4>;
|
||||
no-sdio;
|
||||
no-mmc;
|
||||
/* TODO: card-detect gpio from downstream DT */
|
||||
broken-cd;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&sleep_clk {
|
||||
clock-frequency = <32000>;
|
||||
};
|
||||
|
||||
&uart7 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ufs_mem_hc {
|
||||
reset-gpios = <&tlmm 210 GPIO_ACTIVE_LOW>;
|
||||
vcc-supply = <&vreg_l17b_2p5>;
|
||||
vcc-max-microamp = <1300000>;
|
||||
vccq-supply = <&vreg_l1g_1p2>;
|
||||
vccq-max-microamp = <1200000>;
|
||||
vdd-hba-supply = <&vreg_l3g_1p2>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ufs_mem_phy {
|
||||
vdda-phy-supply = <&vreg_l1d_0p88>;
|
||||
vdda-pll-supply = <&vreg_l3e_1p2>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb_1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb_1_dwc3 {
|
||||
/* peripheral-only is safest for bring-up (USB networking in initramfs) */
|
||||
dr_mode = "peripheral";
|
||||
maximum-speed = "high-speed";
|
||||
};
|
||||
|
||||
&usb_1_hsphy {
|
||||
vdd-supply = <&vreg_l1e_0p88>;
|
||||
vdda12-supply = <&vreg_l3e_1p2>;
|
||||
phys = <&pm8550b_eusb2_repeater>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/*
|
||||
* The USB3/DP combo PHY is left disabled for now; high-speed gadget mode is
|
||||
* enough for the initramfs debug shell. Enable &usb_dp_qmpphy and drop
|
||||
* "maximum-speed" above once SuperSpeed / DisplayPort is needed.
|
||||
*/
|
||||
|
||||
&xo_board {
|
||||
clock-frequency = <76800000>;
|
||||
};
|
||||
Reference in New Issue
Block a user