iMX6ULL device tree pin configuration in imx6ull-colibri.dtsi

Hi

I am just in the run of adapting the linux device tree for a Colibri iMX6ULL module to align with our custom built carrier board.

I have spotted multiple pin configurations in imx6ull-colibri.dtsi looking as following:

pinctrl_gpio2: gpio2-grp { /* Camera */
	fsl,pins = <
		MX6UL_PAD_CSI_DATA04__GPIO4_IO25	0x74 /* SODIMM 69 */
		MX6UL_PAD_CSI_MCLK__GPIO4_IO17		0x14 /* SODIMM 75 */
		MX6UL_PAD_CSI_DATA06__GPIO4_IO27	0x14 /* SODIMM 85 */
		MX6UL_PAD_CSI_PIXCLK__GPIO4_IO18	0x14 /* SODIMM 96 */
		MX6UL_PAD_CSI_DATA05__GPIO4_IO26	0x14 /* SODIMM 98 */
	>;
};

I am wondering, what 0x14 (or 0x74) should actually mean?

As far as I understand 0x14 equals to 0b10100, which in my opinion, according to Device Tree Customization | Toradex Developer Center , does not represent a valid PAD Control Registers configuration (bit 2 is reserved but set to 1).

Would be great, if you could comment on that.

Best regards,
Tonio

Might it be, that these entries have just been copy and pasted from the iMX7 device tree? There it would make sense in my opinion…

Even though for iMX7 (where I have just seen this PAD control register settings a lot in imx7-colibri.dtsi) it seems to me to be a strange configuration for a GPIO pin usage (e.g. 0x14 == 100k pull-down, pull enabled, hysteresis disabled, fast slew rate, X1 drive strength). Would it not rather make sense to enable hysteresis and go for a slow slew rate?

Wait, I think there is something wrong in your device tree documentation for iMX7 (Device Tree Customization | Toradex Developer Center ). According to Chapter 8 of the NXP®/Freescale i.MX 7 application processor reference manual the SLE bit is specified as following:

  • SLE 1: slow slew rate
  • SLE 0: fast slew rate

Thus the the SLE setting in imx7-colibri.dtsi seems to be ok. Please correct the documentation accordingly.

Good catch, indeed, this is wrong in our documentation, thanks for pointing out. Fixed it, should be online tomorrow or so.

That indeed seems like a copy paste error.

The equivalent of i.MX 7 0x14 (100k pull down, slow slew rate) would be 0x2000 on i.MX 6ULL. The equivalent of 0x74 (100k pull up, slow slew rate) would be 0xa000 on i.MX 6ULL.

Since this change might cause side effect I will create a ticket.