当前位置: 首页 > news >正文

20251222给飞凌OK3588-C开发板适配Rockchip原厂的Buildroot【linux-6.1】系统时拿掉type-C0的fusb302时适配adb功能dr_mode = “periph

20251222给飞凌OK3588-C开发板适配Rockchip原厂的Buildroot【linux-6.1】系统时拿掉type-C0的fusb302时适配adb功能dr_mode = "peripheral";
2025/12/22 20:28


缘起:给飞凌OK3588-C开发板适配Rockchip原厂的Buildroot【linux-6.1】后,type-C0口改成4线的USB2.0口了。
可以刷机,由于没有fusb302芯片,相关DTS也需要做响应的修改以便使用adb功能!

虽然DEBUG能用,adb的功能属于锦上添花的功能,但是有些时候adb不能用还是特别不得劲!


需要实测开发板丝印ETH1芯片RTL8211F-CG的网速。
通过ifconfig确认为eth0。


需要使用ov5645的驱动框架来适配LVDS接口的105机芯。
按照以前的经验,首先关闭I2C的读写!
结果,肯定会出现某些地方遗漏的,只能通过编译器来检查问题了!


当你把荣品RD-RK3588开发板重新适配一把,就相当于从头做了一个项目:【荣品RD-RK3588开发板】。
当然,开发板的功能都是好的,你免除了调试的过程,也就没有解决相关硬件出错的经验/机会了!


1、根据前面的调试的适配type-C1的USB3.0功能【接热像仪】的经验。
可以知道:type-C0拿掉type-C0的fusb302时适配adb功能,可能只需要如下【飞凌linux R4/Buildroot】3个代码块!

E:\fpga_OK3588_Linux_fs\kernel\arch\arm64\boot\dts\rockchip\OK3588-C-common.dtsi

&usbdp_phy0_u3 {
status = "okay";
};

&usbdrd3_0 {
status = "okay";
};

&usbdrd_dwc3_0 {
dr_mode = "peripheral";
usb-role-switch;
status = "okay";
port {
#address-cells = <1>;
#size-cells = <0>;
dwc3_0_role_switch: endpoint@0 {
reg = <0>;
remote-endpoint = <&usbc0_role_sw>;
};
};
};


2、使用Rockchip瑞芯微原厂的SDK,先适配好OK3588-C开发板,暂时先拼比了type-C0。
Y:\new_disk_4t\wyb\A8\rk3588_linux6.1_release_v1.2.0_20241220\kernel-6.1\arch\arm64\boot\dts\rockchip\rk3588-evb7-v11.dtsi
//&usbdrd_dwc3_0 {
// dr_mode = "otg";
// usb-role-switch;
// port {
// #address-cells = <1>;
// #size-cells = <0>;
// dwc3_0_role_switch: endpoint@0 {
// reg = <0>;
// remote-endpoint = <&usbc0_role_sw>;
// };
// };
//};

修改为:

&usbdp_phy0_u3 {
status = "okay";
};

&usbdrd3_0 {
status = "okay";
};

&usbdrd_dwc3_0 {
dr_mode = "peripheral";
usb-role-switch;
status = "okay";
port {
#address-cells = <1>;
#size-cells = <0>;
dwc3_0_role_switch: endpoint@0 {
reg = <0>;
//remote-endpoint = <&usbc0_role_sw>;
};
};
};


3、
&u2phy3_host {
phy-supply = <&vcc5v0_host>;
};

&usbdp_phy0 {
orientation-switch;
svid = <0xff01>;
sbu1-dc-gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_HIGH>;
sbu2-dc-gpios = <&gpio4 RK_PA1 GPIO_ACTIVE_HIGH>;

port {
#address-cells = <1>;
#size-cells = <0>;
usbdp_phy0_orientation_switch: endpoint@0 {
reg = <0>;
remote-endpoint = <&usbc0_orien_sw>;
};

usbdp_phy0_dp_altmode_mux: endpoint@1 {
reg = <1>;
remote-endpoint = <&dp_altmode_mux>;
};
};
};

&usbdp_phy1 {
rockchip,dp-lane-mux = <0 1 2 3>;
};

&usbdrd_dwc3_0 {
dr_mode = "otg";
usb-role-switch;
port {
#address-cells = <1>;
#size-cells = <0>;
dwc3_0_role_switch: endpoint@0 {
reg = <0>;
remote-endpoint = <&usbc0_role_sw>;
};
};
};

修改为:

