iMX8MP: Device Tree Overlay & Pinctrl on NXP Kernel lf-6.12.20-2.0.0

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

iMX8MP: Device Tree Overlay & Pinctrl on NXP Kernel lf-6.12.20-2.0.0

2,273 次查看
Svenifax
Contributor III

Hello,

I'm trying to apply a device tree overlay on the NXP kernel version lf-6.12.20-2.0.0 for the i.MX8MP.

To apply the overlay, I’m using a simple kernel module: https://github.com/ikwzm/dtbocfg

The device tree is loaded after Linux kernel is started.

When I try to activate this overlay:

/dts-v1/;
/plugin/;

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>

#include "../freescale/imx8mp-pinfunc.h"

/ {

compatible = "fsl,imx8mp";

// IOMUX
fragment@iomuxc {
target = <&iomuxc>;
__overlay__ {

pinctrl_i2c2: pinctrl_i2c2 {
fsl,pins = <
MX8MP_IOMUXC_SD1_DATA6__I2C2_SCL 0x400001c3 // KPAD_BAT_I2C2_SCL: J2.J78
MX8MP_IOMUXC_SD1_DATA7__I2C2_SDA 0x400001c3 // KPAD_BAT_I2C2_SDA: J2.J80
>;
};

};

};


fragment@i2c2 {
target = <&i2c2>;
__overlay__ {

clock-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c2>;
status = "okay";

eeprom_keypad: eeprom@50 {
compatible = "microchip,24c02";
reg = <0x50>;
pagesize = <16>;
vcc-supply = <&reg_vref_3v3>;
};

};
};

};

The following error message is shown:

imx8mp-pinctrl 30330000.pinctrl: invalid group "pinctrl_i2c2" for function "pinctrl"

I checked the phandle references in the base device tree (imx8mp.dtsi) and everything looks correct.
This issue occurs only with pinctrl references; other phandle references work fine.

The device overlay is compiled with the -@ option for dtc.

A similar message occurs on the mainline kernel 6.12.36:

imx8mp-pinctrl 30330000.pinctrl: unable to find group for node pinctrl_i2c2

So it seems that pinmuxing is not possible when provided via a device tree overlay.

Is there a solution for this?

Thanks for your help,
Sven

0 项奖励
回复
1 回复

2,201 次查看
danielchen
NXP TechSupport
NXP TechSupport

Hi 

The error: imx8mp-pinctrl 30330000.pinctrl: invalid group "pinctrl_i2c2" for function "pinctrl"

 indicates that the overlay is trying to define a new pinctl group "pinctrl_i2c2" that the pinctl driver doesn't recognize.

Maybe you can try to predefine the pinctrl group in the base device tree. 

pinctrl_i2c2: pinctrl_i2c2 {
    fsl,pins = <
        MX8MP_IOMUXC_SD1_DATA6__I2C2_SCL 0x400001c3
        MX8MP_IOMUXC_SD1_DATA7__I2C2_SDA 0x400001c3
    >;
};

 

In your overlay, just reference it:

pinctrl-0 = <&pinctrl_i2c2>;

 

Regards

Daniel

