summaryrefslogtreecommitdiff
path: root/src/mainboard
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainboard')
-rw-r--r--src/mainboard/google/lars/Kconfig12
-rw-r--r--src/mainboard/google/lars/acpi/mainboard.asl202
-rw-r--r--src/mainboard/google/lars/devicetree.cb58
3 files changed, 65 insertions, 207 deletions
diff --git a/src/mainboard/google/lars/Kconfig b/src/mainboard/google/lars/Kconfig
index dc285c0ec3..ee08067bed 100644
--- a/src/mainboard/google/lars/Kconfig
+++ b/src/mainboard/google/lars/Kconfig
@@ -30,6 +30,18 @@ config CHROMEOS
select VIRTUAL_DEV_SWITCH
select EC_SOFTWARE_SYNC
+config DRIVERS_GENERIC_MAX98357A
+ default y
+
+config DRIVERS_I2C_GENERIC
+ default y
+
+config DRIVERS_I2C_NAU8825
+ default y
+
+config DRIVERS_INTEL_WIFI
+ default y
+
config IRQ_SLOT_COUNT
int
default 18
diff --git a/src/mainboard/google/lars/acpi/mainboard.asl b/src/mainboard/google/lars/acpi/mainboard.asl
index d6299a59fd..4fe3365508 100644
--- a/src/mainboard/google/lars/acpi/mainboard.asl
+++ b/src/mainboard/google/lars/acpi/mainboard.asl
@@ -16,17 +16,6 @@
#include "../gpio.h"
-#define BOARD_TOUCHPAD_I2C_ADDR 0x15
-#define BOARD_TOUCHPAD_IRQ TOUCHPAD_INT_L
-
-#define BOARD_TOUCHSCREEN_I2C_ADDR 0x10
-#define BOARD_TOUCHSCREEN_IRQ TOUCHSCREEN_INT_L
-
-#define BOARD_HP_MIC_CODEC_I2C_ADDR 0x1a
-#define BOARD_HP_MIC_CODEC_IRQ MIC_INT_L
-#define BOARD_LEFT_SPEAKER_AMP_I2C_ADDR 0x34
-#define BOARD_RIGHT_SPEAKER_AMP_I2C_ADDR 0x35
-
Scope (\_SB)
{
Device (LID0)
@@ -44,46 +33,6 @@ Scope (\_SB)
{
Name (_HID, EisaId ("PNP0C0C"))
}
-
- Device (MAXM)
- {
- Name (_HID, "MX98357A")
- Name (_DDN, "Maxim Integrated 98357A Amplifier")
- Name (_UID, 1)
- Name (_CRS, ResourceTemplate()
- {
- GpioIo (Exclusive, PullDefault, 0x0000, 0x0000,
- IoRestrictionNone,
- "\\_SB.PCI0.GPIO", 0x00, ResourceConsumer,,)
- {
- GPIO_SPEAKER_MAXIM_AMP_SDMODE,
- }
- })
- Name (_DSD, Package ()
- {
- ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
- Package ()
- {
- Package () {
- /*
- * Create a named GPIO
- * "sdmode-gpio" for the
- * kernel codec driver
- * to use.
- */
-
- "sdmode-gpio", Package () {
- ^MAXM, 0, 0, 0
- }
- },
- }
- })
-
- Method (_STA)
- {
- Return (0xF)
- }
- }
}
/*
@@ -93,154 +42,3 @@ Scope (\_SB.PCI0.LPCB)
{
#include <drivers/pc80/tpm/acpi/tpm.asl>
}
-
-/*
- * WLAN connected to Root Port 1
- */
-Scope (\_SB.PCI0.RP01)
-{
- Device (WLAN)
- {
- Name (_ADR, 0x00000000)
- Name (_DDN, "Wireless LAN")
- Name (_PRW, Package () { GPE_WLAN_WAKE, 3 })
-
- #include <drivers/intel/wifi/acpi/wrdd.asl>
- }
-}
-
-Scope (\_SB.PCI0.I2C0)
-{
- /* Touchscreen */
- Device (ELTS)
- {
- Name (_HID, "ELAN0001")
- Name (_DDN, "Elan Touchscreen")
- Name (_UID, 1)
- Name (_S0W, 4)
-
- Name (_CRS, ResourceTemplate ()
- {
- I2cSerialBus (
- BOARD_TOUCHSCREEN_I2C_ADDR,
- ControllerInitiated,
- 400000,
- AddressingMode7Bit,
- "\\_SB.PCI0.I2C0",
- )
- Interrupt (ResourceConsumer, Edge, ActiveLow)
- {
- BOARD_TOUCHSCREEN_IRQ
- }
- })
-
- Method (_STA)
- {
- Return (0xF)
- }
- }
-}
-
-Scope (\_SB.PCI0.I2C1)
-{
- /* Touchpad */
- Device (ELTP)
- {
- Name (_HID, "ELAN0000")
- Name (_DDN, "Elan Touchpad")
- Name (_UID, 1)
- Name (_S0W, 4)
-
- Name (_CRS, ResourceTemplate ()
- {
- I2cSerialBus (
- BOARD_TOUCHPAD_I2C_ADDR,
- ControllerInitiated,
- 400000,
- AddressingMode7Bit,
- "\\_SB.PCI0.I2C1",
- )
- Interrupt (ResourceConsumer, Edge, ActiveLow)
- {
- BOARD_TOUCHPAD_IRQ
- }
- })
-
- Name (_PRW, Package() { GPE_TOUCHPAD_WAKE, 0x3 })
-
- Method (_STA)
- {
- Return (0xF)
- }
- }
-}
-
-Scope (\_SB.PCI0.I2C4)
-{
- /* Headphone Codec */
- Device (HPMC)
- {
- Name (_HID, "10508825")
- Name (_DDN, "NAU88L25 Codec")
- Name (_UID, 1)
- Name (_S0W, 4)
- Name (_DSD, Package () {
- ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
- Package () {
- /* Enable jack detection via JKDET pin */
- Package () { "nuvoton,jkdet-enable", 1 },
- /*
- * JKDET pin is pulled up by R389 on board.
- * JKDET pin polarity = active low
- */
- Package () { "nuvoton,jkdet-pull-enable", 1 },
- Package () { "nuvoton,jkdet-pull-up", 1 },
- Package () { "nuvoton,jkdet-polarity", 1 },
- /* VDDA(1.8) * 1.53 = 2.754 */
- Package () { "nuvoton,micbias-voltage", 6 },
- /* VREF Impedance = 125 kOhm */
- Package () { "nuvoton,vref-impedance", 2 },
- /*
- * Setup 4 buttons impedance according to
- * Android specification
- */
- Package () { "nuvoton,sar-threshold-num", 4 },
- Package () { "nuvoton,sar-threshold",
- Package() { 0x0a, 0x14, 0x26, 0x73 } },
- /*
- * Coeff 0-15 used to adjust threshold level
- * 0 for low resist range
- */
- Package () { "nuvoton,sar-hysteresis", 0 },
- /* SAR tracking gain based on 2.754 micbias-voltage */
- Package () { "nuvoton,sar-voltage", 6 },
- /* 100ms short key press debounce */
- Package () { "nuvoton,short-key-debounce", 3 },
- /* 2^(7+2) = 512 ms insert/eject debounce */
- Package () { "nuvoton,jack-insert-debounce", 7 },
- /* debounce not needed for eject normally */
- Package () { "nuvoton,jack-eject-debounce", 0 },
- }
- })
-
- Name (_CRS, ResourceTemplate()
- {
- I2cSerialBus (
- BOARD_HP_MIC_CODEC_I2C_ADDR,
- ControllerInitiated,
- 400000,
- AddressingMode7Bit,
- "\\_SB.PCI0.I2C4",
- )
- Interrupt (ResourceConsumer, Level, ActiveLow)
- {
- BOARD_HP_MIC_CODEC_IRQ
- }
- })
-
- Method (_STA)
- {
- Return (0xF)
- }
- }
-}
diff --git a/src/mainboard/google/lars/devicetree.cb b/src/mainboard/google/lars/devicetree.cb
index fce0495a2f..8ecacdd267 100644
--- a/src/mainboard/google/lars/devicetree.cb
+++ b/src/mainboard/google/lars/devicetree.cb
@@ -182,8 +182,23 @@ chip soc/intel/skylake
device pci 14.0 on end # USB xHCI
device pci 14.1 off end # USB xDCI (OTG)
device pci 14.2 on end # Thermal Subsystem
- device pci 15.0 on end # I2C #0
- device pci 15.1 on end # I2C #1
+ device pci 15.0 on
+ chip drivers/i2c/generic
+ register "hid" = ""ELAN0001""
+ register "desc" = ""ELAN Touchscreen""
+ register "irq" = "IRQ_EDGE_LOW(GPP_E7_IRQ)"
+ device i2c 10 on end
+ end
+ end # I2C #0
+ device pci 15.1 on
+ chip drivers/i2c/generic
+ register "hid" = ""ELAN0000""
+ register "desc" = ""ELAN Touchpad""
+ register "irq" = "IRQ_EDGE_LOW(GPP_B3_IRQ)"
+ register "wake" = "GPE0_DW0_05"
+ device i2c 15 on end
+ end
+ end # I2C #1
device pci 15.2 off end # I2C #2
device pci 15.3 off end # I2C #3
device pci 16.0 on end # Management Engine Interface 1
@@ -194,8 +209,36 @@ chip soc/intel/skylake
device pci 17.0 off end # SATA
device pci 19.0 on end # UART #2
device pci 19.1 off end # I2C #5
- device pci 19.2 on end # I2C #4
- device pci 1c.0 on end # PCI Express Port 1
+ device pci 19.2 on
+ chip drivers/i2c/nau8825
+ register "irq" = "IRQ_LEVEL_LOW(GPP_F10_IRQ)"
+ register "jkdet_enable" = "1"
+ register "jkdet_pull_enable" = "1"
+ register "jkdet_pull_up" = "1"
+ register "jkdet_polarity" = "1" # ActiveLow
+ register "vref_impedance" = "2" # 125kOhm
+ register "micbias_voltage" = "6" # 2.754
+ register "sar_threshold_num" = "4"
+ register "sar_threshold[0]" = "0x0a"
+ register "sar_threshold[1]" = "0x14"
+ register "sar_threshold[2]" = "0x26"
+ register "sar_threshold[3]" = "0x73"
+ register "sar_hysteresis" = "0"
+ register "sar_voltage" = "6"
+ register "sar_compare_time" = "0" # 500ns
+ register "sar_sampling_time" = "0" # 2us
+ register "short_key_debounce" = "3" # 30ms
+ register "jack_insert_debounce" = "7" # 512ms
+ register "jack_eject_debounce" = "0"
+ device i2c 1a on end
+ end
+ end # I2C #4
+ device pci 1c.0 on
+ chip drivers/intel/wifi
+ register "wake" = "GPE0_DW0_16"
+ device pci 00.0 on end
+ end
+ end # PCI Express Port 1
device pci 1c.1 off end # PCI Express Port 2
device pci 1c.2 off end # PCI Express Port 3
device pci 1c.3 off end # PCI Express Port 4
@@ -224,7 +267,12 @@ chip soc/intel/skylake
end # LPC Interface
device pci 1f.1 on end # P2SB
device pci 1f.2 on end # Power Management Controller
- device pci 1f.3 on end # Intel HDA
+ device pci 1f.3 on
+ chip drivers/generic/max98357a
+ register "sdmode_gpio" = "ACPI_GPIO_OUTPUT(GPP_B2)"
+ device generic 0 on end
+ end
+ end # Intel HDA
device pci 1f.4 on end # SMBus
device pci 1f.5 on end # PCH SPI
device pci 1f.6 off end # GbE