mb/google/dedede: Add ACPI support for camera
1. Add support as per the schematics 2. Add 2 Ports and 2 Endpoints 3. Add support for OTVI8856 and OTVI5676 4. Add ON and OFF logic as Power Rails are same for both sensor BUG=None BRANCH=None TEST=Build and Boot waddledoo board and able to capture image using world facing camera. Change-Id: Ic8687bce4896d9fc17b2190b8d11618af3515cc1 Signed-off-by: Pandya, Varshit B <varshit.b.pandya@intel.com> Signed-off-by: Rizwan Qureshi <rizwan.qureshi@intel.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/39360 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Aamir Bohra <aamir.bohra@intel.com> Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
This commit is contained in:
parent
c98f2eacfc
commit
3c3a760513
|
@ -0,0 +1,173 @@
|
||||||
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
/* This file is part of the coreboot project. */
|
||||||
|
|
||||||
|
Scope (\_SB.PCI0.I2C3)
|
||||||
|
{
|
||||||
|
Name (STA0, Zero)
|
||||||
|
|
||||||
|
/* Method to turn off Power Rails */
|
||||||
|
Method (POFF, 0)
|
||||||
|
{
|
||||||
|
/* Disable PP1200 lane */
|
||||||
|
CTXS(GPP_D14)
|
||||||
|
/* Disable PP2800 lane */
|
||||||
|
CTXS(GPP_D13)
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (PON, 0)
|
||||||
|
{
|
||||||
|
/* Enable PP2800 lane */
|
||||||
|
STXS(GPP_D13)
|
||||||
|
/* Enable PP1200 lane */
|
||||||
|
STXS(GPP_D14)
|
||||||
|
}
|
||||||
|
|
||||||
|
PowerResource (FCPR, 0x00, 0x0000)
|
||||||
|
{
|
||||||
|
Method (_ON, 0, Serialized) /* _ON_: Power On */
|
||||||
|
{
|
||||||
|
MCON(0, 1) /* Clock 0, 19.2MHz */
|
||||||
|
IF(!STA1)
|
||||||
|
{
|
||||||
|
/* Other sensor is OFF, so turn on power signals. */
|
||||||
|
PON()
|
||||||
|
}
|
||||||
|
/* Assert Reset */
|
||||||
|
CTXS(GPP_D15)
|
||||||
|
Sleep(5) /* 5 us */
|
||||||
|
/* Deassert Reset */
|
||||||
|
STXS(GPP_D15)
|
||||||
|
Sleep(5) /* 5 us */
|
||||||
|
STA0 = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_OFF, 0, Serialized) /* _OFF_: Power Off */
|
||||||
|
{
|
||||||
|
MCOF(0) /* Clock 0 */
|
||||||
|
/* Assert Reset */
|
||||||
|
CTXS(GPP_D15)
|
||||||
|
IF(!STA1)
|
||||||
|
{
|
||||||
|
/* Other sensor is OFF, so turn off power signals. */
|
||||||
|
POFF()
|
||||||
|
}
|
||||||
|
STA0 = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_STA, 0, NotSerialized) /* _STA: Status */
|
||||||
|
{
|
||||||
|
Return (STA0)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Device (CAM0)
|
||||||
|
{
|
||||||
|
Name (_HID, "OVTI9734") /* _HID: Hardware ID */
|
||||||
|
|
||||||
|
Name (_UID, Zero) /* _UID: Unique ID */
|
||||||
|
|
||||||
|
Name (_DDN, "Ov 9734 Camera") /* _DDN: DOS Device Name */
|
||||||
|
|
||||||
|
Method (_STA, 0, NotSerialized) /* _STA: Status */
|
||||||
|
{
|
||||||
|
Return (0x0F)
|
||||||
|
}
|
||||||
|
|
||||||
|
Name (_CRS, ResourceTemplate () /* _CRS: Current Resource Settings */
|
||||||
|
{
|
||||||
|
I2cSerialBus (0x0036, ControllerInitiated, 0x00061A80,
|
||||||
|
AddressingMode7Bit, "\\_SB.PCI0.I2C3",
|
||||||
|
0x00, ResourceConsumer, ,
|
||||||
|
)
|
||||||
|
})
|
||||||
|
|
||||||
|
Name (_PR0, Package (0x01) /* _PR0: Power Resources for D0 */
|
||||||
|
{
|
||||||
|
FCPR
|
||||||
|
})
|
||||||
|
|
||||||
|
Name (_PR3, Package (0x01) /* _PR3: Power Resources for D3hot */
|
||||||
|
{
|
||||||
|
FCPR
|
||||||
|
})
|
||||||
|
|
||||||
|
Name (_DSD, Package (0x04) /* _DSD: Device-Specific Data */
|
||||||
|
{
|
||||||
|
ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
|
||||||
|
Package (0x01)
|
||||||
|
{
|
||||||
|
Package (0x02)
|
||||||
|
{
|
||||||
|
"port0",
|
||||||
|
"PRT0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
|
||||||
|
Package (0x01)
|
||||||
|
{
|
||||||
|
Package (0x02)
|
||||||
|
{
|
||||||
|
"clock-frequency",
|
||||||
|
0x0124F800
|
||||||
|
},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
Name (PRT0, Package (0x04)
|
||||||
|
{
|
||||||
|
ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
|
||||||
|
Package (0x01)
|
||||||
|
{
|
||||||
|
Package (0x02)
|
||||||
|
{
|
||||||
|
"port",
|
||||||
|
Zero
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
|
||||||
|
Package (0x01)
|
||||||
|
{
|
||||||
|
Package (0x02)
|
||||||
|
{
|
||||||
|
"endpoint0",
|
||||||
|
"EP00"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
Name (EP00, Package (0x02)
|
||||||
|
{
|
||||||
|
ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
|
||||||
|
Package (0x03)
|
||||||
|
{
|
||||||
|
Package (0x02)
|
||||||
|
{
|
||||||
|
"endpoint",
|
||||||
|
Zero
|
||||||
|
},
|
||||||
|
|
||||||
|
Package (0x02)
|
||||||
|
{
|
||||||
|
"link-frequencies",
|
||||||
|
Package (0x01)
|
||||||
|
{
|
||||||
|
0x325AA000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
Package (0x02)
|
||||||
|
{
|
||||||
|
"remote-endpoint",
|
||||||
|
Package (0x03)
|
||||||
|
{
|
||||||
|
IPU0,
|
||||||
|
Zero,
|
||||||
|
Zero
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,176 @@
|
||||||
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
/* This file is part of the coreboot project. */
|
||||||
|
|
||||||
|
Scope (\_SB.PCI0.I2C3)
|
||||||
|
{
|
||||||
|
Name (STA1, Zero)
|
||||||
|
|
||||||
|
PowerResource (RCPR, 0x00, 0x0000)
|
||||||
|
{
|
||||||
|
Method (_ON, 0, Serialized) /* _ON_: Power On */
|
||||||
|
{
|
||||||
|
MCON(1, 1) /* Clock 1, 19.2MHz */
|
||||||
|
/* Check if another sensor is ON */
|
||||||
|
IF(!STA0)
|
||||||
|
{
|
||||||
|
/* Other sensor is OFF, so turn on power signals. */
|
||||||
|
PON()
|
||||||
|
}
|
||||||
|
/* Assert Reset */
|
||||||
|
CTXS(GPP_D12)
|
||||||
|
Sleep(5) /* 5 us */
|
||||||
|
/* DeAssert Reset */
|
||||||
|
STXS(GPP_D12)
|
||||||
|
Sleep(5) /* 5 us */
|
||||||
|
STA1 = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_OFF, 0, Serialized) /* _OFF_: Power Off */
|
||||||
|
{
|
||||||
|
MCOF(1) /* Clock 1 */
|
||||||
|
/* Assert Reset */
|
||||||
|
CTXS(GPP_D12)
|
||||||
|
IF(!STA0)
|
||||||
|
{
|
||||||
|
/* Other sensor is OFF, so turn off power signals. */
|
||||||
|
POFF()
|
||||||
|
}
|
||||||
|
STA1 = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_STA, 0, NotSerialized) /* _STA: Status */
|
||||||
|
{
|
||||||
|
Return (STA1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Device(CAM1)
|
||||||
|
{
|
||||||
|
Name (_HID, "OVTI8856") /* _HID: Hardware ID */
|
||||||
|
|
||||||
|
Name (_UID, Zero) /* _UID: Unique ID */
|
||||||
|
|
||||||
|
Name (_DDN, "Ov 8856 Camera") /* _DDN: DOS Device Name */
|
||||||
|
|
||||||
|
Method (_STA, 0, NotSerialized) /* _STA: Status */
|
||||||
|
{
|
||||||
|
Return (0x0F)
|
||||||
|
}
|
||||||
|
|
||||||
|
Name (_CRS, ResourceTemplate () /* _CRS: Current Resource Settings */
|
||||||
|
{
|
||||||
|
I2cSerialBus (0x0010, ControllerInitiated, 0x00061A80,
|
||||||
|
AddressingMode7Bit, "\\_SB.PCI0.I2C3",
|
||||||
|
0x00, ResourceConsumer, ,
|
||||||
|
)
|
||||||
|
})
|
||||||
|
|
||||||
|
Name (_PR0, Package (0x01) /* _PR0: Power Resources for D0 */
|
||||||
|
{
|
||||||
|
RCPR
|
||||||
|
})
|
||||||
|
|
||||||
|
Name (_PR3, Package (0x01) /* _PR3: Power Resources for D3hot */
|
||||||
|
{
|
||||||
|
RCPR
|
||||||
|
})
|
||||||
|
|
||||||
|
Name (_DSD, Package (0x04) /* _DSD: Device-Specific Data */
|
||||||
|
{
|
||||||
|
ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
|
||||||
|
Package (0x01)
|
||||||
|
{
|
||||||
|
Package (0x02)
|
||||||
|
{
|
||||||
|
"port0",
|
||||||
|
"PRT0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
|
||||||
|
Package (0x01)
|
||||||
|
{
|
||||||
|
Package (0x02)
|
||||||
|
{
|
||||||
|
"clock-frequency",
|
||||||
|
0x0124F800
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
Name (PRT0, Package (0x04)
|
||||||
|
{
|
||||||
|
ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
|
||||||
|
Package (0x01)
|
||||||
|
{
|
||||||
|
Package (0x02)
|
||||||
|
{
|
||||||
|
"port",
|
||||||
|
Zero
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
|
||||||
|
Package (0x01)
|
||||||
|
{
|
||||||
|
Package (0x02)
|
||||||
|
{
|
||||||
|
"endpoint0",
|
||||||
|
"EP00"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
Name (EP00, Package (0x02)
|
||||||
|
{
|
||||||
|
ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
|
||||||
|
Package (0x05)
|
||||||
|
{
|
||||||
|
Package (0x02)
|
||||||
|
{
|
||||||
|
"endpoint",
|
||||||
|
Zero
|
||||||
|
},
|
||||||
|
|
||||||
|
Package (0x02)
|
||||||
|
{
|
||||||
|
"clock-lanes",
|
||||||
|
Zero
|
||||||
|
},
|
||||||
|
|
||||||
|
Package (0x02)
|
||||||
|
{
|
||||||
|
"data-lanes",
|
||||||
|
Package (0x04)
|
||||||
|
{
|
||||||
|
One,
|
||||||
|
0x02,
|
||||||
|
0x03,
|
||||||
|
0x04,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
Package (0x02)
|
||||||
|
{
|
||||||
|
"link-frequencies",
|
||||||
|
Package (0x02)
|
||||||
|
{
|
||||||
|
0x15752A00,
|
||||||
|
0xABA9500
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
Package (0x02)
|
||||||
|
{
|
||||||
|
"remote-endpoint",
|
||||||
|
Package (0x03)
|
||||||
|
{
|
||||||
|
IPU0,
|
||||||
|
One,
|
||||||
|
Zero
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
/* This file is part of the coreboot project. */
|
||||||
|
|
||||||
|
#include "ipu_mainboard.asl"
|
||||||
|
#include "ipu_endpoints.asl"
|
||||||
|
#include "cam0.asl"
|
||||||
|
#include "cam1.asl"
|
|
@ -0,0 +1,85 @@
|
||||||
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
/* This file is part of the coreboot project. */
|
||||||
|
|
||||||
|
Scope (_SB.PCI0.IPU0)
|
||||||
|
{
|
||||||
|
Name (EP00, Package (0x02)
|
||||||
|
{
|
||||||
|
ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
|
||||||
|
Package (0x04)
|
||||||
|
{
|
||||||
|
Package (0x02)
|
||||||
|
{
|
||||||
|
"endpoint",
|
||||||
|
Zero
|
||||||
|
},
|
||||||
|
|
||||||
|
Package (0x02)
|
||||||
|
{
|
||||||
|
"clock-lanes",
|
||||||
|
Zero
|
||||||
|
},
|
||||||
|
|
||||||
|
Package (0x02)
|
||||||
|
{
|
||||||
|
"data-lanes",
|
||||||
|
Package (0x01)
|
||||||
|
{
|
||||||
|
One,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
Package (0x02)
|
||||||
|
{
|
||||||
|
"remote-endpoint",
|
||||||
|
Package (0x03)
|
||||||
|
{
|
||||||
|
^I2C3.CAM0,
|
||||||
|
Zero,
|
||||||
|
Zero
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
Name (EP10, Package (0x02)
|
||||||
|
{
|
||||||
|
ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
|
||||||
|
Package (0x04)
|
||||||
|
{
|
||||||
|
Package (0x02)
|
||||||
|
{
|
||||||
|
"endpoint",
|
||||||
|
Zero
|
||||||
|
},
|
||||||
|
|
||||||
|
Package (0x02)
|
||||||
|
{
|
||||||
|
"clock-lanes",
|
||||||
|
Zero
|
||||||
|
},
|
||||||
|
|
||||||
|
Package (0x02)
|
||||||
|
{
|
||||||
|
"data-lanes",
|
||||||
|
Package (0x04)
|
||||||
|
{
|
||||||
|
One,
|
||||||
|
0x02,
|
||||||
|
0x03,
|
||||||
|
0x04,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
Package (0x02)
|
||||||
|
{
|
||||||
|
"remote-endpoint",
|
||||||
|
Package (0x03)
|
||||||
|
{
|
||||||
|
^I2C3.CAM1,
|
||||||
|
Zero,
|
||||||
|
Zero
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
|
@ -0,0 +1,80 @@
|
||||||
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
/* This file is part of the coreboot project. */
|
||||||
|
|
||||||
|
Scope (\_SB.PCI0)
|
||||||
|
{
|
||||||
|
Device (IPU0)
|
||||||
|
{
|
||||||
|
Name (_ADR, 0x00050000) /* _ADR: Address */
|
||||||
|
|
||||||
|
Name (_DDN, "Camera and Imaging Subsystem") /* _DDN: DOS Device Name */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Scope (\_SB.PCI0.IPU0)
|
||||||
|
{
|
||||||
|
Name (_DSD, Package (0x02) /* _DSD: Device-Specific Data */
|
||||||
|
{
|
||||||
|
ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
|
||||||
|
Package (0x02)
|
||||||
|
{
|
||||||
|
Package (0x02)
|
||||||
|
{
|
||||||
|
"port0",
|
||||||
|
"PRT0"
|
||||||
|
},
|
||||||
|
|
||||||
|
Package (0x02)
|
||||||
|
{
|
||||||
|
"port1",
|
||||||
|
"PRT1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
Name (PRT0, Package (0x04)
|
||||||
|
{
|
||||||
|
ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
|
||||||
|
Package (0x01)
|
||||||
|
{
|
||||||
|
Package (0x02)
|
||||||
|
{
|
||||||
|
"port",
|
||||||
|
Zero
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
|
||||||
|
Package (0x01)
|
||||||
|
{
|
||||||
|
Package (0x02)
|
||||||
|
{
|
||||||
|
"endpoint0",
|
||||||
|
"EP00"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
Name (PRT1, Package (0x04)
|
||||||
|
{
|
||||||
|
ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
|
||||||
|
Package (0x01)
|
||||||
|
{
|
||||||
|
Package (0x02)
|
||||||
|
{
|
||||||
|
"port",
|
||||||
|
2
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
|
||||||
|
Package (0x01)
|
||||||
|
{
|
||||||
|
Package (0x02)
|
||||||
|
{
|
||||||
|
"endpoint0",
|
||||||
|
"EP10"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
Loading…
Reference in New Issue