Add a devicetree for the Nothing Phone (3a) smartphone, which is based
on the Milos/SM7635 SoC.
Supported functionality as of this initial submission:
* Camera flash/torch LED
* Debug UART
* Glyph LEDs (AW20036)
* PMIC-GLINK (Charger, Fuel gauge, USB-C mode switching)
* Assistant Key, Power Button, Volume Keys
* Regulators (PM7550, PM8550VS, PMR735B)
* Remoteprocs (ADSP, CDSP, MPSS, WPSS)
* USB (USB2 + FSA4480)
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Alexander Koskovich <akoskovich@pm.me>
---
arch/arm64/boot/dts/qcom/Makefile | 1 +
.../boot/dts/qcom/milos-nothing-asteroids.dts | 964 +++++++++++++++++++++
2 files changed, 965 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index f80b5d9cf1e8..bb7ac369682c 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -44,6 +44,7 @@ lemans-evk-el2-dtbs := lemans-evk.dtb lemans-el2.dtbo
dtb-$(CONFIG_ARCH_QCOM) += lemans-evk-el2.dtb
dtb-$(CONFIG_ARCH_QCOM) += milos-fairphone-fp6.dtb
+dtb-$(CONFIG_ARCH_QCOM) += milos-nothing-asteroids.dtb
dtb-$(CONFIG_ARCH_QCOM) += monaco-evk.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8216-samsung-fortuna3g.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8916-acer-a1-724.dtb
diff --git a/arch/arm64/boot/dts/qcom/milos-nothing-asteroids.dts b/arch/arm64/boot/dts/qcom/milos-nothing-asteroids.dts
new file mode 100644
index 000000000000..7393978926e4
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/milos-nothing-asteroids.dts
@@ -0,0 +1,964 @@
+// SPDX-License-Identifier: BSD-3-Clause
+
+/dts-v1/;
+
+#define PMIV0104_SID 7
+
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+
+#include "milos.dtsi"
+#include "pm7550.dtsi"
+#include "pm8550vs.dtsi"
+#include "pmiv0104.dtsi" /* PMIV0102 */
+#include "pmk8550.dtsi" /* PMK7635 */
+#include "pmr735b.dtsi"
+
+/ {
+ model = "Nothing Phone (3a)";
+ compatible = "nothing,asteroids", "qcom,milos";
+ chassis-type = "handset";
+
+ aliases {
+ serial0 = &uart5;
+ };
+
+ chosen {
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+
+ stdout-path = "serial0:115200n8";
+
+ framebuffer0: framebuffer@e3940000 {
+ compatible = "simple-framebuffer";
+ reg = <0x0 0xe3940000 0x0 (2392 * 1080 * 4)>;
+ width = <1080>;
+ height = <2392>;
+ stride = <(1080 * 4)>;
+ format = "a8r8g8b8";
+ panel = <&panel>;
+ interconnects = <&mmss_noc MASTER_MDP QCOM_ICC_TAG_ALWAYS
+ &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+ clocks = <&gcc GCC_DISP_HF_AXI_CLK>;
+
+ /* Dummy panel for simple-framebuffer dimension info */
+ panel: dummy-panel {
+ compatible = "boe,bf068mwm-td0";
+ height-mm = <157>;
+ width-mm = <71>;
+ };
+ };
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+
+ pinctrl-0 = <&assist_default>, <&volume_up_default>;
+ pinctrl-names = "default";
+
+ key-assist {
+ gpios = <&tlmm 71 GPIO_ACTIVE_LOW>;
+ label = "Assistant";
+ linux,code = <KEY_LEFTMETA>;
+ };
+
+ key-volume-up {
+ gpios = <&pm7550_gpios 6 GPIO_ACTIVE_LOW>;
+ label = "Volume Up";
+ linux,code = <KEY_VOLUMEUP>;
+ };
+ };
+
+ pmic-glink {
+ compatible = "qcom,milos-pmic-glink",
+ "qcom,sm8550-pmic-glink",
+ "qcom,pmic-glink";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ orientation-gpios = <&tlmm 131 GPIO_ACTIVE_HIGH>;
+
+ connector@0 {
+ compatible = "usb-c-connector";
+ reg = <0>;
+
+ data-role = "dual";
+ power-role = "dual";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ pmic_glink_hs_in: endpoint {
+ remote-endpoint = <&usb_1_dwc3_hs>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ pmic_glink_sbu: endpoint {
+ remote-endpoint = <&fsa4480_sbu_mux>;
+ };
+ };
+ };
+ };
+ };
+
+ vph_pwr: regulator-vph-pwr {
+ compatible = "regulator-fixed";
+ regulator-name = "vph_pwr";
+ regulator-min-microvolt = <3700000>;
+ regulator-max-microvolt = <3700000>;
+
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ reserved-memory {
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+
+ ramoops@81f20000 {
+ compatible = "ramoops";
+ reg = <0x0 0x81f20000 0x0 0x400000>;
+ console-size = <0x200000>;
+ mem-type = <2>;
+ pmsg-size = <0x200000>;
+ };
+
+ /*
+ * ABL is powering down display and controller if this node is
+ * not named exactly "splash_region".
+ */
+ splash_region@e3940000 {
+ reg = <0x0 0xe3940000 0x0 0x2b00000>;
+ no-map;
+ };
+ };
+};
+
+&apps_rsc {
+ regulators-0 {
+ compatible = "qcom,pm7550-rpmh-regulators";
+
+ vdd-l1-supply = <&vreg_s1b>;
+ vdd-l2-l3-supply = <&vreg_s3b>;
+ vdd-l4-l5-supply = <&vreg_s2b>;
+ vdd-l7-supply = <&vreg_s1b>;
+ vdd-l8-supply = <&vreg_s1b>;
+ vdd-l9-l10-supply = <&vreg_s1b>;
+ vdd-l11-supply = <&vreg_s1b>;
+ vdd-l12-l14-supply = <&vreg_bob>;
+ vdd-l13-l16-supply = <&vreg_bob>;
+ vdd-l15-l17-l18-l19-l20-l21-l22-l23-supply = <&vreg_bob>;
+ 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>;
+ vdd-bob-supply = <&vph_pwr>;
+
+ qcom,pmic-id = "b";
+
+ vreg_s1b: smps1 {
+ regulator-name = "vreg_s1b";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <2080000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s2b: smps2 {
+ regulator-name = "vreg_s2b";
+ regulator-min-microvolt = <1256000>;
+ regulator-max-microvolt = <1408000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s3b: smps3 {
+ regulator-name = "vreg_s3b";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <1040000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s4b: smps4 {
+ regulator-name = "vreg_s4b";
+ regulator-min-microvolt = <300000>;
+ regulator-max-microvolt = <1004000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l1b: ldo1 {
+ regulator-name = "vreg_l1b";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2b: ldo2 {
+ regulator-name = "vreg_l2b";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <912000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3b: ldo3 {
+ regulator-name = "vreg_l3b";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <912000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l4b: ldo4 {
+ regulator-name = "vreg_l4b";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l5b: ldo5 {
+ regulator-name = "vreg_l5b";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l7b: ldo7 {
+ regulator-name = "vreg_l7b";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l8b: ldo8 {
+ regulator-name = "vreg_l8b";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l9b: ldo9 {
+ regulator-name = "vreg_l9b";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l10b: ldo10 {
+ regulator-name = "vreg_l10b";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l11b: ldo11 {
+ regulator-name = "vreg_l11b";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l12b: ldo12 {
+ regulator-name = "vreg_l12b";
+ regulator-min-microvolt = <2952000>;
+ regulator-max-microvolt = <2952000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l13b: ldo13 {
+ regulator-name = "vreg_l13b";
+ regulator-min-microvolt = <2700000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l14b: ldo14 {
+ regulator-name = "vreg_l14b";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3304000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l15b: ldo15 {
+ regulator-name = "vreg_l15b";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3304000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l16b: ldo16 {
+ regulator-name = "vreg_l16b";
+ regulator-min-microvolt = <3008000>;
+ regulator-max-microvolt = <3008000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l17b: ldo17 {
+ regulator-name = "vreg_l17b";
+ regulator-min-microvolt = <3104000>;
+ regulator-max-microvolt = <3104000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l18b: ldo18 {
+ regulator-name = "vreg_l18b";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l19b: ldo19 {
+ regulator-name = "vreg_l19b";
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <3000000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l20b: ldo20 {
+ regulator-name = "vreg_l20b";
+ regulator-min-microvolt = <1620000>;
+ regulator-max-microvolt = <3544000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l21b: ldo21 {
+ regulator-name = "vreg_l21b";
+ regulator-min-microvolt = <1620000>;
+ regulator-max-microvolt = <3544000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l22b: ldo22 {
+ regulator-name = "vreg_l22b";
+ regulator-min-microvolt = <3200000>;
+ regulator-max-microvolt = <3200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l23b: ldo23 {
+ regulator-name = "vreg_l23b";
+ regulator-min-microvolt = <1650000>;
+ regulator-max-microvolt = <3544000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_bob: bob {
+ regulator-name = "vreg_bob";
+ regulator-min-microvolt = <3008000>;
+ regulator-max-microvolt = <3960000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-1 {
+ compatible = "qcom,pm8550vs-rpmh-regulators";
+
+ vdd-l1-supply = <&vreg_s3b>;
+ vdd-l2-supply = <&vreg_s3b>;
+ vdd-l3-supply = <&vreg_s3b>;
+ vdd-s3-supply = <&vph_pwr>;
+ vdd-s4-supply = <&vph_pwr>;
+ vdd-s5-supply = <&vph_pwr>;
+ vdd-s6-supply = <&vph_pwr>;
+
+ qcom,pmic-id = "c";
+
+ vreg_s3c: smps3 {
+ regulator-name = "vreg_s3c";
+ regulator-min-microvolt = <1010000>;
+ regulator-max-microvolt = <1120000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s4c: smps4 {
+ regulator-name = "vreg_s4c";
+ regulator-min-microvolt = <352000>;
+ regulator-max-microvolt = <812000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s5c: smps5 {
+ regulator-name = "vreg_s5c";
+ regulator-min-microvolt = <540000>;
+ regulator-max-microvolt = <884000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s6c: smps6 {
+ regulator-name = "vreg_s6c";
+ regulator-min-microvolt = <352000>;
+ regulator-max-microvolt = <904000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l1c: ldo1 {
+ regulator-name = "vreg_l1c";
+ regulator-min-microvolt = <320000>;
+ regulator-max-microvolt = <1004000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2c: ldo2 {
+ regulator-name = "vreg_l2c";
+ regulator-min-microvolt = <320000>;
+ regulator-max-microvolt = <650000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3c: ldo3 {
+ regulator-name = "vreg_l3c";
+ regulator-min-microvolt = <320000>;
+ regulator-max-microvolt = <912000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-2 {
+ compatible = "qcom,pmr735b-rpmh-regulators";
+
+ vdd-l1-l2-supply = <&vreg_s3b>;
+ vdd-l3-supply = <&vreg_s3b>;
+ vdd-l4-supply = <&vreg_s1b>;
+ vdd-l5-supply = <&vreg_s2b>;
+ vdd-l7-l8-supply = <&vreg_s2b>;
+ vdd-l9-supply = <&vreg_s3b>;
+ vdd-l10-supply = <&vreg_s1b>;
+ vdd-l11-supply = <&vreg_s3b>;
+ vdd-l12-supply = <&vreg_s3b>;
+
+ qcom,pmic-id = "f";
+
+ vreg_l1f: ldo1 {
+ regulator-name = "vreg_l1f";
+ regulator-min-microvolt = <852000>;
+ regulator-max-microvolt = <950000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2f: ldo2 {
+ regulator-name = "vreg_l2f";
+ regulator-min-microvolt = <751000>;
+ regulator-max-microvolt = <824000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3f: ldo3 {
+ regulator-name = "vreg_l3f";
+ regulator-min-microvolt = <650000>;
+ regulator-max-microvolt = <880000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l4f: ldo4 {
+ regulator-name = "vreg_l4f";
+ regulator-min-microvolt = <1700000>;
+ regulator-max-microvolt = <1950000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l5f: ldo5 {
+ regulator-name = "vreg_l5f";
+ regulator-min-microvolt = <1140000>;
+ regulator-max-microvolt = <1260000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l7f: ldo7 {
+ regulator-name = "vreg_l7f";
+ regulator-min-microvolt = <1080000>;
+ regulator-max-microvolt = <1350000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l9f: ldo9 {
+ regulator-name = "vreg_l9f";
+ regulator-min-microvolt = <870000>;
+ regulator-max-microvolt = <970000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l10f: ldo10 {
+ regulator-name = "vreg_l10f";
+ regulator-min-microvolt = <1500000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l11f: ldo11 {
+ regulator-name = "vreg_l11f";
+ regulator-min-microvolt = <320000>;
+ regulator-max-microvolt = <864000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l12f: ldo12 {
+ regulator-name = "vreg_l12f";
+ regulator-min-microvolt = <480000>;
+ regulator-max-microvolt = <884000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+};
+
+&dispcc {
+ /* Disable for now so simple-framebuffer continues working */
+ status = "disabled";
+};
+
+&gcc {
+ protected-clocks = <GCC_PCIE_1_AUX_CLK>, <GCC_PCIE_1_AUX_CLK_SRC>,
+ <GCC_PCIE_1_CFG_AHB_CLK>, <GCC_PCIE_1_MSTR_AXI_CLK>,
+ <GCC_PCIE_1_PHY_RCHNG_CLK>, <GCC_PCIE_1_PHY_RCHNG_CLK_SRC>,
+ <GCC_PCIE_1_PIPE_CLK>, <GCC_PCIE_1_PIPE_CLK_SRC>,
+ <GCC_PCIE_1_PIPE_DIV2_CLK>, <GCC_PCIE_1_PIPE_DIV2_CLK_SRC>,
+ <GCC_PCIE_1_SLV_AXI_CLK>, <GCC_PCIE_1_SLV_Q2A_AXI_CLK>;
+};
+
+&i2c7 {
+ clock-frequency = <400000>;
+
+ status = "okay";
+
+ led-controller@3a {
+ compatible = "awinic,aw20036";
+ reg = <0x3a>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ enable-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>;
+
+ led@0 {
+ reg = <0x0>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = "glyph-1";
+ function-enumerator = <0>;
+ led-max-microamp = <6560>;
+ };
+
+ led@1 {
+ reg = <0x1>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = "glyph-1";
+ function-enumerator = <1>;
+ led-max-microamp = <6560>;
+ };
+
+ led@2 {
+ reg = <0x2>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = "glyph-1";
+ function-enumerator = <2>;
+ led-max-microamp = <6560>;
+ };
+
+ led@3 {
+ reg = <0x3>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = "glyph-1";
+ function-enumerator = <3>;
+ led-max-microamp = <6560>;
+ };
+
+ led@4 {
+ reg = <0x4>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = "glyph-1";
+ function-enumerator = <4>;
+ led-max-microamp = <6560>;
+ };
+
+ led@5 {
+ reg = <0x5>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = "glyph-1";
+ function-enumerator = <5>;
+ led-max-microamp = <6560>;
+ };
+
+ led@6 {
+ reg = <0x6>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = "glyph-1";
+ function-enumerator = <6>;
+ led-max-microamp = <6560>;
+ };
+
+ led@7 {
+ reg = <0x7>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = "glyph-2";
+ function-enumerator = <0>;
+ led-max-microamp = <6560>;
+ };
+
+ led@8 {
+ reg = <0x8>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = "glyph-3";
+ function-enumerator = <0>;
+ led-max-microamp = <6560>;
+ };
+
+ led@9 {
+ reg = <0x9>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = "glyph-3";
+ function-enumerator = <1>;
+ led-max-microamp = <6560>;
+ };
+
+ led@a {
+ reg = <0xa>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = "glyph-3";
+ function-enumerator = <2>;
+ led-max-microamp = <6560>;
+ };
+
+ led@b {
+ reg = <0xb>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = "glyph-3";
+ function-enumerator = <3>;
+ led-max-microamp = <6560>;
+ };
+
+ led@c {
+ reg = <0xc>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = "glyph-1";
+ function-enumerator = <7>;
+ led-max-microamp = <6560>;
+ };
+
+ led@d {
+ reg = <0xd>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = "glyph-1";
+ function-enumerator = <8>;
+ led-max-microamp = <6560>;
+ };
+
+ led@e {
+ reg = <0xe>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = "glyph-1";
+ function-enumerator = <9>;
+ led-max-microamp = <6560>;
+ };
+
+ led@f {
+ reg = <0xf>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = "glyph-1";
+ function-enumerator = <10>;
+ led-max-microamp = <6560>;
+ };
+
+ led@10 {
+ reg = <0x10>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = "glyph-1";
+ function-enumerator = <11>;
+ led-max-microamp = <6560>;
+ };
+
+ led@11 {
+ reg = <0x11>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = "glyph-1";
+ function-enumerator = <12>;
+ led-max-microamp = <6560>;
+ };
+
+ led@12 {
+ reg = <0x12>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = "glyph-1";
+ function-enumerator = <13>;
+ led-max-microamp = <6560>;
+ };
+
+ led@13 {
+ reg = <0x13>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = "glyph-2";
+ function-enumerator = <1>;
+ led-max-microamp = <6560>;
+ };
+
+ led@14 {
+ reg = <0x14>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = "glyph-2";
+ function-enumerator = <2>;
+ led-max-microamp = <6560>;
+ };
+
+ led@15 {
+ reg = <0x15>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = "glyph-3";
+ function-enumerator = <4>;
+ led-max-microamp = <6560>;
+ };
+
+ led@16 {
+ reg = <0x16>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = "glyph-3";
+ function-enumerator = <5>;
+ led-max-microamp = <6560>;
+ };
+
+ led@17 {
+ reg = <0x17>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = "glyph-3";
+ function-enumerator = <6>;
+ led-max-microamp = <6560>;
+ };
+
+ led@18 {
+ reg = <0x18>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = "glyph-1";
+ function-enumerator = <14>;
+ led-max-microamp = <6560>;
+ };
+
+ led@19 {
+ reg = <0x19>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = "glyph-1";
+ function-enumerator = <15>;
+ led-max-microamp = <6560>;
+ };
+
+ led@1a {
+ reg = <0x1a>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = "glyph-1";
+ function-enumerator = <16>;
+ led-max-microamp = <6560>;
+ };
+
+ led@1b {
+ reg = <0x1b>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = "glyph-1";
+ function-enumerator = <17>;
+ led-max-microamp = <6560>;
+ };
+
+ led@1c {
+ reg = <0x1c>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = "glyph-1";
+ function-enumerator = <18>;
+ led-max-microamp = <6560>;
+ };
+
+ led@1d {
+ reg = <0x1d>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = "glyph-1";
+ function-enumerator = <19>;
+ led-max-microamp = <6560>;
+ };
+
+ led@1e {
+ reg = <0x1e>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = "glyph-2";
+ function-enumerator = <3>;
+ led-max-microamp = <6560>;
+ };
+
+ led@1f {
+ reg = <0x1f>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = "glyph-2";
+ function-enumerator = <4>;
+ led-max-microamp = <6560>;
+ };
+
+ led@20 {
+ reg = <0x20>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = "glyph-3";
+ function-enumerator = <7>;
+ led-max-microamp = <6560>;
+ };
+
+ led@21 {
+ reg = <0x21>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = "glyph-3";
+ function-enumerator = <8>;
+ led-max-microamp = <6560>;
+ };
+
+ led@22 {
+ reg = <0x22>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = "glyph-3";
+ function-enumerator = <9>;
+ led-max-microamp = <6560>;
+ };
+
+ led@23 {
+ reg = <0x23>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = "glyph-3";
+ function-enumerator = <10>;
+ led-max-microamp = <6560>;
+ };
+ };
+
+ typec-mux@42 {
+ compatible = "fcs,fsa4480";
+ reg = <0x42>;
+
+ vcc-supply = <&vph_pwr>;
+
+ mode-switch;
+ orientation-switch;
+
+ port {
+ fsa4480_sbu_mux: endpoint {
+ remote-endpoint = <&pmic_glink_sbu>;
+ };
+ };
+ };
+};
+
+&pm7550_flash {
+ status = "okay";
+
+ led-0 {
+ function = LED_FUNCTION_FLASH;
+ color = <LED_COLOR_ID_WHITE>;
+ led-sources = <1>, <4>;
+ led-max-microamp = <350000>;
+ flash-max-microamp = <1500000>;
+ flash-max-timeout-us = <400000>;
+ };
+};
+
+&pm7550_gpios {
+ volume_up_default: volume-up-default-state {
+ pins = "gpio6";
+ function = PMIC_GPIO_FUNC_NORMAL;
+ power-source = <1>;
+ bias-pull-up;
+ };
+};
+
+&pm8550vs_c {
+ status = "okay";
+};
+
+&pmiv0104_eusb2_repeater {
+ vdd18-supply = <&vreg_l7b>;
+ vdd3-supply = <&vreg_l17b>;
+
+ qcom,tune-res-fsdif = /bits/ 8 <0x5>;
+ qcom,tune-usb2-amplitude = /bits/ 8 <0x8>;
+ qcom,tune-usb2-disc-thres = /bits/ 8 <0x7>;
+ qcom,tune-usb2-preem = /bits/ 8 <0x6>;
+};
+
+&pon_pwrkey {
+ status = "okay";
+};
+
+&pon_resin {
+ linux,code = <KEY_VOLUMEDOWN>;
+
+ status = "okay";
+};
+
+&qupv3_id_0 {
+ status = "okay";
+};
+
+&qupv3_id_1 {
+ status = "okay";
+};
+
+&remoteproc_adsp {
+ firmware-name = "qcom/milos/nothing/asteroids/adsp.mbn",
+ "qcom/milos/nothing/asteroids/adsp_dtb.mbn";
+
+ status = "okay";
+};
+
+&remoteproc_cdsp {
+ firmware-name = "qcom/milos/nothing/asteroids/cdsp.mbn",
+ "qcom/milos/nothing/asteroids/cdsp_dtb.mbn";
+
+ status = "okay";
+};
+
+&remoteproc_mpss {
+ firmware-name = "qcom/milos/nothing/asteroids/modem.mbn";
+
+ status = "okay";
+};
+
+&remoteproc_wpss {
+ firmware-name = "qcom/milos/nothing/asteroids/wpss.mbn";
+
+ status = "okay";
+};
+
+&tlmm {
+ gpio-reserved-ranges = <13 1>, /* Display */
+ <63 2>; /* WLAN UART */
+
+ assist_default: assist-default-state {
+ pins = "gpio71";
+ function = "gpio";
+ bias-pull-up;
+ };
+};
+
+&trusted_apps_mem {
+ reg = <0x0 0xe9500000 0x0 0x5500000>;
+};
+
+/*
+ * UART_RX and UART_TX are routed to test points on board, not
+ * available over USB.
+ */
+&uart5 {
+ status = "okay";
+};
+
+&usb_1 {
+ /* USB 2.0 only, HW does not support USB 3.x */
+ qcom,select-utmi-as-pipe-clk;
+
+ status = "okay";
+};
+
+&usb_1_dwc3_hs {
+ remote-endpoint = <&pmic_glink_hs_in>;
+};
+
+&usb_1_hsphy {
+ vdd-supply = <&vreg_l2b>;
+ vdda12-supply = <&vreg_l4b>;
+
+ phys = <&pmiv0104_eusb2_repeater>;
+
+ status = "okay";
+};
--
2.53.0
© 2016 - 2026 Red Hat, Inc.