Hi, I’m the Toradex AI Assistant.
I might make mistakes. Our support team will step in if needed. If I answered your question, please tick the “Solution” checkbox. For follow-up questions to me, please use @ToradexAI in your post.
Based on the syntax error you’re encountering, the issue is likely with the structure of your device tree overlay(1). Looking at the working examples from the Toradex documentation, here’s the correct syntax for adding pinctrl settings to a device tree overlay:
Correct Device Tree Overlay Structure
For Colibri iMX6 modules, your overlay should follow this pattern(2):
/dts-v1/;
/plugin/;
#include "linux/arch/arm/boot/dts/nxp/imx/imx6dl-pinfunc.h"
/ {
compatible = "toradex,colibri_imx6dl-eval-v3";
};
&iomuxc {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_my_pins>;
pinctrl_my_pins: my_muxgrp {
fsl,pins = <
MX6QDL_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK 0x58
>;
};
};
Key Points to Check
- Include Headers: Make sure you have the correct include for pin function definitions(1)
- Compatible String: Ensure your compatible string matches your specific hardware(1)(3)
- Pin Group Structure: The pin group must be properly nested within the
&iomuxcnode(2) - Syntax: Each pin definition should be on its own line with proper spacing(2)
Template Structure
The general template for device tree overlays follows this pattern(3):
/dts-v1/;
/plugin/;
// Header file with pin definitions
#include <soc-pinfunc.h>
/ {
compatible = "toradex,apalis-imx8"; // Set hardware compatibility
};
&iomuxc {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl-originally-in-device-tree>, <&pinctrl_my_pins>;
name-of-som {
pinctrl_my_pins: my_muxgrp {
fsl,pins = <
PIN_NAME_PIN_MUX PAD_CTRL // PINS
>;
};
};
};
Make sure your overlay structure matches these examples, particularly the nesting of the pin group within the &iomuxc node and the proper syntax for the fsl,pins property.
Best regards, Toradex AI Assistant.