[coreboot-gerrit] Change in coreboot[master]: mainboard/google/nocturne: simplify camera power references

Matt Delco (Code Review) gerrit at coreboot.org
Mon Jul 23 19:48:51 CEST 2018


Matt Delco has uploaded this change for review. ( https://review.coreboot.org/27605


Change subject: mainboard/google/nocturne: simplify camera power references
......................................................................

mainboard/google/nocturne: simplify camera power references

This change primarily moves the PowerResource up to a more
common scope so that the _PRx references are simpler
(the ^ scope modifier isn't well supported everywhere
amongst OSes and drivers, and I've got an OS that can't
boot with the way things are currently laid out).

I've also not seen a firmware outside of coreboot that tries
to reference count _ON and _OFF. Isn't it up to the OS to
deference count, and whatever it tells ACPI is what should
happen (i.e., on means on and off means off)?  I could do
basic comparison for 1 and 0 but LEqual seems to be what
other firmwares use (I presume to permit subsequent attempts
at _OFF to affect potentially problematic hardware).

Some of the _UIDs are also duplicated, so I've made them unique.

A few cosmetic changes were made so that diffing cam0.asl
against cam1.asl has fewer extraneous differences.

Change-Id: I9c9f6c712b075450539d5b84ac5bb221b3cbb57e
Signed-off-by: Matt Delco <delco at chromium.org>
---
M src/mainboard/google/poppy/variants/nocturne/include/variant/acpi/cam0.asl
M src/mainboard/google/poppy/variants/nocturne/include/variant/acpi/cam1.asl
2 files changed, 88 insertions(+), 123 deletions(-)



  git pull ssh://review.coreboot.org:29418/coreboot refs/changes/05/27605/1

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 27f1275..ec4430d 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
@@ -15,6 +15,42 @@
 
 Scope (\_SB.PCI0.I2C3)
 {
+	PowerResource (FCPR, 0, 0)
+	{
+		Name (STA, 0)
+		Method (_ON, 0, Serialized) {
+			If (LEqual(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)
+				Store (1, STA)
+			}
+		}
+		Method (_OFF, 0, Serialized) {
+			If (LEqual(STA, 1)) {
+				CTXS (GPIO_PCH_FCAM_CLK_EN)
+				CTXS (GPIO_FCAM_RST_L)
+				CTXS (GPIO_FCAM_PWR_EN)
+				Store (0, STA)
+			}
+		}
+		Method (_STA, 0, NotSerialized) {
+			Return (STA)
+		}
+	}
+
 	Device (CAM0)
 	{
 		Name (_HID, "SONY319A") /* _HID: Hardware ID */
@@ -29,65 +65,13 @@
 		Name (_CRS, ResourceTemplate ()
 		{
 			I2cSerialBus (0x0010, ControllerInitiated, 0x00061A80,
-			AddressingMode7Bit, "\\_SB.PCI0.I2C3",
-			0x00, ResourceConsumer, ,
-			)
+				AddressingMode7Bit, "\\_SB.PCI0.I2C3",
+				0x00, ResourceConsumer, ,
+				)
 		})
 
-		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)
-				}
-			}
-		}
+		Name (_PR0, Package () { FCPR })
+		Name (_PR3, Package () { FCPR })
 
 		/* Port0 of CAM0 is connected to port0 of CIO2 device */
 		Name (_DSD, Package () {
@@ -147,11 +131,10 @@
 				AddressingMode7Bit, "\\_SB.PCI0.I2C3",
 				0x00, ResourceConsumer, ,)
 		})
+		Name (_DEP, Package () { CAM0 })
 
-		Name (_DEP, Package() { ^^I2C3.CAM0 })
-
-		Name (_PR0, Package (0x01) { ^^I2C3.CAM0.FCPR })
-		Name (_PR3, Package (0x01) { ^^I2C3.CAM0.FCPR })
+		Name (_PR0, Package () { FCPR })
+		Name (_PR3, Package () { FCPR })
 
 		Name (_DSD, Package ()
 		{
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 ca2fee4..19146dc 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
@@ -15,6 +15,40 @@
 
 Scope (\_SB.PCI0.I2C5)
 {
+	PowerResource (RCPR, 0, 0)
+	{
+		Name (STA, 0)
+		Method (_ON, 0, Serialized) {
+			If (LEqual(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)
+				Store (1, STA)
+			}
+		}
+		Method (_OFF, 0, Serialized) {
+			If (LEqual(STA, 1)) {
+				CTXS (GPIO_PCH_RCAM_CLK_EN)
+				CTXS (GPIO_RCAM_RST_L)
+				CTXS (GPIO_RCAM_PWR_EN)
+				Store (0, STA)
+			}
+		}
+		Method (_STA, 0, NotSerialized) {
+			Return (STA)
+		}
+	}
 
 	Device (CAM1)
 	{
@@ -35,59 +69,8 @@
 				)
 		})
 
-		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)
-				}
-			}
-		}
+		Name (_PR0, Package () { RCPR })
+		Name (_PR3, Package () { RCPR })
 
 		/* Port0 of CAM1 is connected to port1 of CIO2 device */
 		Name (_DSD, Package () {
@@ -136,7 +119,7 @@
 	Device (VCM1)
 	{
 		Name (_HID, "PRP0001")  /* _HID: Hardware ID */
-		Name (_UID, Zero)  /* _UID: Unique ID */
+		Name (_UID, 3)  /* _UID: Unique ID */
 		Name (_DDN, "AKM AF DAC") /* _DDN: DOS Device Name */
 
 		Method (_STA, 0, NotSerialized)  /* _STA: Status */
@@ -152,10 +135,10 @@
 				)
 		})
 
-		Name (_DEP, Package() { ^^I2C5.CAM1 })
+		Name (_DEP, Package() { CAM1 })
 
-		Name (_PR0, Package (0x01) { ^^I2C5.CAM1.RCPR })
-		Name (_PR3, Package (0x01) { ^^I2C5.CAM1.RCPR })
+		Name (_PR0, Package () { RCPR })
+		Name (_PR3, Package () { RCPR })
 
 		Name (_DSD, Package () {
 			ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
@@ -168,7 +151,7 @@
 	Device (NVM1)
         {
 		Name (_HID, "INT3499") /* _HID: Hardware ID */
-		Name (_UID, Zero)  /* _UID: Unique ID */
+		Name (_UID, 1)  /* _UID: Unique ID */
 		Name (_DDN, "M24C64S")  /* _DDN: DOS Device Name */
 
 		Method (_STA, 0, NotSerialized)  /* _STA: Status */
@@ -182,11 +165,10 @@
 				AddressingMode7Bit, "\\_SB.PCI0.I2C5",
 				0x00, ResourceConsumer, ,)
 		})
+		Name (_DEP, Package () { CAM1 })
 
-		Name (_DEP, Package () { ^^I2C5.CAM1 })
-
-		Name (_PR0, Package (0x01) { ^^I2C5.CAM1.RCPR })
-		Name (_PR3, Package (0x01) { ^^I2C5.CAM1.RCPR })
+		Name (_PR0, Package () { RCPR })
+		Name (_PR3, Package () { RCPR })
 
 		Name (_DSD, Package ()
 		{

-- 
To view, visit https://review.coreboot.org/27605
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I9c9f6c712b075450539d5b84ac5bb221b3cbb57e
Gerrit-Change-Number: 27605
Gerrit-PatchSet: 1
Gerrit-Owner: Matt Delco <delco at chromium.org>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.coreboot.org/pipermail/coreboot-gerrit/attachments/20180723/e585759f/attachment-0001.html>


More information about the coreboot-gerrit mailing list