mb/google/atlas: Enable camera module NVM

Enable at24 EEPROM by adding ASL of nvm

BUG=b:122583978
BRANCH=master
TEST=Build and run for basic camera functions

Change-Id: Ifc2060c2ceb7d1a8ef490f36f484deb425a37c95
Signed-off-by: Chen, JasonX Z <jasonx.z.chen@intel.com>
Reviewed-on: https://review.coreboot.org/c/30795
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Rizwan Qureshi <rizwan.qureshi@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/c/1412673
Reviewed-by: Bob Moragues <moragues@chromium.org>
Commit-Queue: Bob Moragues <moragues@chromium.org>
Tested-by: Bob Moragues <moragues@chromium.org>
diff --git a/src/mainboard/google/poppy/variants/atlas/include/variant/acpi/cam0.asl b/src/mainboard/google/poppy/variants/atlas/include/variant/acpi/cam0.asl
index 7c85650..0a703d4 100644
--- a/src/mainboard/google/poppy/variants/atlas/include/variant/acpi/cam0.asl
+++ b/src/mainboard/google/poppy/variants/atlas/include/variant/acpi/cam0.asl
@@ -15,25 +15,23 @@
 
 Scope (\_SB.PCI0.I2C3)
 {
-	Device (CAM0)
-	{
-		Name (_HID, "INT3478") /* _HID: Hardware ID */
-		Name (_UID, Zero)  /* _UID: Unique ID */
-		Name (_DDN, "SONY IMX208 Camera")  /* _DDN: DOS Device Name */
-
-		Method (_STA, 0, NotSerialized)  /* _STA: Status */
-		{
-			Return (0x0F)
-		}
-
-		Name (_CRS, ResourceTemplate ()
-		{
-			I2cSerialBus (0x0010, ControllerInitiated, 0x00061A80,
-				AddressingMode7Bit, "\\_SB.PCI0.I2C3",
-				0x00, ResourceConsumer, ,)
-		})
-
+	/* Power resource methods for Front Camera */
+	PowerResource (FCPR, 0, 0) {
 		Name (STA, 0)
+		Method (_ON, 0, Serialized) {
+			PMON ()
+		}
+		Method (_OFF, 0, Serialized) {
+			PMOF ()
+		}
+		Method (_STA, 0, Serialized) {
+			If (LGreater(STA,0)) {
+				Return (0x1)
+			}
+			Else {
+				Return (0x0)
+			}
+		}
 		Method (PMON, 0, Serialized) {
 			If (STA == 0) {
 				CTXS (EN_CAM_PMIC_RST_L)
@@ -57,27 +55,29 @@
 				CTXS (EN_PP3300_DX_CAM)
 			}
 		}
+	}
+
+	Device (CAM0)
+	{
+		Name (_HID, "INT3478") /* _HID: Hardware ID */
+		Name (_UID, Zero)  /* _UID: Unique ID */
+		Name (_DDN, "SONY IMX208 Camera")  /* _DDN: DOS Device Name */
+
+		Method (_STA, 0, NotSerialized)  /* _STA: Status */
+		{
+			Return (0x0F)
+		}
+
+		Name (_CRS, ResourceTemplate ()
+		{
+			I2cSerialBus (0x0010, ControllerInitiated, 0x00061A80,
+				AddressingMode7Bit, "\\_SB.PCI0.I2C3",
+				0x00, ResourceConsumer, ,)
+		})
 
 		Name (_PR0, Package (0x01) { FCPR })
 		Name (_PR3, Package (0x01) { FCPR })
 
-		/* Power resource methods for Front 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 () {
@@ -119,4 +119,38 @@
 			}
 		})
 	}
+
+	Device (NVM0)
+	{
+		Name (_HID, "INT3499") /* _HID: Hardware ID */
+		Name (_UID, Zero)  /* _UID: Unique ID */
+		Name (_DDN, "GT24C16S")  /* _DDN: DOS Device Name */
+
+		Method (_STA, 0, NotSerialized)  /* _STA: Status */
+		{
+			Return (0x0F)
+		}
+
+		Name (_CRS, ResourceTemplate ()
+		{
+			I2cSerialBus (0x0050, ControllerInitiated, 0x00061A80,
+				AddressingMode7Bit, "\\_SB.PCI0.I2C3",
+				0x00, ResourceConsumer, ,)
+		})
+
+		Name (_DEP, Package () { CAM0 })
+		Name (_PR0, Package (0x01) { FCPR })
+		Name (_PR3, Package (0x01) { FCPR })
+
+		Name (_DSD, Package ()
+		{
+			ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+			Package () {
+				Package () { "size", 2048 },
+				Package () { "pagesize", 1 },
+				Package () { "read-only", 1 },
+				Package () { "address-width", 8 },
+			}
+		})
+	}
 }