Re: [PATCH v3 2/7] dt-bindings: display: add a device tree supplied boot logo
flat view
From: Rob Herring (Arm) <robh@kernel.org>
Date: 2026-09-24 11:49:17
Also in:
dri-devel, linux-devicetree, lkml
On Wed, 23 Sep 2026 22:10:30 +0200, Max Pedraza wrote:
Embedded products frequently need a product specific boot logo. Today that means pointing CONFIG_LOGO_LINUX_CLUT224_FILE at a different image, which bakes it into the kernel image: a change of branding, or a second product sharing the same board support package, requires a separate kernel build, and requalifying that kernel for what is a cosmetic change. Add a binding for a "boot-logo-clut224" node, which carries the logo in the same paletted format the built-in CLUT224 logos already use, plus a few optional properties describing where on the screen it is drawn. The node lives under /chosen because a logo is configuration handed over by firmware rather than a description of the hardware. Open Firmware, which the device tree descends from, carried a boot logo in the same spirit as the oem-logo variable under /options, and simple-framebuffer nodes live under /chosen today for the same reason. The palette size is derived from the length of the "clut" property rather than spelled out separately, and "data" holds plain palette indices; the 32 entry offset the frame buffer layer reserves for the console is an implementation detail and is applied by the kernel, not by the binding. "logo-position" takes -1 on an axis to mean centre on that axis rather than carrying a separate boolean for it. A boolean can only centre both axes or neither, and next to explicit coordinates it would have to override them silently when a device tree gave both. A rotation turns the logo, not the screen. "logo-position" and "logo-offset" are screen pixels whatever "logo-rotation" says, and a quarter turn only changes how much room the logo takes up. Placing the logo in a frame that turns with it would make the same pair of coordinates mean different places on the same panel, decided by a property that is meant to describe the image. Every coordinate is bounded. The kernel clamps them anyway, since it cannot trust a device tree, but a value that cannot possibly be meant is worth catching in dtbs_check rather than on the panel. Signed-off-by: Max Pedraza <redacted> --- .../bindings/display/boot-logo-clut224.yaml | 135 ++++++++++++++++++ MAINTAINERS | 1 + 2 files changed, 136 insertions(+) create mode 100644 Documentation/devicetree/bindings/display/boot-logo-clut224.yaml
My bot found errors running 'make dt_binding_check' on your patch: yamllint warnings/errors: dtschema/dtc warnings/errors: Documentation/devicetree/bindings/display/boot-logo-clut224.example.dtb: chosen: 'logo' does not match any of the regexes: '^framebuffer', '^pinctrl-[0-9]+$' from schema $id: http://devicetree.org/schemas/chosen.yaml doc reference errors (make refcheckdocs): See https://patchwork.kernel.org/project/devicetree/patch/20260923201035.51007-3-maximpedraza@gmail.com The base for the series is generally the latest rc1. A different dependency should be noted in *this* patch. If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date: pip3 install dtschema --upgrade Please check and re-submit after running the above command yourself. Note that DT_SCHEMA_FILES can be set to your schema file to speed up checking your schema. However, it must be unset to test all examples with your schema.