From ffb73af007e77faf497fbc3321c8163d18c24ec8 Mon Sep 17 00:00:00 2001 From: Duncan Laurie Date: Tue, 4 Feb 2014 10:05:46 -0800 Subject: [PATCH] baytrail: I2C: Add config data to ACPI Device The linux kernel designware i2c driver supports configuring HCNT/LCNT and SDA Hold Time for both standard and fast mode. These have hardcoded defaults when the controller is in PCI mode but it uses zero if nothign is defined in ACPI. This adds the same default values that are in the kernel for the controllers in PCI mode in magic packages that are read by the kernel. BUG=chrome-os-partner:24380 BRANCH=baytrail TEST=build and boot on rambi Change-Id: I249b0a217170c7189d633ad97d91361578a1838f Signed-off-by: Duncan Laurie Reviewed-on: https://chromium-review.googlesource.com/184922 Reviewed-by: Aaron Durbin --- src/soc/intel/baytrail/acpi/lpss.asl | 42 ++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/src/soc/intel/baytrail/acpi/lpss.asl b/src/soc/intel/baytrail/acpi/lpss.asl index f56c6a87b8..0f8f7465f9 100644 --- a/src/soc/intel/baytrail/acpi/lpss.asl +++ b/src/soc/intel/baytrail/acpi/lpss.asl @@ -89,6 +89,12 @@ Device (I2C1) Name (_UID, 1) Name (_DDN, "I2C Controller #1") + /* Standard Mode: HCNT, LCNT, SDA Hold Time */ + Name (SSCN, Package () { 0x200, 0x200, 0x6 }) + + /* Fast Mode: HCNT, LCNT, SDA Hold Time */ + Name (FMCN, Package () { 0x55, 0x99, 0x6 }) + Name (RBUF, ResourceTemplate() { Memory32Fixed (ReadWrite, 0, 0x1000, BAR0) @@ -142,6 +148,12 @@ Device (I2C2) Name (_UID, 2) Name (_DDN, "I2C Controller #2") + /* Standard Mode: HCNT, LCNT, SDA Hold Time */ + Name (SSCN, Package () { 0x200, 0x200, 0x6 }) + + /* Fast Mode: HCNT, LCNT, SDA Hold Time */ + Name (FMCN, Package () { 0x55, 0x99, 0x6 }) + Name (RBUF, ResourceTemplate() { Memory32Fixed (ReadWrite, 0, 0x1000, BAR0) @@ -195,6 +207,12 @@ Device (I2C3) Name (_UID, 3) Name (_DDN, "I2C Controller #3") + /* Standard Mode: HCNT, LCNT, SDA Hold Time */ + Name (SSCN, Package () { 0x200, 0x200, 0x6 }) + + /* Fast Mode: HCNT, LCNT, SDA Hold Time */ + Name (FMCN, Package () { 0x55, 0x99, 0x6 }) + Name (RBUF, ResourceTemplate() { Memory32Fixed (ReadWrite, 0, 0x1000, BAR0) @@ -248,6 +266,12 @@ Device (I2C4) Name (_UID, 4) Name (_DDN, "I2C Controller #4") + /* Standard Mode: HCNT, LCNT, SDA Hold Time */ + Name (SSCN, Package () { 0x200, 0x200, 0x6 }) + + /* Fast Mode: HCNT, LCNT, SDA Hold Time */ + Name (FMCN, Package () { 0x55, 0x99, 0x6 }) + Name (RBUF, ResourceTemplate() { Memory32Fixed (ReadWrite, 0, 0x1000, BAR0) @@ -301,6 +325,12 @@ Device (I2C5) Name (_UID, 5) Name (_DDN, "I2C Controller #5") + /* Standard Mode: HCNT, LCNT, SDA Hold Time */ + Name (SSCN, Package () { 0x200, 0x200, 0x6 }) + + /* Fast Mode: HCNT, LCNT, SDA Hold Time */ + Name (FMCN, Package () { 0x55, 0x99, 0x6 }) + Name (RBUF, ResourceTemplate() { Memory32Fixed (ReadWrite, 0, 0x1000, BAR0) @@ -354,6 +384,12 @@ Device (I2C6) Name (_UID, 6) Name (_DDN, "I2C Controller #6") + /* Standard Mode: HCNT, LCNT, SDA Hold Time */ + Name (SSCN, Package () { 0x200, 0x200, 0x6 }) + + /* Fast Mode: HCNT, LCNT, SDA Hold Time */ + Name (FMCN, Package () { 0x55, 0x99, 0x6 }) + Name (RBUF, ResourceTemplate() { Memory32Fixed (ReadWrite, 0, 0x1000, BAR0) @@ -407,6 +443,12 @@ Device (I2C7) Name (_UID, 7) Name (_DDN, "I2C Controller #7") + /* Standard Mode: HCNT, LCNT, SDA Hold Time */ + Name (SSCN, Package () { 0x200, 0x200, 0x6 }) + + /* Fast Mode: HCNT, LCNT, SDA Hold Time */ + Name (FMCN, Package () { 0x55, 0x99, 0x6 }) + Name (RBUF, ResourceTemplate() { Memory32Fixed (ReadWrite, 0, 0x1000, BAR0)