183 lines
5.1 KiB
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.
|