zephyr/dts/bindings/display/led-strip-matrix.yaml

183 lines
5.1 KiB
YAML

# Copyright (c) 2024 TOKITA Hiroshi
# SPDX-License-Identifier: Apache-2.0
description: |
Generic LED strip matrix (LED strip arranged in a grid pattern)
compatible: "led-strip-matrix"
include: display-controller.yaml
properties:
circulative:
type: boolean
description: |
Use a circulative layout that returns to the left edge of the next row
after reaching the right edge.
If not set, turn around and go left in a serpentine layout when it reaches
the right edge.
* circulative layout
[ 0][ 1][ 2][ 3]
[ 4][ 5][ 6][ 7]
[ 8][ 9][10][11]
[12][13][14][15]
* serpentine layout
[ 0][ 1][ 2][ 3]
[ 7][ 6][ 5][ 4]
[ 8][ 9][10][11]
[15][14][13][12]
start-from-right:
type: boolean
description: |
Specify if the first LED is at the right.
* Start from the right with a serpentine layout
[ 3][ 2][ 1][ 0]
[ 4][ 5][ 6][ 7]
[11][10][ 9][ 8]
[12][13][14][15]
* Start from the right with a circulative layout
[ 3][ 2][ 1][ 0]
[ 7][ 6][ 5][ 4]
[11][10][ 9][ 8]
[15][14][13][12]
start-from-bottom:
type: boolean
description: |
Specify if the first LED is at the bottom.
* Start from the bottom with a circulative layout
[12][13][14][15]
[ 8][ 9][10][11]
[ 4][ 5][ 6][ 7]
[ 0][ 1][ 2][ 3]
* Start from the bottom with a serpentine layout
[15][14][13][12]
[ 8][ 9][10][11]
[ 7][ 6][ 5][ 4]
[ 0][ 1][ 2][ 3]
width:
description: |
Specifies the overall width of the matrix.
If the matrix consists of multiple modules, it is the sum of their widths.
height:
description: |
Specifies the overall height of the matrix.
If the matrix consists of multiple modules, it is the sum of their heights.
horizontal-modules:
type: int
default: 1
description: |
If the display forms with multiple modules,
specify the horizontal number of modules.
The number must be able to divide the width value.
If not set, it controls a single matrix.
* 8x4 display with 2 serpentine layout modules
[ 0][ 1][ 2][ 3] [16][17][18][19]
[ 7][ 6][ 5][ 4] [23][22][21][20]
[ 8][ 9][10][11] [24][25][26][27]
[15][14][13][12] [31][30][29][28]
vertical-modules:
type: int
default: 1
description: |
If the display forms with multiple modules,
specify the vertical number of modules.
The number must be able to divide the height value.
If not set, it controls a single matrix.
* 4x8 display with 2 serpentine layout modules
[ 0][ 1][ 2][ 3]
[ 7][ 6][ 5][ 4]
[ 8][ 9][10][11]
[15][14][13][12]
[16][17][18][19]
[23][22][21][20]
[24][25][26][27]
[31][30][29][28]
modules-circulative:
type: boolean
description: |
Specifies that the order of the modules that make up the matrix is circulative.
* circulative module layout
[M0][M1][M2]
[M3][M4][M5]
[M6][M7][M8]
* serpentine module layout
[M0][M1][M2]
[M5][M4][M3]
[M6][M7][M8]
modules-start-from-right:
type: boolean
description: |
Specifies that modules are ordered from right to left.
* Start from the right with a module serpentine layout
[M2][M1][M0]
[M3][M4][M5]
[M8][M7][M6]
* Start from the right with a module circulative layout
[M2][M1][M0]
[M5][M4][M3]
[M8][M7][M6]
modules-start-from-bottom:
type: boolean
description: |
Specifies that modules are ordered from bottom to top.
* Start from the right with a module serpentine layout
[M6][M7][M8]
[M5][M4][M3]
[M0][M1][M2]
* Start from the right with a module circulative layout
[M6][M7][M8]
[M3][M4][M5]
[M0][M1][M2]
led-strips:
type: phandles
required: true
description: |
Specify the LED strip that is the substance of the matrix.
If multiple strips are specified, they are "flattened" and sequentialized.
For example, if `strip0` and `strip1` with 128 LEDs are specified,
the first LED of `strip1` will be treated as the 129th LED.
These LEDs are mapped to coordinates according to the layout rule in order.
The amount of LEDs must equal the [width * height] value.
chain-lengths:
type: array
description: |
Specify the number of LEDs for each strip.
It can omit the value if all strip nodes have a `chain-length` property.
Each value must be a multiple of the number of LEDs per module
[(width / horizontal-modules) * (height / vertical-modules)].
pixel-format:
type: int
default: 1
description: |
Initial Pixel format.
See dt-bindings/display/panel.h for a list.
This property only accepts PANEL_PIXEL_FORMAT_RGB_888 and PANEL_PIXEL_FORMAT_RRGB_8888.
If this property is not set, use PANEL_PIXEL_FORMAT_RGB_888 as a default.