&u2phy3_host {
phy-supply = <&vcc5v0_host>;
};

//&usbdp_phy0 {
// orientation-switch;
// svid = <0xff01>;
// sbu1-dc-gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_HIGH>;
// sbu2-dc-gpios = <&gpio4 RK_PA1 GPIO_ACTIVE_HIGH>;
//
// port {
// #address-cells = <1>;
// #size-cells = <0>;
// usbdp_phy0_orientation_switch: endpoint@0 {
// reg = <0>;
// remote-endpoint = <&usbc0_orien_sw>;
// };
//
// usbdp_phy0_dp_altmode_mux: endpoint@1 {
// reg = <1>;
// remote-endpoint = <&dp_altmode_mux>;
// };
// };
//};

&usbdp_phy1 {
status = "okay";
orientation-switch;
rockchip,dp-lane-mux = <2 3>;
svid = <0xff01>;
sbu1-dc-gpios = <&gpio4 RK_PA1 GPIO_ACTIVE_HIGH>;
sbu2-dc-gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_HIGH>;

port {
#address-cells = <1>;
#size-cells = <0>;
usbdp_phy1_orientation_switch: endpoint@0 {
reg = <0>;
//remote-endpoint = <&usbc1_orien_sw>;
};

usbdp_phy1_dp_altmode_mux: endpoint@1 {
reg = <1>;
//remote-endpoint = <&dp1_altmode_mux>;
};
};
};


&usbdp_phy0_u3 {
status = "okay";
};

&usbdrd3_0 {
status = "okay";
};

&usbdrd_dwc3_0 {
dr_mode = "peripheral";
usb-role-switch;
status = "okay";
port {
#address-cells = <1>;
#size-cells = <0>;
dwc3_0_role_switch: endpoint@0 {
reg = <0>;
//remote-endpoint = <&usbc0_role_sw>;
};
};
};


//&u2phy0 {
// status = "okay";
//};


http://www.cnnetsun.cn/news/189033.html

相关文章:

  • DeTikZify:3分钟让手绘草图变身高品质LaTeX图表
  • WorkshopDL终极指南:3步轻松获取1000+款游戏模组
  • Python金融数据利器:mootdx通达信数据读取完整指南
  • 如何快速获取中国行政区划数据:从新手到专家的完整指南
  • 鸣潮自动化神器:3分钟教会你解放双手的智能游戏助手
  • RMT驱动在ESP-IDF中的高级应用技巧
  • 胎牛血清常见问题解答
  • WorkshopDL:解锁Steam创意工坊的跨平台下载神器
  • 【毕业设计】基于springboot的老人健康信息管理系统的设计与实现老人信息、护理服务、健康监测、员工管理、家属沟通(源码+文档+远程调试,全bao定制等)
  • 【课程设计/毕业设计】基于springboot的老人健康信息管理系统的设计与实现用户数据、健康内容、交互记录【附源码、数据库、万字文档】
  • Thorium浏览器:极致性能与隐私保护的终极选择
  • HashCalculator终极指南:3分钟掌握文件指纹批量管理技巧
  • WorkshopDL完全指南:轻松下载Steam创意工坊模组
  • 信号回流路径设计原理:快速理解PCB布局
  • VRM模型转换实践指南:从基础构建到高级动画制作
  • 3步搞定MusicBee歌词插件:网易云音乐歌词同步终极指南
  • 手机号转QQ号终极指南:3步完成免费快速查询
  • 星图云开发者平台功能详解 | 业务逻辑编辑器:一拖一连,5分钟搞定复杂开发
  • Android存储限制突破指南:NoStorageRestrict模块深度解析
  • Thorium浏览器:重新定义Chromium性能边界的终极解决方案
  • 绝区零智能助手:全自动任务执行解决方案
  • 终极指南:如何在Android 11+系统中优化存储访问体验?
  • 3步搞定MusicBee网易云歌词插件:让音乐播放更完美
  • HashCalculator终极指南:3步掌握文件哈希值批量计算与校验
  • Minecraft终极光影指南:简单几步让方块世界焕然一新
  • 单机游戏分屏革命:Nucleus Co-Op让一台电脑变多人游戏厅
  • 自动驾驶硬件方案成本控制:从零开始的智能驾驶构建指南
  • 重返未来:1999终极自动化助手:彻底告别重复操作的游戏神器
  • 5分钟精通Chrome全页截图:Full Page Screen Capture终极使用指南
  • Nintendo Switch存储管理完全指南:从基础备份到高级分区优化