20240607给Toybrick的TB-RK3588开发板在Buildroot下适配瑞芯微7.86寸QXGATFT-LCD EDP屏幕1536x2048
 2024/6/7 13:59
 1、背光部分:
&backlight {
     pwms = <&pwm2 0 25000 0>;
     status = "okay";
 };
&pwm2 {
     status = "okay";
 };
 2、DTS部分
 Z:\rk3588-toybrick-x0-linux20240508\kernel\arch\arm64\boot\dts\rockchip\rk3588-evb7-v11-linux.dts
 Z:\repo_RK3588_Buildroot20240508\kernel\arch\arm64\boot\dts\rockchip\rk3588-toybrick-x0-linux.dts
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 /*
  * Copyright (c) 2021 Rockchip Electronics Co., Ltd.
  *
  */
/dts-v1/;
//#include "rk3588-toybrick-x0.dtsi"
 //Z:\rk3588-toybrick-x0-linux20240508\kernel\arch\arm64\boot\dts\rockchip\rk3588-toybrick-edp-x0.dtsi
 #include "rk3588-toybrick-edp-x0.dtsi"
 #include "rk3588-linux.dtsi"
 //#include "rk3588-toybrick-imx258.dtsi"
 / {
     model = "Rockchip RK3588 TOYBRICK X10 Board";
     compatible = "rockchip,rk3588-toybrick-x10-linux", "rockchip,rk3588";
 };

 3、EDP的部分和TP部分:
 Z:\rk3588-toybrick-x0-linux20240508\kernel\arch\arm64\boot\dts\rockchip\rk3588-toybrick-x0.dtsi
Z:\rk3588-toybrick-x0-linux20240508\kernel\arch\arm64\boot\dts\rockchip\rk3588-toybrick-edp-x0.dtsi
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 /*
  * Copyright (c) 2021 Rockchip Electronics Co., Ltd.
  *
  */
#include "dt-bindings/usb/pd.h"
 #include "rk3588.dtsi"
 #include "rk3588-toybrick.dtsi"
 #include "rk3588-rk806-single.dtsi"
