RK3588S设备树问题
(为了高效,请按如下格式提问)硬件主板型号:ROC-RK3588S-PC
固件名称/系统版本:ROC-RK3588S-PC_Ubuntu20.04-Xfce-r31136_v1.4.0c_240905
自编的或固件下载地址:Firefly | 让科技更简单,让生活更智能
Log日志: (可以导出,用TXT附件上传)
问题描述及复现步骤:我想将MIPI接口中的
GPIO4_B0 I2C_SDA_TP1 (GPIO4_B0)
GPIO4_B1 I2C_SCL_TP1 (GPIO4_B1)
GPIO4_A6 LCD1_Power EN Output(GPIO4_A6)
GPIO4_A4 TP1_INT Input(GPIO4_A4)
GPIO4_A3 BL1_EN Output(GPIO4_A3)
GPIO4_B6 LCD1_BL_PWM
GPIO4_A0 LCD1_Reset Output(GPIO4_A0)
GPIO1_D0 SPI1_MISO_M2 (GPIO1_D0)设置为可以控制普通的GPIO作为输出;
将
SDA/GP1_A2I2C_SDA_TP0 (GPIO1_A2)
SCL/GP1_A3I2C_SCL_TP0(GPIO1_A3)
GPIO1_B3 LCD0_Power EN Output(GPIO1_B3)~
GPIO1_A7 TP0_INT_Input(GPIO1_A7)
GPIO3_D4 BL0_EN Output(GPIO3_D4)
GPIO1_D6LCD0_BL_PWM[pWM14_M2)Output(GPIO1_D6)
GPIO1_A1 LCD0_Reset Output(GPIO1_A1)~
GPIO1_B2 TP0_Reset_L Output(GPIO1_B2)
作为普通GPIO作为输入监测GPIO电平,我下载了设备树源码并修改了roc-rk3588s-pc-mipi101-BSD1218-A101KL68-v10.dtsi禁用了里面的相关复用,也修改了
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/dts-v1/;
#include "roc-rk3588s-pc-mipi101-BSD1218-A101KL68-v10.dtsi"
/ {
model = "Firefly ROC-RK3588S-PC V10 MIPI(Linux)";
compatible = "rockchip,roc-rk3588s-pc", "rockchip,rk3588";
/*
* 所有指定引脚配置为 GPIO 输入(自动 export 为 input)
*/
gpio_input_hog {
compatible = "gpio-hog";
pinctrl-names = "default";
pinctrl-0 = <&gpio_input_pins>;
gpios = <
11 GPIO_ACTIVE_HIGH/* GPIO1_A1 → gpio33 */
12 GPIO_ACTIVE_HIGH/* GPIO1_A2 → gpio34 */
13 GPIO_ACTIVE_HIGH/* GPIO1_A3 → gpio35 */
17 GPIO_ACTIVE_HIGH/* GPIO1_A7 → gpio39 */
1 10 GPIO_ACTIVE_HIGH/* GPIO1_B2 → gpio42 */
1 11 GPIO_ACTIVE_HIGH/* GPIO1_B3 → gpio43 */
1 30 GPIO_ACTIVE_HIGH/* GPIO1_D6 → gpio62 */
3 28 GPIO_ACTIVE_HIGH/* GPIO3_D4 → gpio124 */
>;
input;
status = "okay";
};
/*
* 其他 8 个 GPIO 输出下拉引脚(保持不变)
*/
gpio_output_hog {
compatible = "gpio-hog";
pinctrl-names = "default";
pinctrl-0 = <&your_gpio_output_pinctrl>;
gpios = <
4 8GPIO_ACTIVE_HIGH/* GPIO4_B0 */
4 9GPIO_ACTIVE_HIGH/* GPIO4_B1 */
4 6GPIO_ACTIVE_HIGH/* GPIO4_A6 */
4 4GPIO_ACTIVE_HIGH/* GPIO4_A4 */
4 3GPIO_ACTIVE_HIGH/* GPIO4_A3 */
4 14 GPIO_ACTIVE_HIGH/* GPIO4_B6 */
4 0GPIO_ACTIVE_HIGH/* GPIO4_A0 */
1 24 GPIO_ACTIVE_HIGH/* GPIO1_D0 */
>;
output-low;
status = "okay";
};
};
/* 禁用可能冲突的外设 */
&i2c4{ status = "disabled"; };
&i2c6{ status = "disabled"; };
&i2c7{ status = "disabled"; };
&pwm13 { status = "disabled"; };
&pwm14 { status = "disabled"; };
&spi1{ status = "disabled"; };
/* pinctrl 配置 */
&pinctrl {
/*
* 所有输入引脚:配置为 GPIO 模式,无上下拉
* (可根据硬件需求改为 &pcfg_pull_up 或自定义)
*/
gpio_input_pins: gpio-input-pins {
rockchip,pins =
<11 RK_FUNC_GPIO &pcfg_pull_none>,/* GPIO1_A1 */
<12 RK_FUNC_GPIO &pcfg_pull_none>,/* GPIO1_A2 */
<13 RK_FUNC_GPIO &pcfg_pull_none>,/* GPIO1_A3 */
<17 RK_FUNC_GPIO &pcfg_pull_none>,/* GPIO1_A7 */
<1 10 RK_FUNC_GPIO &pcfg_pull_none>,/* GPIO1_B2 */
<1 11 RK_FUNC_GPIO &pcfg_pull_none>,/* GPIO1_B3 */
<1 30 RK_FUNC_GPIO &pcfg_pull_none>,/* GPIO1_D6 */
<3 28 RK_FUNC_GPIO &pcfg_pull_none>;/* GPIO3_D4 */
};
/*
* 输出引脚:带下拉
*/
your_gpio_output_pinctrl: your-gpio-output-pinctrl {
rockchip,pins =
<48 RK_FUNC_GPIO &pcfg_pull_down>,/* GPIO4_B0 */
<49 RK_FUNC_GPIO &pcfg_pull_down>,/* GPIO4_B1 */
<46 RK_FUNC_GPIO &pcfg_pull_down>,/* GPIO4_A6 */
<44 RK_FUNC_GPIO &pcfg_pull_down>,/* GPIO4_A4 */
<43 RK_FUNC_GPIO &pcfg_pull_down>,/* GPIO4_A3 */
<4 14 RK_FUNC_GPIO &pcfg_pull_down>,/* GPIO4_B6 */
<40 RK_FUNC_GPIO &pcfg_pull_down>,/* GPIO4_A0 */
<1 24 RK_FUNC_GPIO &pcfg_pull_down>;/* GPIO1_D0 */
};
};
但是还有一些GPIO被占用比如GPIO1_A1 LCD0_Reset Output(GPIO1_A1)~
GPIO1_B3 LCD0_Power EN Output(GPIO1_B3)~
GPIO4_A6 LCD1_Power EN Output(GPIO4_A6)
GPIO4_A0 LCD1_Reset Output(GPIO4_A0)这些我应该修改哪些设备树,还有就是我是通过编译好修改后的设备树用U盘替换板子/boot/中对应的设备树的方法不知道有没有问题
可以看下这个设备树修改文档https://wiki.t-firefly.com/zh_CN/ROC-RK3588S-PC/linux_dts_manual.html 风火轮用户arhuy 发表于 2025-10-30 13:42
可以看下这个设备树修改文档https://wiki.t-firefly.com/zh_CN/ROC-RK3588S-PC/linux_dts_manual.html ...
我就是看着这个一步一找的普通的spi,i2c直接在外面disable就行,GPIO1_B3 LCD0_Power EN Output(GPIO1_B3)~GPIO1_A1 LCD0_Reset Output(GPIO1_A1)~GPIO4_A3 BL1_EN Output(GPIO4_A3)GPIO4_A6 LCD1_Power EN Output(GPIO4_A6)怎么也就是不行
/*
&lcd_rst {
status = "okay";
gpio = <&gpio1 RK_PA1 GPIO_ACTIVE_HIGH>;
};
&lcd_en {
status = "okay";
gpio = <&gpio1 RK_PB3 GPIO_ACTIVE_HIGH>;
};
*/
这明明被注释了但是还是被这个占用
		页: 
[1]