diff --git a/src/arm/am335x-abbbi.dts b/src/arm/am335x-abbbi.dts
index 213edffcabcecbd2e5581a01d3f8fd669e875aaf..1ceb8d75835f50ff39c8c39635393936ea83b5cf 100644
--- a/src/arm/am335x-abbbi.dts
+++ b/src/arm/am335x-abbbi.dts
@@ -3,6 +3,7 @@
  * Copyright (C) 2012 Texas Instruments Incorporated - https://www.ti.com/
  * Copyright 2015 Konsulko Group
  */
+
 /dts-v1/;
 
 #include "am33xx.dtsi"
@@ -38,6 +39,7 @@
 	pinctrl-0 = <&emmc_pins>;
 	bus-width = <8>;
 	status = "okay";
+	non-removable;
 };
 
 &am33xx_pinmux {
diff --git a/src/arm/am335x-bone-common-no-capemgr.dtsi b/src/arm/am335x-bone-common-no-capemgr.dtsi
index c21ae7d692c104543a72edc8df8e2ea7ebef6b95..dceb524f93fc6e6b3293b07de34ad552be6c47bf 100644
--- a/src/arm/am335x-bone-common-no-capemgr.dtsi
+++ b/src/arm/am335x-bone-common-no-capemgr.dtsi
@@ -180,6 +180,7 @@
 	pinctrl-0 = <&uart0_pins>;
 
 	status = "okay";
+	symlink = "bone/uart/0";
 };
 
 &usb {
@@ -220,6 +221,7 @@
 
 	status = "okay";
 	clock-frequency = <400000>;
+	symlink = "bone/i2c/0";
 
 	tps: tps@24 {
 		reg = <0x24>;
@@ -243,6 +245,7 @@
 
 	status = "okay";
 	clock-frequency = <100000>;
+	symlink = "bone/i2c/2";
 };
 
 
diff --git a/src/arm/am335x-bone-common-univ.dtsi b/src/arm/am335x-bone-common-univ.dtsi
index bdffdc044381f43eb63abfd5e276ec3378d5e02a..8dbd1664abd533c4291b291dbb80f9ec9b738f01 100644
--- a/src/arm/am335x-bone-common-univ.dtsi
+++ b/src/arm/am335x-bone-common-univ.dtsi
@@ -1265,6 +1265,7 @@
 	status = "okay";
 	pinctrl-names = "default";
 	pinctrl-0 = <>;
+	symlink = "bone/eqep/0";
 
 	count_mode = <0>; /* 0 - Quadrature mode, normal 90 phase offset cha & chb. 1 - Direction mode. cha input = clock, chb input = direction */
 	swap_inputs = <0>; /* Are channel A and channel B swapped? (0 - no, 1 - yes) */
@@ -1272,13 +1273,13 @@
 	invert_qb = <1>; /* Should we invert the channel B input? I invert these because my encoder outputs drive transistors that pull down the pins */
 	invert_qi = <0>; /* Should we invert the index input? */
 	invert_qs = <0>; /* Should we invert the strobe input? */
-	symlink = "bone/eqep/0";
 };
 
 &eqep1 {
 	status = "okay";
 	pinctrl-names = "default";
 	pinctrl-0 = <>;
+	symlink = "bone/eqep/1";
 
 	count_mode = <0>; /* 0 - Quadrature mode, normal 90 phase offset cha & chb. 1 - Direction mode. cha input = clock, chb input = direction */
 	swap_inputs = <0>; /* Are channel A and channel B swapped? (0 - no, 1 - yes) */
@@ -1286,13 +1287,13 @@
 	invert_qb = <1>; /* Should we invert the channel B input? I invert these because my encoder outputs drive transistors that pull down the pins */
 	invert_qi = <0>; /* Should we invert the index input? */
 	invert_qs = <0>; /* Should we invert the strobe input? */
-	symlink = "bone/eqep/1";
 };
 
 &eqep2 {
 	status = "okay";
 	pinctrl-names = "default";
 	pinctrl-0 = <>;
+	symlink = "bone/eqep/2";
 
 	count_mode = <0>; /* 0 - Quadrature mode, normal 90 phase offset cha & chb. 1 - Direction mode. cha input = clock, chb input = direction */
 	swap_inputs = <0>; /* Are channel A and channel B swapped? (0 - no, 1 - yes) */
@@ -1300,7 +1301,6 @@
 	invert_qb = <1>; /* Should we invert the channel B input? I invert these because my encoder outputs drive transistors that pull down the pins */
 	invert_qi = <0>; /* Should we invert the index input? */
 	invert_qs = <0>; /* Should we invert the strobe input? */
-	symlink = "bone/eqep/2";
 };
 
 &epwmss0 {
@@ -1361,7 +1361,7 @@
 		#size-cells = <0>;
 
 		compatible = "spidev";
-		symlink = "spi/0.0";
+		symlink = "bone/spi/0.0";
 
 		reg = <0>;
 		spi-max-frequency = <16000000>;
@@ -1373,7 +1373,7 @@
 		#size-cells = <0>;
 
 		compatible = "spidev";
-		symlink = "spi/0.1";
+		symlink = "bone/spi/0.1";
 
 		reg = <1>;
 		spi-max-frequency = <16000000>;
@@ -1390,7 +1390,7 @@
 		#size-cells = <0>;
 
 		compatible = "spidev";
-		symlink = "spi/1.0";
+		symlink = "bone/spi/1.0";
 
 		reg = <0>;
 		spi-max-frequency = <16000000>;
@@ -1402,7 +1402,7 @@
 		#size-cells = <0>;
 
 		compatible = "spidev";
-		symlink = "spi/1.1";
+		symlink = "bone/spi/1.1";
 
 		reg = <1>;
 		spi-max-frequency = <16000000>;
diff --git a/src/arm/am335x-bone-common.dtsi b/src/arm/am335x-bone-common.dtsi
index b89a86bf260a795a206061039c04f7490beb54ed..e22cf274b63c22bc7f76930bb7302e0aeb5b057c 100644
--- a/src/arm/am335x-bone-common.dtsi
+++ b/src/arm/am335x-bone-common.dtsi
@@ -224,6 +224,7 @@
 	pinctrl-0 = <&uart0_pins>;
 
 	status = "okay";
+	symlink = "bone/uart/0";
 };
 
 &usb {
@@ -264,6 +265,7 @@
 
 	status = "okay";
 	clock-frequency = <400000>;
+	symlink = "bone/i2c/0";
 
 	tps: tps@24 {
 		reg = <0x24>;
@@ -288,6 +290,7 @@
 
 	status = "okay";
 	clock-frequency = <100000>;
+	symlink = "bone/i2c/2";
 
 	cape_eeprom0: cape_eeprom0@54 {
 		compatible = "atmel,24c256";
diff --git a/src/arm/am335x-boneblack-bbbmini.dts b/src/arm/am335x-boneblack-bbbmini.dts
index 9bc8a7ec365cf9fcedd11602dad2ed12b373e2ce..245ffffcf6fee8cac26b87eafae5d58edb91f2de 100644
--- a/src/arm/am335x-boneblack-bbbmini.dts
+++ b/src/arm/am335x-boneblack-bbbmini.dts
@@ -153,7 +153,7 @@
 		spi-max-frequency = <24000000>;
 		reg = <0>;
 		compatible = "spidev";
-		symlink = "spi/0.0";
+		symlink = "bone/spi/0.0";
 	};
 };
 
@@ -168,7 +168,7 @@
 		reg = <0>;
 		spi-max-frequency = <24000000>;
 		compatible = "spidev";
-		symlink = "spi/1.0";
+		symlink = "bone/spi/1.0";
 	};
 
 	spi1@1 {
@@ -177,7 +177,7 @@
 		reg = <1>;
 		spi-max-frequency = <24000000>;
 		compatible = "spidev";
-		symlink = "spi/1.1";
+		symlink = "bone/spi/1.1";
 	};
 };
 
