<p>V Sowmya has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/20661">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">mainboard/intel/kblrvp: Add MIPI camera support<br><br>This patch adds mipi_camera.asl and enables<br>I2C2, I2C3, CIO2 and IMGU devices,<br><br>* Add TPS68470 PMIC related ACPI objects.<br>* Add OV cameras related ACPI objects.<br>* Add Dongwoon AF DAC related ACPI objects.<br>* SSDB: Sensor specific database for camera sensor.<br>* CAMD: ACPI object to specify the camera device type.<br><br>BUG=none<br>BRANCH=none<br>TEST=Build and boot kblrvp. Dump and verify that the generated DSDT table<br>has the required entries.<br><br>Change-Id: Ibaf26dad74ca1e7c9f415ae75c4ed8558ad99e2f<br>Signed-off-by: V Sowmya <v.sowmya@intel.com><br>---<br>A src/mainboard/intel/kblrvp/acpi/mipi_camera.asl<br>M src/mainboard/intel/kblrvp/dsdt.asl<br>M src/mainboard/intel/kblrvp/variants/rvp3/devicetree.cb<br>3 files changed, 178 insertions(+), 4 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/61/20661/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">diff --git a/src/mainboard/intel/kblrvp/acpi/mipi_camera.asl b/src/mainboard/intel/kblrvp/acpi/mipi_camera.asl<br>new file mode 100644<br>index 0000000..8a9f166<br>--- /dev/null<br>+++ b/src/mainboard/intel/kblrvp/acpi/mipi_camera.asl<br>@@ -0,0 +1,168 @@<br>+/*<br>+ * This file is part of the coreboot project.<br>+ *<br>+ * Copyright (C) 2017 Intel Corporation.<br>+ *<br>+ * This program is free software; you can redistribute it and/or modify<br>+ * it under the terms of the GNU General Public License as published by<br>+ * the Free Software Foundation; version 2 of the License.<br>+ *<br>+ * This program is distributed in the hope that it will be useful,<br>+ * but WITHOUT ANY WARRANTY; without even the implied warranty of<br>+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the<br>+ * GNU General Public License for more details.<br>+ */<br>+<br>+Scope (\_SB.PCI0.I2C2)<br>+{<br>+   Device (PMIC)<br>+        {<br>+            Name (_HID, "INT3472") /* _HID: Hardware ID */<br>+             Name (_UID, Zero)  // _UID: Unique ID */<br>+             Name (_DDN, "TPS68470 PMIC")  /* _DDN: DOS Device Name */<br>+          Name (CAMD, 0x64)<br>+<br>+         Method (_STA, 0, NotSerialized)  /* _STA: Status */<br>+          {<br>+                    Return (0x0F)<br>+                }<br>+<br>+         Name (_CRS, ResourceTemplate ()<br>+              {<br>+                    I2cSerialBus (0x004D, ControllerInitiated, 0x00061A80,<br>+                               AddressingMode7Bit, "\\_SB.PCI0.I2C2",<br>+                             0x00, ResourceConsumer, ,<br>+                    )<br>+            })<br>+   }<br>+<br>+ Device (CAM0)<br>+        {<br>+            Name (_HID, "OVTID858")  /* _HID: Hardware ID */<br>+           Name (_UID, Zero)  /* _UID: Unique ID */<br>+             Name (_DDN, "OV 13858 Camera") /* _DDN: DOS Device Name */<br>+         Name (CAMD, 0x02)<br>+<br>+         Method (_STA, 0, NotSerialized)  /* _STA: Status */<br>+          {<br>+                    Return (0x0F)<br>+                }<br>+<br>+         Name (_DEP, Package() {\_SB.PCI0.I2C2.PMIC})<br>+<br>+              Name (_CRS, ResourceTemplate ()<br>+              {<br>+                    I2cSerialBus (0x0010, ControllerInitiated, 0x00061A80,<br>+                               AddressingMode7Bit, "\\_SB.PCI0.I2C2",<br>+                             0x00, ResourceConsumer, ,<br>+                            )<br>+            })<br>+<br>+                Method (SSDB, 0, Serialized)<br>+         {<br>+                    Return (Buffer (0x5E)<br>+                        {<br>+                            /* 0000 */   0x00, 0x50, 0x00, 0x00, 0x00, 0x00,0x00, 0x00,<br>+                          /* 0008 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br>+                         /* 0010 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br>+                         /* 0018 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00,<br>+                         /* 0020 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br>+                         /* 0028 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br>+                         /* 0030 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br>+                         /* 0038 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br>+                         /* 0040 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br>+                         /* 0048 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x03,<br>+                         /* 0050 */   0x09, 0x00, 0x02, 0x01, 0x00, 0x01, 0x00, 0x36,<br>+                         /* 0058 */   0x6E, 0x01, 0x00, 0x00, 0x00, 0x00<br>+                      })<br>+           }<br>+    }<br>+<br>+ Device (VCM0)<br>+        {<br>+            Name (_HID, "DWDWD000")  /* _HID: Hardware ID */<br>+           Name (_UID, Zero)  /* _UID: Unique ID */<br>+             Name (_DDN, "Dongwoon AF DAC") /* _DDN: DOS Device Name */<br>+         Name (CAMD, 0x03)<br>+<br>+         Method (_STA, 0, NotSerialized)  /* _STA: Status */<br>+          {<br>+                    Return (0x0F)<br>+                }<br>+<br>+         Name (_DEP, Package() {\_SB.PCI0.I2C2.PMIC})<br>+         Name (_CRS, ResourceTemplate ()<br>+              {<br>+                    I2cSerialBus (0x000C, ControllerInitiated, 0x00061A80,<br>+                               AddressingMode7Bit, "\\_SB.PCI0.I2C2",<br>+                             0x00, ResourceConsumer, ,<br>+                            )<br>+            })<br>+   }<br>+}<br>+<br>+Scope (\_SB.PCI0.I2C3)<br>+{<br>+        Device (PMIC)<br>+        {<br>+            Name (_HID, "INT3473") /* _HID: Hardware ID */<br>+             Name (_UID, Zero)  /* _UID: Unique ID */<br>+             Name (_DDN, "TPS68470 PMIC 2") /* _DDN: DOS Device Name */<br>+         Name (CAMD, 0x64)<br>+<br>+         Method (_STA, 0, NotSerialized)  /* _STA: Status */<br>+          {<br>+                    Return (0x0F)<br>+                }<br>+<br>+         Name (_CRS, ResourceTemplate ()<br>+              {<br>+                    I2cSerialBus (0x0049, ControllerInitiated, 0x00061A80,<br>+                               AddressingMode7Bit, "\\_SB.PCI0.I2C3",<br>+                             0x00, ResourceConsumer, ,<br>+                    )<br>+            })<br>+   }<br>+<br>+ Device (CAM1)<br>+        {<br>+            Name (_HID, "INT3479") /* _HID: Hardware ID */<br>+             Name (_UID, Zero)  /* _UID: Unique ID */<br>+             Name (_DDN, "OV 5670 Camera")  /* _DDN: DOS Device Name */<br>+         Name (CAMD, 0x02)<br>+<br>+         Method (_STA, 0, NotSerialized)  /* _STA: Status */<br>+          {<br>+                    Return (0x0F)<br>+                }<br>+<br>+         Name (_DEP, Package() {\_SB.PCI0.I2C3.PMIC})<br>+         Name (_CRS, ResourceTemplate ()<br>+              {<br>+                    I2cSerialBus (0x0010, ControllerInitiated, 0x00061A80,<br>+                       AddressingMode7Bit, "\\_SB.PCI0.I2C3",<br>+                     0x00, ResourceConsumer, ,<br>+                    )<br>+            })<br>+<br>+                Method (SSDB, 0, Serialized)<br>+         {<br>+                    Return (Buffer (0x5E)<br>+                        {<br>+                            /* 0000 */   0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br>+                         /* 0008 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br>+                         /* 0010 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br>+                         /* 0018 */   0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00,<br>+                         /* 0020 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br>+                         /* 0028 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br>+                         /* 0030 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br>+                         /* 0038 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br>+                         /* 0040 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br>+                         /* 0048 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x03,<br>+                         /* 0050 */   0x09, 0x00, 0x02, 0x01, 0x00, 0x01, 0x00, 0x36,<br>+                         /* 0058 */   0x6E, 0x01, 0x00, 0x00, 0x00, 0x00<br>+                      })<br>+           }<br>+    }<br>+}<br>+<br>diff --git a/src/mainboard/intel/kblrvp/dsdt.asl b/src/mainboard/intel/kblrvp/dsdt.asl<br>index 25e6a30..2ce020c 100644<br>--- a/src/mainboard/intel/kblrvp/dsdt.asl<br>+++ b/src/mainboard/intel/kblrvp/dsdt.asl<br>@@ -44,6 +44,10 @@<br>             #include "acpi/dptf.asl"<br>    }<br> <br>+ /* MIPI camera */<br>+    #include "acpi/mipi_camera.asl"<br>+<br>+<br> #if IS_ENABLED(CONFIG_CHROMEOS)<br>     // Chrome OS specific<br>         #include <vendorcode/google/chromeos/acpi/chromeos.asl><br>diff --git a/src/mainboard/intel/kblrvp/variants/rvp3/devicetree.cb b/src/mainboard/intel/kblrvp/variants/rvp3/devicetree.cb<br>index ac99a21..c1974ad 100644<br>--- a/src/mainboard/intel/kblrvp/variants/rvp3/devicetree.cb<br>+++ b/src/mainboard/intel/kblrvp/variants/rvp3/devicetree.cb<br>@@ -37,6 +37,8 @@<br>     register "HeciEnabled" = "0"<br>      register "SaGv" = "3"<br>     register "PmTimerDisabled" = "1"<br>+ register "Cio2Enable" = "1"<br>+      register "SaImguEnable" = "1"<br> <br>  register "pirqa_routing" = "PCH_IRQ11"<br>    register "pirqb_routing" = "PCH_IRQ10"<br>@@ -186,8 +188,8 @@<br>       register "SerialIoDevMode" = "{ \<br>              [PchSerialIoIndexI2C0]  = PchSerialIoPci, \<br>           [PchSerialIoIndexI2C1]  = PchSerialIoPci, \<br>-          [PchSerialIoIndexI2C2]  = PchSerialIoDisabled, \<br>-             [PchSerialIoIndexI2C3]  = PchSerialIoDisabled, \<br>+             [PchSerialIoIndexI2C2]  = PchSerialIoPci, \<br>+          [PchSerialIoIndexI2C3]  = PchSerialIoPci, \<br>           [PchSerialIoIndexI2C4]  = PchSerialIoPci, \<br>           [PchSerialIoIndexI2C5]  = PchSerialIoDisabled, \<br>              [PchSerialIoIndexSpi0]  = PchSerialIoDisabled, \<br>@@ -214,8 +216,8 @@<br>                 device pci 14.2 on  end # Thermal Subsystem<br>           device pci 15.0 on  end # I2C #0<br>              device pci 15.1 on  end # I2C #1<br>-             device pci 15.2 off end # I2C #2<br>-             device pci 15.3 off end # I2C #3<br>+             device pci 15.2 on  end # I2C #2<br>+             device pci 15.3 on  end # I2C #3<br>              device pci 16.0 on  end # Management Engine Interface 1<br>               device pci 16.1 off end # Management Engine Interface 2<br>               device pci 16.2 off end # Management Engine IDE-R<br></pre><p>To view, visit <a href="https://review.coreboot.org/20661">change 20661</a>. To unsubscribe, visit <a href="https://review.coreboot.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://review.coreboot.org/20661"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: coreboot </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: Ibaf26dad74ca1e7c9f415ae75c4ed8558ad99e2f </div>
<div style="display:none"> Gerrit-Change-Number: 20661 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: V Sowmya <v.sowmya@intel.com> </div>