ayaneo dts: model mcu regulators

extract dts to files
This commit is contained in:
Philippe Simons
2026-02-18 20:59:07 +01:00
parent d101c883a5
commit 557ffa1e64
29 changed files with 5572 additions and 5505 deletions

View File

@@ -81,6 +81,7 @@
|Nintendo|Super NES MSU-1 (snesmsu1)|2012|`snesmsu1`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)<br>**retroarch:** beetle_supafaust<br>**mednafen:** snes_faust<br>|
|Nintendo|Super Nintendo (Hacks) (snesh)|1991|`snesh`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)<br>**retroarch:** snes9x2010<br>**retroarch:** snes9x2002<br>**retroarch:** snes9x2005_plus<br>**retroarch:** beetle_supafaust<br>**retroarch:** bsnes_mercury_performance<br>**retroarch:** bsnes<br>**retroarch:** bsnes_hd_beta<br>**mednafen:** snes_faust<br>|
|Nintendo|Super Nintendo (snes)|1991|`snes`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)<br>**retroarch:** snes9x2010<br>**retroarch:** snes9x2002<br>**retroarch:** snes9x2005_plus<br>**retroarch:** beetle_supafaust<br>**retroarch:** bsnes_mercury_accuracy<br>**retroarch:** bsnes_mercury_balanced<br>**retroarch:** bsnes_mercury_performance<br>**retroarch:** bsnes<br>**retroarch:** bsnes_hd_beta<br>**mednafen:** snes_faust<br>**retroarch:** bsnes_mercury_accuracy<br>**retroarch:** bsnes_mercury_balanced<br>**retroarch:** bsnes_mercury_accuracy<br>**retroarch:** bsnes_mercury_balanced<br>**mednafen:** snes_faust<br>|
|Nintendo|Triforce (triforce)|2002|`triforce`|.gcm .iso .gcz .ciso .wbfs .rvz .dol .m3u|**dolphin:** dolphin-qt-gc (default)<br>|
|Nintendo|Virtual Boy (virtualboy)|1995|`virtualboy`|.vb .zip .7z|**retroarch:** beetle_vb (default)<br>**mednafen:** vb<br>|
|Nintendo|Wii (wii)|2006|`wii`|.gcm .iso .gcz .ciso .wbfs .rvz .dol .wad .m3u|**dolphin:** dolphin-qt-wii (default)<br>**dolphin:** dolphin-sa-wii<br>**retroarch:** dolphin<br>|
|Nintendo|Wii U (wiiu)|2012|`wiiu`|.wud .wux .wua .rpx|**cemu:** cemu-sa (default)<br>|

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,134 @@
// 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 ACE";
qcom,board-id = <0x1000b 0x01>;
qcom,msm-id = <0x258 0x20000>, <0x259 0x20000>;
compatible = "ayaneo,pocketace", "qcom,qcs8550", "qcom,sm8550";
rocknix-u-boot-dt-id = "u-boot-pocket-ace";
};
&tlmm {
panel_pwr_active: panel-pwr-active-state {
pins = "gpio72", "gpio42", "gpio152", "gpio153";
function = "gpio";
drive-strength = <8>;
bias-disable;
output-high;
};
panel_pwr_sleep: panel-pwr-sleep-state {
pins = "gpio72", "gpio42", "gpio152", "gpio153";
function = "gpio";
output-low;
};
backlight_pwr_active: backlight-pwr-active-state {
pins = "gpio41";
function = "gpio";
drive-strength = <8>;
bias-disable;
output-high;
};
backlight_pwr_sleep: backlight-pwr-sleep-state {
pins = "gpio41";
function = "gpio";
output-low;
};
ts_int_active: ts-int-default-state {
pins = "gpio25";
function = "gpio";
bias-pull-up;
input-enable;
};
};
&i2c0 {
clock-frequency = <400000>;
status = "okay";
/* Screen power */
sgm3804: regulator@3e {
compatible = "sgmicro,sgm3804";
reg = <0x3e>;
pinctrl-0 = <&panel_pwr_active>;
pinctrl-1 = <&panel_pwr_sleep>;
pinctrl-names = "default", "sleep";
regulator-name = "panel-avdd";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
reset-gpios = <&tlmm 152 GPIO_ACTIVE_HIGH>, <&tlmm 153 GPIO_ACTIVE_HIGH>;
};
/* Backlight */
backlight: sy7758@2e {
compatible = "silergy,sy7758";
reg = <0x2e>;
pinctrl-0 = <&backlight_pwr_active>;
pinctrl-1 = <&backlight_pwr_sleep>;
pinctrl-names = "default", "sleep";
status = "okay";
};
};
&i2c4 {
clock-frequency = <400000>;
status = "okay";
touchscreen@70 {
compatible = "syna,rmi4-i2c";
reg = <0x70>;
#address-cells = <1>;
#size-cells = <0>;
interrupts-extended = <&tlmm 25 0x2008>;
pinctrl-names = "active";
pinctrl-0 = <&ts_int_active>;
reset-gpios = <&tlmm 24 0x01>;
vio-supply = <&vreg_l12b_1p8>;
vdd-supply = <&vreg_l14b_3p2>;
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 = <1620>;
syna,sensor-type = <1>;
};
};
};
&display_panel {
compatible = "ayaneo,pocket-ace-panel";
avdd-supply = <&sgm3804>;
vci-supply = <&vreg_l13b_3p0>;
vddio-supply = <&vreg_l12b_1p8>;
backlight = <&backlight>;
reset-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>;
rotation = <90>;
};

View File

