Files
pmaports-rtwo/device/testing/linux-postmarketos-qcom-sm8550/sm8550-motorola-rtwo.dts
T
snlavaiseandClaude Sonnet 5 35df152310 motorola-rtwo: rewrite .dts modelled on mainline Sony Xperia 1 V
Same SoC, working mainline port. Strip everything speculative:
 - no /memory node (Sony relies on the bootloader to inject it)
 - no qcom,msm-id / qcom,board-id (Sony's Qualcomm bootloader doesn't
   need them)
 - no reserved-memory / ramoops / framebuffer overrides
 - regulator tree copied verbatim from Sony, including the rails it
   deliberately omits with 'the board seems to crash on access' - our
   MTP-derived tree (with vdd-*-supply chains + bob2 + L4) may have been
   voting an RPMh rail that resets the SoC early.
Only the debug UART and USB HS-peripheral are enabled - enough for the
initramfs + USB networking. cmdline: console=ttyMSM0 (no earlycon).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QF5HebjUsRaxbW4cBX6HJP
2026-09-09 00:35:59 -03:00

389 lines
10 KiB
Devicetree

// SPDX-License-Identifier: BSD-3-Clause
/*
* Motorola Moto Edge 40 Pro (codename "rtwo"), SM8550 / Snapdragon 8 Gen 2
*
* MINIMAL bring-up DT, modelled on the mainline Sony Xperia 1 V
* (sm8550-sony-xperia-yodo-pdx234, same SoC, working mainline port):
* - no /memory, no qcom,msm-id, no reserved-memory overrides, no
* framebuffer - exactly like Sony (its Qualcomm bootloader injects
* memory and passes the DT straight through)
* - regulator tree copied VERBATIM from Sony, including the rails it
* deliberately omits ("the board seems to crash on access")
* - only the debug UART and USB (high-speed peripheral) are enabled,
* enough to reach the initramfs and bring up USB networking
*/
/dts-v1/;
#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";
};
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 {
regulators-0 {
compatible = "qcom,pm8550-rpmh-regulators";
qcom,pmic-id = "b";
pm8550_bob1: bob1 {
regulator-name = "pm8550_bob1";
regulator-min-microvolt = <3416000>;
regulator-max-microvolt = <3960000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
/* TODO: bob2 @ 2.704-3.008V doesn't fall into the vreg driver constraints */
pm8550_l1: ldo1 {
regulator-name = "pm8550_l1";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pm8550_l2: ldo2 {
regulator-name = "pm8550_l2";
regulator-min-microvolt = <3008000>;
regulator-max-microvolt = <3008000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
/* L4 exists in cmd-db, but the board seems to crash on access */
pm8550_l5: ldo5 {
regulator-name = "pm8550_l5";
regulator-min-microvolt = <3104000>;
regulator-max-microvolt = <3104000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pm8550_l6: ldo6 {
regulator-name = "pm8550_l6";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3008000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pm8550_l7: ldo7 {
regulator-name = "pm8550_l7";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3008000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pm8550_l8: ldo8 {
regulator-name = "pm8550_l8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3008000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pm8550_l9: ldo9 {
regulator-name = "pm8550_l9";
regulator-min-microvolt = <2960000>;
regulator-max-microvolt = <3008000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pm8550_l10: ldo10 {
regulator-name = "pm8550_l10";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pm8550_l11: ldo11 {
regulator-name = "pm8550_l11";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1504000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pm8550_l12: ldo12 {
regulator-name = "pm8550_l12";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pm8550_l13: ldo13 {
regulator-name = "pm8550_l13";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pm8550_l14: ldo14 {
regulator-name = "pm8550_l14";
regulator-min-microvolt = <3304000>;
regulator-max-microvolt = <3304000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pm8550_l15: ldo15 {
regulator-name = "pm8550_l15";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pm8550_l16: ldo16 {
regulator-name = "pm8550_l16";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pm8550_l17: ldo17 {
regulator-name = "pm8550_l17";
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";
pm8550vs_0_l1: ldo1 {
regulator-name = "pm8550vs_0_l1";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pm8550vs_0_l3: ldo3 {
regulator-name = "pm8550vs_0_l3";
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";
pm8550vs_1_l1: ldo1 {
regulator-name = "pm8550vs_1_l1";
regulator-min-microvolt = <880000>;
regulator-max-microvolt = <920000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
/* L3 exists in cmd-db, but the board seems to crash on access */
};
regulators-3 {
compatible = "qcom,pm8550vs-rpmh-regulators";
qcom,pmic-id = "e";
pm8550vs_2_s4: smps4 {
regulator-name = "pm8550vs_2_s4";
regulator-min-microvolt = <904000>;
regulator-max-microvolt = <984000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pm8550vs_2_s5: smps5 {
regulator-name = "pm8550vs_2_s5";
regulator-min-microvolt = <1010000>;
regulator-max-microvolt = <1120000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pm8550vs_2_l1: ldo1 {
regulator-name = "pm8550vs_2_l1";
regulator-min-microvolt = <880000>;
regulator-max-microvolt = <912000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pm8550vs_2_l2: ldo2 {
regulator-name = "pm8550vs_2_l2";
regulator-min-microvolt = <880000>;
regulator-max-microvolt = <968000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pm8550vs_2_l3: ldo3 {
regulator-name = "pm8550vs_2_l3";
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";
pm8550ve_s4: smps4 {
regulator-name = "pm8550ve_s4";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <700000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pm8550ve_l1: ldo1 {
regulator-name = "pm8550ve_l1";
regulator-min-microvolt = <912000>;
regulator-max-microvolt = <912000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pm8550ve_l2: ldo2 {
regulator-name = "pm8550ve_l2";
regulator-min-microvolt = <880000>;
regulator-max-microvolt = <912000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pm8550ve_l3: ldo3 {
regulator-name = "pm8550ve_l3";
regulator-min-microvolt = <912000>;
regulator-max-microvolt = <912000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
};
regulators-5 {
compatible = "qcom,pm8550vs-rpmh-regulators";
qcom,pmic-id = "g";
pm8550vs_3_s1: smps1 {
regulator-name = "pm8550vs_3_s1";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1300000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pm8550vs_3_s2: smps2 {
regulator-name = "pm8550vs_3_s2";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <1036000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pm8550vs_3_s3: smps3 {
regulator-name = "pm8550vs_3_s3";
regulator-min-microvolt = <300000>;
regulator-max-microvolt = <1004000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pm8550vs_3_s4: smps4 {
regulator-name = "pm8550vs_3_s4";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1352000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pm8550vs_3_s5: smps5 {
regulator-name = "pm8550vs_3_s5";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <1004000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pm8550vs_3_s6: smps6 {
regulator-name = "pm8550vs_3_s6";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <2000000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pm8550vs_3_l1: ldo1 {
regulator-name = "pm8550vs_3_l1";
regulator-min-microvolt = <1144000>;
regulator-max-microvolt = <1256000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pm8550vs_3_l2: ldo2 {
regulator-name = "pm8550vs_3_l2";
regulator-min-microvolt = <1104000>;
regulator-max-microvolt = <1200000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pm8550vs_3_l3: ldo3 {
regulator-name = "pm8550vs_3_l3";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
};
/* TODO: Unknown PMIC @ k, l, PM8010 @ m, n */
};
&pm8550b_eusb2_repeater {
vdd18-supply = <&pm8550_l15>;
vdd3-supply = <&pm8550_l5>;
};
/* GENI QUP0 wrapper: hosts the debug UART (SE7) */
&qupv3_id_0 {
status = "okay";
};
&uart7 {
status = "okay";
};
&usb_1 {
/* plain high-speed peripheral for the initramfs USB network - no
* type-C / pmic-glink / SuperSpeed */
dr_mode = "peripheral";
maximum-speed = "high-speed";
/delete-property/ usb-role-switch;
/delete-property/ phys;
/delete-property/ phy-names;
phys = <&usb_1_hsphy>;
phy-names = "usb2-phy";
status = "okay";
};
&usb_1_hsphy {
vdd-supply = <&pm8550vs_2_l1>;
vdda12-supply = <&pm8550vs_2_l3>;
phys = <&pm8550b_eusb2_repeater>;
status = "okay";
};
&xo_board {
clock-frequency = <76800000>;
};