0 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-2160636%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3Eimx8MP%EF%BC%9A%E8%AE%BE%E5%A4%87%E6%A0%91%E5%8F%A0%E5%8A%A0%E5%B1%82%20%26amp%3B%20%E6%81%A9%E6%99%BA%E6%B5%A6%E5%86%85%E6%A0%B8%E4%B8%8A%E7%9A%84%20Pinctrl%20lf-6.12.20-2.0.0%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2160636%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%3C%2FP%3E%3CP%3E%E6%88%91%E6%AD%A3%E5%9C%A8%E5%B0%9D%E8%AF%95%E5%9C%A8%20i.MX8MP%20%E7%9A%84%E6%81%A9%E6%99%BA%E6%B5%A6%E5%86%85%E6%A0%B8%E7%89%88%E6%9C%AC%20lf-6.12.20-2.0.0%20%E4%B8%8A%E5%BA%94%E7%94%A8%E8%AE%BE%E5%A4%87%E6%A0%91%E8%A6%86%E7%9B%96%E5%B1%82%E3%80%82%3C%2FP%3E%3CP%3E%E4%B8%BA%E4%BA%86%E5%BA%94%E7%94%A8%E5%8F%A0%E5%8A%A0%E5%8A%9F%E8%83%BD%EF%BC%8C%E6%88%91%E4%BD%BF%E7%94%A8%E4%BA%86%E4%B8%80%E4%B8%AA%E7%AE%80%E5%8D%95%E7%9A%84%E5%86%85%E6%A0%B8%E6%A8%A1%E5%9D%97%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fikwzm%2Fdtbocfg%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3E%EF%BC%9A%20https%3A%2F%2Fgithub.com%2Fikwzm%2Fdtbocfg%3C%2FA%3E%3C%2FP%3E%3CP%3E%E8%AE%BE%E5%A4%87%E6%A0%91%E6%98%AF%E5%9C%A8%20Linux%20%E5%86%85%E6%A0%B8%E5%90%AF%E5%8A%A8%E5%90%8E%E5%8A%A0%E8%BD%BD%E7%9A%84%E3%80%82%3C%2FP%3E%3CP%3E%E5%BD%93%E6%88%91%E5%B0%9D%E8%AF%95%E6%BF%80%E6%B4%BB%E8%AF%A5%E8%A6%86%E7%9B%96%E5%B1%82%E6%97%B6%EF%BC%9A%3C%2FP%3E%3CPRE%20translate%3D%22no%22%3E%2Fdts-v1%2F%3B%3CBR%20%2F%3E%2Fplugin%2F%3B%3CBR%20%2F%3E%3CBR%20%2F%3E%23include%20%3CDT-BINDINGS%3E%3CBR%20%2F%3E%23include%20%3CDT-BINDINGS%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%23include%20%22..%2Ffreescale%2Fimx8mp-pinfunc.h%22%3CBR%20%2F%3E%3CBR%20%2F%3E%2F%20%7B%3CBR%20%2F%3E%3CBR%20%2F%3Ecompatible%20%3D%20%22fsl%2Cimx8mp%22%3B%3CBR%20%2F%3E%3CBR%20%2F%3E%2F%2F%20IOMUX%3CBR%20%2F%3Efragment%40iomuxc%20%7B%3CBR%20%2F%3Etarget%20%3D%20%26lt%3B%26amp%3Biomuxc%26gt%3B%3B%3CBR%20%2F%3E__overlay__%20%7B%3CBR%20%2F%3E%3CBR%20%2F%3Epinctrl_i2c2%3A%20pinctrl_i2c2%20%7B%3CBR%20%2F%3Efsl%2Cpins%20%3D%20%26lt%3B%3CBR%20%2F%3EMX8MP_IOMUXC_SD1_DATA6__I2C2_SCL%200x400001c3%20%2F%2F%20KPAD_BAT_I2C2_SCL%3A%20J2.J78%3CBR%20%2F%3EMX8MP_IOMUXC_SD1_DATA7__I2C2_SDA%200x400001c3%20%2F%2F%20KPAD_BAT_I2C2_SDA%3A%20J2.J80%3CBR%20%2F%3E%26gt%3B%3B%3CBR%20%2F%3E%7D%3B%3CBR%20%2F%3E%3CBR%20%2F%3E%7D%3B%3CBR%20%2F%3E%3CBR%20%2F%3E%7D%3B%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3Efragment%40i2c2%20%7B%3CBR%20%2F%3Etarget%20%3D%20%26lt%3B%26amp%3Bi2c2%26gt%3B%3B%3CBR%20%2F%3E__overlay__%20%7B%3CBR%20%2F%3E%3CBR%20%2F%3Eclock-frequency%20%3D%20%26lt%3B100000%26gt%3B%3B%3CBR%20%2F%3Epinctrl-names%20%3D%20%22default%22%3B%3CBR%20%2F%3Epinctrl-0%20%3D%20%26lt%3B%26amp%3Bpinctrl_i2c2%26gt%3B%3B%3CBR%20%2F%3Estatus%20%3D%20%22okay%22%3B%3CBR%20%2F%3E%3CBR%20%2F%3Eeeprom_keypad%3A%20eeprom%4050%20%7B%3CBR%20%2F%3Ecompatible%20%3D%20%22microchip%2C24c02%22%3B%3CBR%20%2F%3Ereg%20%3D%20%26lt%3B0x50%26gt%3B%3B%3CBR%20%2F%3Epagesize%20%3D%20%26lt%3B16%26gt%3B%3B%3CBR%20%2F%3Evcc-supply%20%3D%20%26lt%3B%26amp%3Breg_vref_3v3%26gt%3B%3B%3CBR%20%2F%3E%7D%3B%3CBR%20%2F%3E%3CBR%20%2F%3E%7D%3B%3CBR%20%2F%3E%7D%3B%3CBR%20%2F%3E%3CBR%20%2F%3E%7D%3B%3C%2FDT-BINDINGS%3E%3C%2FDT-BINDINGS%3E%3C%2FPRE%3E%3CP%3E%E6%98%BE%E7%A4%BA%E4%BB%A5%E4%B8%8B%E9%94%99%E8%AF%AF%E4%BF%A1%E6%81%AF%EF%BC%9A%3C%2FP%3E%3CPRE%20translate%3D%22no%22%3Eimx8mp-pinctrl%2030330000.pinctrl%3A%20invalid%20group%20%22pinctrl_i2c2%22%20for%20function%20%22pinctrl%22%3C%2FPRE%3E%3CP%3E%E6%88%91%E6%9F%A5%E7%9C%8B%E4%BA%86%E5%9F%BA%E7%A1%80%E8%AE%BE%E5%A4%87%E6%A0%91%20(imx8mp.dtsi)%20%E4%B8%AD%E7%9A%84%20phandle%20%E5%8F%82%E8%80%83%E4%B8%80%E5%88%87%E7%9C%8B%E8%B5%B7%E6%9D%A5%E9%83%BD%E6%AD%A3%E7%A1%AE%E6%97%A0%E8%AF%AF%E3%80%82%3CBR%20%2F%3E%E6%AD%A4%E9%97%AE%E9%A2%98%E4%BB%85%E5%9C%A8%20pinctrl%20%E5%8F%82%E8%80%83%E6%97%B6%E5%87%BA%E7%8E%B0%EF%BC%9B%E5%85%B6%E4%BB%96%20phandle%20%E5%8F%82%E8%80%83%E5%8F%AF%E4%BB%A5%E6%AD%A3%E5%B8%B8%E5%B7%A5%E4%BD%9C%E3%80%82%3C%2FP%3E%3CP%3E%E8%AE%BE%E5%A4%87%E5%8F%A0%E5%8A%A0%E5%B1%82%E4%BD%BF%E7%94%A8%20dtc%20%E7%9A%84-%40%20%E9%80%89%E9%A1%B9%E8%BF%9B%E8%A1%8C%E7%BC%96%E8%AF%91%E3%80%82%3C%2FP%3E%3CP%3E%E4%B8%BB%E7%BA%BF%E5%86%85%E6%A0%B8%206.12.36%20%E4%B9%9F%E5%87%BA%E7%8E%B0%E4%BA%86%E7%B1%BB%E4%BC%BC%E4%BF%A1%E6%81%AF%EF%BC%9A%3C%2FP%3E%3CPRE%20translate%3D%22no%22%3Eimx8mp-pinctrl%2030330000.pinctrl%3A%20unable%20to%20find%20group%20for%20node%20pinctrl_i2c2%3C%2FPRE%3E%3CP%3E%E5%9B%A0%E6%AD%A4%EF%BC%8C%E9%80%9A%E8%BF%87%E8%AE%BE%E5%A4%87%E6%A0%91%E5%8F%A0%E5%8A%A0%E5%B1%82%E6%8F%90%E4%BE%9B%20pinmuxing%20%E4%BC%BC%E4%B9%8E%E6%98%AF%E4%B8%8D%E5%8F%AF%E8%83%BD%E7%9A%84%E3%80%82%3C%2FP%3E%3CP%3E%E6%9C%89%E4%BB%80%E4%B9%88%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95%E5%90%97%EF%BC%9F%3C%2FP%3E%3CP%3E%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%B8%AE%E5%8A%A9%EF%BC%8C%3CBR%20%2F%3ESven%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2162147%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20iMX8MP%3A%20Device%20Tree%20Overlay%20%26amp%3B%20Pinctrl%20on%20NXP%20Kernel%20lf-6.12.20-2.0.0%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2162147%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%20%3C%2FP%3E%0A%3CP%3E%E9%94%99%E8%AF%AF%EF%BC%9A%3CCODE%20translate%3D%22no%22%3Eimx8mp-pinctrl%2030330000.pinctrl%3A%20invalid%20group%20%22pinctrl_i2c2%22%20for%20function%20%22pinctrl%22%3C%2FCODE%3E%3C%2FP%3E%0A%3CP%3E%E8%A1%A8%E7%A4%BA%E8%A6%86%E7%9B%96%E5%B1%82%E6%AD%A3%E5%9C%A8%E5%B0%9D%E8%AF%95%E5%AE%9A%E4%B9%89%E4%B8%80%E4%B8%AA%E6%96%B0%E7%9A%84%20pinctl%20%E7%BB%84%22pinctrl_i2c2%22%20%EF%BC%8C%E8%80%8C%20pinctl%20%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F%E6%97%A0%E6%B3%95%E8%AF%86%E5%88%AB%E8%AF%A5%E7%BB%84%E3%80%82%3C%2FP%3E%0A%3CP%3E%E4%B9%9F%E8%AE%B8%E4%BD%A0%E5%8F%AF%E4%BB%A5%E5%B0%9D%E8%AF%95%E5%9C%A8%E5%9F%BA%E7%A1%80%E8%AE%BE%E5%A4%87%E6%A0%91%E4%B8%AD%E9%A2%84%E5%AE%9A%E4%B9%89%20pinctrl%20%E7%BB%84%E3%80%82%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%3C!--ScriptorStartFragment--%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CDIV%20class%3D%22scriptor-paragraph%22%3E%3CSPAN%3Epinctrl_i2c2%3C%2FSPAN%3E%3CSPAN%3E%3A%3C%2FSPAN%3E%20%3CSPAN%3Epinctrl_i2c2%3C%2FSPAN%3E%20%3CSPAN%3E%7B%3C%2FSPAN%3E%3C%2FDIV%3E%0A%3CDIV%20class%3D%22scriptor-paragraph%22%3E%3CSPAN%3E%20%20%20%20%3C%2FSPAN%3E%3CSPAN%3Efsl%3C%2FSPAN%3E%3CSPAN%3E%2C%3C%2FSPAN%3E%3CSPAN%3E%E5%BC%95%E8%84%9A%3C%2FSPAN%3E%20%3CSPAN%3E%3D%3C%2FSPAN%3E%20%3CSPAN%3E%26lt%3B%3C%2FSPAN%3E%3C%2FDIV%3E%0A%3CDIV%20class%3D%22scriptor-paragraph%22%3E%3CSPAN%3E%20%20%20%20%20%20%20%20%3C%2FSPAN%3E%3CSPAN%3EMX8MP_IOMUXC_SD1_DATA6__I2C2_SCL%3C%2FSPAN%3E%3CSPAN%3E0x400001c3%3C%2FSPAN%3E%3C%2FDIV%3E%0A%3CDIV%20class%3D%22scriptor-paragraph%22%3E%3CSPAN%3E%20%20%20%20%20%20%20%20%3C%2FSPAN%3E%3CSPAN%3EMX8MP_IOMUXC_SD1_DATA7__I2C2_SDA%3C%2FSPAN%3E%3CSPAN%3E0x400001c3%3C%2FSPAN%3E%3C%2FDIV%3E%0A%3CDIV%20class%3D%22scriptor-paragraph%22%3E%3CSPAN%3E%20%20%20%20%3C%2FSPAN%3E%3CSPAN%3E%26gt%3B%3C%2FSPAN%3E%3CSPAN%3E%3B%3C%2FSPAN%3E%3C%2FDIV%3E%0A%3CDIV%20class%3D%22scriptor-paragraph%22%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3CSPAN%3E%20%EF%BC%9B%3C!--ScriptorEndFragment--%3E%3C%2FSPAN%3E%3C%2FDIV%3E%0A%3CP%3E%3CLI-WRAPPER%3E%3C%2FLI-WRAPPER%3E%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%E5%9C%A8%E6%82%A8%E7%9A%84%E5%8F%A0%E5%8A%A0%E5%B1%82%E4%B8%AD%EF%BC%8C%E5%8F%AA%E9%9C%80%E5%8F%82%E8%80%83%E5%8D%B3%E5%8F%AF%EF%BC%9A%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%3C!--ScriptorStartFragment--%3Epinctrl-0%20%3D%26lt%3B%26amp%3B%20pinctrl_i2c2%26gt%3B%20%EF%BC%9B%3C!--ScriptorEndFragment--%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%3CSPAN%3E%E6%AD%A4%E8%87%B4%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%E4%B8%B9%E5%B0%BC%E5%B0%94%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E