[coreboot-gerrit] Change in coreboot[master]: mainboard/intel/kblrvp: Update camera sensors

Lijian Zhao (Code Review) gerrit at coreboot.org
Fri May 4 22:56:48 CEST 2018


Lijian Zhao has uploaded this change for review. ( https://review.coreboot.org/26104


Change subject: mainboard/intel/kblrvp: Update camera sensors
......................................................................

mainboard/intel/kblrvp: Update camera sensors

Kabylake-R will be using to test new image sensors, update the device ID
and i2c slave address to match hardware config.

Change-Id: I374b5437c238caf89ae42f5328a574b22d3e0b8a
Signed-off-by: Lijian Zhao <lijian.zhao at intel.com>
---
M src/mainboard/intel/kblrvp/acpi/ipu_mainboard.asl
M src/mainboard/intel/kblrvp/acpi/mipi_camera.asl
M src/mainboard/intel/kblrvp/variants/rvp3/include/variant/gpio.h
3 files changed, 45 insertions(+), 736 deletions(-)



  git pull ssh://review.coreboot.org:29418/coreboot refs/changes/04/26104/1

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

-- 
To view, visit https://review.coreboot.org/26104
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: I374b5437c238caf89ae42f5328a574b22d3e0b8a
Gerrit-Change-Number: 26104
Gerrit-PatchSet: 1
Gerrit-Owner: Lijian Zhao <lijian.zhao at intel.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.coreboot.org/pipermail/coreboot-gerrit/attachments/20180504/d6e04b04/attachment-0001.html>


More information about the coreboot-gerrit mailing list