i.MX8M/8X GPIO probe failed

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

i.MX8M/8X GPIO probe failed

i.MX8M/8X GPIO probe failed

Symptoms

 

When configure a gpio pin for a driver in the dts/dtsi file like below example,

 

e.g.

 

a-switch {

           compatible = "a-switch-driver";

           pinctrl-names = "default";

           pinctrl-0 = <&pinctrl_switch>;

           gpios = <&lsio_gpio1 1 GPIO_ACTIVE_HIGH>;

           status = "okay";

};

 

pinctrl_switch: switch_gpio {
    fsl,pins = < IMX8QXP_SPI2_SDO_LSIO_GPIO1_IO01    0x21 >;
};

 

then you may get the error when request the gpio in the driver during the kernel boot up.

 

Error message like this:

a-switch: failed to request gpio

a-switch: probe of a-switch failed with error -22

 

Linux version: L5.4.x

 

Diagnosis

 

Because the gpio_mxc_init function run before the function imx_scu_driver_init. The pm_domains for gpio is not ready before running mxc_gpio_probe, so gpio request will be failed.

 

 

Solution

 

There are two ways to resolve this issue
1. Build the driver as a module. i.e. select the driver in kernel’s menuconfig as “M”. Then , run “insmod” to load the driver after the kernel boot up.

 

OR

 

2. Apply below patch, let gpio driver init after scu driver.

diff --git a/drivers/gpio/gpio-mxc.c b/drivers/gpio/gpio-mxc.c
index 1dfe513f8fcf..52b5799040b3 100644
--- a/drivers/gpio/gpio-mxc.c
+++ b/drivers/gpio/gpio-mxc.c
@@ -892,7 +892,7 @@ static int __init gpio_mxc_init(void)
return platform_driver_register(&mxc_gpio_driver);
}
-subsys_initcall(gpio_mxc_init);
+device_initcall(gpio_mxc_init);

 