/ {
     es8388_sound: es8388-sound {
         status = "okay";
         compatible = "simple-audio-card";
         simple-audio-card,format = "i2s";
         simple-audio-card,mclk-fs = <256>;
         simple-audio-card,name = "rockchip,es8388-codec";
         simple-audio-card,dai-link@0 {
             format = "i2s";
             cpu {
                 sound-dai = <&i2s0_8ch>;
             };
             codec {
                 sound-dai = <&es8388>;
             };
         };
     };
    pcie20_avdd0v85: pcie20-avdd0v85 {
         compatible = "regulator-fixed";
         regulator-name = "pcie20_avdd0v85";
         regulator-boot-on;
         regulator-min-microvolt = <850000>;
         regulator-max-microvolt = <850000>;
         vin-supply = <&vdd_0v85_s0>;//csq
     };
    pcie20_avdd1v8: pcie20-avdd1v8 {
         compatible = "regulator-fixed";
         regulator-name = "pcie20_avdd1v8";
         regulator-boot-on;
         regulator-min-microvolt = <1800000>;
         regulator-max-microvolt = <1800000>;
         vin-supply = <&avcc_1v8_s0>;
     };
    pcie30_avdd0v75: pcie30-avdd0v75 {
         compatible = "regulator-fixed";
         regulator-name = "pcie30_avdd0v75";
         regulator-boot-on;
         regulator-min-microvolt = <750000>;
         regulator-max-microvolt = <750000>;
         vin-supply = <&avdd_0v75_s0>;
     };
    pcie30_avdd1v8: pcie30-avdd1v8 {
         compatible = "regulator-fixed";
         regulator-name = "pcie30_avdd1v8";
         regulator-boot-on;
         regulator-min-microvolt = <1800000>;
         regulator-max-microvolt = <1800000>;
         vin-supply = <&avcc_1v8_s0>;
     };
    rk_headset: rk-headset {
         status = "okay";
         compatible = "rockchip_headset";
         headset_gpio = <&gpio1 RK_PD5 GPIO_ACTIVE_LOW>;
         pinctrl-names = "default";
         pinctrl-0 = <&hp_det>;
         io-channels = <&saradc 3>;
     };
    vbus5v0_typec: vbus5v0-typec {
         compatible = "regulator-fixed";
         regulator-name = "vbus5v0_typec";
         regulator-min-microvolt = <5000000>;
         regulator-max-microvolt = <5000000>;
         enable-active-high;
         gpio = <&gpio4 RK_PD0 GPIO_ACTIVE_HIGH>;
         vin-supply = <&vcc5v0_usb>;
         pinctrl-names = "default";
         pinctrl-0 = <&typec5v_pwren>;
     };
    vcc3v3_lcd_n: vcc3v3-lcd0-n {
         compatible = "regulator-fixed";
         regulator-name = "vcc3v3_lcd0_n";
         regulator-boot-on;
         enable-active-high;
         gpio = <&gpio1 RK_PC4 GPIO_ACTIVE_HIGH>;
         vin-supply = <&vcc_1v8_s0>;
     };
    vcc3v3_pcie30: vcc3v3-pcie30 {
         compatible = "regulator-fixed";
         regulator-name = "vcc3v3_pcie30";
         regulator-min-microvolt = <3300000>;
         regulator-max-microvolt = <3300000>;
         enable-active-high;
         gpios = <&gpio3 RK_PC3 GPIO_ACTIVE_HIGH>;
         startup-delay-us = <5000>;
         vin-supply = <&vcc12v_dcin>;
     };
    vcc5v0_host: vcc5v0-host {
         compatible = "regulator-fixed";
         regulator-name = "vcc5v0_host";
         regulator-boot-on;
         regulator-always-on;
         regulator-min-microvolt = <5000000>;
         regulator-max-microvolt = <5000000>;
         enable-active-high;
         gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>;
         vin-supply = <&vcc5v0_usb>;
         pinctrl-names = "default";
         pinctrl-0 = <&vcc5v0_host_en>;
     };
    vcc_mipicsi0: vcc-mipicsi0-regulator {
         compatible = "regulator-fixed";
         gpio = <&gpio1 RK_PB1 GPIO_ACTIVE_HIGH>;
         pinctrl-names = "default";
         pinctrl-0 = <&mipicsi0_pwr>;
         regulator-name = "vcc_mipicsi0";
         enable-active-high;
     };
    vcc_mipicsi1: vcc-mipicsi1-regulator {
         compatible = "regulator-fixed";
         gpio = <&gpio1 RK_PB2 GPIO_ACTIVE_HIGH>;
         pinctrl-names = "default";
         pinctrl-0 = <&mipicsi1_pwr>;
         regulator-name = "vcc_mipicsi1";
         enable-active-high;
     };
    vcc_mipidcphy0: vcc-mipidcphy0-regulator {
         compatible = "regulator-fixed";
         gpio = <&gpio2 RK_PC4 GPIO_ACTIVE_HIGH>;
         pinctrl-names = "default";
         pinctrl-0 = <&mipidcphy0_pwr>;
         regulator-name = "vcc_mipicsi1";
         enable-active-high;
     };
    wireless_bluetooth: wireless-bluetooth {
         compatible = "bluetooth-platdata";
         clocks = <&hym8563>;
         clock-names = "ext_clock";
         uart_rts_gpios = <&gpio3 RK_PA4 GPIO_ACTIVE_LOW>;
         pinctrl-names = "default", "rts_gpio";
         pinctrl-0 = <&uart8m1_rtsn>, <&bt_reset_gpio>, <&bt_wake_gpio>, <&bt_irq_gpio>;
         pinctrl-1 = <&uart8_gpios>;
         BT,reset_gpio    = <&gpio3 RK_PA6 GPIO_ACTIVE_HIGH>;
         BT,wake_gpio     = <&gpio3 RK_PA1 GPIO_ACTIVE_HIGH>;
         BT,wake_host_irq = <&gpio3 RK_PA0 GPIO_ACTIVE_HIGH>;
         status = "okay";
     };
    wireless_wlan: wireless-wlan {
         compatible = "wlan-platdata";
         wifi_chip_type = "ap6255";
         pinctrl-names = "default";
         pinctrl-0 = <&wifi_host_wake_irq>, <&wifi_poweren_gpio>;
         WIFI,host_wake_irq = <&gpio3 RK_PA7 GPIO_ACTIVE_HIGH>;
         WIFI,poweren_gpio = <&gpio3 RK_PB1 GPIO_ACTIVE_HIGH>;
         status = "okay";
     };
    panel-edp {
         compatible = "innolux,p120zdg-bf4", "simple-panel";
         backlight = <&backlight>;
         power-supply = <&vcc3v3_lcd_edp>;
         prepare-delay-ms = <120>;
         enable-delay-ms = <120>;
         unprepare-delay-ms = <500>;
         disable-delay-ms = <120>;
         width-mm = <254>;
         height-mm = <169>;
         panel-timing {
             clock-frequency = <200000000>;
             hactive = <1536>;
             vactive = <2048>;
             hfront-porch = <12>;
             hsync-len = <16>;
             hback-porch = <48>;
             vfront-porch = <8>;
             vsync-len = <4>;
             vback-porch = <8>;
             hsync-active = <0>;
             vsync-active = <0>;
             de-active = <0>;
             pixelclk-active = <0>;
         };
        port {
             panel_in_edp: endpoint {
                 remote-endpoint = <&edp_out_panel>;
             };
         };
     };
    vcc3v3_lcd_edp: vcc3v3-lcd-edp {
         compatible = "regulator-fixed";
         regulator-name = "vcc3v3_lcd_edp";
         gpio = <&gpio1 RK_PA5 GPIO_ACTIVE_HIGH>;
         enable-active-high;
         vin-supply = <&vcc_3v3_s3>;
     };
 };
 &dsi0_in_vp2 {
     status = "disabled";
 };
&dsi0_in_vp3 {
     status = "disabled";
 };
