[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