summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLijian Zhao <lijian.zhao@intel.com>2018-06-13 12:51:47 -0700
committerPatrick Georgi <pgeorgi@google.com>2018-07-02 07:27:21 +0000
commite78af973499d906c8cc27b2515148b4a8494d35a (patch)
treec62583036be14adfffb068ccfb8984b7d70282b4
parentd0a5deb46a86d1979d3956a1d835fb00d7d3cb97 (diff)
downloadcoreboot-e78af973499d906c8cc27b2515148b4a8494d35a.tar.xz
mainboard/google/nocturne: Set camera power sequence
To make image sensor working, the intended power sequence need to applied. BUG=NONE TEST=NONE Change-Id: I4833c0e303174b297c1d193495e08e55d294a717 Signed-off-by: Lijian Zhao <lijian.zhao@intel.com> Signed-off-by: Rajmohan Mani <rajmohan.mani@intel.com> Signed-off-by: Tomasz Figa <tfiga@chromium.org> Reviewed-on: https://review.coreboot.org/27094 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Furquan Shaikh <furquan@google.com>
-rw-r--r--src/mainboard/google/poppy/variants/nocturne/include/variant/acpi/cam0.asl60
-rw-r--r--src/mainboard/google/poppy/variants/nocturne/include/variant/acpi/cam1.asl64
-rw-r--r--src/mainboard/google/poppy/variants/nocturne/include/variant/gpio.h8
3 files changed, 132 insertions, 0 deletions
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 1d72a863d4..27f127576c 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 @@ Scope (\_SB.PCI0.I2C3)
)
})
+ 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 @@ Scope (\_SB.PCI0.I2C3)
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 bba761066d..ca2fee4e45 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 @@ Scope (\_SB.PCI0.I2C5)
)
})
+ 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 @@ Scope (\_SB.PCI0.I2C5)
)
})
+ 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 @@ Scope (\_SB.PCI0.I2C5)
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 08b51b27f9..028db14f47 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 */