diff --git a/src/arm/am335x-bonegreen-common.dtsi b/src/arm/am335x-bonegreen-common.dtsi
index 9f7fb63744d01deacc017361df2334d12d52ae8d..4c87de57d1a1f922fb17109fb8de2189e15f6afd 100644
--- a/src/arm/am335x-bonegreen-common.dtsi
+++ b/src/arm/am335x-bonegreen-common.dtsi
@@ -34,6 +34,7 @@
 	pinctrl-names = "default";
 	pinctrl-0 = <&uart2_pins>;
 	status = "okay";
+	symlink = "bone/uart/2";
 };
 
 &rtc {
diff --git a/src/arm/am335x-bonegreen-wireless-common-univ.dtsi b/src/arm/am335x-bonegreen-wireless-common-univ.dtsi
index 6325fe32a08a9134469a1ec008aac1ba1eb5014b..520a7705ebc5007fd063ff4062fa594d9262a3d6 100644
--- a/src/arm/am335x-bonegreen-wireless-common-univ.dtsi
+++ b/src/arm/am335x-bonegreen-wireless-common-univ.dtsi
@@ -1213,6 +1213,7 @@
 	status = "okay";
 	pinctrl-names = "default";
 	pinctrl-0 = <>;
+	symlink = "bone/eqep/0";
 
 	count_mode = <0>; /* 0 - Quadrature mode, normal 90 phase offset cha & chb. 1 - Direction mode. cha input = clock, chb input = direction */
 	swap_inputs = <0>; /* Are channel A and channel B swapped? (0 - no, 1 - yes) */
@@ -1220,13 +1221,13 @@
 	invert_qb = <1>; /* Should we invert the channel B input? I invert these because my encoder outputs drive transistors that pull down the pins */
 	invert_qi = <0>; /* Should we invert the index input? */
 	invert_qs = <0>; /* Should we invert the strobe input? */
-	symlink = "bone/eqep/0";
 };
 
 &eqep1 {
 	status = "okay";
 	pinctrl-names = "default";
 	pinctrl-0 = <>;
+	symlink = "bone/eqep/1";
 
 	count_mode = <0>; /* 0 - Quadrature mode, normal 90 phase offset cha & chb. 1 - Direction mode. cha input = clock, chb input = direction */
 	swap_inputs = <0>; /* Are channel A and channel B swapped? (0 - no, 1 - yes) */
@@ -1234,13 +1235,13 @@
 	invert_qb = <1>; /* Should we invert the channel B input? I invert these because my encoder outputs drive transistors that pull down the pins */
 	invert_qi = <0>; /* Should we invert the index input? */
 	invert_qs = <0>; /* Should we invert the strobe input? */
-	symlink = "bone/eqep/1";
 };
 
 &eqep2 {
 	status = "okay";
 	pinctrl-names = "default";
 	pinctrl-0 = <>;
+	symlink = "bone/eqep/2";
 
 	count_mode = <0>; /* 0 - Quadrature mode, normal 90 phase offset cha & chb. 1 - Direction mode. cha input = clock, chb input = direction */
 	swap_inputs = <0>; /* Are channel A and channel B swapped? (0 - no, 1 - yes) */
@@ -1248,7 +1249,6 @@
 	invert_qb = <1>; /* Should we invert the channel B input? I invert these because my encoder outputs drive transistors that pull down the pins */
 	invert_qi = <0>; /* Should we invert the index input? */
 	invert_qs = <0>; /* Should we invert the strobe input? */
-	symlink = "bone/eqep/2";
 };
 
 &epwmss0 {
@@ -1309,7 +1309,7 @@
 		#size-cells = <0>;
 
 		compatible = "spidev";
-		symlink = "spi/0.0";
+		symlink = "bone/spi/0.0";
 
 		reg = <0>;
 		spi-max-frequency = <16000000>;
@@ -1321,7 +1321,7 @@
 		#size-cells = <0>;
 
 		compatible = "spidev";
-		symlink = "spi/0.1";
+		symlink = "bone/spi/0.1";
 
 		reg = <1>;
 		spi-max-frequency = <16000000>;
@@ -1338,7 +1338,7 @@
 		#size-cells = <0>;
 
 		compatible = "spidev";
-		symlink = "spi/1.0";
+		symlink = "bone/spi/1.0";
 
 		reg = <0>;
 		spi-max-frequency = <16000000>;
@@ -1350,7 +1350,7 @@
 		#size-cells = <0>;
 
 		compatible = "spidev";
-		symlink = "spi/1.1";
+		symlink = "bone/spi/1.1";
 
 		reg = <1>;
 		spi-max-frequency = <16000000>;
diff --git a/src/arm/omap5-board-common.dtsi b/src/arm/omap5-board-common.dtsi
index c42377147339fddf386dd8c62bc3b514ea51558c..cb8cc8444b0da134378e0610b45ab40a1842d0b6 100644
--- a/src/arm/omap5-board-common.dtsi
+++ b/src/arm/omap5-board-common.dtsi
@@ -315,7 +315,8 @@
 
 	palmas_sys_nirq_pins: pinmux_palmas_sys_nirq_pins {
 		pinctrl-single,pins = <
-			OMAP5_IOPAD(0x068, PIN_INPUT_PULLUP | MUX_MODE0) /* sys_nirq1 */
+			/* sys_nirq1 is pulled down as the SoC is inverting it for GIC */
+			OMAP5_IOPAD(0x068, PIN_INPUT_PULLUP | MUX_MODE0)
 		>;
 	};
 
@@ -383,7 +384,8 @@
 
 	palmas: palmas@48 {
 		compatible = "ti,palmas";
-		interrupts = <GIC_SPI 7 IRQ_TYPE_NONE>; /* IRQ_SYS_1N */
+		/* sys_nirq/ext_sys_irq pins get inverted at mpuss wakeupgen */
+		interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_LOW>;
 		reg = <0x48>;
 		interrupt-controller;
 		#interrupt-cells = <2>;
@@ -649,7 +651,8 @@
 		pinctrl-names = "default";
 		pinctrl-0 = <&twl6040_pins>;
 
-		interrupts = <GIC_SPI 119 IRQ_TYPE_NONE>; /* IRQ_SYS_2N cascaded to gic */
+		/* sys_nirq/ext_sys_irq pins get inverted at mpuss wakeupgen */
+		interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_LOW>;
 
 		/* audpwron gpio defined in the board specific dts */