Unabled to add PPS to GPIO iMX6DL

@tmassalene,

Were you able to compile the overlay and test?

Yes, It should be fine, just needing a few alterations on the .dts file

note the pps node gpios keyword, and the new pin iomuxc

/dts-v1/;
/plugin/;
#include <dt-bindings/gpio/gpio.h>
#include "imx6dl-pinfunc.h"
/ {
        compatible = "toradex,colibri-imx6dl";
};
&{/} {
        pps {
             compatible = "pps-gpio";
             pinctrl-names = "default";
             pinctrl-0 = <&pinctrl_pps>;
             gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
             status = "okay";
        };
};

&iomuxc {
        pinctrl-names = "default";

        pinctrl_pps: pps {
                fsl,pins = <
                MX6QDL_PAD_GPIO_7__FLEXCAN1_TX 0x1b0b0
                >;
        };
};

&can1 {
        status = "disabled";
};

I was able to solve my issues with the Colibri Imx6dl.
The fixes:

  • I was not able to get pps to work with dunfell. Moved to kirkstone.
  • I was not able to get the line PREFERRED_PROVIDER_virtual/kernel = "linux-toradex-mainline-rt" to work, had to change the distro.
  • I was using the wrong the pin name in iomux. Validated the pin name in the header file :imx6dl-pinfunc.h
  • Even with the device-tree bbpappend, the dtbo was not appended in the overlay.txt file. The binary was in the overlays folder, so had to manually add the dtbo name to the overlays.txt file.
  • Our needs required changing the assert to a rising edge.
  • The upstream kernel distro doesn’t have PPS configured, have to modify the kernel to add the PPS settings.

For the next person:

local.conf

DISTRO ?= "tdx-xwayland-upstream-rt"

colibri-imx6_pps_overlay.dts:

/dts-v1/;
/plugin/;
#include <dt-bindings/gpio/gpio.h>
#include "imx6dl-pinfunc.h"
/ {
        compatible = "toradex,colibri-imx6dl";
};
&{/} {
        pps {
             compatible = "pps-gpio";
             status = "okay";
             pinctrl-names = "default";
             pinctrl-0 = <&pinctrl_pps>;
             gpios = <&gpio2 4 GPIO_ACTIVE_HIGH>;
             assert-rising-edge;
        };
};

&iomuxc {
        pinctrl-names = "default";

        pinctrl_pps: pps {
                fsl,pins = <
                MX6QDL_PAD_NANDF_D4__GPIO2_IO04 0x130b0
                >;
        };
};

device-tree-overlays-mainline_%.bbappend:

FILESEXTRAPATHS:prepend := "${THISDIR}/files:"

SRC_URI += " \
    file://colibri-imx6_pps_overlay.dts \
"

TEZI_EXTERNAL_KERNEL_DEVICETREE_BOOT = " \
    colibri-imx6_pps_overlay.dtbo \
"

do_collect_overlays:prepend() {
    cp ${WORKDIR}/colibri-imx6_pps_overlay.dts ${S}

We ended up switching to an imx8, so will open a new support request, if there are any more issues.