mb/google/poppy: Add camera devices power sequencing through ACPI power resources
This patch controls the camera devices power through ACPI power resource. * Add Opregions for PMIC, * TI_PMIC_POWER_OPREGION * TI_PMIC_VR_VAL_OPREGION * TI_PMIC_CLK_OPREGION * TI_PMIC_CLK_FREQ_OPREGION * Add power resources for sensors and VCM, * OVTH for CAM0 * OVFI for CAM1 * VCMP for VCM * Implement _ON and _OFF methods for sensor and VCM module's power on and power off sequences. BUG=b:38326541 BRANCH=none TEST=Build and boot poppy. Dump and verify that the generated DSDT table has the required entries. Change-Id: I87cd0508ed5ed922211a51f43ee96b6f44cf673d Signed-off-by: V Sowmya <v.sowmya@intel.com> Signed-off-by: Rizwan Qureshi <rizwan.qureshi@intel.com> Reviewed-on: https://review.coreboot.org/20054 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Furquan Shaikh <furquan@google.com>
This commit is contained in:
parent
ba03d8de63
commit
eacda2eb83
|
@ -17,33 +17,478 @@ Scope (\_SB.PCI0.I2C2)
|
||||||
{
|
{
|
||||||
Device (PMIC)
|
Device (PMIC)
|
||||||
{
|
{
|
||||||
Name (_HID, "INT3472") // _HID: Hardware ID
|
Name (_HID, "INT3472") /* _HID: Hardware ID */
|
||||||
Name (_UID, Zero) // _UID: Unique ID
|
Name (_UID, Zero) /* _UID: Unique ID */
|
||||||
Name (_DDN, "TPS68470 PMIC") // _DDN: DOS Device Name
|
Name (_DDN, "TPS68470 PMIC") /* _DDN: DOS Device Name */
|
||||||
Name (CAMD, 0x64)
|
Name (CAMD, 0x64)
|
||||||
|
|
||||||
Method (_STA, 0, NotSerialized) // _STA: Status
|
Method (_STA, 0, NotSerialized) /* _STA: Status */
|
||||||
{
|
{
|
||||||
Return (0x0F)
|
Return (0x0F)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Marks the availability of all the operation regions */
|
||||||
|
Name (AVBL, Zero)
|
||||||
|
Name (AVGP, Zero)
|
||||||
|
Name (AVB0, Zero)
|
||||||
|
Name (AVB1, Zero)
|
||||||
|
Name (AVB2, Zero)
|
||||||
|
Name (AVB3, Zero)
|
||||||
|
Method (_REG, 2, NotSerialized)
|
||||||
|
{
|
||||||
|
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, AVBL)
|
||||||
|
}
|
||||||
|
Else
|
||||||
|
{
|
||||||
|
Store (0, AVBL)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
OperationRegion (GPOP, GeneralPurposeIo, 0, 0x2)
|
||||||
Name (_CRS, ResourceTemplate ()
|
Name (_CRS, ResourceTemplate ()
|
||||||
{
|
{
|
||||||
I2cSerialBus (0x004D, ControllerInitiated, 0x00061A80,
|
I2cSerialBus (0x004D, ControllerInitiated, 0x00061A80,
|
||||||
AddressingMode7Bit, "\\_SB.PCI0.I2C2",
|
AddressingMode7Bit, "\\_SB.PCI0.I2C2",
|
||||||
0x00, ResourceConsumer, ,
|
0x00, ResourceConsumer, ,
|
||||||
)
|
)
|
||||||
|
/* GPIO.4 is AVDD pin for user facing camera */
|
||||||
|
GpioIo (Exclusive, PullDefault, 0x0000, 0x0000,
|
||||||
|
IoRestrictionOutputOnly, "\\_SB.PCI0.I2C2.PMIC",
|
||||||
|
0x00, ResourceConsumer,,)
|
||||||
|
{
|
||||||
|
4
|
||||||
|
}
|
||||||
|
/* GPIO.5 is XSHUTDOWN pin for user facing camera */
|
||||||
|
GpioIo (Exclusive, PullDefault, 0x0000, 0x0000,
|
||||||
|
IoRestrictionOutputOnly, "\\_SB.PCI0.I2C2.PMIC",
|
||||||
|
0x00, ResourceConsumer,,)
|
||||||
|
{
|
||||||
|
5
|
||||||
|
}
|
||||||
|
/* 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,
|
||||||
|
}
|
||||||
|
|
||||||
|
/* CLE0 and CLE1 are used to determine if both the clocks
|
||||||
|
are enabled or disabled. */
|
||||||
|
Mutex (MUTC, 0)
|
||||||
|
Name (CLE0, 0)
|
||||||
|
Name (CLE1, 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)) {
|
||||||
|
/* Enable clocks only when a sensor is turned on and
|
||||||
|
both the clocks are disabled */
|
||||||
|
If (LNot (LOr (CLE0, CLE1))) {
|
||||||
|
/* 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
|
||||||
|
/* Set PLL output divider for HCLK_B */
|
||||||
|
PDV2 = 1
|
||||||
|
/* Enable clocks for both the sensors
|
||||||
|
* CFG1: output selection for HCLK_A and
|
||||||
|
* HCLK_B.
|
||||||
|
* CFG2: set drive strength for HCLK_A
|
||||||
|
* and HCLK_B.
|
||||||
|
*/
|
||||||
|
CFG2 = 5
|
||||||
|
CFG1 = 10
|
||||||
|
/* Enable PLL output, crystal oscillator
|
||||||
|
* input capacitance control and set
|
||||||
|
* Xtal oscillator as clock source.
|
||||||
|
*/
|
||||||
|
PCTL = 209
|
||||||
|
Sleep(1)
|
||||||
|
}
|
||||||
|
Release (MUTC)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Clocks need to be disabled only if both the sensors are
|
||||||
|
turned off */
|
||||||
|
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)) {
|
||||||
|
If (LNot (LOr (CLE0, CLE1))) {
|
||||||
|
BODI = 0
|
||||||
|
BUDI = 0
|
||||||
|
PSWR = 0
|
||||||
|
XTDV = 0
|
||||||
|
PLDV = 0
|
||||||
|
PODV = 0
|
||||||
|
PDV2 = 0
|
||||||
|
/* Disable clocks for both the
|
||||||
|
sensors */
|
||||||
|
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 < 3 */
|
||||||
|
If (LLess (VSIC, 3)) {
|
||||||
|
/* 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 (AVBL, 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()
|
||||||
|
CLE0 = 1
|
||||||
|
|
||||||
|
VDCT = 1
|
||||||
|
if (LNotEqual (DCVA, 12)) {
|
||||||
|
/* Set CORE at 1.2V */
|
||||||
|
DCVA = 12
|
||||||
|
}
|
||||||
|
Sleep(3)
|
||||||
|
\_SB.PCI0.I2C2.CAM0.CRST(1)
|
||||||
|
|
||||||
|
STA = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_OFF, 0, Serialized) {
|
||||||
|
If (LEqual (AVBL, 1)) {
|
||||||
|
If (LEqual (STA, 1)) {
|
||||||
|
Sleep(2)
|
||||||
|
CLE0 = 0
|
||||||
|
\_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 CAM1 */
|
||||||
|
PowerResource (OVFI, 0, 0) {
|
||||||
|
Name (STA, 0)
|
||||||
|
Method (_ON, 0, Serialized) {
|
||||||
|
If (LEqual (AVBL, 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.I2C2.PMIC.CLKE()
|
||||||
|
CLE1 = 1
|
||||||
|
|
||||||
|
VAX1 = 1 /* Enable VAUX1 */
|
||||||
|
if (LNotEqual (AX1V, 19)) {
|
||||||
|
/* Set VAUX1 as 1.2132V */
|
||||||
|
AX1V = 19
|
||||||
|
}
|
||||||
|
Sleep(3)
|
||||||
|
|
||||||
|
\_SB.PCI0.I2C4.CAM1.CGP4(1)
|
||||||
|
Sleep(3)
|
||||||
|
|
||||||
|
\_SB.PCI0.I2C4.CAM1.CGP5(1)
|
||||||
|
Sleep(3)
|
||||||
|
STA = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_OFF, 0, Serialized) {
|
||||||
|
If (LEqual (AVBL, 1)) {
|
||||||
|
If (LEqual (STA, 1)) {
|
||||||
|
Sleep(2)
|
||||||
|
CLE1 = 0
|
||||||
|
\_SB.PCI0.I2C2.PMIC.CLKD()
|
||||||
|
Sleep(2)
|
||||||
|
\_SB.PCI0.I2C4.CAM1.CGP5(0)
|
||||||
|
Sleep(3)
|
||||||
|
VAX1 = 0
|
||||||
|
Sleep(1)
|
||||||
|
\_SB.PCI0.I2C4.CAM1.CGP4(0)
|
||||||
|
Sleep(1)
|
||||||
|
VAX2 = 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 (AVBL, 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 (AVBL, 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)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Device (CAM0)
|
Device (CAM0)
|
||||||
{
|
{
|
||||||
Name (_HID, "OVTID850") // _HID: Hardware ID
|
Name (_HID, "OVTID850") /* _HID: Hardware ID */
|
||||||
Name (_UID, Zero) // _UID: Unique ID
|
Name (_UID, Zero) /* _UID: Unique ID */
|
||||||
Name (_DDN, "OV 13850 Camera") // _DDN: DOS Device Name
|
Name (_DDN, "OV 13850 Camera") /* _DDN: DOS Device Name */
|
||||||
Name (CAMD, 0x02)
|
Name (CAMD, 0x02)
|
||||||
|
|
||||||
Method (_STA, 0, NotSerialized) // _STA: Status
|
Method (_STA, 0, NotSerialized) /* _STA: Status */
|
||||||
{
|
{
|
||||||
Return (0x0F)
|
Return (0x0F)
|
||||||
}
|
}
|
||||||
|
@ -57,6 +502,30 @@ Scope (\_SB.PCI0.I2C2)
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
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 })
|
||||||
|
|
||||||
/* Port0 of CAM0 is connected to port0 of CIO2 device */
|
/* Port0 of CAM0 is connected to port0 of CIO2 device */
|
||||||
Name (_DSD, Package () {
|
Name (_DSD, Package () {
|
||||||
ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
|
ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
|
||||||
|
@ -115,12 +584,12 @@ Scope (\_SB.PCI0.I2C2)
|
||||||
|
|
||||||
Device (VCM0)
|
Device (VCM0)
|
||||||
{
|
{
|
||||||
Name (_HID, "DWDWD000") // _HID: Hardware ID
|
Name (_HID, "DWDWD000") /* _HID: Hardware ID */
|
||||||
Name (_UID, Zero) // _UID: Unique ID
|
Name (_UID, Zero) /* _UID: Unique ID */
|
||||||
Name (_DDN, "Dongwoon AF DAC") // _DDN: DOS Device Name
|
Name (_DDN, "Dongwoon AF DAC") /* _DDN: DOS Device Name */
|
||||||
Name (CAMD, 0x03)
|
Name (CAMD, 0x03)
|
||||||
|
|
||||||
Method (_STA, 0, NotSerialized) // _STA: Status
|
Method (_STA, 0, NotSerialized) /* _STA: Status */
|
||||||
{
|
{
|
||||||
Return (0x0F)
|
Return (0x0F)
|
||||||
}
|
}
|
||||||
|
@ -133,6 +602,9 @@ Scope (\_SB.PCI0.I2C2)
|
||||||
0x00, ResourceConsumer, ,
|
0x00, ResourceConsumer, ,
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
Name (_PR0, Package () { ^PMIC.VCMP })
|
||||||
|
Name (_PR3, Package () { ^PMIC.VCMP })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -140,12 +612,12 @@ Scope (\_SB.PCI0.I2C4)
|
||||||
{
|
{
|
||||||
Device (CAM1)
|
Device (CAM1)
|
||||||
{
|
{
|
||||||
Name (_HID, "INT3479") // _HID: Hardware ID
|
Name (_HID, "INT3479") /* _HID: Hardware ID */
|
||||||
Name (_UID, Zero) // _UID: Unique ID
|
Name (_UID, Zero) /* _UID: Unique ID */
|
||||||
Name (_DDN, "OV 5670 Camera") // _DDN: DOS Device Name
|
Name (_DDN, "OV 5670 Camera") /* _DDN: DOS Device Name */
|
||||||
Name (CAMD, 0x02)
|
Name (CAMD, 0x02)
|
||||||
|
|
||||||
Method (_STA, 0, NotSerialized) // _STA: Status
|
Method (_STA, 0, NotSerialized) /* _STA: Status */
|
||||||
{
|
{
|
||||||
Return (0x0F)
|
Return (0x0F)
|
||||||
}
|
}
|
||||||
|
@ -159,6 +631,47 @@ Scope (\_SB.PCI0.I2C4)
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
Field (\_SB.PCI0.I2C2.PMIC.GPOP, ByteAcc, NoLock, Preserve)
|
||||||
|
{
|
||||||
|
Connection
|
||||||
|
(
|
||||||
|
GpioIo (Exclusive, PullDefault, 0x0000, 0x0000,
|
||||||
|
IoRestrictionOutputOnly,
|
||||||
|
"\\_SB.PCI0.I2C2.PMIC", 0x00,
|
||||||
|
ResourceConsumer,,)
|
||||||
|
{
|
||||||
|
4
|
||||||
|
}
|
||||||
|
),
|
||||||
|
GPO4, 1,
|
||||||
|
Connection
|
||||||
|
(
|
||||||
|
GpioIo (Exclusive, PullDefault, 0x0000, 0x0000,
|
||||||
|
IoRestrictionOutputOnly,
|
||||||
|
"\\_SB.PCI0.I2C2.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 () { ^^I2C2.PMIC.OVFI })
|
||||||
|
Name (_PR3, Package () { ^^I2C2.PMIC.OVFI })
|
||||||
|
|
||||||
/* Port0 of CAM1 is connected to port1 of CIO2 device */
|
/* Port0 of CAM1 is connected to port1 of CIO2 device */
|
||||||
Name (_DSD, Package () {
|
Name (_DSD, Package () {
|
||||||
ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
|
ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
|
||||||
|
|
Loading…
Reference in New Issue