diff options
-rw-r--r-- | src/mainboard/google/chell/Kconfig | 9 | ||||
-rw-r--r-- | src/mainboard/google/chell/acpi/mainboard.asl | 214 | ||||
-rw-r--r-- | src/mainboard/google/chell/devicetree.cb | 62 |
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 |