soc/intel/tigerlake: Update ACPI files

Add and update ACPI files for Tiger Lake SoC
Use ASL2.0 code syntax for new acpi(camera_clock_ctl.asl)

Reference
PCH EDS#576591 vol1 rev1.2
PCH EDS#575857 vol2 rev1.0

BUG=none
BRANCH=none
TEST=Build and boot tigerlake rvp board

Signed-off-by: Ravi Sarawadi <ravishankar.sarawadi@intel.com>
Change-Id: Ib82156830273c2937f5f02713ed7dd27da41c857
Reviewed-on: https://review.coreboot.org/c/coreboot/+/37781
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
Reviewed-by: Subrata Banik <subrata.banik@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Ravi Sarawadi 2019-12-16 23:23:27 -08:00 committed by Patrick Georgi
parent 69855f2e60
commit 954a5b50ad
5 changed files with 168 additions and 13 deletions

View File

@ -0,0 +1,136 @@
/*
* This file is part of the coreboot project.
*
* Copyright (C) 2020 Intel Corp.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#define R_ICLK_PCR_CAMERA1 0x8000
#define B_ICLK_PCR_FREQUENCY 0x1
#define B_ICLK_PCR_REQUEST 0x2
Scope (\_SB.PCI0) {
/* IsCLK PCH register for clock settings */
OperationRegion (ICLK, SystemMemory, PCRB (PID_ISCLK) + R_ICLK_PCR_CAMERA1, 0x40)
Field (ICLK, AnyAcc, Lock, Preserve)
{
CLK1, 8,
Offset(0x0C),
CLK2, 8,
Offset(0x18),
CLK3, 8,
Offset(0x24),
CLK4, 8,
Offset(0x30),
CLK5, 8,
Offset(0x3C),
CLK6, 8,
}
/*
* Helper function for Read And OR Write
* Arg0 : source and destination
* Arg1 : And data
* Arg2 : Or data
*/
Method (RAOW, 0x3, NotSerialized)
{
Local0 = Arg0
Arg0 = Local0 & Arg1 | Arg2
}
/*
* Clock Control
* Arg0 - Clock number (0:IMGCLKOUT_0, etc)
* Arg1 - Desired state (0:Disable, 1:Enable)
*/
Method(CLKC, 0x2, NotSerialized)
{
Switch (ToInteger (Arg0))
{
Case (0)
{
RAOW (CLK1, ~B_ICLK_PCR_REQUEST, Arg1 << 1)
}
Case (1)
{
RAOW (CLK2, ~B_ICLK_PCR_REQUEST, Arg1 << 1)
}
Case (2)
{
RAOW (CLK3, ~B_ICLK_PCR_REQUEST, Arg1 << 1)
}
Case (3)
{
RAOW (CLK4, ~B_ICLK_PCR_REQUEST, Arg1 << 1)
}
Case (4)
{
RAOW (CLK5, ~B_ICLK_PCR_REQUEST, Arg1 << 1)
}
Case (5)
{
RAOW (CLK6, ~B_ICLK_PCR_REQUEST, Arg1 << 1)
}
}
}
/*
* Clock Frequency
* Arg0 - Clock number (0:IMGCLKOUT_0, etc)
* Arg1 - Clock frequency (0:24MHz, 1:19.2MHz)
*/
Method (CLKF, 0x2, NotSerialized)
{
Switch (ToInteger (Arg0))
{
Case (0)
{
RAOW (CLK1, ~B_ICLK_PCR_FREQUENCY, Arg1)
}
Case (1)
{
RAOW (CLK2, ~B_ICLK_PCR_FREQUENCY, Arg1)
}
Case (2)
{
RAOW (CLK3, ~B_ICLK_PCR_FREQUENCY, Arg1)
}
Case (3)
{
RAOW (CLK4, ~B_ICLK_PCR_FREQUENCY, Arg1)
}
Case (4)
{
RAOW (CLK5, ~B_ICLK_PCR_FREQUENCY, Arg1)
}
Case (5)
{
RAOW (CLK6, ~B_ICLK_PCR_FREQUENCY, Arg1)
}
}
}
/*
* Clock control Method
* Arg0: Clock source select(0: IMGCLKOUT_0, 1: IMGCLKOUT_1, 2: IMGCLKOUT_2, 3: IMGCLKOUT_3,
* 4: IMGCLKOUT_4, 5: IMGCLKOUT_5)
* Arg1: Clock Enable / Disable (0: Disable, 1: Enable)
* Arg2: Select 24MHz / 19.2 MHz (0: 24MHz, 1: 19.2MHz)
*/
Method (MCCT, 0x3, NotSerialized)
{
CLKF (Arg0, Arg2)
CLKC (Arg0, Arg1)
}
}

View File

@ -69,6 +69,12 @@ Device (SPI2)
Name (_DDN, "Serial IO SPI Controller 2") Name (_DDN, "Serial IO SPI Controller 2")
} }
Device (SPI3)
{
Name (_ADR, 0x00130000)
Name (_DDN, "Serial IO SPI Controller 3")
}
Device (UAR0) Device (UAR0)
{ {
Name (_ADR, 0x001e0000) Name (_ADR, 0x001e0000)

View File

@ -0,0 +1,21 @@
/*
* This file is part of the coreboot project.
*
* Copyright (C) 2020 Intel Corp.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 2 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
/* Intel SMBus Controller 0:1f.4 */
Device (SBUS)
{
Name (_ADR, 0x001f0004)
}

View File

@ -25,8 +25,8 @@
/* PCR access */ /* PCR access */
#include <soc/intel/common/acpi/pcr.asl> #include <soc/intel/common/acpi/pcr.asl>
/* eMMC, SD Card */ /* PCH clock */
#include "scs.asl" #include "camera_clock_ctl.asl"
/* GPIO controller */ /* GPIO controller */
#include "gpio.asl" #include "gpio.asl"
@ -43,11 +43,11 @@
/* Serial IO */ /* Serial IO */
#include "serialio.asl" #include "serialio.asl"
/* SMBus 0:1f.4 */
#include "smbus.asl"
/* USB XHCI 0:14.0 */ /* USB XHCI 0:14.0 */
#include "xhci.asl" #include "xhci.asl"
/* PCI _OSC */ /* PCI _OSC */
#include <soc/intel/common/acpi/pci_osc.asl> #include <soc/intel/common/acpi/pci_osc.asl>
/* GBe 0:1f.6 */
#include "pch_glan.asl"

View File

@ -53,19 +53,11 @@ Device (XHCI)
Device (HS08) { Name (_ADR, 8) } Device (HS08) { Name (_ADR, 8) }
Device (HS09) { Name (_ADR, 9) } Device (HS09) { Name (_ADR, 9) }
Device (HS10) { Name (_ADR, 10) } Device (HS10) { Name (_ADR, 10) }
Device (HS11) { Name (_ADR, 11) }
Device (HS12) { Name (_ADR, 12) }
/* USBr */
Device (USR1) { Name (_ADR, 11) }
Device (USR2) { Name (_ADR, 12) }
/* USB3 */ /* USB3 */
Device (SS01) { Name (_ADR, 13) } Device (SS01) { Name (_ADR, 13) }
Device (SS02) { Name (_ADR, 14) } Device (SS02) { Name (_ADR, 14) }
Device (SS03) { Name (_ADR, 15) } Device (SS03) { Name (_ADR, 15) }
Device (SS04) { Name (_ADR, 16) } Device (SS04) { Name (_ADR, 16) }
Device (SS05) { Name (_ADR, 17) }
Device (SS06) { Name (_ADR, 18) }
} }
} }