%3CLINGO-SUB%20id%3D%22lingo-sub-1362335%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3Ei.MX8M%2F8X%20GPIO%E3%83%97%E3%83%AD%E3%83%BC%E3%83%96%E3%81%8C%E6%95%85%E9%9A%9C%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1362335%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CDIV%20class%3D%22lia-message-template-symptoms-zone%22%3E%0A%3CH2%20id%3D%22toc-hId--1353604393%22%20id%3D%22toc-hId--493630539%22%3E%E7%97%87%E7%8A%B6%3C%2FH2%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%E6%AC%A1%E3%81%AE%E4%BE%8B%E3%81%AE%E3%82%88%E3%81%86%E3%81%AB%E3%80%81dts%20%2F%20dtsi%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%A7%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%83%BC%E3%81%AEgpio%E3%83%94%E3%83%B3%E3%82%92%E6%A7%8B%E6%88%90%E3%81%99%E3%82%8B%E3%81%A8%E3%80%81%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%E4%BE%8B%E3%81%88%E3%81%B0%E3%80%82%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3EA%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81%20%7B%3C%2FP%3E%0A%3CP%3Ecompatible%20%3D%20%22A-switch-driver%22%3B%3C%2FP%3E%0A%3CP%3Epinctrl-names%20%3D%20%22%E3%83%87%E3%83%95%E3%82%A9%E3%83%AB%E3%83%88%22%3B%3C%2FP%3E%0A%3CP%3E%E3%83%94%E3%83%B3ctrl-0%20%3D%20%26lt%3B%26amp%3Bpinctrl_switch%26gt%3B%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%26nbsp%3B%26nbsp%3B%20gpios%20%3D%20%26lt%3B%26amp%3Blsio_gpio1%201%20GPIO_ACTIVE_HIGH%26gt%3B%3B%3C%2FP%3E%0A%3CP%3Estatus%20%3D%20%22%E5%A4%A7%E4%B8%88%E5%A4%AB%22%3B%3C%2FP%3E%0A%3CP%3E%7D%3B%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3Epinctrl_switch%3A%20switch_gpio%20%7B%20%3CBR%20%2F%3EFSL%E3%80%81%E3%83%94%E3%83%B3%20%3D%20%3B%20%3CBR%20%2F%3E%7D%3B%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%E3%81%9D%E3%81%AE%E5%BE%8C%E3%80%81%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB%E3%81%AE%E8%B5%B7%E5%8B%95%E4%B8%AD%E3%81%AB%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%83%BC%E3%81%A7GPIO%E3%82%92%E8%A6%81%E6%B1%82%E3%81%99%E3%82%8B%E3%81%A8%E3%80%81%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%8C%E7%99%BA%E7%94%9F%E3%81%99%E3%82%8B%E5%8F%AF%E8%83%BD%E6%80%A7%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%E6%AC%A1%E3%81%AE%E3%82%88%E3%81%86%E3%81%AA%E3%82%A8%E3%83%A9%E3%83%BC%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8%3A%3C%2FP%3E%0A%3CP%3EA-switch%3A%20GPIO%20%E3%81%AE%E8%A6%81%E6%B1%82%E3%81%AB%E5%A4%B1%E6%95%97%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%3C%2FP%3E%0A%3CP%3EA-Switch%3AA-Switch%E3%81%AE%E3%83%97%E3%83%AD%E3%83%BC%E3%83%96%E3%81%8C%E3%82%A8%E3%83%A9%E3%83%BC-22%E3%81%A7%E5%A4%B1%E6%95%97%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3ELinux%20version%3A%20L5.4.x%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3C%2FDIV%3E%0A%3CDIV%20class%3D%22lia-message-template-diagnosis-zone%22%3E%0A%3CH2%20id%3D%22toc-hId-1133908440%22%20id%3D%22toc-hId-1993882294%22%3E%E8%A8%BA%E6%96%AD%3C%2FH2%3E%0A%3CBR%20%2F%3E%0A%3CP%3Egpio_mxc_init%E9%96%A2%E6%95%B0%E3%81%AF%E9%96%A2%E6%95%B0imx_scu_driver_init%E3%81%AE%E5%89%8D%E3%81%AB%E5%AE%9F%E8%A1%8C%E3%81%95%E3%82%8C%E3%82%8B%E3%81%9F%E3%82%81%E3%81%A7%E3%81%99%E3%80%82gpio%20%E3%81%AE%20pm_domains%20%E3%81%AF%20mxc_gpio_probe%20%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E5%89%8D%E3%81%AB%E6%BA%96%E5%82%99%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%A6%E3%81%84%E3%81%AA%E3%81%84%E3%81%9F%E3%82%81%E3%80%81gpio%20%E3%83%AA%E3%82%AF%E3%82%A8%E3%82%B9%E3%83%88%E3%81%AF%E5%A4%B1%E6%95%97%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3C%2FDIV%3E%0A%3CDIV%20class%3D%22lia-message-template-solution-zone%22%3E%0A%3CH2%20id%3D%22toc-hId--673546023%22%20id%3D%22toc-hId-186427831%22%3E%26nbsp%3B%3C%2FH2%3E%0A%3CH2%20id%3D%22toc-hId-1813966810%22%20id%3D%22toc-hId--1621026632%22%3E%26nbsp%3B%3C%2FH2%3E%0A%3CH2%20id%3D%22toc-hId-6512347%22%20id%3D%22toc-hId-866486201%22%3E%E8%A7%A3%E6%B1%BA%E7%AD%96%3C%2FH2%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%E3%81%93%E3%81%AE%E5%95%8F%E9%A1%8C%E3%82%92%E8%A7%A3%E6%B1%BA%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%80%81%E6%AC%A1%E3%81%AE%202%20%E3%81%A4%E3%81%AE%E6%96%B9%E6%B3%95%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%3CBR%20%2F%3E1.%20%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%83%BC%E3%82%92%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%A8%E3%81%97%E3%81%A6%E3%83%93%E3%83%AB%E3%83%89%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E3%81%A4%E3%81%BE%E3%82%8A%E3%80%81%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB%E3%81%AE%20menuconfig%20%E3%81%A7%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%83%BC%E3%82%92%20%22M%22%20%E3%81%A8%E3%81%97%E3%81%A6%E9%81%B8%E6%8A%9E%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E6%AC%A1%E3%81%AB%E3%80%81%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB%E3%81%AE%E8%B5%B7%E5%8B%95%E5%BE%8C%E3%81%AB%E3%80%8Cinsmod%E3%80%8D%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%97%E3%81%A6%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%83%BC%E3%82%92%E3%83%AD%E3%83%BC%E3%83%89%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%E3%81%BE%E3%81%9F%E3%81%AF%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E2.%E4%BB%A5%E4%B8%8B%E3%81%AE%E3%83%91%E3%83%83%E3%83%81%E3%82%92%E9%81%A9%E7%94%A8%E3%81%97%E3%80%81scu%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%83%BC%E3%81%AE%E5%BE%8C%E3%81%ABgpio%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%83%BC%E3%82%92%E5%88%9D%E6%9C%9F%E5%8C%96%E3%81%95%E3%81%9B%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CP%3E%E5%B7%AE%E5%88%86%20--git%20a%2Fdrivers%2Fgpio%2Fgpio-mxc.c%20b%2Fdrivers%2Fgpio%2Fgpio-mxc.c%3CBR%20%2F%3E%E3%82%A4%E3%83%B3%E3%83%87%E3%83%83%E3%82%AF%E3%82%B9%201dfe513f8fcf..52B5799040B3%20100644%3CBR%20%2F%3E---%20a%2Fdrivers%2Fgpio%2Fgpio-mxc.c%3CBR%20%2F%3E%2B%2B%2B%20b%2Fdrivers%2Fgpio%2Fgpio-mxc.c%3CBR%20%2F%3E%40%40%20-892%2C7%20%2B892%2C7%20%40%40%20static%20int%20__init%20gpio_mxc_init(void)%3CBR%20%2F%3E%E3%83%AA%E3%82%BF%E3%83%BC%E3%83%B3%20platform_driver_register(%26amp%3Bmxc_gpio_driver)%3B%3CBR%20%2F%3E%7D%3CBR%20%2F%3E-subsys_initcall(gpio_mxc_init)%3B%3CBR%20%2F%3E%2Bdevice_initcall(gpio_mxc_init)%3B%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3C%2FDIV%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-1362335%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3Ei.MX%208%E3%83%95%E3%82%A1%E3%83%9F%E3%83%AA%20%7C%20i.MX%208QuadMax%E2%80%AF(8QM)%20%7C%208QuadPlus%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3Ei.MX%208M%20%7C%20i.MX%208M%20Mini%20%7C%20i.MX%208M%20Nano%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3ELinux%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E
100%が役に立ったと言っています (2/2)
バージョン履歴
最終更新日:
‎10-27-2021 02:40 AM
更新者: