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 <[email protected]>
> ---
>  .../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/[email protected]

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.

Reply via email to