@@ -0,0 +1,111 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (c) 2025, ROCKNIX (https://github.com/ROCKNIX)
*/
/dts-v1/;
#include "qcs8550-ayaneo-pocket-common.dtsi"
/ {
model = "AYANEO Pocket DMG";
qcom,board-id = <0x1000b 0x01>;
qcom,msm-id = <0x258 0x20000>, <0x259 0x20000>;
compatible = "ayaneo,pocketdmg", "qcom,qcs8550", "qcom,sm8550";
rocknix-u-boot-dt-id = "u-boot-pocket-dmg";
};
&tlmm {
panel_pwr_active: panel-pwr-active-state {
pins = "gpio152", "gpio153";
function = "gpio";
drive-strength = <8>;
bias-disable;
output-high;
};
ts_int_active: ts-int-active-state {
pins = "gpio25";
function = "gpio";
drive-strength = <8>;
bias-pull-up;
};
ts_reset_active: ts-reset-active-state {
pins = "gpio24";
function = "gpio";
drive-strength = <8>;
bias-pull-up;
};
ts_int_suspend: ts-int-suspend-state {
pins = "gpio25";
function = "gpio";
drive-strength = <2>;
bias-pull-down;
};
ts_reset_suspend: ts-reset-suspend-state {
pins = "gpio24";
function = "gpio";
drive-strength = <2>;
bias-pull-down;
};
};
&i2c0 {
clock-frequency = <400000>;
status = "okay";
/* Screen power */
sgm3804: regulator@3e {
compatible = "sgmicro,sgm3804";
reg = <0x3e>;
pinctrl-names = "default";
pinctrl-0 = <&panel_pwr_active>;
regulator-name = "panel-avdd";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
reset-gpios = <&tlmm 152 GPIO_ACTIVE_HIGH>, <&tlmm 153 GPIO_ACTIVE_HIGH>;
};
};
&i2c4 {
status = "okay";
clock-frequency = <400000>;
hynitron@5a {
compatible = "hyn,66xx";
reg = <0x5a>;
vdd_ana;
vdd_ana-supply = <&vreg_l14b_3p2>;
interrupt-parent = <&tlmm>;
interrupts = <25 0x02>;
reset-gpio = <&tlmm 24 0x01>;
irq-gpio = <&tlmm 25 0x02>;
pinctrl-names = "ts_active","ts_suspend";
pinctrl-0 = <&ts_int_active &ts_reset_active>;
pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>;
max-touch-number = <5>;
display-coords = <0 0 1080 1240>;
pos-swap = <1>;
posx-reverse = <0>;
posy-reverse = <0>;
};
};
&display_panel {
compatible = "ayaneo,pocket-dmg-panel";
avdd-supply = <&sgm3804>;
vci-supply = <&vreg_l13b_3p0>;
vddio-supply = <&vreg_l12b_1p8>;
reset-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>;
rotation = <270>;
};

View File

@@ -0,0 +1,238 @@
// 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,pocketds", "qcom,qcs8550", "qcom,sm8550";
rocknix-u-boot-dt-id = "u-boot-pocket-ds";
tca6424_vcc: regulator-tca6424-vcc {
compatible = "regulator-fixed";
regulator-name = "tca6424_vcc";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
gpio = <&tlmm 168 GPIO_ACTIVE_HIGH>;
enable-active-high;
regulator-boot-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
vdd_ts: vdd-ts {
compatible = "regulator-fixed";
regulator-name = "vdd_ts_en";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
gpio = <&tca6408 1 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
};
&tlmm {
gpio-reserved-ranges = <32 4>;
panel_pwr_active: panel-pwr-active-state {
pins = "gpio152", "gpio153";
function = "gpio";
drive-strength = <8>;
bias-disable;
output-high;
};
sde_dsi1_active: sde-dsi1-active-state {
pins = "gpio137";
function = "gpio";
drive-strength = <8>;
bias-disable;
output-high;
};
sde_dsi1_suspend: sde-dsi1-suspend-state {
pins = "gpio137";
function = "gpio";
drive-strength = <2>;
bias-pull-down;
};
ts_rst_default: ts-rst-default-state {
pins = "gpio24";
function = "gpio";
bias-pull-up;
drive-strength = <8>;
};
ts_rst_sleep: ts-rst-sleep-state {
pins = "gpio24";
function = "gpio";
bias-pull-down;
drive-strength = <2>;
};
ts_int_default: ts-int-default-state {
pins = "gpio25";
function = "gpio";
bias-pull-up;
drive-strength = <8>;
};
ts_int_sleep: ts-int-sleep-state {
pins = "gpio25";
function = "gpio";
bias-pull-down;
drive-strength = <2>;
};
ts2_irq: ts2-irq-state {
pins = "gpio39";
function = "gpio";
drive-strength = <8>;
bias-disable;
input-enable;
};
ts2_reset: ts2-reset-state {
pins = "gpio38";
function = "gpio";
drive-strength = <8>;
input-enable;
bias-pull-down;
};
};
&i2c0 {
clock-frequency = <400000>;
status = "okay";
/* Screen power */
sgm3804: regulator@3e {
compatible = "sgmicro,sgm3804";
reg = <0x3e>;
pinctrl-names = "default";
pinctrl-0 = <&panel_pwr_active>;
regulator-name = "panel-avdd";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
reset-gpios = <&tlmm 152 GPIO_ACTIVE_HIGH>, <&tlmm 153 GPIO_ACTIVE_HIGH>;
};
/* Backlight */
backlight: backlight@2e {
compatible = "silergy,sy7758";
reg = <0x2e>;
status = "okay";
};
tca6408: tca64_20@20 {
gpio-controller;
compatible = "ti,tca6408";
status = "okay";
reg = <0x20>;
#gpio-cells = <0x02>;
vcc-supply = <&tca6424_vcc>;
};
};
&i2c2 {
clock-frequency = <400000>;
status = "okay";
touchscreen@5d {
reg = <0x5d>;
compatible = "goodix,gt911";
interrupt-parent = <&tlmm>;
interrupts = <39 IRQ_TYPE_EDGE_FALLING>;
reset-gpios = <&tlmm 38 GPIO_ACTIVE_HIGH>;
irq-gpios = <&tlmm 39 GPIO_ACTIVE_HIGH>;
VDDIO-supply = <&vdd_ts>;
touchscreen-size-x = <768>;
touchscreen-size-y = <1024>;
pinctrl-names = "default";
pinctrl-0 = <&ts2_reset>, <&ts2_irq>;
};
};
&i2c4 {
clock-frequency = <400000>;
status = "okay";
touchscreen: touchscreen@38 {
compatible = "focaltech,ft5426";
reg = <0x38>;
#address-cells = <1>;
#size-cells = <0>;
interrupt-parent = <&tlmm>;
interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
reset-gpios = <&tlmm 24 GPIO_ACTIVE_LOW>;
vcc-supply = <&vreg_l14b_3p2>;
iovcc-supply = <&vreg_l12b_1p8>;
pinctrl-0 = <&ts_int_default &ts_rst_default>;
pinctrl-1 = <&ts_int_sleep &ts_rst_sleep>;
pinctrl-names = "default", "sleep";
touchscreen-size-x = <1080>;
touchscreen-size-y = <1920>;
};
};
&display_panel {
compatible = "chipone,icna3512";
vci-supply = <&vreg_l13b_3p0>;
vddio-supply = <&vreg_l12b_1p8>;
reset-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>;
rotation = <270>;
};
&mdss_dsi1 {
vdda-supply = <&vreg_l3e_1p2>;
status = "okay";
panel@0 {
compatible = "ayaneo,pocket-ds-secondary-panel";
reg = <0>;
pinctrl-0 = <&sde_dsi1_active>;
pinctrl-1 = <&sde_dsi1_suspend>;
pinctrl-names = "default", "sleep";
avdd-supply = <&sgm3804>;
enable-gpio = <&tca6408 0 GPIO_ACTIVE_HIGH>;
reset-gpios = <&tca6408 2 GPIO_ACTIVE_LOW>;
rotation = <270>;
backlight = <&backlight>;
port {
panel1_in: endpoint {
remote-endpoint = <&mdss_dsi1_out>;
};
};
};
};
&mdss_dsi1_out {
remote-endpoint = <&panel1_in>;
data-lanes = <0 1 2 3>;
};
&mdss_dsi1_phy {
vdds-supply = <&vreg_l1e_0p88>;
status = "okay";
};

View File

@@ -0,0 +1,99 @@
// 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 EVO";
qcom,board-id = <0x1000b 0x01>;
qcom,msm-id = <0x258 0x20000>, <0x259 0x20000>;
compatible = "ayaneo,pocketevo", "qcom,qcs8550", "qcom,sm8550";
rocknix-u-boot-dt-id = "u-boot-pocket-evo";
};
&tlmm {
panel_pwr_active: panel-pwr-active-state {
pins = "gpio152", "gpio153";
function = "gpio";
drive-strength = <8>;
bias-disable;
output-high;
};
ts_reset_active: ts-reset-active-state {
pins = "gpio24";
function = "gpio";
drive-strength = <8>;
bias-pull-up;
};
ts_reset_suspend: ts-reset-suspend-state {
pins = "gpio24";
function = "gpio";
drive-strength = <2>;
bias-pull-down;
};
ts_int_active: ts-int-default-state {
pins = "gpio25";
function = "gpio";
bias-pull-up;
drive-strength = <8>;
};
ts_int_suspend: ts-int-sleep-state {
pins = "gpio25";
function = "gpio";
bias-pull-down;
drive-strength = <2>;
};
};
&i2c0 {
clock-frequency = <400000>;
status = "okay";
};
&i2c4 {
clock-frequency = <400000>;
status = "okay";
touchscreen: touchscreen@38 {
compatible = "focaltech,ft5426";
reg = <0x38>;
#address-cells = <1>;
#size-cells = <0>;
interrupt-parent = <&tlmm>;
interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
reset-gpios = <&tlmm 24 GPIO_ACTIVE_LOW>;
vcc-supply = <&vreg_l14b_3p2>;
iovcc-supply = <&vreg_l12b_1p8>;
pinctrl-0 = <&ts_int_active &ts_reset_active>;
pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>;
pinctrl-names = "default", "sleep";
touchscreen-size-x = <1080>;
touchscreen-size-y = <1920>;
};
};
&display_panel {
compatible = "chipone,icna3512";
vci-supply = <&vreg_l13b_3p0>;
vddio-supply = <&vreg_l12b_1p8>;
reset-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>;
rotation = <270>;
};

File diff suppressed because it is too large Load Diff

View File

@@ -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 = <&lt8912_out>;
};
};
};
led_left_side: led-controller-1 {
compatible = "pwm-leds-multicolor";
multi-led {
label = "left-side";
color = <LED_COLOR_ID_RGB>;
max-brightness = <255>;
led-red {
color = <LED_COLOR_ID_RED>;
pwms = <&pwm_rgb_left 0>;
};
led-green {
color = <LED_COLOR_ID_GREEN>;
pwms = <&pwm_rgb_left 1>;
};
led-blue {
color = <LED_COLOR_ID_BLUE>;
pwms = <&pwm_rgb_left 2>;
};
};
};
led_left_joystick: led-controller-2 {
compatible = "pwm-leds-multicolor";
multi-led {
label = "left-joystick";
color = <LED_COLOR_ID_RGB>;
max-brightness = <255>;
led-red {
color = <LED_COLOR_ID_RED>;
pwms = <&pwm_rgb_left 6>;
};
led-green {
color = <LED_COLOR_ID_GREEN>;
pwms = <&pwm_rgb_left 7>;
};
led-blue {
color = <LED_COLOR_ID_BLUE>;
pwms = <&pwm_rgb_left 8>;
};
};
};
led_right_side: led-controller-3 {
compatible = "pwm-leds-multicolor";
multi-led {
label = "right-side";
color = <LED_COLOR_ID_RGB>;
max-brightness = <255>;
led-red {
color = <LED_COLOR_ID_RED>;
pwms = <&pwm_rgb_right 0>;
};
led-green {
color = <LED_COLOR_ID_GREEN>;
pwms = <&pwm_rgb_right 1>;
};
led-blue {
color = <LED_COLOR_ID_BLUE>;
pwms = <&pwm_rgb_right 2>;
};
};
};
led_right_joystick: led-controller-4 {
compatible = "pwm-leds-multicolor";
multi-led {
label = "right-joystick";
color = <LED_COLOR_ID_RGB>;
max-brightness = <255>;
led-red {
color = <LED_COLOR_ID_RED>;
pwms = <&pwm_rgb_right 6>;
};
led-green {
color = <LED_COLOR_ID_GREEN>;
pwms = <&pwm_rgb_right 7>;
};
led-blue {
color = <LED_COLOR_ID_BLUE>;
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";
};

View File

@@ -0,0 +1,192 @@
// SPDX-License-Identifier: BSD-3-Clause
/*
* Copyright (c) 2025, Teguh Sobirin.
*/
/dts-v1/;
#include "qcs8550-ayn-common.dtsi"
/ {
model = "AYN Odin 2 Mini";
compatible = "ayn,odin2mini", "qcom,qcs8550", "qcom,sm8550";
qcom,msm-id = <603 0x20000>;
qcom,board-id = <0x1001f 0>;
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 = <&lt8912_out>;
};
};
};
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_bl_5v0: vdd-bl-5v0-regulator {
compatible = "regulator-fixed";
regulator-name = "vdd_bl_5v0";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&tlmm 55 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 = "boe,xm91080g";
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 = <&vreg_l11b_1p2>;
vddio-supply = <&vreg_l12b_1p8>;
vci-supply = <&vreg_l13b_3p0>;
disp-supply = <&vdd_disp_2v8>;
blvdd-supply = <&vdd_bl_5v0>;
reset-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>;
rotation = <90>;
};
&i2c0 {
backlight: backlight@46 {
compatible = "ayn,odin2miniled";
reg = <0x46>;
enable-gpios = <&tlmm 55 GPIO_ACTIVE_HIGH>;
vcc_1v2-supply = <&vreg_l11b_1p2>;
vcc_3v3-supply = <&vreg_bob2>;
};
};
&i2c4 {
touchscreen@1a {
compatible = "hynitron,cst340";
reg = <0x1a>;
interrupt-parent = <&tlmm>;
interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
reset-gpios = <&tlmm 24 GPIO_ACTIVE_LOW>;
vdd-supply = <&vreg_l2b_3p0>;
pinctrl-0 = <&ts_p_rst_default &ts_p_int_default>;
pinctrl-1 = <&ts_p_rst_sleep &ts_p_int_sleep>;
pinctrl-names = "default", "sleep";
touchscreen-size-x = <1920>;
touchscreen-size-y = <1080>;
touchscreen-swapped-x-y;
touchscreen-inverted-y;
};
};
&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";
};
&remoteproc_adsp {
firmware-name = "qcom/sm8550/ayn/odin2mini/adsp.mbn",
"qcom/sm8550/ayn/odin2mini/adsp_dtb.mbn";
status = "okay";
};
&spk_amp_l {
firmware-name = "qcom/sm8550/ayn/odin2mini/aw883xx_acf.bin";
};
&spk_amp_r {
firmware-name = "qcom/sm8550/ayn/odin2mini/aw883xx_acf.bin";
};

