20240607给Toybrick的TB-RK3588开发板在Buildroot下适配瑞芯微7.86寸QXGATFT-LCD EDP屏幕1536x2048

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 等一系列框架的网络模型。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/687297.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

5、搭建前端项目

5.1 使用vite vue搭建 win r 打开终端 切换到你想要搭建的盘 npm init vitelatest跟着以下步骤取名即可 cd fullStackBlognpm installnpm run dev默认在 http://localhost:5173/ 下启动了 5.2 用vscode打开项目并安装需要的插件 1、删除多余的 HelloWorld.vue 文件 2、安装…

linux驱动学习(七)之混杂设备

需要板子一起学习的可以这里购买&#xff08;含资料&#xff09;&#xff1a;点击跳转 一、混杂设备 混杂设备也叫杂项设备&#xff0c;是对普通的字符设备(struct cdev)的一种封装,设计目的就是为了简化字符设备驱动设计的流程。具有以下特点&#xff1a; 1) 主设备号为10&a…

你工作中最推荐的 C/C++ 程序库有哪些,为什么?

我主要做计算力学&#xff0c;说说平时用的一些c库1、前处理划网格用netgen&#xff0c;非结构网格功能强大&#xff0c;有可执行的软件和供调用的库&#xff0c;使用方便。 刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「C的资料从专业入门到高级教程」&…

1898java疫情防控管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java 疫情防控管理系统 是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助采用了java设计&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统采用web模式&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发…

【JMeter接口测试工具】第一节.JMeter简介和安装【入门篇】

文章目录 前言一、JMeter简介 1.1 JMeter基本介绍 1.2 JMeter优缺点二、JMeter安装 2.1 JMeter安装步骤 2.2 JMeter环境配置三、项目介绍 3.1 项目简介 3.2 API接口清单总结 前言 一、JMeter简介 1.1 JMeter基本介绍 JMeter 是 Apache 组织使用…

【NoSQL】Redis练习

1、redis的编译安装 systemctl stop firewalld systemctl disable firewalld setenforce 0 yum install -y gcc gcc-c make wget cd /opt wget https://download.redis.io/releases/redis-5.0.7.tar.gz tar zxvf redis-5.0.7.tar.gz -C /opt/cd /opt/redis-5.0.7/ # 编译 make…

【性能测试】Jmeter —— jmeter计数器

jmeter计数器 如果需要引用的数据量较大&#xff0c;且要求不能重复或者需要递增&#xff0c;那么可以使用计数器来实现 如&#xff1a;新增功能&#xff0c;要求名称不能重复 1&#xff0c;新增计数器 计数器&#xff1a;允许用户创建一个在线程组之内都可以被引用的计数器…

QComboBox条目可选择状态

有时候下拉框需要根据情况&#xff0c;将某些条目设为不可点击状态&#xff0c;或者动态切换为可点击状态&#xff0c;可采用以下方法。 //item1可选ui->comboBox->setItemData(0, QVariant(-1), Qt::UserRole-1);//item2不可选ui->comboBox->setItemData(1, QVari…

2024年5大制作AI电子手册工具推荐

AI电子手册作为一种结合了人工智能技术和传统电子手册功能的新型工具&#xff0c;逐渐成为了企业进行知识管理和信息传递的重要工具&#xff0c;为企业提高效率、优化用户体验。在本文中&#xff0c;LookLook同学将简单介绍一下什么是AI电子手册、对企业有什么好处&#xff0c;…

官网万词霸屏推广 轻松实现百度万词霸屏源码系统 带完整的安装代码包以及搭建教程

系统概述 官网万词霸屏推广源码系统是一款基于先进技术研发的综合性 SEO 工具。它的设计理念是通过智能化的算法和策略&#xff0c;帮助用户快速提升网站在百度等搜索引擎中的排名&#xff0c;实现大量关键词的霸屏效果。该系统整合了多种优化技术&#xff0c;包括关键词研究、…

Kali linux学习入门

