|
|
(为了高效,请按如下格式提问)
硬件主板型号: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)[pull up resistance 2.2K]
GPIO4_B1 I2C_SCL_TP1 (GPIO4_B1)[pull up resistance 2.2K]
GPIO4_A6 LCD1_Power EN Output(GPIO4_A6)
GPIO4_A4 TP1_INT Input(GPIO4_A4)[pull up resistance 4.7K]
GPIO4_A3 BL1_EN Output(GPIO4_A3)
GPIO4_B6 LCD1_BL_PWM[pWM13_M1)Output [GPIO4_B6]
GPIO4_A0 LCD1_Reset Output(GPIO4_A0)
GPIO1_D0 SPI1_MISO_M2 (GPIO1_D0)设置为可以控制普通的GPIO作为输出;
将
SDA/GP1_A2 I2C_SDA_TP0 (GPIO1_A2) [pull up resistance 2.2K]
SCL/GP1_A3 I2C_SCL_TP0(GPIO1_A3)[pull up resistance 2.2K]
GPIO1_B3 LCD0_Power EN Output(GPIO1_B3)~
GPIO1_A7 TP0_INT_Input(GPIO1_A7)[pull up resistance 10K]
GPIO3_D4 BL0_EN Output(GPIO3_D4)
GPIO1_D6 LCD0_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 = <
1 1 GPIO_ACTIVE_HIGH /* GPIO1_A1 → gpio33 */
1 2 GPIO_ACTIVE_HIGH /* GPIO1_A2 → gpio34 */
1 3 GPIO_ACTIVE_HIGH /* GPIO1_A3 → gpio35 */
1 7 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 8 GPIO_ACTIVE_HIGH /* GPIO4_B0 */
4 9 GPIO_ACTIVE_HIGH /* GPIO4_B1 */
4 6 GPIO_ACTIVE_HIGH /* GPIO4_A6 */
4 4 GPIO_ACTIVE_HIGH /* GPIO4_A4 */
4 3 GPIO_ACTIVE_HIGH /* GPIO4_A3 */
4 14 GPIO_ACTIVE_HIGH /* GPIO4_B6 */
4 0 GPIO_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 =
<1 1 RK_FUNC_GPIO &pcfg_pull_none>, /* GPIO1_A1 */
<1 2 RK_FUNC_GPIO &pcfg_pull_none>, /* GPIO1_A2 */
<1 3 RK_FUNC_GPIO &pcfg_pull_none>, /* GPIO1_A3 */
<1 7 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 =
<4 8 RK_FUNC_GPIO &pcfg_pull_down>, /* GPIO4_B0 */
<4 9 RK_FUNC_GPIO &pcfg_pull_down>, /* GPIO4_B1 */
<4 6 RK_FUNC_GPIO &pcfg_pull_down>, /* GPIO4_A6 */
<4 4 RK_FUNC_GPIO &pcfg_pull_down>, /* GPIO4_A4 */
<4 3 RK_FUNC_GPIO &pcfg_pull_down>, /* GPIO4_A3 */
<4 14 RK_FUNC_GPIO &pcfg_pull_down>, /* GPIO4_B6 */
<4 0 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/中对应的设备树的方法不知道有没有问题
|
|