<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>