83 lines
2.8 KiB
YAML
83 lines
2.8 KiB
YAML
# Copyright (c) 2021, Nordic Semiconductor ASA
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
description: Generic LED matrix driven by nRF SoC GPIOs
|
|
|
|
compatible: "nordic,nrf-led-matrix"
|
|
|
|
include: display-controller.yaml
|
|
|
|
properties:
|
|
row-gpios:
|
|
type: phandle-array
|
|
required: true
|
|
description: |
|
|
Array of GPIOs to be used as rows of the matrix.
|
|
|
|
col-gpios:
|
|
type: phandle-array
|
|
required: true
|
|
description: |
|
|
Array of GPIOs to be used as columns of the matrix.
|
|
|
|
pixel-mapping:
|
|
type: uint8-array
|
|
required: true
|
|
description: |
|
|
Array of bytes that specify which rows and columns of the matrix
|
|
control its particular pixels, line by line. Each byte in this
|
|
array corresponds to one pixel of the matrix and specifies the row
|
|
index in the high nibble and the column index in the low nibble.
|
|
|
|
For example, the following snippet (from the bbc_microbit board DTS):
|
|
|
|
width = <5>;
|
|
height = <5>;
|
|
pixel-mapping = [00 13 01 14 02
|
|
23 24 25 26 27
|
|
...
|
|
|
|
specifies that:
|
|
- pixel (0,0) is controlled by row 0 and column 0
|
|
- pixel (1,0) is controlled by row 1 and column 3
|
|
- pixel (0,1) is controlled by row 2 and column 3
|
|
- pixel (1,1) is controlled by row 2 and column 4
|
|
and so on.
|
|
|
|
refresh-frequency:
|
|
type: int
|
|
required: true
|
|
description: |
|
|
Frequency of refreshing the matrix, in Hz.
|
|
|
|
timer:
|
|
type: phandle
|
|
required: true
|
|
description: |
|
|
Reference to a TIMER instance for controlling refreshing of the matrix.
|
|
|
|
pwm:
|
|
type: phandle
|
|
required: false
|
|
description: |
|
|
Reference to a PWM instance for generating pulse signals on column
|
|
GPIOs. If not provided, GPIOTE and PPI channels are allocated and
|
|
used instead for generating those pulses.
|
|
|
|
pixel-group-size:
|
|
type: int
|
|
required: true
|
|
description: |
|
|
This value specifies the maximum number of LEDs in one row that can
|
|
be lit simultaneously.
|
|
If set to 1, only a single LED is turned on in a particular time slot.
|
|
Bigger values increase the maximum achievable brightness of the LEDs
|
|
and lower the CPU load by decreasing the frequency of execution of
|
|
the timer interrupt handler.
|
|
In case GPIOTE and PPI channels are used for generating the pixel pulse
|
|
signals, the number of channels that need to be allocated is equal to
|
|
this value.
|
|
If GPIOTE and PPI channels are used, the upper limit for the value is
|
|
defined by the number of CC channels in the used timer minus one.
|
|
If PWM is used, the upper limit is the number of PWM channels.
|