<p>Lijian Zhao has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/26104">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">mainboard/intel/kblrvp: Update camera sensors<br><br>Kabylake-R will be using to test new image sensors, update the device ID<br>and i2c slave address to match hardware config.<br><br>Change-Id: I374b5437c238caf89ae42f5328a574b22d3e0b8a<br>Signed-off-by: Lijian Zhao <lijian.zhao@intel.com><br>---<br>M src/mainboard/intel/kblrvp/acpi/ipu_mainboard.asl<br>M src/mainboard/intel/kblrvp/acpi/mipi_camera.asl<br>M src/mainboard/intel/kblrvp/variants/rvp3/include/variant/gpio.h<br>3 files changed, 45 insertions(+), 736 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/04/26104/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/mainboard/intel/kblrvp/acpi/ipu_mainboard.asl b/src/mainboard/intel/kblrvp/acpi/ipu_mainboard.asl</span><br><span>index 211ca43..04be19c 100644</span><br><span>--- a/src/mainboard/intel/kblrvp/acpi/ipu_mainboard.asl</span><br><span>+++ b/src/mainboard/intel/kblrvp/acpi/ipu_mainboard.asl</span><br><span>@@ -65,7 +65,7 @@</span><br><span> Package () {</span><br><span> Package () { "endpoint", 0 },</span><br><span> Package () { "clock-lanes", 0 },</span><br><span style="color: hsl(0, 100%, 40%);">- Package () { "data-lanes", Package () { 1, 2 } },</span><br><span style="color: hsl(120, 100%, 40%);">+ Package () { "data-lanes", Package () { 1, 2, 3, 4 } },</span><br><span> Package () { "remote-endpoint",</span><br><span> Package() { \_SB.PCI0.I2C3.CAM1, 0, 0 }</span><br><span> },</span><br><span>diff --git a/src/mainboard/intel/kblrvp/acpi/mipi_camera.asl b/src/mainboard/intel/kblrvp/acpi/mipi_camera.asl</span><br><span>index 1efad47..7b45b97 100644</span><br><span>--- a/src/mainboard/intel/kblrvp/acpi/mipi_camera.asl</span><br><span>+++ b/src/mainboard/intel/kblrvp/acpi/mipi_camera.asl</span><br><span>@@ -15,416 +15,44 @@</span><br><span> </span><br><span> Scope (\_SB.PCI0.I2C2)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- Device (PMIC)</span><br><span style="color: hsl(120, 100%, 40%);">+ PowerResource (PCAM, 0, 0)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- Name (_HID, "INT3472") /* _HID: Hardware ID */</span><br><span style="color: hsl(0, 100%, 40%);">- Name (_UID, Zero) // _UID: Unique ID */</span><br><span style="color: hsl(0, 100%, 40%);">- Name (_DDN, "TPS68470 PMIC") /* _DDN: DOS Device Name */</span><br><span style="color: hsl(0, 100%, 40%);">- Name (CAMD, 0x64)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- Method (_STA, 0, NotSerialized) /* _STA: Status */</span><br><span style="color: hsl(120, 100%, 40%);">+ Name (STA, 0)</span><br><span style="color: hsl(120, 100%, 40%);">+ Method(_ON)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- Return (0x0F)</span><br><span style="color: hsl(120, 100%, 40%);">+ STXS(CAM_FLASH_STROBE)</span><br><span style="color: hsl(120, 100%, 40%);">+ Sleep(10)</span><br><span style="color: hsl(120, 100%, 40%);">+ STA = 1</span><br><span> }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /* Marks the availability of all the operation regions */</span><br><span style="color: hsl(0, 100%, 40%);">- Name (AVP1, Zero)</span><br><span style="color: hsl(0, 100%, 40%);">- Name (AVGP, Zero)</span><br><span style="color: hsl(0, 100%, 40%);">- Name (AVB0, Zero)</span><br><span style="color: hsl(0, 100%, 40%);">- Name (AVB1, Zero)</span><br><span style="color: hsl(0, 100%, 40%);">- Name (AVB2, Zero)</span><br><span style="color: hsl(0, 100%, 40%);">- Name (AVB3, Zero)</span><br><span style="color: hsl(0, 100%, 40%);">- Method (_REG, 2, NotSerialized)</span><br><span style="color: hsl(120, 100%, 40%);">+ Method(_OFF)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- If (LEqual (Arg0, 0x08))</span><br><span style="color: hsl(0, 100%, 40%);">- {</span><br><span style="color: hsl(0, 100%, 40%);">- /* Marks the availability of GeneralPurposeIO</span><br><span style="color: hsl(0, 100%, 40%);">- * 0x08: opregion space for GeneralPurposeIO</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">- Store (Arg1, AVGP)</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- If (LEqual (Arg0, 0xB0))</span><br><span style="color: hsl(0, 100%, 40%);">- {</span><br><span style="color: hsl(0, 100%, 40%);">- /* Marks the availability of</span><br><span style="color: hsl(0, 100%, 40%);">- * TI_PMIC_POWER_OPREGION_ID */</span><br><span style="color: hsl(0, 100%, 40%);">- Store (Arg1, AVB0)</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- If (LEqual (Arg0, 0xB1))</span><br><span style="color: hsl(0, 100%, 40%);">- {</span><br><span style="color: hsl(0, 100%, 40%);">- /* Marks the availability of</span><br><span style="color: hsl(0, 100%, 40%);">- * TI_PMIC_VR_VAL_OPREGION_ID */</span><br><span style="color: hsl(0, 100%, 40%);">- Store (Arg1, AVB1)</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- If (LEqual (Arg0, 0xB2))</span><br><span style="color: hsl(0, 100%, 40%);">- {</span><br><span style="color: hsl(0, 100%, 40%);">- /* Marks the availability of</span><br><span style="color: hsl(0, 100%, 40%);">- * TI_PMIC_CLK_OPREGION_ID */</span><br><span style="color: hsl(0, 100%, 40%);">- Store (Arg1, AVB2)</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- If (LEqual (Arg0, 0xB3))</span><br><span style="color: hsl(0, 100%, 40%);">- {</span><br><span style="color: hsl(0, 100%, 40%);">- /* Marks the availability of</span><br><span style="color: hsl(0, 100%, 40%);">- * TI_PMIC_CLK_FREQ_OPREGION_ID */</span><br><span style="color: hsl(0, 100%, 40%);">- Store (Arg1, AVB3)</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- If (LAnd (AVGP, LAnd (LAnd (AVB0, AVB1),</span><br><span style="color: hsl(0, 100%, 40%);">- LAnd(AVB2, AVB3))))</span><br><span style="color: hsl(0, 100%, 40%);">- {</span><br><span style="color: hsl(0, 100%, 40%);">- /* Marks the availability of all opregions */</span><br><span style="color: hsl(0, 100%, 40%);">- Store (1, AVP1)</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- Else</span><br><span style="color: hsl(0, 100%, 40%);">- {</span><br><span style="color: hsl(0, 100%, 40%);">- Store (0, AVP1)</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(120, 100%, 40%);">+ STA = 0</span><br><span> }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- OperationRegion (GPOP, GeneralPurposeIo, 0, 0x2)</span><br><span style="color: hsl(0, 100%, 40%);">- Name (_CRS, ResourceTemplate ()</span><br><span style="color: hsl(0, 100%, 40%);">- {</span><br><span style="color: hsl(0, 100%, 40%);">- I2cSerialBus (0x004D, ControllerInitiated, 0x00061A80,</span><br><span style="color: hsl(0, 100%, 40%);">- AddressingMode7Bit, "\\_SB.PCI0.I2C2",</span><br><span style="color: hsl(0, 100%, 40%);">- 0x00, ResourceConsumer, ,</span><br><span style="color: hsl(0, 100%, 40%);">- )</span><br><span style="color: hsl(0, 100%, 40%);">- /* GPIO.9 is XSHUTDOWN pin for world facing camera */</span><br><span style="color: hsl(0, 100%, 40%);">- GpioIo (Exclusive, PullDefault, 0x0000, 0x0000,</span><br><span style="color: hsl(0, 100%, 40%);">- IoRestrictionOutputOnly, "\\_SB.PCI0.I2C2.PMIC",</span><br><span style="color: hsl(0, 100%, 40%);">- 0x00, ResourceConsumer,,)</span><br><span style="color: hsl(0, 100%, 40%);">- {</span><br><span style="color: hsl(0, 100%, 40%);">- 9</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- })</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /* PMIC operation regions */</span><br><span style="color: hsl(0, 100%, 40%);">- /* 0xB0: TI_PMIC_POWER_OPREGION_ID</span><br><span style="color: hsl(0, 100%, 40%);">- * VSIO: Sensor IO LDO output</span><br><span style="color: hsl(0, 100%, 40%);">- * VCMC: VCM LDO output</span><br><span style="color: hsl(0, 100%, 40%);">- * VAX1: Auxiliary LDO1 output</span><br><span style="color: hsl(0, 100%, 40%);">- * VAX2: Auxiliary LDO2 output</span><br><span style="color: hsl(0, 100%, 40%);">- * VACT: Analog LDO output</span><br><span style="color: hsl(0, 100%, 40%);">- * VDCT: Core buck output</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">- OperationRegion (PWR1, 0xB0, Zero, 0x0100)</span><br><span style="color: hsl(0, 100%, 40%);">- Field (PWR1, DWordAcc, NoLock, Preserve)</span><br><span style="color: hsl(0, 100%, 40%);">- {</span><br><span style="color: hsl(0, 100%, 40%);">- VSIO, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- VCMC, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- VAX1, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- VAX2, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- VACT, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- VDCT, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /* 0xB1: TI_PMIC_VR_VAL_OPREGION_ID</span><br><span style="color: hsl(0, 100%, 40%);">- * SIOV: VSIO VR voltage value</span><br><span style="color: hsl(0, 100%, 40%);">- * IOVA: VIO VR voltage value</span><br><span style="color: hsl(0, 100%, 40%);">- * VCMV: VCM VR voltage value</span><br><span style="color: hsl(0, 100%, 40%);">- * AX1V: Auxiliary LDO1 VR voltage value</span><br><span style="color: hsl(0, 100%, 40%);">- * AX2V: Auxiliary LDO2 VR voltage value</span><br><span style="color: hsl(0, 100%, 40%);">- * ACVA: Analog LDO VR voltage</span><br><span style="color: hsl(0, 100%, 40%);">- * DCVA: Core buck VR volatage</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">- OperationRegion (PWR2, 0xB1, Zero, 0x0100)</span><br><span style="color: hsl(0, 100%, 40%);">- Field (PWR2, DWordAcc, NoLock, Preserve)</span><br><span style="color: hsl(0, 100%, 40%);">- {</span><br><span style="color: hsl(0, 100%, 40%);">- SIOV, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- IOVA, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- VCMV, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- AX1V, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- AX2V, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- ACVA, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- DCVA, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /* 0xB2: TI_PMIC_CLK_OPREGION_ID</span><br><span style="color: hsl(0, 100%, 40%);">- * PCTL: PLL control register</span><br><span style="color: hsl(0, 100%, 40%);">- * PCT2: PLL control 2 register</span><br><span style="color: hsl(0, 100%, 40%);">- * CFG1: Clock configuration 1 register</span><br><span style="color: hsl(0, 100%, 40%);">- * CFG2: Clock configuration 2 register</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">- OperationRegion (CLKC, 0xB2, Zero, 0x0100)</span><br><span style="color: hsl(0, 100%, 40%);">- Field (CLKC, DWordAcc, NoLock, Preserve)</span><br><span style="color: hsl(0, 100%, 40%);">- {</span><br><span style="color: hsl(0, 100%, 40%);">- PCTL, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- PCT2, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- CFG1, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- CFG2, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /* 0xB3: TI_PMIC_CLK_FREQ_OPREGION_ID</span><br><span style="color: hsl(0, 100%, 40%);">- * PDV2: PLL output divider for HCLK_B</span><br><span style="color: hsl(0, 100%, 40%);">- * BODI: PLL output divider for boost clock</span><br><span style="color: hsl(0, 100%, 40%);">- * BUDI: PLL output divider for buck clock</span><br><span style="color: hsl(0, 100%, 40%);">- * PSWR: PLL reference clock setting</span><br><span style="color: hsl(0, 100%, 40%);">- * XTDV: Reference crystal divider</span><br><span style="color: hsl(0, 100%, 40%);">- * PLDV: PLL feedback divider</span><br><span style="color: hsl(0, 100%, 40%);">- * PODV: PLL output divider for HCLK_A</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">- OperationRegion (CLKF, 0xB3, Zero, 0x0100)</span><br><span style="color: hsl(0, 100%, 40%);">- Field (CLKF, DWordAcc, NoLock, Preserve)</span><br><span style="color: hsl(0, 100%, 40%);">- {</span><br><span style="color: hsl(0, 100%, 40%);">- PDV2, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- BODI, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- BUDI, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- PSWR, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- XTDV, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- PLDV, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- PODV, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- Mutex (MUTC, 0)</span><br><span style="color: hsl(0, 100%, 40%);">- Method (CLKE, 0, Serialized) {</span><br><span style="color: hsl(0, 100%, 40%);">- /* save Acquire result so we can check for</span><br><span style="color: hsl(0, 100%, 40%);">- Mutex acquired */</span><br><span style="color: hsl(0, 100%, 40%);">- Store (Acquire (MUTC, 1000), Local0)</span><br><span style="color: hsl(0, 100%, 40%);">- /* check for Mutex acquired */</span><br><span style="color: hsl(0, 100%, 40%);">- If (LEqual (Local0, Zero)) {</span><br><span style="color: hsl(0, 100%, 40%);">- /* Set boost clock divider */</span><br><span style="color: hsl(0, 100%, 40%);">- BODI = 3</span><br><span style="color: hsl(0, 100%, 40%);">- /* Set buck clock divider */</span><br><span style="color: hsl(0, 100%, 40%);">- BUDI = 2</span><br><span style="color: hsl(0, 100%, 40%);">- /* Set the PLL_REF_CLK cyles */</span><br><span style="color: hsl(0, 100%, 40%);">- PSWR = 19</span><br><span style="color: hsl(0, 100%, 40%);">- /* Set the reference crystal divider */</span><br><span style="color: hsl(0, 100%, 40%);">- XTDV = 170</span><br><span style="color: hsl(0, 100%, 40%);">- /* Set PLL feedback divider */</span><br><span style="color: hsl(0, 100%, 40%);">- PLDV = 32</span><br><span style="color: hsl(0, 100%, 40%);">- /* Set PLL output divider for HCLK_A */</span><br><span style="color: hsl(0, 100%, 40%);">- PODV = 1</span><br><span style="color: hsl(0, 100%, 40%);">- /* Enable HCLK_A clock.</span><br><span style="color: hsl(0, 100%, 40%);">- * CFG1: output selection for HCLK_A.</span><br><span style="color: hsl(0, 100%, 40%);">- * CFG2: set drive strength for HCLK_A.</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">- CFG2 = 1</span><br><span style="color: hsl(0, 100%, 40%);">- CFG1 = 2</span><br><span style="color: hsl(0, 100%, 40%);">- /* Enable PLL output, crystal oscillator</span><br><span style="color: hsl(0, 100%, 40%);">- * input capacitance control and set</span><br><span style="color: hsl(0, 100%, 40%);">- * Xtal oscillator as clock source.</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">- PCTL = 209</span><br><span style="color: hsl(0, 100%, 40%);">- Sleep(1)</span><br><span style="color: hsl(0, 100%, 40%);">- Release (MUTC)</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- Method (CLKD, 0, Serialized) {</span><br><span style="color: hsl(0, 100%, 40%);">- /* save Acquire result so we can check for</span><br><span style="color: hsl(0, 100%, 40%);">- Mutex acquired */</span><br><span style="color: hsl(0, 100%, 40%);">- Store (Acquire (MUTC, 1000), Local0)</span><br><span style="color: hsl(0, 100%, 40%);">- /* check for Mutex acquired */</span><br><span style="color: hsl(0, 100%, 40%);">- If (LEqual (Local0, Zero)) {</span><br><span style="color: hsl(0, 100%, 40%);">- BODI = 0</span><br><span style="color: hsl(0, 100%, 40%);">- BUDI = 0</span><br><span style="color: hsl(0, 100%, 40%);">- PSWR = 0</span><br><span style="color: hsl(0, 100%, 40%);">- XTDV = 0</span><br><span style="color: hsl(0, 100%, 40%);">- PLDV = 0</span><br><span style="color: hsl(0, 100%, 40%);">- PODV = 0</span><br><span style="color: hsl(0, 100%, 40%);">- /* Disable HCLK_A clock */</span><br><span style="color: hsl(0, 100%, 40%);">- CFG2 = 0</span><br><span style="color: hsl(0, 100%, 40%);">- CFG1 = 0</span><br><span style="color: hsl(0, 100%, 40%);">- PCTL = 0</span><br><span style="color: hsl(0, 100%, 40%);">- Release (MUTC)</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /* Reference count for VSIO */</span><br><span style="color: hsl(0, 100%, 40%);">- Mutex (MUTV, 0)</span><br><span style="color: hsl(0, 100%, 40%);">- Name (VSIC, 0)</span><br><span style="color: hsl(0, 100%, 40%);">- Method (DOVD, 1, Serialized) {</span><br><span style="color: hsl(0, 100%, 40%);">- /* Save Acquire result so we can check for</span><br><span style="color: hsl(0, 100%, 40%);">- Mutex acquired */</span><br><span style="color: hsl(0, 100%, 40%);">- Store (Acquire (MUTV, 1000), Local0)</span><br><span style="color: hsl(0, 100%, 40%);">- /* Check for Mutex acquired */</span><br><span style="color: hsl(0, 100%, 40%);">- If (LEqual (Local0, Zero)) {</span><br><span style="color: hsl(0, 100%, 40%);">- /* Turn off VSIO */</span><br><span style="color: hsl(0, 100%, 40%);">- If (LEqual (Arg0, Zero)) {</span><br><span style="color: hsl(0, 100%, 40%);">- /* Decrement only if VSIC > 0 */</span><br><span style="color: hsl(0, 100%, 40%);">- if (LGreater (VSIC, 0)) {</span><br><span style="color: hsl(0, 100%, 40%);">- Decrement (VSIC)</span><br><span style="color: hsl(0, 100%, 40%);">- If (LEqual (VSIC, Zero)) {</span><br><span style="color: hsl(0, 100%, 40%);">- VSIO = 0</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- } ElseIf (LEqual (Arg0, 1)) {</span><br><span style="color: hsl(0, 100%, 40%);">- /* Increment only if VSIC < 2 */</span><br><span style="color: hsl(0, 100%, 40%);">- If (LLess (VSIC, 2)) {</span><br><span style="color: hsl(0, 100%, 40%);">- /* Turn on VSIO */</span><br><span style="color: hsl(0, 100%, 40%);">- If (LEqual (VSIC, Zero)) {</span><br><span style="color: hsl(0, 100%, 40%);">- VSIO = 3</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- Increment (VSIC)</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- Release (MUTV)</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /* Power resource methods for CAM0 */</span><br><span style="color: hsl(0, 100%, 40%);">- PowerResource (OVTH, 0, 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- Name (STA, 0)</span><br><span style="color: hsl(0, 100%, 40%);">- Method (_ON, 0, Serialized) {</span><br><span style="color: hsl(0, 100%, 40%);">- If (LEqual (AVP1, 1)) {</span><br><span style="color: hsl(0, 100%, 40%);">- If (LEqual (STA, 0)) {</span><br><span style="color: hsl(0, 100%, 40%);">- /* Enable VSIO regulator +</span><br><span style="color: hsl(0, 100%, 40%);">- daisy chain */</span><br><span style="color: hsl(0, 100%, 40%);">- DOVD(1)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- if (LNotEqual (IOVA, 52)) {</span><br><span style="color: hsl(0, 100%, 40%);">- /* Set VSIO value as</span><br><span style="color: hsl(0, 100%, 40%);">- 1.8006 V */</span><br><span style="color: hsl(0, 100%, 40%);">- IOVA = 52</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- if (LNotEqual (SIOV, 52)) {</span><br><span style="color: hsl(0, 100%, 40%);">- /* Set VSIO value as</span><br><span style="color: hsl(0, 100%, 40%);">- 1.8006 V */</span><br><span style="color: hsl(0, 100%, 40%);">- SIOV = 52</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- Sleep(3)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- VACT = 1</span><br><span style="color: hsl(0, 100%, 40%);">- if (LNotEqual (ACVA, 109)) {</span><br><span style="color: hsl(0, 100%, 40%);">- /* Set ANA at 2.8152V */</span><br><span style="color: hsl(0, 100%, 40%);">- ACVA = 109</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- Sleep(3)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- \_SB.PCI0.I2C2.PMIC.CLKE()</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- VDCT = 1</span><br><span style="color: hsl(0, 100%, 40%);">- if (LNotEqual (DCVA, 12)) {</span><br><span style="color: hsl(0, 100%, 40%);">- /* Set CORE at 1.2V */</span><br><span style="color: hsl(0, 100%, 40%);">- DCVA = 12</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- Sleep(3)</span><br><span style="color: hsl(0, 100%, 40%);">- \_SB.PCI0.I2C2.CAM0.CRST(1)</span><br><span style="color: hsl(0, 100%, 40%);">- Sleep(5)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- STA = 1</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- Method (_OFF, 0, Serialized) {</span><br><span style="color: hsl(0, 100%, 40%);">- If (LEqual (AVP1, 1)) {</span><br><span style="color: hsl(0, 100%, 40%);">- If (LEqual (STA, 1)) {</span><br><span style="color: hsl(0, 100%, 40%);">- Sleep(2)</span><br><span style="color: hsl(0, 100%, 40%);">- \_SB.PCI0.I2C2.PMIC.CLKD()</span><br><span style="color: hsl(0, 100%, 40%);">- Sleep(2)</span><br><span style="color: hsl(0, 100%, 40%);">- \_SB.PCI0.I2C2.CAM0.CRST(0)</span><br><span style="color: hsl(0, 100%, 40%);">- Sleep(3)</span><br><span style="color: hsl(0, 100%, 40%);">- VDCT = 0</span><br><span style="color: hsl(0, 100%, 40%);">- Sleep(3)</span><br><span style="color: hsl(0, 100%, 40%);">- VACT = 0</span><br><span style="color: hsl(0, 100%, 40%);">- Sleep(1)</span><br><span style="color: hsl(0, 100%, 40%);">- DOVD(0)</span><br><span style="color: hsl(0, 100%, 40%);">- Sleep(1)</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- STA = 0</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- Method (_STA, 0, NotSerialized) {</span><br><span style="color: hsl(0, 100%, 40%);">- Return (STA)</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /* Power resource methods for VCM */</span><br><span style="color: hsl(0, 100%, 40%);">- PowerResource (VCMP, 0, 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- Name (STA, 0)</span><br><span style="color: hsl(0, 100%, 40%);">- Method (_ON, 0, Serialized) {</span><br><span style="color: hsl(0, 100%, 40%);">- If (LEqual (AVP1, 1)) {</span><br><span style="color: hsl(0, 100%, 40%);">- If (LEqual (STA, 0)) {</span><br><span style="color: hsl(0, 100%, 40%);">- /* Enable VSIO regulator +</span><br><span style="color: hsl(0, 100%, 40%);">- daisy chain */</span><br><span style="color: hsl(0, 100%, 40%);">- DOVD(1)</span><br><span style="color: hsl(0, 100%, 40%);">- if (LNotEqual (IOVA, 52)) {</span><br><span style="color: hsl(0, 100%, 40%);">- /* Set VSIO value as</span><br><span style="color: hsl(0, 100%, 40%);">- 1.8006 V */</span><br><span style="color: hsl(0, 100%, 40%);">- IOVA = 52</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- if (LNotEqual (SIOV, 52)) {</span><br><span style="color: hsl(0, 100%, 40%);">- /* Set VSIO value as</span><br><span style="color: hsl(0, 100%, 40%);">- 1.8006 V */</span><br><span style="color: hsl(0, 100%, 40%);">- SIOV = 52</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- Sleep(3)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /* Enable VCM regulator */</span><br><span style="color: hsl(0, 100%, 40%);">- VCMC = 1</span><br><span style="color: hsl(0, 100%, 40%);">- if (LNotEqual (VCMV, 109)) {</span><br><span style="color: hsl(0, 100%, 40%);">- /* Set VCM value at</span><br><span style="color: hsl(0, 100%, 40%);">- 2.8152 V */</span><br><span style="color: hsl(0, 100%, 40%);">- VCMV = 109</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- Sleep(3)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- STA = 1</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- Method (_OFF, 0, Serialized) {</span><br><span style="color: hsl(0, 100%, 40%);">- If (LEqual (AVP1, 1)) {</span><br><span style="color: hsl(0, 100%, 40%);">- If (LEqual (STA, 1)) {</span><br><span style="color: hsl(0, 100%, 40%);">- VCMC = 0 /* Disable regulator */</span><br><span style="color: hsl(0, 100%, 40%);">- Sleep(1)</span><br><span style="color: hsl(0, 100%, 40%);">- DOVD(0) /* Disable regulator */</span><br><span style="color: hsl(0, 100%, 40%);">- Sleep(1)</span><br><span style="color: hsl(0, 100%, 40%);">- STA = 0</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- Method (_STA, 0, NotSerialized) {</span><br><span style="color: hsl(0, 100%, 40%);">- Return (STA)</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(120, 100%, 40%);">+ Method (_STA, 0, NotSerialized) {</span><br><span style="color: hsl(120, 100%, 40%);">+ Return (STA)</span><br><span> }</span><br><span> }</span><br><span> </span><br><span> Device (CAM0)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- Name (_HID, "OVTID858") /* _HID: Hardware ID */</span><br><span style="color: hsl(120, 100%, 40%);">+ Name (_HID, "SONY355A") /* _HID: Hardware ID */</span><br><span> Name (_UID, Zero) /* _UID: Unique ID */</span><br><span style="color: hsl(0, 100%, 40%);">- Name (_DDN, "OV 13858 Camera") /* _DDN: DOS Device Name */</span><br><span style="color: hsl(0, 100%, 40%);">- Name (CAMD, 0x02)</span><br><span style="color: hsl(120, 100%, 40%);">+ Name (_DDN, "Sony IMX355 Camera") /* _DDN: DOS Device Name */</span><br><span> </span><br><span> Method (_STA, 0, NotSerialized) /* _STA: Status */</span><br><span> {</span><br><span> Return (0x0F)</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- Name (_DEP, Package() {\_SB.PCI0.I2C2.PMIC})</span><br><span> Name (_CRS, ResourceTemplate ()</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- I2cSerialBus (0x0010, ControllerInitiated, 0x00061A80,</span><br><span style="color: hsl(120, 100%, 40%);">+ I2cSerialBus (0x001a, ControllerInitiated, 0x00061A80,</span><br><span> AddressingMode7Bit, "\\_SB.PCI0.I2C2",</span><br><span> 0x00, ResourceConsumer, ,</span><br><span> )</span><br><span> })</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- Field (\_SB.PCI0.I2C2.PMIC.GPOP, ByteAcc, NoLock, Preserve)</span><br><span style="color: hsl(0, 100%, 40%);">- {</span><br><span style="color: hsl(0, 100%, 40%);">- Connection</span><br><span style="color: hsl(0, 100%, 40%);">- (</span><br><span style="color: hsl(0, 100%, 40%);">- GpioIo (Exclusive, PullDefault, 0x0000, 0x0000,</span><br><span style="color: hsl(0, 100%, 40%);">- IoRestrictionOutputOnly,</span><br><span style="color: hsl(0, 100%, 40%);">- "\\_SB.PCI0.I2C2.PMIC", 0x00,</span><br><span style="color: hsl(0, 100%, 40%);">- ResourceConsumer,,)</span><br><span style="color: hsl(0, 100%, 40%);">- {</span><br><span style="color: hsl(0, 100%, 40%);">- 9</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- ),</span><br><span style="color: hsl(0, 100%, 40%);">- GRST, 1,</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /* Set or clear GRST GPIO */</span><br><span style="color: hsl(0, 100%, 40%);">- Method (CRST, 1, Serialized)</span><br><span style="color: hsl(0, 100%, 40%);">- {</span><br><span style="color: hsl(0, 100%, 40%);">- GRST = Arg0</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- Name (_PR0, Package () { ^^I2C2.PMIC.OVTH })</span><br><span style="color: hsl(0, 100%, 40%);">- Name (_PR3, Package () { ^^I2C2.PMIC.OVTH })</span><br><span style="color: hsl(120, 100%, 40%);">+ Name (_PR0, Package () { PCAM })</span><br><span> </span><br><span> /* Port0 of CAM0 is connected to port0 of CIO2 device */</span><br><span> Name (_DSD, Package () {</span><br><span>@@ -435,6 +63,9 @@</span><br><span> ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),</span><br><span> Package () {</span><br><span> Package () { "clock-frequency", 19200000 },</span><br><span style="color: hsl(120, 100%, 40%);">+ Package () { "lens-focus",</span><br><span style="color: hsl(120, 100%, 40%);">+ Package () { \_SB.PCI0.I2C2.VCM0 }</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span> }</span><br><span> })</span><br><span> </span><br><span>@@ -488,17 +119,22 @@</span><br><span> </span><br><span> Device (VCM0)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- Name (_HID, "DWDWD000") /* _HID: Hardware ID */</span><br><span style="color: hsl(120, 100%, 40%);">+ Name (_HID, "AKM7375") /* _HID: Hardware ID */</span><br><span> Name (_UID, Zero) /* _UID: Unique ID */</span><br><span style="color: hsl(0, 100%, 40%);">- Name (_DDN, "Dongwoon AF DAC") /* _DDN: DOS Device Name */</span><br><span style="color: hsl(0, 100%, 40%);">- Name (CAMD, 0x03)</span><br><span style="color: hsl(120, 100%, 40%);">+ Name (_DDN, "AKM AF DAC") /* _DDN: DOS Device Name */</span><br><span> </span><br><span> Method (_STA, 0, NotSerialized) /* _STA: Status */</span><br><span> {</span><br><span> Return (0x0F)</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- Name (_DEP, Package() {\_SB.PCI0.I2C2.PMIC})</span><br><span style="color: hsl(120, 100%, 40%);">+ Name (_DSD, Package () {</span><br><span style="color: hsl(120, 100%, 40%);">+ ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),</span><br><span style="color: hsl(120, 100%, 40%);">+ Package () {</span><br><span style="color: hsl(120, 100%, 40%);">+ Package () { "compatible", "akm,ak7375" },</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+ })</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> Name (_CRS, ResourceTemplate ()</span><br><span> {</span><br><span> I2cSerialBus (0x000C, ControllerInitiated, 0x00061A80,</span><br><span>@@ -506,331 +142,40 @@</span><br><span> 0x00, ResourceConsumer, ,</span><br><span> )</span><br><span> })</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- Name (_PR0, Package () { ^PMIC.VCMP })</span><br><span style="color: hsl(0, 100%, 40%);">- Name (_PR3, Package () { ^PMIC.VCMP })</span><br><span> }</span><br><span> }</span><br><span> </span><br><span> Scope (\_SB.PCI0.I2C3)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- Device (PMIC)</span><br><span style="color: hsl(120, 100%, 40%);">+ PowerResource (PCAM, 0, 0)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- Name (_HID, "INT3473") /* _HID: Hardware ID */</span><br><span style="color: hsl(0, 100%, 40%);">- Name (_UID, Zero) /* _UID: Unique ID */</span><br><span style="color: hsl(0, 100%, 40%);">- Name (_DDN, "TPS68470 PMIC 2") /* _DDN: DOS Device Name */</span><br><span style="color: hsl(0, 100%, 40%);">- Name (CAMD, 0x64)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- Method (_STA, 0, NotSerialized) /* _STA: Status */</span><br><span style="color: hsl(120, 100%, 40%);">+ Name (STA, 0)</span><br><span style="color: hsl(120, 100%, 40%);">+ Method(_ON)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- Return (0x0F)</span><br><span style="color: hsl(120, 100%, 40%);">+ STXS(CAM_FLASH_STROBE)</span><br><span style="color: hsl(120, 100%, 40%);">+ Sleep(10)</span><br><span style="color: hsl(120, 100%, 40%);">+ STA = 1</span><br><span> }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /* Marks the availability of all the operation regions */</span><br><span style="color: hsl(0, 100%, 40%);">- Name (AVP2, Zero)</span><br><span style="color: hsl(0, 100%, 40%);">- Name (AVGP, Zero)</span><br><span style="color: hsl(0, 100%, 40%);">- Name (AVB0, Zero)</span><br><span style="color: hsl(0, 100%, 40%);">- Name (AVB1, Zero)</span><br><span style="color: hsl(0, 100%, 40%);">- Name (AVB2, Zero)</span><br><span style="color: hsl(0, 100%, 40%);">- Name (AVB3, Zero)</span><br><span style="color: hsl(0, 100%, 40%);">- Method (_REG, 2, NotSerialized)</span><br><span style="color: hsl(120, 100%, 40%);">+ Method(_OFF)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- If (LEqual (Arg0, 0x08))</span><br><span style="color: hsl(0, 100%, 40%);">- {</span><br><span style="color: hsl(0, 100%, 40%);">- /* Marks the availability of GeneralPurposeIO</span><br><span style="color: hsl(0, 100%, 40%);">- * 0x08: opregion space for GeneralPurposeIO</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">- Store (Arg1, AVGP)</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- If (LEqual (Arg0, 0xB0))</span><br><span style="color: hsl(0, 100%, 40%);">- {</span><br><span style="color: hsl(0, 100%, 40%);">- /* Marks the availability of</span><br><span style="color: hsl(0, 100%, 40%);">- * TI_PMIC_POWER_OPREGION_ID */</span><br><span style="color: hsl(0, 100%, 40%);">- Store (Arg1, AVB0)</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- If (LEqual (Arg0, 0xB1))</span><br><span style="color: hsl(0, 100%, 40%);">- {</span><br><span style="color: hsl(0, 100%, 40%);">- /* Marks the availability of</span><br><span style="color: hsl(0, 100%, 40%);">- * TI_PMIC_VR_VAL_OPREGION_ID */</span><br><span style="color: hsl(0, 100%, 40%);">- Store (Arg1, AVB1)</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- If (LEqual (Arg0, 0xB2))</span><br><span style="color: hsl(0, 100%, 40%);">- {</span><br><span style="color: hsl(0, 100%, 40%);">- /* Marks the availability of</span><br><span style="color: hsl(0, 100%, 40%);">- * TI_PMIC_CLK_OPREGION_ID */</span><br><span style="color: hsl(0, 100%, 40%);">- Store (Arg1, AVB2)</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- If (LEqual (Arg0, 0xB3))</span><br><span style="color: hsl(0, 100%, 40%);">- {</span><br><span style="color: hsl(0, 100%, 40%);">- /* Marks the availability of</span><br><span style="color: hsl(0, 100%, 40%);">- * TI_PMIC_CLK_FREQ_OPREGION_ID */</span><br><span style="color: hsl(0, 100%, 40%);">- Store (Arg1, AVB3)</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- If (LAnd (AVGP, LAnd (LAnd (AVB0, AVB1),</span><br><span style="color: hsl(0, 100%, 40%);">- LAnd(AVB2, AVB3))))</span><br><span style="color: hsl(0, 100%, 40%);">- {</span><br><span style="color: hsl(0, 100%, 40%);">- /* Marks the availability of all opregions */</span><br><span style="color: hsl(0, 100%, 40%);">- Store (1, AVP2)</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- Else</span><br><span style="color: hsl(0, 100%, 40%);">- {</span><br><span style="color: hsl(0, 100%, 40%);">- Store (0, AVP2)</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(120, 100%, 40%);">+ STA = 0</span><br><span> }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- OperationRegion (GPOP, GeneralPurposeIo, 0, 0x2)</span><br><span style="color: hsl(0, 100%, 40%);">- Name (_CRS, ResourceTemplate ()</span><br><span style="color: hsl(0, 100%, 40%);">- {</span><br><span style="color: hsl(0, 100%, 40%);">- I2cSerialBus (0x0049, ControllerInitiated, 0x00061A80,</span><br><span style="color: hsl(0, 100%, 40%);">- AddressingMode7Bit, "\\_SB.PCI0.I2C3",</span><br><span style="color: hsl(0, 100%, 40%);">- 0x00, ResourceConsumer, ,</span><br><span style="color: hsl(0, 100%, 40%);">- )</span><br><span style="color: hsl(0, 100%, 40%);">- /* GPIO.4 is AVDD pin for user facing camera */</span><br><span style="color: hsl(0, 100%, 40%);">- GpioIo (Exclusive, PullDefault, 0x0000, 0x0000,</span><br><span style="color: hsl(0, 100%, 40%);">- IoRestrictionOutputOnly, "\\_SB.PCI0.I2C3.PMIC",</span><br><span style="color: hsl(0, 100%, 40%);">- 0x00, ResourceConsumer,,)</span><br><span style="color: hsl(0, 100%, 40%);">- {</span><br><span style="color: hsl(0, 100%, 40%);">- 4</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- /* GPIO.5 is XSHUTDOWN pin for user facing camera */</span><br><span style="color: hsl(0, 100%, 40%);">- GpioIo (Exclusive, PullDefault, 0x0000, 0x0000,</span><br><span style="color: hsl(0, 100%, 40%);">- IoRestrictionOutputOnly, "\\_SB.PCI0.I2C3.PMIC",</span><br><span style="color: hsl(0, 100%, 40%);">- 0x00, ResourceConsumer,,)</span><br><span style="color: hsl(0, 100%, 40%);">- {</span><br><span style="color: hsl(0, 100%, 40%);">- 5</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- })</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /* PMIC operation regions */</span><br><span style="color: hsl(0, 100%, 40%);">- /* 0xB0: TI_PMIC_POWER_OPREGION_ID</span><br><span style="color: hsl(0, 100%, 40%);">- * VSIO: Sensor IO LDO output</span><br><span style="color: hsl(0, 100%, 40%);">- * VCMC: VCM LDO output</span><br><span style="color: hsl(0, 100%, 40%);">- * VAX1: Auxiliary LDO1 output</span><br><span style="color: hsl(0, 100%, 40%);">- * VAX2: Auxiliary LDO2 output</span><br><span style="color: hsl(0, 100%, 40%);">- * VACT: Analog LDO output</span><br><span style="color: hsl(0, 100%, 40%);">- * VDCT: Core buck output</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">- OperationRegion (PWR1, 0xB0, Zero, 0x0100)</span><br><span style="color: hsl(0, 100%, 40%);">- Field (PWR1, DWordAcc, NoLock, Preserve)</span><br><span style="color: hsl(0, 100%, 40%);">- {</span><br><span style="color: hsl(0, 100%, 40%);">- VSIO, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- VCMC, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- VAX1, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- VAX2, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- VACT, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- VDCT, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /* 0xB1: TI_PMIC_VR_VAL_OPREGION_ID</span><br><span style="color: hsl(0, 100%, 40%);">- * SIOV: VSIO VR voltage value</span><br><span style="color: hsl(0, 100%, 40%);">- * IOVA: VIO VR voltage value</span><br><span style="color: hsl(0, 100%, 40%);">- * VCMV: VCM VR voltage value</span><br><span style="color: hsl(0, 100%, 40%);">- * AX1V: Auxiliary LDO1 VR voltage value</span><br><span style="color: hsl(0, 100%, 40%);">- * AX2V: Auxiliary LDO2 VR voltage value</span><br><span style="color: hsl(0, 100%, 40%);">- * ACVA: Analog LDO VR voltage</span><br><span style="color: hsl(0, 100%, 40%);">- * DCVA: Core buck VR volatage</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">- OperationRegion (PWR2, 0xB1, Zero, 0x0100)</span><br><span style="color: hsl(0, 100%, 40%);">- Field (PWR2, DWordAcc, NoLock, Preserve)</span><br><span style="color: hsl(0, 100%, 40%);">- {</span><br><span style="color: hsl(0, 100%, 40%);">- SIOV, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- IOVA, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- VCMV, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- AX1V, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- AX2V, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- ACVA, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- DCVA, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /* 0xB2: TI_PMIC_CLK_OPREGION_ID</span><br><span style="color: hsl(0, 100%, 40%);">- * PCTL: PLL control register</span><br><span style="color: hsl(0, 100%, 40%);">- * PCT2: PLL control 2 register</span><br><span style="color: hsl(0, 100%, 40%);">- * CFG1: Clock configuration 1 register</span><br><span style="color: hsl(0, 100%, 40%);">- * CFG2: Clock configuration 2 register</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">- OperationRegion (CLKC, 0xB2, Zero, 0x0100)</span><br><span style="color: hsl(0, 100%, 40%);">- Field (CLKC, DWordAcc, NoLock, Preserve)</span><br><span style="color: hsl(0, 100%, 40%);">- {</span><br><span style="color: hsl(0, 100%, 40%);">- PCTL, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- PCT2, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- CFG1, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- CFG2, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /* 0xB3: TI_PMIC_CLK_FREQ_OPREGION_ID</span><br><span style="color: hsl(0, 100%, 40%);">- * PDV2: PLL output divider for HCLK_B</span><br><span style="color: hsl(0, 100%, 40%);">- * BODI: PLL output divider for boost clock</span><br><span style="color: hsl(0, 100%, 40%);">- * BUDI: PLL output divider for buck clock</span><br><span style="color: hsl(0, 100%, 40%);">- * PSWR: PLL reference clock setting</span><br><span style="color: hsl(0, 100%, 40%);">- * XTDV: Reference crystal divider</span><br><span style="color: hsl(0, 100%, 40%);">- * PLDV: PLL feedback divider</span><br><span style="color: hsl(0, 100%, 40%);">- * PODV: PLL output divider for HCLK_A</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">- OperationRegion (CLKF, 0xB3, Zero, 0x0100)</span><br><span style="color: hsl(0, 100%, 40%);">- Field (CLKF, DWordAcc, NoLock, Preserve)</span><br><span style="color: hsl(0, 100%, 40%);">- {</span><br><span style="color: hsl(0, 100%, 40%);">- PDV2, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- BODI, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- BUDI, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- PSWR, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- XTDV, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- PLDV, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- PODV, 32,</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- Mutex (MUTC, 0)</span><br><span style="color: hsl(0, 100%, 40%);">- Method (CLKE, 0, Serialized) {</span><br><span style="color: hsl(0, 100%, 40%);">- /* save Acquire result so we can check for</span><br><span style="color: hsl(0, 100%, 40%);">- Mutex acquired */</span><br><span style="color: hsl(0, 100%, 40%);">- Store (Acquire (MUTC, 1000), Local0)</span><br><span style="color: hsl(0, 100%, 40%);">- /* check for Mutex acquired */</span><br><span style="color: hsl(0, 100%, 40%);">- If (LEqual (Local0, Zero)) {</span><br><span style="color: hsl(0, 100%, 40%);">- /* Set boost clock divider */</span><br><span style="color: hsl(0, 100%, 40%);">- BODI = 3</span><br><span style="color: hsl(0, 100%, 40%);">- /* Set buck clock divider */</span><br><span style="color: hsl(0, 100%, 40%);">- BUDI = 2</span><br><span style="color: hsl(0, 100%, 40%);">- /* Set the PLL_REF_CLK cyles */</span><br><span style="color: hsl(0, 100%, 40%);">- PSWR = 19</span><br><span style="color: hsl(0, 100%, 40%);">- /* Set the reference crystal divider */</span><br><span style="color: hsl(0, 100%, 40%);">- XTDV = 170</span><br><span style="color: hsl(0, 100%, 40%);">- /* Set PLL feedback divider */</span><br><span style="color: hsl(0, 100%, 40%);">- PLDV = 32</span><br><span style="color: hsl(0, 100%, 40%);">- /* Set PLL output divider for HCLK_A */</span><br><span style="color: hsl(0, 100%, 40%);">- PODV = 1</span><br><span style="color: hsl(0, 100%, 40%);">- /* Enable HCLK_A clock.</span><br><span style="color: hsl(0, 100%, 40%);">- * CFG1: output selection for HCLK_A.</span><br><span style="color: hsl(0, 100%, 40%);">- * CFG2: set drive strength for HCLK_A.</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">- CFG2 = 1</span><br><span style="color: hsl(0, 100%, 40%);">- CFG1 = 2</span><br><span style="color: hsl(0, 100%, 40%);">- /* Enable PLL output, crystal oscillator</span><br><span style="color: hsl(0, 100%, 40%);">- * input capacitance control and set</span><br><span style="color: hsl(0, 100%, 40%);">- * Xtal oscillator as clock source.</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">- PCTL = 209</span><br><span style="color: hsl(0, 100%, 40%);">- Sleep(1)</span><br><span style="color: hsl(0, 100%, 40%);">- Release (MUTC)</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- Method (CLKD, 0, Serialized) {</span><br><span style="color: hsl(0, 100%, 40%);">- /* save Acquire result so we can check for</span><br><span style="color: hsl(0, 100%, 40%);">- Mutex acquired */</span><br><span style="color: hsl(0, 100%, 40%);">- Store (Acquire (MUTC, 1000), Local0)</span><br><span style="color: hsl(0, 100%, 40%);">- /* check for Mutex acquired */</span><br><span style="color: hsl(0, 100%, 40%);">- If (LEqual (Local0, Zero)) {</span><br><span style="color: hsl(0, 100%, 40%);">- BODI = 0</span><br><span style="color: hsl(0, 100%, 40%);">- BUDI = 0</span><br><span style="color: hsl(0, 100%, 40%);">- PSWR = 0</span><br><span style="color: hsl(0, 100%, 40%);">- XTDV = 0</span><br><span style="color: hsl(0, 100%, 40%);">- PLDV = 0</span><br><span style="color: hsl(0, 100%, 40%);">- PODV = 0</span><br><span style="color: hsl(0, 100%, 40%);">- /* Disable HCLK_A clock */</span><br><span style="color: hsl(0, 100%, 40%);">- CFG2 = 0</span><br><span style="color: hsl(0, 100%, 40%);">- CFG1 = 0</span><br><span style="color: hsl(0, 100%, 40%);">- PCTL = 0</span><br><span style="color: hsl(0, 100%, 40%);">- Release (MUTC)</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /* Reference count for VSIO */</span><br><span style="color: hsl(0, 100%, 40%);">- Mutex (MUTV, 0)</span><br><span style="color: hsl(0, 100%, 40%);">- Name (VSIC, 0)</span><br><span style="color: hsl(0, 100%, 40%);">- Method (DOVD, 1, Serialized) {</span><br><span style="color: hsl(0, 100%, 40%);">- /* Save Acquire result so we can check for</span><br><span style="color: hsl(0, 100%, 40%);">- Mutex acquired */</span><br><span style="color: hsl(0, 100%, 40%);">- Store (Acquire (MUTV, 1000), Local0)</span><br><span style="color: hsl(0, 100%, 40%);">- /* Check for Mutex acquired */</span><br><span style="color: hsl(0, 100%, 40%);">- If (LEqual (Local0, Zero)) {</span><br><span style="color: hsl(0, 100%, 40%);">- /* Turn off VSIO */</span><br><span style="color: hsl(0, 100%, 40%);">- If (LEqual (Arg0, Zero)) {</span><br><span style="color: hsl(0, 100%, 40%);">- VSIO = 0</span><br><span style="color: hsl(0, 100%, 40%);">- } ElseIf (LEqual (Arg0, 1)) {</span><br><span style="color: hsl(0, 100%, 40%);">- VSIO = 3</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- Release (MUTV)</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /* Power resource methods for CAM1 */</span><br><span style="color: hsl(0, 100%, 40%);">- PowerResource (OVFI, 0, 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- Name (STA, 0)</span><br><span style="color: hsl(0, 100%, 40%);">- Method (_ON, 0, Serialized) {</span><br><span style="color: hsl(0, 100%, 40%);">- If (LEqual (AVP2, 1)) {</span><br><span style="color: hsl(0, 100%, 40%);">- If (LEqual (STA, 0)) {</span><br><span style="color: hsl(0, 100%, 40%);">- /* Enable VSIO regulator +</span><br><span style="color: hsl(0, 100%, 40%);">- daisy chain */</span><br><span style="color: hsl(0, 100%, 40%);">- DOVD(1)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- VAX2 = 1 /* Enable VAUX2 */</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- if (LNotEqual (AX2V, 52)) {</span><br><span style="color: hsl(0, 100%, 40%);">- /* Set VAUX2 as</span><br><span style="color: hsl(0, 100%, 40%);">- 1.8006 V */</span><br><span style="color: hsl(0, 100%, 40%);">- AX2V = 52</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- Sleep(1)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- \_SB.PCI0.I2C3.PMIC.CLKE()</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- VAX1 = 1 /* Enable VAUX1 */</span><br><span style="color: hsl(0, 100%, 40%);">- if (LNotEqual (AX1V, 19)) {</span><br><span style="color: hsl(0, 100%, 40%);">- /* Set VAUX1 as 1.2132V */</span><br><span style="color: hsl(0, 100%, 40%);">- AX1V = 19</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- Sleep(3)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- \_SB.PCI0.I2C3.CAM1.CGP4(1)</span><br><span style="color: hsl(0, 100%, 40%);">- Sleep(3)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- \_SB.PCI0.I2C3.CAM1.CGP5(1)</span><br><span style="color: hsl(0, 100%, 40%);">- Sleep(5)</span><br><span style="color: hsl(0, 100%, 40%);">- STA = 1</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- Method (_OFF, 0, Serialized) {</span><br><span style="color: hsl(0, 100%, 40%);">- If (LEqual (AVP2, 1)) {</span><br><span style="color: hsl(0, 100%, 40%);">- If (LEqual (STA, 1)) {</span><br><span style="color: hsl(0, 100%, 40%);">- Sleep(2)</span><br><span style="color: hsl(0, 100%, 40%);">- \_SB.PCI0.I2C3.PMIC.CLKD()</span><br><span style="color: hsl(0, 100%, 40%);">- Sleep(2)</span><br><span style="color: hsl(0, 100%, 40%);">- \_SB.PCI0.I2C3.CAM1.CGP5(0)</span><br><span style="color: hsl(0, 100%, 40%);">- Sleep(3)</span><br><span style="color: hsl(0, 100%, 40%);">- VAX1 = 0</span><br><span style="color: hsl(0, 100%, 40%);">- Sleep(1)</span><br><span style="color: hsl(0, 100%, 40%);">- \_SB.PCI0.I2C3.CAM1.CGP4(0)</span><br><span style="color: hsl(0, 100%, 40%);">- Sleep(1)</span><br><span style="color: hsl(0, 100%, 40%);">- VAX2 = 0</span><br><span style="color: hsl(0, 100%, 40%);">- Sleep(1)</span><br><span style="color: hsl(0, 100%, 40%);">- DOVD(0)</span><br><span style="color: hsl(0, 100%, 40%);">- Sleep(1)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- STA = 0</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- Method (_STA, 0, NotSerialized) {</span><br><span style="color: hsl(0, 100%, 40%);">- Return (STA)</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(120, 100%, 40%);">+ Method (_STA, 0, NotSerialized) {</span><br><span style="color: hsl(120, 100%, 40%);">+ Return (STA)</span><br><span> }</span><br><span> }</span><br><span> </span><br><span> Device (CAM1)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- Name (_HID, "INT3479") /* _HID: Hardware ID */</span><br><span style="color: hsl(120, 100%, 40%);">+ Name (_HID, "SONY319A") /* _HID: Hardware ID */</span><br><span> Name (_UID, Zero) /* _UID: Unique ID */</span><br><span style="color: hsl(0, 100%, 40%);">- Name (_DDN, "OV 5670 Camera") /* _DDN: DOS Device Name */</span><br><span style="color: hsl(0, 100%, 40%);">- Name (CAMD, 0x02)</span><br><span style="color: hsl(120, 100%, 40%);">+ Name (_DDN, "Sony IMX319 Camera") /* _DDN: DOS Device Name */</span><br><span> </span><br><span> Method (_STA, 0, NotSerialized) /* _STA: Status */</span><br><span> {</span><br><span> Return (0x0F)</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- Name (_DEP, Package() {\_SB.PCI0.I2C3.PMIC})</span><br><span> Name (_CRS, ResourceTemplate ()</span><br><span> {</span><br><span> I2cSerialBus (0x0010, ControllerInitiated, 0x00061A80,</span><br><span>@@ -839,46 +184,7 @@</span><br><span> )</span><br><span> })</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- Field (\_SB.PCI0.I2C3.PMIC.GPOP, ByteAcc, NoLock, Preserve)</span><br><span style="color: hsl(0, 100%, 40%);">- {</span><br><span style="color: hsl(0, 100%, 40%);">- Connection</span><br><span style="color: hsl(0, 100%, 40%);">- (</span><br><span style="color: hsl(0, 100%, 40%);">- GpioIo (Exclusive, PullDefault, 0x0000, 0x0000,</span><br><span style="color: hsl(0, 100%, 40%);">- IoRestrictionOutputOnly,</span><br><span style="color: hsl(0, 100%, 40%);">- "\\_SB.PCI0.I2C3.PMIC", 0x00,</span><br><span style="color: hsl(0, 100%, 40%);">- ResourceConsumer,,)</span><br><span style="color: hsl(0, 100%, 40%);">- {</span><br><span style="color: hsl(0, 100%, 40%);">- 4</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- ),</span><br><span style="color: hsl(0, 100%, 40%);">- GPO4, 1,</span><br><span style="color: hsl(0, 100%, 40%);">- Connection</span><br><span style="color: hsl(0, 100%, 40%);">- (</span><br><span style="color: hsl(0, 100%, 40%);">- GpioIo (Exclusive, PullDefault, 0x0000, 0x0000,</span><br><span style="color: hsl(0, 100%, 40%);">- IoRestrictionOutputOnly,</span><br><span style="color: hsl(0, 100%, 40%);">- "\\_SB.PCI0.I2C3.PMIC", 0x00,</span><br><span style="color: hsl(0, 100%, 40%);">- ResourceConsumer,,)</span><br><span style="color: hsl(0, 100%, 40%);">- {</span><br><span style="color: hsl(0, 100%, 40%);">- 5</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- ),</span><br><span style="color: hsl(0, 100%, 40%);">- GPO5, 1,</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /* Set or clear GPO4 GPIO */</span><br><span style="color: hsl(0, 100%, 40%);">- Method (CGP4, 1, Serialized)</span><br><span style="color: hsl(0, 100%, 40%);">- {</span><br><span style="color: hsl(0, 100%, 40%);">- GPO4 = Arg0</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /* Set or clear GPO5 GPIO */</span><br><span style="color: hsl(0, 100%, 40%);">- Method (CGP5, 1, Serialized)</span><br><span style="color: hsl(0, 100%, 40%);">- {</span><br><span style="color: hsl(0, 100%, 40%);">- GPO5 = Arg0</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- Name (_PR0, Package () { ^^I2C3.PMIC.OVFI })</span><br><span style="color: hsl(0, 100%, 40%);">- Name (_PR3, Package () { ^^I2C3.PMIC.OVFI })</span><br><span style="color: hsl(120, 100%, 40%);">+ Name (_PR0, Package () { PCAM })</span><br><span> </span><br><span> /* Port0 of CAM1 is connected to port1 of CIO2 device */</span><br><span> Name (_DSD, Package () {</span><br><span>@@ -909,7 +215,7 @@</span><br><span> Package () { "endpoint", 0 },</span><br><span> Package () { "clock-lanes", 0 },</span><br><span> Package () { "data-lanes",</span><br><span style="color: hsl(0, 100%, 40%);">- Package () { 1, 2 }</span><br><span style="color: hsl(120, 100%, 40%);">+ Package () { 1, 2, 3, 4 }</span><br><span> },</span><br><span> Package () { "link-frequencies",</span><br><span> Package() { 844800000 }</span><br><span>diff --git a/src/mainboard/intel/kblrvp/variants/rvp3/include/variant/gpio.h b/src/mainboard/intel/kblrvp/variants/rvp3/include/variant/gpio.h</span><br><span>index 64d0259..0b28142 100644</span><br><span>--- a/src/mainboard/intel/kblrvp/variants/rvp3/include/variant/gpio.h</span><br><span>+++ b/src/mainboard/intel/kblrvp/variants/rvp3/include/variant/gpio.h</span><br><span>@@ -38,6 +38,9 @@</span><br><span> #define EC_SCI_GPI GPE0_DW2_16</span><br><span> #define EC_SMI_GPI GPP_E15</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/* CSI2 flash strobe */</span><br><span style="color: hsl(120, 100%, 40%);">+#define CAM_FLASH_STROBE GPP_D4</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> #ifndef __ACPI__</span><br><span> /* Pad configuration in ramstage. */</span><br><span> static const struct pad_config gpio_table[] = {</span><br><span>@@ -117,7 +120,7 @@</span><br><span> /* SPI1_CLK */ PAD_CFG_NF(GPP_D1, NONE, DEEP, NF1),</span><br><span> /* SPI1_MISO */ PAD_CFG_NF(GPP_D2, NONE, DEEP, NF1),</span><br><span> /* SPI1_MOSI */ PAD_CFG_NF(GPP_D3, NONE, DEEP, NF1),</span><br><span style="color: hsl(0, 100%, 40%);">-/* CAM_FLASH_STROBE */ PAD_CFG_NF(GPP_D4, NONE, DEEP, NF1),</span><br><span style="color: hsl(120, 100%, 40%);">+/* CAM_FLASH_STROBE */ PAD_CFG_GPO(GPP_D4, 0, DEEP),</span><br><span> /* ISH_I2C0_SDA */ PAD_CFG_NF(GPP_D5, NONE, DEEP, NF1),</span><br><span> /* ISH_I2C0_SCL */ PAD_CFG_NF(GPP_D6, NONE, DEEP, NF1),</span><br><span> /* ISH_I2C1_SDA */ PAD_CFG_NF(GPP_D7, NONE, DEEP, NF1),</span><br><span></span><br></pre><p>To view, visit <a href="https://review.coreboot.org/26104">change 26104</a>. To unsubscribe, or for help writing mail filters, 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/26104"/><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: I374b5437c238caf89ae42f5328a574b22d3e0b8a </div>
<div style="display:none"> Gerrit-Change-Number: 26104 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Lijian Zhao <lijian.zhao@intel.com> </div>