diff --git a/src/mainboard/google/poppy/variants/nocturne/include/variant/acpi/cam0.asl b/src/mainboard/google/poppy/variants/nocturne/include/variant/acpi/cam0.asl
index 1d72a86..27f1275 100644
--- a/src/mainboard/google/poppy/variants/nocturne/include/variant/acpi/cam0.asl
+++ b/src/mainboard/google/poppy/variants/nocturne/include/variant/acpi/cam0.asl
@@ -34,6 +34,61 @@
 			)
 		})
 
+		Name (STA, 0)
+		Method (PMON, 0, Serialized) {
+			If (STA == 0) {
+				CTXS (GPIO_FCAM_RST_L)
+				STXS (GPIO_FCAM_PWR_EN)
+				STXS (GPIO_PCH_FCAM_CLK_EN)
+				Sleep(3)
+				STXS (GPIO_FCAM_RST_L)
+
+				/*
+				 * A delay of T7 (minimum of 5 ms) + T8
+				 * (max 5 ms + delay of coarse integration
+				 * time value + 14 H, time for 14 horizontal
+				 * lines) is needed to have the sensor ready
+				 * for streaming, as soon as the power on
+				 * sequence completes
+				 */
+				Sleep(11);
+			}
+			STA++
+		}
+
+		Method (PMOF, 0, Serialized) {
+			If (STA == 0) {
+				Return
+			}
+			STA--
+			If (STA == 0) {
+				CTXS (GPIO_PCH_FCAM_CLK_EN)
+				CTXS (GPIO_FCAM_RST_L)
+				CTXS (GPIO_FCAM_PWR_EN)
+			}
+		}
+
+		Name (_PR0, Package (0x01) { FCPR })
+		Name (_PR3, Package (0x01) { FCPR })
+
+		/* Power resource methods for Rear Camera */
+		PowerResource (FCPR, 0, 0) {
+			Method (_ON, 0, Serialized) {
+				PMON ()
+			}
+			Method (_OFF, 0, Serialized) {
+				PMOF ()
+			}
+			Method (_STA, 0, Serialized) {
+				If (LGreater(STA,0)) {
+					Return (0x1)
+				}
+				Else {
+					Return (0x0)
+				}
+			}
+		}
+
 		/* Port0 of CAM0 is connected to port0 of CIO2 device */
 		Name (_DSD, Package () {
 			ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
@@ -93,6 +148,11 @@
 				0x00, ResourceConsumer, ,)
 		})
 
+		Name (_DEP, Package() { ^^I2C3.CAM0 })
+
+		Name (_PR0, Package (0x01) { ^^I2C3.CAM0.FCPR })
+		Name (_PR3, Package (0x01) { ^^I2C3.CAM0.FCPR })
+
 		Name (_DSD, Package ()
 		{
 			ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
diff --git a/src/mainboard/google/poppy/variants/nocturne/include/variant/acpi/cam1.asl b/src/mainboard/google/poppy/variants/nocturne/include/variant/acpi/cam1.asl
index bba7610..ca2fee4 100644
--- a/src/mainboard/google/poppy/variants/nocturne/include/variant/acpi/cam1.asl
+++ b/src/mainboard/google/poppy/variants/nocturne/include/variant/acpi/cam1.asl
@@ -35,6 +35,60 @@
 				)
 		})
 
+		Name (STA, 0)
+		Method (PMON, 0, Serialized) {
+			If (STA == 0) {
+				CTXS(GPIO_RCAM_RST_L)
+				STXS(GPIO_RCAM_PWR_EN)
+				STXS(GPIO_PCH_RCAM_CLK_EN)
+				Sleep(3)
+				STXS(GPIO_RCAM_RST_L)
+
+				/*
+				 * A delay of T7 (minimum of 10 ms) + T8
+				 * (max 1.4 ms + delay of coarse integration
+				 * time value) is needed to have the sensor
+				 * ready for streaming, as soon as the power
+				 * on sequence completes
+				 */
+				Sleep(12)
+			}
+			STA++
+		}
+
+		Method (PMOF, 0, Serialized) {
+			If (STA == 0) {
+				Return
+			}
+			STA--
+			If (STA == 0) {
+				CTXS(GPIO_PCH_RCAM_CLK_EN)
+				CTXS(GPIO_RCAM_RST_L)
+				CTXS(GPIO_RCAM_PWR_EN)
+			}
+		}
+
+		Name (_PR0, Package (0x01) { RCPR })
+		Name (_PR3, Package (0x01) { RCPR })
+
+		/* Power resource methods for Rear Camera */
+		PowerResource (RCPR, 0, 0) {
+			Method (_ON, 0, Serialized) {
+				PMON ()
+			}
+			Method (_OFF, 0, Serialized) {
+				PMOF ()
+			}
+			Method (_STA, 0, Serialized) {
+				If (LGreater(STA,0)) {
+					Return (0x1)
+				}
+				Else {
+					Return (0x0)
+				}
+			}
+		}
+
 		/* Port0 of CAM1 is connected to port1 of CIO2 device */
 		Name (_DSD, Package () {
 			ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
@@ -98,6 +152,11 @@
 				)
 		})
 
+		Name (_DEP, Package() { ^^I2C5.CAM1 })
+
+		Name (_PR0, Package (0x01) { ^^I2C5.CAM1.RCPR })
+		Name (_PR3, Package (0x01) { ^^I2C5.CAM1.RCPR })
+
 		Name (_DSD, Package () {
 			ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
 			Package () {
@@ -124,6 +183,11 @@
 				0x00, ResourceConsumer, ,)
 		})
 
+		Name (_DEP, Package () { ^^I2C5.CAM1 })
+
+		Name (_PR0, Package (0x01) { ^^I2C5.CAM1.RCPR })
+		Name (_PR3, Package (0x01) { ^^I2C5.CAM1.RCPR })
+
 		Name (_DSD, Package ()
 		{
 			ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
diff --git a/src/mainboard/google/poppy/variants/nocturne/include/variant/gpio.h b/src/mainboard/google/poppy/variants/nocturne/include/variant/gpio.h
index 08b51b2..028db14 100644
--- a/src/mainboard/google/poppy/variants/nocturne/include/variant/gpio.h
+++ b/src/mainboard/google/poppy/variants/nocturne/include/variant/gpio.h
@@ -37,4 +37,12 @@
 /* eSPI virtual wire reporting */
 #define EC_SCI_GPI		GPE0_ESPI
 
+/* Camera Sensor config */
+#define GPIO_RCAM_PWR_EN	GPP_D7
+#define GPIO_PCH_RCAM_CLK_EN	GPP_D14
+#define GPIO_RCAM_RST_L		GPP_D16
+#define GPIO_FCAM_PWR_EN	GPP_D8
+#define GPIO_PCH_FCAM_CLK_EN	GPP_D13
+#define GPIO_FCAM_RST_L		GPP_D15
+
 #endif /* BASEBOARD_GPIO_H */
