pincontrol error in iMX8MM EVK

cancel
Showing results for 
Search instead for 
Did you mean: 

pincontrol error in iMX8MM EVK

66 Views
Contributor III

Hi,

 

I am working with iMX8MM EVK and Yocto distribution 4.19.35 version

 

Build Configuration:
BB_VERSION = "1.42.0"
BUILD_SYS = "x86_64-linux"
NATIVELSBSTRING = "ubuntu-16.04"
TARGET_SYS = "aarch64-poky-linux"
MACHINE = "imx8mmevk"
DISTRO = "fsl-imx-xwayland"
DISTRO_VERSION = "4.19-warrior"
TUNE_FEATURES = "aarch64"
TARGET_FPU = ""

We have interfaced keypad and sensor input to the PCA6416A IO Expander.

I want to configure the MX8MM_IOMUXC_GPIO1_IO12  pin as shared interrupt for keypad and sensor input.

I am getting the below pincontrol  error it is registering for keypad but failing for sensor.

imx8mm-pinctrl 30330000.pinctrl: pin MX8MM_IOMUXC_GPIO1_IO12 already requested by keypad_int; cannot claim for volsense_int
imx8mm-pinctrl 30330000.pinctrl: pin-22 (volsense_int) status -22
imx8mm-pinctrl 30330000.pinctrl: could not request pin 22 (MX8MM_IOMUXC_GPIO1_IO12) from group ioexp_int on device 30330000.pinctrl

dts settings are below:

keypad_int: keypad_int {
   interrupt-parent = <&gpio1>;
   interrupts = <12 IRQ_TYPE_LEVEL_LOW>;
   pinctrl-names = "default";
   pinctrl-0 = <&pinctrl_ioexp_int>;
   status = "okay";
};

volsense_int: volsense_int {
   interrupt-parent = <&gpio1>;
   interrupts = <12 IRQ_TYPE_LEVEL_LOW>;
   pinctrl-names = "default";
   pinctrl-0 = <&pinctrl_ioexp_int>;
   status = "okay";
};

pinctrl_ioexp_int: ioexp_int {
   fsl,pins = <
   MX8MM_IOMUXC_GPIO1_IO12_GPIO1_IO12 0x14f
   >;
};

Could you please tell me where i am doing wrong.

Thank you,

Sreedhar

0 Kudos
3 Replies

15 Views
NXP Employee
NXP Employee

Hi  Sreedhar A ,

You can not use the same pinctl function in two different dts node.They will confilct each other.

Best Regards,

Zhiming

0 Kudos

15 Views
Contributor III

Thank you Zhiming,

Yes, I understand it is conflicting, is there any approach for solving my issue.

Thank you,

Sreedhar

0 Kudos

15 Views
NXP Employee
NXP Employee

Hi  Sreedhar A ,

 

The hardware can no support two device with the same dts node. You can use two different IRQ ,and handle irq input in software, if you want to let two device related,you can try epoll in linux kernel.

 

Best Regards,

Zhiming

0 Kudos