Kali linux学习入门 文章目录 Kali linux学习入门Kali Linux简介Kali Linux工具篇Kali Docker安装Docker 更换国内镜像源Kali 安装 docker compose Kali Linux文档篇Kali Linux 社区篇 Kali Linux简介 Kali Linux是专门用于渗透测试linux操作系统&#xff0c;它由BackTrack发展…

【List,ArrayList与顺序表】

目录 1&#xff0c;什么是List 2&#xff0c;List的使用 3&#xff0c;线性表 4&#xff0c;顺序表 4.1 接口的实现 5&#xff0c; ArrayList简介 6&#xff0c;ArrayList的使用 6.1 ArrayList的构造方法 6.2 ArrayList的常见操作 6.3 ArrayList的遍历 7&#xff0c;…

【数据分享】中国高技术产业统计年鉴(2023年)

大家好&#xff01;今天我要向大家介绍一份重要的高技术产业发展情况统计数据资源——《中国高技术产业统计年鉴》。这份年鉴涵盖了从2023年中国高技术产业发展情况的全面数据&#xff0c;并以多格式提供免费下载。&#xff08;无需分享朋友圈即可获取&#xff09; 数据介绍 …

混凝土结构中最小配筋率45ft/fy怎么来的?

文章目录 0. 背景1. 原理解析2. 总结 0. 背景 上学的时候就对混凝土结构规范中关于最小配筋率“ 45 f t / f y 45f_t/f_y 45ft​/fy​”的表述很好奇&#xff0c;今天终于看到解释了。原文来自这里&#xff0c;喜欢的可以关注原作者。 按照原作者的说法&#xff0c;本文的解释…

基于SpringBoot3+Vue3+原生小程序的设计与实现

大家好&#xff0c;我是程序员小孟。 最近开发了一个宠物的小程序&#xff0c;含有详细的文档、源码、项目非常的不错&#xff01; 一&#xff0c;系统的技术栈 二&#xff0c;项目的部署教程 前端部署包&#xff1a;npm i 启动程序&#xff1a;npm run dev 注意事项&…

Python中的@staticmethod和@classmethod装饰器

名词解释 本文主要介绍静态方法staticmethod和类方法classmethod在类中的应用&#xff0c;在介绍这两个函数装饰器之前&#xff0c;先介绍类中的几个名词&#xff0c;便于后面的理解&#xff1a; 类对象&#xff1a;定义的类就是类对象 类属性&#xff1a;定义在__init__ 外…

UML交互图-序列图

概述 序列图又称为时序图、活动序列图&#xff0c;它是一种详细表示对象之间及对象与参与者实例之间交互的图,它由一组协作的对象(或参与者实例)及它们之间可发送的消息组成&#xff0c;它强调消息之间的时间顺序。 序列图主要用于按照交互发生的一系列顺序&#xff0c;显示对…

【C语言】03.分支结构

本文用以介绍分支结构&#xff0c;主要的实现方式为if语句和switch语句。 一、if语句 1.1 if语句 if (表达式)语句表达式为真则执行语句&#xff0c;为假就不执行。在C语言中&#xff0c;0表示假&#xff0c;非0表示真.下图表示if的执行过程&#xff1a; 1.2 else语句 当…

六位一线AI工程师总结大模型应用摸爬滚打一年的心得,网友:全程高能!

六位一线AI工程师和创业者&#xff0c;把在大模型应用开发上摸爬滚打一整年的心得&#xff0c;全&#xff01;分&#xff01;享&#xff01;了&#xff01; &#xff08;奇怪的六一儿童节大礼包出现了&#xff09; 这篇干货长文&#xff0c;一时间成为开发者社区热议的话题。…

大数据之HDFS磁盘扩容(linux磁盘扩容)

之所以扩容,是因为当前大数据平台已经接入了不同来源的数据,当执行mapreduce任务时,会发生磁盘爆满,导致hdfs爆红 具体扩容方案如下: 1、查看云磁盘分区情况 fdisk -l . 可以从图看出&#xff1a; /dev/vda 数据盘磁盘容量为21.5GB&#xff0c;包含/dev/vda1分区 /dev/vdb 数…