| # 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. |