From 45e11aa0a573aba1e4d8ae8dcd2cc87a8ca87dab Mon Sep 17 00:00:00 2001 From: Matt DeVillier Date: Sun, 18 Dec 2016 11:59:58 -0600 Subject: Add/Combine Broadwell Chromebooks using variant board scheme Combine existing boards google/auron_paine and google/samus with new ChromeOS devices auron_yuna, gandof and lulu, using their common reference board (auron) as a base. Chromium sources used: firmware-yuna-6301.59.B 6ed8b9d [CHERRY-PICK: broadwell: Update to...] firmware-gandof-6301.155.B 666f34f [gandof: modify power limiting for...] firmware-lulu-6301.136.B 8811714 [lulu: update RAMID table] Additionally, some minor cleanup/changes were made: - I2C devices set to use level (vs edge) interrupt triggering - HDA verb entries use simplified macro entry format - correct FADT table header version - remove unused ACPI device entries / .asl file(s) - clean up ACPI code (e.g., trackpad on Lulu) - adjust _CID for trackpad on Lulu in order to not load non-functional Windows driver (does not affect Linux) - remove unused header includes (multiple/various) - correct I2C addresses used for SMBIOS device entries - correct misc typos etc The existing auron_paine samus boards are removed. Variant setup modeled after google/slippy Change-Id: I53436878d141715eb18b8ea5043d71e6e8728fe8 Signed-off-by: Matt DeVillier Reviewed-on: https://review.coreboot.org/17917 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth --- src/mainboard/google/samus/acpi/ec.asl | 29 -- src/mainboard/google/samus/acpi/mainboard.asl | 363 -------------------------- src/mainboard/google/samus/acpi/superio.asl | 25 -- src/mainboard/google/samus/acpi/thermal.asl | 118 --------- 4 files changed, 535 deletions(-) delete mode 100644 src/mainboard/google/samus/acpi/ec.asl delete mode 100644 src/mainboard/google/samus/acpi/mainboard.asl delete mode 100644 src/mainboard/google/samus/acpi/superio.asl delete mode 100644 src/mainboard/google/samus/acpi/thermal.asl (limited to 'src/mainboard/google/samus/acpi') diff --git a/src/mainboard/google/samus/acpi/ec.asl b/src/mainboard/google/samus/acpi/ec.asl deleted file mode 100644 index a7e499af89..0000000000 --- a/src/mainboard/google/samus/acpi/ec.asl +++ /dev/null @@ -1,29 +0,0 @@ -/* - * This file is part of the coreboot project. - * - * Copyright (C) 2013 Google Inc. - * - * 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. - */ - -/* mainboard configuration */ -#include - -/* Enable EC backed ALS device in ACPI */ -#define EC_ENABLE_ALS_DEVICE - -/* Enable EC backed Keyboard Backlight in ACPI */ -#define EC_ENABLE_KEYBOARD_BACKLIGHT - -/* Enable EC backed PD MCU device in ACPI */ -#define EC_ENABLE_PD_MCU_DEVICE - -/* ACPI code for EC functions */ -#include diff --git a/src/mainboard/google/samus/acpi/mainboard.asl b/src/mainboard/google/samus/acpi/mainboard.asl deleted file mode 100644 index 17f6257038..0000000000 --- a/src/mainboard/google/samus/acpi/mainboard.asl +++ /dev/null @@ -1,363 +0,0 @@ -/* - * This file is part of the coreboot project. - * - * Copyright (C) 2014 Google Inc. - * - * 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. - */ - -#undef ENABLE_TOUCH_WAKE - -Scope (\_SB) -{ - Device (LID0) - { - Name (_HID, EisaId("PNP0C0D")) - Method (_LID, 0) - { - Return (\_SB.PCI0.LPCB.EC0.LIDS) - } - - // EC wake is GPIO27 which is a special DeepSX wake pin - Name (_PRW, Package(){ 0x70, 5 }) // GP27_EN - } - - Device (PWRB) - { - Name(_HID, EisaId("PNP0C0C")) - } -} - -/* - * LPC Trusted Platform Module - */ -Scope (\_SB.PCI0.LPCB) -{ - #include -} - -/* - * WLAN connected to Root Port 3, becomes Root Port 1 after coalesce - */ -Scope (\_SB.PCI0.RP01) -{ - Device (WLAN) - { - Name (_ADR, 0x00000000) - - /* GPIO10 is PCH_WLAN_WAKE_L */ - Name (GPIO, 10) - - Name (_PRW, Package() { GPIO, 3 }) - - Method (_DSW, 3, NotSerialized) - { - If (LEqual (Arg0, 1)) { - // Enable GPIO as wake source - \_SB.PCI0.LPCB.GPIO.GWAK (^GPIO) - } - } - } -} - -Scope (\_SB.PCI0.I2C0) -{ - Device (ATPB) - { - Name (_HID, "ATML0000") - Name (_DDN, "Atmel Touchpad Bootloader") - Name (_UID, 1) - Name (_S0W, 4) - Name (ISTP, 1) /* Touchpad */ - - Name (_CRS, ResourceTemplate() - { - I2cSerialBus ( - 0x26, // SlaveAddress - ControllerInitiated, // SlaveMode - 400000, // ConnectionSpeed - AddressingMode7Bit, // AddressingMode - "\\_SB.PCI0.I2C0", // ResourceSource - ) - - // GPIO13 is PIRQL - Interrupt (ResourceConsumer, Edge, ActiveLow) { 27 } - }) - - Method (_STA) - { - If (LEqual (\S1EN, 1)) { - Return (0xF) - } Else { - Return (0x0) - } - } - } - - Device (ATPA) - { - Name (_HID, "ATML0000") - Name (_DDN, "Atmel Touchpad") - Name (_UID, 2) - Name (_S0W, 4) - Name (ISTP, 1) /* Touchpad */ - Name (GPIO, 9) /* TRACKPAD_INT_L (WAKE) */ - - Name (_CRS, ResourceTemplate() - { - I2cSerialBus ( - 0x4a, // SlaveAddress - ControllerInitiated, // SlaveMode - 400000, // ConnectionSpeed - AddressingMode7Bit, // AddressingMode - "\\_SB.PCI0.I2C0", // ResourceSource - ) - - // GPIO13 is PIRQL - Interrupt (ResourceConsumer, Edge, ActiveLow) { 27 } - }) - - Name (_PRW, Package() { GPIO, 3 }) - - Method (_DSW, 3, NotSerialized) - { - If (LEqual (Arg0, 1)) { - // Enable GPIO as wake source - \_SB.PCI0.LPCB.GPIO.GWAK (^GPIO) - } - } - - Method (_STA) - { - If (LEqual (\S1EN, 1)) { - Return (0xF) - } Else { - Return (0x0) - } - } - } - - Device (CODC) - { - /* - * TODO(kane): Need official HID. - * - */ - Name (_HID, "RT5677CE") - Name (_DDN, "RT5667 Codec") - Name (_UID, 1) - Name (WAKE, 45) /* DSP_INT (use as codec wake) */ - - Name (MB1, 1) /* MICBIAS1 = 2.970V */ - Name (DACR, 1) /* Use codec internal 1.8V as DACREF source */ - Name (DCLK, 0) /* RT5677_DMIC_CLK1 */ - Name (PCLK, 1) /* RT5677_PDM_CLK_DIV2 (~3MHz) */ - Name (IN1, 1) /* IN1 differential */ - Name (IN2, 0) /* IN2 not differential */ - Name (OUT1, 1) /* LOUT1 differential */ - Name (OUT2, 1) /* LOUT2 differential */ - Name (OUT3, 0) /* LOUT3 differential */ - Name (ASRC, 1) /* Enable I2S1 ASRC */ - Name (JD1, 0) /* JackDetect1 is not used */ - Name (JD2, 2) /* Use GPIO5 as JackDetect2 */ - Name (JD3, 3) /* Use GPIO6 as JackDetect3 */ - - /* Add DT style bindings with _DSD */ - Name (_DSD, Package () { - ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), - Package () { - Package () { "realtek,micbias1", 1 }, - Package () { "realtek,internal-dacref-en", 1 }, - Package () { "realtek,in1-differential", 1 }, - Package () { "realtek,in2-differential", 0 }, - Package () { "realtek,lout1-differential", 1 }, - Package () { "realtek,lout2-differential", 1 }, - Package () { "realtek,lout3-differential", 0 }, - Package () { "realtek,pdm_clk_div", 1 }, - Package () { "realtek,dmic2_clk_pin", 0 }, - Package () { "realtek,asrc-en", 1 }, - Package () { "realtek,jd1-gpio", 0 }, - Package () { "realtek,jd2-gpio", 2 }, - Package () { "realtek,jd3-gpio", 3 }, - Package () { "realtek,gpio-config", - Package () { 0, 0, 0, 0, 0, 2 } }, - } - }) - - Name (_CRS, ResourceTemplate() - { - I2cSerialBus ( - 0x2c, // SlaveAddress - ControllerInitiated, // SlaveMode - 400000, // ConnectionSpeed - AddressingMode7Bit, // AddressingMode - "\\_SB.PCI0.I2C0", // ResourceSource - ) - - /* GPIO46 is PIRQO (use HOTWORD_DET as codec IRQ) */ - Interrupt (ResourceConsumer, Edge, ActiveHigh) { 30 } - - /* - * Codec GPIOs are 1-based in the schematic - * - * [0] = Jack Detect (INPUT) - * [1] = Mic Present (INPUT) - * [2] = Interrupt to the host (OUTPUT) - * [3] = Interrupt to the host (OUTPUT) - * [4] = Headphone amp control (OUTPUT) - */ - - /* Index 0: Jack Detect - PLUG_DET is GPIO5 */ - GpioIo (Exclusive, PullUp, , , IoRestrictionInputOnly, - "\\_SB.PCI0.I2C0.CODC") { 4 } - - /* Index 1: Mic Present - MIC_PRESENT_L is GPIO6 */ - GpioIo (Exclusive, PullUp, , , IoRestrictionInputOnly, - "\\_SB.PCI0.I2C0.CODC") { 5 } - - /* Index 2: Codec IRQ - HOTWORD_DET_L is GPIO1 */ - GpioIo (Exclusive, PullUp, , , IoRestrictionOutputOnly, - "\\_SB.PCI0.I2C0.CODC") { 0 } - - /* Index 3: Codec Wake - DSP_INT is GPIO4 */ - GpioIo (Exclusive, PullUp, , , IoRestrictionOutputOnly, - "\\_SB.PCI0.I2C0.CODC") { 3 } - - /* Index 4: Headphone amp - HP_AMP_SHDN_L is GPIO2 */ - GpioIo (Exclusive, PullDown, , , IoRestrictionOutputOnly, - "\\_SB.PCI0.I2C0.CODC") { 1 } - }) - - Name (_PRW, Package() { WAKE, 3 }) - - Method (_DSW, 3, NotSerialized) - { - If (LEqual (Arg0, 1)) { - // Enable GPIO as wake source - \_SB.PCI0.LPCB.GPIO.GWAK (^WAKE) - } - } - - Method (_STA) - { - If (LEqual (\S1EN, 1)) { - Return (0xF) - } Else { - Return (0x0) - } - } - } -} - -Scope (\_SB.PCI0.I2C1) -{ - Device (ATSB) - { - Name (_HID, "ATML0001") - Name (_DDN, "Atmel Touchscreen Bootloader") - Name (_UID, 4) - Name (_S0W, 4) - Name (ISTP, 0) /* TouchScreen */ - - Name (_CRS, ResourceTemplate() - { - I2cSerialBus ( - 0x27, // SlaveAddress - ControllerInitiated, // SlaveMode - 400000, // ConnectionSpeed - AddressingMode7Bit, // AddressingMode - "\\_SB.PCI0.I2C1", // ResourceSource - ) - - // GPIO14 is PIRQM - Interrupt (ResourceConsumer, Edge, ActiveLow) { 28 } - }) - - Method (_STA) - { - If (LEqual (\S2EN, 1)) { - Return (0xF) - } Else { - Return (0x0) - } - } - } - - Device (ATSA) - { - Name (_HID, "ATML0001") - Name (_DDN, "Atmel Touchscreen") - Name (_UID, 5) - Name (_S0W, 4) - Name (ISTP, 0) /* TouchScreen */ - Name (GPIO, 14) /* TOUCH_INT_L */ - - Name (_CRS, ResourceTemplate() - { - I2cSerialBus ( - 0x4b, // SlaveAddress - ControllerInitiated, // SlaveMode - 400000, // ConnectionSpeed - AddressingMode7Bit, // AddressingMode - "\\_SB.PCI0.I2C1", // ResourceSource - ) - - // GPIO14 is PIRQM - Interrupt (ResourceConsumer, Edge, ActiveLow) { 28 } - }) - -#ifdef ENABLE_TOUCH_WAKE - Name (_PRW, Package() { GPIO, 3 }) - - Method (_DSW, 3, NotSerialized) - { - If (LEqual (Arg0, 1)) { - // Enable GPIO as wake source - \_SB.PCI0.LPCB.GPIO.GWAK (^GPIO) - } - } -#endif - - Method (_STA) - { - If (LEqual (\S2EN, 1)) { - Return (0xF) - } Else { - Return (0x0) - } - } - } -} - -Scope (\_SB.PCI0.SPI0) -{ - Device (CODC) - { - // TODO: Need official HID. - Name (_HID, "RT5677AA") - Name (_UID, 1) - Name (_CRS, ResourceTemplate () - { - SpiSerialBus ( - 0, // DeviceSelection (CS0?) - PolarityLow, // DeviceSelectionPolarity - FourWireMode, // WireMode - 8, // DataBitLength - ControllerInitiated, // SlaveMode - 1000000, // ConnectionSpeed (1MHz) - ClockPolarityLow, // ClockPolarity - ClockPhaseFirst, // ClockPhase - "\\_SB.PCI0.SPI0", // ResourceSource - 0, // ResourceSourceIndex - ResourceConsumer, // ResourceUsage - ) - }) - } -} diff --git a/src/mainboard/google/samus/acpi/superio.asl b/src/mainboard/google/samus/acpi/superio.asl deleted file mode 100644 index 0504d9f1a1..0000000000 --- a/src/mainboard/google/samus/acpi/superio.asl +++ /dev/null @@ -1,25 +0,0 @@ -/* - * This file is part of the coreboot project. - * - * Copyright (C) 2012 Google Inc. - * - * 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. - */ - -/* mainboard configuration */ -#include - -#define SIO_EC_MEMMAP_ENABLE // EC Memory Map Resources -#define SIO_EC_HOST_ENABLE // EC Host Interface Resources -#define SIO_EC_ENABLE_PS2K // Enable PS/2 Keyboard -#define SIO_EC_ENABLE_COM1 // Enable Serial Port 1 - -/* ACPI code for EC SuperIO functions */ -#include diff --git a/src/mainboard/google/samus/acpi/thermal.asl b/src/mainboard/google/samus/acpi/thermal.asl deleted file mode 100644 index 9d494cb157..0000000000 --- a/src/mainboard/google/samus/acpi/thermal.asl +++ /dev/null @@ -1,118 +0,0 @@ -/* - * This file is part of the coreboot project. - * - * Copyright (C) 2012 Google Inc. - * - * 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. - */ - -// Thermal Zone - -Scope (\_TZ) -{ - ThermalZone (THRM) - { - Name (_TC1, 0x02) - Name (_TC2, 0x05) - - // Thermal zone polling frequency: 10 seconds - Name (_TZP, 100) - - // Thermal sampling period for passive cooling: 2 seconds - Name (_TSP, 20) - - // Convert from Degrees C to 1/10 Kelvin for ACPI - Method (CTOK, 1) { - // 10th of Degrees C - Multiply (Arg0, 10, Local0) - - // Convert to Kelvin - Add (Local0, 2732, Local0) - - Return (Local0) - } - - // Threshold for OS to shutdown - Method (_CRT, 0, Serialized) - { - Return (CTOK (\TCRT)) - } - - // Threshold for passive cooling - Method (_PSV, 0, Serialized) - { - Return (CTOK (\TPSV)) - } - - // Processors used for passive cooling - Method (_PSL, 0, Serialized) - { - Return (\PPKG ()) - } - - Method (TCHK, 0, Serialized) - { - // Get Temperature from TIN# set in NVS - Store (\_SB.PCI0.LPCB.EC0.TINS (TMPS), Local0) - - // Check for sensor not calibrated - If (LEqual (Local0, \_SB.PCI0.LPCB.EC0.TNCA)) { - Return (CTOK(0)) - } - - // Check for sensor not present - If (LEqual (Local0, \_SB.PCI0.LPCB.EC0.TNPR)) { - Return (CTOK(0)) - } - - // Check for sensor not powered - If (LEqual (Local0, \_SB.PCI0.LPCB.EC0.TNOP)) { - Return (CTOK(0)) - } - - // Check for sensor bad reading - If (LEqual (Local0, \_SB.PCI0.LPCB.EC0.TBAD)) { - Return (CTOK(0)) - } - - // Adjust by offset to get Kelvin - Add (\_SB.PCI0.LPCB.EC0.TOFS, Local0, Local0) - - // Convert to 1/10 Kelvin - Multiply (Local0, 10, Local0) - Return (Local0) - } - - Method (_TMP, 0, Serialized) - { - // Get temperature from EC in deci-kelvin - Store (TCHK (), Local0) - - // Critical temperature in deci-kelvin - Store (CTOK (\TCRT), Local1) - - If (LGreaterEqual (Local0, Local1)) { - Store ("CRITICAL TEMPERATURE", Debug) - Store (Local0, Debug) - - // Wait 1 second for EC to re-poll - Sleep (1000) - - // Re-read temperature from EC - Store (TCHK (), Local0) - - Store ("RE-READ TEMPERATURE", Debug) - Store (Local0, Debug) - } - - Return (Local0) - } - } -} -- cgit v1.2.3