I am using a iMX93 QS93, In the device tree I configured the gpio as an output line as you can see below
gpio_pshold {
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_gpiopshold>;
power_button_pshold {
label = "PSHOLD";
gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
default-state = "off";
};
};
And here the Pin Multiplexing configuration:
pinctrl_gpiopshold: gpiopsholdgrp {
fsl,pins = <
MX93_PAD_PDM_BIT_STREAM0__GPIO1_IO09 0x120
>;
};
The gpio1 9 is not used somewhere else.
I am building my image using yocto and after the successful build, I run the image in the target and tried to export the gpio by running `echo 9 > /sys/class/gpio/export`. The export fails with the error :
-bash: echo: write error: Device or resource busy
The `gpioinfo` shows this line under `gpiochip3 - 32lines:`
line 9: unnamed output consumer=PSHOLD
The output of `cat /sys/kernel/debug/gpio` shows :
gpiochip3: GPIOs 0-31, parent: platform/47400080.gpio, 47400080.gpio:
gpio-0 ( |scl ) out lo
gpio-1 ( |sda ) in lo
gpio-2 ( |scl ) out lo
gpio-3 ( |sda ) in lo
gpio-9 ( |PSHOLD ) out lo
gpiochip0: GPIOs 32-63, parent: platform/43810080.gpio, 43810080.gpio:
gpio-50 ( |nPBOUT ) in hi IRQ ACTIVE LOW
gpio-60 ( |sda ) in lo
gpio-61 ( |scl ) out lo
gpiochip1: GPIOs 64-95, parent: platform/43820080.gpio, 43820080.gpio:
gpiochip2: GPIOs 96-127, parent: platform/43830080.gpio, 43830080.gpio:
I am struggling find what prevent the export of that gpio and being able to set its value, could anyone help me with this issue?
已解决! 转到解答。
Hi @LAAZIBI!
Thank you for contacting NXP Support!
To use a gpios under Linux you have to use the gpioset command or configure the gpios under the driver gpio-leds in Linux.
To add the gpio-leds driver in Linux you can look the device tree file of the iMX8MP EVK board as a example.
https://github.com/nxp-imx/linux-imx/blob/lf-6.1.y/arch/arm64/boot/dts/freescale/imx8mp-evk.dts#L20
To control the LED in terminal using the gpio-leds driver you should use the next commands:
#Output at HIGH state
echo 1 >> /sys/class/leds/<GPIO LABEL>/brightness
#Output at LOW state
echo 0 >> /sys/class/leds/<GPIO LABEL>/brightness
Best Regards!
Chavira
Hi @LAAZIBI!
Thank you for contacting NXP Support!
To use a gpios under Linux you have to use the gpioset command or configure the gpios under the driver gpio-leds in Linux.
To add the gpio-leds driver in Linux you can look the device tree file of the iMX8MP EVK board as a example.
https://github.com/nxp-imx/linux-imx/blob/lf-6.1.y/arch/arm64/boot/dts/freescale/imx8mp-evk.dts#L20
To control the LED in terminal using the gpio-leds driver you should use the next commands:
#Output at HIGH state
echo 1 >> /sys/class/leds/<GPIO LABEL>/brightness
#Output at LOW state
echo 0 >> /sys/class/leds/<GPIO LABEL>/brightness
Best Regards!
Chavira