diff options
author | V Sowmya <v.sowmya@intel.com> | 2017-07-06 13:38:22 +0530 |
---|---|---|
committer | Furquan Shaikh <furquan@google.com> | 2017-08-17 16:37:15 +0000 |
commit | e6aab7f1208123b2e0e3afb633572ca094358091 (patch) | |
tree | c0903a721cde1407b1ce6da9d1865118c215f43f /src/mainboard/google/poppy/acpi | |
parent | e0b5795b81352aabe72662f48d6b154800021d34 (diff) |
mainboard/google/poppy: Add ACPI objects for NVMEM device GT24C16S and CAT24C16
The Giantec semiconductor GT24C16S and ON semiconductor CAT24C16
are the industrial standard electrically erasable programmable
read only memory (EEPROM's) and this patch adds ACPI objects
and power resources for NVMEM device.
Update DOVD method to set sensor IO LDO voltage and remove repetitive
code from OVFI, VCMP and NVMP power resources.
BUG=b:38326541
BRANCH=none
TEST=Build and boot soraka. Dump and verify that the generated DSDT table
has the required entries. Read the NVMEM content via sysfs interface.
Change-Id: If49ed33b7e1de1eabf317b31ceed8568dfca0aae
Signed-off-by: V Sowmya <v.sowmya@intel.com>
Reviewed-on: https://review.coreboot.org/20495
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Furquan Shaikh <furquan@google.com>
Diffstat (limited to 'src/mainboard/google/poppy/acpi')
-rw-r--r-- | src/mainboard/google/poppy/acpi/mipi_camera.asl | 111 |
1 files changed, 79 insertions, 32 deletions
diff --git a/src/mainboard/google/poppy/acpi/mipi_camera.asl b/src/mainboard/google/poppy/acpi/mipi_camera.asl index 5c75122760..38cf060bdb 100644 --- a/src/mainboard/google/poppy/acpi/mipi_camera.asl +++ b/src/mainboard/google/poppy/acpi/mipi_camera.asl @@ -289,14 +289,27 @@ Scope (\_SB.PCI0.I2C2) Decrement (VSIC) If (LEqual (VSIC, Zero)) { VSIO = 0 + Sleep(1) } } } ElseIf (LEqual (Arg0, 1)) { - /* Increment only if VSIC < 3 */ - If (LLess (VSIC, 3)) { + /* Increment only if VSIC < 4 */ + If (LLess (VSIC, 4)) { /* Turn on VSIO */ If (LEqual (VSIC, Zero)) { VSIO = 3 + + 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) } Increment (VSIC) } @@ -326,18 +339,6 @@ Scope (\_SB.PCI0.I2C2) 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 */ @@ -376,7 +377,6 @@ Scope (\_SB.PCI0.I2C2) VACT = 0 Sleep(1) DOVD(0) - Sleep(1) } } STA = 0 @@ -441,8 +441,6 @@ Scope (\_SB.PCI0.I2C2) VAX2 = 0 Sleep(1) DOVD(0) - Sleep(1) - } STA = 0 } @@ -462,17 +460,6 @@ Scope (\_SB.PCI0.I2C2) /* 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 @@ -494,7 +481,34 @@ Scope (\_SB.PCI0.I2C2) VCMC = 0 /* Disable regulator */ Sleep(1) DOVD(0) /* Disable regulator */ - Sleep(1) + STA = 0 + } + } + } + + Method (_STA, 0, NotSerialized) { + Return (STA) + } + } + + /* Power resource methods for NVM */ + PowerResource (NVMP, 0, 0) { + Name (STA, 0) + Method (_ON, 0, Serialized) { + If (LEqual (AVBL, 1)) { + If (LEqual (STA, 0)) { + /* Enable VSIO regulator + + daisy chain */ + DOVD(1) + STA = 1 + } + } + } + + Method (_OFF, 0, Serialized) { + If (LEqual (AVBL, 1)) { + If (LEqual (STA, 1)) { + DOVD(0) /* Disable regulator */ STA = 0 } } @@ -518,7 +532,7 @@ Scope (\_SB.PCI0.I2C2) Return (0x0F) } - Name (_DEP, Package() {\_SB.PCI0.I2C2.PMIC}) + Name (_DEP, Package() { \_SB.PCI0.I2C2.PMIC }) Name (_CRS, ResourceTemplate () { I2cSerialBus (0x0010, ControllerInitiated, 0x00061A80, @@ -656,7 +670,7 @@ Scope (\_SB.PCI0.I2C2) Return (0x0F) } - Name (_DEP, Package() {\_SB.PCI0.I2C2.PMIC}) + Name (_DEP, Package() { \_SB.PCI0.I2C2.PMIC }) Name (_CRS, ResourceTemplate () { I2cSerialBus (0x000C, ControllerInitiated, 0x00061A80, @@ -668,6 +682,39 @@ Scope (\_SB.PCI0.I2C2) Name (_PR0, Package () { ^PMIC.VCMP }) Name (_PR3, Package () { ^PMIC.VCMP }) } + + Device (NVM0) + { + Name (_HID, "INT3499") /* _HID: Hardware ID */ + Name (_UID, Zero) /* _UID: Unique ID */ + Name (_DDN, "GT24C16S/CAT24C16") /* _DDN: DOS Device Name */ + + Method (_STA, 0, NotSerialized) /* _STA: Status */ + { + Return (0x0F) + } + + Name (_DEP, Package() { \_SB.PCI0.I2C2.PMIC }) + Name (_CRS, ResourceTemplate () + { + I2cSerialBus (0x0050, ControllerInitiated, 0x00061A80, + AddressingMode7Bit, "\\_SB.PCI0.I2C2", + 0x00, ResourceConsumer, ,) + }) + + Name (_PR0, Package () { ^PMIC.NVMP }) + Name (_PR3, Package () { ^PMIC.NVMP }) + + Name (_DSD, Package () + { + ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), + Package () { + Package () { "size", 2048 }, + Package () { "pagesize", 1 }, + Package () { "read-only", 1 }, + } + }) + } } Scope (\_SB.PCI0.I2C4) @@ -684,7 +731,7 @@ Scope (\_SB.PCI0.I2C4) Return (0x0F) } - Name (_DEP, Package() {\_SB.PCI0.I2C2.PMIC}) + Name (_DEP, Package() { \_SB.PCI0.I2C2.PMIC }) Name (_CRS, ResourceTemplate () { I2cSerialBus (0x0036, ControllerInitiated, 0x00061A80, |