View File

@@ -0,0 +1,294 @@
// SPDX-License-Identifier: BSD-3-Clause
/*
* Copyright (c) 2025, Teguh Sobirin.
*/
/dts-v1/;
#include "qcs8550-ayn-common.dtsi"
/ {
model = "AYN Odin 2 Portal";
compatible = "ayn,odin2portal", "qcom,qcs8550", "qcom,sm8550";
qcom,msm-id = <603 0x20000>;
qcom,board-id = <0x1001f 0>;
vdd_bl_5v0: vdd-bl-5v0-regulator {
compatible = "regulator-fixed";
regulator-name = "vdd_bl_5v0";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&tlmm 52 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;
};
multi-ledr1 {
compatible = "leds-group-multicolor";
color = <LED_COLOR_ID_RGB>;
function = "r1";
leds = <&ledr_r4>, <&ledr_g4>, <&ledr_b4>;
};
multi-ledl1 {
compatible = "leds-group-multicolor";
color = <LED_COLOR_ID_RGB>;
function = "l1";
leds = <&ledl_r4>, <&ledl_g4>, <&ledl_b4>;
};
multi-ledr2 {
compatible = "leds-group-multicolor";
color = <LED_COLOR_ID_RGB>;
function = "r2";
leds = <&ledr_r1>, <&ledr_g1>, <&ledr_b1>;
};
multi-ledl2 {
compatible = "leds-group-multicolor";
color = <LED_COLOR_ID_RGB>;
function = "l2";
leds = <&ledl_r1>, <&ledl_g1>, <&ledl_b1>;
};
multi-ledr3 {
compatible = "leds-group-multicolor";
color = <LED_COLOR_ID_RGB>;
function = "r3";
leds = <&ledr_r2>, <&ledr_g2>, <&ledr_b2>;
};
multi-ledl3 {
compatible = "leds-group-multicolor";
color = <LED_COLOR_ID_RGB>;
function = "l3";
leds = <&ledl_r2>, <&ledl_g2>, <&ledl_b2>;
};
multi-ledr4 {
compatible = "leds-group-multicolor";
color = <LED_COLOR_ID_RGB>;
function = "r4";
leds = <&ledr_r3>, <&ledr_g3>, <&ledr_b3>;
};
multi-ledl4 {
compatible = "leds-group-multicolor";
color = <LED_COLOR_ID_RGB>;
function = "l4";
leds = <&ledl_r3>, <&ledl_g3>, <&ledl_b3>;
};
};
&display_panel {
compatible = "chipone,icna3512";
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 = <&vreg_l11b_1p2>;
vddio-supply = <&vreg_l12b_1p8>;
vci-supply = <&vreg_l13b_3p0>;
disp-supply = <&vdd_disp_2v8>;
blvdd-supply = <&vdd_bl_5v0>;
reset-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>;
rotation = <270>;
};
&i2c0 {
htr3212l: led-controller@3c {
compatible = "heroic,htr3212";
reg = <0x3c>;
#address-cells = <1>;
#size-cells = <0>;
sdb-gpios = <&tlmm 55 GPIO_ACTIVE_HIGH>;
vdd-supply = <&vdd_mcu_3v3>;
ledl_b1: led@1 {
reg = <1>;
label = "l:r1";
color = <LED_COLOR_ID_RED>;
};
ledl_g1: led@2 {
reg = <2>;
label = "l:g1";
color = <LED_COLOR_ID_GREEN>;
};
ledl_r1: led@3 {
reg = <3>;
label = "l:b1";
color = <LED_COLOR_ID_BLUE>;
};
ledl_b2: led@4 {
reg = <4>;
label = "l:r2";
color = <LED_COLOR_ID_RED>;
};
ledl_g2: led@5 {
reg = <5>;
label = "l:g2";
color = <LED_COLOR_ID_GREEN>;
};
ledl_r2: led@6 {
reg = <6>;
label = "l:b2";
color = <LED_COLOR_ID_BLUE>;
};
ledl_b3: led@7 {
reg = <7>;
label = "l:r3";
color = <LED_COLOR_ID_RED>;
};
ledl_g3: led@8 {
reg = <8>;
label = "l:g3";
color = <LED_COLOR_ID_GREEN>;
};
ledl_r3: led@9 {
reg = <9>;
label = "l:b3";
color = <LED_COLOR_ID_BLUE>;
};
ledl_b4: led@10 {
reg = <10>;
label = "l:r4";
color = <LED_COLOR_ID_RED>;
};
ledl_g4: led@11 {
reg = <11>;
label = "l:g4";
color = <LED_COLOR_ID_GREEN>;
};
ledl_r4: led@12 {
reg = <12>;
label = "l:b4";
color = <LED_COLOR_ID_BLUE>;
};
};
};
&i2c4 {
touchscreen@38 {
compatible = "focaltech,ft5426";
reg = <0x38>;
#address-cells = <1>;
#size-cells = <0>;
interrupt-parent = <&tlmm>;
interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
reset-gpios = <&tlmm 24 GPIO_ACTIVE_LOW>;
vcc-supply = <&vreg_l14b_3p2>;
iovcc-supply = <&vreg_l12b_1p8>;
pinctrl-0 = <&ts_p_rst_default &ts_p_int_default>;
pinctrl-1 = <&ts_p_rst_sleep &ts_p_int_sleep>;
pinctrl-names = "default", "sleep";
touchscreen-size-x = <1080>;
touchscreen-size-y = <1920>;
};
};
&i2c12 {
htr3212r: led-controller@3c {
compatible = "heroic,htr3212";
reg = <0x3c>;
#address-cells = <1>;
#size-cells = <0>;
sdb-gpios = <&tlmm 56 GPIO_ACTIVE_HIGH>;
vdd-supply = <&vdd_mcu_3v3>;
ledr_b1: led@1 {
reg = <1>;
label = "r:r1";
color = <LED_COLOR_ID_RED>;
};
ledr_g1: led@2 {
reg = <2>;
label = "r:g1";
color = <LED_COLOR_ID_GREEN>;
};
ledr_r1: led@3 {
reg = <3>;
label = "r:b1";
color = <LED_COLOR_ID_BLUE>;
};
ledr_b2: led@4 {
reg = <4>;
label = "r:r2";
color = <LED_COLOR_ID_RED>;
};
ledr_g2: led@5 {
reg = <5>;
label = "r:g2";
color = <LED_COLOR_ID_GREEN>;
};
ledr_r2: led@6 {
reg = <6>;
label = "r:b2";
color = <LED_COLOR_ID_BLUE>;
};
ledr_b3: led@7 {
reg = <7>;
label = "r:r3";
color = <LED_COLOR_ID_RED>;
};
ledr_g3: led@8 {
reg = <8>;
label = "r:g3";
color = <LED_COLOR_ID_GREEN>;
};
ledr_r3: led@9 {
reg = <9>;
label = "r:b3";
color = <LED_COLOR_ID_BLUE>;
};
ledr_b4: led@10 {
reg = <10>;
label = "r:r4";
color = <LED_COLOR_ID_RED>;
};
ledr_g4: led@11 {
reg = <11>;
label = "r:g4";
color = <LED_COLOR_ID_GREEN>;
};
ledr_r4: led@12 {
reg = <12>;
label = "r:b4";
color = <LED_COLOR_ID_BLUE>;
};
};
};
&remoteproc_adsp {
firmware-name = "qcom/sm8550/ayn/odin2portal/adsp.mbn",
"qcom/sm8550/ayn/odin2portal/adsp_dtb.mbn";
status = "okay";
};
&spk_amp_l {
firmware-name = "qcom/sm8550/ayn/odin2portal/aw883xx_acf.bin";
};
&spk_amp_r {
firmware-name = "qcom/sm8550/ayn/odin2portal/aw883xx_acf.bin";
};

