mb/google/nissa/var/meliks: Link touchscreen device with display panel

In some panels, the power supply for the display and the I2C touch
screen comes from the same source. As a result, if the display is not
powered on, the I2C bus will also be unpowered. This leads to a problem
: if the Intel DRM driver has not yet reached the stage where it powers
on the display, the I2C touch screen device integrated into the panel
will remain unpowered as well. A similar issue can also occur after
resuming from s0ix.

In Linux-like systems, the Intel DRM driver and the generic I2C driver
operate independently, so their execution order in the kernel cannot be
guaranteed.

Kernel patchsets link:
https://lore.kernel.org/all/cover.1749199013.git.jani.nikula@intel.com/

Due to the required kernel changes mentioned above, an ACPI device LCD0
needs to be declared under GFX0, and a _DSD declaration must be added
to the I2C touch screen device.

An example that clearly illustrates the required ACPI change:

    Scope (\_SB.PCI0.GFX0)
    {
        ...

        Device (LCD0)
        {
            Name (_STA, 0x0F)  // _STA: Status

            ...
        }
    }

    Scope (\_SB.PCI0.I2C1)
    {
        ....

        Name (_DSD, Package (0x02)  // _DSD: Device-Specific Data
        {
            ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301") /* Device Properties for _DSD */,
            Package (0x02)
            {
                ...

                Package (0x02)
                {
                    "panel",
                    \_SB.PCI0.GFX0.LCD0
                }
            }
        })
    }

BUG=b:398703068
TEST=Extracted SSDT contains a required _DSD entry within the I2C1
touchscreen device scope

Cq-Depend: chromium:6626797
Change-Id: I73058851c35a7190d70a51a554cccf21253fc59b
Signed-off-by: Simon Yang <simon1.yang@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87762
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
This commit is contained in:
Simon Yang 2025-05-20 19:10:46 +08:00 committed by Eric Lai
commit b9aae6180b

View file

@ -240,6 +240,10 @@ chip soc/intel/alderlake
register "generic.reset_off_delay_ms" = "2"
register "generic.has_power_resource" = "1"
register "generic.use_gpio_for_status" = "true"
register "generic.property_count" = "1"
register "generic.property_list[0].type" = "ACPI_DP_TYPE_REFERENCE"
register "generic.property_list[0].name" = ""panel""
register "generic.property_list[0].string" = ""\\_SB.PCI0.GFX0.LCD0""
register "hid_desc_reg_offset" = "0x1"
device i2c 4F on end
end