coreboot/src
Patrick Rudolph d7dcc44eb9 drvs/lenovo/hybrid_graphics: Add new hybrid graphics driver
Introduce a chip_driver that uses devicetree instead of Kconfig.

The new driver has the following advantages:

* No more wasted IGD GFX stolen memory
* Can be used by T500 series
* Is even run on devices that do not have a dGPU installed
* Can disable unused PEG port on devices without dGPU (and save power)
* Use devicetree instead of Kconfig options
* Support for multiple hybrid GPIO active levels
* Support for backlight control GPIO
* Support for _ROM on Optimus capable devices

The driver is split into romstage part and ramstage part.

Every mainboard has to call the driver in romstage to get the requested
GPU state. The mainboard code then has to toggle GPU power or disable
the IGD or PEG port.

The ramstage part does handle the hygrid graphics GPIO, including
optional backlight mux GPIO. Every GPIO can have it's own active level,
as defined in devicetree. Devices are no longer disabled in ramstage.

The existing hybrid graphics driver does the same configuration and
should not interfere with this commit until it has been removed.

Change-Id: Ie467f9a18b35ab3b8a523dbf51c5575db5b374a5
Signed-off-by: Patrick Rudolph <siro@das-labor.org>
Reviewed-on: https://review.coreboot.org/20792
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nico Huber <nico.h@gmx.de>
Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
2017-08-10 16:05:56 +00:00
..
acpi src/acpi: Add guards on all header files 2017-08-01 23:04:27 +00:00
arch SMBIOS: Correct length calculation for empty string table 2017-08-10 15:56:45 +00:00
commonlib Rename __attribute__((packed)) --> __packed 2017-07-13 19:45:59 +00:00
console src: add IS_ENABLED() around Kconfig symbol references 2017-07-13 23:57:07 +00:00
cpu binaryPI: Introduce BINARYPI_LEGACY_WRAPPER and its counterpart 2017-08-02 05:11:04 +00:00
device device/pci: untangle struct device and device_t 2017-08-09 17:47:18 +00:00
drivers drvs/lenovo/hybrid_graphics: Add new hybrid graphics driver 2017-08-10 16:05:56 +00:00
ec ec/lenovo/h8/h8: Always enable tp-smapi and thermal 2017-07-18 19:23:26 +00:00
include SMBIOS: Correct length calculation for empty string table 2017-08-10 15:56:45 +00:00
lib lib/cbmem: provide optional cbmem top initialization hook 2017-08-04 04:29:57 +00:00
mainboard mb/intel/dg43gt: Add mainboard 2017-08-10 16:00:55 +00:00
northbridge nb/amd_fam10/mct_ddr3: Use common function to compute crc16 checksum 2017-08-10 15:55:33 +00:00
soc soc/intel/common/block: Add CNL, APL and GLK CPU device IDs 2017-08-10 15:59:03 +00:00
southbridge sb/intel/i82801jx: Remove dead code 2017-08-10 16:00:59 +00:00
superio sio/smsc/kbc1100: Fix some style issues 2017-08-06 23:21:27 +00:00
vboot vboot: Remove get_sw_write_protect_state callback 2017-07-18 23:24:01 +00:00
vendorcode AGESA f15 f15tn f16kb: Add extra checks for incorrect SPD data 2017-08-04 15:26:39 +00:00
Kconfig Add support for Undefined Behavior Sanitizer 2017-06-14 19:56:59 +02:00