View File

@@ -0,0 +1,434 @@
// SPDX-License-Identifier: BSD-3-Clause
/*
* Copyright (c) 2025, Teguh Sobirin.
*/
/dts-v1/;
#include "qcs8550-ayn-common.dtsi"
/ {
model = "AYN Thor";
compatible = "ayn,thor", "qcom,qcs8550", "qcom,sm8550";
qcom,msm-id = <603 0x20000>;
qcom,board-id = <0x1001f 0>;
gpio-keys {
compatible = "gpio-keys";
key-ayn {
label = "AYN Key";
debounce-interval = <15>;
gpios = <&tlmm 41 GPIO_ACTIVE_LOW>;
linux,code = <KEY_F24>;
linux,can-disable;
};
hall-lid-sensor {
label = "Hall Lid Sensor";
gpios = <&tlmm 17 GPIO_ACTIVE_LOW>;
linux,input-type = <EV_SW>;
linux,code = <SW_LID>;
linux,can-disable;
wakeup-source;
};
};
vdd_bl_5v0: vdd-bl-5v0-regulator {
compatible = "regulator-fixed";
regulator-name = "vdd_bl_5v0";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&tlmm 52 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
vdd_disp_1v8: vdd-disp-1v8-regulator {
compatible = "regulator-fixed";
regulator-name = "vdd_disp_1v8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
gpio = <&tlmm 70 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
vdd_disp1_2v8: vdd-disp1-2v8-regulator {
compatible = "regulator-fixed";
regulator-name = "vdd_disp1_2v8";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
gpio = <&tlmm 142 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
vdd_disp2_2v8: vdd-disp2-2v8-regulator {
compatible = "regulator-fixed";
regulator-name = "vdd_disp2_2v8";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
gpio = <&tlmm 143 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
vdd_ts_3v0: vdd-ts-3v0-regulator {
compatible = "regulator-fixed";
regulator-name = "vdd_ts_3v0";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
gpio = <&tlmm 144 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
vdd_ts_1v8: vdd-ts-1v8-regulator {
compatible = "regulator-fixed";
regulator-name = "vdd_ts_1v8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
gpio = <&tlmm 102 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
multi-ledr1 {
compatible = "leds-group-multicolor";
color = <LED_COLOR_ID_RGB>;
function = "r1";
leds = <&ledr_r4>, <&ledr_g4>, <&ledr_b4>;
};
multi-ledl1 {
compatible = "leds-group-multicolor";
color = <LED_COLOR_ID_RGB>;
function = "l1";
leds = <&ledl_r4>, <&ledl_g4>, <&ledl_b4>;
};
multi-ledr2 {
compatible = "leds-group-multicolor";
color = <LED_COLOR_ID_RGB>;
function = "r2";
leds = <&ledr_r1>, <&ledr_g1>, <&ledr_b1>;
};
multi-ledl2 {
compatible = "leds-group-multicolor";
color = <LED_COLOR_ID_RGB>;
function = "l2";
leds = <&ledl_r1>, <&ledl_g1>, <&ledl_b1>;
};
multi-ledr3 {
compatible = "leds-group-multicolor";
color = <LED_COLOR_ID_RGB>;
function = "r3";
leds = <&ledr_r2>, <&ledr_g2>, <&ledr_b2>;
};
multi-ledl3 {
compatible = "leds-group-multicolor";
color = <LED_COLOR_ID_RGB>;
function = "l3";
leds = <&ledl_r2>, <&ledl_g2>, <&ledl_b2>;
};
multi-ledr4 {
compatible = "leds-group-multicolor";
color = <LED_COLOR_ID_RGB>;
function = "r4";
leds = <&ledr_r3>, <&ledr_g3>, <&ledr_b3>;
};
multi-ledl4 {
compatible = "leds-group-multicolor";
color = <LED_COLOR_ID_RGB>;
function = "l4";
leds = <&ledl_r3>, <&ledl_g3>, <&ledl_b3>;
};
};
&display_panel {
compatible = "chipone,icna3520";
pinctrl-0 = <&dsi_s_rst_active>, <&dsi_s_te_active>;
pinctrl-1 = <&dsi_s_rst_suspend>, <&dsi_s_te_suspend>;
pinctrl-names = "default", "sleep";
vdd-supply = <&vreg_l11b_1p2>;
vddio-supply = <&vreg_l12b_1p8>;
vci-supply = <&vreg_l14b_3p2>;
disp-supply = <&vdd_disp1_2v8>;
blvdd-supply = <&vdd_bl_5v0>;
reset-gpios = <&tlmm 137 GPIO_ACTIVE_LOW>;
rotation = <90>;
};
&i2c0 {
htr3212l: led-controller@3c {
compatible = "heroic,htr3212";
reg = <0x3c>;
#address-cells = <1>;
#size-cells = <0>;
sdb-gpios = <&tlmm 55 GPIO_ACTIVE_HIGH>;
vdd-supply = <&vdd_mcu_3v3>;
ledl_b1: led@1 {
reg = <1>;
label = "l:r1";
color = <LED_COLOR_ID_RED>;
};
ledl_g1: led@2 {
reg = <2>;
label = "l:g1";
color = <LED_COLOR_ID_GREEN>;
};
ledl_r1: led@3 {
reg = <3>;
label = "l:b1";
color = <LED_COLOR_ID_BLUE>;
};
ledl_b2: led@4 {
reg = <4>;
label = "l:r2";
color = <LED_COLOR_ID_RED>;
};
ledl_g2: led@5 {
reg = <5>;
label = "l:g2";
color = <LED_COLOR_ID_GREEN>;
};
ledl_r2: led@6 {
reg = <6>;
label = "l:b2";
color = <LED_COLOR_ID_BLUE>;
};
ledl_b3: led@7 {
reg = <7>;
label = "l:r3";
color = <LED_COLOR_ID_RED>;
};
ledl_g3: led@8 {
reg = <8>;
label = "l:g3";
color = <LED_COLOR_ID_GREEN>;
};
ledl_r3: led@9 {
reg = <9>;
label = "l:b3";
color = <LED_COLOR_ID_BLUE>;
};
ledl_b4: led@10 {
reg = <10>;
label = "l:r4";
color = <LED_COLOR_ID_RED>;
};
ledl_g4: led@11 {
reg = <11>;
label = "l:g4";
color = <LED_COLOR_ID_GREEN>;
};
ledl_r4: led@12 {
reg = <12>;
label = "l:b4";
color = <LED_COLOR_ID_BLUE>;
};
};
};
&i2c4 {
touchscreen@38 {
compatible = "focaltech,ft5426";
reg = <0x38>;
#address-cells = <1>;
#size-cells = <0>;
interrupt-parent = <&tlmm>;
interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
reset-gpios = <&tlmm 24 GPIO_ACTIVE_LOW>;
vcc-supply = <&vreg_l14b_3p2>;
iovcc-supply = <&vreg_l12b_1p8>;
pinctrl-0 = <&ts_p_rst_default &ts_p_int_default>;
pinctrl-1 = <&ts_p_rst_sleep &ts_p_int_sleep>;
pinctrl-names = "default", "sleep";
touchscreen-size-x = <1080>;
touchscreen-size-y = <1920>;
touchscreen-swapped-x-y;
touchscreen-inverted-x;
};
};
&i2c12 {
htr3212r: led-controller@3c {
compatible = "heroic,htr3212";
reg = <0x3c>;
#address-cells = <1>;
#size-cells = <0>;
sdb-gpios = <&tlmm 56 GPIO_ACTIVE_HIGH>;
vdd-supply = <&vdd_mcu_3v3>;
ledr_b1: led@1 {
reg = <1>;
label = "r:r1";
color = <LED_COLOR_ID_RED>;
};
ledr_g1: led@2 {
reg = <2>;
label = "r:g1";
color = <LED_COLOR_ID_GREEN>;
};
ledr_r1: led@3 {
reg = <3>;
label = "r:b1";
color = <LED_COLOR_ID_BLUE>;
};
ledr_b2: led@4 {
reg = <4>;
label = "r:r2";
color = <LED_COLOR_ID_RED>;
};
ledr_g2: led@5 {
reg = <5>;
label = "r:g2";
color = <LED_COLOR_ID_GREEN>;
};
ledr_r2: led@6 {
reg = <6>;
label = "r:b2";
color = <LED_COLOR_ID_BLUE>;
};
ledr_b3: led@7 {
reg = <7>;
label = "r:r3";
color = <LED_COLOR_ID_RED>;
};
ledr_g3: led@8 {
reg = <8>;
label = "r:g3";
color = <LED_COLOR_ID_GREEN>;
};
ledr_r3: led@9 {
reg = <9>;
label = "r:b3";
color = <LED_COLOR_ID_BLUE>;
};
ledr_b4: led@10 {
reg = <10>;
label = "r:r4";
color = <LED_COLOR_ID_RED>;
};
ledr_g4: led@11 {
reg = <11>;
label = "r:g4";
color = <LED_COLOR_ID_GREEN>;
};
ledr_r4: led@12 {
reg = <12>;
label = "r:b4";
color = <LED_COLOR_ID_BLUE>;
};
};
};
&i2c_hub_3 {
clock-frequency = <100000>;
status = "okay";
touchscreen@38 {
compatible = "focaltech,ft5452";
reg = <0x38>;
#address-cells = <1>;
#size-cells = <0>;
interrupt-parent = <&tlmm>;
interrupts = <15 IRQ_TYPE_EDGE_FALLING>;
reset-gpios = <&tlmm 14 GPIO_ACTIVE_LOW>;
vcc-supply = <&vdd_ts_3v0>;
iovcc-supply = <&vdd_ts_1v8>;
pinctrl-0 = <&ts_s_rst_default &ts_s_int_default>;
pinctrl-1 = <&ts_s_rst_sleep &ts_s_int_sleep>;
pinctrl-names = "default", "sleep";
touchscreen-size-x = <1080>;
touchscreen-size-y = <1240>;
touchscreen-swapped-x-y;
touchscreen-inverted-x;
no-regmap-bulk-read;
};
};
&mdss_dsi0 {
vdda-supply = <&vreg_l3e_1p2>;
status = "okay";
panel@0 {
reg = <0>;
compatible = "ch13726a,thor";
pinctrl-0 = <&dsi_p_rst_active>, <&dsi_p_te_active>;
pinctrl-1 = <&dsi_p_rst_suspend>, <&dsi_p_te_suspend>;
pinctrl-names = "default", "sleep";
vdd1v2-supply = <&vreg_l11b_1p2>;
vddio-supply = <&vdd_disp_1v8>;
vdd-supply = <&vreg_l13b_3p0>;
avdd-supply = <&vdd_disp2_2v8>;
reset-gpios = <&tlmm 133 GPIO_ACTIVE_HIGH>;
rotation = <90>;
port {
panel0_in: endpoint {
remote-endpoint = <&mdss_dsi0_out>;
};
};
};
};
&mdss_dsi0_out {
remote-endpoint = <&panel0_in>;
data-lanes = <0 1 2 3>;
};
&mdss_dsi0_phy {
vdds-supply = <&vreg_l1e_0p88>;
status = "okay";
};
&mdss_dsi1_out {
qcom,te-source = "mdp_vsync_s";
};
&remoteproc_adsp {
firmware-name = "qcom/sm8550/ayn/thor/adsp.mbn",
"qcom/sm8550/ayn/thor/adsp_dtb.mbn";
status = "okay";
};
&spk_amp_l {
firmware-name = "qcom/sm8550/ayn/thor/aw883xx_acf.bin";
};
&spk_amp_r {
firmware-name = "qcom/sm8550/ayn/thor/aw883xx_acf.bin";
};

View File

@@ -0,0 +1,361 @@
// SPDX-License-Identifier: BSD-3-Clause
/*
* Copyright (C) 2026-present ROCKNIX (https://github.com/ROCKNIX).
*/
/dts-v1/;
#include "qcs8550-ayn-common.dtsi"
/ {
model = "Retroid Pocket 6";
compatible = "retroidpocket,rp6", "qcom,qcs8550", "qcom,sm8550";
qcom,board-id = <0x1001f 0x00>;
qcom,msm-id = <0x25b 0x20000>;
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";
};
vdd_disp_1v8: vdd-disp-1v8-regulator {
compatible = "regulator-fixed";
regulator-name = "vdd_disp_1v8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
gpio = <&tlmm 70 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;
};
ts_avdd_3v0: regulator-ts-avdd-3v0 {
compatible = "regulator-fixed";
regulator-name = "ts_avdd_3v0";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
gpio = <&tlmm 144 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
ts_vddio_1v8: regulator-ts-vddio-1v8 {
compatible = "regulator-fixed";
regulator-name = "ts_vddio_1v8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
gpio = <&tlmm 102 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
multi-ledr1 {
compatible = "leds-group-multicolor";
color = <LED_COLOR_ID_RGB>;
function = "r1";
leds = <&ledr_r4>, <&ledr_g4>, <&ledr_b4>;
};
multi-ledl1 {
compatible = "leds-group-multicolor";
color = <LED_COLOR_ID_RGB>;
function = "l1";
leds = <&ledl_r4>, <&ledl_g4>, <&ledl_b4>;
};
multi-ledr2 {
compatible = "leds-group-multicolor";
color = <LED_COLOR_ID_RGB>;
function = "r2";
leds = <&ledr_r1>, <&ledr_g1>, <&ledr_b1>;
};
multi-ledl2 {
compatible = "leds-group-multicolor";
color = <LED_COLOR_ID_RGB>;
function = "l2";
leds = <&ledl_r1>, <&ledl_g1>, <&ledl_b1>;
};
multi-ledr3 {
compatible = "leds-group-multicolor";
color = <LED_COLOR_ID_RGB>;
function = "r3";
leds = <&ledr_r2>, <&ledr_g2>, <&ledr_b2>;
};
multi-ledl3 {
compatible = "leds-group-multicolor";
color = <LED_COLOR_ID_RGB>;
function = "l3";
leds = <&ledl_r2>, <&ledl_g2>, <&ledl_b2>;
};
multi-ledr4 {
compatible = "leds-group-multicolor";
color = <LED_COLOR_ID_RGB>;
function = "r4";
leds = <&ledr_r3>, <&ledr_g3>, <&ledr_b3>;
};
multi-ledl4 {
compatible = "leds-group-multicolor";
color = <LED_COLOR_ID_RGB>;
function = "l4";
leds = <&ledl_r3>, <&ledl_g3>, <&ledl_b3>;
};
};
&mdss_dsi0 {
vdda-supply = <&vreg_l3e_1p2>;
status = "okay";
panel@0 {
reg = <0>;
compatible = "retroid,pocket-6-panel";
pinctrl-0 = <&dsi_p_rst_active>, <&dsi_p_te_active>;
pinctrl-1 = <&dsi_p_rst_suspend>, <&dsi_p_te_suspend>;
pinctrl-names = "default", "sleep";
vddio-supply = <&vdd_disp_1v8>;
avdd-supply = <&vdd_disp_2v8>;
reset-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>;
backlight = <&backlight>;
rotation = <270>;
port {
panel0_in: endpoint {
remote-endpoint = <&mdss_dsi0_out>;
};
};
};
};
&mdss_dsi0_out {
remote-endpoint = <&panel0_in>;
data-lanes = <0 1 2 3>;
};
&mdss_dsi0_phy {
vdds-supply = <&vreg_l1e_0p88>;
status = "okay";
};
&mdss_dsi1 {
status = "disabled";
};
&i2c0 {
htr3212l: led-controller@3c {
compatible = "heroic,htr3212";
reg = <0x3c>;
#address-cells = <1>;
#size-cells = <0>;
sdb-gpios = <&tlmm 55 GPIO_ACTIVE_HIGH>;
vdd-supply = <&vdd_mcu_3v3>;
ledl_b1: led@1 {
reg = <1>;
label = "l:r1";
color = <LED_COLOR_ID_RED>;
};
ledl_g1: led@2 {
reg = <2>;
label = "l:g1";
color = <LED_COLOR_ID_GREEN>;
};
ledl_r1: led@3 {
reg = <3>;
label = "l:b1";
color = <LED_COLOR_ID_BLUE>;
};
ledl_b2: led@4 {
reg = <4>;
label = "l:r2";
color = <LED_COLOR_ID_RED>;
};
ledl_g2: led@5 {
reg = <5>;
label = "l:g2";
color = <LED_COLOR_ID_GREEN>;
};
ledl_r2: led@6 {
reg = <6>;
label = "l:b2";
color = <LED_COLOR_ID_BLUE>;
};
ledl_b3: led@7 {
reg = <7>;
label = "l:r3";
color = <LED_COLOR_ID_RED>;
};
ledl_g3: led@8 {
reg = <8>;
label = "l:g3";
color = <LED_COLOR_ID_GREEN>;
};
ledl_r3: led@9 {
reg = <9>;
label = "l:b3";
color = <LED_COLOR_ID_BLUE>;
};
ledl_b4: led@10 {
reg = <10>;
label = "l:r4";
color = <LED_COLOR_ID_RED>;
};
ledl_g4: led@11 {
reg = <11>;
label = "l:g4";
color = <LED_COLOR_ID_GREEN>;
};
ledl_r4: led@12 {
reg = <12>;
label = "l:b4";
color = <LED_COLOR_ID_BLUE>;
};
};
};
&i2c12 {
htr3212r: led-controller@3c {
compatible = "heroic,htr3212";
reg = <0x3c>;
#address-cells = <1>;
#size-cells = <0>;
sdb-gpios = <&tlmm 56 GPIO_ACTIVE_HIGH>;
vdd-supply = <&vdd_mcu_3v3>;
ledr_b1: led@1 {
reg = <1>;
label = "r:r1";
color = <LED_COLOR_ID_RED>;
};
ledr_g1: led@2 {
reg = <2>;
label = "r:g1";
color = <LED_COLOR_ID_GREEN>;
};
ledr_r1: led@3 {
reg = <3>;
label = "r:b1";
color = <LED_COLOR_ID_BLUE>;
};
ledr_b2: led@4 {
reg = <4>;
label = "r:r2";
color = <LED_COLOR_ID_RED>;
};
ledr_g2: led@5 {
reg = <5>;
label = "r:g2";
color = <LED_COLOR_ID_GREEN>;
};
ledr_r2: led@6 {
reg = <6>;
label = "r:b2";
color = <LED_COLOR_ID_BLUE>;
};
ledr_b3: led@7 {
reg = <7>;
label = "r:r3";
color = <LED_COLOR_ID_RED>;
};
ledr_g3: led@8 {
reg = <8>;
label = "r:g3";
color = <LED_COLOR_ID_GREEN>;
};
ledr_r3: led@9 {
reg = <9>;
label = "r:b3";
color = <LED_COLOR_ID_BLUE>;
};
ledr_b4: led@10 {
reg = <10>;
label = "r:r4";
color = <LED_COLOR_ID_RED>;
};
ledr_g4: led@11 {
reg = <11>;
label = "r:g4";
color = <LED_COLOR_ID_GREEN>;
};
ledr_r4: led@12 {
reg = <12>;
label = "r:b4";
color = <LED_COLOR_ID_BLUE>;
};
};
};
&i2c_hub_3 {
clock-frequency = <100000>;
status = "okay";
touchscreen@38 {
compatible = "focaltech,ft5426";
reg = <0x38>;
#address-cells = <1>;
#size-cells = <0>;
interrupt-parent = <&tlmm>;
interrupts = <15 IRQ_TYPE_EDGE_FALLING>;
reset-gpios = <&tlmm 14 GPIO_ACTIVE_LOW>;
vcc-supply = <&ts_avdd_3v0>;
iovcc-supply = <&ts_vddio_1v8>;
pinctrl-0 = <&ts_p_rst_default &ts_p_int_default>;
pinctrl-1 = <&ts_p_rst_sleep &ts_p_int_sleep>;
pinctrl-names = "default", "sleep";
touchscreen-size-x = <1080>;
touchscreen-size-y = <1920>;
touchscreen-inverted-y;
no-regmap-bulk-read;
};
};
&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";
};

View File

@@ -1830,7 +1830,7 @@ CONFIG_PCI_EPF_TEST=m
CONFIG_HAVE_PWRCTRL=y
CONFIG_PCI_PWRCTRL=y
CONFIG_PCI_PWRCTRL_PWRSEQ=m
CONFIG_PCI_PWRCTRL_SLOT=y
CONFIG_PCI_PWRCTRL_GENERIC=y
# CONFIG_CXL_BUS is not set
# CONFIG_PCCARD is not set
# CONFIG_RAPIDIO is not set

View File

@@ -0,0 +1,53 @@
From c9b89b339b96feedb47fa9485806433571261b1b Mon Sep 17 00:00:00 2001
From: Neil Armstrong <neil.armstrong@linaro.org>
Date: Fri, 6 Feb 2026 15:26:54 +0100
Subject: [PATCH] pci: pwrctrl: slot: fix dev_err_probe() usage
The code was not returning dev_err_probe() but dev_err_probe()
returns the error code, so simplify the code.
Suggested-by: Bartosz Golaszewski <brgl@kernel.org>
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
---
drivers/pci/pwrctrl/slot.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/drivers/pci/pwrctrl/slot.c b/drivers/pci/pwrctrl/slot.c
index 3320494b62d8..08e53243cdbd 100644
--- a/drivers/pci/pwrctrl/slot.c
+++ b/drivers/pci/pwrctrl/slot.c
@@ -40,17 +40,14 @@ static int pci_pwrctrl_slot_probe(struct platform_device *pdev)
ret = of_regulator_bulk_get_all(dev, dev_of_node(dev),
&slot->supplies);
- if (ret < 0) {
- dev_err_probe(dev, ret, "Failed to get slot regulators\n");
- return ret;
- }
+ if (ret < 0)
+ return dev_err_probe(dev, ret, "Failed to get slot regulators\n");
slot->num_supplies = ret;
ret = regulator_bulk_enable(slot->num_supplies, slot->supplies);
if (ret < 0) {
- dev_err_probe(dev, ret, "Failed to enable slot regulators\n");
regulator_bulk_free(slot->num_supplies, slot->supplies);
- return ret;
+ return dev_err_probe(dev, ret, "Failed to enable slot regulators\n");
}
ret = devm_add_action_or_reset(dev, devm_pci_pwrctrl_slot_power_off,
@@ -59,10 +56,9 @@ static int pci_pwrctrl_slot_probe(struct platform_device *pdev)
return ret;
clk = devm_clk_get_optional_enabled(dev, NULL);
- if (IS_ERR(clk)) {
+ if (IS_ERR(clk))
return dev_err_probe(dev, PTR_ERR(clk),
"Failed to enable slot clock\n");
- }
pci_pwrctrl_init(&slot->ctx, dev);
--
GitLab

View File

@@ -0,0 +1,58 @@
From ebc770d74b55452d29b7d89c3d0c693fa84b6e00 Mon Sep 17 00:00:00 2001
From: Neil Armstrong <neil.armstrong@linaro.org>
Date: Fri, 6 Feb 2026 15:30:36 +0100
Subject: [PATCH] pci: pwrctrl: rename pci-pwrctrl-slot as generic
The driver is pretty generic and would fit for either
PCI Slots or PCI devices connected to PCI ports, so rename
the driver and module as pci-pwrctrl-generic.
Suggested-by: Manivannan Sadhasivam <mani@kernel.org>
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
---
drivers/pci/pwrctrl/Kconfig | 8 ++++----
drivers/pci/pwrctrl/Makefile | 4 ++--
drivers/pci/pwrctrl/{slot.c => generic.c} | 0
3 files changed, 6 insertions(+), 6 deletions(-)
rename drivers/pci/pwrctrl/{slot.c => generic.c} (100%)
diff --git a/drivers/pci/pwrctrl/Kconfig b/drivers/pci/pwrctrl/Kconfig
index e0f999f299bb..0a93ac4cd11b 100644
--- a/drivers/pci/pwrctrl/Kconfig
+++ b/drivers/pci/pwrctrl/Kconfig
@@ -11,12 +11,12 @@ config PCI_PWRCTRL_PWRSEQ
select POWER_SEQUENCING
select PCI_PWRCTRL
-config PCI_PWRCTRL_SLOT
- tristate "PCI Power Control driver for PCI slots"
+config PCI_PWRCTRL_GENERIC
+ tristate "Generic PCI Power Control driver for PCI slots"
select PCI_PWRCTRL
help
- Say Y here to enable the PCI Power Control driver to control the power
- state of PCI slots.
+ Say Y here to enable the generic PCI Power Control driver to control
+ the power state of PCI slots.
This is a generic driver that controls the power state of different
PCI slots. The voltage regulators powering the rails of the PCI slots
diff --git a/drivers/pci/pwrctrl/Makefile b/drivers/pci/pwrctrl/Makefile
index 13b02282106c..f6bb4fb9a410 100644
--- a/drivers/pci/pwrctrl/Makefile
+++ b/drivers/pci/pwrctrl/Makefile
@@ -5,5 +5,5 @@ pci-pwrctrl-core-y := core.o
obj-$(CONFIG_PCI_PWRCTRL_PWRSEQ) += pci-pwrctrl-pwrseq.o
-obj-$(CONFIG_PCI_PWRCTRL_SLOT) += pci-pwrctrl-slot.o
-pci-pwrctrl-slot-y := slot.o
+obj-$(CONFIG_PCI_PWRCTRL_GENERIC) += pci-pwrctrl-generic.o
+pci-pwrctrl-generic-y := generic.o
diff --git a/drivers/pci/pwrctrl/slot.c b/drivers/pci/pwrctrl/generic.c
similarity index 100%
rename from drivers/pci/pwrctrl/slot.c
rename to drivers/pci/pwrctrl/generic.c
--
GitLab

View File

@@ -0,0 +1,31 @@
From a35feaf5bb558f420e96f7d5bb6e6078703e8b81 Mon Sep 17 00:00:00 2001
From: Neil Armstrong <neil.armstrong@linaro.org>
Date: Fri, 6 Feb 2026 15:32:42 +0100
Subject: [PATCH] pci: pwrctrl: generic: support for the UPD720201/UPD720202
USB 3.0 xHCI Host Controller
Enable the generic pwrctrl driver to control the power of the
PCIe UPD720201/UPD720202 USB 3.0 xHCI Host Controller.
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
---
drivers/pci/pwrctrl/generic.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/pci/pwrctrl/generic.c b/drivers/pci/pwrctrl/generic.c
index 08e53243cdbd..4a57a631362f 100644
--- a/drivers/pci/pwrctrl/generic.c
+++ b/drivers/pci/pwrctrl/generic.c
@@ -73,6 +73,10 @@ static const struct of_device_id pci_pwrctrl_slot_of_match[] = {
{
.compatible = "pciclass,0604",
},
+ /* Renesas UPD720201/UPD720202 USB 3.0 xHCI Host Controller */
+ {
+ .compatible = "pci1912,0014",
+ },
{ }
};
MODULE_DEVICE_TABLE(of, pci_pwrctrl_slot_of_match);
--
GitLab

View File

@@ -0,0 +1,25 @@
From 8c04211fd7b7dc2ac988280180946b237d9492ae Mon Sep 17 00:00:00 2001
From: Philippe Simons <simons.philippe@gmail.com>
Date: Wed, 18 Feb 2026 19:01:00 +0100
Subject: [PATCH] dts: sm8550 add pice1_port0 label
---
arch/arm64/boot/dts/qcom/sm8550.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/qcom/sm8550.dtsi b/arch/arm64/boot/dts/qcom/sm8550.dtsi
index 7724dba75db7..69bf9f191d73 100644
--- a/arch/arm64/boot/dts/qcom/sm8550.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8550.dtsi
@@ -2237,7 +2237,7 @@ opp-32000000 {
};
};
- pcie@0 {
+ pcie1_port0: pcie@0 {
device_type = "pci";
reg = <0x0 0x0 0x0 0x0 0x0>;
bus-range = <0x01 0xff>;
--
2.52.0

View File

@@ -1,356 +0,0 @@
From d4c61eea0faae54d278058b39c5c568078025e60 Mon Sep 17 00:00:00 2001
From: Teguh Sobirin <teguh@sobir.in>
Date: Mon, 27 Oct 2025 17:38:24 +0800
Subject: [PATCH] arm64: dts: qcom: Add AYN Odin2
Signed-off-by: Teguh Sobirin <teguh@sobir.in>
---
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 = <&lt8912_out>;
+ };
+ };
+ };
+
+ led_left_side: led-controller-1 {
+ compatible = "pwm-leds-multicolor";
+
+ multi-led {
+ label = "left-side";
+ color = <LED_COLOR_ID_RGB>;
+ max-brightness = <255>;
+
+ led-red {
+ color = <LED_COLOR_ID_RED>;
+ pwms = <&pwm_rgb_left 0>;
+ };
+
+ led-green {
+ color = <LED_COLOR_ID_GREEN>;
+ pwms = <&pwm_rgb_left 1>;
+ };
+
+ led-blue {
+ color = <LED_COLOR_ID_BLUE>;
+ pwms = <&pwm_rgb_left 2>;
+ };
+ };
+ };
+
+ led_left_joystick: led-controller-2 {
+ compatible = "pwm-leds-multicolor";
+
+ multi-led {
+ label = "left-joystick";
+ color = <LED_COLOR_ID_RGB>;
+ max-brightness = <255>;
+
+ led-red {
+ color = <LED_COLOR_ID_RED>;
+ pwms = <&pwm_rgb_left 6>;
+ };
+
+ led-green {
+ color = <LED_COLOR_ID_GREEN>;
+ pwms = <&pwm_rgb_left 7>;
+ };
+
+ led-blue {
+ color = <LED_COLOR_ID_BLUE>;
+ pwms = <&pwm_rgb_left 8>;
+ };
+ };
+ };
+
+ led_right_side: led-controller-3 {
+ compatible = "pwm-leds-multicolor";
+
+ multi-led {
+ label = "right-side";
+ color = <LED_COLOR_ID_RGB>;
+ max-brightness = <255>;
+
+ led-red {
+ color = <LED_COLOR_ID_RED>;
+ pwms = <&pwm_rgb_right 0>;
+ };
+
+ led-green {
+ color = <LED_COLOR_ID_GREEN>;
+ pwms = <&pwm_rgb_right 1>;
+ };
+
+ led-blue {
+ color = <LED_COLOR_ID_BLUE>;
+ pwms = <&pwm_rgb_right 2>;
+ };
+ };
+ };
+
+ led_right_joystick: led-controller-4 {
+ compatible = "pwm-leds-multicolor";
+
+ multi-led {
+ label = "right-joystick";
+ color = <LED_COLOR_ID_RGB>;
+ max-brightness = <255>;
+
+ led-red {
+ color = <LED_COLOR_ID_RED>;
+ pwms = <&pwm_rgb_right 6>;
+ };
+
+ led-green {
+ color = <LED_COLOR_ID_GREEN>;
+ pwms = <&pwm_rgb_right 7>;
+ };
+
+ led-blue {
+ color = <LED_COLOR_ID_BLUE>;
+ 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

View File

@@ -1,225 +0,0 @@
From 82580def34aa466b2ff118f15b8cc6c83c7664d5 Mon Sep 17 00:00:00 2001
From: Teguh Sobirin <teguh@sobir.in>
Date: Mon, 27 Oct 2025 17:38:53 +0800
Subject: [PATCH] arm64: dts: qcom: Add AYN Odin2 Mini
Signed-off-by: Teguh Sobirin <teguh@sobir.in>
---
arch/arm64/boot/dts/qcom/Makefile | 1 +
.../boot/dts/qcom/qcs8550-ayn-odin2mini.dts | 192 ++++++++++++++++++
2 files changed, 193 insertions(+)
create mode 100644 arch/arm64/boot/dts/qcom/qcs8550-ayn-odin2mini.dts
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 80e4d5b3a03d..010c44b21573 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -127,6 +127,7 @@ 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) += qcs8550-ayn-odin2mini.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-odin2mini.dts b/arch/arm64/boot/dts/qcom/qcs8550-ayn-odin2mini.dts
new file mode 100644
index 000000000000..c3f0219cdb3d
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/qcs8550-ayn-odin2mini.dts
@@ -0,0 +1,192 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2025, Teguh Sobirin.
+ */
+
+/dts-v1/;
+
+#include "qcs8550-ayn-common.dtsi"
+
+/ {
+ model = "AYN Odin 2 Mini";
+ compatible = "ayn,odin2mini", "qcom,qcs8550", "qcom,sm8550";
+ qcom,msm-id = <603 0x20000>;
+ qcom,board-id = <0x1001f 0>;
+
+ 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 = <&lt8912_out>;
+ };
+ };
+ };
+
+ 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_bl_5v0: vdd-bl-5v0-regulator {
+ compatible = "regulator-fixed";
+ regulator-name = "vdd_bl_5v0";
+
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+
+ gpio = <&tlmm 55 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 = "boe,xm91080g";
+
+ 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 = <&vreg_l11b_1p2>;
+ vddio-supply = <&vreg_l12b_1p8>;
+ vci-supply = <&vreg_l13b_3p0>;
+ disp-supply = <&vdd_disp_2v8>;
+ blvdd-supply = <&vdd_bl_5v0>;
+
+ reset-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>;
+
+ rotation = <90>;
+};
+
+&i2c0 {
+ backlight: backlight@46 {
+ compatible = "ayn,odin2miniled";
+ reg = <0x46>;
+ enable-gpios = <&tlmm 55 GPIO_ACTIVE_HIGH>;
+ vcc_1v2-supply = <&vreg_l11b_1p2>;
+ vcc_3v3-supply = <&vreg_bob2>;
+ };
+};
+
+&i2c4 {
+ touchscreen@1a {
+ compatible = "hynitron,cst340";
+ reg = <0x1a>;
+ interrupt-parent = <&tlmm>;
+ interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
+ reset-gpios = <&tlmm 24 GPIO_ACTIVE_LOW>;
+ vdd-supply = <&vreg_l2b_3p0>;
+
+ pinctrl-0 = <&ts_p_rst_default &ts_p_int_default>;
+ pinctrl-1 = <&ts_p_rst_sleep &ts_p_int_sleep>;
+ pinctrl-names = "default", "sleep";
+
+ touchscreen-size-x = <1920>;
+ touchscreen-size-y = <1080>;
+ touchscreen-swapped-x-y;
+ touchscreen-inverted-y;
+ };
+};
+
+&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";
+};
+
+&remoteproc_adsp {
+ firmware-name = "qcom/sm8550/ayn/odin2mini/adsp.mbn",
+ "qcom/sm8550/ayn/odin2mini/adsp_dtb.mbn";
+ status = "okay";
+};
+
+&spk_amp_l {
+ firmware-name = "qcom/sm8550/ayn/odin2mini/aw883xx_acf.bin";
+};
+
+&spk_amp_r {
+ firmware-name = "qcom/sm8550/ayn/odin2mini/aw883xx_acf.bin";
+};
+
--
2.34.1

Some files were not shown because too many files have changed in this diff Show More