The bootloader configures the display hardware for a framebuffer at the given address, let's add a simple-framebuffer node here until we get a proper DRM driver. This has several benefits since it's an OLED display: * energy consumption goes down significantly, as it changes from white (as left by bootloader) to black (linux console), and we generally don't run out of battery anymore when plugged into a USB port * less of a burn-in effect I assume * phone stays cooler due to reduced energy consumption by display Reviewed-by: Peter Griffin <peter.griffin@xxxxxxxxxx> Tested-by: Peter Griffin <peter.griffin@xxxxxxxxxx> Signed-off-by: André Draszik <andre.draszik@xxxxxxxxxx> --- This is marked as v2, because it has been split out from my original series in [1] to make it independent, for two reasons: * drop the dependency on other patches touching the same file * no need to mingle this one with adding Pixel 6 Pro support Other than that, there are no changes and I kept the existing trailers. For those who want to try this out: The stock bootloader disables the decon hardware trigger before jumping to Linux, preventing framebuffer updates from reaching the display. We have added a work-around in our Yocto BSP layer for the time being (until a proper display exists upstream). An alternative might be to port and use uniLoader from https://github.com/ivoszbg/uniLoader, as seems to be done for some other Exynos platforms. --- Changes in v2: - split out of original series - Link to v1 series: https://lore.kernel.org/r/20241216-gs101-simplefb-v1-0-8ccad1830281@xxxxxxxxxx --- arch/arm64/boot/dts/exynos/google/gs101-oriole.dts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/arch/arm64/boot/dts/exynos/google/gs101-oriole.dts b/arch/arm64/boot/dts/exynos/google/gs101-oriole.dts index 387fb779bd29..a00cb27e167e 100644 --- a/arch/arm64/boot/dts/exynos/google/gs101-oriole.dts +++ b/arch/arm64/boot/dts/exynos/google/gs101-oriole.dts @@ -22,9 +22,23 @@ aliases { }; chosen { + #address-cells = <2>; + #size-cells = <1>; + ranges; + /* Bootloader expects bootargs specified otherwise it crashes */ bootargs = ""; stdout-path = &serial_0; + + /* Use display framebuffer as setup by bootloader */ + framebuffer0: framebuffer@fac00000 { + compatible = "simple-framebuffer"; + reg = <0x0 0xfac00000 (1080 * 2400 * 4)>; + width = <1080>; + height = <2400>; + stride = <(1080 * 4)>; + format = "a8r8g8b8"; + }; }; gpio-keys { @@ -68,6 +82,13 @@ ufs_0_fixed_vcc_reg: regulator-1 { regulator-boot-on; enable-active-high; }; + + reserved-memory { + cont_splash_mem: splash@fac00000 { + reg = <0x0 0xfac00000 (1080 * 2400 * 4)>; + no-map; + }; + }; }; &ext_24_5m { --- base-commit: 8503810115fbff903f626adc0788daa048302bc0 change-id: 20241219-gs101-simplefb-oriole-d3fad1f5b498 Best regards, -- André Draszik <andre.draszik@xxxxxxxxxx>