GPIO and Interrupts

I did, and I can’t figure out how to tie a gpio to an interrupt (although things are starting to make a little more sense).

Here is the actual dts I’m working with:

/dts-v1/;

/ {
	overlay-name = "MCP25xxFD CAN Controller";
    compatible = "nvidia,p3449-0000-b00+p3448-0000-b00", "nvidia,p3449-0000-a02+p3448-0000-a02";

	fragment@0 {
		target-path = "/";

		__overlay__ {

			clocks {

				can_clock {
					compatible = "fixed-clock";
					#clock-cells = <0x00>;
					clock-frequency = <0x1312d00>;
					clock-accuracy = <0x64>;
					linux,phandle = <0x01>;
					phandle = <0x01>;
				};
			};
		};
	};

	fragment@1 {
		target = <0xffffffff>;

		__overlay__ {

			spi@0 {
				compatible = "microchip,mcp25xxfd";
				reg = <0x00>;
				spi-max-frequency = <0x989680>;
				nvidia,enable-hw-based-cs;
				nvidia,rx-clk-tap-delay = <0x07>;
				clocks = <0x01>;
				interrupts = <0xffffffff 0xc8 0x01>;

				controller-data {
					nvidia,cs-setup-clk-count = <0x1e>;
					nvidia,cs-hold-clk-count = <0x1e>;
					nvidia,rx-clk-tap-delay = <0x1f>;
					nvidia,tx-clk-tap-delay = <0x00>;
				};
			};

			spi@1 {
				compatible = "microchip,mcp25xxfd";
				reg = <0x01>;
				spi-max-frequency = <0x989680>;
				nvidia,enable-hw-based-cs;
				nvidia,rx-clk-tap-delay = <0x07>;
				clocks = <0x01>;
				interrupts = <0xffffffff 0xc2 0x01>;
			};
		};
	};

	fragment@2 {
		target = <0xffffffff>;

		__overlay__ {
			pinctrl-names = "default";
			pinctrl-0 = <0x02>;

			header-40pin-pinmux {
				linux,phandle = <0x02>;
				phandle = <0x02>;

				pin19 {
					nvidia,pins = "spi1_mosi_pc0";
					nvidia,function = "spi1";
					nvidia,pull = <0x01>;
					nvidia,tristate = <0x00>;
					nvidia,enable-input = <0x00>;
				};

				pin21 {
					nvidia,pins = "spi1_miso_pc1";
					nvidia,function = "spi1";
					nvidia,pull = <0x01>;
					nvidia,tristate = <0x00>;
					nvidia,enable-input = <0x01>;
				};

				pin23 {
					nvidia,pins = "spi1_sck_pc2";
					nvidia,function = "spi1";
					nvidia,pull = <0x01>;
					nvidia,tristate = <0x00>;
					nvidia,enable-input = <0x01>;
				};

				pin24 {
					nvidia,pins = "spi1_cs0_pc3";
					nvidia,function = "spi1";
					nvidia,pull = <0x02>;
					nvidia,tristate = <0x00>;
					nvidia,enable-input = <0x00>;
				};

				pin26 {
					nvidia,pins = "spi1_cs1_pc4";
					nvidia,function = "spi1";
					nvidia,pull = <0x02>;
					nvidia,tristate = <0x00>;
					nvidia,enable-input = <0x00>;
				};

				pin37 {
					nvidia,pins = "spi2_mosi_pb4";
					nvidia,function = "spi2";
					nvidia,pull = <0x01>;
					nvidia,tristate = <0x00>;
					nvidia,enable-input = <0x00>;
				};

				pin22 {
					nvidia,pins = "spi2_miso_pb5";
					nvidia,function = "spi2";
					nvidia,pull = <0x01>;
					nvidia,tristate = <0x00>;
					nvidia,enable-input = <0x01>;
				};

				pin13 {
					nvidia,pins = "spi2_sck_pb6";
					nvidia,function = "spi2";
					nvidia,pull = <0x01>;
					nvidia,tristate = <0x00>;
					nvidia,enable-input = <0x01>;
				};

				pin18 {
					nvidia,pins = "spi2_cs0_pb7";
					nvidia,function = "spi2";
					nvidia,pull = <0x02>;
					nvidia,tristate = <0x00>;
					nvidia,enable-input = <0x00>;
				};

				pin16 {
					nvidia,pins = "spi2_cs1_pdd0";
					nvidia,function = "spi2";
					nvidia,pull = <0x02>;
					nvidia,tristate = <0x00>;
					nvidia,enable-input = <0x00>;
				};
			};
		};
	};

	fragment@3 {
		target = <0xffffffff>;

		__overlay__ {

			spi@0 {
				compatible = "microchip,mcp25xxfd";
				reg = <0x00>;
				spi-max-frequency = <0x989680>;
				nvidia,enable-hw-based-cs;
				nvidia,rx-clk-tap-delay = <0x07>;
				clocks = <0x01>;
				interrupt-parent = <0xffffffff>;
				interrupts = <0xa8 0x01>;

				controller-data {
					nvidia,cs-setup-clk-count = <0x1e>;
					nvidia,cs-hold-clk-count = <0x1e>;
					nvidia,rx-clk-tap-delay = <0x1f>;
					nvidia,tx-clk-tap-delay = <0x00>;
				};
			};
		};
	};

	__symbols__ {
		can_clock = "/fragment@0/__overlay__/clocks/can_clock";
		hdr40_pinmux = "/fragment@2/__overlay__/header-40pin-pinmux";
	};

	__fixups__ {
		hdr40_spi1 = "/fragment@1:target:0";
        gpio = "/fragment@1/__overlay__/spi@0:interrupts:0", 
            "/fragment@1/__overlay__/spi@1:interrupts:0",
            "/fragment@3/__overlay__/spi@0:interrupt-parent:0";
		pinmux = "/fragment@2:target:0";
		hdr40_spi2 = "/fragment@3:target:0";
	};

	__local_fixups__ {

		fragment@1 {

			__overlay__ {

				spi@0 {
					clocks = <0x00>;
				};

				spi@1 {
					clocks = <0x00>;
				};
			};
		};

		fragment@2 {

			__overlay__ {
				pinctrl-0 = <0x00>;
			};
		};

		fragment@3 {

			__overlay__ {

				spi@0 {
					clocks = <0x00>;
				};
			};
		};
	};
};