summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mainboard/google/chell/Kconfig9
-rw-r--r--src/mainboard/google/chell/acpi/mainboard.asl214
-rw-r--r--src/mainboard/google/chell/devicetree.cb62
3 files changed, 67 insertions, 218 deletions
diff --git a/src/mainboard/google/chell/Kconfig b/src/mainboard/google/chell/Kconfig
index 38b2ad3921..95102b6baf 100644
--- a/src/mainboard/google/chell/Kconfig
+++ b/src/mainboard/google/chell/Kconfig
@@ -29,6 +29,15 @@ config CHROMEOS
select VBOOT_OPROM_MATTERS
select VIRTUAL_DEV_SWITCH
+config DRIVERS_I2C_GENERIC
+ def_bool y
+
+config DRIVERS_I2C_NAU8825
+ def_bool y
+
+config DRIVERS_INTEL_WIFI
+ def_bool y
+
config IRQ_SLOT_COUNT
int
default 18
diff --git a/src/mainboard/google/chell/acpi/mainboard.asl b/src/mainboard/google/chell/acpi/mainboard.asl
index 67de19da96..f2503a89d7 100644
--- a/src/mainboard/google/chell/acpi/mainboard.asl
+++ b/src/mainboard/google/chell/acpi/mainboard.asl
@@ -15,18 +15,6 @@
#include "../gpio.h"
-#define BOARD_TOUCHPAD_I2C_ADDR 0x15
-#define BOARD_TOUCHPAD_IRQ TOUCHPAD_INT_L
-#define BOARD_TOUCHPAD_WAKE GPE_TOUCHPAD_WAKE
-
-#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)
@@ -53,205 +41,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 (_PRW, Package () { BOARD_TOUCHPAD_WAKE, 3 })
-
- Name (_CRS, ResourceTemplate ()
- {
- I2cSerialBus (
- BOARD_TOUCHPAD_I2C_ADDR,
- ControllerInitiated,
- 400000,
- AddressingMode7Bit,
- "\\_SB.PCI0.I2C1",
- )
- Interrupt (ResourceConsumer, Edge, ActiveLow)
- {
- BOARD_TOUCHPAD_IRQ
- }
- })
-
- Method (_STA)
- {
- Return (0xF)
- }
- }
-}
-
-Scope (\_SB.PCI0.I2C4)
-{
- /* Headphone Codec */
- Device (HPMC)
- {
- Name (_HID, "10508825")
- Name (_DDN, "NAU88L25 Codec")
- Name (_UID, 1)
-
- /*
- * Add DT style bindings with _DSD
- * Device property values are documented in kernel doc
- * Documentation/devicetree/bindings/sound/nau8825.txt
- */
- 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-polarity", 1},
- /* VREF Impedance = 125 kOhm */
- Package () {"nuvoton,vref-impedance", 2},
- /* VDDA(1.8) * 1.53 = 2.754 */
- Package () {"nuvoton,micbias-voltage", 6},
- /*
- * Setup 4 buttons impedance according to
- * Android specification
- */
- Package () {"nuvoton,sar-threshold-num", 4},
- /*
- * Thresholds determined using the Wired Headphone
- * Compatibility Kit and a Chell EVT
- */
- Package () {"nuvoton,sar-threshold",
- Package () {0x0c, 0x1c, 0x38, 0x60}},
- Package () {"nuvoton,sar-hysteresis", 1},
- /* VDDA for button impedance measurement */
- Package () {"nuvoton,sar-voltage", 0},
- Package () {"nuvoton,sar-compare-time", 0 },
- Package () {"nuvoton,sar-sampling-time", 0 },
- /* 100ms short key press debounce */
- Package () {"nuvoton,short-key-debounce", 2},
- /* 2^(7+2) = 512 ms insert/eject debounce */
- Package () {"nuvoton,jack-insert-debounce", 7},
- Package () {"nuvoton,jack-eject-debounce", 7},
- }
- })
-
- 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)
- }
- }
-
- /* Left Speaker Amp */
- Device (SPKL)
- {
- Name (_HID, "INT343B")
- Name (_DDN, "SSM4567 Speaker Amp")
- Name (_UID, 0)
-
- Name (_CRS, ResourceTemplate()
- {
- I2cSerialBus (
- BOARD_LEFT_SPEAKER_AMP_I2C_ADDR,
- ControllerInitiated,
- 400000,
- AddressingMode7Bit,
- "\\_SB.PCI0.I2C4",
- )
- })
-
- Method (_STA)
- {
- Return (0xF)
- }
- }
-
- /* Right Speaker Amp */
- Device (SPKR)
- {
- Name (_HID, "INT343B")
- Name (_DDN, "SSM4567 Speaker Amp")
- Name (_UID, 1)
-
- Name (_CRS, ResourceTemplate()
- {
- I2cSerialBus (
- BOARD_RIGHT_SPEAKER_AMP_I2C_ADDR,
- ControllerInitiated,
- 400000,
- AddressingMode7Bit,
- "\\_SB.PCI0.I2C4",
- )
- })
-
- Method (_STA)
- {
- Return (0xF)
- }
- }
-}
diff --git a/src/mainboard/google/chell/devicetree.cb b/src/mainboard/google/chell/devicetree.cb
index 349f724cf3..384d374877 100644
--- a/src/mainboard/google/chell/devicetree.cb
+++ b/src/mainboard/google/chell/devicetree.cb
@@ -185,8 +185,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
@@ -197,8 +212,47 @@ 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" = "0" # R389
+ 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]" = "0x0c"
+ register "sar_threshold[1]" = "0x1c"
+ register "sar_threshold[2]" = "0x38"
+ register "sar_threshold[3]" = "0x60"
+ register "sar_hysteresis" = "1"
+ register "sar_voltage" = "0" # VDDA
+ register "sar_compare_time" = "0" # 500ns
+ register "sar_sampling_time" = "0" # 2us
+ register "short_key_debounce" = "2" # 100ms
+ register "jack_insert_debounce" = "7" # 512ms
+ register "jack_eject_debounce" = "7" # 512ms
+ device i2c 1a on end
+ end
+ chip drivers/i2c/generic
+ register "hid" = ""INT343B""
+ register "desc" = ""SSM4567 Left Speaker Amp""
+ register "uid" = "0"
+ device i2c 34 on end
+ end
+ chip drivers/i2c/generic
+ register "hid" = ""INT343B""
+ register "desc" = ""SSM4567 Right Speaker Amp""
+ register "uid" = "1"
+ device i2c 35 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