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
389 lines
10 KiB
Devicetree
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>;
|
|
};
|