diff --git a/projects/ROCKNIX/bootloader/dtb.xml b/projects/ROCKNIX/bootloader/dtb.xml index d56ce3fd4f..128e0dac74 100644 --- a/projects/ROCKNIX/bootloader/dtb.xml +++ b/projects/ROCKNIX/bootloader/dtb.xml @@ -89,6 +89,7 @@ qcs8550-ayn-odin2mini qcs8550-ayaneo-pocketace qcs8550-ayaneo-pocketdmg + qcs8550-ayaneo-pocketds qcs8550-ayaneo-pocketevo diff --git a/projects/ROCKNIX/devices/SM8550/bootloader/LinuxLoader.cfg b/projects/ROCKNIX/devices/SM8550/bootloader/LinuxLoader.cfg index f5e8238411..7d2f8f8994 100644 --- a/projects/ROCKNIX/devices/SM8550/bootloader/LinuxLoader.cfg +++ b/projects/ROCKNIX/devices/SM8550/bootloader/LinuxLoader.cfg @@ -14,4 +14,5 @@ devicetree = "/boot/u-boot-odin2.dtb" #devicetree = "/boot/u-boot-pocket-ace.dtb" #devicetree = "/boot/u-boot-pocket-dmg.dtb" #devicetree = "/boot/u-boot-pocket-evo.dtb" +#devicetree = "/boot/u-boot-pocket-ds.dtb" cmdline = "nodtbo" diff --git a/projects/ROCKNIX/devices/SM8550/packages/u-boot/package.mk b/projects/ROCKNIX/devices/SM8550/packages/u-boot/package.mk index ae4038766f..0316376ee7 100644 --- a/projects/ROCKNIX/devices/SM8550/packages/u-boot/package.mk +++ b/projects/ROCKNIX/devices/SM8550/packages/u-boot/package.mk @@ -28,6 +28,7 @@ make_target() { DEBUG=${PKG_DEBUG} CROSS_COMPILE="${TARGET_KERNEL_PREFIX}" LDFLAGS="" ARCH=arm _python_sysroot="${TOOLCHAIN}" _python_prefix=/ _python_exec_prefix=/ make DEVICE_TREE=qcom/qcs8550-ayaneo-pocket-ace HOSTCC="${HOST_CC}" HOSTCFLAGS="-I${TOOLCHAIN}/include" HOSTLDFLAGS="${HOST_LDFLAGS}" CONFIG_MKIMAGE_DTC_PATH="scripts/dtc/dtc" DEBUG=${PKG_DEBUG} CROSS_COMPILE="${TARGET_KERNEL_PREFIX}" LDFLAGS="" ARCH=arm _python_sysroot="${TOOLCHAIN}" _python_prefix=/ _python_exec_prefix=/ make DEVICE_TREE=qcom/qcs8550-ayaneo-pocket-dmg HOSTCC="${HOST_CC}" HOSTCFLAGS="-I${TOOLCHAIN}/include" HOSTLDFLAGS="${HOST_LDFLAGS}" CONFIG_MKIMAGE_DTC_PATH="scripts/dtc/dtc" DEBUG=${PKG_DEBUG} CROSS_COMPILE="${TARGET_KERNEL_PREFIX}" LDFLAGS="" ARCH=arm _python_sysroot="${TOOLCHAIN}" _python_prefix=/ _python_exec_prefix=/ make DEVICE_TREE=qcom/qcs8550-ayaneo-pocket-evo HOSTCC="${HOST_CC}" HOSTCFLAGS="-I${TOOLCHAIN}/include" HOSTLDFLAGS="${HOST_LDFLAGS}" CONFIG_MKIMAGE_DTC_PATH="scripts/dtc/dtc" + DEBUG=${PKG_DEBUG} CROSS_COMPILE="${TARGET_KERNEL_PREFIX}" LDFLAGS="" ARCH=arm _python_sysroot="${TOOLCHAIN}" _python_prefix=/ _python_exec_prefix=/ make DEVICE_TREE=qcom/qcs8550-ayaneo-pocket-ds HOSTCC="${HOST_CC}" HOSTCFLAGS="-I${TOOLCHAIN}/include" HOSTLDFLAGS="${HOST_LDFLAGS}" CONFIG_MKIMAGE_DTC_PATH="scripts/dtc/dtc" } makeinstall_target() { @@ -41,4 +42,5 @@ makeinstall_target() { cp -av dts/upstream/src/arm64/qcom/qcs8550-ayaneo-pocket-ace.dtb ${INSTALL}/usr/share/bootloader/boot/u-boot-pocket-ace.dtb cp -av dts/upstream/src/arm64/qcom/qcs8550-ayaneo-pocket-dmg.dtb ${INSTALL}/usr/share/bootloader/boot/u-boot-pocket-dmg.dtb cp -av dts/upstream/src/arm64/qcom/qcs8550-ayaneo-pocket-evo.dtb ${INSTALL}/usr/share/bootloader/boot/u-boot-pocket-evo.dtb + cp -av dts/upstream/src/arm64/qcom/qcs8550-ayaneo-pocket-ds.dtb ${INSTALL}/usr/share/bootloader/boot/u-boot-pocket-ds.dtb } diff --git a/projects/ROCKNIX/devices/SM8550/packages/u-boot/patches/0014-Add-AYANEO-Pocket-DS-Device-Tree.patch b/projects/ROCKNIX/devices/SM8550/packages/u-boot/patches/0014-Add-AYANEO-Pocket-DS-Device-Tree.patch new file mode 100644 index 0000000000..e47f5ff017 --- /dev/null +++ b/projects/ROCKNIX/devices/SM8550/packages/u-boot/patches/0014-Add-AYANEO-Pocket-DS-Device-Tree.patch @@ -0,0 +1,660 @@ +diff -rupbN u-boot.orig/dts/upstream/src/arm64/qcom/qcs8550-ayaneo-pocket-ds.dts u-boot/dts/upstream/src/arm64/qcom/qcs8550-ayaneo-pocket-ds.dts +--- u-boot.orig/dts/upstream/src/arm64/qcom/qcs8550-ayaneo-pocket-ds.dts 1970-01-01 00:00:00.000000000 +0000 ++++ u-boot/dts/upstream/src/arm64/qcom/qcs8550-ayaneo-pocket-ds.dts 2025-08-28 21:12:17.047424292 +0000 +@@ -0,0 +1,656 @@ ++// SPDX-License-Identifier: BSD-3-Clause ++/* ++ * Copyright (c) 2025, Teguh Sobirin. ++ */ ++/dts-v1/; ++ ++#include ++#include ++#include "qcs8550.dtsi" ++#include "pm8550.dtsi" ++#include "pm8550b.dtsi" ++#define PMK8550VE_SID 5 ++#include "pm8550ve.dtsi" ++#include "pm8550vs.dtsi" ++#include "pmk8550.dtsi" ++ ++/delete-node/ &aop_image_mem; ++/delete-node/ &aop_config_mem; ++/delete-node/ &camera_mem; ++/delete-node/ &ipa_fw_mem; ++/delete-node/ &ipa_gsi_mem; ++/delete-node/ &mpss_dsm_mem; ++/delete-node/ &mpss_mem; ++/delete-node/ &q6_mpss_dtb_mem; ++ ++/delete-node/ &cci0; ++/delete-node/ &cci1; ++/delete-node/ &cci2; ++/delete-node/ &camcc; ++/delete-node/ &remoteproc_mpss; ++ ++/ { ++ model = "AYANEO Pocket DS"; ++ compatible = "ayaneo,pocketds", "qcom,qcs8550", "qcom,sm8550"; ++ ++ chassis-type = "handset"; ++ ++ aliases { ++ serial0 = &uart7; ++ }; ++ ++ chosen { ++ stdout-path = "serial0:115200n8"; ++ ++ #address-cells = <2>; ++ #size-cells = <2>; ++ ranges; ++ ++ framebuffer: framebuffer@b8000000 { ++ compatible = "simple-framebuffer"; ++ reg = <0x0 0xb8000000 0x0 0x2b00000>; ++ width = <1080>; ++ height = <1920>; ++ stride = <(1080 * 4)>; ++ format = "a8r8g8b8"; ++ rot = <1>; ++ }; ++ }; ++ ++ gpio-keys { ++ compatible = "gpio-keys"; ++ ++ pinctrl-0 = <&volume_up_n>; ++ pinctrl-names = "default"; ++ ++ key-volume-up { ++ label = "Volume Up"; ++ debounce-interval = <15>; ++ gpios = <&pm8550_gpios 6 GPIO_ACTIVE_LOW>; ++ linux,code = ; ++ linux,can-disable; ++ wakeup-source; ++ }; ++ }; ++ ++ pmic-glink { ++ compatible = "qcom,sm8550-pmic-glink", "qcom,pmic-glink"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ orientation-gpios = <&tlmm 11 GPIO_ACTIVE_HIGH>; ++ ++ connector@0 { ++ compatible = "usb-c-connector"; ++ reg = <0>; ++ power-role = "dual"; ++ data-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_ss_in: endpoint { ++ remote-endpoint = <&redriver_ss_out>; ++ }; ++ }; ++ }; ++ }; ++ }; ++ ++ 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 { ++ splash_region@b8000000 { ++ reg = <0x0 0xb8000000 0x0 0x2b00000>; ++ no-map; ++ }; ++ }; ++}; ++ ++&apps_rsc { ++ 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_1p86>; ++ vdd-l2-l13-l14-supply = <&vreg_bob1>; ++ vdd-l3-supply = <&vreg_s4g_1p25>; ++ vdd-l5-l16-supply = <&vreg_bob1>; ++ vdd-l6-l7-supply = <&vreg_bob1>; ++ vdd-l8-l9-supply = <&vreg_bob1>; ++ vdd-l11-supply = <&vreg_s4g_1p25>; ++ vdd-l12-supply = <&vreg_s6g_1p86>; ++ vdd-l15-supply = <&vreg_s6g_1p86>; ++ vdd-l17-supply = <&vreg_bob2>; ++ ++ vreg_bob1: bob1 { ++ regulator-name = "vreg_bob1"; ++ regulator-min-microvolt = <3296000>; ++ regulator-max-microvolt = <3960000>; ++ regulator-initial-mode = ; ++ }; ++ ++ vreg_bob2: bob2 { ++ regulator-name = "vreg_bob2"; ++ regulator-min-microvolt = <2720000>; ++ regulator-max-microvolt = <3960000>; ++ regulator-initial-mode = ; ++ }; ++ ++ vreg_l1b_1p8: ldo1 { ++ regulator-name = "vreg_l1b_1p8"; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ regulator-initial-mode = ; ++ }; ++ ++ vreg_l2b_3p0: ldo2 { ++ regulator-name = "vreg_l2b_3p0"; ++ regulator-min-microvolt = <3008000>; ++ regulator-max-microvolt = <3008000>; ++ regulator-initial-mode = ; ++ }; ++ ++ vreg_l5b_3p1: ldo5 { ++ regulator-name = "vreg_l5b_3p1"; ++ regulator-min-microvolt = <3104000>; ++ regulator-max-microvolt = <3104000>; ++ regulator-initial-mode = ; ++ }; ++ ++ vreg_l6b_1p8: ldo6 { ++ regulator-name = "vreg_l6b_1p8"; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <3008000>; ++ regulator-initial-mode = ; ++ }; ++ ++ vreg_l7b_1p8: ldo7 { ++ regulator-name = "vreg_l7b_1p8"; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <3008000>; ++ regulator-initial-mode = ; ++ }; ++ ++ vreg_l8b_1p8: ldo8 { ++ regulator-name = "vreg_l8b_1p8"; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <3008000>; ++ regulator-initial-mode = ; ++ }; ++ ++ vreg_l9b_2p9: ldo9 { ++ regulator-name = "vreg_l9b_2p9"; ++ regulator-min-microvolt = <2960000>; ++ regulator-max-microvolt = <3008000>; ++ regulator-initial-mode = ; ++ }; ++ ++ vreg_l11b_1p2: ldo11 { ++ regulator-name = "vreg_l11b_1p2"; ++ regulator-min-microvolt = <1200000>; ++ regulator-max-microvolt = <1504000>; ++ regulator-initial-mode = ; ++ }; ++ ++ vreg_l12b_1p8: ldo12 { ++ regulator-name = "vreg_l12b_1p8"; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ regulator-initial-mode = ; ++ }; ++ ++ vreg_l13b_3p0: ldo13 { ++ regulator-name = "vreg_l13b_3p0"; ++ regulator-min-microvolt = <3000000>; ++ regulator-max-microvolt = <3000000>; ++ regulator-initial-mode = ; ++ }; ++ ++ vreg_l14b_3p2: ldo14 { ++ regulator-name = "vreg_l14b_3p2"; ++ regulator-min-microvolt = <3200000>; ++ regulator-max-microvolt = <3200000>; ++ regulator-initial-mode = ; ++ }; ++ ++ vreg_l15b_1p8: ldo15 { ++ regulator-name = "vreg_l15b_1p8"; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ regulator-initial-mode = ; ++ }; ++ ++ vreg_l16b_2p8: ldo16 { ++ regulator-name = "vreg_l16b_2p8"; ++ regulator-min-microvolt = <2800000>; ++ regulator-max-microvolt = <2800000>; ++ regulator-initial-mode = ; ++ }; ++ ++ vreg_l17b_2p5: ldo17 { ++ regulator-name = "vreg_l17b_2p5"; ++ regulator-min-microvolt = <2504000>; ++ regulator-max-microvolt = <2504000>; ++ regulator-initial-mode = ; ++ }; ++ }; ++ ++ regulators-1 { ++ compatible = "qcom,pm8550vs-rpmh-regulators"; ++ qcom,pmic-id = "c"; ++ ++ vdd-l1-supply = <&vreg_s4g_1p25>; ++ vdd-l2-supply = <&vreg_s4e_0p95>; ++ vdd-l3-supply = <&vreg_s4e_0p95>; ++ ++ vreg_l3c_0p9: ldo3 { ++ regulator-name = "vreg_l3c_0p9"; ++ regulator-min-microvolt = <880000>; ++ regulator-max-microvolt = <912000>; ++ regulator-initial-mode = ; ++ }; ++ }; ++ ++ regulators-2 { ++ compatible = "qcom,pm8550vs-rpmh-regulators"; ++ qcom,pmic-id = "d"; ++ ++ vdd-l1-supply = <&vreg_s4e_0p95>; ++ vdd-l2-supply = <&vreg_s4e_0p95>; ++ vdd-l3-supply = <&vreg_s4e_0p95>; ++ ++ vreg_l1d_0p88: ldo1 { ++ regulator-name = "vreg_l1d_0p88"; ++ regulator-min-microvolt = <880000>; ++ regulator-max-microvolt = <920000>; ++ regulator-initial-mode = ; ++ }; ++ }; ++ ++ regulators-3 { ++ compatible = "qcom,pm8550vs-rpmh-regulators"; ++ qcom,pmic-id = "e"; ++ ++ vdd-l1-supply = <&vreg_s4e_0p95>; ++ vdd-l2-supply = <&vreg_s4e_0p95>; ++ vdd-l3-supply = <&vreg_s4g_1p25>; ++ vdd-s4-supply = <&vph_pwr>; ++ vdd-s5-supply = <&vph_pwr>; ++ ++ vreg_s4e_0p95: smps4 { ++ regulator-name = "vreg_s4e_0p95"; ++ regulator-min-microvolt = <904000>; ++ regulator-max-microvolt = <984000>; ++ regulator-initial-mode = ; ++ }; ++ ++ vreg_s5e_1p08: smps5 { ++ regulator-name = "vreg_s5e_1p08"; ++ regulator-min-microvolt = <1010000>; ++ regulator-max-microvolt = <1120000>; ++ regulator-initial-mode = ; ++ }; ++ ++ vreg_l1e_0p88: ldo1 { ++ regulator-name = "vreg_l1e_0p88"; ++ regulator-min-microvolt = <880000>; ++ regulator-max-microvolt = <912000>; ++ regulator-initial-mode = ; ++ }; ++ ++ vreg_l2e_0p9: ldo2 { ++ regulator-name = "vreg_l2e_0p9"; ++ regulator-min-microvolt = <870000>; ++ regulator-max-microvolt = <970000>; ++ regulator-initial-mode = ; ++ }; ++ ++ vreg_l3e_1p2: ldo3 { ++ regulator-name = "vreg_l3e_1p2"; ++ regulator-min-microvolt = <1200000>; ++ regulator-max-microvolt = <1200000>; ++ regulator-initial-mode = ; ++ }; ++ }; ++ ++ regulators-4 { ++ compatible = "qcom,pm8550ve-rpmh-regulators"; ++ qcom,pmic-id = "f"; ++ ++ vdd-l1-supply = <&vreg_s4e_0p95>; ++ vdd-l2-supply = <&vreg_s4e_0p95>; ++ vdd-l3-supply = <&vreg_s4e_0p95>; ++ vdd-s4-supply = <&vph_pwr>; ++ ++ vreg_s4f_0p5: smps4 { ++ regulator-name = "vreg_s4f_0p5"; ++ regulator-min-microvolt = <300000>; ++ regulator-max-microvolt = <700000>; ++ regulator-initial-mode = ; ++ }; ++ ++ vreg_l1f_0p9: ldo1 { ++ regulator-name = "vreg_l1f_0p9"; ++ regulator-min-microvolt = <880000>; ++ regulator-max-microvolt = <912000>; ++ regulator-initial-mode = ; ++ }; ++ ++ vreg_l2f_0p88: ldo2 { ++ regulator-name = "vreg_l2f_0p88"; ++ regulator-min-microvolt = <880000>; ++ regulator-max-microvolt = <912000>; ++ regulator-initial-mode = ; ++ }; ++ ++ vreg_l3f_0p88: ldo3 { ++ regulator-name = "vreg_l3f_0p88"; ++ regulator-min-microvolt = <880000>; ++ regulator-max-microvolt = <912000>; ++ regulator-initial-mode = ; ++ }; ++ }; ++ ++ regulators-5 { ++ compatible = "qcom,pm8550vs-rpmh-regulators"; ++ qcom,pmic-id = "g"; ++ vdd-l1-supply = <&vreg_s4g_1p25>; ++ vdd-l2-supply = <&vreg_s4g_1p25>; ++ vdd-l3-supply = <&vreg_s4g_1p25>; ++ 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_1p25: smps1 { ++ regulator-name = "vreg_s1g_1p25"; ++ regulator-min-microvolt = <1200000>; ++ regulator-max-microvolt = <1300000>; ++ regulator-initial-mode = ; ++ }; ++ ++ vreg_s2g_0p85: smps2 { ++ regulator-name = "vreg_s2g_0p85"; ++ regulator-min-microvolt = <500000>; ++ regulator-max-microvolt = <1036000>; ++ regulator-initial-mode = ; ++ }; ++ ++ vreg_s3g_0p8: smps3 { ++ regulator-name = "vreg_s3g_0p8"; ++ regulator-min-microvolt = <300000>; ++ regulator-max-microvolt = <1004000>; ++ regulator-initial-mode = ; ++ }; ++ ++ vreg_s4g_1p25: smps4 { ++ regulator-name = "vreg_s4g_1p25"; ++ regulator-min-microvolt = <1256000>; ++ regulator-max-microvolt = <1408000>; ++ regulator-initial-mode = ; ++ }; ++ ++ vreg_s5g_0p85: smps5 { ++ regulator-name = "vreg_s5g_0p85"; ++ regulator-min-microvolt = <500000>; ++ regulator-max-microvolt = <1004000>; ++ regulator-initial-mode = ; ++ }; ++ ++ vreg_s6g_1p86: smps6 { ++ regulator-name = "vreg_s6g_1p86"; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <2000000>; ++ regulator-initial-mode = ; ++ }; ++ ++ vreg_l1g_1p2: ldo1 { ++ regulator-name = "vreg_l1g_1p2"; ++ regulator-min-microvolt = <1128000>; ++ regulator-max-microvolt = <1272000>; ++ regulator-initial-mode = ; ++ }; ++ ++ vreg_l2g_1p2: ldo2 { ++ regulator-name = "vreg_l2g_1p2"; ++ regulator-min-microvolt = <1100000>; ++ regulator-max-microvolt = <1200000>; ++ regulator-initial-mode = ; ++ }; ++ ++ vreg_l3g_1p2: ldo3 { ++ regulator-name = "vreg_l3g_1p2"; ++ regulator-min-microvolt = <1200000>; ++ regulator-max-microvolt = <1200000>; ++ regulator-initial-mode = ; ++ }; ++ }; ++}; ++ ++&i2c_master_hub_0 { ++ status = "okay"; ++}; ++ ++&i2c_hub_2 { ++ status = "okay"; ++ ++ typec-retimer@1c { ++ compatible = "onnn,nb7vpq904m"; ++ reg = <0x1c>; ++ vcc-supply = <&vreg_l15b_1p8>; ++ ++ retimer-switch; ++ orientation-switch; ++ ++ ports { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ port@0 { ++ reg = <0>; ++ ++ redriver_ss_out: endpoint { ++ remote-endpoint = <&pmic_glink_ss_in>; ++ }; ++ }; ++ ++ port@1 { ++ reg = <1>; ++ ++ redriver_ss_in: endpoint { ++ data-lanes = <3 2 1 0>; ++ remote-endpoint = <&usb_dp_qmpphy_out>; ++ }; ++ }; ++ }; ++ }; ++}; ++ ++&gpi_dma1 { ++ status = "okay"; ++}; ++ ++&gpi_dma2 { ++ status = "okay"; ++}; ++ ++&pcie0 { ++ perst-gpios = <&tlmm 94 GPIO_ACTIVE_LOW>; ++ wake-gpios = <&tlmm 96 GPIO_ACTIVE_HIGH>; ++ max-link-speed = <2>; ++ ++ pinctrl-0 = <&pcie0_default_state>; ++ pinctrl-names = "default"; ++ ++ status = "okay"; ++}; ++ ++&pcie0_phy { ++ vdda-phy-supply = <&vreg_l1e_0p88>; ++ vdda-pll-supply = <&vreg_l3e_1p2>; ++ ++ status = "okay"; ++}; ++ ++&pm8550_gpios { ++ sdc2_card_det_n: sdc2-card-det-n-state { ++ pins = "gpio12"; ++ function = "normal"; ++ input-enable; ++ output-disable; ++ bias-pull-up; ++ power-source = <1>; /* 1.8 V */ ++ }; ++ ++ volume_up_n: volume-up-n-state { ++ pins = "gpio6"; ++ function = "normal"; ++ power-source = <1>; ++ bias-pull-up; ++ input-enable; ++ }; ++}; ++ ++&pm8550b_eusb2_repeater { ++ vdd18-supply = <&vreg_l15b_1p8>; ++ vdd3-supply = <&vreg_l5b_3p1>; ++}; ++ ++&pon_pwrkey { ++ status = "okay"; ++}; ++ ++&pon_resin { ++ linux,code = ; ++ ++ status = "okay"; ++}; ++ ++&qupv3_id_0 { ++ status = "okay"; ++}; ++ ++&qupv3_id_1 { ++ status = "okay"; ++}; ++ ++&sdhc_2 { ++ cd-gpios = <&pm8550_gpios 12 GPIO_ACTIVE_LOW>; ++ ++ pinctrl-0 = <&sdc2_default>, <&sdc2_card_det_n>; ++ pinctrl-1 = <&sdc2_sleep>, <&sdc2_card_det_n>; ++ pinctrl-names = "default", "sleep"; ++ ++ vmmc-supply = <&vreg_l9b_2p9>; ++ vqmmc-supply = <&vreg_l8b_1p8>; ++ ++ bus-width = <4>; ++ no-sdio; ++ no-mmc; ++ ++ status = "okay"; ++}; ++ ++&sleep_clk { ++ clock-frequency = <32764>; ++}; ++ ++&tlmm { ++ gpio-reserved-ranges = <32 8>; ++ ++ usb0_sbu_default: usb0-sbu-state { ++ oe-n-pins { ++ pins = "gpio140"; ++ function = "gpio"; ++ bias-disable; ++ drive-strength = <16>; ++ output-high; ++ }; ++ ++ sel-pins { ++ pins = "gpio141"; ++ function = "gpio"; ++ bias-disable; ++ drive-strength = <16>; ++ }; ++ }; ++}; ++ ++&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_hs { ++ remote-endpoint = <&pmic_glink_hs_in>; ++}; ++ ++&usb_1_hsphy { ++ phys = <&pm8550b_eusb2_repeater>; ++ ++ vdd-supply = <&vreg_l1e_0p88>; ++ vdda12-supply = <&vreg_l3e_1p2>; ++ ++ status = "okay"; ++}; ++ ++&usb_dp_qmpphy { ++ vdda-phy-supply = <&vreg_l3e_1p2>; ++ vdda-pll-supply = <&vreg_l3f_0p88>; ++ ++ status = "okay"; ++}; ++ ++&usb_dp_qmpphy_out { ++ remote-endpoint = <&redriver_ss_in>; ++}; ++ ++&xo_board { ++ clock-frequency = <76800000>; ++}; diff --git a/projects/ROCKNIX/devices/SM8550/patches/linux/0214_arm64--dts--qcom--Add-AYANEO-Pocket-DS.patch b/projects/ROCKNIX/devices/SM8550/patches/linux/0214_arm64--dts--qcom--Add-AYANEO-Pocket-DS.patch new file mode 100644 index 0000000000..0c805b86ec --- /dev/null +++ b/projects/ROCKNIX/devices/SM8550/patches/linux/0214_arm64--dts--qcom--Add-AYANEO-Pocket-DS.patch @@ -0,0 +1,37 @@ +diff -rupbN linux.orig/arch/arm64/boot/dts/qcom/qcs8550-ayaneo-pocketds.dts linux/arch/arm64/boot/dts/qcom/qcs8550-ayaneo-pocketds.dts +--- linux.orig/arch/arm64/boot/dts/qcom/qcs8550-ayaneo-pocketds.dts 1970-01-01 00:00:00.000000000 +0000 ++++ linux/arch/arm64/boot/dts/qcom/qcs8550-ayaneo-pocketds.dts 2025-08-29 01:15:03.063872627 +0000 +@@ -0,0 +1,33 @@ ++// SPDX-License-Identifier: BSD-3-Clause ++/* ++ * Copyright (c) 2025, Teguh Sobirin. ++ * Copyright (c) 2025, ROCKNIX (https://github.com/ROCKNIX) ++ */ ++ ++/dts-v1/; ++ ++#include "qcs8550-ayaneo-pocket-common.dtsi" ++ ++/ { ++ model = "AYANEO Pocket DS"; ++ qcom,board-id = <0x1000b 0x01>; ++ qcom,msm-id = <0x258 0x20000>, <0x259 0x20000>; ++ compatible = "ayaneo,ds", "qcom,qcs8550", "qcom,sm8550"; ++}; ++ ++&i2c0 { ++ clock-frequency = <400000>; ++ status = "okay"; ++ ++}; ++ ++&display_panel { ++ compatible = "chipone,icna3512"; ++ ++ vci-supply = <&vreg_l13b_3p0>; ++ vddio-supply = <&vreg_l12b_1p8>; ++ ++ reset-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>; ++ ++ rotation = <270>; ++};