&edp1 {
     force-hpd;
     status = "okay";
     ports {
         port@1 {
             reg = <1>;
             edp_out_panel: endpoint {
             remote-endpoint = <&panel_in_edp>;
             };
         };
     };
 };
&edp1_in_vp2 {
     status = "okay";
 };
&hdptxphy1 {
     status = "okay";
 };
&dsi0_panel {
     power-supply = <&vcc3v3_lcd_n>;
     reset-gpios = <&gpio2 RK_PB4 GPIO_ACTIVE_LOW>;
     pinctrl-names = "default";
     pinctrl-0 = <&lcd_rst_gpio>;
 };
&i2c6 {
     status = "okay";
     gt1x: gt1x@14 {
         compatible = "goodix,gt1x";
         reg = <0x14>;
         pinctrl-names = "default";
         pinctrl-0 = <&touch_gpio>;
         goodix,rst-gpio = <&gpio0 RK_PD5 GPIO_ACTIVE_HIGH>;
         goodix,irq-gpio = <&gpio0 RK_PB0 IRQ_TYPE_LEVEL_LOW>;
     };
    gsl3673: gsl3673@40 {
         compatible = "GSL,GSL3673";
         reg = <0x40>;
         screen_max_x = <1536>;
         screen_max_y = <2048>;
         irq_gpio_number = <&gpio1 RK_PA6 IRQ_TYPE_LEVEL_LOW>;
         rst_gpio_number = <&gpio3 RK_PC6 GPIO_ACTIVE_HIGH>;
     };
 };



Buildroot下的效果图:(HDMI+EDP双显示:)


 4、Toybrick的TB-RK3588开发板在Android12下适配瑞芯微7.86寸QXGATFT-LCD EDP屏幕于此类似:
 Y:\android12-rk-outside\kernel-5.10\arch\arm64\boot\dts\rockchip\rk3588-toybrick-x0-android.dts
 Y:\repo_toybrick_android12\kernel-5.10\arch\arm64\boot\dts\rockchip\rk3588-toybrick-x0-android.dts
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 /*
  * Copyright (c) 2021 Rockchip Electronics Co., Ltd.
  *
  */
/dts-v1/;
//#include "rk3588-toybrick-x0.dtsi"
 #include "rk3588-toybrick-edp-x0.dtsi"
 #include "rk3588-android.dtsi"
 #include "rk3588-toybrick-imx258.dtsi"
/ {
     model = "Rockchip RK3588 TOYBRICK LP4 X10 Board";
     compatible = "rockchip,rk3588-toybrick-x10-android", "rockchip,rk3588";
 };

 【请参考Buildroot,貌似完全一样的!】
Y:\android12-rk-outside\kernel-5.10\arch\arm64\boot\dts\rockchip\rk3588-toybrick-edp-x0.dtsi
 Y:\android12-rk-outside\kernel-5.10\arch\arm64\boot\dts\rockchip\rk3588-toybrick-x0.dtsi
Android12下的效果图:(HDMI+EDP双显示:)


参考资料:
 https://blog.csdn.net/RYF6666/article/details/134603713
 RK3588调试EDP
 https://item.taobao.com/item.htm?_u=7ju3ku5a4e&id=655311470417&spm=a1z09.2.0.0.2ede2e8deLzeFJ
 瑞芯微7.86寸QXGATFT-LCD EDP屏幕1536x2048适配3568x开发板




 https://t.rock-chips.com/wiki/CN/tb-rk3588x/01%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B.html
 开发板概况?
 TB-RK3588X采用瑞芯微最新旗舰SOC芯片RK3588。RK3588是一款采用ARM架构的通用型SoC,集成了四核Cortex-A76和四核Cortex-A55 CPU,G610 MP4 GPU,以及6 TOPs算力的NPU。
 https://t.rock-chips.com/wiki.php?filename=%E6%9D%BF%E7%BA%A7%E6%8C%87%E5%8D%97/TB-RK3588X
 一、产品简介
 TB-RK3588X采用瑞芯微最新旗舰SOC芯片RK3588。RK3588是一款采用ARM架构的通用型SoC,集成了四核Cortex-A76和四核Cortex-A55 CPU,G610 MP4 GPU,以及6 TOPs算力的NPU。内置多种功能强大的嵌入式硬件引擎,支持8K@60fps的H.265 和VP9解码器、8K@30fps的H.264 解码器和4K@60fps的AV1解码器;支持8K@30fps 的H.264和H.265编码器,高质量的JPEG编码器/解码器,专门的图像预处理器和后处理器。RK3588还引入了新一代完全基于硬件的最大4800万像素ISP(图像信号处理器),实现了许多算法加速器,如HDR、3A、LSC、3DNR、2DNR、锐化、dehaze、鱼眼校正、伽马校正等,在图形后期处理方面拥有广泛应用。RK3588集成了瑞芯微自研的第三代NPU处理器,可支持 INT4/INT8/INT16/FP16 混合运算,其强大的兼容性,可以轻松转换基于TensorFlow / MXNet/PyTorch/Caffe 等一系列框架的网络模型。