From d4c61eea0faae54d278058b39c5c568078025e60 Mon Sep 17 00:00:00 2001 From: Teguh Sobirin Date: Mon, 27 Oct 2025 17:38:24 +0800 Subject: [PATCH] arm64: dts: qcom: Add AYN Odin2 Signed-off-by: Teguh Sobirin --- arch/arm64/boot/dts/qcom/Makefile | 1 + .../arm64/boot/dts/qcom/qcs8550-ayn-odin2.dts | 323 ++++++++++++++++++ 2 files changed, 324 insertions(+) create mode 100644 arch/arm64/boot/dts/qcom/qcs8550-ayn-odin2.dts diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile index 4bfa926b6a08..80e4d5b3a03d 100644 --- a/arch/arm64/boot/dts/qcom/Makefile +++ b/arch/arm64/boot/dts/qcom/Makefile @@ -126,6 +126,7 @@ dtb-$(CONFIG_ARCH_QCOM) += qcs6490-rb3gen2-industrial-mezzanine.dtb dtb-$(CONFIG_ARCH_QCOM) += qcs6490-rb3gen2-vision-mezzanine.dtb dtb-$(CONFIG_ARCH_QCOM) += qcs8300-ride.dtb dtb-$(CONFIG_ARCH_QCOM) += qcs8550-aim300-aiot.dtb +dtb-$(CONFIG_ARCH_QCOM) += qcs8550-ayn-odin2.dtb dtb-$(CONFIG_ARCH_QCOM) += qcs9100-ride.dtb dtb-$(CONFIG_ARCH_QCOM) += qcs9100-ride-r3.dtb dtb-$(CONFIG_ARCH_QCOM) += qdu1000-idp.dtb diff --git a/arch/arm64/boot/dts/qcom/qcs8550-ayn-odin2.dts b/arch/arm64/boot/dts/qcom/qcs8550-ayn-odin2.dts new file mode 100644 index 000000000000..98cf638b24f4 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/qcs8550-ayn-odin2.dts @@ -0,0 +1,323 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2025, Teguh Sobirin. + */ + +/dts-v1/; + +#include "qcs8550-ayn-common.dtsi" + +/ { + model = "AYN Odin 2"; + compatible = "ayn,odin2", "qcom,qcs8550", "qcom,sm8550"; + qcom,msm-id = <603 0x20000>; + qcom,board-id = <0x1001f 0>; + + backlight: backlight { + compatible = "pwm-backlight"; + pwms = <&pmk8550_pwm 0 860000>; + brightness-levels = <1023 0>; + num-interpolated-steps = <1023>; + default-brightness-level = <600>; + power-supply = <&vph_pwr>; + enable-gpios = <&pmk8550_gpios 5 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&pwm_backlight_default>; + status = "okay"; + }; + + hdmi-out { + compatible = "hdmi-connector"; + type = "d"; + hpd-gpios = <&tlmm 9 GPIO_ACTIVE_HIGH>; + hdmi-pwr-supply = <&vdd_hdmi_1v8>; + + port { + hdmi_con: endpoint { + remote-endpoint = <<8912_out>; + }; + }; + }; + + led_left_side: led-controller-1 { + compatible = "pwm-leds-multicolor"; + + multi-led { + label = "left-side"; + color = ; + max-brightness = <255>; + + led-red { + color = ; + pwms = <&pwm_rgb_left 0>; + }; + + led-green { + color = ; + pwms = <&pwm_rgb_left 1>; + }; + + led-blue { + color = ; + pwms = <&pwm_rgb_left 2>; + }; + }; + }; + + led_left_joystick: led-controller-2 { + compatible = "pwm-leds-multicolor"; + + multi-led { + label = "left-joystick"; + color = ; + max-brightness = <255>; + + led-red { + color = ; + pwms = <&pwm_rgb_left 6>; + }; + + led-green { + color = ; + pwms = <&pwm_rgb_left 7>; + }; + + led-blue { + color = ; + pwms = <&pwm_rgb_left 8>; + }; + }; + }; + + led_right_side: led-controller-3 { + compatible = "pwm-leds-multicolor"; + + multi-led { + label = "right-side"; + color = ; + max-brightness = <255>; + + led-red { + color = ; + pwms = <&pwm_rgb_right 0>; + }; + + led-green { + color = ; + pwms = <&pwm_rgb_right 1>; + }; + + led-blue { + color = ; + pwms = <&pwm_rgb_right 2>; + }; + }; + }; + + led_right_joystick: led-controller-4 { + compatible = "pwm-leds-multicolor"; + + multi-led { + label = "right-joystick"; + color = ; + max-brightness = <255>; + + led-red { + color = ; + pwms = <&pwm_rgb_right 6>; + }; + + led-green { + color = ; + pwms = <&pwm_rgb_right 7>; + }; + + led-blue { + color = ; + pwms = <&pwm_rgb_right 8>; + }; + }; + }; + + vcc_hdmi_1v8: vcc-hdmi-1v8-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc_hdmi_1v8"; + + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + + gpio = <&tlmm 10 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; + + vdd_disp_2v8: vdd-disp-2v8-regulator { + compatible = "regulator-fixed"; + regulator-name = "vdd_disp_2v8"; + + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + + gpio = <&tlmm 142 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; + + vdd_hdmi_1v8: vdd-hdmi-1v8-regulator { + compatible = "regulator-fixed"; + regulator-name = "vdd_hdmi_1v8"; + + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + + gpio = <&tlmm 6 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; +}; + +&display_panel { + compatible = "syna,td4328"; + + pinctrl-0 = <&dsi_p_rst_active>, <&dsi_p_te_active>; + pinctrl-1 = <&dsi_p_rst_suspend>, <&dsi_p_te_suspend>; + pinctrl-names = "default", "sleep"; + + vdd-supply = <&vdd_disp_2v8>; + vddio-supply = <&vreg_l12b_1p8>; + + backlight = <&backlight>; + + reset-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>; + + rotation = <90>; +}; + +&i2c0 { + pwm_rgb_left: sn3112@54 { + compatible = "si-en,sn3112-pwm"; + reg = <0x54>; + sdb-gpios = <&tlmm 55 GPIO_ACTIVE_LOW>; + vdd-supply = <&vdd_mcu_3v3>; + #pwm-cells = <1>; + }; +}; + +&i2c4 { + touchscreen@20 { + compatible = "syna,rmi4-i2c"; + reg = <0x20>; + #address-cells = <1>; + #size-cells = <0>; + interrupt-parent = <&tlmm>; + interrupts = <25 IRQ_TYPE_EDGE_FALLING>; + + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&ts_p_int_default>; + pinctrl-1 = <&ts_p_int_sleep>; + + vio-supply = <&vreg_l12b_1p8>; + + syna,startup-delay-ms = <200>; + syna,reset-delay-ms = <200>; + + rmi4-f01@1 { + syna,nosleep-mode = <0x1>; + reg = <0x1>; + }; + + rmi4-f12@12 { + reg = <0x12>; + syna,rezero-wait-ms = <20>; + syna,clip-x-low = <0>; + syna,clip-y-low = <0>; + syna,clip-x-high = <1080>; + syna,clip-y-high = <1920>; + syna,sensor-type = <1>; + touchscreen-inverted-x; + }; + }; +}; + +&i2c12 { + pwm_rgb_right: sn3112@54 { + compatible = "si-en,sn3112-pwm"; + reg = <0x54>; + sdb-gpios = <&tlmm 56 GPIO_ACTIVE_LOW>; + vdd-supply = <&vdd_mcu_3v3>; + #pwm-cells = <1>; + }; +}; + +&i2c_hub_0 { + clock-frequency = <100000>; + status = "okay"; + + lt8912_codec: hdmi-bridge@48 { + compatible = "lontium,lt8912b"; + reg = <0x48> ; + + reset-gpios = <&tlmm 7 GPIO_ACTIVE_LOW>; + + vdd-supply = <&vdd_hdmi_1v8>; + vccmipirx-supply = <&vcc_hdmi_1v8>; + vccsysclk-supply = <&vcc_hdmi_1v8>; + vcclvdstx-supply = <&vcc_hdmi_1v8>; + vcchdmitx-supply = <&vcc_hdmi_1v8>; + vcclvdspll-supply = <&vcc_hdmi_1v8>; + vcchdmipll-supply = <&vcc_hdmi_1v8>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + hdmi_out_in: endpoint { + data-lanes = <1 2 3 4>; + remote-endpoint = <&mdss_dsi0_out>; + }; + }; + + port@1 { + reg = <1>; + + lt8912_out: endpoint { + remote-endpoint = <&hdmi_con>; + }; + }; + }; + }; +}; + +&mdss_dsi0 { + vdda-supply = <&vreg_l3e_1p2>; + status = "okay"; +}; + +&mdss_dsi0_out { + remote-endpoint = <&hdmi_out_in>; + data-lanes = <0 1 2 3>; +}; + +&mdss_dsi0_phy { + vdds-supply = <&vreg_l1e_0p88>; + status = "okay"; +}; + +&pmk8550_pwm { + status = "okay"; +}; + +&remoteproc_adsp { + firmware-name = "qcom/sm8550/ayn/odin2/adsp.mbn", + "qcom/sm8550/ayn/odin2/adsp_dtb.mbn"; + status = "okay"; +}; + +&spk_amp_l { + firmware-name = "qcom/sm8550/ayn/odin2/aw883xx_acf.bin"; +}; + +&spk_amp_r { + firmware-name = "qcom/sm8550/ayn/odin2/aw883xx_acf.bin"; +}; + -- 2.34.1