工具/软件:Linux
您好!
我在端口0上使用 GPIO 时遇到一些问题。 一旦端口0上的任何 GPIO 被传递到 pinctrl-0、我就无法从/sys/class/gpio.控制端口0上的任何 GPIO 引脚 我可以导出该引脚、但将其设置为输出并更改该值不起作用。
需要澄清的是、在端口0上声明单个 GPIO 后、端口0上的所有 GPIO 引脚都不起作用。 现在、如果我没有在器件树中声明任何 GPIO、我可以从 sysfs 控制所有 GPIO。
我在端口2和3上有 GPIO、它们在我在器件树中声明它们之后都可以工作、因此问题仅在于端口0。 我的 DTS 如下所示:
am33xx_pinmux{(am33xx_pinmux)}
//POE 控制器
i2c1_pins:pinmux_i2c1_pins{
pinctrl-single、pins =<
0x16c (PIN_INPUT | MUX_MODE3)//(F18) uart0_rtsn.I2C1_SCL
0x168 (PIN_INPUT | MUX_MODE3)//(F19) uart0_CTSN.I2C1_SDA
>;
};
GPIO3_Pins:pinmux_GPIO3_Pins{
pinctrl-single、pins =<
0x108 (PIN_INPUT | MUX_MODE7)//(J19) gmii1_col.GPIO3[0]
0x10c (PIN_INPUT | MUX_MODE7)//(J18) gmii1_crs.GPIO3[1]
0x110 (PIN_INPUT | MUX_MODE7)//(K19) gmii1_rxer.GPIO3[2]
>;
};
GPIO2_Pins:pinmux_GPIO2_Pins{
pinctrl-single、pins =<
0x88 (PIN_INPUT | MUX_MODE7)//(U17) GPMC_csn3.GPIO2[0] USB 选择
0x9C (PIN_INPUT | MUX_MODE7)//(V8) GPMC_be0n_cle。GPIO2[5]\USB_MUX_OE
>;
};
GPIO0_Pins:pinmux_GPIO0_Pins{
pinctrl-single、pins =<
0x164 (PIN_INPUT | MUX_MODE7)//(E18) eCAP0_IN_PWM0_OUT.GPIO0[7]\USB_OC
0x178 (PIN_INPUT | MUX_MODE7)//(E17) uart1_CTSN.GPIO0[12] SMAC 完成
0x17c (PIN_INPUT | MUX_MODE7)//(D19) uart1_rtsn.GPIO0[13] ASRC 完成
0x1b0 (PIN_INPUT | MUX_MODE7)//(C15) xdma_event_intr0.gpio0[19] SMAC_init
0x1b4 (PIN_INPUT| MUX_MODE7)//(B15) xdma_event_intr1.GPIO0[20] ASRC_init
0x144 (PIN_OUTPUT | MUX_MODE7)//(K18) rmii1_REFCLK.GPIO0[29] SMAC 程序
0x74 (PIN_OUTPUT | MUX_MODE7)//(W18) GPMC_WPN.GPIO0[31] ASRC 程序
//0x148 (PIN_OUTPUT | MUX_MODE7)//(P17) MDIO_DATA.GPIO0[0] MDIO BB 数据
//0x14c (PIN_OUTPUT | MUX_MODE7)//(R19) MDIO_clk.GPIO0[1] MDIO BB 时钟
>;
};
};
GPIO0{&gpio0}
pinctrl-names ="default";
pinctrl-0 =<&GPIO0_PINs>;
状态="正常";
};
GPIO2{
pinctrl-names ="default";
pinctrl-0 =<&GPIO2_PINs>;
状态="正常";
/*
USB_s{
GPIO-hog;
GPIO =<0 GPIO_ACTIVE_HIGH_>;
输出高电平;
线路名称="USB_SELECT";
};
*
};
GPIO3{&G
pinctrl-names ="default";
pinctrl-0 =<&GPIO3_PINs>;
状态="正常";
};
我可以看到、GPIO 已传递到内核、它们与端口2和3上的 GPIO 看起来相同:
根:.../pinctrl/44e10800.pinmux cat pinmux-pins | grep GPIO0
引脚29 (PIN29):44e07000.GPIO (未声明 GPIO)功能引脚复用_GPIO0_Pins 组
引脚81 (PIN81):44e07000.GPIO (未声明 GPIO)功能引脚复用_GPIO0_Pins 组
引脚89 (PIN89):44e07000.GPIO (未声明 GPIO)功能引脚复用_GPIO0_Pins 组
引脚94 (PIN94):44e07000.GPIO (未声明 GPIO)功能引脚复用_GPIO0_Pins 组
引脚95 (PIN95):44e07000.GPIO (未声明 GPIO)功能引脚复用_GPIO0_Pins 组
引脚108 (PIN108):44e07000.GPIO (未声明 GPIO)功能引脚复用_GPIO0_Pins 区
引脚109 (PIN109):44e07000.GPIO (未声明 GPIO)功能引脚复用_GPIO0_Pins 区
是否有人对端口0的运行方式有任何想法? 感谢你的帮助
Dave

